From e69af4c5c876be71934d0af902f210d89b3c5da1 Mon Sep 17 00:00:00 2001 From: Anthony King Date: Tue, 17 Mar 2015 11:51:24 -0600 Subject: [PATCH] initial commit --- .gitignore | 1 + Android.mk | 23 + AndroidBoard.mk | 16 + AndroidProducts.mk | 18 + BoardConfig.mk | 61 + device.mk | 22 + dt.img | Bin 0 -> 3100672 bytes full_surnia.mk | 28 + kernel | Bin 0 -> 6965496 bytes kernel_headers/asm-generic/..install.cmd | 1 + kernel_headers/asm-generic/.install | 0 kernel_headers/asm-generic/auxvec.h | 8 + kernel_headers/asm-generic/bitsperlong.h | 15 + kernel_headers/asm-generic/errno-base.h | 39 + kernel_headers/asm-generic/errno.h | 113 + kernel_headers/asm-generic/fcntl.h | 199 + kernel_headers/asm-generic/int-l64.h | 34 + kernel_headers/asm-generic/int-ll64.h | 39 + kernel_headers/asm-generic/ioctl.h | 96 + kernel_headers/asm-generic/ioctls.h | 120 + kernel_headers/asm-generic/ipcbuf.h | 34 + kernel_headers/asm-generic/kvm_para.h | 4 + kernel_headers/asm-generic/mman-common.h | 69 + kernel_headers/asm-generic/mman.h | 21 + kernel_headers/asm-generic/msgbuf.h | 47 + kernel_headers/asm-generic/param.h | 19 + kernel_headers/asm-generic/poll.h | 39 + kernel_headers/asm-generic/posix_types.h | 96 + kernel_headers/asm-generic/resource.h | 68 + kernel_headers/asm-generic/sembuf.h | 38 + kernel_headers/asm-generic/setup.h | 6 + kernel_headers/asm-generic/shmbuf.h | 59 + kernel_headers/asm-generic/shmparam.h | 6 + kernel_headers/asm-generic/siginfo.h | 296 ++ kernel_headers/asm-generic/signal-defs.h | 28 + kernel_headers/asm-generic/signal.h | 117 + kernel_headers/asm-generic/socket.h | 79 + kernel_headers/asm-generic/sockios.h | 13 + kernel_headers/asm-generic/stat.h | 72 + kernel_headers/asm-generic/statfs.h | 83 + kernel_headers/asm-generic/swab.h | 18 + kernel_headers/asm-generic/termbits.h | 199 + kernel_headers/asm-generic/termios.h | 50 + kernel_headers/asm-generic/types.h | 9 + kernel_headers/asm-generic/ucontext.h | 12 + kernel_headers/asm-generic/unistd.h | 905 ++++ kernel_headers/asm/..install.cmd | 1 + kernel_headers/asm/.install | 0 kernel_headers/asm/auxvec.h | 1 + kernel_headers/asm/bitsperlong.h | 1 + kernel_headers/asm/byteorder.h | 25 + kernel_headers/asm/errno.h | 1 + kernel_headers/asm/fcntl.h | 11 + kernel_headers/asm/hwcap.h | 31 + kernel_headers/asm/ioctl.h | 1 + kernel_headers/asm/ioctls.h | 8 + kernel_headers/asm/ipcbuf.h | 1 + kernel_headers/asm/kvm.h | 202 + kernel_headers/asm/kvm_para.h | 1 + kernel_headers/asm/mman.h | 4 + kernel_headers/asm/msgbuf.h | 1 + kernel_headers/asm/param.h | 1 + kernel_headers/asm/poll.h | 1 + kernel_headers/asm/posix_types.h | 40 + kernel_headers/asm/ptrace.h | 136 + kernel_headers/asm/resource.h | 1 + kernel_headers/asm/sembuf.h | 1 + kernel_headers/asm/setup.h | 187 + kernel_headers/asm/shmbuf.h | 1 + kernel_headers/asm/sigcontext.h | 34 + kernel_headers/asm/siginfo.h | 1 + kernel_headers/asm/signal.h | 116 + kernel_headers/asm/socket.h | 1 + kernel_headers/asm/sockios.h | 1 + kernel_headers/asm/stat.h | 87 + kernel_headers/asm/statfs.h | 12 + kernel_headers/asm/swab.h | 51 + kernel_headers/asm/termbits.h | 1 + kernel_headers/asm/termios.h | 1 + kernel_headers/asm/types.h | 1 + kernel_headers/asm/unistd.h | 451 ++ kernel_headers/drm/..install.cmd | 1 + kernel_headers/drm/.install | 0 kernel_headers/drm/drm.h | 829 ++++ kernel_headers/drm/drm_fourcc.h | 135 + kernel_headers/drm/drm_mode.h | 465 ++ kernel_headers/drm/drm_sarea.h | 84 + kernel_headers/drm/exynos_drm.h | 390 ++ kernel_headers/drm/i810_drm.h | 281 ++ kernel_headers/drm/i915_drm.h | 983 ++++ kernel_headers/drm/kgsl_drm.h | 233 + kernel_headers/drm/mga_drm.h | 419 ++ kernel_headers/drm/nouveau_drm.h | 138 + kernel_headers/drm/qxl_drm.h | 152 + kernel_headers/drm/r128_drm.h | 326 ++ kernel_headers/drm/radeon_drm.h | 1010 ++++ kernel_headers/drm/savage_drm.h | 210 + kernel_headers/drm/sis_drm.h | 71 + kernel_headers/drm/tegra_drm.h | 135 + kernel_headers/drm/via_drm.h | 279 ++ kernel_headers/drm/vmwgfx_drm.h | 790 ++++ kernel_headers/linux/..install.cmd | 1 + kernel_headers/linux/.install | 0 kernel_headers/linux/acct.h | 116 + kernel_headers/linux/adb.h | 44 + kernel_headers/linux/adfs_fs.h | 44 + kernel_headers/linux/affs_hardblocks.h | 68 + kernel_headers/linux/agpgart.h | 111 + kernel_headers/linux/aio_abi.h | 111 + kernel_headers/linux/android_pmem.h | 86 + kernel_headers/linux/apm_bios.h | 135 + kernel_headers/linux/arcfb.h | 8 + kernel_headers/linux/ashmem.h | 40 + kernel_headers/linux/atalk.h | 44 + kernel_headers/linux/atm.h | 241 + kernel_headers/linux/atm_eni.h | 23 + kernel_headers/linux/atm_he.h | 20 + kernel_headers/linux/atm_idt77105.h | 28 + kernel_headers/linux/atm_nicstar.h | 53 + kernel_headers/linux/atm_tcp.h | 61 + kernel_headers/linux/atm_zatm.h | 52 + kernel_headers/linux/atmapi.h | 29 + kernel_headers/linux/atmarp.h | 41 + kernel_headers/linux/atmbr2684.h | 117 + kernel_headers/linux/atmclip.h | 21 + kernel_headers/linux/atmdev.h | 215 + kernel_headers/linux/atmioc.h | 41 + kernel_headers/linux/atmlec.h | 91 + kernel_headers/linux/atmmpc.h | 126 + kernel_headers/linux/atmppp.h | 24 + kernel_headers/linux/atmsap.h | 162 + kernel_headers/linux/atmsvc.h | 55 + kernel_headers/linux/audit.h | 406 ++ kernel_headers/linux/auto_fs.h | 72 + kernel_headers/linux/auto_fs4.h | 164 + kernel_headers/linux/auxvec.h | 36 + kernel_headers/linux/avtimer.h | 10 + kernel_headers/linux/ax25.h | 116 + kernel_headers/linux/b1lli.h | 73 + kernel_headers/linux/batterydata-interface.h | 30 + kernel_headers/linux/baycom.h | 39 + kernel_headers/linux/bfs_fs.h | 81 + kernel_headers/linux/binfmts.h | 20 + kernel_headers/linux/blkpg.h | 59 + kernel_headers/linux/blktrace_api.h | 142 + kernel_headers/linux/bpqether.h | 41 + kernel_headers/linux/bsg.h | 65 + kernel_headers/linux/btrfs.h | 542 +++ kernel_headers/linux/byteorder/..install.cmd | 1 + kernel_headers/linux/byteorder/.install | 0 kernel_headers/linux/byteorder/big_endian.h | 105 + .../linux/byteorder/little_endian.h | 105 + kernel_headers/linux/caif/..install.cmd | 1 + kernel_headers/linux/caif/.install | 0 kernel_headers/linux/caif/caif_socket.h | 194 + kernel_headers/linux/caif/if_caif.h | 34 + kernel_headers/linux/can.h | 162 + kernel_headers/linux/can/..install.cmd | 1 + kernel_headers/linux/can/.install | 0 kernel_headers/linux/can/bcm.h | 66 + kernel_headers/linux/can/error.h | 91 + kernel_headers/linux/can/gw.h | 164 + kernel_headers/linux/can/netlink.h | 122 + kernel_headers/linux/can/raw.h | 30 + kernel_headers/linux/capability.h | 356 ++ kernel_headers/linux/capi.h | 131 + kernel_headers/linux/cciss_defs.h | 130 + kernel_headers/linux/cciss_ioctl.h | 88 + kernel_headers/linux/cdrom.h | 946 ++++ kernel_headers/linux/cgroupstats.h | 71 + kernel_headers/linux/chio.h | 168 + kernel_headers/linux/ci-bridge-spi.h | 10 + kernel_headers/linux/cm4000_cs.h | 62 + kernel_headers/linux/cn_proc.h | 129 + kernel_headers/linux/coda.h | 736 +++ kernel_headers/linux/coda_psdev.h | 27 + kernel_headers/linux/coff.h | 351 ++ kernel_headers/linux/connector.h | 80 + kernel_headers/linux/const.h | 24 + kernel_headers/linux/coresight-stm.h | 21 + kernel_headers/linux/cramfs_fs.h | 88 + kernel_headers/linux/cuda.h | 33 + kernel_headers/linux/cyclades.h | 493 ++ kernel_headers/linux/cycx_cfm.h | 101 + kernel_headers/linux/danipc_ioctl.h | 62 + kernel_headers/linux/dcbnl.h | 684 +++ kernel_headers/linux/dccp.h | 237 + kernel_headers/linux/demod_wrapper.h | 241 + kernel_headers/linux/dlm.h | 75 + kernel_headers/linux/dlm_device.h | 108 + kernel_headers/linux/dlm_netlink.h | 58 + kernel_headers/linux/dlm_plock.h | 45 + kernel_headers/linux/dlmconstants.h | 163 + kernel_headers/linux/dm-ioctl.h | 344 ++ kernel_headers/linux/dm-log-userspace.h | 416 ++ kernel_headers/linux/dn.h | 146 + kernel_headers/linux/dqblk_xfs.h | 166 + kernel_headers/linux/dvb/..install.cmd | 1 + kernel_headers/linux/dvb/.install | 0 kernel_headers/linux/dvb/audio.h | 135 + kernel_headers/linux/dvb/ca.h | 90 + kernel_headers/linux/dvb/dmx.h | 883 ++++ kernel_headers/linux/dvb/frontend.h | 589 +++ kernel_headers/linux/dvb/net.h | 52 + kernel_headers/linux/dvb/osd.h | 144 + kernel_headers/linux/dvb/version.h | 29 + kernel_headers/linux/dvb/video.h | 435 ++ kernel_headers/linux/edd.h | 191 + kernel_headers/linux/efs_fs_sb.h | 62 + kernel_headers/linux/elf-em.h | 58 + kernel_headers/linux/elf-fdpic.h | 34 + kernel_headers/linux/elf.h | 417 ++ kernel_headers/linux/elfcore.h | 96 + kernel_headers/linux/ensigma_uccp330.h | 35 + kernel_headers/linux/epm_adc.h | 215 + kernel_headers/linux/errno.h | 1 + kernel_headers/linux/errqueue.h | 26 + kernel_headers/linux/esoc_ctrl.h | 60 + kernel_headers/linux/ethtool.h | 1100 +++++ kernel_headers/linux/eventpoll.h | 65 + kernel_headers/linux/fadvise.h | 21 + kernel_headers/linux/falloc.h | 9 + kernel_headers/linux/fanotify.h | 116 + kernel_headers/linux/fb.h | 400 ++ kernel_headers/linux/fcntl.h | 52 + kernel_headers/linux/fd.h | 382 ++ kernel_headers/linux/fdreg.h | 137 + kernel_headers/linux/fib_rules.h | 74 + kernel_headers/linux/fiemap.h | 68 + kernel_headers/linux/filter.h | 138 + kernel_headers/linux/fips_status.h | 33 + kernel_headers/linux/firewire-cdev.h | 1039 +++++ kernel_headers/linux/firewire-constants.h | 92 + kernel_headers/linux/flat.h | 58 + kernel_headers/linux/fs.h | 204 + kernel_headers/linux/fsl_hypervisor.h | 220 + kernel_headers/linux/fuse.h | 728 +++ kernel_headers/linux/futex.h | 152 + kernel_headers/linux/gameport.h | 28 + kernel_headers/linux/gen_stats.h | 67 + kernel_headers/linux/genetlink.h | 84 + kernel_headers/linux/gfs2_ondisk.h | 464 ++ kernel_headers/linux/gigaset_dev.h | 38 + kernel_headers/linux/hbtp_input.h | 56 + kernel_headers/linux/hdlc.h | 23 + kernel_headers/linux/hdlc/..install.cmd | 1 + kernel_headers/linux/hdlc/.install | 0 kernel_headers/linux/hdlc/ioctl.h | 84 + kernel_headers/linux/hdlcdrv.h | 110 + kernel_headers/linux/hdreg.h | 642 +++ kernel_headers/linux/hid.h | 66 + kernel_headers/linux/hiddev.h | 212 + kernel_headers/linux/hidraw.h | 50 + kernel_headers/linux/hpet.h | 25 + kernel_headers/linux/hsi/..install.cmd | 1 + kernel_headers/linux/hsi/.install | 0 kernel_headers/linux/hsi/hsi_char.h | 63 + kernel_headers/linux/hw_breakpoint.h | 30 + kernel_headers/linux/hysdn_if.h | 33 + kernel_headers/linux/i2c-dev.h | 72 + kernel_headers/linux/i2c.h | 151 + kernel_headers/linux/i2o-dev.h | 421 ++ kernel_headers/linux/i8k.h | 46 + kernel_headers/linux/icmp.h | 97 + kernel_headers/linux/icmpv6.h | 166 + kernel_headers/linux/idle_stats_device.h | 47 + kernel_headers/linux/if.h | 235 + kernel_headers/linux/if_addr.h | 59 + kernel_headers/linux/if_addrlabel.h | 32 + kernel_headers/linux/if_alg.h | 40 + kernel_headers/linux/if_arcnet.h | 132 + kernel_headers/linux/if_arp.h | 160 + kernel_headers/linux/if_bonding.h | 128 + kernel_headers/linux/if_bridge.h | 196 + kernel_headers/linux/if_cablemodem.h | 22 + kernel_headers/linux/if_eql.h | 54 + kernel_headers/linux/if_ether.h | 142 + kernel_headers/linux/if_fc.h | 51 + kernel_headers/linux/if_fddi.h | 104 + kernel_headers/linux/if_frad.h | 122 + kernel_headers/linux/if_hippi.h | 153 + kernel_headers/linux/if_infiniband.h | 29 + kernel_headers/linux/if_link.h | 453 ++ kernel_headers/linux/if_ltalk.h | 9 + kernel_headers/linux/if_packet.h | 280 ++ kernel_headers/linux/if_phonet.h | 16 + kernel_headers/linux/if_plip.h | 27 + kernel_headers/linux/if_ppp.h | 1 + kernel_headers/linux/if_pppol2tp.h | 104 + kernel_headers/linux/if_pppolac.h | 33 + kernel_headers/linux/if_pppopns.h | 32 + kernel_headers/linux/if_pppox.h | 160 + kernel_headers/linux/if_slip.h | 30 + kernel_headers/linux/if_team.h | 107 + kernel_headers/linux/if_tun.h | 101 + kernel_headers/linux/if_tunnel.h | 116 + kernel_headers/linux/if_vlan.h | 64 + kernel_headers/linux/if_x25.h | 26 + kernel_headers/linux/igmp.h | 128 + kernel_headers/linux/in.h | 253 + kernel_headers/linux/in6.h | 268 ++ kernel_headers/linux/in_route.h | 32 + kernel_headers/linux/inet_diag.h | 137 + kernel_headers/linux/inotify.h | 74 + kernel_headers/linux/input.h | 1196 +++++ kernel_headers/linux/ioctl.h | 7 + kernel_headers/linux/ion.h | 6 + kernel_headers/linux/ioprio.h | 34 + kernel_headers/linux/ip.h | 136 + kernel_headers/linux/ip6_tunnel.h | 51 + kernel_headers/linux/ip_vs.h | 434 ++ kernel_headers/linux/ipa_qmi_service_v01.h | 943 ++++ kernel_headers/linux/ipc.h | 81 + kernel_headers/linux/ipmi.h | 448 ++ kernel_headers/linux/ipmi_msgdefs.h | 121 + kernel_headers/linux/ipsec.h | 47 + kernel_headers/linux/ipv6.h | 169 + kernel_headers/linux/ipv6_route.h | 61 + kernel_headers/linux/ipx.h | 75 + kernel_headers/linux/irda.h | 251 + kernel_headers/linux/irqnr.h | 4 + kernel_headers/linux/isdn.h | 143 + kernel_headers/linux/isdn/..install.cmd | 1 + kernel_headers/linux/isdn/.install | 0 kernel_headers/linux/isdn/capicmd.h | 115 + kernel_headers/linux/isdn_divertif.h | 30 + kernel_headers/linux/isdn_ppp.h | 67 + kernel_headers/linux/isdnif.h | 56 + kernel_headers/linux/iso_fs.h | 165 + kernel_headers/linux/ivtv.h | 73 + kernel_headers/linux/ivtvfb.h | 37 + kernel_headers/linux/ixjuser.h | 720 +++ kernel_headers/linux/jffs2.h | 223 + kernel_headers/linux/joystick.h | 136 + kernel_headers/linux/kd.h | 183 + kernel_headers/linux/kdev_t.h | 11 + kernel_headers/linux/kernel-page-flags.h | 36 + kernel_headers/linux/kernel.h | 13 + kernel_headers/linux/kernelcapi.h | 47 + kernel_headers/linux/kexec.h | 52 + kernel_headers/linux/keyboard.h | 443 ++ kernel_headers/linux/keyctl.h | 60 + kernel_headers/linux/kvm.h | 1066 +++++ kernel_headers/linux/kvm_para.h | 28 + kernel_headers/linux/l2tp.h | 178 + kernel_headers/linux/limits.h | 20 + kernel_headers/linux/llc.h | 84 + kernel_headers/linux/loop.h | 94 + kernel_headers/linux/lp.h | 100 + kernel_headers/linux/magic.h | 78 + kernel_headers/linux/major.h | 177 + kernel_headers/linux/map_to_7segment.h | 187 + kernel_headers/linux/matroxfb.h | 42 + kernel_headers/linux/mdio.h | 297 ++ kernel_headers/linux/media.h | 134 + kernel_headers/linux/mei.h | 110 + kernel_headers/linux/mempolicy.h | 73 + kernel_headers/linux/meye.h | 64 + kernel_headers/linux/mfd/..install.cmd | 1 + kernel_headers/linux/mfd/.install | 0 kernel_headers/linux/mfd/msm-adie-codec.h | 146 + .../linux/mfd/wcd9xxx/..install.cmd | 1 + kernel_headers/linux/mfd/wcd9xxx/.install | 0 .../linux/mfd/wcd9xxx/wcd9310_registers.h | 1106 +++++ .../linux/mfd/wcd9xxx/wcd9320_registers.h | 1399 ++++++ .../linux/mfd/wcd9xxx/wcd9xxx_registers.h | 322 ++ kernel_headers/linux/mii.h | 161 + kernel_headers/linux/minix_fs.h | 106 + kernel_headers/linux/mman.h | 13 + kernel_headers/linux/mmc/..install.cmd | 1 + kernel_headers/linux/mmc/.install | 0 kernel_headers/linux/mmc/core.h | 36 + kernel_headers/linux/mmc/ioctl.h | 111 + kernel_headers/linux/mmc/mmc.h | 65 + kernel_headers/linux/mmtimer.h | 56 + kernel_headers/linux/mqueue.h | 53 + kernel_headers/linux/mroute.h | 146 + kernel_headers/linux/mroute6.h | 138 + kernel_headers/linux/msdos_fs.h | 201 + kernel_headers/linux/msg.h | 76 + kernel_headers/linux/msm-core-interface.h | 29 + kernel_headers/linux/msm_adc.h | 111 + kernel_headers/linux/msm_adsp.h | 77 + kernel_headers/linux/msm_audio.h | 424 ++ kernel_headers/linux/msm_audio_aac.h | 76 + kernel_headers/linux/msm_audio_ac3.h | 41 + kernel_headers/linux/msm_audio_amrnb.h | 33 + kernel_headers/linux/msm_audio_amrwb.h | 18 + kernel_headers/linux/msm_audio_amrwbplus.h | 18 + kernel_headers/linux/msm_audio_calibration.h | 561 +++ kernel_headers/linux/msm_audio_mvs.h | 154 + kernel_headers/linux/msm_audio_qcp.h | 37 + kernel_headers/linux/msm_audio_sbc.h | 36 + kernel_headers/linux/msm_audio_voicememo.h | 66 + kernel_headers/linux/msm_audio_wma.h | 33 + kernel_headers/linux/msm_audio_wmapro.h | 22 + kernel_headers/linux/msm_charm.h | 26 + kernel_headers/linux/msm_dsps.h | 16 + kernel_headers/linux/msm_ion.h | 6 + kernel_headers/linux/msm_ipa.h | 1548 +++++++ kernel_headers/linux/msm_ipc.h | 91 + kernel_headers/linux/msm_kgsl.h | 1097 +++++ kernel_headers/linux/msm_mdp.h | 1161 +++++ kernel_headers/linux/msm_pft.h | 134 + kernel_headers/linux/msm_q6vdec.h | 277 ++ kernel_headers/linux/msm_q6venc.h | 303 ++ kernel_headers/linux/msm_rmnet.h | 146 + kernel_headers/linux/msm_rotator.h | 62 + kernel_headers/linux/msm_thermal_ioctl.h | 82 + kernel_headers/linux/msm_vidc_dec.h | 602 +++ kernel_headers/linux/msm_vidc_enc.h | 700 +++ kernel_headers/linux/mtio.h | 208 + kernel_headers/linux/n_r3964.h | 98 + kernel_headers/linux/nbd.h | 78 + kernel_headers/linux/ncp.h | 198 + kernel_headers/linux/ncp_fs.h | 146 + kernel_headers/linux/ncp_mount.h | 71 + kernel_headers/linux/ncp_no.h | 19 + kernel_headers/linux/neighbour.h | 163 + kernel_headers/linux/net.h | 57 + kernel_headers/linux/net_dropmon.h | 64 + kernel_headers/linux/net_map.h | 32 + kernel_headers/linux/net_tstamp.h | 113 + kernel_headers/linux/netconf.h | 24 + kernel_headers/linux/netdevice.h | 53 + kernel_headers/linux/netfilter.h | 70 + kernel_headers/linux/netfilter/..install.cmd | 1 + kernel_headers/linux/netfilter/.install | 0 .../linux/netfilter/ipset/..install.cmd | 1 + kernel_headers/linux/netfilter/ipset/.install | 0 kernel_headers/linux/netfilter/ipset/ip_set.h | 259 ++ .../linux/netfilter/ipset/ip_set_bitmap.h | 13 + .../linux/netfilter/ipset/ip_set_hash.h | 21 + .../linux/netfilter/ipset/ip_set_list.h | 21 + .../linux/netfilter/nf_conntrack_common.h | 118 + .../linux/netfilter/nf_conntrack_ftp.h | 18 + .../linux/netfilter/nf_conntrack_sctp.h | 25 + .../linux/netfilter/nf_conntrack_tcp.h | 51 + .../netfilter/nf_conntrack_tuple_common.h | 39 + kernel_headers/linux/netfilter/nf_nat.h | 33 + kernel_headers/linux/netfilter/nfnetlink.h | 56 + .../linux/netfilter/nfnetlink_acct.h | 27 + .../linux/netfilter/nfnetlink_compat.h | 61 + .../linux/netfilter/nfnetlink_conntrack.h | 252 + .../linux/netfilter/nfnetlink_cthelper.h | 55 + .../linux/netfilter/nfnetlink_cttimeout.h | 114 + .../linux/netfilter/nfnetlink_log.h | 97 + .../linux/netfilter/nfnetlink_queue.h | 109 + kernel_headers/linux/netfilter/x_tables.h | 185 + kernel_headers/linux/netfilter/xt_AUDIT.h | 30 + kernel_headers/linux/netfilter/xt_CHECKSUM.h | 20 + kernel_headers/linux/netfilter/xt_CLASSIFY.h | 10 + kernel_headers/linux/netfilter/xt_CONNMARK.h | 6 + .../linux/netfilter/xt_CONNSECMARK.h | 15 + kernel_headers/linux/netfilter/xt_CT.h | 35 + kernel_headers/linux/netfilter/xt_DSCP.h | 26 + kernel_headers/linux/netfilter/xt_IDLETIMER.h | 53 + kernel_headers/linux/netfilter/xt_LED.h | 15 + kernel_headers/linux/netfilter/xt_LOG.h | 19 + kernel_headers/linux/netfilter/xt_MARK.h | 6 + kernel_headers/linux/netfilter/xt_NFLOG.h | 20 + kernel_headers/linux/netfilter/xt_NFQUEUE.h | 38 + kernel_headers/linux/netfilter/xt_RATEEST.h | 15 + kernel_headers/linux/netfilter/xt_SECMARK.h | 22 + kernel_headers/linux/netfilter/xt_TCPMSS.h | 12 + .../linux/netfilter/xt_TCPOPTSTRIP.h | 15 + kernel_headers/linux/netfilter/xt_TEE.h | 12 + kernel_headers/linux/netfilter/xt_TPROXY.h | 23 + kernel_headers/linux/netfilter/xt_addrtype.h | 44 + kernel_headers/linux/netfilter/xt_bpf.h | 17 + kernel_headers/linux/netfilter/xt_cluster.h | 19 + kernel_headers/linux/netfilter/xt_comment.h | 10 + kernel_headers/linux/netfilter/xt_connbytes.h | 26 + kernel_headers/linux/netfilter/xt_connlabel.h | 12 + kernel_headers/linux/netfilter/xt_connlimit.h | 30 + kernel_headers/linux/netfilter/xt_connmark.h | 31 + kernel_headers/linux/netfilter/xt_conntrack.h | 78 + kernel_headers/linux/netfilter/xt_cpu.h | 11 + kernel_headers/linux/netfilter/xt_dccp.h | 25 + kernel_headers/linux/netfilter/xt_devgroup.h | 21 + kernel_headers/linux/netfilter/xt_dscp.h | 31 + kernel_headers/linux/netfilter/xt_ecn.h | 35 + kernel_headers/linux/netfilter/xt_esp.h | 15 + kernel_headers/linux/netfilter/xt_hashlimit.h | 73 + kernel_headers/linux/netfilter/xt_helper.h | 8 + kernel_headers/linux/netfilter/xt_iprange.h | 20 + kernel_headers/linux/netfilter/xt_ipvs.h | 29 + kernel_headers/linux/netfilter/xt_length.h | 11 + kernel_headers/linux/netfilter/xt_limit.h | 24 + kernel_headers/linux/netfilter/xt_mac.h | 8 + kernel_headers/linux/netfilter/xt_mark.h | 15 + kernel_headers/linux/netfilter/xt_multiport.h | 29 + kernel_headers/linux/netfilter/xt_nfacct.h | 13 + kernel_headers/linux/netfilter/xt_osf.h | 135 + kernel_headers/linux/netfilter/xt_owner.h | 18 + kernel_headers/linux/netfilter/xt_physdev.h | 23 + kernel_headers/linux/netfilter/xt_pkttype.h | 8 + kernel_headers/linux/netfilter/xt_policy.h | 58 + kernel_headers/linux/netfilter/xt_quota.h | 22 + kernel_headers/linux/netfilter/xt_rateest.h | 37 + kernel_headers/linux/netfilter/xt_realm.h | 12 + kernel_headers/linux/netfilter/xt_recent.h | 45 + kernel_headers/linux/netfilter/xt_sctp.h | 92 + kernel_headers/linux/netfilter/xt_set.h | 74 + kernel_headers/linux/netfilter/xt_socket.h | 20 + kernel_headers/linux/netfilter/xt_state.h | 12 + kernel_headers/linux/netfilter/xt_statistic.h | 36 + kernel_headers/linux/netfilter/xt_string.h | 34 + kernel_headers/linux/netfilter/xt_tcpmss.h | 11 + kernel_headers/linux/netfilter/xt_tcpudp.h | 36 + kernel_headers/linux/netfilter/xt_time.h | 32 + kernel_headers/linux/netfilter/xt_u32.h | 42 + kernel_headers/linux/netfilter_arp.h | 19 + .../linux/netfilter_arp/..install.cmd | 1 + kernel_headers/linux/netfilter_arp/.install | 0 .../linux/netfilter_arp/arp_tables.h | 204 + .../linux/netfilter_arp/arpt_mangle.h | 26 + kernel_headers/linux/netfilter_bridge.h | 27 + .../linux/netfilter_bridge/..install.cmd | 1 + .../linux/netfilter_bridge/.install | 0 .../linux/netfilter_bridge/ebt_802_3.h | 62 + .../linux/netfilter_bridge/ebt_among.h | 64 + .../linux/netfilter_bridge/ebt_arp.h | 36 + .../linux/netfilter_bridge/ebt_arpreply.h | 10 + .../linux/netfilter_bridge/ebt_ip.h | 44 + .../linux/netfilter_bridge/ebt_ip6.h | 50 + .../linux/netfilter_bridge/ebt_limit.h | 24 + .../linux/netfilter_bridge/ebt_log.h | 20 + .../linux/netfilter_bridge/ebt_mark_m.h | 16 + .../linux/netfilter_bridge/ebt_mark_t.h | 23 + .../linux/netfilter_bridge/ebt_nat.h | 13 + .../linux/netfilter_bridge/ebt_nflog.h | 23 + .../linux/netfilter_bridge/ebt_pkttype.h | 12 + .../linux/netfilter_bridge/ebt_redirect.h | 10 + .../linux/netfilter_bridge/ebt_stp.h | 46 + .../linux/netfilter_bridge/ebt_ulog.h | 38 + .../linux/netfilter_bridge/ebt_vlan.h | 22 + .../linux/netfilter_bridge/ebtables.h | 268 ++ kernel_headers/linux/netfilter_decnet.h | 75 + kernel_headers/linux/netfilter_ipv4.h | 79 + .../linux/netfilter_ipv4/..install.cmd | 1 + kernel_headers/linux/netfilter_ipv4/.install | 0 .../linux/netfilter_ipv4/ip_tables.h | 227 + .../linux/netfilter_ipv4/ipt_CLUSTERIP.h | 36 + kernel_headers/linux/netfilter_ipv4/ipt_ECN.h | 33 + kernel_headers/linux/netfilter_ipv4/ipt_LOG.h | 21 + .../linux/netfilter_ipv4/ipt_NATTYPE.h | 28 + .../linux/netfilter_ipv4/ipt_REJECT.h | 20 + kernel_headers/linux/netfilter_ipv4/ipt_TTL.h | 23 + .../linux/netfilter_ipv4/ipt_ULOG.h | 49 + kernel_headers/linux/netfilter_ipv4/ipt_ah.h | 17 + kernel_headers/linux/netfilter_ipv4/ipt_ecn.h | 15 + kernel_headers/linux/netfilter_ipv4/ipt_ttl.h | 23 + kernel_headers/linux/netfilter_ipv6.h | 77 + .../linux/netfilter_ipv6/..install.cmd | 1 + kernel_headers/linux/netfilter_ipv6/.install | 0 .../linux/netfilter_ipv6/ip6_tables.h | 268 ++ kernel_headers/linux/netfilter_ipv6/ip6t_HL.h | 24 + .../linux/netfilter_ipv6/ip6t_LOG.h | 21 + .../linux/netfilter_ipv6/ip6t_NPT.h | 16 + .../linux/netfilter_ipv6/ip6t_REJECT.h | 20 + kernel_headers/linux/netfilter_ipv6/ip6t_ah.h | 22 + .../linux/netfilter_ipv6/ip6t_frag.h | 25 + kernel_headers/linux/netfilter_ipv6/ip6t_hl.h | 24 + .../linux/netfilter_ipv6/ip6t_ipv6header.h | 28 + kernel_headers/linux/netfilter_ipv6/ip6t_mh.h | 16 + .../linux/netfilter_ipv6/ip6t_opts.h | 24 + kernel_headers/linux/netfilter_ipv6/ip6t_rt.h | 33 + kernel_headers/linux/netlink.h | 184 + kernel_headers/linux/netlink_diag.h | 52 + kernel_headers/linux/netrom.h | 36 + kernel_headers/linux/nfc.h | 242 + kernel_headers/linux/nfs.h | 131 + kernel_headers/linux/nfs2.h | 67 + kernel_headers/linux/nfs3.h | 97 + kernel_headers/linux/nfs4.h | 178 + kernel_headers/linux/nfs4_mount.h | 71 + kernel_headers/linux/nfs_fs.h | 61 + kernel_headers/linux/nfs_idmap.h | 65 + kernel_headers/linux/nfs_mount.h | 77 + kernel_headers/linux/nfsacl.h | 29 + kernel_headers/linux/nfsd/..install.cmd | 1 + kernel_headers/linux/nfsd/.install | 0 kernel_headers/linux/nfsd/cld.h | 56 + kernel_headers/linux/nfsd/debug.h | 40 + kernel_headers/linux/nfsd/export.h | 58 + kernel_headers/linux/nfsd/nfsfh.h | 122 + kernel_headers/linux/nfsd/stats.h | 17 + kernel_headers/linux/nl80211.h | 4075 +++++++++++++++++ kernel_headers/linux/nubus.h | 244 + kernel_headers/linux/nvram.h | 16 + kernel_headers/linux/omap3isp.h | 646 +++ kernel_headers/linux/omapfb.h | 222 + kernel_headers/linux/oneshot_sync.h | 49 + kernel_headers/linux/oom.h | 20 + kernel_headers/linux/openvswitch.h | 456 ++ kernel_headers/linux/packet_diag.h | 79 + kernel_headers/linux/param.h | 6 + kernel_headers/linux/parport.h | 95 + kernel_headers/linux/patchkey.h | 33 + kernel_headers/linux/pci.h | 41 + kernel_headers/linux/pci_regs.h | 867 ++++ kernel_headers/linux/perf_event.h | 688 +++ kernel_headers/linux/personality.h | 69 + kernel_headers/linux/pfkeyv2.h | 370 ++ kernel_headers/linux/pg.h | 63 + kernel_headers/linux/phantom.h | 49 + kernel_headers/linux/phonet.h | 185 + kernel_headers/linux/pkt_cls.h | 469 ++ kernel_headers/linux/pkt_sched.h | 748 +++ kernel_headers/linux/pktcdvd.h | 111 + kernel_headers/linux/pmu.h | 139 + kernel_headers/linux/poll.h | 1 + kernel_headers/linux/posix_types.h | 37 + kernel_headers/linux/ppdev.h | 99 + kernel_headers/linux/ppp-comp.h | 93 + kernel_headers/linux/ppp-ioctl.h | 119 + kernel_headers/linux/ppp_defs.h | 150 + kernel_headers/linux/pps.h | 131 + kernel_headers/linux/prctl.h | 161 + kernel_headers/linux/psci.h | 90 + kernel_headers/linux/ptp_clock.h | 98 + kernel_headers/linux/ptrace.h | 96 + kernel_headers/linux/qcedev.h | 259 ++ kernel_headers/linux/qcota.h | 210 + kernel_headers/linux/qnx4_fs.h | 88 + kernel_headers/linux/qnxtypes.h | 28 + kernel_headers/linux/qrng.h | 12 + kernel_headers/linux/qseecom.h | 291 ++ kernel_headers/linux/quota.h | 171 + kernel_headers/linux/radeonfb.h | 15 + kernel_headers/linux/raid/..install.cmd | 1 + kernel_headers/linux/raid/.install | 0 kernel_headers/linux/raid/md_p.h | 303 ++ kernel_headers/linux/raid/md_u.h | 155 + kernel_headers/linux/random.h | 50 + kernel_headers/linux/raw.h | 18 + kernel_headers/linux/rds.h | 285 ++ kernel_headers/linux/reboot.h | 39 + kernel_headers/linux/reiserfs_fs.h | 26 + kernel_headers/linux/reiserfs_xattr.h | 24 + kernel_headers/linux/resource.h | 80 + kernel_headers/linux/rfkill.h | 109 + kernel_headers/linux/rmnet_data.h | 250 + kernel_headers/linux/rmnet_ipa_fd_ioctl.h | 35 + kernel_headers/linux/romfs_fs.h | 59 + kernel_headers/linux/rose.h | 90 + kernel_headers/linux/route.h | 67 + kernel_headers/linux/rtc.h | 107 + kernel_headers/linux/rtnetlink.h | 638 +++ kernel_headers/linux/scc.h | 172 + kernel_headers/linux/sched.h | 46 + kernel_headers/linux/screen_info.h | 74 + kernel_headers/linux/sctp.h | 840 ++++ kernel_headers/linux/sdla.h | 116 + kernel_headers/linux/seccomp.h | 47 + kernel_headers/linux/securebits.h | 51 + kernel_headers/linux/selinux_netlink.h | 48 + kernel_headers/linux/sem.h | 80 + kernel_headers/linux/serial.h | 126 + kernel_headers/linux/serial_core.h | 229 + kernel_headers/linux/serial_reg.h | 389 ++ kernel_headers/linux/serio.h | 80 + kernel_headers/linux/shm.h | 75 + kernel_headers/linux/signal.h | 10 + kernel_headers/linux/signalfd.h | 52 + kernel_headers/linux/snmp.h | 293 ++ kernel_headers/linux/sock_diag.h | 26 + kernel_headers/linux/socket.h | 21 + kernel_headers/linux/sockev.h | 31 + kernel_headers/linux/sockios.h | 149 + kernel_headers/linux/som.h | 154 + kernel_headers/linux/sonet.h | 60 + kernel_headers/linux/sonypi.h | 146 + kernel_headers/linux/sound.h | 31 + kernel_headers/linux/soundcard.h | 1276 ++++++ kernel_headers/linux/spi/..install.cmd | 1 + kernel_headers/linux/spi/.install | 0 kernel_headers/linux/spi/spidev.h | 131 + .../linux/staging/android/uapi/..install.cmd | 1 + .../linux/staging/android/uapi/.install | 0 .../linux/staging/android/uapi/ion.h | 195 + .../linux/staging/android/uapi/msm_ion.h | 175 + kernel_headers/linux/stat.h | 45 + kernel_headers/linux/stddef.h | 1 + kernel_headers/linux/string.h | 7 + kernel_headers/linux/sunrpc/..install.cmd | 1 + kernel_headers/linux/sunrpc/.install | 0 kernel_headers/linux/sunrpc/debug.h | 48 + kernel_headers/linux/suspend_ioctls.h | 33 + kernel_headers/linux/swab.h | 288 ++ kernel_headers/linux/synclink.h | 300 ++ kernel_headers/linux/sysctl.h | 933 ++++ kernel_headers/linux/sysinfo.h | 24 + kernel_headers/linux/taskstats.h | 213 + kernel_headers/linux/tc_act/..install.cmd | 1 + kernel_headers/linux/tc_act/.install | 0 kernel_headers/linux/tc_act/tc_csum.h | 32 + kernel_headers/linux/tc_act/tc_gact.h | 32 + kernel_headers/linux/tc_act/tc_ipt.h | 20 + kernel_headers/linux/tc_act/tc_mirred.h | 27 + kernel_headers/linux/tc_act/tc_nat.h | 27 + kernel_headers/linux/tc_act/tc_pedit.h | 34 + kernel_headers/linux/tc_act/tc_skbedit.h | 46 + kernel_headers/linux/tc_ematch/..install.cmd | 1 + kernel_headers/linux/tc_ematch/.install | 0 kernel_headers/linux/tc_ematch/tc_em_cmp.h | 25 + kernel_headers/linux/tc_ematch/tc_em_meta.h | 92 + kernel_headers/linux/tc_ematch/tc_em_nbyte.h | 13 + kernel_headers/linux/tc_ematch/tc_em_text.h | 19 + kernel_headers/linux/tcp.h | 202 + kernel_headers/linux/tcp_metrics.h | 54 + kernel_headers/linux/telephony.h | 262 ++ kernel_headers/linux/termios.h | 22 + kernel_headers/linux/time.h | 73 + kernel_headers/linux/times.h | 13 + kernel_headers/linux/timex.h | 164 + kernel_headers/linux/tiocl.h | 39 + kernel_headers/linux/tipc.h | 209 + kernel_headers/linux/tipc_config.h | 393 ++ kernel_headers/linux/toshiba.h | 37 + kernel_headers/linux/tsc.h | 160 + kernel_headers/linux/tty.h | 39 + kernel_headers/linux/tty_flags.h | 78 + kernel_headers/linux/types.h | 51 + kernel_headers/linux/udf_fs_i.h | 21 + kernel_headers/linux/udp.h | 39 + kernel_headers/linux/uhid.h | 104 + kernel_headers/linux/uinput.h | 137 + kernel_headers/linux/uio.h | 30 + kernel_headers/linux/ultrasound.h | 103 + kernel_headers/linux/un.h | 13 + kernel_headers/linux/unistd.h | 9 + kernel_headers/linux/unix_diag.h | 57 + kernel_headers/linux/usb/..install.cmd | 1 + kernel_headers/linux/usb/.install | 0 kernel_headers/linux/usb/audio.h | 550 +++ kernel_headers/linux/usb/ccid_bridge.h | 64 + kernel_headers/linux/usb/cdc-wdm.h | 23 + kernel_headers/linux/usb/cdc.h | 448 ++ kernel_headers/linux/usb/ch11.h | 266 ++ kernel_headers/linux/usb/ch9.h | 1014 ++++ kernel_headers/linux/usb/functionfs.h | 172 + kernel_headers/linux/usb/g_printer.h | 35 + kernel_headers/linux/usb/gadgetfs.h | 88 + kernel_headers/linux/usb/midi.h | 112 + kernel_headers/linux/usb/msm_ext_chg.h | 41 + kernel_headers/linux/usb/tmc.h | 43 + kernel_headers/linux/usb/video.h | 568 +++ kernel_headers/linux/usbdevice_fs.h | 180 + kernel_headers/linux/utime.h | 11 + kernel_headers/linux/utsname.h | 34 + kernel_headers/linux/uuid.h | 58 + kernel_headers/linux/uvcvideo.h | 70 + kernel_headers/linux/v4l2-common.h | 71 + kernel_headers/linux/v4l2-controls.h | 1257 +++++ kernel_headers/linux/v4l2-dv-timings.h | 834 ++++ kernel_headers/linux/v4l2-mediabus.h | 130 + kernel_headers/linux/v4l2-subdev.h | 180 + kernel_headers/linux/version.h | 2 + kernel_headers/linux/veth.h | 12 + kernel_headers/linux/vfio.h | 378 ++ kernel_headers/linux/vhost.h | 158 + kernel_headers/linux/videodev2.h | 2028 ++++++++ kernel_headers/linux/virtio_9p.h | 44 + kernel_headers/linux/virtio_balloon.h | 59 + kernel_headers/linux/virtio_blk.h | 128 + kernel_headers/linux/virtio_config.h | 54 + kernel_headers/linux/virtio_console.h | 74 + kernel_headers/linux/virtio_ids.h | 43 + kernel_headers/linux/virtio_net.h | 202 + kernel_headers/linux/virtio_pci.h | 95 + kernel_headers/linux/virtio_ring.h | 163 + kernel_headers/linux/virtio_rng.h | 8 + kernel_headers/linux/vm_bms.h | 34 + kernel_headers/linux/vt.h | 90 + kernel_headers/linux/wait.h | 21 + kernel_headers/linux/wanrouter.h | 17 + kernel_headers/linux/watchdog.h | 57 + kernel_headers/linux/wimax.h | 239 + kernel_headers/linux/wimax/..install.cmd | 1 + kernel_headers/linux/wimax/.install | 0 kernel_headers/linux/wimax/i2400m.h | 572 +++ kernel_headers/linux/wireless.h | 1128 +++++ kernel_headers/linux/x25.h | 152 + kernel_headers/linux/xattr.h | 67 + kernel_headers/linux/xfrm.h | 507 ++ kernel_headers/media/..install.cmd | 1 + kernel_headers/media/.install | 0 kernel_headers/media/msm_cam_sensor.h | 832 ++++ kernel_headers/media/msm_camera.h | 2280 +++++++++ kernel_headers/media/msm_camsensor_sdk.h | 338 ++ kernel_headers/media/msm_fd.h | 104 + kernel_headers/media/msm_gemini.h | 123 + kernel_headers/media/msm_gestures.h | 54 + kernel_headers/media/msm_isp.h | 344 ++ kernel_headers/media/msm_jpeg.h | 124 + kernel_headers/media/msm_media_info.h | 299 ++ kernel_headers/media/msm_mercury.h | 119 + kernel_headers/media/msm_vidc.h | 154 + kernel_headers/media/msm_vpu.h | 475 ++ kernel_headers/media/msmb_camera.h | 201 + kernel_headers/media/msmb_generic_buf_mgr.h | 48 + kernel_headers/media/msmb_isp.h | 570 +++ kernel_headers/media/msmb_ispif.h | 125 + kernel_headers/media/msmb_pproc.h | 429 ++ kernel_headers/media/radio-iris-commands.h | 109 + kernel_headers/media/radio-iris.h | 1095 +++++ kernel_headers/media/tavarua.h | 589 +++ kernel_headers/mtd/..install.cmd | 1 + kernel_headers/mtd/.install | 0 kernel_headers/mtd/inftl-user.h | 91 + kernel_headers/mtd/mtd-abi.h | 278 ++ kernel_headers/mtd/mtd-user.h | 34 + kernel_headers/mtd/nftl-user.h | 90 + kernel_headers/mtd/ubi-user.h | 420 ++ kernel_headers/rdma/..install.cmd | 1 + kernel_headers/rdma/.install | 0 kernel_headers/rdma/ib_user_cm.h | 325 ++ kernel_headers/rdma/ib_user_mad.h | 203 + kernel_headers/rdma/ib_user_sa.h | 76 + kernel_headers/rdma/ib_user_verbs.h | 750 +++ kernel_headers/rdma/rdma_netlink.h | 37 + kernel_headers/rdma/rdma_user_cm.h | 249 + kernel_headers/scsi/..install.cmd | 1 + kernel_headers/scsi/.install | 0 kernel_headers/scsi/fc/..install.cmd | 1 + kernel_headers/scsi/fc/.install | 0 kernel_headers/scsi/fc/fc_els.h | 831 ++++ kernel_headers/scsi/fc/fc_fs.h | 348 ++ kernel_headers/scsi/fc/fc_gs.h | 96 + kernel_headers/scsi/fc/fc_ns.h | 208 + kernel_headers/scsi/scsi_bsg_fc.h | 320 ++ kernel_headers/scsi/scsi_ioctl.h | 59 + kernel_headers/scsi/scsi_netlink.h | 123 + kernel_headers/scsi/scsi_netlink_fc.h | 71 + kernel_headers/scsi/sg.h | 304 ++ kernel_headers/scsi/ufs/..install.cmd | 1 + kernel_headers/scsi/ufs/.install | 0 kernel_headers/scsi/ufs/ioctl.h | 57 + kernel_headers/scsi/ufs/ufs.h | 66 + kernel_headers/sound/..install.cmd | 1 + kernel_headers/sound/.install | 0 kernel_headers/sound/asequencer.h | 614 +++ kernel_headers/sound/asound.h | 975 ++++ kernel_headers/sound/asound_fm.h | 134 + kernel_headers/sound/audio_effects.h | 332 ++ kernel_headers/sound/audio_slimslave.h | 18 + kernel_headers/sound/compress_offload.h | 203 + kernel_headers/sound/compress_params.h | 438 ++ kernel_headers/sound/devdep_params.h | 41 + kernel_headers/sound/emu10k1.h | 371 ++ kernel_headers/sound/hdsp.h | 110 + kernel_headers/sound/hdspm.h | 229 + kernel_headers/sound/lsm_params.h | 75 + kernel_headers/sound/msmcal-hwdep.h | 34 + kernel_headers/sound/sb16_csp.h | 122 + kernel_headers/sound/sfnt_info.h | 212 + kernel_headers/sound/tlv.h | 101 + kernel_headers/sound/voice_params.h | 14 + kernel_headers/sound/voice_svc.h | 47 + kernel_headers/uapi/..install.cmd | 1 + kernel_headers/uapi/.install | 0 kernel_headers/video/..install.cmd | 1 + kernel_headers/video/.install | 0 kernel_headers/video/edid.h | 9 + kernel_headers/video/msm_hdmi_hdcp_mgr.h | 54 + kernel_headers/video/msm_hdmi_modes.h | 463 ++ kernel_headers/video/sisfb.h | 209 + kernel_headers/video/uvesafb.h | 60 + kernel_headers/xen/..install.cmd | 1 + kernel_headers/xen/.install | 0 kernel_headers/xen/evtchn.h | 88 + kernel_headers/xen/privcmd.h | 98 + omni_surnia.mk | 22 + slim.mk | 26 + twrp.fstab | 9 + vendorsetup.sh | 2 + 878 files changed, 124580 insertions(+) create mode 100644 .gitignore create mode 100644 Android.mk create mode 100644 AndroidBoard.mk create mode 100644 AndroidProducts.mk create mode 100644 BoardConfig.mk create mode 100644 device.mk create mode 100644 dt.img create mode 100644 full_surnia.mk create mode 100644 kernel create mode 100644 kernel_headers/asm-generic/..install.cmd create mode 100644 kernel_headers/asm-generic/.install create mode 100644 kernel_headers/asm-generic/auxvec.h create mode 100644 kernel_headers/asm-generic/bitsperlong.h create mode 100644 kernel_headers/asm-generic/errno-base.h create mode 100644 kernel_headers/asm-generic/errno.h create mode 100644 kernel_headers/asm-generic/fcntl.h create mode 100644 kernel_headers/asm-generic/int-l64.h create mode 100644 kernel_headers/asm-generic/int-ll64.h create mode 100644 kernel_headers/asm-generic/ioctl.h create mode 100644 kernel_headers/asm-generic/ioctls.h create mode 100644 kernel_headers/asm-generic/ipcbuf.h create mode 100644 kernel_headers/asm-generic/kvm_para.h create mode 100644 kernel_headers/asm-generic/mman-common.h create mode 100644 kernel_headers/asm-generic/mman.h create mode 100644 kernel_headers/asm-generic/msgbuf.h create mode 100644 kernel_headers/asm-generic/param.h create mode 100644 kernel_headers/asm-generic/poll.h create mode 100644 kernel_headers/asm-generic/posix_types.h create mode 100644 kernel_headers/asm-generic/resource.h create mode 100644 kernel_headers/asm-generic/sembuf.h create mode 100644 kernel_headers/asm-generic/setup.h create mode 100644 kernel_headers/asm-generic/shmbuf.h create mode 100644 kernel_headers/asm-generic/shmparam.h create mode 100644 kernel_headers/asm-generic/siginfo.h create mode 100644 kernel_headers/asm-generic/signal-defs.h create mode 100644 kernel_headers/asm-generic/signal.h create mode 100644 kernel_headers/asm-generic/socket.h create mode 100644 kernel_headers/asm-generic/sockios.h create mode 100644 kernel_headers/asm-generic/stat.h create mode 100644 kernel_headers/asm-generic/statfs.h create mode 100644 kernel_headers/asm-generic/swab.h create mode 100644 kernel_headers/asm-generic/termbits.h create mode 100644 kernel_headers/asm-generic/termios.h create mode 100644 kernel_headers/asm-generic/types.h create mode 100644 kernel_headers/asm-generic/ucontext.h create mode 100644 kernel_headers/asm-generic/unistd.h create mode 100644 kernel_headers/asm/..install.cmd create mode 100644 kernel_headers/asm/.install create mode 100644 kernel_headers/asm/auxvec.h create mode 100644 kernel_headers/asm/bitsperlong.h create mode 100644 kernel_headers/asm/byteorder.h create mode 100644 kernel_headers/asm/errno.h create mode 100644 kernel_headers/asm/fcntl.h create mode 100644 kernel_headers/asm/hwcap.h create mode 100644 kernel_headers/asm/ioctl.h create mode 100644 kernel_headers/asm/ioctls.h create mode 100644 kernel_headers/asm/ipcbuf.h create mode 100644 kernel_headers/asm/kvm.h create mode 100644 kernel_headers/asm/kvm_para.h create mode 100644 kernel_headers/asm/mman.h create mode 100644 kernel_headers/asm/msgbuf.h create mode 100644 kernel_headers/asm/param.h create mode 100644 kernel_headers/asm/poll.h create mode 100644 kernel_headers/asm/posix_types.h create mode 100644 kernel_headers/asm/ptrace.h create mode 100644 kernel_headers/asm/resource.h create mode 100644 kernel_headers/asm/sembuf.h create mode 100644 kernel_headers/asm/setup.h create mode 100644 kernel_headers/asm/shmbuf.h create mode 100644 kernel_headers/asm/sigcontext.h create mode 100644 kernel_headers/asm/siginfo.h create mode 100644 kernel_headers/asm/signal.h create mode 100644 kernel_headers/asm/socket.h create mode 100644 kernel_headers/asm/sockios.h create mode 100644 kernel_headers/asm/stat.h create mode 100644 kernel_headers/asm/statfs.h create mode 100644 kernel_headers/asm/swab.h create mode 100644 kernel_headers/asm/termbits.h create mode 100644 kernel_headers/asm/termios.h create mode 100644 kernel_headers/asm/types.h create mode 100644 kernel_headers/asm/unistd.h create mode 100644 kernel_headers/drm/..install.cmd create mode 100644 kernel_headers/drm/.install create mode 100644 kernel_headers/drm/drm.h create mode 100644 kernel_headers/drm/drm_fourcc.h create mode 100644 kernel_headers/drm/drm_mode.h create mode 100644 kernel_headers/drm/drm_sarea.h create mode 100644 kernel_headers/drm/exynos_drm.h create mode 100644 kernel_headers/drm/i810_drm.h create mode 100644 kernel_headers/drm/i915_drm.h create mode 100644 kernel_headers/drm/kgsl_drm.h create mode 100644 kernel_headers/drm/mga_drm.h create mode 100644 kernel_headers/drm/nouveau_drm.h create mode 100644 kernel_headers/drm/qxl_drm.h create mode 100644 kernel_headers/drm/r128_drm.h create mode 100644 kernel_headers/drm/radeon_drm.h create mode 100644 kernel_headers/drm/savage_drm.h create mode 100644 kernel_headers/drm/sis_drm.h create mode 100644 kernel_headers/drm/tegra_drm.h create mode 100644 kernel_headers/drm/via_drm.h create mode 100644 kernel_headers/drm/vmwgfx_drm.h create mode 100644 kernel_headers/linux/..install.cmd create mode 100644 kernel_headers/linux/.install create mode 100644 kernel_headers/linux/acct.h create mode 100644 kernel_headers/linux/adb.h create mode 100644 kernel_headers/linux/adfs_fs.h create mode 100644 kernel_headers/linux/affs_hardblocks.h create mode 100644 kernel_headers/linux/agpgart.h create mode 100644 kernel_headers/linux/aio_abi.h create mode 100644 kernel_headers/linux/android_pmem.h create mode 100644 kernel_headers/linux/apm_bios.h create mode 100644 kernel_headers/linux/arcfb.h create mode 100644 kernel_headers/linux/ashmem.h create mode 100644 kernel_headers/linux/atalk.h create mode 100644 kernel_headers/linux/atm.h create mode 100644 kernel_headers/linux/atm_eni.h create mode 100644 kernel_headers/linux/atm_he.h create mode 100644 kernel_headers/linux/atm_idt77105.h create mode 100644 kernel_headers/linux/atm_nicstar.h create mode 100644 kernel_headers/linux/atm_tcp.h create mode 100644 kernel_headers/linux/atm_zatm.h create mode 100644 kernel_headers/linux/atmapi.h create mode 100644 kernel_headers/linux/atmarp.h create mode 100644 kernel_headers/linux/atmbr2684.h create mode 100644 kernel_headers/linux/atmclip.h create mode 100644 kernel_headers/linux/atmdev.h create mode 100644 kernel_headers/linux/atmioc.h create mode 100644 kernel_headers/linux/atmlec.h create mode 100644 kernel_headers/linux/atmmpc.h create mode 100644 kernel_headers/linux/atmppp.h create mode 100644 kernel_headers/linux/atmsap.h create mode 100644 kernel_headers/linux/atmsvc.h create mode 100644 kernel_headers/linux/audit.h create mode 100644 kernel_headers/linux/auto_fs.h create mode 100644 kernel_headers/linux/auto_fs4.h create mode 100644 kernel_headers/linux/auxvec.h create mode 100644 kernel_headers/linux/avtimer.h create mode 100644 kernel_headers/linux/ax25.h create mode 100644 kernel_headers/linux/b1lli.h create mode 100644 kernel_headers/linux/batterydata-interface.h create mode 100644 kernel_headers/linux/baycom.h create mode 100644 kernel_headers/linux/bfs_fs.h create mode 100644 kernel_headers/linux/binfmts.h create mode 100644 kernel_headers/linux/blkpg.h create mode 100644 kernel_headers/linux/blktrace_api.h create mode 100644 kernel_headers/linux/bpqether.h create mode 100644 kernel_headers/linux/bsg.h create mode 100644 kernel_headers/linux/btrfs.h create mode 100644 kernel_headers/linux/byteorder/..install.cmd create mode 100644 kernel_headers/linux/byteorder/.install create mode 100644 kernel_headers/linux/byteorder/big_endian.h create mode 100644 kernel_headers/linux/byteorder/little_endian.h create mode 100644 kernel_headers/linux/caif/..install.cmd create mode 100644 kernel_headers/linux/caif/.install create mode 100644 kernel_headers/linux/caif/caif_socket.h create mode 100644 kernel_headers/linux/caif/if_caif.h create mode 100644 kernel_headers/linux/can.h create mode 100644 kernel_headers/linux/can/..install.cmd create mode 100644 kernel_headers/linux/can/.install create mode 100644 kernel_headers/linux/can/bcm.h create mode 100644 kernel_headers/linux/can/error.h create mode 100644 kernel_headers/linux/can/gw.h create mode 100644 kernel_headers/linux/can/netlink.h create mode 100644 kernel_headers/linux/can/raw.h create mode 100644 kernel_headers/linux/capability.h create mode 100644 kernel_headers/linux/capi.h create mode 100644 kernel_headers/linux/cciss_defs.h create mode 100644 kernel_headers/linux/cciss_ioctl.h create mode 100644 kernel_headers/linux/cdrom.h create mode 100644 kernel_headers/linux/cgroupstats.h create mode 100644 kernel_headers/linux/chio.h create mode 100644 kernel_headers/linux/ci-bridge-spi.h create mode 100644 kernel_headers/linux/cm4000_cs.h create mode 100644 kernel_headers/linux/cn_proc.h create mode 100644 kernel_headers/linux/coda.h create mode 100644 kernel_headers/linux/coda_psdev.h create mode 100644 kernel_headers/linux/coff.h create mode 100644 kernel_headers/linux/connector.h create mode 100644 kernel_headers/linux/const.h create mode 100644 kernel_headers/linux/coresight-stm.h create mode 100644 kernel_headers/linux/cramfs_fs.h create mode 100644 kernel_headers/linux/cuda.h create mode 100644 kernel_headers/linux/cyclades.h create mode 100644 kernel_headers/linux/cycx_cfm.h create mode 100644 kernel_headers/linux/danipc_ioctl.h create mode 100644 kernel_headers/linux/dcbnl.h create mode 100644 kernel_headers/linux/dccp.h create mode 100644 kernel_headers/linux/demod_wrapper.h create mode 100644 kernel_headers/linux/dlm.h create mode 100644 kernel_headers/linux/dlm_device.h create mode 100644 kernel_headers/linux/dlm_netlink.h create mode 100644 kernel_headers/linux/dlm_plock.h create mode 100644 kernel_headers/linux/dlmconstants.h create mode 100644 kernel_headers/linux/dm-ioctl.h create mode 100644 kernel_headers/linux/dm-log-userspace.h create mode 100644 kernel_headers/linux/dn.h create mode 100644 kernel_headers/linux/dqblk_xfs.h create mode 100644 kernel_headers/linux/dvb/..install.cmd create mode 100644 kernel_headers/linux/dvb/.install create mode 100644 kernel_headers/linux/dvb/audio.h create mode 100644 kernel_headers/linux/dvb/ca.h create mode 100644 kernel_headers/linux/dvb/dmx.h create mode 100644 kernel_headers/linux/dvb/frontend.h create mode 100644 kernel_headers/linux/dvb/net.h create mode 100644 kernel_headers/linux/dvb/osd.h create mode 100644 kernel_headers/linux/dvb/version.h create mode 100644 kernel_headers/linux/dvb/video.h create mode 100644 kernel_headers/linux/edd.h create mode 100644 kernel_headers/linux/efs_fs_sb.h create mode 100644 kernel_headers/linux/elf-em.h create mode 100644 kernel_headers/linux/elf-fdpic.h create mode 100644 kernel_headers/linux/elf.h create mode 100644 kernel_headers/linux/elfcore.h create mode 100644 kernel_headers/linux/ensigma_uccp330.h create mode 100644 kernel_headers/linux/epm_adc.h create mode 100644 kernel_headers/linux/errno.h create mode 100644 kernel_headers/linux/errqueue.h create mode 100644 kernel_headers/linux/esoc_ctrl.h create mode 100644 kernel_headers/linux/ethtool.h create mode 100644 kernel_headers/linux/eventpoll.h create mode 100644 kernel_headers/linux/fadvise.h create mode 100644 kernel_headers/linux/falloc.h create mode 100644 kernel_headers/linux/fanotify.h create mode 100644 kernel_headers/linux/fb.h create mode 100644 kernel_headers/linux/fcntl.h create mode 100644 kernel_headers/linux/fd.h create mode 100644 kernel_headers/linux/fdreg.h create mode 100644 kernel_headers/linux/fib_rules.h create mode 100644 kernel_headers/linux/fiemap.h create mode 100644 kernel_headers/linux/filter.h create mode 100644 kernel_headers/linux/fips_status.h create mode 100644 kernel_headers/linux/firewire-cdev.h create mode 100644 kernel_headers/linux/firewire-constants.h create mode 100644 kernel_headers/linux/flat.h create mode 100644 kernel_headers/linux/fs.h create mode 100644 kernel_headers/linux/fsl_hypervisor.h create mode 100644 kernel_headers/linux/fuse.h create mode 100644 kernel_headers/linux/futex.h create mode 100644 kernel_headers/linux/gameport.h create mode 100644 kernel_headers/linux/gen_stats.h create mode 100644 kernel_headers/linux/genetlink.h create mode 100644 kernel_headers/linux/gfs2_ondisk.h create mode 100644 kernel_headers/linux/gigaset_dev.h create mode 100644 kernel_headers/linux/hbtp_input.h create mode 100644 kernel_headers/linux/hdlc.h create mode 100644 kernel_headers/linux/hdlc/..install.cmd create mode 100644 kernel_headers/linux/hdlc/.install create mode 100644 kernel_headers/linux/hdlc/ioctl.h create mode 100644 kernel_headers/linux/hdlcdrv.h create mode 100644 kernel_headers/linux/hdreg.h create mode 100644 kernel_headers/linux/hid.h create mode 100644 kernel_headers/linux/hiddev.h create mode 100644 kernel_headers/linux/hidraw.h create mode 100644 kernel_headers/linux/hpet.h create mode 100644 kernel_headers/linux/hsi/..install.cmd create mode 100644 kernel_headers/linux/hsi/.install create mode 100644 kernel_headers/linux/hsi/hsi_char.h create mode 100644 kernel_headers/linux/hw_breakpoint.h create mode 100644 kernel_headers/linux/hysdn_if.h create mode 100644 kernel_headers/linux/i2c-dev.h create mode 100644 kernel_headers/linux/i2c.h create mode 100644 kernel_headers/linux/i2o-dev.h create mode 100644 kernel_headers/linux/i8k.h create mode 100644 kernel_headers/linux/icmp.h create mode 100644 kernel_headers/linux/icmpv6.h create mode 100644 kernel_headers/linux/idle_stats_device.h create mode 100644 kernel_headers/linux/if.h create mode 100644 kernel_headers/linux/if_addr.h create mode 100644 kernel_headers/linux/if_addrlabel.h create mode 100644 kernel_headers/linux/if_alg.h create mode 100644 kernel_headers/linux/if_arcnet.h create mode 100644 kernel_headers/linux/if_arp.h create mode 100644 kernel_headers/linux/if_bonding.h create mode 100644 kernel_headers/linux/if_bridge.h create mode 100644 kernel_headers/linux/if_cablemodem.h create mode 100644 kernel_headers/linux/if_eql.h create mode 100644 kernel_headers/linux/if_ether.h create mode 100644 kernel_headers/linux/if_fc.h create mode 100644 kernel_headers/linux/if_fddi.h create mode 100644 kernel_headers/linux/if_frad.h create mode 100644 kernel_headers/linux/if_hippi.h create mode 100644 kernel_headers/linux/if_infiniband.h create mode 100644 kernel_headers/linux/if_link.h create mode 100644 kernel_headers/linux/if_ltalk.h create mode 100644 kernel_headers/linux/if_packet.h create mode 100644 kernel_headers/linux/if_phonet.h create mode 100644 kernel_headers/linux/if_plip.h create mode 100644 kernel_headers/linux/if_ppp.h create mode 100644 kernel_headers/linux/if_pppol2tp.h create mode 100644 kernel_headers/linux/if_pppolac.h create mode 100644 kernel_headers/linux/if_pppopns.h create mode 100644 kernel_headers/linux/if_pppox.h create mode 100644 kernel_headers/linux/if_slip.h create mode 100644 kernel_headers/linux/if_team.h create mode 100644 kernel_headers/linux/if_tun.h create mode 100644 kernel_headers/linux/if_tunnel.h create mode 100644 kernel_headers/linux/if_vlan.h create mode 100644 kernel_headers/linux/if_x25.h create mode 100644 kernel_headers/linux/igmp.h create mode 100644 kernel_headers/linux/in.h create mode 100644 kernel_headers/linux/in6.h create mode 100644 kernel_headers/linux/in_route.h create mode 100644 kernel_headers/linux/inet_diag.h create mode 100644 kernel_headers/linux/inotify.h create mode 100644 kernel_headers/linux/input.h create mode 100644 kernel_headers/linux/ioctl.h create mode 100644 kernel_headers/linux/ion.h create mode 100644 kernel_headers/linux/ioprio.h create mode 100644 kernel_headers/linux/ip.h create mode 100644 kernel_headers/linux/ip6_tunnel.h create mode 100644 kernel_headers/linux/ip_vs.h create mode 100644 kernel_headers/linux/ipa_qmi_service_v01.h create mode 100644 kernel_headers/linux/ipc.h create mode 100644 kernel_headers/linux/ipmi.h create mode 100644 kernel_headers/linux/ipmi_msgdefs.h create mode 100644 kernel_headers/linux/ipsec.h create mode 100644 kernel_headers/linux/ipv6.h create mode 100644 kernel_headers/linux/ipv6_route.h create mode 100644 kernel_headers/linux/ipx.h create mode 100644 kernel_headers/linux/irda.h create mode 100644 kernel_headers/linux/irqnr.h create mode 100644 kernel_headers/linux/isdn.h create mode 100644 kernel_headers/linux/isdn/..install.cmd create mode 100644 kernel_headers/linux/isdn/.install create mode 100644 kernel_headers/linux/isdn/capicmd.h create mode 100644 kernel_headers/linux/isdn_divertif.h create mode 100644 kernel_headers/linux/isdn_ppp.h create mode 100644 kernel_headers/linux/isdnif.h create mode 100644 kernel_headers/linux/iso_fs.h create mode 100644 kernel_headers/linux/ivtv.h create mode 100644 kernel_headers/linux/ivtvfb.h create mode 100644 kernel_headers/linux/ixjuser.h create mode 100644 kernel_headers/linux/jffs2.h create mode 100644 kernel_headers/linux/joystick.h create mode 100644 kernel_headers/linux/kd.h create mode 100644 kernel_headers/linux/kdev_t.h create mode 100644 kernel_headers/linux/kernel-page-flags.h create mode 100644 kernel_headers/linux/kernel.h create mode 100644 kernel_headers/linux/kernelcapi.h create mode 100644 kernel_headers/linux/kexec.h create mode 100644 kernel_headers/linux/keyboard.h create mode 100644 kernel_headers/linux/keyctl.h create mode 100644 kernel_headers/linux/kvm.h create mode 100644 kernel_headers/linux/kvm_para.h create mode 100644 kernel_headers/linux/l2tp.h create mode 100644 kernel_headers/linux/limits.h create mode 100644 kernel_headers/linux/llc.h create mode 100644 kernel_headers/linux/loop.h create mode 100644 kernel_headers/linux/lp.h create mode 100644 kernel_headers/linux/magic.h create mode 100644 kernel_headers/linux/major.h create mode 100644 kernel_headers/linux/map_to_7segment.h create mode 100644 kernel_headers/linux/matroxfb.h create mode 100644 kernel_headers/linux/mdio.h create mode 100644 kernel_headers/linux/media.h create mode 100644 kernel_headers/linux/mei.h create mode 100644 kernel_headers/linux/mempolicy.h create mode 100644 kernel_headers/linux/meye.h create mode 100644 kernel_headers/linux/mfd/..install.cmd create mode 100644 kernel_headers/linux/mfd/.install create mode 100644 kernel_headers/linux/mfd/msm-adie-codec.h create mode 100644 kernel_headers/linux/mfd/wcd9xxx/..install.cmd create mode 100644 kernel_headers/linux/mfd/wcd9xxx/.install create mode 100644 kernel_headers/linux/mfd/wcd9xxx/wcd9310_registers.h create mode 100644 kernel_headers/linux/mfd/wcd9xxx/wcd9320_registers.h create mode 100644 kernel_headers/linux/mfd/wcd9xxx/wcd9xxx_registers.h create mode 100644 kernel_headers/linux/mii.h create mode 100644 kernel_headers/linux/minix_fs.h create mode 100644 kernel_headers/linux/mman.h create mode 100644 kernel_headers/linux/mmc/..install.cmd create mode 100644 kernel_headers/linux/mmc/.install create mode 100644 kernel_headers/linux/mmc/core.h create mode 100644 kernel_headers/linux/mmc/ioctl.h create mode 100644 kernel_headers/linux/mmc/mmc.h create mode 100644 kernel_headers/linux/mmtimer.h create mode 100644 kernel_headers/linux/mqueue.h create mode 100644 kernel_headers/linux/mroute.h create mode 100644 kernel_headers/linux/mroute6.h create mode 100644 kernel_headers/linux/msdos_fs.h create mode 100644 kernel_headers/linux/msg.h create mode 100644 kernel_headers/linux/msm-core-interface.h create mode 100644 kernel_headers/linux/msm_adc.h create mode 100644 kernel_headers/linux/msm_adsp.h create mode 100644 kernel_headers/linux/msm_audio.h create mode 100644 kernel_headers/linux/msm_audio_aac.h create mode 100644 kernel_headers/linux/msm_audio_ac3.h create mode 100644 kernel_headers/linux/msm_audio_amrnb.h create mode 100644 kernel_headers/linux/msm_audio_amrwb.h create mode 100644 kernel_headers/linux/msm_audio_amrwbplus.h create mode 100644 kernel_headers/linux/msm_audio_calibration.h create mode 100644 kernel_headers/linux/msm_audio_mvs.h create mode 100644 kernel_headers/linux/msm_audio_qcp.h create mode 100644 kernel_headers/linux/msm_audio_sbc.h create mode 100644 kernel_headers/linux/msm_audio_voicememo.h create mode 100644 kernel_headers/linux/msm_audio_wma.h create mode 100644 kernel_headers/linux/msm_audio_wmapro.h create mode 100644 kernel_headers/linux/msm_charm.h create mode 100644 kernel_headers/linux/msm_dsps.h create mode 100644 kernel_headers/linux/msm_ion.h create mode 100644 kernel_headers/linux/msm_ipa.h create mode 100644 kernel_headers/linux/msm_ipc.h create mode 100644 kernel_headers/linux/msm_kgsl.h create mode 100644 kernel_headers/linux/msm_mdp.h create mode 100644 kernel_headers/linux/msm_pft.h create mode 100644 kernel_headers/linux/msm_q6vdec.h create mode 100644 kernel_headers/linux/msm_q6venc.h create mode 100644 kernel_headers/linux/msm_rmnet.h create mode 100644 kernel_headers/linux/msm_rotator.h create mode 100644 kernel_headers/linux/msm_thermal_ioctl.h create mode 100644 kernel_headers/linux/msm_vidc_dec.h create mode 100644 kernel_headers/linux/msm_vidc_enc.h create mode 100644 kernel_headers/linux/mtio.h create mode 100644 kernel_headers/linux/n_r3964.h create mode 100644 kernel_headers/linux/nbd.h create mode 100644 kernel_headers/linux/ncp.h create mode 100644 kernel_headers/linux/ncp_fs.h create mode 100644 kernel_headers/linux/ncp_mount.h create mode 100644 kernel_headers/linux/ncp_no.h create mode 100644 kernel_headers/linux/neighbour.h create mode 100644 kernel_headers/linux/net.h create mode 100644 kernel_headers/linux/net_dropmon.h create mode 100644 kernel_headers/linux/net_map.h create mode 100644 kernel_headers/linux/net_tstamp.h create mode 100644 kernel_headers/linux/netconf.h create mode 100644 kernel_headers/linux/netdevice.h create mode 100644 kernel_headers/linux/netfilter.h create mode 100644 kernel_headers/linux/netfilter/..install.cmd create mode 100644 kernel_headers/linux/netfilter/.install create mode 100644 kernel_headers/linux/netfilter/ipset/..install.cmd create mode 100644 kernel_headers/linux/netfilter/ipset/.install create mode 100644 kernel_headers/linux/netfilter/ipset/ip_set.h create mode 100644 kernel_headers/linux/netfilter/ipset/ip_set_bitmap.h create mode 100644 kernel_headers/linux/netfilter/ipset/ip_set_hash.h create mode 100644 kernel_headers/linux/netfilter/ipset/ip_set_list.h create mode 100644 kernel_headers/linux/netfilter/nf_conntrack_common.h create mode 100644 kernel_headers/linux/netfilter/nf_conntrack_ftp.h create mode 100644 kernel_headers/linux/netfilter/nf_conntrack_sctp.h create mode 100644 kernel_headers/linux/netfilter/nf_conntrack_tcp.h create mode 100644 kernel_headers/linux/netfilter/nf_conntrack_tuple_common.h create mode 100644 kernel_headers/linux/netfilter/nf_nat.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_acct.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_compat.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_conntrack.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_cthelper.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_cttimeout.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_log.h create mode 100644 kernel_headers/linux/netfilter/nfnetlink_queue.h create mode 100644 kernel_headers/linux/netfilter/x_tables.h create mode 100644 kernel_headers/linux/netfilter/xt_AUDIT.h create mode 100644 kernel_headers/linux/netfilter/xt_CHECKSUM.h create mode 100644 kernel_headers/linux/netfilter/xt_CLASSIFY.h create mode 100644 kernel_headers/linux/netfilter/xt_CONNMARK.h create mode 100644 kernel_headers/linux/netfilter/xt_CONNSECMARK.h create mode 100644 kernel_headers/linux/netfilter/xt_CT.h create mode 100644 kernel_headers/linux/netfilter/xt_DSCP.h create mode 100644 kernel_headers/linux/netfilter/xt_IDLETIMER.h create mode 100644 kernel_headers/linux/netfilter/xt_LED.h create mode 100644 kernel_headers/linux/netfilter/xt_LOG.h create mode 100644 kernel_headers/linux/netfilter/xt_MARK.h create mode 100644 kernel_headers/linux/netfilter/xt_NFLOG.h create mode 100644 kernel_headers/linux/netfilter/xt_NFQUEUE.h create mode 100644 kernel_headers/linux/netfilter/xt_RATEEST.h create mode 100644 kernel_headers/linux/netfilter/xt_SECMARK.h create mode 100644 kernel_headers/linux/netfilter/xt_TCPMSS.h create mode 100644 kernel_headers/linux/netfilter/xt_TCPOPTSTRIP.h create mode 100644 kernel_headers/linux/netfilter/xt_TEE.h create mode 100644 kernel_headers/linux/netfilter/xt_TPROXY.h create mode 100644 kernel_headers/linux/netfilter/xt_addrtype.h create mode 100644 kernel_headers/linux/netfilter/xt_bpf.h create mode 100644 kernel_headers/linux/netfilter/xt_cluster.h create mode 100644 kernel_headers/linux/netfilter/xt_comment.h create mode 100644 kernel_headers/linux/netfilter/xt_connbytes.h create mode 100644 kernel_headers/linux/netfilter/xt_connlabel.h create mode 100644 kernel_headers/linux/netfilter/xt_connlimit.h create mode 100644 kernel_headers/linux/netfilter/xt_connmark.h create mode 100644 kernel_headers/linux/netfilter/xt_conntrack.h create mode 100644 kernel_headers/linux/netfilter/xt_cpu.h create mode 100644 kernel_headers/linux/netfilter/xt_dccp.h create mode 100644 kernel_headers/linux/netfilter/xt_devgroup.h create mode 100644 kernel_headers/linux/netfilter/xt_dscp.h create mode 100644 kernel_headers/linux/netfilter/xt_ecn.h create mode 100644 kernel_headers/linux/netfilter/xt_esp.h create mode 100644 kernel_headers/linux/netfilter/xt_hashlimit.h create mode 100644 kernel_headers/linux/netfilter/xt_helper.h create mode 100644 kernel_headers/linux/netfilter/xt_iprange.h create mode 100644 kernel_headers/linux/netfilter/xt_ipvs.h create mode 100644 kernel_headers/linux/netfilter/xt_length.h create mode 100644 kernel_headers/linux/netfilter/xt_limit.h create mode 100644 kernel_headers/linux/netfilter/xt_mac.h create mode 100644 kernel_headers/linux/netfilter/xt_mark.h create mode 100644 kernel_headers/linux/netfilter/xt_multiport.h create mode 100644 kernel_headers/linux/netfilter/xt_nfacct.h create mode 100644 kernel_headers/linux/netfilter/xt_osf.h create mode 100644 kernel_headers/linux/netfilter/xt_owner.h create mode 100644 kernel_headers/linux/netfilter/xt_physdev.h create mode 100644 kernel_headers/linux/netfilter/xt_pkttype.h create mode 100644 kernel_headers/linux/netfilter/xt_policy.h create mode 100644 kernel_headers/linux/netfilter/xt_quota.h create mode 100644 kernel_headers/linux/netfilter/xt_rateest.h create mode 100644 kernel_headers/linux/netfilter/xt_realm.h create mode 100644 kernel_headers/linux/netfilter/xt_recent.h create mode 100644 kernel_headers/linux/netfilter/xt_sctp.h create mode 100644 kernel_headers/linux/netfilter/xt_set.h create mode 100644 kernel_headers/linux/netfilter/xt_socket.h create mode 100644 kernel_headers/linux/netfilter/xt_state.h create mode 100644 kernel_headers/linux/netfilter/xt_statistic.h create mode 100644 kernel_headers/linux/netfilter/xt_string.h create mode 100644 kernel_headers/linux/netfilter/xt_tcpmss.h create mode 100644 kernel_headers/linux/netfilter/xt_tcpudp.h create mode 100644 kernel_headers/linux/netfilter/xt_time.h create mode 100644 kernel_headers/linux/netfilter/xt_u32.h create mode 100644 kernel_headers/linux/netfilter_arp.h create mode 100644 kernel_headers/linux/netfilter_arp/..install.cmd create mode 100644 kernel_headers/linux/netfilter_arp/.install create mode 100644 kernel_headers/linux/netfilter_arp/arp_tables.h create mode 100644 kernel_headers/linux/netfilter_arp/arpt_mangle.h create mode 100644 kernel_headers/linux/netfilter_bridge.h create mode 100644 kernel_headers/linux/netfilter_bridge/..install.cmd create mode 100644 kernel_headers/linux/netfilter_bridge/.install create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_802_3.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_among.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_arp.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_arpreply.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_ip.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_ip6.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_limit.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_log.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_mark_m.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_mark_t.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_nat.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_nflog.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_pkttype.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_redirect.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_stp.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_ulog.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebt_vlan.h create mode 100644 kernel_headers/linux/netfilter_bridge/ebtables.h create mode 100644 kernel_headers/linux/netfilter_decnet.h create mode 100644 kernel_headers/linux/netfilter_ipv4.h create mode 100644 kernel_headers/linux/netfilter_ipv4/..install.cmd create mode 100644 kernel_headers/linux/netfilter_ipv4/.install create mode 100644 kernel_headers/linux/netfilter_ipv4/ip_tables.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_CLUSTERIP.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_ECN.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_LOG.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_NATTYPE.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_REJECT.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_TTL.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_ULOG.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_ah.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_ecn.h create mode 100644 kernel_headers/linux/netfilter_ipv4/ipt_ttl.h create mode 100644 kernel_headers/linux/netfilter_ipv6.h create mode 100644 kernel_headers/linux/netfilter_ipv6/..install.cmd create mode 100644 kernel_headers/linux/netfilter_ipv6/.install create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6_tables.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_HL.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_LOG.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_NPT.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_REJECT.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_ah.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_frag.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_hl.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_ipv6header.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_mh.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_opts.h create mode 100644 kernel_headers/linux/netfilter_ipv6/ip6t_rt.h create mode 100644 kernel_headers/linux/netlink.h create mode 100644 kernel_headers/linux/netlink_diag.h create mode 100644 kernel_headers/linux/netrom.h create mode 100644 kernel_headers/linux/nfc.h create mode 100644 kernel_headers/linux/nfs.h create mode 100644 kernel_headers/linux/nfs2.h create mode 100644 kernel_headers/linux/nfs3.h create mode 100644 kernel_headers/linux/nfs4.h create mode 100644 kernel_headers/linux/nfs4_mount.h create mode 100644 kernel_headers/linux/nfs_fs.h create mode 100644 kernel_headers/linux/nfs_idmap.h create mode 100644 kernel_headers/linux/nfs_mount.h create mode 100644 kernel_headers/linux/nfsacl.h create mode 100644 kernel_headers/linux/nfsd/..install.cmd create mode 100644 kernel_headers/linux/nfsd/.install create mode 100644 kernel_headers/linux/nfsd/cld.h create mode 100644 kernel_headers/linux/nfsd/debug.h create mode 100644 kernel_headers/linux/nfsd/export.h create mode 100644 kernel_headers/linux/nfsd/nfsfh.h create mode 100644 kernel_headers/linux/nfsd/stats.h create mode 100644 kernel_headers/linux/nl80211.h create mode 100644 kernel_headers/linux/nubus.h create mode 100644 kernel_headers/linux/nvram.h create mode 100644 kernel_headers/linux/omap3isp.h create mode 100644 kernel_headers/linux/omapfb.h create mode 100644 kernel_headers/linux/oneshot_sync.h create mode 100644 kernel_headers/linux/oom.h create mode 100644 kernel_headers/linux/openvswitch.h create mode 100644 kernel_headers/linux/packet_diag.h create mode 100644 kernel_headers/linux/param.h create mode 100644 kernel_headers/linux/parport.h create mode 100644 kernel_headers/linux/patchkey.h create mode 100644 kernel_headers/linux/pci.h create mode 100644 kernel_headers/linux/pci_regs.h create mode 100644 kernel_headers/linux/perf_event.h create mode 100644 kernel_headers/linux/personality.h create mode 100644 kernel_headers/linux/pfkeyv2.h create mode 100644 kernel_headers/linux/pg.h create mode 100644 kernel_headers/linux/phantom.h create mode 100644 kernel_headers/linux/phonet.h create mode 100644 kernel_headers/linux/pkt_cls.h create mode 100644 kernel_headers/linux/pkt_sched.h create mode 100644 kernel_headers/linux/pktcdvd.h create mode 100644 kernel_headers/linux/pmu.h create mode 100644 kernel_headers/linux/poll.h create mode 100644 kernel_headers/linux/posix_types.h create mode 100644 kernel_headers/linux/ppdev.h create mode 100644 kernel_headers/linux/ppp-comp.h create mode 100644 kernel_headers/linux/ppp-ioctl.h create mode 100644 kernel_headers/linux/ppp_defs.h create mode 100644 kernel_headers/linux/pps.h create mode 100644 kernel_headers/linux/prctl.h create mode 100644 kernel_headers/linux/psci.h create mode 100644 kernel_headers/linux/ptp_clock.h create mode 100644 kernel_headers/linux/ptrace.h create mode 100644 kernel_headers/linux/qcedev.h create mode 100644 kernel_headers/linux/qcota.h create mode 100644 kernel_headers/linux/qnx4_fs.h create mode 100644 kernel_headers/linux/qnxtypes.h create mode 100644 kernel_headers/linux/qrng.h create mode 100644 kernel_headers/linux/qseecom.h create mode 100644 kernel_headers/linux/quota.h create mode 100644 kernel_headers/linux/radeonfb.h create mode 100644 kernel_headers/linux/raid/..install.cmd create mode 100644 kernel_headers/linux/raid/.install create mode 100644 kernel_headers/linux/raid/md_p.h create mode 100644 kernel_headers/linux/raid/md_u.h create mode 100644 kernel_headers/linux/random.h create mode 100644 kernel_headers/linux/raw.h create mode 100644 kernel_headers/linux/rds.h create mode 100644 kernel_headers/linux/reboot.h create mode 100644 kernel_headers/linux/reiserfs_fs.h create mode 100644 kernel_headers/linux/reiserfs_xattr.h create mode 100644 kernel_headers/linux/resource.h create mode 100644 kernel_headers/linux/rfkill.h create mode 100644 kernel_headers/linux/rmnet_data.h create mode 100644 kernel_headers/linux/rmnet_ipa_fd_ioctl.h create mode 100644 kernel_headers/linux/romfs_fs.h create mode 100644 kernel_headers/linux/rose.h create mode 100644 kernel_headers/linux/route.h create mode 100644 kernel_headers/linux/rtc.h create mode 100644 kernel_headers/linux/rtnetlink.h create mode 100644 kernel_headers/linux/scc.h create mode 100644 kernel_headers/linux/sched.h create mode 100644 kernel_headers/linux/screen_info.h create mode 100644 kernel_headers/linux/sctp.h create mode 100644 kernel_headers/linux/sdla.h create mode 100644 kernel_headers/linux/seccomp.h create mode 100644 kernel_headers/linux/securebits.h create mode 100644 kernel_headers/linux/selinux_netlink.h create mode 100644 kernel_headers/linux/sem.h create mode 100644 kernel_headers/linux/serial.h create mode 100644 kernel_headers/linux/serial_core.h create mode 100644 kernel_headers/linux/serial_reg.h create mode 100644 kernel_headers/linux/serio.h create mode 100644 kernel_headers/linux/shm.h create mode 100644 kernel_headers/linux/signal.h create mode 100644 kernel_headers/linux/signalfd.h create mode 100644 kernel_headers/linux/snmp.h create mode 100644 kernel_headers/linux/sock_diag.h create mode 100644 kernel_headers/linux/socket.h create mode 100644 kernel_headers/linux/sockev.h create mode 100644 kernel_headers/linux/sockios.h create mode 100644 kernel_headers/linux/som.h create mode 100644 kernel_headers/linux/sonet.h create mode 100644 kernel_headers/linux/sonypi.h create mode 100644 kernel_headers/linux/sound.h create mode 100644 kernel_headers/linux/soundcard.h create mode 100644 kernel_headers/linux/spi/..install.cmd create mode 100644 kernel_headers/linux/spi/.install create mode 100644 kernel_headers/linux/spi/spidev.h create mode 100644 kernel_headers/linux/staging/android/uapi/..install.cmd create mode 100644 kernel_headers/linux/staging/android/uapi/.install create mode 100644 kernel_headers/linux/staging/android/uapi/ion.h create mode 100644 kernel_headers/linux/staging/android/uapi/msm_ion.h create mode 100644 kernel_headers/linux/stat.h create mode 100644 kernel_headers/linux/stddef.h create mode 100644 kernel_headers/linux/string.h create mode 100644 kernel_headers/linux/sunrpc/..install.cmd create mode 100644 kernel_headers/linux/sunrpc/.install create mode 100644 kernel_headers/linux/sunrpc/debug.h create mode 100644 kernel_headers/linux/suspend_ioctls.h create mode 100644 kernel_headers/linux/swab.h create mode 100644 kernel_headers/linux/synclink.h create mode 100644 kernel_headers/linux/sysctl.h create mode 100644 kernel_headers/linux/sysinfo.h create mode 100644 kernel_headers/linux/taskstats.h create mode 100644 kernel_headers/linux/tc_act/..install.cmd create mode 100644 kernel_headers/linux/tc_act/.install create mode 100644 kernel_headers/linux/tc_act/tc_csum.h create mode 100644 kernel_headers/linux/tc_act/tc_gact.h create mode 100644 kernel_headers/linux/tc_act/tc_ipt.h create mode 100644 kernel_headers/linux/tc_act/tc_mirred.h create mode 100644 kernel_headers/linux/tc_act/tc_nat.h create mode 100644 kernel_headers/linux/tc_act/tc_pedit.h create mode 100644 kernel_headers/linux/tc_act/tc_skbedit.h create mode 100644 kernel_headers/linux/tc_ematch/..install.cmd create mode 100644 kernel_headers/linux/tc_ematch/.install create mode 100644 kernel_headers/linux/tc_ematch/tc_em_cmp.h create mode 100644 kernel_headers/linux/tc_ematch/tc_em_meta.h create mode 100644 kernel_headers/linux/tc_ematch/tc_em_nbyte.h create mode 100644 kernel_headers/linux/tc_ematch/tc_em_text.h create mode 100644 kernel_headers/linux/tcp.h create mode 100644 kernel_headers/linux/tcp_metrics.h create mode 100644 kernel_headers/linux/telephony.h create mode 100644 kernel_headers/linux/termios.h create mode 100644 kernel_headers/linux/time.h create mode 100644 kernel_headers/linux/times.h create mode 100644 kernel_headers/linux/timex.h create mode 100644 kernel_headers/linux/tiocl.h create mode 100644 kernel_headers/linux/tipc.h create mode 100644 kernel_headers/linux/tipc_config.h create mode 100644 kernel_headers/linux/toshiba.h create mode 100644 kernel_headers/linux/tsc.h create mode 100644 kernel_headers/linux/tty.h create mode 100644 kernel_headers/linux/tty_flags.h create mode 100644 kernel_headers/linux/types.h create mode 100644 kernel_headers/linux/udf_fs_i.h create mode 100644 kernel_headers/linux/udp.h create mode 100644 kernel_headers/linux/uhid.h create mode 100644 kernel_headers/linux/uinput.h create mode 100644 kernel_headers/linux/uio.h create mode 100644 kernel_headers/linux/ultrasound.h create mode 100644 kernel_headers/linux/un.h create mode 100644 kernel_headers/linux/unistd.h create mode 100644 kernel_headers/linux/unix_diag.h create mode 100644 kernel_headers/linux/usb/..install.cmd create mode 100644 kernel_headers/linux/usb/.install create mode 100644 kernel_headers/linux/usb/audio.h create mode 100644 kernel_headers/linux/usb/ccid_bridge.h create mode 100644 kernel_headers/linux/usb/cdc-wdm.h create mode 100644 kernel_headers/linux/usb/cdc.h create mode 100644 kernel_headers/linux/usb/ch11.h create mode 100644 kernel_headers/linux/usb/ch9.h create mode 100644 kernel_headers/linux/usb/functionfs.h create mode 100644 kernel_headers/linux/usb/g_printer.h create mode 100644 kernel_headers/linux/usb/gadgetfs.h create mode 100644 kernel_headers/linux/usb/midi.h create mode 100644 kernel_headers/linux/usb/msm_ext_chg.h create mode 100644 kernel_headers/linux/usb/tmc.h create mode 100644 kernel_headers/linux/usb/video.h create mode 100644 kernel_headers/linux/usbdevice_fs.h create mode 100644 kernel_headers/linux/utime.h create mode 100644 kernel_headers/linux/utsname.h create mode 100644 kernel_headers/linux/uuid.h create mode 100644 kernel_headers/linux/uvcvideo.h create mode 100644 kernel_headers/linux/v4l2-common.h create mode 100644 kernel_headers/linux/v4l2-controls.h create mode 100644 kernel_headers/linux/v4l2-dv-timings.h create mode 100644 kernel_headers/linux/v4l2-mediabus.h create mode 100644 kernel_headers/linux/v4l2-subdev.h create mode 100644 kernel_headers/linux/version.h create mode 100644 kernel_headers/linux/veth.h create mode 100644 kernel_headers/linux/vfio.h create mode 100644 kernel_headers/linux/vhost.h create mode 100644 kernel_headers/linux/videodev2.h create mode 100644 kernel_headers/linux/virtio_9p.h create mode 100644 kernel_headers/linux/virtio_balloon.h create mode 100644 kernel_headers/linux/virtio_blk.h create mode 100644 kernel_headers/linux/virtio_config.h create mode 100644 kernel_headers/linux/virtio_console.h create mode 100644 kernel_headers/linux/virtio_ids.h create mode 100644 kernel_headers/linux/virtio_net.h create mode 100644 kernel_headers/linux/virtio_pci.h create mode 100644 kernel_headers/linux/virtio_ring.h create mode 100644 kernel_headers/linux/virtio_rng.h create mode 100644 kernel_headers/linux/vm_bms.h create mode 100644 kernel_headers/linux/vt.h create mode 100644 kernel_headers/linux/wait.h create mode 100644 kernel_headers/linux/wanrouter.h create mode 100644 kernel_headers/linux/watchdog.h create mode 100644 kernel_headers/linux/wimax.h create mode 100644 kernel_headers/linux/wimax/..install.cmd create mode 100644 kernel_headers/linux/wimax/.install create mode 100644 kernel_headers/linux/wimax/i2400m.h create mode 100644 kernel_headers/linux/wireless.h create mode 100644 kernel_headers/linux/x25.h create mode 100644 kernel_headers/linux/xattr.h create mode 100644 kernel_headers/linux/xfrm.h create mode 100644 kernel_headers/media/..install.cmd create mode 100644 kernel_headers/media/.install create mode 100644 kernel_headers/media/msm_cam_sensor.h create mode 100644 kernel_headers/media/msm_camera.h create mode 100644 kernel_headers/media/msm_camsensor_sdk.h create mode 100644 kernel_headers/media/msm_fd.h create mode 100644 kernel_headers/media/msm_gemini.h create mode 100644 kernel_headers/media/msm_gestures.h create mode 100644 kernel_headers/media/msm_isp.h create mode 100644 kernel_headers/media/msm_jpeg.h create mode 100644 kernel_headers/media/msm_media_info.h create mode 100644 kernel_headers/media/msm_mercury.h create mode 100644 kernel_headers/media/msm_vidc.h create mode 100644 kernel_headers/media/msm_vpu.h create mode 100644 kernel_headers/media/msmb_camera.h create mode 100644 kernel_headers/media/msmb_generic_buf_mgr.h create mode 100644 kernel_headers/media/msmb_isp.h create mode 100644 kernel_headers/media/msmb_ispif.h create mode 100644 kernel_headers/media/msmb_pproc.h create mode 100644 kernel_headers/media/radio-iris-commands.h create mode 100644 kernel_headers/media/radio-iris.h create mode 100644 kernel_headers/media/tavarua.h create mode 100644 kernel_headers/mtd/..install.cmd create mode 100644 kernel_headers/mtd/.install create mode 100644 kernel_headers/mtd/inftl-user.h create mode 100644 kernel_headers/mtd/mtd-abi.h create mode 100644 kernel_headers/mtd/mtd-user.h create mode 100644 kernel_headers/mtd/nftl-user.h create mode 100644 kernel_headers/mtd/ubi-user.h create mode 100644 kernel_headers/rdma/..install.cmd create mode 100644 kernel_headers/rdma/.install create mode 100644 kernel_headers/rdma/ib_user_cm.h create mode 100644 kernel_headers/rdma/ib_user_mad.h create mode 100644 kernel_headers/rdma/ib_user_sa.h create mode 100644 kernel_headers/rdma/ib_user_verbs.h create mode 100644 kernel_headers/rdma/rdma_netlink.h create mode 100644 kernel_headers/rdma/rdma_user_cm.h create mode 100644 kernel_headers/scsi/..install.cmd create mode 100644 kernel_headers/scsi/.install create mode 100644 kernel_headers/scsi/fc/..install.cmd create mode 100644 kernel_headers/scsi/fc/.install create mode 100644 kernel_headers/scsi/fc/fc_els.h create mode 100644 kernel_headers/scsi/fc/fc_fs.h create mode 100644 kernel_headers/scsi/fc/fc_gs.h create mode 100644 kernel_headers/scsi/fc/fc_ns.h create mode 100644 kernel_headers/scsi/scsi_bsg_fc.h create mode 100644 kernel_headers/scsi/scsi_ioctl.h create mode 100644 kernel_headers/scsi/scsi_netlink.h create mode 100644 kernel_headers/scsi/scsi_netlink_fc.h create mode 100644 kernel_headers/scsi/sg.h create mode 100644 kernel_headers/scsi/ufs/..install.cmd create mode 100644 kernel_headers/scsi/ufs/.install create mode 100644 kernel_headers/scsi/ufs/ioctl.h create mode 100644 kernel_headers/scsi/ufs/ufs.h create mode 100644 kernel_headers/sound/..install.cmd create mode 100644 kernel_headers/sound/.install create mode 100644 kernel_headers/sound/asequencer.h create mode 100644 kernel_headers/sound/asound.h create mode 100644 kernel_headers/sound/asound_fm.h create mode 100644 kernel_headers/sound/audio_effects.h create mode 100644 kernel_headers/sound/audio_slimslave.h create mode 100644 kernel_headers/sound/compress_offload.h create mode 100644 kernel_headers/sound/compress_params.h create mode 100644 kernel_headers/sound/devdep_params.h create mode 100644 kernel_headers/sound/emu10k1.h create mode 100644 kernel_headers/sound/hdsp.h create mode 100644 kernel_headers/sound/hdspm.h create mode 100644 kernel_headers/sound/lsm_params.h create mode 100644 kernel_headers/sound/msmcal-hwdep.h create mode 100644 kernel_headers/sound/sb16_csp.h create mode 100644 kernel_headers/sound/sfnt_info.h create mode 100644 kernel_headers/sound/tlv.h create mode 100644 kernel_headers/sound/voice_params.h create mode 100644 kernel_headers/sound/voice_svc.h create mode 100644 kernel_headers/uapi/..install.cmd create mode 100644 kernel_headers/uapi/.install create mode 100644 kernel_headers/video/..install.cmd create mode 100644 kernel_headers/video/.install create mode 100644 kernel_headers/video/edid.h create mode 100644 kernel_headers/video/msm_hdmi_hdcp_mgr.h create mode 100644 kernel_headers/video/msm_hdmi_modes.h create mode 100644 kernel_headers/video/sisfb.h create mode 100644 kernel_headers/video/uvesafb.h create mode 100644 kernel_headers/xen/..install.cmd create mode 100644 kernel_headers/xen/.install create mode 100644 kernel_headers/xen/evtchn.h create mode 100644 kernel_headers/xen/privcmd.h create mode 100644 omni_surnia.mk create mode 100644 slim.mk create mode 100644 twrp.fstab create mode 100644 vendorsetup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..6dd1b18 --- /dev/null +++ b/Android.mk @@ -0,0 +1,23 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +ifneq ($(filter surnia,$(TARGET_DEVICE)),) + +LOCAL_PATH := $(call my-dir) + +include $(call all-makefiles-under,$(LOCAL_PATH)) + +endif diff --git a/AndroidBoard.mk b/AndroidBoard.mk new file mode 100644 index 0000000..b6ca883 --- /dev/null +++ b/AndroidBoard.mk @@ -0,0 +1,16 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + diff --git a/AndroidProducts.mk b/AndroidProducts.mk new file mode 100644 index 0000000..7bfcfe5 --- /dev/null +++ b/AndroidProducts.mk @@ -0,0 +1,18 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/omni_surnia.mk diff --git a/BoardConfig.mk b/BoardConfig.mk new file mode 100644 index 0000000..305d4b4 --- /dev/null +++ b/BoardConfig.mk @@ -0,0 +1,61 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := device/motorola/surnia + +TARGET_ARCH := arm +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi +TARGET_CPU_VARIANT := cortex-a7 +TARGET_ARCH_VARIANT := armv7-a-neon +TARGET_CPU_SMP := true +ARCH_ARM_HAVE_TLS_REGISTER := true + +TARGET_GLOBAL_CFLAGS += -mfpu=neon -mfloat-abi=softfp +TARGET_GLOBAL_CPPFLAGS += -mfpu=neon -mfloat-abi=softfp + +TARGET_BOARD_PLATFORM := msm8916 + +TARGET_BOOTLOADER_BOARD_NAME := MSM8916 +TARGET_NO_BOOTLOADER := true + + +BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x3F ehci-hcd.park=3 vmalloc=400M androidboot.bootdevice=soc.0 utags.blkdev=/dev/block/platform/soc.0/by-name/utags utags.backup=/dev/block/platform/soc.0/by-name/utagsBackup movablecore=160M +BOARD_KERNEL_BASE := 0x80000000 +BOARD_RAMDISK_OFFSET := 0x01000000 +BOARD_KERNEL_PAGESIZE := 2048 +BOARD_MKBOOTIMG_ARGS := --dt device/motorola/surnia/dt.img --ramdisk_offset 0x01000000 --tags_offset 0x00000100 +TARGET_PREBUILT_KERNEL := device/motorola/surnia/kernel + +BOARD_USES_QCOM_HARDWARE := true + + +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_USERIMAGES_USE_F2FS := true + +TARGET_RECOVERY_FSTAB := device/motorola/surnia/twrp.fstab + + +# TWRP +DEVICE_RESOLUTION := 540x960 +TW_TARGET_USES_QCOM_BSP := true +RECOVERY_GRAPHICS_USE_LINELENGTH := true +TW_INCLUDE_CRYPTO := true +TARGET_CUSTOM_KERNEL_HEADERS := device/motorola/surnia/kernel_headers +TW_SCREEN_BLANK_ON_BOOT := true +TW_IGNORE_MAJOR_AXIS_0 := true + +TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/devices/platform/msm_hsusb/gadget/lun%d/file diff --git a/device.mk b/device.mk new file mode 100644 index 0000000..d5303b8 --- /dev/null +++ b/device.mk @@ -0,0 +1,22 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PRODUCT_AAPT_CONFIG := normal hdpi xhdpi +PRODUCT_AAPT_PREF_CONFIG := hdpi + +PRODUCT_COPY_FILES += \ + device/motorola/surnia/kernel:kernel \ + device/motorola/surnia/dt.img:dt.img diff --git a/dt.img b/dt.img new file mode 100644 index 0000000000000000000000000000000000000000..fca656cf4e142a9acb49434f9bd9535e5ab6af64 GIT binary patch literal 3100672 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

SuK_%oFvD4|&2IAMy~Rhtu~YI5TLQM7<_0 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�$5jfUjuVtl<_M%iX?w<{7$UU zLzsN)iJr=P?z#lu`C3ma28I)VH}0k{e2Xae62Q3g`&vQ+Ldo}`F1hlD#_-LU=#np9 z@$|ZeA-{ufaWbJ|smSda8ctqWmY*EJrxX^u>$U3(P`G_ufIK}Fm((2r-@t;e=ZE?x zxW#=nlR4?aSnke}rqi=K(L7dpLPsVu>?NV2Fs-zHKt4CGY4Q2L1kXPZJl`KYKcLT~ zbsEpt1n_U-+4u-;;brirqdr*2KkOt)+d+=wYD!N$=G~X0{Q9T*@5kZb`ZxRF*u8pDlhB4(*^r{L_Vx* z!jCp@^3qQ%R&hz|LgrD*E3cwA z)AbRI?M;FhU8uvA zY%i@tOXEW5jrCioH^NE1#UDT$QEw+fYG}P#-*%ARra+7?)EoI!IJ3+KvWe|k8W%!u z>Zkha3eJr#y!mQSD}}4 zE@{Vu&3>|{d#e&4&_*FIbvLmFXf2!`I_~D4aY@a${jt@P1mE`mkcz7 zcpjvFwDA?nd{}QN`gj7L;}1HMA#41R?w=4}>Oq{RGYp?V%j6UJA?c?0RP@pL4BBj8 z#|fX@)f;G(vhsWGX?+Ts=hW*&bV_4myj1_iM{(T7aaN;O@+$n|wZ6h0Hlwi)GWr<6 zLIgPS<=W9#6C|tR=h{(xfX(+NV*c2UTE3>r1?a}FJ|<-d?Vf*rQO&d_pMyV;*#E{B-z zH^2`4#KQ=3og76jw(;5dwFe;=HosIyvaVy}Q)}M{$K`M5D&&6sNst&iKe;wQep3A^ z*gsF*97jmD?BI9ZqX@J5774Dptp}NPU*#XJ98$)3*-y|7pWm;)57CE~+veW0aS&$V1LWcnL3f9`X=`!p_?GLyo}a>%NrdqK-FbD}V@H&|MgG}yOE>x`)ImT=BRbaHPM8@D{?Jp5V7**H_pW+~s* z8aI`vMmAG6%KC4$Pep7<_BrBvw3F_G-nu*`ym3C==|sW-1-iI2w}m<}UEsc+a4=84 z9_6M0FQLV<@>v3K)D7{{>7xR-rRG(qAM$gRaMz#y4`!z?Z>c*??8Y1BK!Rg_BL6}? z$otg$6+barR#oag)7+5YI+s`0Rm&HY%t$!2nnTENHwDP7io;^)R{x5{i)}kjH z>rii}a1qYnJ*g)Zfc%f)T2@a1uIY(sn9E2@^~A3dI;^$m$;ufhT`=3SagynbaE2VA z&L&2%tpu*=jA@w5NXzT&LfBTQv$fckjjK#ggfnM5|7G2ky_TNA|q*Yw0R%w?pN z?_ycpmBZof3+rE~yX1W8qxh5>4mfen>YuPaN5}=UGqwYohLlahE6Fr${$q`6{qyvo zn^34hGOfi9K9`b%aHbs6x=vq^a!;G1EWGXIpFFOuO|kK^*)!n`IYN7$9--VPaLt~X zhPjNi)Rw3D5qCkOoU3h9LY=K8zioVNdLo>`ds0t9SsnxaGUa|ctK2gUa~Wv`<$iek z8m8QbI=fJI_C*MyHvfky_n}N{v4bzAO~yc(yimG;`#k zC_EH#Jd!x0`6!@GxCrz1Pxur5!#MbmgaqP`=`s#+G|mR@=_D-iga{xq(Nl!(i4!%xV>d~8>7_@K{5 z!5as<<>Rf0%ls?oeV^WM(>rBm_yJr@!(?YV28a2{y5M|9x;gNX%1R$UCBNjQ(iVID z(>N`uy9kR;0-D3Qgm~KQwD81GJ7V?1l~w_(`n&YP@Ejc z6YptJPRC)s99KUplc7wsGdl8wIX=jcpohZ_B{&+kPNH3t7TgBDTPL!urcP?(bmaw{ zOQ}aqlHh9d$nuPRs`I2tb@BX45{1iU_=S07@qsEbX&CFA9O^OQi*|5IVd9J2oK&4C zlKO;x{0$)ve+;)QTciFM*Ys$7oPnR&8uO9)Mm&Z~c^Z&bPLELpn(-;^8*E)*+v~_GQAa^mT#1a zu$PHvKTZ}aIL6+leFQfwL!4g=^I}jLVjQ$_5agxTB3i# zqI=RBqHZubN$Y1*v2Nc3#<+40y2H!y=y+8en)bGS%p6xH16h6C98Shg%Np23rmV~x+mPljov-%;DU_A4@aAY~iEuaw z>Z2F%CpPiU6g|Sk5t=G5sss1Zx8jC*yCIIBkk|4Sr$_j>!`Ly$ktQE)kNIgZpLq#y zQYMml8}_dsRXmGJTJOPSFzFD^kk#8FaYI=*#_f;V$#{s{R7w?Mci=2d=tfSlU z&!lJ(?w2*T#k8yeZwXn=jwj{)E)azq#*PDeBI~;mFU$+VBI_#c_`NB5guT32+r`P( z{M;>kUAmU9>|4A_{Wc)z44%XKD(n+teGz@8B&|Vx3eXq%a0|?J;`UnB0Ff; zeU0Vflcz@!9@0ze^8ZQEBkX18Da=8Ki#opwG_7w!y3_&6tK1=@<%{To_?l0NIS9^+ zo+oV_G}Ei&JaV`}x(Ld&v|GeY@@L;rV~9&{Ej$_x>EjBIN&3U|nVzqFK>w0w|1*GD zcMwj>Q0b=i4BdJ?quh8sp22h4#tfEu5aAj0Lft0Gds?&&@}YU;^{cS(&b&65yc6!{ zJ*gw&kHSCDB@G#$d;XI&bCh9){wnnCW$--KE4Aryd@rMpgVM_^#+)^9>5buLwoE_T zGIhy2W#FB24JyCbH1pKpuzbtdVL)1gY@6kWwBUqq@;t14dHLAR;$-w9CYk6+FC2ff zA4)lbaxZc)ekcc@dBN7!pHI=u3H_iV2;zn|1aFZ;>5Bb)G{%+sim=G(X!;yAURI)a zIz^9gpDx@M`#xPDk3<(36M5OsXnaebd1|^z=t60VE_SZ0i_jKBef)Zyw&;Vf*T>G- z!i}F$AA@NAMv5k3uajfdZWS<{(d76fw1;;9wmO9N&Hm0-T*mh)g@sSr25AoH*D)TQ zrF90+MqB!IjGOM)Va!tMI4&6vF0>e9X6Vn0oo9HJ5I`MI(|CgbYw2Vx{$%sDQNIC&N zXH!x#?gdPmPt2O_v=f%L#0_htfaFKrDP=RWwdeBE^^{{ z3CCtnhadC*85(BgfblJT=DWdCo>DYrJhE%$@d(I-eQL>{2jg@kzX>xfrMY5$n=M&+ z`&5b^;e;+a)#Ch21>5O*2yrrQ!p+LZ)6|c8pxkt(hckFK`LDODsE#lm5nb$E zcg>Rm2-mH#2S0gA4mu8*X=gmak%mx57`;7CR)oTt1CLdtZt+ zVXqgS2V2C)qDw{Th?0j;K0F&=i7}hyG4XkcF6C@l(#i|193K%zr?N>KgZvj5Hz|)9 zyhukb&CBM1&KW#gei$#NlN2vPYYn_eM<~q;>LD*v7B9r-mEuKct$~+mkQBOM9$l+` zX**p(FG6b#yvS@&S})hFju)Y|2419fN%O)!2K`3Vi_lsFFT0UsUmgYhg3NL>z;=b! z8hF{0#S8md%jtz-yi&F+wAR22yXJj*$*bR>JQ~1@&{_j86K=MopP%bj;K%Yw)<%N* z&giX$C#f_ubacZCJeiKtJQ=;U@FbOI22Yfi=?==bL3%QJYvD;M(F~q~vCgt(EUhP_ zw-%nHGR@%W;41ZG^wz?YPS^L9x%LV?*_bP>C!@C(o^%+{$J4PDc(S%X&6Ckv3r|wX zX5?LG1)i*Ll;+9kt%WD4Y%_T3u97FCw`!is+5JP5|7Gg|v!z5^QjYtFWyGhmy5vzj zZ&4Vx?EYc7DAfq#g#92(YfznJ;VE8(7WJ}9UZna+^YToUVGu7|%VC@pFG6b#ykzzd zgZDf$>qRSDDPDa4aFu$=>>md2QfBfpKrg<3xJq6!`-gld&Ft>oa71zrZ^k?$X_l9$Z>A?IV3(~FILQugBehpXfzvwt|YI$nJLaFx6a>>qAjfgj7K zM4N#6F6M?{r|qlc$>^P}-i1-dcFF{#=?T?((DGptcMC5}xMC=&gk(>(8ZmYOTPN)!k{H zjNV#!vi@9}r{gQ|Wc6g4C!@C(o~%EY=IO)=JYnrQGw+Pv=sfX#Nm)8LT4Ul$|0*Q& zVLY=fIjZ-D-kZ3aeSHScbOxW%XTnc`_j!4@GD#or#p1*hBo|EiTYUB(*C`F$((5}p zyjx{yah_FR;>R?DiSZb>Z*7bXjHb!?+nn`TSvE+QFzLp$8#Q?+qzg|t#tn7Ex`(=A z`@y@}4(LfgiTJ!kCzL-Adcm4vj^u;A`iz&>ML4(5G(3Nt+wXO`CJ|`Vr3b!zKEjSo z=4IC=t^k_M?`P1=W%#Kc`{stJ<18M-9Aezn@c7gek0DLtG4u<0Bu|9lWL`hbqb!jG znoRSEe$!BTyfWZ1O_MyP{X!ni9?4^t9$nl}LdR36%VGI^S|6WDx-qXw|B&C6b=s(v zg0s;eU&1bF&mq5O02@ttpHgkSQ;X?1zG8SNekv902ghPjaK2f{3&#}XCEcGlURW+! z=UID&F)7~h0!{eQ4caFg#LrykzXoxYe_1~w%s4CUr3F8k^sY_OBTRZivr=ke$q27K zc8X2xMKs=-erP`{je$)Emx~T?c$}k|4{5GeA3IX~6CTKayyaAMIE)O>$l^Kgmy1`_ zJJ<==1Z52{n0uByBs_>`>$|6QzS3BKIh`BL)#{vf5ZWN&f&4F{^FcCX>3m|1I_G#J zaTEGo6<1o^U!2^MmtC%#W?OO#f$;j=^D{)9N0p&qCU( z%@dX*O-tk;JW!4xQy6D0vZTw0$P#4AFl_Ou@K9^SmYJHV*@jOhN1bJDVl`6PP)yq z3>JbtGhv%~OB^?Iju*kA8!3CBH8HhoTk-;_i=6-)zn6ztpaF z_wGH8LWR-hVBH@ZQU;7k*Pl0gQ_EEfj>8?EK?1#>izN$7cra!Nmx#%K+e#qktN5~shcEU^*GFp4!Fz zuD_+flR(CS*4yAy>TO#S zB;S;SG)%6r-p0I)o%iBt>RB%yws_0xwo)mU8nwiGN1=_NO#1Yf)2r}PspLaixfDEz zpVZt{^xJWoQeP7Gy6m+UDswv3FpmH@(hYgOQvFPaR=*Gq?Of^`p_lh|m9_(r+Q2@7 z@-E{d>cQYscqUB#hS_(Smh}@UT7*-wvSJcR({ctjm#9b6a!MQT1s(IV{Sv_1_xrf}pTEE|NG2gK(y4tq* z*t+P$=4Mep8$HpB>A~#4?4LSy@A!j$_%3=-iD$_GI+^{vUy9R}a!R;g4tYs@q1&#_ zR}oIfG{W+V{7Ud|{2KojNBTALE;{+=`}E2AyHVdqCm(R>x;*-2c&Z*mF2bQ)Vb_>= zVcxL5q^)vpn)h@+ocKyRG4CdI5oDVlB42_!IV)ds7z>YUF=)Ib z`o;swMh;_N!O_Rt|Qi>nGn*c-t7tmV!M> zA_w859Ltx3puHKY9PGS+|bkbw@T(Bog z_$Tc7pDE4noF1QEY3w-c`~&1%e?CDoo`A?D{DTG?{LpSuMiaJ_AxrdIF)n2h*vrB* zndiC~o%RsoXoh(Zjup=!-0DuI8}_MXtjHsr=eqvP&fHA5vB`kVlU{&R#AveY}r;3aWF-E$7g(j(u4bk8{F$*0m0o&%bQ z+GpP(kK~E4=c(IkHpXRY#MB^sj3FJv zT!tU%!Fe5nX2Rx~2FESGg3I)NO5r}4mP$u!3vGlt+)&>fY=yiJ(szRQfS%_)@LP#@ zB-z&w{neNcDX)b4h)je{Cf;-MT`N|E zSX?Vi@VkBbHEJgt#|QCw_rL*67ssu1>+QJ{g^BWb313%Z82NvQO5@J@7u<)aGHZ!*R!FanarF zZW5P!0v`@iBfULP!K-lJcK54aL_6Ge^ChqULEayH=Vt0^+vDH6@V&gh`}_X&$9cc# z)N}ud_qV1A!W8#Z`L}+Zl@wB2~WroIVz+8 zlnB8^=+>bMeWMKyoUG_$Z8#zj{x1Csnp~gD$}9W0D0N_YWwyGCym|m+B(I=P(pyzt zy%h22$kRx9^*xuJzY%e^-F3}=$vexd%YNr~zDoc9sCiXosq&xF6unqpK`ene*74=4 znk-dSBEeCgsH0e>PU6OF7C+A6vMhyoVcD4?A{^rrmt`l!B`?RKD_(k1aR|Qw&)XF) z3@TgC_|LP?2hO%_|96dT#kQllUwD}J(tCb}709;s;otZ<-h+Ib8M2Ip;=!W9r-gQ z(B5{>^BcQ(f95a0=*_(Uw|{=y=f(e1Kk~1<|A)&nsivj*vX(E*Gl(R5=XlVSGr?y; z8+Xl@z(f-~ZM*IVxRGtw7#`?Hnj9aVb?B_wmu3wLGn2#O^AG0 zy+<#?od0)a2>8>i>BBPfL4sSN+=qB4X^F%B=UJdfxQdJAI@$qoq!+eTdjo%@8$HZ8 zaLR{#EB0!I`}%wXY;#-T(BI#SINO%~bvrBJux=~UX8ZemgqbEj^%fBA!_PvWpTPAXuCut#;ra|N)Z6R+2-iaa z?uXv{uED=3_uh8_H_rEa+O=6`y#K7S={wQ)=emi@cj5zpBX6u1JGl>@#%)8C`$gQM zC($Yx#{S0H7+w6r{Jsg{bcXwI3KupYdHyYma~)vm=RfE79-D;Uwwu1X$hg~Xx%Q1e z!n^hVgZ2yc7V@~&aT(N?RpVN2!#;o9e`jwVj%i%U@;D&hVqIbaq=Si^T8C|sAB8bK zWJ&1rGWcm*WO3l*($an&L3TGJed_8(t`VhW9-C@?Qq-wqN?< z8=-?l{uHwF2UOz*8P8UK(my$_PM1s2k8)Q(F1qEjI?4t6-S9C|uxV^bC0-&{**DOJ zuEAySAK>{~g+W8U4Gmdk4g@!z>nHCy@R@O-^9_#>fHNJ_?;jL4KlDL2Zr;ED&f=Yu z`-=zmy?ozzWYGSXyx5iAoJ^^3!N1!p%~x?WG8XBpHKEP4aBckNmQ+o~??&pF^CS#M z9&KcvbprTSJU=^tUz&o8fP=O1jV-`;1^6ga(P99<8P9Z<-aGNkKCZz(k7vpp+cf2w zDd9`qL&?H2ZnP*%$U9|uS`bcILYT6!&tdT?%M}4kS;hi*7+FXwDNALc+iNvrXBG0jKjODGwH&7fQWWr!eU((9=qcd123DQ*0CHNaHEE zT$^Gv7~^cs2HXXyxo*g`jEwc_|AC&2UXR&3LQqG0a58>XHIVVJywq>?AboAdUPcAOy zUCyo%e(_HLpXu;|y=2nY>KZ}O6 z&&}fTw(dG6Z)_`Fd5Y;3yZ9!8$8zbSzPR|@orm_n?By>*4CjY-^x`kF2h$WU;g3B0 zHNa4ZUk_kBZbIFk&7V83*{6I#_!F8)5RUXl=Wn*!tzaQ>x-ve&!VO0{m*8@GV>o@C z|D}-c8hRBMYx4_SrFZ@)dl*-~?lj6Sc@P?y6JQ-!IsuqY`ICOZ?*;HFJQI%d)Of0n z?;e6D@Txq;hmtcb<>}mUJP*UuF5nrDGf^aIm7T| z^C83~PlWq<+A}^ijQ}{NF^DJB*Oqr~vQ6=wo?d^FB!=PXYK><+5$@+{?@)R|pHg{h z9j`a)#aU(+T%fD_R?-z{=)6y-g$>Ty3VRx^4S&mjUHluRi`%B1`b-&Ehf{W@X)+P+ zlL=*HatM1w`8PeYjK~B7+bOzOuGgJrd&BhThrHSN&3Z<36);^^`cq1XaR%jcR{Crs z>B96$YPj_4t!8tfFfo&y=h}w&+E>ATgf39>i<54Vg&PzIV|Nx)jdjcCpzf4?%my>; zlel6YA5(1Shq?#zVq^ucwFPG+Tm^sjH|bvBZu0+peI~u_xE`Kuw92JMu`)ATy!&vG zJD36==fNn%hi=!OpPj)LJf=rq=MQ~tdJ&$lP_g=8?H@Gt&%TN9hNT^cjI&Yd0qcX*{v&6wMjqQ zPq~IK>*otVAC@0h1;P*dz5JF-+rBe6fG5=LPKhJ(bZ8i!(B`xLVU@KBWqlKP*o1U8 z(Y`j~vhh9IP3TUVS^r%W&3ma!52#F3_9o# z_bT~mkHC-T8#+avA2`g+p&P)H-`q4}o}UCspH|rBWR%w{nZDQ2tozK+0De~42A;of z1b*1P5PrZD-dCO^I6yyBBiCmjwdud%kMg?q`H?X^dR>Km8`BlSBYRdov8+7F+C*P| zwbPfayQz`uI3%0qb$pe)ZhAc;l6MGd<+od_a63k=0dLEHDZ`Xi<&-i^cz{eJ*OMTX zmZ<>0k@OFPmAdLA?ytu68eFf%^*RtD-v|$7EZ2M89?rv&Sp}1e{l0^WZ*>*n0dkI9 z_kvVf&O`7UNlw_O$O(JhbUz|z$Tp87Co=Q!KPkS+MtFd1BiF+qm6q)Y{8lB~Y0&z0 zM5b&(+cG1I-|!p2^T>5INTqph!*3*>p-bjRRKP`krGMA1b+Es?*lD{-s{#D3vL1ir zB$Dww4ywlwDPO07{0UqS;yR1#94^lDd+^<%hx9M?PIG;mgq%eUKJ;+o(AGOcoK^~n85YDJmU zp4g0-?4GZ~2lh*AGJr4Jo-Xl*@1H*Mz$knbviXt*c>rI2R|WHO1inrKeQ13Vne?BG zo8@C^q3X~08Nge0b^W_X&W*s^I^*rKfVWp1zO8u2Vb?hzZ!v#IXSa^#;1c3(MwKdctWwL=XG8`l6bK(Z*5!#1WV9JJ-vSxx^*>0r;~J zSokOL%)S|6xJ|6PER1Ub->vYtjhpX$*K@h1y6tzq>-%tvw!L!fEjRLh%NOhK=lz?0 z=vx?n+lMBf{sXx48RPHFy=xFzCNz1Er;7 zj~xO>NJyBgYwm{!YOUP+PU6AqoOyMYa~pV1s~d5HvU`HJ#0~3|JLn0ge2X3LQW%ss zea+YtERQE;i*Zceuxx=5DO*o>;%ZEJPmW^4mEObuINZUcg*s?6>ksPP@|k`g11vhj z-SB=N&vjf?^@GiB{&KYC!G~h_l8XWuI=f^$!oob@GwCsGAMTc}-5CbDmmCq+yu6nz z1Z^k7e?a#`8vgxJbO=$6*GqmW$^p)`&5v<@J6h*)2>&SpnJ#HS=1ci}v3nLj;9Sc0 z;BfcwUOdxToWpo#yr4d~l=X$liM+p*eYp3*&)olE?@a*YE~@G+VMFV)C zM2X0PC!0imuA=M48+F(GKc82}x4zxqo^%g^b$@>eZ{NZ+{QAor&^~ z>vGZu|CW1^>b%fr+b1**>Sf<(`2I?@i6Sw$N5U@?o{cyc(a3z{OmB?a?;|_CF~g{~ z_3ON`f%>bw@$IG_G8|d*#-V=PUm$KU<&fvd>j`+{9x!E){m6d+5J#k(*jFEUcP5+3 zrIVFx1_cN#M>z5k{4x1|bMl|b4aGSjZxKgg7A;E3GcP0UTW=006@v%dK;WvINZUp<_Oma2UeGMtTN z;5jK7w|*VcHt0mB8&vAc3xz>!AAX~>^I`1Ot&OmMj{{}{)8F3&@h8m++W#c1?GiNp zq~1)KQ`5AUYaC}d@DAh&tF=R%Om8ZIpEn9gY>HISv;z0aaZOk25ZlChQ$bweb2`d& zTe+4(Sn)~YWwWtzk&jEq{Ee28`OUyvf!LyBP_`|-8I&`)a&fK^ZbYutep``?FnKwA zptVFfha2f~nd|_ngf?tu(yf=}3WIsx(-@VyDDT;b0zFzx_N&WDMy^Ra(T;wBavhDf zPmrp#^6&0s9p=NNALI8}=wqAuBAD&l(QT+dQ`3MQ96b+t2DT&oYJq(CYIJ4TsUJeO z_B!ypkcU68?djuP_%XoLg`xi(@(c$46Y>szJLjScbFbyJZ@&aEgKpnWAIMmd~GETMi#Kc@@VbU$g^4IxOE1QVxAj z9wt!);!OwqK3;`N4VG~Ku{a0p<^u0g2HNENG(Pj+cJjaV^HU}}`9)5i{%&MWzh4K9|9Il>2f9p zCOw3y{8MMXqzf6=DtcHW-T8vLu-T$;A$MTDU>>Xaf>w5LG~L5IU&heaXk8wS`7(ak zfjM6`I56i++<`e?+8y{gf1SAs9%kLSmz6LICW-eBi&{?%F!+Ndi-j1yijfnOn>om~(5s4^PGXIokN6X670M znK}$Q&e%`o+HdAQ>+c8b`2MLJFN2Tl)L-HcDr!gdA4#)*YTDoE zwvcg3>beuAc=2KvCT03K z?HN>}nSuXo=i+i-#%Y|3X$Sr_@(gBfac*L5u`uT**C$iYxry<%@N>vBnEJ4}X?#1{ z$=u}FY5c>wUm*RF<|bB($&XnuR3x_;AM zE3eajo4O*d+M|ER#D@3`FV5a1grMa*=4|J=ILLX-l~r)RH|Fp6I`}stpK;(1BF|vx zJ)l4fKUoF;Ov43c&?3CZ{gIrIdRn%Eq zX#Gmg7rnM9Qbxb8tS#8*Jtx|=b`ZMnGkzF0{y(|4L^g13QRkL%2d=p5(l$>6JG~?0 zXP&8m)_XRMn@TU{wcK}vF1o+9Mdijm5E(OOjIRDnL|1<{-Jy#&!i-z34VdxpU|0(oeOvw(9Hy-QC?f`{|>OI!b3B^l|U?DSXB+{Twb#YTSoxw&n8|tFp=8 z^xos$={?|m)!Xm=D$)`;O_x6zd41$Pk#Dvf(XzDVik7~X59;!7wS23!rFBZ{Ijyg6 zy`lAetq-d5u}`)BqV=H0`B&VV`xoG~-TN@U-1lr`qAq_rvN)2ByesmZmT4{1Th_I_ zS(iW4a!1RPEx&9%x%KSUOzRt4Z__lt-MY`x{7xO3Kd3|V*>IYZ_txp}zB>KgU#Gu6 zbo%>T9ohbG9oc>qF5B3Dcl!I|Iy8S$hvxHjX#SKmtFGRnIy-@ez$^>3~IefY&)Qy@Y6`>?YQlxqs8H2Xrpulzo&@7T~idYe(og z`OkFih&<|_lgA#s>xxsZRVTUAe&2FCyyEmR6Wb;n(LQCYH~q-zP8c_R%28g+5p5I3 zPntempZ$K1XG7yEuYXC_*LUyTsx$s?$Hk&<}};jIYZpbh<7=BY#2$))sc_Ah3U@7 z-|s~#4_fouQxtJG?=llk%;14*ufT6^7IJudusnVZ9O7cW&KQr>c{Xtdc{tBR&X@<- zx&M9!Z!MdHsN2i4**NPMc*fbtpQ&N=MLmORo;9s{7WJ%U-`$!5?peF9zIqGN*`NH< zp5#5X-Y((x$UFqY?bE1Tm590uZ z-j-_k0TZ~0nt#=OsnzZ6ZK)Q&BotJ8jKVQ7|JB$A2luF|pn2dP)gato1>dM)*oSkE zCMV5{>PuDo2Ks{gR+Ck-ogMsEDEbokcIYwvUgXBx(Z=+ZeaSfR1IY8YHq$qzYOKVz zw&0oO!1KAZ8Q)JOwxj?vkUs2eCgvv8F5g2lJZHWg1@skK2Js`SiG=9z5(kvei*Lkx z?@)=rHZu?%o*FN)Vr3`2jl#kFa{OaQbo~Vv*gDu{z&8S(`99PdJ8MTCzVdoDcq($k zo(fX*MR?OM?=I%`n_uOn>VbE_f>w>+bNw3V1fH#Df9MpPcMhXO@uFOJ3S?oKPuu-^ znNNh3-tgperFWo&7dwaC>TUEb6ir{jqiRlt(P+RH5A(dL-yeJF*Y<~V-1KK0=eXR@ zE!{LYnB)9Li`66MMG&qxFKXw3dgp9rppeYzx0iAZ{q?%GUiHN-_pkNh-g)z$!RmLR z&ipj!uF*2XCTD)-b-O(8%_#UjQg#@Dyg7y+K%`GM@D2_8bIRqZ&8lQ9eE3W}CWf%S^8c1e7tMf({u34@ugu`X&MvcNnA6;3h-$^KPyh`JW9H$K9 z<@$&Sj-_lbxK%m{dq1Mc@@kDQvT!`+4&zUKS@0WnKo-Krz9Pv? ztZyJ4!~TRMj2y<#;nnP@iDj}wxiptpsizMu;dfpbL)`Q5-y0WIuW5-ul?vx1q`S-g zq|Dc^r*Z|IE7~%mdXe5_Dn>kktei7{q0CG8iLHjIU0ID7348;SHGW1=HB^!z4&CpVrSGBwGNm;^Q2xS5Vm@)!b4S1 zum0%Sw&?4z)Ejw`R>OLGa>}2c2mXZ3-`sJVZfo?mT*Fm*v(o84j7o28tJ{m-5)Qlr zdBRq2v{Aqex()SaZQJUt3J>T(y;a$|rd4B)s~p-!uT9(IX_wviHV81`*2_L}u`jpS zqd5yz>D5ZFjpZIe{^p&lYC=`M#mpO-9xx#U4ma2N+s`F>h9XM!)O_ zY)oh(k?~NvEyQwoiB$&*865fNw`*9<_gXwu+i|6CawxdarxB2w^~TR=9^xn0`S`MK z6L#fNJN2MklXV;P2R18m2^#4lyl9!|3yh3AkSFZQ#C;8et1GiVabyy-dNT1Ek8a

z9^@5U;ykzn@luUX8*=9?Va~_2Q~xyb*Euk44r5|;EjH)qUSuX5lv!DwEAwYv}bZsof>O^#XrB6Rp z$2|0CeH=@9Z*br+dH>R{7kLT$^2$cKBZfT$iVa<^NAr1YiG1LDv~7gqip;O|+lIR`6L-0^-`C?v(jI@7eylQkAraNaZAhHn_*<`rH(8~EC6e76t&C>8B z6z?Z)g1CtQE>J>cbml-qGH&pBi;RT*@s&e~w!ol_r|EVgqjV({S9E9g-(mASOmB`a z6PXB$Ov0kR-gus-9{qW2k1bMe{Er#Sk#xoR8`JbCcbJ?v`}HCxVWqqLP^?@UN;?-T zobhdWjc$iCmY%;sWQ|)hew4}V;a!<5PqF24r2sqzm#48sf4qXo^?0)1oNK0@GVpqh zhGhoNyn*@;@bn*LXff%w?te7YjbB@Rqk2wPc_ zMSZFZ%EF8Pl+DUgi&rBH^8`du3iXRS@1sGvffd;dbw4%nTV$Qp_f=K zUZ^bB_`E{*kX&zFSqKMZ=|qXekuiF&hJ&&M@IqzTYlRL zbB~Ns2p&+ZKQ#0FY81W>@%4zh?{X#sXko55=K4;(bHk6=0Kw4swE_)%9M5D7y8bxK zF?%k6O&oU&F1^3asptIR#@Eoh1NrLx*E{@r(Gg**BfOKp12BW8Av)^Qu+>o&9;zGG zk(m>;?M8J(`AnavBL@~8Ik234*=M&;%CamC=~GVAbo=Dup}OHdVSKH8FH4{FR|ecM zGX4sESJx68oM!ss>ax+kfWGbjA#B)=kCwezn->4~PM@FHFku;QfBzG@w}|R?vR3)~ zp8zgU?6_CkC}G;o22F?X9mrSDG5QAGKar2H$R}G25watucU>BfHaY)P-41(EwSMC# zDQwa@%nnWCiVXBY26o4ZGI0$t`{a5uI{SB#k+79f@$IbQD>5z&m$4c*AS0TLsM9-u zP_08}?=JEYR`Ox(%BFBfP@lLeM}Mpqoxo44HLeyf;B$WTMu24$(mtC1y456&7Rya_Ab{0&QOT*LPIi!^_KUlxih6ge! zI4Gy`_>K+DH~ZkAoB=%18RgXNYIGJR%S}GM$U@kcr4V`zkn1^l$QmU&tHC?u_=U;x z_9|HjyRxX>+WyJBKRHB}D!ftY`Yd!~w*S z#tie{)Qg?d4mG}v8DUqps{V_f=IA#5n3ZELo{_Bxyv>LuL|%xgAT}eLb4^HOBkam1 z4#}q}vdz`7E1QdFWE%wD5aJfZt%%zYn~{z4*3}zfSGI1z3>rsdJ4M5;Y%ZRWjr0DE zh<}avH;8XSY(_Tv6IV9Eu53#IGq|$N)37U>i-+|_Z2!%`8%DfVm_1`)U~izYjr1ktyfni#-u`Wm*ZC!If!&hFzIl zJR{RvfOjL}TmAM8$>jKZk%_R##Pci9^|8?3q*^$iDCbc~OWTT-fmlZ!IXJ)BcCwM9K7K>87q~0EaSQ zER-&4@fzYyKjrFyu;pFM(8Zd1;k!!1ZH8|Ury-tZ98G@-`#ekioVyHKF5zozMr@LH zQmnyih0S+RP2B>sq{qcpJT$aVG5ZPM2wG4DL9u*09gJ2CpIB?3bo1 z{U&UAa2n#tJ(AmR!j`A}oDi;i?gIn;4##as2JR(Y83TfpFZ0WH7Xh?g?8NEM-4__vKE*zv@(R_ zHY9_yro%5mEnY*sudm`w*z!*0%f%4h=1gvR z*WxwA`-Upsge`CBk2CXCP(2M_#pf!t3qL@S=|fK7-q@*J#-Cs>N%bSM9h+zi_XD@Rspo zziRQC=T+-(gx6~|FFRhfc+HQO+V|=U0brncz=nnAat%+ReX@V`@rCzIe)~{c!9L5k zOQGdEICl&K>yYJJgDbyVk9T|WU?ZtNz=Db!utdgwYBvTs9o6pZk ze@Rn6 ktDl5d)mH=*q4Lg90p!Iaz0_5M}z_c|6Q~xRjTKH0L<~43T*Gd=e1K`rz z;vF%67s^C_^6w$hir z-|4`IL*FjF8htM%_ZP#zw!bbt_BY7CO5e+f-5mdB^-ccNx9B{bA4ucM8b0h?8p!9f zrFg2Nv$MlI{w(7NU!vy=A9=v@}tk|09|ice#$sJ%zRdnVW>`@m%4* zjzZc@1Fo8*NjzSR=k6=nt+8a<@+Gs<#I|81?YOa8r2q`S4NBh#5G#^f3vB*-& zVqq#(;!Be$qZ#&rG?YBWa^FBcLwuIYT=dT0NfeB9eC!ZP8?-%+d`#b5Tf@1+($@W;`pHJxqJHd&xNee6`QIcI8??NZ8gmKoA`azs zdEs19%`1+gCU`9iV6G3!b|K!{7b1=NT=hSWa;=64!H6uQXexfOrboYzX;hd zr~1#_?lfKs!8Zr!GRPfxR|@q{|4kdy{SyC8*q3Kxl{5;M{Z#Ux-b$nDC~L{cGcmFO zpch9Zk12>&u4FM?wh~$yj{6XB%(;`g-U;|`5smI2MgH$J3|{J80&{+o`5?+BEcwAA za~&Ewh@`d-cv}Y&NmQBkp*ooD*NYAaw;)DjOxQ=hL#OtAHdBG)>w!4FGAOT+Z~M&y z*MA%E_S4^W!evNVhqjTFdWTiHl=kGcR?IN4zTSA9<=2a>gnd~dY9^Z++z1m|9`rN5 ztOln>R*c(Q;~?ja!9Mf^q_iW-!Z~Eet&lZGRjH$%uR{HVQ@(!k=^7vQ5lO*R6Cz8Z zFt`;Jx~^Wo{>87Cei4>_Rm$1^GFDlC8XEnXb+%lP?X)10jns=Bdgl)VjKU@FLdqhk zI|b=(L6=vf<Gu#sFI?~qf*vJPMXjqe-odguHM1T2@!vC^xdB;`6Y%lW$-6X+wqggf zH!az@6lJr2m;CN6x(;}e6z?Zk>hZ6f%t&(`XdI7J!o;6G!Zf0Jw4D64F(TKJyP0@n z&bV#^)3K}0SiyAMn!BP*$FDn9>ID~Y95ffRf?>2Y(bUm(aWJ(-$WdmllWNZ6oi0u} z_#eM2T^#H!W$k{KW#ajllCgf=kLK|IWzhX}RBFKZ4 zQ{uPfx?<#vq8}gg#vL~-{XCLmkG{5l8Y%ianIItG)9vNUYUjDMq^7C5+?<_SDkFc|n$BW>J)~E#}{tht-=MGx}wZg0JbyJ04+#hL618@jV(2 zJ4@(x;tR}par|~55~e_ra<-I9=3#w2?uz*c{h;mTYiv*E*Z7-3LG_EgTwBPq27%@E zWV7S(!beZ|2jDe29wN8wxA4OTOc%nZ%?^hA{CUnFK7bIzd_*||>y_;9h@JrE*Ap&9Ib|ac!nw8$vi=Z8IN=8TF?sGmBhrUruBb0~ zvkp3G-7mCba+gQ0U)?fqXx^`B82Ia?qsz$idsXmrfEf(_FOhffaao>z!`7e3HH1Oq zpV%{=dh+4R2_Tqycbvih#Ou`Scx*k!mFlwaryP4h@rk?fhdN`7K>HZW%t~#Dls!IGF#AKTMXl^{0&+ zw6gyQIL>+F#6JS2-D+K&M0>ea!^lUTN1nQ-Ok6XGHy6t^lrGnyhLO_eU5kivd8Y*B zxZd%T=-5fT*VwVElP&>FT83}dsYmvtVW*Dr(ODVXdyzMLZ^+g5N9eo@Wegfe{Fy^P z;Lkd=KYOhnN7d5v6dYMGtP6Dgj3VBZi72!&8I=DmePftBXMgC}(*I?ezpFfebi(ti z+Lkh1djECY>rI&a^gmt1blc}XLOY>MSd88GXj+dgZc|<#C(n}6iSzCtDJiB+4u?EV z2jg?nliWXY-#7L*`%F3Y{TzVzI(WZEo@>ulhzyit3VpTl($HZp6C3F5m1?6$@z=L$ ze9#qt{eOJ;WR!XD)9_r+J9!%N48w?A$7mNlh?rCIzFlJ%GFOuQnbJTmli-}`SiuV_ zX>m5drF^~*)QG$}1?3E^m$}on!FvpOMwUS*CzA%~xBdiX^N+e5a-Muap~7JlJlOQf z8}NrgWKq{63YFe+qTH7(Wi!}o#8+gO$+ZcENBXpFHJ2?`Y%nK7;>&a+*iD* z-6fJ{i7KN!e~mmv@cCzO?}DWZ?mbzvpf%3>O`4+OgLMnMd&|iLXd}-+TEailKJ{nF z`}_+T?D?GDA5Q+DP38zL|Nj6i{I97bH}V7)UzY9YOj|tPcM>5+3|lAT?~UEdeIWCs zI{|SwvDBdskVC(K5nYxxTLi%m(jQt8(|1pkRy$(Jd&@4BeG3vPl6JK7-PsCWcgc%R za`3ktbz60vVA{K*3xPY~2UCv8A!QxfI{P%4{`RertmoKpS3(|EHzIqcS=sl11iJB- zs7fvWmt6MgHL}x`QHa1kHlX*tK%?w&mA-tk9|ML#z59on24z2>W#8~}%Ra-%Ue5HT zbMcPlE4s|KvP$oQV0V@57nJRl#$R_HlE?|;uZtt)w32qL+ufIz6PQ@6^ZUk3)ICi^ zgg2^0{@$eXMrZrbo+q^8mQwY;+vN;xU~`@}FwggLw%7R8@W~*5_Au#D z)+qYJwI4k>ZaC5z^CEw{KWsZs-f!){6V zyrVGO4=2-=+)&oD9}UoTSnp+z@&Uj+kKFE*e+T&wA$}O~4qc8UYW9-Muf`vl>vq2M zG&x^x)br)WI7mT!CG$x01v1oyI|mrIm5psa$1$Hn!0QLsN>G<@UjdcG*wpDzmb=SMhv80O2Ie=WTkBG10@_~<8) zvd=GezJNyPe3+=|W3VwF7Ct!a#afGg8Rx_4?+uv`9Cyk^8&`H8Y!^oz?Eca98gC@K zhkc3N?*J}+=SLC$Nw;GiZU0Whk0H{Jd>oOyX)`7mnEPd;Gt@VI&FgP8LE17S!w*y< zw!HxPV>L{k&_nb>q^6v0j4YhTjx2JWhp^01*`w!*c&An|*Uz5>;+-oyg1`B4{ZspM z7cW-sEv8Uo^^f0vwo}c+rVRa#UJ0NL(dWf$tVwK~@he9%V}9lkStkQe@d>Xdy)20% zuy0tyqJxEjjCm23<{|f@#+Umy9}pMgu4!*pPoV;4U>(L5d(smAl0q@AQdP%&@NWIw zs%%SbUT;%TPa4p_^*>J_&%koZ%zY;*8<^w4VBk+FP+(-E59>P6Z2O}YH-@7s(R7=J zt}QM%9brQR1&@oEb(XZEFfX28XD|QoH13UOd*9mrB-2}-J&*P^`>9n|o3kiv%im)s z_)DWbX4igX2W?3oA^HsdnEVTVeip}Dm(SvUp82uLKP0yy&%iS1aMmh)7T05(#m@=u z5DOm1K-tgcG!abumt%aL`4&CI_|Cdi_X|Fc<4aM^@S6UcMqDxDPeZT)Qytmc3GvzD|LhYOc|rZ%J0teVKuclwQd%V>dBU z1jy+pZH_>?8|3VvUYEOP9j#L~vFoZHlUd*QyekgqHuMQUb>0Vu;#t4<>n3sE^3RCc zU!Wh9vs6i;jDa+L+pDbu{n_J{=njptT)^t#tzOP=A`?JM>4Np7ZpRSzOWTDC@OwFR zGDcnY9`+)CzlV4%qb!RNcT00@OKI6kNy)*jyz8ygV^sn-AZ|?L`g;cwKtKZot*_a< zHV~1uyj;k{{6&%V)Vq<7^Mirq?BhIve0XUUyv`Xvca7uPV0<3dVLaPWvkpV&Wh&Oz zkf*CF^W%$=<#koO^HuP*vRo-yU0Jxtr!4+hQwLkp{m!=r4y6P1!Rn+|2c%rf_is@a z(1Fh~APXmm5vCCxxU$shfEH6L%XTeGPzShyMz9tBp>#m!W5%LZ2Yz2&-QTJC>UORB zHA}(>vv0*8lm9sKl+TwD$T5r+${2{}&&klb*$<%@*1vfWx8v$dzgFgNpgsE#VN=YI zL3|NwpacfRWG9LRFN##n1x?>U#4Wx9gQaxV;9_l?{cmi|0tDU1*}p{Ij63Gg9G1KA z4Cgy*)$3!#kxPWqbY~!~BNu8EZ;X7~Jl?02DBJ#!|Eap3a$tK^9HYvlKT)K0Y#Fny@i|65TBjqy-hVdLhH{D==San0aG@_f4{ErAVI=$HbRO_XhpOLXE_$|sg=X+D1jyip~ zCs;4`x6`keYZin@(6KC81_L*$ZXa9#Q3P9imCjo9}T zyWjHV*Cgz?(_fIEu>;N_ca0cf&pYQHjm!2*=D>c6Gu`_CC~yvk4a0Vg5_~cjfB8k!O`CbsdN5doNa2c9Q`zX@Gp+opIE6-?kC_-sEjo6~UAI;nTG_J$y zJwXr-+Y|hw-$(Jagh$YE52_EVj-BftvhO$a+2=-mtq7&%YEs9xKQD!jA<~>jwOq_U zqx0Y;KKV=s-hn*f5p=&C)rVF0=8Vq1kJi3LC@oi$y0`s#DRggi{0~|-!aEQND<5pH z8ReJj1&=ytqz@DQ^Y?J&~Dkt;}kL8kNk>`e>$vN$Zg*rp z-wVR`1YyxJ_hQ;^M8||j&~ax6>KWK3ig-Bo75rU9%P?xcYXl>mM)Zua)z=jBrm2;I zdt1_BtZ&ajztxBzTc~MbJVn=pN7A)>wvPh$aOfJo+V+$EV_-@fYt(OaYQfm9SzWt* zYTT}?b?x8hL>giHIH#YYYr-Sx+Pwx41@7U{HGeBIx*fHywP2&swcDqcQrAvDMc0H! z(zSan;Be`hznzVsYx}LV>iO)R_dB&PVX*l2X^_Nj4QSNo9awNcfNq)Yegdbo6X^x@E@7Hl-S zbo=yj>e4-<9xh$B9}Zn=!A7G?w@-&pmrE|(;P*>>z{3u_19`$D+3j-FGq6ul#KYkO zCTn`^C+RXUC5$~mL+6i9E!b#u?e?j0T?ft>IC}q z3b$GZs?WSvltLEM?mcJpkxI9^E>`o*?A)q-qxkoK*Ss*M;#&yU@WJ;$1}nLME~nS< ztHmKr-lKg0QR_{35U%Bcmodd~BU!dTy$$sYY}07JjBTRH+*j+ixV}Ai!(hHrN}@oQ z8JT|Uz&ns993oTTp0rw7@_~9o`xjNT2?uFo42!r!r|b_B`+5wbKZfBrhR4sUcn}Wq z7#heGgY@acefqWahBmJ;y5mJSNE@~nLwj`#pWsdn(5|gV_1v&vxyFj-N8v9Ha@&t}~>yA<`hp*@hY>XUpsV_%vk?Xg9y^JGa(g>BUFH^{&j-jr; zs&F`N-v>VT39deV<-pVj;ULdEY&)ILWz~C(*>)PD@0)7t!Att|pGXZa(k2|Ft>yxX z1+UgOZSG-R%^bs+@^Af6njN!tcMU_z|whZ|NxdS3NiXRK<^QeSXdN?+AxJ$M2v6bNmR0@=H}><@A8= zp|XJn=U@j&x;DcpVqx$UcqE>xm(B64nuie=CQrhlJoy>+UOWaOGru{WW1N0Lw-M4e zbA>z!kHm8{{T%D?AWwIGk|*I%o~bN%dpvcGrmx=KD!y*t$(Qh<_>Q8#-o7fnZvV-b za428tY-wQYHrrhpn+9#zeLpGvLd5k;)w8u_5wx{S)~T4&|Hc$E$_& zcy0nujbujE=V8~D$lLW*YscGADVBMRXBCnpp6Zat~=Hf9hkfc6DP=@Gq`V{T*3E|obyZY>>Z9n9ixxle;^vZ z;3IGqk5UdF7~2Xms21E{pHv;*|2<^tVHec%c88h?TsO2ccIJ#)Aq~W$#J}@1<~j6JdbS2l3bo4p3%oIH4b6wgK$tE^0Bp; zd5D~Cry~0M<6ynt7SAkJ)Mt^|hUa+I#xGaHdMCswV#fDI6;DVN*Q~mHl`pS(_8NA9%Lx_rq)h#OQ@=Av zp;Pg#85`1AS|wAJ?ko+B7fM6ls6soHF|DG3bw|sg1PP_lrRokzL*u!6cCYx#YD3r%cdE)ZR|5DeHen8IRrV6WS=AtgQa}ltN&9Yd!Uwyvb zj`z7$dZArj!SPv^SbfpuY6g)$W!;2%NdmGV4v|H8^fbYvr#=sD9yR?H9?P5HvAjNy zE-DY9TBpKeMH4($)aTKyScLOf*#wW3^?B%N5YD5s%Q7)`SUu+O<7&)1yDXFHF<&-P zKRWTWj5e%8^XRV2LoS@u8;{PVP4HM+mxuZ7ICRWA{RwjDe)tolT30Ja)RjL$4$Z@# zAjHMq&CWq{<6?L}{0VYs9{vQW;SuJejW6j^v!@syiifzVa2~$1t!Gc9rR>Rfw#2RCA#N(1hwp3;&BJ%LAw0xQh4Sd`XxvA2cLaP? zRX@Z{h4biaf=A~_JXX+6h4NV1L_d}W`{C{rgh3dOWU(ZBaJ>N68xQ)sD}bBeIl{pe zKUh^>(+_t81{vz{puAU@y%rUMK-|gNmn7it5>>Rw%jcIX<;)>Rx5fTVpNm+RPzRtu z8#x5Uw&auj@s6atRLShA$h+OP7rX@VP$Y5{k(QtUdE=pZx6*`JJ5kW#wMOGeBS>*9 zg@_Z{c?3inUB6z^S=#}7(Ftv1-iEYoLfg@7h;$6>4{0QNr%LDY{EBiG+q3S!BEMUS zR4Cv*OUAQR6_id7sydCE?An?N6r}Odnm|E0xur`LPyva` zR-u?o;XABlPl{5d%*F)1;+fFz)-ZVLMWO7_d03Lk?oZy0UvMr3=!w;|;uH}I#B z{|5(tyb9hAm}6z|`MbzHK0F`xYTuC?1B-{1eCCb(3Q{k;Rr!s@+yFi@)|bx#->cy>fp#Tz;Rf)GMDe;8)cKOIdA>^7?cjYFs4q zxwz@R%s*dEU4dDba`31JgZEbC??Y@sjNlca{2+{Z6&!Ke5%sl?B7Q?3EXIb!L+SRY z_2&&IA+H-TupaW`ooB_I|E)9vyax;u2$%ivNi_+EPig$kMHGzls=jG74TbyIl;&qh z=(qc_t!vBrm@jmHE`R;L-sZhw3X9lg5^cwrh4X@B*0rJT38eQUK7eS-Xde$Eenyu; zH|m}${XL=Cf4uc=!@6!N$IidE3Kw^?GKi?Qy8k!<1ky*C|9Si|`Ny3+e;Z~w^gI6m zQpjiE1@yu2?FP2rJ&Keog?z`>t?>?2>Uui4Stwtm>r6SW>G7St)$in#H>MgK@^i>lNun(U)19|pKw?CEraN&yqb6%SIytXw1za3NdM5q3vK)u0% zzk)n{slne1{8u^f?~!Mpb^St4jFJPNhWwchd^++hBYvAZcXS!%g3OuE0{$H0Lx{9z z`W5jlxvn&Qi}?a9>7b3-KXl>ynYfpsao>Wm_jbb_i7QDYGntZn%#4mjL8v!8;8!*P ztnn-4zmGKNOX!yB_!Kra;paM|X$R+j`_M0=sAt{OL(l((=LO$)z3?jiZDY2_S}^8e z=q#b%;m)k%rp&mB&cC2}!an64*1LRoA?!v1X`+7NumVl{g|`64bwdk(9C@5+4ea=n zZT-n&C5I2PX3ALiF`D`gTZPNoR`}n;;83kTI+?$i1YFjpS%*bFFJ2*UPf-bUE_1kjCNjr*{31%l0KPZNSckz z%Of3p&P%TKy1kv3gzMUo_PIQH0ZrPzn6ZW2W3B)l<1d=@!MCGnd-dLq@-*UuGr%)p z#Ie5mnr}yeNWC;R*8I+b)$6Fo`Z1q|jP+N2xS_G0n6u` zSlFq3`#H#4TWe%&Q*5AvJGPuBBdw8#8ejB3xIRDg>!Sz2hq^(S|2Y0Ik2R&?wf1Ye z4d(*a1Ve+eHZrFt`0W>RoG1FQozszWA=TO4gNsvr_<9#U)XmMI#tWP4>;u z*tCOuvhEU(_=LmO-Lp}Sbxd%$7TPnCE@Qu+Kz_G|aUO4*r{zuHBaMk6JjjGP2Ce6X z&b@1=9SgJU({-SA+7je5KJIB}Idzvibr{RjpkJN=T0V#P7pP;9HLN$;zYI?u;VLn{ z!?rP7iuZ^~k^k|CvwD-cQo1jf&n&9OBnhhz?teEqa6SDvZBDxZzTUrKj{j ze{XK%U@2MAH>DW){`0bnE?Ty7ndnyI_EvCxI?oryi{gX#FtAU*RBe`lyvT_0n(^rt z&Ke6Z`Y)LY7LFY`rRdhjX0!|k;Mw!Iy8HNx-b$_b@bc&x0eDpvz4NMIeG7$=FLw3G z(%izCqpl0k%TMHq-{)76uVMP|8#}JF^&2pJ*WcmYcl(1la(-^ZL+uaU{`n1`-?MA` zBkf;_e(m<%d!N|(%+5&hXc*GM=<#0EJEnN-_V&GPdnXjfuW#Eme$TiA;|@e{L>TFx zBg?J-&Q;Nu1Ge$IQS;oBcBK62nI+aKTcjXmGo`^+wH=h5C#JEyhJY@c47;Z4~& z;lNRQ+jbsN93RIB?;N*tr152)=0#Z#=NN;YnfH}!p@@gb`iC4|Q|}RPqWXC!c>l|v zp8V4<4o)~Y`(V$(3l6^iVBz4K5B}}J_Z__J-~$K0ba2nX9~}J2!CxQz6Mi2*2FAS5 z>-Ns})_IrW`?P7VA6MS4^=`uT`}gBI*4?;nxeM2~p7g%&{Rn5H-=UWiB2yzLM&?D9 zL{>)DL@tcHHj<3wBU>WZMsAMW8o49#$;g9|FGZe={9EK_k>9tpwH(tjw`Ez&+LkL? z`dZ%D^0zHJS{`iqX3I}o$G1k&3HHrIeg93dki#{Bj^KA6u}3re64b{K;kQdEl&XF& zKw4^%M>X5MmN+29mR%}s9Yz`@quY_0g(x<~S*X7CobKz-m%V{hxinPra7TE_OZWH6 z_JbD3HREYShR>@++Qa%{*h5Gl9^og0uzb&pb;@$R)~wDe%k{4-5av3_plQh&$$@2k z{ia_p_bL)rdMg(A%76DdEvjNabnv+^VbJs?Pop(3`4d+3a7REc6Yo?yNkaDrzKK zulX?{PiZp~sTn6$m|&1dmuKI7n~E8H2h+n7ths)Tq~(jf;CW|ZUm*05EH?XU=6Rje z$lRak1Z4ZQxLY6}UImzfX}XKKn!0cjpB#)k^#izEw#R}026@VD+TVnH1<}=8f1(Q| zJ`QDYc~tWx4cY){2%Q3cCq|xue0X+r#uwjtV~wgqviLoIzV$qv#~8Q%CGw=FWkoI^ zhuF1|3;Jx`uS_)t_6ir7xVgB164GJcA?xi(*woNoe5WoTPS_d7^edh;mK&h=A>BMc z&yoGO*8_n;_hm8nZbo+Wb@3Og;BOHbf%u5k-z;3b7v-ey%LUg4n1O9{KR=9YO+Piw zL-Z3L86q(Rhu$3kYv@6K!9gnhbYSVH;fHeDPb)ir|J24pyqCjPxNkSMLiS+mMVN^P zzay=6xQo@qp?vH^L$;#mSz}>aP48i3Yv@rQntqL~{0Hi|>oolLBJbcYrmeW}7Xgz2 z%XGi2aX4~3qR}i}_KWq5b?1QUmo*ND-lJjkj4jloCo;;t%WCo_N|iL|hzv-qZ>X{h zjb(MhCemlhL!M^M(eUEm5dlHNOXz^NvJZ~mBnC=UA2fX~79yAKm(;Vsz@))Y&0noD zs+>6cvIFTDpIOWH$I4l*2$sf@Q;;W)rnv;yK*p0lVT2`I4@@05H&6Jmtkcf*2iaQ? zj^I)VmS*HsTi8eI{!A{L;7(LZElpWl3_pzRk}bjdC2w_L&{?u0nJN$D2P@nYF&NoC zqw@y-hSd7?`!y`%A@Z%165`{!7``o)?M?J_Ei1?_*|rn;z}ND5G4hdNj0gMugXI)HA4idmETTIH4jo&x75qbutxM<7W9#p6U|X&G zbGR;;=uJ5^L^j%j8ILf%jeALClS?MT7xY{A52Xj(Jrn&K_gl`I5UMxh2M({^dcfI^ z2V}$LpG3Le-R~LsjBe`9*_TGXnzv+!Tuv-x zE2Ui8l(S#-$HoQ-Q$Dxf`-zOeIjGi)Zdta-SH@Q4^UsQ)A+izaaL5KSmQDk*$;2RE z@x{fY(wuUEhK|Tb#KR$<>zgQ_3y0`V93J_?W?J`e9dJh0$|Ld-@o>n;@i256kS`5% z!N*zJmoJeT>}3UlrX?~u*TF-5pTR$r{WT|}dYFxJhz|LU-vWoU^tg3!&0;X{amaHoEpn^#gB6xIv_VH!93Ns8<;fKdE$338 zSvjdI24kOu-7^Gbf0_sgY-j@WK*ZYUI~Da1!|+J8%*Cv;z+#@63zNzXfdO0c@w{zCPvm zupuq+(tHQ774J5r@MY~ts9KSSwNDd3V1@BZ%yZArz&y_<49qjIFN+ZO@xGDFK!4Vg z8%UD5d^Y3tCd+uf9u))q9_<=0fvDhpeQf934$E`B@lJa=OK55trvTN;I1_-8(N>_0 zc?QaI4B|eL6fZuo3HR7mDtP~1Rv%`3zBss2wqm6(-f1s=xxBfYTHbR37~ZU)9WXFY znhd4^<(PxGk1Pg;@Qa090HGo_QbQ=t^~Z*id9}@TbU~CtuAGi{;(8THy7I7VA`kib z{TM2w3T2`SE)qNMs@963Ld;+)T+;^_y#V+=zdo?`ptzfM$+igHv+&2{d540g*?k%Edz?C6 zvr==>8e>d7Mn$V%fm+qp*gR8?fj`FbyB3XuhRn$b`AhBzYSVTdE@eoLNq!w^R_x?YR?zI--0ghx<@JiIJ0TViJ8z(6K3 zfD9tGu_doJ*E^6HEaFC!Y(m^eFZQ=o4%*>rqJGnd;!XZak8mz!|5qEzLYq=+4C`W4 z7)k!y1)8@_^)yC+9%rq}M zuax|MUcSfgzvwlvRzUuM4>0!T>aw2h?N}v}>IVQ{AFca!5%q($t9wYc1Htz$Lyz6p zqJDwju8sGI0pI9VepjLVZd82rZ`_@zL?9o8n%}tHF(QHsvtNY$_mktcNXIWvL!Dy} z_HF7Y7Jkr`{l2;>Lu&15Bs-zJTGwPF;%i;iTjwizUp&K~>pa`D8=@nv8#s|=VSa%} zp(@ygz!9Jd#Ckfq4cgr2%g8>G$Z2}?=CdNSgSyTn|#9M4E-D*8$9Q-EqwAAoG+N_><3rC}RGUB;RtzdhjN&IxV{#db+2?95tiSME8e z342~%#rIXs@-+)Yll`sUm-C3F>ayXc+|FaUbDQ- zBGX8pUEX?Y=i1l#&GI&@Rn_t;Vr>=-0EkOCYy|~<(%TjCg&3gtTM`?W8#tseFvuW2~HDS}g0BM?+8RvjauS2=9X(BQZ z*)%eFW78~W|4cdMHhJ1K>$vdl!_Qf`sHse}uh0W#io`M&E?5qbw>6+A{KfC3 z2Gg5j>A_M77f@q`f&Lu*mAxWC{yYpi{wk~iFqEvYS^6$}?SkzI7@aWBz&;uz;?O7V z%WX-P`gwgWmoDY-P7eJdCDtP>`#SzGPrLdF(!cWI9?tn!Iq)2y{@8(6!T*_g247cm zeM|IFF5+VZ=6i*~>r1}R4j_Sp?YFrO*X5K^7c?z)*T_Dn%WEII-GR^drrkzc*L{d>YU!{X)lI2MrDyBanxTQQHQB?fk>CBN4wupsJkq z$iNO5`Rp}Ia86_f3&li*m#OiafuIT=FHG1qLS&2uu@$N>4`2#I*<>v6BSa-xqW4YW zIl_1kJqrS52%#Os7EGtFSgNl^8T%r%Qv(CI_Ygk-l<`Eh5}I^*5v@vQ9}{&9#M3rD zZYT0lM4?&C<>M=tijc&af>=ch7$`(=XdJ=0{TO0!T!*s#gSaf1!7es*KL=7VeDiT* zwm<9K8z*u_o+XPo|Bw&*9Qik--}2#}1pF^Rsb7KmtB{}lyK7oL%e3v8tzTyP^S|sepS}FU)40DRkIO(KW#0tmzZ@(zSeAE#mD2@mBlL^H z2>2+3!q5`sQW}&k{ho>?;5QCy=#7FtbkuY6m@nRI_!0gn0Pcyj4tqZ3tcCD3J&(x{ zv4zEvZ)rXSSnR>hPq`1$yb@06O$Lr{8@2V|f85W3WBfnm`5xduAR2jojQp7n`~vd0 zcgxf-=Q>C^H2(4vkmtNLa5wVn9e5q`Zu=Bq`VfP^4S7C`WZ;{TH}uxvRfu<1%2{lj zDsMW0k6lV29n7s2@5j7h6$@DgpSj|bNJ*RfOh&`=GssgO z-xkzu9b95v`5|}a9iX( z?aUCHZO=j6y&2zV?NP5BEfw_JN&S^!BTO^x^(FI_1itYmsp^1a`_rJHXmKs%eucr^ zqhKDc_!-KUBO0A>PTuXqE8Bu=`%10@|KQZml6|&nA4Naudnf$l4cA|eboS&Eo@H-m zZ@m1%6w_xHK6?*R^1_-Y@64?Aeq2`5`AxuKATDB01@G51@Nu5Ea`7P=vK_+8SK$xy z;^Un0HTAF6_0Yx2YmjGP9bx(i_LnepxN@% z!Q$`N<@7@ghR%N>|BRHVKP-oQ;-9~bJn8GXp2Ndaow!bA4VAdg+~K?XfP+E=*3sTd zkv;f(wAdrdTzgprn1SWsc{+VPeHUTa(uivgtf-rna)xz0;@{$`&l*Lf*dd|?--UsbjC zp0C+MB6GDIMi+zRugj2}ek1<)4P8G!T zlOl%Jhfx0=M8X)8)8TK&A5_ERjIVBsc^^wD@9MVyu5Qn9Li?6gfPLF=+Twu9;I`#@ zY+$sl`u>*F*11Q7d?@$#gKftQ114XeH}~w=-RN&%D#?vLf_3o@G(?~*SWDXeh_Ok> z_}WMnw2Vh^KY+0_G6%l5y#YkqW5l4xZ{-8Xv)oKHQ_eMx<%AhbIoC2d(MhQ)hpe)e{Ts@}&hX}Syn$qp zC~Vh`I18^%UxYZcf;B_krVi;Dr{a&MZ?DT>?<&iv&`aeCcq=P6lo{+U*i`VT3$=f< zb+JM97`)WOws5^8j=#*QHryNUCOs)}=X`Rgf=d^!pQ4Xa^lR(br_%W12F`&oNC`s^ z!gn^(-MUF4k7q^YwYjFCU&@9w^F8wzU2fpTfcGI9n0D)&GtayburnTKUhR3W zL6ODB>~*im5794 zl4sGMlIC1Qwr3zb1<{3BZeYXv_aWnsew+>awrfiiFvrczAL_^Gh;-Z-2kyDVo%qv7 zka#UKp1FZ(>&ahzVLj3@OYRnDI`)j~Hn4o$sx!C^@y4&YE6TKO-LXJ zt609)hH%YgWF4LC*N^Cf=%Y4`ZS{s7{9%#6(m&@t@Mv!RUE<;VdirjPsK@LauCojV z{vq;?PdMjSfSoxIXPxnHkS9J3Ee#BR8DHo{yEg6GyXV{kt?MspY1y-P*X&I#U6&p( zI4962dR;r)_wL!W>)cBwkB_X{NyJ@yrtAgcdgA%MF^{z&pB>8LMTiKLkxEy4@!C4b zBf*hh9cWOh)*_Hg=La!RCHI;M+m%#Pqldb5C1KE|&x1rA@zb-;lkSIZO!zRhc0y54~y zSLF2${4nz5JA#}t<6Jq7y<%S=au(AdfIu9?_%*sfx1sJ%+734on#hPh{hqQ$cx)_FUeWjp8gXW?$b%XkX85>BUyrmz%maW5jyuy2Gi54J_X4 zz_bDEQEFs8)c8*#Z~S!LpGoHNoN2<j~#bunCZzEEnpFmuO*oSyFBF{!#vp7$gPSq)Gg)r$c zov+gcI$fgE6*^t1)6;c&hE92YW&5*qx=N?iJLPXK8=8PIv0`9-V$lr=Qm8zv%RHI(*l=E0b;&vmlj&@2Pjs1h%Om#9+`i$9##GQl4YZP-4 zk4HQOk+|~^PeklQJPEOY$hQ56QN#hnS%^hM(%OtjS|vo%DkGBCAR=iEA=2)*B2sVL z5GmWah?I2=BKvR^Vhf_#cgWpYJw2=v-BWjJAA{-dl$F{xjLQIy>oVwc74N9XclkG$ zVyqZeag0oU7E;Kd>L`p9)_$DQ#J;C|6YMY zhwwj%rMUb{+_w#EjCZZf=v%YNlQy7u>Ut7IU>)^Q@=pCek~pHJ{dpNBAO0rlz|+?M zU*zZd@VV3h$AvV3cP{(6$bpw2Pc`_uqAcn@Fi4w9cAyf0?P;gJyn@3jsnha)?{?=L zK>XeID{bl?1cOgm)&U^jAnyWRUV&FP=v&b`@Vu;PGt=kwKFrv5;P|}s2P1Sl-%jMdMZDBQ1ud%pG)Mze?+g+7Ee*6{ec5C&-nC2> zTRhHb`U3-oFcsW~An|su`d}v=9K6jU6W3VIn-RFn89{v_`tX+M@rE3#wE?kAuP#L0ep1YNBrXT+yEv;Tx zAEEuVu3tURYkh$&41BI)W#J8|<9v%?$6p%AWfo}}VtoVoEXoHZ8c6)ydN#pQ!8vE*PTH-PV0;64MvQh4yCt3L)_f>Q3!;80%DWUPMfb?~tlTK!c# zTaqpH2k!U8xUBwxgGcy3g76xYNnl?-+qh(AN*nEV{^KM@Zg{sNJ7K7@8} zqs;+Bi!=?rv>>nAE7vzBtECj z8MPJKTC8-V%la~f+~O4?v@R*+y2@IcZb_h(;B?ir>UK*q*`dXqJ>4soh7~RgE9?m? zTpm)mQVq5iPcvE>kkAwcgfxYLm zldh#TV&g59)mYtK%a_;Sv9LxI7S@QuLT*NtUC{5Zfsc&9uiIy{a28wh1g4C4K0 z^tv#V%0MBN#PfN+6IQ+(w<0I=_{4HD@C>5A|0JP&c@WQv#D>%t1vv-67x#osznmr-qr_m=?@`Xae5Hnv?4i>^a7PETsqkQy?Z3G*3i!yT>2f# zL7j+RlKC>;ems!q>)L`M!J}NVA7EXqG7!^sf{$m93fufIGm@_0+uKWGy}7M;N1&#K z`oK8DceTw6p#k(ckLotimpoU9aW`_ybA^OO2K_Bs^We3WL7hjsUgGb6uZI|;{?2d$ zjZNUX$Drj`_OI=J_M@$T;9AK#^gELB?@7rt$JSiUnH!T!tWoa=amdrZne z9(giEFz~QIK70#cj-9FhIPzG-4D5fCw6~mGfx(M+b)#0*qfNk0WN+(yYg4rlbVEYQy)U)+~7LRKER*V^(*v+VvG4g zchAb@`b(Co9oFfZXB|mT{7ogdNHswL0?Vnh5+ctygdxjX9&Z;Q&P8O1q>|}PdAy9b zqF~~kf;da)4dUr}Q*9YIWvWdipUyDHwg_vl#2@D2OV*}lvdH%f(zjHmXIZMJBd#u^ z3GPwAnN=F-D=gBL(kj>wG9g{)vU_L?-aU7^FCEcY$3AXJZNejUrQAk*X4RA#g;_IGEY!jE z7m#)SZIQY590?ouZB;Hssz#(oeLaD09fN4j-z?+&2CvAmz|p!1`k>(#N=tNI13qXz z=Q{&wA{9&H@uKvz7%Q*kwKO!eO`nw)97|4hCroUWk7+8+*qWjA} zOTW`NgJ=7NC~3p~*8Z@J`!F(zY(JlHPxKXvXLU-w;3xBV359y=Gx6a|*Zyotc_6){ zoasyF;vLIZ@GAfvY+&kt8LaPd>(Q^ZFG#&w6bhM2W!n-bubv<6ErSQWe}wl6TrI{{Pr}6F9k!>Rz~eMv^6YlV!=44S}&NY=hk}i)70{%orQT ztT7gL76`50W~Qy~>2`O|j6@cMZI%R*m=_Yrm-h>P&mtjY!32L`$nt~;2_#Bl5&|SI z5G*@+Jo0_-L6$G;hrj>-)HzjkZ{MEjnGq!9)0KMeJyoYpopb6`)v4vy#c>HEed+r0 z>S*Fhv+5F44%p%?XDyo+Be_PoQ?I(Cb(!W_NOMkKnm#^DID;aQ*VRaO!EovPhoqU` zqM0@1v3+xA8W)Gd<+gcfB2b%h&Yqv%vX0 zeg+>?Soq>=V=)n^o+HqEjkEPTl_$nyO3<)53FMslGKUjS!rb1B6a zLn7ZN6wmS{?8>3tD0Sy7WBMMvNLJG0=Jmnndoxio+ z7{~mnhyC~&d`w~Cr}sK+U?`R=hm56CZDuBHB4!#~nLIJPuRj0ElVePPYm9%G9=`MF zsgO@*IsJ;_n!X4Ne@j)chrJt>-r<|mVpw>BpMS-3=sjBZ=P5`eO(%?7;htSW~ex|LRq2vuHcq zatkYc#KyEaR&k2GBkdYK&pnHe49J1}_$J+4tLkv^f?jSOEwkID=r-==uu`>f_?kA3 z6RaZtifrbUU7b1i<#6|cc&@{*4|GYnFkfoo$#WMyYLpW~da(k9b-DMNmBI|RHP01< zaJ98G56PhzPR~$+05FFb?BKht?N+DPjRLXX7+|ASIi$BZ^Z9ypzBjkzG8UlFU8-{C zJr&f$;XT5xL%OS1nvG$+6;#i;C{A8Sj}W3!!qHzxay%`iyU=boj<}SBF%=C;HK*th zY-g7_{Spzg=;^cw8jzd|zk2$aqYyNPRkl6_&D9&#LZjY=;dnJyBruIyt<97c8a))& z{2|Bf%z~UQ*~J$txcvhMt!XKi8;4w(2AZ`VR{gMdIE0{VBt$ezfOH&ToLAWD)e3Et zx5Q!s2M6T!ux&_lhM}VxiUl}?E(*Ua%i^-Qz?QPpYBVtUb-4?WTIJ0Vt26;23Kc9S z=(>#O7qCjo;~OrQZ1AXc5)qtYQZzvk3?`WEv|S>f28ycW8l^I-aTP<58di!>S7&>3 zIUf60XfHGxg?WDFM!;&l%UYRZaV_);{7jfV;}c;~5~&@50+u>Z1CXLxqbjgk%eDlH zsn!lVaik^`aD*qSrZ89O)_HoN*^&!v)-io&F=lwJEl=dMu|kx&|TxPoYJ_V4C~?&HOG&nQ6(OtQasSb zZoytF1(yOmha-LnU;pPrvtG@x5)NJ;f7a}eGK_d3R4R4d z+2-JGgB8PU7z)MQW}%Df92H0x&2%!TiK4^kc7E0xdh8Ea;GwGpo*^a~xg)8Z`ByMS zy2$gLw4eko%^2tyD`6YAHOk7X1xZ(s#A@cB_jc7_t8@ z)?i?{i6e&!lT+MT3Qx^4;N&w-S!%cd;Ty&>UoC4ZjbtFGsBrc;`2qTbcSYD?@{7aC#=q3zQ?yn{mkv9CfKNO$;* zbLKreE)ZT88t1B3r%D-X8Qof;H8bN2NRzRRgd^aXH6GD7gk~9sYhvtMz;}gRS0j3> z!$m0YECjS)E-hNSUbokF+jy5shty1{a_^$hoxu??*95tI2%6N2%u5ORI2aBQUfW3o zFXGEWtxmV_(idX0nF#FSvFnuWmV4a@HqyhnGFplnMaHmZk%*eb=3^GHqroF=0@SR+ zTPu|dGoab(C>IQ?XM|DK1R`ou8J4tEulDA!zj&!|s0@akD2X`vN@Ntt92T);DdNDQ zv;mIt_p$SR(V*PK5^|>?`9^7))i&Gogc-25lW+DH5o){MuHh6Z!A%EuX7Tm58ErvD zL4sXvma>9LWTwW})vPNdA*DfaBsVCIG!LTz%chteLweaUq(&7;&*rL#6%xxqgd?Xb z;V_3~aJo(Gwc?n7aEf z(~*vxbt$c-84NUh(=S1D@M+-A6uLO^7GJG|f+E2fi5)VSS_;jvr0R7_Gcz~|8Hcf8 z0t6i{ognRI1z{e$CE%!{2ZBA)YpI|ii+pO@uy;p-Cb2bbrVc*{&5<QNtf|pQ!Uhpqq`oxLM4k8^Dm;TurtD zBoob{;fHcCpzBoB_4Go_$!>rFQSj~2yJqD!SLhy@hq)iBsr%{)E)FKRxC|eQ97qhz ztWldm4Q_R+7!##s!#)9wt}`PSu}P^tD5~7*VVhfaY`Lv&u@?)QmTR3E_H~t3Bhh10 z`7Za&C^RJ)6g1IYrZ`87JSfH|p?ja`znEE+Ff(4uM)aA=)0(MNnBVy$&tyoVCI&}M4vw12jB-^OZki0%N~*VRYK?GC z&@E@hH`)^u=<4cPnl%i%V|}L$%`wBKgU41%!DLj}Bvxj*W}z%oAvH&Q=-AAM>MXcP z|D;dkT%TxwsR1mX#PHq1Ve47pI(}@lN~#3K*D8p?Nh$(f4R!5yLWy~33UOYtW0(Yu z^`JD#C@IvLax^%kM~tQZxn>`l4MsT&O~3?@Ig3 zTpG?kI9h?bMzs|sVBMw1>D)RPUT(2cFQORX7JHRpF)I%7wYvy>EWSi8qJ*#)zuZk5 zx`l}_h3J^kIRzLgrV2E*`DI+vKsVA-_3E^Ot`)esNj13{jH9tO;YiASM3@KYo1Wk} z9>%1|sGp&wVH9e=jim189Ja$NVJx&XZ{rCR-Msq*v9ipey=Q<_LOCEx-8W2327uF) z@Sj^cugOQ9IKtdhfp58*JKAk5CSal#8jEIhgzz4gl!Qbrse`tpyv=H-*28ukhlZIz z46xuf2XLldvpGq|wtO0tsX46PwCHdP0heCD@{(I9kr@v5$wzYHcXOh)jK&((4VL5Q z83}eflUYG+47SwZT9IcL^fxTCF;cK^7V})id4% zs8uH{XqI1%pEtLXI;cWOw}>Ix>C{ha-qv8sn7b`&DZu_P=&W!7O^{_|$e=>GhUsGT z^|LijtS{!s9QN(wF|i{zL~#X1gp zar|*D5BxEe$vI^*lQE0o8s6BFBu0&HQK*Z;Jr^1Ur&?F~B8s25hEK z@I~62+#KFtDf4?JalN_qz#Ru(Se$6@H-mQpQ*C(e(e#F-Ewp<0qCM6T=*rN0cB)Cn zg)#`?p*;&>q@~`P77}f7ow>Gzk{I#Z}Vw=fWwyViGL@0oD zxP(*a&3Lc|BE8!pu#03WTWmLfdL%=9oxx2^-MX+KwL4(8Ab!w4dEIZA56&kVQQX z+dgy(rN&a}2)a6T_cfGfg+V_q6U?%4MPX6a3x&H{6K4}woI*7V)_u1G?v#Lu!Po=E zsoE8M(FkJ;^h(~>lM2Nu(=J)fMRSJbF06)P3B*Qh2t!NAH$zp4hYHQvCM*-udv5~g z0b^yoP^!Te%9TP5YYy;$Am6NdG!X)vi0p_;1?Ls_rNC_BToep;TA1|=lk|>fcfPY@ z5#A36S(VNa?wLqRIM+bWpCu;uHf2W8QsHB8=|ZOMe4A(yGqxyJE_DvcvWR1&jqZet zBo5+=E2r}u)ajMuSymWWVlouFCJQz0MHQ73;`(^pidk4<&AiK%lQt&{C_ zz+@aoo}CtlH*vTucUZWvO-s{35W6@YL){mSDJnGeaje!vEG4Fv%B2;yK~-QV)Z7rp zPjC6UEa~ErK05Ob+p5riaB2df&EA6JkfqlFhP$)5jB)Q+ zN9`apNXBu-G{~Kd6K{1;{`vf)ccwuq#s7OH4JPPBg0$2JSY+Wo+U z$}5f^`nFJ?u}vP0C%3>jWZfn$4NVvqX(%1hL}2?+a+w);4C+tK&}3@&fd%^B&E(Qb zh)Auugot)BMZHtUI%TzbIJtMpf;%&Q>@M}s!rR%w(ZB;`Aj9WLryDLOl@@v!+Vn7> zE8sIhLT?EpblN4CMo^WprNV`SDP!6E7ZA`O+Y2V&MJT{SDfXIti3~-5I2sl?hB5Ys z3s#HFm2C^UO_vb?Wz_{>bizfILhUdn9jx<*cL)cpi#L)nP)<3h(gSx|)rCqjvaxX3 zeV{OhR}wI9k98ePK>&7sZ3VJ6s0C&8SR z&y48QunZ+%=*5P?R3e!e$Gh#+D-I~)VH!qXTQv)vTPoU)1`C1*QR{H=4@q>Rl0`XZ zhTo@6Mc`w#Jtn{yeqiK6dtlUfVIq>ja#Nxcg~`E@lZC0lky8b9|FzCwgbBVD&m#c5 zmNd`FK@n4fBKGMKr8@6V+A%gG9vYRFnoy39?!SxFwxFks5IE;Q5C19xPPmIJPlP&{&t+`0Ob*bzmY6g9;gggizT}1B!kU ztulx1ZGNr}=OeWMfG)YjgYbv8~KsvMRLv`X(`!kp^BQO*f8!lL4 z{Z1izFf4gSYmYOf`F(rG_hPQp4^e!OHVNU~Y4nqYc2{>IhG1@=#R{8~Au3`n-m+P=Zu0jPAq&%WfCJmmljXGik=mX7^W2ZYIgAR3iyOU{%(>3tfu-97} zE#a6hLYiMV+i2f^9JhyDfOhaG@gJl#R4nc|rdNY`wE0h-D=+}BCkY(dF>Z=K{ z9LuasMW>3;F1h9?YN*QGWUWkt8mDbV;3hsgjFuIZ2KCUDIUI1^6ijcA10`)#0d_eP z>)|?H{l)mo+FZ0EF5a45)_w%Scq{d4ZB}(GcG@2-Z3Tmkp2xF*I%3I>L|EHyfs)(; zfr#DFXpMB{7JKQPxDtV-;%Z+E_L|M2-Ly^&CIr{3z!p&S#Mq!-LQcgl76t)F6aFNc zVW(EG88yuk#)0EJ)WvpL0{p5aaslxMrk@&Eb=Pub>&^(6PlY=>g_)?G6cTY4kVLd$ zS~eMr%}xW(OFi_9%wD%^;`61B={QGkjVjMnp;h6o5Nv>AE%VwyYa-L5a6!4V-E&U* zeG%+9gQf|^n#RH%2zQYa+6z7LN9bw9B#fDcF8#gBsZ)~yjs(JA_H~`M;9uDh8tNX% z7}vFRVfaMD)3+xaS*uOfRA>W>{kR;dHxb_Vj3H^GWWEqF6H7f5>0u#z3V~0!ZFBWJ>ji%RSldf`d zv`*o;GSA(K)SA2n0k7d2MzHU$adT2C&N*SmGg<_AVzxX5&ka48%mVr9g((}S^g5b8 zY+&UCe@3LFWPc{EE*%CK2hMpE{$0{Rv2fE5b7sNb&XOc9&@JmaA5wzj4;b?6<~ z&u?!6$vTxZs1ZF0%p@u?{Z!D4v>OZDUSmtFaY!M}8t44ouq);@j3gpD!geaAk6s$d z4cnz0(oy}qV?mP}oQz>g=(OsbAx!Vp@pcux6)#*?Ow1JHqbV0*MACp5?Z?rVSwvL; z`qX$+kZ|qy&7*(TSEk+kCP)>-JQATW-K5aMowDGZUP@*x!d(8kpxbAWjtTBHDx^2#ZkPM5ZE3>?%fPDE!MY!o1vOV6hOMPl-GwA!t|BeW%l2f+ zSAy|2QX8)w=ya_FbxKVf(}peI`l44r*8UAia`NJHvSE|$*DwGKm{sjqRdKrs;q5d^ zSeet3!9=+m|N8~*IecG3@?rIdgA32niVl4qT-7kSt__#G$AL9xoW|taEq**&KWU6* zIJ9}TsZJvB25L`UvayZP9GGY>Tp%&lr4;?QToW>;q89EfEZpe$?s9e6njNl4a4HW= z_IRgI9$Zv&@*`@yxU#1XQ*Ap6(x?Z&k51=Iv(#xnw)FnE!5OyAVipt#%f zSf#@`s!BwSyLkCdB_=~{<$ye~;ZE$A3xOys>}b-)Hx(=|9y+aq2n&NvP|yrpZ5#mB z>d7gu9udxr@6ZCWZ0XAg7yFaS9cg#Ag57ZB+NGz^qD5xNmv@3^orsb=qDacabSy0N z?AFIHSW2~HuN3+a-2pHf=RoDX0E^YTXTpLCs-;(q<9JrAN?+TamvQS`a%=P+v}ysT&I7f%!6MI zmcmJBFO~8)I*_aJ9T^rTIm!HPS+{$+d;{c4DFgf6;dNK5hxP@ zT(}vJ()&Q&*(J$+;NC3EeJ*g3orw8Dwhur8IW}=PXf?Sq5a1b1Zg_}}g(L_LPJ;W6 z%?Bhxq@xyr567WkBqG}H0Y_AGpG zJ?TKm5%w*m>xbPr2riZ<(E4bQOXeysU`QLNykU6}L%U?7vw-~t9AktnQnHIx1_bET zLP>Ga+iiJ-zvu`$&S~snKemRo`Rc#Exf4ihB+l!AJEa>xl3`JXF(v7!t+NdbVw4@{ z?I!1xIR}UwnP|x^1>EkQ2%$>}V?dkkH+cyNZQ*rX-D=~{*H=j~ib72o6v<;C(sAsE zFxTKb$8;nn_wh17c3f#5rYAEhS!BfllP?m8p`gcfZ@1Ai;%6+HIPK=*GDqaOm#>i=M%^Yg0Tpk(7}{dH^<}jCgksA4y*HcY*yuIicfp_XCMDu z%Rkrg&wl>F>1+6lGu7~S3UTfFcn)u%Px8+`{<)TakX#m4#)$x+U6;5C6;s3v-a2@B& zbw&ecG;l@(XEbm|17|dFMg#pCc=X(_|KGWhU;H9s_UA?p{vGZ-FB)gE%6XBv-SQQL z|2iJhS6&13Tt0z##-71;#wp=3{GRgi7A7~b5<2$s77uXf;iFFnUOu+}`iX1D4)l&3 z28yJez&(6p3$YkBA=Vsi;$v)S2T#G(X9yGHvb?Ur^B+iv`(_az`8@<){B{v92E;or9WZ64+`_HN-Xj-9~YMoD5Zh(dTP*Q?C{AAf;~zrev? z;Nvg$dGNWF!xSpQ@!k`{>kD0A&eyT&kAD$@zb*v$Ee2z-EPrQ_6q6Bn#$OP?Uu2HI zj=XzrlqT>BIr3SUZ{)b~2wNuMh@W{{iw>aM+5$C<(^T+xMs$t=Kc4G6%&~_}hKnP6|AUwH@|N(;jfIONz7M|Vk^64^ zZp!8Ec>wo3rX9Pu^D^Iv&*~e=+1K>xcoEkQsW;piPFvz4EZ_FPX3}f$Tcm@9%kb=+ ze8M=}Kes5J9e18$f*D5}a5*)`zYjp{SN3!hBG->`i0+YXjb z7N7RrDcS`2B<#x`lluUDdOllu5}&qbFwdX=1b+T{5*GmGE#Cp^);a&ncU=V~kHfmB z_fPsSZx9b>_B&hVimyAg8(4xabeKmcch5oG@c5Q#)A(-+#R{L28d&BFJDga(9??>}wb@t?-u=v$l2 zs8}j;JBG%SSJvfoBlwuYVt2iEeE|x$j|q^c3-Ob-BjOua2=)9>-vqb0uVS(!T^#G( zNz!zBb|;tzl_zv$GQ(aHI*Rj3>j&iX^O_f*zdw5ZvFQ1M==mXiCavRmz9NEu56{L& zYzwy|oEP=MHvTauN!kwb97j`n;<4<$k}Hh1<>$jjK>xY#%5A#zsN#W-kzIIZewuFN zii~vAi2r0R_i-9C@lJ;w(5^`fJV?DJEOr2oz2SCc!5Zu<2@V(EC)0U~U=RTvk+@V2 z+Ql?Luy0*OdQ*C$vq&DVFUI2J;OWpS6`*{HUI~j{-S+`tqZ9V|6TxG< zlWMaZCc=3s-_$Qj@h4%dgC`wkrfssGFm1{Vbvks&{x8-c;e-ya4IkDb-te~fru%_Dv<}Ue9AtZwAjT`!;Yzlb)}iHbI`qc& zE!G?1q~5{@&sM3oqaZc3-pschq_-&$;}z?Td@7t-XCv9f_AHOnp*Q*hvEB%a-nzZ! z^!{=GQ6=J#k5oGcECk|WJeAbR9UYU$Emz@2YA%jG{7GQDhK>(%GL`qvln3dP&5qE2 z#`QOm7wVtXTcba0y zxRj0ktNGw5Js4Rlw>~|55^2q^T&soG5=>OyLMv8HSy0~G>J8C}@J_POKv!F%(nb&F1OLYx;dDLa?c#!g6Mla^u z_v>W>WY(t_vk%h?`;pV6m)aWi@+D+Hw7uBarC%?TAhSNb#BDL{g>xjQNiQ>N(92hm z{m^=`ady96T(3hp)>@C4R?|y8Vtc-ByYu`ylBfAL8iw;|11^h#cZU%bXQy`SA^&_RZe0W2iIMZR1=`UZkz zRl;09iVv=NZzAx=e$>h}RWCp{? z_u&3xt#U_lt>iOimFL)ME2>{lvp6hN{PM^d<7GcVH+*@&@qQ#9T5g+r&z5^|-)?eSdwiPZF0Hurf@{Uk+)f$HDT@c6yo0m{EqD zi|`Vj_A=z52h;m%;}aEd;Pl5fE;T7;xuQb0_9SxcRpTdLudnBMgMYZGP0 z_A5Pyp{SnLRe0*;-gF$d{N~)7{_r6@Y#7NA&RuoZ+iqiFZaC{L?v7`c#q;qyxzyoz z!SD&Rg~K^}=D9T3ABS^@v8NbkTrv)ySl|vGK9(E!-~b<#4(lcRxY% zt@W5CF+Fj8w6rRD(6>qJjHn2fc+N$1^6wBEw=(BE{7EUwbH`53bTC6Ld zC4h^%AznIvG~l+>yypC4es&3W{rUfRcK-5Ky3@pUc%vLhxLBSjzgQ3QzPH6;O?LE| zK|O+Ry0En~lDVFLm2a98Ex473uag>XD!_Y5Syv&giPU(^S;l$i- zuPA&KufrL@z;fx>e@11xEH27y^sT^W9(HBqRWP0LtZ824|8(eVJ$kaS4)t~nKf)Qj zC-tNPkpD6Kmeo^)YkFcHc4g$Hdg50I9oBmEWc3V`PMdAnILUNII75zDXA`Titpu*= zjCt6Vk(bxm>9DO>XX~*o8&{d02xst~)Kg?HW58d=wkC=ZuIY(+*p-o2p^Ig4R}Y7` zFRXu|?UM7T58=~kIMBph*8arpIbu$mov|O#Jfv-mH4hJnYKIE2{Uy+t)DlKGxak zva>Hh5Uqz&?+LFY)3D_~Oudg~T8|xkF(n6Kkwd@tGA&EAZt;uqV%|~9y@|7(dJTL` z&c7YbcsI7dLvEaZL`SG6-d}!HLg6#xL!i7=hof)DGkrvZ-;HPM<0$LT;%DbVC5tC3i>h$a5ME8@ zMSS3mK7u>tV9UTewZi*?-WT=0guChH1fFf5EAkxu3}Dk0%4hV{fIRc$p(s2QaU7Cd zM)S*nHseQ_w|~GN;Xh7;4@XEO{xDyrA&#cmz&)LWC7tjfXJ~n$iHAJA%r|LT(mH`> zlfh&{kkHnA0P@MS#GeuY0xt0E=RGT!hLGO--nRU9_xi&5~#fo|pa z0;Fa6P3!$ey}wZJl$r52~Butt@m;Afa;$qbazhjZ^?gl<})6qL?3Srg_)6EGyLuVe2b%lEG zbd`};9%1+h^ze3X_^Yw`NX{jk+stERd6DdD3=IoiSeO@&KCOGko)+bF z9GA;s4YN8K%S1clMV>In2N@FdaJZpF=Z0;QXxF5LYXje{6WP|%Cbe;z@&eAG)T1Ry zaIIxzWk#Rs6lqdjJg<^Oapg0@;xe-IKoyxZj%`jJ?U?XIJ2<8=@kMS zh8TxGhFg}cQGZNpdNe*xAk1uy<;Zd)9^<7x4ah66$0h>J_>}$)wk|Mkz8@id`XfK7 zafFX4%)I!^$N9(+rU=AEKE`lcuS`ZuY;izd`Bc8t2kVmQ1CM<&y#s+(Zj_0zmx*UR zP8KUTw%(?F1UIfjoL`H}Vo)7o8uV-Kz)7UZgKCyf67y=lJM~Td|9r?x^iNoHPg+B? z4JIdP{bGt1;YjWZKra`4Rhti`PTvhUl2dpa3;4ntVc`w+wb-pzChTQd#WNiek5`rs zw@_zHE9ag&ygZMJSH&?6uDDF4yg}RO32&6wWM>%@c6uW%r?^41h-Yb;?!QDZX%Y5% z3$iw=2VO^}nWQ5hf0Q zc`vJcI~5`QvJy{uNyv(|7cJM2HqS>DmT7QpNb{F2*9U+U%Su>ybF{QZI2=Uv(Tn&K zn|Lrqk1%nBrpk-vz`gXXxN+HT2k2>TQv@v8)?I`a!b#w8PkO#IKaadjfrtldzL@^>+LVDO!a4 zWev8NmNnunA*g-8st-ezQ~7LTn9z=pAPv+ITIGyLA&l-ESH`< zeHrmFy|ga>j}$$^UUr_k964On`7Y2j--L9j1JqZ!Lq;nX(FO6foDy>ooEJSs+Bj&Y zSI7C|xCZGWs?*YM5jV-7eKUYjL$v)Nt$`eu!6q|eR~-^kM&Az?>N4XQOCjPWmaR(8o2z%a5GzG7;TxlFXYH(b?W$Z8@uR*rW`a@c{gm3aZtbKX;*w5l5^dcsic#&Q_{-z&FIih+m zaxi@?2cP+at&N^a(aa0|s3C~b#x{gtkwfW<{rtCpEA16wk<-!iC2G8^MDKWt9^pP+ zxGna5xWld#vx-PLXtFfXIY@kwkC?*?pb2<@Bx&Sm%+-^UadK4}}IIl!-DI$oC72|OEZ z@#~m2?bl(2OnzSsPa_>txZ^OVZNYv1x1SXPcF zuYJQ$>)z=1>wbb!qUYG&Nr%6*y(e|=(u(dU)}Z@|RqEc&A(CC;jqDAQ(|8Ik$Ixl| zbU!GMeqBy_-eO(S?pM~OODlX&u0fZRtJLLWXhBx88RKcyx|}Tb=`wA{%$s`b*X2~E zE;kOPOP5yoo?3%0r&g)UseWCi<)knoBkL=8%F^WuX;#!_IuC1+2bFK1?wi%bp4P1} z+fxh+ZnwAN*mq915oY`JTVH`+J`59mdiEc{GuZq6dX2s87H|sB|A>HcM;Dk@4}S)43bxbr5aVRrjGNVuof<|xP;OqPhZA@<`LDUFsEsflkzDLuhFe^im8;m{3lOGxiyabPuAEjw`^FS)!d@>t54MPp zLzjx;h?0j`K0F&=i7}g%G4c5mUCP}nwKpR zofCMr@-SXZCn;Wp);f3*M<~q;+95Af7B9r-FU5<{S_dzCK~m_(Wpt&6rR{VDy$G#! z@FKH8X}w&vHeQ6*I(U)ZCCv+c42G>zFG6b_yj+JY`^qTt3o`4`0NWK>>)>U77BBR* zmeUL4_)FQY&{_vCbj|zpQqZtLWi)^np|uWPCfsaEKR?f2fgdX;SsRJkJEONAo}|&t z(9v^N;K_89=E>--hbL(~GkBuB%y&?^4bqd*TMtjth-UB9(&_rXI@ex-CmVC6^ zjnX_Bz4h=Ujco=`-8J%L^w!K%Iom%({a>~nFk4FWCFS5BmXV&9wIyH1^EQQX%k~e; zMQKKuCia6YuR(2+#iw`?TGY!Ld6DKL&C8`K!ysO`mcukDUWC>B+eNEe zDPFvPxJJEX`iIfGl$pE?(2MsE*T_qzf5>;z%D_}*T_qzfB3W&co|Se z-alL;FPZ)!=VO-Bi;aC!_Tv4+HS&__AC9e!7w;dgk(Yt~;bklEW95|S6VTqp{^44A zGJh`J*6dy*PeyMY?ahSwb7`I~Un5UOZ#_JjKbPid&k8(c_U9-&qqiQO%%4m1^o$jF zvNkAfPeyM&Jefb2=83!f7&fTyLb$}Ic`|zI;mQ2DG*7J+c(S%T&6Ckv4^QULrFlBM z0#DXXrg<`Y>*2}#xin8lR^SP1&zWUs^j6Ok-zT}YJ8+vcz zZua#VJo7U6ggz5K55cG8-O40=ycdfTPmob1yHS&OLb?dV#k8@G*!ECY>_2!n+W|fClZels z=!EhYKrdQT%#(bySD)$9x`^lYnTO|(bNjt6*CZm1y8OVGFGtw1$-L~^#CD*`{C)<_ zd`6h+v2SjeI?m!TE+M8}3y&A3c#LTpk8xPcBY7f>OXl^{JjxPDq{%do@SBFxD*|pRp+#W*ais?bwy05t|`Ai2q3C>z3o93^}5rSd;xn z>l`8r;VfBZIxXEj;dC6A2j`bq9+%-~`ahv`432$HYkRCci)pX5OjwUJFOh@rKslm9 zVVd>GlCB>jOH?Ss^aWg}!Up6pbrH9;P?>D38JL>%+SxN>lb4 z?TsA9DD9V{w9rjvU;VoQU+j&r$SZsY12cYxq4|3$nuNVhy3Mi-7NR{fai4iZNSisw zi)hh})IHFen7Vdc=y6=bNL+c#BifLb#XnHfW4zo+1S+oRgRtklywK~l=8NT0kROdd2kcG+o-&#y1ZA|aVkAgJlYC{$;?o6TOqV7LVO+_vU+K{P>#vKKgr1iuuk>SSjMiXT98W=#kpHr>1S6JVB85%M!uH(qk8LX5ev7}8L2sqD8|1xz z%x8?(EkBuWL7nsPF%&mpZ)0e)<-C_drP4+?FY+3<+u&2$ZCev0-;{$iOs=@y#=MN3 z_u^^lSuY;8bj#|tQYn@iwZwZzv5lZk`uvyEtMF5)6k=NW6g-HZ)ZA6>4?>>OUJ~}Y z?6npub2`;9j|g0(8}qzF!%TT-qCExaz-|nXh+j>N+0j!v~9k9<9cK(eYwd+KkMTu-UzQ%&QGLh z5%zMLPeaEP7kP;524R)~@%c>oPNZO#E93Y}_%upWe44~bMS)hjepowwEc(TB~=qJ1`cq8HPH z*@4+Vb?V;n2mSb6^r#Wfk^yuw{k#u{e5IZe?w3Pe5?|=HYx7ma^I{%xeMNaC_&0uy ze@i2Njl7Fa{`o$Aa{g|$@1v6sTk*k00BIXBIF+7Bnb z(oW2~Nm~Tj_6|`lQJb7qE_sZFEf29*!b$#K);v9LYlzm^QYn^FsQ}_R;Lj>cw8Msjzuo>?wf8OTsrEP&e`z`x?HK0pWh$ zlX_Y${~#%Opgod$?f6g9TuYsROrrlwls;kVpKvTg{K|dWhM-fif3}sZ2a&(DY#U|u zVBcw|2hn`5@J~3&e^OWLl>y|XJggqt z8tXwccPhLS?&rO~9O8Ps691-ms|Sw%B+X&!0qCU1?)hj>mhey5^FLFX-?w*s?@D9G zVdozp=jf>f%`gFxPlQJuHu$04qK+nPDMOar?+0AUBCwZ*XEM)qF*@xb#?g$+ARa58 zK)kh`%s2L_Wvs{}oaeg!%+CBwx3nK$=8D6H=$AkgOF@9l*ir!U|yCt*wX<%kX*y${W2=B;?r zo<1#tq5nMLge>*W-3XF2vF6Xf28ZyrN6?$iR#XQGwtZVp3=(}7#_&|ZrC!Y~UdbqrfK{H|V%!A{W zU&GJzeoWy$nU+e2Y71?|I^0;_9BjqB57Kvn_lTb7JqlZicVyY;hyHrtL+UHxJ~{lz zwO@|IA$?}Mk7$t-eo`odh@O`t3R{aDzY+KlISBX3F~f;;)Mhe;i}}Q5azw*e<|ptx zs7zcRp!Os*3!bKzClx-7OmRJ-js0feM`R*wGVz|5?^>}T#NyiY1i#y-U!!)iaeNTY zy9W+nULkFzTW`-DnVu+*m+*Bp#*t6Rzu^u7xCpa9a&#PiVR7o&6FJG;1rQMzap{wF z@(=wIZX>z;Lvq?b>kQ*KMmVV{+>M6`6?IpE!{NB&v-t6Pg}X^w?g@M>%8m5)Lj|wK zefKNg@DkeL?&oiPHywNWKk)vpcRXxuK5QXh zhHChdY^z-?&6VYVqdJBdGagcAd-Z0mQ|xvsf|3Y?963jY6o8ULbP>9Bs6yXpg99fk ze5?%z1;U@R|C%P(cV(58eO#0}u(C2+T|-$t1Ts=q&?o7wsjR*e>3ET+Rh88boPX-M zNVEIpSKK6JXJvK%r$7DA4F6Uwt14@i|CFZa#mWj|3CyvMuUFM%t*R0U7xjrYigoHJ zZY*XA;~XyQQj8bZohc&XVtV4T?!>s{wqFgx`ec%N3p;RJShvzS(C1XZP+O zs~0_UonPTSDz}*->sVah;%a8q4NE77{d1>UU#@PAL7s!) z!(YSHFIQ%Jtr4Z}s28?{R=-wRX7_1QUk=Na*%Iggn&4^Q^#H() z?7PPBz%bI}`0%7dXUo29zjYmOc`+U5oE{6=NZ4_!Th?Ex-dC(sE0y1R;~zNj8`1{9 z@4?@HC-~ldviqXv^FAOP^5tL1x-IgB+MDR@pe-D)7W&L_tHIn+=&SR1(bwm09n;+b z-yMh!DibmOM2wGPuL8b1cpCVVG5%zXk7JYq{*>`E72{8N{Kc7?u*@{t#UrR_!5T!H z@IiPGuKSayFrpw$5*_$XdpVeHw-EM?xPo5+Zc&5eb55EO`LK46L4-N~@9Gfn_p+sr z>&yoTZp-B#=AEP^4gJrPK+oYh^t(|5x6=emh2cj5!UMc&vhcJd!Mj@yP@{zJIs&Y@K>j{e5UfG%Ni zc|Q;FybSlT6fSH)%KRCMa}{9m^Pl#|U!6qQ?&tmUBGc}^;mWuC6z}H$NBtMtEtGMq z;|i#+sK&M4#y)@W-|5ZcVjeqK9|x3M&?P27I+)0*b=VjAQ5e%hmV`dfN0|0SmIfg% zFZJ^X(%q2!ssEFnJVWC$thC$A5grS5&nqiWuHm^nfiGANZx^27S5D)W_jNb_fun%A z-emH_&qOl(Tpi}a+!Aq^S6r?W48)~8z~^+?DV(Usw_2H6*`@2T)!(~!J@7@)-2IYI zy%uE=>hr(+=9mAFa8%~6mok@n8kg(x^*Wda1@jg|AQ@$q9N#1AwBoo#cL$b4{ynrC z0vB$7l(*c5-+I_TOF;M&>lIQjV-x^C1RC*18wLE{0#n6JYT6WXvnvr zA*;-R;Kp zd6PNwXGZWbJQEJOMfY3ll#CNimuUCcHfcX5xB!K|@i)c*Tuckxjemgq7=E~3JBB|> zb0hpFxeWeV65a&e<-Qj`jo(BYGv3dFO0VqhJG8IH(hNBJ@yvME^Be$UacJ;?g4c)kk1OY!5y=iTz;o-fyDll^x9M|QaBvw&I7 zj7Pa_`YYUd5ho7+R|yS&i2pQ9C+@iE#+SeNmg39NQ0DMhyz|Ca+$ayXzv#e=UghvL z@3SD!O=Ac$_(nXV%si~<9+r+T#3$^QNjZifEp({P2fgCZ{sVw_AHBcu*BXa5OU4tS z7lXc|z6$Am+dz3;JFoVBT?rwczeK%bTjuP&*}Hym!oQPGeo%f=C&?c#hMCQ4*zThm z&bELyAC<{Q+I$3`^`l9cb-;g{4|#36GGc*wA%0VA^IHH18wUa|!!z49*x7Z6cQzeh zXU`5^jV-ecqYuh_z_ZvgYbobK8HRXo%bXM9m9}N}H@p~rnLN3)ly^D1M*LYn3w-9o zAM7R5&Mhu&>&%LAXhT-AcUFM|ue$LSH^1zKT; zuXOb(&?|QFO$3kS@*k+qE3{N&6LR|7hxSyx} z<5PPPfs1(z;tB1wm7SYxQ+%hVHy$O4VR+i3>5M1B{XAVil%C*IDo?G$^+vro%fiAH z>FWNKbOjnZ@6%~vgR}O+o`&ng-~Rf=|E+X!+q_SoDFfSZ%FaAZCc=F(p^i)rVUMW) zrf1d>nP6Z)#Vg2l-*NUg%#UFxn~mS5XGB*4^UBJ9N(nK|pmNU2pM4~+IDe8FF8_L~ z*<6^Om`Toa?M8a_Rj?nS3zWj*q+4X+1_i>{oyA;(ZuuOwowASFV8(p{zrf>H72AcO z?ZLblS;1><(HRN55Ke!S*VXPOf1jn#q<1-fkIgn(ecm)4Rn|}YD4?a`lR+T`TgY~|D#*vYh&TM)s^*`c(($Dr&uHozYscE1O z%MY6Z;Rk*%zva@l?+gy$32nPm;wpK%Z5W===d=A`leHOjeKUC2jC?lJzBb}#<9qa* z(4BO%{<|nz_R^N#tTIvA$M7ROK%Q&YD9=HV99G90n78tW^D*37$pC(?TO&X1Rq*5a zhE7rDHy>c(@EX9A-`upyGCvBEKCigX$*8Y8n7`N2tozK+0Djik2cEir75vb>5PrZD z-dCO^I6yyBt8ULgYV(`%hw{4q`SCG4dR@i7jp+*UIeS(;v96qBeWI_w>hxvnZfezS z9I{RGI=)6;H@^`H$vXtK`rEBlxE-U`K(Lj+)M3i1a!MU0JV2&Zx04{1mT4MctI|IV zR@$ngxW56vd+@s#zxzOld?P-Vv0U$UdpHkAW)(~>`h71_d~2%+50G=!Z7)cr<-84H ztCAD;DRRPIH$Q;H8M4je$cfA{{0_x8*$5AiZPo2CNTp>vh_E%ub{w>R8;L1f)VIvY z;y1zu@Vx4_8l=)Zw-L4~o}o*YM{XKF@+@uSGb^Ejv- zzfJi%4&>j$@00kQ#P3o3IM4GL{62@@=kfdR`29J4e}Ugu@%vl+{tmx?!0#XN`xpHF z6~8C(qm1Iisf;(Vg5Vk;;~M*h$L|NpZKTWm2FW<>WE?q)?C-_zKKxKGM&5$oTk(4v zem{;Mh>iRNe(%5!Yvm*F!tZDB`_K5jJLG}0a$LE+@MW$G9w5^i$5xL&fUH)ON$rW< zh{^8xI&kw%(whw6%eJRWy5arP#~)e^U(?xqNryauFTbmTWw{EzjstyYeG!@T&&AEk zv9wV2XZ#G{t-3bJ@6c?wQJAWZPh;*5+(rJq zw1pOpG`uJ?$FpwU!AHtWg+fFVJSwx3KaRgJul&c{9e+vVYWz+zK@nNwjl0=mv({{N zj^un;cdk^$YZw{~bV(Q2&C3{wOUohmm`|%Os%ac;9Q98w;u3yvRF=#oE#dbgoRz@h zKY?fZW`uEVX4_?PTnl)u!s9k>e(`&r&NbEDpMK4c;FjBc=h)ky%li#qsQ)tWm;9$^ zF#Ya_ColRj-1&_0cjn$Th%6JDyoafzQUhBn5+Sp_%0h$yijM9k@cS>bo%U2!f{gDi zuvI_z2bs6*0ckeB=YgJp_>%uT<%rek=5m)RRzqzAwuK8XZ|_|TH2BCO~LH-E(rJ|_uzSB zfVaFFGDYu=ZNZF@z;140w!KhjFLfHV#ag3_RGvq9HvNDPnYXm~3-RFUK!5svy3;U| zK(|8xm+ETE+b{myeKBl(M5v>29@A2ZHLa`-M?7wM`}Wsee>9>^TFLsJpe5~SOpCal zFMXH7VA5h<1NfRkl%@51lPvAqxqmCfZy_yS##^8%A2P&D#PkF^K5dSKF6_kSJNdCg z;0Otcb8XE72tccq|D~gN@H%H%o#fmG-qY&lxIx)HAz0GJZOW|-#HDyY^Mod1(l=C&F%hgA9?m4^FH(AulyqK&5!-#*LdIkx3@o? z_sIv|%{$YeA&S>cY!j~S({-EmZ82rBdt~0doQae!{TO(-0o}k860+>XEkEo#_3b zy9a)uFt8oq@0WA|hOh2zg!26!U?wnm|2~O--epPqKM#GoT#A3*Ots6ZY3XH-<9QK$ z49|pJ-yx06Ou2~Vjb;f>k-L;uVy_(gbk`3tO<|^-#Fc!Wi!el)!<__`^i6}|{FuP7gAt=O$&BVD~(YavQ# z!)DHV=Ye{2p}{?kV-h#UJsV>{A8VK9-E@-ib>2fr$992yosYDCNUD-5?CxY7>ce?o z#(FIDam0NQ%*%HEX2d^VX}}K7zXH#^n2zvw2o&JgK$N3V{368qQUt#p&u9;PdbaT~ z{7Jynh0%Wk&%6x&I-Vo^ZLEtiOkXQXzwMQPd1?A>Yy){2{38zZ@Ox75#{ut(@Y&Zq z8NqDtc#$6Z$qUY#q$LOoy!-GgclU>*4ZGk*mPw=S3xsqSelQ~(`o7>OiQ*#OPQX9I zS*Y?t2m6nuaez0MI7b<17ko(Z`TY6l`Tq&e+b@WouZf;nzRJ_~GM?j$;oxce54pSG z5yseG#!8Go8}R#ko%-x7UoBrkh@*#oY5S+Zdrd-I81%gTaloP}4d=~Z(!+Hj{|u-v zm1dQ(jvo5RxV|7RtF|~?@SUhHsK>6pAeAp1rF)v|%LcYJs>}0HU(Pxj!K^O_BbfDN zI)YhWwngw0c;;pFSYM)esV|V#;*hGHg6O&URKRlh5dawt1yx5VI{+^Fl;ddCnqk8`;?$h{DPSoY? z<=>y&ojX{)V(&9Ysd@>IZ5{R`7w;?!-c?6ZxA<%@>(-S4z7X~2d~1(ZQ`f-Ag-1ar zD*FrB_gmd({D%QYZU2QVFT=;@k34tj zdU@FREHoTX>hslbQs1oz`*JRD^k%efF3l^S)Q1Cm^x=*i$sWcTlDy-s%x5Aq^1*g9 zt3BP0@GFTsnH#xE6OWK#T$WDSTb$iwFL9_`gW4J%E?He@HjfnVo~wpl+R;Owbly9g z^>!W9dfMT7WS6a#XQIvdX7@S>;f2yG2yUbc@${EnXn4b%`T1GX#P&sj~o0v>ieT*kh$UZ+v4 zR=OY~G&iUE_Kg0Um8IOO75CyKbYH8Ai>?u;?d-rW^7-K*6};2S_@`ymI}#)@5>-+r z)3q0;%U93d#-{F~;)h*Ud^erA{-DLk{@vNIDZx26#XI>VcRX43| zM>?sSEIY+Nt^NY(FIP9wQ(SN!I|1}92d>eFJ4UQG(12Gy$$+a|w;+6if7kw_E4oUt zO{Q-~eFwj*s?)2j$C#V8@>sSWL%%!G7smFmlT8nO7nbL0>N$M7P|ug}p*p1JMLMx> zLtEj+QsZwYe#F7G^LG5vXWxb~{4Nd0cxvYxxI}^t1TlTIB|Cq96JF^CN%NJUvz@=o zF;l7!r_6r~dh~5HuZ!4@@ELJ3Pw>JBK89z)ZY(a%3r-+yw;M-r1{%gOHEGd8dZ5Pb zrk^Vxkp7695qIe!-$jK*zQc>LHwocVzAm~UdM^%qUUX*)p3iOgi7!R?Z^Cmmg5Qm2 zUPkW`2YUFAQtxKD0%HK0G?&o;E&`->_kWMt?M~(Z5z1*PvfliW^RjUVNL2 z-TE2T5Z=EPvKM?70eQPdaJlevKQ|FwF6_L|M?n)4F7WKfzxu=%KlkYGed@PAe%ysP zY4Xa%LtBmiDSh~Wg?xCAhWx4_KVmo^G@OrIt~d`{$VZ>Cx(=Cb#F_rs*NHRzG5Qg< zy#xB3GyN@e^B=o{!#m*k6NGg@2r=- zsjrvaYrSkvA0D|-AC~K7W$tqo!(M4K&h)cq`q}ij_e?+AH>St=;OLNW{m1EN$Gtr3 z?q?mTGvivd5BM72O5<9dp_w_Z9r@5^H$EK2DxZ5AiTX|p)6t_t*znNSty}f+LpR@i zvp#+xgnoF>o;@1+tD~c%`uNDy)RaDc@Z59H)yIzn+=l~&kA~1+$Hb)K{)T@X`OWWi zVHbQl_mjEz<{rs?Dt9XPxA~F$)f)as`Pb%uGXLq3EhBqJ?iiUHdAElD@yH*Kj*M;} zeZlB!NADZ`nbD89@Qt4t{o3f0it{JfoBQ3!>;Bw-#h3fOm_J*?KbwDczLtM`{!d4C zjO-k_b>#IL{<)C{NB(H!Z$_U!dc$aS^!rDDT4{cM^f6EKPY2Na!T_3I%%*w4mj=lD z*Z_G?4UqToNZuy~@b;Gjc>Akt-ZuV^NZv0Gp!q)s(EQ2(ntx52skwbW>z|n9KQpHg z*6PqcotaZOGp8_UKIL28*Qw7RPOlHIZ%%;({rYg^2g;lRBF!%Zd}e)E_ikJmd?DFS zhH<9(hyRvy_l-I0`i}HC`ApxD zIZpm}+IQqX9>&QVpM2jP&v=6y$zAq@fD?>>B3AHv#kyRC`hwPPEGkA7gzX1_nC%gN{bZvKfU zoA&F`vR^v>Rh!HH;5L)hIRDVi8uDSA_491`csiUoSoj_vqckiSNf z9|bsupX%x2Kg07Lg>k$1pY$2}-taNEHLx~QT4?lg0{Ab>Gd=d0%J&1P+ZSj$hW#m? zr}4W{!?5pk7xu!+p4wO7&Wq`B?P579FS|(Rg%Qks+))|s;zo2UL)eJyOT9ke%X^}P zT^q&%%G{P}`2iES_-X#BeW~g6ep{-??+68#9;I+mAsmfuIM}1=F3kgbRFm+03VxHq zu#aeuCM(UlWJ#qTLKf^>Ev0z7A^ELP$ddSW=tc9n{F@#?8k3c>R3rEiJaethWaHhH zmDtu2-f2#}pG%tw?No88444<`!_Ic0ZbI$yJv7U6*AF9rZH4k6?Z{0;!Y|588lXl) z+D4pvhe%vZb1{BVo{Cr8fBgho8;67X6}6A!W4FERWj+penP?jU@A?_Unw@RKGup~~ zncy?|`yTD#4p}5`w#z5m4L$i)4pmQ_0Sj7v?OxojfllJxddkB_Av$vyAuccS^J9>4VK4G{d##=$4#D1 ztmCquTf{UR)Ny{J#p@CEA_)(w7yb3XojF@=HA{6py_97b`s@C9Crcb2=6bPr-p(0J zpM|>XgP?n}@(i2Y^*i5pJePYt0{$F#3XF?+vkZS0Kep)xA5%EgsW^Z3#10pA-SX#I zj#=j%3Lh_0eAemTc`1PH$MMI}z-`wT_1Sn~pB3{$IGdL##5i2Y81s@olTi4$MRA3X zXB@@h`uO2uUby=B`0oge`5>Il$6lrv+>}nT&PNnpzC-ba7naAKqxdtJ7p!3?cp+@| zl`mBbbFE4N{s~DKAJ)#{Xm-RDsg$mI-IBB zezH4H$~=C(TyN@A+lLV~m!Bz>3&a!1^SSG5&b%Z)vDFMbB-!;(_(MITExTk>$WN%L z{x88hGi?SKe1&YG4lpf&YGnL&JeIw)h6DLa$!`QeKxs#}{?+|we+c+nzwefNe?!y4 z2J=tBGp(Go=xasiQ+X+skD<<|0zbxg`g|&>doKy`(k2rYJEOj+b-=tdPwG`J!d|Z_ zJVYh+8cNTng{+rQZ_JCdhSu93ZU6dLfWP(bPapefO>26)PT`c^Ja;O?n)JrBnqKr) zjNoH&`AdHHSa{<(R^$!&sP4kIk+b-M42CayW0$&az3GW+ zYDdD?MIj%@SA-MuHAp|yAc>!(H%k^L7Dyxa7?WKZ4ghK>_=@_>q4A)$LOgH zJn$>F#Cq^b{BBo#+E83)39~*{qWI6^`JM=-&7n+8*J5*#?uBQ=8se9-o&ZDisK&)*f&X7Wrr z#&Z^rk<7v);S`S(Sv=a@S&GLruJFjwq45ygE`k&76#29E7B(Yx8r4PNkFfA3{Rrw7 zU|vdJ^mmEE(q?DiA=>AQdLca0{-g5h(`AJiZ5`Dm zdEw+gdGoyVxHoA1?S;*)uW8{@=i^2Hj2Nx*W#zL%a{zHhuPoQ{LY|p!(TB0E~D{x4m9{uj>&jw{H3U4ep~>X zxbz}Sy}u=jXZ@k$YxEw(bK3uUTZk7O5%xO5nf&8`c_|Ii(VW6wM=3l+53M7s6SVDN zbwvJ5Ch91HMMn`VV_(V~%j7J}(-4{JN;8%z#zXYbGNF7uf8P|D^eY2#8CiP;+1*@1 zgtHo1VqFd^3+Q|KSFmAUKFa%QZCcvD9}W454HK5~4*pN3Z!xCnq^}D8PXZSxzTDF` zN|<(YQ0WkU5YOp4#_`(a}z)Lf84v_sh^N>DDbk>KrV) z@1LH*OA2pIdU;EV7s7!T^JJ5}?C#?wiMK;-iT+{(KaLaT@oV9?T$!Q%TfEpg?NITh z%m~N4rQ{bqU9M?DnRN>>p7GWO-re|h@Z&^G55Lv$7R?C>Z-issq(KTag||Hl$GpXO z#@hn$7V%rc?=XHx@LLUUthce=2*4@cTjheh9zS z@W%Ee=8bU7+g`xDV&1M$IOZ+JLw_T-|9apZ#qSM@zX9Q?c1rAu?ODtN;h2a0fO*9{ zT&Zx(LyTuU+ylIO@w+diPxFvi9|DiUQ$65|JrRz1x*jmEn5U~0j(LjljHfpO?@jo< zIiw$or>MObo(Kz19KUj0U&vgO8ex4RpXcHxW8G}rJ|5WDQ6DO!=!Nyv;A40u?0Kkk zjnO zD%JyGpLe^;Cf4F5-y0R)Z22Z}hRV~*(c~o@^6bpB?($N;Bww=`u}RuVyAN-uynBJJ z=$f$4yV5v>9qEm9-V8|Sx*u<-yrX#z$(yjx8#~g|`9fC7*XufoGgO{Y-za$!_IdUi zO(|f_2jwBUwz}bU-H$g^-ljJzXTl-xN|(0AD=z1o6b^a!;SH5HOJ;hiYvuQiJJB`T{FM&qFruP&`CFz0^g*o(Fsz z3!8zxBI2@m74Q;ek&QbP5A@}gw(vmM^Pt~ZGcIBtUZLr>nLT9V4#k7Du~rs@Jr9*q zv(_mY3&yLI#mkikZsB zs6Cduq-lKK{dhy=&9R!&6}uu{`TVyl{d$yvD}0uZ>|Zl9QC7$QQkR|TXb%CNxP7Ffwu(O19|az_4{$GQ~n)D z@%NZlKc3|E!>h@QZ8Y$C#d5t=VV_q&-s$@~B zUtaxqt1mC-_v%CdGSEC=!;eb1@u5X(ym z+&mMG0~wd<>C&t4{I&?Dt?{z>TO8=&+jG0_isRW=#_$|~nBG!u%az9wCj2x131SEO ztIvP@GjaNr^LOv>`uxReR+m3@Vfwf|*PnkriZ}UvepBQ&q^G<;8o{SS-!Z*DeeY%N z>&d@g-k2WcP3E7{_da5;F8|f)oB31UqVr0lRl&>}KJ46SH5#?fba{MYV%%PTmU2W} zqVV%ilqx=7X4W}-^HJQkVPmzs1F-yl7SGJf;A098%0D^|V-@*tISR4^^WT`tpYWjk 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%0A(@OaVNy!7ghn$V!_)pSYO`U*DqJP+RLI%QC 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%0Dq{9bvu_l`q%yw>6Syf<8!%N-a+ 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%0AOFc!t@^@4Ynn0mIkyb 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ΠgT!k%i*;G{H&V_ildP2Z~a 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%0A8l*irSDvZP-o5o( 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

YN*VA>#i>hz7HPxfExg^%x|NL0ciYi*Ofty;2 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 E>uldqnw714HG(cZ6weDG4PVlcymE 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

3X!;RHrngyp?qv2XzwBnL8ksQcsOr6;o@>i-%yp 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 z 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%0A{fu@ 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 z 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 rJ0;e}P^s%2xE^ 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 z%0D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

?6>Il&eueYc%DaGgNX0C$rw2@mS}i1mT*TJ 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
E-_v5&9y4QXj*-Q3Y{uSBpCDnFK(GM?uN7^3b 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 qVpPaw{RV_PmZb)*f~ypGw_a(6hh!sH@$v4Rh+M z%)(g=ygJpm|38#l@sT)>oc(k%c(Qj3cw+w>v|m;h`7KQgSY`k8aa@Yg(SQY?BZQk4 ze>+Opwluk1#qrA@s)=Y8^w zIKnYnb}-LHxQNS@oGbRj`&8~WDtF)%;@LArycG6(t_xofn3owLp=X*@1N&;>12;|j z-YX;i@yzGDq@DkC73+D3*33<7Hh|Z8BFF2PDQ(43w)Gv6Kb?8dNNjzl@c%NlG`lxu zY# zdk3Um@|>%PFB)BG)dWKvPh6LFlrySp%^dv*pFtIrmPyYu&rabsUZ(XJOKD4o9pO2d zOwW)@to>PcZ(PJS74ZQ==2JiGc6|ilREXNcvmh%xizDVZ5*l?b% z(3>4!n`s}?`_2moZP-k|_4HdyKSw8;{gDToZTOo{A{Z?Xy_T0J?L={YS5UpMKmNhb zgx?XDv@3z!6TF&F*rMe7)Lm@9Ip;HJbEniH9$y-K)O1Qe0Zx0k^Tqu_4%Zzr%Vph8 zj8wi~pfWzH@4)X5xBDdT1=`G`WLZ^b`8*$Jl^($4d)kgzb$%Mt?|p z9_d2}dOGYIjBsFqwv_K!IhF`?rZhn(>^RNqxl50Drm3Sn_tROq#63@`R#RDCFm#xR zS92S+=cRsuel373PP?3SGBUFwG1T{M2AyY@daXv6+nA=0wwkhPjbS5cUlMNsJ-fvA zQODrKGVbq}+08zKsEo?~2QAo{B0kG@=rvJ!ltYRGAs=EI&K)|{=&g_Xj|2B zyw<+IK(0l9I)Bhf(g7RlNz$=?X(vf%JrqiZ+!!)r$3JnA^tUeJRQcGye8%%a)|g&n zcpxWIs>Al)OT>PMO?pjf*!CeNa42lgp!F@+!s1@E=GROwA?AYeGvTx0KutH_Pr+_* zy1vtv{^UH<_035If%&$BgOPV4m2uvk{Zk-g=3)OJu5#I3;=a2;#=cuy;jxYnR)kL) z$guUxasM6rT;kw=3{S6hpA%WqdEQmEYlbw%6rx9#{0sgjDp)4u&C*^Q#Ui!YRAfBsV!egW zPROtdv}X9HXIrQw>DOm;26Pmw@SdNigxF3)__7e`NBJyn?&aASzsY>)gBlb*IWXTh zU6jqSs1<47UJ!VRAcBR0^wXQ{Z73&yVvHmOV$P0$zWRw_*iTr zUbvqA=h;O8de>_aZ-dX)XiVUE+l=9NJ6oq~?MyEXVkV2DzM^zH({rgENS6@T4!GNeDD2Ley)sZ;FAA-WsMEH+H(%|^u|4C zs~EJwu?JGAPS9$3HLGpVZ?kD%K7Jl(=j)kPL=0TW{I?I=LNr~o;R*iQ=)7VJm0M;b z?`P+V^@ltgXFl%a6&X9xv5ogr8~KYn;wU5hqB(bj|2ek#S-h8)*+FUl3!5JB8e_F3 zws*wR{oe8O4BQ8LlpWkpD{z>7B72B2N+X=-l!Z<((HU=!Rp=S%1d{>aN%@R8#>an0 z&(ybw(GxG$me~#-0giF2qm3mQwY|Pvo%o=Kes{S2@Si%^rWtb?4lc2M)h%{wjqm|= z*?9tnFfR}P6TTN)h%cPSF}VZqTM?`ivH|=DB8UT-kG;n_votP0%k-;QHW{FCjVz0> zkBG0?uZw`c`+Hz}E_9R~+feu|!M9Wy(|Tm5@QL`yxuQSU5&V=XE%u)mb;Qf*|NmMC z7t`8G`=gSsGo;Psw{k!K>34^P?H;ZDA89_o*TFu_Ih#0^ST*<$=#Dknxaa)obK*?G z7^AK=_LtN*`0^NfaU}Md@R5-A9HryFe4K=@mfs!j^|yuCoZy}PDIQBZKUv)QQN8dt z_QXBiY^zALTiSH0qb#(@44faS$;ZOi-_J-gYZWcw%KPO?Q4U0frckK z;yR^|(%-NkuiZMLPY!o7-%0QXH>w7Cm)p}vHrXf3Q%-p}7VpEG*rvY%WwbY}0R4|q z0Ygjef%ktCzme9me8dxW!+DF$^2-;oUWs1`A5a3dc9_oXuHnRkNSOEPJGfuZ(EOqO zBQ!ooCj@<2IJC*$Gpg3qW_GjBd8`riev2<1w4w8NB^w;P#df&TW|8QQ#R0;TBTEGg zJGSY-MWbG!xmP(}Q(8IUD&W8aae?Dp(*Cwa+WQ7*Os_xJ)f+d(!Ep}G176deIBkl! z3v_%kr3jx;`RHFB_ot<|KmGkm!8e+M)*#7cX6_2!swL(_ijpBICBWA|%4 zpWYwr`Bb4gUHUUdXW`q#uTF}2^bc4z)>XRFo^&4k>D^&0Egxni1s^jw#xAw@qOpTx zZ7AA!D!a+Rc#CLGf2H(%noeU%4@QXnBDz%FVQlE>c?IQ=AAU2kbi;x!FzkJDXg_N7 zU+MVW*H^RMX|j5o;Zp03;F>PzXRvM#V!RKKWrfem2tTi)=L@t3GnL_U9{2HbDu+1k zxiY^cVG}V^3xbWT?*l&>ked||ZL786E=oz8Tn(CZ5@N*UGrnoqWR+-75H8zF`0G*A z2YOo_ZT{=Gf)4pH$5w6T?>PzI-;m#bNZ)JZcP-)jKjinz=sR?*AbWCjU@Ms3S#6IB zZMD+b_xcJh^P((MirA!bzGg`MtRVeg&2rEQRuzq5EW^$u>uu20jSaRl7RV$0p$0J? z_&nzrGDQEeeM`uI4|Q+gCkE56!8)V!Nf}!!vKaB8@`L&c8~#}?Rg`nEKLMj-Db1By zWqE5NrLKn}!_wSM`_q=z8i;kd{<6by?CTV*#qenF^}@DSeF8q$(gqOT=p9QFJTipvCt9NySantrsiI{Nk<%C zI#Z#`fU^~RXzS%I?AHi10{o3(%=MT%q7%k6HrtR_R2a>+Pi-*EXzb;HjYbh?7i*4q z+&Q#&nzMt=RF8pdLPYaS>u(o z2lC)Ig!+`n`frFg4ZRuY15Ns;s4rLgrvQ(2?!i9aHm4BH<}ZYfPBZK15S^KSBE5?Tn0Lpou1*JJ>K{(;|E3R2ZDb0 zhIX)@KKTBstf@7<`d^4fZem=*IxOHTVfzVx#k8jEGf{({3EL{N-I8O+cP^!sz`r%6 zJ9d12VbgXoV7`E09y+hkNrjyJID3=ku3Gn+0jWRm6wYF0yytBVd02Yd(Xe>P3Sv@+zp?txw9|M>|dQYS#Ks;?^(uvmF92gb+kWf#+mD)(5tOC z25zV~imO-KD(y!t)N1R&)%JUDSo_NYt8M7NpY6nvqy0F5X`cprE%ga8(wY7uIwM8e zXTnzckvoO`HR0TBf}MO-`r1ahg$d=HI2b5%Z$cT!cuRsJ78U4`m%S-g8U5>7sg_Rk z9q`dErIOA{VQ0eikACey*WNDX(-6DW$M>EMwn6RrsDFOhzkwXw!n{M zgv`M`g1#mk_QDG2!74IFD&=j4t{%}AA;&jE<1+gZI&W()q&-ktYo#{V#{PYwwZ9R% zSf$I@57P?hW9d6sM%)4(y=Jxj_e;~Q&QVucuqkdN+By_k!2X!hz7y^Ig6d9@vF49I zBYZ>rfpxry?rRh6hh+@!&#z8nc^TjV?xoVMuTVB>BP*) zZ;j4}A9=?68_yx$v5n(!v)_O;NpAu60kgx2-_MD%jd2Y5$NhlvYddX@8BOc^bKa}h zBTj8T>o`){DD(|8up(siHj}`@gy#c=VM5T5s5gyzuM8ap-va^ec=+9dE32nWSBy`#Ip(;%sr! z6pdi4(PJ)JPB6A)krirOWVxFcF`R`YoK2VK%;!v#TyL$zK2`hXJVje_0xj}e`i^-7 z{=-~$K1*#9T>&5UJT}}p$}!29TrrL(PwDT{*;prSFi)6sUCx2tH|JX@?;VsEZKYHF zXzOqEj`3}f`xpA!vxs(X<$c_2tBv!S27eoR7?1%Y{xEcpwYk*(JX@prKy36R=EvvR zIU%A^V3SSfW{DQIi&+jt=eBBCd4zAkPxy%@gq|+u2DbA;hOk`92Nv|o2h?D*z2>|Y znO@hM4qvr7G_KG8O0f3=hO0A{>O+#da!FYzsW!GdNz*WVGx9%X;2)F1F6Veq(!Em9-mTKkk$_AS(QYanFKXbdr} z^w!ys$*f{O3l}p@zRJ#%@tiJzZo&CUgg3_W{rMl=O4@~V24+&4Panf+BV0<_kBD|m zO2~Jg2YSuQVjt2q*G7-J|69m&={&B_15|+)JZ;Z@@Ah$v;n8BgTvIL_DAa zR>9X&40J$lx1jZs5a(MJer`s7C+`xde+%J*kkY;?7INZxxv!CyRc%-u{n7{W_(VVV zQoo6pS(!y?eqHDh{Fc(D()iLStwiRVN$s49a;4&Z1@$pq%E*5U{*Tt>D(ow24>WBK z>(1 zRADFi_P0Hbz7ww@(yNL7s4+#qu_lieXS0nM(fO|ggAGgv1ZozTgMZQ)_b4p~Jj#Lt ziR(2Hu^;5xET*xzX)MnB1t%HH9}?DPvV@%n658s%L$otiUtoHaT85K5s88^TpOG+c zpHW+C!uzQwY3nDLHz_Z0cn=4rpMv~=)($ZJOGWevFnxja*GK2?D^5S#yL#e?UH50$ zA~~?*{(gJq)Seo8lxfrfBM5g!3FpBMMt{}zi&(Sy#5ge?hR>`|-0;8I#6DM#@*Pmq z0hZUuGu*iw-9`C|f=$qW;=TF69ucDpbl5+n?&upIihGnK`UY8CUc%h$L|=bLeSHdj z6*AP@FgGDNHw{~@A}ObG=I4ed`}X`urEkweMz(3An4^0U2SV2ObN2JRitCu2lWIZs z>+nbmM=Z7XoJTx1(H793I_r*Z_MwIRnBRXB9SIxe{_~mZL7bEod?)hArQ572S_8{L z5YG*Jz*Rk->U_XV)?PHKwYR^wCz7Q9;wh@w6M6D1`Sy5E+5o}@m!G7~x7|VqtT`(7 z#6>5`GZ1qZb>M2-32>Dz=j~JWr`9)T;f=>9&7gN5(S|eW-_;1;R;z5praY&KXsBw?h)TPk=oT+z{g^Wu zM+JMh@vQ9lwBZ8(7SkT{)7b-WW77XJbfq8@Mq996~1#id=Y4frgwRvu$^E~Czh9q}k)BY0pe83zK4g1$5 zQ73eiJcrgSUrBp>=Awzw3i=rfCPs7UhrF=ecjV4X+{#K1$3Td9rs!`c)xl@0wAG(Y zYuVE<&m0B6cgo~g&uI(IQR-au=Y_EgaJMws`pir8g1X8sQ$Bj`)R~K54p+${rGRUvKVu*54a=>J!0Z}RGM2V>oytp2oM>xYyF`vX2h zu6_D&9D2e(dipS*3u&}&h{Nfr-b=qh=IgX(Gih!iH`?e{_MFV-)ce$7#XW7Ng`rEcQw1?N5+DfAHz(ajV`Zetj^k*_;Ftp!M=0#&KVx3wF zwGSNVLcBwx!G4+2Ss#O*|BO8Jzi)bX9Alw6;WJvyE#-Io5Z&dLa7^{i1}{Wwi+M!; z`ILWl2)glO%||HjG+N`t@_@6OsrWwF z`Vu1%6DB;(D;b27Ekl5?mH`0e?PfVs9RkwAX>|@8_$hd;?Sm zhi*6lhrZI?B;-)|axL&5^EN{vygc2;eUSzw|2WC`_m)m7rG(ynSi@!>~4izG{5e@QsU z2gjsY^pBWpxEKbC3mE#4v1UZS)-`oHR!i1mwg2OX41XL$*RJhZ=_LmtA@v$Inz zZ}3Sz6BNDG9%XE0KVunGkKcHb^#^f2>^bi-rj;SjFTbrjz5@Lud@&uiPW@z*zma|^ z|GB1%c>?sUn#T4h{PYk#16%vk>3QsVYwWREeL6QkqYB8zOB#h`!jiNyLusBx#ODCt4mu-=Xy6I4Lin|XpDTJENVv?2fdc>XzdDY1O>@n!p*zhnS0`By z9q)OiTGGuAAU-yoJ+x+w>!vGxxGqU+JOL&Vj|OmfC-n{dUR#UU(>GDsiBgvKdznT! z)b+RHh$l#AK;sIQnWi?=dMsIFrBNSS+ZLMG&$kz4$N&ENM=>X+cH5^PaXjA_w-8Rx zp|gPKHN?^e-dBmXbNmqch*mkcTi_4WbFc{d%;LPEO`5Oi%h+b`H>0wRm2zyjuba~N zk-c_ks&%vR5swq?%upAyt`_`G;LecswJvWs0NF3@^FEo{9bY8Z<2-`-+(zhsi#Y)O zG<%sC^Dt@$vV<2U{Sl$Hn@#iFcDC0VR#?d~hAW6R%Tt!x<#fK4Jt=*&D-Cultzm_- zn)MyO*d=(hV(N2|Qg1iWx0&$OJCybj;g9viGbHPC4fvESka}R39C3KDpozPhI+_EN z$N5mK*V{cf%Lq5QC4GT%XRSUQM_%L`tJK=~K33W*okeX1Lo$tM{UG7-F?+k>#f0yQ zh^CrJ|3R7eN%(lCzDGBvat!4$7kjKMIu}MMQEO~lgI!UBJBUau5NKeXk4pH*ZiEl4 z2ENbBqqR(BUDnCg%b*L@xyB5&f!bMRyNK8I24)yRmZwaL5iR^Y>&b*7rLIMhVNCzh zn2xj_<`}r&!2hfMggrN>-W+y8Bvv@+HUss*U&-9exyD%F@XUEeve~rXL;T>BXneoN z7-%LBtu<~VxGWE@wg;+nIW}=}R_%W1efvW5><{UD93yD~AI*ucAHMzTRw_`j{t1rZX7T-h2WWa5ea9&0Ur>Y?IrjEJ>%T%_0k_2?Mb$MSz@?B ze`siTyhSjXZPJ;FJ?7Q+*w|yt8_T=0`&@l{ZSgR%*KjVPFTCgEUSr<*Bzr73VUOh| z?6IIr_^c}G>DlA-x3H(Dj|Y`FB)K0B`E$33M+1GI=OwPlrgCjG?lNi{G=~34aTZtM ze5O8OJV|WZx0>+?bj&wf5c!7c{2b&v~OMK}pQ2OZquYpb`lV7;A1eVi%Jj0~5MyC6>i z;TF(9Ax*r4Ud?N)w{x_5`+w0}E~fp4@_xO}c4SWfNqDF2?ucd7(PnuPi*E&>Bx1o*hr*%^`c*qlmh;vp#35{lu=G-m~}OZ+lq2 zgR=-{%hqA3?C)p><8=6)?&h%+2Zf9aV@e#)CBW9N1p^olX74I={VI$ba6Vf5`vVeAyG9L+4eEwuIYF<1u70p8(rKzT?(} zPowTjGdKo9Dx_!<9<_B3eb+m1n(c?sKWR1lqV>oF0N4D#(|`+DLr+T&YBB^%;C zSl*v&efQ_iJv;EymQh<`Uw_>b_tUxS=eujZ|Ffa%hqxmcAMg{?`M|rBm-^9;J}zz& zcm+OIXB)yFKGviR@Jr{ICv_a|PZmS|iL=u!ebf8ZHvR@*1O$5qc%y-mH=2n)gd&z_ znvm0+Msvk7xsZ^_K{l61X^^FWPJk?>h~5#`=gFfz?G-hvSvM;XSj{q)9j#sQRyrHD z4A~OH-R_nSnioAmheD1GFbiH1_t7uX7{NF4_@(}ZTNVDdSw~+JWuK#bb15HWNgnD0 z@x0c<)Q6eUM|#`wo;|(rS>0-%vFb46(tt9b@o9i<(}NtVqnz=;6swhJIqcIJ)j~!$ zO5G}DjLS}tF)olgSx*oxguY>{D`>1!;UA$|$d^9;wx^xpn{D~(?1NJF2)zsRBboM6 zk+#CdJ%0x9jUIU>b0lQp^X$JK7jubu#JGM0KWf288TSA61KNuccfq$V>Uu=mWC76Ro5G z(J)s>hWXr0`+Xy74d|UiHVU0z&}XlV6!aPN%b`-GnVK#XFVz#LCdYS^QnHsuzyA91 z&^O3ro?6=F(6~u-<|Pe~cQ+pZZleNDs;K_MuFm~{cbC+)0n7kb08bqJswYl7Mmx@O z4R;nh1)gn!k4yMA(FLBtJOzwpJdb`kUwjS(#e88tGibhk1%K%`u8TsSH&0n(rz=W4 zhyGm~4#!_hj#%z|YCG`Sfp7nDxIJ*`pbbZUSF!+r7iy#u~J zjdZa8&Eji?&Awv?|M$Y|IP!s~KwkJh`!LcWY%ZzIQwy_Cs0;DdcSKICAG$X0^h-m$ z(tlE#F6D!;HJ$d4p7zZ5;J>@kp{>})+oz0!T}!@W&)WR=p7!eZ`uyc?=UB|my*_hA zyg9>yzlw~#!j232AI9GV|MDZM>(ICl?5KqR z9fZSnFs|7iZOZjU>$8%S8!UGql1)5=r_t**;75?~^1OWDXXPG~`Z?0Yx|xw3XfKU% z&lI**Pg3?0Ef-{eCLQ#D4*l=j@PXY!-;-ItP-)-i!n=sui*jyR4rymNK3S_HF2qhi zoDOO$wv*$VjAz;$Iy)ulNqmkwF?Mot1wT)4nmI#RV4Amd#~uCUB;|dM|CJm-->MJ? zK0hV8m-_@Ch5KZzU?&gsf!~#RT$JY>dj3%Q_QQGeF}?5S_%jnN_*;jcb*CR_o6fb& zDb$}NsXw}k`y%2dBCZhfAn#WRv8fl1*v@_qpii^7N7%U~Nj*@|?JXaQwar#)vVGDY z<&`qtC2WHcThF;4olr2Ky6^!AN6ii@Y0y|C#eSzPj)u ziMR?mu+fYxj;$~Kig}FT(#DJZA;$XRIkxG$Vgmv#PQS5^X)<==_WUHv*;DIiPF|z=d(IuURYkQHj@X$58~KGJ zHYceGvH##d;w2da`MD9z1WvV?R3;aB8gE$_g`K%$KbxFjWA2fDEih)s&V2o)!k&Nk zRa=CA64sfYNHkED3wxmJtSzz8y)moB|Erh&cN^fxwEx`(_`s0=Yy%8^t0~*BHOmyx zd`s*Swl4}=I?*(q0&aZlkb;hh8q|#;&|Ic9{C15d1@iF{HlU^eNZFPH*Mf^9f%O4oFd6 zI-sx|e}U~)7uY^+0iCh??J+^24*(xhDbd@F?b@5H`^m ze;ta4mrrxqi0^>V#6-oWk07aWjMcf z$YK+;*01!APr++^x?z{Szi=1JhE#e#MDOPo5pJUQa@q&+HwBEP5WP8raNjTJoNq5x ztfCy~ICp&dqSnGO&|lJ9Vp&SVfm^Bmj}yw=L}i+Xw)D~@$oo^uvnwIbc*=vl(>S!X zH=j00_yc+?A>UZ!qj_2}w3+kWN%L|nSLEA3`3{xtw2>DuaI*_-O^#iHG6Wl48&=u{ z)hq2|g)8je zA-tB?$A~z&*sJWZ-P#_;j~?Pl3aNdS>VT{RYwsuCoYy`|_|ACD^g-7|nZs-USZt92 zJb}JG7k$z`kh6wyMN)JR+qxywKi2sH*$2lrG-8qB22z53FN7+)yM}$O~znDrnw{DbHte3@>2}?1wqR_rgf~4W$*+-1#)BlW_bx z)&*{+a)RF~zsl`V0!_JI!q>Y3l^)!AV6OgvyGLV}ou=<%em^}zaN4-b2H$@ydkxD= z#D2I%?gyHaXuX^hu^$kJ20o_iH-rq#i zweWSq%h5_Jo$$fsI`ji4S+2H6J+My>(pceRsL|yzVD}5$abu)?f1~SBOnrt!QTr=9eU?Ep*Ah} zWrFQIY{Ed}IX2Xt+Uv0p@p0%6%~>|eor-&IrVU1$jdEVq%t#D%`~mi8lqYYa4?30n z4f$vdvR!R7FO(1QKPyQX2ilCiF*niuin5T-OJxHrt3fxE-<-$X~Iy z;1@(+%sN-ZQ!Ea!-(L%--2u?1$+|8Am<^;_3Pr_(Q7y)L?f zelOE+AN`7^u8Y>t5B8iTi0Km86hn+W#_ddB?lSY}oa?;&?HKLXSA@=C#5Iy_4HEQb z8k=mlzQjm{ZdD^_nj2upmA`G0$6Aq0wD!14=EYw>jc8<|@sen*<^;x=;7xIl4|~-) zf#%+H$cXX^5z9V{`HxvdPqh-=ypGDxf`2Eq!Gy12O%wK81<=i?7O{nJe~CMs66j#l z{GzO{agl-YX{QO>9E<1)?ib_;rwLytCDOjsN$)AhW}6Tv-Ld!0m39*j4*@y7yPuri z!#*2{&X9IL53K8GM=Sy6`Qay^CTHJ_nyZ-J+4(1;$Hu+SI)Iw=Q8c!3p?TNdo_MO1 zVece57qT2d(+WPU<}W>QpFYUuco)L&4AYOvQdWnu-!*gzAGuT)XfDJU0Nw0k9YUff zUlqP?kd{gBkG1tMPl_=juj4082~wY{bN9`t{vq>$zeS%%f53e%lynN$1Oyb@Ix)1?WA^q<)}3PTGt%;VTREY-tew zp;Gq>U2)j2rlG%cg0HXu&e!iwE+QKu z(l!%aQEMv3a>T_Ge&md>T^9xU~Q5rZ3OV0X^vf~}KUSvE91*|cvqM z`u;PrTX4Xq;XP#kg>!aG$o|L7mq z5q(^IW}h$X3R(Ao1ixROC#74kr=LjeY!~ovJ#)A4J(?zQLlpiM5GyBuvje)%b!=;Z zb)NF`?%w*768`tp^riEj4vLr)=quz&&%Tqwx|Z-ki9VoRrw_Gv3wS&Oew5{0*E@4v z^ZmK@O21r*bIkEVX#Oion^+c)_$rvcB=kRF{w|gCH&E*F&%MsDeqSTzFh$PcMRE=k z_j|hh&yxQN+lLAp{=q-TerdK3P3n#d``94MojV%dvNZA$w6 zdLj4s2g6B-5#r>B|8l>+jNrY_ERU{XcrVxM*hfJb?FGL!-$q-w%j`mXavwKKIJ)Ep z5qA-3d6x-U)d_ekD15@_Nj#QEYg^SKa2dz$su6q4TTOT=xS89^!a85(vD9eTWFM0% zVhG86w5O5B8?A+pFZO%*UP8ax0;r5WkpR-fMTI~8Ji^rHM$9U}-V!uM>?hiC`{2kiY9>}SI13LTR z(27+82eeBZ>Y;tv{(s=e8}AZ05_`^}8D9G@crxqmljF(81pEnG-xYFx;TH`)$9MlL zB`)Kqzv8VCvbl=j8XI=cUUePIR$lsx^eYsA4{FHjt7uO}VqYi5`J?(1{jtxQM)Wzs z=?g=*+bZ;hqvK3Pon!jd7Yu3VlmFt-?JRE?B;zdPu`c!mzE^?Fl+Nf(;25;|ENpev z9X9?EXWXsMwd&PPT%Pi|klw6`?}*pzCHkaU+hhx0uH!flVn{s~ZDgJgX`YJOY?Oaa zBbw?0de-N0{{OY#IsN*b-LK!?e*NxNUFLu4^LLut?BCx5-|O$Dg#K>o?XR17+YI^+ zpYXsJ3lyJ~oe7wCQJ)*(_ai&er)}BAX>7kQ;_Csw5Z)`=WQX;+Twj=VP3gN=^rxy2 zF_R*(g$0D?2zExC@nyS{7RdB-+VF%l^)!*MI3cZ4rVUF-n` zYNh9&{~>?Uf5`t@LVmT^r()1fg&hmc3-MR&<$s?T9s3`C#q`Ug-{-GQjAl?hEknkb z&oAzZ2g}l|GtM1jB8GtvFhH>W(oZ_LExx0Yd4Jm66_+;k{C)?$cL-nk{63A|VOQ^0 z$C$U$^8qKO!;NVif6wtP0AEU=9o#j-w*YvM={o!lHt?Eb-+)&0slq3KLUpAeCS){H zO21*S4eqrI=5otU&_T?U_r36sRgjg$b^IH#T?oz}|FaVV0DM!#gL@b+ovD89M85(# z4jzLqN8Ddi9Wxh;vY$zxY>3C=74`+O51NEu6VPCJ#}3B#%Jbstue0J=GG-lUQ_Mja zu#I?oG#8*-f;HeD!0R{LuwMWj1AiPFsm=^#65?H#W}I}~C;DI;A;*0+^}p*>F>X`% z5w^ztxi40NsxRlbXJaIex}5!N3EyDO99#n*)Y5;_k<(JSF2t}(qq;7Wb)Amb5qatS z?S0wKh4LHpRzG8%zU8)u_6%&6Y&r{F(4QI^iN%y`_9M0yzJX}|b~FjTm-&C1XTWk& z!rTv#bHBAm=#jw39FIfdg?D7#bB8HhzgzP#j^3Kk#w!VJ{G|ynrSz`fPnv{I>Z|gO zeyzH|v=(*6+mz+|a6k6OqHf+N@L!U+Pd>Y&BaZmetG+uJclIRkg$g?KMOPg7BQf^J zwxTcl_7&y#29URz_b}{x*Q)Sa7O^%j68o}E3!ktr-@c=7U#_S6L9=>&0@nWcRTk4o zY62gG^UEjwo|Z|!p>DR1!af@Zf8fK`x?7xBk@-Hk=AbiLt9)#4IEdw|RhEOFk_kVZ z!mu`h@8e$@A?R4x94A5E6^K~%HOp+ogv35;x*(P5z%3W1#$ACbjz9U*<*(aLTc9yZ z@={rs$1C*+)@y6*%ZN5Iq#wfFXy@`>OkeGSEfe96`s(Ejv!7DEy>TZ1FPULOyG+Qh zs%UOpnY9My=MI`5=p58nH*vYUs9*SxaKFaT**MGcmev`dWnPtj%)B)V%-1L%_($j{ zOIfV-3Fu=wUtb#Wy8VL8`xw;&{lt$EqnKzO$Da!Jd(MB@?>@QTai_RtDPU6U_mux( zzh}$+uAKzWOw5=aY!8VA?DJ-{mIYyTm=GFA{a^Pr!FfCul-e2OTEV zcN@{7pC#bJ=A{A`!oSR}Zx6BT5aiR{zu3Hgvy|GsxSuYdu9X-;&F!H9!{eiu> z{#3;(n~xaShLu>)bV+-Fj?0%g5_=#ldE_F{dNlUR^HbSohu-s_r9RJQ`mLGix7jo= zY4Gbu`O?nsh=-MCVRtXf;LajQ-=|~!>HBq^k9>tbJcs@h@A(|Z&zQ&jFzP|v@2;|r z_;Z*W{!ZtnwvoR(WoJn|u=Yq6^Az>+{W*Ha`LkBOKTGc>Y-iKslb*NBcJW?! zB&)sb%`^+}TCzdJuc(o6lawfQ<0BSe7~9#%O(u&A#mOeT-9g z3x9sruVvoR%9bR`=RzDVML3)G^TH*|nRey)*s5Xu>L)^$1lr|QeT{t$ z^x%{mh)09|OT;=Hm>(-Doo{2m9?47PJ3HXITV96$UY1kjPuB%bQ?$2j*jiQ?u%nGw zf#?qVYFZOvyFuUdx9x&EgiIkx#BOEY@1xtLoJYpoMcNrMA3eK{;7pd^;Fk{fHb-t3 z-~SE2Y4DX25I#NIE*rGLo8Z6uR+fb;D>Eq#^0Le6Kgd2tId*QE<98cAQ?HWoWjH1< zcz;O);+~H66sue8wd#Bmamb3Kt|*=dNSVl5eOVIdFyL|EE#UG2+Uxd;gfootussLp zymHqXd;Xs~;(P~8?KSHmj!kh6!Kz9pAvn*69P^wXffC(iKsC!FDXr+36ZV832V zX*?l&r+oIJ&qU8S{wRp2Y~TCOiP7!!+f2VU`XS#!%J&Axnu%C*N)_k_S)o#|y%Di= zWg7gLy5%$O@Lcj4^t;eAruRaH+eF-&^|aQ`I^&E2&44}f+K@2EV~Z^4ig!)hZ0~s6 zYfX!ew!S6UZasgS@%j+r`$l-J%1u*^Hwz-x(kau73_W1E4BSs&VR`&vv&ro?SkIl> zTvB2gpFiFacVg>xUOW6V&zz9iHE%obDaZpA_O%>|9dGD}Z`apjuoGVH^GvO+Z5vMMpH4|~3 z!_;SwKGi_1N7%>Hep%eAEoDD5MF!=e=L+K;Yv`GXw@_~v8TG6e@a4IOWqgCkQ*=(g zaVMe+~6;>n05yIY$e*pbE%hoZLzEwaTq~M()uC>4)nMk9qwysKC&T; zkol1he2P2a{Rhg4ehSJq6#1%2G4Y-hZ4P-;cgS4n8Y$ja?+?;Df_iOw%~+=O#Q4kp6P|+r)qU zsObBZ5~n~$w5^oy4Xleet=ZPg!uA1%H=+9qdEZ*1N#KhR^`g$dvTtJc#m@dEb}kV0 zzCz<>U$Tf9MRTv0MF{7G%rSrLAigDR{$hFu-wo_0IN7a-I3~zIrd=*K+1KK~nqtCt zVMT07My-o|@koD*h%4xp^d+^Kd5GnE%|hoMv`^V)d&`1u#;s3K9}M^)4rH6}u-P8E``3&9!l$4JkOdvwAOa+0q&AA=|q~*mmvFtJa2YCS>$Xf z+e@VN+>(|x!fXMb;6Q2HTNm{xa5T^E)a=>Z$K19&4(3z*LNGUm39ULWNSPRD(Z zb4Q}cJ8UOzA=dT4kaVWIP9J1kHn-52 ziPoZd3YdN=JNz+?qw~Fq(TW{?zevCLnf>0&=$+<{?^IrTT*PFxIQAZ5z(%ZXg<;Uy z*4EN6-%UJT*A*w84foK9E6wG8Ez2=auLBoRIhh~j=GC!|2jCPqkjt!)Wwrv>)X28( z3Byjlx2;)qUA?*=_tbUu#$LMU@h;vQj;;XG?tNU~)0c54ql+~3!Rh-{DvvbOe~WxZ zpKhw_t4sP!vu=G{#5ZvA-$d`p)uEVE=6e1BG&D)ZNyn|Df2yeUMlGR zbe#+?)s9brQrD8zPx*4w3B|J_r-6od|pWZbLi)^wYHk=1o#de zeH=i2P8RpNRvJCO3tBKemw9EE9G92Uk@ro=c&f#`pv>_GfdlcZhlQ?OF2Tra;0OI# z)}Vwn0KGzVY8uvJw6yzLh5HwRtJ%l;V)&wdm#iN!l^+)U8%Sw`WgBCujo+dTca}xx zYZ}Jp8XB?26pDC}0cq#-C)|-!zgs1Z_)BW%;U3{L3FrB)puv9AnxSK?xlK3Q zBEGQo82DXEN4!|*C1%L^h)TUcU)?YiIc>~lU0(qM*H8YAX$inQ+Qb@eMt+)?$7LN(xk{P$ zDvr-8^8OWhi9US@ezYa5pv{-A6nXEW^qhn`Zjg19$U2bsIpnPgns+;Wo-E$WWSk7t z`R(Zu>q$9|@iHIMp6EBWt&hz%zK;-7=3xd5#RouzE7C zlXMZC@u!OOy|QqPz4y94Jdj-*TjE`vI!o$%pT)vJM}Wc`Km~d@GRO zKG&!|`sU2%?No=e4%6iG!Rx<^<31)zyy8p=KVKdc_o}GxIZ7WZ)4xbaZ>02y93#qy z5bs>RTL-gx=VAt>ccqK;j}p>@l-?-o{eaS){+CnwW|{w8O5dE}HIS}R`T?2$ElS_U zcj45g%)5osehQttX~G7*MBgs_lGEOGa7BTX!KX>NJNVFT*9&+=zJdXwF4(ERcrdFS z|G&BZJ8q}T-}mkJ^i92OUDUY)V!A|uPt1si_)G&hsYqRFYYKeyHrWsTNWig6;(pK? zsB?^LZ#nfHa?_IAL`-_DH*nf)g>ct-sd3|ybmnuianD5bB<>eMcg_wrv#w&dF7D`X z=7gxu^}|KILkNbU^YynQ2jjD67NsZH(TmoIeUm@4ea+4I{Fh(FVnAHz0cPT zc*T*dM-#O4;N~R0XOQ<+gXG#lXBl@?mt8ORXpYqT1ns}(XiuEV@jV9i=BlHJ!`f_* zlWPs#1YPHPeFX!>_z`FJe5`rGdnvtFB)ku2m>B+rL$A zwv+Vn{#!+SlS-QRuYYiq`}020DA@zYm?M?!IL^o^a?Meu?Tf6qF*23*T!8JoiRRif zM}GeueS5>vFQhqc8?pTa9-~0Qv?C_~JYsF{ld-@c55(OK_$%DsfJVxsd;|5@?NxKT z;sdK+?>+0?@~(*Tdnm7m^-`-5?^E0bd8Ho;x45se99=}*g(b_oFz23V*ioV1Sgvq9 zPiDb}e}2J}p!ETc*s!1#jNgYFaB#5or@i}F+b*t5BmA7>)k9U;@yYrgB1 zr=jhlA)?(Q*LKHoSG8UCqx0JC6Y{+*)7!5V=d6?NljZkOdJf@UQ|c(GAraG@{S!^5 zGN4s)CnWddt273`gqy$8^HzeF)N?xH#bqtR7eC_rl@iVK3!2Y+D*3)Ih2!}y=d%rd z3fA7*P3zY8{v5sg65cP(NQwvWPH=KY!`JbBN}c(@&+E)Lrgg-#2iBRd)Bmj*b>^mN zkagFY|DgXdfj4ZgwEy`q)E#%8|L_aq38f#wlDT4T@@I>Gg}zOvxjp+c^$f6UY6z6L*~QTz?pO zOwi!>!Z#(H*jr^7*zpa$t-o`hY ztLf*Y#^+ET=s;8X#rU>F=GlC1DxXUjZx4Kp%V)%<(`e1_o%mh6L|bkbsmpD=kH7l6 zc!cV_V*A0kTdrdkt>Y|8yN24CP5)!*-_c|0oco&3@zMP1*FBv6(2sn~_d(wXbR_C{ z`|569Z)cradf-b{tPRWHV4u?ZE$0ERnIY{j!m|8pvb?kYk5C!-YXO|71Sdb|_?Z!F zDb*2{&yUOc9%fwBVh80O^w1t$L23K4sXlLuU02y1|CZo;&mRxR@qYT0?)W}W3)AuM z{o!!@Ov=0avOycR(hoYny2S4VxVNRfIvO!5iBFo1`|!^uMsw&_Lcdr0{Q~{otNOh+ zpQOzHzx|%0pK)Mfv|j4(aC~n%$K9;|InOSTcb+SlC&ztLUs~%3mD6_U#P=tpFFZ-! z#*?J^T#feFkvX;#_X=l2F78JV3lA|>UQ1$qAXQnNG?>reI>R$PLQ)^|9CFP!*WmUV7g|R(nr@U^M9YN8FjO`m+G}&sgd_mY&R-!|8(LPSk?$1 zwXmx?hx$^8JLvbgFPAW0ZKOTBl;2%a7i$FJzA;Km?|t2vvgY3Si3^AH&B+~V-#t|+ zt-}~^vz zLgwA3H1A7(MCibJ`{}?IPwD8r7gY77EK79Dx?PeE!M&rXXW70Zzrx*c*re|!bPIk7 zxwYEddzT6OQGYOOvo1t%F8g%Mn9|Y9<0;BgyF^Xnd2`cxICqPQI`q=dajZc4U!XpF z#%i@m8PYF9vV6yVolgs}&jvaJvK1{-OY~Y3^{a`#w?Nj6doq+s5ov74(|gw@Wp!hz zk58s0_3Gz4|Bmk48|^~gm3SvxPCO3w9QcQQw5Rt417?zx87ILv*1?I8W* zzuEL#`^Cg4#_H${tfaON5KZ?Fc_;FZqvD_W$$s|{3njg=lfE5Lp@%TeS}x^`WhdcX zUc9NJ-7C-LzjpQAdHB@1oOUDC6C%Ed?^wC~;p z?^hq~yLZ9+mGll-LRaztmL)usAWP_Ni^j54-m%{&?ZIz7D(--ApTAEJvrg3KTG$Te zNO;Xm9NQARU`hwecGn+sXW~gQ+pFi4UTh*nCPebr0s2v?x}r82)N@Afuy33&F(d$`x=eID}AdIN4zmd~81 z=s(u@Ks0Ovo&m$W-ZzQ0#{8vpiMunz(sau;Skte~XDQE}l2`N*oj`eV(-Y3cN_j5g zp6pt=w^C(3m(){5y-CtP0{S&Y)_1YAYe^il<69s7`-FIl&-G?|yJGB5(rXExCIF_F zxU^6$+WegAox$>opanQAlxHN)2b`0Y>c-wZQYQBZe6^_wdvIpLoMNBO=t|hf66SCQ zx#fKD{*q-}GVLaMcguTzjG+kf9O{RX(2uGju@8-^=3Mx=8!6}r1G@U`C%Faw_j+N$(V50s`LQo4Zm>@MM3xysMp^b#%11of9C==` zkHKre>n^ipeAF~U$_)WKu+JaJbH58Z5BdM}B}scF#8X;ke>;Tsc#_L#lIbp)UXw~~ z)0yeW6FV8+=uDOEZYylI+lgOE9M4#l@XnV`#7n4 z#IzrHAYB){{eQ?To3CftR4&m$Z+cbs+RV*#_2ar8L0Ef;=Bm9&>jb9fyf zd-JQ!%un5X`c$F`=9UeEN>uT0N5Kr~Q?9-@B7zQ$=D`l>c4! z4J^K;N_Zxkd+}XA47YbAxzP8sRv|yp|7reLucsXqzAlw^qy-a==sj z+1$N02;#a$?0=w>FRMNe6O(0PfZ^U4Y`Y|LQj1h z`%Nv#T*fl?5X}K-#b^F3x7Ul0P0Q>CSwnxtdts&^0o{g5Ud+!ufXfh=@J39WguWY_3D%F{ULG zXlSp_@*1Ycr_SjfMv=8 z^rhuJ;-8|D=B_%B6)#hka~<9qfk$C0UF}}J?^5ay?(B|yM&nRh*cXadsWV&p^hshC zon78&OE0~PzGKWz-_`1Rdjj>p@4l?rULpJU!>hY{@3+eP>3q3@C+K~pIX+wA&vW>% zU2)u{V=nUKxlls?U-k4{?31v3m|!_s-h&qr9PgBPiD;jE=g#>vN2fg?<{Pw?)9*8H z5dMt!-XP@H*rPhNfxGRYvdw=}`DaInJL~sp?gz^Dd5@T?C0&hlsZy^X#*wo5zcyHj_HtlND~YOl=>-oGdo?+fUCPQSbuS7KgM z=6y)|!28kZ5$lz+1Y8-CHos2#Ze|@_IoBSRc{ZP*qwDD8Kn5ygsdP3MZnWHmLXL_x z4riXY@9!Q9d2ln+wW|Jx9icVfdqnt2Mm$~ka$Wxe(Vu${6AemuV7e~&dFZvLNx6x1JejAWFGT-c?68UP5TLY=1%*5 zrU!_wESl%Z2}V2~KGz9P51Z%l(mVVjiM+M;08QM}VT|v5)zj-27&c9B()$*9-i;zS zm?xhr=y{gZ31Ybi<^2bI!Bbk5y2jos@i1tqL!V}eb8Fn|){3B5^A+&jLixNdk?#QI zLHyow`M!_dp`SBFz8mxozGTd8>!J<~v{P%8F&D?v8QWw}ufZ8C?#Mv@fDZce?Y{U} zDQ8M|Dftf&?^Ankcl^Z>J9(WQ9MIpcf2Xvi%RNMVxWr|UQ`N}5;gx$smwThcMLa(8 z>6@$rBf{*z8}?VuzDt$)i)8*&T;kr`C=}z{pDXUo&Cd_^;+0cm-mm-J$G6M8A5dNg zFAbD=_w~Dv|6JzXMtRXcpX?vbiEZFH=zl5Gw8E~+f#tb;e=Km$tKamnOmOEn0yc(r z;0~s_mxq}n&kaW}p+(M_TedYu-Wh>Lz`SFA_e&fbkb6IQ=tj%g|F9o$@B;2du-Eb= zt-*LijkwmT&AF_zrn<6_@4aEhez%etdyw+(miYD_xgWWnGx~I&gk3?z+D&w1WRj2X zX>ex^ZV8mYuO;%1dZ4A<%xQ~E9qQVF8p7_4z=~fU#I82rJeC8d_d4# zs8WX&e8kH{KRPtT3YyC{$l~QWgSmT$${|jQgYzzu<8#UJ4VU@n)7mbOcS*JMyinrI zoU_CpEs#1daeB{|-v-EUY4Y1XdUwe>?xi|@0U!QyZhj%>#!YkcAY$Fg_4yOc%|o)x zcP-z>v9{02`oB6;)W83@sDB&P|M7A0?V$Yjj{NpIeR~TrJIg|G^)q9e7RKJ8AASl)Y{aXEy=pW|buzZfr>h85GIUsz( zfv3$kf;;V$U@m+eqHo zn-4`hK84?Be{~bbkwv_(wbh8fH^|Izp6?uF`sw-EX{+o>Q;q$}AzI7ARW`R#Gu~99 z51J{_R}J8E;dfZXS5T=h9s~LizcL3ZZAOIhM^w=co?ZEKvt9WcJQ1~4)TQt}Q<|4! z0-b5P^b*rU_?7P-q)e6iv>162lg-bu=m>sYI73!3UKBWfl^wnZxO1?TA>Z9+ED(3( zPo-HYk$}Xx%>w5}ZZtn-oV)5|IG59LX81yjVy;l0If&!ZuM+-;a0V65%g%HuGGDFz z?9f$o=B>70oc0#mnY}RLE&B+|DBweQm^n-D_%vC`Mr@!oH7a7iNjX%0v3wrHI@gid z1z+^UF*eLirp!M^<{2RS9MPa_OL@-TXhjGgqFnW1;E7dymcl>gff0{Vf2l0t{$ko= z>>Ge%Nl)OoD40`MYPQt>S!L^zCV`ICEP@yKg#GOqsq7ne5AEIAGVN)Zwu{mhHUc(p z;5v}DN`8BXzM(HZ*$dr;atXg&qO|gS=y&b%v%k| znY^m^Os?fKS>(aJ4CX>rTUqAv2)8#GbCHI%baY3YyUtb3-^P)@SZO^Wy@k?q8!|ZfhU`L|tfBL)IQlZTc6>f|-#|B<(kA*oI#O?}NgwORcH3KXK;GC-6MCm)bW!X!|U{OmK{uA@zcfJRs~e zF)xSc*{9OFE27O2-@>=}GR7s4(+|<2`yrd>_Egv?EwfX<>xpkjSg)Lf^~#iMgmoF1 zuwLoNQ=1Hm9Vms{(#$1MS z?8$Rc*JLXjG*F1Xt7G7I+kwrD9~T}GcPf5)r-Jl{2|vQF8vXA)*jMk56YBjD z)tg)+dmRtf6Pp#J?kVQg0<^dW$;)r{f$8Tb~to5q(S^|5~@$NCYSiB~h7D9YC) zl)uXbU028g>+Qt0&v6Txi!%>@I>@^4eE#GS48sNzu#EZH)796vLrP!W2NeMycpl{y z@=x^juLpa2`*^wRFZw^K9~_5{iuqtY3)!zGIxo;C+>QAaHd-?;ymfEihT??B~>hBMwNs?2>(V_Ff}m(aSLq z|94W{eU0mX_kD4>OZdJBAl_0x+})9|hMxoPV9(zp_WS{*40UeoXWhhclf=45?(d58+QDYKaH9o#Kgf3(2VpHz+?H{=o7d!>!j3rVV0fl_wxey( z!18W?x`Z9}R;UQDaS8!*WQ12`K>YXk3Jo@5Oa0m3`!+S9FT)dbp z^hPl5#fSUW=P?JC(gZ9mMvUbeiL37kvk&?L`mgy$oPhgz_YMXHL zbG5kd%(i|8+e}Gc{Cif{_h=`~D`+RsP@tdw*e&E=@Hyy{us`$*AtM9bQt?I43AjDA zOVB6|4UfPn9&^gK}PQ zZjSoZiD%r8yL;H@2-fT_%J(??k9~sWB3HY_{Z+L~+`BpF&8^@mrED0olLE?*=hs~V zpE$NtKXi+GA>gG#YImW>WoeIjtU+@tttwXs+dZ#P7MgD+Wplr;KHkGJJ>tFXUKF+4`JqLY_ez+OFYJi_{&T?EFlp%WXT?q%E zJzu6eT)g%I)}N4co=46Z$^n=1ogl&17>Q4DK3C=_*0W!W{9XwsfRFNfyM;WO>Tjj* zU-$I2w*vVATm8pth)e}471xuP4R|99W+y*{>sGn}- z296_$v_}q#em_CD9D5YDJ@E1H49lCp4}1T=_(S9RwANm{54}d<-y`}w+rgI)&k}MG z$QW3@Aom*1nAg4(^W}>Q_``Th2+t2Lq&ai=(P*vhC;0IN#Jt}3dojMLG`@n&W=;!9 z7}5VA_S)~_Vh^OreVllXW=R|h9>F8ah2rojGMHf%uzNQ2Bnfs8&gqJuPH=cyL#a}MZ)(Fd;0c4{9dsS zZjOty*E#pkk$7!@!(+&O;QdClf#-WW#q*Ejg6`mRh4wPeIOspFru~;heNrWE*-mZ! z;X6?V=V~*}hjV^RX8Y(d<}!&3s-Sa7^=+au5h@cJ*)04R>k&_AWH`ws^+T3G<}77q zkg-1}&*k6JSv4v_-?!!q(MQLZ(abLd47p{V8T5W0%RO6raru^-?soLy>3jS3;!kM} zR?GRr`yF$-de_o9FP@e9rI#MZn4Yk=6bSp}3yuq3-E%05o*X0E z>P-hH&!hIwA$-SY>XUS)E~&I0={YFR)J5i39&x7LdraV9;9bDRta}9>UlCel-$m=- zZ4@w?ngF90%n>@HNE=Ddw^6=yUBs9MpMgCG9f%o9o%!Uw-SNDdI-$Q)D&o07h6b6% zl|#bjG6Q9q6{od&S%($u;`X5HW|Ta!;;m7qGIG z`T`op8<=k{YZtZ=ZArPQ!fy;~fUOw>gX_~3t4Pi@#<^0?HS`l&<@#mP+TBbrFNPp|CqFW(7&4T_Xq zzC`;1x?wie<)dh49{L)&)tI zcV?(duM)nU6(!7ZdHJqOlW`U(&#+SJ!@89CT57|mg-x{M_}PAe(zjB&zhC)0j}^yo54uo}|p*WtsH}W%PtH zubrgKT3KdiLYdNpGHoX*vr?A%JfX~pgfh>Zq|8ED#+%z$W+auVpmlK8pq$nqkG>c6 zTbmJ-UY;xbJ|MkV3v;~75=x&;>5l(}zy4Ul7xke)3ICel`=tUsyl%Q|)2&N58+J5a zNiaA|raS$8`sO}rM$DedfjX(g04xL?{?l$O+kb6%VQzucR}0Ej?$ zzxp+=O5K@~K~hhb@TeLTxD#=qnb!<8*r7|ib z>{F6BKjH<%^Px{IY@=a^{DntZ?9Mc-PYY7xE1Yz~k)4zdy=%{qRJI9*Zd~UO57)DY z>iIX-GfU?0qP$%>-d=q6UOs#wh;QxmZQGzeTxXt=8lU5|L-_wg`u_6isl10zCD_<| z-Wq%BseO9|v46j<=%)Ibdwpc2bK8CIDfvQ2+}GBFomwvISK3NJ7~qRCZy)9MU?@h27dTIgjvdeBji+{GbVb zN8@#L(0}jf$`uG*_|vJ}Z{%DAE=tATe_5XWY4UE{r!?4qm1(mod~u()+AdS( z+0!)vZaVB*!`YwQOqaDUxwSKQNtILTH~q`^*8u8%>UHH-44$Z;1DeQ@dv zDe)pY`~5P$z>PH5bEuA4vOY&%l_Gt0d)qEIVcXKibI);VV&~I**DDKnzVoQOSN$8u z4zD;pRmKf$uixkQ+gETRUfX<0A6{dh_Ias%ms&$}`)9cyFQhvDN_^m~kgyfRxY+Je`Y%6{ zC(nn)G+zYAUtRQFTvHY?te)ZEl~Y8X9NG^*ZA)=tf2QSNU%(C!KL4f8`=_Uh`8$Q$ zarE+=EkKAlG2L@pIB!lrC%-U zY(G`NLOpb+=zRmV@sRvxohsIJvHbQ5eS@xZ;@aiW+5tZ~>%5TYsXXF)AQLK}`O}~; zr!KOKwMBM`zR3Q2yocL^-qn~>`ucSi^{E!I;HiH`iip1qy5r_OS@92O%oPdeOabLZ zjNfyQLoaKEJ>v@DpA$NTGZN~|qI??d%Odp&yF{b^3%_H3kB(0FC!dSH;4Zj6p`2Hi zE2DZ3N_qK81%5)rS~j_r#ej_x2^&5M^KGY`XuDKSFkc{HzSS*!E}`Auw2O8j>pYOq z?xz>`=`*jVzI_B)I<>PorB60<3e5-b_B#4DyQZ0SG!_?#bvoh_xcgjrFK~=-zhh?s zns;nrt?j%!cM&Der&$j?PP|5h^@w7S*$kmIh)wTiST?up62br40qGpWd&Z>$*?#muG;F>~XX(po*o6H*+W(yXHBZ<+0{JEF zA<*diYB-O*o_@fCSLJua^?TS3-}DuR?HXOwckPg{Sy3wLDa#aP%jrL9K-l!YAj+0g z**R1;``oZuMP7sr}>3K%8 zU4C|krQg5CZazPQ<6pPEA?$j~lj%QNX>B`ophbMAT~p|{g0vR@@M-?%g;QtqOYT8_3r>N08)m@;^v(eWPv@h^4&amcOmtLFg)5EzA zE=8JKrs*-U7tUtgZegeFaeN%fyMkI*pM6qudk_1O!=BkVM!+QB8~>y`K0VS*XMe<+ zNpoJ3CiV>0>94=|TEyOS^j2ui0<aN=D(HNnzNB;VR?_Xe(*q!MeH@|&B>d>c22RM zVS4i==?v4juL)XV`@KJf&9Q`E5bJ7YHoM8%$ zEBJ=UBG5_C`1ODOn%3nN^krnt4%T^x9hP6t>3OXGE$HGB)`!4-^^LK!;Scq1Y1UD~ z0ecBo;_OP-*>AQLUwN3@_&L?Pws4I-Me>lq+tbE&$BXDp`Ih?KoVf;Z1!K!s9gh2F zh5313b~DQ|&sZhuxRL5m+8X%It;kEbANX@vv;7{?t;O|KNz0%!d3Gpl&mCo09wivNoYE#IoZZ7O>W*JZ_0%M!6;s*( zN<$g&{wN1}a}MF9z_FhEGfwgiwCF(kHuNOlX3;l|+HFf{BZJyF^%(1!#HP{zLK+8X z4UAz7jUm?E(?0pObG=r#H`DvGx37!BkI4*53)AzA{JwgRmUs8s z*j*v*?|`3<6n66YIsGSdv8XP^}fV;PORB64-r0#1kI<8_vFLhXvc$J z#{-cC_8U|N@5!^jj&D9LeDS){gOLAS?AUO?KOOqnb;>~QC*}eD1bzC3?B`6Hzeqwq z7nKW|Yud*>@p@_h=9P5Z)(gP1EaZLl-m#vQ_@>Hlzoc?n%?kT{f~7ffuIf)Y%56|T z7>A&bPiKkywkq16A0Uox{)sgDom9`qlBUipNU=VUa*^ymq(~kfa>>S%#$UbcT@C(xHartbwc%kA4KePKdB#+D2G%Qksht^Epo*Q(0} ztV$e>b9NLxuaI_x&(ZntT3L7eq2prCj>$PF9yY`-qx$|p>1_$Jp7SWJxX%Y*K5!dw z*q<(hUrnOnR>H4lvpx1I_|+6={jn8?Y3~TWx`lX<)}!8d6Vt?kMquA@@DDXK%;(9=i_xBWW|dm9{u78QFm!V-8R+zH_Gq$w1!WOs-k9o9!W5QSm`rlT@_Rp_yAqL zm(%-N#B;eq#%T?OOjnJ#>x5rD!;>8^M;r+FEpG&USZkIOPAUnkqdBdDKS8!}1|Ijr zx4tHQmj{~p`!~|Z4emj^u6XUh3U4;sPr{!_v(jh_AK+5<(9;udCYk_uWF;=)|D!zc z+5yC~{7?N`|3CCE=l`L9HUD4s&#~?I;qEOc?lj@Arcw3}GQ|FUOXf3J#3Ml868qIf z{YsH{aGj%HJ8%v4OO-KqntOeXDrtu7lUMc$HmV=OzmXC!tyzcL6Xn(cEh79=S0nyf zll{znLVgW@QvT{N%g@TBzcwHGsfSJaasPDsZwq>@=D>V=&^V%Fyh>bE#5drao6{Bc zPmMj2|7}*hKyR`0v^ujOP{(P0C44{$)UwaC2ajg8!)G_<8NQ%OSnf8?DyF^E99U|% zDPC(3jm1axz;~mo1Uiq+wz~p%p#d6eh{ivc_=;xY$paSdB~kxy#MzKG^sw1jA@4vm z89S(1ue0HU3A`eWQ|RTeZSLhK*ybYLu^VLH!m|#?oj#2{n$_!P6n4SCq4{^d?WJ$c zQa{+COJNtbLa)nZ+b`C|tK;_fNZx$}&D&1-{0`0OI|=^Oebof(K@ofRxH~&uth29_ znAAJYZ++msd>omksk+HYn=WMN#ZkdG9TGLaWbJM1Am=lFzYvX*xL4o`oKsaBme~u3i~AG!S}iwP?I7i0yJMrlu86kUu;KpM zvyerG*`IKj@PHGS7xJ#}0Q1IhjyoHUHnJ~Q__w7qFs4v_UcKH#T?aG1j3aKWw{!JA z8$NHTpC8`aCGai#q-qrXq&~apT$myFft7i*_bcEhjNrKfdTR2{6F&J7+wI6bVm$CA z2i$jM2>#B(9M`p2UuKtaoUJB1hhPZrnD;z_>k{Zu5^tBGd(2bhyNBLA^nNP6SJ3;8 zGGl)}Jttp8beg)_Mhs)G!nzR_;ujAm9&el)-|sW(%qCZ%QJ@Jqj;gW@#wra_y-J-4 z`33Y?^yp^WTis&&X%D!o=No>SOK&y(Ad52S7pS+_Hj22%7$e(4I&qe3M7(3nkB82n zSb1k0zJip=EANzuqN_4<5s3}UTu9Lgzlp1SM+^%wpMu^wI}8*&X3IKV1kpTzLb6eWJF(H?pp?YW`T4EM-dqkb6CvHCP4 zW55IpenU^EfA+=4{+uQQ_MU1s+{-vj;z;Wg*v`BywDX)a z3-m>aBJ^G0tMvJ49r5+_9pBg&H+@68cV$gjr1R_v_cnnSq?lo7&bM6ziotviwGW1XZ$PZFUHG=of9CQ;hC=Zm=Qv6 z0OeX$$)8I9v3rgk>eb;&m1ia4A@if|o_IL0pqCa)`$p*A`KAA^3Zln;bgwu=uD-XA zK2j(j@cR*|TTw)FnHOw?zH97};Tw65!OM@T-bg$<(Kn6op}NfG7}S*RR~t-~`WL!v zpp`@Yg})L-`ZUR-UjhAQ)13MpI}^fHe0IZLe-6=yH37>#ljwu$faMF;nS|5LQEi)` zx7J>yKViGmg+1@@j%86D@bl2bbO`(`oG0V?I(1^sB1(4L7hzvI&?#hDtxvfzHkAEF zt~}tSb07JYn#F{Z=_lzAFRjJRF6cDgXc-)Hbv4W5M`@cZKhA7*9=CyW0b~9NjS2i+ zk>f8wTWychH?r;%`;U@+a`NBA`3=j-e>t_ah3QD~eFA;=(D!z^4w!dcf7i}IoOjwA zh+{n*{(pmr4+vk$&GwPuuq~joSiRjyQbGpc=oe4p46ic)A33ruZ?xH7KWrf9)$}Dc z^7^TaLHX}KN&W}h-nDmA-48|HwI8T?*PdPduKml#ckN$<-nG%b*J!rykG^Z8zFE}A z^jQmHsW}T{Y18M&Xe_q3ror}AH*h-xsU3xA3-oQmN!oJgf`SnI=1+#7yFH~;C;KlI zJ|pwd&M#}`nqIZV-dhB_@sQ!EhFoB}u^V>*@{G6y^#{U+Liiu><3n7V;eHF{PzL!q zE|va`tv?NY-$^kizh6VoI9?Pcvl|4ZEU-hUWj+a*hUq<_(rk3_XE#Z^q1I}JpQ*)T> zNg~?SiTD1^w};}uBNyEx@W_St^x=_%UuE_BSj`(K^?!F{^?v`9zJD!Y+eLIuxVn*f zBj|7ehkbHf#CQ_%$s=>eBW6oho9&Ar1xmr9)iXq8g%orH-_pc+H~V zYHD{i@4sTAEwSec*q@x(vyVLmyMvH{GN>EnEynzanCx#s=s{c9GtY`zWsk+hWCr(>fMW`;NXBWG8R@q>FuM!Cne|3)B3d zZ#wn8C<-3EnfIvQH&X!7t8@F{fY9Q9}KX%lh}zJN$xR ztW)Gzxh@*t$?D5X7$bbabzULiJ}BTGzF~1T750Psu?+Wh4EHa8^?kT6=!N^1lf!*= zq}HR)Ypka}mIK#R?`Q#B0sebopKx<=HNmNbf55y0|A2W-!vFqASKP0h$#8@{I+^-f zP$Sk0Fr}RU&p$CzXb$#7fX@~%JQq;AC|8GaC%|*d{|wJWKjeOJB#YyYqt1tZewgSx zf-Astt$^q31bD_g`^KbMnWL#+I6Fh*gnlUX5wywmz=4e`?42^UoFZjTprz7iy`MW* z@X0Ac9|6AnW513dwtK+z37y52z;ijcV`e-%K8AR)1+qT{rE8?`iWWQhG(o#1Qys(a z6L+N@L|YUn^X;)``nV08UrsxZey^R$mc{v(+1u{g_Va}H;ENx19l0RcTBnQgbDgI_M=uiVzV~aXw>Uo+u_6D?K8BXrzd^rr z$am(mJZQ=X2jl(c_C@fZL^oo7;SX`fPu4|u($Defr_ov0O!X8b=&Lr;JMRA3hu=M4 zx9{wYvC?EOqW3B~`vQ{x4G^sbnMq&T<-KXe+7dfZF2*!gpKH5D&a+$>))MVK*AC0r zNmcaRzb?=v#R)Pk@D|&T2tDMK^ z-wxdpiH%p{`|CF>BwW#IE75wRi2fgm)|;cE+bp+MZwzGn!n+Ms3!kql;WJX`EcfU$ z4e%`RCx|}0h(17n5<1V2n;j9cYC%J!&^h%LeEHM=m(q74bVZ8QMmr3@>`Es4LBKx4 zT`c&0=T5#rZ8kCgBW2v8ZQWUH^TT$Wfo6{LHab9jX&~ZRay+Y7CWUhye3&BT7jDSU zY3^Pq>tuc7SGpk^Uj7;3=U9NoD)?q)rG&-Uuc$7+Jfr;ja@!YOU#R{!r;W!`s$mCsjXcU|#OOyDNSr;ZCf- zPus$G@gF#X>W{B`>T6BwD0$+~C4*N=) z?+jz0IWSruLppH3LTi^UpUYT|)@r{R-4aU*Ji1>A&^g#R--f@i&9_EkdC~dyKKTVc;F3zGSvd0%4X7ZYTJE^65iy zuQuPn-ur@Sy@^)c)cLB2=QoJ?po(V>#o?#cSN%hd0}7t8t5(D|!oPE$0(uYU9B4i- z!K9A36UvwSU;b9a5dAUL*(al&#CEiPDZ3a0IqD7a{)6zxbhaaDv2VXi@bBf0zHbfj zjYHC`-Nd68)P(jqy!+p7>4+D|biNOiynF79j`)u*j&Qx8ZI_)#yf@W*-CfXy55}O2 zJxuacg@Yoor+S2s?`%bRrIL91wQnXfFRvFRvA$X4;$)%Qg;)^8%R?448F5{x?jZ5- z-yQ`ozOa{GKkLgZ-UHa1z-f2hE$HW;+}%e%pZ;av{!I_k+(O4TDERUNlAgY3dmlZW z^`(eyjr`c(kR1a5c?sWn2}iom1U&&f5*bE#=wisbuuq|z{PdWn{W!beH;d!JB>Fr} z@TKYx%w_!Olm$(PeqZ;ZkU_x44EBEq<++RVb^u_xajyAD!zRm-35=@V%JKl<13%sot-Z}G;7j<0QjrLav zox6TzZn{Oppm54K=@V}ed_UHk<-l}KYSpW4>>-Z3!g28?aqNWgdVD|RGKiD+$R9RZ zu4`^HM@8PW&KQI zk@|cF;b>R>ZKlPzCBp6dMj#H~xES+;)!=VMyaYv#8-A7Ur1K$-^7-{KoHrSIWiDl< zhthodSWf#nY+X1{CBGxqD#M`CU_P>XlQl~JC)1gJt;HmK-%Do}!JifGacQj{x=r+d zIdrKK>?X0M$B3VXtq<*^7p^0G!1XD0rjLC`j5bfXOO%Cu9cbfX+Dm|SjrGV^+t8!m zcsPsoa6rG7$ymw*UCJw{|HyY)LS7}$*jJBbu?!0L%t5JtiMhX)o}udqyM~;`276T7 zKP@!~ISb8Kqrm?~h$%og>=D|>qqL3i0c+sy$sJl~c=V|nFa4;~Zvv*xg%H-3vb3-!&} z&*^)rGC77h>*jWvp<5IK4VFqc2V->6c{f1=-4$ZG3v^Zy;fTb!@+h~&+yvtu{q9B= z)kplq;sKIg1}v?k@nZd*I4%whtdR4AJKj-^|71M_VUPO+e{YoE|3ULMAYl&D=uC2- zbGeztw(jF&3y22qxuwp;Ih8@@c+V}b)Bo$%8Fxft^IehHpMOf{U}Mmvv)8j0G3#lJ zUv~?5swdbij)YCfB+r!dbTiG9mu)17-<#hS%c~J_s}$muA1z&A;9PgLJ!;~-81vL2 z;(sUey=0!$?f%Ei!*L(>gVZlzT95uAGY8FCO}{*>QxN)aSu78oNppmAF)Z)MaYy(A z>SN+sUx@Xqc5v_{5tj&dGX&qD=Oz%&2o(~YLhD1ktWi`g;sbs4ov7QXD>(r-{Dk_= zGV9eFEvy0bBm3|9a}=@Xfg7;ze>qL8%M;-BgM@S46FF9QLECEEsT=SIItBBgMONE^ z>PWU;9r3(rz45ayj(NfTr1wqq4!D6|2H@}E>_>04ohi$m&F>9np}X;b|B$ekCm4O|v!0$; z7#@UZQ`IdmnhbFzrJ+>W`2zgJI)`Ymn4FOm3>_`7`YG2Un-R-~@5 z)1cp{yh^;&JfhQq^BYX*2Y2r@-eKMnSuL30F~?YArZ*0zdDtI4i4Dk95l_+?0kPDxv&G*!7N zmf996bg#`f3)&j&^MTK!#JfftxL(){6bQc#mPWL7Nb1}MXy5uHwFbu~*B6_Bg))vm z3E5q(kwiGO47Lbu&33wm_wljEiPlQeerCATdHlVEzQeu)eD@D%E^lh1IdnZ{c!Q00 z4z-a^bRo_b(DJN9Mty4jX;&PwvH-_gd!5Q&ZWgI^?3W&G<18V1!EjTXfESG4Py90c zh~q9f4|ES~SqbMPjtgVKxSX*Bq;AifxVzC1Cq#^a&X$$cy6}wz+77e{&aG(#*A>bC`o9$;)8u z6KU+e8X9w6GM!PoZN-RK>r{^YVk$&u6cb*`Q{N?8<#pSw?zS^jm+4YNu{3%w#(g=_ z?CJ8kjGjTmzpB0-!`!7;*Y4LLXE*BXGI}pDR@>1bG)MHVHP+chkvhB6^?EE%uVWpT za{34SVJ$GffIrBN|0d%#eZuk}5nBgvgxCnUzaOZ-PB>54(>%_8@5D3l%lR7Bm7%?E zV_q@81E5DpIM0z|VBa5J(9t{3GbEq?HQ~}n=s!u7rR1q{jSV zE+_w_D~|rB6Q54!Qei6n6TT~iUr5N8F_r+W`GZnlFN6B)=t8Wb`YNKtN4{QQj?p98 z^ey*CG6u}pnq~F@$WxT%c4)x>t6(nHB}#p6w1QM=g3*n=Lu+CUr?mwKDwBb-gVNS#ZY7jo;j8Q4#tX)2(T z6S~5zSLd71@xWOLoZQ!MvzT=!Hd&1OX)ZCR&RQ&_d}HLkz5(k*IPb#*{h-s2_vr_ndR*L>Lq-;^Sz<#@ zRvB1sn+LOmE-r8m?Rns;G3o;II{1UCUT)_Fm)mFF(Z)KOtaDjfCwQYkn0ce_)raT| zpCovrps-DteW&oF@xYyZGQ8mjzkdf_`BtCI?u>)t4jl9C+X$=<_!R9+bW|t_xL!GXu z@ZX7gVP{YTpV+dkK;}}G9p3qaZoV_veGR1}77@Yj-x?0H?}rf0%es2VFU8%=cNcdH z9R>J@;MhvSpZC_%?RFdAH3BRWyTY6fKZ%XO0qiRganU@%0L$B;3x@b;YfBf{ zQEdTq9citz%@XN%$BCDAF5g=;b6dC*aANm-NoxeT==RbNxNYb>Y%To2ZsRy-SuF2F zUxvZgm{w~ieseqhJPY)DtrKH5uUx;L{UJmDA9-h}a*PROles?;tC{-UNWXge0S=(! z3wTAn9(ArYL#?$T)4hxOh&YN{Gq>C83ma|B9qwfi&vAWW$aeYyIb!0x;%=&c8TEfC zgE&)~HrFiCH`qI)A#*o<->rpgEjpL@in%P~+@>{h40@Ia=}TE}`8%8s1e<(E#P?P3 zA-RNp^X#qM{shXqBx$Q2O5%GnqKBh2w>eT58T$xuz6W=-bY9KS(^+<2{--p)vs{01 zD!-3?B8_Fj;fgeV-?~1TeNZ%y9Ki41$I@AbT<}1O1>LN+pVNMbR9Xd_Qmg=-Ei*lk z?XR}y4E9@-8Y`_=e~@a8fqxH5Th~@;O$yPkhU$rg?Faru^hIOXE~K+ZX(M=CmuC4W zz2escE$Fibm!w!Zp|IV#FvZHN3EMmG^;u(C?y=gQR9(q;0h4HNPlDZ(MnBX~eL=fU zJ4Mj7jk0c`t*eMZAGRxTKS1qOQCm}}ooZ@hdX3O|$6e_IqiRi-v&ef>;-PYV@|pOj zT)%t{B8G~5uA*m0mx^s5^tq;^ldnRaN^@U36+Y~Q&lrwh#-R)$LZkns29U})d_S~%ub8xG9Aqa&_LU2q>{5+$ASt@2JaDYMqtt-VdW8qpKl zQbW<7F~6pAmegHBKXm#AUaW8k{B@3_eWxbTx#QldDM>1Ho28!pL&_}cK4li)E$03z zV7^)%GLxh(&7x-EpZ2zIge;Kbh!ULMyj-Ls9`!H3&Jud&#QOoqfd6_m7&5)pgv&F- z#+bld=I^6l<4#lH4)>cxbL(y^g?Mt0?lLkZ9Spi^Yw7M2@mGGKd9J#_QdFV0iN3hl zCm?i}l|APV?1;OnCz&?w8Qjb8ea`6D4&3lfR(l@dL*NkFBbm7aLndS~?sFp6dkOX< z=qt*sp#E(w+(~=5nQ@D!cVELdZ!M>nYgKkY#ul0(_qj)RGfhutem?T7FNA#wa07e` zI5?}X-ocXZ2mS@lJ?|UDvd*y|z9nM4mDw3@3lQHFfJ{Vbhrje}8H>lk!I}RD4hFoS z-=lfXYHdsM?731mwML##_`gf$FYld;u(`fR_$sZU`B*RRY%KKu9D>g%tpW7X+rYnS zZWFPe(iP=m-UBpGxW7W%s#a^d3+Ec%DB&wAi+oNQ>gPGgAD}(sb>^7xB)#(-1>hH0 z&Mo`LBN+RXV9e=b?X6Ptcmuj%VQA zkP?un~yt_gXnYr|sj($=G~MaJ$ce;fndm85@Q ze9_bMJifn9v@>E-d6d-$?)f^a?@sM;aSsYS^Zv;0`0Nplc0tiV>qEAA!TnQ&ZS9^} z-o^4i@Mzm8pYL8e^Qt4UjGDnFbZk?F-h$!CA{?7A}Ww-}Nyiw9rV4RO9aKO`me70ofYg2h%_F*`YVV zcYV~4-%_8ta?|+C+$a4a!KY{LufpcOrO?+AvO&kcr=m`MQ3*y~@~RE%+&98bVjQiB zlI9!H%=-hdq=KfTv)84JHnEQDhJ;}=o&U!vUF;{6@hPp#pNgbH$b4M4`tB^Uv z*T0MYze$L3o;Py44fx3`+-~RI5;DhR33^YVx%UyRmsc3I9eOK=_J3YB+#rb*(HEWU%w8@7}33w#BgOW(+5`!IZE(BATmg#C}w?%+oFUCqnh zX(Nv^lw#mV)yw+;HfndD(cQOiz^foWHhr6MhVW7LCHvLy``#58v;pTT&WZJN8(9W{^A+cW zuPzefc*cu-rgK)fmC3QRe)M|se>f{VXM4=UuuTsvV4s)&K0;?-<_Grr(&cuWww&Qa zr}bM;^mO9dc@xg9xrDFUh|fcR(1(+?L+7#2lbX%{iT(Ogp4HCzjMxr<&kWe|5N+dC zmIyi_O)(Sg^J=7CHuSaq)s1{F5R$PkO0?~4BM$up&{`s9>>wL*Y*%WQ1v^~Ai}@AG zF1s9dl8R!CFS7Qh5xtYVp>==7M&OnLKHHN^J!T&4l5jTagKSkkyGu7&NG~TkFcYxh zsx_bw?$$TO+*)m{m}qs>AR&3G}GvG?to?ju22F^&_nmZ zHUoAUu+M;P26QUQ)hkTUi%OtRXWXl0+pVq@_Epz|C!EN*4{&!_&TEarHqe$YNM|XX z+wMZb{}UrIH=S2GS46~pYbj*%OPCJKVLxe&b~5cO5 zy_pc_7iSW97kxxG%kvZ&Lm0m29$G8zJt`ID7070%>zA8(!q#nZ?Wjd2cp{w3?Ozg& z5m{}|9`OX<=cdU!po)1tb15B?Fl=nEyD2#z4HDVcg4W*E1`d&+{Cg} zoKY!Cl~vQ$^C@IJ&>i#98g{aN*Nw4Ln4WsVo=)r5n&vll4EI`-)pTo`Hrm47-_pH-b&+50*!$B za|4Dofa*QWbN+-KmEV1ohBK){o=rp>v_}E^)HdjAhc`y-O*$7muCpWAUP=GDE^_gm zo0sG0Hi}rjMCV0_zRF{H@OYN7;Jv7{5xg18i{Zoj`+WDj|C8^QWiwNxOuXfoh}{8w z%%$)}PqZKWhwGyoS>LH*L!&)2Fvct!9kR=!m1bZ=i0Qor$K<^w;a-fDV^PB%NRKp? zm4;dZ^eZX-3(+!7R33gkuaC{F{vpej*uJin_Htvua@R*JEfl~Swa=`6$woft_aZN3 zB{iDxA>+k)M|gH-Bk&FJtCSvbwb<8AIvg)6Y++qvFU=!l+_(=*BK%Qax}MuFqSDB3UM_9t`uWwQP9e(jeLuUt-jD5CUdsr}*9e&8hSmz1_3)`Hm6 zgcD_K#XKiQ1AH5oQy!nR-3INI2s5xt#+?G5wbDi>R#<+tk8g7o(ApoMe7N&;U?Nqn z>yTr8G0IU_2=YvVp~*cxLPwTpPuLH1T_i7=i z7!l*G;y^9@;N~l^XP5F&<~xW!cgkNX^Fq(dNBN;YTuuL;sL-KDnZr^?)EBAC#ktO~ z9~5$nAvA8pnN{?98{_g3o+o-HmP&a3?Vg^+FK6$HRcO0drv&E>WR)e#>-M>H7B&@b z+Fzl)ZV%UAw~2>wZ3_&--b&N;T{iAzi>3M*UyP$Bs-Szluc`Pru?zIC;p&KB__6GA56Jx}Wr@j2r zuGq`Nb`Xvn4|qB!4KgwM_7=YNrC*GB#2opgj{)dHu4h~YKXY|7#+F=~Tl&@JuKN!- zN|QLsoq(g<2{`K61RV8jKOBX3z~g_zQQH3lj`B%Zp7|Y(K|bI4o%HcQa9yFjYYQ9x zB^=|N*SflveK3^h@3PN2P3lwrxw|L64KgYX{(@!3`E9bx&1(AVs2r1FCHx1g(% z+8b{o604K>T{R0p%U_&A{0sKN=d?zkF`zp^^Kr4usY{M`Trj>L^}BAo-DDn^_LyIV zZ8iL!C@aAeCzaOQ=m7~$VW4_K_XT1_z32z{gm+tmg=kaum3?Vp#h4YXgM+p8Dq(Iya&a4PVWz_vf+cZLjRD~ttvL8bR)s#Th#w%8*!O@!DhQWG{*GN zxbKY^R!T_dNO+VfF~pq*?C2U|d1kTf4)VgA*$;CTd}5yR(My5_Y7zdoO3>rqw2!F!Zrnvb)d22D!+oluI{ zW)rNrits6#UL$q3p{qb+NM^nBWg?al?&*~e?d>jOzoXk%p?@ImvFI$R(BJ6Q6?L&L zVuO93@(cF=?ZjO7vTbWK%jkhC%GI3Qa@9@eQ}Y4Po;V|bcf=i2m~|Rp3ou-Ji_0iA zE0{L8O2+jn*T=G5yDzwcWpe?w)rO86(-+YO#M9zEfO#K-Sj4pVT3t`re(3npdFrV; z97oJ|=%is?RuIgL&pXJmI{!tmH9jY{AM>@1;H^x};kg99rtx_&HjEMezmX4o5bXCR z*RAwf+n66a7QK@*3(V`kf^EolgDS z@qQNf`wuw#2o{D!jO^!Gw^S$ z4!6-6yWS3dvj!$4WBGGK5guu zLjCq@J7})Qv(Izz`FoW*6KA!vXACN1un#KSi3++LZF#lTZ2#zz=j1x(EpN0gAlTVV zG@FZf4V8Ee_Z-4)H34gHb)5-+ubYX!+Z!Mno^V<*)9cN44q|e_KUmus;(5_-t(~Li z*b4C;9_0oRhoA;`aGUMCh?n)4lO!CkI^GjUUgQJ47!~va`%D1s;P{sU?Lc@vA9RUB zvw?30t#D|FkdOG@JjirJ6P;;JAK#}k7|)OqoA;ydj%}7Bw~WA6NBWw0iORtbX5#$N zIi0^(M_m(eFP0C#0lR5VG0z5UbXCmhT(-qGv^p+F>uB$$-}BIQKzteE1N_=1p7%&k zAFr{ntB=2!2p&hKZ-bvDImYtPYd**YaA)RbeI$_%z5u?h{J0~bGXwe!h&c$@!1)dT z&X5W0gFYScBpx-A>6C?xU?-*Tl(bMP={M4Q$VzGz9UGhjQ7d^yT$``6>@jpAs72|G{VDj%g!LEP_qh%Ve9AJC6yo62&m@z!|B?}4AGj?}sj z1CK^(O{X0EIMfeaV-M0B%omj}V=nbD@LjA;-BkKwbVsRQ3F(SDRezD*!CM0c{ygHN zm~*}cU8mZ+rA!C@fNmJp&A7HLb4m<)cz&vDAm4pzBO{lg^QIQs~?m z!1nv&tY5Ky^J*TmUke#t_SYfw)Lv8$vk%AnK~u0T$wbiFi_sSPzO`_T4SupMvoiMo zI*w}4BUI1lI?-0Ji-Fw;`d+iZSS@K(ht|-D-!4&wAGl%#c6AETgpGn%7k;f`!$C*U zd>2RRO~kiHnQ}#xIaz+-Cr^aVk?6{Oi(w-n{K4@afG$pv3Vvc7_Zd8zPkWEQGoP+b zGu@iY$U5)mu_4+t^Iomv(|NQGFOJ+1!#uvIHWHqkYrLq3VoGGCZBzYNv#4CNFNPu( z#Y%f1Vypd^wuKI@@TooEzqG5v#~Q)*t0Q*AUQ}CU+x0Oex|034Cbs=fLfgz6CCu}% zJJ&@WzaUBadv+D=Kge`J|6|QqPpWN+Ju|Yx###6|^>y)65!a(HL|ovPRN9;KXfK_| z_uhSclTQPluQOfMm5if^<}?tO2ENyo(q=pF9wE>0Xd#toz@!DVCsVarw?;TNMce3c zYd8a9)E3Y)1ROR^RpgrHFgv_5G>xlzS-=?|B4;VB? z!HeA6)x-MqUgk>{+9KxhYWw-pwpdP(@I}oAYb@cEVr_w$);Q1b(;PyNuA-*F4zxAc zW2zhMl28Ng(zA)@_Ef^x1D!Xn#;eUF=_4O8r&6U|cJa+!@nV`M@H9EpPG_juE+)L~ zo!U%o-DbeXJ)QRFL>l++3lYO5-ArqH)bL4}^YNoSY-3CCyb}7tsWf*c?X!{);m6== z`&1emWG^Xts+lBYD2vff+pu?IStBE{VdZTsk9PXwrT&1PPpNU4fR{YlBbDq+{Cdbp zYK5-MYWvl!9cU;2xfg_u7;IPJ7hR!w7)$lflX08=4PTF$%{&KX@L580(3brk(XXr7 z4-9ly!K2-ycYIn78Gd7f4P8;_%a+SKSkN$?k!JQG?Og&pf0~DYxX;D>{5secI~_5) zG;ueaCjHm`<*4xU0v;Lqso=NuMxi&H7g=pXhxi5Pa@Nq=6OIYAt)}%O{z=XqVzyMM zD`?MVS~t-+JgPx+G}mxza}7oPsp%qkg-xnSgJb$O`v(w)?=xEaX7f@Rs!mmEU zCn+_)d9)65U!=7~zC41zJWcpv!8lTMw}~-k(t4vVjI$uxHvn%ykiXUHmu* zj|2T6@Hjcd<7kmSK1UFAiaERv@L%=+hr54|kD|K&$MM-q zk|iuKxnYb^CJ;5%s1t~lYATCHrJB~|B2dK|EAN(8+D1i-73(J10760+5-xI)wc6HN z+eSsDsC9v$sL&#yQbjvE!y(90K(sbh!v0>**Ey3c)b`W&=kxvR_s2eF=ggTi=khwQ z^SZx2cX^$gPU3Zt)2N)jS6bH3@4&XZysCxDS_JZAqm63Xw{CxTxqMC4Cgy8;ekN_! zIA=v#`ZOXRCGgc1JyO1kXWOX_htKySq2xC?ffAg4;a$`G|Q*UQY0tP3JS~LN+cHM-8;Oy4zzY zT?o<31F5eUDc#2p6fHc%)qNzI?e9RYir4^%d#hq)LN>{~InhEcJSzgiHxa}fQXi%{$kVGu z+Otp(`O>dZ<(f%l;H!u)!Pv94h=nod5H8Ym)nig zjaaa-EnxdOTDvQTwQx*o1HSD9UqM<&1OAAx1)x4d&H$Ma))4Xq@Q*>W^InJ6O;pe@V%F>u!E<$ODWAW$qQohfSL65o0=GFP4iqg|Jt|9z`Fa z+j0As$M|R>+h=(sZ>Zjtdl}_#e=cpwaGuRO)F1z(2DBr~bT>2LFBD>qiX$NHBU9`F&X`uGUQtUZXkKz)fX z_F2V^t3=`Ag(3hxj`)u2#w@f;iB15WSW5JY|BhASD7_yDE$sXRpE%hkS_d<3>{%u|0e`7p;ZM@-Xs0)1o~JGSAK^ZycT zMI(?8%qM)>A@CjSU5?;Pl)Nt}wzPXF45|aUSp6yUe--B_pfmmp=6yQN#cZ038TGJdgl)Lx_#@8<_@nLSn6(pZ*e7Ss zE8Gf$bySJelYV^@jI@pk!9^v-z-~* zcIgb5OZ##a+fA%w`=5An%0JSno#G25U5g$Ph5#JP&bg{WfbGz5f-IQ@=oi2SV*)YiJ?+F(K~IR+GNV^3)rWkdymD zl79(?qxPo^&y$@UCkRK;`=IN#pGcQrT@0G@*H6fGab>GbA49gfO379i3K!pPruTcO zyb^o?(L04~k28(V{wr*J|AiBXp%0ynb}*=7#ohyXX=oMmN`(gOawhlH|NRNM?&zbR z?X@8ny&(zt;)^|!?ncZc_t{+HeNt+kQ1*))@ z|I&fe{y}^s#zT7m@>KXPLO#p-)0o$K7&(5lh4$Ih_A=!C(h7vMQHM@w4adou9r1~r zO{KQh)Cd`@m=l?A6MrMFhm8XBOw*ii(;lBTKh+KSrJtS!h<>Y}JsqU0pRQ9Ai$#EF z%c+S*q2s(#F<*(d_v|xPWmOo_tZne&z+R?xXdw7~n)=f~?_te|F0~uz-8!b%7W3Y@ z%Cvl!n^r-P_8tez!osr`D;I)~WH|!0-nd z?{s9mV-f8igY1yz24nPiiu=Y0eT$jE7)zb25;VqyRp9j&6RixN^Z6nHSjL=grTM07 zfXb#u7ULPu?|LUwVx{=DUeqL`W+Ag}5zC&#kJx=YT z-K!JC&r{ou(%Z3pw9!=1Wh9EAHxRx3`jbq(fhRYg&!ERqrfhB=HzSA*_iosui`k0T z={mDFwY5sdWlg}J5jMWkZiDd2ZvGD%33gDRv%1VK_La<4x<2V+BK=WZU!0@LU&ZzD zaohQuiZ!vmw_nfG(~~~vRX70mkzf=?yCaJgInjc;j70@oU#zi; z_qajN@v;xbzT<~e`p6E(Ij>RQn|~H%y7=x7^SK;w@Drk)XTh&%XU4kNNR5#0y*<4q__Oz2oV;&PI#|$Qoepuh%cMvu|y({NZKFX1mDA zS+>PFFZP;qUVIC5(7B-T0mqjT&xG7(c?G-aoXK-00XL~CKs^mOY-C)fXkW0kKFlc^nCcYH3dcM*>@i{P@D z`n5iPr}T%QabBXw3r6X2AI3top6&WL1YjG1b~AjQav@U+$DMQDC*Fea?xgWiK2L6= zzK5%5y^RRVd5_bY$7#IqYigT(gyjT<8S$nc`Y@mSRC_GVF_WwV`6;5^4(?O)_XCyV z`Davbh_dUoE*t2~@&=s(g6F?$khQe4&AvO&zfj}8h}!%)$6;RsfAiF1Du48x4>_Kq z6V{IKH#gHa12hLi4ER?}VBCtl(-^a%H`$&l*!s(H!-qt{r1byDiqJl87JW9vM884q zIY)i>dBWWzmCadWk+eCxXVc--V#Uui|2|@uE4f?IA0r&2>mKTlj(Ft55ujUW zSxjp`MjL8B2%3Jl^o^X0eNgZg*G0c>Q88O#Yb5oZLy30H<{aZ;&r&fd4?J_2X`qn4 z(V3Ljf_!Sea9&FmYy%DuT?ZYrKQxqMYU=sKPhYW=?HGoH{PrTiJALmDM_O$E9Sbc_ zsMapF+E~tf&Wd=R7PEYX7VK4KIlwtMJAik(^cK66cSFbOPs8$f(Abc5v?x_`u5#hR?*T$87<%m6t|Fvq9Eb}0e7uQoAx@8J|| zj1cETv)Vb<2kRuP9DaVF%=?~YJlOiN@-QG4gohsf8TM(k9^4}7H5ldMWCfD#JIAO`1Vdk>kT=cPW_hkic&s%(Od~F!Uuc;rf$%wQsWS4C~$J_e}Vx`2qO-Y?Si% zrVh?QF(eYObBJ&Bm>ajaephs6?h3}*wrKHPM2EM%1$&i!OFBeuJYH~KJnoBi=cj<{ z;bQ@N8{*x3moeN-2@K)yWt)&?_aVUsjy+zf#46d-FR)Re^-j0er4Z zw+15Krk=+z0{xoSK(J81Tx9FFTAH+j+K^4S@Is!VkkB zm_d9rP0p*YZ%#*c2p1n30U2KlF#YIzhf^+{p>h1fh}A{=y1n;s3b{)(>U&?mzdbjp zQNMR6yA-y8G#0aMDsUmrw!v&4xVW!RrAqdOeYe^Z6V+7Ty!KdXg$FpT1X^gi*HsU14!f^oK)Q6cTkWn531lhkUDe71w1g_C&a zF8-E`;k|l1{Jg{b&JR#d_i;~ujPe;&_Lyn|`P$t!zD?yv4O#vemm?M)aC4zJq<3&V zPhLFv3DHu}uUBu3F)zZg?=9r1YU4Q4HHh1w`f@ZJ6*o<#v5%KFux8|?1ED`py!Y5Hbp6|}@qw(CBZ$CdO<@$q;NWbJYla8d=cd$YF4r0%T zbs1|udRlJ^euO#7k1#^_X#3E98M}D$$5Q6Erd!^xfDQq0r05C6!$5h8XqdlppNDQl z++f&Z2UQ%tqK6}P^Ysz%dQ3Y%No^z6H|wmBJ1iq!`BktRMZR~ICvFn3#Ri>P8QHY7 zifGkJeJ9ab@OdSE?W48Jhr;%`b8@2esmY1fr{tCI={?u3iPkEQV_qnm7mtL+62LTc z(D6?t9S(YIe7DRkdC$A~sa=p;N0x}-WnSkkv(5=xP4-~guRAslWWP>dBJM#>4zKx+ z0M6J;xR7&25I&q&(%YxgFE-~1j!TPuc;!n6MtA2Q#2A5#V7nI7=^IS9jc1rbn|D}#0|5vJUKk~3=-TZ|v?l|jf5_dc} z6*2lxlJ+s~<(y+>J(w_J=iAcvbLpii%XT(e;=>+5vH zxzp#0O^bI5lX2QNoe>w&xwa|l*{o3f5#(1YR(1!|m5$4^`ay1U*CkGOMSKaz5sbiY>XDV* zIN!?SZCRRb`PP~5<{5fh)p4y#>_v#SDas1hTieXV$h}!qNI$w@ zLtbylY+z51HfuslL_{leZs&7r8RJFoSDI;G%?Czsh@<83z>&SyuB+X!Ebat z$8*zpEf({d3{{hwho!U@ zo8bEeJYvXv?%tXQou5%T;t$f?*b)ZX#o-hEdizWm06e*H@I^52BHL3)UmT48tDt3x z7J*H`J4e&JM}G~x%ChQa3$!w9ULePKGAoX=CsUoVcxLoJ%PFO?;~CBO z!zwQ9QrN=4z883p<{mmLoQFTAzRY&>Z6W?hz06yUy48Ys{VK`-L&mklTllO3ZJ#~4r66l^i_h)D-&7y`;r{QVy%c2hYHS7nPh*RG;n>hO z(7=e_(#gJ^lGpXqyF*N$m++4lXHC)IT6;uue=MI?k$({1U7Scocbz=ljYmPh%P4~5+878wKh`F%up5Fa4rCQ??C z86yUIvQyJsf)mvgTU$8|x57KaAR;zBn2aI0o=6twUgJE50Y^IQchu z{n;T&|J}DQzpowQK}sNZ3lwzp#g`b+$NM#l%(xT(DMki-u{a*;x1*w1$T+<+=Fbgm zr<1t`!>Ap1?x$w-1w6qQ$*~~Af-K8j8>XEzV)Y!~_pdRArqgxX=Z90jSA2A)%<&{z3hv4$C7Rh-$lN5)@e>+ z{i5qPOY2#XrR*X%?UVlRF2B_|!0&)28iAbUocAOq&YdLbBjmf$ji?>aqqYv43(az1 zqXC~v*I%xfaCm7$RG6JBL`B02@gDlvd4>%biy4hxzqzJpW`z1{H0K8*gv%dU-dzg1 zn&^Xd@ptnO1JwIQynxONAABHlY24Fb|Dbuu3!%%{5>;MjVZ&x*21JUohLdJL7v&BSve^XT#!7yXLe0=?M~iAuoKhwU?g# zbV$U;Gw4S5(0zp_ZKI6Da*jD(sx4<XG(>(TQuc?kBwNrqqcEQA?6&$jpqYnjl>6cvCbQDC~3Dp~#+1?|CkZJ2iA&I3{XW()GcMqP9ubpVR$(x-O&k zTj}bpi5F14q9ueIS!TZ=?vxLYii+V;mc>t{zOAKqr_pu3cc3#aKPu|zH;0}_=vS|7 z^gutr&d`X(eIcUVK`UK-mE=nf(Ys$`yZ8>#L2aNOp5q<7U!&?Bpn79ej$Y&q{=;#_ zqfq%*)cdQ|`*B11AHhGRQoVna>RqJjJ+A82XVe?6>U~1>&gL_$LoBAT!C#p3br5VW z&yX*4DBBIR0~=LM$rxZu6{0ra3kCVQ$1JdiB0kM<Bcs|SYT&lc%`2a`sPPoTcs=Mx!1?QVIhT{X9H*XW{vy;X2oo%Ej&hcpNu8VbL&P#~79paoQ4YNTaNjWM zC;IEv8y&wz=VYRp?K?|pJt~cje1&`qvAhuv3o^+dow3S-^+@eZy1U zl=Pn87y{1%uGk7CZiq@@iV4Expb<;-)PLpZ8BK2Lav#;?&<2s)db(TNpev^mcYJ zH!8rZ#lp4$e>^(RpgS>*Wnw4skcJ)v-a_wbjA_Bhw+hQC>? z*eNdlES(A^Wd0Y}*6d)OX_0b`TTZ!~AYCcyK=0^&bza$rm0eRP2j z`E@+MUf`4G^cvB0KH+{kSA(M$u+1&%?bV8DkE~|@ElposeDM%v?Z>>B+q=+`LpuRu?9*XXZtoP5j~_!P`j1?>%eIAmQLlU}1SSpoVq z)+%{O@Uw|{ay`eWzR6)fF1mWE7WllEE+`0SYl^&=Hv2qfao>)!lc#xTu7jhSJ@m`- zUKG!JOX>bN?i`()JLt?tpCQu&4r&kjtZROnPTjB0*}q@kle&<`LHo>kZq#c@tT${J zO6lw*8VY=63Fg@}UlSM6Zzk5h>_|6c$LmJChIncvGnKzQ^kp+U=L)m|AF}LA2``nw zrl8jGnG2H0g>uMT!E)#3vUuaVQLi=5H0HLT{!f{I?(aAHdnWaBT=8JXL;K|o>L13jc82y7hxUDW-t1EVdrZ_)Yl@j^R=uC&DXL3e>&S3EGgo=Y1*2sLbI(1 z-z?PHvM^5g0rLFN_X_1VEX)n&=(qIUr+u#_F-Gcd@-8#I{}AmRw(}s|{pWOgCFX&~ z!Q-yW$dg`4wC9Tr5so3j@|ezD%rn8Bt~8mSs(~MIOvY=3F0$x%wH#L#Iy2t`QeMJw z+Y(Dz_Bzm%_OZo@RvUhfpf9&V#-WF8?3YTmhn>K=5;)e$;WXQ~V$W<#=J&@?r2Tz+ zz2&&iwj?FZ4}7-vkhFWvRXoR=G$#Y8?#F6e$SDHZNJXg4rXR;wWc%8Piu)Af_+dil zxczOMzmWL%OT8+lPa)^mfIM>z%h$GiCePWMJz6fx+}ItzC0^9c&oBu#Oas_PcI7u! zPPz)jB&GVLpzWz`;E?slrOoiQ)YgWP@6eh^SX<(e`Q_a9WZVVWhhM1gf0gP~5^Of# z@*wki-uhkQ8H@P6s)qz}gJO*y_e%dW^l{Zs<+py}rS;KQ2-7598ZptR-Dq37vyHOR^Q`qN!w-Eh*Z+~;Pwagczt!bzTp${+*|C$JG=Rv!}R`qb~+`OnoRczTShlE`}x{~5orrD#Tcg+QD8iLRPS{VDE5EYXQhX=si3iKe}aHHM!Y z=HOCG=Cw1lHZcdWC3N6E!b8{-q4|8qG~nEXO^1R93y1hhI15e=yCyt9VZX11|dZe%}{8yq?xk^8qqYiJj)jt%*;weWJ`wlPuF1x%%Q#Y?D zc~UK%nCI!y*Ldr6~x6d=P|q$)0uoL@@Mne{;ecz$nWEvT5H%I zj_I_}Vu3g~Gxb^oiV(=X^1X;Id)(Lw&K=W{rH1 z-fOZOa8-Nt;zM#yI2V%zxL6~;1sm8-%ju+Rd4zBX!NI5W-^G8|Q2SauY!h8W`0t(M z&3S&tf5^{LYf0K1_^w!;_2?*hMhDF1=D}t&!FQ{`S%a9|a_z<==Jk1zSd8N?%`svkQZM7- zeKYo9x7S!`?WTFIp}NpLY4ziLpuLUQ8j;(8oHT2AuNi8uIUnSw&@S+$(u=?AnHJ|g zrX#OLr;IJ7hvwPEgpUUTZt2}2Q@m`if<0E<`LBBn@Q8g@%CV9fk=KmZ9DLBj*UPH8~rk5$wE(Q&%h7l;|g3eGo5^Z$gdBc|`9f7xsABL^d`HQ?dC zzxMC7PiU`QJ(l)bC-TIv5s!a>y>=7lOM8!Fb;pyqyog>edVtUq)aqhsE>d!~|pZySe zL1VcHgy-47)3Ebzu8Jq&8-(+v+FYLH?_2@j8qKhli@q}^EcphUFIY>J5BptBho2J1 zYt7RV@d8hr&R+V)ROoBxZwWNEj1 z-Vz&mA5f<-?4h%=QMhLm&Zpm1`7B@AlI|e26QVNwucrTa?i<_G9WW)n)Ac;I{YD+X z-st%9nz{iypfM4jra8ID+L%snK(5Y#Dlde`yvp`jgDu0FC(b7r@HhN-c&H#H;RQO( zztXxRuTV{|w2i>J{_Var$3BOB(d`WupH(>LZYLaJ&{}OLSh}5X)?9ighhQ^G*P1x? zYYAjEzF+sscRdYFHs&yg=z-Y{#Jj4w>M^z_Ip1_cb27xXz685OANY(Wx^EHbjJ~{1 zeR=AHt+JIz`o-tPK(M?a8xQ)~Nl%#D;K(c$Qp@$ z-r(sRXW!SE-VYj<{iX?jOZ{JgFtfV}hP7eGgZK9-)5>s02!Chbk;S@U?E zsm{FltP{;Ec$?bKW8bns{xY`t4zOMA+pJIO(_>w_**TA6w?+v!$T;F5TGN9nkCyML zxmJgF70XxOQucs({9X8R!EPapTzVS-PZypw*M6(EhhgjaVRP*@-{?uSJT-XFdSReb@Kl}i2YUbh-^HDcwa_hU2VtA_z88Cbm5gN` zztO(P2R+O~U!0G_Bp8OgpzxftNq=)-qbR-(VWV$*W9&e!djT)?7QOW z{m3KCHoG(j=NVfa*!LF@9v=A7+U3xjcUY4Xk+&x&3U~kOuhaVCa`$J_^V#&9LBBfs zRlhSi;RzNy--d02nwxXkHn+HoMZ60`J!9W@`0p62WgkzOPtVz#9KX@Zb_IY# z=Y6Sbf9(?)>#IQR2lqW!&ztk*tqcnx_;DcTF}-u!oBj5WxsS}XSm&ih2qqQ?ZRD~( z-6!PiY>#loGVvukZ)VV1<{ELful9x#qH8R0SAuEPEF(cQUwS{=fWgimey)hGhuGbO zzjDmPzD-~6NzF(|emc$Z!&|K!!u?Sy572k<4Dg<7#(e|Kc)>H~wqzM-MS1=?Pg6bg zsT6wW;mcTdevJ=ytv5OWwdT2qYfEbm`ce8%A-X|6~%9cUec@X}{`f7>2*#o(533Q#jhMR}Slf&qY zKpcL5ti<+4<`*PFCAOcg&tE?`A2#^FTV8E(x9I~Nt2Mn|_!Z2{H-R3CG! zw^>)+>d|C9`d^~QeW&a30u#DgJu4oiA zU$$;YyZs+irvbx&S@->4%uche7^zDZ*&Sy5N)jR-LLlMr)Fu$0o!IHh7tH1ljs@9B&+FKLuDKO zN6MkjA(-v_n%{wLZp7F+Cm*^vjrhpAV|}ufbEyu>PzSbQz1PXS^k-7JC;pmvz_1)| z!)vTd_tP~$9(S_n3VJPvu6R!~ULzX#HIYsAt0Sw#Z<>|fiTBJZ;j1QCscLp2gnM_L z>vWs6=e$)5Ep51rt@ck^qZ+G21QJp9z27q`$ALfnow~*O;=G3zIU(dQBh+>;h!x=)4UeK--6y-J7zV@_u4ONC7y01=Z}KV{ckR6w$~0@k_4Z&ct{gH zGx?cDyy>(~sb{^N`cj>YiO}U)PCo15zUBC=xaTG#)m{69&&hwJ&Pm)kz-e5!(AM;o zJTD{esB_AO#*^m{y_IEeT4K3q%tL$&*3CM8qJ2Dht(M;Tu(*uyNj?0#>6hh)Vi>@`;QI^CaY|pb@ONGg@!9D~aE(Azov2Lo>@S z2E)!U)GRLjYTT)Z{k_#D8b6e{+OK$~A)lpF_YaOcKl}4x&_o=AI%{{n%zf^Wa`hh& zPV}~bw^}ClKBZeb{^QJcmz~OFzU2uZ$hz zF+>n^89L|ICg-X@ z_tPB%$};JWCV{b_jq$*1L^oXz-CET$v0mA4eeW%!_X>T>7!TcdOwvtTRQ)}`@oMZZ^``rBeL~Lkhu;2YmIdiHd$ z)PI0B9(YAh>USA+f1~OKRNY@?JbO$%yU^Uq^B(V2IFz2P=}q_H(3Ps5=hCfxH2uwvw2^yJR1PlE`ERXx}HA# z{s7he0iE?ey1H|D<$LhMka6R?lpn^OG?$>kIHp;KeWuR7b5f`2`X9n}^6$t??n57S z&c`6n%#DtO-IHxR53ATum%JzWT-%X)iJ#IpU0M(0&3#SYydcTS3eZf)1pDtW;Yp$+pF7e2e<}T6k?V6_q4tqOn0P~@6H9_ zOW;lyXZ}j*h2XPUNiZ?mSZG%w9;3OC@a005(S$+^g-LTbDbXQzULtJ^YYDz8sBEIL z<tbyxHs#}U3n9YgWX^LsSjtZ?WBcrt zoQFOXT0nhSU~5!oB(+i5xke18Z=i2zr>2vhHxN%_EM$BR9IjK_H8ghMZx`kxY=5~j z%lnmPU%*_D^-zz*>!<&zAFuyxr^M^vC1NMieYkyLv&8Mk6>fjgSSz{)^`_>Xkb5e* zFP*xC)@@^BIyI2$HzT(+)nBLT=Tq5ws^3WE!2hU|PqfJWkSEjs`&2uCr7Hz}i^>`h zQ@}XcejIxiF(w{-=5VS|`CDS|BF-{o1>;McZjW|j@|ojw?kihlk2lZx{qb}z`ta)K z>4SjjuTlMK#4^3|f)5i7gsbm>Tp;eihL>$eA>&6ZQx#VdaauBc@O^(foNE42lzq3B z{{^y0X?y%rI&WQj*!w)v#@Ef0muZU|IVDeM=CgYeI#yb?JG55jLT z)5g2Y@bELlGxjs@BJI3Ehr4rdDb0cFdp{z>H{Zy}dx$phu0ijDN7#|!llc$jFUjB4 zmYn4Cee@(-{U(vw&fkR!3{Xj60`(!BWh16F#+YeG?&7FG zW0U2N%@?TS(e5Tbs)cO}cx~Z}uGSah%o$2}Gq%wgb+N?H2iZO?pXFwp8$)liL$L>) ztZREXE+6bG5$_1Ld%V#cWT2ewkuN_z&z|jl822< z<=Az|P5ebXEZcgkGbwY7f0AdKQ@kB<1C|q=FM0Oku+yZu+N0L)$}d+#2_U+~~@NmW%D0!y-wL_c80SB4Fa}PxA>(sjaaZi3KbFGl)XE(lE1Urj7 zdkXWVC&vN+O@=u5ed}hn*oeQqhsHkgZ1gu@_7^shRZV^C2w6(ES})+EKac6*SZ=O= z<{p}x>;EEcM^^0Vho=XaKK)`pgiHR79|GE_`HQrFFH|;rZmcUjyBP3F&jzS@n3M6n z+f+=Clh%Z2`~_-Ep0cLCJp&u(kt5`o5zn3R%_fO&j=1}Xc$kA4_EMwBY!7}XcPpFw zJoFX1VVXqd+1&DhI;CBT8qsgdW{F3b{4NqV_iysvx{h^}zJOI51zZlyMFhuyzgPrScV zz3;;0pHy6J&T$yJ;KPbOyHM%t7KpqQm}JV_W-J3CJb`^4PWhp}i@*%eGY+ z??XN@iF3runBh3vMsohBFyXJ4iVZriqGjy@SBwd^-_f#Wwwu*e+eeCeQ^>W6wrOr{ zDi566PuRD){q(Evj8fmxIM$ua55V6i+UDPV7j*{TBmKy9m0KG5l~KN(`k{sUb20vE zwB#uEJ=N&v(VHsuM1{9hmIFRtJfoL+clMtqoDG;N z&x^8eHs|LvnryFen^jR371Ni{H$9lC0_!)X~8<0n6 zL9rI&^}~6qtMwbqu_WV3UcZJg^3QF+dE!xe5WOlY#*LPK5SU^yeH&flSz$j_Ge6?rA8ypqb{>$BsO z`sYyjhlt~qQC>!6u-QQS*iRwAt_Sg?bUW|`aQolxFV3Azd%!4*A;-8=T$K=>$|n1G zSwuYYv7BRfKgG0WhHJ>#Rv7Ys0sViR;9Ezzvfl?nKQ-acWN6Ky9v*H=XB1M zyGD#5I3G%|R7rEov=!!8>9IAA9XA2-NlS{A?>76&8?v7{mrJ;X4c;JHw~yGqvdxCS z>z&kRlpRtzLlLXusox(?xqfzyNTah zr|M*@wo#`{wLO;VWU03H(zDfP3}Alf_?NPsXN@}NuH4>K=JU`g&u>5Fc~{BF&u^pW z=$FKepPy8Bdf~v6>P|hStre#{539D&|Buq2@&Eg2Y>>C3e(5QFtEKwxcm>rzqUvos zrQJ)Z-a7S6D?0hvD0=qFkZjBCQ|T%1o=?y72?qM+=alCoGM?ki;M|0WpYM-}w-5HD z0GoaVn{Hex_be&&cZlr=rT-^zKXPRtuUd9~qvQG(o2D+j#f`~^yk?OI`yKFqd4x|V zy?!`l!dAI{smQL6SPgWhc|7?Hf54g9N@r!=H}KJdJL(>#v+)V!KhJzd^!o<*TDx>Q z`i3^$wwP{LxD{isR&%$1KyM27sEf1I)C)zZYO(Mu*!X~+|3KlwqZxPtz8=wf*GHA` z1noD*6%7(suuhY%ORfganBwI8mpJ1rg)_>(0A~!pOX3XL#|4nt?)5AKyg134UiPD{ zRCqa?&%Soy#;ixZBJ3UHHn^;p&yGyIQi%97D!*VRUiqj-;+4H$fLEqn-H%rajkO}I z=5vXfFT~Cb&Snk78}LKrTx7Ss8S8!FIF(zH5Zv zu+CVQ%Ij#&2%fMuKcaPn&l}e7DXd*w#ymy6M=u2((;-^V9>{U8A?HF23GBDZA7h=Q zUJEj+EK|y#UbEpxE9Hp`u9h)C+!)|E-#=IJi4d2l7`kDC<-Hym&$D=BqZnS@%lwhr zUnQlAx9~IUb+A6Cl=wIFF+_d$D7w$3%L? zJzR}@`u}0v$;2=)E~}gPk60|V}o>XO!#WTKW-eJqj@qXm5kpm&#lq}0p26<&tv~?&r;zZ zD*JJZ>I1%iz!MXBR2T6XQ6KRcT^!?{g$Hh3%6r#$Fu;AmclN2W6CcX5eM*-0;Q@JX zDIPmP&)-)(udSXPQP2KB&kkk8=m?IKv^K#I$AimOyg;?4i~DIkYU&Hc<{D0B5&pxzl0xw zW6PSH5YgzYBO2eq_-PW22iJKtjsvRfdR5j$W!Cr(j+x@-9UiBi-S?s7hidd%d+cR& z_J!llPlrWq@O3{P5`|58s#+@)!3j|w_YSYr5q}*vaOyu|L#$W-{fajM{QmvOkrc{* zMDJlAt*n;#zE-XM1p&#EVO}vd@7a>K#(8!BkT{=LXKhvIRl`z|(-5)Txd9)K{0y#q z`?^!+t`oEfa&4(I>yvc)iOjRcpg#PdUfRX{F{d{buFiFyxF~8v2MXB__}F0akyM2J z66L&S50~=}Ig!l!6nBgh=~S_vU|CWC`Z37Zdef;EB`XDfeum}&b9DjD1L(?a6S|lN z{p}GspXXBfZ?KPOo`+DMM$rAYp&uYv+>qCsDjFQI1EH4=Ov%W>xQ@!F8N1nc3o&30u&jspM1@ZwN72kT z*;kJLt8XNRNWKDjWi_)a3(xAaWsF6{4u0&H`3E0Tbu>*rpOf)?H9dFF#^CV9VsF)A z?%SkryBNT+Y?q2Bj!2x-L@??1ay;Myj}iC1olf_ig++tM+P}F&<#-t8bKE(4m)3SK zjjL>5AhpjEWgZMTYCQ2?fQ8woXF1^APp9VxGM?W^&%Jq;)4QK=LPq&FsQiH9A5O=< zAsPechr8cCP&fs-dfa{a7gaWl@gDISLvtlR-~>{ixNV#9X0-oFRkVfHWx+P}j-lS! zt@g_idgrKm=W?nyuQcwo7lfQo4+Q$;L8!l8)kp5yoSfc1et~uL-LmcXl)U&pdUub? zbFxM~`?GpBi=J&$&z7lY@2Y1%pl3Lf8!xihHw1R}`>LX1sOod48fSNQ|M!`PQ+-Qj zlxMbapeoA#(x^LCwefcL$zvF;;;vvW+?=28nj@x*i@Ra_^~u-{;hsC#o4GU&T)&zz zXV?P`h+jEACiA{`OWas}pdXhW-!IE9qOuP&a-{w{SuxIxGG+ zau@g9Iyyeacz%-F-(OL%1pn=$o<7{oIQq-`G-KS6|sC2fly6<5+coTuMlgZ@E}VfzIC{$2|25UmIchIN2o?qzG9LGb zpQls0(m9}9d@kcN6e70N@pRuDVea;+y?i*Um(MSJHxpK0`+~B&kiS^Pal#e)T*%-M zt7-^+ z%it{AHhi~xUb0T$mA}ce*+cDdjMtG}!i}%={hj$t$2?>9{tI1ov%-_L$PcaHVyY@@ z&Nvq)s`Ode(s;|ImV93dVi0o;6fa`B(R!%XYrVFs(5v#<>uY{c`R zGX)Lv@li?dRh%Z_;~9bvca1n#m)cv;slA20_6)7ADm!F(Td<)9@$J#>Wgw74?xZL~Mz;aZMS zcj8C2_H=6FF@hDe2blbJuhehe(2!0&F{IYMmga76ej)R95qe&5XS%OG_Q_Mcx>A8{dyi`5^wtD_sdOpL158_>Y^fku&rO~}9S6=g2mDK++?WN|in8vKD zvl)0KbPA3)CrTWXrP}<C(wO8^)IUKzi~*e^?bUY zmLqwR*^d%lS1_yBN9;PHrAk%5b{GNYAE)=SECn{NhYE9f4KXIn`TMhTSbySW8<%A~ z?=_g~`epXxYV4l+ctNnfi~VdMw_@AO`*KnVdY;+V>tE1TxoQi~(av7grq_%o2i427 zY5IpfDIK=l$b(JK@r?NZoJ;hqke&sK6>p$)x4*}?!tS@0_Q@W#@KWgL3W~#B!j;dM zLvoz+^EGET&DC4KKFm7M%(5L+_SPw7Z&2AwR2Dt0U-xPIq&}2mBj1i4}#>@~@I6+IlamwL4Yu*3egim@>c z{i~AmH$A>I%cTcyCtNyRYvK4K$e{{dJuvcFQopd-E z@DrS@i#|IXa{gGGFhwlAaU;jU z8Eis#jQrx%?z={vGx3g|lsQVu%1W8Gmj3JiBwWcceyNYJ9XS4_wIWcO+qbTW$8$OL z)$JGd!S&QHj+Zow=0V}GHxPRTJ}rbdkShaizv=Y1-Jx>#yh8Y`!r#Z&C$IEE&&#s? zTvNg9EwA?Dz#F_02l}`4@H~FqEB)rOICjKJ;TbsIS)yr|7OMaE)Bj4JjQ?Lj{rjX? zjsEHSE$_;r=Q&BZ>Y`}oqP5x{cFC#BiDRh7s0GL+ovnq&$i{+UPN&FO$BH9 z^gm4hw^pccK}Wq;!pqk5kuG)1hF$G5iXfzAV1MOakFag@w23U?m0T+>lC~_Kx5KN0!%YpsE3$t z_$k(&`iOU`U~8b>dz{`2tM_iF_d=%;{Xy^0dMEF|JJgpSDL)s`Pfz|s!T@6T9ms%z zFpcL_`sG%7AGAs)?J|wZz;_mEE7`aIxXnBf$1i;;c{qh~eCJatKUa-$wwkj`)S4q^ z#GZeAmO_lP9cmmVJ!{SAPbJ-B%?isq#A6xjaSoLinU+&n9Th=k2jspp%q#7HUOpke zYpL%}O2jx;-_0~vh-KF}#&Qr3H`gO|*OQ(>%u&cVR*T9i!c*F6hPll&Z>=T$?c+?C z_&DfGg_Ant$z5!Fa+C8m%M(_eL~CNsZ~t7*_i&!?{(qFFkN0^_UN5Z0-+Mn}9D3@S`KX_Vdq3lN9CK)IAoo^jUI)`6;0K2MNcQn}3U^J4 zw{yH<8Dnr|A1*IBDCNiC+RR)=Ru5 z@d3|=KIQr7Q1e?J-rgN6xSsAw31JvmmdgMD^4jTie2FjdF--&XT_ z)P8s*bsoXqSATh!`3HO(xdk8#1U+C9e1#wf=lyw8^2;1&HtxXo5Nngqw8*=>Uxp}o z?!#l6?Q&Wd#E}VR?A220^Es+5>{HJ9qv(*^XsplBSn&RUugdoekV9cahd3~7kdt(A zzk;WFdS?kepG0^TZJnm}qhFoz*Q7t|qZK~sO|QhW9)+_$(+KA&TI!4w>D;RbH({Qy zpm}~wwG$X7ao`cE8>YI0-Tkg`hv-^;)vbq_U%`tVfldZ%bP7ld3M(MKJFO z*+adQJ-nVPWe_Dn7=jcsb|~i*cj&L9N72# zQhEm4hfek0vr2b}=cDM^QO*OnR+t&@TtMZ>vo-w(&nCjkCJu5pmaiMTm~Y3NfbWKU zrfbAnnv-TbQLt9%;kkBs*<7(;cRE#Luzg+fN#9z2r`TAQHTZVPha(?+#l&czo)%;M z-QEDLkK)4@MeX@YSG$DPiqDybc(R4cu!iu3`8~mcmI&K%>PrQcK|c(=@M>zOMzu5g zu8x-PKo;fe*R^)g^N@P}qYPc^Dzw)Swr@~&L)Q}DR;lXY+Yzd3mdZB7=AJ&8!6Mil zQ~T4^vk&N5^(oIxTKlGrJ={KQN^+DRwWdqnKS$*6tQK>L}vb zAfw2XPmH{b1=j_S_L zsCysPMP7tzD%S?d@_VSv#eZXI4&3=du12gAaC0%O6Z(Ce_C;8=H{)R$hY{b~N9Dm_ z|95VsXUM^_mC8FZzK^)YL4uoa((^6!{7HI#K)nZ_f{9d~1dmGPfUg>QmZSD&9X;!! zXS3C_hKy%d(KE>1rqQz%8T}YT<*=IpFPxR(qtJWec*>-@U8?TIRBy9dmy2m#67>HH zS}WLA8&?e7IGgtUq~BC-jMKH1ey%>e!WR>N`%-V;{0&rd2H1Wh(bIR{1(ZJi+K=R3 zN1Q{J?M5VAoJQXQ-obfv8+{+Ki-Xj^Qnf~dsDH5cc<~4QXZWO~#H|Dv8{F><$XK)A z(D&VbWh;De_xb%g41DXeUTH@HSpM{Q4$C<4-5T}XBWvV$_t1CeRK-MjdAl&G+u1M8 z(Br=0I&w+pbG}O&PXWgj(<0bEK2K%5fMbiP`-mZP%ABC&Hg~blgE75Do>?^R2kw%wIMBYI=)Rd}N}RR&B5A{J5Df!eOT&rd2WL`0;Ma;X zD5$mATkiP0PwxY}o&%$#jUw8G9p-^i5sqE28FV%x2ZPzcF-2?D{{Vc|Vb?(8#XaJx z>sp7n@h%xl+rzm`<(UWjpjOp4#9Xd0)(Z6PT7qScyJSYifl*5Z#sL4o1EX5Rdk>`h zas@s4qh}M)Coe^AOX{PC{l=t@7dGZ|FOzsPQ^&l_jM~7;75I&h6?Z<4p z5y+UY9K?ZEeL9=^JT!HWs8k%>ROzONoG=e4qMnJA<-->H*xmZjhxZO-w; z1lHZt@HxYVm)e*~^HozG6Fo(_&OZ2dC|Hi%VQAB@bki&fbMRR$Qx{qs4H#q{4llOuV{ zvX|u^eC#E5`N#CEwpzwp0Z#GjG#6gK zGt@)4R2!cR=*zN(Hl}%8Jy*VTpyfxOAB+<%(n-Gr{jg@A-y-)1)@$9?{FDwKA%o?T zNgtJ4i6w-~CK9YR+5XT>>odg<-~F1T8AmHWO5ln>bsuk+>)P3&4&k6w1>r;%oZ0{hmlb*OVHDymd`f1EYn zpuWLAdF+KJ+b1J0p%XlEaO~ia4fy{%&4;@eUZVeJRcCSB=c5Xi(Lcmt9+COY4D*+^!ZTL7)$L;AF34N%?QKd7s_>fmeh+poaYj+w8or^rXD!#hvXnK?k`j@coK%+OIXN`w|1_ zzk%2+w13;ZP1euL2tI~yPaf4)la6eIj)$yn{p;bzN|XtrC%&$o8d z9^7_4!CC!MQT`3k7n2=-qSYFb2!ig;4Vu#}kM%9isp;kud1|YS@qll@p2frTREzkO zXq}4c6)H#GQd*}QlfHPoESKhN&zE~rfq0AbkwV=3t@3=@iM}E3bV$-RXENSfA!_bV z6K%1=m5r8Y#)>`~HcQ3#k+f`+_%;WkXnKG3 zOLDv@zbNW;&TIs)u!s8upP47MfzCw)!;rV${K#RB^`x0wIc~%b!mlo!3S6cWE(_B6 zuyk0|{wcw{rfkc=Gn~waAQ#qB_gV2&bEydFeRd|f!LY=Kf1W9Qfj^?FOQY4kDrq!L z(ZIXPEY3xhU$u$pG>jdzsf(jQH~F^aAN10?2I=fz+L87f%Kg3RgTRAWJLHz+JYpf4 zN6bg`h@)b#7jdqn4slO?dOvbH+-)4$U#+hZ^EZ2(J1i>GiSDa!qrKfO${?GsUn9KX zw}huKo~#eGeTe*7-n>TVFLy|IMc%wlYJ1C&EX(!(gxw45TnfW7Ke3UZHi@1x2%Zgk ze@3Ft);rrpFxJkoqaO9hycmyh%%U3{JsvOkE9(Joa>@~xS^K6l$0M&=BEHK^w7nH< zh`;%SM|&6XI5op^kZUqvX4#0%nL~86Zng;{G}k8H@Zhww1~Tmfp5^n;z&pJs2E<_7 z_)W*xxzIWXG5@KoT-s5Wc)xLFvdrs>*u1T|YenHU!b=)_&pTd5V`Vyvhv#VMOmo@-+C#tB z>3fpckL%36NzTtkFzQc4fjfPeAFmNFSnTy!fdq8cMNXlLHBIz@_#8etw|ssl-Ks@6Ku`6!}b_YbN=`x=0?Ur+2)?2tE#(-rV`#N|H@jCHz;Zs z!^VhcuyOvVm{gSQ)WM#L?h*Ts?H|rPlA1>2*+IAo@YzLYK?UKM6z&Z`J=Rkd-xr|No+edu^%ah%ZyE4w<_e|>L3hgfYd6<3w-7LyVY zff$#j9ud$#g^Y?%(qX!q&bN`=W0`ulSW3xv&6$=tdNtOcX^AAu};8PkyBJ-+d1aPSC4EFzkIpH zK0;%D?9LYP_!TYUDK*X$%1^>?Hao}(A0N3?)Y28}40+sE%uPa#Yxq)8NoPn!#<)U8 zL`=#U&zp>6IM;YC=c+J@gopUmLbHhG9r2y$eOecj*JO%AG*U?=t!sxKWI514qT_x+ zd|QIfNV(orpVqsa>L18nE5_6Q!k&YSy_)*6o63CHdq%VP{R@&W`S{B+{;X>gXLh!U z4#WyY4m_j1&#t>XwuEsJ_&uW&|8H_;pGcRCCcJ5Ab8YmeiTZ*#C6LqY)TK=D#~y71 z%G~zD)Q1>-8{?R*#xd)kQiipI`jVef*AtIBH&I{M7Eb1fdl%!>X|D(LcwSInljU5K zP67Yw1bcB+7q|iE5cKcAR%7uKo(0_OM}DLP_4h1gKLUFLsy7FHpn5@ShsRB4FmNbh z+9Uq7k8rF{_kg!?UZwNGOINHn#wl^^c*jfl)SHMuQm*nTRuazeNjv_M(OhRL!P&He zE%d&8XPUDKKHBsjdjn_u+7qxRS|fE=YHS>%L*sl&$zNR~&mcOhIUe?RseUc(ucK4F zPI0_V9EwEkY8u1RwY0w*2pdPx z!CkFMlVB5gbP~ZUU^hf?Iy+48+7J=QgEK&znyeu@$FD`48m&hxWI} zsv}%>a)0Xd5|Mux_+UK2==g$}7U6>g;RD)ZIKKg7yN3DkIqcdx&cRA<( zd58L$t4&V&30M46$pvAj1o`5QnbJpT3f-Tr+Vf}Zy;rEcgQ~nd=Ed-P}`6T#CUU`-?+k_KdL8%=V;$Yb@t}36+7tp>FPU=(s#B|8J-ua zvQ<09G@ceuzDW26u|P)CbHwlsb~PpwjAK6#W}=zl zXo^wiRM3B%!y&Di@O(3$le6gjpG|nE&M4)*gKwvGna4d#n?Sg|xd`XHM<46WFN=Go z(Y((znzKN2PN(-Ex5oD|w>61&L3}4&n?)DlUzFF<|KHGjmsd-Dtrl(*!{O&bSFC9s z@qGb0cRZIx?ck&?F@W~#vM)6OuQ-8n)`>bp3Z;!Y?0RxI_hcKNm7x7S^ge7gT{#ly zjvvmJ^dRR;)LQNR-rf}Gz@J_t`qv1bDJT80vnzx(}%P*XX{I+eZw0qQwc$w@@GU5x-GP@Lfvq?5Uq@ zgBPrUzK!5tSMbSks|asgN^{0z2)8&cy@@sX!-;e*+77AuIXx2BBQ`B)%T0)1OECU{ zf^Spp6Bo|$?6ZFyPra?4cV_I1PpG_{%3(i%XUl0ETWMT%7awC;)>eX5!1ImZ2Qto^ z{r`}CK%8dqkt?1ginQU`1Y~xu{0?zlARqYWEfE{BErPKS^MKHYJh&l0bv#3#7tjjD zkMEVbmmFnhpF{Qb{XxpB-S{ieYeE)t?XbCa9^t#))jg?zS;%{{nC1)dzl)8{02jW?@u2)t>H};bV5jEed<4W}#cS$r45dDMa#Fr)i37rsq8*P9VhA#+WIp?bVfqq>|{la)d^xo_6 z+o?COjzAJLsoZrA$a<@ zkLJAqaXx~H=49W!*_`y58GuhQ?15QT8lQ0 zT|zj?=hfo{o|=4nkiK1@U*2Foe2ILBdxQ8+ZXKW5Xbm>E6Atkb&oSN^37V6x7w{QK zXFa_$#N3`md~5+-i?D7x&$hZf<}1F@88t*#KjW$RQr_CG&mGwLHXnpWh!q`v7Oc zI&%x#Rc2dTgrT<`m<^w26$2*+`5I|Vpi8pV{~a0jZlUm6>1##%0`g^7?#H%+#LsfP zR>C72*XJ{iSbCMDQGC_M=!~hgp-0rJk1-yMLT`z9W{Bwtc|cyXD5hU2{S5k*)31Vl zum_k_hB%<{+aTi$i7FJ?mp;f7f>f5pZU z=6&)F%NHfO1NdjOiX%JKh-FckSgkb^{~m{b0n5hsg^wKkqW9;2!TVGu9zW&%-Sqxw zrJJ3g^`;DSN1trlwG}`gXNDtuhW&+Lf#sw0?r^h9bQwF@UL**+L$kxRcV#`)sP*}M zV=N@NLEeB?Q|3%L{q{85qu?I>N$6c-ohI$se;<}Hz(&yfZVWK=?>tTFFAZ&nP_Z67 z9`!B2`^G6?UQI| zu_#w^-Ies7U$tAN&g##eCw`aO`1$R~+tMN8balTC`KzDCjB&Z+#JpjQ_oy+pte3ho z{5Pn7`=6Khg;i1Z`6{MsDg6xkmD3M4aPEAz(6x^62kFRMth;k4H)xOE;q|3zD%9qvGCLsSo|d^HMkP=<|{WdgOVz zUPs5ibl~CV^ADn}t7#m6R`wGWuqz4?{3~A$hWkD{in|Jchw~NeVQiW34;^^{?E$Pk z$6qz&T(I9Vott6WJBYn99{Y-Odl9S}gzxFuM!I_Gx{0nn;`KLU{SYh3twUuSsSNVq zscIim+Z;OxwjVv7pc6Yihi$Q7r@F8spM7iaeb6k>$FCrq4EqAe)>$VL+9{BC+NVu| z-Sh(JW(IN|`z3tNKnLKBAUAijjaY(Of@tYP(Dp(O4W5{;voIgf6(K%$VxpL%|9(Ht zxL_pyNH7+E3Obxhdf%^2NYeh>z_NI4Y60w(4Q-j2KQEq~LHwYvalUgit=WT@0AI`# zzN%&iwob_N1AUgayg3;#=CMA&S3RF-gn8mdg;Rh7dS*!a2YwZEGWhsoGu%9}^TZt- zBY8Qm)5!&m4E^Ht8B@qN6WR2eUtBze19Xs zy1#y2-(HMq^B7*gfBg}D{=swksXfHAJmw8D+?;4vx=pNQcp}YBk+TSS^VIsbU~Onk zd@4tnx4Jp0(>ko-nEJ~_m${2=6yAXi1eML9wj-+T?snkO<*pp8q?mZR$7jG_eYyB0 z&+~H8dSzP1ex`4Q=-qnt?w)pOTUbbSR#9ExB?GpH>iLd#X{QZ)#9~$U29?2=`muW@ zeGa`=Ezx+8K|LO>Wjyp1nx7}lN!+K9!u=1?oFK;9E9(xYwsJgBd43fr99>E8c!T#a zZ_Ce>4=ZFc+l*Q}N-&DGdD5(9JlgV{#5<*ZIRPd+`Sq3${1;-h4kFtAfeSV}Q!gIm z6cFt(#@NI@Vc2g$f{B_)t*x7Fc7SL-$OIAJHK26nSl8;|N4TGC53Ot-gXTj5cKGb; zta5DK{Y*adN|5Erakbm$4Og;^wRfl87^)j^-rWD^ zxMPIZh)19k)?>&wnk*-}8hXz_Sn523RvXKgARh%!48N=8-&cBjYU790X1V!3^IG3$ z+;xM4+&aU;*5=Eqjxo>2eT7}P*^?TiY(EY^E6=jgim#6qtQ7&Dgn!sbP-Rbm6^O1jUPhY&qh^Bum}5mcxsm9a||NL^Q?^WFE7bwd1VugWu=k>q1{1cG9K-TX>qm}d-Pf4dg&0I zGzT%nZ=y438_uEY33n1+k49pm61WroZz}J6Cv6cDUaurEzi2QQ9Anp+{r$SzZoVx=FN8sFUcQ5YayoqJ8L{$Gqb#CD{4_tv6t+lwb?`PCspL4Pp!S)d6@nmpgq)Zz4V{J9x}0q!u@;b3FNTpoX@`Dn+SG`X`H&+L&Y@C z%Ra^)x{CMEj z>o~!6Si*HNy>sk4vW=Eg;QB&>>-iaQjT|wa@V)T2=!2{I1XmLkToKLx?jQ?i#h?1l ziUCH)NqZZ)NU@JGW*62@93wcSaqbwqop^UTzX%q61dHxkze@cu6bzQ00)rL*0S3RS zU~tS`X~q?KL@#09UwcO43=?ug!WpIihQ>u+lgGpJ?Vz&tAzW`83g=gvGPZoF+Pn7+ zJHm72?%fM`?=CxO?_LA@+RpyHJ3nLZx@|p5?fioCO0N)K1HPei@K@kNGxmc)aI#g! zm}6Z9>^IMr`0jD4`^!`I3g+}4HHW4DVXsusUU^#Wm3OIs@2I_kxW_Y3*}tn}a{tn| zN`9sGQs&<1py!XMy_C7f7E$>cwU;vY*nBEqp0SrUz(0@n($#|_He{$c+i^8R7ks!a ze~_~qb_Ix|4*s8gY}#zth(B_poCoL$Uet=jbNc(qOZWYQc}d9AP56qb*#0k?x_Iog zTxUOGanbW>BihAfw@Cj1@DJ0Af*i|yjHP%DQL5w0O~0j{ z$JFz8==q9_=accge5nYI)||Hp#-5~SD~2x-eR5ai&obhkI;vMg^%6z>^3!XmY&4ba z&M3Qr$_`|-e>vTk!Z(ay4g3i7K~HcTzyjyzj2{Y|m5^J~bqV~&=(>R8mlilpbcLMZ zC*Wg(1spfeOV{t?eqaH|$@9_`@(fRI0b~;;UbOkWv1DD*q$mq-K=w zQRUBpuFfdmsmc+L;_-~~ZK@pmctu9}E20b$SV;Z&aGH=BJ_mNi=W@JT3YIRN&R!Ny|3&#?c{L&AwXK5@y854J&F_$E- z8!Tf@6Ysb3wDUB_EAz$Xt{?8@|JfWDbg6*TiP7235^_3d!pUo-J==sWg5o<}mCHyOKOcg1z48cj}K$$nA3^)K~MrOS%F3SqhJW^TKt?ZvZ(V=H8-mf$_msYp56w+9t`fkz8-w!!K zy^-#_*bbl>eW3BWaWyaTm8_d9(AK7S+EN`fm7QX~#~q`UWazdqXN0 zD4%aec}!Q8zr}XIgtJxxH)8!G)W)!pU8hB;4Xk&)iM($Uoi^q(V(h!}fF5$z*#Af& zK4p_?yGhL{a3O4|X}q*P%{1;V{*J`k6Clr6aH}EX8DCw#C5!mmgJtD%jbor06hAv| z)L^z9=6vtx#FHZ~jVCXnZ{DF`yBx9}fgEn?Jio)V%3PYj9J_xLs56JEp1v3Kaqe8i{4p9;8e&pAz~?)5F~H<$Y~ ze4m!``R3-r!vF6*CH+5S8`KuH;l^K)u_Mv%c2P;=yy=Df)YNLJdwevJ;@FA9;TDVEXwEH zuslyX$NWy7_)!S-C;Mov^_)nRgI}bv!8KE#qkaKsS`tL*(di7s=LisD4;+3%?tSlgMN);fHDn+_+62BvN|ShkP$lx za^vdwk}Sk|)Y!K4Mq1}7d6mS=z)r4MTlt}8tQJ}V_Hs?MZ&!*DLusBv-?n^O!U=}I zYc=LIT3OV$iJhr#&#e)QXo!_2+oZQxn$gNKBIF_RTzfmqa8Wla6fZk48~$kDP-!RWw`K2CSi}L!p_RaSmPWi((SO+;)bbp_B(%gVf zhWts3w~C-^$E)mq!CSxv8-4oSj2_NQ1=<<3D)M`W!b>0*w>i!aVDo zP#I`-$n^rSrA?<(A@-p|4$*qER*PO-sOZ)WBX=YRLQa>6x91>M3G^I^P2DI5Ux2)` zc)np|0_(Z*QJ;43fBO!e2MKrJUNd)!d?k;$QRy{(D&AZxwVls;%uV7!pT_x$12n!I zx;JV61`?Y^GnJRCIuZJh7)s}S?TGZlLcEE3Y0m2L)-%9ob%_^~NRS}6oex3Zv`8}x$#5PcR3D|`XlKz}|-aN~9jPM%vo{T{o zcfMWL!}yHm>0R_?G~oreO}1&Hdfz@@@+B#PSM=f1Z>LiS7?(?XK9p^zejQf&?3zv4 zPHRN^sjt7|{Up;A=2p>4bNk}0?B||CJ%i@@ zqPUYab8Zs2$X`D<>6tz^xii$9gq>ZMHigch$sV85eQV}?an$qD0q~Zs=4w|~T~e$5 z59N9**w)+&*r)o((&=}nhF6RF>j*!GIF7T^YPO0Y+PVXsq1{R3zwI2mh0cr?qEA`` z{1#2Lr(!EXX6=4cGb4S^pl`cQyUW433tb*!NEmcKP|4>(*96%AXCh=B1p(>PjQp|( z?xlLf)0TMDec7LJzOfFxB&c%C`qZ-r)jHGp_b9#p49cK0W0;FcnxV7leYW4!%-0Av zVSF($nAUFHo&B));sk=dh=jKa!u{(SGGH&PV6Q>KUPVK*FcsWE_7sXK*duuS>_j>> zU)tDkj18QJQxi)B($53mg8e^zw`i)dq)0R76`>DPwIysrT&zjiENn2~ z#|!;zp~6+MaKwi1An!?|jbl3%>oS%a&OP0f`+;#{J)MKJFDLwuJLk+_^yTZWh{4A? z?m%vR#(DjCM_0PuvhSo*c!oOT4B(Kd4rqv&DPuczQ2#Y!ei2=TNqs@z3zd!I?Xb;I zZC`Po#6KS@UBf&7BW-EicnTE>iHoagkB#QGOPx@Hzfr)xo&BFeZ8_KaGB z{XcA+U(ey(qWYhxxw>IQmQ!v@AIU^$vEXx%)(x_TD@N2}{tJc?4Q<2#$5AmX7WZjJ zR19f|+Lflv8;boF;rvwbf*{e!(~ZTPk9xY%DE!bXQN23aH-m`&$G3F0+b25Rj1`SD z+lzd|oAT&c5zacC-Gix(d+5A3^<{jP4<o=~a5Qg3vn&{= ze0N7Fzu0jmaM5n|1pt02r{{*2FJlnVJGCa}MgB(&2NSU=v>ikPgdNzBoK4rSa&Ew> zIMb>S8=%&l`-@tA?z2I~tCsR}*wVqzAYSkk^pCV>5Rc0BG5QU1jQ*RkXVKW`O+8C#4yGE*#Eel=jtv?gJPG`|1BrGKM11vd6Wuq_ zeG}a`iO#BB$i<#<|CotL3YCZ4n0kaLN?mQ(p35F^FS zKR~b!Uo-e%z#j;DR@h&_ZVT{DaahM!navkI9lY|v0_hQZ*4juZ3f|2fw=;1 zLCmrDPDuL__(WIJx3G7Ci`GwiKM5XU??%v4(>VTFHR0d;k3eqGCjH?P%FlxE5_HW$ zYFj7TGubO)onUSQaL}$Qv>|hB{yX_NWa6-`fPDN=ebiodOWZkCMxLD^BY*nzBaGiT zo)OJMDa**0pClv4dG+xV`K*_Pj2!jdHukFb@h;?srY>>dTgaKAOP>zhzuBAai!V^! z7vsTls{7(k+yFdSg4l7cP4@N1jy`xx6CU|hy5IiV<%trSv=hhkAdTnzik?)0`g11o z@+4G#7djiEpGG_w+ClBnEGtiOI~w>{ZniIzaE^L#=FU;= zV4o8W`uf+^e)hWYQ&f934IQGG=K7sWobHHrnv<|PM9ggVM$G1XpJ#Em+lO`9j-*%8 z7$cZYAD-<%7lmx9k~xVhMA%xA%8Y^i6Lfz{S?Ono9O(G z{ck6`XEoC#HN7%tp*s)2^P2K^Bp#{YS$db-Rk@s?ckaxPGggFJY|JC*-&-o=Sl z?e=fIy9fPYi)jPczpmCI_Qy}=_r>Ew*@mm6{m`e3pDmUtL1qw`l*>7treh49akl5z z3~BccU*Ab|mQSNK1m3McjC0}%c8!$yC~I`Qpw)~PAy$nKb2vKggN;4-Zm+Edkk!?==;!Dyo%WD z{r29uQ@Nd8eRjnm9sFg7sDrxc!pV^Z_ovWXh zb`eXSl-GrzT^f*6kznt)`AqYULHs?{#jG7ceHw|AiqBDJA?WS88V$m1sg_o<-vZZHWuaBGLz_?dTkZ2ANrsZ?q+|35@qsq_IJa_+~`>FK3fl5yKtfD7i zYd4kPILF+<@guS|Z6*4ZJ3yXO8l4$)46ofla07eSdiXUOZT272y(zrsRkqbQ5AbaF zaj8@AnLCOIezM|*FW+nI${Jw4FXD#R%lW9N|G9LJ|F_Wpf%M;JE`bdY)0)_ifW6iT ze6cpO&LpQFc9_1ngT@LQF7H>Gom|){(cIyk96F28FW6cKsNI~3INN8Te|MTb`%e1i zREFQpSzcpv(HN?Cc+p|zIWDE|mm3&+zHINsJv?M1$gh{4vW|-ym zu;;ygaIO79$%)intxycOJ)PR2*FuiPF%A=@JqLH2I@3{~fF2D?0BJy$zdy_hg_nOw zXZ#bIwE3M+-$`Y}W86l48B=?NeL~$FKOYtyNsX)OkI_@>>5y@=>H5cWj-?>8s=qm% zY6Y&Rd*J*Kd|L<)B2L14qtomo;l{W7oW=@yGGxdz|K8h|4{{RDv#|7EcoKSG<;(DE z;DHACPMya5;y27hk)Qqpmp6>kvixj2CeQKJ!2fwo7U&DaXMxP4(P*-QL=VGX+gk?t zuy)X=eG7R{iC=4Fn}6cdlCW{~S#*|LgX#WT4syfqw00#CcfFBqXo*&$`rzfh z-@$XAdJoS{dd@c8Y=gQ(_^Js8tD2o5gpXkN-gHTGvW9R%HsP)?@x7kx(?BEk`69eE zP09KQM}7~!fAFKt@F(fh+0=9HmXh$m9B0KPL29FpX&9+fwVdvPBQkb3&GR=kZ9&V; z1Vi;v!E->*rom*tR% zUzRv6*cU(fodYs1Mol{1r;~Bl{_b@82^m{E?zvOhn}c5dk;<_h1wUSIIULKLu7{+J zD&eE3{rK5EsYmJl{>$Ue)T$`QA;DhAnvqW7Iri*Ysx!{-cj^ms*}r`{!ERn&ozr7P zZOArctiZ)$wa;hW`_IGd*FBKFvs1NYohEHTu(y7305Jt7BiB{Q+6V|Rp*j3X?_uVxLLBp0%SHPyd{_D>d1>yT`iFD~FBjZl)d=4>F< zs~Adq(+t>C%bjjhZ?va2(bZ@o*z6K!WWHTy(3N0!c%(~=pnZrn96|W%tn@{TUsZYZ z0<(x7zN5~8y=@}mcciR;x!6W)lh-KYKY`bNpwn`^G5CdR2ebI>ZWdTGjQv8|J6Ml; z+IySV$+$B^o{($v0-u9nw$VZPV^og1eyUfm&S>N=uE4(1^4ZoN&!56`#70o~Skl^& ztN`Pkm>8#G*PPC>B=F+-ke8QuE&)9f5ojazjBEpP;j945r5L|U+Ftg32bJxm`K*XX z?T2aIa}{kHJfnyIL%%zK{=?p;j=uQ~T5r&)(3L~i1ezmX`6y0<>{6GwOX8pvVp>@< zVv!w0f99yU+4}4J6l5A6;-?B)9wIOGUwb;R8i3w_Q`+CEoeycuK}$ zi?b~S{7Qfd7@E zI2siJbB}=jAT9lZauI9nV43C&pz?}vn~m~feN9%5`DWHnXicu7=Y>S~A_iJq`J_K> zJOo^se5(GTBy7h0=Gg>iJ9r(C3lV1g~z;t_$~Iw5gz?x zQAua$5y&?5T`c?cXidmP3ckFgw2SzZfu)WSUts5XAnSXGWg4Ds+X_m%U<<^p1mhYx@d53tF2^N(X3@}hf#Lo`XE(!~Mro zS5@z3Spo9Z|3uR+4Xe2Ok<)`tc||tE=Z+dFze4P~(FA*S<-}Xkdch71@f5REJjFlK zysv1Ql9*4w+4P%AKa+kz`jvCsm>uF$S_7K@ybjjaMQnF1*L|&r6 z<`r|ywx~2W>u7G=b#J8hEw)Qu!!+gBkVoN5K__5lJ2F;*jO$lJ-b|0;mI9ZPdHEuuH)1<`C8Etoq`%z^81@Xa{swBI6!<^!R`13vmCykj40H({agX zx&51;F=tPy+z}q5*@kbAN6B|;*p6r-Y!ir1Zgy^^^&YC$`!rhbz0Fe+`{=iue%t8R zMZa0<_agn)W!yhWzsKmentmPhYgOe@`pwCxhhGEzyrqpS??C<$kKV|3%LZNl3I2X) zBge?`6gPrrIq0E#%%$gyM&w#L2!B5C#9q3G-H@lGk>kdBPiuty`=E!e-JBn&5&4%6 zdQWe35Yy93?ZJl|d-59_vz^4BuXln8pA}3rCJ85qV?@)L1TzB^4V}GT#^Y*ax|q&W z*r6(z;v6M3_hnQEcB{s3D>uR}Ca7Y#f~I@Nqba{=t)%=bS**8#O;WC=oj2WF%W>Ku zH-inx*c0i#ybgYX#UC7(a(dXu+;KrOXiDPGCMA!i)93lk+pG$0t=LSwA9zDgexv0n zq+fBP)o38bz{g5CE8?opcRaKwHi@y2uM)2c`9Ir2 zz!xvv_Tl1xNVqCheSxeNI?zN&>Zqaf48mp$I?np2J(%c2=tL0*fNe>@t07hc(TLDv zLf;u|XtS>!-jiDQYL)}~VdzHeSsS)kK?gTAbxOmhHk|D4|zbJod=CO5Ncyz;UHZkNgJF6=)4pzlsjKW~tuseDK{ zPdp`Y=Y_;>j=uuEcICvLl&e?DB6y7qmv-p^rK_uZeUMW~^R$=Fo*}e0u>J7Y?nlzunsj9tlW#yu_ce+&KJ!Z8*4=9bpR zqjXi6Q?|8%tuM{-K-l1@IS#PCuuX*M*<%^=>gI7MCOAGZBxHZH=tRn$Yqlp(`36?f z*h{r#qF$HrxxSt}o^tbAAWr92`v2HtQhqJi#x|ZD#%myRT4brbZ74tel=7#!T;2~< z*R4~AZrpKM4#(bomgXDuH*8;^lYq@B{I&d6yXgF$-+{gu@@wcSM%-HG1mo@E#l^dl zXGM02L9`$8pi`lD3aNe(twAyB6Mb1s<2jR_pB`@$WmM;EdiIAU+mq)y}#-ieEdVVIoQ%3dw@bmYR=f~a` zI@KwpI>l7y#Yei5XT`b*A1tSK+eFnrWNsE$rn93=`cgpeU{akN6?+fgg00@!s2>U2 zh!q`(5szLph|k6WGLMb3uU6(8hF#SBl0kiE0BGm;YhhclT>6VeWShV__{I>0Cp!82 z--KNq>lG_A^bS`8XDL7NQ~QQ?PJAlcSW9i}$$(eTKXk5@=v8Y4*0qA>-*bMP*Ar{W zdjANm-L1Ql|8CvRqW#8e7Rgw%Z_}C)uXdeUuTpot>g9T&e^@VfotVc{Yjt{j&B<%E zgw`tZz6i#nC$HCHTCa#&FQQYod@AkbTt9^AWfG?0gEjEM!zt9k_uTpMTt>VbzthI| zD0k=UX)4FLcJ#hy6MJdCvM-49oHcFK9DnEnaqIO22ZT#HwOvH_ElzTr;l$$Py3k_e zl_EMHvQF*bdTp1b@`2^T<^r(|pVKEMgG9?i9=DGEd+5ylB%QwWY4xAzj|Dha{h>Ac zVCM#TR3Mt`K%T+&5oVh`5Oxm4pW_UGOy6TTB1p9FamZF_j*a_?7rKM!iv;-X9o-!F ztA4oU4ZqVpZ3OhD`HtUc^Lj(Oa{QsQHE(Eh4&;OZf(P(69-{F*!D$>DHd}jNK(8{; zcwgj%-WQse@Ok)s;TuW3a^ijA9o204uZ&m$dhVyX!HvyU*4U_(ZT_R%YqZk%qwHIt zZG1x#BSU&tr>Q`bTjRo}kM#9e<1?&a^*Enlkz46NVhf~1ggujz> zthE9(J=;(tA8lfh4I0Onm}za>Naa;<0W?_8RZ`*L_?x7o9oA;9X9pZH2Pl}Bl z0x~;K{anjSKOQ&HLL}dL7&J%VPid)VcnI&%bva$jwWz%nHfeO< zPWQERh29}%$k=PfS5?j&g1b^l>m+>^%O{im@M6do*p>t9gR>SnuROZX^5`FQ1I9dh z8Nn9u$+}H->n)6NE76+JKe#%|X$64MJm!I+lkpqFz2I?mxJmU08-}4(GA1V#iNK|LHs)KI~Xu&g)uFRNBSr9b*240cm#u`@u58 zJCK3uG(KaefUW?s)Db%!x`lBBAET9>D6YouDmOyLR73DtZ^~S7L86f$uLRz$&5MaT zx;XL(v9!c;;Vo;ls$m-#S|dsmON5_zan}aQFzCK)Nw*vGx;jIC_FICD8pW6S z%!ri;(YcV43qH4n9KR!;j1AT-$YpXmAGAUi^ukNUeUbG3^R4X+ zJC75u@)OH)E-9|7H(zfF(Z=0wOasU&AO}Z` z(FbX4Uej_gM}II|*|r)no-yWE={detPkXhtY$@AzVZH$?fQjZR!e>=Y7Gll&H#T=? z*3(rzw~nFe%;NY>@a?93Nb8_epOUbrGFajftUp8|T#``Z+a}&bElAv%X-Msqs9XPw;UXosGaz6&yELv(uW6T(P;3 zIYZxzwdq?IPsF+dc}2sBi63|F-*TAgGW2U3=>J66E?}F}x7dd0@3b~(2ji*M-JG=T z%$HzH8s|uu;K2W7C5tM%5^)97)b>=IO zGdW>nF7ro|%(=p~b;_mk>ofZOuKG_TG%s=X;PX{n=nV?JW=z&2?xV#iP!aCcT>2m2gk zAtxf?DBu`h;w>?iU`*5B5?<;f;0Jy9Lqz6aMqFJ~u+|@v!h(Z;HC`QqjJp(kiyLiOgrdjAy5x z^30#{tmKquZkvcDkLP}?^$Xi|p9fBP?my+ZPS5>`H;HfT5c!qh-4}}o5>1?6y^e5U z(1<^UcQ?@)9P@ar_CL`%syA`{+OiHl1MBG5UN+nc=u3o0A8QwW(Q}W_@`al$U&E5_ z5}NnZY2J%zJrO_GYc^Y#+!aseczz7o)k?`%wFrjII}~h&+j$KJ5dYkM_t|t7vK2E1Dg}(U?dCsw} zrWEu~3!iiKrp&>Z*^f$k{+`k~0yorKF+Ot|htv4zynN)Tc=GlJ%X#GDcrt`s33TQJ zYI7aL2_8si&ya*Xd-8GK5G{~bzg-OKq-U}1bhd35d1DD48y*&waiR+vh@YYLgZ_?f zRU>Oe0o5s_z0vxy+-pICd(g1J|AfPmwMq9ZB0d~vS>HLZ$YL8|YG(k=d3(0cx{ul@ zWZI#lkH#)lw8O?0sT&JCmg_)2*h*u~d!$b3Rd;b7HqBVcI>RXO9<}2ai$wim@v*Y| zdzEe7Cpuf96GiMXx}K->E|85(^lG_hu^*g_{hY=0A@I!>j!_&oS`@x%5mD~rO77#w zUah3n&AUP4TzaD45A74iHLFaI0|c32Y=2g z=xm8sNi-5)w79!aUoEO{fQ^*jx;vcSKZ?%CafB-&4;oGIJcD@Gne@97-=;AjCqkA! z(;A1IE_4q+Nl!Rlg)eBj{aM@i+mOh!qDN zbQ7(Ex2n+!hKOc?e?fga>zxtvW~#K;7k@43Nuj<+<-R+g?h6sCkK;705$E=*w##JO zEmRM4SxN6>E(@ujzKx)hR*S5v_U=l$f7Wbgx~7=g{~ww!U0W>-dXBmr_oS@78}>|{ z=FVjL$Pi~R(Wx58G1p3Lk9P2B{a7-6%Mj%9NN&rptHJqF6DJxmD0xX=B<_rOAU}n< zxRU7QX>=V+SJ;DmP5Koj1@-@G_22H5vD6IS&#Rc0tWB;G-q~^H6_g*O)4!*Qj!rDH ze4&TCPdE395^Jw0j_nnJ$ZCS+MOKjT-2l3-4g{_0%W+QmEPumXUh7d~Uf!?KS$@t( zGOqmDst+4gA5K$oFoz)zLS2rNO?(~v^o(%S_9u{MagnVPPYHQ#7QvLR4JNv8FyWxV z!fy^1e`nh+na8M{Z83G(1?bs-$iE_(Qnb# zB=%;A`hfijc))(t;8UZ;tBMmlMfUV)^7IDUr$l2sj2xxlrD(4Xy|p>{LWz_`5fJ2N z!j4Nf=jg2#<`*`bJjWXK!C2B=NO*8$UOf5bAIFn-=;{4FGu!%cLwbK{ysgL=kLMvK z*$jfane;aEK?+DhP*+Kn_8I*TL7l|*N6A?-`} zfDaCT-vTUqHnv&;dM6N$mz5Gu(akj?J8yA!QF}busV`0rCYUCAE7xDYnqypQA-UHO z1Ig7Jy~8$eH#pSCJUW~5z>_ZXXqG3wz~(&N1rg#AqAc&h{>{>E@-IN?iZD-?ucq^SpTLp6E=ybNBy(M$LWMxMlv^XaOwLK`KZTPGWru*B} zJ?yiG(EW6E|CWlwJ0PPD@&@K+)IqG?cd1UOlg@@1@ITEXe{X7X1kqj9gttQGT>F=h zPZ0bLpsP-EludJzORz`qom@$@7vK-P*uYSW1^h6uey+9hbQ%8v<9O?{bZWXm-;6zI zKfV8bF2g(wF}i3DS}e5tlGT-bgX%p!l;(@-q7Uo!u4FFNA>LtuPJJu~E~fM49t*N# z%lSnWe8J+*FNDmGeQ$WX2obM`dVq_1eU-SI>bBVN>(0=2 zF&lJO0(|}|rr!}W;3rg8JARe8)1^&y^5Qdk zQn!Mij>MDD7Xz-*k6PHu6V4e2+KaADboRivHHf^ZM2F&RgIqt9XtjZlOYluAY!6r8 z98B%q346cz8urNvC_M2D(GT!jhHPy^uZ&v;JW@dYz_(!|i1Q(z@abSG8$$H(K#m>% z3ZENwM04Xj$*_r}?bq}B=f-(n$ukbAGUT8^>^0QI*=wAT|FO>rSMYf=6}kt+2+}03 z2kw7Z%d(0I*8)ER@59Cfc+f{@kEZ{R1$kSeDd~+0df!vFr284GDVce8WXfA0lktGo zp!!c~%}L~&hWu-qW;vKw%;WC}p6{o*{T=ZMm|JfMd6Bn^MI+@myj~pi$o2Bu#a=%JO6IkY*w#)`1Tj%kojegL^s7Irz6n=sa%GZYX$?{YACh?;cL4p3LCwTB!f) z6yF5Bde~~S{dE2ZjMan#RtryLFVQT&I}l_YgE3%00gwJX@`&sTKe6pALfV~2;X3%&QhV*3x?Cd`sF=;!K&D5vIVFN+* zDD>nHaBP)jY)iReTPU9mUWE0C_Omms=>6-D?J3}I;T^r%ft@b!T`6KlYx%G}D=8)ZDongmnDFF;2Jri9#Q4Z|F`54B z^nYUKb}3S1gE9g3nu9bAXnXV>XzeQKj zI13C3P&Je~vvCg8TSoyI-W>>Duyp-`%{LY&S;!dkR zmvdL}*{Lbt^M)q6M_#Oxea{i=Zz{$O`KAfIfb@-LzA3>mRgxQz^rjk+dz0#H82$>c zpGkZW?IXwAu$k+w_**)Ke&GGqhGkslF?SN4L>oKlTtvRJouU?JGhIXQucvDbzD3s@ zW2Zna&T4}BR}S~G-9>Irc;{y6W8uM*#6N8cWh3=7~dl1zNHo*R2n>ds0q_&Bs5ya2aeL&kr zdz#v(I<3ZBftb5fHJa-JKg(3}>HB}Ik^ZxjXdS|w|4I7h)>6M$ATBz5v;K|Vwe!E! zyZ-!>ll89tK@xAb<`4X@^sbwZ_3K@y&X%|lumgLtLTP8l`Zd@ahHG-1&e!~GqvEY3 zUVJ0)>oW(~rU>(+wTN=Uh2_P^IKDj2X_Cn+)pH zleFg%Lm0H3w?_J{pRWArwRoF&4A1qjjd$@Lo+D;^R_7L$J)+L4!%~Kq*+#%^gW$DY zwE_JAe12xVe3JaQP`-zp4P}H!4=Xw5 zFz;P#V^_{LXEeqJnG+fIV#t~8iGv5$R{A>Q4(N$;)&3siO=6+%WIdlhvXbX?g)d-v z0#gyks>-u9J_7mML2G?5^q9&|)+P=CH^k!5M{v$_*X9B?=^PJ*`Z?*agcImk>W$?% zcjR6MzNPj`5z8UgCVqD)oysP@`8?Q=*CVIpO4_eelY#np6~}Wc>PdOST|y&1=Iniv zhd8^KeI=7VtBYx3PiL20+Zf#=9-{uPxZ#k~?a8OJFwrFpeXQ-#7bO9cIdq?;D_ax# z{&|Pp{IPA~zOdNuWqdc;0S^t|6!aDIwz*iwO?KxF<=}H(qViv}FKL^&4si`kDTAW^ z=23a>&okGkQ>{_Gj9Ujk2gIF$uS4G&MWEaH*EO1kHENJ+wA`0NYcz$%a`GD8t=34- zSR?Sjl^Oa?tP$||p})y-*C-oFeopfN-VnN@ed>8N>#*Kq-%GYvH{WBtk9Ey%m|~4Q zY2BtEk0q~LRT21_r2=yf-H^Nf;2ofQ1snhdE~ND@-v_%7;suN4Uh{_D;QsimH@H8Z z$Q!g)Z_qd1;I*C9x3+Ket*w{WmfoW}YzInXdFF3Y|1>+auWwy9)4U+AGWvkI{(7;L z=ehIk_U{@hU(NAa+QeHY2xqzL8j0sodG1m-7D4@Z8+*@VJat>4M*eDgFJA8t&2w(SddWkDY6HM@%Z ziFg6w8s8bTHdnEZUR&Uy{~^}FPIdyxwON3*9PN(>hz7EQ^-(LRMZ5h(R|KHb1WjpN znXegLMLy2eCG9MqzUbxsokkbitio0SV|*_q`D551l~UUVePaw=;ji^r{aT`LseLPI z`LyQ_6h;==_)cL0HnWQaY>o~3Us->(9ncmL-Li;i5LsSG_r-Ky%JVG}lr3 z)zfdbns=NB(BE*JsfNWoCnGpl^D@rW3?0wqN}mJW_6?BJDZS1ObbTB?_e#HW4_%+2 zYqQb=U8?jw?Q|`n>sS>B@wb}P|IDE48FYPE>3|F#=N2{27B$Wm9%rV_PNA})y;$Ka z*z1hocouSf-1F2=??PTU0=nr?*glu>(NaEhAgc_pzR;D2&tu;v{P)xUTT;?ilGl6W zTJ|%;{zKj}Zd;$nae&_Ys2?s|T{!$Uvyl_z(p>iOg)hapswlx+Le!4$5Qz7V9Mq_r zt?Z-lPK}C5kG7Bl8~?q;PoW<6P*y$hU6svAKk2hh9T3fZ2&vMHHE`_hlL5~?lQpMGjDsM`B`uk=ayf9ccL z|3B^%1e_gkSPPn%J zTe7^S*GFv>AZP6WV@pvh;Vab5TsKXv+n=aEt+b#19er&4m-O+wfF%R59^-jIMI+BT zOf<4p=gfMQXyinlGjphO=wIumfsWqLCJM&a zIpwrRjL=rGr_1Y9>ylT(J6|`X-$Tgtd!TRN9h^OVZj5XLZK93!*J+#+7j5gxCg1-b+H!p=ux89B(3z6xB>WbSJC*f|IS!N= zTTFEBLZU6+VE(}qe?tszSZJGwR~eFY;z+=ig`7=Ne(SXs(*G9v-y)tVLabUzmkuwKooIEM+9q2w&#&N-X4{+b1`YTcr?qI`+*tej&&==6F8qp;W(RbXwEIZ|! zA;n+JQ*8`Tah%+?KLFpU;-URi)%gqC=)5Q3PlIzD@j_s$1KQh9JUZLlP#N-(n#Ky^ zsS(F^0>>dCI%8#tjMq%Kd;-UV3Q--{d%|9Z{S)u@BUErX8V^{JpyWoZf{$@KLluefOC@mKzbRS^|5JpTY(N zd_3`Y*;)&&=@xM*@O#4+@iojDe0Yrh_?VctOH;^c9ZoKVt-e}6%-@4489(r6>GbPv zj6HXr-E})ZCFwfE#A@OB3OminJI-;F3J@=c%BY{3X8W`-VpJB)0p3S$F2r~?ws1eu zU$>vbGWzMp&BAwe)z8~uhYcOMdVY)Q=l`IeYK?a*KNsMk8K>Z(hW`=|tv}kA1DcnxFCzJ>pAWx>>;Bf$BHM>_b&P&N5@$z*D&g98Smpg z)Wth)eYAtvjkC?&oTuGOb;l5`Gmz>AGTz0!!uJX`PM51O0;VxWpF55(=+6`IqlE7Z zm7z`+@ds;9DGNZKsA8l2#*GD`Vxyr=#6pAZb?qICRjk>i93MFpi!l#XNqsTNVGI{+^6_vsAq}{oFWL)yiim6pONcV2Y>TZv5$??-IZBHm%{?!W+zUyq(L~ z#`m(9U*5l-VDhF)r~AIdk^MJ4cBDI`Hxay8N!S9-=zK@qVtDQEH4wi?>*1wx6FzS= zhv!wtljjmVlqa@}v*X*vIhgm(?cz+xwXN-9n6_P1&^|6D9Hv|D9-6D@Y~s}*_c0~U zw!!X7ewk>u3gmvOM~=b*r+q2H{Ha_sk-@33z?&a4^WLFw%I z9+f?yTTUtU>uiGCGZoAm)R$q@mkI-L8Wn%x9IkKooj3bceAYb~xt{^6Pk;Gc&Z&l+ zAJ3WZdY;zb^=vrz-MqyfbXv>A7K5ahTUdqBoD zN1x&2An3fCk$8t?cZTYtUwd0TKz;rm@z&_0N7J2Bn%gs}-@~Zie>LO24~TB9p!$$6 z{iijZ_P<$ zb{gWy2@p>{K=%P-4ZmMW@86*x*&oo?9H{y?-x%>og}X z(0qgE{sVNjcdX#N!myJCj-F{O7p02lsi*mxiQLUZ=fYOB!I&pz5g&|w=EjbswJWL3 zTOp~~h=e=}# z1L*x8I)i4{zrlJupXwiUcXz5jXu4JK3FF821nMD|(!IpL9Z_-9;dcyQ<3c4`BGwC);TdSWN2$DCi*n9K_#VR-_u)Lyt+I^$tEucE)FXJ^r^%eW zh?zH2;iHFC{NUw?S2MOnSeFiDxz8;GgX5}N*bZg3(S;l}PVM5Q0=Yg$>oV4PeFI{W zKWGP3tZwL;5-Q#id^x(iVQ&^rUXHw@N~Rm9e$7rxo2BcZ^Edt?X6t_;{@rV*69x8k z?$1=Gist)Xb2sxORm!fD=v&8?+m@;rzvrshR>0}Kgh#YUm-NRqyF`sP&t7-wJ4yJW z(4H!|7kQwJuA*!sY9sg6y=GTYwK>mzTK_ot)UcOf%a?pwx7p8iupYJR40@)0oa`L( z@_sM-eI@zXA4k5Ee1^`w&XHZo&QbFJ)Aav2^{snlKCJ?;x!FhG;QV234Eb?+O9kSm zAkF~dmSC>Y|61bBrx9;nrD91=&p(!`ZEWFp$I;b&-%^A9pbsY`k?MyxGSt>5VFv6RV=@!sF z@eofebsJj*_GP)&E?(4+v5h}yw`z_vOluQnxe#*NFrE!6J2}XQAip}JTiP)r&Km63 zAVacg?`FBW(nyA`Gy-3F<(m|i`5&+^Ms=tA@*mG4y6JABpYGJ(&d_DNouSK^2iwJi zC+RWjGxQi?smC}sk7G?aW5QXsul`^47y;r#!S@wt+R9S;Ka6z@H(+n(oktuZ+L8Y_!o#>Zwg2%mxX;NX3+{>;&yJz&s%rS%P3muC103Z39ZmN(mlR937bb~(!ac)+0ha=Nded(II+-$H-% z@O;<}(w^VSenCM~>O(Nb^>dz0JW0Pe{rcn(1aGkE9Iapn=PlqisI?tHym5|iMeq}+ z^0xga=c{n@bZ}g9ZI=kkSe6BlWx3C!e)i6O9eNDw9Zwd=+Bo(_X-w*8z0l86oBg`N z#s5}k4m**&A^rMT*wGweJJXYO;d+KHJhe~i!Y@=hRqYgA_})Q1sT)e2Zpaj&*M?5K z@l1>L+N>L=@jpWMIeb2J@mxVy4*fZFMQm+VI z_<#&ucxEgLSBHF)n(No-ImYoB?epi9ZuK9!)T=(zr~jt;jmdoK$UTPnE!5@w8l7#T zoPO^7x^bys%gDGSv|4od{4~dt9KV|5QZ>ix2g^BzZ!^bti%b7lDiI!k{|V7@((*Jy2C6W;J^BHMb6=KD3CZ;i%?_5(3F*S3&zt*d#?W<6&-8B+0M zw$pfU7VUrTa0+=fDo6)pM`>}kG0Z+KYoMO0qw>WAu1NIhc9|3Z)W^?m(%#N$=}UXS?NDf%ermA0Sw zVm;w>=+iQEaelqU{%>`0J5SNY;obiiUECi}e6fD;f77R|^#8Yg`Y1y`c# z3;p07Ly7<7_`0yg3?rY;F7ZGd^7AIqkmKPzg*Yp>8t;g#*k=BZcs1F^W^wzH!znGc zLJWvStf3q`iD)jwfF+u1&pv4jXMQz@Z9jpxPQ%#f`Bt6UGIk=jYqCh?k{e*&#ysO- z;)n1Je_Vbmi)ha$o;}RDY${9{N8P3CUf!q9cD2VpU|p2TM>6lF1IUY&*7EJG+U6qU zO4({`&Vqlf``pc~3V&F}g|{y5i`73^;U}Nsui&fL5PIoAP^1q+uJo9~$qkX0idnA7 zc5HD6b=I&S!!qU}kEr}}D>CY1&r4ey`5xZ+bRT$tn7ClbG0vCN`8DEsm0dV+pNzxW zA^tY#7}LS|%Z2-pGDj-M;WRS#l53TN23s=16;??x^yvjP5V zqcp;c4JtO6dkqee=R|{wT?e?X`@f9KQ*!X+*o0SS!0W7^O5GClMY|P0t8?s|@tj}N zLsz;l-m1pgcD1t2qdHp&Hg*q_I;;xhmZUkHp+)Qm-aLMAtI|nbe$B}-aZvu1Yl!Ef z>w%Dm$c0Zx<_8_VSTUPjoV0bdI6PXskq&fua^4-{7o0Ne@Kn( zhePJs)hxejwgW1@!qsmcPq}tnGwIuZgPu1dR^bnaMC|(aWDbR`1XIVUZOrd5Gts>p zu@v2U*GE`)eFN3qo!G&0k*%~Bx(wP6iB@NKBEhse+PE-d?lJFf-tiG{9_LtGF5S%Z zu_<{%{)J`lK4n9g@5Wjr8t+DW2HiDcmuT^2qWO||GWW6O zr00*+caBROlHWm9hCGy|BlC?73YG!~UT8 zm^s>$!a8w$8_3%_;{~41xNi})fmp`bESrj2fQK1|9P>6UDv%!mvRTa08?~~0E0wol zz3QU^I=hbiWo-BE=D&zgdtV;elZvTw@GKo8m$|a;+{&|jJdf|uJfiOJR9*MoCq~LR z?wYczs%GDaxpt&8YKK_f+s<-i@W|oeSu8gxjknlcm-nO!3%m~EDD0!QQD-@|9Q@!=LgC7;~i9Io%)Y6b-$0=r~f}3(qdmt@B|;hbwlOZ)%sa*x18y8 zt+{xRvz5+>9jeV*tx@2fW8P}W85W^yqo^G_PmC*@C+e!^3E+WqzT#n9OXSJBnP3h$ zp@G&HxB##Kd;nPZ+b~J@w~z6%=x;p zLmVX-!kPFDGa*{_!Hiqy4izxaR0Gwo96p5K`J|>_PIl@$ z-ynPmAFt^ToNP0JbNiA($2cAv&X(#y$NKVM!?rhIN?(?0#5XeJdDCgXpNxQSGMhQK z9nqb6!2PtxJmAx(*!^-1FUM|0+;OX*FV@jD{d)7f55CSe$r}5XEoJ?Jk|{aCsy1;? zuqOq5iov-mx>Sz7F3x$)_Q0Avuh6$0X*s{}lhZtd9mqx?M|}T>`Ke&p8jdmV#;#mR z^Pl%Yf9y(*38~tHT=aT129FLLw_A9P-E=PO76EO$7@%(#xyE(@+k<_u<%tvAh1%=^ zvG+xJ-e4!U;eGaJ9~gNbK9zhHFMbrE!?If1B=20g*3)bi+{SgA%GZid*Q}wqut0Us3hig#3Ec zI^^WX9MQnkE8sM4c~gQ#uun{iHCp zeOb@Dlzs(Rw2AOCwofdMNdJUsgK17iUSyjh&3KXZ{4U7te9yFwd1WUK&SR=9m#m-t zhVom$c@1zaa+L1o8%bHGPuNc24d$P`!FbWjz{Atu=$=M&3u_2I&42n)ak^NW%IkGZ zzTdVf{ZUH$tI|_?5aTo<`Tt3?ySsrqkYjA4x;EP5*Ts`3#VmXHBBBGdClB8cPZlsH z;x^c%Z4>UuHsR@@braqua;h6 zV8&(yzX$&?%}sT3OMTx6m(rSN9$*YNoNwUSGoxPw7V0Xt5y8HrZxSBHq}s}M4bP0~ zNt@;aVr*$XmEUTSEWy~PyNM2zjqOSMiI)eq0P<+88g>+028MG2oXwz3Zm&M`X1ZA}&@wu%mGYm#G9b1d$-CxSIgZM@)JsgrW* zRvuU*9DS&3bQjwQxrcZ0d7MV~PQIEBiIY(^_`~Dhr!mUm_=fcU@GZhUdJEG}BeaHn zT-|}!g*W)R$Vt$3d^4?8_-8K{z|Zn-U6j;<%Y`e@Y>j<5o;-Jo#H5-)bt(-)F1bFL zNALR#dOzs5pr5NISu7BgzOlc}WJc;PdHxyzE~Y1*-0AyJ#WA41_GtO&J3Oza`anPD z)xaxUlO$SE7xQS=R+WD&0{zJ4bU;|He9z)M-V)RGtBc6!9xdu2@ zsSxr0({Uz4d2n98;2)VZ%J}SH+y+Jh{5@7b+H4_?^@wxg$zNY`t2Kt6mz)P5J}PUW z#Hy)bteQ92&ZZn=AE_zM53~`Do^8{_B3eJiK1^-#5nY6gp~shTpXA5qTb|7%TU;Jb zmb|#gT1V@_q&ip9_kf)RT3~{gPDo!g^w%+$R^d-DZ)XD&XXwv~#|qC+9d&7MPwN0_ zK$gEGxj4D7e=gvw$R$$n@RhO zx5QM$+a!K&J=NKHX9K;HPwx!wcnO%usa(4HBQJ?O`a?bP;tMT5jq6^Q_NX_uOxe!T zx{NKf5N`x!4xzG9?jG0_(C=&1cXk60hwiUc_rNQCQ^vJqp7rHHJ?WA@es!zjSGV@@ zt1fkh4;oN?RPw8%+;Z+!6HSFZ6`q}|biao=2Ca-AfOS$b95OX*6Ss>J_!VmN{y7N0 zM@ySUoC}oFRi`}TC$40>ON{Zm;KLAqnrQ%yX=t8x&Ua})7<>(4#Xjcxef(jpm;6iQ z-Z~^}ZFJ#Wisn{1#-L-7_4WJ@)4Ahl%;>&`expq0Cw;)}mHy7S@6DroY7;ONLB}3f zyiJEXS0;MB<6=#FTgDT%m_L#EY28&tx;<5m%%@-tVh^k#-gz+1x9Z3mwm+(-J$(?L zd9D!wqPt%0h9vC;tH5_snaw}L8J)4STVke7f`3>A@KfQh0nBSReKSh?E%XHWRn6Uu z|MA1(G_a+Bjr&jjrrcM6gW$3(oawQC9roh>Dqx;y`zxu=Zf!}oTW=(pGR$(%XNA`h zf7$q3S8T!K_`a9;Z`WX{Q}XDGEEkne^4QCR0#VEL%AyqJ<374K0xbgg!>a^+IhQsP@kK5#izk=XRas0!sz5*Pupi^NRJ5*&n!7puq2_M( zJGPcFf2JGiEX(|XlKhj$zw`MX6 zoiW7NfydrHHjjN5aeg4ryjof2!`{a>z3<7s89{v$z@AL)z2;aZzZUjk#w98EicC6| zS!gC!@*e48douXruLN&cH0)hjmv7TMMZow`yxOHSXRtPI8w5FenYfj&a&IU%X*}ug zCQ1X&7;FzOQ23Ls;V;l0_=3nBr9BWhLOSh%8tr|w{{iDc53LfKw~@wvmBgGI)0}ka z^DM1nmB8Bl=3_KBXum9tui|}gFwLRL4qC%;kCii}DY@@xW~8CcrLhNjNtW|yQ-QC> z`&lWiPpu=E`V}zXh|ioxw0k=J6;k`~UQNeh#%u8dtIVKx13$2Gv?++IQkC0Cd%zvE zrx493#~jnHO~UpId%!g3j2gHY#!5bK1O^?}Eb?RjdS_22?F~+~K%c#l*3{vnnS6iX zL4ke1i#i74bw1-kkxTnJzB3fK;rfG&Gc<_#_$A#2&g6Mr(Aw1I+K?x8>p=lt32ET@ zEC0CA;yR)|lwLVpo}2%M#&?vOTd)~$c$SZehOMIUKs!+HYkWQFmlS(Rt>rw5`hSbt|9u?b{>mm9^0?Gq2>PtBd{`={tk6_Li%TWh(Ns z_Lj@(9=?pgxgH+?j>t06zAa+;Xx=x_USN2DXM-5J%f#%|a-rqKlVdlBESGs7(VFSD z>y`M!z~HPTy6-1C3%qxC(Q;a&x7+Tjc{=QQey!rSB5k$8m&7}sK*Z{Se^K4?ZmnpZ z1s`$v&9YpGcM^|rpFha&G|@XZA-)j5M?CY$dXHQicmJR`4c_I~KDj1V)AeF%cYyk^ zHUONhg|z;!PoAb}BgfJhU~dEukQX7EOf(jL7#_xkSi`Z(z2MP_KCgJ`Ov@dT7SSWuB^65J{53mC_=v$Kc zlrNRZT;NYUAoA$jHRx;L08yQX>Xw~=&1PVk_@#C5eV36C{$Sj0sK$6Fcs|nN5!a9D z?jBhiPhP*SyL)gVL31M^a_JBIzsF37Jo*FXnm3*hKKjeC5+r9On1=#y2fLig&ok*# z#%-0hf;B`xfbo-!k$`pOr~RO^zS(-^A96nb2EL6{=US>S=1zX-8mk_-4T(jmYAP3c z1FVmF;AzqNok@yh!YgnghZspK5)hp$RYLXp(e^frt>$hPGMCE`l-bnQ7Y8o5( z1m+lByq5D!g%6{ACEkI)D-5h@>G$Ksc^%Ou^mV}8BF51l+kdF@dbjd_d6m!411Z>t zxnw-BRg5zXzuE8>_RAX=mN@(8sWP<0PL}apN|$9M{3(=GNo{&s>D>a6EoJm>$vC>w zdu5syV;@tz58L+Bxi6QCYPwd3=P{pCLs#%RwPAU-Z_pLrMmqxP+Z+>D*?QG;JY{L~ z1%6}*@g)w97<4#qYW^7?e(c`p-R^JpWXn}V#a zMH`dugx~rM@|m_w@oH4}P`fZa@jjekV2VY&@#OEkA2ODgW2?De+1=L=uTx8ZLp;C; zgx=zYWIla|?TjpvQ2Kdq~ikJKu)C@iNAgy|#IR zH75eh+-deFZpfn~2gVkp1{05R*iG}xg1`MTQBCRPv=`-te{2mhmUibs*Ab?=$Cn9U z4MR3K>CreaX7fuiR*bi^h4;*2`#$UHgk^iIExbm~8YA_kXT67gbqmW4Ih6O8l*dJL zhp~4kub*U!JW6+2KekRfK<^+;&Dm{ki38_V>jQK=M?HIip1GBrig}N39aH*>=iRWA zc!Oi+cH%see#7tjG5S4Ddx8B(&of_O9JeA9>+uDFe!DIA!}O`t$2Hs53h7hWs^SW^ z(sPnQj8*}?Tcw((z%PlgZ>r=MOQ}An$8_p@%x(B5IeI=H+h$L;9sGL8IZhn{hO|u_ zNB108K|gGUQTqbazC^3&*tjdHSzGD4H3=TM=52}ljdz-IB(^|(A3o${=D%Uj z^mn?B3%|fRM%2g1s?S#JSy}QOzUjz#-Yglfjc7i6bhFP+Ca9Q8FL;l)%LFE}|D3`; zycGCoC1UL;#~%MsJM%Tya+#T1HTxEAob4z67qN}Jv{wu!-j4Azv4$c08{fAoOGx%5 zngEOi;#-LZEfc^iLOfC3lKQGsw-J9#@*eZ6^j-*d0pTUxID^K1XlN4O5$D1;y#@S$ zpWBk&yo@z_SKa zo$&q73gb57Ze2~h{_0nv)=5hjSic~;Q+-K18S9*3d15c~I;gG&-FR7?Srbp5*-kWu z(zO7|c9e$x@lzQ&`pZnaZW`U3%xBxGmzj3uC0-Vc!5<5z{^rsuN=>Qj0sbZOzoTSR z;LRuKxzC|tz?7i(cc|x&yI{BYHqoTF>058Z&(_lD-c{agLC*s^JCVlmK9}4dD`m{2 z?i$z=-z=}t+vE~0-%e$fD;#mxxaMwd13kZKM1zHKhYk%s#BDCQ2e3>=?|G>|VdK8o zMSDRkZvRO6457Y*6fVf`RDI9mGs3s%8*edvMchOuALuaNTTOZC-oDYiBIPp{vW<}%j7#})lYfg!!^y$7_GDx;tzo)<>)VnpVEGGakav2q5U5;BhQrh zp`b60kKj1=m6rLOb=IYxK_Bk$KsjptJ*S?*rUQJvNqc7gIHK|Ndz80d*Pr7?%*J_r zx_%e#f!V9gEw`UK?lj$xvt}Hi|<)N~E@MUFvkjMF5R2DG)an9po9Fv9O@7TBq2 zAWK3%&)|H_-NSMs(r~|p?&oCWw-3{mG2yfL>v0KL-hO&EE_OWcjda*3dQ54rlAS(| z>akZnt5eUwBZF7wa_N2-<3YufKle!4^`~@29zL5h=Mg_VPlPG$%%i}wB|gk6btd4+ zCfrucJQ(JnL2@$YAZ!RRhSMn@zJa_KQoh=7OJBWFmu!9=wk{uk1(w@?sw?^4Kfb6d z*{yUXb2q!}X^95=4TbyKMhp%GmT?UE)u0taC%gO1wPleOK|#)*%)1+;uzbSg&MX-Yf2& zpMu;DnlVVzUallw?@xtO;0OK86$Ml58Cv`a;@uv;^nVVdvF`J(q~v#XTOXM9+Yhc#vI!1-<|2lRHpabS--RU(HR5gt4-N|==&y=m5^n9`euJ0 zI&om3djikfxn*w>{b|a$uxwKk0-sO)37v2)jkBpsy)$?~*i6h#9DE;q9k0nm+~qv0 zg>PX3vAEU<#N3*NG`fD1#v?x-wJz$g>_Ht}-Q#2M*Cbw;uKrk8_eroPO>}j;iI>*s zYHGmMK>UlYZpJ;QG%x!l;d@=(H)i^Af1wZhHvIb%@?6cU`jfHUQAd(7s(}&zmehYi zWqlfJxsjcu8EHHqDuw2M<=f%Kif=}i@{SjHFGbexhW=5TXW4`PZRWvtF z#W^JHPo-4uDVjVt`vzS>D|4Zvuy{Y@cwBDwSCupyzMlC0Q;3yAeH7@3b01ww&!1#} zNr`7zpuS18=~2ul2Pf$yD&sYE4mGwO_L9rcYk5i`P5s3okRIE$&II z!{{QqW!YZ3C;6WGyi1frW~TJhVQ)w2g_N%VI3yPQq2u;o>Z5$j365Pz{SlXa(MNk! zyhC?&BcCf^tYE_iS#lhFG857_^_v6cJWylD_c~sm}t&m*}$vRle~N=`RP{aYxqU)^`ri`G=_Y|HirksTcF`9zc6P@lr%Rr?(k4y+l(s6OXc4%q98Ct!)+(i+eN2 z5hohtDNV#naw!kdbWa)m&ZFN?DxJo|^zDZk7jO#A_qc1f(zRZmHHXoT*D23kg>n09 zs_iFHy&j@*-*l|sCYbe$`r_0dj`oj7p1GIfsCbkOHhh3d9xdC%x@jq!E;_%z?XVAK zA2G-bbp5V_{~nl>g1s=ug$MpDVy%T)Hgv()#hEX;fo5J^mW=rkKH9%F_j8OWi8Jc)JY zSNkwzsakzi-`*;HD;Kl9A>xj|t7t0X=Rv;t&~>QW_iCQ~B=PF#1K>_*#%ewnW4mMO z`%ZHY^KrR}J&f~FZY>tWXDyQ?!5nnQl^r|gWo(p2EkzPklG3@U{X)auZrK(xXbfK$-_BVV*i6R77M0`H^_I>JkK#C9y@eF z4$l)*XNH(#uyfls3 zOH z<`ZIF>vuhwsHZ>1i=Lg&xSF$x9sm~_^Z~J)i#o72q@NJ5l8TA`&eB-llRVQa>1QIc zRMZ9*r-It6@DWKh=&yksK9&RSc!F&Z2itqP%BQ z9-JYVl;=AgmVGtR;yTJRnx0RjXOk%14f{{4tDEZbFzsUz}g0G z6V|p{t)D_BzH6j?33uKiE@S*Wl5N=A2sS@u|!gnf6Vx zpVubAM=RguyAJVvM&dizTXLkoo&8fqE8u%;b}Sc{n6l5%2U`3cj@6q;EM>dQhqUX7 z$CP`5m#+Eocu5XjuZYJzd31Ga(kD*x8N}bx{*W8oCZ7LHe&c1d6X%?Uj7wdsuNEBd zRFnJYk9W#^3DqCawf{}M`z+JH>+EMTurZf08~?1zD>bD)0zBau*jlRcw5-?{kh{G* z|E-TIAVB4q%H@sF@f_|L)Tk1?Sjc9Lp-nc zlVA*IB-ep{R$O>5wfmcKI|#gMg-?0k=Z87o9OTP;sqRxd_HvomB=(Bl_Q7_5zJ0B> zS4=bZiou)@J+-7a_P5PE^QiQgsRC@ zuNvYDo(INgImxVkDvRj!we{WI*Gep3&s3W0_{KFf-%<8;=BqhZM`R4lv*;U$cLCen z8<0OC^-Oc9uf2xUzm9lM${Xl=))ypX42A27Z;5{<$E%C_4KX-N6~BKI?FFSOrt*2P zt)X_nrfLlJ5zBD8=u~YnAgBR z#GGc`cTmppD_>VWPRD4S7`uhLI%-Y8UQV*AR|}+IhYF0AcEquU4OHYgA7ZZfl)eZ1 z^4yIv#tZ=No<@8_d2ktH#SLM2Nq#)raDp}s%=7G*Wi&)yb{u1Pr(Q#^U|R@72D=u{lr&=b49|Ipxp2J;vp0fd|+htV8un_BWP( z$u|y1iuYr`&XqO?Nwl{^wb#kBkMacT^X(hYj-+5y>jOrB-X>1{`vHYxMftRtc)LE6 z{#a`lyXji(Y8P+NwT7-c>m|0;>vY|&Y_9)apV^NwGJp#}@4vmZH|;mJ%UDn}zHXz* z_8SQiRc$F@doI}ru#GO#v}X#G4?Sd`+#tu?wqbwE=l&#{IQq9;nM}Gs+HofToyokM zr^Xq2rhhS}`WtLJxz^m+4IOQd!l827HF>mb*Tm7XU008m?YeTbY}XZ|``a~Pv}_mS zg;LwrQM(Gv?aHp1WwjzIw*)qwC#tKZ>gplco9g-u>IQ5&r*4bPrA|C!KHEfppuXiK z=iHQvIopE7LdMDlgH{EZg>pHsLS~xzn$NZf2;P44p z`}yJhClv%zkJNoGu|26DrbHT3=pXDUnFYn^X@RF0^AvhsKkSqP?R*cNoG*y8TqzGO z7}uw}&d0m2EiC5mz?K~MuP!X^!%>8+5ij%D({#q}u; zBk5{1*qz^Svo6`AH_{$HPt4Z02t6@R;0(jB&HE>KG-u5%QhhbZh`XSlevrn_Nn62o z2#@n`*k8^)t$=km5^pMQ-*REbInOBi1)s6Xa+?r0WrWv$?@k}r2R@(RZ4M3h@;!K@ zMd~-~5yn<~87mU^uuTnyn%SmRi?@que)$b9-&n=6N2#$YM>7`Y1l2w8VPop|3c7mD zH90YJVGizn#+sZJl($_yUrkp(J#Safb$Y&j;wDD99+`*?&*J49*a zG)H2_1H}6*OvUv1%D=ryunlE!p*X{*vESz~_UBtAtXyf=0$zCObefOWD&eZ6`50cs z@~*B2>~ihWltJ@xFwWMj`NV%Ct|)9W7mAzjDNYXpUU6VN?K9dcuU5|ee^Cau4cBox zjsFE0``a#*w&0bH?p=9ax9o`|PmXhpBJQFoU8#97tt2J`8Y@){0JQ&*|n= z$y4F%rfhIYZBauBaKON;oncHB9;3;EYz-S`uht|^r!>SaI70M)E|uY+^#%tmnqwe>Sxb{S#Ju^`R~QXZu<0v9I3GT2HW_f&a#D;E!IEqxI3zN2o7C z)EC;hQl9bFHCtZgtA^Nr4zF|VJ^j26;tJH8(bNrx?)hZx*=9TCWYZ&n9}dljhkEXl}_f zxfeuQ&8vDdlJ)J2zwm9W-%~SZ7eO|hh4?F%P(Q~aDd?q^QD0-9921aum{r`aH-+?D zX=XidBh{?{acIE%hiEK<&~a!LUn5$Kbl9tSL-VL#CX;NaySX^)7eu)iG~dN6%sVKjB^YX{OB>g0L)dsNQJ z1<}+sf9XvpIfm5(V)hB$=!{>XKJZ6Y zkbE>P>5oiELB|wid_RdP;ni1gUq&zLv!`cYisyiNp{)=v96Koe-}2Xr&A=G>AFq8H zeS5@14UFSCg?&p_iL-j--ujdav7pz8iw2`S6;muSPh310F;(WVtY1%bYVJuAFKi6a zwS8x<7616~Kw2{q(`SpAiCAMYmQB7>zv&mrcr+`id^~s733Q!v;R66%;=m3b*ZGvE z6n&qNc3wE&cFuiZw*`MN#-wNczP8_^O|*ZaFyd-KgJ_)=z+YV7Aw0SZ{vWLGdtKj= z1Qx_B;=4P-i&Km#S2W*(ZV>Mnrc2;`;98WDj9 zeDHnLEgU@fept2lwygD!KChwtA!YLwqyEyvTSP%(iztq55hWd4L{V@H`(5o}{%(c% znC4!2So;2h-r(HUAC5ofp)2wEkKw%1OIPUj3#qIt(Z7+!qIHwxgBG>>Y(CF=+-(nC z(qKcLnAXw2F>4Vc^_fwhrvv3{*&jipJqfWyboj2&`ZD!aanrEY)NEI)IJuxTrG;8W zq^?zT8m(eZQLC6se|n@vSXHeewy{<0S<)(cA8!@+Z0KdX!ZTU-xr%wUO=nA+!<9!4 z^SbnEttr@$cq7uzYd_Ib%*{_|ZUW!7Q|*J!_zY6xqhV}_UWaI0=EEn7(sGbS^$k#3 zlS(TKXTaMCyyeS~DP4w6fQPl&<9oAxB`O>qnrbGhgY>`I0p_tQJrA3QWy_5|(~ZlbU6 znXfP&Ku$!Sjd=Ane1`R3Jx9{pIc`hbEqM-%f6H^uecA#6 z+!;5u1HOy+_M#UNv$R5ZHZHQ?BUv_*SY&@dJZM4Jq9ib1-P%+eHokKZ7bKzZUjxlz zc1N>#hiy}6?8Ea@u#Y@sJjmE#9AAy-&_44)VHx*|-R8ZBgZ}87zJJF4c3-9H8f4rcF+tkAR^>XfC;3Qme z_PwbY0bm+0W;#H9>(a)_zBKD(U!oreNBaA6|B?Q_eDAcv{GtfV>q zUG7WTha#=qmou%Cxj*+&KcYX4x)uLXKki{{KI+H#!W8s|)m7Aw)Tfno5AynD%*?8L zMKAT^2JnK^kNDmmqmB7q;Ja0-enku_;9k|nXzs(76PTj$IO5st?+orvy3O6(<}R97 zyFQU^c~-kuAZ~=)+ReBUC>vvXUpLJSqg1$(_Ys|@xnbRBCumIF@7{w<$=29Bq5L|& zc`TFvElMv3ZXe>B;0iqjt{qfYTw@%Ye7{ef%@*NZ#9O8`eCtj67VsL6(ETlQNnRit z98&w)x1N!h+lPQZq{hlpe84y1pP|NTj2f$kFBz+C!Fz>_#kO1Qr1AQ`8n3O?7l`XT zaJ(>97&D8;3S+kY|8lI1|7ENOonWjEjOrh&?P{#rGP3>X8|V@r>FQ0-Qv2MH0sGv7 zV~Qtcer}8KDWCrW`i=hn)zO2j(|GWh)KfY6@cR*xA6@Ex6^%s=`u8;AjjJRcs4H<< z3brQRKvT-`jXWx2q%8ClHCbML31f5h@LAP#*u&?$G~@}|6JbA{1a4$YUp`Cft=V=p@h{fWKJK8b{-=AnfAh4dNnn_w|AAYNzHi5Q3DxJ%GO4HiXhbS!p@OEf#pgd8$kY|J|=GPSxw!>zh+PQ^x+les|FsJ?U9o z&&7T9{5idwugiLvQ5o}LJ+*xd$sm_fA7ea^(Z2FDux=Q;TlSfQ+dWp<6OO#;KpJxE z+^U$EWxh`Hrv%s><#X#ILJKTqUAZGOR)*TdOTX%u8*`P8{LEiTd2kVZ-;qg|_a5Bu z)7nM*1)20Gj-H?P)zaV+K99nC6V+IK9XbRmGbebfl`}DFm8vr;=!JN^v^Mek&ks6h z=oQ6bi}&8JYVRQWeqNuBvt6`ZAhAJ;V7J6Hx`o%yCB&a19rlTM@AF?4^H}fBlEWOj zGk4-V_>FTLZl&^^dW3oprr(7Qh3Wt~uCK|fU3ZhS)`^GE*cE;k=*vFQMLhXLj8#+jA%pIugK*eY7gaeNMKVD(=1uqu^4uU zLYBXNpL4}`^0Yae1PWM^%mmB zClzKeZ1d5tl$PuaMN^m$mr}c@CELYSXGc@@&iMG2vi=1)2osjHi-ty8$G5kODL1z> z#?bU}z)4uV54u!BkY`!ZL>v45M|=BtWYj892(y!z&)tmD_JU>Ckz9CFU}!ZQC9VAWur*2#X5*gVZv zs4gmAL|Mv?Xkz*Z(*ocE7hwMn$=GPff4I3gU5oca%I8*-da@mT`X1S?0F~jy_Uxdt z2dj9rvlRX59V2yIZr0OEyBXLj&LLXaa8{n&*H~uQETDUNl4vY&t;L^v)2Jir`r*g& z8{3+XZ<8ndJu7s3R4k?MX4ff~c)$v(ms1zeHJp3&1myYR$-_QpJp|~0hjA|BcJlC% zw2O6p@pIUIAQZ3jh2m9-pqDZJhftmFxofix8~BUDFWR0+t2GGc1V0C@eL#)}+ftWs z{4?b9shCT2zX9VWF~j=_s_50~m!(1C;02Tq(Hv=irI zV@=`%V8iZO*8S^RNl%Y(jHaLSzFBRM4E(jh+{Y&uw4{LFasQut`+OEwQ<=^g;;g%$ zOtAk+P}(T5uOp59TNz3J;a`IETord`hf4RV7`TiTr7aiVpn3Ee{6XpWdGs4;^`nm8 zUkY$OO7no`YYBa$C@;wR-HIxlnboyB=cE+{#Pjy+{U#+(QhL7`Dt<7v_0c`*_aWu4 z0NbB!s9T++-6V%Sj^}Ch9OVtg*(8;Xa-BRVzng92ukGt&8JoQd_4F{*Ao@U@XX3dv6Mf%h;6K2UQ2{XdlEbxYkY zp4WM5oki_?89 zP_qQTuY>PFi7OWOI5e}TiPjU*5RAzbY7^G@6~m$_;7oy5lzuGf1NP^qn{g(2t?i8W z3&*6-C-k0Y_DDJIJu1(q)+g@$RL1X{i~I5oqkOQPhRtkvz}|R_-i_Y8lWldJy)jDH zKk#?2Vfz-ZiVpWXqqE9mxhX`7O49Q`@_nZr({wN5@qOccz)X=Y6LR6H-#GeGkZ^5QIm zDAw4pWNp_53FDczG9V$5%lxs`LXWQ&`Lu4VOy-$iP(8q_^qsHO$+jWpRJBXa?J0V`F3;7Bto4wi z)U-7_*zsbCGXSh+?6;QdD z>rA8Rdlwf*Q)TD%u#K@#(Uq-Da*n^D<`~t$S(m8)k2tpFB$fd%w}_v1Eh0I|J-CF=hcI{6yFX{2E@0TZRIJB)^@Dww zi}*tybOz*J$aFg*_rX_Cr;uusfp)f}Ox4a@#}2=#-=5;Dc=-)fmafLfw^8!);OQZs zOMZTa^{b|Se*WYOC6-~VP8X&6I9i9auFW8=l{;z9by%o3#>J`s$@c~M%;z-qj*s$B zJwKD)9h}my-w4aKuW3ugA@Aquxurgqn}!xO*jGH>n~v3$(mvHDA_{-S6N$UPOZgn# z3v2|8T^aaX79m>zoq@6Tp>>(e)j<~Y4z>aM!5xb4aMDz9t z#7=V?w^~a_^sqh9$v>8DIy@3cEa{g^}j=xSgaMa>ouZ63p5EW+)VSOS={;I z;WW;z*k3WwE_x81Y4AE@FMgxCynRX}R0u1HYi+8d=kEZ;3 z47vvokf65tPA=%|wj&SE;`6WnFQ%jC&57s*?*Msr}FQGG7b)jGq&4U#a4umJ`j! zzJ>TJBoCFi@jDRrcmw!dg0n8{TOLONw?rl9{mK=&@^-i&(;#3`ZQ8-FJ0 z4E9mjaehv9JGDNCZPKA%!@L9?8&6|&P9Mhg#3a_&x~jDz*4M|;)N*Q@V;ehO>5zs{ z+4uZc!oJAd%yA9J8p~21<8_l`lmf>S{5{jp#i_B_f4il;@l8s9cJ$t4W>}%!Iec$2 zOtjNQ^O5DRx@O%ICVEuWWHpE5MNPDRMpB=Z5gmVb{sDe}G`+vhZ0ED;3owsD7V9or zsJ$$ktNLNjAYLnfEMqY(PMt~e7-Xg)<_?ZEzkzrb@K(UOg)H~TDW9it7W?X0zrBve z2=&`Gw!v<5H(9@_B0g~VtI0=X_ek2?f@Y#}n^0Lp`_sKqch~^{c(<4-W;D_E6vOMsuK%AKMYQAC3 zrH@LxOW5P3&y>7cDe>JU295Vx!_LvDJ3j-e9{J4y=vRc(Mw9*uh=G zUDU{a2@$=Ko=Y4Io!02`kMKDUzA^Lu@BeO?OZfp0(2%lny=XZt-; zmPHw8C+hq0b8=mSZa4l6*wQM_G07Glv$@1$ZuV4~QSt6ifu&9Sfr=XpKXmMSu)SuT zTnJ^hq%2h)bYnlF@?6?Uynj)-Wo{~u$|`eH8t%R79&y^_^Udn{Q1x8iC$hc``3}A? z*q?hGJ8*7~5Q<^Hdu94^$K|O+kN0sGoCHI_B+#XUeg`J@Y)Yhc(q{wn1|kcAQTb?a6w* zRE!Ch3fI_+Q?u#Y@HIR27Mxc|yu&+4PHMPnS|UP!i|B6!{jI-xT4EhtO}c7yh25#^ zbPe$~MVTq*P-tX<#1Nu6#JEB@vxe+Nc}4)s1!vBfN7U}FLa$Y+{68@-J+tQ7h&xoK z&i6G{CSrm3RGEHL`uM}A9q+j4ox|$4n|>c~(tkJ)x`q8K@;!{_`sQ+?d&om_F23>E z{jzLc6ERsfYrAOn*+H@f%6dVScOcJVjRN;+rZygW zdK;L(>(w{eR*mS+I`|jo7ubh}<=Ianj-b|HpFIitfn_`W4>|+;3(Oa1UV0NtSYCuI zb`s7egG=~qVJPz*lWf1f1b##wlFv%U7_k)ak7jKong7Q*cJa*(9FHkC5qDK4R`dB8 zcue@BgP#R{YmVbL!#>1O;b5Crn6C-!&9Gtf(Kir3;t1o=PO`JV2c7qH z>|f3O5TkzRpn7#sz2dPH^2}uoK0D?8X^QDb4yd z`#6s%lCek6dOw~#{rw+X8jaO`$@?tq8Iz23cR^93rPJ7>o<429aBvj0EPRZ)6$O1U zwXah3g?=P(AJwC=0l3)vo$+~xe%I&`0bdc;i5RSxU|*58O$YY-v_R^?gNOHfO`Ux& zE2|4^*t*mbukw!3VDA`hb$`?7`O@c;>G?Td@q9;})&2FadY_(;_^S6!tNRps4t@f$ zDUc7o+}9Pj(y`MEK`)c<8?sOF9{7sF0r?Tr`^vA#?-`IEG2$m6|IkA2ulH5FSSRoF zq4~C>L+yr4sYzMOL;KiS#XY=_vA>%}vLVqWo#c^fr6WZe?#r{z0HHs?vs@)Vw$u3L zsPU~RmbOJsdHk+APlj#>dZy7?<4mkjJPx8FydV5;kJW)#b>mHg{)gMI# z*D2+6v={l^f9hr3=FS6>#<0#VK0j4{na>_Nu7T;rY^tL#GGBNVUm6>o!*=h7Dh4sW z5$CC!FJ@KE7vXX91?&QR#tO0EkMdiH!Qu_UcRiXaoL!u*CO$5A)cjO6$-f5CxM-d9 z6^PKg8p+pxdtAN;8XhfrfPGXV8y{dF75Ju<(|!hD6~{*bx>v#<^_o>z^*QCNM`}BZ4*YT1Rg>yI-)*oxZ`|tW#c$$;RFzeLSwyU$Cw7ss6(L zrK{h=2lU+!oxao1cR}i>0QVhy#v`s+Uz*OgQBr@*_S@?BC&YU^U9>|?Cs`M={b9E4 zjwc__NIuJ;zWwtZ{e7#`{S$Xc8`tbO#OPzt+Vb-Yj>V|sxc0uZ0>mlN+a*?vHqqAg_MEp1C4Kvt?MB-j`)-Bz#h4vw>3gE>$GD?@ z_ukR(k6Nhaf-?s&=GZ%Yr^xZbyQa~`Jg@%w5tdKbK7{DB(!cpMnlocnem)OFz97de z?vq)9r}WeA0Bk^$zsViFeKJaUR{E74y~mBSL!($IGOm`gLyB?f zCNdvlDqR@bk}u~T%X*sj0?9}(hz?^%(v7RRBRQfTI5jT_)YoKxcDc^rW8?VS_?2A( z;zL00MJ!CedWL?Ia%EZ_>{?Lffw$VzAeSvkITRZS?CA$#|~ba$_3prUSnPQ zX!Mg7eGhR`y~dLQF_1Llb?!H}8L=e&!}u-|4h_LP1pTsUu97SYnW}HE_ffyy|H0w3 zpZ2K5bk&v4Z{Y`r_d7f>&bFxhRB57JfG4grfCaIX&m#Zg;K)&b^WLFd%RB;NVYuad zUI>}bN%Km2ve2;;VY^CaT&Rp5h0zEs(7|f#u?`5bgT~Yp z^c;sB%9yGO#}vFbWE#ZA;`n2bQDU$)s!Vyvp+1%`O*knI{|jyK~hy3K081U%@fpFc$*!{*Fv$ zVQ0~I%r=>^VnYS%*7;7Rr?nas%C!6o)f_zux&r%v}6o9sJ`gYUa(jUtA%TPM1& z>IvN7JB&YZT$NLy|0P)gXA^}~w~o42@f3X%Wzl*}B4#&mEn!~`JZt#LcUJ96qHX~r z{&1(!l{^{v_o`3PKmSeph)MN~`lS!-(?jIgJ;u19Z;S6!o)ihT-v%cL)-+q9; z4LSoF<9z#Fp3~Ri9a<|Zc&+?ClUe04-V#sM?Me!xtVv1B*W@^(8v84{@L{Y{aIKVW*{bF)Fw~xHOBSe zeGj%?H0L6!jhAgHApB+tbvyEh-0fJA>!~u>58W?H?qn& zbWE0kwf84ArrGZvJ=TwX#q)*6HkPGFuOaz__a=$Yo^RrwexJj>!%@*-G^T1Hk0m0h zS|cKYW}|2zz7O(fxynoX44>mWc7QlLsWW%6Z#32gcrW(5H=9f9%oobs%9a~vhp_$D z)pM764%+2cX>OH9bABlDe?)!7e6hl4Xiyjp;7f6ql`a1^kQ^PPF)s~8#oJ15b9iL5 z-OOq`>tWQHJj%qpalQczUwp$Uw-Rx`@jaS<_@46}*kd^758y2!znJjLHekO@{p5OK80Zla(qia4yGzE@FKR?EejtHJv=tUTV5sr|(d> zkc_)YbH50ET#=pkW2V*cSy}TQ*Ol_X1`+n^F0M-)>xI_=@3T~wu!gfYIp=#rjj3b7 z##D##TCyXtgKgJk9EgcYT0}vjopU>KNK)&O%VVcj%2T7*oFs)j`7>8cHF{SKMD?ACbdAj1&SBsPNUBVp##@02- zli6niF%=i392+vHJfFF!80#NCWG?+RN}Gr{hWQ>YzwJH8&&jL!wrcL*$d)dmhN&IQ;GYti(|(ZnHxFnBkZl_>q1lU)gXIpt91O$BdHtL_oihz((g07EX;vY zT2GZE$BkFEUjH?xIL)>@lFw%TNCO{kKsUUU+l_O2(B#odx8&ezLAUYg9BHq>cGsYB z&|4Ah97{Cp6UY9R_7v>p*I^$}d($=WUsCgRGUL&<@tIMO=if3O^KVmKCMZmQ_@F_? zpFneVd?>j@?JfAxQ=m^mI}91?wmt#8G1x#(Nq$YyEM3V!l{im&#cgY}FYK#? z{M{ysP0QYuXs|tM-J&nir+y>u@~!Xfv-f>&j?`WDG?Sbk+bOPFVs(RWdROhW$kR!A z22nX5t2mK43f~=dy(ws6y)Y)Y&bIJvj?H$yiuJ2}2d`zF3*JK?46EDJJ%RY9J*;O9 z+mx0=?ekDt&YQ3+zp>EHeCKN0sT(j*c4qpqs?eTKpX^Pm7%|D}0s42J@}t2SB4pT_ z0Q5VO1_8g=|3kOED@1&TiV4>0#7p>^(oval#&bg5U`uf-V=U0Oc<+_6YA*F9>e2c8 z-t^ck`j=e?rhkUSDZsZ8dq6iH5aqPDl$uh`ziU|BGZ1?Mv{3r%$+?biL&t*e*M1FS z923yDWRESi)3t=^g6|5(wOAtR*#=+waUP|-v>sk|5k2-14TJAu#=&k#ED?7S@9#6l zDZj<(HuC(Neby4fvDt(U64zr?Z|o&G@XaK79QSU<`b@B`Zg$@A3D)W4pBHnVIk+tB zZv?rJeq*f-an@~?zWk>I@Fa#5*dvNGmM6*rmVMU5 z1L+UdIV_*Qf}Y3m{l#qWfp5&_wIyv;p?lzXbg{>UD}p|`j?a*xbAYa4d8=VT_u$ha zmd}i)BCclZ2k%SY-|r~A2A>{DdCf-4|8<&gz=L`$o}70(%`LOB+ec*%O04R}p4E}q zlk`TKMMq*YJzLccy%qK(Um%+DC1icPu&tFc^%6~{_7wY!rs7;~?<8&`+C*v8&IUYBfzAykp6FjFUtc3?;gbpeTWh3#ijZ92 zEYKF%>N;n^gO%mXDB+IYB8;Q}pjPSht!_SJ-fvkC%qj1;Dl-?P0 z4LCzT`FZhvSNIZ+@f8S1IX00uEaUn@UV)ufDb)pa(zE@5=y`3p^+^Y-@J1>J^R#D_ zlzaWAkNr=NoTPE=;IiO>w3TI>5Y3tKeV;uo++ctB{t?!dHN22#V{Pp&&aR9SmoZMN$L8{xAu#c9zFA8$7s{>)M#TjBGpXO}Nq!lVh>Ed#R0K%Y7*Dh#8tW>9 z-D~ToQm(=NQA0Fx%%}bP2l#OI!_4Aifkjlva^4qd`2=I9m_pxdpl7|*H^ZuE|1!FW zzSA5adR}9|XMHmK5tPmlSoZUnc7y(bMqi0@RK$;0bFG->nlEdvNqg^TDxgPGwAZCk zkIF1Q*{k-3fa>>L-h(O6sr~%YO^^1nEq{Re!I`hHZ`=H{VmXKAB4$*;cF!VtFce^2 zW)0OR4|)V`$v&^y#PX|Y77-8CDEYEbBmDd;Y9w#SGLOIC=gH^I!gXw5dwF^Pq4J}E z>`|I{jdc?6r84+D@M4yqynODX?Kh0J?6iEpF^SgoBtB~?ROellH2wzlO*P&pnY&t# zkZcj&Dzcd)Us0(mm`e^MH7n)|T_!wJ2`8r^CK0VAq7ADI*vF|GeL8kPJ=xs@H&Q+$2nc z`ZUrg<^5ozC{%q4Sr2k$wUVg~ElX}sIC6W0-fJYf5*5|drb=oncqga7!OOxvtt@8Q z+Z|h@4x%;K=M=y6hbMZ|PetD0eX}$6PSTY>jp`8-zt9i9|9JeJ%-KkdKbuY8WY&c>Dg%wJAR zte`(F^o|%7%B6n3#;#_0_8J-gmD(QB2c-&QgHq59;2hwgq6Nts^Ktf@Z3te%XO`eI zZ`c3Cac!ad0KW{so{}PYKH_8lrXrlDR5WmGarv&qj$j-|wztyNSrN`120OfJ2(dw^ z45dc{78UrvLgI0Ty0nF^qD5A{vRymLrRCQvUbECC%W&jbl#{tA&-UooSekKr%4Ixm zFq!noUp7+z zJ?g}uVtdEUv@dTKpf8|H0k^FGg>I^UU9(lMwefy%fg3T!V~)>xpPs7TtvwSqGw*98 z!@J{gJD=LpVQxxZME&A?d$Ia9#_(S5*XzNfS2$GvA(hS!zGIvNwYH?{u40y}`c!c@K!zEX8D}4&`;yF0@=AbTkUe&OZH*}XDP-E~><94-Yr&wkVBV2(n@?D< zV}x%6%D9N_F{jv6j%O_WUUb1)0lo-4(VVj+9_E~(n*G|92hx;>_mR#% zHRnbTm~&@wT!UDjo?(#QKj(~0=9!{PJezN^Gu;zjHj9Ade zGQ94f`}zD>W|g7VV9&A4Lhze7w=rU{skn~$LCC|%i#Ycl?Yfi}3)A1zRvvW8u`}Hm zlX+A}PmJ~#nm50U)B7D)qy`f&1plsIxu9#j&VC+rRbgtc&JzMX&NBU(B%vAV+ucyy~pmkt`+o-=QVnqk1}RqB+q_vTSpq+0~*O z@iyJ)Y8ganl)uGo#@h;wu4TH}wXBHd&k!AQ&@xd>`F%!wi7ymiLb6=rUs6ZX7{iiG zf4}`9tKS}_e)H0Pi}M^et!H}gF?#PI#68qvOE{Ju^MJ-nwAZ~P{%Y<_K5o90EHZbJ zO!JZ`21W{9OX!+QSI2e>?aHJ3iJ!su?j_ch52Ab6nwr$lnRrD?3oYYyI@blcoA|Ge zXNlLjA$b6NPmt&U@%VX&6G!{DKcLS0gUi@vC&fIX^Z`J8bgbVay?rtH-u4IAh&*}+ zaV)|b(Qj&7zDv6R>k@NrP%Ox6^JLX8UdeYZ+)yVmIcFTpFprPe--U>cinzETmep*3 zN8HY%y})e%V;OtQ7S_vo%q`R>^jo7VbXNKj@p#9Uq?eu#GB*;9*(e6nUrv0Z$W3e% zd9jVcM}HdSt=3@!HW6`aS9xRY;&J_rq_^V@p~Y8<{8(ek-Ept=c#O*G*dp@j`>xnR z%hmC6H;s?&O1vaI)VE&hXN*NIjg?!MW1+K-Ued1!^>ekhIEA%WZR{0KjowT0(Mw_j zjpyT`HNvj7e5vUqb8mBG%zwZ~u<^2l`|qc1dcGJom1c z1^(4s*_SqxZPg|-t(N@8B#wpU(CWPyuTVSF=P{vqDbVU!9v9O|(CYSMIP+R50;gvA zxhY!x-QV@5eX%Hy$82+f7)0}A4qZLK=L;@oyN2?}V&R2t0kB2G4>E=s&a8YSHyb23 zLl=I5(uJRg*rLV*j4uTG>yE^WrUd7+Zh9zq*uVx(m-?BVto!?vbs#(0X6PPmvt4L< zQgK&v(*53%v~!j{+g$nN9CPJwNtS<{>iHyHe?#^Bty3Oi5Z2KAgT4z`9^hFV-h*U> zXEJB!*}zPLEuFXH-c-O`onZ8H(s}WQ~A64LExZ zz=fl>!LAdSGtgl>yvz`KhP|$g_^ONPH`07`rE#}|bVZpc8|7il7`HDZZN`2?$TJH4x2q-uaNvv6cxV2rSwu@O`g9 zU)*?<`i$E7r(+Vs;pgbX&>8_828Tw_nlC|IPol$RM2E{(W1Y}i9>hN6ONb`W+NSmH zi8op%?Fk(7h3-q~cMe_4=$cE{p>%c5?epk4# z-VU?-Bp>DT84ogVbRV@3w!24$Y4-YmOFySkM>Ef4F8ppPH@?uKcTJVO#`v$Gl>;k<%8WAm6;&0~vXx7)12#Q>E`{Hs)E68?Pt(F##sq zKfw7CjX`st-P;y%9o877-6MUyD_}nrV0+yajL{2U9O!X=akPJJ4Z_+o*D$@z4*_fE z8vAD?n>=p5l6Fg(W>{S3JTxZOr$lEs5oe^E~87ImnNBgm>^h-kVGB!N0&8X%TNwKkol# z@kVJ^23aM>awucy@p*!@tIR&Pa?S_b3QM6(-LpNm&M_F1!#{=XTA1}z@WU=(K9ub_ zA1$Re%X6<~0_QfsgoCXh&b^#78t2RlV|n>+d;4svdz4;kyux9^nmp@v=`SkJ4yBEk zPukgmHsn_)lzztQxB1Ogu`f6_Wa2)dS&RB~H1FT8Y@!3t?Hl$v@atM=|8Gg{CEhTt z&L`e3k>?Y6R~+Coxjg01`R47#{kqDajKzuZ0cJgP=st64pH7)$&}dNseMYt~plf8@ zHmOfWCl5<}Z}4Vnj=>JXU+%MU1_>;Nc@On6{T$q<<82euQ-{-dhrdbV>F@JRkXVOa zY9n-hu(x+~MvP5pHVKRk^hD6nW|%lj&VjA0qy#~!$26F`XUB` zSK*iP9HzFMNqIEbf$1xRqnGb%kG6vOsd{s(K%byLFkhgbpYc#H>%YfDB8~U( z@pKYA<#qN?DZQ*CDoExNr)WDxrM^=XMWW*FNap>M<5AH;ve%QhcNHP;*AhF$pC{t? zH2b-_E?T2;&(q1SBHC{~CmUTk6=qisbbDV*bd_NZouc7Na){nlR&HLyI8K;5Un4$O z=?wTha$Ap@EU$B+vW^2lCwu(wa`iwbs-gBFz(+-YM z$QXcaC zr)Aduhh^6Ohh@T#gwOf|^6Zqc77^2v)@0_4p1yd^Pnmm@g}R62ceZ1AJKOJL@^HI* z5b+Yk>%Kg>TK+~1n*999I8PmUuu9{(@VFU;FW3IB`ey3?(KkQ+vTwpaByjvUUr^sX zQm4^cjk}&Q_PU-hT3pVzzUtkl)VrVjU%dOfGx}%=w>1xTFoP%A9p8N6F)Hh^D$RP> zDF^TU{q~Rcjbqv$7k8R)(-Ib98c?W z0~hMaeN)8Qd-B?w{t(NJ1L*@1}W`C>o`x%?J<3GJMPLe_vUOIKv^qz>QSYE@F-TEKR7nqlG z$^z~BT=_z|$C6AnT=K^_ccs0%VtiG*n0Qf?eJ+Y|CQJ8|)jfPmBd&H4cvteWSX=+~ z?&1BFg$4GN%6{vwmmNq0Lj!47tF&h*?T|{lN~JwXY27MqZ?R@$uR!{rDBal;P{)KB zNhOT_I>JtLgC^JQvwHvf&pvzKKx=jd<$0FYZCO@bi&b5Ro*L&mw9~iJipNHLL#>1U zCOwU_nWPcCG)26h5Ah>dk7xdwv7^|}F4QLNNwl`IxsjIQhS0Ydza>a?WXdqfcS6ST zCQzS6G$zYL#Ap#g_#zM=tQiqeseA*#yIQUX*AfW1F&0wR`80GK&~Y||9;Z4? zVi_3UgpFdIu}eTdXvSY)dl%@7VDnOEyudoczf&IYu%Lfq6zyB~duiWtYC$0N*NnuC zoyU65c5(NI9GAnE{IKMa3fA|sokA$lmq%zU*N7VJ+o=nb z4)t!#m%vI92`xwg+hhr3BMWgs#;2y6_ob#AzvlCP;;V`5R=fIXRc@ahEbq z*>t^`;WvOYkKKo0p^-=$oiB^||mRnp0uowGk`A2)2o8l2L0c zoUvV-3>z1x{J~~XO7d={)r^<{z_CdlV*Bki;wsn>C*t-5oyxCU03S^|ve6^Gxf9Eui|k7Li;Dxi~^{CCQfKSwB%Ke8KT7 zcf!Yi8r3_(HZcA5o~G)pbA6{K{i=@B%!^Z>s5*X2)iJ8mnyiajIM-=Uc*GN`j_0X5 zmYH1~i)F6Bj))2p#ai+?F^<+H8&)o@{Q`A4ewt#P8km}%^t$8i% zh4<0iZ5Bb2g^iCgjGYcW6Li?X%g!D0?Nlw#r8VNC&ohkm?b!5%w3TAtVUnHM|LGbY z|7WN@NKYM>xMr{~_cG4)Qn8xWXbp{XS%+np8n1I~Q&*sv=>^uPU_6+UMYvF&J0stx z7Zr1ifga_@u7#H{&G@dS{D4WOf=#W1jrzlDq}74aj4hAkVe|dGr(H**qYR z6Pvm-7-KzDB77;g>&#mv4nn&*n%CQSQ~J&${@8f7zmaJrtQVgmZ4(j4r|wDCbu<_< zKlJVmye4JZU_L)*N9~@KHn}H*I?HZ-8nRJkko@H{ogLe!C9QD1!flf zU4Ua-(33uc`elS>ZLZ`oUz|FN(x>e`!Z?`2m2VN!VSjVCst@*8oz@Rz)W84uBga3v zVozv(>f(Fmv+e&IXdB6@4s70r1uJ%158= z-D7rA3 zf-T{AqA9v7Dq4flRO!U1*cOha%5RT~9~~r=Y9VV8ccgHmSRZ=dmqnxmnm}N7G7W zW9=_WMn!C6RJ2z`MV#t0b1L+b!DNK$GR*~hOfBCu)(Qu|xP|({na{XVzuTEThx^i2 zv<}_)2>orKzpeBKU5PViO=r#qzk1HL4N-G8Xl>5VnzO&(BQY$$tuSabJt4ftUdGWZ z3tAq~am=+G6^jD%?Y}6^RM?A*Ye2l>&#HU+;v(ZrQR<(4Jijidxdm*arSC|e{J~W2 zKN+8YF`qRUQ>Cr^3T>XKW$#T7T4a{> z*X6PU#y|@9ZJr@`5)Tq z=sSKmqDSE>NPWj-wQWFeX3rmmOwTk}+6mZ87eC?ZqjN zpY=T>9lr&fLG)q4hNQjn9FFHIW2Qg-w!{k?9I-s7sjPs52z7_+G3{K?6VAn;u$vkxO|3SfhTbflFsf4rLgKAiWCFebz# z`*NCVuoa(cE*D{AerhhQ$=T+75e`V5t54ZX4~j@V@8);pxdqbnh+Jzutr91DV0%MZ z?Y-+u+PmTe?Jdn}Zw+dwmOrZuEU)Fx&bfh7Qg^#=;i8>NS?-u2bhn_&t->`c@-ea@C=GKEYaWo6Q!m zudb$h-PmOFH@~6cO;fr*ar}F3W03`X59H@EC{MY%FV~vHh8macHkNe5FDIZCGaW-d z*i)}i-*Hzp*(KydRCdh*;9Eht0Ebk@^Tp}Kb|{vrat95JN{+P`~A;ln~r;* zp7}KSJzh5_s5kh+FV=h0@%7Gn=6pZ993Pbv$A0x6^?j4QR_W_I#<*;c7VB2}ll-8v z1MTyR&eCOntnj;ij7<{cI0{>{-pBn;KFf}QPcJ!Do%#0VGm%f)o8%A6RP{G#PdA(T>aQ8r7yJ2t8;7jtZZ(e1cl|1EA3vjh1nstdIM{A* z=h`JV6aN$h_7%}-S~ur#JO$wV$ltEu)YNqjc3oB(co*;BjC2FH{efU(q@mdUR0g`({~28^*?#fr`~bu?Nf8AOsy|&tFGEw6HjK!H`aF%y&mthy5brks}s)k1B60(Q)7h zL)TDhM8&C8ez~?vAhv)GIqEIRA3}##u0=(;tIz}ALVC|b?|Y#CKz`kj7+iSo$nL}G za_T3)wm|q}OF6C^&VzxgqD7j-Y*!(z`zGNHH%a+_Eck)t;!iUjtnkGW^Y6ZS#f%jZ zULo?dX}kx()^eS4{~T%MnDD7gW+CbWofr4r)xN)E`Ve_Kied(LUeb`gwnl8$N<5RP#t$(T8$#y|btlM&}RK#bx>~DO(IGt;@ zck60?j#hjt{ELvz?Fq+SuzA4RW85*d<|N&ddBEpQ$)bDCy2N*;%v65vI@=w9H?7E~ z?c)_~k7zpE;5hVlyqdcKT1(@xX9R(DT`K(FFYb#kQmX3h`1HF-zI5siJQ~bV_(#ES z9r7^v`F|;XZj2U4F`kCfU4j>L>Lt&LPXR@QN&sKo?v;DpI zXBPMAh}UGKeHngRGi4k|_RRwSu1zd~|8XVe9`y&wbRJ*`RMH&qDg4x+RwRJaoih`0 z=+=%_b%GY!jHF!!89*{^OF;wXMuNet-6hMJ)7S+lJ;8VVkWUiy9~@nz-I&aIiu1(oO<$`jN| z#JrhGXQF5j;TLS9 z(f{pi{>wFh_k}+xg$b&Z~PVG44I<7_>1El_sVewUpF?Z%yUjK zeibx+9md|IQzypbtU~NU#M4;Ax)$P#M)tL*uD?C-XLrVB=l6<_E4wCZ9+wUH?yRgj z70@%#wpp-SrS=_C?^LU^LQhb|f}(cO`bm91t8Gy#$H7qTT_x8^wbC_Wjg=eHPMg|R zLVq4=UrA>uUP4z7T|Je0TiNo9PuCtYnskgS{ni=l57?kTo|g&}53^?g57Rf^@Zr~` zKh+${_a5>A^U++w`D(*&h}q>XdzAHt_;{<=b_LqIXAbq-*i+WI3+;a-8f?U9hcCNd zkGp(<#Z0ffL}$YKa^Cm-^m}$rN;2eyc?&6rF5Z)Wv>>45%6JV77z|Dde? zUsTfH|EpF1m#VW?(0^Z6|99%#@3?xFTwJA*j9jM1#1p6fr!;-LYl%4d)W*~VV+qNG zF)_+|P1I_y316Z~AdU4FBnRpwV-WvH?D&0FCb5muns}XJ4RZWeS}$RegZ9umtW3x? zPVE(LBVuW4-}Y+}qE}5K!?XlA7IOVM?;W34Ps%eW%4f(i|H`?MaLSwBKQ}Zgk9ZB9 z8-dq&PN0356POF@X{@kMI`aYZ0Q12|V~;V6&{+L9;zwuE15?oh=X@M`f|*4HOb^~< zo2|vEHJ%=hB@3Dln(30b8LM`e^sm8DtK|B0&dJAQt=-cHJVP6|CfwZ4-jaSjy5DH- zo=JJ(N6=1nWclv<)E_rX`L0sMjDs(}CgZ=@HN}#ztR3DiI)NdgJs>{cdN_@|IA=jj zdIv+PudKjw<|i%%|KcsQ*PoQna~x+H(1pJ<`4IE7-@qAPIGWlz&BZ$XNB)^f=P++5 z^`7O*7cxg-4l`C=79KzHLjJuokVyxF(bSYvq|Ghb+Pb_q{RoW<$Bv@karL{2ey>o! z@1fr@^?NS;ZdJd3LBAvF_s{6}9QFH7`W;rk!^>r#|ABZsU{9331bs}qD1J%m-G{w- zSjIwB*bVhwxz3M_Dds(+mdf#|G}vh$9#g!3#=S!~&ZfU8{k7BII{NFRzb^XQiF?rB zaZ+Ch8^_;N^`w72^k5pXL>@RT-|js95_{Z5Id=FP6Qr(-#`NWFaeL{vS}eCVo9M)o zmKOM9YSk;3*ag&wZP%=`mR|dig>m)p+lu$s zQoiX*o}L2PT8r+RX13>;lo#KhqA>NRa~*(xAoIdc%GqnZ{b~7FyPdR7uy&!NM10ja z>{vC;I<+7|e15Y9Tq}d*@%5B{l(D^!S2>&b6zq5ID%#_e9&H$vHOzoMdtx%K@*|(S zDxN%%{t5YuYu@b!57eF&<7Az};0TetqU*}u#f)_uS|jtQNW&h&`v=kHQ*Vm6D}!xi z{)>k2`P^@V@uHG$|&rX{A(75QVOl8%`gO$t#L_SEC5>wDXY$AJBk?FeBaLY zAyRJT_#RpMCCIrejDG!6psJ1aGVbb4cA%=6$KhtG&kXg=&sPliCa|M1ZhBic_Qe?O zkzUqiQn~8)YT6fZ)wP7Zn$osc^~F+GdPo`bH|Uo6r?_SQR|+Eb6iQ-H62-alNP>K~nL)xW%d9?0sSxFP!|Lh^cC>9G3y ztf{Zh*ruK4#0OLt%nQ_KJ=Nz+=0`bv7-p#X@sH+%X;;?#C@+)kSxxUl*1kpQWSzB! z_VE~KZQM5a6Ftj1U)=NgO#Teqn>+gUvlHntTqc3#*wd<(YTPCUI!=)2d^cVSB& znwXL{ddtKj#vPG+_5${mlE3FE-=_P4`^5 zIR!-LmWk=771}$oXPZ*~4vbzaUVK3MDPSGNiJoB}uDxTec%I7ISJy61Er_OiZ z7FJcC{;nB3|1!}TK`gWRDYWTflHpf)JQmvKF{0L~7dEFnX4LAvy@`EvAkS2S-ZC37EaLljl^J|jl%5D|otapdhuK|nqTgnf> z8;d8Oy%q61fiXG{=W@y4knFbN;u`DJ`&v`Ak*KH+&lBi}ptkb8yFi<$4#4s`@UrZu z_4GdUw4InMz}up6aEGGZnCtKdM-1y*|0~`%J{8W`(6_!%akKeMNDA9JKo#!C%W3kqR%A5aLCY@3ky{o{3xZA}YpTe)ki7DJJu9zWp zYLqYkA1a>U{px&nG3+6!uR)&&_O;^!g?zxe(22hppHpa~{}_k+yyEmvD7}Mtm_$Uy zv{dxl%37c2&h1Hmpzfgyo2}O2qc`+O8yM+ByAXMiHt|9M6zvhkCw;p8KdB{!`pE*7K}&$VYA2#j+2TWyW2|2mRn{UYxJDSnOMr zB}eUCF8!?-*FUR|p`&&B*%OR)mnuwPj&ls(QTisnvqycC@?C;I0BlN()g6F*<9#1}oIi~62Ubb~x zEVA|DUQ_ahy;QC*tK56hhd4i`cJ`f*s=Tg>87co6a$fmX;*7b~GDvQyUD9CRh4uv^ zRwX@0J};h`(l7XDXkQ>|)nq-ZR?mK-p4DePt5MHps%L?$XSM3t&FWc0)-zK*yIwt; zmi4S&J)5ka&B%H-Mm=j#&%$S*uUjoVAFG~Ss-7i6D+S^nxwTUuJ5+e-it~#AT}J}n z#(#=!(sklRuMn-?Y%9F?ioDwwST!mxIs6xKF6j!*OI-{*_)u;tH#{$uS4Vj|U|W2O z{XWy{R%@=RC+bkG>VR)s>UlKld8K-eI=!u)FUope>hvc)->IIrXFd0;=V-&<)brI@ z&%Nq-cH6e9eD#LcMjMg$P0IVJrzg$rrToaZN#z?e($D3g?Kb5*=uzLK{s4A9Y4R;!ctmbPa`T6>C?i*;u}7c<{F^^XfvIA;K!YlFUu zeFC|E)Y-!`9(hi&o8C#Ncbszy=Zs=PVio80Zd}c07qC%ZPw)BFnFX*PQ8!nlHPuOd zwLXFNOi#X*$t*-W{OVjHq-;4$zvNsZzO47S=YDlAQQDYAH!jJd8;I*Z!1vqzbz0-Z zBR%ojVYY`E!*r!oIQ;0HuoXj`weT|G_Fsz_XBW8V###3ESXA%CGT})qBKdN)I`>}C z?XvDm&osAxc_J^QXg<^Bop+L`c0kpe24lh7w1Ou zoM$2UrH!x4Sb`332wvtLo?E2?KA|PI$n(zn0ev-9^_BA;=G^X+wzJ{^+y`K5jKR!OfdzH%=pK|3hHq!-sCQf~DPsqzQ&fIs@Pi)6Y>nr!1 z`P^r)>*|yFZWw#E# z5%|Y$w2%6tmev&Z$cVXx&*UT8P`mgX#D*pQ_GIG6iijUzxw3@QvTc#icWjYy)_>*@ zKC?VzEakk28-{t;6?XI7YaY^)>M~nWIFCd>-$wmhigT_G_#Z9nF4q>P+#{N;Qe&|& zKhLE3yb-?rp~Z~r>5VVuc&NVEVo_Zq_clLbBfERjdFHZiln!YA=joWKN#pzLroy;@TYCA=sT#gNV(qIb=9SVHYBCKNvMqVVjocP%3%7=McFe;|q zEOB9-m~7>WM-MAMtFW@az`ADJ3z~ZouFpz|ox}B6DSpYej)+^lSl~>d)>z4Bb8a(W zXR0^Znc7V@#_nc33%}K8&*CCEFAuaY6t^`MI~%&93DlNR##@ME=HdB9^>+il9@d&U%Vs`r|WOy zCF45co^czHXR1AKv(qbrNyP*i`J1BGZEXMaoALFcU5MuNgPw<*riFIQXlN<|- zpa758yM`RIrS!}xb6W^8OfAIwU>UJn#js(!W15E}Ietr#?LN7Y;|PUl9}fKeu!`Y0 z1#8^{`{1!Au=Fg(U!Pz|yMN3{#3P$Q@?+yBWzRx&9IwIOEM8KDxufk8d&)fasKhSz zy~LTw+q#_N5~E(u^F7BheHiW7t63wEYZcW9HWK(9rFj4amIi$LW*v!P-WaiWlYy%V)1v1)8qB_K0Gt%OwjiejCOJF zCV58jZ|bXB>g!opkDAlx(|N68T}BeB-xF9ri;{OA1ASR094zQSsCd7T)h|f<>*(VB zeo71a`qQ4Fv|yt=Z*uI1a5gc6>KG^4>X9192By8+9q!kUz#o5Imi`L;w>s!zE} zSRTVU_D;LlnN=R*=Ab;((QksUmgViD^4_EJG72XHWufessXXkD`=|^(QOZ04bcS3; zLh3!Y(7PX>;N8C*&G5NA>Vi0CQ<%3{&h!?sWv43}hZoO3kUpg5eXY4&Ku(#i$+HM0uW} zejnF(?OJQ6=p~xLvQ@ZEjH3DI4FGjOioer1((iW|hwCQWNB93Q7>BC}^bqvr;kx2< zAPmfzYdIckXi#Ba+&RRko2}|Po9ek2djiR&^@ALni}_hL7bo@ET---x!nX3C3jf^q zG|}M48tiSLQ^5A&m>&-cJrFNp8-PIE<2InXU(91Rj`g^}_lsEI<8hw1w0?wT3~v*| zq2H!C0yzr&(T+7<`<58aRu`vkYde@OkH(Xq{fYLR(5oaLJ$M3p>jwwg1G8N(cvH#;Zx4e&-sKtUPnGWlTQ6e6db*bfu@u+I$i1yO-Q*b$utETy?RqDj;|2yHZ0n z?NNNwZyf*KGAi10EemcS1CDxSDU(Q4NBE79@gx*#=Lfh_IE4CM{6{lX+oEoFbnoeaUT##Yb zigQ$2kkUFRZ5^eZrP2_uK2B*dN;^}f(O6W(C~YpKRjagG#u8X7W>VTPl?H71Fr`hQ zvAf+0=$@V_X~)2<`Xio4TDo_|kq;Hfx8}-29hWoZiQ=clz@mXRodD zTPlB&^5b0CPx;5IXWP}Yx9Qm{>RGvZ_N;oggP#3WJ#*~l)~jdR=-CtMne)BX>e&nQ z?02wrQTH3^{@18)Vhyintkaq2`FTudQl57>R%zS?J_>PS@J=Vab2s$#i-v9t)BY8t z>s-3dq-%u!R?uGu{cWW`Ymws{C*!Mwt^|V76!zv(Bp*5S5c^mWt^0t&K^v^jJICsX z72C#G6HXij%>|H=EC=>1^U`_B2naq%Gnj8n$^3gqk4 zZY)k4hyy}2h>e(??H0$#nbxc~VjBP_GH zjbn7+ytvlgChCcH9sR4c`vE^A^Hp2sq^RK76;6CD6(@!5RGc$Q@W+8=;(YeSkmn-x ze0C{+*YVk<{C!r|nI&)*MyfNhx2DUpG{zpIXW2aBvspZ00mn;jU`*F3J8*Znz1tIvc7vZhL(P}(-Y9un zjy(;`7@GULHurK{%09|4Z<@_-`m*@VN3!@_s+SM^=TAS(^wk$*dHaV_o|=+5aalR4 zEPNN=KfJNG?|szo!W;X2Ja1C%H`Q8&UZG6sHD*p%I*p*zY1CKr>og$iok*u~^XIZ| znPXD70e*+=+=$;XZYJ7vh+C@t9Co< zpoZFCOFSQAxrE}jSLsKf6B%0poyg8F)rp{QPE~#JEaYEv8PhuEBk>;MAB5&59eqga zXiqYtTON0rrTB(r$MFqr!)1YQI7`_>)N(w*Y@I_F>l|oLsh9~llFIb54B0Mbkqr6S z^U}U;CTyD&KMJfy*j*tGFlb6=Raf%Q(^VWqq6vkHHe}NX%mwhnE@dBNd5U(u$6Z^Fr9s9KdId*YU z@;U|o2li{)L>~tFD3q#o81WNrtKMY0 zyb&Agy;SS>Va=01;0p)7>-aBezId{*W|Lj$)2OeSlH;@9&Bj1B0!!H6$Vct_?igi@ zqV4QPNNgq0R^TbUd_(d6FY{-pID!50k9v-<{W5gJ(<=IHmbLr8=*!T3z1(xX z+Ftlm^!d3vJ_^6T;mds#KDh7r@@8j!OWY@Y6grh2WT0QE(}(VgP5jKAk3MTm%Ds+w zz+9^v{pI*m%>ZVq^5LsC7w71T51ev^kK}9M6HT&*j%#S9Io?LsHli!dMZ@Du)>lQv z5ZXWdrnI-Ccf})h?PUS8x#W?$Xj!SYMz|}bJ|lN+FXKiuyCt@;_R6-o#+xsc;rru_7jjH07dSKl*hGin zV<}~T__InE%zpJPVx3E3g>T50az!P*hrD=inab;@eAiRHo3Ct1&4Qhw8BNXJ3j4X1 z?wLN9-CmJz53?+`HRp2&tEHQH7gOSC`Sq4=#DM*255CW5nKU+ib4_pNn6%lM`UK*v-DdfXXv$|stY9LV%7cFcwcD!l z2*kwLgDaJ9ZPXBdCAo*LkgGbWUn;4-i)e2{?2%X?%C`UeGnoq>Han76F@|p34$}9^ zLyHCCjIgFFLQuspitaHW?&l?AwxdySmMq&>LU660buCKNr3+8vklc!!4g&n(n zb~ws9yDmjnb*f{oDRBBG?}aoUu=dBf;8@q_-N1Vr~VB8@Szn6(y)EqLYoC)*{yy>c!k8r&2Ak`0bL!Uu!Q?D-* zmGsSen(MkA75)VHn?{aF3f;}-OeVjwVY84O ze@xGJ6OEind6B37>vC=Z=jCg^raZKlp$|Ts1bf3M$Fltftu4q|h)aw2Q7&RaeL&-4 zQCZ9<(>I{+44eXeyxe=5C-&PWj&n)d#G0#n(y(i+r+g>}`S9+xbW90(eYrrfWC<@*ra&T}bWYbE`QA)9(eN z0&U$^R%k=lrzL># zKf@YPt=`K~>*mm+-t<0_P5-5yA5zcvQ~HlT$)t~{^bVE&9;Ktt*WG?%8`6`r#>rAP zq|aX^#{l&QEwju;+=iX1%)e8ad(~P-TT!nXYH$D9VzYoh56*%%kCtmm&heJ+ukjhM zT*HNw2k)PGuz$UM6S0VK)~ee3C)n4PtQEnK#AP~XL2qAP#$EEuJ@NgoOCD)Dt=(eS z=&JWug3i#I&&x_XgMM!-Udy;v!?Mb|1vsTD{p76l>nMGlN-xPuhb}dy(uZWFUj~dG zm7bTCPV=&2rb>5ZrJqab@Y6y%e6>Dn?SJ-ldNxMA^Kn)>FnFp}`hl$UlM!D>rSHp1 zCti)Qr%wBej88v^uJAK0SLc-QN5lLt`IhuUgY30U@f-J3--6D(e~fs^B3bq)RQ5Xc z`$PKOu6`e+-%<7Z1NuE%{r)HYo}qrfPrs+A-!}aouYOzfyI%d?OTVkt@3&DVY_w=j zMwNa<*A}HlEyDSU82^*+yU$8RC@mHto^7=l~G=qXTPa< zqz2b&(WT|39bX1-RxD4mFwg#avBv%Y2kQ6<-`ou4C#NqSy3wFN=Um=7cZMGBc9w->;)QFA(}))Yz5;QeWlV!f ztnVGDQ~IttbD!&S*>6ytrq{~7q`hvfXu7vI?Y4G_Xl1`H>yNgKLsn~b33pUBVOICGPV?lAc6f>a0YU=uGTNf>-(7zcXp)Y|PQiAl~Y5wz-&WPf(aEo~lhA z_wc3?%9GPswbMoEIlnnA?$Y$O9GB7LcAwqo!ut~psT=5Y?PSbS$cmZs1GKkmmd9+Q zeY;7ZOrP{`XKW?#o}>D4-zpqiqHj&>Kc9B$;XYI1(7eaKj63`ACA_q6ofX`v^hHa> zt8=W9oa^F6ukMSN<#J_ZCpFDIL*EdP10UX+D|R%)4{=R%^O)F?m#S{@G{mr z{ebPcr`fl&j-?SiL&bQ+!zTWsWb2Xic*fL;+rC!Vbu|mzXNFzIcmginZFzN>hI{xZ z!KbZ3=~j?lL%dNC<3Z{5bno~={)A)cK|W$Vk?qr)1bj%{dUFbCp4^CqvrELv%M>JN z4kc`ttEn4)&giQd%&WcG?btZ%P;u4rX^3mJXij|}ulT@MVySGUv7LU!fpoAm-@bX& z{8Uj9>qwJ`MefsNEH?M*1L=UdTm<6tQjiI*q4&od%SCO+8$vgiGXFhFr{5j%60JkV zVjbMkXwf_@o1nMn_{^m_7a5yME;2TH9Q-HfFrg!YZW8&O^XZ~fAfqilPG9NLij#Nq zIK^$pJ`nM*T-u%XTa;eG>!rkw5l`M(^af+JJ@Nwh`iUG}1T>Myv{|5R@ZNNvLt~snbKgVhIX_i?n9vQ3XaBS~k3GgX zKyP)?|{jT(t*|up##W*{0`dm+XT#!4! zJ03qqtW$<_*8|(-Ea`}nu2j-=I zKkGm`!hO9s<($Q@y7ypu`|wwjD$r|c6oogqHSKvi}N?Xu}bp(H#Z!AW*d|FQLmq=`qaRl z#h7H}n47JOX-(Cdz#LyA9w^zw=k6DexYgQ3*A<3sRY1q4??}Cs$vjgYU&ENAm7z6a zFzm-T{&s&oV}1BVS?Om=tPtTQ_c6k9|Ns_Lxi;DOy7YC@7CiUnoF$Xp5f@YFU+xv)p@=LHbbG3B1IBKK-LwuZZD1foK={(nouvTW@6A zi}k|3(RKY;G+0OVpwH?&XPE9v4Ksj|HZfTVe`Pw}&hD?w6bES!;eX(jBn_8cWSCf5afPTTb!4t>& zeYjWC_v6}H0W5_5|B&_zgW2}$4Ked{zx@vUw8nV(ymk@or~i;=_C?rN(Kj>cy%%ew zjp!OGcVhW_-A-S;b?iUri*o9V8rc`GqF!fFy@+RcNyQU`JPrC|(=(I!w=rrDcl2n! zb@_JDL&U#B7u~Uv_?uO{@2n%aHsi(K@SuP`rDiJp2OjLh9`mZWYN>B z+pZ1y81m&y3Q73&?}1j_T1sgf`LgxB>-Q66CYv(y-K0o!0h7g|l@y1Po+ z?_jK|Y5agEwY%zG0Y9z@9khO5qB%nAvo?5ds)l5!QHgs~)pT9(_j^-DkmTQ+?oHLw zJ#<2qi0d7RC#TT9=chfcl=ifO(Ypn72>8Ymh^bC(b#>gE!uNp(SWWHgOe{)O5191~b9#vyxOC>c01b|5KZ^wg*_H*I@VGf z{4`$9+8UyMuXk$|U9=_~Y*H>gY-@GGs_^# zPIDjpXtMZ5B7FIdOfp2BWq~jF2j!bkyn^Ww_LTAN6{3O0-u>sp%nwhX@4>dIfvyd~ zD4%`T2IbjzCwK~~f55%sOV7Q}cS)WAd)A$)j6LZgLuR0jD9SY69`6GE}K58&^GAV4De=Fo3L)*#n^r~ zjXBVLw{`G+YvOBc`|ARhB=H@Qu(A^g$4g3SJ-qPAku>xr>&tWC&zGEGE>77p9&GaI z4>OGSS(;eW=fg9W`eWvl;xyK!lRh}>yd5@GHCU5~$He^HGPb)~;_*oQ1Ea|b5?yo7 z<57no@sJpElpUU2%=KxYGR9K+So2Bvk0deo$55aCf#z5P(IU(ttcA;9m#6j@`0hws z%ZWDTR;{ssYV*O$0zE`+Ts2W z+Tqw*q5MIU<-Y1tb%gJ+3;uaT59?`P_#V|cWO`B|;5`ukTBuug4|t)DHB7_D$B0G; z^7ytw7n2&+FwnJLMy7!=(PT^KI%Il!x_FNo9J~TERZV`;U2VtlnI_OzuI;#4MVx zy9ew)_3qpwJ-Tk`1S?8}6TUGs`2W+OgkI3S$ zU!>nr$F9EGof<{!ZkqD{(zHfv8p$qGtakBZ@EF0HERNAmyz^F~k<+o(t*9{J4`s?2 zx!KrJvC&&a7nP5GLLZ%4(2}~~lS~?YgY!r94f-WES=x4<^NE}be#COikK0cZA5}wi zeLB&u8trkSD~N~i@ID8#{IMhQT;e16gN65skk4h~Ti!%GY0x(gQM-S4Nj#ayv5{N4 zK})TPZ;Oui_a-r)o-f;*w8p(HZVc@eKBA$IQ#$DpK!=T`DHq%CZR>vgyuHZ@aY>s)V_Y8iu2Fk)JVr~NrmYe^ zlO&y(t}jlNYs4p+tGfGqe-hA-`M|J@p^ISk(zl(Aa8J?YEWSH9Xe zoVmHjb>g+vRlip3Y3WVN_N@}{O)O6T;wUhlueE;(`wF@~PqgRxbN90C;a})C`a|(x z6?kvQ?JqM%uj^klFQ~o1K8=`{rC|F2If!KGg?JzD{1xwD4PQ8zvA%$-qX$>>{)YKk zX|~Y1Z4sr^zDm}mw9q`Ir0o^U z{*AT*x<{0NvYBmk{@>vZiF@UgM(Q*lTocF5Apv{)Ucao^ke$fAz|}1Ns4! zbB}ue2cSXp{uCP5j$T<7%5mO%7w-|D_6|M6^#;nX5$^$i2#>L`d+fhqySnlOel06c z7)QXN)6P3{>79LF`cAX3ZWwIm(|%hrQNH8I^e6It>cc~$_2lr~jL8+4k^%;UULemD z7FHLt%v?P`}S#^n*OP5V@w{sPV1J|FGLuL8RQdlJc*=o=TynAayE zTRxY`Twu_A0ZsT`79Y3ZsG2L8{`oYGeotw7GBKC_8t88({Q+n34&sqqgQnW9>*6E8 z8*9WXdx_6C+4dN=KK-&lZ36r07iEGupUQQ&0$PW=0_#3l5Ka3 zZ#Z_h*?YA`^JMFp2ht9WyyaLw&A5|(cYI6kKM}3eE(~~6pwm>BGLi?%9u7qHX*Acc zuVWvGt?TzYC_lj-G%MJ@2TeaFX;)i1lkWXIv)}pt#aZ8&rYjR*t#Q8gsGqoqpz+r199J>ZoquKhXb@Z)>rD>vw$JBrkVqR^85} zG9EbwS~}TYM87c)I)?5|LZ0;}R#82Q*oWLz6E7*$U8!u}dskhv#b*tUj!i4-^S8&o zFb6ur;$h+ubq=^@L^0#%-A8?ZHjX#n=KU${AxEIA=@#9=IZLK^kz!0292YA4YYQ=@w%8a!s^zH1kJk^F^QgSr~La=y?##l zul@XZdLK~q{&e;2G<^f~`BIugzLH^LwffdfdUrm(TTW>kRC%{jnupSAD6LfGL%-js z>N^={q165{LB*2?7mBg*HEa_%me#Jb-n3w|IMl2B9cSm;MYlKDj_(os3^SgOveggL zK0Sg&U&EiW{2$iSZ;5ZWLduPFe;dnLyZIhx+^6u~BXL)?j<`LR z*5cTB3)74M^WjoI{@#GKx$Z2vHVZ?R?InIE-rURnA@Dm`MRN}RxVap2?g7@_?Qnc@ zS$D^Hi51S7Rz72>EEgf(quRUs{Sha@KD~rw(lX+$iiSpZg94cWJ}9BHqz?+(<@lkzq4oQrT;5^z;Vh0hXRY`VwFUivJ^-KAq0Zz7XZ6R1 ztp4!QJ3XpD@~J=2Khvp}IgnvF{SL1kR+#S}g+cEVOu| z@Fcc&KXHk3M%{YCGwSQw52RsBmOVbzS$%d}R-bLJTPvoWeSDu4QlI?@b_I0*L)cK! z_4{=FAzi_P0pAzr$Eat3);4UQwRp1#skouwN0TH+v26j>dnnKCAnPKWG3@B*DgzG& z-Cd@Bvz-~c*>?LT+f`ZhyezApHB`@MRXxj8Jw;P*`Vy2uV=4Fkoqc;hux3t#-B3tl z1YKBw>OVft_AYjI8_uTk&<~^3IiTwsal6Cl5|}eyUFxW&(6~&e{Ge;IfQeCafHAWp zici8?ylA+z-YbY0mUIoP(q1(>337h48t zeeqn%5{LIs_%9#xLPP6hta)AGXO|nB#V>Yb(jChG3iz1oRqU4>kH&Syw|;GG7x6?) zG!ZYvz74cjVlL?V4pGE92G+M${PGW)^xFY`JoTR|(U2NM&&Fz+y_fpY8trR)(rjom z4Xt^v(a`L#YJ1?7DjBN@@7$l$|GuwTVR%wK_hd3@)C)X-SMdPrvuv4k6_0ZGMz^g6 zUSt11m-(6irn|SkIawK6O8emCD&P|(07M(9D%r_aM z)*G46c++dmjolUIi;Uk;s) zRfyYFEO-ehC^^4tMUC%FP;0HYu4YY=@i`XzJKO>@<#D$c@g zUBPwe2hj=Hgfbr};9UDOvl z#CM49PBFX01bj0TOkJdD&-^TO@O|W69eRQDULWcb7t`OZ^mn1kcdp78rf;sHd{@!4 z8T2=c{xAo3?~rY{jIo}1|k zh~AXVP<)+p9~y9#1ZMbYp{J?M}s|U z2JV-Zy*J5aPto7XX&*=V;th6KKR9%X{!*DsixguW68$RMJ&5?IswS&LciCow_8X#W zGZSmYb+jg~i!|7K!gLMMUy%L+4UCr_GF)~s`?^g zy0|YugJFvlgq%+6*u#5aG&S6(vEPG?6TP+%OBZzH?^l1+hxd=`<(SalTU)&@2@>;~CNl4oQ+PBJ0y3eEEc^qF0`+S?|)E0?O zeMd5v*4~Cwwk4k-S&a8M&{Y~sN3Qibag~YgJ`#$sjsD_>;&ew)#wi4^xjrmyMLYDU z$frJ8r+0~)a5j(F1`*f?5>HF%ZhbS$CmypPPh zjLpfZS3=(@_mDirXZGz+VWM%A_QM8=+fD6yhGV{8+3%ANxfC(n))7sC&qOKFw=T7A zpwF+=mWp2+;7?<`7M4bOsZCMwfr|4ES_U7|N7&aoo(whsi(;9WrQON;vvuK}+!nku z@=93`#E{|mxM^NR{?iL2+fyk>LB^WRJ) z*QsZSlllDD6Np`*?wk02wW?e1_lNYwuNkBGXFV{l7-tMV70(y(Yg+Rpo$?2wDXLrf zn5_6UWA)_@ZK-f6+^tH+>unRLZ`1EJ#=&#G<$NcMcm~0Fz)huo*d>6;c{P0p&;7xc zl!`BXL6~{Rpgktb4t=(!y^L>u4{_jVPa}SZ_qD6um3CQJKOa*%#(FQuk&4@wsb|26 z$Nucrr0;aph+1Pg?ng862%Fd@Xe_N;e*pHxGQI=$MV$A-K6Q-ZQC)if`(rfuKG7Nr z?~NgP0h>6)HtZQtkJD5=Ji)jJc50gI_~&0!&%N{<7;U`+-Y-+nbLcrRF1!QYAEKV; z((_^P#TxKDM?KG@=dgQDRV)dZEqKT+wP+90RU{v~vCqkLNAo`l<=`hJFqkm1}4P*@WxE(bcg%eK~IEtVv zkSj1}-9Z`Sz~MFFL+uU8wSqeBdq(-k!tPPc=N_g_4=`VX`NXjhR2l!y;te%z3F~Tl z;Zv7|1M1{;;>5ca#YwgZ*zQ?z+X%7k31b+dZu!95MC@m)O*pa8HQGD8A-4UOx*u~{ znajMSSTkG7V2gwLVD4Azm#`k)i3tQ*J{pJ#q6I1T8@r-d`i)V&YU*SR`)axx^jArL zH4PFw0_z9w&m9+IT_ndAS7l75GI~sjbLe%^wW?isfT06lSM3(-jAxFd(Uu$;DkI!r!BBd7W>W5z9m0a%q9o-~rz|a>W_3z>J3Rbbv~A-|vU zAwTlwsJ!n{-fH-OCn8_S)BAzU(@S}3z9i2_Do^QfDu=$w`2rEkOL^RtGgA0A^8WJ! ztiNfDpT_Hfp4Zbm$Wv3dLLiTYJb|b+N8zgHtC%3pS?PGn&*hr&61)dpG2VM!y$73V z^x^%OgMr21X_JW8p2M~Uw4YATCt` z1oW7+p%w)gZCm=^v5-Vt;nYecNMhaM05VH_>S^#q%vHP$65n2ALL@pyLuHj z3HfJU@zrzQ$eL4+pzJ_9rxyn;57xsR#ou@p{W(|lu^Z?3L?h>_Hs`44&KP)|7=Xc+ zWas%ild$Ou1Y1gQ-VmWHzBlfQ;y&C}`X2Wy)1;tmJ7a58T`tI~<2~7R3|qX%M8ah$ z_~pjHe-ZzId4q3y6&4co{+;J{CC^tpQ$#CgKi-(CJLf+`<_G^4A-<#YjIN}^V+FJ_ z&cEmc`B6S%2_K)o{7ds|od5Xp(XL~c_w#JU3P%aJLg)((w1V2dEh77%jPh14X%}NJ z7-E|w8&z8^sqKk&j^~5@X*bDPE`5Oo-DqV|RBX4RjNw)tX%RJv7N+B~?mNKr6}pg~ zOP<@e?egON+4BPYjWg#y{r2&+5MzyR<2(4C)WNoiYpG0!_5l~=&zH*>#W=477SsgB zLwu0=al{9FHvXV^*1R_b-{gF4a&ksssesO>TIGR0qDy;F01M?T#Hw9QyfgNzSitTG z-kUOL-x@-D6vn)U_#%{t*tU2FeB8N!?Mb(WLm*|)XQF++gyOUuaf&u=yKwb z8mX_Egkk0jEw)g2BMZfB>TjQO9t)X0yp(lE&V0hV3(-gF8*g(gO4$z;$1-Wu$H8iT z){u4d#&Ir5<(mt+zR$+*?aMR8E%hAfN~~QOV;cQfV+I(91%2s{1f+jI_1!b{ZGWIl z?2ccW>g*^JUTvDhX$aH!$1Y6)Q{xQoCziePhv`#+AHv^woxb7cSnJo=MSLD!#%E>K zda2amVg810)jfKn4qS%b1D`QZG681`VXX0MlA76U0pH_fmaAazmILhTea_iyC6(zV z9?9p9?yC&YGpZ}%&Y+&KohYUJLs(ya1JkgYx(C@d-v^sp>i1dN9roX;PhF;r(f&H0 zZIl7Kh4zmeUh}80ZGM@+8M|MVm7i4>%Y2ltRLxzV;-A6GVeUS%_<)R)EMsq1RCD=K zZ-)M8;CSBs@zjfHZXgVBuhqsaY8f=;}@25DVO(z z?=kPt`{yHRVD8a+uLHf+6^3|jsM*R5eb36Fex^PenG^f21)QT?B@Y&FIFioQTP^Hg zUfLH5=pOG4iZxsQnB=Q~w}rfT5ADs_fNx#H^VV;+w^06NIc9UjZ%RBr&;jVPKnwEp zSD7Bre0KS>_Mwj_NGzW`eQ~OXWO64uzf={AC?uy#se8HMeRWWARi|nTYqd!RTV&%d$7+{_)MMdL(E~ttpY~>gwV0 z`8iq7aeua&XDg3NJ!UoQrWcDL^o@H)ZMLVKJH#$A8|;hV??&_ku`2w=QgQM9(bS%w zYPK$8Ckx$_@$G$V!@QX1^r%MyO<)HHQwJ3N|0yu0 zRasLXm36;*LO-9lf%0Me+Mbpe8oe~`Pbz!0L-g!l4hC^F-!5uwu*c&pUT2#(qJt|K zw`VNXxBlhNq<)#!-cO-hrh1P3*VQK|etMG>7Cop0==5-Ys_F~+zPF+{{XVci znx9NOtIq1s|LFTU@G<|(Cye>_y~UW@?c!ddkGP(V`tbfOW9l8cjA%)GGRGTcoj?q@ zIp8Z+319eoDa=!9=-cq084UcV7|sl?x4j|wE)We1MMQOg()4+-KVjc1&0JWPM`KO> z{3!7Aus*;`q5q!zT&-U{l1lSj0FLhzoSBqRdp(Ed<4h)Q&jeVEv7zn0t_Ta25 z$OJROZQ@y)4_ko~JlxGX?L5VkVLrU5@aL$ka=f=M7EOIj{PnsK9y^3s5|j_`z(4g_ zadJFWO_mW{%CZ__0d|I$F<*2E&H;(<7B9E zrqYH`nozVCbE}%@?q9R!*R%Bd|KsibJV`bfW0VJtiWqf+K`F+% zYEV?H3j_@s?W$O@rR`d|E#A_)kPRRtx*-WagRGXeT&umQMoTT)MS`W4DhMi7T6gzh z1X)FBX+g_1-}62*&+e0$p!a_6{r<79-JNHi`ElmV%$YOiyw3r@3Lur5Uv2SuI_8v+z=zlr#d+Gc%ALl2z?;!rr@h+lGaAJ~m2lLwn zVi4uCoH#395hxMgd+r#m^;1m5T%x%*274^zZq$Ra=4mU1!U}X?p9dCHci|fe#5=n0 zImm_*hb1czExcR#uh?a$>NgLiv0A>SuyiWay5)G1_9!}M=HpJfYgRm8yA?5;R_A%Y z6^AX58+)gcvu0CW`P#y`o9aKIw~JZy{{%1%sQ#?31##_HVfN?H==@qrX+|_#SZ6O_ z4wh4zhwV3;gonmlr{B5C=DW`weE@!tYsHvrGW+VeEZ^MBx^jc$c#Ks=VY@hNASTaR z9xwK-)91(Md1;NJGxA~D|BCo*I2E$@s~mrq#szpHd4}v0`gRHT>(+!es(l>w=j=RV zfma(97Qk3P09nY7b57HN12jJ@8T4tA)gFE2)0CZ-R)3a#+S@1H6{mC6cG}+q9jyP; zV|3OfJ~0d*`$!u)(J4;rY2Xo|#iVUL&VYZsCPO2)LG+2qGb;PoVayrhhUDyt89L=C zIt^9lwt3#gj6VTh-3>b%Ro;En#s^^orPid0r^+?ykIF`8gW7w-XJ(m6S~GD@tf4&p z>47=5J}mFeExiV0Y3mH|9<>en46G-kp<`tku_*~Gh|x4g2V&0(;IEG+o~WR{W3C-A z!i14~VtO^Pk#&8247x*1>cl z-4pxjM6B|UeAe4X2l9O?pZgn9IxWA{X_eS?T8~duc9cYmAp^7-F^?==&0W_>of)rZ zhU^E_5&ZxSKxmGg^rT>Mj8oECaXRLUVS#ybBA=^uy4KvTK zq46?8EBNd^gzYEgS=u1E`I89}>wg35Y~id}e%VgvqCGKM?`YkpG_jZF zH+{tNKatE!-|l$Sj8Xazx;}oN^0JJx!{GelL;83&hec_kN0d<=zv=1`hHr`JCYl)9 zYLN>)k-kzu2L8uEb#CnXLr1nR+Dd1XC49&DsGKK`;G*QuCSa|<#l+d>1^BEgyE`jS zKK)-iL9Ulx#P=XRK1^#V+sP4)QQvP)L41j**|zB1xIyO~!@o#eNn>Lw{_ml6w!2^l zVkaeWSBl>|G>OUlWo$BWxB8{*3w_JQ^SZPz#2I1Ks64hO96pF`p^V8jg>4IAPpDt& z;_*WKvW!h3&-;VON9k3$!RT3=*zT{LX+7rIV<}+jxHt|)*k*IsGpNnsd&=gp!lRjM z``H|hnJaA$(Kgr*c5heqgTbf+F`L%Lc8E=7%6^b|xL~uiA9O4G!FRE*6TLRk9D}VO zpC@UKWx>ayDjWwM(06HFtKry5S0`)KS#Z;YzILs?es-;TZ*SVJ_3O_a;rlVXvsT|B zteDacYDbjDh3yHAtCDX2F1E*kKO4!g2TN;a#N70$==b^XvKg_x^uatH*Ojp^#Q$&n zLfX^f_gzo*efHuLng8#7+ME6jTSC~qB7WVT>d)H}vaP@=nfrXLDP!-tjr!TG&KVU7 zV+K3}%#!YY=Z|h>TL>TH$7sBDWj`EN{ER(ygVC5=H*#6RpR_6@V`mh3y8K|m(PgB=(D5WXC{5dUoL6;70{OW5BDY8VSBCWb`c+M8V4$YrM;o2& zUy?Z|msoO}4>ou0X}edalHn%wv%M|uXL~zbYXRDlV_OSg zQ+Lh}r0t@WkNvVR?@eu_vmWL_!?E7fT4T4c)(yxe&QS~EuulhGx~^g)xxVf;M@*4+ zmE{2$3q(^fA6)AEnf!xn$MMD&H)`5eF+|~7KZNw4KRHp;UT{6?Hh&QO`27*I?{<=G zRjw~i76rEotfQx@_b0IJYgmk?XIdb{&x+Kui&=jk7S*>76U+`5DF@QU4XWKa|s%5_A~j-9vltd}_-oah0)6+)AIXdAEsg&@#F6JAI)aNz<2j5cfDm z!MM3m`48YMfpPigKczmZpkyH1+4g?6vwi=w|35Ix;A2Vrx9IyPWUNY67h;w*KRRNw zT}IkQv|=3{V{W&J=rdAQ3g9lGbzO!(4EUVTnYl?beYCDV^-z}im(XN0_}wh_#WG&Y zGG_!QoAm`*v=+3L)ERGP!`AhFOEfx5l+wOi z9-wiLNsI-9WG7c7EY`x-T7Oeu?Q|5j?T=D=or(h^JqJ(Xq82uVvX`3 z#@f+US!dExX%lYFCKbj4_-`?Vd;NZYCKrLTzuSwuhA8#vjP_w( zR%+|Se@y)s^C&QgYQ0Ocf$vb0E!W1nlA_edO23TvU6B!+3+RLUBP(9$#P@DYO8f5R zqM)ipJc}_?cX!Zrt*3L!ZHFKF$GV3)SXNwdMHBJI#k_yr#@J7{u;1FcD?0d|x9uW4 zAIr}X52#>NCT`{v#LpAolXp7T)<6ecYi4Ov_#EmWxy!Bo1G_pZ@BYl?^qcQ^eze8B zBKUig?PT?3$t-=Rm)5q6!MiglkCX51amPcl&VNYzzB{e?lSlmLpfg?Jf;irHI6`rb zOK7YWPQ5d3FUuX;0gUWCj*ntQvkHPO&f6ImN}kQP(7wg`EzO@8s>O>d2kATR?S^9g zx_q;Fg?9_b9d-3<_ej<5p_=q1_-q5UJH&q9Wr(52@kM~M4O&cSFOyv%s$BzFX(S?>_P?V$DRDfQm3J@Q=k8`e<(Ye1C0(0EYU z6R2#gaVJ!sU#haZ5PL94=T=?bbHB7f*>xIgv!9@HX@pFk-R=S8slzSyBbO6c#-jo*NK3t`%!vtGQ9`?^ZK$wDfpRfSI-uEq@H65J*yx& z!b_jQ?BMVHRmKi})0m-V{bgBcJ9ys!cJKk#-3)98KeV>59sJ^FK5qvMli0z#mHe5Gv!gJGAR14Tr6_!fKYFXx<~euNoQ@cGIeiO+2I@(yof@$)sY#P8IzW432*^=zYh*5A$^&wizz z!Os5q%2?uQ{4bZb`7(V0r~ka4FMy@De84At0bs)my=y-EKuCW8wE5C2GyVXNDczCX zH=vcu-DvX-IRDBbu4mIXGj{!xlwQw0fL;GGbzkUFcKwrVcKwqryMBMvF^XeMEf<^A z9jGSbRngq*n`XsAV_BN`;%84vzXAHc(Whh~Iw$LNPS#n+OlvIa##}1UYO{&woyzW? z>q8l(8>EkmNoV@~j0-7!3udp=SYM0y^2m4J)1R-4&gyyAx!kJDJwRPnn}asmO|tnZ z3SDL$F{QCJQgO*js$Q%5YkA6VRcPhe~jKIQ)hT{CbB&@Yq$-7J?; z)fAsZGA(dsvkan(K0ltNh4)W_Oy^&~cjmD9x3}l`8_MQCkg@sCvDy3|R?qVSh@%)S z&K}hix7Ih<{5wYh3$8Kl3^eZN^RR!usG8l>HuB};#@S)x}DxfRIH&hdM|Q3rtN?~Qj*5J7&^fId30@8i9KD{wunCY zlwJmNl=9ljeWOpgIKx|U@_-W#+on)%4%SJ=LC;k_{AX~y+DQ7WUZ!lHu=g%jX*kaV zbKCH@iRVvyBY`;sz4RR8k^*XS_+r(V%-`(+$Bbqqt>0>Fk zY6ssf1!N4x+1}>`;&5udHsNTF7V9Bjv2$Lu*a-THExb|qgSZUf1uc+1BsN<+%O}O9 z-JEbS#$3BNf^{tb`888E>;>VkLS?hh3YBjTR(8V|l#RO|m+t}*^9|vcd92UTVINmV zGVhgaPYya;v5ASMCC&7S&q^G7^pv1qgC3ImFSWB>%`5!QQkdG7{{8>DU;ls9A@#CRGpb2^2kd1moZ1RVa(BZHg%xAyGWZUqjw45vD;Axo8rHnnv_Ern{Uck~H>o(j! z%I6;F42ku?ith>e-lN7C`K@&dzhOJg_owuIYQ}~I>r3e->-;`I`L{7fnk)nD`kdXx z7qkui+C;o%wUhA*{1GAJ$W1rP^)@_nN9o)Gc^hX&+yztGc;E|oXwMp>$yk{VTHoC? z7o8*@=o)atwve2@MdXnD?b4c9X9hcx3JtnjznMEG+SYFP+RoCnC2m8W9}4I@s`ZFF z42dPI8B(SXX}cBewG zs`q5$TpKldN;uA^YAenXz<)3p!#`@y9C9VvNoT+YliG@YI(9KOOsg=oR<>iv;&FR` zb$6XK51#^l1m+{rHtLOu4UEeu@g7`!rjM{}Y2V{4KE=KI<3>zG=>wY!<)o+|p-=h84UX~SKb`qu2Ih^VWrRPHbInh19m~XU=`B>YS8~?*GcR{w(wABXv z&Zggp;Rm1F+*hM!dyHvo&OGl*$SZ|e&>PrzF9rhCw@a?zmY!6RNcQ(Jb|3#10TwYHf z3>=QBreXxy-?#50GLOW*?4J*xA~o+kr^)->pgOC$yuT9Vz-FWNc3ecV5Z{|<2kXWz zOQ+!;YVz1()=eH~+uDeLeD%U88LJpN{uf4VDVgVcUa+j>tA)LW+lmccsW7iCyMLFj zJ)IBsmqE48V~=*7qH&yQ=rSZmYdHD#&SR+pO0UqQEd zX){&YOudcI@jksR8}X^P?mTwTs;6{-dR`o$o{a<4^XwPY^9!m6V+$RluB{V@gMBLH z`{~YODN9B&-mTo+KhIdo(`n07Gf18`Tb|$mdC;aMwmj3DW}esr+JV(H`wyT2FY`kEzeQPgY^V+n$LiL7;YZU zz2Jk2MVeV2Z57q`=bN6fZDRdBZl3eyUw8BU(w^&v^ZkrBvLK23nMuZiNJqgm;EXn-OUJ$6g8NEGB%1Kh zm_QFkYs?mhKe`LLdIpn1fyt^}21cL4}w0OUhFo z2(j()Q}82!kCzb=6;X^2>#bhheRnR_GrlK`M#9O4FDO$_mw8KKJ(aoMDl?KP)AE;C zsrq{JFnI^l+}oS7?*6u^XE)I^V8jH~{~LxWJIO^-x5($O*iLcvD5vSrcQWP`WV-^- z`~=6uqV{zgyAv*dn|Mawop?UB8#Y~KR?Mn9{4$QNgX(kd(7YZ4OvGBZ;=!T7`H>jVcDV&ueGzxY4hMUa7+Q1? zwo4T%Juy_?8=fO*}*Hq(eJ_B*O`J^NftOR%m%jWcKuez*QV6|l~o%hlO& z;pfhs)StZdS_bF6zr4Mlo)7eXLis~&P;`J_1J_G*TS0VlFO>IojN?S-^{4(H&g<*@ zpVtk4vd@`#B+9AcaxgY0RGTn{bEqv9)E3CJbCqm$I@5d#(;9P~*Kum2JJ!bdT{^Af zRz1+cfPboo$THoqyQ4A-)O*@V-mAc!r|rEd^d9ckJVR_Wqx2gn-KW}U#ec{9x~il4 zBz2&_&9*wmQ&|lIlx6jE{C}gYv#G4P3#Cn-RhF*G;&KdGj>o%9>3RG~JVzh9Y<+~S zViA?qPG#+(bjy~Bb=$ToTo4AWu_j+3*GP04!_g`tgZ7>V8 zsAISmFQ#|0XB)e+JB`h`vyCm;VQ)Aaati9$M|Fj1E}|aH<0Az{si-%cTz64h0=9e0 zRJoQNAl~buHWGK3pda4bNAE!1fvi(ba?PACup`v-`u1-(-p`k|59MPc{65ct*QtzH zbFy>ff^-{XpBq@8K2ROFt3?}84%_W1Jz+4`SQ1wH#Y$Q?W@-1c9v(c7@7d~qd7d1T z|12mvi1lu~t)EZY`e{%~9%cPr_WLoyuJni7TW=cfPQ`Fo5NV2Q8QN$C;QWg_K6pA zgZIQ8frZIzUpW3B?B6gQ_%-SBhS2|9ZF=$hRHl>49Ih3cChjy@5AyjkX}@~XdhgGW zg9pin@o}p*{)KHpICk#m^1Wp%ZE+?OGfU|)it0m)N{16qc4 z{F>pA{aeM+&23_b(VWPNFN2(t=k&^$r@#x?ZG@AYr>YJ90%AMI5o#6l3OmG6hip51 zcdM&xdrbiLjM&4eT(9&M%hCLa9rQkQ#&~y|(VqNJ`cW3{(ZjHfb$HK&4P<*s#hH!S z^eNd*zem$=`jqUU-<9+{z4xoQq=$`WzF)x^!io|5R~5(G%FFU7Y=hz#2w4zJy3 z#c#6bCE2X3^d~1$Rvy1vpBCjy8>f#IMic9<{BrCdTRFV23!a{E87+u~RaSauJIl92 z)EUUdzUQst?4KV?Rd|=P-Gir)))GU;cPpKek&zDjW6!;~ip{$~#)c75yirBc=rIt2|nZ_!EuaC`up2n2$Rdiv@jjRsD+A zDCo1NC179cal9g|exi@)-!|w(8S`Np>`eN$O-I|NBo1>sb_%o)ZGnFBHpHK%H2kmU z_;;f!3#y(G zk|xsGF|&r!Ae!r*U$4uVlT$t-ZZVz)!3L zu3EOglz0sM=JJjbb;M)$z}92bLNRMXj>P$<@v_G04m>Md$U1DueLM0p_y`@;w!3jQ zg50-I`UGGdcGH-2$K>7pGuj)8=Y4OmKc;ndTkhSJ_7l*&Z-@|L=K_PWpH2sNi4J=H zQ%e7Yu|OKIuauojGKC`;ZFL3cL$n)B|3_mD4n}uT`j#BVi|^p^?1nED&66_f=Lq5* zlt=T_6tESj#{K6sGYP$`_VN3NXbj$?--Z3kF9Jr|Am!Jq@|{0}Pk4urXYXBN1)sUM z2&Cb@6!$cU0r0swOS1VE+ADF^a_39hUO{wyiRfC>I%4xo`e=*f*>jFB#JE+U&HI-W zr6lH3G%?Hj4D%Sy+KA1`e$W24wBK_@;A-}JcEy|M+zx+dsTW5%(MvOa9oWY#+&t`` za{{3x#uLw9rTS(AZ@_3u&Ze{ZtXMb+-(kj`^fpO+04fvb!=;xNS!K{XB$+tS#CC4K zp)zLrbw(s>Ry?yysCa^9kR`8%El4Dsgzv&nsXWM~DB~&i zBe>c0P0ighI~aa>hJW%FT6xf?3g|-J-h~2sia9}vpZw$=Ag~?mF5JO*TMk;cXzoua`025f=AFX6Qx@Nx zPwfrT{HdUJ2C03ssokToN9q#$i1|5#8Ogpb2QNX}JJPn2{o4!sRHv=IUc@8wE)s|- zQb6CZ6O9C#c<=S9dwbxyxV20kOYdser|eWV5IkR@6H)k)pN?akFV-#34M?Bn&6h~} zLT0$Oeo|f?V8%u(=F-h}>Kf@n8 z6fOz)2VTxH{H`JG37MB@<6cdagg z|E?I(f!1s--p=?YI<48c?2Aonx55oB(832U#=1vxZ-rjVcWxD47xjNR?K3W6(C>x; z+6bLL%Bojm%VX-3W6Ck;LNW$jIh9?f_Mx?Ig_&c+(nS8^OET&BKb-!LR_{dUojmo- zP7lcT7QVYhlX3lMf;qo|XtF`kVLlC zKeY3y0ceK#V$sa6Xm)_(MYo8cO1~cI`dWT>%Q#7+_tai%VLCshFe5&$&R{xsD@^B& z^u38bG5Yk-XB&OC(`N^L{&QSr54YolUJm;CmvWi!P?@!e^Bj}3J_~+&0lsIFxYhHb zd=FF*SqguPg9W}dBp=L3z}Cr*LFv2=+@h3D&vf5X z8ACB5#{xb_A1Yb3Q_J{S_@sT^SI410GWNXP-_^2@y+hfqGH&0vj88RVV^W)IL+coi555rDzLopysojjV zqI?W+R+vHclT5<(2ZGXHz@V~54V!M_E^mnPK{Wna$+0P*Tb-qN@_HLjR?ztqX@%p! zQ-kYU$E$r1S_*akN0QsgKdzpt+YF0?k(KhYoJGqMJ*}OW2q5LAQ{i z8+{{v7Jcuebd(876Sc=na*46ZlZ*88Pxz2DcyXSaJUw(S#MiKn-bzRy?hS@W-dKW_OS z^kYQ7e&C!Dpz|owuI6^g{W1H0cn`!a<=+}Fh({BrJy2`bZpt&4S2V_<^IlQ?M11+UU&h%6$#{&uf0A5r_D|wxUKdSV z_T8ao*0tfpiXZ2g?Kd>V&-x0jO;pC3X=lf8`t~HV=z&RGPLB4yM6UN)D(|V}VCC(( z?$yK-u4v*r7e&p+{7~X29*I%t^7-T0{>^chHZ_qQ+ZDf6(_V1U`l{(~CM$i>XK5XJ zmd+&yv%Gi4fn||pNSyR*AD8%t*!SR%a|PS-tPnY|yW@z@09>HC`fAp@)*vs*WOF$_ zabr9bTS7AVBF19`4K<=+5O_)h*(d1!dVQ5x=!hn!M~|iU5Pjk2rx9HpL|4sN z7I%1m66bcu-b@~+=VR#|tn*dyYYfVI%B(T%l4FXykC48aZ52<^WK4Qs$<+r|iFuT- zJtrsrvpZ>>F1Xor%#Qvf$Cw|7j_tR!PjFvBi$IHTss4rNoq5C~1>Q!^7xFGapU3CG+XX#xwi5O z|0U-)&RHK44R-{fOPFFhj;vcT68fj`jM#^bGe}Ixe5^G1r$bja0{my(^l>%Ki0Skxr%#mr-~6>ua;PuN@&Mw#_R=2O8;JfS z5Dc;0_87HGQy7RmR=~B69^?IzqO&k`xqNo75u2FU4{N^dh*uL#_6&)OJ`~N4G(t}c8C&kx^59y3ITzlz&oBFyZ7EbO6gz5iN z2awkH`!V`7vk%deMMF~7{Uk8(X8IQj&~Wr3X}5v(yxc3XW-S~Pho-GA&|1aoPaH|P zRjkwPPaH|dL!oo;!60L?wToAf$1CGAX4~Q#Vf^m|)|1bl1ZG`>wp{Gp;!ZWt*aqk` zlRiP8Y>U-Lv_tw9$+p1$%h0qXXcPMfP<>BQeHPv<^jsd;b^)8%h-P_=#_W~4Jny&1 zGUxp{bOynBpZ$<@_#w>~?X*{|^a9&m;^%`_=l?B(8F{cu$t%?N7V5iB^jJ!Dmt$YG z(dy5=y+o^a5vFHv4G{O~$4?9%_vyI8h-VqhkF$D6Y^2X7`o!qdL!WK**-oDw^l3kd zeP{j`*mv$>T(FGo<=>TEXXpR0OknD78K_KJFXwoF&G;8wW+#;yp)#p#Bb2d2%>vD> zG9y$bY z=0^x#vU~}_$L~FUBrU_a=-DS$zXq9Wr>MCm=YP9+{c$<}v7T?I-<@1{oA?9$W*;rR zy^n1#?&m-o+|l(=e||^#EIF*_RvGgS^XNB^_nk)xgdM!l>+vIL9J{9MKoBi6wb{ez?&P>yY zc*VzOH#g$u-tqY0e4Fu^iHJI@FUn5L{_Mt+JiF#3&#vhAY@qgCa+3C0{w4GL^OL|y zok?T&k-|4b{^chW9vRIQ_=AOMou5T{_9<*Y{KlNZyR+%{Uv2L$Iw3K|@NUrVAK9;c z!%osZ3r{N&2_-w}Oa#422Kg3iD%Ml1t9Cnl_)Z|+O&V)kt*dUWS{#W= z-v2mygv-MEd_=`$KppF4{NKdkYhOIz^A;W4YvJ!xTZ$hGC2#t!Y|FQ)Ej3mDZ*6%^ zwPibfqpbdIsjbSi<#cL`HAl|l7$q`x32?F?)9QSWqA(kk{k7%Cv{LFdP4@YN4wL30 z$0N|U2*hbcjMh!LyJ>IUBH;gr7_BI4rT%%_Unj}$QLQ$K`3T$S0eIx*`Ujb-o*-@VgnOK;eDBHlemk z`gX%^xwZ;4kXXT(&u?5*bP!mk(91f!FH3w%?PXrKo%BD8KINN%Gx)OTj=fB0w3o$J zs<+x9?-Iuse%?nJeqyZuzYzK&GxGO7y9*clrJ~0 z9f&*0G>h`xm=`)i|4wQ{n`k21K4&aTIENImUElY-AHNTOIeT7*@dokHRPzw9c#NH* zfack7!we79(-fwQo7PhNr}>-(KUt@@ZNJmIi)Ax6?-@JA zHu^r}%&U^vLvRG;#hmlB0IEvKkR{qvkwZeT;E7Iy%IwQ`@??N z3?kjTE79$JIkAu1+F&|HHJ{>$MT;x7wrpx!?jDv8+c?%S-yu=|fBkGP-(P4Ee-g3w zU^`bpyaZf*cWjl&jz1FD;tvbh;#%);{0h9I%XhG*WJeb6mvOadZ=*5A7&^U;aXq+2 z#1su*QrMQ8==x@6@G1^&GMpS`KM-pqbb8R+0xh(X}w(YXwBFii6# z%PaM0i@m&`jbv@jCw^_-4( zNEX(NIAX;z#w^~YHKc@O_Yz&5aV?BR=zs!L7Rmw6;?T7cXA!=Y^MdQdhLYiCT%T;} z{(Qz*J#o-&&WKMoCvVGRtkvM?Y{ppKbV;^(t9P=Qqj-ou$#U2!$HSsB78cd;;e*Xo zFf0n5mDr398#Wxq_?*X%q;>Q83jb?m>xj)kTbyt3wbn1jceaX8foF%;d_KN+kTDlK z((%2s`^ERR_7TWfu)FhUP07Emk#v9_IOooVaS!#!PxN5?k-MNXTof;${?+&!lWtwg z0*Lq4SV{XmJ;NSetzvtyojU9hpvUk^UB<)cQEb~)p2Dg?z*ZmZrL%x zF43cN{Fs!)>XKLtxo9i)Bs!ntT(9YJuPC7Zx*r%+?QE-L#q7X2$C|fxtV`72MQ1!~ z-zb3XpA~*+6L7P__ zdK<5w#k}84F~5FVwD`(WTJM2Hqw3nD%HCVnn4J$i>#_1a1ofjH$ox+EZX2DCxlHJ0 z7nDXhh8xwt*7=FQD{E;JaBWwmi~d zhkDIg+x+v#;j_V5u9oc#?#WK;EleF!{-6azl}!!RTSDo04m`$ol5ZVap&7KzE9a^6 z!M7aiLsx4T)~h2t&t&`_oME%oJ>6%kGxL~zJ*<6zbvjY=pQ|(P;S8IvY(Y4#IQ7H& zk8$REJr&~@F}|Qv{0?a8ivZ^)QQ@mi&Q@m!rxnwe`UIP^3LnmWS0M%==Y!38xxQLt z@!b(Hd3TDRKM+k^1z%o$t?2p#t*e_!)?A%yI;!T!!%K3_+ai-08}QZ;ok_jYzqf$v zx!Eiag~cW8lO$~#Vc+cV-oP=FQAY)0{=uHZXcFhK?6jI=31jTt#xgNht$`!eS>Xe; zFA^5;Q?|!;MqFp;`rY2uybf|aV&An%YaN6i9@d$PV7nOYm9dKvFA*4D6;$46YUju7 zSI{mtbsk9>^!-BT5srDdk-iVG4@U>vJ)L5gmtYHxSY(J9d4Y`WGDoe^;DZ9j4v(@g znHGcm(kW)+Ii39t+LK_PvYnn8w01toJP{VpDmetQVmWZ*x@g?gIILBAQEPu=-*oJe zR2TSdx?0zB({spe-fiQxT(xIlT}14a(Tc}!|Ew@&t(Q38)v5GbC>{BK(0L^N{3+O# z-6Zb=SU*X8=ZZuGc#pAiXk4qody(rnPPfbd8V%)0ZS&{>FW{x5iy$ju!d=w&q^MsP;?QjAYYy zu+J6x!pVgJ;D~B;rmd5HR_Z=z!b=L%lk#95u-pwyQ{ZBb+QMszHRdJ3ILCzw}#D#LHn2= zYkh}!>Q{2Fzn;%0Qg&$|nfYfby_S6@rF?K5#u_m)tXLTX#hvtX%!RTBm8W5lJiv%s zOzX`YIvY1D9AP@&iW|oiaSRQ%Syy%(p7V=RkmCzf{0(WVE@OFMFS6tgti$uDKE&HV zAF?^-0r5YrUsl|W>+U#_>K|*e|GR-f-km`2T6xnkIQ%jO2htl<91c9k9`$Es>+w_| zlx$G*Q&ToDn2%UDv1VfJ#JV|*`VL!x&R|m#{u_21SlF7nVE;#Xa5rb!9QV-^L}l40 z&QrFpT{0$Jr>}!;AGlsxe`yV6e}#OT-Rp116dlAo^PeGctPwX6cOdBZiQ7-4qOi^P zHA%bIptO7a$R^V=K1V>F&45?ffc0JB?dPzL5q23{ z5@p`E*#^huUu27|_4|QiYsoc(V{7g1PY1uG!_?d5{Iu-r!}Fb{TgI8sbA}ct-OA_X z>M2eWHf~q;!?j^tS@cJnnuW2l+Wrs5_+2FSUYgCmiZ1FyIms-qK}U3w{_nSyv5$Vw z#eJUYKjt*_93e&5y^I|-FDYY4Ob2EZmD9-OylE@v4ai-z}DX`N$bnn7b7`wTmcDL9i9W6bBPx}vss)~famQSDoWI2*t+tN;#agwGUM ztFycd5D__^3#+Z~L{&=rQ|RI@xlXExSx%Y7ur z8+GIi5H|{VtS-Z&Fr(XePfY%&)FtGxAGK$|Jo@XvMrPKjPRa*4+wQN3m`m_+!FjG?tn_WI;WcPFV*lpNVSkor z;=$2<{axV8*r4J|`{0j3d&A6V6ZNZ3&h37_FR+1ev(CY1R&>=S?fx$po+tfZ^4UJW zukVW|uu32%OE#^0(CK0x=c;(&7iX{_+$h^W8oq&yxu2NjTgY~fyw61CKI5T!R%+|S zO5*V+e|5}?-CgFgd=P2>I(+`W4$h-8CXcjYBOyNZI$j?pH=IaWc?(oKB(9i+oe@p^ zYjjaMPmwMCACx|i=;yVStE+M^p>p$7-e~KH&DD$Leak@S?S>)pyiI%Jn0j^I4qPYC z+ps^cr~SD*k zM(q~gsoE``DC`lx9MvOUAey|W$}gbu^?v2U)`#SX)p!SG;Qc+sCplw##33rk#FNrkPlDpHFi$c29>G^=Tnv8nQnmwHfzlJC=>u z98_y5+ous9KJc`Rop(O*RyoZB3;X|U;+<>0*TehtFvTCE7!z-~SV8obe!AIWrfm#Q zWg0KP?Okbon>u#4c#Pit4$=5#+t}pydke@gk6Q2y(GVd>7Bpc^Yg zY(3~y)~oqv$rQZ*-+CftA0w^b7@b&=86(^c9;g4g>DacJxG`8;%V~`rqvj4Ukpjfu z*Qz-SI-O5+`kAwb&-^`4$$VeobJ;@ipO|C*5I=iSJ;RzCq-W3Ao<09mhQ4!X?el7Q z)+mOiX}gg57w4G%bcI~=QqgWPiQakj%-!M{qS;$TJtBD~@iEcu#FG}C7mB|T-R2m} z)A3hPS5W=O`iZolSK0yl5j#wCFb_WRNg>BFM!eAimG&^DeXR6D`_!Hl{-iJ+a}@fa zO)CAzlpdgUhIIk`*Fusd-*`%{Z_`0nKdptd#v%SCuZ7+omJ>f6yHz+Z-YSOE=M|Oz zI;@AZZjL>pDLFsXBStiC6?&tLZ+WMp_Z2F>74(KeCxW2~uLwJ4MnYT+|eZ;$S^)RiGVNpl#WB&JF`)Dm%4I4(} zy@v8!x&pS0ee3ZlJ8x^=T)4ur;moXM=dBpnmJ^tlSj)y24z!lF53rWC53-iEi$ljV zYuTB_Zwf(lyYQ?x#e|FB6yGb}Dt>&{Rt9y!xsPZ>;122O~L!tyHQ&2U#9n8 zqxavT_p6??)|jyPnOf^P=ANPfo#XO8qH)EYc{}yD;>;Z0j~r}sFvVQpr+IrrqxeVO z7O|4b*pt^N_R{CXm`1Vl)h*&EefHhj2yFJe#R_Ni@R-Ju<7JH{&5Vs7HCyQXeY9+g z_{W$nyuU?gzN~K_vDvyKo&_HZny+2n@PP4_XZ6#;1qO-B++SBWbC7&9`{j!iwu}2N zVxLVDwt4IBJH)zIOD;vaaekYK6fP6@T(ls$;=V&E3x|;BJ@ll?UTXB&MJe~CBwK$- z<;5RiY>HuYZoPk4nC-H0pJ9(>;tqw9Ry>me?T*jIF)2M4KGzF`%h7nC^wKc#B6KyK zyzc3j$`~JPQ-^Y45B{OF2X_al+_+V)KV7cRN9Cw8!&=`m|E_%8w@@Ga)p_Q3FAOIO z(SMR-K?B&U!EfXiqK}15FYz@m_`szwemZWl>|0 z?GEt$6yH~ERKF)e-+!mPw;H0bz<>?sB3b6Kw!YYK-Ns+|EKquXSXeeav0yvbrMA zTw=~F60soW?edKNjrN*9A&wdC!y&b|&Z0Gw`*rn;2mbR|;lX&YozH9M5?%7N6$emf zmOeiY+2Izd5C5gT{|W)ydBa2Nw>K0=eR$^Z-pzJ81)4Sibz66|Xp_Aizv$PFeYA(~ zRk#^v9_`D2`-nbqJ)GvhwL~M_9q(2C+*K9I)|2WwIuNE+B;)()4ocrw)=$JA7Fr}@ zHy0;*9i*~i%9n0`g`97wzfi3=sQ*V)KWxMhGjoG#KX8F8I^Irn)NS{HR{AZJ9;G!l z2K|;gW5`rC}jurU;2j5^q=78-9eUfXY=udUi4hEN|nS=Tm$ z&)_kV9czo%v486-#3pgbc1<`|nCi=eO*S5EQasp{;X%LbV=eU&*Z_`JiP^w7RaHBf zwm()nK0kf$rFHTst+Alj>t_|Ej$+SdyYuM@T2G5DNJLb+1lb(bF^Gv-ba7;5cCps4lj4D5Q~oYred(|p?UNG z&7slN(k^!PhWstrq3Grr(aBqKyP})7_V&Jm@}R3hnGWcgZDr!#7y61yD$`uXz72d% zm$C`&X`5L0JsEkb*U);{B+8?>XKCs?|EMhJ_eN75=&=*My|4a^Z5UUwzN}nd*{3h{ z+?U1tEbfK?n`3zIAxfX7&JHux zd;d;pU*q~$iW*8YZ1q1t&w3PY`*zjl?@-!Rxbs`A^v}3U^~-rVlkqG&gdeh7z@NO3 z=rnVnyHR?Ee5ccMjss0)T&?82%aC@Gcg}$hP`z`>lj$>F*{ng{A$htCa?(9YPP&=K z2z&fYL*9epyqe?1*e~Pr>ZdoKNc)D(RDK#2MGn?$=kR@Lhrqj*-Wur|&&$g6jz^;5$Z6qq7(=W@9 zKQfhZk62GZYu8lhavkf0wKlIhvnZ7d+oTZfv$fCB8dS$|cOXxd0HEN(ap`qMSIPl0b)A=Z7%Mgr$P zL)mZar7<(;JoGf?dzYUv&o-PmwA?BvROlN*}Tp0 z;c5}ESD9_J@ZMbkU$;Pu2*g@Mkoxr<^qtl!oH?ITxQ-W5Ut;ub7mam2<=aNTH_mSt z4fJ~l{qDZMUChy1gzjh;o2Z`ckGG4SU(w!3bxfu_XTJVPY92jz>-WZyr;ge%j?(JA zYe`ONA^y2L?x*y*RR1ZI-azSLN=I6j?_2RPl;)u}&JC=k^45xS`dv@I^WwAPrS!Xj zetW4NgMQD0??3(b8*8bawPHLl4=6oM=>bZI{dM?EhgltO5k7i0lj`~lo&Rd7KDHmF zwmHkA=4c`Q(@XOPDyo1@3B z=Kc11N}B|n>rm8Ox^79*O)_mB&9zeRDly5omdd#oHb=>7L-sAVD;%HXYZH}J?hB(3 zYf8el!gqmE7NC(tIm8tmnw2_L1`()*C_pL*?+6z&)# zhS?n^Vv6HjTuF3&k)Bl&&9yje5ZXmeg~N2yda_J;eXXL zKExy%cf=mYyq!$rl%vM!Ts2OZ(+8F*zmEULI62NIK2hToZIv=YCDG{?;C0t$!^XsX z$4`4`1hH&eL_V#7wO`LQ-=wrj^dGU7F$Vde*8M~LjdA!V1bvH>jvwB~xHFefIer?a zdfH+OpxTfMss?Q@c}lPHAb~+jH=Zbjkk>v`hKYzqtQgOYcZeJ(0pp0Y?lAqDn6TC zigDYRjkBToP8Xd$Xf9RK+@E^K!^zs;(YR5Xm;P(M4!)bTFz9e^{=QL^f`2SzbnKUN z&vuv<)Q);eGpIf<^`WwBE&HU@K|bh;7S_?+nTfkPnhPE(*P!PWl&_T9T8enCls1~u z{u+<(cbs-_Qm1mtiJrOI(zrV&*CWgo(0Av{at`Dv9G6E%0Sj%FurSnMuebwPDYTvu z&m>1H8h=C4cr?{}uA*`6AakHb(YI33*9-cNiJD%bZ#A{~y$I1a>QBx9Z57^H%@5Wv zZDAh=x}N^+rAh4h`QSa@a?u}SZGz&#WkkTY$V3Q902b~EheK&lQiDn-9jhO17PbvN0uHz1PNxYof-!3YMmImfc*}cj6M8Di% zC~o24e07w>atl&BMpNFS)Q#%uPiEhUrXOhc4$%%}fPNJ=`aNx<-**)K zs{7FZUqGP0Z_d8VIx--iD;k2&&jt-6{^T?p4fTJQG=vSw<995E@1g0Uc3};1Gq1}v zV^%brL^~#Rg>fEaUVnRJQEF3M(h7XMk7%_Cwg~ZI$(?$9|Fo+3{*92q0uhyKHjh~08@wiTn2V-Xs!q4!(k45R6 zK=Mv0dh<)0r2JH@@iZ?;FrSGJoAjiJ#-A^VPU} z4)NW!ChyVnYH+tr^_@br&c(UNFY#6m1KXq#_Ea5Wu{JS@yW@;)Y!mItO`?l<_K@v- z0J{py?iMz<>myBU2M<~3Vrs*B@M{<7JOlV$dG`2(o!+J-WGUd&miM>CRXDVVsEi8T zBMJ=I?sSM@+doNJHn^wJvjSbN=?y=>EpJQyR`^#)IMr0qX& zhRvOJf@w7nox(OceQ*YF?FOgQ92=d^7=%vSt2)?TW;?a#@saRT_k5sJ-(LP>hF-6q z0jy#V*ORABNt{OX+ClW1Yopg(qSuao^a?9_!FL^H?x8Yab7!a5pL=_s^x5cT(dow{ zr9U&C9aD6Q^rO>@Q%~@nvPCC7An6pO`H%7*r*=cnUaOVx-5Y#)%6%my=TDSA7uvK0 z^lAO)!Rdq8ch6AtL3#gfqt7DH2eyPb|4^B*_i}3<@%KlM@Y;5SzVS}EA?*cVr&Mk< zu`G=CNbI~iwtsz8(a7CZo6NP*iT0K!bCkcgMWb;eWxT?!A@Up!yYTKKxaahU-Ky?4 z=o>WB9+vU>aF=4?N?%Ov?x|{*u@Q*}fFq3);)ps+$bn9CZ-Nb82>POdL{`o;UM#oQw-Tf^bPyF~v;)z>v z#Bs-t*y8p$^BavG@$MJInt#2YFZ4ErLAmF2oOe4o)_AUp1quHYY7hIgJ<;2n#s>Q3 z8It!mdV9n_l`qpaTkL?XR2DGcWSsFHh4b1YT6-nl8OCremC^sbU#s`De(yEf-g^{v z(;30S%POKVougt~Ay#97x_4cFy27re^wZb|qD?GT_xB!~z5i*-zZYfCrLuMPe!K1c zQ`o+uO*9YiKK#uPQ{}MY@e_v&+1?gq%%pJ#4)_lB40RkmT*&^4R{q13|F0^4{TW#I z`{qAD`MoqZN*~U|ueAF3En6G&R3E`#iwD4{8Di__SE--)T|@O5{p#CJ_1WVtZaXaP zVkX(@w`g=jzxo5J{^l>J{|r@s`2h7l)vx{ys{R1g-+$a21{n8qs7)T5{RZMvRQDe@ zub*|OR(n1@9lZGBfmx>V`Le}|Tuk-D_i8THUvSxQzW>J^KkRb1RTK+_7x7L{Z86KQ zjBOAMC-s2D;~tH99g=grw>+aGT}f+MJALNSCq$nxeHPQFlRi=Utf$Wg`aDISF8b^| zy@>6%AWyw_y4qbPb z8~;K5+j|mRLHqq*e_X+NANIu*#Qons?{D~?lgpYX?-6mI*#9muU6#5>ypPM8(WflF zue$oh19uW_EIA;cV!Jhj6t*1n?tzt}JF+wJOmt`B`QXmPQ)~;jQ!IoZQEaEk@-(ym zP!pw(Bz}{=A5+*zIGcTHrX;@3_#iSJvX(1C=YFCq^nkd>atB-3wga@?QM69%{J4<# zakp^9cC){4MLvxI+0ze0I|%~P(cgtbhy++=>>pnA!?ErkNXS8g)bF`%gPSE=< z|7mna`3lGQ%=JgBaQ@&pRoZgMlRu&MKYQuYW31~qlIl%u$Nq}=Dyo0Ej1jmHdCjft z({l^-nvL{c8`|vXT3QT$Y1mrrHgJDFmGxoJbv_Q?n64irDgVXxylZTEkFw7Wl}YU} z3fBp$ueIDCZR9pm9aK-_aB3gl=TbhGc1tm(XMygc*jD~lbCIpQuo@?iH>Xegm(%+n zrhSZ-Gd)@;`vGEyu~y>uOQyQShZoDL~QFkxt@Q8(!WVO z1ANN>rAPBJHVb2Iy!Um)hNR~q_56H#=3$wW%H%au=9`Y#Zj^79tsKKv&W-eZ1FaE; zg~y?M3)6muw4R*S&#&+lW#dIpI`OWkW*FkIW z%2=3XIn;CW$Z!&MP5(MRrY>{_p!!aNf`R?vHoDqu|9JgfmYOM`~+Wd;@@=EfxI zS7)$Wz(*9emRf8D`&eLY@9$%g8_D3}7HEqOlwltFPN8{t3cX*SaQmWF>`#n%bxV%X zdEqN!Tk{c~gReA0A5x!iLD!)XZ)%7=pwXOc5(N{6F}@4v1sj7huZk%jl6D6XUURk% z>?7!7KbaR?DyB$K#g~Q*JWt=DY+_d?ahF7O7Vqaf-jzwj7sh{+|1TF2#YY^oop`C{ zrV}Zv%x@~%!3SnezU1NHA$d3XXQJQFsf_N2Gk*CMB;Nqzz4CtBKH*;>y1UdqLHosB zYM(gMA^lCWJn-+H!hSA}syq{RJT4x;DU6SY@$=Z$RM>hHzqT-05R>;;ZzYGCgLI{$sXcz%e7*KK?5ExULXdd0*Q99ND`_oi*c{*Qru26DjeBj}Kg_F=cMYtMg3cDKLvP+m-v)h0H)HK<5$ow2`ri%ojXTq)=o|OgUG!Z|-__I>++R;7S<8p` zzP=W||E{I9>6?zF?=GFENqH3d8~rqSA3X&37&H#hwL{PQ;klVR>8F=UooiixovV`H z;0q1;txI78mj|WoyDLC*ljh|!Avrg1XPXR~o1>&3wS(4H>>-oWa@sUCH>a`Bgk8SE zT_^m`pR&n2AD=2?Xf}7j*6_B(wS&kzjLk=Kjz?RYmUT9lK{s^T2Uw%BXddF3D{`86 zhsvC%cfi*u=^**ws~l&bLxj2zOK>UeN%ZNO&t-K{83xI3JykEA@M9Iw3#MW}jM zIxQ{hMHbq8vtK#s9F7e#hd;bg&S79I=?ql*c}m4*dWdN48`UnhS4q2g zsn-k(;F#geFvtHa+aNMNB(+1XxgF^>H&?B>nZ2{=zzx)HFZ^5d<<#yH(Y*Lr%1is3 zjQN%=?mAWCNrveh2h0q{KcV;Fdjs3;%gTxl!scYvE1&Rt(C7K8!sBpP#Qum>KAxj| z)HBnTkK^HLE7N*U&^AQlh4*Ty-W^pLpHjqqLwzI5pubru4xgTR2kGCt@dVr8o`Q9U zp1aTJ`}~{q{IDg{c{6s`&{H)8EV)kVdT_2~xh}R`R8ToCny-+-yzvei|K=pH7g$fL zVl7X*QQDbxl8iRu)RW6+*17egQ>9!7-Gnv1x%6&`#&?r#d^a%$t5ybE9Us%KgK0-+ z{&6IOj@h8<+F;1BL0#)r+y?yLMP>S#{vB-R?6Q?1>Aze|veC*=^xs!nl!`fI*-o=zsW$de{fA1ZV_~X|PpU?Qz#f67b6NiVBh4g(ZeGjMa z>GVC6z9Ur66SqkFEU~|r|6{F(pD?iDf#>z=9fwlZ9^`fvi?28TBaOE{Wyz6)c!oI? z3rK$-U`~v<+8nXeId;RZ(NM3XWvHrD)F|>yw4kF{Y9joMXMZpcj8TaSt#U5Vw5p&*e-LcVl z;J&q--ox`!b#Hx~=F{OUj~Io%5N(cL>=GZ+=Ky{7(I-xyz4X~bpWXD?K_A#KuK#D{ zX4q@n@m?Cb7}p?yy8zs|v`0h9vO(?y>Q0sSOgJmyPUzOHpQH@U#q07+g$2`JR|lS_ zb57ZVM9+;?9qG74;OC81P2vjX$quoK%7R}deDU!=i2o%2=SUmfZTHdp?YRH(a;#m2 zA#-bjx6->S)mX0d$@>?(Uq9YI{Zy$_0WaVV3bL|2 zHYDU1$RJPoLdkh_PHCpS6!J;8e`!*8tP%I2y#Xm7;lGdDe>3B*U#DrWeudgFFS-V{ zstKpUV;@58uVtBdHOaL2K=y?`X$kSn5^Ps&!%VF5^K0m z5n~Ofx#^tih(D5yM3;(fiKSHD5~3Gte{Ie-vLjdnA6B19kL*gk9Z(=+tJD&0% zfCFM|=JTRc+st|#js9b-v*>>?_Ab$Jv*?a(PUO<}ETa8veT{I(X#8WHjJb;Or~T~7 zbt9=B{mNvktsbm3b_|?s8Y}Fv)_J0U`m*?p%pDkP36bw#H=JPnSM=9uivjd>sfFK8 zyy?~1xAnZ2KS}u&?gjW*x5b2;r};SU(Ba{<=4iFaL-buk-yhPqpS};$ce_S&j>?$j zcZoXsT|&P{({I#$n7*|tuk?{Jl7<%IY zSD{C^s;C^jk^Lk!?|k88-@Rq*dxi3ilayWjox#hlq_Qi&pzP9Na3z+^LQ_!vis%VSJ`TK}?F zh)39d&YvXtw5*=S(%~&m;?5CsaVX_|=z=X~{kWlKG0BTp7%!XtP;Iin-;yk#HhI{# zt0k!${LMCx8m(>9i;LJl5@$n_`^mE1bkX@y?6s|b zUYaY5)tCS~XfKUPDUXRiNo8a$_SRo-eO)6 zebp@Ok$b?698+yApWT0biac+@Pk7wIBkadKNyQN@_tz#-rr7cc+mK@ns=aa_1*TGg zzM5$b+ddD;=&)C_Xr4thxAJ1o-BF}$7xb1S=pUPVD21|LQ)SaWpJzS)`&`(e-)7?d zb4e!GWQ?c09DQlrL3`H4l$N6}jw5C-`XAXMd6@FN;|wf}=TM# zRMz_+NdMp*de_Q>`;@54^H=r!vqhQb(3Q?p&)-td|7m-^=iv;-zg83xwfD%_X27BK z>+_S?M>-cBOO@O%@8kb%go?u%RJtgID`H_j=4cr_J=g(^J4ME}#eH@`mec&vDVn*L z+H%|Bk5YkbC;#rEcD=9eq~Tu+S-qb4hGQwxyRBm-){R3C$KC#LaxS%p?Z!tGv26>- zvr^b;2JZQQX-H?CXKp=|ju}yWN+!mx<-^N9s#KR=hC8vTu$dWydaXJ=*SCpHBr`Wq zeJk>4i&&#S?rQfff#sZME{vq`VSma1Q{IK-r*<-us{;v|*9{5$=eo*@2 z!)7OLQ2X^p_Bq@e3)9-u$hsAGtdaH0JE+fdv~V&@`Bq?^hQ4^~`a`T2->vG$z2&VR zNS!>MzdWMopliuoOz%SBHgG4@C>|f6?Ksyhr?$hN(XBbtap=zf zppflGe73Z6K9KjqhAnLr@-2~AoS^M&V+Wl#BH}aP!W#?t-eSBzt#;u|5?n9+jP2N$Gi}(HA9YH)ocjg7SR-tHRq;;gS2gY=epLoNo9*2#&@Qxz z>E&%?n$7n1urJYd>knmosc<);J3r?a_1JZv_qUo!`A+6<)oObO&r$9`{!5Fl8{Fs0 z@}uIqPU1%eA1KU4^b7N`)Y&FBoD-schmttoBOQImS>AJrKl?Lpmec8N%<^2~%LZLI zE+UPQDkEXdX~fwmy{b(ht_I|$veUy!qG$SjqG7ft*_*m=m>hRkzj6QDPt>?$yfuj* z7xahw^tC?^&F=TVnfN?go_V-`n1g$Na&mr}q4?>7FW{$g8$V6%%=q>V#!u%kKeda} zQR@W8e)b^wz>{bz+D_{m{3n>7e)*G(U*AA{=K3G-*|AAqj?X@t^uNPrvj)L|u>QkW zY;VVi%@!{)A63D=xmA>3)y8|G%Ns3bY;SM4Bux9l(}~{H`hM#f_~)*l9O}c@<;2$; zjgV;8`tmjJpI+RJYbAKMF7w_O)<2KxZ=w2E4p9G9HvXMW{A=%LuwTFD^!q=T{$qdJ zvyb|wY-q6V!$u5P%Rzd!bDxZ9hJAHjLgE?%zX9>xyQw|1=-bZwXAu8v=reqxnJqpeI4SN;LgPJft`s8{JHJ45E>n@!;3b_BQ6nLcWsTOCadqw!qs-7Xeu&B+yk?L4pAL)A1Pw;vJ9T9f#tbPU4+y#5KT^u79dhc-Z#-?LddZ`s(C2ttDQ4et*{6Fu9$LPO& z=LpFn)dR>!KcY4Qk2%iuOlSXhz5}H9s#P7O^d7L!{xd)!ei_t_()6*DQ&X+#n zvvG{ha2x3y;iPjOrI+Eii+)2sbW*t+_1a|C509nl>1h*dexT>MYAl%E2DkE+r)hSHJ%F{;-~8QN5I3s zY`9r#G$k$UnoY&U;@~ZZSng)r8oep`_P>J;)0JI>v;)p!tS)(`vEt?hBTdQC0g1bK zKb?O^|3Ahad?PIH+IGRENaXY1%0-mAuaAC2=Fy%#yE6%RiA@5c^Kwxv&2>5Y^=(3!?M&$yL+ zi9s|h@VBRRtmqr`JMUBa92=f~wmMtYr{_mB@l6^te1qriRljk5naN`*&pW%RoO+3c z&pd7EuE#s19R22AY~3+`Q36IFmIb zD(OsyGU0dCym>aA(~C^L`_rRYPWoLiwlVI~=NH$~I=2yLY~mfn(S)tzM&Py>D5nVa zp)@ZG8TS=BMu!n+yU)*l_sK#0zwNi5q(Yib{3Xlw(QgNp>nPBvzWK#;4ixRSv8Yus zaAiF*-m6vS2UI3vKGrJw0{;~0{}l545>V+#J3?urTb_#@w)ShU&i7gcex27A56f;k zuPqMCC!c6J+viI<6%TYb9!q^lW5T$w-^CA5~>=XJ5 zaRu5O@+aAzZCIW8cNGHzWxIV%>GAeFcr4{s<6X$(E%zDd6CD`uP?NCU10Py#h<=GS zoN=-?1SI`roYSV{-{ukx)tdgo0y*aGM8DZsivku75RLgChtoW!J!>=VSzb9OHx-wQ zWj7y6%j#3DakjPD^37zN%6nEaE*WERQXi&1vN(x*Q^XnqU*hhSZ{vt z#TuQ?^V)00*5x=M@_zobBE%&9{9ajS+bh@2&Fqhzb2Iy+Wsi@th7@J?T#}p0;Nym8 zD91_94yl+hmY#3^KB?zJIrS|Hw}<-rbJf?f0s2~^`fBMJ(ce0fLtXxG^2!BLw|N@+ z-A}h!pmdwM5l;SadPcXow=kpIw72b6Tia&0NIX*ec-P$9cf3z;`EuhOrSbmuNyc06 zH{QiI8q}PU(Y4xX;Jda>bQ2963;OC>>!{E5O4s_;=>zLpjeQwiYp6xa6VPn}+hsJB z1zUUId;(jl9Qptqeom5yiu~~`*z-Hj%^`VZIen=bgEG~`QG2Be(;?!~d5{ZcRD zy{kMjG3gFYOoGn9&~U@YPu_v#!H!*z(sMeG!an*!WiOq}SfeGPi}nG{Xc0pUc?R80 zWAQt)kjq{CqLjBm$AZi}&GQ%~0yYR7v&?&!PBN9ArEKhR|8~=h@KaqYz%S**FF40Q zZ@L~BfZhdh#2@!`WedA~gHCNhyh67tOgxt@tUcLj>(8GQmfP8d605+vcfRvo#N;ax zPNOmIF|ygu6|z}e?Qu&@>2uWHqHJ*yFCidp{=9x)vf6tc+vH*VXAn(w?<$ftuS*sn zb}99Fin7ZI1m)e(1dbDNswgnlGL{}_4x28=CTZ8DchQH+8w0t(cPjO5t#AQwroeWhy7tk&lxNfl*mlU6$qURpqgK36?QgXVILiuuDBrMisyGoEN}kjxd)R}pRI$0NqWX}WT(3xoPVZG+t+=zMgO9PgdL z9`&vgRy=4A|85f>s^>%c^*>w5DMOUr7V~?yr&vs^lj~Z!8mC|D(ogI;y@>q*Q2tO` z`6xS^eOa}GR@xI(r}caLCV7X4IR-2&%eJzb+M+p~>=)yqHnBWT<3E(f-RehnAr$x#hZY$=pAAf{B}6&hhT#aesR>`+sC%J;3wdT zfS=%70y`H6$M2iY_|Vn*a^|b%v&sbQI;!=BG!`8PAj`m>1UB*(Z&mn~Q@%Ws;avjp z5V|3|#E2h>x8QdV9t&^`$f?Xz;Jbp;hG$h4PR<%>#B!;;V&c7Q`jj*`I|xNdfPF}&CtgHsI(;q6oEC2lBi=%sit$co`i`|FS;!cy91m5Exu)7y z;aeyw?#NGJ-R`Eb_Rtw>fs#LU+udFzx37+|vz_X^q4w}HYtP2r)uG`<2jMSSLHpkK zcl7d}RLM9m)8O;Nwv0Hx0Vksxafo4mWn7i4W}C#e1MG8#kJ739*X{XShFiu9;`f1j zkWhBZ1p(Pc-1)OjwAIdF-*!r@UU?R)P_)`YZG~@X4Yl z+1A#{R$KklPJgDYZ%|unRa+hEeY6$+Ii-edM}x6UU_E^oeTgnh`d-U6i%7nWbqz7~ zK#LgfUy$?!TM)0Xcm(l%T_nuD83jc5Z0Zxo7WH1890Hp`e>5vs%_Xcoko5`_?=#=4 zJ*89!)|a;|_`V7EiJO;+nP;zI46vM7)ZvMBQhys{KSDBYwc%|+ zY-7`9oW<)fVYFmZvF2K-{4twndtV5Ya=ZMifN2Zt+z{#aG4>Z9Xo;{8+?SW^p+M2_=sXWNh ziY{|Ks>X#Us*G#tl{ci`}j{% z|U2ljDi*VWRu^LB`)_qq}bqy1z*M7=M!SpG9qI9VW+r%h1n{zn|Js zPwlvi+EG8q_y=t52n^DWHPnv!LB`)Y2L=1to{U$vCzjobMK70%p>3T3EZug&7d*$A ze>I)Ibex@OJ-`~)O>Lh;>jf}xHxVtcZtRQ~rn1$U`0Y8zQW9G@YVKCQ!3#U*WX{SS z#iI`p{k9?AuUZSB!YFXU?bb7Wnr2*$1oJ+sb#y zexm2Ji$ci_-uc2`6`}Qd{sF`eucP1o!Vue2)m4SW8B{j4KXG|OekPtI%J9ki0NA`# z!1mwUo=x+zWW3RyP47Cr-Y~w4yxvwy50}t6LmN+N=hOIseiNvV6<%rUggXhyu%nf& zKIR+d1?=aMw;~{I=&@cNABtF*GN!9m)Fxm@6(SmbtZbYxM|9eQG3Ogpe1vipzqZc% zE7oDtUXwLM@o=t+`Hb=!ES}Sd-?R+RbsKG>3$~y7o$*{+7u?2zWm&#x>ju58gTCi? z8;u=qWB#%Y^vyQ+D%K-x?P22sJA2I=H)m$Uha{9-a6vxb>mqhYH|>cVyomKXKiLi3 zZle1J_$bJ@n|QC70!s_gYCGai&YQy^qJ$9iw3@vU&e8uv5)#Lq&$A+FD`}rk4l(C@<|j2^=li1OS&7N!Ip2sTMt$QOaZP_rEWC4J9DZED z+R7=MAGhq63pB{RLHM@;lco%|McrzjEFqo)KIU%t<0*L}q4=^>jLnhCQNSVCG+r;vHjjuz*43g;;e&h(E z12A?fytQnDiF0@Go>i=);d{8Vmx;-N4vqzSF0B{e>Xr5)6|C>Vxp*zh%`O8n`~s<8 zwaM1qICB^-lCS9ePu~ubBW9kxO2#sy|B&I=joOmyma@CJW+-HFi4U%k?5sznEIvV< z8&UrK1({f}xv;Bc{Gh4k?}_e~znyjF9y_#%&mvl6EyqIY#u~x%e4(g=|BH8_s0XH_ zw(tP#lpE-GJAT^u5JnRDbB~ z6Qn6?NLf$qo8aQLnEe8DZ%G z_)Ip?@A|HXNk*HWY%m@ce}tY%=^$Kod=zTeHw%gmBIf!d)}4mhCxFjVH%0E_MSPzg zO-!zmu_kDZWBn!Tz5Nr5XsvhDO`*Na7cHcHqLkWJOnXI%3m;>C3GEdn*18N`?JP&T zjCs!(_i?s?%&N@ibp^KAH40y#rb@0K8)(iVMoKr$S-B4YM?%W5e8;8akh2t~0{GJ4 zwLT(hC(yc1vQO-Lw62F2a2y8Tp=|T4`<3nb2-;6a+{w6vMYPt>qPmCCo}l?wi21a> z18c%j7>>K>dn)Y{1FiQ%)gF|?d(c8*?<-<`=~>RSeeANo0yiSgc)dr6=H7nKm;6=k z6~JH$0t*iFIy`PwI*xhus1C7s+$z?o(HtBT#GVjko74gK zgq+Xq39HqfusXdb%%U<~(Si4b&H10#C8qT=hO%FvGkYqJ<`&M(U2;Am?k(cjWve^C zZMGQV*8cEheo@+w2!8O$i}lk<>+lc$t2c%58?VL(&oKt0{tBFs%sx<2_4$3E;!5e~ zk2sxHyRCfy`-ATh>+A|_8d~qwx%q{>B3ZV&w}vd_Bc6O0_Xdb7Ha~Md`XSN9IiL_wJFWtz!-on2K#F9U0azoW}^c>rrYd1WfMeo0Ebw` zDk-Eg3-7@BkL@AG()v}$c6iW1VO{eYCE`QJI`LuQIstjtYh<&|(ZzP2VIE6MXSlIV z-ap+(<<+wPraYt8lALhajQo^EpAyyYYpG4)U zSZ?!qCngQe$MKagAA!3|YurJfuS8&tsfg49(-*Q>-UiyEpBt0UJ|}sq?oqr}x63{Z zqVMcB*6{q>aP~^!>XLKrK%SgqLk7~<+vZr2HOHcvIo3=x#F}O(yFJKPZ>YJJXPaxU z=M{0Rgv0gusSwFkA(~rvE1E*KYW9|-=akPY``wOB?NnK%)!gk`f zL*NSyef?UoYzSn&4*rcc1cJ*-W`>rPd^@j*{eqGIhj|jaF`Ms5R?wI(lm6fE1ES|+ z*&eN4Jzv@9xm!Kwdk<w#-|OD zI^xgE>tQ9Yx7+0Pc9Pe_N?w%W zNQ{$FMSHEcu^4zaMx=>jOY1fpeN&bDk=x#D#B5s9oD= z-e0W7d?eqYMH6pRxj*Ik+sbvFV~18&NX7<2~Zn@af>W9_&$gZZUfyieCghiP16t#Syx}77=pxq5R?~m){b4at+s*u0P5lli-b1{|FQV_?smz(wF5o(?R_)qI zZJmU;fr?+PG5FEDg={}uVdMM7#P^R*K9u^Q+5X3 zT?cve^gDd4M?Zzy5U=v2?SU}ww^wESU~h2Lu^kD@^Ulh(?%d0KlqW}>6)ZhC?BQQ` z7ahE5cy03PdvjCAmF+`?YS(0H&);#!`G~S-qIQ(2cKjo^D7Dhoj#As1Z=~%vuva#y z_Stp*sJn~mzSq`XmufF;UF%hQ;g>$0+IJeY4|>zdHjLPcccnam^r`49rNxz=XT2+PuJcej@$kXzk7Rsbb8naZdodT7H6EMY)wE)J`=Q?rQTs2W_W#>M zwaMC3a~XpWcC>HYo2%mTYGq#459s}oH+IHw^H$39;aNjDmM&uL?4kTOP#+)rMlRdo z+s7dFPGJgq$pf}Fo~p*6z26uN)W%z=jki#}_fi{6Pmygz{r_QW<0M-fk$3UwvW@%B z&b0AADgP8|Jpm+kx}wX@t?m&Rf#VE&Nt`^vqw;zH~v zS~&TmyK~t_12)?5Vb!xU_R;_GPT@fdqxVeeQ~9IH*OTVeRp1*R+fkN5ciu{E<@0_> z;_LZTIW9HNmQ!09s~TmH+=rMxhsO*t9c5ATP3mv`e;hlw_*muUfu2plv*QClyB^Oz zsoadU9?!7emsbok-$l%1%Jb>CUE)g0GuZP_==oPp^87eGuTsx*%A>rWAYbf!hxsdS zTLO82r#4#U`K&}6G|xzt=fp|!jG#PLKO^T1=Qg~L7%h};yqlqc{n-$DRx`*mCp`-e z^6Xz5jvefwXIL|x%4XT#_po=G_}hko+w&o%yY>!TuApb*2YL2ade%J1v$yG4Y_A;4 zVIwj$LYpiap>2N}q)or4^rQ4X<}Bjo$yn)b^LrOYY42|n?|uIW^DHpd;ExG=iGV*W z%Dx>=21=Z?mM=`gcX4DeZdT7alsamx6Yx_F(lglgdua%;j# z4}H56`R1+h$>z6S3nw?eALbayU9V8Oe}1y`mN4t<+=%V0H75(`+ezzh`7L3#`|qZF zp>Kpmm_AQ^KP;-s4yBIM_xj7T84u%|ROa?e!lKrb&uheYzZy;gZ^?81P_uFr&c}_( z6ZE_w)|}iyWocBti`rCr)dG=o%D?z7$y%duSDdfzj4@x|_`#7>NX^x!|15ph@vQmN z%FR1yF9aQTsQ80dT@>ZJQ~0V>5IvVFdLj;OrH!7TC1?d-*5tj1QaU{gsxxrHq_is?~l~u=3bNw8DYv~b2rr&)5Bti&S_#BeJD-r zp-=f$P2%|x|6+YC$yta$#<*3%PzIB5lh!W&egoV1v%hos*e3BKqUm-;(|V#QWHi__ zq7C_hxQTlIhWMvM@rDMa4!?R;~CPsTX_TL;? z#}!nEPVXh?J=pKU*RA0PM-GmTJQpinF=F$0TlwWvr7j!meL20eo8H+(=iHZ7A9#Nl zE8{%eKxJ6%i}^^FruXk12H7r@e1+coCjIWA?+m5`t^Lk6aXGy=zTX_&tzuVx_HUAB zSVs+>(c!NgPWwEDh!^N1A|q(r=^K8k;1SPNjp8QaksZ|LDI+9L!?$`9@lo9=l8@l$ zdJW~-Kxwm78vHD;q_j?YZySv@eZ+S9_(t@d7vt5K;v4a2Hz?X3*i)FAMgLEz|CrY% zrA?ypnwZ|SztK32&Xv#i?kP;$C0E(}0kLBmX6>g>%HZ9Iv(}O!yZAt=m zkLPOIYUkKok^?3&7B2MiS@d65|F0tY*I2f1-WCBo-SP2uF_dJA%2>O2=<>~GHSzQn z-YuqAml*npg`~%qC9~px^-`ZNX8DHBiHJXkI8(R}-mS)CF41ZzwQrzyTWxlonaddJ zBiVjj+P%zX8x(oB>`_=TLu~$-IcYz~s0l3M6Np=&>bz}FA=_*u*p7S})`@g^ur0L8 z`v?8D{3cV>9^8YJx@8&H?~(QyI~co`=mGr7%VQ=m@jwg4)X<3r`pyguZ2g{~`VE~8 z>|>p5FAEH%s5$N1@*MRh?$FdTDmUpuENk_Q)~mb}?%-8<=TLchRNhlc4sBNHhUzQu z&lg9eybK&p@Kh!B1##w`L8Ui<{7?BiiO>3Asa=6FxwsFOTFyy$4f~VhD>mYa!d}qDu z&{y=KGyD=F{oeg6y*m#&R+ZLl>=u8fw1N7NqxM*wtJ+om5-Q_Ql>cwawz*jkCqI}i z#{$^?IB&eKo<-oVLSvOs&$p}R(EYBA$aABv<~8(Gi?K#nH2)vYZ_Ad%c|}foE}st_ zJN>ujGUi7X{dcPW@P)>GLiLbLAKR&qUZQb8&3VKOh_dhK1LjQn-KpdE{pOv}%@VH< zjYku2YP-cle|nAY0j`K`H=!GLvfoB0$2rvd&4baHr-gmT=lg?P$)ptZ;WOu2u#=I@ppAe;w zhOSSIVII|S7Crl&S_dqw?K9q%Sle?D10W*r5n$`=%%5uF4iUVFwQG^4EdjqxieRr< zC3*3phtu@4crlN8ah0NP=6Oi9!%6jlFD)!B(6Roxp=NQ{Wb>gP(f9^`Z_WylTu*#o z7m#|npJo-MnD01l*7U>~O273jmrO?*^q~dD3dTS~%u_8MH4$^qjy;zRtWWO>#_iBl zOqZ|X-lkW|dcZq_d^+!*L+Nt=rfl)>tc%j2198Ra-R&gD2HGTcbj$~x701eO`>#&A z;tPcqctmJ1*qY(~r$zW&&>6x%rC1;~-2_dWuyW9*Y-fJG@#9eAHkLv20#^#o4DYO^U_#IY(HId3BD&2e9ajHXx4j z%ilW2?ZBPb$Lih^eS47lHqf|zRuDCNhu>r_!=6ZG?6Ag>+W6>Ogp0mhXl2Y#*g>VY{IWK0EH_vqI5PLpfg28e!k- z-Nx#;eXplERVeMcfD;&XkX%%3l>?tW+@<0k5qR_k#Meg^KcnugRJX;u@7dCSN9mv) z$K$odwzBf>R=kEaFx(XpF>MI@?aeaQh!GAtmyCKNA?I<6a0IVP9vBf3S;0kdO}i_p z1#=k_@iAH}gT@-ZyZ9mEdqtKq?nkGyD24PaN?!xnhiE5b0WTHxKcz8L?D#C3G>*sl>ALreSO&k~K!q_N+q>V>a^Ro7J1CDY2h%69ex z_K94}yrJo^x0sr6`lD6A^TfS7usq$`GLdbx#WjqHhB1NPShR4K8k1}vjfpQ_oXr?V z;NK~1GYvczU{APcT|octu=RVMFP`O8>lUzasP83w2b5LRXT2)Wmy2fqQuYljHE2zb zDojiIUv9vzfa)|*=Tz3q78uI~u&aR23hW9$rHvpy1%FytmN_)`7JWXpVO&n2bgO+N zSC?6NT#OI4hH36Lh*zj=+&QDY)DLqs^()IZhJU92h?#*l^PD?cUVrLcZGY;FA|wRN6~v0=Uc+2p8sjLPo4=_V6A`>2Yqhi6Cb&d}(2s?(wi-T`g! zjzypO7FJ?NuGfgOJ4?xph^4X;@yQS$J{YZX1?Ad!hP7S~fGLZ0$qBy$D&Jb47L$D7 zHtg%v@;>X-*;L;0|B`2Vm)h4CQXf`&GwYP~>;+1nr7+l5vQNmg1n`&opG9(wm3`JH zlIaUwYA)oe^{G_Z%|RY$Cz%a*2;#nDjFE#i>z|6IsJHX(%o=6IJH@_+btmskjn209 z?01H><_TI;IwNb?u5uO5Nx+mZosDPk+v7&^E98v#(H-+ zWAMq}1?(TTq7Sdrxufhn#p{+_aw^ftYR88*S?oqix5^y`-huzW)o)$e_T;mDl(elL zs`C7m@;s-;q9ScmYX42=7RqCP?#9{}idL~*1`J9eu%inL!kq;1ISYJOwy zyOH?oeVZ(oL$txzqP?Be-t0m4x|h@);rKi$)19{4T4&r-H3fh=ZU?3d6rnFA?9J`EHMUiDQ=%jukl=(6M!!k z@MfZkCfhskFFswJKW=cy^la&S%I6P5oj=N>at_dcQ89=tMRT+4+b5(f^#!{EP^%mbZYm2XAj8o;1zZDKwW(Hpfkuo z=Z{cc=|>9UQT)#p0u^G4#c%6vJ- z59}&D=^5oA=(2!`tMcd59{mk^XAgXcpm$fi;+POM1H0te0x`k~Q-qr@E%U*i7 zl5J;-C8iRk-Ly;c{GIAdU8l;wZdW1C+uJC;Ct}$HOaX=wufbURfbm`P-6QIbLd#=6 z1H_uRSDx=d1L(M|I}3c{Q+NLn)(_%0^vuqST_&H=y|w0Ce>?kg19t~{`Yd{8>3pC! zbMXIK{!jH4y4jwmo!9;T_>5m+tnVo6)xU)9rOYYYZyKuoSd$Tx7&a_(NxlSD;}?}v zEd9C6`N3n{$1hVi=ADx<)1|&9Z&pS>g7>X}2Ha*C#n!TL1Wu6wuXldQFC$RN78S&BzrdPA;T$BFMP zeR_?;1P6~i`yGh`f71Z+NRF|hk34cNLBHQr@+zJU^!`Zoth~T!mIUKWv-{tWv7fsX4Zr<{#At6Bqzyw= z84;EL&Nl|u0p_cGR^N6Jtw56<^q!&aaHhT?*A3)5PU*RdZzfYZ?5lRz_db7wb?Dgl zpj)5qeN$u^S%?>Aevj`gZeiUi_JXgdI05%P)|7nca*`(^53}EcB?p(aG;s_TmNTMT z_)LRw>G)$W+fP@rUo`EjLx|o!l2xvQT)l>565f9$)4=cu*mJT-?VLYDGLJp^Lm@cPm3EIJYQM5t7jl&Nki@Q;q0;w8>C$3=EPZVe8HNC}K#E{6J}<0{A(2hsuJ!2Rwf&%M+{n z?5l`zz2Z}8b7<|WivowzeVp`1iT@0F67v9gkar{Hd0L&{u)kXU|Ez}gmn&}KHd|#r z9gw(}IOG1Ok|&?R8t0So)6zT;hzQI<#B_0T4C947j*#6}()l#VF~O#pE0sUeGPZ4A z3;O~y=v^pki3ev=p6;q$%&*y6F?0jPbhgUEeK5&h4u^Mfv86x9dI_utU^_hY^kzOs zA>IUdXkJ8Oqy*W|cslSl%8^`niC~@^+8}Q*Zh_y34ku?Upb0c<- zzM>B=!Dnd%+bOm1nXvG?QpY%yu^eQ~z$|5he*u+`{>`xU{aVWx%Ns4GK9}HmPA}Hs z%ow2TT*Zfr?vZ?mI_j7g8-Wi@ytup%FXA1GACZ@N(my@!@Vb+IfbFuy<0ymgF!VUzSwaWE_QAHZJowl;&p)7Kz(?r2 zarjg-O#9-tU^r>noo;?r`rE>%vQxeDFt2^fMgRRQyWjabPsv3;`p&VGRUh!JfTs=m zo%mBP_p4Od+p=#CmDxK}@(1v65jUG{CN~iZRK0--)`5d z4y3Dy_SIE%M>4t!@QYQ>umSkxLhQYt6e`?I$uIR^Ka{rP{kEbf_{GYzgq~yEF|KHL zC;OYo{4?ns^Y8Qy$Bm`4HPbO<#l&UZU7m#vc?$8vZ`E4%AL=}b^g`&-6ps12KlP^D za=qeR;FuRFY&NS+_k2C0+dz!$Nw)JMY^UByhR5vCR)_H=l&I3CW&l@}0ugHqae3rt`w(QK0 zjnK?r>1`Y*p5(<*kelug_P!5Ye3^GQuW8V|W@2*o2wYY1i58?P<-po6F+WU%T)&dhE*p|qJZXy`1f}ZK! zZyig$!L|#OSEsy%lg-25KO*dTen9=&N%^)>zMp^lSn3tb?})_Gb=T&Zg;&zq=C(mZk0EOiM`31HN&A=@txwM&R@pXDXpnRSr*3Ql5kgqt+tE;XxwP1?~;~oKbx)*0N zHfMX)HMj##E~fMlFz%Pp`$h@Rqh?BX>23RX-1G(e{-y9en;An$+WkXM(yp+4QBH{3 z@qKE;M~Y`*fBpQMAEm}CEX7At5=-%%0k9ND*|0N#qxk=d9Wqx7C%fq^uzI4LtL{U+ zsd`FVPX8@@kT<`5ER7rThr1;{$oPJ^j4!+{u(=n3~ZEv_eaj}O~;_@qGyBEQ*rJV;jz{8(=VuJEtSPSr6I%ymNA0g zSRmKC88n75{}A*0fsfxGF@=2u645{p&&{vhyH(swpS$VvipqZ@d3M^&ut`$uzrj zvd!*LyZABHz2M$A#rzAKl8@|vQ;fR2DY^RhZ*p5_K>ubeNS15xVQozQjQR(9zDnQE z?B6QhqR&ge-zt*yc_Gwm=^M%_&&@V#F3o0}b;KWTH^O2iY$s`*?^gR$j`BypbdYiD zg1=OWrs5V#UtP^;ESag^xBdtE{g?4gRtUsyz&f}2A{o~NdUMoW1iKuX%dolJtG-Po zhgkNEZjK|}Djxo2IN2U=6-yoqCnMMkNH%#2u`Gy(E}R=poHZ+&=!(CZ*y#O3V%gjt z@#L%?)`2x{>k-ZLSu?svtfvq7?NY@%ME@6lN%^eUcvUJLvCa^~9DJpNiPqk;Sw>@j4XUCME>gb_L z$3|m=XU(rk>`&;0PpEf_)U&47Bu2>SR^>Bpo8Rxum-L!`lKGvyZ>u;+pJViSP36B% z&F{z0kn`I`bKx_3p7+hI;`n`Xj^C?jd%2q9PpCP}^Itu?M9pvOS$h7@m-G9=FFC)j z8DxHYzxDa~eVLlyl@|{+yMyiGr&RZdZ@wwUT+oy}^Prs97rsj0G_Nr?**@93i1A1! zQ2(wuxK&JjmDak4dQ~k6O31fiwpLxhyhcol~%Gv+7^ZJh$X6Cgu zmxBsxsvP@TpiMLc=8GAM*4U@JFWH)~<~ZIxpZNTx2|c{-{yik~LDmQu9pdRTB(4_5 z9zJKYy-nhv%2T5943EkC-)AT<@;rNCIQi-~cZ;_U?xu5alemE9Px6~R;#2w@I@lwI zrFulpAA3X@eZKQhZ#oVJ^sQMchEfB`YIUbO({UnOsh>xO4rf_6Xkoh9czl%N*}9YP z_^sdCD(<4scj;52@=sDcexcgKzE97B-;%uDrRH)#@%DxN_OA`hG)cc_u}B8GT;*Bkg7M$$cn;{w}iZRqrUwy3#TklY8HJLpWx{&b(bh&QrhHuG1W) zc?v(Wr{K?Blx@zN-65Wc0egKaYz6q8qu<;jv>O`5Kk~MSE*ghDd5vN(eNL1$ik-J^ z5&K?6tV1ntgOX1V=QWl9zvlRu#uBv4!mf8-?lQG1sr$zqggzVk$*X{;uW74Yw&%ck z7^`U$vTbR=smZbZzxj?P=TLu>vz*UT)7jnx^Xx}0$5J@gJA9#JUpwCAea`kYW`!Pg zckWVm=a@TgssrU?{yJ>+LGI2~&tPL>Vc>n+-;{)`aLpY}Noo&b5v6T?pexF`>lphu zuK9XX5?D;Ir<|M9!7+O0sPA{xGdkBFyiNTEribO5Hz_+JDv4IprvR5@I%6qYu|0oI zXZ70b_Dnn-BO;_ujA*Fv38sBon3nag@6Jz6qWsOz(f2rob21fpcTLGZeKT!q%5e{j zN%le###QJ?`MR187H8zjmMvXiK)y7$3Ja z-~Cj+-zzbf*l#1aD2cW~9|}F4h0*l`%2yAp?aPLn%8xh!oGYxa^}(#Ik<$EB8popX z#RJ2F@;(xEZXkKa6>s7AV#rm9)NnP31{Z9`NLT zWskc@$w$|y=O#UeuH!wnA8q0KP*0AsiL6oi{;bNuy~y}hd3T7h?)JCx9TfBq4vFVY z^pO}YSkp(Jn$NtG&pLFOez6)O^nZ%#JNO-EwBM z_8!Cd?qip5>brIla+hw>O#v9rzyLV4Tw~ zCXZ`pEZ52Bghi!y7wgcl7FBCYlN`gA`aSRLjP4{<)5f|4H}Rxa)Gm&WYge(}8k0xI zg@xhB#PI#aea9Hz_x1}je(5_r#o~jSLn%8R3i>~fXtM!jshBcYldW~ZsqW>Z&%T^9 zc;_;v)y?LAV7`4d%=bNzG44B#^m-Fm3Ew1|)lF{~9=0Kzp4g{iqBzQ zS9DEG>bj5S2k>&}+@LibsH1)lp}zi!-&qSEyu=xw$gW60?RR6zKq5*l$?2XSUgT`N40!hZ!pybwHF+E=#Hx-_Xoj$0@7 z&sEqeFpl7@h{F-bSO!bNA_&{eF23tO=<3R*GCKsGeV6g>OSmlPSA*GD|J>$9_a5PS zUZG`k9D0-)%ntKAIWi_mqCzVX*WY&}RpHB&_X*orNFG>wToN<0jZb^D zF*YphJl%F&o&~$Fk!#0QI1`SOy7x}R2%~w|Y2nAvJBD7uJcRlkS||>>w$uOTzHuzo zPP8x(&q6EV7zs26#1El(w@y4reE1aQ!E=-io^(c+#KAiq*W~j((E4MAso7`CwWo8d zobv@VKC_8WW}S_DYi$hi6YQT~#WS>bb~c{LF$+*%u2HfJ*>3 zh+kYznwP{!HHvRO`b^frc!*TymOGB6?!q0UE$;X2J2P>=pLw+~_2*NrpUpfs=jI=dL<-5O+-Mo9!89dW~Z7F3Z4E%~E5Uc*BUF;xL@f?@+!{ zuV1V`C6C`n{-2x`P0XTn#+jl$LD%Hj2KP)Oe)l(N-=ppo>eO8{+js|}rss!4&8$c` z4tcQhemd9D8ks|D+ZA0T8|rH$4w-&sa@E~Z{`sEq@%vumD(D2ts$nO3WZjCd(fru+ z-CJW{=5ydnd^XZ2^d&s-FbPgo#=ulA;Z!!<;! zOLVLGYt1#hm#^MSzw_h*aW}mKpP=k1O>qa&zRABJ{t@2^+-w&37ne|4F?2Dw*Rsm8 z^tJ0>`dg|-&*k`q@K?9=vX>k`azkZqTv<@Od{~Y~zl({ViYxqkML}w~2_G`|86>v_={wLO zfIDgUIz?pyKFuv+H2rP}oFP2)yPSU4$IlS1D`_1fxvQM=`-!$4uIzXP$z!FIc6Mwp z$3Pw(YZ31qKf?2~THQDBT@&pI{$PY-<-zV?BkecZNT~J8%aSw8eac9sxRp*~687 zj@pL!-B13ZFtxbmO@-l&JJ)q$(%HFYxwc$%P0itT0CKfkN8AvSuj%Z6U`xK)pvl+< z1-gpeOJ~z^T9ph6NFaMF$H;{a}@d5A0?=P;|Dx&mxi+FM7+7X)(j}UqvU`XMv8Tz04 zK%3ZCvs;vFtwPCEW#|8>*TOh@A*g-){=R}9(UaFB?05%rXx}fV^Z%4@WN;%+MAnJW zLqx0KWHac`F>j@Qm8T^3!=`QYP5s+&Za!lVlwO+8*aJ8}pdX+|AP^Q>FwFfgkB3FI z>ZdCb7B|h4eS-}obOyVPMrqSJa#;d$MeFbd{d_j3!2aePj(LasJvxhE-)^9D!%8)t zIJ;i@2Z_B>RqHfQzY=@&Zeii#Kc(fH7t#FRO?lsZ{i77G9o`hdsK{uTmMm*s-&~bEbRe>+dB>C+`QTJe5sp4dZU3LQ4u^29dj6OsQ zZ%+A>>n>_jwy=$9TUfLYdXhW5akDEJPHNtl#ct|LxA*15x+_*FJIF<8o4PKq)Ny?L zkI(nx0$V?FR6qXI+nXoLxw=m|xTk1V^h6m!>c`96PD!ud_4dAlb9bf6GmD^v*GLZBDVS{1T8hNu7&f+krT}!>(ZSr0P z_5z@fU!`O17){S`XLj_);U;`@;z}=ZLiM?b-Wj<~VtT>$VvjBT)NPUna4)^lmR?Nh zuL1X>HG^B_B{>l1tZJoWwcFOr)`G=24|D8EU!#zA4(%dTm}SBb4cIW24jq0V2S%Sr zV{l+U;Inj5gk|sBY%=%Odyb__zAf>FA3Iu@s-0-z4cD;^vE}3AP`Y8X2kY`o12Jsd z_>5g1X`^v!73CqR>z+yNa`RZq|CNl7Tg*Bv3)}Z5;?agnI@qtG;hZLpk7&hl#TwpF z?J#HFo=0HjafQ?)SVl+Tz#(mqXRymWiJLH~2 z?S1@*y=j~`D;@nb~B%dsfeBWzcc?q9z&*nk8WCpcLhF!dO{i~gdokW0{S?l1M*>hpE|`uykseGV!+Yn)4fJL&Mt zaYS6Vu-5(o=G-*k6nR^Dt<6?z?Zs-XZTGHVTjA(~g?A;|STmr;;m@`k*IIYQQ&$+6MwoYpJSc^C(G}Ee%cS)H|i6CXdB`_sUh5t9^PF{;(ra}+?4-Qet=`SKlsDVx%4Q5> zw|BLu&?hFb2HMxYe6?<1%nWa~_?qH3j{5@{n#PgiA^RJ}Xliqd(oNJ-zR@Zl_EONq zpyz${G>gQ1mH&YHK85nkW1WU<_XO4MSD@3NK2p2)qmMh3Z8Fa4k%%ujna*p-Kbh)n z_Lin~yLUOXya3gOXWm#T+q+iNa}S-37Sn&&HHL^+U;|rAX*GdTk$V(zAlHftO~#xg znKTRe#!=Y@^aBbLo(`{h^Qf$Ou}Mi^tcByinUI-)C%#?ci36|Ni22O%!1^CM#H^uw zwXbHee2@4uz;pmj$|*e-8^W|1LFryfZ=iNnQ+j?Z%J!Hz&%vJisv;SmXB+DGl>!6Y zL|fUe7;8bSHi^4El6}p}SW6lcemwlWqb-c%U869_w^N_;ymi8ZJBgS_c%m-mBZIzy zeVga46$Mf7WwUV6$4$RWHIJC}__0)g=K5%(l=<-<*7JGThQt+Hi#z`~bZVoCKFwNb zI<{?|itYGIs<)il5Ib{-SrPS!+OjN@=N+Y0zCv<;bV+=E^^)XSugs2@B5vj8=C~Gb z6Y%pW^?F3X=11b%Gj02`v~u&-Xlnmih@aDypVX3#@uI@X=7+@l`LX7NgXpil+_>Kr zeT2@|j|jBQL+=|@PEM>jp6_jp=V+n0D+aq(7ss~L=$zI~YoC!5P0aT!Nsh`1#I@Km z5psm$rPN2QusNRPTt;;la^3!T2VzbpvtC{he~s@E=d*4+%ei2`R@?jm*GKP3o8`tN z>hXJJY+D0(Su~y)*X@OJTyfqt=p8@Dzg-yj#MUw%F!*Z(Vh?x`%aVP2SK|%|^nB!R zitnS6H?L84jLR`^6wRmny^v#PMjfw`1Z$OE7?i&aV@P8&BQ~X+ca83S_JO-t0}#X_^#{nPQC*mCyGzVTA9#>xG?w~m&5g+l|9<%23lCa&%>{oiWIO&v)L-!RFYgB4h(|m{-xc)z zBz>c7+5S!{GlO+MS?Qf>IW}!3-dA|WF_uRcQ#;%-=;eV4(aC#uC+|ZtW@L%lL)c%; z*TVC-zy}#a#hKHu`6wT~Mx%t?SkhiYSe&q746>}90K-alGH_vsA&YzH9 zpCtJ^w$WI)75&l1->4XN?!ej-_{;a-D+h}2naIoRlmB6hf%h|I zR~-t`dK+pHPg7kOoA-{;_|w?8)APSM4)13j74Q{((q7k@qsf>CbXL1ft$k;)y+?=0 zDTtaIVp5)@Il}lN-Lxk;W6jA8u_j*Y48M$9pli$f%JxBj5-}`tm2EQH*W}5&#utuY ztzXV@GY!ZD9Pdr)mdXPQlNA9OJ9FOOWb94GwG75V|AQ7rV!g3Wlw2N4)@Fyr0mNXT zw)xHu3B)O=I5Q-0_HUs771ZvT<3eH${;Fe4V<*XvlqTHNz67P^Izx1B zePzFj`Of^KdEdhQV=^E2oyJ?jslSEwCy_wvcN%R8*a^TsBS+q!n_g}+ z%88npcE7^5Twk`$zZsy--T#Me&N@k(g9F7D473X1T3C4bca-F(T*{~8G#bO_b6#Oz zA;jfH3}4K*N-y+3a_z6C-w%8RaeF%i&H%;Q1H}c({=}v5vM;mjKz#YB8n24SPCc3!$~-I20)`P*JS$`ImHWa;3)39szILQA&8IW92+Q-lh7cXjzW+!nq-1<6 z&7ic-erc!OFLk=Qx@$*Sn*#Fe(@ivi&tNRHoA0dQCj&n+jcvT^`3~C^iWW=XEq?-b z=;a*SyIn--T#fT|i4SMFHr@we2Zi(XxU)~B5R;JcSJ{6l%KklQPXYYvvWJ=QOWQBy-Hy8{@ZeJ8y&T zr3|_T#A9>CTKDA{cg2DKGR#<;*yE`*iG6U2Kn-SDr-<;Uq+dIZX^PobF3v_O<0cBndu1)jl(uxx)_|s#Ybd@)c^Y-PZ`IPS# zmG7_`Pxxa#3o z{eEme=(O-DjBz}XOZ){o4dZc^eTL2>o6eHI0%ktZrH1d-5Zkf$Ao_4UwQsEYjkaE- ze%DYx&`#EM@tyk+(-D)H`m^JH;49KvLF;@RYsFl|d#Ck6 z*?h&}=Y%=`0Pz=MbVD}7nT2E5dhd>B8TZ7oJ~)Xkb+k6KTmwI5%J-|Uf=_NqPE@{m zpB2d1*|;-=UofzwAj@pjchg$-a-x*}`?VEp({&m1?iBb2m$|hCv~IPt&1YWZzPLMz zJAA)6pXiboeK=k~>pad}n4OF4*5gbM@b%z3+###&~wux8g&L(0(_q z0Yf68IObN4{&3Ps>D^s_NW`?aXnwVG?B@!i>%stHLi)`GfrashX)N<&3**4F@hIQ- zaHpe_xtq~Bu`C2EWagKFRj>KSZ_9JFDH7~ z?^4qD`oOW2n`n-^1;jzxq%TOkO22;_UC20~-BcF%({HSx{PW{Z8Vig~{1?Yk-EkR< z4bSN4#da>v&?EaFDVAgOCq9Qn6O+Cw?KP}+borav&%PkGR>uC&?~Koy?@P$x$T#}Yx6ERk+Lw$U0xYOvE!zzlQQPLcCc=2dpZsJmC0j^X)X3A zV7F2m2(kXH`s2dX1n5_k4gk7fe{~*WPV(9PYZrx+6Lj{uFcIT0ai#>7YzLAvAKQ@w%7nfz-5m1`_-S2p(3G4k`W8?deMvk!$6=aBEREAr{ z@_|kjy2x5}f3@RKA?pn-eb1z;vWoxWn_Qf)co0+%;@iDTb<|x& zYpzeOx#N9riReZ0Zn0_EIE6n>|#PfFzRTvH8;_;& zN38NXDG%sX;|(SImp9i|?=s5g@ea&e-?8OeO!;unuAe@f_f3gO({=#)zH7_(W0lW7 zR`u{xwrEW%=)cQ562#V=rg zvPxaX$}{*rbc*TqE<+46meWbTG2J*HQJVsH<)mP1>JT@cLH*OaIgPQMR9(PI#X4>6ADE;6-8}?rzZW_?=;{4Y^J~My z$?#cMi|`csOubsPU2-UOKno}Fjk}mwZ*Tg(6LO#x>p|MlNqNxiZx@pnWDA#frGN}v zJ2qS3j=5CbF&pwo}PrAHE zI4|iD(~&3UPm=ubt5V9>>0Bq~#Xf$2)1P`o_o?~jTeME}Qs1&(=@DHEj-^8M+@Agm zN()k2!6{DjO_laDN<$rARrOQ7KO?#1Cq0+<{M20QtCMvP;O^Hv&L*t+4)0Q&n)>fEq{_UK=CD69|~j{+@Ba(q~TE_Jao zwnZq=R|yyU^|Y`YypqlpZp!D#3&Ia~NvSs-XD-jB@DNxB7GwXcGTkrZatz~f=n$~w zQufnjxYI-3g)Hy3izTOn_d51zF^SD|jD6f?%rTem*TMmxPwEfJab*#<<5?vxB_4sT zu0<e^-fo=INUg0fk-H zgga(>|A14r+1}pX-;ul&gMPT3=5?9C{6_lK2IjZCmv(!@;uKZ((a(B0KgJ31e-S?l z@ud)ds`TB;&9jzCe+l>o!&f4U_Sip-q46|;sS-7hm*lZ-)a5;sbxr$-M}{n+{Wi9i z^`Mi^{1t4}6Jh9Ri54S#Z%7O*U%1%t^<<6ky)43P6EE}p6TTdH$DF zH*9EKR6p!!E&R6+A3m0HNQ^f}i54$*8Edom8BN)PmD4#$IqwWmPW&Y0EE%MnZ3C3E z=OpFK9i*J+2PkLnNy_=gAmywdpq$;da(g;Ba~b*s9|U?y{AUQxnai^I|s2 zLK!IQS$%=y%ar4{mGjv+?SEX(S8e5-_=0l!k9F!iT6_EvfjPKO$($(nJXI#fndADZ zF`mS6%d?0#*7BNh^rga7J?<@7$GcX{#QvwZCQD&6rALcfM{U_(YHSh6gJ(#G9Y4~b z-wQ31HcRLSWbfZod&+68g{(vC?~;0>O$3VNzJWR24WBgCHixp&!ai+bb07wfM`0nM z%xBR*gJid&Oc~DDf@GF=K@u{Mi+;nuC!7A`PTE1=IM;u$_!ylZr4J-%;8C${`j@}v ze^~y`LCUwr2V;XVY8+&IXmRa37m1IDdbfUVPFv;NKS(+MIY2oDCn@LasvP&J!_0SV z<*Xf`9Je>KHuR_4jsHWsHGTozEWRE$NPizlw^L*MP-zR&mITJxu&S-XYHx{(M`q_u zgUaj$Z&JHyA6hbt_!8|#`-c%T>go;d&+}dn0K^;V?(+m zt@wNrYo`4f_v5~B+{*uV+IPdj73s2_ESt?pIHI*BuyaQJJ#pB#&PZhQv-{$CUffO9 zisQ<+X;WPK-{8Mx3vKyDyZmk9k((y6@9B-y5BSksebGeTqcDy?qc&N4)st~)Piyfo zbS8j^R7P~nS_SJ${+%8?( z%2qzun+p5d)6dvH41S!jou{(^%3>c&eT#(=RQR^i>6Kzmu@A#^=qvLaL{I!K^@jxG z^7|!T0%J~5U+irF9-C+MFxCm(s_e6uK(_be+@QT+Z_`nhZCCW^?*Yi^>a1eb!M3N0 zud-Fl(Fb2FO#KCRrj-8R$S6N6@A-&vd^aqUceid810*XLP1F(ZxdRct%i=pNoMWjS zz*H&shgjeBE{zlBg)(FG9jAM`XnR|>Ozf8>b$o-)J zXWSoAo4eM?J6m5g%PQw1tUH0_>ALnYkJp)3QePUblKleCA$&1B-rwWwMPv3h_Z@4l z;aDdOI={X3J$WV_&u7GFV%2-nmecabY8Wfu!5t~q%1Kk@S{bIfioRrr5PxDL&9(Z3 zi{_eJ*;Q94dv$B8C z$1lcSg>Re(Pxfv|z5Dt=?;bz-yZ5ViV*|ZQ=TXleX)oD4+2l20D1sa{Z4bUNX|J9zHR7(~pnw zy+hu6axHR=%HZU|R{5&;JI z7)xjKb4WfmLP^YXU{@~t&k)NJ4^vs5$lGjRy9x2Ir>-ELx|Mkf{OV|qn$Fp5V3f*2L! zftyk~#H75*w<+!Ad2(Ks(z_S3OtOaS{RV8&16L=rx}t2`3rvi7@lfPT?xy#yd$c9_ zEWNwrrWVF{pE`08#~MKU1g$0R1r-AM!7s?a0rlt{!<2QF@BUEMdokNDuC?NmlvS5x zXV;70%XCO|gEC;x%u>JeiUx^ps*G%WJiZj?AN6rJPnTarOT{*8V>}s^a<|fbV8^ zlTEU~-Tc59Qn^Ufs8KH%6*ZPsgVGvxfuN|Vu1YOcYS)UET0V72HvC2x5+M9)Rz*vd zw$Y+eigtmBs8~^7C}$@1bB55V-G2HG6>%O>qHhsV`mU#b*Pl95%%b11 z#0<9m(dazD`2I>^=vIF$*VJDW9-7bV?uifkJ!=1QN-w6hhIqdT)h`Dt?Q(jKJF!F1 zSAAH$ahH-!9o#F}0eyB^8}kc@_lx}!-*wdX5C45I^Vtt#91oW5!Kl9}Q)iy1J}iAZ zk^%Y*X%_V%`0S47dp|mVF3F+av?r9IJkXIpqW55>fbR_%ZtA19-$&&EXXh+UTZTM1 zGvLb66 zJ>=@@gZt4w_?TlnOS1X{eK7j7N2SlCeQcZJYih^4ZSz@O)DeI45&T<&u*sh<8U)Q# zs@|UT3VkQ*?P#gw3F_i=EtB?(whP=$ci@p>mww%Ob(WD*nBa!AGxt1JA}Xk?O8QjO zr-nYY^qI0Zkoih);63Pgw1MQhF=_a|-^zQym~?`1%;$?Q2Ia8qc8tabv87TE9pM<+ zh&OQ_=bexy`f#5I9&<>8@ZUrIy`9zqjmuZjI_R?PZljLdRBz^rQ}>Y^WG)jUBD6Qr ze!%>RvO5OfZ-nMscXGKma$L|VlVnBujd;KH=0M?K!MbT5a7k>fW!0_{j^hbDSs&5l zId>h&)SIPZwCNRViaNwjRm(9>4VoG=3@jE!@p~L;Kx*+W(Kevi+uN z|J$^epv`FSyTI6>HX@yV7noG{A#X3A@*}F(X)9tAp{+U8))JzhuHy$7`xf+kImW`( z+mO&!R>FRU>R>#1%2yVV z`H;UpN#!O_EO(viC;CErM?r|@Ki@pa`>Up>?0*wK=4Rg8BU-6UloN{9@j26d-a)kw zFB6|pzDA=&U>&i)2+KqsfigHl6WtXcQP_xN`)p)`xNh=(Xk{xkrOub=K8u1>K<&`}#ksuRM>+&I0yq zKS2GFg#DQ6AD+QZW`cg=ydM6OoLB4x&b-e1p`6$2Xv{n4oo-rdU7*8Z4IFFMms~F3 z&j^17r<}i2ITKK4>+?zA&y-#0W(*oFNn@5ehwnD4au+iFVBPmq^zPH=?~71<&Yfnq z@A*U;1K=WnZ-Ngx%J{<#hkI2J7+5&>sgY;fLBu{C$!>daGlHO=l0uMZN~PvA-BTd;Nf{Dvc$m|h})$%(YP zenJ1~+`&BRdYgFoC!09FBF<3wzQHb^_Hiqk)5`G|s)%j|p6s*N4u3N}WJbSCOe^8% zu;r_u^k`08z_+5Do*@m-bmHsF=^666%@pn1&1ol}j(niZ`*KAewW(!1@I!M zoC+$ZgzH$s_UkAI?dWdlm+3sIAzexH?~Be5zt(ayHH?wHhNwjwrb+1OU$qy3IP!cQN_0O7Fo*L_X|GWtbpRXnNdC*m>Z$@o@`T{&MkWgrGn z*+q+lFBr2RPr#?N;*3S2EJ|~T7?Ng{@Q~b5!q_#k6&MC0T!mPz}p+LTIl}jw7IDTWkOgUM;LAj^{|CSn2_mL$Ls|>bdYVSOewy- zX7D{{|48;lB%Yr!&?7O4a}GZZdj1#c6YO?hxIxAf#$5i9e*3iXX<$oXjGdUQdK5b2 z`Jx0qDtxxG{-B^D&uted%)F*`Sf9(p<5UK81_}Cp8+r5OUh&X6U{fX1k5RqYYkWkv zRU_lXo8wNWRV;7FWxcJ>vHhd=REMJM69HMNTp+H9#H`OH`Xc7}_0_=ZG$k%qg!(nb zjIpkh>PNg{``>voHVoDv@Dp~5UK{_r%LXfoy;bVYNH@*~p6!sa@uOwVK~Q{wI-@=fK?vwRgh z40j-X`++t%ePF$~i9IA{aeW4GciR|C?k=N?ZCciv@1}v>>#0XPfVLhUp2scN#N$>M zc8ef=rjv}&{nI?V%dt_#-a_@S4ZTfs-70Drry*n`?gMPaUx>Vo_*VrZuy?>eB{|O; zkpxD56YV=q96RE;@-u+m2lK2^+7PA3U3=jUj`;^0;oQg)jw_A!fNpN3wqTC;R%#^M zw~FqOdA7v+OSs%xA^`pNt%wx`T{@Nd7?lZ|Bd1J1+w{Y3{|0xyDwlCw^o61k_*zup@j1Dp4Bq^gbjZ83(!o6k3GL5vBZc%#k>*x${+ECjnV^e`A znMktQ4kKs*ze|fl&n0bKa+FWc8PvC0?R!@7M_5lMGhYh+Woqzb)^kEvu|3ow%+6+7 z^P?;y(qief$0zCB$NK$e$+1kCehdHhX#tzg7?)2^1P&nGkm(++2=TLAR9|2(rJLHI z9=ybtBhWV_Y||{{ym$X)uJzlKjxk=6ztWyAp*e9Y;|i-JdP3|srH3tlT-kWNGf93=q_&i)yFbXSOyjgCg=yWrPQ1HM z#hw2I=Uw>QW6U7749A!W$2i7}6JG|n3%mXvP`IBY$I$+>b=1M0a*rsx96UQl>5fcH zbeAsc+|K+e=)u)F$od~XA0#GaPFaHar1yVxnDzPWA57i4 zN#|&~J)qoWQ66`0!5BLye@yXhIO9n^@iCTDh~ozN)$fNG4`Cth^F@TxT=f1*%8zl} zb?3%3z9Z}-6ar>MIs9`q{XHu}d~limz5spUuI8yxBn!Fo?U~!meC|e?r;=0U|D0_JH}rlMtdR~kdjeu^y+~`O`KKx1SL{!obmFtpaLWDzJ;yn0{q%6JT);MY^LdZU z(StVTA93MsR&#%f7U8-7Inh!-`b~0UIqr;fHJ`Jf@9R_7BC4lU#c?Rn7s$I&qK_!( zuTS1Nlo#>1%;;rbaXA)WEMgDkJ6r&FFvO79+;&-)+dF<{8JrC}^sv27RP z2<00RTL3zE#LHUIr_P_KaX>7hAE>j1@8cuvYng`4DfT_wi83~|3H{7_dkcW|Y{0kX z)x2ju2oSxz*Av^x)JlbnnXVPgq4B+>R<5BOGe~RLD@?=7XXUzvgFSJ6mVF@OD1a9+ zwNchdw12?gw%}4)OJ>kb?|BcaHT-nLLDoflPV?^g(mJ>~xU=g&MBd5As7$9VgV-K0 zYT^9vK2Ng~e?BaER`>|S6VvI;n=|jhBbnnPHMYls&JOxoS0uX79ZF2^epqXUj+0|R z(LON%X+W00XY7$o0elK+op_C|y?JKWUd%xgwJqPlHq*NJj5&(A4$AX~?I$9P51HO$ z9OL`+9Obu*d&6^{x z=Vi&bWyHh5o)-JRn{fuDFDC9z-|znq_Tf5(co$Q(4K&8I@7PXI+wzw?aapB3hlBB3 zW;Ae{T8F;6x6G*H^>1>W4dRLOJF#CCm|C6n5zQms1Ku>^_26uor2UM2Vc{2xGv#L5 z=c<)|#uXOPl96Cc$O@86J?0F7=fHVyGbN7>{`@<0CGQH~)PZ(je|Bu5{Zu!2vVH%@ zI!{BLd?$EfeP}~=omy6%|FOQkPS}R<`E~7PyX(jO?7_F!Ggblkbq~?y$V8XziYG7^ z`$_W8ob@sKyjYAhyKEUFoPAr%M+Upt_7u1>I13OnjqNVkmQ%$}>nyh5Q+y@$q0L;< zLnp8~_$Q@}jBdr=!S^YCvz`6TFjS~7&><(|LFNTUgyUk@sY%+e@9oJPC>uo(5L znHQ)tujY8{*uzVxey`D%&R2GG@B@7A_uZKg)vqN&);S7$?w5%7c)E;D&UBA6(|kMS zF%plVFO1zqsvx$PAhrxD|z??k-DC!940zUei_xRtRU(Eb{3 zU&5|4XENP7`etB$Abz8t6Hgn%sx6Nf1ef8F(LCnKf8i$JbO|%wIn10p<(%#Bx29w{M?$Zo$u+DL2huF?|<@jJ(o= zS#cgyDyHP84lUC@4D43Wv7U?z(AcgaNj^&v_YL$m;T58@B+=cuA{jP~?BtdG9Y#=hlaY>_#PTj5HaWw`<~Qu{7kA+|>X zG*>cK&LnLh-#?X^xnHBR>zLo0An96P&ipjw0n=D6PA8f*`K~jRu2XS(-=n!KGX|1O zKalx2m-Ka37=7UN#}%K$I90OW&|N}L<<@ql{@mTYp7}^4WrGK&beBnc)L*E~4QyMt z6#796w(WJ%tE>vdx}`BSh(@6|tX6R&Q8()JGfgf%fhOUn_`z-&2f0GgH{_cZq;oZxa-)yHgmA_%+b+$k+QKwOc|CZ?OcaOB+|rt$ zJU40-E#jQ-n})a^hKfVZvPVe97OhdS22Lg(fc?gti1Ph-k=lVfqF6L$t=e%Q10AMM z#nm|dceKyYS@9s_1*{Y!Bd-$OkSs?uoNFvNA+F0Lg`e~t@JY1KW555#81vx}+byAv z0;9Jc;NWwcsn7jLUN{~)@{O^&*{9eU3mTU>z_bp_7?9vs57B$sW#d_YDj#QeI1;nK zAC5>#T_M)N-OBbaU*Xyyo~cM7PWad72K)ZKIDcqOBX5LwqYqNReP1cwe_h6F_k~h! z*u$ivF|mvG$fM_WrMDA5aOk|QG}b~d-HlHJo2i%H$ETAziv-ff2L9WIVZ$bj+G)$C*{F;0^g?#6iu|z z-tb4Y4>`O`dATYcv%pJK;BLZ@@wh!I9=5Lbo8MoqVqYRA%o@q>f^Hx` z4&^;-`3ZYgC8d4#PJnfd8Q7F4dYiKb^d`$i`R`l~Ip=2kHp+7u&ErGRhtjyBKhvl` z)K~O@vGG1f;TM$^ZOvs|wDy z-k2io#DJ@R@&iXQRazy-B7qMbY>)aW+oRd{AK|;mK{(e!66Xp!6}0PL3uP>Mr(N9s zU}7W5vLAHyD`f1?r+(Uk`6Cw;vbw?BO@z%scj zR7dh;tjKfuY@O}B^%?=YX7uSdG}bQd0r-!yy(46Nva6ok*oEp@hkBN4 zwpec0(!JgHc4xi-eNmY?D(y2$12%X0x&s;5Ft1SU`aZQOqv9YoWc8tr(h-Mh)rZv^ zN4Kij#fS?}GQ)EVu~sA&bS{lI&D&-l=moMDjpf_-V$9nF#&q|+GOt(Rr+Ty{;`)%( zQ-SX}s(eZN(rW|JYfUhlUK^NR>lMA4&UqgC-llAN1zlns2P&Gq33?5OX0zzEK8s!- zLd+UPuSXTV)+l=QBhD|;=wPB({D!UWPbBT~^KAiOIM26EqBMNpH3dGTz^{>X>`^v% z@4<#PDCyXd#~nJp_}9`V-D#`jQ@*zebX@7xcuu~!x0jAb5#9dkUP;FoV~3VaMavEy zLk|cH8K0`pqwD~Es!h+KO$q322J-z1&YlN;EouE+ZcAwot(&G7SezfEU^|xIOVjJ0 zmG@uJQFYO?30cqn_-rq|gVw37MSbZ#GqIQ6LF?_ntQj^t1)T=sRoCC!&3G;F9a#W- ze0mShaer|UJ;QJ0yF$@C-h<9!1hr*P*4m4!c0zx5(~Ac(W%S%sZJqtBl#PBt&-M_# zchP5JADSPGaZxny30}1+o8~bGB~*WjqW{77%DmY$zwr7KY2NW)e~roo?gC_tzE}z8 zM5Ukmq(FcBy>IZ3neodb9BW3?;v{z_il6(nydU@V@uz?4f2pG++UrZ-`oH8WaPl!8 zONT)HcmJ%{rg+wWt2ZLvEn*>nH_lP`){pU-KGt3e{Z+wOI}RSMFE5b7jPREvmHftj6agmPT&P^$Gfx+=3jRt z16wh)d%nV}#`7f#2OsNU1*Pwb$N0SeEy>pV;Kyvtu=W`-u_qa`{HDYb^d)CV8Q5rM z`_t9YHvYeY-r;h?QtuO2@t&5jUZ9=pYex*rgc_^!mZgDjyl~{4K0NtY9xLF==PNtg zF&_uMkq5=NV60HSkL|2xiCcBpcy8uG&+}l!8Vb&oBZO?fs8ABg9ZEGj*-h$o96ViDNg%m zszAejk-3?57mG_t5lGkZRC*?I%-y)sz zj_U*B6~E~nj(bV(#OR&6g5G`W4)xwPdT%!T73lfItmikY=Uw!Cy0UeemGyiqJ$LBh z4WhZJ%GPO>%JVPfE06;rfR?|8cXXS(Mr5`^Fnju-g5I5vF;;jpUCtV zX%R19Qt1BOcdvDG40^N0>j}58pFkz8D}!y1TEC_nL5z$_EoMEoQ}X6H9EYh*Oho(* zzRPZ7KF)d9(F?fMJu~9ZS5o_)zvm#w?8ZLpiUX@Ek**@y6MFwGT{1Qccn|QVcLzSt z{Pv~8#J9#o(2QA~$-kvX8?f71xvw+Xl@8G!;7KfITr*E1CVb(=^oh~l(Y(*CHPL6@ zz8%q6Df-^9ASTKpu~KL61|1-VCdRH-i}M|4_-AdRr#;j*ZJo5y1E%cu$V~SA(_mW$ zd{;x_c)x+W7-}=e&){=6kv_ckFrRfF{q8WwuVA0d&f;Jc%7Xqzw6 z$7TmKkx-bjPX6ui*@Yg9&XIn6_Qb_5z7J>>J80c};gXo4=tIrMIQ#st4wB{=_&%QG z3L#?_ChYAPKgD|l|LSGj^DmUmvZ>L!qOm-61no&Bd-o3Q!ugUU{xT`FWK!hlNnvU) z?L%Kq9g;{tKg?%ecj@K!Vmk9$i<(oj%Y1wv^2D%2dREzJd%@=EDfh>h|7P>y0Ko>o0AE{IrLR3(NO>^bT}o73LDwAK< z|A~ediD~c=ru7GV`b$RcaN@6&eK~jKEgY*37}4-+U_Zfk5kCli zU*(sR%;DEtr9B}%58`?99eUo#F_L{otMzYn)?nX5j1*m4)N@bvDXjy4)_+kCySd)~ zY5L!oT*Nd0%udamR~lCTPf_<7(ieIj@4Hu>w?lllU(6ay{qw-q=e#cQ(8w-PpvK5g zV^q{JHpmfK zHtIn9l1g(iw}<4bISp#R8u$A^Pn>ty*FFQfjfSlIHEsPgV~22JX-zdh{{-v*LE0O( zjC@5v&xL0g8$AE&lospwxh)pro&*1KyPChNRjhU`7!}i$ukWe!?#Jit6zj}F_LKei zyemb-)gk8J276q2Cwo0&2vB=H60dNX^KQMXqm(}0rk**Di8{4sqWyX5zUmjZOB;iq zYo9;$&VW~*d_e1Z@}2JPr=zOhrN5UxhIps@TxrMar*?Org1Gc@?ZQ835Ai*C7KZ*U zQpop&eq*{d@V)>;4G&iw>B)o|4A~ZZzmq zN1v|5z>UY~d0#K5P>|N31fZ z9PsJkK4%c}!sgV;`*$a9IjyzZzMsoyuH!EbpRr??$yfqf7QaXB4>(vx=fEd?TrSTk z>`acGBlEjC*5^WjnC8%LIX0TrW^s=$#KFDt=sL&xWg821J_92TF@O>G$1s~(Xn&Xv z|F%l}))Uh;oY|Du(3>uB&KB78vY)y}dv0ifKs=JLrddI1^IH9#^sT{E@pIZc=@%mJ zq@6xu&v6;=5M7LAe1kmt9?X2qSR47NukLoEwN$H`?rJxhy&A_M)(Tdr_+H?766!bW zNa^e#dMF3a%{+8u3E%a2f-T_5iJ|yTnQeNVv=#Ip z>4;q)Dk-or4)DvJWi(r>v}T1hxg!%}VtrrI{{+@$sf@B8B7A7}b(;J`8V zJ;}D6inaCV{jmW)sJ5zdK6`m93vC(-Ormqg}de>z^+_!v6QL z@i4wG?;8>00^^41)rYT=#~c4dw(D5uZ3z-Jrd0(;aYYD|7j z`wMj9drISMWAN~0N!BH~b(h6HTi{>%l=D8y!F`_2{-E|Fm&>x|Qd#dX-$H$%_8tp-RKZk3{KdtOE%k{F!WPV;tx05Uzkx*FhpZJxS|}*epYK?9l>*E3-4=(h_4+s z>=khh^&RQJC@-clhMxEIcwuIm*+J#ESf2Y@1ec3AUn<{s)jKFBm)^OS-Z}Q{0oK(a zhIbv-RTj;_mbYq+)W_gHs}dM1g(p5Y)bsB`f3f)aWO&i@$qlsjJoLL{P(QmmATbOy z-h-bN6>N__F1_fyY%I)$J!yThFd2g*_&m|dc*dW|R~Qw!99tpY6Gz0$*oSRB`TphT zZl+5;!&K@QVjj906CC?0r#{i+Q>KT4_Q7WY86z09tD-Y3;BEM|1^b-1O{N*3{b9P& zF;551S9z7bn0;@7PvckmXUA^>ZF2aWdi`?CNrMijipC{QZE<2HqYc1C{43S(FQl{3 zg;=A!~*+lyPD4zo{>6P@Chh?AEo2I zDW>9i{{ERjPb>-eH?C3dt$s$%FJnei+u7HiWQO?#JZv`yjzAfv(u2f8j#KUt@b_~|)R)};SOebXt=v~Q>n z@|S;OZ+%AK-5y_%>Du%Z{34>mnp3F1(KGIZHk4(x;m1_|yu}g=(!o@%QO_ZRK<5|+ z-3*s}A@Cd~I`cJv=7aXJ_}Atu^sVzXFKfQOujUK({lNH{r|K=aryt+PU7_j?D;@*< za18!e#0Pvq{PJYVU#sv?E_z1lMYZG-ScjGDcYSNnKK#_6=o^d>E`wWPq?** zcjjl2W>Fo93Fy>osoxc$7V8l2K}*?o<JDWD@f=&i8}xyZY^|@~)El9yrW?EnoMy!u=`62D&E5CJAi^ z%YAfqp5TiHUmnK&A)Y2-bTQV^ZpTk5a$A?OCiya+#$U2kPhV-GEWyBZ<7;;dX>a)@T^n4Gn{+sUoF-5zmALr>h zwHB{?I>7g&de;7idjh<7HT7pZ^#?Zj&iLUxbw#8uyfQeBbyJ8h?D)`D4wrF5PXo3N z$@z{>Vb9+Jd>^C*7xkQ#IEM{7^Rmy+3btpIa`C9UC2s`T?ik6_@b~{U)&TzZTadC!JeoS~TLqUShE~85<207S4sWv-_?B%%Bkw_#yM{9(hytzN^x5>H#6%LH;>;gg$H~0!?}*$ zxWL&zpffTDf;M6p zwV79vd>FJnshIE?hhD({W=tu^|MY_QfQkOnz6U?} zFSi+31Z*3bgpJsI_BDnbC-nR96$f5r8KoOZX*UWS62z~(;H2l@aK#syPVdmqaWpR4X50NJ>??K zU#y2Mmd`U(5Z zMZCu#mh2>&&k3~e{iP<4v5T6BX5dSk^QrVB#<)OUMf}5HlGbD@D)77fuk-AhWK@_M z)fb*G1`o?qv6fC2A?p_S0~@{lEup=F zr{X7yQoipZBzC)r15&-{(g`8TLW940kXfxR?B$qxKq|t+7U{73A!fSO{;PF z2c@mUTBg1^d#Y|M5)rdl)M?FPG|jy~D<%N$YVTVPze<_5N!j~BPUgPT`TpbO67vr9 zaRZI*3fjv{^0gj0!^!vV>OfDvdddg>E~UG} zIiUow6M3AaO-7vKz2nXib>9k_i0~P|9%mq9&tEfud38gtvwXwz_#A=%8qN`%C%QUI zZW(o0#YFc&x6ZaGGcU~JxU0HJ?^4@-PBaF7sEo=&orXbYBRxA*mB;#AU14N6G*qG$ zi~pfB3hzz1Adk-++~uP0PF~nRO;h6+S}oTn@pJokskCcW%QF)8Qma+kRjZ{P#R1rj zEqOla#eC42a+0Ra!8ruo8S01r%zwU|H=X+=?>i@Gh{K)3_ldLzxM|%L=NJh$>#|9X zCE3aazxN4r4#960|8dt?+Vr3Oef4caS4(|ct>)ph!SvsxHtAFs-m5dEo(I2~R#d(s z;-^X|Z)l0c`$fBP55~S+z}ljDj*`q)aYw6wK6b77PWpw=JG^Ixb-xuh+*=MzT;Lys5l?oB0I&2-HV}oH z_B8Nor|KTQAFm(M!Exsn`;PH_KYYYoCiKkXY{Ub*HI%Y@(y4#2BZ3WHRI32bPrS>O z*8OJpC$Po(XLt9UGr+Gz6RqBGVgbozbI>O2rTb{yF@KY;Ji>N6?r1!{m&(C-pwD-x zalmAD@(_Gt zuxI>Nlk0YJU9p(3RpM!R6_yrcJ1(1exbCup`#nU{Q(QT=gLCRU8~K~S{;4zu2^xR) z!GbQEZ4$MD6-t+cb~^Yf6T(53*V69>GVPI4@GNQAy8zcFLb7Z`8)d;(7CN{wILG6q zViNVCgzfalrR#ZLxrt*)BG&r4&O#Y$Jt5nQY+_x-VZWQ! zgU^t0@$%S~WFh;SjKDgMCOD4lqIaPqo51^q&OFS?98=sh;qO0|bq=OE8?nd>CWTIB zJRtaCY^F7VvkGNkOez#s#I-vDtaHt0oFSU`INOj4_zAbEJ#*_*v`+O>-oJd@e#iW70k4}F1qB|Tn-@r_E^9&_;iE8VP5$W^`|u+1Ay{qBBO#>YEKXR*^Z;5edf zZPYf#0?%p_o;^ry@~AOEo!}#|NAsQSlB_t+IEx@hE4@+~)m4^d5BeS4Ns%n$RknM( z6-^W=pF;SVPZ=g{Fr6_){Xc!ad;c|CLe{@nocWkR~$XS>WSWxpeW#=>KHy9$W_- zWuDs$FFC?x)T=s>Rz+p(S>ov566ry=26~y4tCzUSK53+C)c0q@hUv9nbenKS#{?AK-T#@)j985>YPV) z{(|ZpkyYolROc)IOPz+aVu(R^=?k{8ZiZuoA+{s&qmI7w+IOY?6~E!<5mDog{r~kR13fXlMzl-39fx1S z`J-ZkrGvyTfp01!o@s6Loiuof=OV;6#oytW1xb1idcHN7k}>Ag8E^r$b0KWU=zEm1 zalS+w=e~p2=1un02WNP%W}CZl_FMFQF?|E;JDiwdI_dN7XSij6OoOi7OaGT={ddv-53~M%b;Xg)RsH4ve)Ru8 z^#6ve|No-@pr$$32fZmp5WKZfzAF~a}p7=P9q$?<33TuQs|qTmV*gb zcE)1Hit_lH_my2VLp(wA3>?s(o;$+=7AS0uSWg?5u}d!+crdd;`ON_f4daJrm0J#E zV25xw-V3lUjqQCLJA~Kiz2CDP;snM)b$HW1JAJF5z7hWh9uPZJv%)R%am;I#mrSpoz8Atxeqw-)c_zsm>ul7Fp(P7`i8o?R;;{h^8FV5u?;`DZ8 z-z$Gp%)cA>UYY&mh)2&S+Jb)1LvnA2LF?DpEOdi-N&|R~%W17Qi_uN%i3V;?$D*UH zE3lU)Q?{?qy|h2;UK&0Urs6enocIt)#%X^#TgMLHix}^dvTWEk_(HHnSp>YIV%%Rs zuL10Yy5J19CI4bOopHdAg55$=`j0_BJ;Hp=+n@1--UE-$IvkIR!S_d^H;;;U=j6(s&S$~unnQ(F`1k&zr4!<%3~QZUlI zQQFog?q?rwcVd02G_&$jB1D|)zc!hC?UFIu9Pc7Cxmm~hsO*Y5NFjKf^ zuyZJnhn{=s9Y!{Ptg5`}KCRpXQ$j*wrLsA!d~eGJPDecn2|#slq8L?}_7` zb*};+0h9K;cI<5tiR04Uf3D>VUt__(7y7psiRO-uTu%L%FI>T9YjDuRKAW()Aij4$ zp23e3>A**Yy?U&9Mk)&3D9zDH6XpHU7es4bZDtBFVO`}vWH}!GY~P2!W2hzd8T-7f z6tMFji8FxYntWaA`tnTdm5H?V5$=DaeDK8O(htJv7xZJVKtEP^&PE4!8TLRGdBEUV zDT2d290zUyja^8~>}@rSl!LuI)sdaS`zhIZN|x;G)KR5m=OP-DYK0H_u9@1aa1F~L z?~e!#2Yxp&9(ip+W-#><;Xiu--znkV-_$*{7m>URyh?oFhoMcUF)rfyitw4x!go2S zZ_{?^PxQrG0oL!MUL&VNjK4{a?XMumG5;y=z8gtS+I31{#(Doa_5L1ue{!@$-P264 zA>X^UkqjRq89o`b5kD9E05HxB`Y(Ou=8Ism&cgj6Fj^2_m(HR6$NHBF_UB{Vu9V$y zs34=oLl!U{*J2M%%qCgAP#inAl=z`S;*$!gezb1IY9NE>5q`92w= zZDr5-uO;V7%wPJxhsMUAK)Y^+je5aPyCrS_aNQ@vy2r>A_f~-w|_^1wD_%HJ;z2GlEXZM}2^8!vyF?5~WHv za&x+Y*T~I`bsyGCCFTvSkFf5g=gVk)NL*rPeMEvpO9`b5(!nn^h)P;ZA^M%8MT!5c z69)Y^^+h7pe~@s2ep#O|!*YptbFD?qQ)P zf^GO1%+imvu*u{#WUZ^4?NOe$R} zMwp9KT(@Rx1g-z)iSE$<-QOL=yzR5y-E%YpcOxzEEw(2pTStxdub{c8l=328Mo~y_ zDGiz}r5Im~GsgHSg=>R;&)@#9Y7t)PHU8GTSWVWM)egv9@w9tcPl~nu+t^^yhgp_ z{DwXjd})amw5}PPuxGy-$T+x~xZgUY%7m@f@yDe8V@Fone<*Do)e(Wuf|BcDcQIMD z6Tj8m6m(e~~kd^i%$BfXH_0LKxq&i5JnRDgHL{Hj3ST~@}$&1WQ<=rtO_1Pth9pC11 z_%oCte#U_7IY!A;+Us2?Z&>fU+5gX_`n*~He?-r(r?TByX(>v(=Nsy?iSGBD1zvoi zIECuWrTWT<*47&Dq}Lj+VZYe#&g#n};J>N9+^jTU1?6S^e}evBp4C_2D52g8_(4(m zsDBsLS!TpU5P0$QZjQ=38~i$zkN2Iljj-3#v`f5M`9>-H$3Fs>k?7kg8)cqNWfo_( zX9c}KDyuz+br;BbPV-eh@N~^a8F(M%lsoNG;|KksJL`XcH3!cBA*wx(QhO%#X%FPQ zoZ-Fo!H>v!&h`pMjC~hjm*OX$66<_}gRw==v)je^C0T99y-`lqf8Zqgh(9rNdUaVR zJr>9SC+D+EWL%QFaE~>lmCJL={#cdkjPC&z)BF~cmz4dfqJH6>5qezsjXP2~#_cJ* zi~FtiVI88xh*=S>+4AUrWd9J4{wv%FGt)IfYAqKIA9WK0~$7?9;yAWYv)(x`z%NHtV~I2D96; zQsv90)0Cpq#j3uO=)I~w^ZO`#&-(NWI95e{<_}c^AP0ewm zt0kApm__tEPhs;%m91A8c5q4HUp1z`$G&6Q`bpt7p6~B*j3S92A+cEh#(YSHIYSf= z-LkjL*dh%2U8!VdV3J*{?|}b`Jy>^H*Xmt}PxFDxkbaiZ&r{oft-f8J@l-s5f?qBKWz{Tmjp0H{v1y(*k#z z^bOhYbDpOg;A35IqFg(J?LIM%yG|>xpC{QXROF#OpefZ)#fO_*JyvKxJ(8KKwK29N z#>kgMe{QgeM=3}BaULt!qmC^eIJ|3boMhAWR2S?_OoeH4No}GS@s4Rd7gN2Zrnb@x z|4+P&_IS)@8}9*s|HCH_WE@*f8jylRn%3jH4WIB&ZtLNX3%=;{?CpYx`)ada@-zz6s6z{wEo!hDmpX|}{bm+vC& zHcDeZKZUD;G}uc=1F+p}18xD+By@hToBEk{jInNDcjybo8H*V_6zu8C%mt!Cn{L6b z47wz@Hh*8E79%+#W^F-yTTR+&>3!lI+(YLg${((s81JCysROKAfNT|6D(}#~sa~Dx zEunfRe?z^i|Cf62Q1zDdsrQQ~d+UuYRai$fCzB#^Q5}r3&Z~mvqBgupI9OlMU(x=v zf8e%25B`@=`7v(UChw7c_o?)+WgQ~#9nzl=|6kfBu|D9#R1sN1>w72rW|<1Jl)tH5 zM}INC*lS-=Jj#Zw6eBq+s1>pPbe1md1cBk}8RW9h3BVpoD?d6QAk(#GFYe9#k`_8A2^kp%wlchUDY_U)4RBFvkUJU%HJ7mbKFWbR^F;0(2Q@S;sq8WO z2ZHwG;+!g4Z`Dm{)DsGR0Q=H3?a{@ax~4Shycc`Eu}eHYv@`uCutbJzWgk$9s~k$Z zLvN>s)Fz&w_n)Bmo}hQ0yj|0tuA;U@Bg=$g+-Vv5l@{i&BtSC9sngRX=O@zDhP20n zpX078-b~jZw$d8|>_hY$@n-wsPBA%OJbc+Jc22!!51E{>-N7K^YkR{%_NyBmoX>b~ zb>aDRiXbt`_KI9=<2$GCn23$vDuBcW% zE&G6VhTkFBc5h`Y`a_q$nLg@zlYL^bSMAEd?}n5s^h#Vou~`0=3GWLE@d(fDj-nY)JGn@8j5${%mLZb}Swn?FqP9XO34ut8y0UPI+g z4lfg4V_`}&pRhR2YqBu~EOEp)E9(RfdcsZfTKwmWaVCsmOvBtzi|!5GuH($`gyxFJ zRs3e?#jwZMQXM$6G42y!Lk`=0?anl?kFf?m9dkHSA6m(_vppD{X0bJ2$tU+oJ5A{8 z=Io-j%+i;!@2y7dOpbgal@|%8j#9eI2&ZNla|GhA)N)MA+p2gH=S%-pe zrh$cx{q!jP-gx}W40MTAA>fApFePKG7Tf3X9fw?>zj{4;{Wj71Z8~B7-bm|vDEr8^ zi&==9W!`DIO)Z7~<`{RT+#Jgwp4vS4u@rROM=3ooawoU--R|yXRaF0I8v82ZgAi*2 zF*hobvqUweoqsCL?~tZ+nNIU-G;!RGAf=;^hC%aeOsDB?7rBGclHOnc6{f_|zFV@hXj^QqHQ&@aK?K8N1@9po;`gZr-F&BN`-9`%`!N=WmXVKhD0M{sYJEI^ws-81IW~we7+^B9RUy-={rS zw_UZ(X~~N=r~O^cY3#pV-rMJv0#9-KkT=r)?7cPEcW<5hB+1NAN5jC^Ue0j>edwnS zAB{ULwmZHrk*@vO%yh+_iS#0cuU{RVZ8^Bl(3>6#zsWI2c7@+apG|aFn*jFqvYs;> zc;~0R-W$I&pJQwg@AkUH3fr((p5eZ%Gu+YPZ8xZFY7_R#obU}PcjVO+$Bxc#uwCCv z4E1O?(E0LSDmR#TcH`?3|Irf$rZSx^^e*t%HElWDD*}HXIOb1=4rlzt3u3SJlPuD+ zo=`%GoH&55a5=4_D{nV3R6zszfa z4DPsH>W&C;qCNT?v5eZr{h;<;sqVp@d*N)}VA)r4Ut;_m%2P{a|AymJEa&>s4$Zj3 zqCG$5)Qx`9T1a)#K68kEzfNsH+g$8(v5enC`<%9*oeyF@sDJO%+D88dK&~^ki=6YD z?dy{CJwnn{ch@$1GVeFU|5Cm`qJOl1U|n(lLQSm4zJtmG4F#&{T&1;PXmbC*kk-ga zM4zDh3OWPJj1R?)bOspaT(w5t5Y38rna*o&xfnuapf0BjFO}z%!x-(~QqDXz_8hNL zlf0LUF)-(dOSr!&mfNxJ?ov1)j?W_Y>RqQ4vs`NiJ4z*9$0Cvc-!C&BeJ!UmZl2NW zR}l;>6b)LjfSuLH$G+U3dQ4){IlinDiMM5&VBE#(&x<@G;nI!wN)gX^(e;;GxKA{O z2OM8wl5KFe&$d?d{7Q>`SB4k&+_&rIyL|62eZU)l-&Eiyo_rhgle}LRcwn=w;xbIw z)a#cBTc8H3js3H>-CxWyjjq!?(b&2oS6fcJ$cCbrm~d)LY`fnrreAV6gSgXZuSd!6 z;4kZ_&c}Bh%zT1-P34o&pp}SA{Kwc&3wv~f=@DDTc4wS->K6^%h<(o2R$vDfu+5BJ zA5fU~#!?|;>5O4M4tFbMh|NKKrcP(q2%_WdhR@zqbd2wEPowmD*CMgHNZJ^|-{Q~r zj%7GeWmF(o&H^gSxwWy-k6wNr9sY)_S5X0G(==Br-hZKr3z zRKuMI$+xd7JebXa@XSq~L}DZH{U0FT(Vn`9J`?jr1?@Ap)4LUjDWd#}_#TaDv+C9( z8Qd!ugkkg4kVcG1GdffFi#;~V0{x<_`|p#!eK}daeM#(3!8R*Ytojg46kia0Rn$-) z@h-#5Vr>(hJpZnDV4%MEBZU*MKfkfGkor9S?jsqV58N$>=8Hmw zHLxqrd(bIj@@zGp&Fn{d(EZ=gK^_nh18fpQPPUTxAIkh;$D=&+NUE*egi zW46uC714_k)2tnGU%F6B1V+O5nRR$eS-yZwRMQi?{6?F2C%a}$Obp1{i(o^9J%fFn zjFdh8ZwE6wh?n;gt?nionMmI$`o4<3chNWOQ})nzU763WrT0G6S>JBo{DUJI6>n&N zwtwqKj~&QdjJ=4~2*x)UXcZ5ANn;x55Zm0n_R?oB53oHS_T>xVBW84n$!Z;?3Xaj- zX1-4P5} zE`6J%PW=`e@n#X59DZ??s$IFuC4LS3ZySLVpx)Ie{axZkfpsxe<;9x9+CX29E~E2| z)&klE9Xjp}k7o7t5IuhwXWZihH|mAwY}`#}6ZYWtrP3DI6N-y)a1rw(`K(iE6IC2X zJ8IPvo#FpQg9`aOU0%q24V&;|@8I*!PJ4UeRAXOvb9}UgqJ(2-#);o*vU0VX(y*<$ zdqBdDUwBq(#*ik&82kYD&=Vi^*f&M%?Gc^RtuOBDp#8F${nB7N;|n!e1+?F~6B3{Q z*S55|`U!laXwSU+(OF#fjZ{{SHeMjk75H!9Qp@}JL~(q`=DmFb0jpP*k3OtCD(gf{ zL*#E%`M=b0WeB(8N*fob9^>91(c6WcEYtpX5Q26(SDz?Nw zZa%^>0wCjf;)}&YH!Ir*+DoCgIz)Z+MVeE2w2#(n+Uv=I{aAM0P4AYgyeZs+R`loe zzk&Br>0_uL+$PAo=4&Kdyhh{mns`syAw%A&WPRrnwhw|0^>=_#mZ15L0+WCKK0o5z z0#o2G2|G6eUvR{byDL>wN%IDLc3PV!(;hyM#^v!zM=}$M*B%J}dTohVe({i$k9oD} zmT%oZSe`qb>s!R*h$-F=Cvt=xxpelgM`7-yT>1KY|*a|P2FXu}z50~y#Dm3ZaNb`3G^Ig*GNt1{ z1~?U_dLMk-6ZGsIWplJk<^MIM{fyF*v~R9fdnfC4aHpXBcj1R$=J?(8>K#L_6s!qR{ZMxpjI`yZ^&StP=xavfvc-b3<-rto6i%BSLx8@3mT zH1=5+`<;!${e^p?831uWj=%Nh;$H4>$C6=G|CIA@NoId0s?VPjX!W)5@-v?mnfznADpGhX$&A~SOk zPaO8Pd6CexnJ5h^QwbvC+oE5 zLyjYo02Zk24JHs*Z2v!8hxURVK{FYJ*D^K8Hk_ouELC1 zy(O@}LepW#Y$MJaetY#qPpm>0jekW#`atIJ{F3}ZeSM+u1CA@t_Blo|FtQ5n(?97m2c9k=PwtN__BaYuzv3Pp^6KX!UyD~B4Oy5M%n8Shq`qAQ+tAJyQA=gzB>yJX zY)+&HB}WN2{dOh&shm_}N=yFA>Yv<@DyQ^I8V+V$ksB?>P@?^;qO;C2%vSar0&RkB z+~IMSWn`0vd&=~p_GlaYE?gL&<{?DK@q}wlysb1xyOYN5&Xg-Y zyU1-$PchHEk!aDJoywy;os_4*n2`q73FpDH`0NzpZX{uE+?syjjU8#tl}P6ggKWmK zs?g~fd}?OL=cU}VR$>1-I}ZDhDE&{`H`Pe|_Xqh-Qr?Bbr>c$mo}X+r2*m+-#SH3h9i8t*vYWWIngilG<96PkZoO0lXc=V=aNqP3?fM$fI** zT%IvfpJ!hSoeI5&cM9~`DL=i>wzl-XOK(Z7!TxOAopRoP81K^_eHp)hBm3r6s`v5S zPw(iuw3jW=n^G<+)0enA)rr_F^bF+`(AxjWTzQ5St9Gm=S%qkV@%Yhhyic@H>egnY zlIQ0$HhmtAJ^F%rexTlWE8Hc}<%Z)@zv9Hcf-V0;7aYkfRlXI?YHe_IST-M|Eey;nhw@{L_2CBZ8e)EF2=F-+&er{1w1?rYm1DU8 zvjp)Cp4hi`W*6`Chy_2A`t0Bt%!j^-!Bk7t<~RVn(~BofxQ}c#<|$9 zwXg5jZnj+++p}LYuA+8VD#<>PQt$IO+6$0gq@J@+ZDd#5G@fzTK2x@^@P}P;!C^ilahE@V>V{rh#&Bs(!v}rg;N}ys`Y<+n^rbSEEfxPW zaf!s{XwtOIG`2~KaUWp2T}}V1)qm*o=TUnexB;&tx3@y6q1x z5$kT*p2q(A;D^HEf7-|=EUK}R~IGr>%j{eINS}3BhBSQ@3$YRmIM(V+UsW$HdkL_RV zwm+hEw|1V}t~6s}kL|X%CWtn-xb0iw^>#%*eUtpUtC+r1_4c-*^qs7?CzvhPEi|6D z5dU@yVh$%_0(fGz@t6qG{MDyoq9Mt+L84KQi7;#wjU~jJ$3B(w)pWvqVU8>Hn05Sn z5(m$%;(Y^?$cg)cc}P(IopkW1l_7Ob;T$xeQy$CX>`~Z0zxzt&hb+GUwrzTV&cL8` zFyrtcG4W3a`<>`12EQHfWHj!Xnj;QYIpdLlo-U@}yA|ESHeubM9qAfs6Y%3cr?Ks# z?*sI`mA)}I`)dyO;05}ARV>OLfu8$D#@(yXW?C1m4`f{CF5$!x1ugl)vuG^03J<>7 ze|{WnJ`3Q7YAB34hi(iSbKWQEdj!Tt;luv%tRt)|-wyjSs;B8sfy|ok?z368CwXOW6i+C&!ao&U^FUaTiB>_=M7acCn85*qdzN72zHaJb=p_ zZAsnxY~U8LE(U&tShK*ls17b;ebKL!|BpXD-+Pag@vMs@A3*n9%rZEQoy#1W!|R*& zf_lcZIfLa3;PN0IJ!mGE?=M#Jn!J4YVUC@(QZ7gH#xDI8fkWXzbptk;A#l2%J@{pXH#Km6r#|AA_m@U#DBCPzB%$45Jk!MOr zn9q2PPT;ro!91jXIQ9N!v$QK}r85MweaD~W968UIQ{A6#f*;i~fi(D(jbgfvT8Nvv zWV5{YwAV@Br8BViP@ic%K6WRS>F6UaF+Sk6^#`Jic(vOPM^h#aGt_a4MWpTjcnN`bgOUz{n| zI?3q;{iqGJ&i7Xu?INeJ2=PA3(Qf!fRl=r#+G?^5_DW$=eHFOpXY3%V-;h{YRm5-7 zGmbA_7Fo%@e`Pd37@IMh12QHmaCXeZyDrnc34MSqx~l+u`S`%~uvgb6q{q>>6Mq;D3JLz#|~b}eyy;7?mA2MvmNUfHpY|>bCW#(aAsE4 z`^y$dyEEXDfggZAw;&|r>N@j3c(asE?xFduqHzf;JB4$x=g_{e#j(Ys_s(5$fcG58 zvcH6$jM9G2dw|>*sudm`_H0LIP^B#u-=ln}%R_Y`X6vAI zKZ5-1?d=bE&mU5spno>0pZL!>y?V;NjncnQWsJidDH=N7n6NJ-8tT67dd5CSJH374 zU&CG&{k*GK?tlMUet_|eaIU<4T>8_$bzI6*M(2DBGL)v`Uj_9-5evt~#K;WB8wQ`- zF<=SD63Wp`d%?(=F3jtH6fc9gNAK}ou~c}JFERFu-zl9D@m=e~#$q1-`besn>M71u z=b(F?T!&YmFL?%I`!&4oriNxPM#j;N0gfMx`?!ujIBmGZUf8D%E|N`V@%^55Ne+Da z;tBh#NXm`+P|k81f5gds=Bxty>9f9XFD#ptT0OlpJvv&*7?735QnBH}zooIJ*VL*Eat++>^dJyLtkuBLD7$yM|{;emd(pLnh6#5GoNq~1m>tQxIQOw(sr zW~7k!&-!4Y@B#lNQ7H0*z@{n`RrGsAiprt&T&)eFe4+G6ql@*UQFF1V(+3HZUrl+V zi5Vo@!hdWb>uum?hY<7fX-}~e} zd!8|q_~}h{&h~3l{h%X*eR2xEo{UArcfOPKj|JPSrye1BeIC)w7~7-Qi%4Qdj$2#r z^J{*uPxpH#nlrpP+D*W#o3r6`njiX2WenYL`j#PMc^{%Zcay@Peld^9Z}DJ|p!rqx%yY2l7Z}sIWLV!dnxFW|IGU> zjcxRs=}5+gdPK&qBU*CPyS?<(F6qf^5(BX>(zE~4egrHu=gtA~Ggc4u*uY0;yc2aN zk2ndicL2Zi*&RnRQL{t*?p)%H4d7|aw+5XeeUA>!{)hDGd&6a)v$5X(Y=9p&nC^ZG z+o!NPX8A8gd_J1zOS<^J%yV{3+6~e7+myEBl9>1xeW%J}V&C9;QIU0T;Zm_UfX}vZ z>48iI@s(y)ToBli!R`z?RqWB|3+&Il>i(*P&SA{KzT2)8>+e7;3yDv)bIw09C0Q{) z9DFs@^Bbzii8Ixy@X<>&?E}v()JGb#eIv(9e;exKhf4q2II26dj(Ou&abVct%vx&8 zx<0%*@_jN)#;e^k(kockJ*+v^gH;S1gj1VRZ3I)! zwISuBD#I-zz+>MS*uRv<;UnBlQ~AH6{5TuGt#7d9t|~ldBY6L6D);m8v@T(<>XPT^ z(s9aPgk%M$&ROna0eN88@dNw6*j>F5afMjk4FSXRTGjI>6vdH9~M+4h@nipvK?t*_#~jHH1Zz^}RJoGo|CbLm%-yc}T6 z7VP`5>4Z)h{_4Ox21W<4$34F!y19>J`Rh+&`Q~hwRuGG}iOwH;?4h^U+ioQf|IeGS znOO`BV;g>0kXz#Pz2rRNxk;w~>O83$J z_$l3^@O{^FY#jOfb+)esma+W52C|j<{TJwYR39sbEfSMhSF%{3zg6_VjlMUYCv_&T z!Ov{SBH>EXo=f9^bv(S9&b4&P_8T!#Ol{GPnDqIF|2fCBfG=H4lu-V%R7^~wJ?T=_ z-i=Df3ETXXDdUHJOy8Ivx1r{M>Pke~#Q$8DV4J4TqD#aoL(au&DzlTyUK5Xrb~PtY z0SA=kWL4IjoKIuCn*QgjJEQaH|C+2hIh+1>X3fbNYEJUhoD5LyeM6ITl9x3nJ~bzQ z*5sVzsX56}@66YF=j7_FIk}1P)_UjU;;cEjfqt*XxY78pQS*R))@bdbHsQ-m&}K0| z)=FcAxx%<$-fmR$bkqNFp7Q=5^Yr#SACKuT)ja*&l=3U?-D`?EM2S!N$kN_(-NIg6 zeEct==lk+{?_96SdamhrS{N(0=}Hxk{Aqfyd8d^_>whEP!+i6zKmISzuKQn}1=TY{ zJ^QrJ|Bw6p-`D3q?hS$ER2S$FBYeI6DOxCTx=l(CseU4#pVI#Vxu{QiE~NweSflhr zR=P&%=-X#{hnS+$zg!T=fIr(oX z{ih2gUk<+AM{@`L7vezgPP@~+Co_}8y`lf;j6d~TKR9?JKD!daQ*>$Meg>b!G7fahhK zdUo3a*pasg(BU4MlWl5V!2kHdK@0POGu=!5(u0eHZniKM1pG%hZfsK89BL_Pa|l~Q z;V zmWC`pagNVaI!43-$ z*gfi*MbF+q+Vba+a8seI=X;aKf#jqi9+6M!kjWs2Z9lJA zOffuS1AR}W?{y=`iAiQ1$K`NId87D8W?kt;F2q-qcst+wL!I^Sm!xj-lR+}(#8WO! z-VtFwK);<*9?G7J7ctiOEp0r~h)V*yV^agZ`+T;?zM@RVpnx8(hQ?(k@r)+P2NMb< zT|5+0wrUtJ)yA+{;%ziayi-k&7yYIFcv(NB`nyZ(?eDg4=`YK|)IaJg%Lgy3{{3F{ zuTk~yvkj_$@vrx9Hnqt=OvX9MVLhpgGs68dIG%!C;Pj97E|dCqZ=e2Mq58KC_*&yBDZ;(7sxFo^x`-O|;^5Rc$IRI=9K~(VM+tV^cBc z$5qu-Y#2?&;5BP#pN~;L9U8gVCGW_g3v|}OFxK}-zYjy*mHt}#$ftkbB<)%LLf=k) z#G>2RFUN-d>1Jx9U6IE=+Dj_rIOe!i?9NAD+V`vPiH>-0j~B-*K_5A0X#XswN=PbGb-=re)R8|b5V zE)oNQ%W5na``!$Q(F@=UdsCX^pmI0IW=*_J{LKe?l=k%zIeaGs8_1IId{Gvn^#GfO z2t8vP$d$s)eA04J$atxJ;`o?RYbNz!bYKzeZLEB40_=CJ(Sa6G5sZok{Up&~=7}mj zDk{TK>eF%*p%~+`W+g`q539J znZS#LKh!T&%=xte#J%mEx1*2r&f9%d-@E|gt0_4|#*ygh(}70<`zO=$b!tu!C%lpV z>ncC)uIlOk9`zi$)mr+$qoB9G-H*t9*(vkMlkyll5PSC+svo`pUR;s+~ z;7_LVj#qhgde*M;hA8jRBANF^@Ynrh-tSZ1RZ*!6g0B|iY|^_uduo{bpnTO5Y^&qM zH9GBViBqj z;oI##er}?;sOG)BvCF&yJ94V)13;iLdPt z*L`P{xZ<2q;zFA9@2UR4&ul=S{=goUc>ZPC@7L4&|E(A$4pxs6R_!Qpv3g(E7+b8o zFq*Q z`8c+d(OlZz=YKrwKhakJY4q)K#tih9%Xt2fyJea17XY6Dz1lj}7xXPb{Qyp?sk!VT z`p@=1l(vy|`Mqh2=S!cmU9=XQv;~y*BJL?@-IqKuaHBz=dGtxq2lpr2nTLq8&ub6e zs~C>1`~=fI;(*_IszdMauatMz9D4y66p%}UQg7+><=@I)%h8))zu9w+$4>WevEaXf zy$81DI9s1ONBX?dxRg!Fjd6L{TV4)!JL&5h!);=j{}nL_G3T)U)w9bnPvC7ReWE7U zdqc3-ZynD@(6dSE*|qA~`Rdux9}ci@3fJ4^^J5nB08ecq&G(Dl3I_m~|AxF{LA*WK zt-my*I|DmF#HF4@dDkd=An0n=s`4s`ze-SF@O+heUdHc7#VSg#FhKJQd)9D2TCa`` z+A{w*@kqru(d55UJXmoh?VFU3J|5t*QNFt=9bi5RkcrMGTST%5C6@88>9G?oc*PlpUj@KhT=$zWxGG2eM z>6N}E+WrcXpQlpa@eKHf<(hUD%E5fQLM_&od2-HKAEe27N1Wf!E?g{J`7Hm;xlxU0 zLX9W#elKf0KYL*YY}M@ATAy$ce+e5s{Kmc8KB_Be=JOoSn>xTAV|=<--ieO2T}!F$ zu$eeHQM_+pbE#LwZ-W0xMIHoIPNDYhTRel?1fP?-Nds&zpW(0#e0`!f~Y!>^`-u?GxeO1K-aiM>-IIChb@9Q`hoV^|Ndy4-Grr)B9D;QhdiNyx`#dk%2 zNxyf@3osobZ6eWNgg%JRf|z``Z^YeeIF=hBM!8}W#6&xrQ?a~<)3;aE>h8rX%c{}cG!@mxk5?R&8K z#BT>*3;Q18d{_2~<%j#%^X3Ikh@p(MvnXvE__3>{4YwYR7Wt#m94#o%g?HAexHwAB zaG|nC3@2K}L>hbS7l?(+cB?-m*^%ZF_Sl|j#UdvmZBR-z?E}yP`~pR?&LWXem-eA8$*_yt zQb}#`QCoH^UKDwMOnEUrqtzULI#>E7^PQ{86aJHo%Z{{!;#co}ILLbUAKxZp;r`^O zb=I79DwY-fzny-sAi2ni9|YU!%l;&75wYi8L%-XhLj(30J!>O5ZQeP4wu{ExtvyG^ zjysM0oD%k3gX^rtXCBGmjx<-=*kv?5gtNO0{}*&SJdCu3`H`yMu>pXtBuxCn$*0s= zFaDzYgg8=Ff0A*w@w?-h?)}AC?L?YE&oM?5`}f9~>X;kY-$t@(Or?1s2T=M_O7C3W zs~au9RqDb~-xbuRPP8c^+w@D0U6HWw?x?fYk{pe@go`Q9kN;3-L089dgPeX){<~Ei zF6h61ProO!ZL{PTvT38*ej zcDc4$puTXHPSlBwUPa}iO>ZdMILK7*!;X>5k$yi3=xk_j@=(218|D0?zC5<8ohPbP zomGAGu&+`%I@8NIJH+xb`vn!4dV7z)AbgF~7vO)T(y39~y)0K&Z7OzjYSl`oR(@`i z8+tY9oKQ~anqHlpq290h2Ay10mQD`uI_&}t1(m+dfKF_g^fwt#-%cK^TgR6SV-?LB zt4G$!yRK}V{Ooms{cF_x!heC}ET(_>3H;|Isi*thNmAzqoZ*SYJ4FU4pMRW5G@tJ% zd&cV|-e&sX)7_a}w8rO_)Z*woSQX*%LLtM#V*iq6T(e`!|!5%jyB^4InE+3!()+;`Px{a-sL zkV&X}j_s<<581DwSMLGd9r0a5YHZ)7|6R0>*`6pQZCDKzk2jkyXM6@#%+q zbjg~G+048-&LPCWU7^ZdY{VZ1K+mhlRx@v6=mufbX4RhczjL$k)~wbTCJ<2783m)U2$5|L3nW-I8dfAIy} z!^v^;(74I_U^!mCP>k<`A9_)qQ;*C%am>p5jM*2n|MxNbYZI`JLmTa)!fh?9u_e_k&l> z8P=SNhKj{5;MD?KC&+Os<^bo`nagRB7HhnkPmJ?env)UXohlaN4eakZRn5^ptYr2hnUT)5oG7`iPL6_GTsMqlM@E_2+5- zhA%hqz^?E>s{-+fXzY4$QE-N|tMk$K$I2eZp}|6`D@Ao7@8lJ|{%Q$b`T%})y5zCoLyCB65vngc zp4zAXIlw#zp8Kes8`NCEzwPx|f&DCd0Xu`n5HiyPG^XsM#WL4;U@sO-gslz9QX^SL zY7>)3rC7AaW^<US0OIC zVJw8dsZHykI99vN+iWIW=yzo&?s27_@uTkU57=e~_#DJ9CZ7-N|L0n&gJX-zJix2; zxnlb&f-Pd5Y9I3640=^GxdGS?toKdWmC$Wn(JDejr&sjSs1F!cpuIMCA?rs=|3~^r zqmFK>v#zC$*Wj~M$Epi5AAJG*o?BUdMI5fi8W-zjJ4x1=_=5tw@pP&Wwt8XW zC7^GmvE7mJWL$>yXGi?L@*(iQU&L6Wh~4q;?(Wx7S9-1V^}xB;rtGI(O1=jTAZ6s(tymB+s(@66*dw+{&fAF-+1`i8Aotz;}HqH*T z=lAax^zfrNOD`lk3ejBkqw)}o#z*4;3=G)10-qe1wfK$kzL3wPQn8lum#~lYyW)_U zV+DZ$ZvuA)vi>-G#%28&TO_Cz*#$&ru$y_|!mjjGvy^#>DDaStCM!y9LRyIS>RGf$ z$w?W<6X!!M(bzz>PeB&H zhJM4&&e6l}X8OE=V*w!U57yWk)sHpQ57hhboI+lE+5N50It!0oD$l~RSlx8d8p^(ErFfvMSnJE9o4opn3o8S{V~Ps$z?SmbaA@3t;+OfAqlq z$uuTdHk6uOX#T~rk6XMudBKGS<6+?#Oz5X;i z2JB+tr1i#toxm|*Ya)w9=WmG*f2^Ku1h^!*|6KohfSQcS5~?8tdI=im3rF`+NZ>U_xbwm^BjqIPLO| z9yXvfc7Mr8+8}-~;0q@L;0No%O9bLsXW!*T2KC-u_v3y32BID4(Pmg>;atXAK%cM= zB0d1_AQ{)8@-WMN6P;L~#GBpy+RT0f` z(Tw|=^*rv25S1~yJaoo8X?4U) zO&d~Z?;x64OMUd2GekYLJEY6LGFkxYZR z!@(GFA=U-P7jnxE#CeGW8#}o-p%pOgtRCjItK&1dAGdJ4z!c+uWC8~>tBDp^K8Pl! z(;QFlpm833YKPEI&bNW%3n@sNsj$ivJ(PJa->1oU-hNWK>FfuQrv!E<8UzAXr(Z;HcUdCasQ2+gN ziH}d#+pAvgXIF&g3zO!1XS5#JtmzLs>3IaP9O?bwd_lb3{vXXfoBAvjMsGPc+)Uk_mhIkXWj~+(i4;CV@REKey9MuiS_SM<1Ms6Sf!&fSb7qT__49x=TX@dK_zHP1wJu2KC-5(6@2`l& z#mj%Kv+8OK*uQYCSeM^{Eh*2d>=eE3B{=9OZLCk?_ zUB*f~daA_wyi8|3Nik#5n6H=q1L-7RJ`FusSmJom-etM;Eql=S&wniW^cBGQ2~A9S zNFFX=o!NNAp($|F_aMZf&hhrd$of}I>VFK?*WH7?(lWb&OpqBn`uoDe-NBwA--ATclvQzJ0%u#`V>_r z;uY^Zx&I0Eour=agiWfkQs}V3)_!Iq4*aC7cE3vP2L8tc-fN^^GV3eV`#2}VMcy8t zWgbKI>}6H<3)By{nUiWBkxD;7pLOP&Y4B!v_7nBY>Dy~6-LKm73Y7uAEE^X+MQhB^ zTE(0pl1I88vc-@Njz7^DiUHfto`c1Jl}tyc;^p4llqIB6z<54YL9c|(nd4N_#Pd% zwWeL6QP!gKfO$1M3!`j2$JlZ+?sQBv9_Y^OraraNr;9#Y>C;Z174%8aXBB-`(`OBR zI_b0amag;*^jSxr4L5Y9F-H^W6LWOT#PdJ*8SNR=o|v|Pb;RI9fUgAI0{Dc6Vbbmf zIQfXB^OnjJqcP@~cq$hAq$J{|HQH6l6?A;WOHbLB2tu-J6WR7J?mN0r(rX51@39zEEW2t8f`4v%_|6PmZ@IF7Q8_1N(uuqkT($ z+(WI)%Dc^faY!ptEQVeGs$S(btU*#i8S2d|6=9*UY^oIeN}5$*Hq% zNt*Nl{Xn<)otyrXiE29d{bJhR+(E>u(We)?{5tXGZSbQh-k`_0uaKkLU<;>o3}`Rg zCFm`zxA25w)|QiwuvkiHm$-Jg04N4zM1$p z7mX|OPmH&+9YM~Zg#Ff0d9K4&1oA{hG|G5+{%m^_#`}&5?EiTG=!|}hynK7z z+I{sl_^621C9W&Hn&Uxs``9;}S`yT1+Yl|O;=I+^b^ zAB271oVDi{Fb@YCjww-KGtLmuCmF$J{)P|SKaR>f5+BjUFX^4BkRypMrW%Ox5f#2@ zl=aE5ivvAPBl;Ct@7zo8MAbV{=bdoxJA0n&Z81{@` zNb;q)O9OsHVMxl}qkko_5J4Z4I8H@O;4Fe|+!cdv6c?U-qd4o*8^tMut`nr-nz7TJm^XG)!M(YfEcTcD6%l&=&a+2yxn&e9K0ez{UKEb}Z-RVa{_5-}& z#Q#G-Z0g50rC&mOIW9^c+h_K3_y(J3oY%1N%(f4NJ_<1|rV#HOrO&)4C00Mqzeeoe zv`!{RrTv75u>-%}Hit$%VM(JLpCH`A?|??n8Qgov3>uvZev8JXh32^Zf?T`TuBk;# zRrEO}+V+igH6xDUsT#k7yY(t6zcj1-2i2HAL}g>lwYdX$PaIAA2c(ATMU?ta z^}i4KhUR?__*%xLrtvf+KFz)hB=+ZQ+Dj)ZT*4FZyF=^`U(Rcl?ZTUZXDA}-{axyP z8k6$Kx4eIc@@2;RQ`CE}tM{&=XH&lAJ(tPxcHP92dTEV#Cm`mG(&J#PKyw%`zZx&B ztu=uTkyLx|mg#{^lFFV!=gW3lZ-~!4nSQ_dD|s)LQ8e0@b_>mvJr(N_eov~bKT=tE z|Ko3ahw26{LtN$m&2)*&hH*ALUb}>zc_E8ZTk*VOy0qnvPv=I3=)M<^tkJ&C1)M&_hMCDYlQ{~jZ_|D`p5Fsj zAMtPSryH+n%W&p__NInsvhKd*_X_(Abq#jv8uqoiz&n4Jai_=NPTzf2Fy%(9&FvSx z$9&_tE^R%^d!EXB`9hhNLwTxMmS4gcJ;Q^*E^9q8Rs+>L(VQtxC7OV(ZY|?F+(a^w zcGm9jOxDMQ={Yb>KYJpO>A|F%U!VRmUk1sS{2BkzrMJ{&K`+p{Wbd~ zg&SK>ZFp+t0p>w>Jt284x2nVOqeULZP*u;Jbj(jqP-0mA^7r!Yv>)w%e9u7Zd;rz= zkV{*Jbljt_{9SiOhrUnBh0{q^pA%MCPKbXy+9T=vgDB$vtzj zV4Qb7bcN+hvzy*Z6AxMSG@m|WwgrF69Bq7hsis}x))((>Jhz`c-Ut$nj7h%({B0T!V1B+q zd-Jog*JLjmjE8V9=yWJAsRzpayy$-dZ-C@49nolOuUx$oUt>N z6Rfj5ow*`El1Q&Ju426#XkbqedXi{x@oFpPM<9Oul1{Gqv}uE^Cz?odn0*EzSy zmAIL4xV6L^!WErhc@lF4rL%1p>i30bShNSt0cL1~#u{UevHuDE9>?}44K{pT|E>Cg zvE6FS6kSBu>u3z2i^58AtskNx)_qx zBQf#eNe46als-+RmuWHU!Ttv`^GbSkNuZ-+*B!}hqqEvHN!Bu@ex&UD4#qvYWV_sx zJnBx-rH`_r`?@n&fAGh}8Z=(QJcJ-cc!pEK*wIFjZ5E&b38aZdh|3WHIj?-ytv z^MBhvv2S9}{QP(~%g=~YhqLtY zx3EU(Oh$}cV@ArC9Ay>gv(lc>bHY#k_v#DMr|~@z@Ou|}H{dsDPj6;iM`sOtRhd=y z%Q3zg7+FN`oxmZA&a^nTJk@7^N9y|ibiBKK1MNj?2ff#0=bx141Z-@chV0s1)8m`A ze(k02r8j6ZMUuu4u}HA?O8Ve`NZ+xU0zPRCBV@Z^FAp3KBhoCk0y~281QfnM>g~@l z?OI9RUqWlIm9g`DW^)m25q!p#RCcrF(TnBX0zLZ=^KzX%cHf9|30uqwM)RI;!g_ZZ zJ7v7mNDJ!{eBevXS45t&`M&Y-K*q=XWWuheu_*y2uM=N}p8s`YcjgO)OLZU35$5Wr z^bI^Hd}9sXuhKWrH}II&!=K({d{D@a>EFxecE@o^dnoJS?;Otj@VM09X)BfA1GN*e z-f;Ke((kkOE%4hnle{x!I(=K=H!z-6inwTVL7 zTMXJmbi{v9n1qwHWheN5>NGB8SZkciQCvF+Gua|K(-;i+PSC1ygmN+FEb03Uul%)n=zMYE+3x1*&Z3)3Vql90$T6j z)BM49_;RKV&-23T$K77k`qeWsE|W)ZvHB_Bwx4c2z!;i1#|=+gPu`Jh0*oWa^QU-^ z>d?#_$W?X0CBhqwr3~V`N|es*RL1v|zoBP}(!0YF0i2a`V9V5=ZeU2V+IO{ECz8uQuWtx{|JGxBRVLN)v zdW<#BAhz*Y0vlBu@k`OyC}MHzO#*$5gqMgq-al`!YiW-R(q{^dFEHwH-weAfUosK6 z`}0Jx-$(@fdLn?kn2C6Y_N-sm4rRWiOnaB)!DdlOpU*YT8tmS(*P!2J+Gc@rz&jlV z%_$uUY!!0CS6S~pgR|-eJNIzMlGQX8(>iWR`hI;&GO4~(9rEL2d{T)~3YmEl`=%!B zYbxZqa0X*!FJa8{#n@}ro{c-HYB~=Vu&uDX6MXx4cgC-1YA(l%Un2gc;ydB_YsaO$ z`Q_7rOkP%d*E}QRXy(znaMFJBjMP28`LTTGAiWdeal4;mX(H{{&q(YDrehsGvnR?D zxc7?CdH+vE8~=E|JM%-_vlty>#7S;mgJ)i%@jBf2@t2v#Jhy#|!i|3{b|3>A$jK{v z@!0ARw~WT-g0=%0;NlOU-w(gE(H=(s>3p=uKjF2nc%sfehyMHD7y#beuHIO0R|jc5 zCFhGXD1Fw42Qwp$H+Zk~(cToHJqUI<1C-6#MVj{dNb?Q0^~;VyFpO<0b_zrNM*pwg z+MRLU|D5M0kzVz*q)+@_ZMKNAYXxuC=h=dV0x$Ok)^( zWQ#R1xQO-OrH@NnwM(WYitoNYR+JM77Q^=g{OD>|iBM$}9KP^yX7zNBh~4L59UJAf zz=NWU!4(G?Uk&wcCR+H5y2tuCwYiq+^8jCv+E$?K>rQ`0$y8hA9`Q%j$9tZJy_w95 zy=ZVm_P3n!`y(@$7AHq(&j+?0%~R3Ipye@4TZ1FBit-}2>)01Pk=f!uAIY*|yMs81 z`Kr!Cugdhrs?O_Fos5~P>OKCnr2&G|MRzjjFT7RT#;+w|2OXroJ!oHvc_Er{ z*3c}DF&P0)Q90sL-n>!9rEFrI;u1c4D%5=>?sX8)5_%B4e~@j{-siQR$7hh#k!0^@ zjoM6WvOd$g(3X0#-~RT*Ik}m}WX%rN5CepK*EpU5HbXu%pQq(KJl62dn<$ZfBC(OG?8jH+_o7o|P!BFq%s- zE~nGDe8b*ly+X3ZKpL;Nl#TLKebMuD)~%;+0Xe7ue1$IKs_RBO&dfCNyhA+UCMsu^ zm_@uB=MCRQvV99ZA7f*`*p7QZjt4P@@3E(;wguRq!C8~z?Ah*K-?2uwR<0Y1h2s}f zo_t5NCO7UaPi_(=YA;wyG8yhNYZ0@C@?HPi6KOn8(fDynFG&I;twPE!R1d8myDsGy zvtaWCc}mI08tbH+ty{-=id)|Q<|zgwt|3+Veb-gD&n8zub&0ukbIkPlM^_)Uw?j?E~O5e{> z+2bH%QCSVD?XVw2**P`MX{;$;Uza89*{TlUmQB*(|Alt6GwyUwcr%?Jn}tRne;DoB zEOcXmIMs*P51Xmn&0=ij-o1tg{O)FvOKH{g+?U+UdB&FP-CIa$`Sh$n-z;tbMlZGR z&omxS)Aua2Q?+kwYNzm{?;{w~%N|ebq5o&i>Eq{XwmBl)f!Z;iIw$oRvr2@5gU>&_o>j&>`Q|}!-F6ZgykL5gJy=oGpubk(C_0#iv<{a}e z@;oj~hrb0q)Tckl4g_%>?OY5$mRoo>l_{QFnk zS5jGVnmeE3m(hl+Hg{)sekITBv(@~A*9c-g81ig8m2u2v{llq@?6Vv)x%2D*VhrVT zysBZYUnGWp(^-ASNxf%vo;gd;gI|lO&TBe{`t4SCzh8A1%;Wgfi$zZ4M=7k;c_f>{ zM$JWS`bg~}z;ycCt;m<$O{7q?`FD^5h&Tnf@=Us9{Gzmof$#H&vE+Q2K~UR#QVJ}yvbKZ4(0JvdY<;G7=V2xDdYBF?s*=w z&I8QfDXI@IeRBOdOFF36!vdwCGO*h;cr1^fqz|1wf+e|YHjLnr2=`d^@YW_Z4+ z4pMpHm7*$2-=Xo5+Et+{}lUviG*o#hK{HC^4^0p^ax#4gMJkDLz z?p@leX;=OYxPu?&Ix{g;%4MOHSKpZ8F-g9iqJ868#&wP+(jj`MhWLpQ=6vhum9P(8 z!m-)kIp^@#+BpmTp}OHGV^TW<)d~A3wXrI?lG?kH+D~nVe!vLYWvP|I(8pPb3v6h2 zTHifCk@lw&V=Bz%bcHdK_QdzZt;3qf7_6sgvdf4@>b_ERodUM_H`Ddf_a#kS+=s4z zg!>ikZNBToSw1+0dl}uTlo&+C8qpl~)iRy((C=LOc(i~GTFfEZbkoO^dKGKR9n}-X zE~4AD$v;valJ9lezf<&`#2w&Fq3bh6Ns7LctpfVzGJ0M{&noDdp~JrVT~SH>x#24r z6U|4mVl;9hjiW!;6VLNQ)gP}zl)EHc+U`}gU0o|<}~k%#IuyUwAWqw z5VpBTyIs1g2xCz~^Q6;RlgB#T%PlwYB14Ej8AJSu(FIwOcpTzca&+)73&p9lj>mfT z?j6#l_#8_2(DPi%_xEGH`|yP0z5DR^<7yv{WbMO|ukXW~XdPFpK5jeKU4AX~jrsX7 z@m$8+_E_pyj_$JVi+}#f2Xv^H}09X+Xd>|^x%amGk0wwqOab?_{g)XMjA%pkw}t7G!~ z#k%N`n^L`UQ;w3GX3$u_t=e=SwMk31i+UPgjQMqj8h6^O#_W{5-K1lZ#|o%@cIuZ> z7B-(cQTB+0TXv?9_N82(4xgCw4YI*`|B_{mq55xEybShf#mn@ZS9l-m`AOB@QO6|D zkFyv$joUdE_Dh%nI&^U z*Q)S}UL<;qvk!U5_8E&geive}VjgN~o*RhIyPn#x`{9sp*$=(6AL2d+&rIImd!OfFZu`{p5Y+=)ksE)O+N)xdm&1ST*q7a`3;6L# z2Q&D-b|qx-r9H8E&qJ)$$ZXbA+^+ImNqG)Z`*P0rGCxS?piML-KBct$vn7v+_JL2_ zgS1N%C*=D(rQ!caUwhUhc72KYy$N`~Y%gkU>dvg}mi^4`qnqA&^Ghi|R4TnJ?w54F z^LRyEIq*p4VWN$}kO_%L@X-8WTs-vNU%poFOtBti5naQs`Lq?xL!`a&psnjsJFdSX z-ug=3X+>8)pKM#HFnWOpU`}UjUJrfyjQJef4R)Z+M@1yIvRm?L>7ok}6Cz|0FA>1l zI#{E?SM`VHTRuA9b`y^dA926p(fh;xJUj!oQ}!3PKf?I0SZ_bR)yFixE>u`Na7=wM zVyVI}3%In0q8;K8l>=PQ2_&oQ;bswnPv`Vzfil}K@rs3)9Le}qOw%XN9c6v+fRF#X z%H(>2zaMPwfRR6OrZ3}zzNkdf6L4Beh^D4f89rUc&8;Mvtb}B;X-K2Io>HkVK)rR8 z_d%8Z+QqWn9^RKFmc`h!yPdRx6$PbYHs#@cT8$6-#Xj=bi*c8#FQ89MNc~JqtT@Xn zo*^1ZJ~?oshvTbDI~8CoAI*vlBXKyWPr!}{VlNt>_P}O=+Hx6eE`x17X&1Ac>pnbcF$~R3eTTJTYGDUBY$Ms`-c3M-x81qw~Af^G) zu#B0tl<&NtGpu%OAgjELXTM)zku`dy%@OP$X8t^ofqmnc|2dGEyt{hiD%yj90U$BR zq)jdKBoSjV+bw93g*|qcr!#I|FV6nLi{zac=yV|Nzf?Rz*uENO@z>&6)R>a?q9G~2 z!#CYv-nsYQ`e^he-zwGK#-BrHu5gKft#qa=TQ`bj`7~}t-)$})``u>uUf6M{_pbYS zFP;(nUSLb%v^k<=2KZLqq1x|K*hKKd*{aI8?B^2u$nniV87cLQ%LulL8p?xmOckhROQNc0+-cw1E|fFw5DO3y{lOIu>rFY>k@u!SetcJ z9x%uu2N~BiF^{Nxfb7o>A7EdyxGTmu>+q?Xa87^TpLSo`pZBP{K95YiFm#mD*0v>QC|8H&Ys(A?*!H+g;Y*9-o!A zh0@xIUuqaA_qZ|i>|dUPnHZ%_QfaqS+968YLG5bXPieF#fANOTzJ>N;Uv#$RiN{1m zXtw2x#zaFNwS~rKVv%gqwsQ-4Ji0C@muxzW@)LIm=}pzWl8E| zDrQw^G0~QcSv9)Ec!Td6?C;>ewyiTp`+E$wXc#Lol|EFam=)(TMKsD~iFky|601{O zmT0HX&(D;0+R%%}U2VeqsnpLcD3KUXjy?7?nsX=axBnJ8&*=Po_oRPGn|SzsdAw{_ z0^2cKG;tU0V(2OB#Z%f67> zlOz4SmH~VI`Vxsbe=U92(D;l9v>}cxhnb>|=ji9~*QaxMrWiqM?J63d zLnD3m^8TYN=}$rF!=yjO$TNE59yGA5xwyyw$ff2P{M$Pxj~83c952>iJYKAFb%gJR~Qm{6D31#CO|6YwZwy zj?pLhn}Hjr(x>*<5(6@Oy|ono|7X43ujb)C`fj7|cKyWlc2BWfZ$B>nU)EbRE|ypI zuD2-B!xUO?zO418Dc|5zXx+g#OVirL@G8lt-3eT+h_iNJ3pMkE7$XhevUdDMy?%06 z@!EM%t(_U7JscAx56nSqjrQUB$`@${`)OhAL{9HrI~-GxXv|qVK6-DOv4dlRAil?F z_^l|q_CC;y^HoG^;!#?c{~a+(G@jnOj!tpPGg>(&!9_II$m^lDSd@3n>AmZQ@|B(k z*)eM^^zXAa3g~~kF4qQlB+S!8Dh4sfWMg`7;yAx(m$U9Z?d~r4lE!GSvTe#$SZ&#B zsNF=I*xoht=9EAN@lzYJXngCG-t|z+__#8C6QxHrN#o#QwieNN(RsW5vOL_O*tU#~ zvH)ZGJ1TP((Q+q!MiV`!=o|bT@an5&Y$%SAQB?%J^w{*d3a=h}V$+a2QY6dUIm4S% zbz^Bv6_)MT#{!u;;LVMceqgY@Z&#SCNs`IB=mUGB@HhEGg(a4G7(8F7nPVJ$Q=TH& zU{D_a*#l$@aLPNmu1Gwx=m2A3)Eg}pd|1I7T=dC-9-L6bW1XsK26~R4(^wtpmN8kk zs&vTs6KM`3^sJ8B%58}>^V$kidRtaL>=k#Zd_rMBhFv*5<=;lnVAt3{W6LoB42i4i z;Osi%dbJwYpfj#vHLh3CxDx*Z`Z$)LdK9)l{&&$hPXyjjmJifK*7r8kd3j=b*pzqt zc(y+w@#o>6jrYeyy15+qXkSOa@h*I{uc6<*a4)vzYN~IvlKtUBaY@k;8rM+Tuj~yV z&oVxgvOy#IV?X8gY(M48rJwRJabW*w<(s??eKJxkLu=RlhvhjVYaH=TzbP^fL0wjw zkJ2X6xVntXEygS*zP%Rq)U>uul8Il$Sxa)P=_5WpIA8dGIe_Ebg8$+;qO@<-L}YA3 z?Q`&Zq4Z==o_GRwCu2KA=W8B&-E(yQ{6e#bZmhTGK03;}nRse%T-qvmAS2NG6JFQs zn~C2|Jv6|^^TLqCim0MI)%1MosU0FxCi!LDWyT5*W~zp_GbWdjgx?1AYRwknuo~J5 zF}O2jR}G&f*6UL4fUe0;yl)B7fj>207{veTRBkoWs1C&MErX64v_<_Zp#F`ZXCcbh zsL`Cl2R*WqF{?tr+oe6-PyZW|_>KvkKPyEwwT0>sW%Mbb|G?4khgvLy{#Wv6rJ!;} z73WzgYUy`1{Wc>=TPY?`c|rOO%$W+}#cSwOPoIkLeBoY8vIPBJ^&PKWOyjVwu)jT- zc=%bTYAh2R9j392zk=uvegyT@_EoeGS7@`X2$dU&&$j59NYJOj$QKiW`66WIGrfVv zM+!rW*{nL_vNuLgbW8%!&^9{T?#%?F&gI`sx;>D|m zFA*`HTJ!X7C()tHywa)~K2!YY{y+xLHHB$kmm}?G;pb3wYP;y!M^y}*wK=WM`BDB* zfOu&d^U0nH@u@h#GQLyi{q*dh!gJs4;IykYeE)u_5BQtHMb}iiX{;1i-Y;=%;8Pj= zsCwg}-$)rDO6z0_eNLgh0A~Q&72Oz4p>2NJXBfYo=o$NXP7pB_v^k?$uhT02Q~w`c z8+n>`3DVeBgX8zM3g8ZJssGP@)CuhN0`)C*0%I5>6f(IUj`G>?Mu&U;|Jou2bw<}S;9N;~h6AIIm+VRA}g8e3yT}}H9{DhIm zLwgeP;e4o}XD0lisk|DN5mnrDdiURtcJGf7|GA3B68QGK$NWsjg#PT;3J+TK2eDK9 zsy|DpKhuUuJdG&$SFOPYZA_!~hJeXw-kFLHlUPi^!i7F5gnJKaBkXs9x9ith_Mv^i zGoGN@*Qn0RYp9JV*BPHRYJBo(d^%md_{Ec`ym)c3fbSV}3fOBgH}Ba8_5*L4W4W}# zc4mz2V6Ft%PIC;~BRV{cgRzpMVlQ}7EBDL=P7R$UxECQFtlWtOH1RYUYrAj$KPrr_ zZ9WIfdcIgmV+q_K_}yw9z^ER}dKTbIb8PaE#NGvdrq{f}f(6iMLlq<2s&kNp4^)P=6=wp=ONzGvI4- zT8E71%(y6e?^%I6ile_)&%oarF)?pwosR6f&I|` z-*+Bp;v}Yp@%91sYjWsiYh^KPGZBCLX{;$=qE4XxExdSWs;jP;?+tL@v{%`7|LwSp zb!Nkl17~x-!vCOo{aD#~zwxNFTTRgSQz~r>{eA+mF*%;L_k_3^Wj_mWT*w-g?!nZ{KmdEW{c=KkJYeqX{=6Rx&ww8;xGYo2Ky16 zsaBlmW>q}KIOkZ)^XNY?QNT~#iDyI)Wt}mW|7w-L%y&B^J~{5l>pNr~#7n7Ev0j4g zKPPGERN4c=+VXGYkH;_%P5lmnhyLa~@X4KMEbrMv7;7om#Pou_=F(=BmO$=@!qi6>a8?3_t3SIK2fE=#rS~4H`0F9Mjz~% z*ekKu&!W!?`XuPHiax99vxYv{+u-|ydgHX`p>C3|EYy#)ay9+`!QhznTl&9-)@moM zgY%9`+66Z9Z?zrbR(gJxN`vn;#`w3uFw3IR`|gvnRTuO8%f%{6kE?UxZhE#JScR0n zozkbO^ojSu7kzmT1_Ap=)3cZ=v++K8Hva)}%(CeI22~f@P@To&_9yzkUOjtU$resr z7RVN(=~+AWW?Bcp`*-+Xe=?qyu_NY-N|)T@U0SG>&aPHhFws2N1-_V`70CJ>8$CLXJ|v-tK^vn>nS^Vdy}|#WRtahOp~b8nye|QCh@bs zG+D7^lW0gaS!)ALqBh=SbxMOnx=@p~0pFW78$Nqm zi*xKM`c4eXA)4MKiu--v@>6?s`jpUTqR}Kq(02`eLiE}CY?IjbEY~A~ajr*1qFj%N zMz|hfhPfW%i<<=6UQh4cOuQ_$QB0tZFO^{I&@iPp(#N2*uF3+js;)pJy9&gHk^-@Y z#%QknWd?jd@XmmDSd*A9oR}XKujkspMNE`Y|8o&>G?s3_b@Lzx|PS0z$<=E%k zUT<%^B!|Zld8(5#_O?mS!y^Z>d;yy<%+u2tAw6PKhgdr#D*T;`_LkAJF8b|DMnxt4-a)^U8>1v6trUCc_jdXX`D1%L zDpK^@Pru8EM)%S0&*)=fyv(FHM8EfJ>|pF8ojxV>S@&2}Y@pB9=~1zbKD+LVirw^? zs71kB?e&lhqtpA;PMW8vm}F2pQY#soAVlv|-^FP9)YI=UeYSN*i5H8Kd=nKx`b?($ z5&BHgqhd9%p%aKd?PXgVj)4^D)&C!&^^&dsuO0Sv83W_ELA^6f&%fk zF!x85%z-tAdH-G{kU<{*HMCAIueVj)oDaG@y}nv^&{{0+S7*72-arqUUl?e`j2u)GicocQutJu%I*c)|hdY{nV(%nFHx4w;(ociFEtCLTCX z^3OQ?3epEoh^unYF{M z7cas)t7uG)(U|;yJ11AEIdS)ylV4=b$&;xQ=fwLBa}uNa{RtJ9G6>w+xbP1eU>mOO zf^mSUf6=7WyKA9&spu=#y-k)!Ow=^1< zp2`I#Lv*1CuL=P3U=Fa_Paco)FGajol1WSLbCeI%VCck#0jDux*Q+tF(3;tP$V2}_ z8{0$$?K!5_E;QQz&p(nY{kiEm(!l#7o#_)a-Cy-fKfRw7-yUtP0FYRKE}L(u0itFZEV9U?|@!E zRoP9KbEg1 z!)B?C)BdaM0-@t>Q+kGpdJfwf0xyH{38-B?xCFFEO?&IhOwT*OPw;qcj6q%&7SI#r&_lQh7YBAYh{d<;VN#=rSNr(w^&s)myjc`p}A!K82AuI zi@^Lv7@u#Em_Yx5G3lC@D9)LdDAuFFVj~hP#=Rqak=$%Q*vc518u5Nwv{`r}&9pz% zh~N079o3WcU8Q2&!Uq%Q9O`W(`hkpmWV!Nd)myAN{v)i{g8mwGlgy$U(6U22XQU47 zACW~fc=qFa1GJ8$Ulz5;&M{KyF{A&J`Ao&ua_9(oZ>7AW6TLB@+O+rydI9IYNa9;J zi5SuH-S>27rs+G_t_X2=I&i-B=(j_RJ8Z(Hl4$ZBJ_{~qnQ$xois#Z9Ii2{yDDjo& zPhdJ-1H9{CECn9W8;YeoL{s3myhJ-y#Ag{HUUmyVeP3Y zoyy#hl)QUrp2Yiu4hMYUu2%}|=P4cgVj1OwU1~*gKKp0YP+N-=B>ThPg3^F}n@ju5 zgzyXt7_`7m(J4Q8)+>o$1>ajq`{3Yc%05~k_2A$W*yn)gZE7-R#b|#U2VD;Fa#fu% zj=MIEKJeL`l!}Qdu=#-QI203=@%iG8-yg^@A4>9KlAcW=`EeUP-%jNKBNFA(GsYL( zif^i`EfEt9^d9)=B)zwX(rX8K?YtrLQhs_5>&X?FX-zt=?QGAa5!dQdNpQYEF;Q2pkB{&pRGuh9Fk4t!drW*amHN6*(t&X0)^NvR7Ttx204 z=*L5JE>d4bbtgY3ULE(TF;TBU=XYb;1)CdV2Js@mkDoy_)<$zXLzK~Pk|8fKqboTs zF3oW%{Vvs#TT3M`*sJfZ33T-Eo;W*x|C2xlJUeh~AhWO?KzJqNdFR5Gm-uVUqeok^ z$KgFU7ar!lWn$_}e%G&!Pb2jrECI{1-<;| z1C)+;HqbNZq*fL5#^JkHJ$qi+AAX^pVLX0B&mhkmA6IW&NBn7+*15y)V4s9ez5cdh z=06yZ`B$9eJNv20RL>-vQ2h=&=qF zDfZj903WQCzT@=$Xg~WF+9$fE(RYN_zz>MtL-qFL13vqvRJ}druemJiww>FbX?)+s z{rP;yxn8DA`>vXhjA39#<^2=xp(Z7H4GUmc;?618kTzT-BfEwwJ6?wus?ZjT=M8BS zw0hR4C%1in$&;J9yPsY~^Vy|n#>d#*iS$1v2Qtw0)cR%m!O7Cb6nf7Ig}rmXZ?dGX zs7l*I|I_M@KB3ZZm-6vsDIehsDf9Qz+^)$oo+V`ZBQ)P>r8hs6RmWTEU1RmYjcbXv z+UYYZ(HrB@xkt{4AdX)meIxe&LRw!$Q!ZCD6%FdlZvz{9n$nBky%cvaQr8XrcvS9n z?s_xkr7>^^jhL6tBX=GB&oL9lqv<;siIvjxQqZtTWkthnjD1tW@f2?0IL8{zQGAHv z(axuD*cn6;_9R2vY)>X0rh(>eAkj>SzOf#0H^H$n>HPce83%h~wS7ZbTn3dDf!!_2 z2ont`8OJSSMA)Bl8Pd+etKyD=HW3qA+T_ae8HWg16f_pl#Z6Q5a{uIBn+nK3VU_-q ztn`vTu`}<=de-I4jl(C=oLtv84ri#Cd88{9j}#@|3w#n}rn7lG**2wIlW{O?*z%yf zX~ai8YISEq#LIxEX`t^T?L)67Bhu>4O-FQ;6UC|CN_&D3H9=So)rl#Y^R@ zdxoc$Dhw6kZPr@d`=?0kVjH{=+K6$^ZsT9G+KBc==(AJpv)c=EdibQ0$pLxq@9*WE z222i|5UUhv1(dccYYpV~rFmT!b=0rX=5&Gk&c3lu|9ekh|DnW*_81YzHmg+HV^py| zhGTUXOs07NZ)=Qd<+XH%jA< zh@~)zKI3RCfitgjywQZ6*)8Q<$Q_etJR8o=XB$~6m-oaP+IyWf@Tt|6?ci8+~*3kOjksq$)0G6~?Fqe8(u`{5Ei0XeSOdMLwG{;>PNey5B&Dx*Cj%Q&cPKzjIS$~*6# zuiJpkq%`9(X@}>zhR$6&BS()c;X9RqY7QrbI>clx;hvo2SPFsoI73@8&d^I}ucJ@# z1d@l^&N-67dy~;F-EC94P5Dy0bodHItpVrC=ir}5kMs!G^I;!YrDzq{0kF%vliE|0 zs@^!_F?lytGPfV|;>@?35sU3!UqMWu#QClSc<}kcpNyu!6N4YGNzP~esF(OGs%taj zo4^-B2M;wSO=tX&TZl(T-m%}EWlhFC6!GQNw4XbA`JB!~+7J7btpk`(cZ0X4{}ca8 z{CZNxumZpC+vw&0@TnfHe#2%Zwng&y;N9C_k-s5pz~%+aQuom-$NH4bo19)spj{h5Hy_K(QjdR=O9pngl2mS)MUqxQ< zzw;=siW{3gM$a2)znP@=o1<60w6FEU1H7*|dkE4Vyj$)o&VGrs`zUSNV^Z(acf6dv zGJDK^nKfoV1MMoF*yMA49B{b{a+L3^?^|%-BU$#Q&e-+Mb1!_DX>T<{uw96;&+We# z!w$jG9VKjxRWd8a&o27>X^9-O4CUPrk~V}p)LHcZq3-X)qpGeyaP&-Ok_=%WGbF)? zQ6?HSVvrLE8f}zOP^qReK+vdB2Stl5)u7bUmX;xzgaAPU2`?&?vC`IB+D1jC6zw2U zsbY%?N)>hH95%rW5wH|gklgiId!Ni9MZf*s=id7~_mA_;oc(t8`(A79wLWVb{ceZP zAJt#gs=vm6D9<9uhjbbjlnb8jgXOsAO!*kb{{Dn2|6PikrsDXXnBpE=k;3tADb5ki zKA@p?ce&_DZbUHzO~^L-egp1|JqjQGeTsAU z!Lhf}w)HvJ#{Iu>u6=yr(d0OFuI2ms^`2|*sdMe-5*d%ZeB8I3Yk$1g*HvYdY<`OB zq~)v;?xHNyr|c8kz}xCeMX|QnD4=scq`1Zfiw|6aF!{GzyJAO^ZZ5^~m+(Kb5 zQapZLw^I9v7j;pZB1&V?%FuxYCV_P~3O{oBAv%W`2YRwOht>#e6RBJSwuwI+b~K51 z@T+)7_&vkmJ345<7u{^wp{l$tmA6Rct)XupvCO3zS@G@Odhw9=z}~F(1@T$lEyAlW5(B(% z3g{nQ^YY0@m6kiTQkT_m#nk9NBBs|@IYI1jB^;it2B>%VV} z#p#(%&sy~#PZK@OSL9LoZ}QkSUy&{%^bQ@+!2Rj$&z|+_DEw*Yq0_g4HGXGLPqK;9 z1@2GfZK5>L+X5!~o>7B(!}p9zV;b~0&6mmna=x5H^EogkSNhqc`tJ%!zi(dHheF*M7YE>NSg6|xn_-Tp;EmCpt z8=ItXU{F1OUw5*6cgg0h{fBRM(QgN>iyaotck2MQ3#+lwd=;;=F4rhMNb@@wj>8wB zMc-9=7mFZhFp8_9-x%Y6)&N_lu$kzEppCXWeurj)PMAZq+^s=cpTu7>O-E;7Ipu%q zHqER+8EaKDW{;&G zN-lG!$8kpi{w|!hMpVZdj9yHtmT(+8BjEFX$QU_`#oA{b<}K}&<~p-G8H8`9bpwHk zlNbu@*Z92nnZvI%(t~wz;2f4vy_)^=ja+JfO>n;9rT2Ua&!;_P4!uKvrJUm7e>LEh z{w`dxhmB${&XO8Om7Pqbye zSXnz?Jk>s5v_~oZPl!+VK1_Ujv&d~}76pN3arA>@$?-v~i7AOjqE~~oj%(Cf*lwd& zai{p5=@NJMR@$$0%464SuDE2GSgUB)ic1=VPH7PqRP<&Z&BZzT8XY1yriuhBWA z{rdUX{!`Frpv`JdmpuGA>YOZuZlmJiL*JD={Mo!eL=5bM=#SsD`I5jN>ll{B{B}{< zz}`E?aWQEFVe#FdIj0d15rX`Qo;#QMlGSvEZ`b0Tu!n%Yv!CdwB1K0X*_EMCjBG z)Vs{0m+9PpeODiPnZlm_zVD%EMsIen!7mY2gDj^{FN z!D_}Y$faN4d|G=VFmwxOe@7eBg3-d8Y3?EIa^iV$H`V^A%UoJ|cKn^UGUXC}s6h15-HLHk5jumE`MM{3sc15-spfu&)h+*MeP z8)@%=e`u`L5}O@z&83pRg)gQIoBj{_>U^53h{xDKKO6k5pZHtgIlw-q8hb8hyRlI&==ErgR+WLS>SIm2Wl>861WQ*Z`;eZ50`$*QNN7u z%RAlkC_nrxVGnq_4=5kvyOTMmrsE(((T0@VU`oq$3&>ZzG)12OA#Iw~?o_fd* z`|``xHvZ3hS*yssPSPLWwe!p&T6>|WbByAdf7Q^3XZC~EUz*~XLw$H=TfCiT_J-6w zG0g?YcA+aVo_J`?Q}D$bXq`XUD*0&e&)@+q9-8(k?pGa!Gq%&$0FOgNoN4PxYCuct-3Wz^Tz&|C@I_+A7<9LF<3>jt5&)eBdnN z9czgfgpbb3Q}C(Z#KT{%c=&IM1Mi;6x*`$brtfVJrtJB)tGcDp@3uZX`rljSIMk|f znEJlt&2i^&Wa-K6Wcvpyf0HWjv!(yt*5_4QF&EI@In>_S-_qWXs0`O78GIgEcQLT{ zgI&e1Tctj<#rIBEe6Rl=UvC|&`tZG{-*ald7io)ab0+(q)ZL2LHgEdb!rS|tJ7u z$39cLQE2TFNA#^Yoh@g}^Qgb=Jo3}oGK0nzcYzvwm(t#!+fFnLJ>%P@&ED7l?q)nH zoJTl^*2W}8Pk%a(a9)5%oI~f!EINalX|6^(8&=I zrKbgFm>w}Gub52_op%Q17ftj8sT}&2cq%6K9$+&Ko8f9ozlzES7OJ}?Obiq&h3i~%*Po-JMVp8(u)r`Po|xHR6mqeqRPVgh;l(Udp9-- zoP7nhGcRzrq?zBM@ZGdVaPIA)->quBXrYM){11UghRuvi$~LkrdCa~sQa9ix3fmB- zeUaAIjN)p>cY@AT0iER$-x_ht5NS7mJ#g^1R*RUwpEL9&6v`4(A2!X3iC3)ocP~%`n{|q8$zTr8(-o*JXzPkta&Rv_^(>BnDI2F33`1tBg6G7U76RbJj84M0^_Y zCtEjXm^HNa=4kS~s-d{!Kh;doW6d)XU2!si+@ie+KAG4R2s)A(sWIOt}xN)iuTbcZqJZ>-Mm_6B{%6=0@%9^A#9?|6pQq9>zHZNm%_n^e^bURR?O|Kg_a;I>Gyl@1cFbBV2*idu0B&c}(@wmu%NIiE(!nJvPMp z?m=qb7sISJrs_xWPI}LwG|pW^>eF`*t54^+KK)bBzg3(nJpUWQ4-eUL%JBcFaETWZ zG|GveETOTg_)`}9j>G@A9Y@&@jKq`gAbK0}ybh5@kCUFDcbVv?V}8=!Nx%K+aZ@_j zq?XX$1RB7?B!LcLlYhI&)usP+=t(=-roWZazRP&T;3HQ-@0I8-_Bn=cd*wIrZG4yg zVA8MVO?@BVF7eJYP!D?@tnWKC*&go;S@LXyU%DRY6X?&MWbq!0bga8i@B0)V)^D1x zH;&s7ka#O7>+9#USPuwgL5CLMt0-@}N)NpZ%pLSQctgyeKR!(7+$7@PYMbKlkyTMU z-$)NO#j!v9s)fGw9pZ~|7uh0tJm94{)A_QFG7m5% z0XZ3Tb&n`LUC`msWthCg*Two6S|5FkXuWWS>%}35v;${anD*;p#zUg{qV&N~XVl$Z zZwVohbK3?`$Jc(ttPVUQ^1oXPTQ1!iFNeW*D z@!(4^_i)E5ar+vDe~F~&kS0UXa$Ildujp?p9k{neF1}S(Py6OlQRtaW=kwbMS8%y_ z*8g_mh1$2F=bq*8Wts4|M)NT1_JH&y?pC;$mY>Ba`*WL|VEjo9ew!B?>wBb**CF_) zf)7yE%UC9c_Z&&WNA&)Y>C87H9KNaB6=n|WX*a ztnYn5|54Ve(dlLlm6aKgWkCmP2rzr0S4Hu_0$ibQ?i`}ODuCZ)`A_V{2c-GFmG*n! zRk_Ym{x{i=NZ82hIF_`x8T$k8i@q@1>^o?mu=I&{(4HmxR_nSJZJ~ZZ-kInNZ;=0E z98nhV`m8N5^{VWVIGfh^xYYQ( zdg4ejm(F#(TmH$BC&xB6g2$#hLA>g_j&O8KKQ%TV+rIT7@UBKWP3ZAqY=FCtvigq8 zN*Wh`2;mr;6{j4Vzth-&=kO0q>4GNj^d-08&g0i9JP=erm$Et&{W`!IJc z{e@?#jWhIIf%}=6M6X)9q5-8V3ca=Ifm|LFU_?Pz^r@GrkBFuk|0k@8h?p^2t}~W3 z6TK9C%xwlJeA|4d*;2YjRGgd6^!eIqn%6`lHSJGhI;&!{i)pRxIrK~GVcdf*GoNTH z$6uo6%`KI%8!&6am8?Gs8Vow2#Y9_yZ-tJi9+!I2;~)nE772ZGKll+UW5z3>pMoZE zu+C;1aEUd!hj@(LeyQ7y`L|DDFHo3>!#*LeC%MbZHgk#f1Jg~*25$PDzFzEB=$D>3 zxQFim3p8yb-r>tDP=2-8arxC^@L+{c`N&HfYPAD<%iULt*nq3WdU{}M@4C=o0#{); z(amW?qAY{(Lf`hHL1LP>Ui#+9+ydQqUoE}U-s@jJ&Sh?=uw z?o`;JkH~x7>VYXemGV1%y;!!MC!deC5bfwyXKAjsMnsE_!d4@p^bpw&;YakH!@Em1 zTXVSYT#l=`iE^r_jDJ2XZE~1yq4;7wM<`pxtTNzz(puc^-@^Tl@*jCb>Huz2^@KcV z;GH;E*7T-nq%_6E%lMy6t-t~SE_nK@6Y0Q@U7Wb|q^!-YgVCBOKn^fukUBLLa#Ebds1;TUHuUnn91KEZ@nz->1na{2E983Oz zxO%Hh#&4HCP>ZO45av-ff&)}J<5W4GQc6EQ6D#xTKI~Df(sZx&TwuP;wuyQpfmdzLXx&*#;_T)-+o?e?aZ5)T;#A751-zkK9DdIsQ1}fd73j{7OOw5WL#xNBsM#Z0XV` zTDEj~%aCshm5H{{95+8Z+>_j-bUQ1uQ&?k2cm33pv23rM>PzBI4ENBLPfDB`Yd)j@ zXX)Fi-}4v``Yh__?FzT%)5RyxUC{Tlh`vFaG}aM0H;!}_WAemowy|T|;jG_1Ecd*d zpTnNmM!bG%?o`m+SwrzLg*P*Y>czHs^#9R^<$S5I^Citw-R_c{XD`76`x6XMX{0!Cf5f<1=bI#5AhYkD?tc1D`|hzo7qN$f{Tu zHRXd6^sBYDthLw|BV#npo7o|(J(=&cKKVS~kZ)w4e9%Y0TC?s1aqoEWZOGarFEH_8 zDXWF8f>p=QVGF}HmMOeC>``xoe7*U`J}j|}+iZH%&|%n2X@HkK$0joXV?dn0h3@lT zDID?8i9-F?_OomsS_N!ko(rY+A8YTi(r&l#TPQ8`n4Yqw_1N|)x5R5q(0kqvW=*YXT$8X81EW)$~>;;KtHauzIUI6UC)oS9lRcK-cIe7cpZ?NAbe9^wuyWGV6mI; z`oLfPfYQvt{TZ;1_Gd8WjJ1y;Y);6>HW<5IX}xC)!XFBqyuTrAX6WSo4Pi4VthrBH zYHe-FS8dVzv<3R&eq~$J-&%JeWrwWx^gLU8+1G+p^Mvd>hc4G&K<%WY`` zl(vl0QkbZqCzt4+e)Qcag`Y#eYyDDIb8u`*M~>wrdJsBCiNJ_l#<^NDwlI$QSTWZ} zXO2&lKQd7~LVIC(C{N%X@^ZGh2*T%TmP^03SHJ2`VBeo!6B|FICblcTCbnMv$J0#z zE5cJmNr-(#L+8v~?#_s_ek$?d&lBHLG9g!NZ;7zo>*8i#(hHe9&MF#zgr$WVh)$3cpVF4dhAR4R(_n(<<%OD#+}_MOdkqgO5yF=)dtGG;y==^oc5Tk zD&HEh(xs&^oG9(@?x3?!%M;c6UK4 z{b~c}FUrYQ<fLJhz0~e;w)4yizl*{(Rqqhx1#ZuN zm8OQ?f2Hh$J5<;@df!E7cl(o4&jV{KHzu(pKr_zrZ|5@^Ypo!*O0ObhtIZ}4PH0TccpQ$^IOhrpt`1&69k0kXT zd>?1@>a5!G4%xwF=D@#gmP65!t5kjm`!2Z=ejtZ{HfUF8-NoCx*@hh0sVEbD>B^Dg zj5%>i9N5~RQKoQUtvtAg#P@5coHUxxJM<3m`5;-&d6c&18_I$I${JozGQUgZ{R?9_ zrON+gkhCAnVcGnRY_~J*8_FD@@MoyIEu21ejes5ubYP&L z*ZIpv!&N&UK0msE>*Cg`5{&WZUA_nO)$A)yW2^OY}iBAazC4sg0fY(RbOVxQ+Ej|9t#la@s)pet2!K52ga5pQb&WAy5Wn zvQ+*X7G@3fJ@=?}2>Rg{{H;9Up>LPi{HdreuLTw9ti(Wb7)!M z_dy4O*Wcjp&v#~HZ?9(^YUmL{-x<0&&_VPUPZlLKuUePW`ltLQf6Ec@M{R{wjLBi$ z@YTSs^<|i_)rC9}_mPi`I+~RGNtL+@{$N~d#HR~=N!;gpXy>x`w#&x_}_FBBys28%iHS?9k_lw<>M z=+*?rDL`Xa^0y4J!?{M_PI>tvUoxM*{nTdz%#KlOMDd#r6S82}hykp(Im78N^Zkp& z!9s}@7Rq<9OsK{WJ>W$|Q!f%fzoOo#!Pr7)i`rQmTEsfdv%+tR_2ET^7FZ;rfkj3^ ze35u6zQ`z!EfSz9wo$nq{zZnaEfSl&i$s6+JG)414{>_2mLA-3Qy#I7o_5L?qld~A z8^WAdY^5jZReox5)?RVCaIoBca<6=0f*R|egz1b1KciJAntOUK%Ow8hF_v52YR<)7 zN1E)DiHm&66b8iNUcav&?2_we7uEOYu+gUUk?11hrx-t)7fs$pMuh5IR@5q*f{R2m z)vYYIp2rpU2v1;6Q(qToOT~|Uvd+W@Zk(fkD6BaLc@*=2m}l;*#J21$VmkYQmHEE! zvvAR+&X}bmgM7QPUlIB4v7&~)v)(rEJ|CHyb9dqnf!YmwW||LO_>Z`4L{GTWGJ1KF zw%g=hSY+vOD_jEW9s6qNihknbe@i;2hWfr~;OV>{}SFXV3blU&YAXh$0ZOEcFg8pha zEXypUG6Q2y=Q2N`GBuP5T}-DljyunEDlZehj=f>6g!VA2Jjhj1-aF8#k4jvH4VuJ@ zfPL*hXl!9$_X22zT8U43KkdsNg~8BH;m|RNsD1RB+u&!1_B-`{6}{uk0WJsHR@+C8 zfIIL(R8IMA@;j?=F41^&sQefoq|qrpH?)wyKS6zeiPEbJskG-)nkCAY&hhBr&HHIz zge=0n_W4-B+LU}wb4ZL~+%eSLAZ^ki@9`+U=+y<7&+<-bc40*FN7S#y>Ml+5FXerc z?E-CllOJ+K%2)1}G|1U}CQagSP0=kb)~A;|5bh|z%lvpD(P@gedVu=73iP+ecYA!U z)hNtL@Lf+%koS?RsE&+HMgO0nFx;Qq^UEH_kB4qzwVKPIX%jUP3qS{M426Scx8gpa zxDQl6me}%Gb$h4A*QKwO`fw$RU+%c9wHISL7I>HY4>Sn+3v%BW@m){Q6QyVV_43XW zJnOHN4&Da!9fWPHk-Xi0TiEjyHh!(NH=0dzaq0pkw+)^ww}sqfyZS!u2SX}>&#Yv) zxN{h~P~FQ?nR8Y9?Xuj*sqOic2WgQeXQ8Z1kyF;?KahI?^9^(7LI-2)K_;$k#$85T z96A6s#Ba{IvQ@Z=C)B*)H*?KRzIx&DN}f~8OE)tH)EmH{7)tZJiQ?v5SuetldRjB} zqS*(Y)5kn#l~*%QADBwJlF~L)+7?RJM$al++Fb={<`7DIi%R@@^^?J@zbA^ZNUg1rX{IXZ^%ifdu<-5kz8=$$W zuSo0FZ?M+btPzuWjZm1c<|2ukw#m0t0P~slE$1d*U3wLTTlQ5=IXPm&TiuK+WbK=v zV=zuZB?s?OGL5534ql^V8r@jCN)G;BlUzR<>k&^j;qxO`@dTH#9iyDP5Am9m|G{f# zD&BReTKnEUa_lnYTO&i2XT@80TG+Fp7oB?wS$cV&yzW!vEmv~z-=hA0tNxQ%9)LV9 z|5Zdw^ZR4m2Bn9~b>a7VQN?n8DIYCR^zfp6Qg*Z6hEraoaExzS;Oh!f9_7y@D_7mS zvtElHr!%;Y@5l4;OX+|uGh68ZVK3ZN3fzs!(1&r(9&>d%a87``Yhmx=Ud1XOX=YIx zmid=Pc-%FG)pZxJeZ3MV9P{9%#ZPtSL0 zOrkbfpEWN>-|FjXvdR0b@DUVVYs2LJ9DF>zuXCo(t@Cd6CC4d@?`B)L|5mxKKUC+y zbQL#5h3{1SR=}1gN5#SZrSkX$|ob8NI&Lth_GD8}aTSz9?e+ z9dsXjrYW6=wQEzpnjjNDsJ;n)^T;i}I^&Pu z>q+Kn%Y=j15$o2Qv&W3%ysamCx_b9}n_dC%i4Jo6CK`|rI2}^IO{00>3bu)N;n&y; z+tG=pjh+I%CbnsKO{|@Mizpm@xBiIKCBgrXk4TyqauU$4 zUaC{<7ReXvQ#K10y)wjyyURL(`)go8Ll)@q0>7TtM*miEd|0a(Xj@Xahy0U+AKjqg3weq?5q_RB;dgmE~zBs~bVMkVj zu*$Xih4auHx?Z)tiQ0bMEmA%TTV^-$<%3Eg%LTp?`g;n0vqcQ{!S)-tIKZ3+#$_Y- zx!X^5@X|T%Px+)9=+jJxHvk_iY!lxCqwCJ{C_$1?~Q%pFSW%#O!3=r$4z_YZhCa3qv8)P;rkuU zGx?spk?8dT;Zb)``x|^o*ck(dD>o?hHpkU=h^yN>L{%96YT!Fu?gufwpL1|&rE}Wo z*7WH_V`S{gNTx}QbLVM9SN5azeh#hm46WLnL-a57s6b;?*?gQ7f^Pl>%-cJFQ><)@ zyx)+9_=q81l?LU4#s>Zr=varMWAErg$DZ*79CA%V+g*3wN!Oc2J4goH=vsOu0oHnubzNEV%$vq$o>?SPV5Zox0{AWj9U7g zMbF|-Bwqk|#Le0cG5D;A(WJuKm0y*Znh&@G*k0{RzN!3LT6Ec))hV4VuYVce$&Xj| zRvi@QR@lFwK{xgBC&Bmsw)}3&kNbbi-_iPNiDg-dd8hPtrA{dAlhhZH+BQ1lpx1np zsfCwA-_=PxlP~wUyf~RX-nB&EUDhMNna%!)c5t4kzk~O$C-e?+&9#!2 zvUE~Gf9|vPbgJJ^tEFw)5haJoPfx`?pyGge5wi6~O{_%(C>^j5(J%YdJp%5EB2>FWODl0I>)BWUZ3 z5w^aVW$TL_q3t3Kw)V9xz=2GFR@h1OIqn-L(YHGWtr2>LEaxmL!=X(vD>ZFli_Je^ zBi}bp;qwD@@-8I{Tov&powSbde;tkGPifzpHE0df!|+vFm6@X5GpkcJhQOPsQQve> zIKEXuVVJYv*B*q9fr|g~CXCGr)+ubE{*3pRdgH?=4f3t0bQY1Wro zA$IhaXAS(vz<23kRW8zRCHf&j>BDNz%3xcHl%IL{YCn3Kyhlk>XD58>!tX&da%NLltqQ|E;u|-m+Kjrdq;KPH-mSwHsZO|qvQ6^tYpHmd(m&5KW89lYVNajf zMR^Ls^90(I@54Nnc;C-aTHI5*D6B)xgFkU!O#v;yzH+SbgFhXs57$yTkMx)G{7m@N z`34(U%AZdAdHO=y?~n(WhkDpQ6nd+|6r(!7@s;eKGWJ`q)<68mE4p$dodvpo zh1>%uytekh-VABK4g61Y7@rk4n%16}#G;$5fw{t9fM6ulN@7q8zG|nV>QPyq{psPcfkbl5g8Piu>fp-qDho+B^IzelOgA<6)wm_vn(I$O{3)9&FP9yVOcqSQ~DovGd@)2 zaA1bFiv9mS$o*V%yDRTAnzLJNcfqLFS2y~S_!jPhf#;WQy9>s5Kc{#PWK-0)yE9L| z&pz_DypL;gvM=@_wYK~0J*wQ)9Td}^d?$^&o|=Jqz5ZH`9X^P&kIKmvHTR_p;D#Kg z{{8;nyOT|Kxx}G9_yup>DDRq(U zqTJ_|{R+x`g34uobGA5yKThG85BVzwZ?@Op<4@HeKBRyC?}Lg~0>&LM^rGf{-%AD4dVv*)K2Z~y)m3did2WHXwf&D-vMCTdNJh%&;9!M9{Lh0hSd%BY|{CT}H z3}DCr7XuhFGw7+M$4h*s|EhX1!=EmG)%q3J1v)aww~gAcPtj`M#kd9X#6Aj(t1z^C z?2YpN_%TN#w_~Gn*U`K-el`XKL2fLq0<~zaaO%8UE8!!&*yJi|9f zXufE_{qOrk>n<_dc9-~U-Kl;2e4l9eCgo4Y_xj2HWM&jsq--lj+LK(koy+vy#5fNQ_%=^F3f!SaB2{PD~r?MGfqMx%UC zl>Ig(M}@s8_P+vkA8XYG^&cPHo?b=u{p-Yc^L7T~nU*Z&@hOs)=no8fssqj&$TzLJ z?4Y{DY<1g3?~r>=QGJE~zkvU||8Xvis5`Z9pj!o#nfJQqHzJM~gwAkjs1p4N5+dP1; z!3`>Y{5Q-4?Bc2yo&@HfK9U(}=OXc;)u| z|DgPl-^%>fw_3j8TU#itB`;#XL7ssoaHb1FD_Bkhc^Yg{^*}4r?K^WNAA)h()-R>! z`cD;(eLGLd3xLCXjOIZs*pKZ2k6*mA7vt8B>##}TIxIXS&r;l{{<F`M9H zd!SeP<(YcU(WHAtgJ>U>!M3!!|B_+qzzTUf-R#imOt~PPb;7i18BDjhI@8%_M5H5& z@v5`w41wJtcfg*$}3)x;-LbJ6HgW5IS2+fXhH<^~Q@k51Hws%{f8oZe?YH+_EmNrMgB7=U6r)QWOE*!{uYzW^;b^c)eF_wQL?u!f4d*cj>dza#X2|7NHc3N=p8y^>GTV% z`6nhrpK*r(W(&p~`vmNSHNF>$I&iNI86LNr_)8k|g#$||uOnjlsT|_AM0=gI@6`0)BJQT=wllVfd+53S!Y$(a^d!|CbVXKbubhoK zQvNQ*Yej5vGbc;B7q(AZf2VYP|3G{86VzUXeY}eLYTOM&1aJnWKe#Fry1Q+}H`YV% z^@<_fmY-(QWnoXT^nWveAH}{wJ?!fQxP>dn^ymN3173fL+#mDl z|F!T*9bYZBUvj&p^TAj=UuVd5velt&#G2fmIacJn95JB3*FD#lEQqfVn}|=@4WB;1 z&rd`c&ks7Ajm6Th4{XYi{*U35U!OlwT}wLG2siD;(81ky#Q@Vqd+F}2157W~qc&>* z+j_4ZnqdNKKbOLQJ6k~ii)ruuVz`^aS2KoT^<@LiTd9w+H(B^hu-C>uRH5*A+&*cC z4O{NqLfXSiY0rMGBQa35Z=ORNg1&`bIPTkNU-$t1n$CK*QxXq2v|){UW4yk!DL%a@ zM^uf=5&fvopCNv|0CKot5HA+wX-a^V9RTL7)&(r`y7RX9gsNK2w$5c&vTli zzy^hV^N?bNg?)hfWsfsIg}Y7Z;yJKs!+y(rOx8UKiCYA{h+?W!t?Gl{QTrj2*q@Vc z^F=$+1eX0Sr#&oaK1^Y|`-DACVcYwJJq0_HK4BNa-h{?$ZkT(>szT0mN2oCka%o^-oQ^w@J{aI7s^4ynlrtNZH3grW7u;d9Os74*Ljx_yOPMDx@| z@c_Mh{f#0Q{@7@5yzbeaq{Iq^?m6z%7mKSY3_i`99g8}Fb)DuP%k_sHbQ_It*~FUI zczRaap6L^6Vt)0%h5q9_VcQz|#>Txp$=%cr+#N%nhO&2$a#Q(_ce?aIuZ`OpD!Z2Q zN7UmD*2HS)w|m(B z&-+x?<2Kv)-)oKkNICwRszWAp)cTD7?W&v=du2J-+sdg?@^M>OoWfwIRO?IOwgcyX{X}09bKk;lA3u}vLCjn_TYwe#51Rjo&##@&zNPHg z?T4vM)D!i>H!;^Ro@fv1br^D`{wet!=$MuCy=P8PyS$78k+ABrl)`sg`s=h;t%nY= zMMF_Od~*S%dHjUbg9qINziJjXZQVraSMAqS-=&mhmffcs<^37OH&b|xS7Ib${aHTX z&<_tx#69Y20Sw2w6H>R^jvfDli4r^h@9KVat*RT!zH6eiI~;yfck&COt-c`I!SmGf zvDogC&1;X8Y;LCCJ-<`_WQm3YRy6wW`t12eLFs%k?KYwr6R*2xC!^vFwy@7t+ zxKo7Q3wpw7cPem)9{SCC@w*Qe< z96V9_8*IN&@`v({tyMgGJVhU#PV}K$lXL;vj7I!o#>Ac4jPFVLTXu;2dse6oK8cXzt*U>5#(>weBR`Slnqoj{@jA_8K zWnZ8g;AsN>Im;Y)@T zKCGo{f8{TIU47HlQo3B=N9xhiTs?XY(nD9l%2P&pYHhkSxk~o~co){4DgHyhrd``9 z_WnoO@t$ev*Z5mm&xq3GYyRb;#Q%<%SEb#9X(-`AV z_V)x@3u(}2RQMO$=lGH+bAy-q)+cet(dG^3`$ScY=AP~}Lf&O!X=YknqxJUPiSo?4 zNCThH#(o%)u0Z9R2EWFX4*9O&v=TFV#V>q({|I~9>H1EdM^Eb=qJ55!F{esGQqH2& z1HVosdMo$)2}v;b)l^;QD4*!Z`=`!>PbT=1KZd;eDTTR8bJSnDooU;$!WIE} zP`zFsXC6{pDnRenmqz03-={4{luTVFPUT~~tPu5C&UDl>PN}=#r+zDQoMP@#+*QPf zl$9=%I?R-}K>06cJKxe}z4G>9j4gCCV?3raE?m?sDs2!ISDx&9{5#(}+4s2HCO_ft z*!+*XSr)ropw4#x<2CKalJx6rw}>DHRqEP8g_mU;s8zV8|vD?j$o+?x(aSR^_Y_GZY>J z*6=v$m&|Z9@i1s?UcXV+kw@H2?}5E21G3lqjZ``B!xl0pg-3w2BUL$bR5_e4p33tE zSSqjGi)S|g^}?5%SqNS!^T zy_3FqEB1UEC)Q~Tu+9V9CgN^y?|T_Z=t_Z}K^n%!2uOXYPY|cCOrXxKnsy!XSb7sy zomh8D)d_kNM09e!uAq7a`qZoY25Bp4)y=8Zn7~TDlp!sfS=HZIU)L#_#I>~7r%QcCGvkERX>*(&HNX6t=mgku zP&=$PT(nQte<1iW=I6S5GErY^wQ{r*tEL%-w?4x|xdoW&Dzqng*@m^FX4p1EEMMv~H zD)W|8mYLP3%qA-H-4hb~2=gFJ^UUo0O)4-m7eLe8vrOj=yk1>JH7xc1oQrs?*&RXMJn^Cq2nOQkp8-^QS$f z?qU>e0=ndjM_zKXEmlb0N#YK&U}{8MKO$mm%gqr#_**xhr_is?&?Y8UD!e!7R}bBP zgwH>3C}M0M-9L%5PU8KajQ{rL&xrPGZxj8s>I86V(^g5WT7OF*=Um2Fdz@uen)h*0 zRC~RV!kt|tTrG>ls-OFkP5zxMtAxG<^zA|4DcUZpNIOGZw_o1j7wP?lJ>JPWZD)w9 zC_bNl1N4h}W-^{#$_5YLe?ryMt=*dV7wnj9^x94AD^&WCT~*s43aFhAQN7BDPDy(# zOZq$@IvKwOwJEyG-VY0?{DNAdaZb?>KDHZM!TsRUSM=I$Y0>%A2lK_PKbN#ck@s4o zZ@nM1l?!YP9v`aT4L_IjXIyQ>_yMIEr^Bx8CdT2w`I^nx`%$yfpR#wW^ecO}P`z-4 zQuc25|2>QI16RPI@*h-ZEy@`6bLrQCF#|%4<^_4(Z9dBDy4t_r|h#w7NrB*wpx4&vjhdD_iVKv#m!xy-Qg} zbfzs{v-c6~Y>0;_XT6JM%9%qHp3(=tp2j3(>r0F??WZS=v)*T%OZZ-W3e&9)rB}3pc#|tDq#a-_w|j~S z-OKj>W1QM;<239P4uZhW*yX z^lkW&uy`=+6Pvsdk?ocGoN3>Qnla*kXR+_|h}bx|BLQqBl!rUetxDHt;7@&QH)W0e z?pq|i^yyE1y>q}mhlcf;L+7y#_Q_+p*z?U}nK&lL^5fpIoC4jj|3~xdjQ?SN^&Q*M z-!NB3sPMP`kGW#yIY*`6YnvmGrR<)sWsa6!9mtbx^9z+PDz0~(C@PJJ(06;1 z{?Z+y9)1A4;rKjXLwwpa;;Ux)1o)}6*foZm=r9lQJTy1DR!%4Wh91|wsi%V8BPy(t zexr2OPm0^h)!=jTS|dEMAs))j>*b+FQhD1bz4gTD*-y_G^lVk-l&b!rO%v+^rwl>Sq`SLtQ2+`vx&xZL;p>k z!JPk6RdmT zQnE$tRgiI@e=t8z<@?K{@Yu1QQ3mXg$Dtf*KlJ6ir^o}_*BSmbEKh_y7~jY}MY>#t zK?lsY(;DS^1_nOb4Br>5Gp1~|VQ-IeK`VRu&}UZtUB8zY;OG&9{PA!;7 z>ti49RsQSxh6i)A_p_?=bCC)8RUa_l9ne^|1qy9@sI^1e6EfE?Sx z+9@Ks`lX)`tvh-d>q`Mk;tcy7sFicTLF)^10CPdkgZacC*yn+?wSkVqkJWtmqW-0Q zC>Ld-kF-I{cwc554dS=ZFR$!7!Wg@lH=p&PlOLIwqLcSrCw1G=e+ASBp}-PRqtEO0 z?e|T6*1u1<6aF~V_*gs#>V2v5=WtZQkQsPY+@mV4LdAt1azk#-JRZu2j#`nj-+k=-8yg`& z^RH=m=#pz1-0%wyf2-aopGj_;eG%LL0~?U|MV;o1Uxy#o2HF?oeMzz2Amp5CU|#Rv zl*SRd(dfdOdB|a+Z2mUY!}C9U<21@&tiDnF4d3{{_6^I2id*5rJV@hX>98WafYu+@ zptUza*A4e=<;wN}7%)NqGVrQKkiIj9_IK#TrPI4VDDTJCQ~z%FL%%YzuQGl4$$l+B z6ViIl`$Z%BiRpaEmz+L&Ipb1KKetiUU+Uo$)y_AHY9ri+-~UA3fxYo+R%5z`ilryRQ@L27XdNLpaoa!m6@#Z#;bzb3SRi=@e^G&=zBUt z-&TBSFV-b6;(-N2WmOE!6{8z^lI8SkVOW(m^mIvoYEs`87)k}T%Y{Sf+rqaR?EfsC z+b{Z^TIcrje!VtkUZ!Hl;WP0Ynw(u2lyo8O5I`l~`OeO1g> zaZ_z^TPZF`aWmB#gwGq?%RxR0`a7n*DlW(zE9~|$+m(IHvb|EL7qZXXpATRi-jbP> zX2*5&McePCe~k$B|9GaQcfq%x;fU@M(DzMi*(IFuUBVUHCDOyY1a#&0m1LOk8>mGW z3+<}KpF;lW4KJ4d*Yb}h_mpI^{0DkxyMIqk4mw)+Kd?X>CJ?4)TDH;KPmP8vMZJt9b%nBC(c!=Ei&I zypJlsB1&f%SWy-2lny?5gB@b9I*r@AV~ks@Q}_??O|XjQc?;2uSM?vx zI>}m##EfA-fbBHTX`Sk!k3?DcBeCoh{s4alER6u22edYFFR9|NAxZ~vH~PdMH16a1 zwxXA(d%%BSZ|?cyg!`N=jD_$H(m@Z4(%z-gB8`XA6sRP^iA2I=-v7oEe4Md&GwaZ1ac zcXGc+SI~Y%^Q>i1e-m@4ZGnq1$JWN(riS|AO(f4Lx4hJ$s?3kokGZg)^o7OOo zCG}geKZ9xNe6^Q&)Vxfy{a>(N>0S2pJZ*)|pnW`p_Fd3Y&oS20qhcM+xAoqCv8^iF zUq}7^LVibL{g`wSA91w+zVUCVEPQ8=x?jZ|9()NDsdZ!NQs54yWxOxhzcy}SKklG8 zTSN18E%Yzq!};EnebB|E4J`C_pvS}a+t8t)db$p--UIpu=chy6!>~UnO=9fNE|L27 z-%+~uy>^>aZeX<3d;iEU?+2jsULKxrj6UsXvSMH!>#ILkFZ%`d&gB#~<@Sh?4xLoU zUuf zpUF}B>Njl7N?QKa?7Hf1rK>*T_s1At(ypuSR=VoNDz3lso!eJuebo4qb=IM0bJ2KT z@AqQV|J!IRW}V~WzWJ@fow9U-3Y6}}Ro|c!gcgXYJ-zM)iXg)w^d;pc{4lZWh%U5Ww7ASk=Q|XT%r@bZJxkY?E zXp6|m*&h0U)d+I4J8p)mJ*-W!d^_DEexN>Z^I3 zX;c<;cJh8CbqA|PcZeCpX9a1Wi#_N|j++t@HAF*=AKligw}X3-Ij7LuVIB8bkg48e zj!%b8p*94x{%n;NnDVf_-cS1(;w?QM)^(iJ!n{M!+h7b65@QPYi%9o{YAeejh==*< zD_O}el+GdhsiStI&7ZE9ZLa+v<_FpX8!8K{%46f}x9vH?_50;T{h7D<<%1G~8~?|R zh9B8R);qg-mhU8SONtF8r#{&~Gyp3S&d zbf|v(kadZsn3I9$@_)$hSK8$FV@@HzUwMlAA-i7F?2MzmaysZm+woo|UnBQN)`zr> z0rp<2{~<$!e1FteCr)_}FkFSN{XgyjFb)pZcWe_&8MpQ1dft$c!ukicXUl+8Juk4; z)B1L{`Y!IAtUh{C>BP-YdC#!rtA09V*SxmRo$@rw)2{Liq&zE?tjworA6Pcy+du6| zZnLea8rwWPMCW{8ESI%??x25f^dw;yHvQ?8O?$Y{J#?jQz09)iq4906yoW|Oe0#Oi z`dIfZ^?9q${pEx{>jLP8VX{cON|%mVcmyYXY?>?~@mAEFLwRxU86n;eJaIAc(kn(p%_iapn_){$PaE-r=NS?g2l_-S z#=DbE3L_YOy!n})WHatN)cZ^H4h*R*_5K%nZ&SW<;9LHAdUvVwzS_d_qyImKPX_v4 zk$S&}?abu=2jHVYk8l|UrOU*IaDQ{~JmQZjteD>0=y$YvFu4tVp!}e{_n(8wRjMDB zt3Cjojy9$N1C8b+(ah#rYWpuPm)I<5`^tdqi>IjF>p~F$Os2gF*?#z}y@}et*4F-c z)SjonHz=O~zo7SZw)X#&-rH^M|FNz8=h@m1Ka*>1?a#Nh|6*XW+1kHOwHtLiN@HW) z$?du$hkeNGn&3>Q`H^E`eQDmi49pFu?uh4%xj!*fzspF|>*L_7zbVf6mbe|?64$2U z{3`BXpZAaZydUWE{*m(6HEW>Kh4#nI{ALmQPC_JdbSI|53`k#UwjV6*aAwqxlQi5kzMq(4{+`x8`d~Yy(^UCRT64H_ zovqRWyAt2oc3!?H9+=wCz`NY9(%`OYCHuOHFgA4y?FDPq`DMw8cV$bvIGkSt!))Vc z?i%Cbvj+0jm|x1m4rUV{aNAe|zE_6)Xspq6qf`9ghOtI9{klWf82UBz8@$?ZPYjEU zbz=>U-tYe9SmP;*@3*ba*mRFmxPsRiHT1jmtUAN9IV`TcKWr5Jy-v6T;|$l8Vd1I0 z*65&ocfCB;h&<#JxBY6Y5u@K*9v*9y;5&iu8d3U<{W;s*O682bBW$dt-)QSVbJYt@ zad2+7>7rj9cP&0DFFfAxe3!~^pJ$B!E#;3j8wY>mWIAWua;Mn8%qap?{=OeOMFo|! z=WeI)-&`kL^k}EoiCwQ!9?HLie%C$k6i?ApvY<{B({nKUrG3~paaRDj-Z=`V1?%_P z5mE=_Xk5zn#w%X6>cRfzp4v)tT}?Wl7sXxa>?>%_>(c-9I(0Wtaz=l~lh`^e!*rLf z5j&z01F~Q(9A%l?;g$&B8Qc=AH1mVNRfvcZ+B1r2A1U)o|Iu1)1o^}+dNze4VmCdM zPkcd76VaL8bJES(rRnU45~r7c*q5^VIhjuQ>m2%#fl>nMT6L#mtg`E zWc>7Wa}&jn7g^?E{~FQ!Y6kljpS8%%_XFXZ+$^_EdpyeXU>3%l)@}`rdvG1SQT0Y+uUa@?NPqEbj@nQaLdle0D@YPCJ|COKr46)Tpt|v5oBm z3VXywylLYXCwhH_mz^)MM@nAbDX@1GW$qLer|lF!es!!k*zZ;08uqI2($jhRtKw;e zKQiqU^8h+M!9ScD>*1U1_jde`GN$v!O8dR)^D@lcHu=#jpQY^ghMdBF@6Mi6+wZ|H zGe0}UYYZHlk{JPyFr?yKYCdO-m3NcBKO}WX_A9>v<=H3C`{P&1bdWu7rFlO9{s%Aa z&-&$>qjiO@Y4w!89(z%`jAOkU+T-fs=d_&KggEy}`RZGOTFbK8{nF}ps=Scn`3GmR z+!gmK(0MuSj0}a9u5EPHu4cR1ir^ZN5x|%~&-bmLr>XT5fIb^|)hg2!VvO1$cFc4; zKKxTJNNmdDKHobw47-pTp&+hgm=cIHgviyo4b0}HCD4q-Qo_GA+K9()6 z)B?u-o|G;X-uIoN?DuVDr}4QZ@zw2Rj|oA&;>;~l}e}5-6t>Vyy1Rd7ckgY zQr-C8Fd*yq!#^Ff_Wz9*-a71U%1)DW6KSAlKxe9v@#L|jmBwoS#n}7VXT(bYff|N_b+@e_=o9&*<>0BEzIU zTn_u@_=5FdRs>%J9K{6|@Eu$TI$Sa6^S6q_&vqx#2Kd!Q8>;S?`w?`IkQaW$ zre$WDnd&?R{rk@=eMw+}w%Ni#oBo}`aUOp9$w9_R-1Xw%%@)tp&a`;cOr!Sv5q6Ro zV})Oeetya}&%mp0|Gw1i!TlKOhq_IrzSV-uxo@?=GRCCM(556jM3;Jq#&oj{$ujE4 zNr^08^T6k(eIoE2WD^Ob!J4AB^jCgH-GxbfK@aPQ!IPqTkO;BH> zPo7il!aC@k1EEy?F1=6T(|Fa`>vHUKp$o;foifa;d;>XYPr%r_f~~~+!#~1}z*`++ zm3QbqiA$KNE7kNHXTSuVMG%&3ZxVFS^P>P(F*U0m4QYhP3mm&nm*@=W69jJmy5zH8V&ED z<=Yk%omyNyT-*@@C_Pr?S5{xhW$t|GtwfYO}|9X0GEMrYfr}@-R zjm>K+Kjzy*D3j_to#vgD?mw*mxQ1o-AFA?sFPSgp4bUO9?$2`w$C9@moco_$6&lMNT(Np% z&4^VA;I1qk+DzXph0f6sq={3x=}N{3d!^-+7xFW|-p?FI{fzS#_x%BH*l>*mpIkR+ zk0yB@ZBT?|D#SbI&DNLZ&GtvqA-{3x^@C#ns|!v+bBGEitw8#eDW#6CsKGpEGYJ0Lgx|HcgER7?`k!`ljD2ymciNP zUN2*S_^zR}MSia+za-7vsWT2T(-^iij>{iX+lb#od=U8~X zD9>7-R)6At3Ezb-chFXL)i;!Vtx8kXr)+DlYSPz;BHFJ?ykV9>>i)1O*2BEtxq~}s zf9en`L0{AcvF3(o>h2;_`6zb>rA-Fgebf9p@U`SEEZpHQ6dn6Mm0`UX!9SEcv)8`! z@EGMU1a!-Wlny3zw6_0*_KumA=AC!>k`6@=x%F4Y?9hB;IPveZ^%cAq7TzGwq5hyj zMz-~ap- z%UbCxHB0$MbxCX(*fdL;P|;`DUoQEP+>2SBsNKkSukfGot{(5SaGEiukPl=id=Zr6 z2t>`tsGipSBGb8{F!QWu-j$+rq05}FXlS>cE)7b)?#wIXcA`A{Xq=|e`8S>Dv)Wi4pM4&R11|v@;;1TPdhklv+;<(kR<47!jx~%k!s~$Q z_3x=Zwx7NZIJ^1%d49a7@X(ujDoia4T0 z;VZYyC(qM2{&VuhUt?qFc7aX21F&Tuz~6nj5Z3ZK4(yUrqLWfJXPAtGRDUIm-Zq4pETy2wH$~DigrAsAk%>O&}g;yC*o#K)POA;Q*a;^h}*0=QZy2JlK)xBU=2 z)1zX#zlnJC1*|7MLvIq(Tbj5%SMr`h^yWoPhWCLcqA#1o9DgIn)#xjG>0Y;*FDqM` zcs}ik9_zI|1JAcr%?qAu_?F&egou_#9bZ*-@2A?b*+ySy)AtLsH4>-g+L!kIaH_AX z$h%S;R{Qj#D}2fIYD{&7Lyhwj=N@$9C;O{J$>}M6^RrKnSUhR353nGmsj#IHDh=qj zi4+&K#eJ;efRQ+f;zG8#_f_0JlB|KFtaxEC3u^uBl> zrTr!tY!Uf^fUz<(mTe3EPIK4m&l5%7t9gGNsrFCAoj)~&$8XUNng;uX#qir}I=puY zC(GZU^WVbv%NQqz7Nm6X9E*l<_%cnGcO3i3LpifIx3F)J0nATD6LW`eHpl3%5bxGX z=kb-s&F>%S-ESx5c6LrG@9aFyzfBDGZWDR>Hi0s+-tap>{i1!ducWpqS;Dp-Ku*{u zq+L%A^IEXun4@G5PPVCPJxLB>$7OH&p^x`p;Ihr0*uwhtkOSnmH1Hf;&*d*;|7IvZ zTlr}vp6mnmB_DggGmYpy+E<-8BY+7(JhD^s1Cw@FC*)x8MRxWH=nYrl3>;$l62n}a z{zFBR^LRDzSgrVh^a)VQ(MKaK9D$AXpdKG5Wt~^T(*kwOxyT; z#ko?0wORktzHAz2$SfWh+nqd4b02qqQvasWh|#%~>s`z?Chzb6GU*wABt?_vMW&60b@FE6KgLFfM4zIdn7Hy8q0&j9EGeQ+c>0N6C424n8! zub9>64lr}54rBB!rW>;FTHx{$O-23Zp*04KUSRX4vz%cC>y~IrUk+ zF>PBn&q+7MgO9f2E~aqQ8*@8#3C^dWK|iqOR_J5a;R-Dl7&D9)_C<_U0j(h2I$Rb>a6fclhYcn`l~oqzV-6I5Tu$ z`AAJ$=&FtI+`TU3>;2a6@0I_d+kx+tg=F7V|3IDr@7^Zs40#b`lLK@~AI}}W#kBfi zjQ^G1zVJZbhT4id9rTymdvf3W`WyOYqOEVz`t(hN;!y8-cldhsssps{s=U(A4(#c! zq5a`CDU(d(XZB}3Sl}%^Pw``R9bx-==<~5Wa>DRWp`$-(n%N0EDmU%l=&wmHn4OSE zZH7)$@Nt~?Iatf^H|x-0o-vvItz#Z)(dA5wI--=OWr=}4bF@Trrci&P4?jO!BObOo z;Z}QpKW#{YZTEEGH&fgFk$8!}&Tx9)?}UvTqP&qE{lj_85 z?}5ErsjRO?M4gu^-lRWckHk$Y&uBHC((Xde8*#53%apCx6f?7ZkvB6K^`$A>&i=%| zpk5B|&OP|vR@{}UZ_xgm1z(gsX+)n=J${i*br=|RR;sz7wac^6ujYp*xY+1BKQR6U zI^^=$ER zo9;_WQ>HNfa(S$7mO9YHXK=skk$6UEe!PVG+~I$a_Knx~WN0@fj!{`;8`Kf~J_i!MB1@=sR|y4z6Gh_>&>lI73fv0F5X9gYTS1dz$Mutm#`5*U)^j z*3bu3_WvjPX#1_Qk23r8(Og>}S?kD(f0p7lTJ_hRhNJyKgT`(Y{BdGEy{6XFgI9I) z-OU3ke6tGwkqVyy>{;&)@ieWCT=3$w-mJAY4Ky6B?^k$iXg#;fefp8c7 zVPj}sZoqv6_0?Z$QgdlN>&d0^hE-lGUn%9o_v6aG-W8BCXsq2dWzX%Sy&_Y|CwRZ@ zN%^X~|8{jJqRy6hrN+87I9F!VnT2!~-;8~=^xf`cGljd9?r#B|W83~teL-hjt->I{ z{!y%S(CIA78SRhdIq848(z7g}a-8aZ@Cw{c_rRg@{0YyTpeT%QhJsynlr`zumJs(M*o4Wi8XJ12j6{}zU5H33VrMG;*r!^ zaVY<1NLNfeXcyn}Pc+LFb}RY>zIKmO7;uwL&@X7|ujn_&=5L4lz#liM{nWmC6XzHD z3--$Pdaa~yf2Dj$rz?Gwm!MB=D+hZR$|>{jq_Vb{>_bPd&-s+?8z-X9!>~VpLUXNH z(m&8MqrQJN?~szI*vs?Mc;K$sN%cc{DEmF7lLB3ox+U}CpmY0a6BFKWix>$Wv|Zu^ z^rt?+{P4t9N*M#u^%&a?-m1h4{wms!az%x@8+9^GaU;>Oxu-j|#(a0E(QpSF40ixN zlBXyvuOGx?SGG&}km7mMm8>O8$`^a_OIa@`hBP&7qnm}Zg1!N|7~vbdx3X;I1^=y7 zk2AO){V9#ReG%V}S!IAf!MHkTj-@GF9G9{MaHu%|{)+VvcphS`=1F}7z2&6$4f^(k z{r#Xe{L}S{#+rut5PO@}LV8?%3PuzoKtqY^}6u-tC?5 z^hlpmRv7x*b7gC%)z_XY>pP#MG#nmyHx(Y((g|K+1C47FnrSZ>RVHa{*y7ZdE@L0c*k^pS2XP$Ezt}l+eiksl2_C+A zGvh`&v3|g(XVaJ`Xv|~bA-W#dx zT(x&1pB1jDa7~5tor1Q6=4CLhX%7-j*&grJ6%R^3+m<}T*w~%a_2-$#v}F00D4qy+ zkp)a6ET-{ZEg;)22#k~T7SY;)zjmL5NsY0&`;Kt0jt0)*9}tfkQ*xM0CF8g52`v5R z;otZ5-jhhIdfe@|h) zMH4vslvSk4!dcl=da_PSW-mV|>-BwGxz^p0Cq(B*kjk4YF)h3(PvTtUds2GXS@0c@ z>x~%tInRk)I*aq^d`I2%oJQgD*74aff%2C5mkC{OFo@n`nh)3^NC*3?0*Wi6^U~5W za#`{@g?CYQ&T=v8ibf-s^3r4E+wzu;YGl9hlN22R-*lR`MvScSbv6G*-GTGHdBC{u z{s8yQYc;^u&h1^R8A^s;sP4eesY%J0Ko59m&9xM^vaS@Jt@-?I=w!nubYZ=y8haqA zkA0r!O)kwF+>5x>-Ay{*AD!$g(vrjF2HJY_e6G&#a<%SxEGI-*9`;y`q~AVNcm25I z|LRs>FFre`y!| zVHI{zVTD_`*Zb)m>EYWKX=OQM4W`kccTyYmnUsGZ^$Y!HoG)t}JeX7WOTEl#HF7-= zuaRsoO_kAJ+Q9aYkVJYOZs-`^bI`9 z`Wg342pAU4eepnz+qS*GmRzUhi5>49Otv_diFfFi!{3v7Ss2SNcT2sjG&=kJwEwKS zXrNgXTFux&xI=fg5RX1|bHbzi*x#FZlx3;-7LDs=L!dVpz+Aa8aT?JZIJ<|^I_VgJ zc1E9&=V|2R^R)EQ&QWJ$KOY1+d{(CS?)X!~aEI0uhpq;`hcY2s{2qM|WoyBPIPriB zE&VE%E5H_#_F2?%Q*1|K9hK3Z*umH?FNb$E7w_p}--CfftO>csIuH1|33k#T^dEdtT8@q?zfLX|SibDGl^& zf9RJOO-MI~!jbL)_Mb@cRKBZyF>n(&evJA?Sf!h4OZTWs)1=~lWG^GS82)28zFEc3 z=<|&QD!xUVWt*)rNain~-j{O5=~oylYiiKLKA+EA<%e@4?;O%?YH- zV87+le+CT4kSNQJ*dIE0Z@ycFj&aa*WJRBZ{OFb| zvQ4Dx88g9rPH$lyi`az@)**i}<7ij)x5WRM;&1$x_}@`{)wjg2q4@Svukf6aX6{sa z5?K2!=VhCF{qQdybs+CDO1J)hNVka6ZTKJ3&BJ$Xvft4cNnhHK>HmI*)Taj@7}VE@ z`?4d(zS0Q$BPtjb5#eRWk`?|nqWz2v^8@>&zU2HUk^r z4N9}Y(I%>f^k@BlcVT~d-$3iW@z3)967>JptW5Lb)15Zphxk8;0yDJS58y39@07sTRNdj=Japx1P+~>@}ge5 z`2Q0Azms_eS>Jb*J_G2^65{vx9;-HNgj>Q!TQp34)_`&9iu#u^y>k!OLAH5=cW0u# z@Vx}|C?NA#OFZ;i+@C30<JtN5S=1}@tm41@{ zvreRkzm8d21LM|=p?<$ZrT+(|Z=&>bRQkF8Gz00kQu<~J5BDhtGPD*7kMv2uiNc%U zFM-OROXXjy%6|d)P?R2iMAGzk6VFmQuaYge)O~vI-3O(An(xu408=|Fm(syrqHmfU ztu_a=1Lin%Byg{c-(v4d@deG{SmAQkWyCyw>0+h#Ghf}=1i>G#VV{Y^Z}AboA@wZ_ zG^uY1o?Ft;n{e|#J9kDDva@_2($9#|&tenP86 zxL<#!ft+4x7Y{j8TA(pb=|lxRgB?Vt1e(Q{hq{w~rMo%fW?vU*cFbk0$(8wXO^&?0 zI|;v>pqW97pe>bSx3e4o>tby`&q@1_f88K zx)sg1z{0ZB9%f9VEw2#m<98Y(ykiZ|=H;CgiuM8hKagc>;kq{3W7szy<^Nn^JHmg^ z$aB~~wt@7NZjcweIQ*yR(A5rO|4OXW8b(w4Qv7#n(ZVzeALnckXQi>Naee>Vc>VZM z4GrhhH!$Y;f0BAUprcTC?A6au{jGj@NzHlm`5#m``eY;4jtc*c3P=CEh_$1_*I4PP zuZUh6(njIHT6&bip~pT)rCUbttALe5?;(0$LhsAyJ?xNnf@$x_yX*1PjtPvb5;eC` zT8Fazx$B|sq^9~Cy16d(A9uF#V1uZ>*u!_uU(tNoO>?3USQCXr+Y@~sqx#+VNCWTv z9hdcYQaWc$Z%E&yc+2qRSsb>B!dPE+hQ@Y!F1^uMGon@L)YhM*QyV-ZlXYn=Y^Kev z(ihI4l~TtMXUur#GI8i#>0^P$Lp)CH<^9H$Bk^ge4I$AgYDTw;f$_WIj`+hynsz(x z&7bqruRk7r5_9TamG9llEFHh7lg2$qi$|T5HfO5BgTnX@)WY%Uc(09{b7412{g^qR z!C3Z@)c>gbPNu1O*}snux~-54Ko_`v;mzf7U;S2}kJOD4>78+xil4@GfCIwTgr zPUyRVx2JgQH(D&na|*Nu_zBvdH#+^zaSx>}gPtgTqwB*XNk^c_P_|W1VqZ#U+k`d3 zQ9yONFlr(lXp&DpJkkXkY9I8US#M{J@a{g+g?H#2`%mj{K2LMxj;V*bSO?j=M%2)M z{Y8mc0r|gI_lYK&PwnS!PgwUO{QDR2SFA!JDo3p3tGL<9|^)tF=n56_7dsB`T!QI}*=&cO;-!KW*k$RF^8&?TUq5Cgk)!_#qF^ zH_})>HYI^Dtd|XX6=U|nb^$Vf&`n499G%SfAo=1!lCvrpA7+dgtWk-TKqAx7l-_2jj{y1o1tAS4^`mI3OS~)$F&C4}y*xmO_{o9A8 z`jVS0jOkj5v7OSp4Jz9{rT=@Ul+Rdq_4$m0f&0%v@;*q~!e;@W5Z|HoHmtxKF>oGj zNu%<8OFB!{c?7$UE!p7H>v?bV5zi1EAm#R2te*BG;-4Y6k9iDFEEIP*mUf=C4f?fS zdT0(g>N#H*GI{i|D|&610ycw<+Aff7s+SkZ*da zZ&>a^eX*6=<2#G^a3zZ#8ml*)vFHMO!#jn>oE| zGy28_9ZsbWW{t-^cS!rk6*u{kmaHz#()Xr4@5qflmTRM54}2;8U4o9lec0VfHrN%C z^eWL1EH8W9(tD)*dvBCBllNr@;FG)8mJRaYd*+6D-0z+cW?3-&s{i;Vsk4vw^`)Mebn;;_Z+#9*TF|U?~AZ^2evxGuQI+;yvA&*O9$=KcTl`e!--C*pfHP${>OnvqkQag zNk<32iH>fFmz#~Ef*y;GKL3EEqaUZX-k06TwplH$$C!@(o8oOlmvysk8=q^$Pyfk= zW9BLC^#hWh;fbDXLr;v} z;kTJ+^o1?NhwEur3tl6a?}OUJsFCsx2pDz_{hUG8Svae(O$^mD49rd6sI%jTM*^cF0(1-FpJQ2T6#go^#+@U}Pb2yhHh`3-9C;nVdZWG+-vkyW zeRFa|Jg3n&wO10ZSe?MPWIHFpX9)L&i@s&@UFBrZ?@!}?BVG9|2ky%3f5@>Iw@r=@ z{^N0aCV@vE_6m(dfj>-p*3!%G&Z!451PjJ&r#_4bY)Z7bOtP(V;j>o ze8#u34jFiaF_ebR*M(s{OgwCw@e1vOX{D{5qcoWwSj{7}8%;Ou)%Dbey8jwu0Og@| zUr*!SigA39zS*cZ#yvDH^`-C?Npw^!ngGrx>nQtI@%s2a<$v;#`uJAd-L*`Q_tS0y zKmLI`Tt~FRP1svDriJg~{|K*dY2q~Z6W!=m;Wtvav$QD=KVg$K?dddqe*DQX_3Wd4l$sL9rkkm4{lYfmvYW2yYxhtj#@SkfuOG`Ws6{~*-!J2-FV zE$PHO@_^PjyEyJFoYy&8jb9Cw-E8~r2ufc|W05Lra&KA1i0iW^YiUiMuIAi#(Z8kP zxW;#0Hzl;0^?8G+9aP7zel%zD(N^lmb(}s3{irN=tVQtHo?RFB%xe=Fu{xUfO>xiW zaD2W>m&JX4lUYjT!{0N;#$6kJp4QNFP71q_($(p8aVL!x&y8@s;nt(ijHUGhU+qJc zt|w?;*3qXukZ6pB`Q8>$nk#9KY_=U;EI`LuwlmH<;O}I$wCN%m%+kMEccQ0PAKatx zS3BI!{Jm?{_d+f3JMe@Jm2pY*4JJM)M? z5+AC&jI~!uzXo-_d2!dohIl@;w;;A!xN7GKcW9pQ_~!|4Y##eT_KvDcgoz)=-Ks;s z(y(X@@D+K=_s`vQj+DJkX9zvh=vhV2dU}rkKX|s$v&Z(nX?soVFg@7ohH7=jEB|C2 z{U>nmvF!O-1lH-8i>Rl!6`T&FLUV^)A=||?J40LtnDQB04m3GP6pra;ocHuUO{>Ha9gUt z_YC>s+$^RU_W%RjEA1{ubNS#aZZ@SXVjACHA-{EhRif%($y;gM69$NC*WXK9u?3OYi_ygZin9Fnlc+H}Ml&s-lmF9HZ@!Qhq zwlobY4cn#I(u}jEnX@}(e^g-$zjwqqW2nxwfo1my|C$L)2L@{?XiGojBANbCl^(hS z(b8O&`|4CS{zLA2vHB00Z-x2~9_1?aAM(xd>OW+fH(22rIcAmm?^iZXZMN@UP4)HD z_kXIs|1M;ww)m^i&QQ>(>OK~>qf|Obd?79o$#9xv8DMgrI|}<&R1!E z4WGx5TZW|E(z1=adQ5=n1`T{W=)WP1^Pa#Md~_mpcWl|kS^2*E4f*iRe|}58>%Ji$ z+Ozpv@?HN8`OsI-eM`QaE57-AzxkGYH+;kQFvcssCEtW^spo=k$@l$l$cMT4^KZ#F zT5CXDO#xdEQ>Nm{q%W7~S;Ag>0W58fWUzFlsu z#aBt*KK^iAi#Ll=$?hcVntwMbrSAp4-Qw3PM{V!5zu(|!5o=HP{MQ}#TfaMI;m!}S z@baHI*3;E~3~Q*0aVxF6@}9*~R&blTbDMH;H{%dl^cQgPaZZd@eUzqj=_lzOtalF^ zUWa-IhH(4nj>LBVt1Q3y{;h{t<^Z{|Ri3WOEBuD?a&6^V=pDSq!e_ami0tTZ_$Z@h0;h}#+!O&a2Cezi?>Xb z+UUE#p?X-~#kobiZPKdqLaH@;=%;67dBcoTDi^5fhh{yPaggce&HpQbpR z6&Fz)Y}3~b>en0h2a3y9XY9L>6Wa1!c#+HpJG8%3T$3&CPm~Ym2=VC2zX2C7e*nkr zqPRb+GKoh|K94iqmhW|n!+8L?#UB)IS+AX^U)p)X51&_CYB;s+I_(dm)O{we2ly%Q z!j|(Dx#p-poCCBt+ZEzY*|qIRa)9!sQ34rCOy1*xX9X4~?1ATA9y6`)lxV9?`c9hq zjz`&m{Ibt?aF3UKQ+~s%d|7xEzMa*M-ZuDK45$AcTN|`2t8Qq+%q_BP+-0#{WTw)e z-E8UD*GN1%#dk4JN9WT}J zI);A=dmIOql^F`hfvuJigZ?MgHQ1Eq4n!TSx8!T-bO)p_J=}|F-c|77jQ1z-eU~;7 zm|oA&cs%1#cv|UR;^n;aj3t?+>$ zpP1*3K7(&%>dW^6m&>V7jcW>5=u6h^hcAkWZ&R7i5ij-hL5FM?+g_;u4(P9HxJ!>d zhdmrJAS(`frMQ=K)0qn$>s;{Re8w&oZ{iLCvKZ|~b1UPBw6Lt7D!dWj{R`xTu>YG! zd|*yEo=>#Bm-6LPdmYrTA?#n#y11*o&dBoqFz&9cGoXiB=mYlIV(PnjhL`wd%|U%S zbABBAwL7?46nP(InTwCUlSOULjXx^#1CI*W6!q67Z}fR=GVE%MFTC^{n-O2-@x%vu zr^c6TE{p>k(d7;A0gjqG)EI}(v@@q69%xx$$hzH}5Qy`x7B2c;u6K#h!t|foF7cOE zi;U2n@oQ#ET$#UbJ;J_X766BV##{PeSPXl@Espl+yEGr4BcA`s%u?9eOS=ZxGI*$M z{rr-Tc7z()uNLa>3Pg+$>%ZT~a|Cylbe5a_0uqzT9jc3Ct)>$X&e%n?_JJQfnRQRA zSaz?qEQlZO>DdTA{uW+GtEoS6XB12TzvLs;zTD6ffpb^Nb0<;V<2kwd>O966^4ISH z4%~6pSz9f<=nu#W&!Mqod((-D0N*1~9L2k9q4QT~xPvpW1{2QUtLz)n6>Kny;4gvJ z@&L$%sejpaIPimbKV9B6j2jEN+tNK4GmNb(;Cvq6#vD%PF3HuHMXRGmTJ7AgNVG&UP6{H^T61NeLa z?z71}S1R;XYzw6HBA%wUbQQ&xa{18Z2vB>d4DMH8wQ0)c&Z$p}<9)0%nvnb6w0MC2 zS9oD}wR(@WXMAP5Lvxp=a7}WxR&nBugGt;u9DhUV^telB%D$O*CbH=Q=In48TDDDPIa~s9E;#S-*Ic^}u zO`y0NDK0%=#m(Y47sX8)LA(Xg);D~mu&%JD6w*H4BIz#3j$N=F3rPF13asgP)WrN5 zNONi+olWRZ=pvy{J;7=5w42lE9F=>XqjtXG2}FHqp{UQP-JU>yv;G?G57Z~`5{^*92{8S5K*6;5Sib@o>h2hz>H=jDC%nP0(A(MsWPN||@D zF7qKipW-3Y&ix9yQK>YnW2v8%S3){gW(?45YJ~!ftwhQGZVa2yp7x8jV%)+aL-QbhcTDYKeRTnmcU1T z`lY-BK-x=Lrzvjkp)i!4Dz_>DKf@mHGCt#ckTL5tzq}6`PVX~u==pnYSL*J9i z)|cg_>Gia)H{^NMyIZ}x=^c6?Z7waI>5%%7xq4Fr&F9B3ANtW+hVI;7F(;HR;wP`m zd-7bZNnr1EE6g6v8#l3EIMg^{?n9@*J+Hy?)!mg(a{zndI9=Kirp21g(ZF(vH3-Ld zWcz-uaPhE4E~dDjsP}w&zl`1=r1xiRygK$zNpsaeZs2z7t9YMup3@u$PBPYRxn3u* zwu(}Ap&JYQOL-4vnW}%4ctG#j3tdLd-^};S);t{hrL^@*SL@~yzuZGE|FWmcK35S| z{w4PMiEPKw;e~#@v`+_(8=^YFPH!sgl^{cO_AB?a*S|zO=1pq4Dbnf1L9gOZP=DnF7liSokm(~`2WvpWxq*rPW5Zq zOG38@=YL0#`WJXT#CL+;D1q-%;OO6w!e>Ako7iSUVMyMPvI{*|`RcRwz7FL>z9bA? z>1bjFr5&eqWZf19m%{(gWK7A30lED+-X|vmYw-=_`|NvC#>IQnwJCil%;An&s&iP@ zIReZh{q021Kh}7_-?JBY+7mTx;VPO}(Dkx(ynsP6k?H_nZAIP{g7v%ngMf)NBnTZB z`Yj^*34A$px?d=KH8C+3H8;@jEmV(<^gEK~@h19ByEJaTOuy}C(-Wh|@oM5(->ZrB zrLQJRTITcE-c0TOT;ECGe$X7D@E{;jx_*1;&H&a_iPxHRYF#B*$45B#?KVIjm zdZW(`3zr{r2l#8c#0yBfc#D}&d?4&!bCvz89rHh5YZFW9EE`Y1EnB4>sVtzvZKL>v49N1^85=0j*#92`D+CkQH1_sS-WtryNqXQ=P4xA(7_4#~`fJget zR(XzK&X;IX->QYqoXXdfUb{9Qn2%ZG0`rCEEamHAxWw)%(dHWmHg_lUwdKM)Y#_^f z<7W(H`EOgW(P%D|y3ZZ8jiMkh-)QnR0z1!4J1 zBpxTia*3Y&Wej)+MDK#{7#WVI-PzLV3bYDOu$9NhA0S>k5PcG~M`keHaEGE#=7*xs zWdtJN>uBC>7HLEpH3P_OJCA?wH58WL7k>E;c`r z5o=Cpu+<9Ii;^p2BJJ#!POKB)D7q9c0>8v=^`Cw3`C5c`Gw?PhCWaNp(jDG;gFJd` zdbZawDAyOxD=Q7BTbK`S>W>WSCzn=3JbLsQR{%PUHD+ck`lJ)z4axq>ApYGQgAFjz z*|E1pHr26#>V`C^7wo@0@ZA%XZSmH+40pg~{EqnZwE=2}>Q8*n`qo_f&Rpv|&{I|4 zD47^zpLx8dh;NC|p6`NxfIgTK#oji9+@KBto=vrow*EcBaCubp^Q-=2WCz>Ip-S=z9v|tEsxb z`Fya_oV$1n`pcNPDqCKjZ}t$t7S>^}U>ao_Yzqdd^Tgw4-z`X*$>sK*pqJGyU?IFJ6HyZKE~ z;&@YBSoo&E`GmGL-UuHWRlqhH0)CNkx%>h1Oe!aN`XL&V#~F*A>wvW8aW(G9H%ZUCr2EFQ4d1mK0L|(cbrf z|G?f7suR{|2sjP&J<2OC@yAWn8@5m9qs~-^5_*T;JL-x&Z{ojqo-xyVU~dMUz0`K% zW1>zPqjbG=QTnnz@hg;HAGGNr>I?KuD`UgRZ@$B}qw@bhafd{6&1xs;uwgSbGot)P zK^~A6jV4~y+h`w^=jXZDGe=7QUK8QVN8x+?gx0}@3f}?eWQlJF_3K@6hc^=c?$CKg z7VOZX(NdST*vO)GUe$4g(<84_|3Uo1(hhM3ja6S6dY1puxLt-$G>-2IrlW%R?|@9+ zx+Amdbs_UOL_>Zj$H3hT>@u)suvU8U-e|3O{fmua+ABP?K0Lfm77Gd!x%2>&5AD{Z zJ?;<>(f@WFP~7c!CraINU?j5c_KV#~s}2Wj_=#l{4qk1T>L1)M$o`Ri^P<8Fw%YOC z`z6i>c*GLSBg%*W=%aN~=aI`rKZag9k_2CxMfo>D)~4c4qi>$@M9rS;39w6Lc~x~F zV2szjy>!rh+4aUR8;|w+RiE(M!Ct=}0p;Il&Godujoi^|N2J;CE;QQP(i9d3<3?Nu zo&Sh&{(+S5kHZvZ@gxC-CBN``>DR?xP9AiJZtc(hEX!bkwSQGx zZ#Z=C^Hsfw{>;jMK>7yw2V@_%bpKJ~0Nwbvuaj6DXq(0B{PMaK#*Nj^L7}+QscacK zuJfgEQS}ri3F<7dy&^^oetW45iq8XX9L41wQ2LT+Gh^;h8FyWm!mR0A*5GewKV+N4 zZ<&4DpLKHknMZtG>B&%Eq}$V4Se{F+lRTG&s}l%FJBo_hu$*s1Kc92G^i_j*&&bzA zXXu>SM084&$_e?~(vcVR$$fV;3__U$&TAyT zR{BJ&4o32FTO>|>2jy8wG)`K>F|O}mmLWupKXmu>;sm=j>F4H`lm>HSm-4Fz8G@hs zc&L)E{`HXTP(r%_}!NA7lEeMdHOU9ZGBA`0s$p_!mA8JdC|{ zGtcFpQN7nM>d$l7C2?oj&k)g|T?K`0L{Gv`6>NBx#%XSjrE$GZqjLqaHERD8pgCRs zN3h>N4Tf>nL3V=Yij>H2=J~%ilm}l=4fZhvROF zFB`N%c)TnR9l|;j{3~s-%1VLfJrVb?S;L;_V7g=|tz+vP(%GkR+kdqc_q^BqEn*=3 z$jQE>m&zGdxPxVyEK{5mi4R~O2t+%d4Oz!T_K%)R{g4g(K58@LOqE8Y44UQ=@~}-J zo%^|Jy|+V`hT2nrzGGYcyW&>6y%dfaCMKwoNxU4( zJ%=k>$i+nOSUTcEHXdQw?rz!(rj2Z~?Dn(DQFp(TRg_aboiwM=MrUaxUNLB?s2Ef) z(B8_k>&5&#B&`G)QxDd+zm9;=-g)63O7z8m*cz9lR- zoC)7Ieyj<|>Vxt7v8TRCXWiyX(-mB0?S;=s%!&YKK$yQfw`Qf6=*dtV zYrG^)j^6~}L|_fkzJM{k9`Xv?nyRp^sd0=`GYLA&|Bu#G1c8~wgSWB7~|1o{9 zI8969k@;0fMy86UuElM8JM$~H9vOR2xqa|KpA ze8I%LE_3~b{Y@XGg->)Xv;;a{A|rTr9Q*a@*L3q3vt2dq)&Ig>&25^wn0TS#L=$Hy zpC!9qIU@IRoRRd7_Pq<4hIbj$|MSsa*hbQsIe#eeFz_=4%y*Ul>kTR`g&{BBn^4$G z=+9U*0e%{Cz&B4w`B$}#SNKar@=7DV?n$n6w27eh@6Lq><4gA8|SfPOUMiQ6}0PP z*ZPvx^v$gLW4)M+|B!dsEQ@Eo19_j9DE>O-vzgARg`V$8{B2--qs&XMl{`@v&y6&Vd8)DR!@A=oqQ;}(fD9* zAKog|2)lR2_F2{?#|gaFcarKJ89Im52O;Il=W8{W-k>p!s`>tp&t$&uCVP5q^?y`% ztP8T;4Rl_Am3N3`4WU552=G({9X8e@h>|` z*5p)jCYO>kSr~O0N;lN;mm^7h&!POJ!1k+*=tRhx;HwAzdFK9Ti#aCr8jp_#KPk|? zfSwg}FXBs#wD`w5t$e!a)Y~#ivpp0Nwz61N^_Z{j1s6(@!=Z>9rFmvHAW%+A?KNhWm7sJz}%e zcZJSY?FHRQw9{&z)n3*;pmovPUfdBwjz;sZ*uUf?Jy`Ig#Vk8mZ2VT$JIhw@H|+K1 z{L74!Wq?wT)?ROqt==fN82l^M`!MU9$#U_{whbv={ceh@Q0@8u^|V~^Q=mmaQ+|6MJl#UhFEcOJi@-?)nww36h ztBis4J<8Kc`^iGD(n}f_p3iy+%~$(a)bZCR!&)VV${Z=NsMt z@EGCWX|>qk{V1`~|54(%2cb75`3c~6WD-B*WINEtIIvJAAGZ8aGHy@SfIysO6@R^2 z?nhRgAXgYib&o__dg~3p8jvqTuVIt-F@bgfXXa9>Q|`#O1ps%%qkdi90u!^GQiCAD)tpOr4HI&n6& zXYmB+n>;2^2J#Q^*ULNMvlqr0w_aZ;vbClAw#6Q!-v&CvD~*-j4`^?EjA`05-5E!k zG*yo@iEAQ#3DMdZ7DQhxh=T{aRQ1(6+QL+ov1 z{4<(Qxg*~Ze`9|bs|7GTfkk2E`5XIVkUk(i(B-ARL_eLwn2M`KabTVS{aDZ#<@#cy zq;|0=qrTLsPw8D$V7=B-zLwQ2^S9;=%Qy5#Pm=j#Z_T-$&RZq-ETK8?e5N~Tuk&XL zmjQ7XQ=C=*N0f~JB_*@^tMX_07jBnKKkS*5%>Fs0o5c4DVTtJ;AbJIU)!y4L<#<#3 z$UQ9|Z|D9^$~|uaFU?rRMBfuFR6R7)tN>>DaLo*85iyR=PRQFrA)>K~CV&4g-O1^c zCRgbk6s!1|?cK>cl-x3xXwun3rJOF{zxthYe{?g(Gb=1*jnpQ`eQP9db>AALD-)Ko z&1TvcHeJx4>Hh(P8%(*sNWG5fdRuyKI3ir(hyl9IQ?8k}>6KQ^_ZP zvPbH0WU4#S3nCJu&!P5Sl*Rl7`{Ily`q3GcP#AjnEy>PgxdY^l9~LVAHVTs(bV-rI z{@+S;D)hm}$5sn(i1tjH)0^1u*+kRhjTk{c=4#Y|Go%W9jvjSD=N@%hG`2grU`bOP z>!9)m+-p`Rpzq|aZ8ETL;q0M(#>@onXB6@~jb&q5HW~e&1|1@raHRlt8PjI%QD;BK zy_j!6e_V^V3HVBR**hiS@#l#Fv4@TJ(kTh(`fl{Sl_;Qfv!V2@M7FkkpXZfGJX>qt zw+(pmetDlWFz$?}X}2e|ctjL19-EZAB^YC>4R`EfrSf_6KJ@meEm!~XSaOG2-$!r2 zzHlqc=`4R)*rTmG+G4Gq@iU8*d~WaVZq8@Dci!OZN{ioMIQ4;XU?>fU*Bef%=RhM8 zcWMvs1O2<<%x$d0xRHMGzT4X@R{D2v-5}q3Th;4_e>#=~4}~$r_-XC%VY68JaG)`~ zvHr6p-nU=*R-&u!v*h-vZzX2@x;t5>JuWgrRq@Q)SL4c_o$(C&QT-1F-b#ECdMg1O z?SD{OtBvLQU)hg|6`!T_0+8oNlr~2D3+RY~=xULr-I|C+uQOoR{*tW>%Ptl;W{lnC ze~aff&VsiTh8OH$L7xwR{iJuEG54(wb4+ZT`NUQ1b0Fc4trD&)f$vZSpW=lc)(>o@ zG2PDej+8M+6Mbo8=(vNI23`D}7mg&4s(u58#<+=6e}VV0D6N6gJh6R{+k9xv)y6v7 zTY*OejMD(o9GF8nW9}zD?k;2SUD3pV+D0Su0cm5B_LAJ!ZlrH-3rX3?R$%V4kFE&& z3#^=(CmwB&828+NHS1qnG=A;OymVmttQ*-Xwx+d;4}OKaoW)}6dFdvwAE4(};FbCT z&mTCF+|(lXr3b#}ORg%+6GN`J+KACNV!*NQqa(7aG+o?1_iAJO4U(U`cdURj@)$-Z7oa}4?@ z2{oReea2_nZ^1z zb5j&Do$7?Q{W0+owdD+=jnXL2t&eA4aImi$OSE5v!dxosOA1?Jdw(8sN89@u%HJ*4 z!Jy(#I_F-#ndd`4USHDhZQ095*uN{mb8^0UF8nJ`1>;wmdj< ztDoxb>>0h)?3eB`$CSfw)_9zCiOU^Y7HztZoqn#1=*xuh_J(8QvGTL|cD*aaYep$@-b_K8PsKN}BU;syy=` z{|z@7-dd?I++FEQKI&~?+`fN5Eis3)|3K$C?s?cgWtmv%eU)h`hnmkX{Xw4ht+ZZ# z1f7*WIwCIrqbKn!5!h6-&l}qB-~)Dj3Ri@6r6|o(>hrC7gSZ)TKb7{!FA;ANiUT8~ z%j&P6sQ!YyIiF}w;EK|CWMNKW4$Zv{^Xb)IAIk2($Zx?n75oZ~3BF2ua6 z6;Ee0e3H1L3k~=X!hR1qT|;*d>+zX-k^!=6oosv(WIgD>}`_*^rUy^h9 z+*9nm4b}?-2Vs#vW#SzmD?Xo}F69pykgvAQkpQ=V;t9`nCc;Y z+%1+qwGT=@Z4AZ+{*~E(S~QVQjv`Bd)_y#7=DQ=s}M zOyAGdQtgIr!AD=qxSyWDxTNxAt2_@?_a^?KB&eq zKzso5Z8`ya*U7xr4)yeG%%*ysOLKex{l=-^{mMQ7V*uLi3fmZbM~y*#l=>ew{nYpQ z@u)fXtyj!nm0uJGy@|ea6W!p7p&!@n%hDf>r|a+PS`ad|U$Ku|^rz)J_Q2OYSu5z< z*1o>-Sy|tu^sOZn&V8xmP>(-%gz@fRJ2aHOok!#7KD1^<9_HuJ+hVimnNCj)JwbZL z(W9O5zdz-azQmTtPyh4V7a2np{b-GAks8z3*F9Zr6hD{ZAun#B|CkT|2Hpbw$M~bJ zYw17s1jr?uR2uk;4AcKH^dB;gIVwFc%z8>Svw+?)rbH9uzz=8c0L}ECmSzrjRGLH2 zlYYZ#Z8?C!93~z$OYx`y+V@M(@&RK4{0{4?;eG}8ALG>hO7u!!vJ7_N#0%((#}3fG z)Dw{V&>yZlnSRYY1^rr2>qRd+x|QrOO7HX_n|o!uMR~BL|cFq2r@`ZIAf9+$-~lhJb!-)naAw*JNS;wp-*EQuCYc>ugpACdrMfhTK}eW6*7+M8PD-3nJ4Uu zkEwE@Yeqyb^Fc;OOfdc~tuF`T5NSg;oxVNsL`9YfeVq%`e$)^6FTHn*?{c4jo~8Ys zjrpLE{r9Bh4^i-ELeX7V;b%oCr){UXGMp=jWT*;d*YviiiPOFP&vhn4;d__{Y>vw8A&VLx#Y-wjL^UnQg-8FZa9f^P{cFXI25kl)(Q z`iO4{gfo6#p~Kv-;{J{}`o2^7ze!W~Wf{6mk8%ib-?Zh_W*UmC`Z;p2&4)urMNor3{ zKpRZ_YJGy{gwqwH?|AZh-@Wu6rhL}BpWg95lkz{Q>Y(ZHpO?bEgWV-;(mVdq-+Vq+ z$ryxzP_t2`FoC=@pMmG2X{&@c)@*pZ1$2JlKBGW**^aA#)^1HATl>>K=*yPJm*F16 zI9T{m!nOHV)K=IqE@#_Ir}pGN+V`LKLg!hRc40VAhSGS!cK>t#p@c`;)^B`JKd|?U z*hdM?_bcHld{{uwVld_Xio)>UOaG6n|7rf{lQgHFK0)uSBd^ybg7gh-^TT{!`(2vT zSZ8-qA5^LPjuS;6@%#jhTz9tAMFb6fK-q48qHI`JYGLD}`Nt%tBkW_e7WQNP#&@M( z>&~hUe*gJ(QjU*tJmQzW@UBTn-D&uN*hXc1QPd))56(1q0K-V#Wv)*i=}ohR(ukt% zq9Au5;}KbD{$NY9k<#orMVepR(mX?H;-^USs4dM?lxFWK(zMvptf4fNDal?ZL$Oa~rUajeT(Ak>mvU zJ1NUDCtTEEAg{+?2l|zDP++sqcmof2bG_ip3wN`#scvS`cFS%m%coWGZ!Y~pUa)6e z%HNM>`OsE)JCNJ`L*c?Rz5>0!q5M&L)gAoGTIrV@`~Pk9ts3td-gl$4=L37>fia)+ z_+#v^wdTS!ITya5_i}n)v%e=fVPM4YP}n6)yIHO~>;oxZ#yv3RgiGC{&)s;iYuhH} z7b8q(9PRhk9)!Jn2DK^S+Ah3aw;Au)B?@#m%h4->P3%Xc-0x<;DvZ|xDVf;IdPl;?Sn?6xe>eF%SeBS5+QoexFWZ&g zUfPi;zBtX?biu9!_qBt=S*Rqqsan#Wm|~c|RLdpVLfXdsJ8w6vg?p*2CMtWc z3d2~#Uq$+vQL{pC6LY-Ko2@h9W7TmOpxgd)a~JF-pa#ix}-&31}g6>BnZR{Sd5 zWNZjW#Cl5itbRP<@QyWx2AsxBFKl5aCM^8#9?%nB*r!c2+2=*+^3zTmSMSrVY&^~3 zpJW`c`T6k2+%!hChtS@dt!>&@p*7Kd2wG&*KDWO?c%ZMUHHcgaTc-Rwc$6Ox@c9l+ z@>;<2>gSNY!cMcvB8F<(LNRRz``CiMe|fk~IQPiA4aP&!SMxZQ*J6BHvG3*xI?Jcg ze8(KUSV&o(i}}-N;&Y{&Vfk!e{rx@gqa){opgBH;^7gZ(vF>8o_DuPVL;X!Phtq=c zzThJ1r@ps6J2ly!Gi>dlGjib`)t+3{9?`Z#{KJ%O8u|@wLiu~BU8;R~C8~WV&==8E z`!=ffxs|;P-_Mw-_U)neiM9?=&?99j_Pb`6Y9HG9nRUkoJEyS3>7CqoEIH-&l+M?Y z%cVTiq3BNB=~#QlW#doYGm`WU{=}_p>Mv0~jji+-sq|Q*onAQmRh2tA>`hzP@ylhp*X(((kYSr`Vbd;^d0{*B#f0IX z{z~aBInIch*ZorJF8z7K5#H~x53QsBiL&>2t$vsKq>imuIpHUlLKK&JH`-)D-`E?XOztf)I(px>`(9D@s2GLo*3fd=1 zh#mwj{&S+^L63*E#yISMU;aD%B&}dsRGK?%I<)znUp(@X8~l2P@*7R>`|u5?vQ3N8 zImGsu7e>wS3rCWBRex?H9&O)_KG>M}aW?f!Aa341 zNHaGD8WXNq+-#3ECKiu?Y$9%6HBvL5(HiMoikr`R8xxuSxcQvFF=1~X{Ia2a=o|D) z0rku0w3olgdQ7t2Xm0_v_mCFN!Cc9;)whc3`)k;n{q6afC-!`-xa0ZQx9xXt^`x+& z?fb)CwLc6}`@`#o+#AmNhP`1gt(P0s`F`FBxi4VN+xNZoUH`rBeNN@>ohEI=us>X_ z%E&wM-}|3^UjPj~&T3Ogwh3nql5k2G*mR*{a-=fz>H5^M`cTw0lF;tVbRm58d4j)N6^f2T_rsnVH zWMAL(>r}MPj0&k!sVjPJ2Jwm><;Qdc`iAKLTZl&h55agd#Ls?yw#GOe4}UCqDUYRh z>Xp0}(t&4cRPh_XljZCgGr_s((pMe8xU~4c4DBN^?<1K8{<|`~ABiVQvY3Z-5Dy7? zBjrh)u5?F1xBUnDsH)ukj61eW9QI0DXr)$X6cO$CkDp1OY>d@TdEoc+E|upEm8Ygp zo-WF>h0-U=r2N2O%(7)fLs;p;#s)4o4O3@SU{h=jl_dd%LW> z+oTSK2iPgpKmU0#HK*|oKL?gvE=}nVfZlz+Li#{jdAz6BA9y>3O{4T5UDllp=7L_1 z7|@A^j4nkpFA?>Nx_k3Hsml2-m1C%TIMB9OYwRy9BxzinV^2no(K*;cYb%fGcL(oh zdF)&EEB$6ei#}*LqZ{LpuYIN6>;zBxX<0{lG3y}Ym=TA@zFX(eZ)cg5*$h^`SuAX~ zPs=0@F)*l1l?E6*0iT=iHyOv2&Xz{%>!8v%B& zL^#;soT2Wzen9=yphw~_Kl*N>ht53E``|O!ziH79roBPmbzm?Q~Cs{uhj1e`Xz!V>k$3o4)=55&(L}D7-WLaRKWplQn5*aq#3vWWN|pK+5-M@@rsDa*yi8jw+7?2!HuV6U*B4LVQNoJ5~TsK37& zlTCembK+*I&w11b$JIOLNJ!HzlXzb@gWiLT$5{uP6I&S7$@vQk>r!*{cIm^wWSx*{ z5s_hikG?&fzGuB>D2%4NRM-q9?-(>Hn%G~|Cc@h3rc-~#=hW*Q`>BoBqRpyq0scn3 z9ym0&_w+0T9fo_NuC+UaKjAhL>vxC}ng?;JQ{>Ho=0|bjC!r%w^JJY*&X0jKFW!qu z-6`nh08gTgg<-{UxQf)_y;A|8oJg6JaB%9auB6zb3(dmvJTQ<;Xr71l&aGzcW?8!0ra`Ze7~O z;J-^^7k5Di1@q-hH8u1jI-))CiR-S27(;3A==E1MT7K*BiJq)}{?r^m zefQeS3(4|OZd}MVe|mzk*Am5y0TDINlXSgVq~`G1JrbJ@eQ>afXeq}^G3L_lWX$hk zT|OV|aQsV!?yQR+c10L#!rEUq?v`imFQ{H~Po%>CrNV!9qGt%s4BXQlENf%T+l@-r z4EbwdE76AZFis}b;V||%I*%Su`GG?Z-Q$8mC!gWlXUp>$bj>&Mpyhpd(6X=P+3Qy{ zW}1Jjf&Hok`@5nu^A(+G5Fc6+m$YUv+h<8y)1bKqdNb#%o@Cr5>BX-U=G|M0W_;ne z{B1lY>CfuK$$V+mRj&1oCsdg;k4awjfZ|oV6|b69H0h_`!joUp zr#}uJm;Eu+MsuStj6Qu4r@r{~lT=^Cb9Zo^fbEOE*lw%mi>facs=jzo)qAY!i@ZL4 z@pk8b_eHkqi+(oTxfgBUxLuWb(f`mFmh2KV-92^3lJMy+efCVIGc}k)>pzFqj1zqW zejat%f0?gW-go`DlX>^!^ls5IIf~AJos>oAYs7cKM-k?eHD55M^MP+^VH8t%oZhXy z#lr5(XMEE(#yj3md;LE3&0*vITORNM>fypTv5ktuvUxfCGP}(S^&hnrnC(aTJe2k) z&;_1;uEx5+7N%Z_)+#J~rJ?H&vJ8C2C(;)L_fwGl$>um}qfTH8m1}aYvc1%YJ<0XD z(@ftMF(4xtN_?ezbVPWxX5)BnL_kkKdo{xTi(K@Jy{GP`?&P|{HDc|V=_d5oC(wRZ zkVkpwEc8>}fLiZU21bm({;4~8wf-K@&r6s-oNSJQ{O=c@d`n|K zc=h*%&nxw_f8_s{=#>=_UAH&4gYV-YH~K!!2e-l?{LPLY#wvw=hovv38$Xfx zk5gZ}E#FY^NlkUNXkpaZqqwBo~2L7qV~pDN&=0qXyNFV3{89EO!%qxucEcqWYn}TGHQtb2Y&Wx zz<>AW3a@vmfc*JCTtA5i2~7W?-ZbzisrnU4+)CUDS9?DcLG5ww1MpYSZCY~YXY4z$ z+W)3NeG-iQ6HN@E`hlkn`X#;eA$lP#EvWA1yL0TV z@GbSZ<6tN5%`m30e;G*g0DLadFVN?+?(H4r%68I9=ThldpT18z$QE4z%$F(?@)Xtu zCVtf!jV7)*)m+&`bEQ3+lm4vK%OAz^iIu{_+;ahIB^KSR#iLu&ssFJz16vS!>NPY! z2GU$W-xmc|32zX0v{QJG25k#obdGm7_v<0>MMTHgeO$x0HGEuadVQRITQjCbDDJp& zMdu(bl5jZYccL!f#er21Sxu(WKiPQz_cW{nVmbo#Oy@fNfA5sIA%E{Y@|?t(giH|q zjbHS)CI5LYd@SiweeF>GHIw zN0#`~iC@w;!?=3`#;Z2paEF(R*7DD}AFzj3J$a1nR9$MHDGJiM3PiWicRyhK7+Op3 zF^Q4?%1kj{=J`vTF!(-dZ@r602Dxr4p!Y* zRlelS&{0wT#61e@D$}CJG4J3b+mtjphbwygxFPxRn{~$YVV({5fjh7A$@>NLtG+~N zElY$G{`_i}!0u~ERd61EyXQ*!wwJygmcB1=mjc>2w|Aew`=inZLYK0hPmKSr#|IQv z8ERu+6gXq3K6$ySKd!v^zkQNp%t~qPGq$VB2b+R)Wqa@&>J!L)*!BfJb{tE^2fseX zcs;03rjk{lUVk-GccP%}5dH#%CDnd{yWt9dnD2(Id*KTjyBYt(qUCTe4?YKdzgE!+ z{VqEyZPg{V?n1VIr*Hi6lB2AjKG4!Dr#&XF@*KZ3mFM%Gp2sl$U#K{oYcKxzST8Mw zIDbwmuDws(CR@JW+v2P_^!nUm$zrYLQ)}KZhB}?YZf_&@b=<%3{sp|a8k%3=^-jb7 zqt+JtIPqidOM7#o>o!wgY#}=OjXdmW6pph5{FM*;8RT@d2COp~xY@Hn1JD>eeA{P9 zlm$JAdnQPI{1N5w&%Vr(k#S!=a!E>eY8>L4qNNn=aM2%hQSGNk=`+Tp%`I;&<2h76_b!fKJ~faegm*McZPx`L@`r^0wH~{tHB`e1TY( z*kXswceqdNbFukok?*^;1;yrqq8AB{F$Tb8K&uh!eSl@Qab`P3X;WBBa8v7W+{Cts z^DpM#9#Jt~<2#Fu#@%Vv@$KIyIKUcBA1Gxszyq+$!n$LvR}Kxh!)Wbc3tFr?ecPINA|>A3o?%o^|fGhtyKa$ zO2QMtaFFnCP)uyAqwi*sL;MeH&*<#>a4%f0X&03$_`ZhrEQ0rOmM>3me}nkQ^gD-e zMDgMP%QhTkC^p~=3U*^0L;SpcC%X9&o3GD;&gT;WG$5*KY=6d8Y8+=kwi^`TV`J^PD4-zhFKHs9`Ul>IHG^v$57Q~HaZq`$sY?s-+;yKjmp&70#|n&T@p$5Pst%3Bxm zU0kp3Zov2KgXwJZTSIAxft0TJThK;7MxGwwI1}LOp;P(*?jc{y0#1(l;&ut)hM~_% zzU!wPw`0C2G3Ps)IbY0DA+_=7hb+@CJu1i67zNO43#U^<_m8u z6Ht%t*z<46!>{5Mzrp@d>m*YM8tLIujK+KrPBVwerT+A6)XZeiY z4s>eJS0GU*`X#ANBjU85;dc)x{k7|;?fKMKh~QaMYpok~tdGciGwMKY!@5g#MTM%2 zrtG$Vrsh|w(lNh6YRju%jJ8x8>F{AgZFn&a`l>meLuNN z{Z^D&$1$uP5lw0x_>M3yB^)$gth>J>xnKEp{kRQ2;^TJ3aS1DXP6CT_sr(tRCvTEG z>xFC^BkwvN@srVb2e)xPrRPu?_;B;?k)p8W4@Ba=zAElyI^nnN)Tb|drW-om`RE~r zjzcUlUk=l8=LG1ULz(rs{}oM$@7w;j|Lvn+KKQ{uJG=b#f<7(%g_PH@&aa{m{TwS+%4}5ZY^LwGDcwot;Zx|@f?s?) zJR;}Er#qy>D~JO5A-bN`|kJuou2*q@NRlGN71wI4U@W4kEuCcN=?EYcw@=i#7^LC zKAUrxc_+xpoS`S@y>?9OE(2O*jc>77yu5?scX~1b?8!(?7bEmSaWRd1q*-`^JZ=R2 z2M>!G_N_Dy!4k2~yb$4}QaNV<_Ht$!w(?P5Ca-RMTir zPzPsBr+NNx|2Ij{Owc(kX8ylf99sVk-CfOM!*f!ek$6t}ugAVYZ#v@_9fwLN|BQp* zB=J3k+CW=<>Hmi+?kC3hKt%#j1%C|Qz>^XbJBVxMM!Q(8NI z3kl1&v>&qFzz*h#a)!iR==m4?voo1y?pA*A$an!A(Id#QA`J*B)20}yx3Z)Nr< zzY*n4>wvFE`o;Y0eR0N|SOeO8YvcY(SNrrPk)p zUd%Yee4RUeoa|?9Hc|EuyfR za9&jlulI{;z1i=I`L>wPvZ@p3eLamKhw?H`GVjO-ke9VE?w-$YA+j8=E3Nlij-g)>ApNF^Yj2`D<&K=)l=j-f;Qtr>3-&z8^k z_;%whmZ5~qx~GeXZuarpSpjrlvt>-ydS|M(aNnBaoowq?NU(%-q`h!l`q}o*hnFydwBKt zln&jNuN4enOuwPD<0=2WvlyrJ_VTy8&LZFal=fM9cUkW&w(OO#KGd_ri^%sWpC;d{ z5KnpIAC4wx8lC&|Xl>~}Ux2w63;^Gs5BjI?X?nf`-%tKvKKrTbvhPzd-4N$CAnmC| zC)HiOSNdAvGP;U=2>)HgpQGH$lzg1Cs3~LRrkyQ)wXjV1ylc5^=cr6Ko>CsNxQt8U zu0gaWbpN&uT7kH@_6zz_j?;DXFwLE_USnEoow>sTf9TP1J{3!Lown3oYr>W*!tYUS z^OX;&no4&%ji*FgCYo2aGmT`wE%jH_o4QRrZUKA-!Oz6B_!Vrg3K_^YgZU)q{l9*r z{1DcO-y#;VCS%f%+9%UtC-E7j$Kc=K^$_h-tp%I4wEl=w*eHtV-YztDu�-UMGT0 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

Mylx^yj_0TKX=+ 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

A0d%-@kx-l4%mTS-f!~oO-H7&1( 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

$a9vF5W0m+v z6EAYz(!^-qb9gU;jN7YKMnkJH7ifmVsOE{ub}a`E&+{NWR9!d%Iaj zc`Hun%JLSot-6JIYJzDKR_g5Hu7QXiV&zrE##QPt=15$ham@cGs zrv3}q4^>UF53PA0mbuY5wHL*kp>_piAT-X23|q0Ecs}C&O6jAj^H|xlk~2Wt8Klj--Eu;B}wFMOn) zhjCE-%_G*DfTKpP6Vc0iY62}iX?=KJTiD+geEc9Dgol1(oyzEUHvQf&bPJOYj}UT? zrV&DR&GF{~!tUI%*H>ix@JeN=dF=V3+@11%X>&A`WCr2|uu~+O*7aN24#qT{=q;wH z!a<$xMi=BglO59EZBV?EW>b3s@~VW9gffp zr{{dJFYB%xsec8(wABA~BZNQSLh8#QeSG^O+CboH&;g}NK&L!o43+y9{(}iVwks$2 zV7EK@MuP1|oPESbnQN8?u}{YH-p3u9hx4GmXu4Uhh4k~K54w4**XO43O#ei}Nqgr@ zmfOrTVYgiN9=%pKF zUpNz`H2!03a}V3rz9WPW0sO~U*>)WFc2K{#se5v zhV(53|2&K{>3+KxcUe&Qy!FPSrZ3WBVjfCu<*l+)*k^GI`$~q+s?#yvuzU_e7F|rV z7I3sGaX9LDLeY$irTo%aK3_*Z^;LwjrM7Y-*)OG(QRB>s_fp}Hiq1Xs72@mWnO+)a zU&808Cwzd8GknxXCY=K(uLqxVqnOfoT(oE0v1T3<)+s~o72F$6Ub7ZnGvGUGjiI+# z%)a^-m>xBX819Ux5%UQ&Pk%WcFXj2(MrSbyjz z71Ev0ygRkC&z;vJV~-u1ms%s!t1{B*vnYL)O#e#W*$u}EUzbQ5BHM@@E8=e;ZK|!^ z-ySP;1CiclOP@;Vk4YS7-T4moD=+W;5bmj?j(AVy{@Z)1=EwI`Na!Kso~jJY;5UcA z1qknII5V%AkkJ(TaAvM2TqpX=fbNMJchGstz*_ZTUmjN_k>`^AiSt5r{G<790v^xc z_aNabyKf+U@05aXEQ9?@z(6cmjsdIDf9-YJQ%!VkBLqVo?a?}Oubh|CU_cLq0vxXm z?K~C`cg5aAf);klJsb`Y|1dmnPrz4fPL^v|cC3i&A>IRm{MH7X=E#|9&=_X*zh3OK z2dT|OweXFIeQMD|R-c~^PvbPmOum=#5kVJCr+o-o9C#h~l-sHc{3~s4+K+J=??IoI z+Sr`hpX!NY@)K<+|Dlb)*xCRe6gw*4_>}V4)*L={Q~UR{QJcNf|48Y}ac+wH7$4cv zpQd!cg8nUf4{&%T%~!y3&ckRvhUu&IS;j|+(Z-6?GY!ar(BDUX=!M4%&@Z*^0KAXb z;3YQWu=zuuXdC^t$ou?AWB&br81uby3}~}LDKL2+rEbMxxZ)?;zx4>~;-+>i*zWi@ zuw8Ad%X=+2M)ydcJlI18GH%Bgw2uH&hm1|`X1y1oXEuEO{*<-fE=4)k37YXFXlW|< zyrtiPy1*T%5B-;FS#N*OJ|Dw;IPUZ;c~8GHT$~xupLf5$U+iT%FMc{N@b`eb?9PGL`A|hX@yHMwR-IdCwzJy)^KU+5h)Zy)6C^^XO{uA*Qn`Vh@>k zf2@=5g>LzFS-xg3&$ac2si=>d?$|^6@{&BlcTwGvXpiRtRF%3{zCOe5}aknyZHTOr2ip(G{JjG|G2Tb_-}k~df*3@ z$_}_syvyPK1ReW}J7?*a%l&Yf#A}<&+f4YTu2IF>^#?7l&gn^mZ<|sd4LYlGYJi#lpo(EYG!QoqCR@~Pm#!9e#cNUG4#^;g#)1VXeoV0tj z=Bt}d8mhA3?!trKFc{7&|L z-+6-WTukl4CSVbKK!X0fSjd+8Ur&6_opp@=Jz-&62s_J6IX7rX_0vxEHTZ z*3g{_8r+ZhA)d_3{vwfn1@r@QN;UW`#oUYdnX1}Cb2FA{@G=!V&)6jFye1GGfSBkt zi5Ank2L(@yJFwQAn1CJ*{CEY73B=pgsCefSc_I2gk^YZ3Pu#1+>AO^E)JGDZ^0#SS zDOEvy_Ncy$=eWhZC%;k0x$in8-k$DzWv|fJocZc5j^QrbIfcGKDKt7vuMH z$e-aqh{#K zjv_juLf&V>H|K0KQ6k=RA*&oF`-HCMis}|q#F!ykmtd-}_2-cB(bzwn?H<6G-`g$j z0n2CDS1f}P@kf6OrZNdrUkTGT8%%vAOnr_3)4#jV0Lu%#VEJCc^6imep*b%l8mm~s zai9Rvli^>^Rn@R(>1>Hsuwc(a+;N9CT`*Tx&h*5Cxj65UT29MRp zYS{<-xW6dR@S#j#w2`l@+NA`xaT~sXfEjSWwhZ!>3MyM*E87;>#_hF@NW+Y>cpE55 z2pb^(nQoqw4+sXtB~lW?1_<<0-)_&4>q_hGu+owCt=vxsEStwR!WY$o zr+3JB8FF8L$hx#)%_xmWh%cm1q)t!cka3{NKfJ0PIHZhm2x9%_N*P}!(>j{*{ts3x zWu;%d`cc!WOZaq?75_j{n$4P{@_J&OvQJ#X$DjPRi*_kq(_|oQW)XJ}WsU$daBjktuQ1K6w_?dSDv-_%YpzwR}I? zl>%K0d!bJyZ3*3-zwRR1jPI==)0L3PvA--RykWg>E96JRCPp zSvT6S$ycfDVsnDOL03Y}CU~7Jtxj{(d@EX$dFsVk9Is-Cv`JMz-jaWK=9 zGdT{|<$uO|RI6F+zf^ZSXYO91!jJjQTCqRJ3`$!>#LG_j=9z&L^NnN5M;mHF*gxGy zd?41fQtGcjKmXNXS=>ivnBP)9%(8Sr={_Rdl{1~z75AJK8}ygI74cK8GJy4>8!`_| zLu@GUk-7A}NBZr??_pH#Q~4idhSGob^>@K3yWRc~tWV1F;*gMi63$=5Hdpnp?pifC zX8!Sk2-5?+SA&EzW6E6VcN+jV?+|Z zqJ32Z+jN@W8X;dIemq_{pJ?2%i08G&sZ2=jqHkYpy(#>P&xKxW628A7BY__=*i5{1 z+Kj{EB;Gx1H{a_lQ>C(tWt;EOxj~!M_J{9UcLKrJI--N^5eV0o{^HIE%dXcA6SC`7 z)z33MK9R->JW|DPTz453ZBKi+dLqBWi89|vn(!#9-%>q~*ILA_6ZZw)+ghvNFfHGj zb{Poc4@(ZBL9TJ!PRKNR%R!D~ImlxEk37iDL4%cQQVybB!Eh|j%rn|0Zh-s;@`2)` z^HN^O+rvVJPkXlLE0&MUWcf%v!R-sZ!RNZ;yR=M0KS$6^z8R1=L23e^WoilzRMreQzxI_ zl*aJfl=q3~DASk9ger0nH#AuQdn3C0o;^#nhqf|&LQe=~_c!m}gKyZYRQL;6_6U9r zauBDSL&y+r>D<3(=#V}v!%+B~)gWV}EGpD{2?R>#8 zqsArQq;_vpmYN4Hcy(9lIeB{~((j`%NB;MOZ`448llEIb=-T5fJ$6r5DjdzD&t{Cu0_K&()8Snqa#!iP7=4!Ce#*KyeTVOoyk1D& znPK585%T8;x9?9C(Y_9{Zu?d2m*4VFc^T_)ir=I7El>Q0PM}?OaMx*Z12MQiTeX+( zT;efZh~*k{E@iu|royG>@1!o;S!^RZ-tZpd6f&b&R1ZJC6!&jIv5X_&BN{9;V5!+5 zanvvJqx$^kcBfj#M9n*fNA*?JQL{7>)mPIu-VIvI+sz%atVa=cim@qCbNaHVxrycm zX)pXv_=7lB_K!Uu@XcbqfwFtLdSU^AK0q31gbVvO=p{0bc@kH@xN;diQ1{>&ZxeD>Qod~Z#vRvr3Kq|oU6wd^}ziO{l}TP zsc{Lc*4Yw)YrpXg$ZY4J4eTdK^`-Rdkoo93?nw5}9*8tYv6 z>64(}EtV{V_6Mz-r+vyi(~j5L&lY$sAn{tA#A|0mt~YpYPuiI_yyh(wc+KM!c+Fp* z#%n^Sk8vb7?+sFS3TOX|jptWkXi)FhNGzXwXK}WXGopXS2R*b&Cq3>4u{t7ru z#uVO2cg(#91l|HZ3)A_9d@Mlwp)BxcS|_2WFa&g0poRZeOPvR69}J^93(pcV>?*8@ z(rS8rQGK9%2vc1&B|D#Ih9~SfAHm@P=ELxeox@E7pWcS zI7X=6?Nsiie8NFQdtBGJJH@`w2%eR%i~ZeJIIl-;hdmA1+$fYu)S7LymsirBzJ}V^ zR^GC6B&Cm}{`!6=a9_ci{fs-Ym!7$|i(~tiN*$4p?(Rz6Ddm(npBw3{Zl}*K`W&E7 zqddc_algqo3cPJ_j6}p(3)y5bh$G~`5Iiz`6fD|U-O{7KQ_S(H1TBlQ);rjn1oLWH zt`B(Hf)+kY8BBLY^)(OeX1qOs%Js;==>Oawgm3UNTl(?>v1Uy&uf&$eZ*6J2r=%sz zf*w%@!3_QjbSh#C;Qinqv~N*os7(jSfkl^FEGkpSx$G!)86V|(3vGh;iWIMlR9Xv7BJYlK#t1qVMJ94b0;ty2V*2w)6ogA2wG#`Z6J*FLN%9Js5bI@J>zg z&MVXUKWj&{^rS&%IVvlU^=GUYYx;WvM&NGTEka(R8AsFEu-Ao*yq(TXBh954N8D(l zxrO~&Z&>>Ef<=jGMV1Y|y-nW{;Camkj}n9bT8(x5Afo_mXMcM*T%SuFpPLA-Cb`BL z(g)&q!v&1b%6AOJ21okSQpcwdYdAvCqmZLmcP-+D>>euK9M1Ws+tS-{l=@~km2ljV zAJ&RI>WdkRfzNz(8D;(%8KuF9UaHQ>@c5z`A5z^wAgzZ~Gc&I!85vzJaa@P#b690D$@9ONkA7k>B| zVvP&@3_s(*&%n*V(H0F-sy3Kq{st3zN#Fo09OZ;&Mb7MGOIt5SY& zq_+a^KgImy$v0n1MtR=%BAtCe`Go&7$R=O!w&baChy9(v4$A>46BD+SG1FNKc*QsuH2ov z?fj@|>7c=HUWn>uB;apht~u;vhp;ItavIZLkD7m^Ht(RiFTYJZ5S3d^AC65zZG`Kh z=2ZGL-4!)s^qDjuYDVb8K8QnvkH<#oK8~8(=0r`6;M`8_?Vt~2VW5FU47i{^#3r+b z%m#Fc@}A%kYlufAz5u=*XN@muLo9=S6M&Nlr(Vu?_?gMevWyP!ddo%|eOK>K?Wm-^D({8P1yLRc!%A?jDE~369trEd-w0SQB3N7dF6DM6N?5n?do13{XY-nYN1i6j zjFV+RQ^cphCfsApoHA3(nj-E8N84ULLoJS|xzT~xe(@yAeE*zCk5PKNL*NCAKF?6n z<^CnhwNklNR4y)Y^9@kXc@JATYvi$Jn z8_^f&`%^6h&o56C@`+quz2@`P>h#@-^jv?vwn|-}w0?Uc^``aP8>HVv|K$=7;-oo@ zQ9s*$qM!SzpBUA<(1`-Am0k&df`JHo$z; zWaYVtUUC(G)t#cd*PKN81I`q(iM?M5dkw$>Kc;1b+pw=k(-}SiXM<>+#q8&3hFKPw zp_lsSnbS`YbMIl>?Rwn@e_eDZf1li+@JXpV|B>XigT zMWliGMU~(zqdb-FkZG=^rdOG<3wO%SGxAcCr%-!S(B4e_chufU{~|M>&eT10@6??Z z)xC7z0FIIBEN<)6L)|HqeUIw4*S2unm{ztynyLSa>X%Bt{@|g5G4R*dB=1~$3CpjF z6RmvTA1~!pPMe&noMV!=nvhXt=yN*}vlxC0g`8?G<9+uLVl=FD-520o_Y5> zf+u~M@%MG`{n4+H{IMdZyVhOv_GrbW|#-gko%MHLEFF$wBKgv zuysefZ{8{91#yOpg>R?ir*{fj>7&%whx~po&PWx_$MwMfL6#5al+qnUw5bmI6n7x( zHy+xypLKPPCwPmM2I0e?EnfR}clRvN#U1yH@xYhP3fVW#c^UP;f#r}bJ#xrL@vcRC z?(b&^T~{kT82od|oi|)q2!20itCN1a23?buEn@vk5nl*#c<$~>tsOJZr26`u!y9zr zM{XSNJNP1-4&I0G$i%k2dRev3PQ2?W1P@Uq94i z?*h9)D~2I-^y;vWN4!G&?HaagaRe_c1ik}*Rn%kiBJ%QC=N~#>!sZ1rv7wt-6=^YB zh?aK~{XR^}Dl-1HbOCG;TF2ax7)hVa!8;NM=>r%x4Iy5}viIk>7UK-~zl3l7Dqoa! z>Ibmx^%SP}VNcUKWj*_2tMs*S40Pf%7}s0%_p!|a?5QUttNc+DIKjtv!``dd7 zYS`&mcl_3p+I-E0w?Zq=uMnIv_FiA+6?SmhV%SW`cVUmT@q(PFMxAT=5gT0C(d9r+ z1pXU)3G_0h?TH3NyhiuyP1*!Mwc)Qd{R(2^otA_hr1ks%6ov`^BMdeF1_tE zx(0LQC?r}(g-?^&CTvcp`9OEy%<&gobk8jtUaPGq+H1nf{VDi)q>o3W1+;N8t@qr6 z_x4C#3cw6obK%oB(&M*S_!1Dm7gxuGtX&yX1lweX5_i$qTyFo|5*ka1Rc2YfxIZ0A z#3gm7`k{|ZY5SWgV}P>WGV65LnW&3-I*#Q8aekk+(jD?Gd0#%w%OV=XY~pi)$NUS; z90`8_e$Z)LBiqFoCMeDN%D-bzE;KvTdcBP1i~TS9=9n&Dq|;4nRVw2OxM+=I@K;QD zVj`U_N3}yAcwRiIK2T4z*2Nqbns|#@6GBVO;X#FYs__+O=e_mpjiK}(a*HAK z?Wa!_eTW`4;Wt&K4|tYR@E$5~$koQ9&>QhxtYZ$hLdS;Y!AE=b7`!cn}kYTMF{pr!edQTCr0ViKKFw-rit+$8qMAdk)4gqTP1xQ!3hA!*=4ulHwR+Cuw`=YI@h;30MD9nEPt*sP;3CEnVJGo&Qu z@j6YV^5H}+aDTt4ZL^8zn``E_P1Y9W=5pMXaALN(=(qjHBn;8g6RI+}-tX2B`64-<$d+eC28F-JiL zov7oz=%YRMHTyRa`;BnutWmVzMib2tr2U4yHh!epIXvjp$G#}`8ho+1+nUX>7m58f z*0$e@Dc!!`CcbQTwjW`?K^Fd>_S}t-^Op;~RTuGJPMVLYG%uKcXJ`hEg}wu`wCSN{ zvzXHwG-t4uc)ca;w*qq$rhVXyG-}QS;t57Hr*D?#R3Fl&5#Jr5dQsXRjRb2Gm5b3H zYw?Nwg}r`zsU;Z8*aO+i8I?crp>-QyQ=TQ1R@lvzX zOW##n;>j_T4>?Z-{U5X5>>NX7#*~?zDy3CYpOw^CPMr1>){(|FjK=AsF%h56zLJUG z)B*(aNXP?-ugsw|j5)UrdrPbb@v*dDDUa$5W4^Oq1D%}_tk-g@iN1QC=p}!>5uiL* z+e1c}?&+yiFNg9*Qa$9kDQ_C3qdeBy)mCq0-bm*O|3fp3j4`4O?>hPpHn2Z2SE9-A z)WZI+*2r8d43_spmDU)TqEYam-~IMKG@9al=A$+tlp8nGz zsRKuJ*<`72qte|qisReIlk4d2ZYz8*se&FS*vkCP`iv{`SPlxkM^89vdP7ljWN@Cj zw`+e2YZn-t%erIyKH-?#348>4kYf-98#J`1%+rUZSl$O)SFe=K!Z#4)P}@hR zQlG$w1kGWM-)X=u3vzc?FxFXjji@&?@@gq!pN`0j>WDYKv9G276VWGdnHb%r@uHzJ zMk~g;c!YREU?23*W%WkR%NZEU(h9H;##6n#*8-V zAzKK~GhKscYF^(0bD9GBZLS#`s%lIBKr|WgAJCccDSJM3oKvquuH&jEdV7Ig}YMVh->I z$Nm*)9vr@=B>F2=g+C(h(^qd^x$l9mtv(!?g+}*DuN$soUN^c2DlX*>!kwYrS@gST zC+pR-o-gtY=+W%W%7Yy*>xaS*_(Offo7Fp#@4#FxCSFd^!s7mM_^0cb&t){9M@t$} z(Ata5L=Md%@eF`dQDY1z;AL1@$8ZeWSAqtDUR*G^yVIjA=JnWnP}r8`vcDIh%XuQ} z!HYMLBfZ-MuiD-Dx%AnCv0xn6_7U%ku#0H@SopZc80>JXY-ipJ-hhOccqUgh;wlPw z`$~AB$5i9r-RV54Sg*Ndca~#(+(n-v+G|DKH!J+^e3Wb#V|ND{lDt;-JrWS>W$|An z(q6gdjNP4%%woeiUbK~Bx#d{=H)?#lJ1Gq@u@HL-{Ng}|FMc{~9Sl@A}S?tN{iNjLdNBCo5zu6xP-_wcPY5X_RnWA+rA$}S7Oi|~Xz-N#L zjP%dpcv;#0cg@nsoRZSOoQx5dHx@c(H5QI&jylT%(L&;nobE`Y(;sOpv~(#(QF+T> zl*0D!Mf`RQ-_G#yeEJo;*Tqq_WC#%3z(KX8i^k@3B(u8OUN5bJ|Q(9p*NUtrlI|73#3%^#X;RKUy7 ztA{@uj1Bsm5!*g(%gakahJp9Y2kw8}7_Po)xQWkk5d99lKcCe7qVr#z$$UU@&wDGs zv-(?hT5sFK{ZtqF>9A>3>sd$Ufpe)%!sFl@oizUmg0Jh$Jl6l%OzUswS1sN$lh5(i z9=#L7vF6ln5f9rV{kSrpiZdnoN>7jfr?I@oSS!@^C`<$P)U{&8LHFGkjyzeunm60b&EN%vuq;Bff9Csmy%SA8gQFf;T_A3_eZS*OroV^1pVas@SKekc-0( zKy_ppg>d7n!O1=)U#Xe9o?{@8Wy6JCoX>yDBc*$&_;8A+im~tFCY;{YK`qzHRc3og)1n zkCNk;X}2LQ64Za`5pAIl#IwY`=OTV?H0{4wz3^kJuphFhIT>X+uHr;GqqIi;c!AeZ z=i_$>-<+M63}qDEN8iELBQcA0M7;i4X4TPYSi#5Ksylcryr+q#vi6$YKj`ct!Vj^9 z`fakVBNi{piER?Lu(1~Ql~sdw;#ND0j@ZrvXeYi%#~2w8#p6Y}@wZIKBNFg&M&k|; z%$NXeK$5?A$R{w@V=#7V*O?{eXR!_b9GdG7XZxx|`s_e1;8Z7Ts#sf6PxD%ai%j=lE_II0MaDhbCkSpp994>;^FRP=)3VLJ@5 zGz=BKh2}`W;BPg{sO>U&Ppn3{a6P|0gQtq+N*~;i8-`m5i!h}z0?%nV=JaUJ1Sdf33~;dbQHf5_A6KziFHA1n>5cHu~mU zwP~SR)|azz)JTUok8br+J<|_b;RTlSRx0)Er_ieelNEICad#dKy=gyuFK;kU2Q5iB zVWq^c4^5_h*KesAmg~Ph7y4jJ%$@SR0&|ud)Yz|rWiLJR3+$&Bvr6uz48CLL@II|j z#XddvjNM$O)K>34S+7#obKB~vvfgP_uQ(`pK7LQ|M|)tg0EsX~Vca(f_sJq`@ z;#nX4PQGFL=0EvrhO#DC?jiU)94Yq)>^DkP`VDj$ggTs41MiQl+f02-F3&fd0|VU85cETI z$@+4ohc-d_P<#LI7a-xylk&0k>l{X%zfLPvW}B|UTCIli^O^3BXz<63I@rTLj#I^c z3eGO2-=NJLXMT>?3lT$9~+ z$7zGSV>Zuo2Hm+V7cOs*a^d=&uuFhkc-&ycm@+^yrc-+-((eehc|QG*(*JL(6{C^< zLw4Lm|D7}^kOQ~)g&g>Pq6`15W(xW5@t2_u9kLP&FDPsu*UWLY`iC`+Y0{VF!9-X3 zAC~gq*(?us4UQ)#X!SZ|!jK2|(P}l9uU7LU9%gy)A#py!m)TSxh+Qg1D)aQwsmZ~LU{CS7yCMEF+ctxJ@yaqe)M1L zuWxAY{7^048M>0Rzp$?yw6EZoht?l*$taDp2{K^$zR-Dy_ElK!t9!*gQxM6i9$ZxB~A{wg>m;@Nr# zroM*+K3P#d*L-(avJ*4`;}yawzajj(yn0R=_o+yqW3DWiV~%@R?{uo8bnsqNUCJV~ zJKDCl7d!F3Hrt$3G1q+jJjh;UyM(XC5G~OWo@?59K=ilG->WYg%XXT_v9omEuT5?- zmcwWcP0$>6dSexRR?}xKeG>F(r_VS8|`?x2QC2 z5^pv^mw>kDp-tjHrcH9o@%k{-Q*<9#%iTV7g_fDUD@2nx(X5wnS)8W62-U@hW2PV2>Pj$DJqOf6ygtD&$@$$|ByK^{(yvBKYHdVXgH)f9TG^I$LYJ zI7Dk3(TqB!j@MIhf|str7Xb%0I^*i}Z z>zx%lJC`kqC%4w^?A&_7&d%%HO1~$(xNBYdm<>BS$NXw%=eQF3oV~NNjOYjGPN5Bl zkMJ1%$9}IRzBN1cu;z(8tT_q4P3L!mmXcY^;>ibR$CHh<@njv*UJ+XRDD8np+7C^5 zO9{^|DZo3D7SXa25v`2wr_2!jR%yTciEg5~dpH?S&bTq2Y+5JUK{<(?QlWRCg7?}?6~{p3_HW<33ChrrW~w6~_xeb0S`LfV4NOiiUT9wyp( z@x7b1%y5&of%?6e`>Qh#*zWD4t^Jp zPlMI~tp%M1(6899Ot(rMhQ(-~Xw%UI-zb(#j3K zGb|I0#KHe@kB0xv9*snF5B6y2F*EC~UucUnJw1DLW_Xk~Is7o+m51$9`yLI8J^JWD z+a3+cJsQRyoiFxi*tSOr9&d!`4ceov*rT+k7yN#s_V)+k$v#@6cE#Pl(58jO9<}z& zqY|HEPxS1CBjBtZMCah1afY!st~O2}oHhPa+6(baeY}_M5IXzQwJ$z}tYBOvt-I4? z_zIok4#|(W^oi}Aop{qe{*lIH14Gk|CFSk8X6I7e^O-RqF&DDect$>)gfVDN*W)xigXR&V0-Fy3f6 z)IAGltPC-_!on|@Rt9{nP%rF3Ht0c zJBQN$0PW@RZ=`GLp)SMwzqBPT;N-=yY1gNg>?96Ifqp zGW{=i60a_0!7~pDzOVvw3tkZ4alu2wuPAWVKaT3`93EEmf81_%W`=6D;0A&rLEqFb z^eC8b4$UwssekB#l+nFVNqzRAyLiGZoVSTaCUh%84;#VV^gq#LKsU`3snxQ=wagFCAfeO%M{SOfU8jhKb}KrkPWD?gQc`8j3?embJwVOsl5uoO8;@j(PkFG zq)dU12aO;4JOnRzUFbCcPW*@dQw92vFe7cT!u+n;Gso0-3-#GbeO!A;_{audzWqpe zn0SC02Vtu{!MK}f{Bauz2P+P}h4JGAqy8ZFS)B&G9T&}yw_NBJahqzLxIZPm{qFao zFWf^_1WOj}$4Y$De#BTIGsb-mI;E68K7x(!YTC!RU$JNZ-5opVkl=yQ$Azc4T zFFr;)*gfku$;V8lwG00r@G(1BW^{jWlK+6#T47e!|Z`y0AMI9IB=gx4DTqmpm}&M(&8 z519|`5v+gKjW~l38=j=llY*WW&SE2#^U(S=LGO#!E~W`O2XnAZNuR|P-wXM4M9Qag zV}z$^E|Rx)rE0#T{ZH@#jtc4%F!Z5&Dl62aIkhID=bJPSbQm4tYynQzzrxv~d0ei^ z^Cju|W5Ej&KT*ZHa1U!aVJSBu{vs#za1U;=&I8&yY_BVVX3M5_u0Gr7yt>fnJfTlK zdG+x^4tjNPcV}Gkge(iCvRB_DK)#NBZn@8zk4Px-E(wXMXOCgA_0nehkK`imcg zzxz_D7YUt6>%QDhdF{vcHy2C!{nm`U6#SuWqqOB75&On^!`V!ELKYxo^4Z^Y=Ug`p za{BpZ=67=5<=b5@-On8gE#=ibg$6~ z{Z;1Af<&X;WORTRR)+f^a20i3gGFOEAM=d+J~{Zn*4=}yIZjB%Nr6NhwmjyamnW!s3V=Il$wN!62_LR1}GePy+6(MWtpt{?r{B|n8!?wR}BG_?H zK&}V5Pajq2h(hNxJ65kjmlQT;;;yV^Jw{81G5bcT!#G8pVLn52{&9|Qb{YQ?9=2rs zD+sog1VbC0i&d(SiQz22M0?6v4PV$oceH};D(GZZ5q@;2Y-39Ik;gvN+F6tpky#w=f*=ApJh zAAnYX-YVz@&>O zD{Lcph|Y~u-und4D$3g~$5lwYP%+($3n{PT0ODURHAl&Mxss-bF4%0!-*`a802?X$ zYGRmLd)_VoVH=C}ZkbPG!P^OZ*d3JZ{$AE&zpQGbS?m}7vQ9nFodf;UKOGSIc~x@k zcTsux`GP!cAANj^&vc)dVZ5gT|HTbeiRiPA{(O&JKZ*T&5)9Cf!h7O<_v~hWHXcg{ zN9r|HSbA(>`DR6Mja0?^A>x~kIHlg{IJ>^kuhth5f9PaA+OzAOs!A{rjpE@qv9ZQ4 zVcRy$ZTMpW9Xe#tr$YSE?4Z!Ag6;!!t1!Ndz%R7yKvaXDiKs#}mV<3zG@*a61aF+0 z5}#u_HWk1pNk3<9fiW63NW>dBaw0nX%HoX!KIa|B&tkq4wmi81GC1~fa|V1?X2VW| z%A!sw@#tP)ojAYN&Y@HbmL@e-qxs7 z@=~h5FWY)U7YzE3OS`*gL7&o!<9n?l;C!?foK+Hz&!HE21UQGv{7)$Vzkzd`jA>`- z^1bTHOT7pg|0gdegkIbjjspohtB}pk%Awq)Q~K%4@?%Np%0aI*i~Y%tk@|MR&dRc> zf{%ZEJ8kw>uHJT5{=4+Wi190RTOqffpAuMtl{;#)mN76>x6Ua zodJKn(`D=PiedFSVmI>pzqH}9#?&~_!8T-*XiON}9GA=2d`^AgqT%(0))=7|5C0<2 z#fIH#i1k0mLGRd=A$4hg8`@^FUW76pesTJRf>E<4js*K-8P9s5lT_@nX5FPab>}Hs zasYiC>doe8N?-lvw&Zlj9J96HT{ECI>4*h=m)ia5W1k;jJ>uO|e>CmsD&UKiO_rwA(1#-TG7Qf`+GiB9Ndugl9n~zDzjnyPLb%MjL*% zFds+%x+@h5A|^9@EejtinCCL-8|%0J4&IAA{zQynTzx`Eax) zj;<8L5)itX97D_oryVxL=CbnC3P}ZPur{Q#JJcZG10{VVlrzBlyFt`yWrvAH9d|>;E6#{sla$>gofB&s>rW z$p9xL(HNr~Akq|LJwQaXsSb*k)~EwSMWuFVspYLyqeV+wtdnFyxFmMS1p)>cTia60 z+op<^@@hK>Dz#8iv7%xSaz7y+9o!qxp)wlhsZ>|5aZ!Xoh!~YNa_9N=sYYG#+RFn3?k5A}H1$SlJ zE;F3W-67*}N_^`MF@K3X_jEN5==(C*vC()ep*H#qlEL>&8z1;=L$`u)nNPe+iRv5L zb(Gq-g!U!l#{}Uown+r3Eg32%I`XytTiVVezK`Qqk*jbg-WrMnvwc3>yMjK|3&$=W zbrha8(ynsqfZmttxbV9YAK-n38wMNw&8nV4DnETKp>IAK>(gl-hL88uBXTdof8uoW zO|i%TALxNT0rYPb(YHz1-=KlU*!1Dwd|_3`F6!&_v@y+8 zQwI${oal-SZvC;q$QYpRcHE` zVk~{9Sif)e$??om3L<4F^Ln~F5JcM z)u=qMVXxLAVkgbT(X%~lx7wvkERc#5NRGYZ*atVfi90R;bXUv?|ZPO=hGNtee>F; zGr3f)?Oy^Tkk)pd@h0N2(*Bv_xea4s@Sd@AtDBlfQ{TV?(Dx+Hc2_KBgBO6$+8{p= zll;IKRj%8m73ETy;2{>$dd@ZW!p_`AIe71L{DgXciF*GJ)Q00LAdZBuTKX0EtD*akam>`EeFLd1 zEtm+>xE%uqF73BnXZhIY5APuUIK~~gS_9YgDmoE+s6f*msiyi5(Hw!kXQ(;aKVg%2 zYJoh5ALF4;IXrTcj3-v8@U_!z`5Uu(Qg?G~%O(*V zJ5<&}Dtipc=&=Q|j4k){@Y(+f?eW9Pw)ePN-%cA}cxE8AjQR_Vnc%>{2H+)N|01pe z_!B*Elkkm}y#2G<$W%AtzpB!I zOzF@k#7{v-z3FsR@sd$`{|EF=m_CDNW!bN#jo(5_N9>%1^vq1F`xaFPusBb(27PI3 zX+cV^rCSk;nf3-~KGqZH{tp!Yoqi_HJ-3$6k2Mn}Sl}t(V~(;v$L|miJjm}*U7+vi z&xH%*nQ$4M30uYi<8#zWYvO!*-h@6G?5n|;W!P8PQ>Wz3RX-k5{kRPL*Z+g|clDsv&d|CTCqHH~j2{Vp3ezOT~r3&7*kvu$a8ev#6#hrUA3z`yjR zwd45^a11RQcJhbltle^N;SQX;;6Hscv+dj&m3Eop$8l!j{t9t=yjoKdcOy%TQS8U@ z*MIh>DqL;s>j^rw3ApEblqMO+xzUp|=8lVWVza4hk}4?ap&ENEvNRL~;!FG9PB zm&gjlauFXXLSyLA4YYe2o}0lWXcOoX=o80nQ$BRiRV>KtNzJ0UTF^a^0zGwn&%SIb?^ChK#vW zqPK`*k_$fDCwVvB+?b)6k&HqWw^RDy?GvRTo%y75I5u%q@Emg7ipRz2ls1vZ|7;~c zN!%I8^0g>+(VH1>>g?)WV(hTI+ECs^dfu^=S5r8?hk>CVcza;_x#pbbf zByUbe?A{{y*p+FzSp1a{yoMb9uQvZ}j=O^Q5z_%az)s!Ju{mYKXVz&yVp{u5)qX>c z(G;|Wo}=vwH%i5`AC`xn_b5!`O5&y4TrO$L4H+J`a!`Ros&nd@X+Y_o=Sl{$SQE_A;7JUg_581g}hBad?1iAF$w z4Bv3akJvrnXL^9=rqcCjx{L$#L|`AsNnVy%BV2LVwA5Q(eIL_k(8*E2H0?RYytf-Z zyDA#*iF6sWj?nUvop@m*Gh>Dhbq>?6hs+a$VG zJO4)QW86UHgT70p|Ao@A$GgA-pzSXZecK`90?C-y9m1{f3OuwHe9(77&Y^bdO!Ha> z(>eY$@g*N~EYeo-q>{%ZK9j_=f*#2`h|9E`V@x@*upOUoZ`!lzX*xQ@ho=3y3iYG> zhgJD*6^k8m{YkQ@>I-Bpo$;JHAgkLQYnXo6Xt#^@gSUD;_Yr+K7TC-2tELU>+Z68G z4XSVJna__5Nd3k6l-~%f2Uc=oR_-Q_|LYmQrVFvRJn@(d`dgpWlNB+}4>%UoP&uc+72c<3l1h8{q;fk`_mZBLu?dUAM3J|GbnwQ zN*|9g)kz-4TF9?U6l?2P$MV{X11X=Z=$DLFM*6jJJj?t>_ zpHe#3?3dHhv#9P&RrgzndFC2r?@^fUz{ws<>kP5n^kL~|P&(`KhNb6GI(*X)y(Q0Y zXYT?ZlHF2BXHdNtyfg)O(TJ8Psh(MWt1?7nVS{#<7nJ4G@5!w=q%xO0@pudoIyX)U+h zInHV%egSES5e7RCx1zOvqLZUI4$d0kwq7Dyc^St}hd+pl-S!adLTOL0^265+_A1(S zh?(>!ynB>=`XvUbQ!kfC=YiXLk?7zIS)LBR_o~EM+RhBv_R8{FxU6DIbKXUHrLIkE zR|uRG;Lmx+M7vzt^@D4fXsgGk{P{uOiMSUX!~LCGj_JcRmVNYlk@^iE)=iY=#J9y7 zYTrbAAX;hPZM<{XU%S$(jIBt%ufLwCQ+t{U-u@x|zOJOJ3;FL=>1R{=`vnIQOXxkM zSA|z3?@`aj@I0>*{rZ7K6}?xj(kWQH;+4F~$-kp~A14`Sa)@VDen@;)%mJQAqU%V-KXW(y#U5a0G>5GNtoCP6;MPuL| zIhMHL!~px56aCztMe;evUL+cjX*`|CG-`9bS{uo?dqsshBWNu@M6`6fU*Y1IG}ciy z){ui|QoDc$`XP8^dbTy~+1Eak=Kx~p?4$MqN51-672l8A(lMLb7X_{w(fCjst%<6H zFJ8$!?pdIT@s7bX@SJ{H7m_B*csG}x7;xhC7Ws`ftfPcc-Nrgn+ztDKYr1sWKN&p|%#N7>Q1-M3;Ue(eXQzF7q+V#n{mE?A-CO#0W_@2jgAe zMeE~odcI*m#>^STcsj8J%5a`vM$enom?EAAVw>$x8>{}~a;)%9;jm{Zdghde`R}H& z^zF)Kz7M)^-1Sz{I;g0@eOHG7-T}w=ic8zH+?S+oiN+@n@x}_{O$EU5h`8WCEn_tM zkVg+DKT+eu7)gO9@iQ0V^K2BARM#4>%K|?&ORq^@{UeE|UZ0nAt)J;}>tLow${aHV$s9^AUBGeTgp*Thy5xr=){*&2wB@QKf_5O79*WBW2EAlQQk|#sNDzoE+QQlkx_L2OZ~U zKAz)nP`P*a9!nWoMBtgB+C0;xZO1b+E$?lVuLSvsk9Dx+FIM@MDH->s9RsOi8h_|? zsEk#56yMzya49yQHHHgGD9 zh=BeB*lU=p<&R1oGT$k{mYdp%dUa|m@XjF{R)r#BF+H!Wj)-5sDCe`}Kg{PoH?S*M z4{Zly5pi_V2s>i#5@+bL{BudZhE818(b9GJ`TkVZu1#Y8*D`FxO~2*R40|DcBH#R& z)Eh%r;Gy>UV(^)WB>hT%@#C%mT02r7_5yUmlxLr3lnwm?_<8J4U>=P6vBXh;p8IiX zZ~4U|?4^dpydJAtc9`mGq;i+&5#E>djANQCqfgx1H=_Tv?q<^GL^a0aIUZrmE}{8? zU7xe=ft`lFfA+G(3waRt#Cb#eqC`FaKs{eaYq^Bx13dn(IELn2*7-@lM}N|;any&Cc)XaV*z@w0yKDAuXx$ARepe6l9SeZW}kxd-=#LEpDF#2M~=^xl-^8f$LXx9P-!zLt!Y@f+I*=ed*Xz&*V?S|PNTe& zfbUFcVU;$S((a{vn<=eB%|jWbEv2*%wVqUz(if}riIjd9r7xqjVwbd81wAq-J%jpk z8$Aorvu!GW5v9Y2qY`JUN-LnW1(e2m?x@srf9u3RHe}g@n$&XxM<|E#-Ecz6vL))> zOiG(WX?yM~+~G?M$+C=19+t8!^nV?9N_@dVd6sB8_?xc`lldmG%vYuOn{_N-WF41l zllXYr!|OP10Bo_oq~x}7&`;5N01?o{~W?IG89#H2wpjG?~ygQ8<|XN;AO*(VSb4 zOCHdr=XCgI9rk4)txbo~G;$=u~%XaYgZnzld z6~|~`y_o)~)Rz@NHd5~}zIUK1`7ZSdHl=2!q9@e$3~C$eG3fn>Y6oOSr2Rta-hf+~ zM`?~etvYSKKKNMb!=OK#2YE%6{m#cy7I;_Llv*l(k4jG|eOs%_Z>w^I(zh*C>2Iq1 z(2*=vYXal<*M%RYBt9zcKlb9zlgDzdl3~wOb8(CMZK~f7s^4GY->rOxVqN~})4^D7 zobFTl$0t9L>A5QXN;S?;sPs%VF1i|*Csn)uNbLp=>U>HIWy!QhC=GGZ5Hq?$rTv=H za0dxl%BRv|ltwh6*PygRs=Nm%?ImTK=#2f^kEM*=nvild#sji6>%uvTDwX~w_A5~4HT|5VbLZ_+cbu~r0mAG8Vh zj~_GK$#1LYv+$hKXTzp}-n~(!U+seJX`7h2Zy-g?74hsrd$y)+&?yh{-$ePZNh>2C zSVSi73-_|G68sr6*seqCU8JoMz_in#Hw@7^V8lEQHW97I?a;M+jbymW>X^Om`Y&1Y zpp&OF;vtS(qg@Q1ajV*M^VGZsK9P0%sqXp4t1_MKX4=GP>YvA`O+dGBj%wp^n*Yta zHZg4j)-8BykGrFb+hnM-Nl!nUX7ic1G(YWZ3Rw08n#)C$=FgUCW9fH0)(^Ge1~tY$ zRcCTw;F0N+ccD+wa@qrVl>co$FWSV-lpl2Ixa!N_sf{|#73`$lMy!rx`L(*Sy#ALe zfBSuOwpA0K1l`;96D{}n2J2@1B{7fYB&EuDl*-7rT>Z}BNaz4#DdJu#L&b;gQS~-Zy(5fztI=#1 zjlh7TGDoVosb|GsCcfci_B-d83?blo25lPeJh!?(#CTt;;)Wyk2y_u_*P=`L>lQ_0 z7in_6-l+EdUq2p5Wg2g?%yOg3i&$5gH21UBJJ%~Z`O_2fcNw4mZDNiZ{|?oMi8Nn` zqkd?_(0u*&m_KEx@psnVLm$ih7c1J0bj&~UxX0JA4hCy)xhgkA<(gFP=CpONhRR)x zcpqcnS1`1`R#W<|%4Py>zMSifCC*lBiq88-`iNhuR_|aAP~N@to*(kDdhaszp03{8 zOz&-__kzRTyMx|qr*u=T=iBJ_A>uV7xkEJaR!Vz|(iT%%B&`o2O2^&!JWAiH%DtJ= z_ETQm7erOs^^}J5qC9s5oTG~bQ`%!AgHqhp@d{ZfX6!fB$zB?`bJWBUbdLyMrvWC*XMCmcas)9U` zmOhTsH=K~?hC};{DXr~SyQUjC4W^k zlH-NtE8ciBt&>8pCjACK@~5Cbb)Na-Eu#HWqLHT5S!v-$l6%`k_T)NC4|fQ^)xoh8 z9)7xoo6el}$g%;a971z+KxSV?FEk{0esu>G^a9_!ZvXQ+p&C3Y_I)v9NZ zF)~$rVdlZ<+0WFoV)foibzgjz;=M5zkDnoN?9=bT@h;+Wb--WFSxZ67{^y7O)KN;0 zz^6^6|DDnxdw^Fj$&qQhDDAM~)t$5DZX$n6Xhx{``y$>#E!>fB!%e&_HtYMwHb-XW-dU!i`_VLnF2hH&QDt$3W-j;yTi#9yQRg|pom zYhah$LT!12^@I|ax5SWr^DE3!uhA;dMm^pv>ZY*&sO2Ym>W_C2eXix_c!o4QE5u#g z@N~1$f?uP~wlb}f21C!tu^j?cFPtP|gdD&S@NH3=J^-5kol$QTAN^em#D3&&EI;F$bvLh+6 z;NJ^j#l{XTPZ)z|CzKl5yKAmWw`%ByrMOJmjxeiS9REG z)EknGp>>QKg?sK@n!G1-(YgF&)h71MJEJ3(_(}Ag!;MeNI4nLoFA&qUSbIR|;TEwd zu#V$OUiF-mMNcPr3-ND###-j*r%yh7UW6P3SEH)J~di!YN z3!pcUkmbr)kf3tLLw%=X8$r&P;nAQ_uIR=a9jewgCSPdT`p~ zI?buG&v&YPUZwYbA68R}hXdc`$VPtF-8Qp*hFjk|cm{juyO;hm=s%PGv+$eNM$NFZ z`rcFUcV`w#{_e-0$h#8LCH4B*I4^16Kk$J}_o?(89Xgn%WZSUx%arco7b<;>O21s` z7gi2Sm-mNF$vTz(A>RSMDLmD03fR?TReLOV=uP3SKHY*YBr}BHnbx)J6W+>qb?}>4 zu_Rx|-5}zddxD6sQpdWQ9hB!|$FA#&305ThvRD*r;d`J4_DzsBywJn3j=|hJ$a7q- z_`<^aSOWY8_=x@wWm{h)dc*b{87|9ZMl9%~*w#$1VR;e0?V82@)HcbS_E{<}WhUE> zwTQECi9XL(EPz62{>JjX}F5{m&<0*Ob|7AQoo$2S4=8;y(rw9?PS*m- z-zfVx;y*V-UfQS1@dcjhzU4iCZ>h>#N_ig`miPU%ymKkmT^`G9GXt&S)nV=OpQ>Gf z$bW7Z{KBbi8Pu*t>Q0aSW`e3+;k0p67?O3T7`s_&>^MeTn8uFAPgmpj-~TU;-y2P` zosdcYe-ZoeN9PU2K72m+KgT|Nf9w~>K3s3g*oQ2?2W1;|)kdd%x)Y}x_z;wrQ+EZg_XQ?-xU<)ixdsre7!>TxS9LkEbM-9fId}3HRP8p7#5#^w~ zy{atObR%vG%0ih{R2Ir~+6DdWLuq9?I>$kK0E|6!gD=awB%jhvW~#HJ`+!Uz$$ZC< zZwvga_0gkj`0_qXb!xD)Go>!K+}OnYt-s&TK2^v&^9%C&R9;uV(uIj9;^^1>a+lr7 zHh^Ko-h61Rp(Syq?-&zH@Ld6Xb|$xUVN9k@!TQMq&y+oXnb+R6D$_pePU<`2%#vKC znX4^eIn_;BVS#s;zMw@^Jk%oCPoi@*>lA-=od(-TKGXj?S0lb^9mkMcU5j_-+7&hJ zViMoy-9)^bR^*(|BdH(vZQN;JYW`it%d6#hd3tc2j13=e%g^F_iGo2LI@Y7a|7m0V zpN|l4FG}y5>lIGX%2USM15V7DXO2uUPB?IjX-pew{2o^8$E)lr|M0G~o98k%KK;42 zmHdac`ToCb+cs+3`$Z#DPrzP6NPW&O75@}-6vI6UjpKzXwjbu99P{Ghrg6< zA2w*+7sYJtUZc4{lvP)s0fnMW0&Y#xKbHe(tAhr88xBW_}l6^A@>Dex0 zG}~8u$JANgr(3#U8$Uu@(*qhLZB}9~*n|4n@36r_{AgFv_mX@5hS*Z|mMc4m_@0xv z9`?bQ3xCV!*=D4=L8pC_=Q6)uFnE^H+5IW*T4@jL*G5a97PS|S9F_J(xGUL3>+w`$ z^oPHlJmz@zh8pt@TGzk%56?C8W%1yDcwRj1WwDl?J9HaZBrbghW8-IPvs=#MH5s&b zIoO@lm&QO#K{(Kov5@3}MOaUC&VBN`_n8-)tVvuE$j$J(dt&qZOqVApdj0b6-Ze)WDT-7m5ozT(5i3-`1!8Z+SNET!jR*U8U8TiWS)FZ9RseEzWK8T5Yi zsPrA1PS49v@%{>W{<@kk|0&)N({tdU9S{ybJtvv3_-ReXh|11pyPl@xS+DkUAK{nH zaR!XblbJ+QX4AMH}|5I&PEr?onyym9O|@r~C|6{>8(} zKbOjXKeP$H(d^s(d>-+lL`xmt1YqL%CpH)86Pq*K+U!KOq8-bWZ4>5Xo4JYUuOGN^ z`sH+{$6PMNDK+W^d;?JK8F?d5Y8Uc%=8opJZy6`|S+RSxE!zexl%~ORAgIpNvZM0O zsZ-@go^BckGwsa4yd&>8%KIepsxkW$WIXjAXje(NaK}-amkRpaUwz&Vta*>(5pWma z{D!>z3-EhH|1o!&*t@isr-#|5w#5~X)$x2H_D#Ie!#+%O&Hy9tJ2W(zw~4FcYt4TCGDTgcuf~@dAyxF1$1lB|97wMOZg_Y zGHxPpmvPU{`r5d}R=sldk3+OZl*DR; zsn>{n`Y$tU*uOdusG;&|M5#gPiuM~+C%4HMYE#s$S*-I*Z6V%Nx2f30%eu;INoaaQs1UC*lq@!q%SJ-6#TjqnKq7e;#cl zp1zUV-6%?l7cL7*KG=*mihTNq{gkQ?=hX9{LrxzcuLa#F?;FS)*#B+sNZWS!*;BEVK*6|Hs^aj-{vYc23!`Eae(@jpSHJ<|0>EeQsv1%EODiF{gl@Boiau?=vwKt zb%XN_KN0BYyzqCXz2T+4m(g?ZG+wjL$}nCQnHvQ^JhwNpPq$C;@hoc*@AV0IMdhPTd`wq>`U+l*d3B;0nTl6; zMOP*re!buwWdn6s(rWDWL)s>x2bz+Q>)2<>DB-!o-C%f(jG+!YDbU#eex={BZ!N<5 zaGM7?*15;Lj_vx5#J2Y|;wQaHI^K`!V zZGWm?t<&hR=dkNfzAeu+pHU#TqVMKV-`VF1=N0W$y!R^Qg*;nDba2*TX;Ij-lTunsPt&{8DLqr# zJw0DRNk9Pw$SgLu&bf( zzoYN}gFThmCVoTTE9vuLuA@x^>G?zIUD#WDb!kuY$shU|3laUvlKN>nYxZ~5A@(QY zangFpb%$9$&35wi4@^+-0AfI$zh1!80RJ_bW4zDivGWCeb|JS$Wcy2Ys_s+~+BTC{gGA##ogxd&Pwd3oo z>64p9#kgh~k5&O+0XKZTjK~FaZcc{WP+~;tNzSi9y@naNz{BZt6D9br$B6x#oiKEy z&p}-H4OpAIGe_GM!|2WVv_4;CS!RtWGu8<3V}97++@PhwRF9ic?ztD;&?N+wK2EG@{+s*pMK&Q#{p|P zL&l0Na&U~JRPU~As>>zoqH`d-^~$jLuTkM7^f+^V*Tb|EKFqDkHv(ANF;lkpHTYN1 zIw;QiJnj4a5os^hcv`c7J~ce8S=3CH{-d}L^iZ3ym#=sCq(bE`dtp;H>s_><~G7k zZ^fqr%#VIVpOx;RJ{?nMh%ew{|Mq;wqm03iFoC#YyR=Bs(Feb+k4*I;?g))D&a&fl z4qT(lv&A_Fa3(l>eC(xu$1ir!ju4myB}D6SXNJ42(-60Ve&aix1KDMGMt#Uq7!am* zMUw3bCEfv-W0)BN=YX?DmQ8FP#B2A^m=tSy;#Qig_t=(xlUOutZmyttc|q|OGqXO= zV||UDKgT{`@+>mV0ujxU{J&qF!R1G!AJrZ@i}WsuzX4hYn#Z=ZBy;YgcOF(W!mF@T z@$NbFE^xIRnr0G@G(dJI~u;rqLs}vI|DvDyYp< zCdhWO?>f!NC~l{uMG@l_uJ3I69#yo9_=W67)y8)78S(RBZFJtjU15OAKbAHh4i5mC z>Oh}A#q@{D01gjm?>yhh{dj@$;F)2-Hu~geyXl#x-iPhpeClUKm%L{hJm2H7#OBjl zczuI5%p#id?NN2fK)jaQ??nu0q6t^4KEQqo;~5=R*MC!8z?G=#fnm8p8dSlxcy31>Va)0=(14lg^{nebPS! z@0`9@=Eoj`j^Lp0^E~x^eNu-29ly_%TuKHwsxWk!_7JTp*JKQG(2zek{%C=i3;dW@ zueZDgFt_HgzJ=%@V?le3wk|*0Y|Vjh=Ih18dr#M@YzOONP?kpw!V#a}^UFZP>77fc zk9hBp(i^6i+cPk*9rSIK@&m*DJ!FW(9E-V0R8qO+X*@xe(g}aLPx^Kho=W!!j+NT>#W3AXs{MVGJQl}66w5=Mj#F~W!oA%5r7HpVk?>{qYWNP6w=_dfX zHlNa#{Z{QE)t9YQ?=~90nZtOh*HivfDdpcvWq^11o7&&QY1qD$lm{W_`iUlkj;-i& z@RMXxTS$?IoNv_FZ3;gmc>fB+uHBf(&-0CCQc&~a6Toj}g zpF&oJ?(KJ}Az5`>m(tIxIWAUfKB&frWRutZ7yG~y*#~GIiyzIfU+b)d{RPLYfLxj% z!2O$)Pcung9mTfXh(is`3(GSK_78EX+c{6g7IcMIj3F7)jd~!P29<0|@4j9|X^?L{ zEF-cmo#Rd{o4A2#^Sf*ZGF1NW24wk%m7g>{%LA^N&-CG}vEjepXVi&&b>{oEn2TiG zykbYU5sz`~5G3feP;kduQ_PR@s%Ok)V&=qG56VQe#a zuQVn9e7nSZxSHvX)LBi1er!9<-Jj@On)U$q@5_qrIXZi9HS|Pset>!Th_V}W#g`{t zMg#8DV0T~SRpYZP^v-F->*U^5{Z1yzOrM{Tn4gIc$QTrA{Jlo41)U$qy`cAjxwuT- z57;zUGiZL2JU6_y*#?}>uRPscRj`8gQexytiT&dEyqg>NU998beREaEUL;=V`7FeI zAlZV-$T-4t^MI(%{=5u?IXcoy=N66EKa|dCR`%!5nnS(P&KvyGQJlm1M8|TKFH$GT zn~1lqVTiBjLOtFdc5+HuANoe3D5_2=`v~k8FAbdt*~&11i2dbMZo^J^e;nqMwv9mEDHrC?Z}kpnmc8J{^Ybs0n;FQZt$JVTswoFjaGP@cYiGRW{y(^p3^#~vpdf} z4H(lJ%Mizg^`V^l5TN#qqV~YnYkB}@!kR<>_-vr}$%(DfevR6hJGGYMZBRP|+JKle zS-@1KHX!Ew5vAWRqjBIENXqVQ*|zt4;WN@mbBOvOpF^f7%sIIoW2hb9{>%H0Jwo;h zqFa!`FB>h(3CG7tyBc@EK00o1BEJ3oRHO1ep>;F(eP*|mVVrr$SM~|2bYOnL|os{p8y6+mkKlb)We#?>HScaf>_<0=LSbp2pBW)h$onrl&Y3mPd zxj^+9X%lH3S~TzHrme$s)HuMGdDk?FNsD&t?z+UTOz2Of{fBm9kblbFby}-fc7CRP zkoH~V(o7q)x`Wzy&>ZTATb*l5sNL-tH~3wjVlA$rXO+~Z+x#c5#Ztse%xvX8n@Vn@ z^Eq#f$Iz)=1qZ%>C&l~Adi+eA7Y|z(kYRSK@u9KGb93K^WRyKrpL?9eSpHXB`2pXb z0#^>{Kbs?eLr1lH8q1^ExaWAE`dvx#u~UDklCf{@k@6hcxI5?bXUN( zg00pn^*+8=QGJnNefg|g;#2JV0-8$Y6uhCvVau?0-==pF1Lqj6ohO;5&9)T}-r@?z z>KIcTyil;-gE`9PyTrM6>@?yX^#JoYz`CA!=?C(TIS_kjgtF^p+b+ni{?E&%`?@7I zDcW?*|9KvKH$4Zf-81Zrg#0#L=^p7^+?f@Q?Vz)9hYme`ro8*%vtA2Z8RkCL&qK$! zTa6)|afKDr+L?dO2<;Ro%enV?Tixm59NhJMCfgaDr*MN|*HQlLLE-4x_})gF&wlJ~ zW$&dcd#?_fW@8U6I_V+UnflfL4TZ zMxIA^AoV>(bG7=t}ilasQzeO`Z1A;9XfG zz2oR|?#_|#=EJ8NI`V04;!l)+I_s=ky1%K$co)WpXsDxug%0ot)epO`v2Ljwdt zf5!U5Tmpl@2mb_PgPhOsil@`psDl-JhfAB3uh!`LVQci0PvrQGSMxek#;al768MIX zl&|fL^!(U}P2wIJpP0h8bo7*Z=SDGoT&q}wds?pZ=EUD!+9MpR)A+81-?Tm-n?mdB z(&OFyzGL@S20pHu`d36{k-P<86v$W_WQq{&kI-^USC|egD`+>``SiOm)+#P#zmK)T z6Z-+xaZ|z_i~Y$%pU?s4$Ce8txIDQEvC^q5BJRD#RPWRZsY`l<=F6}AA{I0#`@lHM z0I#EcG?q!Tx*_T1{>)3z`Es#KTgJGh&wntG8cY2M(O3`C7R8g|er>+5Clw_5@usgt zlDQmr0&`KDlyTP92=|RWsp3JqK)H_F)jV8{7y-EdOye(*2ey@3*n_SxK z`Rwl!vhe#E8jls3Eu!%>=wX719hA2)4%}(z>SiZaWY!7#`f_+$%QGuZt9vEvs*8KW z(Pww%|@FQ|SXog`p2z&+;4ei@zEen8fpT zftov7K*Cofv)(Wzm@Mo#gui z%%7KJZ4x(TWB+Xsv();e{gz96DVO%!7|8d`AGoyMR(%6(J}tHHewn`SW~qJm0i6xO zFW7g*YQ7iJI*b~vtee8VBR*&Ql}hF~AI~y3iS;8!rs_`+A4hWuyq++nozLxDFDj@m z+`YXEo{j3xh$-4Y=T;76McC@<-?ebB?5b{f$!RC(B=T0!yn|l4sJ&aLy)&J&EIZrE z=D5(Zy+=P*bXKjK%W&=xPmOq|ux%sR=aC9pBVOZ0_QAqk(DaFN3}ItXhC3FTqo~^t zU6JiEYOFGaljYT(7N00g^#A!x(wiO{=k|AX%6*2NA(}; z^p9!`&T`>yX=u(!ZhPKOXCCBe@Hr$)+w9Ls{dk74K490|Aoh4SiHX$a9|CU(wn*yz zTTTo-pAnLNg5d9#sCNsf9{tvcm`C|>PJ5`28&3>yoXj-}e`);*+7Bh0#H`UL^GfDn zi7Se{hdz{f&!oIT%6niKUv&=U%~y3e=Pv4c34RgNfTuFoenI)(A@)V3YTr*(ObGw9 zdV%{%(20nm6MsG->4c^&cId<_#7nYfNT*h~J9&=9&JVN=|HZhCxz$Uihv}WRaUu2BlJ0LerY#myEap{}a z@gLS7`gf*Uf8VC}ODAj+M@OAJR<8?xY98}ya}uZ1JCWmZujW&J#PAv}fBcj3j~oET zQnOg9<{W*%yw}jWd5dIXU=~cLJ`+D;-;2A%(^?1nL9$CW+rSW=UzRq<*+hH%$`;E@ zO_9%;yB;rM$6B3>ATfVPmn5o_z!SI6d1v>{(PuEUNBtpO@!W(zD%E|9*NF81`N*Ju7E> zp;m5N$2h6a1uua!S>9u{bUASy@1guVJ{!s(QTcu9yiCt~8|DIe%?+Fvvi_hxW}KAq zze9O^CuDg`X`hs;@`7Jb|MisrK9#?n`trWgKZA}Ez2*GbY5BiN`GF0*oAPZQwhu3- zXH%$sxPL7iwx28L*@J2QY*+OdY3<5MtH-4LySQB^^Ag~jQ=j49eWUP=I@!L>vF*!O z`i`+w#zmh=`!?A6LjO|Q^F%yC|B$C4V?kFqkA55UAEf_$`d>`{705&Km#^pZ`Wl?= zDO<28C#MeTbmYviE*kM&J~r@HSr zHqh(no(>Gty;1wbztkPXa2=QP{?mv2EW5U1{L*zcB#*;ZI%Y_kc7eJpJeOsN)c)skA z#6!dLP_NRNIAcTO;^KP++3t(g*uZ9QnK}c23k{z}+&zsNwAX6JnVo?C(+t!iu7ixp z5=8oS@?Mt42X?BN+WZ9WATU1LhV?m1^?9!91IJENHr!r))))=GDzMW8#vE{hb~IWX zA71OAwf&GN)|&Y)oywl%=x5Ht7*l^-lc)8n%UB!+p4%eShgY;H6Vs0cptQ+#>0yfCefq@OtY3tMO1m>}x730V@ae$vqfYET0__QDu{* zEBl6-Y7C%TGgV%5cBBAz-N%&u((pC5N%f~%*%AyNuXSp?@Em>FrS>JqO2%A-CFY{n ze1>^f=#zni3!Nfj=x8CDd!mi-4O{2&SRTFB@?i~yYAAnmS26IzfVZV|w6tDw5nt(D zlEr-rAMBJiEMaPsE%mQf@5wqqoIjR2d!YAEOxu+KJxplYU`&%if6lEWXO<0H12@^y zZYwk`BG&!WpIWHi+rze-#6PP$ccdY{$L3pG(`>V^w+mfb_T*vq+N=XHbGVMNlcfx+ zkqrKFQ$NR&*-Y=Ws&@PqX`x`UV_58IAM70Ho#Jqx#8sv->&vVct0~{n(}+Jy()(7W zJ#Xhoj{p3Are+^|wqBH!j^e!Pj?}W*38|iPv{H!gubCqUH8d8 zp)Ow*$3S5pJLE6Cb*OK5jv`s4t4=IceJn2=$#I3zr%tPm@hbD5tCM*Cr`L(BVxl#n zTH(8pa+ucJWZ&| zWiR|;w%r+|J=!|T&RtMxZ;q`<{xFL3%Cdn!4ciOoJYM`6bRKItPAJZS3AE2Ep!2wJ zNary<-Y#Oaf1_ENRo>YyycYP171l!dL=*oq%LpfPIu~1RW0eJc2=a_FYb}?K-?h}g zjbaqZJYK6#WH5e84da!2ty-a3u=`kL`Jyxy(K_MRhzr;1#8&M=@l`s9UPj+YcGb@q zVei*ve28|EOHrp)-IJ;s<+VdoH2WbSD-JsF*$HO}}&V~Gt~ zwuLdwu8vsaX&kp`>%_-92T~^NglVoe8|$cF4Q$`qX~Lg(jNL=ydk`_CwN=Uea}n2e z6`et~R%!eJqCMfHi|A5z40e7s$+94&#lye=w7oP&8PIE3-=lGr#L_!@QU@VFr`2`rd-bB5>baZh*_G|Jm!6`YcYi4BLHUcQ{9jP{@oBG!%~S{G zXFmK^hS4qJ5sJ)VY4C5EGAwNh(}k1MV1r#gEbX*Y__91k{qj-2W@+K%86U~M{^7(x zk(2hF69cJ7PDuH*df0yDIM&quBMEyUZet7dK`VE?L7v&j8dETdUe>3qU`{=(UMLZULg6A^n zGhTh(jsT@CqJJO#2U92eZejiE*S8Mh^G;PXsyfa72l%kCcirn9nHuh=W%7Mui-4>h zpnu4(S;3gctz=mE_yQ+O2fv`~E^+_nRX#?LDSvcS#pJtwdB$c9xX>e0Xp>`$p9Mc- zsuOji-VEk>=WrW+nJuE4WJ#>q4WB^=$Y*ml(vjBo*+6Re*`59#)^Q`fH$2Zvd^gb| z%F_CkLH)x00o&cscf^8#uE2?@2%5b71=*J+xQ|r*{m!W6$+upRasKW_oSn?I0_VNv ziX~1gljnU&=5lcd`@qWkA5D+#z@2zzb!-RmY0tyXwB)pP!aLi+Mys(}R9(>ZXKK~( zp)D$*_cH=@UB<+<%xi*&B)MVxmh0E1-QQd%<4R9kd(xc_@tL{cWu4d*#%Z`)jU^DH z&y^cXeCq}or*8|%_7|l2>w3+=)9&2ZPMXu#z51_M-;Da9YyO1lF3H^_4rcr8vs{&S zPi;>Mw#n)ITov&^#l-t;zE_TgkIDxIQx%o3T@vv+G3pj5;x$KH;+zpft#} zS?W&ezkZ_bq<}XneWO=F&b&wYrUT;$>!lrju39ANTGpR3o`p|$E6dM0@ZCNQ_62K% z@-gBVw9qwpwLh_cVXmW>A-N2GZegO^TZYZoS1~43<~~YaIBv+!6?w|7A=$IiCH-59 zi7y3D0$JssmuSpmJ8K)~Z+zNl8#b5lb-#I3B)RQ^h!|^H_Ld8NBW}JVlI*14IIp%| zAmjUGDF3|sjGolK??psV*~mWpwG2DYlrdxXT)?sU_?{DapPLQ2^Hs5KcYg{P7qlNX zbZ2S2?(=s^e)^b-`GQYi*eo5^Zk?VT@|$6O6k7}YfxbgRnCrztwh@jwWee{>@`A>oupCiYe(o5oMqIEG;|t=#8Tx$!S)c}Xf4vA6b7zLH`2;ws-hm5=zIB8&2s4$Jq1 z%4ey3;DwG+zOrHYwy1o^RK9;uzUnhIj?v-d(;k;t{>xln9Fy|g!`&&|yP-_nw{5=Q zIpHhRY*W?e#Q%s=eS`a-<8{6){AQCl@tj;^RrHR^U#FSR)tAFxWZHA}PJ6?DmTjpj zmF+EY$?@MxZRYX+$|#Oih`B^Lutol1K*f48pA-A3{8_`s;5L*Q4<`4kGLLE}m&yL_ zahg+l=fHWJ#Eq)FZPT6;M=4K+stfD+@vZ;+SXrW*-=9qH<8ykk>@##?`6|xkuT(kL z|A%t^smhs3^;6hw54baH<$-zsB=KF(#WKV@0BQ&||} zgH*=+iLVN$PvEy`F&9-#Tq(N8%DF|^Us3Iw?*8KT-I&(C`RFs1J)PQzIdbU#{U7;L zH%@zX&<^R052Rk}#%a66&6J+b1L66f)$^O_`J1PBZhR!4ze&%(b&BVUKa|hEMbFBMpW?V} z)L!=zy^B)5s$uzVRr#VS-zOxuE-oBeBSE#l=Bs?AF6loHn(#68VLIiVKCH~yPpJ7< zW$vRg4azrjSiY~Te1^*REaf|Pn#MHL$yY(|d`;y$HjVO`m3i~oR<23XEmP7$?D=$B zIO$Tk$BCwj|Dkqzzr0Dz%sF}da3?bQ-|#D@woo3&zIAiPb1Y*nrM+Y{8w=x-860Y;CScIcs)Zh<(^@Ei>tovQGI)y<_U3cs~YLOaHTy!`?VEu z*mW6iD6HE43&l^^TH1R3g0c8HwbMPB&V9r}IAdrWR;aR;sW$u(*d3FJkNmP`ub{kW z_nHA2hxbit$5N`N@(f9fmjM?{&GlmSex>RIVnv(7`ng=?F;$-XRX?Aja${6(zACpp zt=#L?JNfFJ8u$RyUhf#T)+$xLqiV1JnDVs~{d@nPqwEfjSsi12IOw3;{4V=XopEG{ z4$>OQIP%#*_N;R@3BUjIve;Q~`cp^MJce-RtG+)=^LcEX%Le`|eviP}6r=r1>j-IA zJc@R){dn(X>O0$)knEH#Wh)ii=SCZTe)($~1bqFTraiX*V$B{yvK{o3UPS{KyN%c6 zhQaymEFn3X_J0P=ap7s}IQ_iqK1!Vn+b4Rj@+|G7^{|NYfAY1DQeD*c<22@*hmGaO zTjf|DS7WXL2jKLfH4{>6<{gy}caDKC$?^CAHZ@fK?$IZY;ogJ()L44fn3v6b65=_( z^i_!~wI{Pd{2a1hcD21!(^fr9^R_#0w7ogL5pCxC3%ByM!uXl+nEQGKIW(>Js}h&Rkw zO6wyq;neG+jrvDr^B6os{j6?O<3;;7BIC$%JASEnmn`@HzGv6a9OVH!j_B6nVf~4! z{v1{GIiJd_8Ef&`<{}zBpT=S*wHNbWqG)6$$Lwii{yRK=lPII|;ZL#Rr&9M>K{N|I z(&IFSOVj3izMAhJZI!fgX@jJdTWJh)6ir(FCl}+z0uL6ygVWYAmhfLOuV!5m^srXt z!JQ<>$qviA9@weD4ythE=g0L@8rOQtKVpo;0ff$J#~i6|D$HCh_Rv0a_R$Yeel!M~ z|K7rhh#69A{TJG75PettBlK2J5|80L_Zqdy5aq$|tz!peCL7N){nizfo6km8u*2I9@bV*DRWY!inp+F5viFq1rR+v@F|Fd4OXZr@hYm z9Dcm?{-R;?ov-G*O3nAjpA8gMq@8DFowRyoRH!~c_vzPeN@T11M$~sy#Q^jmzCbjV z*A1SHWs9An=lDQxCG-VHo``qQXEptI(m(Xhee`*d{uk1Jg#LY$r*{2qzhWAR-X zFs_}uv#m=guhlN^%>FXL8b$A+Y^Q$UV0&rpUVeOF(mSdhZvzkKLOEBk3EX3h73FH( zV0}JZ@zJ0x^N-`uP0qC)|LtXbPS3SJ)U@Y=(HQGF*LyUpPR&sjt>?AMcMp5#iB9TU ztVz&*V?MxHU*CreO7tm6=Rp;%Ev%sqSGE;Za|V0I-#;ez>W#1!D;&Y=Oxm?ICEx9o zeVM08Ul8~~!3S!>WRd|Vb_fq}L)f;mRuIp&3h(FB+D)kSdZ#M;T=-TNWpYeF_$}aB z)$%oBo*KjK@Cs{Zr_7tlIL8kRVj-o=YHugHQ|O0gK9EGc@Qe4FD}-am1^cym4I1-S z7zZDTYGuDlp*4~;C+15f$d!*{L2ShgCQv*xj7CXo|uWPz| zM9VWS{vcKL>;sJ3@1yf8pw&{|M#dfp0Aov=FR>uAm%)#3RdtHxLgqQ(2f1RxSW!Ic zWIB8Jb$?1fE@?8bYy)V@^Lrkxx$V6&E+x)Zlg?J+d9zDO#tLm1-;hIX|0~sX2JUdE zEuF*82(&3g?>$a=7SiXQQJ;VR5A%dx|{@lZXx;j2h>EFCrcoN5wnugkba4ghS?3iQ{YEw>!UeS_prA~NpT=lGNV>Xmld7{e(vhCVuLLR5Zq7=Lm*mF=Sb z&zeSO4wZcyeUDJS>S1HOkn(}&%uzh&0?KC)e^Nc{EV}biB^#bA&mxOxvM)`4x93sU zp#9BsI&-dt?Rlr9cQ}{6e$UXER6)<-!-O*_CocUyQC3HGj^$D3&S2eiJ|V_S1^fnS zedd^T)=H`iHr|R)!~IoJ#l-a@r?b{74zDH}@(+PHpcRuOZ+0$?tM6R-9lT;J?aWz1 z{k#}$H#vT7_QMm$iYm=@(ioljI&?Iay#%-~kO`0ac`W8q{{58Sk&$Q7?``xh-b-qd zm*MsJy2Q+i5x)!`4ee;7cIaOkD@umdrBUALzgdYm*S#h^KR#@}j=d(!LOHW2PmuD2 zhwYDdC{HPs;i2ciKrPdyA023phiQ(_f=?ZtDUXy*YbF`9rOVe@XMxt-cl`$`&=}kw z6l$wQ*|YTAY_tj$<}mPguVGsAGy7(uHEueOKxe%1odWNF=iBmq$V0GyK>5hy3)fj0 z@!bNrRjp}bgud_{-i6PJ9n|i{^zO`jT7R_uGt~OW+Q%MPLhJu`J(54afyy?%^y<(( zZ8XNZLq~T8thMrqJ2T3sy(+%7_Br+o?Id~wnq(c7Wo)6}t)*kd`@`k{^Y$RMrF`u! z5mPcw3C-6w%DaEqSR;->Hu1F0l>cDq=V=kjT20TKwYY-jMC)u4y4%G%d}kbxxA4m} zmy{P+wivI%&K0ctgYI@7&G#=pA$onj#kz)KjtOvbIrHd!r>xsi4se4I2aoodFI;OC z()l`q_E!$iJFN?%g93)(+9)JNcCqAt+mU0)tMcn^nX zsCPEi`4nszCP&$JS~o9GM$8&<_Q3fG{Kn_(@~*Du>5Rmk5^$iZfQ=F){(|Q7PV=3^ z;FWHtbp_km3p8!J%av=7G-Iy&ez?;!netp}KFdB1L8C3{Fd`|jk&CZ11P(a?*SE+lfs?sA}XzP7H zjN4A1+|3)k| zZ+N3PerJ}%q?x>~3uVt`yeNr(R0bU%rQ>Y7G=w&-{oFVQ1F<~N?tHJy4(G{x1lWmV z{$D(xuFx3||1HPDb&9b_AFH+RpZdA;{{5$T?z^+WIzBmzvE&VX9ovQATweem z^%*T)?j-Wx0v>5nfSzZKyN2UbyT{d7L9Hq2$qlnz`lxuF<<%Y~8b3b~&|HXlF-fOB ze*pU<8k4{9`j_z*a5f<}57ydaKa@E6570bqgYD89_(qT{5o@r((?9>7#QeJ! z2kn_Oh9d$E)@V()jVZ*(>8*(UJjNhi>i9!h?4Jr6jr(zwrM)l9XrVerL>sKF9!ay( z=itr*z`|i4Qrifw6u#LFUH8+u8=&t?fFq&oOcpLtXK^R6#UtQ_auK(v!!?@AJBXOy zG>5DQpfY`bTGh1>cy3hZ@v}zRPbjPh)L%u4(t(#1 z9#+@$s4LXUn4$XH(q8`ff-JU)T10dv6qdG5zE!Nt$p$^H2rf@DO%5O)7yK(>H}bf6 z?e0FdRS3kTe*kQojtvZ4yii-q`tpx2L|@j5R_eDoRKbXi?oCcQUvm)G_N&J(^sAbES7*1E2#IBgzL z7OxX#fYwG};~|-UjhK%(x#L^JLakXiZJMVyi#=wBeY*)eyV;2qQ<^i%wU&&a$I5bP zh8zB3ct1qrgU>QEe9AbQcm^!;MVHCFQcUZld?1wqj`tM$ETPZ#Gvyk1p`t$($Z)aT zUPAi^i#B;A<8JcEGjC1Tkjc}GQS{hXW18|dl_5*sqSBTNA^bVI&TNc+ZTw6 ze-yz^sg-$iJl~?Xi1&Vx>Me#(h4L*y{A2JLUbAMX?9nLOqL4J@n3Qth~cN?u@ zHJ4Jcp&`;M2=yJ9A{laTCA}`Hngx|l*J2JI(uuZimwFzz6274?+ z`u@(QHaWg|upxsD_C7NzjOr+@FXDHAOoCrbOa;fbn4r~v_4iy{8k&bqJQ{$592yIwozI%%Gk_}IOAzvZa#Y72d7#uNQazq z9r&?oV8Gm9-v-?tjl0t~9lnl;@fT|&Ip8~%Ms#!44LvEyF0NR1a{0)Ssq(+|r{?Qx zIo^AK*7;;V{WjJP#(X?Ju36-`TDr1xf!R}Q0kffy#)jw?ebx%(?RGT}V%($b-%z<6 z*Q^O~&2|sQHCsf_U#0qsja5naxaF2tua*6~bWH;B&{{^<4DKVOqg^gzQnHxV<+7N3 zC;Ooq%S*fse6ihT3w#u^x9ID6&-#9mN?{yy)=jq2S(_(qD~vV=m#AoZXuX&}#cQ86 zxzctpRAwq%F|0Yqruy1%9O-rZm;zdJa*@_tkTb5OYmpWhbDZQ7w^?Vobds%zX0nVG zt`V^FT&67_+{5*2dQ!lqc3r%ab%gn}HZs!cKumK(o#P!;&H^gqx&eQxl|C;ucH3T}{VrM;G*`3_FkV%*FW#zR z-Q_c$R)&h5DP!HW4#m0))B9$-igmZ*l(Ft&#D`u)^*yNKTDFe&(z7VX3%s3V#=`1w za+bDS0Q+*L5oW%|OZ$4$*yaSRcj-_&>G`IE;~`PBO2Yx8|Prl&C-JQ~=`aX*J* z2(IOE{Sf0CqcY45YFt;Ha$FD4xY{RV?81c^k`MXWEB+L0GTBd($~A)$Ls{2>|44fz zgcu&V)V?V328gqO@u?#I!SbMPzrrAcjDR+|jUb;nnt4~!Z9ZnjE^SGSU>Xo)dw9O9 zq~C>Feey3?9g#6>C_m`l4%{zO-5(*QylUTE)jrt19|%94*tg*6L}3uLCTNY&cM$!$ z-f~qxXDOVyY?pZjt@AuO^XN~Hd1SoJYD?1-Nf*i7G_EdMM>VeMSWTwd->^YPj6M5@ zuyw?}a140JgJ;HcI%k$$>}6hOkDg&Sx|;>-PIKb)y;e-8{j}mT`FV)Whv~F8yNQRw z`M#yJKZQ@+EkMt=PW^5@!^`?7oFk)3`+KLSoliJJFeX1evp=;Dv6E=MbrY|Sa|if; zFHPz1g&#Y7giY*=U<>hUEp+C#iG?(#-Rhh<7JjM_>!>>vDZqDNp~2Sz_*#fLfVG6a z9-}hX(>m=_WB%cO*on7_57Wk=T#s1#wo2TCZUX{i}!X8d#{q-1C~FqM1MX)OO?~-KDX5cjD9D5 zsgthBbjSj3jt?t+V}Xl>dt&&aXKGb0(2znS+(vzCp?U`~ZE>$qmFZ&rAjafRG$vc7 zxd!#=MZgMa3(lCBMsSR^d_mf|7O}HTEX>45IqCdf!ZJTk zNMAx9V=f1h`QZ_wu=*P`_9H~{&i+&t)x|MT0wZ|7HHnW?wEaqYm!6?cw0AqT%V#`o zGd6e&XreYQ0{$sJ|C639#3~p*753t+*@7 zbl0S@hL58`Z9Td=#k!F%Gp1UE>Wn14#J8d!KH}f>>PV9Im-y42QchU*yvK%2g>gaO z(HF$!HNXqTo5ar3hvIU@Xm0Y$C0*$>B4X>LR}x##-Idr%>AUE6gg&i6M6}ZPgVc6| z)=s#(p7`fF;#=#5--&miIfESyeA|D0 zCosA4iKLK zy0C)i5$G!7CiVbRllC5B6CE&~O`JPQOF84_;3^)_p5-(7ddB^oO=m*T18hBaPOL6G z^Sc)6rn%mp%l6bXPK@6)U&dB3L5E~pMyT@>eSkg42U%JQ_RY|*BK8m3c>uf!?fLmr z+v!Z03rzi0$cwZdl^+;Izbxql#;D7A2kF`BT&-5I63Pc-B@EG9jKdZci{lgcN7H(1 zB)Q+6Glns^4gyy%;I%O4dr_Zy2WQoz7#mdwX#0xGqP!;C2PD=e=wmr!b>`XZlNXS- z#s8zqfvnr3$~dOtTS9;DQn7ZHD}2*3qLnwhh`%S^M5lFG8f+3-v`5PkYo24`g-PDT ze&0AK^Z2T31b+Ji@>2_{PdZogjT({{cO|y(*q=ByVQ*sFuDuCA=x~tuxe)e5jmQdR zS~IG8n18z@dt|Ebe;^+by(E6E*T+1AeLJPI&i!lglX$LjmsYfi-kneFEjCFGm<*ri zIw|9vf?q}Yve5Em=7KQELd!)y#_Zy}} z1mwMvz((fDAzPW9M8nMoNbaU_r?$BLdG;r;;h?^jX&c2oBh{LY$u<2H&apV_%o7zv zV~Y{Pf$A_2n}q7__-r7xZ{gmABkMZnXuGCO+IHy8M1bnLKYqXE-vQgOI?JnKc%i-U z$8=NPZ)n=Z8Cq*%6k5LwA z=QS4NoJ8p?yA%6G>&?_=LkIszmKnC-qlCKkw7Q-5GjXpNsIol4XDp1pJKS!0qQA2; zj8?>OEb`&b*mywP85lV1HE*~0u8GFrN9Mp`sV|Ay#fFS)&oNMG-IZ!hNdq>27RgzN z#Z0sSxw z+ViE)R?Ff8hk2}MkDz_H-$z`C z_2?_n3G5l{otgNg^3I2x42)^2w}kSYix_|E?g(q>%CX@j;~x<}c(i0M_~-1rOJeq8 zW;CI&p^8|S9F+Mn{)}A^txK-MJX8l66RJ48jxlI`D&8IRS?B}HcF0eAzkt?{PrIJ6 zeqhUim~JJ+*DX>0b0yH<0h5u=sJXZ|QhNbw^IGI(`vsYH75js36pM;HEN`H$iGBW5 z35^~4`YxTzA$nFlY3Mm*?6cDHbi*Hkb?;-azPQiJR zXMdB%BR{l;&wv>p`cv=DQ97njX7Y${Wa@$K&?&W^q*Ky%v~*?WvW+C`ln}EQ_E)|* zbV?*s?PzvB4iAYsA|` zW^QxWmi!tkGq<*j%g&Xt1#^|Y>Jy*RR}GV)$I}@!#+c)i*RYPrptB>B(jF?QwKB)mbtU;+eyaQ2v-^3R_3EBfJ}`Vt zx9u_AmOFc{ilHg%LEgkCbVhz6UzkEhN%ipizxmm#dDOCE4Yfku6dZ3MI1kMtj?{ZbVH?uxNC;rnHj);#> zNZbSaj-FJI%J3?A-dP7i#pcSUv9TFfGM4C5@8JI9l{Dk4ZQ9+iZ|9hwj~2+-hBcqbd&>`qS9y~1xM(i|+n?7Q?KzjUuPlO$i?qjc zNH#R(Jr3v`<};IH^h8CaDY2bsF0xtXqVWTE1>Vc1_N>W}d?RE-hu7Q&pJ1YcTR)RA z+`dKanQuxtc9A=aeFHX+YY~V5Za|U0J2}UAudDJ${VDLYu)TWs_WsmTdVe{M1=bSU zGDpSnDWl(C=kIfE2fyHM>T{VIe|cX4o>8{x2h_IBDt2g&imS%CGfhWU9H~ei2`ceSo%XUH~0eo_&4jy)M|<96)^2tB<4}rq8;|ds17V&w$R0 z>S|e$N_D3Fo;alkU*?E(0{xcoF=*{b=AtqRlUg*2{>03$GEa z6YH$C7fi5V`{N_Ng4XKA2hA|!w|TTRT$Wq;UoTc|i&47@49f<8%leyY*q=v*5yV{y z(Vq~}r(j011aWU=e9WRolFzo%??yesy4p_44_R@G5iQtaL<*`tmNW-v$Lb=vpEFe4 zc<6QLIrHPe0M$e9LZ9TCI6es-=A0sn?FG6yrVp^`qQVSz@H&F-%%!`=s5ps?g8`p= z#0^7y3x!9_>kzt``>39yz~7^~FTnnxwfC+XZ@1Fl>`;0={Kk09-zRl@3zZH9Yj+;C zap+!g4r1Z)`p2BCm=YD`)b60i>T+oY>sb)b44=3gKkX~>ZXCKo$Y>>$7jixHEwE3R z^us=;7jLP!K#%>Xmt~4axQ-v&|BcVg8|;UPkK9MkoA2sRE%9s;Pac>1hWE6xImJ2# z4RM(b$z%8Qv#x6vnXj=ZaW|8#lJX&TER z_a=a0tF7!$c?(^fhG)7KNpAaoPpU92EkJ3HQCf`3!ku3!eWLv)eQu@yUHDD^Wzops zJ>NoI>LI3U5z(y9mZv`%;Fw`|d{sW1PtR7;vnBLyX`yTz?jx7dZ`3{QmY!5-N`~DS zk0dc)V`*)-QrYE{m(m3838VD6!jSp#{+H<;-|WaBj?(3$BS}1)KO0Hq^d z*_G7(J7ye79iTSkmbmP)aWq!i@?^>6i1^BJ#7I*-HI3_@JLNjTb04phyBXUFV_$bR zWZxCSiJJAes(*e4GQW%X)Z>jjzhFUN}wC>T^f; zbIh!FK9w}zsr%l$`#Hwr^He9Wmpc_ry!i$B8+72wWBwHI%eK>}rRa0}+fT#;G^e}! z{k`}+mp&`>Fzb#gln!a$FkMmw$G@Jd#*XAS#FXLqQ&Fa&zydi|oWcC=lV=R-(I;iXzXEQfiZFVgtKwOr}CUEyiDG?IXV^OXB>XYbJuY{uM5kU0IqBAVpVT)A%j>fXX)m@!5u*RycS!30XFK@NTkw@NROboXfc!_+5a$>?WG_w~zd( zXVdN@Z}_L=3Gn~0+DCIJZ9j0*-j*@999y9h8dD>CF5905gYR{f5`BO16F=+W9SjHH z-45u_*odcqJr0_bp=i<%K#v1bzL9q>OPJrr9@{**Ma-ph!oxZcEgSKa9{5!553J?8 zjdu>i*T)Ua{XmOA+$m?jy~q1l?#rW?V|usoQz;{8Y5M_t3^rrE@av+_?&DJL$$KIk zPR_*L5%>UFTPxm$oUo3^tsr1|5RVVfx{k_nXDWRW*2gB|gL*oQA9Vi*wT9$RZiCKqoj5jgN8$jrgX0)>wun!> zBU9D1Ua>~1&DG+jqxXGKUmi14dU`&*KQ80c=gxi9?m)4JeF{Kd zaeiLplQPVVEZL6>Ro{L{zqdHCj%m)nOKt8nrLWXt#w&{@%q%Gjn(B91mMjbUn(Ni~ z$9a6J5VLg>&TOQ8*$16^l=02xDH;IW&@DwC#v(!69C~mBu?>O^eD{!|HMlvjj_qeQ zha^TwF4Z$nYv8@Yb3%Rk9_}jj2FU34FBeD|2mY@Ov{o8uJvB~Q&opco^g#6NH^&B2 z;GsLUb)xICBaR&h$pj6wzaj!MjnjtbPtk^>nV)aN%(OOC(j333Wb{Wqma;W;R@1F@ zVq`p)c;%h@lcTl2c8}J!bbtQyLHcj(##(&VrKN7Aa(2<@EsUoYWP0Ju3uJC!sBb~L zxepQH^r2nRp1*wPPu;8T0Wh~OhO92^i4tc|1YOCUM~7tR)ryZ=#&LSC=X2$UiuPaT zgKl6V$=wC8u`eo*^1V``<6XI*F&-mtllJb9-qyosIopTjtA9xwt=;l!t2bw)O_AXoGI8dX^79Ejj`dA0-rJ1_R`+(^&1bI^c?ozU#Brcx)!XJ zWy9_evZPUCsTj{i;Nf5^g7piZf2SR=gGbv}P#ZB0*YVg~k655Qu8VI2KYShHV6uJ; zV;28GKc6|D(%Q!7EShi3&C~BlokEGCN&6K&E>*gO&#pR>+OO=MDQy+z!>!8vJ(amm z%IS9gwM)7Ilz zN~St+Ox~xR0e!Jc>Zs0Ebm*^HQZJmLejn4MuHvqDJ}W3qn_Q8|crk7r4B7wDUrZRgTiY64f1)<}N5Daq%j72`PD z99P|HVm((Gt>G~WC#B>f7u!J;f7!);JcaNZp}HnN(9d^W;C~Rquo`%AOZ!u094A@E zK?AO)scg!j^FyA~f6~uwobVFkEG2dsVR=V3n)ph39vxeIlAR-X=&g#UKC0$nYf$o) zh`U6;Ic}-fiGfXZjl{i1D3ZMIyq)&E3q~?t-KECUHuflR`u*?^<~zhD_UA;rX4q0l z>@V7Lh_S5VhCx?~7^APh?^iZVO>7hU{7pTnt=!M+SQm*i#(DnPO>%EJ?Kx2yvj?ud zma$ne7yDpCs_aL>ckd!OD1&h-WZG`yG2smWM>^8IoA^rT!5TjH_s&=2a7fu&LuTkS zb@B3Kt4m?{7j+ss@g`$9j_;vBfa%|x#|H-Q(mm?a;r|^QnjyJL+QDjRy1v%B6um$6 z`!bS)9Xsi)AM~Asz3JRL!xxNWR^$GN#_O3yQYUi;^Iz8?7D=|7J`I*VueTRX$zmTo zUnu5r&5wDCY3vabb@ypm_JN66b}{f3{J0;hw2LAs$>R`h(Uspj)?tX+r7=!oL}aTq z;Zy4maE?!geDm@!Rd`N+2gbTbzOFq3*;8uFCsM4K*hO|@uy2-WH z0qt_yGts1`Ka_O*nbNpZToQU79iGRL@bzG7s@tS~YCUrXtT~wWdJ};#l`O)_qNP zT*=Sc;PX?|l_lHZ*q9+626)`!TXALtft_=4D+$TaNp8HPuh-$}j}69(kT!T6PgjrS z8PxAOS1ec8=`$3|#af*7{XVAMUZ#gmoZ(pF)msruK-$k<`Com5bR7C*d%DNIe`CNNtkGImtrd2~68Bsp>o~@`pX=@Vng%N~8gpSkXM}FGmXGU% zOjFcOd+_~=zEo>4!gJeR9T6Sjh(KA(*TfR-#0S8>q?6i~IYIi5;r$Lu|2?Il9PqCr zv<3^h%_|r6r*L*0b>x3t+DCExK(?ouZG&E(!8&8aSDis?4Z4$#L%h%85k4pK&&sj0 zh=xM<=5LcYl78m>)^V&M<(F`=SAEZbZ>BmU-0Y{RbYZaXqdd^1Xy)=kyC?95zK64I zt#gg2r1s@LRB3zIrs)A0YnS+&rE!vjHEADFt-*d(x4%biz}}l~tRdNC4f8+M0o+vv zfhAKkpWgrF%vd6S%oAW8Q-ax7_&bEPx5;}8OKQZ@U;%^mL`%NN{?PC8j z$T<7Hw3qdrKYd>60YUH5%NzZk#6)t+`2&>!y}mg@(!Qgiy$Q6JF{kMJ(HVOa-&bXU zuQK;_r;1@`!{gN=KJ7obybY?nMpYhS47Z^T!Hv8=oIV}tKXsp0sXld&80r(s$yB!I zGgVvu=*STqABE_g;(01)&CJ)<3fOvSv=`vZoIfWj%7F_-XV9YRjp8djxAGh*AKUN5 zcHfTuz3<~8Tx{612bGKnT|&8`=xiF#Q=#U}!9afLtbX=|KKufBo_4Y7VeG9I@h6NE z;w|b;e199HekLyk&5k90_xn|eLo|nvnQbg9u586RZxV~Awy~Y6FSDs<5q-~~zQ4jg zrR_Y99Vjz6ROVOJ*tciPu?PJ+_IE$WRABli<4a!*`x}qBz;fl1d}4-aj3xbrjON%N zYkE}17Olpes-zEW523FWjps`KFs#?u=M&%0{){w_qiKI*9A3a3uF{nqx#9@ZJ2%@> z)C-4pq8vO&8Q-Kb25Bn&58AG?o>JQGVeYE=jw+V;vnn6+b>Wp%KKxpUUZSiEuR5ae zXCtE8p(jg-p2VVJA?V4Sm9{%9F{qdh65aC9TA5G$VI$3P4$-#FXS(=K$g8j_!1ID{ z+}F~dg3j_z#c#}*rTWfscVac)1APm&h(A!Dw*)qbEumF(mRz66QNA4-$FODm`l5;8 zJrQd|2mQJ(0sj^)0RI1a#(GQl3oTJGYwoyJ@>SnP{9rl@U@yWlDdbgiGy8jjp5QEK z9FW*4L8|LI^Sv(Imz*<+)`}Kk+WqzR{*clMKLAL}}!RNFW`m;9? z?-py_Sdjo8H)FoUC@-yx=@#1rB}Z$IcaNg^33cN8AG+~dem>Ey1>1zwBjEe}EPvoP z^og)v!M+bz=dzyIXOJuqY!oGsuc1F6e&uFmA2=E@0H__n`IxCSC1=rlzHnUvW3Yts z_+hgS9r)N5rLP|H)6z@e|NX^v2^rx*l*C;K_0qf>P~wA`a5}tTXan6nQ!j%vn-@yKxJ>E zeFuG+^Bm>=IpyzlY~``%Iy+xX;J&>WG??h|@3#^ykK&&7swCoALzj|8b&sWW*Adzv zy3XuREg751I3b8@eY=C3Y^)XY;?2U~80Yg@K7n3(pX*t^$I^_5wKOnrm}NyepYMXb zpQcUPdd`~(KBsB?-C7~yUKbU@e!jXP=?UapImSW@d+Dz5z-duqgD_}~0c#1dtfgI7 z%;id3Gj!C8uf02vg8gu@#s1xiV!zAojQ^Yc0rt&!R^B<%xWdlxSYU5r?QVH*1f4Q$ zV|>heMTIX+eW{lEV6Rci_Wv1L75I-yu(|h6t+Sx3ELJwgA90MMmqlw)ChIC8MZC^ zo$|BO?oQCgOpedBR@(Zr%>>7fxESRhQ*tOi2WdO;ZWss8U<|h)>&m?BlN6viu1VuR zYsBbb{O96k$$ySu{&Q`*F5+VEFrL$q^I-2JdCq#_q;>w?Yfsn#-)-4tYCdIOMk_7WYl+699+!D zX5#5JqG4J<`jUfx_(0K`vRnH&ro`Z!NPFudj337HR)0^*t74Wrw1oAL@=j~R7~JEz z+PdtE`chGq5Bd|tbnFPV3Ga88TXN3e@!p_rcutaK6ZrL1hnZ#o=N~p7TA(I_%5Z&E#*e16v?*DCT2^!VxS7(Yw{p$hm-DUm!BZ z^QYxq{GH>5t`gwYGF88>RsF)tEZ;To0f7sl|x-$4iNj%v+8-5{= zQU9P*Xw@YTcq`GCj?Q)wp!MdNN@E{eZ9)G5zk~M|_NQPU>e8c$CSZtWS~|4iF8b{mgz@?ocMlJXw@yE%sveX5wAZuE*(njQQBP z_ASybF0m2xi_T*IG?xu~bi|!?hgTC%`h4Q(g69+EG(J)F&J~cCt6LKsGt`WEkoI3x z&MX6X7sQ(ok8qpvdk9|QVq8dizhEKL$PL_Ao#Ytko^Y4RbSwn^Xrs6q`?5Uw=U7rrd0?KxL#GJl=3-=f10oa||51YGb z?`;tKjCkT0jr%5!QPVE&n|gWDGqu**=h{i_-AVMg*>X`^oqIrM+z@x>0L__q_o(C>* z*##lT?+$o??P3w-FL%nNu^FN8NS=EZW3xd-Jn~*|JC`37^C^D^+DG{h5}m=>=d@+J zs_T!cEwfcyszwft`JYst->5vZ-a#zc_Rsa}w<=$U%6Ew>3w1hWJ*e`us5}>_JdJ7f zwW&O-UoW=3crOqp+KJlCVm$e@e-RQK^ZD4!~GeqiDgSHc=_+fp&aOtk(x=-Yq zc~WDYQ6A9@58HjjWqcjn*L5iT82`>Xt5ipPs=6ewk7z$nMvQmZ(LiSRQ+vB{7LAte zzxCN6yBDWDPf~jpeRxnQTLc`TQvCm#ZBR`Gt`V+`!s_SvjInQK1?OaK#ij*+B;hvBC_%_o@(dY(r5 zcjx5V4a}FcFh2m>1sAo&O>3WIhKyF|+Kg7lP4iP9f(G@&lr}@L0eN4F^CprO?=%as ze1ZQ<`F@#;Jv%#b(La5#JIS?oU!F%}nTuG7KF(K{>~Pmwzci$t2;=J+2Q0BV>Qh8u z9(BD|K%W<+PitUcgG-;AEYP%XX3)DAjq=&H?{dD|^GuFd-uP6S>)Ason6M#a)V~!#4()BjZShETpsU5hAm1W;=`K)V_{?1n6=U7QKmMeBuGFzLUp!GZn^PNp| zRX4fL@=+VW-?)vdl5XQx3;jep^jI^|@VP|StO=TFO$Zvz7ZANO4@}rO88V=c*2yvB z?Sx<~u0oD6@6m2Z90Wfax}N$sE9s4XBe{phtPb{XYMpPPv5Kg1``t5g%{${(sq*~l z8HtYs8K+X^eefAczn#3tRo-?=?^XAT$7Yg@gjgOy$?rqoigz-5NTv$a^P1aMT`#~p z-P-N%jVhf@hZe1OdBS1%GxOeZo!8?JN7-hlK-q?~-)BwOLb=Nq5N}6v6Vik6bs}?T zqveZNCJzMq2JJxH7-wgkU`s~hB*zNTn-F3m?B>WRG9|x2uLn8dZ6zl-Jb60L&U`ub zZx-JJ${6Oj5B*kQf9gwAw~x;Io9KI#<@@U)vrOm+th*rd@`wpJz-bRKf+1J>NPa}! z7;o9WRxw}kzaHlKWdjb(U-|Kcn{@xo0%X9`fw;srL+Jf0zS2!qD=h)2{v0 zN9eiA^%cnriMN}jWG<{R=ewq@6TdkE*>V@jk-PYwu$$HxY_S--jMfwM4pBvCx2XF; zw)>^|fgN|0J;A^#4%Cbaf{fRrg%r zGdzJ(!t`U0>zO?VMtU8C+5}zBu7tmxLr>uY~%caUf z8P5CfDOs0o6~8WZfzSbN35SzgsDGt6n_$BNKXzb)g`_Vg^a-#t$ffnwt+nvo_Z0Ra zsZT&phrHQJug7;)Q)C-(HXl-J34HrO#>vdIa7P~x{6&nAzQ2QhH_m#?bZ`Mw`N)TR z3+Tx>E|}6?K~^bM7$!5*?f-r%*W9bjqpcSOh+7epchr8^O;3}$;dw4eui$TY=PrNh zAJnd|KHr@>rtI)enmdvg{me784a)vir$MKQ@9$NV)e1VPwGH5i8*s()8j`TLLPm-ly!V<1`2bqm-vCkDbm-7d6h{q+jY@SkL#kkyv8ZZS-0Jw_;%X2t{KXn z?Hr;9QH4$9tYa73zs}{gfO)0-EggDWy(h0G44z@S{vxfhTt1(Xf6dfq#jZ)2j6ncj zKD43bQ`sJ-#c0pPb$PCfcY4s4k)X+HY%zW%N`J)nduiiWFieM&tLU?)#@^B6qb2G`>S=RKZ9u*V#Z8eF0l65KMQ^%=f>5LdhqWh`pJCq1+*8GU4q00iLo!qY2EO9 zdz^J&p}i%9Q_tJ;VZ&vX=JoZrW_j?_COF+>8*T&W} zT=+uksor^1?<{Uh&ak#*rM2ZZ!`h+; zth@~6ml`rxGTxGIHi%GorC1nTDV+9vut2s4_r>5noU!59=|MRzFLuds@rBl%G&Y69 z+LNEwp4wsU!Fpb(uVX!Rhz0_Yy2Ob8$)uh^o0J-bO`u;f#9QIndg_~>*6Z@`OWz9E z1^kif{Gzb{J!tGYd7WgY(dG+*dzdyR;F+AUUcaCxr48yhH;G@uX0yI<$1&(-Iu)J| zbgJ;#R<=g-fm85wR4mjwgyJJ;pVzQn$28Z91A!fh17VWgL(e9BfmUlo@YhympvuY$ zK4TrDXA8{^)>-6eLD+gfbc}dT+)dyUbPiaiCed20r!l+@pf;0#7j= z`$q8|cn^9{v={o=1A(0h;K~65WDMgXw+oa7?4oMmRcd4G)17QSx}0!gXFlW~sh9UE9}ej6R!)}diRv$e+zh*5uih@;uMS_*|DMp_YqLx}+XhCW zU-e7VcV;j)l;g`reLFPHZ665i;TTJpQ}oYg)+7r_Rtc}^AH+1o8Z*J$(3*}aUpuU& z7eakRlV?j`Gw6b#OQZb@oa6NSI9=Vxt^Rf&LZu%6r(n&2ZD1r?owe?tFH=X^6f4Ejm{fK?q85hjK)B49TxhLkQ zy^Hg(xO%xT=)Z*i&G2%Oul$GlCcD$HjfT>}r?!UrShjJ}OpWF~F6Z7b*64Tcj6Dfnn_7HO|D_poESI^{I!e#5KTS=_3sJQ{{(WM|2Hp%s1;!P6Nxp|A zJ}WaIV_#{kbG{CI)uaQlXA>sP59sEB3A++UV>FkDxfZNXUZl>eLOQRYKh9S&m*cmN zI$S)bYei(H9J^Ho{d`Z1b9{~0Wx>v_y`W#Vi*4AVjFEI86i)zuAu}|`%BtRJVcnI+ zHi{C&-i|Lw8s?1Tv~j?1jM=A`)g~^SP@8}rUf0?b4;n~n;Y{no+*o29y#t#E_(-@- zkENNb8Gp@)hj53NoI>-POJz)^GA5hQJ+?6|C_-I&Aek2gMn@<)W_EpI%G~v zwPx-))?w)2FIPBZVQG7LAn%Y@wDyUceUk=2WNIs{Ed5sN z`lyV94ZB^)D;ao~_!h7Ed>5VF8!{;07J4^J|DJ`raJ>HwddJvzmD0~p`+_l7v1%XN zafRev9P#755i?@JrjcX?t8Vg2%aMO(m@&^xj*Ihr7t7n`dcL>$H?=uKwV&ks4LD!6 zjrZDb7>Jp%f^{rtODVMhc*|y)mu1;5dX9B9UiAn21bFSbzJAcAb}RKmQ)?lq@}K79 zr#Ama-RbxuGR6|tlUYr36ot;bo$-obi;I}>IoeP7j^^9+2|q2Jef*n}FWf@3o5nkI zcD8+xW$>mXWG?vOJAR*es57)qDEs#8;KSK=Ake_}W1um`oefDjx9gaOU|uswCa3dj zgRbQZ$VonurN3Fz@94#fHeK4vcRDTS!(MC(-?P=581n`m^HDVBy#oW!Yx)L(_(s6Z zE1%Mng3VRFxrVW5_kund5(f?aRsPR|xNira?M@w4HaB?386Vd-^CVAd<_fk^q4%z! zwqjp_#@5~0KznPQaOksRf1EuskMFbg89R87@}8wn(9xYI22wi5u!-6GXm9ZzrE(5T zcy5rEA2o>X4wk!ouv}j-m+dEjxkGzt18lQ=bgtpvD2rpR?MPhxhCgM**K(cvsGKdk zB;V_&vNiKpNwf#=T~7IMN3_qiHv#g>T8!}eUkST5w-EI!vHCPowc z;H_mjwvg5c_73g$RmIx!wu{<5Vyf zSGWyxsi||WAZE4HV%)T5VBN3|>e*k*we}EW0Lz#P4>Ir2&Us*W^c3>Mg2_$LKX-2A zm?|Au7lDmppX=|5b8qZtj55$<|5SG#_%`qcR3GsND+|7-WKitO9N1W>`~k{~Jd%%C zS#YyzgNx{9EuF!OhdrN*`|3&A_9K%5Hssbhnzjn-2Ru=oi^i7r&Q0_C*yiXe6(i#4 zIU{VybB4Y;iL-Ak@f%1lHCBtl=xVC#@+54Ki?!7>FIL{M&_8HySBnxIF?m)Ocv-jh z-6Zf*@-Dq2G1mMpt+&;}Ke(S__RmrSPMo0JNf;w~#{JM?>yeu%HdhLR{!8dzr+PKR z%F8!a7gQ)L4#Y(R!P2%>2Uz}Ve7>|-k1Ct)*IRa ze)YQ_%C;cp8O}3ZTh4lCoMUJcXm%Ej9i6$W%+8g32RV4RH`Q(D#3ZkVbQ*KvJfnHA zaVEqmkL2Zm(WqrN1RAW!jMbKj^{SWim>i@wxT>Gf#(camkaHQdQ|Ar{qzbc|K(uhcxh_`I@xP{`Y-D z@@OHYZ9FhaDKen;T+$7LWr+t|u2YQt34t*Vdqg}dc*EZFz zk5s#Ue2R8yp-lp|WbI3auns#_yG-2Wt2J5z`CxoJfjf3!6?M{H`<24rJB!zEBncia zljHuz>l?;NHDcizI94SqnWYCccn$idg@^XE5vX0_ILnv9g&&I_mQ= z4sbKuE1ID&+lu@_)thAbU-koeKBaSRj+fX6lK)4O{C}7J&f)PBi4Uc{OJ`_8%dSg! z-yO7P$Ugt5EawG}N{6Jq1by!Se71c?NY4^s?+?i@_x4a|g7UNzB zJ4mS)Eh^^whasHLv)>y?Iqz1a&HEv0KX_xb|H;3~ySZa&I0wJ)A4p-Hg9qSsA0j#4 z+-YOI|E1rt$08bOwidW)FHm{`*74?X>jc&^)-bPU;xj$dXib#YfiFyy()(qhh=}(N zqzW}T?$=OxhWegQ&-V7Jxs$GUz$8Ev0V>I4)_c684@Y|$*yEWZu zV+PfYy_#|F#{)DcvM%r?Z}t!L9vUZoz}c2d_2ow@UqWH8UwcP5sS}Us!FhzZO|)k+ zLm>-u1I$I}sq|17cyleT@U7vjXxJ)L?YZ%!J#-`Qp=>K+`HYpxQPR$7l23n4j4)R+ zwjO9CY^_}Jml-=Cll9%VU=OV_GicpK<+{7(ufV30@v6X!FT+_H4JI#D@wk-D5Bq;D z?Ufj=BzJl;RoeVsHIGp%?{rPZ`(57;n!8cl2);zS5$kJvhT;+Lq5iliEsOOht$dg2 zTH0V2S4Ttv>Lgj(wM_nI%&Ef?N5{dBf7OUErt1UH$tan&P+?2VQu5eYJkJ}uS-(zv z;A@Qa5V4m3ocIYdoJ0&j;srLqwwdc=`>{I9ujUGS7CxPeGvu93#$P3_%AvGz(rQz zO&;@)KcEsX?-Xt`E{irv?4uojewUX>I6Co3stQ zAAlQJA=iDOy61Hpbyh4Zhhwb)_b@Y5XYu`&5fQg*GKMB_AH5_)z>gJ}l&h%TVndb( z{AiC^n@BGc{P?xk)+CEbwkm_JfOsWWC-gnAIo@S^0}CwNS?PfqUhi|KSY3s*X58V0 zVcY|H12xvKl-|uiTzlLFgqtLOXH;Tl>hw8+XiI))lb8(L(%APbJlCTUaUlGU#L@7s z#J-w;B#zOi*L(o+6Ghv-B-2JWvh6!?LZL?)5!+y$r()pFj7wa^()g|n=6Avyg--d4 z4dOpzO^n~`ipKJ|ZiO?<_;AE;zI`wF)iCP^vY|I2x||Wb)#5oZZndD#&!@5slu5EY z?)_bQy_HYn41ERcv|)#fae&-#kmMpi<%Jz(Ce10)Iy%$ptkPg4SxW01`cPVPtMWTx zPxpY3^SW9T;~m;p{_yGogX+sCp1(}-k|U_B4;6MbX!N{0HwlNfW9;0Ezs?w6n-l(& z!w+UE{_2T)f$`BQ3em^tO3U$?@G*aVJ?)B4}s8LU6NIT!xj8pi|e6HaBPT^B{jqeiut1Bo3elhVl zo5w|k!w2~h>*ov35BR7s?l}E}f6KlXc-U>?=jdOsO?cU_Bx0fNLL)5oS+Gq*UrA2E zyuC`_opD=wv$}@>&J^^HJP-AZ`QLuec{{*oP9Js#2NUuPzU4DX6Y^khsC0wi8{c|g z+IOKG>|4-_fI2(T-x8uFg@Lxgxw}DO4g6RP(UQTs=$S)T92|YV6QR8m{!GT$gbz+} ze4WUL4X3eAK>rQ_-x89~ab%QylirQW^Fj}<6F~o}u0?J~G5x{loHeo-0*-@RutL!sg++1Z3OdH2?4$sQ;k5&bwF_|GKG% z_?mUXiM118{-%L(de^YcBb~uVBt9|P_mt{Kah5xe#y5|~HxIZD-%w+G$@{X+@AVC& zaNqYZoo(=0#XJNkPlq}yfi1Eyb7+n(qG#|u1b>*J(#lntUw(h6zmHIR5u;~OmOMi( zzOQZ-2Q%ewlsA#yt4+g)D8?OGFfR!mvQy5zmfTCLVYh7rldwlF4mI=G6bEa0{~*o@ z@;ZBH^-Vo&Ydjx$^;RA;*etrv9G9GZx7FpYZphP*%K5x1&Hudz<5#V41+ssPxSXqg zb99JL#NGT6;;Vs0v~!%qp*f-WY&^pm4xNHa`9g~KB*w}#RY$`ixvy}i`G&M*wg05b z=~LxEFOA=m-;ryHWG%)s&ye_#_RT7vP3h>n`(kiHak9O*V+8ImJ$j~rKW zq;;J3%`LXPSDw!_rCY7J`~OGU8iIDazM-+Kef(z}uh9N8MzBB2&7JrrYeuQm!L(rF$N({gYzw!-^%?Vs~SNvVk?D1I0!#W+)lWZTK zWuG^$(guD3eA=+)5TnjVdvBo|lX(-70p!E!V;j zooUOU^+a+|eMTYi0)M$t>Su4cu`lJyUSiLq{g9!2P=BT{FH>0Qy0rei9ftaMD{>MY=?!6%b>1Oq-owc;`5cZl{o`m)WGcHGz` z5C_EilAHZ<_xRk5r^9~JG(R70_Ycy#J8qOQ5Atu6Sd%ELa70>ub?4km?_k{P?IAiD zQtxKm*f+RV9UGJUf|2%X@X4aOO`|^P)O~=FFc92@x%V04EC7OLBC1(IK!U| z^N2acJUZ(zq!I7u_*2qcj{mppJKHO#1{nLY_Dz}g+To$t7k_+L(xCxbo9Sm_Gkn|W z_cVK8(Dvk!Ph~rgDgC1}7DxXrag|PdB55dW2MPnyH+suqxi7{j9saWeLu2^aydK^k zE`@`wsr|uNG--RIK(*n+k0=Mht%6aai_4C|oDV zGl!A`%n##TPujcV>0RIvgYO?f&km>Y!jI3xxq1WEiZ3$4&3g}P2yttsZufH^?n>*! z?^GZDuKF;V`mi^RZ+3K7xR2Vduwx*nvp->dXQlOqe(n?BnO0@nxw9+nZ@oqGH|~%ad!UW)OczgX66e3&&13a3 z@GHu@x<2EW1y)`Y)dxMw($G7H@4FYVOP=F+;eMm_q}bdmIW8bDl_6utY|k}v&n>6) z627N_eg9m0fNjF&KrUNzoapMMvF8v&*=9Rg#Mw4C2;A9~N#E_0>L?{y@-CD|ay+j! z%Kx6KXEEPz--wurxgmuOMC;u3E$Yu``u;Z6rC&PAUT!S6o`5eH`~jjZ!rKY`%8mA6 zzGvDXCXdrdE@~Z$g--PXTg^lq3F_b8t7Uzl@fF1T<&A=mjJ5%>u-q3ByBUj-Xc5bE zb)K2L2Kw}HQ*v^yW>+v~g!C(O#?WO@J!$=0tL7T_Xa0CQ@p$c&=gQMZ{-~+G?_gb5%>JXfTbPq~i)$`LOfa0UEBJmL`VQE> zpbqGh^5YwY%by3VYaYjJzW-_$msX>#>%{Oespq!xJbFe(tvr;8^5Iv1^?=lGEgrXV z5XU7<<$dcdDOd3tp*ilmzCSgR=mIbG zeIt(x+J6?c{{ZYmiPzeQn3nP9?5*ecY~ayeem3@M2V)ArZ^B(xYrDHv*zN{j(r<+Y z)$CUM@^5e3-z)o>foBc+IK%7YT={syquc2|P73k9*z6W8y23m_90&N<; zMjSkVPUXk>YmA+m^IBl3BG!rOm!JBDx}m#Ut9*e!s_bX^jbp0Q`;ckSR-e*k7O3@& z_WXs)!`F-}bRQ zt4AyO;bZ#k$Qnln1_rU7yebCqd!NX2Fz1Lo*RMdZ%$ znh)5Z8<>YaIR_^yV|fGDUYqApvS+s?&tTZ3I`Z18w7IJpkmK$P#9SO3M9p8_C$jJG zC*MG2r&K$f_#T)yZ)gqMF@ZOHc&W528VNn3wj6wT!c`HQs+*Aus>4rB_bFdVwigL~ zSJy&y1>R6=feyQRbGd*|4DMNddL4f+r0;(99T;rD(evqT98W%v>Y{h0u8;T?*86E~ zqHZbn?sCf)3iDkI(phg!JeL^_OF#I4vCF9rhr_3XfRREWQURrTUyXF($?m z)!I9UF`p!7@tw*eUFr@s7|Xp4_sGHh0(PyiX@xuqUmru+wsr<1W4xh_;-xByS5~8Z z!I5vlKP4ugt~H3CC@h5hU_(ZRnm^>3r}E@ep4&OjVuO%+#0KFDHzd9E+u^+mL!3sm zxj~d2^z%8CuXOHL;~aTj|QSYwC~tS-+J@Gy{0g*th<#k_>4|Y#E%-xCbCc&{ax#dmS2vJ1}aSH*lWt z$D@3&?G1DY*YhFTmyjoG>G#G%&}G2p*$-QP_6KYcJ|j%>rNq|q!@n7J>ohlryR7NZ zgG7ac)rj}}W?jmZz@C@c^FZ#5;!YJahOyN8(s6E*rx0bng2lcIl8@{lnW+ zJinq!Vx!=B&M=>J-~xR2c8Ot{S2l!QdZ4OrPA*%8ub}x;aKe%d#s+3M7^-ndZhFS z+eI)|hy{$B+4g+ghsI)wKpe7JlPDv32l!j?eG6A_Wb7`F_F#7;u#x0}#_s1BOQ*^% zLtI2-V}Wke<`ExQ0J``nV`j$eg_q>O#znY0VH3VlAchREc(c!QCxM+k*33#G9X7vV zqS1wv76>#Yv#Cw1;w!*OT8M1tn()O^P zUH-;-hBg#;ZY;pQ)Z!BJq@4JG=|)qs!lZxTsZxHdv&b&^LCsHi;<0fYS5?IdolboC z+(~k8#yNiMMlPp<#_(6=^bU=U7JMcNJP_D9z*h+RekX3?V+s%B`Y#DvLyZmWvSHgm&qX2qN2+0`t!;40m_6Bgh|U}z=J9G) zp2WtJGJlqXb4EPIZtCC4T#1=J>dEdD{48NFcK-i#r_e{>_Is5-Zz1B=0*^N!am96# zCp^GUdUw;h|Drt>+;w}rl>WPS-X1sUA7^QGaSn}1RO~9tVPDhvR;mm3!jS!dPwoTu zKJ8Im*@0cb_IKCYg(So0N26+dPPb<%Tpjoee7u;>mpHJPVm9y)vv{l;xs6`4QDT^f z8`*YUqjVqr=SLewVQ`}WmRn)4kv_pg!SnK>j^6VIW>=cK$; zuCDSUE*^M2*p$N_Ka=s-q@N$gfYx&gX8`8&H)=jN&>T9L|K-Yu_8Fxg*s1LQ+OL!` zS#SpLI+z;7)zs5)l?_eeb7Jg)XR#jRPwU{Cu_PzVA(>|Z>;@u9V1N4VtQY3&dT}b+ znc?7nI(B;@8N1e7-Fm2^x*>^qyc@O(u;1tS>(bxaM{)pfK#;$wHw4+Vj{QofC;fcJ zag4YQYEvW4yRI8|yyYieJawyf<)F z@=MA#M~fp)LnHHkT68t>{;Ne%Qr@|-j+63TtbEkE1_mCmn58nAL-GkcO4H@A4f?zu7Nq+#1m_P4aP|3$wK4?x41O%vx$^iN02p8p{#0 zgX5F__?({JfVMpO3wrj^pzUas_G6gaoKHL?;@LIuyRGzYgx>{Uw&p#({@3L(p;ttgdn!62qD9?6`5z)3nqH#rx^OgtfeowwZ^12bp z$f~Z*g{~vNI#S>UWYh)$99lIPw|Ruw4%?1w@K0fFp68pif5YKeofeJNWg6`k$D=fV zXT58zO8o6#{?s++Lx04vsS>}qwm)@X{67*$>;92&;y)jw-_uo{Ic6*uSXCJ712cCf zj@Iu?WCmIh4>*|>{Iyj`=kL+WcP6Im8yvski+z7uEvlybIc6m4@lIYXj$QjycO~=8 z8yG`wkBWiz0JY~Em#+F>d2+}QtPkUPu20%0FrRHSpY?J+sr+3fJ-zTVE>?OM_?msa z=iO9kaAr~~^D_+wPYxTnL-hXi^Zfi9>4;VJ7Nwb!hSCg5d!5gareuz*KUJ)Jka2!i zTiB?UzD@L1GvYH?_|_U2iP__7;5~6EGrU zfZgK77&&L3v6k)Bd{JO*v@tKC)7o_#3oLhZrLG~qbF`l07>tnX`T}<}Hu*m0U1@!j z{1EkM)a5$rjp$5hn=<3K|xn+PHts=2JG+P13yCP;-}%hht?;r?Ms^zpnEOD;-)D2 zRYWu->49Act)I~CL$-j3O^tEbep`zDJAs$)j76UEZ3k_2*Zea~%DI{=CxI zB%GMbh^_nc+7#PwWvE!vUdHy;vN0CeOQ4JT3KhC~$ z;(Rvo{N;v4meHJq&)_d-kgRY`Br(QMG)wt_;9Srq;~umsiMi8UY~xr2e3A^N+2Lg0 zXX*YnYX{|UANU7g7tlCrBs2L)o`RlO%a#5zE@hklBeoBh{w)r64fG?h@5VY9$#-rF zvyS5_$+*@y_vUjut0ew3^Gw8}NZQVR5RehfG&?e;H3~Zj@oW%#=v47+5X;7=;!t^q z#j=4tYS|momH@h5H_c=545?E@*&it$3(ta-9zdLSQ{v`f4a}n7v(#_chXv_(Q2hq3 za0&5%AD8r`fP?a@PvzKd8-TAvtH}C++-LXE+&c8lk%id*@>&@SycGV6QN=S7A68bq zk$HC5^5sw&S~Sdj+6rR@+vNH?!_3Q057!IC39TK6y<9Ky>A(MK_|M#wm;zgW=riK= zgK^BDvw*&0--Krp+KhUlq4hilVQr4b#GN+rp}ujF7d@Nk;`DKw#QVh(tKss|^~qPh zL3@Yx%r{3fKELhQ0T-J!r{tUdczb>FnrrC{2@zj_d-2IATgL5xjEcQ=&9#vv;-$k+ z>?7qng|mo#bv_%qt1)N~<1W3K&eZ9|D}V>LK*L>#5G}J*nL%B}IhEuUAIU90rF8?$5y%ngI>mW3 z)=u1~Vio84QKlimB=9vL=S`=%bokN$(M9?fvuMm_(r1v?0Db4!-j(zTJ!A!)bo#I56>8*#Kb4; zvq^?$tiZA!E~f-@!uK8ZjA`zpPaSq|^oe-Bn@&g?b~@wzhXt?*(O;|y#%oabT{_3- ztQWH>f9w;)P^}kEoCR95tHMN&eP_uv3%bAiQrhbz2Myj4Fx`{bMbIr`e@;6w;OM~l zE-@!y*(JbaqkV1AXTg7^n0_=}+c$(|2pwxc#y7|3`-+zTh04Mmz!o+49ZFUNeYof~ zDJ%Mwtmxq4-y#N5#rdOnExn&v(+kxY*BS z*e2xfaI({UIq|3&VSTYTT_0?)jbx&GSQ)?hKbGO#8T#PMuVM#bpPVV=-L8YKx z1*E*V?X{t^2W8>2Kz%wGHlTA^VqowLb<_8fuet3lr}@~ww%Q1@AK}r9N7#kAa;$Jy zk-X_-9Gedh$uj2M*q zSVpl7AaRHoe+XDF|9`|F!o3mNxkAMab>cnysK2En<(<*aPJb#JzT_BB+-K196^Q$A zO@FUrU$=~SiAE~twEONzV9k%M{(f@mkJ&DI5JwQ_&QeU_iyPoyYPi^Ms&1h%<9_|Ii*K9*Ae_7^U0labOe=-=mB}Qk!UbZQ4QF(I9%xB0SAa%^@1 z?R&%!#T^*!2YV^j5zS8-&Kmm9djY=Wi<9~8xj09Pi1)W!&vWlAFs+?QqjD#;=jC#v z=9$ytl`qYYhhM>cnMcJsTYR3|rhII-N_hnI2kCPrM*{JDv||JRD6if$geqhI-TX+`rCpEQDX^g}U!9E?!M z9|mhHL+$MqDn?`JOqy%NazP9&MPr~Bxf%9+v?n*IxkB3YYX*|f$Fu^)o81^u4leg92!I`M{P#ZbAv;1$U(2flg~1jnJL)munH4R8-#_pm6kZYg zP*QmYl^>$D@uBj+|-zWdIj8;XShzZ!@D7#5#W+Y46b=$T8_f+ODkJ{hb*_?OLqpaxUPIY0bC>VD-wqm z@d|)-`*ev%3K}fNSFX-U>@E$+6#5`I3}xyMrAOkUCW87YdEF z;;b(r{*<(7g1mGp`2ev5H2hfh@hl*h5?!ncO8mV|FHjremC26J>A>bQ#%`tB|DbOXYJ*Pu)N6j% zTEsrxLHIUi|MB}$ro$SBy>iC*BZK-AUoeoI^#!po`J8e5*Ogy=j%nppnvnvO^P;+g zu9_ytgM9$Q(x;N;*ci(XwrOk@@Uzuv>|iUlZQM%<#Cv~+)?+@Um87M`DXpCL-?HEa zQEJFLcNgt{cQC`+N_|;s(0bj2yR(fVV_b6=@W~2E#?g(iC^rx{Y=iJcYlTa%wP4qo zAFn;-9RYq1|Bzoz@^xpFeE{L3J1Sah z9T>kWp;4cVI6bRgCrZMt;u!WjwWl%OXn6w5yGBL-&T>*G@F7TsS`l7h`EwuW@{e0> z6N1N?AmIqLd1up zal{-HYLRmcqxBpbv+;%zIR`%3?y}lsu|au==W|Jn+X*F8?>u`ulaS`coINP1Xk1ojmou zRH|Hyh%1arUhW=;7pzk#|!e*r)_!_WWQ(6g-nkg@W=7 zIqBUX+vp^&R{4=PoATn!L;eh+87_%KpO{H`z<(}r&LZ0Dh{=c;W3DG-w%!@A@B87? zwtGvA>ebr3Z*i_SJbwrr-PC4zzz#IOQc~KABk$wqw?*HPXW-Z%lp&qkS`URB7nuJY!SEaHOtu&O1`+TpXRVoT>Qbi@*OH0_;bjA;*)n%Px1PYze&9PRl$0lBC68qu^`D>obJFM$0&VomEl`?_!Rv8+51 zbp|9I3We&$FX(;fwF-&;T$onQ(X?`KU$B&Tn=(Vn8~Joj6>}Vq*^HZAc&VG$CFEtu zDD;kan95=tmVq=IV&a_`SJL6>s6B|yvxN16F>uiRhFN-?RT|w4eG&R2TFX;PND-^c%|qxUr9vb5et~zz_RnN zsk8b?R>eI)dR$HTvP#Uss4#;P%U9lGwu$i)=ZJA?(6^Zrj)e_(YB*6%QyKRGl@G*=-c>Clg>jOx^I0A$2U)%)zh1=g_CrCBm+hy`J|ewNva;9 zbk)fF%x4n&*Bi1tuQ|TB)b1*3cUf40JiSN8dG(%s>epRd|g0JEgkOQ>d14iXwoD4tvLpDzFnvLT%g`tkS zhLEvb(0_6vokiFai|7-3v;MnMc6aV!UQ@n~98dT1r@Hmm{nYoB)b|zC_Z7)|2c*q< zYWxxDZ%uhtd?s-VF;_p*?zH`kXSJ4Oj(jmy`I4OV|Do;Aowc34!z zrL>^p()P|=u2}{vM%2`We9!Z|UUxD?T;88we}BwlX72J@&+EL-Ij?h`M}E6?43eo&INtVk{s#5Zt%64NV`%Iz{{X64_9O z%?QYL45dWDNOa`co(yhtl9Qq!+HJOS%9kVq_V?5KuUTou30w)a^mFOewL981S z4{e!7dYYSL+pBKqPe%PB|6vF9!@OW0V=mQCb-KVG1=e+~2e_?`{sz+ZY0RRvOsB}x ziMk7DZ;o9kY%Ii3*e(KF|I97I2Y8OsU|sA`va!#@CI)+$9%)Jx_)lQpo-S&GSNWc` zp(u-OC6J~6K-YjnQ-++@B43p2R=vSt4HIo_na+rg%D$X=2qm6!Kx3frhJx1gG7>)N68>tP8Q4jpXC7lOptm{~oM||IGw0jcsCAwb2 zKI5Gh#s=eZwH%lGXk3g_*I9Epm)vZ|;sSO(#uDr8 zjS&L@*p|s!A`q_AJFnKcZ_{w7(Ov9l2 zkFFPUH4}NIB@I{TE*HI@;wPjZjYeL)jcMyLz1()-4MG2ra`HzqW)}0l267g?7ieeI@>bA1P)t94r2RTq!pqjC(ql8$%E>l@|uV-VLhNzgHToeJdd3uVma{ZyYetd74? z9XrRq8Xq`*N8IO!uS1(P?q5Urv}hl2#{X;xTnor`d&&>(PfWIRk8Dr9Y){9;bsnnU z^F7QN-GBPX5vD=+L-IcIUoD;}+NiN!`c-;aa*LoB#KG<#R_{HsUPIP6z3H)L&-6MXJ7YQ{KI)Squ!dXrO?Y9ky_rDaF0>;6?hbn2_Z227Z zT}IKLFV5M$t&!AFpX&cL)Z$dqGpBD zWhzuB@H04fq?9Gq1y1_B3WwPRzcJ=jyR7o5eKb`J}mKJU9qE82Xw$sO;&m#H^&}aX}C-oM0H6<3=IVSc+ z85&6rGe9P7u;qy}^ zadq8N7Q>#qqy59w`Le1mWuM(KCr8a~xGr%&1xDG$iT%rg`zy|g?f-7A!+LtELVUS{ z`O4y|9BZ(2iy2mPEN96QGoTqQ;xYrJ})(7si9D!lyoid zq%!(u`v83V=>9Xgf6E1aWHFvQDvR@fl~Vb8e)3X$50wwwg14&OptWsg1s^arw2m|f z7CaySMWoW)P5ceK4YGib+I8?W3XbqT}1?)ptmjK^~Z~O%Q-)Rm0z9um$ zxHNIXucL9C^{6su(Z9yL&->^^mJ_Kg+P{26TRP3-1T}04etfwp&UTOszEGa+gstPC zr$iY`6aHC!PnYi|nY`7iiPZonJMnb+wz#jP+HhoFVbY#m?l?0#&gZD^_BxmJ0$VLp zxsqd^v!e?PO$%GOj0Gri(w$i)WIadM@&B7qE9ryiS3|G6%K=S0(LB@Kq}HlgtCmP=D)T=Tf8cfMdE;`r5ep%%`@{uh)L7 zy}`v;j-3|kT9-WAGvhzN2<)_KsJ(kiUX8DxE^=+-8qRk2ANPFRe)eoU>nFNPKaWa3 zdjpL@{#I*=#%dF#^j)UZS`+B=jN@;)JE<&PsVyu}Y7?L{U9I)Nrw(g<&ri0+RlG+u z=Op?9ZMulQKu@4A(AM>*3EUuz|BRu&KSq6j;=A-c#@LRXR?dH52O1iKOzIc%PVC*` zORkZ2FSgf3R#@<8m zTPp2)^sOyTAO~HAy23h8G?aG^c0nK2&F{irM-k7W41SmDr~T5JO#AVB^j?;HPoX}g z=b*y*D0DLPYflLIr(!tY;XEi=hr~;6=Jy@a@44%=OcQu8@D+q#A@WY`soKiENQkqA z4-(GAY(FIM!vg8^h8SVk-i{qS#eq1M?=R@><9Lin3-JxX^I$_R(3V+U#|xahEGkdi zszBc{i_~Td<8@=K(sXMzd$ZU#U>WhwWtK0t%zB9W>ySR5{@@C$t1grA7*DFM%vYk( zeDH~9ro9<|y8O*}xJuY_{W{xv9}Ne>T^aLh4A0EyBP4S?lZW%~Xr1+R?wfIc)k@l5 zX0lBTzCgY}ZGtwNw@dZ6SYJ8-`LnB?^N6s#NxY+g+;9bI)6e6_v7mCV2X$>+Hp zEI*vcyhXH^+Q|NZ*b};bB62H8oC*_XxzGVP-buy;7F?5LEbkC>p3pK&iNGfpc{w`7 zIO?mcpW1OaTGRn~$)A>ww^)0Ff0y}}71I8jU#h)C^wGgK>nquxtKISg7g-hW*!jPU z)q1{$|2NQY_yc)^0<#ExaUplMb^_-w4lDH}7k4n;@!O^Ql8Dvva(Od3e(V&Ep>5~f zIiO9IXaF(ypijpcHKs3CP1mZKAJ5Pcqd5<;;@JWEtwarTr+;&Nr?xc?zVD7+VR*V; zHgXjBOU-heK{7=8SwG$f&0`HBj>wH%FWR>Fz_{&k>=ziPztcQEgS~_H1mt0HIhwma zekYkc!^`I-A>##(cNOCeU*RHJ_cpy^ZGujjMwObq?7yEztAj_1Gp3>Z;j=mB z+|D}%d8Sx@L)a+wXg*?n%Cu#L$LTLwD+OLp>RmpUbh*qK>L`|}o+KXn*ZUF2WSH+s zeAO;H?hu&T(k=?S-OsNUex=w)VK42vjGmiWY1;RHEbl`eXjRtnx#cOuKjEWp)9D-2 z_a))Wt_8x@F8X}~Jy%M<8(#7yfuDl2Os71{%)Je9KXr^zIlQjZj_T#QigfHHL-&6N z+!JY=1$IAp>Tmurn6fc5oFuz|3e}lc!5J%?ejOYFXl(QCL*b}pZv~{ zPVbdDXI^+$==5>u9?087bMPkc07wUSN!uZE*^DAxJQ|ew2P4QSt&H|4mzu~^gZwo6 zAxHREa=q`s_E;eGW_rK&CwMOiU#&^S$_tEr?)H$53hZ&IqfQX<*rq)WU(h&Y(O6DU z>a3OM2R&Qh5pp#2QqUUSy|Sd2pJRM^_-q5ml%BKkDDm8`Wi$`c|CuJBVZCde^(UII z2TL7xP7v(j)^5g04H?d(ggx`LbA%oA1&jyslLM!o-q9t#_0Q>gh0(@+m<&CM_<>kA zVIyU8H|}scv|jCuTg3YJU>$2hwu3nj04xkaokg4h?SZh_v2fS=0ZL{hIo`tGAQR=U_9B`G+xSh z_>BPD!>z5gefmdFq322i?eJ$wEHRcCQ&hytuI(8auQf82J9_Y}gPsLmub-aP4Ebze ziQ$*edN$ud&o=fT4?%@ftfeWm7P{IqO+S4;=W7P-AT{<6Z`MC zL*+*39(VSl;^ z`i9Jdv{w4!C=ze-QYUrdZHD?4^5o5PugjktVwvE z)_fW1#s##$?>s}CVFT+1x*vSQ94A7)rT_FhlC{oSOZ_cFUPEfvB8T7!x5B^dsC8C_ zSB@XYJv3RP@00!?z$T)1p<{jcqK{?#vo_(puhW`DH0`7Ba{5-4RaODXL}=eX9O&D! z#NqS?@aL-(rLWIl8)Jc462MuU=)WE+r1x_FLjU8h(pd7E zXtn%-a6*&kv^4(tN>wzUbTrrRkh7h}WHEmepVC4GVoaPR#J5S$cZOQJ-NCiiF@E4L z!aoB0xyZF~4feD^AhDR{qL})$kou&Zu#R<5=$jLirbJnw$$DjCFVm7US20gL(Lv)R z;!t33QUWzrdi;VTE6VmL#01VgW1l=vYO*fJn5NyEDew8{-aQU+{s!A`v9j9w<-re= z4&9&NxUZbqW~)OPuOkjS6FJ11tYr?R!Own?bAh{&>x|JSKp)z_;QRB;O?%=`m+Xlz zty*e0mCNIh*E8lXF^Y+n9bHQk%e$5vIgh{(Pw8`vM$W%$4JB4bGC1iq^d91t{Z$gyDev*bPXLp7T7NQI;?7J~9wnIqex$%Ey0^zm>q*n9IrlKigpN>3 z|BLB&aiH2NqTi6mVON7+;Uqo-3UaPfjC+N&gG?g&wa1e5g?#vWJTsrhuY6CuE>LG= zKsJCZUsboIE?5`y%&ajoZ;EavnS946wkhq2`vV=EUjn%%G6S`SkH(L9#Y5g`8?OhY ztG4ifjF~MUT7GOEjajsoeWC5Kf&JJ){A<_2!M@glb=Jl#vF6}Inz+};{;BZiLaflA zwj`7A4MA>&ACqi0S)T7LCBESIuV%RtcBH2ryW^$)Cd>9;8m_}^+w=80OqkCuR$K6U zyQzfac<5+SPQ%`S7&@$P#Hidx^LQ_{yMp>Qh1O{){Hq7$|B(2fTDL)3x522Z=OEVW zT=PBt?)d7u?V@!XSZkd!73;R1bG~{cM#xR$#JZga{2Y=`fBk|lxoF&1*X=*cdy`nR zc;|xg-+kR)KUv7K-{<@+t2sUaG~4*)q4cT~z3M@%%gf>4x?@U6&@SYnFNxnwR-WOU zDsFW()2ylsU)17Iou&DS_tK{*NW56mDd^KJ>GJ^^7tk&3?fL5u4svdh7t-c>9o-M+ zt+R@#^YwJBLc<(yB~m*T9D zt~aKY@2Bh4bbWwiu0?WBfIsho}R7A4Auk zrfaWA`SW}C3QVUBbZwrjvs7NIr)yqW-x#`<{{LwCjJ2UBIghSyO6^sKSwQ!2b`2Tf z^DhVcrVML0u%L428DCW=$66IpAAk#$c;1)%fSy;=+Q;z^D3A8I^QeEwG5QL%vj_5= zU&Q@D?)dbcp*jsJW4k(32A=zX?!%X_OC9P%A6?s+_W!+mM4upc+G7!y*KS35@*2)! z-nmE2?J?A*U|Lr+bgk^#Z#7McO!Sq3eJ6 zQplH!NWR=op98->X>&bf%@3c9_0abQ`V7ceVb~H?WtX+nVRUm$q` zg-R&Tt+aR!xld~m|82iX_(=tG6khAaRbkJd9(5^t*yCV*TEvBEIWDs_cNE(;FsEp9 z`#nPUP;`UkV8*-At1Z|h2S_(s`15S@q})og=w=_=n}AaUERV9Ioo4P$oWnYPOs*I& zU_e0z^GILZIc(=Pj-QIyIDJ$+M6&c*>>nZQ0>|PEjn^vif5d%gyDXo!P2lCw zwIh%V2$OJzwxh^-{L+`EWic&(L67+N6m37!LyV(YwfNS0Lrn zGUiQA3XSZ{32Ubk{I zpQG6M)Nl7d7aca-)FZ&p4TlvjNn{{b- zp6h2Fn)ZsOUdA&0E9qEcbIiGCk1%sf_-rw*mWw!F#Hcv^E#1%2Gb2>tpUSxrq)!^I z;e7pP^uIvH0O>AXgRGn~wzh`3zyl8BdXX_N$ z^!nUNow2B7B>Rg&#<>@9mHx1irOb&VC#eHiIdVUF|4ih0U&;MCI7R_ZGO(joW3S&w z<1l#a!o-A=VMnSnMyk~b#9iGf%fmffLw-ZVVmshtNIC)Hupig!;v%<5C;{CVG-Izv z#*@Z*KJ}?o+KA!LP`}7)7R|>x5jiGG1LrYb7y9=8oeJZ8d8rSyk?n9ROAR}|41L5H z{gm2O8X%hTBj1{Mzn`%W!U?nwGR{!@mh#!QCS{L*!5{camw7}iY9<2kMUR@JlqX1s zT53IB^?F=k+Y_IC;OxW#Zt~;vUySz%ym}sgOWHmMY}+U2C~mdNWF5e8Tu)=v`kJ5{ zwoek>;2LNMGz0o^23xxIzY45B@P{(Fk3;{0yj7;IWL=SQ0q7ZfEjl>~MrC~Q z2$n78uszv9->AQW*1jEgmOH(dG3jvLt)*T66nj1DS^3Rj15KP?tvcpOFR?dGwRVen}(cOebZ9IUA2<+f_%nn zZ6n#@@ANr7aoM#-H+=7NIrm4iH55zCu^Xd3!`cN|VPlTikAeID&!{g6`zido^J0dH z+$lI$S3|%gT*)~qizBZxe=U-2Jqvggy1*tv8%u3k4KTLCX!~51;{oZ}e@I)@9$D{Z zsuT9fQphR3AsOn=Q6I+<{Ehw7JGl+06PV6ZNH)Ma>+pvXc3cbgbmptiON?$!__r|5 zd_deQncADQF$y6I)Xyb;gL!0Zd-UN_(rZM%a$u~Ka=vnLEmQjcz-9ygogLQ-zpsxa zepz}>aDj&uNbnhry^g9t1DC-Ee{}r}s&^WEG{cF3tt8jUc#OAXyk)6Y>!db0Xl;8& zRT=qZypPs+O7&V#nZMSfXkpJKTZNqj_2mu2r&v$)ZpTdPGQL}rd!>`l;v&4){#a4Y zbklkTW{N?w!Ru7!WQm_%jC?ox^aSiR3pnm~jyc)?ya#;xaeDR?dRCV?$T21bX*{Z! z=Y0;=Q?`e`&u9D+VAEel>tv4Wc$vEn?@u7v?2hSuslK3|3phq;4(xEQ$@=r23!r~e zoq69-XE)JFF+H=Mp252g`L0v)B)hBuoGEPuZ*2!AV7^=2%SWHzrn!8b^ZSan*zLRX z+&-Qc*tVah_m`)Q)1Rr{^>i({y*sj)J?=`2; zdcb~Y=k)qy9o0d!vV!xrtg~LDI!DPez*l#CLmSpoJApB}iD<*7NgKCI@wc#UKUdlw z=g1u1=-*6jR;^ zPvRcU(;XR~viv=UW!rY%!+`e)8|1>1vV}Y)V?1ec-mWTjnEqKgW*6=EbKf7qxV(tp zRpXWB*1TwZjOI!>awFa4V}T8q$MUGFq^;Yj-PH~G0zR%dcfpwqWCCE)=aJmBj@oex z_9R*><|{tVr2_je@`(XEyx~<}3J0dctC+_)D$ToVhOVK%D(NzzwC76Y7$J{~CV$h| zk4AhOaLV%N8+doSX)Yl1*?I}^;~kuPYBrxccT|NK&vegLALqE>c+)`GLJsDCpDlbe ze(P1(j_(#{ij3vyIY;cPZ{>@971u`H-^2T$?GvZVcWBQtI|9UqrU~A-X{*2=d!5Q( zNc`!s3;L7w^o{*`*ES!QVekJo{u%p7!B-QQ5ozbi*yn&%W@B$)&qmz$`XjT=_f+Ad zeZ((@uyCN)q~9BrcCQSvM4%yg-}{UHzS3dWTy#wvcJ1KL`}>NAUHcDRD;Rd|09`8@ zcI^YYX7`bOBlIZCm=YWU-46MUYp4|Fod5cd>D)6 z+O)BrbjiQ%-yB2b7w5^qxPec`A0F#T&W#mV^Y%K-E(7#G&m5yQQoHT~*7x0GV!p%{ zqJL+3OZTK#M9y8<>p;uboGpBZAv09ad@rOu4RucgZN)lxow@yn%l3)2_s}U46A91G zq%sPqtRK?%>c@Ig@sptI&u}hQZ|8p)+LM2eHtW>pZPeyiCFfxoqt+x8ZLQ@}sm;18 zv6X|6poHwk^`P62w)Q8b#JH|634a13JYh`=K()TZ9d$ISY zw-*>oldtIQ;~2Fch`2`|C-?+Y{jgba>1@tTr=c}0IK#bS^re}MqM)f8A6LZY^ zt%9ejn~7J``0t8tjPD%#N_^+ER~R$N>2Eb$f%}X-C27CMy}}r(z)!V(N3#9RMo!>f z!|e|kp1@|q#tl0DFUS*DFL49wnT|?ujn*&P0a-VO_DX+O_E$_3$z-yBq%Y+5OU&bE2Zb+22K!64TEm}3o~mxC z!>cJD<3J);;_Uo!P~13%kkj`T;_$2(JbtfwomD=sj&8YSOvw7goQwJGpQe5C%0 z@D~RjR}A}RgyT=LS@soi+jhNJTfp0bT?qCd^a=KklWyqmQ>o5uS*HtiYH4*+eNStz z#Iva`uAj<)Zd^?7_|n>`q_xq9XJtF>=RuGErg>OA+Gh@AWSWJ!q(hI-;@m=ePIH@H zbp>PTyw2G6)d`e)?gjlRd(Q@Y{z>-TK=Q2}n}D)=WgJ1uWq4h4S&sM!RK!Ld`MUQ)mgx4 zU1!~Vmf&$V<}B~Amk9lG;Lc~g!)ckW743PlpoVU5J$)qbtZ?`w;UiWhLasyIIaCiKO;y#Id*^S>2t} zwah?_ZSOpxA0wY@CF%CK2EBRj)%~pRV=T^y`I2R{-jM^VG}iW&+|01+Am0(`!xn7N z!1iA87hm7Jf2f=1eE4K+y)AF(GG{C2qJPYSkG-3C9?lgDlra3~k-xwS$ov>5DM~{r zJyR+Fe~|>`Q=Wi?9`8Dbn+JXMrd<;I)6Eqd3 z*VJVkCyRPIg0(Cweet=-Nsu^`=t!P_e=4tSi9uhaGGxp&^oRYQ3me2pSzZEo-lTK7 z<-0wfi+uF>ZP9PE=P8LN3cLj1>Hq6<@gL85(;vP?6*3VEh8kwfvt!w(X<+ z^Q4^#?OJ-~SNB?nw1w@FdG9w$A9dUQ3_m{B4N1oQg!OyX+9YLw4HCy*N$cyqr}wiz zD(cq}p8{K)v>$3!Bl)} z!05C#kd9Ls>$ITngpILGL(qA&Sd;b1kA>coC+)=}q~DUl@okc(rM!Z;ZuA4b0B8>| zcmim*><{t@Z;&xv(2?xl6GjL*p=*th6TYeKt!Zty+Z>?!Qf;Qbpxy96c=5l`_B{u` zTidH;+d=c*>BOsPpV=m3>G*61FU)QMkE7-tR|$UZ)T1t4Z}O;| zce;srOeghq0`c!#PI9qLkFi~1wHD<0x$^7~XNlK!32Yc@S1vFLVQ0SKXcyO$koDXm z>wyhhuWGW`Pcw}-Lg)CybG{_rX#y639)M3wHf%T*G&WguZx8#)i+;h@gK>YHt_6@g zf$lG&vB8)mIQLJ~yv*6lIlN#KX?@O@!pVVM<>O~XzWViuXQw)Yvd&M5pJ5;SN30%zUxzy~a1M{^}QTlT9X3{6~;|~JIR2O^WT-s&YDUw68|E6;Vn4pEyx8{tpqJJ!Yd+km(3?m`S_t<^#It7xCz zsMRw){cd)D(&w+WwvThLt#bXDUNgI7i2)y?^;>}FRhuZHx_q0@G4KxdUc^elzo@`^l!I=WIo1Kt}z}Yx_9T&f7nd4C7c%oad``A-!G8oQC@8sQrEdyVn_HUqZ=%^BTrDqbqiaCk*$+mjrdjAW_2OH=*^b_bN&{3e9 zpj~dZyVP{=lD@WAPVPOV&P!ySkl${Qb%v##0`zj7ymmWX+jBhWf6B51`--R}-#z_4 zWBW{@x~EgQ>1&&5Q`UjKt2l2R)5KpN5%aQ&W8sI|F^``4B3C@~f_x?-pTYd4+nV>t z=QhdbmeO;WU)aDLT20E&=8=iO(OU&OTHHzVHCj=|!*2z80Q;dJFW`tzlcHZC?iXat z*PeQxnAS?U2!qV0Nd&Qlk|?Tv8B;xp#Bj0 zyk+8{^cj)1wAnB6{vfb`XwHhy?@vb3+P;q3elOZ=%d%Z99CNth;Na-vNp6oE1g2q| zwVh;{d8*KH*#B>pFZugHaj%~4`P1&5NB4fi_~7fT;*mlI^3$~nx(2%)7~1*YE=vHaKOi1YZ6@V8n|YdJ{cl3CK;ZPPu*6#6*s z6}~8R@~dsRK8^0(a;-g#_}NGxaXIsxHrB&#n7NL}Jvf8@dMg8qV{sdlvQWwpLX4^IYM%+fMK0GaZ+5IdXQvZv%GL)tPer4o>b*zU2Ef ziJanlj&L)^2l}@#66SS(I?*HM5b*#b&h2MhFZf1G&+TA-SRiqYuvXzu3ruF5_Xp*e z!~Z$aA!y0}tk9#N(>!uoKVQ3y+J`m3GNi`%CGipP{{p52m4!BW6|v_Pq+QqKSc2}6 zgF16FjT7*aX`CS6`IL}hUeTX?Se}34onrV4jvVqU-P9rShvOb-VLi=xm_9fYN%>w7 zuftq^^1LtU-y&@=n=3iji#^|&o7eJu`)J;MT21%L7sR~Jk-8-M=8$tUzFNx1A=nUT z9^@J7JrnwwN9LX0n@p#bNs?B;BgYL08`DIonBloN2OOPV z-ibr@Vsq4h$W1XpmY4e<;bU=Fy^YrL6Ep@@u~xRD%rjb3xx_IBoKHM}%xjFb4PVbpxqdH|G?V`PPI`W~J)gh}q31i& z=5t1e*k^DLYkV8cCFEP2Jvilg#Ym!csZ(XE>hq>kotDT1Hr|KpRw6!T&*?YDV)6iz zKyAOXk3O5y{%@yG;7gI~39{^TN5ryoKjHs{GLID7F66a;9~}A(*?nFq$-L#92Q?14 zjnAoKH3@}dz+DNS9(`o%M4H?372T62LT1Tltdw`9o=5vhu7h(G2;1>=2hlsp@-x%? z-iF&Laqa+HWV2u7Oi9W6%mZ4j;~suL30o-VxuW)L5V=^2a1UjN={@jf_|^zJyU0Th zzfaheoyyGumzU$7fjf&m;%2td^7%OJc`hwlB69|p<2}3spOzxVJpLu}%2@@muvHr4 zTuAve$1dA0EY6ssCZ5II^Rv{(Qu;7HjDq|vbUg;FeUc^pq*GKyET3{|TnmJ1J+Wvt z``6&NKU(cmE{khbp;I$r@U@x~FRcpIX87^Uytw8M)w=P#Y~u*F&4|8aa$n{FzqkR| z@rAU0(KiROKD~bA;w#lch;d(mc4VL~)Jyl^@5OBhpl$rlseI0)Jln(h z-bp97<*QrdK7(^ir;0PJnT!Jo+}}LulZH9m?>eb>ii|}?%z_d$T%=#QG9%GkcMNU3 zm2`9?A7?`up=fReKYJ_N3SAoTqDsEcU82+ zM`dHIfGL1FdTAUm#y*mN;8RIV>dYd>VVQ#Z|g?tZVcuU&3AdjI^(>?qiWEJM^JjUX_ zo!1Szw_n>=u$7H{gKAHTNVD^;0^Em7#>=cDmQGsRi)`pir|#{mysv{jsE zEKVDj47?v}=`J=9n|w9?wpo9I54QA0FB+Cxs2F+M zXdY{FF^3^TBVA#q5{tWTYVIz6x+l3`c{Pq)6MM!8JUHxk^J$(7?0iF2bp~<`?UT8N zyfQ};=V6h*F@H9#F1BeEXK^&2z8Km%PvFwU)>_ED1)H1?{m@&w;S+z}kNf+4G8Yf* zH~wGduz&bs(l2~n5%$f2o`H3eQ@*krn1?RCwOiznnr)7X82ME)hoo%_DU+C2=S~uF zpTEZWyk48YoM1k%&p}tJqMWEG{n*XD({`V7G*QBOBr zF9_CI_8N(9@g?_W^d;3;yEUM^z&^ueL>~g1w4HN-Ft#x0hkf3VfA~=gX9zA?pHJ2Y zy|hRlDjRqVKiw+iUK?ivV+Ef?#GIqA@8CQjQfFa2vqXN5zP+PdW==%J3H`ebGF_)- z&r$Mefk&N9YX$QHp5apKyJ1uHDQ*$}L+^Y%teki0+PjQZIn$h+vTHUo4h+`+|3cg&W1=A+$yaDPx4GLP_eSX2%4XQ=fFVS@D%NKCB;V(2SdV(OmGTWB zdFKLo&ID|Ly^KjBb4tm2g&zpjn@9EL4%MsVuIP5iHII5xm)9?R3yZ4S5HFdnaqLPn z<3t}Ld4N4%@GTYdIEUvB^TK!mT9k8uJCt9u4=H?3U3znz=4teL&KGV`UgK2A*;y@RuY74*)Gv^ubUP)~*(r$Kc4 ze%d=8fvIfn{b(@RCutR9WYGWjWK0vr1LcL%We*3|L5*R{9$$CQp05hdeG6Yu#DBHf zXCtG_Xs<&~9q=3Y7dW(ECZs-!c1*$=diJBizRI(_tTVt4?Y3h?nf{}Q!R~`T4P6@b zp)E?u+HS}q+-JRpcySBo+yPH$4b)gZp5IyE4dX>__*U^>i=2x3qgu_Wbp2G+&oKqK zPx?qSR%4Ah)oV6890qb3B+Jh;TO8E}`g3<4$B}1Op6F%!R8a}q+RS!p`#hX;bxGc^ z^do_-i{IgofJsW@`05CO&jUF?V8OGVgmVq}=`o(B4=ne>6Hj?5G4;CR1v)_zs#n@h9~`Rn?L`vfKw z$rq30k7OaAB9ezr|6KWfOQ5%+#a_mGF?_OrJf60^rK z1;czEab9)}>_MkHX?{q4(3e^pPRK-T0Asx&W($}Vi&ZyhYp<#-O(-O1sC2D>z9G-~ zs+L+?PV7zjjt1!6Y~G*htj&-2Btwvcl%-Y=pD()2eKKa0ZEUT+Brrhn-p`)(CEtK8 z;1ZE%(ygc|zJl@fMIu%O>2z6XBG_GOx*AkY;^)-_Ut?*Y3Ddv zukWTcccnQ-k9Dutw^`%uyh!i?8Kop!4hwnU_tF^Pybx!E={Uxh-74&9#0OW$bT``%b7d@U zfM_u*GT$(<$5FlDmB9DHxlt?ZsnoWX{y{#+t(W`<7?W zpC5e7Gw9d!Z+Qm&JL_AXK|d#c%QNWP_rBp7+%KW~u+MK;naMa((7(2Y;Dg(gP?TlT zhq=`H^Z`LT3;&qSzG|$u;M`GxuXT$R`uPafW7PTZQyV(Z@K3;b#%c>bYB&#vf7%fo zvl@W?SNf*4rhL;rfV>U8M6WZ_{B5%Jm>4^+GLL=oEA$qRQ>%`qKb6Mo_fPWrvEgz;aQf^vj**M{$CK>xu1^+g2PRoAh)xbSM zOu4XYW2`yf^WW zCK@|jkJ9y0Wm%%t+spdO=~T8B5oPbBGNG@5U*PPJc{TAb@Cb~%oqM?=Al4iFcpxvo z$!oDGv1gv(JB5mo?_wVn;p20c^y^KwAO zvg7|xlyTU8;d9wPIQUFXnl1=?+2@iU`iO_V271f!n(+HCatIq!k-YaJ=zgoype9lVkbMpD) zDq3e@BU(l4B5lpi=KgiCeoXr2nVD&MkL|b@#)SKh{i}T0YobrI5}E(lbWs#rYuT|k zF8F}?*IKjZ4aMM~uQ~cTi603c?gpQo@9l6gIE)qh^)zz!urW-H714^KH77tTf_Fvp zfiVl3QKBupwm~}>KaZr10&SHA+ECTn#FeBk3@FdXK_A(YK3v1-gXHuxzllEn`VHf^ zJ&hkJLat(-hyK0E`(0BaL-y@N&c!EkBlwi2TI5$%SceL*zNQc@+x-S@pielD1?_V` zssEwdh<2#I_4oQrRr(y;bpPsjK^JzvV2^f}w|B#S=IUBX9Yd#nx{ai%n^?l%gR?Q}#R;1=d>7_cvd8c;2$~;Gw)F z#iR7Y^C%y!pNFqZqe&Xy9PM19$ytIXWp0wg(IngWWPYthGViLUG$m%xSlY2-2Ttx! zcICYuhfiYxa2oZd#GiKh*pK!|#&{1~z97l#B>PVfv{}dgu0L5!eSyxz`Vnx9ke?1X ztk{cyKM|-kP>+{$9Kq+giR}-Z?-jVHe%dohZ>gM+OfHgkO|)~7O=E{?=MLGWX3!OQp7XWgc~}Qp~&#`?xCeFDsEzarl|r_$JVop)VnCr8@*1 z`zT|-x*;q_exLnyk~&=8$Of9fuoVY8&eR zlWdzM+lE*@oF@Py_-bk!sY`f6b)fs)zDxR()BP*02Nxg8gE;SOc?;XtZ64$T4?=z?$#V)M4?_MS zx8y&2#t-quQ>Q!4W7r>gw;cyH`c{YA+%PVO?H$)3o&zyp?LC~6LeaM|79r=d_ouC= zDiP<7HB}0`O=wgcX9DSV9oV*xmvJ{I(pWhnp~MJ1l*sC!@rf)mao&P8gk0Rb=4h>5 zwL|a*_z6G$a3AAa*<-{x&m$rD-sSpe9-}l)SYt84cz)_ zUov$s5;gOwpP3Oq&T0C-jtT@UvhNF#))~7^S|M}?^5q+!``p_j`fy( z!+YPQ-Xi(F8-B1d&WmW1F@G*5e)L`1kog_U*m$~V4}ARApO7tLv_}ifzKiu;*5Bs| z`*7+WJ&Wsj=4HC~P48FIXUk#U$8|jO=V9*`myTpiJp28NsGdjV`>A{M>_xKvKYYvk z7t(Y09OnHC<@;;o`>+L{lx7Q7ByYQG-l4W}T*Lhi`5ydP?DyW0@9A2L6-j#!&)^#F zH+;i;6X=;G!`_=9-@El2-kVO(+%oLF>GHi_$oCcAv={*2-@ymy%Ols#-cJu_@QPX7+; z7-ekyhWG3|@W}BfefZ!r*~huSkMNrCjoXWy(Ld}LG5_p)Q6TUT93qeN$=}<@y4BHA z7NYOBy+O_&-uL+r$3tyO!0xdbe#zNEfi<8+t5rp5 z(4;T=!+#>VE)@0D)(mUcDA=K7yXvW371}yW;k;0gLqwYnj2~)~D%%AA-xt?b{&OWSS0sN_`b`0M`yn_ z*jud)^;srz1-pozfak?N{J`Dsx$V}0;LOJME%>dJmm4}3F8 z#_}jjjSmM0cQ~~3*f%p<;)dp^IOE(Ee^g%@AN7pzgGVkc=AROu1m~MC%YMC-)-PXL zzbdF-1z*!I_5aW>^;`NimHJiif9%&=fBJ6yIz+~WTn`M*`OUCJ2)`9-dq!1_u_#)X z=%6-mze$$=7=Ag_567?ilQXn8t;K3xV%__L$^Drx#P`q#YjOXK7vcln7vej!UWf<2 z9Ln!`&1*eLufNW+af~k5*^`{EthDSs8uhG4E*zFYXTj&L0rlc631@fr{K?lh`HwwR zUaL_NtV>`VFQPK1`0Lp30cB34GSlB_qj&fmfch5(-UG?`eto+&f!5HLr;!V!DP{jI zyLyDF&J>s%uz&M;=KM<2e~(+>^|DSZ&h|z{{lfPD$ja`Vu3FLu*04U{74f~<={9or zaYMKqILE^r0{?j91tMO+t%MUl1MiUev=QSzLE6Hj`tk()G>b^T^Kp(A(vg%-&SlaJ ze=WU(#%zsMpfvHAItU7Hg{^r z{u5u0U;HPL17|YvhY9k$?~M7qeREV1m$#nEwA;|}J)v`QlI zMB}40zu7#^;`rBrb6<=nX%AtY_A1h8HPZ3bX3L>gC*0~1t5jk^dG*$U4Bnp#EZ>nM zcn^Y~6J6hH>)2CaAJE$*c6F_FI6s)3RM*bOeaY9@|2`VOg!nqv?bp?>9;W_HW4!ER z{FVCk=OqUBIgG)5xcdJ{^>11<6Uh2YYZ0rEB)OE96mnQ1!9~^AJ{jz9; z_~B)cCm6pP<5$r;nCw8TcC>}_;;avKSQ8}98}R2GJ8{!e8tpP_OjuNjsLz~(n3LuR+q{Jkajgp_ zE$M&fI`(s{`B42c^exD1)R!J3vhm1F&L^R$E36qxb>c$e*~kG}5hFcI=edf{P#Woa zV{&Rw{AW_^TgWNCk=7~3b~j>^Xdm~}Ivu6>P2{A&9vh)OU5^0=dj+kh zX5*Eq_liAi-1G3orTy{s6y9Kl9oH}Yo}VB&E&UqL*KJ#AZ+P)gdhoCK%6_vr&uzvJ zyWhO{t^3Vezz3)KM~uXGu?sc-LgLuS_-NQnyJ(NJbyE19gBNkmTVTUWAM_y%gJ#Q) zuPJ+Y1p70%ux3LI#&*4)`~X)@!vd0M?L8i`9`IW$K{_5Cf(9k z8T|Mke80`wt}IU=PU&qb;|(fr566gfTDwjVd1LMVqt4gp+D?hL#A~hUFl&v*?{qoV z*%)iiQAg`bYfiu)2DWS$$L4IK>u=a}#TXM_dERZy29OIL-sltiA3Zmn{iT8DEaGCP z)4rM`@%6Gc3OprSe!xA@67c1p9+hK`q5WsZiM`2>5KEJG?HaoFZ@D*@Hj%!Xw)QTh zwRaJ%y)DDm-i5UGE~2%!N#Y2mWSM}FWvVwqCVxGJQ87I&mKW{f9LaPI*rv98@YWwh zJb{Rz8EW6@vdwn;Y#L{b;9+*lw|<_&P+}f;p}IT8XW-jKW9-P5xtg)AFQT@-CSxbv z(jO(=)_Gx?trK(+*G8X?F)BWMPmFLqQH|IAu#`NFb7>m*8@n78-+y3htW1m{0%yVR( zzlZ5PcVKD4UYj=VhyR=$#@4#Oq(8|%Y@~yNhi6Od4B@-h%08k-p? z+Be^pbvh+Z3Z9GLnUdCS>}M{0iSe%7^D2>_kM){5tAb>;m*u;s)Ah>p*RkIDiY2h) zw#j=wRp1=c9_hH{4+8J<7zgm9S6XTS{j*FCr#97kU5@%sIc-C3AU)ZyMKzz|k;X6qD@0btiIeoQN_Sy)> zO;)-Lj=T54Cnttn5-UCU?cYNCRLpM{g_^9K5YDceEVtg^DWH3o(7fSU_NAG&svB_} z#q@uBAe`t3hOIK{_u5$4T2E^W@$;kmhR zIgY2c18~0D+cGafZ zwN;aAFd*dDK5COn^*6~jy~R01R`Ps<$6d(rT`M`hi)8vU(LUCRszuH@=t5<8QQKEQ zh8wEq!D023kxcHHwwl_$EYsf(JSgl0ko!*~{`|PK8-Qje zz9;ge;`!emw~u3eD)gn+>b*ApU^F*=aBwvEg0K3=YB|IlzOJB z#){FsGw8WK;0IAZX0Po@76CJt#_C_hZ?@C*^jPEowWU~Tv9wYVCo~n<>=V2k$Ah@A z#H&#=fBV0>-NuqcDe3Ns5%k~tukOS#^j-9?ZpMT$>Z}E!s98pQSo^n|^u{{tV$$!6 zVs)0T)LGNjIt#uN#q=Cvg*5t9$$o-=^4<__Aia3Ctp{bhM6RXmMv|j<6pCC6Pc-!; z->qt}9NE9dnybG3;Na>G>dzwN=b*kVr0=7tzjqxJ@qwT@2hp4zABeI>%6v%oP+1q# zbGSB6UhAZ5u&rpw$>$U?y!-1!oYC*;*(oF&JWevg9QvL?pW^-}W7vn;My3mV6X??L zyMTTN9kL)uas%m+(4#9tEtapVo@uy&+qC|Hh*>}$5k+ld-Fit$wc+k+ruB0Lc;tB4_gu=A>_3b>Jtr!#Gk36#s;thS zdqwo^Bl$an?jhzG{vmko0IwI4%`}qDsD98@{s%UGr!ty#ebSvd=B}%S>tr9ju1;RR z#VOq&YQB&vt4@?9%R!#j!hZpf?IT_WDWF3a}U!Q7SoVuY#O-O@cBaf|as{9JaR z&e$HRO?0qtUo>73X|dib?X_h%(mC2}obu7QAE$fMW!a0mYI%P19`o`3f6Ax5$^BW+ z^SQz$pAIH3)Zeo9J6`3piBlYi2@`GmJ3U|QUnOuqh;F|;wm%8K<|y&cgyh9nklj`muJ#>oR zlvr!Dv2V^m&hwlf3;r-8Wsa7I{w>CKD)8{=`So4E=v`|~p>bZz{l7BKW9@IT&Ln!w zA^m1D(Z^2T^YNV}uf{74>Wjp#*iSOSPUoxfk&^bXhmaocm_W~$Mb-}4debmcSsy)V zi>Xq-r)pacv8z@}ISn{98p$o*SleDb1dP~1#s-8xE9@U`KaEk!2GYhh5S%4y^ep!8 zsru$`)q&6A9B7>u{Jefjb96PW!wu}CKPP?~`gTrUZ$*~YyJe*PZjg?wX{}e$FJg;m^6NF zG+QI7o)kaVmT=4+@$+YxpLeb8)~F9JQ`vi{zMNs}Cx`mdLE~f3L0P2P0!^X)n1=x9 z3UhqSX7)#%s%<_jU7ZDthW`h;nn2@TueS;Od75KK*8&6lY-ic?I482;^SBmstz5}5 z+=yob=17jTXCQ`p>oJ1QZKM6w%{Yp4;yJk36<`5L}*i^M)f%r|mTSMZpu+N%dh2jX!#N{kC#_k3ks zR;9+JjGnK+nme4W73=)$*dc3<=q&rphkZ$+vp(DZ(<$wx=TLc&Q69?`GRiH>h2N)B z-)5bK{(QsyR>}S_-v|u#CDo6vp?}Cyye2itK8Jmof!y|{4X$9edBscA>$tbJlyvC{&&RjYGmwp3RM!V2V{Db@f3}_2)(@suy=Ve| z0_$zE+G4@Sz^AlZz@q@Jg>&Xwj*s^QY7FEe+%DVjfEM8 z+u5cK?3k&+7fs~S6lb_g54)fLlg9R%KMD+<^mtdN|4=*MzZMPIvhAFIU;byvmTjM@ zvD^=Pw%i9`2ddBanQE?xXGJb*w39J+NFLTg5kA|3EgSj)WNSYEh=`bD@Jw4i#ktl9 z_-w^)hRulf38M2@bQ1JepB^o7=#7&W8d0|E+@&Z6^yTQWX!m9CMJ{LCx734n6c5EX zVvm8WTt+gxYGdw;^D7g6Gev5Xz#@koo9pWI6lg6TAL&>=*jBVP7VJPpoF{q>^B6_D z*6=FJt%BHc8vg}|EkrKsY;ktK+H!AR(G9-}U#!~js%z#)znI1VZRTK*gSw&Nn#>`dUEdNC%zPJ+Kk;1-dm z#f}X{9%q~dsIeA{bFir^ty0(|bz#eYd4PBUMIQIr@le5eg&Ntb@&-j9EL-S7hg*&!V zV4Fu*S_P4n7W9iE+8^w^4aoa>C+p<`;}v;7|0vIIrpWp5O8*JQGSX|UtL6O)rOvXS zxmNb=EWUTCd9~y4*l1sj*~hVpm%#QM471+o)x*SZSEh2{PNjE$D9dv>#F19R(3j-&ndRID%9fDb@^koEigOFcxx*^jgC zdMV4-Vw_0cqcN%o42=!!q(Ofp;|g7Pzb{!3?X*f&V6UyV%Gf3_Gd{q!w|1`gP5Lcq zH2$`Xla1adYxko*cJrcWr>8@I z+cQRwWp?O0Jd8Du+^zPSS3-$vsKvPr&-(z4MM0OaL2Lfy){pKJ zHohw%H^S$O>U{ulD5SF^$6#5P(5YcBU;nJf%}8T8KdE}~z2cR@!3NIx6XG*p=H*2pKe#34px`M`lv2NUHST}8?JGiy^j1A8I6-1Z6Jt%Ci3DPH?kT%AF zgM-=Y-EOlRxl%}mzPG+7`O!g%vr6sn(BHKpS|eljbm*^Gpp90&5&IWo#=S^urxfx6 za_OoqdZndD`>o83*j-G;TKk=lzq`3)=S_)wip6FnK)6A-36Hpg)3&l}g>D|{mSd5G`qv_`3Z_JvrXna2H9@H?Fq&s2Aj>>hoL%Di`A z#`e2y*&MlM5#Nk_zXd9CYR`*nu~04P&(**qF2!#h7{fD34-cJ6<5dp+Sc=~|e$S%z zhidIyc);#EVB5(ZE#0?laVAr|Uke$Ui)dfsRUeRc3!J}eQV)Y{hE&mqPm!t$}T06uG~klV6=b4W50ba2=` zauj8Jx{eGijGjj#j3Ea5@q}oEbKAj}cH=By)+>F5QNx6t+CERDvJz+gb1+#zdSSs? zPS&G}V1uB&*%xSMeQG+@D$ z>&=w@a-Nh8q&4L)_g(8p4m!-sYO4Q5YRBgiCkXO`PwI$}AJiKK))C_X(A;DIw_90i z0K>ycwDt16IL9X$Y;$Y3FSyhwlDU|RfI*2fzo7KNrZHtKIbFn&qW#bIi2ZJq#FfGQ znwypyZqjdl06#3qcEAUrvN>OZ(r6UiE8YbS?%{65}= zpXv?e>lh1mzl<{iCM@#E1C#K;<(ZtH3BFjshh@LHU^DXpN2sM6IVMDYAf*p<>Mm*P zW}IoF$!S7-|=osY1pve zD?L}p3OM@+$}&I;c*lOmEp4rfdWOy^eKH=Wro7%j4$OgrB7dTrbFPW|tXq+MUQ=vxi=Lpbz%jZf*?fCHG!;{C}LS?mi~lonHoye=%a zNx!BWe%LQ?vWV`By_qKa3_9pJqVtP43j2SNQiwCeWT~_%L5KAQ3oT%j7fK)848*7K z8bPd4n^ji=f2VNb?@CQP|L&e7FlUY9-JAmtxxw8;i|`A{RO$^swdtZC_9wkMl}T#} zw&nK+2hT)%vZQa-fsKOx?O1N$=zk*ps|E_QIaa{OzKX&&8Xz#MdD=g^&7Ljd6=LCh)u8UqiCdT^8gh;?v{tF8Z84 zF7OH5A!W~(hK)yo91oxL`<*4n<5a|g5Wk!}JPEdcQs2=J+n;im9EV-D zZ5uwURbS)7sx(_QhTsdxWsJEl-jK=jebU`Sy3LQT>rYOXbGq=V?3Ub_l`S|!*YA`* z`qi@koR7y~ehIlLvz+=ta+<5F-dNuaY=Z!|p;BAJb3TLl=Tf#IU_4$qQu?L`Q*sm2 zKjb6ybzZAO`0bEB+ZCxaF{T*LYuTR+SQX1tW&O!6t4owsO0<|$($VcT+AU{vsS!|D zTUu;2>qq<97CsNTt+N$<1>?ml>>D+N)y~-8$|J~qAaL7(u^L;RP?S|xPAq!&7&RyH z$`+zCN2FWl909rfK5V4W)BjBT_i~=Y9dX!BOZ5ip@61z&=JE^a*E81`JjB=5t-_b$ zCeEjbb8q0!IOxAaTaxEyed8vk$0f=VLvaZH1Dc1OisXu(>qhTmoc4QR&mlR(uCIXV zt2EXCFGJ*XptcZgk$f+3Hhy2cFR9U71(Y@HmsS>Qwesb<$mN`SkQ3*{kKo_-IboMI z5_x1$2IJ??k%&H1w-m-C2x}4h*=}cl(ly zCLfvum2@j_@gyJn%h~yKy#8lRH?!r`y&W(;igQPMX_ z|A^(Y+w?B+aWyLoSijR4p?&{6eVkr!%$BP}l!@mseVqJC7J?~ci0 z+ue<-z?p&k@~5NvSl9DCad_Nj2j@PccF~?a_5mT2suF+g9}b0abLgH|(RS1GdEz&X zAHIY3oJe~IuC3EHcMG5L7E4Rdm!%HbJMN+}OUF8a0f8Y4JoR5l zzt%V8_v2KKzFFYqPl(ev`=T5V>nx6P&aHaLJw~I&<88EBs^T|CmNa*3s-NbA#+v4j zG1X%=-9O$uZ}o0 z#^?aartqs8IQQ9}bDT~)nP&$4VA`e?|lGA}pr z!ndo{YQr59dMNmHb#B-gD0wBmf9xyqBIXD4;-9hYOW5PFP8D^xm6~(vms73gxmVO} ze1?blN89Z771G>7H?i|Ji|gWhvK%j*KiccPE-HAqV{p*cW4Z4S(EtA{@7S|$C-{P?m8Nc-;Mc+1QI1wXN2e^oo+xcpqq4h@ubm<+aF^27XEcO`%I^u_X-cC zoew4L;9O~Mrm%BD_D5X$UvKqs+;o7-f^XfXOraONMAzYu3OXy6c_fkZ4E#8~|8AMP z3}cIR6FKFWe`9U90?nL1@NGrV3+w~lt*}kZON>yIiz-PrZFP(_=E@kWR^K>9)oYwC z&e0Bk#C(AnioU5c6P5b83EG#&=gBcd*%MK(#Br+(;_O}I4_}#gf`PLx=#H=>F8^n5 zat_WKr0xYeg-wy^G$fu`@=tMo9#Xs?+BypCjX${SP&=b@nqk7$2)Wv}HzNMVrM_-Z z*^em7T+^%7S%_V(*Xxa%@;YPZwOiwRrfnq|wcXe<<^jXuZ%rtH`x5(|TjK+Co$dBE zJ|Soy^GLd#eXV$$kNFdL3&z+TX=eU|v(d(ujoFL*Q1E_J6&RGOiJSmy5s?% zZSa9xXkOeR7Z0D=l*+RN@Oq3}ir*9c?Fkv(=+`*pV5j!A1jiYEKEuuDTDl3&<4j-3)mEz7pcNc;^q`zVHu>jrw0JuEx(S*f{TK*afs z3JLu+kG?;YXFlFY_$%ew_8!b9%`yDoz9I_{-8v4po^t@lH`+U%G5^^E%&Q zdB*VfUM=cN+WY}>%8t8yhm&{lU^j=KSUWLkbUkt=#9Oj`#%^m&EHeRJ zcKam3i%B*$eVc2Hileg42b{t-=`*(R8JOazG$1owL-UylJ2T09DY+{ou#7>c|B<*G z_PBBW9LOgnjJpvRIcZwD;U^OWb|q}T90L^HB26nS<>*?W()CtOf4gn7ZS!tli-{)qEaoZ;Re z^@g<@M9wU%dFb3I(?ic8$M<6_3)QB|oM@LB5OJTP%uBgUU`WGO1wO`YzbdWmL@#%z zx1D``l)g2#tfdNj_~?S6{nE~-i#C(Y^^D!#0UEm-H~2Vq@`f2h@q#$N0&Op)dNO3* zjtd5bp8&33yTO-|N51ae#Se&Q@cu1QM#WssrutAn)*#yO3wmz!pwR#Ac6s&ILed-Z zNM0(uV1tll>~%Y8P@K=(&tCn2$fN6KJy)zZhkouBdiQzSci*<3Lypo4svC5YBYgvZ zPIU5#9P8jBdQSSYV_u-IPoOd%!Mc@a-^hE}I)``@WKMsZg}J@>lIe*I$)7*^VlX*j zT5IaM$gS3HO&}R#;8^Hdms9z57If7Kq|+21o5FS+T_|(29IkwiEdTT`zgqt9seLo3 zPnlBwiTqB;YXfp_AS<8FehH!v$Q$&RFNF*YUbKPgV}46@g6DqP2|s-Jzh6rHbUN#D zxxn}Fx2CR*NRx|^NBN;C!k)#rQ#2PI&Vgr`HXpyBQ_LaDty-I9>q@Fxmrw(BRsr(i zsI?^jF0s=02H=nt@m$P;-ESPNi}7rSCpl}ypvYro=cBacVpYn+(7){Zw^04Tw7m!G z0DUM>g+2-_VOt-?JDjIjZM5*NLi(*LbIF2+3Oap#MWjD%D9B=)GRGgVy=G=yC3!Ae zNpfvQ?gX=`CwLdyL1 znJaRr7Wq}SN!!l~{pJ*2D|i;)cDXYCBD+ALXVtHk>6K-oJa^i2(EX+x1ab7xC>1kKy@c!Z=!`&ypt`}8xBA3G4|b0~=?)^~=W&3<{!CHaS4 zXLPO2KcczFuSH|jXWv`3R-7$}SecbJj??HODZ}C(&VFvcy(c+f=Z{0)+$vx-Z z9X{>z*w520b4;g?bFF7e-k8cEme!{KS?f#Xcyjy2o@?i)!(1Z9`Uf}q*>B93R<@VQ z_R9QS9`&o`{&;QLI+W$=ipYJv)4w^sF>fU24Ry=2JzaUWXXcFlp=YKY{+StR&+Pe{ za;DNVlYtv4^X{=fJKaBHhQyN`c6}0EN4q&Uw_oH+*ts@s9S`})W&>B-EindvF?F>Njk7vj4!-TLKynv|Gp_tp?6ZAV(K?==*mn*n9erbD7$*!>uee zo*wIFTuscIO0vXL)E+eeIRfW_;(e?oM83P2F`-Q7)yhdd-^jHtaKr};M%}0*Q{n`sDd5SfFBzGO{^={5@0e*)*{os^kiSvLh5)JT~HE^sElK^Qz zmcOe3SMHH|&TowR-J$vf_UTeZc?jpkI7gTweO;#&?n_QCS!XF-w9g-v#dbG=Ileqm z6kMKoo9S~-!tW1{r8ytxp0-TOA>9bR3l5@R%x_df3{?ToZ;a)W0&4-yue++0bdq0j zK5Y0FVlT{2J9ooa@HpU%gvY9rWq7o2vTWZ`g~AtiEa%}Capm>EtmIr{Q44KGd)-v` zFKC>C>N=}{*3;7!UgiO&9H-Aq#5mb;02r$`O8b*#)0SE3ZNk}31+{&%#6T*i-)P@7 z+UpK^j^=CtxE-xUn-?!WX|qA!cFyv$X%XZyNnD|c*s}kTGTX672){Vkf=`lbm~{%$ zL4R;fII%VPNwQM*ZEkru)ifd5X(_XEP{lvGSZ+I%!w?JI2lHO79No8(6r zzo3w4*%=ctA?~Uucs$8|HCClsohYF1BE2S2ROO<%a9Q4SBNi|}U^MySEJ_`H&?N;3*y?mB=1I{vGznU}72ooPeJexbZ)Nm+yX2abi6X`95 zUUgMrcBsy9s0&o@B=|CSc;I*LP^+C-W5jbFa?qStc16uKffJ2@_KvVqYE9N;X?MGX z#;%g;kId1GK$Q3ut&Ji+o1DY?KqZZL^Xw91I?aKP#@eeWtDEN>XTZN0dT^0eX!*pM z_G;KFDrp_Ezmgw*2Eu+Go>phDtWBT&$a`s@J$5ZMmOm1W=R}qnJ4;@QyCThTgWjFa zd6O9Hqru1dyk-K6ZhQg#c55A$8m;FuJSY2`)mz6R?zW4@L7ARVqsy%V`s`QgEaYzv zkt|wMj`FvX{Lu_-+|gcH=5vFCtEcO0xUN3~>w(Mfs=u{4?G9 zQnry2f2Y3Ga2+;2ncb%_?Wd6K!+4Hp5A?S`R%dONXHKA>cdj{%Fetq?^X1SjJGlN$a>cATU1Qca3M^zn`HubQjTnkmFFYfphYQ z!QSMav9HGA+q|x$Cs{$`xa%0Vd96Cl^iOn~E4FMlbbqI{<&o-ansjRW($+z8R0 zxzo8dj&g#Mf z#5r{leEJux=J>V}Dg!Z>kVD{`UL5MQN`v&g{;trWIS%`I>UT46Y)4lrYuRsnCwyA$ zm|&un>FQdN17^loIuy>&MeS^`W6%}<^5dw^9(aVM9>A@3xJ z|EtuF0>)ry>$c-lG+F~Y;ZH{Ot5uzzf*p037ieu5E?)W*&fI}z!~f?6#c=39i!~fBZv)j z(O9~mUpR6)5{mj@V!!i+cog}z^(6_7)?X&gQ4}#4dUUIEX1JSvKQCmYi=HuyC!Pi4HEwleuX#KIFuw~G*U=YKW- z-Ct!pk=v&pIlv;+))2{fL6P^aNVdED>i=HuyKC%r*L=5jznk~fcHjLS+wJ-+R!5`cgc*Xki zZqdfQvW;13`IYXWHvTg$PbuPT;D0_P@DB_26)}#*rmITi5={9vM!%u05t&O6@o$kP zYbM&-CEB`y+B$hyEX-o$&KJAB^6-9_J&H*q)TO}zQJujWns zx_XxV|4`45p8Ib38H0x#m!pRAAzmJ%WI6R73UfptD#q0b{pN&Zl@?D{;P)TQYy!eBU(Q;lFIKOV+Smk z?qn(3m;J;(MN25deZ$8OMQ^>*k3xnpJZLzhoAEX(mrMP4}C-1QvEAO|5~_z8IqUc z?8m>vZH@~0%@f;tlEr?+fHWnFs7&N5=s4Fh=DbciBIz%9b}XLJ1a<;^lR8R}>tR;h zBjO-g9b~ksSM?k%#v=Z*Qj+8$<8A;)Xq*Hs*AMbRgWbuLJuI z^SfA{YcqXBg$&}wSt02~!2QA54rB~BV}XSee_rQHg6>Jawr;KZ;63}v{#`WA`Jstx znD!S^pDTjMfq-+?PD>9gPn_^8aW-8*<2ao@Ikcx%0z)upm{Wj(6hfZJPUQUPD?==` z@~(A?tdDr+YLv~oCFzu~r^7Z^sVEQSNc$-E#kNf0dx#j8b0p?&629%)BEzXIH!yw^ zh@M>fSRS)pX~%X+tO7sP3pH|k4b;~ zH>j*i`TkSLjjps=(>XRW5TC9zwYh`Q70_+5_ZDRdpUWG5=@a%B@HBsPYh_h*t2+?g zoJZr=NOM)BuCdx59czU3Fs;{W19~Ci4_%yN^zS4$tmt;zm;lu8hhb-;^6ax3*c|o^ z4n6}q*+ewDP_BBJIUK*8&@dQ0T z_`k~&Dz9_HoI&(~xpQ$m?5b{;{yO_=L2j{mC2Z|eas*~8#^eBvX(N@7Hn^0_<2GF* zZecQ&NBfJ3^#mG2?i$GK#=*g)8eC&loh`6{)-PGZF|5&RMZC(5z%O-*=ex%ZrpESY zxdw5jg*JPt1g#-vkjIP9XKE9`2_;?rp(5hvwR)`qd}#RoW4tlW9<{k!({`uEoAX3N z&WUzfQ-LiL9O4gltT*y~*z0f}?VYC|6z84z4c)|X;sK`F#WYrvsolBNh@qKA{D;0* zOfwOK1{>Bq(u*Dlbj5#yb8f^5lYH79e$arg^Nuq6IAmh<` zu<82(*l{&rb&pAwG{)G+ytn z_9d^D`ULx(+h@7dCl|Hv7rX}vjNzZjIO$5FNytW3ClO7TRC1ZXeZ@K21GkIV)qS1V zUs`EBwh|9&x1xzw-eX1@;D%ZtKiAd^9&YIrh#xi`EtHwM~Ohu)yb<1dPV9 zyiUw0+DP;9F>ttu7Su>9?bFRxWQp)ULm#4#wsKyplbByoJ!8ea$k?!jb1070jEFcX z+$&P3zH`PJb$Xpqsv?KWl7veS85zX?QoJyY4;~@Qbwrktep8n~Og-_z9T>~;zX&IO zOZ;uaIjy|EWu@k1F3x(M@lw6Ooy#46fX@f7pf!a4B4)NYO$LIGxSRTgv32W97;mdo zVvDi=R1g?>?R(WAXz&QunSqhV7>G1JnZxp_d@T9uP`T%Fx$yC}eQGg=k5W6%SuK2O zac*zR<@PxU%h=S8=tOZIl7aJ(U`u!F*p-%na{aRtrHXPx4 zQ0v5%7UW&T67&@fCT-sy`<+RHgDIapzuXt^4-Wb1rRyjTsiUmY4kWKG85}yRk-o)V zX=6mJONi(d=gx??yVED|sNr`UVp?P0n77>qwIgtT0&zcxbA?P=iE{_-J`2y`Om2YJ z#N{UVEOIK+yg4>bTv?bQu^V?#J2pB+{ORhE`;x7*pvzqvhwN(*f3(~13!jMbgFlwR zypu5#-e#OIV_L!+gKtk;H`-7Pn$jM&@Eov8fZ@53Xmo;4jL-NVh7+){{ekMXbI@R) z@CKe_KNk2l+vmnlv2SXdeSLH)*W)F^hqiTMMCy36&AX{>>G)aYCqqVUu_lbz$8^x) zTx#7<&&)YPoL4J)$ZEY7bS3;JHLP9iv40$4-WaVkJ){eCoU_v6^G}bmDgT0fgEySpH5G{`X#nJ?0Gm_lm8&_k&XBaZS!^ZLm zhP!Q<1#>zoOZo~^*|ZKC5VJEcEY<;HvAaS;*i+H5BUz_JPAuTh3A^Y}9;q+9hsNm~ z&zKo=%rU@l(mJqD-91KkCpPB^U-5~PL`>WJI14Uc(~WagR}^QJSC~CC#}BM);Ji}{ z*ZPtVj%nc7+CPlwPlhH6?DK5e8?X-$UweDKb9HJT&=iLia*BB20U0Y)L3_-GdsbVr z?9sq0>R1B2h`BUYm*pe3`#@x!#d`DIqR)sSe)7N|(>3D5+>X`Mwq+cvw60(H(N0M7 z7sq)1*?Xw(we2syPhzClI-J-46v-uXn3mD6Su!^56UglTR=$UPF(1lyqMT=lPJu-P zobE-Em$cjnd$(bxw_)|yx8b1`2Sm=4NY+r?)RG%Tu9^)A5rb#vt+I9Ci=^HG`#J0k z$j|yiMQOM}%7Ew77zDEv^B6~^dFyN+$64Nbzb`p{F6lSarbSskl3kg<#gF%iILwFc zKYVNjFtoc|qs%Ai`HQ=HlQ$sOC1cY^<2y2YlU2FvteEUO_-hrdkpl;u%>OQg?MZ0^ z|IeOYF5&`9==b8enT%aB z9=#8{=2~@~wJ2NkV=Rq7>a(9;(&0-YC*5LtW6gvBioGAwF%<|PjZmHno0MOAEKD!~FB?h0H zAm$`@nsEc|qYk;pVeeaX6wwL%K#5=GW%s4-Vedzs;OUh_n}`L1ECAnx$x2fKyoB2k zY3bg!vo{I6G`zcK+^ccKVGoRbHQsvdD(kroz3@Ngcj`Z7xjcbq>Lc($yv+2Id@`MM zv*R5!pH#-Y(?l%v94QCx=eVD>9E(o!UE!zL>*U^WltX#DA_6>8w+Y_`C1x0AtZ1bh(bIXwnU;h({u!$jU6oMqsQwcaJx9b`BqL~Dri(kj)&SdbTk- zlv_=2b&YZVSkgVJXBf|*>;Q5blg#-3Y4EY8anqI<7>my?6XW1eY40J~(hdJFt=Z}>?@i))blH|O;`71e1W7wR(hqLuu_Qlg z*BcI&D_5oD$~i{}o!XXpF4qQ=e)(=Ey_*@l-awg*`>6tBD;jV6VvyT7Re#ycylII6 zJN8gJ-?a0{$!&=C_}8-j zmnmYS_QJ~`50brC1b5!D(h_93)@7t z)P+QyZC_s}&hDNCPT0$-I%kk<^p|#D@_g8yV#1~jdif>&|KtCm--w6E_%8iEOdF8H z`e#(vewx?e^-cD-b6pu}b!8t0m+i3Q`)urxdJY~O%nnmuzo2@S(D%KVXZprDW482x znJj$+-4a`{faKF#_TCr^(Ffm)=;No4TNRiWULDvP5w>eYS`M(UL5}1#I3EMfsh4Q) zV~P2X=lg{Xm#?EP#3&b#tgthC2zLwm%*QtfIbtu#2&iLm%Yi<7pXOZb66*~9iqOA! zfA%BBbq+8wU9cP4_MaP8`I1F4eh)cMqj{|s>@7~M#28fautxJep=d6!Up_cF2k{=} zA5Z>)De{mtaqQ}f{|qK=yQ!VqU<5F}m33A~txKHT?_}M4;%Z;gn}%WK4YgQa+B*=N z4WD4x=`B0=K_~K5A8MnkIt&({=Wuhbzx1v7Qh*ziNpt)<)dzX&knuZ5_~k3MY@=Z8 z0xZwAZi!e%)mpa2>|cUd27`GN*0u+@0kj5+NzX=%luL`QfL>G-EN*iLqAN0lo<}rr zIo|a;lwZProIOU(I>i2gb3E8SIR6pJYV-diY#Zz!dCs#v|69O5t>#P3!iMS!M)OfF z?AqJpH3wb$5V~ECo3XM$Ki3i6z`n%iY!`_5p1%Scq>A$@W%rP*?o)-VzEks(oZV)r zI6F^#l2n3$L>bElZ5E!vecXEs_jJac$S%7q+noNrk>-sgdmh+6(u@Zx&7${6M-GIo zqDVLa|KgwC88u7k+ZzohZj8~sOyd?e#9n|iJIG#IOxQe%jIgySv@O1=dRttH)>x%V zO|Ms9YUy{rKa{7kDlBuxZ=>&R7H}!>Ze2k?>udOLf7`LruN*Dp0>&(s7zL+Kcd+l$ zD`&a$6MAJn(S2OQ zy$pH%NM*WHvCrt0=?Q%6A}(LxgwgnP1A~$Fy%917dGEh_xDD_fojlqnVkM|d$9Up( zBKIneYn-x#yZG{$bI2_-RkKe*w5Hy^x}nQXA3Nb5M*I-emVZw+Jp~yt!(RA z%65iow~&oR%ycvB0kcTgh@3paETH?lY5mz}{uO8TCq-_9ro`^Tez|Vy_s-z8yvo|1 zwwB+Ef5PK>wv1ED=z={t8b_avScLV2V`bhqhh? z_IoAzvgN>s#-yxkIrt;nf-=jO8SbhYwt?HWm;0n$26OdWIZrr4L>`@ejMEl1VPno= z|BoWe<%o3eI4GV&jw;~3VQ!wBE$Ac@XLP#oS9S+T4p5%pcHEW^y1k5Xf^dd*D{}dC z88~}m-`B;+-sf1| zR(=;b>uj1I$vSr=b*AhNMmNLG9G<_>z<6fRJnZ-GOSaP5%ebkgo9RZ<3duP;?6pem z+v@R0H)qiMUS5~2d`=ptcT1^$tXVvZ{gUQ=2g-Sy?!nHphrWyG`wg$a_ivq8OS+)& z*C?hB?9V-AnWncQoB7DC!1E-Y!hXH%v)RmR6LJ7(9{K7(|E09X{x~LT-a_|Eu?|9z z*9_Nf$nE&kb(S7zN{mw4dqyd>J^PP!ncW;mSf4=7kC)F8JbHvv8IAvQi-oV4=Uj)t zyh2V8rQRxZD$fAd*pUkxZL?*sJ1^B&tatE#_}diFvr24*RioAzs?wOi^Ml4GNyOI_ z;U4U-PS8TY^wM{+*1Lq`LrTPOmZSc7V2VKKUoKGZILA?x1$69oC$&9uxNN zE8(jbThR^P@h)&HNpC;?jQ(V}Ds13hQMAL_5jl{|P#U`NJ40X1XYfa{J@RJ6A~v9H zS!!E1>CD|f8!z}wmR_rPBg+yQ(FVn>w|J1Rm)`fN%8xiMJfo_?a7$hK4F~mu$^g$6 z{sosKrsyG*ix?htq}#lbbWZHWr(O@4wZocB*A5)H&YC+x*x1;fMsn^+*TY`dVf}z< zrNg=yv?AhFOvED<(dS6X;|4~!%?;<&TX=WO^+G3dJ9PaJ=aoNqmv-#D?pu#|I&)hF2A1i7B-_0h*m&u`O%x9TU>TPW+a zsSb&4)nuJUW5IcQ{VQ1BMLv@+NH##5P~WES3BGnG?6rA&I7Xw5+7_DFVIh|6O06le zrshPpqrh%>6zL!u@!Zoh`;+j;0-Y5DcT{O%S_BPVXM7^}hUL~z)^l9t~-z{QZvh`ZVF5dG!K}&4=_J?`jzUqo^D}Un-jm5v1A)kSlnkgCB{!w;J_ zTpxbNQQ80H5{tfv^Ii<`>^1)q>!sCMZ!Mu`_J%^d#xYjsqAXgUcO$P*Nt( zYs``BWTc$CadMrw)7A-cjB$<~b!p;R;7GG%|aQGE-A%_Khl*!sk}jDEHaE+)R6(^XA0ceM2mFjs(yc#!RTaev-AYe1eo z|78($t2NfYGWI3G?-Z#s!EW>J2=UC5i;z>hllMC>`@wcFmW)Dt-o}y^$haB@<2IQCyDaVNCVbe#xg{SCVW3Gt3 zZY3Ijdc=@@<_@$^?h822!I_!eKdkRM*~j}cg#3cO9SJ)lJ+uF0;!&Ew=fU&;L(g7{ zaZ=l@Mp*~iUouuPZ=rjyaPCRN{3GJS>3#dXpD#j=-g?%HyC!b8=2021;7m%=zr9~B zSS0qznhdc|R?9Zod*o^K-toWaNp7IBv8UkO>|>(rL-Yk*xA&W_bM~-ah5Z0~4fdY3 z9uY%}edn%&gQKes3SNV8S&s8gDzhO^;6e3LSr+co-ZVq@(?>LY7PYTxnBO&c3hcUj zK7KORLm%anCu39SQ%0Y8^g$hV>^kbIbVRHT-*?z}7TJ)su})cL_t!AC&@aCfvb`$t zG`-VB4keY(Vxfn^H>A~iRDU)8IDL>i<4O8{nm*6yz{gNVGY+@R@qPl%LLnzCC0TSa z=?6Den#cpsI5t&6X3kcBl5pxxwBBlrZ6%}3xA}~)F0uWze$L;XA!X*pG-o^HIC&y$ zt1v&l&X@)f3G3OKIJE=oz=X4jU-0;q0gD=RHZ39hYSr z*NHR8=OFu6wOhbk#{JjjebieVikffGbEwZ?oTba)6Y)?-hSS(c&!YWKl3AHfwHDf! zS6EJ3`!8K5@IQ;SHY+4)@HHwo<8Ju5M9t0D!B@47{iLXjdnzN#?je2fp#plom7Xsp zeu;9tB})vP6J+b6j>qUdw9`d;l1tglc3R}R+f+_+%~|=tZ^(YHTrnThBXLc4C2rOS z-?RBz#DVoM;uX^Mr#$CQE8sL3*KoHJ7}pBxXn7NNlD;6ZCpD_0q}g(un8&zN@0BR# zqZ-wrITOFsPzPg;$~pvw;%t{F)0tL}UAB!^6PXradCw;?xN+W;;leta$yhA*8I;2X z-{qU&<2h+EW3ULESR1bB$=55(_{%^a@jHN&{AC!bwau``9~xj_E@DUZ*OIKFv%fnxqmtBX4{5nnz>`K|dO{h!L` z3oBFa0!M6)ax-Hd<6T^{W#v+8|85uOvoZhJq9nb6m3$@xI-FebhK)%%TA?;IeqY$j z-JuT4&P8(_@K|JB4#ut(w(V5@flHq4`Qgz@pWPl4@`a3BF_0%v`#{F{cpfXKTN%LOd8%PJ5HRv(7anQ*y!n*?b~~k-q=c#ccLa@$P4^y ztv9rqRPJe~Z;n|+*G|9~&7m^3DWqT4#ohkeRL+j#>2=l@bPZ$mG-Lx{JW!jULlx`w zg%45Nu#fs5k63fpD}28E5Y_uOy@S~I^gLd_s+ah>6Wxqwk7w<3!kn%e!~b}lwPw4( z=EdB7MrDMkeB@g$qV}EhTJ$UJD@to$gq}N!-pf;dl;6t!{g;}}cK)D0;=E$Vx90H4 z`i2}nQ={}gb4`fb@ddS`apG>y?SytyUmVmI7x?7{XX{Ykw5_I3gCA;u^9JDEKeY^DUpH>q zZQ+@&iLKlhem2%&A$)TZ` z;nG0F8oZ{K+x}`ZWXx9fePUZ0jpx4nEjY`IbMCQ`p~UY>dQ&)?7=y;Nv22{UljjO& zB0P5KZ5rFk`Sf6aSaYMu5%~z!hqhv@fRhBe>Y5csey-6NLp-yA{ik zJ}`>rTj#ico@=z>(vn`zrHS8*s6BRHfwN-JKKk!Mv6na9(39MghOvJ>^#_T>w<%mcZth56;t+)!IVHfsjGK zbD^W44uxbH;Pwoj;WJmCb*>3naL1Hr3;k}P_u9DJ98qreSyA3UfA;+!(z>su{h`+4 z``P)(zu-k#gQq+BKFXozTj)2J1N-NoKGOX7R6pN~QyujCkUC&P$2lw2&-I`^whqrR zy+q@?e(pA}t(s=GmscAlHxmyzO87&;{~dB!^aZc!i22RfX+HBL|`gGtpUJk6G zhWcFiO68i5QeB_@Rp6DZ#drd5l=`$$(&Vv{CihQ!wx|1NJ$<03&+ddi*J^dRyv8%A zSNc(MTk@mvT!mz!;8NpV84rPYP~;E?ZQTCHt!C)^BT0v;G^Yl4aD3(ie+eagB!7#1 zurhZl;`T#`ZEmuBBwNBpx8|B~V);isysn**sQK~=;zNk%L976+!(F=3ZDYA^fDgCC zrkn`6pf&tllfd75)_xCrYNW=x61fMIxu%Wjo8){)9ZdW1wVkT(;Cb+YPiXe@eAY6$ zF^~8k?F&QvZ?%QI1&w(_{14@V2O_Tb`ex+JWIJ2pR_Y7$pIGOid{OeCBP7nL9e?SH zMdQ%V;V*}LjVR9{eQT%&qxiEYDC|RV8qR!4Pux{uc4vw+k=2DbgQs^$&*ZlGB>o24o;N8P zKbqDd&c`9^Abu}a1^?To1nf#E`)6fJ@@eO8>!I2nwi~&EA;ZQoU3Y?#(j9RxGq`{; zT1cjQ20RA#ExSE#YR|iTK1I*z3pn->e!q4f8f97gaW0?s4wd8jdBDi$7(U`1`Y53z zRoFRA)E3X;g}&tT@_xZ#?gtkN-(Tb*$N4_^Ec3#kz=p(HZ*0n5_mkN(Z!ui46aKh4vgNy69d2x)6~OKi$LlZ5;YeFJ*V>8~DO+tZ$NU-TSc z9b~0dImVsBGW~MfCrSHVz1n96u5y~kP}`59cJGq;qo>O>^)!Wukc;!ef~V%;nt@_O1n$l576CS(t% z=EvCr``KvJrn`xLexU>z@0&49Wt<>r;&Dk6kk8WTqHlqZG1>7<@Gx|fSRniv7znCpwEEiuw{=g@xctWtrspS@{*o8`FS2>#tT zpZLvBk4PZ)D|}Nc=gm7F<8f^(`_YVJAKMj)BZvnOPtNx$v*VdnQO7ad$GPk)sZC|y zqqq}$jVk>2N;I6QMB`W5<3e;^CjD2BShCGCg4ZnZ=@Uknd$me)fck{K5B00XvuUc= ze1~ye=K|L=7rua<3xqAij%QKNurUIJFY*o=qxAb6Qj6pC@&6JKqmv z{JSOZ#qWB^I%nnMdQne7tMzngD`Pm)|H*qvE(}x%ABD%=G#A^1^8Ay-u#wq# z`X+pJu}<8yPWX(H+Vu3KAsxSQ>`oe=JoE8Mp+eH%b8Vj_dZf;*RpjB zi}atTCkc7kBXV6Oo}Lu8{t)pcAD6iwpmR5l-Ocr6a16oF_}F`rBJ(vK7c_YN{naiP zm@K4&;dzvcHrwSos?L`=9ul_W#c}wBP+5+Q07q(Eg6J_Ft9O z{>f?jAfCs0fPXk`1)?ease|Ma*byKT121(6(UJ%HE1v&w-O7>Fz6~RSu`qoW(`S+V zY?&7|lUMppyPQy9l=;~#KjfjlQ?HDgKc43Y{tN3cPaL5ngR_JVI`T+`{W9b9{>PX4 zO_l*K5N(G22R7Tl!br;gGbbFe9;J3aF6r-o8Ixc1XCw01NS^FSv)N8>jaadOn{z%? zy6Jwj&APXyCz-AP)Nmg+E%QiA7RfQ?Wc8P=XG63e4u4Z zjnS@T7~>|1ydNt_7QUABaM*cAlf2xacn$Eq3lwEM>#@|PA0n1Uw)Nuld8hg9st`KK zSxjG-v%ep3_pm;(9z{N-CCKB%xzTVIpzZESBL6qa3Df+e4AyU{obSnUvVzfEV8fn2 zGR!*Gggrur^a7(ow#CkikZEI`R|OJB;%v04)0$Dy%64h+?heV{y{w0&>`tR6R3Nv2 zZHp7U2QgsTRfdVWW~9ri1+6I=GDrD!3Qqy@vcEJ;v4Irr$}gba7Q z%%f||aDSya#~KqkD4P;?4kV0?SMT)9s0e%ZFfVVlCMzD(%kd*K&7ii-ed>$S=bL}nxAO3I9tiiKPGDajeZZ= zU2BPdwlOvU%CK!1wtR=RNcHd;3(7wC7g6(9TZLT`WkSwhF#UP!A5urYK;}&uv#2N8 zA>{}AWBas%jxc|WRd-aDsp|Lf+6E>x@TDL9peN}oSIi*EI+`A~4rd3(K4Iq<`HhU7 z=9~pIe!ugJJqC03esOQg2e#<9C#A5gQUBX=UqKnLG2Zz3P!5I0yq#7VWJboxLtEjW zl4}CT2bhiUd4ztBcn;|8(9LaMO88NZV!8__5ZAlu;D^cLDzWw_P=DC3)Gu<4|4Ft1 z*Dm>dFsYGlSSH6F8tvs2_U`9F zq{Kk{rh40SQ6I`j{dRr7POGa_skZh{9cA9ASMoWoM*N^7O>eSk75m6*2L+9C-W7cX z)2KtzX#Hn{sr*H@tP8A(g%tv8VlVBz4q>AmT|bkqU0IlLNd6L(a}g^cxh6AD=xDTt zdpL&-=eXzn?^U9aBcOLEfqc+2$<7|=@{Y5%y6Vfrp8TH+`)+=dFS)Hk*m2R1?G+-= z()NmQ;rmTPIi2i1_mVeyl5a`=f4QV1=(D2&2C#s5{fk)oD96$}Cq&JZ9h>;_GM}PD=5un<^Xwx`--t)amHKcAxARgn=xhaE&qGef zrRL&^t)5#ZwidQ1iUC`kA?e{WCFpS(0oQxmKChveL0M6v+=oPPjQ*t=$}5f$?4G$_!x*gbS1; z+gJ5!qdpXkQ@c&rHX~lecmG;F8LPl z$TpRbY!#v3IeBJN`uR8YX&KI>t0NqDUk90NW`xg2>f~AG?{O}ydrg;~W!UR2k7Ou} z*Y9BOcJMR&>?j!@2*0qaKL5}@qt5o~^9|U5aeli(9#)Te1t*ElVj5B}v7xaB75 zn{iO!6SRWI%e~@=FF#~?*~b`6LWTm(tHCC#M31^kNyhL=UWhUnvx(MfLs}UgDnpGl zS;y0F_)B(HDEut!SXpw-o%}MC$h*8KY&NH@9+3 zbtln}u*v30+P{s~#?`cjr>8KReq`1V|M`#f?ZP}7pNV;N^IjtGTHcY@>gieJXyUjo z8pE7W)Uh7%E7h%*{k}%eI`pap$C2qGPs!1EA98W1#(GK_{bpem z$^D_8q!MbgyrGa`kJ-~-e3%Rk8+Y21ykT;C=0WX=l5E?%h(d z&KhoO%EYtmkJn_af$t@?rC64O7?i=Qhwit?`9Z0*^DDUl)_rS;ZUp>^0Fyu57^eL6(IX+jj)*SICVQ6iG&R=$NhC$@Kqg8>wD4Il~x!zOR3Ckb%D`6IJg>^YiO4zu-wS3Lac$pz6p7v zEZFL^TgyA7o#VVb)fLV4aNj$)?<3e(se^O$L_D;|%5{&jvH~Kn?=~3|W8VY*BK$Q{ z=PfutLN3O%d|vRyS~M}0e|@wf^DW!9CCG60ew&w;gX&J=ZP<4pQ>jufiIlf;oD*G} zWZR5v8*2^ANSESXNy;weh**=;>{+%93111==A2%U&;9(XLy7e-xy@h<`7dh|i(pS6 z-f;tck5LVCVL_Nf13`m;S|zAny@!t~C`Bv-Kw!yP`v zj$!u=dLa8pslq=BvS?R9nDtYCfv{&(k!(62J{r{i>%KoNan}io>7+FP-TP>wi;G9i zMtoNb>_*p}>`&ZvB;D7}fe%+apYP8?Ebr>uM*0(Dj`NzylJjW%{fTDv6(cq(8h>R= zmEnywCJ?Ki$$288roeeQHvwF#TvsTLK7Tei_)xn4)tFPg=55DLOC-zBGh0fw8k@&N z<69@rH&ozYkUV=N?Qg(W$s}2+m+56D?32&DnwCp|WkOnydH;KWV@eC?e!e^(vd^5| zfg$XiPal=>tp0GKUEgBFroyLNdHWpK0$_l}pM zPO^PMvDZJm=>X@eqm^L3J6pt?;@$?jZn(mhBl}k@10zqx-{jc{&EwmxC1ERFj^04; z%`A)+nnHnBd3F20l+y0)E2*Rbssd zNdB78pDg(Pp>hTGRI~@V8*iBvwiZteTMOAgwmp^0(Z=k5oW}Mgq7UDK9)U^JgneWC zVX+y#dYg>fa-bQs|IH8e`UDDeN_tZ-X!Vz?IXG)TM6#3O{A;SuWFN5kq-S@~d2Zjb%@dlq&8nu)68fA;<8cih-IpS0||pW_^#R!4G~ z$eWsejssfzG0o5KC2gArhiL83s&WWTUP;eY%je!od+rf>&bBW=o^q)UL(%6a9Jhnq+I*kR0|ver!%Xa0``!tv*2d3Vuu+lEkq+~ifZeJkSWk+SgF z^L)vV)6VB1FVtMS)2hjfS!I$J;Qad(Rrn^JaBP_UE6Qw}yUdqeqrz5ysabRFwnE#+ zV)s|0d%)&gcZz5u%VO$+JnEYYS|&R7sCs_Frej(o`H!k$KD)Vn;x-Tb4CuS?_w*aI z92z@BzYWw^U@<&(Yfmzp_AZjYR;!s#b6~X7oUyhi30cM&pm*e0V?Ep^eODfm@8qPt za~8d0%MX7_;}sXvya1o%(r8bzS7MdSiV9w1kKLw8krc+KovRt+4qqpG+zXsy-2Zi@ zuthbI9KC6h(4iudFF1*Z;@&2r!14C<}jM{*6k_y>3(brbb{a5-@`*iwwv&}z#_%(ehNb6Hc zTAz+(JlGZ+3p(5GpM6eyt?VD3Nk6|s*^}(Lg5Tb^39@fEbNjGf_$S!>qU8TDMx)cl z=wJ0i{KAeKM?UE_x7Q)RO(O7YFY~26@U!MR*tcC^v+}sqS+6mzw6hF~(L3qBXwz16C$;GxOJ!R_>Elr+$D=(p9w_IHPY08>{bCLEr6SnQc@bcnQiJWD zQO}Cp1}b6zYCx60q_tUwN8f6^Lu(ZAl>4MTrNG~r^5H*@^_-|_=c;z`R_EL!{9lz_tWnv zcM;#pJ~8Y|J|*qf@G+Wm$l7f8{N)N?a``Yh>B*5wa*5=V6<-eVKHsQA_pXifTv$Fg zKJ7W@C}4r?WLiS3$?p#i@_$ACfAz~DImW&Y8a+Dv_3}q(;%+Vva+xiQETVFsp?der zoJu%vm?F=*;D6_4?6+?|-x_Ye{0ZAyXYv}rK4-_`z+O5*t_S?i5$9>*Yzp=@lFRLL zsGrcdz(#2MGamgPVQ+Lxe(((L%QGm*6gYBgqfs&2aJ5!%Z>lZF<-CoCG$y# zz_^GpS;=F9_DwjPj|%N&IJXNnx3ZkMsbU+}r5Riz^7H=X3o%#VM^0M%Uf4DGd2#3#~rd3DPWeL!!UFJO~ zbKy4Y9)71I_0I5qJSlNV?0)=%%6NozSp$B}l8#%g`eA#_2%_UvX?rkyPbL#Bbj%Vl z7WRH|sXXiW5zlWM(^NplY@IL1@RJcrGLkFwjDLS2Yzvd+`!fz1=gV*|H5&dnocFk- z#VXLYnDr$!7SAckGLTzHug{0=$`z(t_|^mmggyHu_{$=ehuVY~vv=9f zD&EI9kPi9KkrQ9HT)Ha(dsY|C8|>G1ds)vSx_N@$!+!UQ#93>HeHwU=sksX98P$<; z-NDbHk=J@Y+tBQIjq~cHET9Ux5m;xe6A0{Yj@fX;qUPh$u8>#0h2u7!-Ws;x7w1^& zJLC)>y4BVqp<5ka)sx&SY0GZY_tM%?!uw%sYL8tbbvmtXDBgz8-)Y}Lo$u8NS*@t< zyUPfuS?wM8>CEuXVp*(ms2GDX~7qN3Azgf5)0+NjA!uvWUMoiDeO8__`I)cEO-;WOa+C7?ugXn~*$iHj$~PG0_<5JF zF7apUljLvd_o$FqyXn3wVfY@>?+>I;ZfE}>W4K%=eYRfzd@%W@{QY*Vu?^JtCdBd(mWuUgB)shA|huHGQ+eI4cDLip|CJ>&>b=(=}otCdCVK^(-rr&4<` z$3Kgb4^ZMvGy2jZ4nK+A3g%5q=BYD;v zs8c=ae6=H&>+I>6NxY5sh94(9(k?JYUyx`m52f0=oBH^!Z0q0Px2`QnxHPAccM3hL zU7MixTd=R999t%XpN+$p&pCy$k7`5fBKvTDAu@Ja_=LcZ`oLfcD{wnqFaK>1#}nb+ z!Hu+ox+l3y+U%}BJ8IT%j;g1IUoHCAM!{>v^^m`A`y-z+n^x8di4KiSg z#wUiXKaL6|T3!{r|A+9wJtNb^p2qkLN{e;uRuPlP7|k>$KM5aRKc7%Lq@RyX)6d5Y zK&VfVs&Wu_gpOH=enlf@^%qyP% zoSx~B>m!%>>yTf*9cz2{XM=rqo%^MHdK}gHKJ&_OBDh!Rdbr+BlO5_b;vq9l z+ulL#U45kDW!)ch^3!YliTqsBos?YjH1>na<=iX>^r1Bt&J}(>KR~>Em5_y;)aIgz zt*JQQamdLaG4l86Ve5skz?ap6`H7kEM=IaV`^OcSYuVS+5mztQb;Ypx@}$id$K~~l z@qLQq|92(kxBc7|(x0yQL$R(WIKvkDhqkN_59NK?UKQfD@2VMUyMyFoVBMk3xYr@u zjkN|}mmaFiEAbytNA#mXJ1#8M55^bKce5qyFp*3VR*? zUq^lL$vM89_(ZSyN%C&#?+Aa)3F-_t=(gX( zJDcboUpk(sALq;>H-=lT-Fy241{3fs>}U5$e`1V3>c~_CUq$_P-F|&tS|8i!yUAMQ z68*gEGGEGn6=zdD!si*dlBx25)rvK>{*xzTe3nc)GHeOE)5dmqTOaHBe{1W6!?d+k zw)N(;wsM)oAC^)Z9v{}Ox6eF&SS4`H(h zIYMqNS!bPfnUB|mUAFVA8neC}=dZ2SIBrj?Ww+5I<2S^)>`ZfS!8Q-^zR~}YF@SuJ z#s@l|-OhcC;cyvZ2)VtxWGtQL_LyI2U-jQP67A8%Svg|z5Ss_Rmu)Wey`Jt(MZ7Zg zb)@Voc>T@#2k$urKF?~=kFBOd_T^>SzVik}f7aXaVKg>V++Q7=h19N(FBLgTZ2!{# zSt9&PZ60LT>naZ$yGsRb$L`V^=4&&FNBo1a^=a%5GxlyO{~uKTee}#WqN9+ylkXu; z>->>^l9T<3pV@inf-@66`4MX#XuS$Nr>XaV)NLI8n-Uz)?2k@T0s>p)eY&?L3uiX% z7Gs%9KIN141^hlDTS@kuE3n=7vR{D2is;;8&OLPm`&vwmyksJ`_;{=&bcaGvxf^3gT+kyM&Ejskw1*)oo|Pwu_>)SkxjHp}722PPr! zw~N3RqJhMZ9YP0QLiA?0?@6f_-$vIkKdk@D`2lal_|r4lS^9LgBRxjz)k}2vI&^|z zx;x5a-!SDC#$h5FhwUie6H*Px3yQAlMxiFt-^6VcCOi1#Mmc_qo(UG_U7CN$M<=+!@>cJKCmMGeFPml4Uq%DCP&VX|2+S>D52obo*U~gW7uk0FKeRtqjJ;^eO`BW-#&WB?@9gFu%UX26q=}zcIB;VXh z<9HL*Q}1$^w-!3gYg>Dg|2`=E88x*jQF5fheB?^TiSxj*w* z$}_Byb9_nTAY$~|t%YYZb_wg*A@yr3`9s`6F}x!NF|KmvYQz_79(`Z9ddrO4>BNu@32HTg16hfPI^l^0Vzo z`PuT`pl>z4;K^)!(V!GjH=Hcgp_tQ2*GUI<0T7&GsdamiHs>L(lhKq+Qb}q#wc45}{m!nCB zA=(&3axUj^IY-)i-I${#ytHocf8?1O<0SaDO!aL}w)CsUeHr0`>F>+2&-N#~ak$Zp zy+QpROz?O>!S0S?`917$2&T}Db^54}=2__n>bu9%v;>~>c}|Ml(M8XttfR zy8k)Gtoqbn^{JNn^sAKe8ujH7b^q%E*_X{Ue;=r4t3Q{v0c_hr|2M-2J3B`dJ9=p3 zitHT6A13y!S1bEO%ejX?D(2~IbAE#-&hI#C3+D;NUXDu~LkuT>F3GVQgB-8!lZ_k2 ze!4!T3--$Yh<0?sch`~<@6$=L-DF>w_!s4`ta2oq&;8wbuw`z@)OVZ9E__spA z9sg773i!I?;dI9~;BittW;yr~^i_WRe<*M2m7M{%ipkR=tiSYNz2~Q;#Me2J6BhRv zGS^90GWkSbdYHp1?#dLJpJ8}^PO6_h^e~fn-kiQ>)>pV`-UP?Cc6aL}OrJ}@cj{3Y ztHnvQ-1IAjokI|^@+BVjJ?$PhjqQD>_oh#_)9+_KY1p}1qTJRZoCg!#wlR)_3F>da@F}=KXN6on@XNHS^=|hz#s_{+ z#um3KT50O9;QMmlK%&!Sp|c2%L!E@TD+yks`p}(ho*-?_kXvP#J4`ada^Ab0?yw`Q z*1#*O4Dw~>eDQ3=9K%f3C&12{*WX;s1?It4QWGs!dl>LzFX6ixXa4kW4soBcUU$*+ z=@-hpN^Cc;-qHS@cQEA}z+}KThdSYRfi`U_Zp7I{v%?dsBX`jiplb+Sd9NadgKoql z)DLZ4hZfmG{iqSn$OZu(%#0`OKE;7JQYvrlJh8_8b`0h4evNwrmvK=UTS^)8J>J>r zojv89-Tij=d%JrB$G;umi^4CB=h6yY7r_nZPe;naV#PTb#y-TBR(493eBHRvd-z-D z;Ad(MaOPD;bI{d~@XAtQoc}!GnEF5Rg`=JDKb~}f^glM^NDM{rYB6v5&?dB^RH~Zf;i;9@oWn-3B1t>_%}{#;<(@IXiWp> z-CDL$rR+y0pY7l{>xzjbIz0WJv zSSR>^vJD1|T7=BER-=4DpjW(I#kq>$ES%`hRK*JnT`hIauyLPio=f;@ZBu=)S?(!+ zN=lqe_~NX~b{JQ^sT3_s$b zUOg)~uUWW$P3>1z7(s;xR#$-m-rLkVE^tl~rCx0`9zPXLQiK#M^)BD!>R#BPxRA#bCcd@ogv;^zQ5yvzT zvYPSKQgJ<#?Oi7rE2-Wf@#P#-j_R+V`sf>$bIxczn(*11#cf0r+>U1POZqkapThq* z%JURf{lfQ`(zgdvOqW^X`$2m67V>rjCHZH#Hh_q*<`xk8LoVb;64m3O(puIeh zi#%q!=}91w_AY4`dd9 z3q$b_RGuf)w~FeToaaC+0Ol#Ujk9F#mfwJWB3@Q?W85-I*3m{~9g4?*?Du7{MdhkT zY@!8y=2|JfrUQ8x;@k41e<6H}9ZGLUd#oqiayVh>PyAuEKKK$%8=0nE8#|`TqF<4c zX7+ipUQ+9cl!S8k6s!DFr}dOsr^?uUwI1qc?haL^xQ{YcRpxb7ro68*BW0QOs?7L4 z$~aX$YgL&lRR-_cs0_*y>^*H%=1Els&#mfNj+r~QdYLfoc*YIW81|Oxbh^%ozeqei z_RT#C9-j~o@GQq7m}typ8=GcPuHNmVcXb>izgf(p-&<4W>W|-Ho?f^bu?QB#?@EC^ z)AXS3xnK1kxDZtJ0uE-LC$EA9=C;6`Pxym}^}#Mp8|n-%>yEqr&-3KDq9xpq;~QAQ z=f;7H5popoy0#W434HSf@=Hl&n!g2oHqDwF0^Pn33Mpg9lxR@y~0{@#_? ztn@Ty%o^klm_+M6+0VuC2A1@{+<-l}rqxB~60L$w_}@N0l-NSw?Kt0V-0U4=AYO~p zy-<8PIvBV4YUA@a2BTh^9xGA4JtOasbZB}?d**ono_}wqq?28=_M4}>q<&?lGpc~=RkT`zu zP$I9N%oBbN)oHgbXM1Kd$1%>Je*XC(-fK`UI3e^Wl>O%SGVbm>b*@BT_I|f3U;JOv zTw#B7R)^wu5zeQZ^dO)cx37XM8WNL7N*Ru0rO^F~+a1O0P+?yGS@5~CZ|N54PIugb7{_fGC zco&tQsn*|IDw9*VTpYP6B+~bFB%JiWS-lhV&Pvaw(Rauv6&@ZEE7d#1q2ELFe94}U zL>ciHYt(bV)d64MDWSOA+w538_;8}$7V6gho&Ek%p4+kXd)G+2@sB~FILiS9^9aqy zAmaDeSf%g%+U$^cirQJ1EywUMjbSJ4H@imK7#0gI)QuG-(vS6NUnur>8r!Z?DN9&J z>Kq@blJ2L_1(~gi_Nb}!-;5KDa$hT(DgXWi+vPuF3^^%pp zE|sz}$Lys2WvcWAn>)T(?u(}E3>oWdCA0mfI`@4`ofZE@of*CAe7p2;PYz|0<53S{ z5A?1JvYpe6i-wrQYClD6i-@WNc7b!09r_=B2cL>%-Sa%2;C#jJd*bOiZr#H6 zp7N$11ND}DA?b*T3mkt&#t3BIeBwT-hatW&V{M6y!EP$eF}66;LlDgINWLK4oqDH>-oyUB66;jg)OT5KvkA?k11uxQ(4si zK}uQMx0J2uqiomdJ!OHri*F3ZP5fne5q>>+uPfoXRN~PNe<;>KIJ>H7Alod$wwwD& zb&1mtCrq6Ewz`&5U2Ds zdp^rCzOuGl6FQV||LdFpc#m4I_K>DdV#x9j~B$soxo)xSwbybSWGDD%%@@Saj~?Vlcry zP{w<^QAxjU>i1M7lT^_CuYUUp^TF`Ph){Vv|G9dWuWa%DK=Sf78}&Khj+^>v$f38< z{(AKTA9u^8_e<3K_o~^(@Ue(SPnzdI$TGMN9J5ub|7`C1cg*{ebwh zG0Zc?Y}10Q*IqZnl?Z0F&>V!~KRSGfVZP{IiMuzyca(p}zYo5+j_v>Mdg5qr`JVL( zkTG96D0K-I&TSy!0GYL##xbl9Io?yzBZD7Ku@60<>_c;?-%c9yl0IN@Ltsva_2%cB(b{+j}K1eE3so!>;d@ zd%&_8k|*A*_6VG_Zl*or76li;A@UnnHypMN4>JxID_t$@BXW+&IzK1b%B{8R4bnK^ zOZ?t%K1s|_xV4l1BOdFY{&qC6lW^*`8Cv3Q!lUKNE*XAt+;6F`$=__|(Fwk^3plk< z#kGYV=+=oH%zwR*OeT&fUhJJ?Nj@*Xjo|Wh{m1Ob1AG8psMxCAepFc34Hm3%Z+x3Y z=Gt=&-^O-FT{6!^_nv?;KcM{mC(ckd_e8rk7pn77@7Va}Lg}*sn|CYCc^c<+Xkr?Y zmSVFHSPru=ptiE$&%rs`k#8hmZ5A!lIue1L4BjuZvMP+bFAOQ0fO%rnOC2Zp z3Vc1IXHLxi4NaMQhmys-W1DlU$2L0-%uq2}kS7agByOUwSu!V{X`@EZ9rWBn&sEO( z3D9GBU~}m5MT7|#rdx{F`wjCO^80Bj=lr$wE7orlHf;*$<~vW*mdLoGx&=8GmJ^Lb z%(HcordZAv!nyP*e6~*f&+FEHQw)^(5&aL+_n@cM8=6FLWPj?P^gH>dPj906Typm) z-8gNyd^Vo$H_(0J5_!MhhnQ*9F3~)jZ+m+h!8_AuBX*10DV4CXQGc+9RThPXX{Y-l z$rP^*)Oh~|Z(>cG!hBdR`bPca{9yDfw~u}m^y<@~UVZu?nVg$OaQK8^`aaG1H@@wh zu2eeLVWnT5uwr`Ntt@K~qrH`D)5>Dk(p_|TkVkznxY0F8NVGjE4WAi8beyQ-A;?+?H|InLhC$>_{&sYI`@v9EQ3{)%3Nw))#>ro zUYWZCI**$N%DSZw#ZHlXM;rHL*wm2NpG+?KkoSicQKs6gA0l!DE+VxD7tocdy-?1Ax=}KiiyWLj{0l-{9wu)Y7xo5 z&AzZ9zO;aN9_l~Nxf-_QyVKz%`o<*JpY28XOJwgDtn;e)6V~Rhd&rI+j6jdzaH~xFLiuE<+c$` zopFk@yD#{@ot|$g*(S=f>?e#VM$hjatsCZ;5QEozx0~KgA03Q`Psu!?FFWZuYzMZa zj2F+}r02W(Xk#-yf4`6C8|Znscr*dd zNiag4ry}nf$3qXy5~Ac?rd1aBrm9$fy<=h{7IyQ#1jiXXTj>-L$0XWMWB+cP*=W_Q zL+g$i7->%=;DddNHp8O@LIP`kAl+M({{YH4OBV=h+9U(gtK7?a(H~Q1*8}knyxp7P1y{)(M((KI?YNGjPtO zp>uu;*#0#6iSDhNFi(u}<;E|izU?VpF8qPB;#W_Kwp+qi#9dXj@w%I4NBhmIjneo! zk@MV%+|An6MhVWhTNg0hwpTyTHuwFR@4VK~g1YUjqut`_w&rF}lP2e25hbNlv@SH>Y;CNT! zm#W-ewQi6@EA`BpbNf-*r>X2r#QY^$%gjw?=48WKS*P-{VZXn%RQhd0&Z#Vw{NeM8 zAAv8|WiDyA_d~7P!}`u@-3I$itnV9r%^U;HrkxtgQ?j%fKfb=Ch3yGZpPg+S>crMh zl8L(uq#x{Q9=~yaBAG~6JUo0H`UBUh!!m9=wE>%_pZTLkYQ3p;PRn@1`+- zWaeU1Ip~n@2xCp_&$hBWRu_$RByw*hd-#_dwY!nWv^!4ft<0lH9fqCb#eg1a8S5+r zxAWki<2S6QBNrXca{LBj%vy;KFg*-QZ>p7~zFhgm)GAxQq3%zP#6 z2^1YR+{zxLhF~=-`(1v%J0W>1j&n6@ftWSd8J{(Ba$F1E8Mg)3Mh#^{iF1IX3AtXu zUt`{10}KOF-)q9}E(JeF3jEF@_`R&`&;tWcv{65Eyo^zGFeSeqpC1u?BLtHw&CO@b zfSZqCb|>t!Rh}>W!AbwmBz~IZ)#^EhJ5aYe@wN0J1f4`5AOn`A#6-lq z%SfgM&HQO;o3NECKM+3Ssx=P#Y;lv8VqN^Mf698G@5dllhMGUl_vO|-H0QQ#n!gPS z*Au7vjkeAt`>^3+|Nt2i&Ru z`b6BZD%^p5%(*!Uh8q-K09V>OC9b@bf-CV(Io7|^Sf5LwB_~j#e+wC3M_L*ZIJ0>>+9PY4vauKSs~30E_I^$2FUC5xge5D)bLjRq#{U5SJ{sTm?U2)D*$ClFUQpU> zVEo{OwoS(@ygB8g-?Nmrmux z`@Du*ILG8_)viV1){`mx+ne9g?p~X0cO8xEu}qYY8t_%jb(37>4aETeaCV620DDIT z(aSEPTe+n&?jZa6WBpKD&-6>7Wz^2sR5#Bbl^<3X5)UbP0`v2Ul2sO}I4yWKPd%HT z@+@G=RLVA~E2~+2){#s&Q}~GckI9&1A?26QY)dm1UAP?Zj`f_sv^YM!LdHxWe9d}D zoh!@rUMK25m$9+x)fq6xbl1np#BjPla&bRiC$K-!+&e^@S}U!#9{et&wo}*2uhm)^ zuEuxr8& zg6hBWXEOG*d%d0WM<9;`c&b}f{s`oefDH@hk)W|4j|6f^bk=nwT8o=|@<)&i4!&kH zm03e&ky`@!B-Rv%a!>CCi=q@*Wc9+wOBe=h=V+TkFgSQT*@^gIke9NGBtC~}kJ?K# z7=EggPgnDvRbliyl1x}Ks@Z3FzD=7Ox+y5~KMlq+wY445*V7CO;&#&bbW2DCXN82_ z{g7~a9}+I#LqgjW5{t&xi5HLe$kUBqOJDrEsZXF?pkeO1kocZW=5@Y}XyV=yl7YRu zn3s5l`u7n%i_m>K?D*-vg8H$hU^(}DaG{pi>DwjT)}7)lTAT0Cf5cMQM*rWX|8LXp zd-S`Veo1~`f@kkgT|3=We>ve}S#9h+y0`dhW5gfCERIPA?0{(Ru5_AS2b_`3Cvh=zH7Ba-!q=;uRz)B-+lx_c??VX}?Wn*0Vo?_Xg2)uQEF zGSvGm@aL!Z8~uih-g~tyeh$0o4Wo2V;u1gGqx;qK4OHGs?-Fmw@)n1D?(bFJs-A;y z0#66NiRL@2ipFwlQAoT`tdTm*XW=8%Ms~c0U^66#aIsZ4W@XKaTEaE)+RfA!t+AQeY4E3yzMC0j zo7%v}T2a|lOLc^z4|xtJ@SQaRcwcACDxq(QPe6Q=X{$GiYAQQ~*34Mi%g`=zz|=-=LwHt`~Tw}$q^`i@Lv`)Njdde|DDxH;aw zwZUaP8?7*0gl{|k5^c9+Jrs4Ve<+%-McTJNYP9>^^F+US4@HBKr6MExP;{xq71g63 ziAm2z+xtZt;tyLkwr^>uFm^l}ZFfc+#lzbA_SW!Xv1tE;(RJ``h%OUriPrC#8*N`a zuwQiIiuQI_Yoo9|MeEVBp}p{x2V*W;H(m2WBID7y(RK5h#SN{A_P5*P?UvRD<15z_ zPDdY#?_V$9U-yR5e)`Ka_Lyc|*BEdA-E!TScs_DkO`$Qgi956d`0#@hLGQ4$%GMmX&e>tx3l-Q;|zJ;@WD~fC_Q$J{Ye9c zc4+y+w=G)d)Vb9WTzenrxjrQPf}ZUKT0?^VzeKJI%~a-6&;sOR7^>T>!*tIIdiGi2E{;>alh)T^`VYJC zw}~%WK|E?!ksez~WscDEG~|J#zJ6Y^OPogdzKQVeIr=TdnN!v-arx-_c#_&a9-;d3 zXn)I@MR>joeljtwU{=ge{Dz&%+31;deNP!jN||xsN$5U}%HbXCM4a@0OLm*+N55O? zH-moPq~HGZdpiBP=(m7=2hi^s^lOc-7WN3vt(ydL^m^kVQB3na#2OOAsJNd#d6;M}L#daQl|A&o9-LYkqt2Hz)3Gg(-X6_33@@^DkR^_W4t2kNe3ta-Sci z_(5pz#elV^&-z`Y?cKi?&ja z4O=-kHsw{L{Y7^u=3T1Cc0C#r@%3#Y;B0R%YS3d7*BodcTtMq+WqbRiw)Xb7=e3EQ zw1&12zHXi+*AeomY|UyDZ$8>4-lA{2jwL%+Qd=KAsu`=OecM{%|ImJ+YJa_K-@Ep~ zSRl=4Pp)~x7))(Xs;4&g8ST5CqCQX?lgfnPn=L3HKU?1Q8mSVQM?oCiJj zA@BVGijZHrlVPA!>~@$Q+Pfng4OiXgzkEWP;i{OnAO`5ZL->;^i2%5q*i@Vwg_RfYV_EW1j z7`0^Sv4^eJs3n5EbXL6PTs;<|y)`hnfo;PpjRtwl52Yu%AJ+ zqn&=Ui3WAh?^25;I+LFLo&LAd9Im4OH8hW3lt@^)Oqo>j;`xiIOa|47_n2qmhdcua zc1x*^R~7HEmge@T`o56(3{wU^6Y;U4@R86BeSVvG9K49HiS_r7BIY@jIZE@lz6kaP zBrg+xV(pg=IXl11{fJmac>QS6&J?@0M;wdBx)Oh;dUELd$LRM|`dvxCtJQCJ{3S2^ zvSV`|z6fWoU zCA_nxthZ_^Q$%$DXTp*9kyE)7bA1F6iJ$0WShc0C)J{N=L|{NkItXn)G_4m#-@3w@KN>b27x zms1&+D&tC-<1faz5`R4|%eknosy^!al*%0cTH;b=AM|@4y?^Mqd_P3tnyc4-`QaFe zZ>D|EW@=}$Dhu2L-tD9^vsGWZ=-qxQ)7L)mI+dHL%B>{0<`fP(3I6NHNci8Z;J=N= zHj2unmRU<>ens_wUKP{2uI*t^I#(N?X8Wh8_B_Be4(k+qm8NoNATG+|R1e}Ml{;iCs7L1$y^c0JK0hw` zjfOtp`w;aLv}gbE9zW6*A0(xXq2h5;ZGwKX2f1&g9&Hivw;R6d(W(CG1F0u1*_||F zhqBJ-2S$(mkr~(XloWfWY>w5%`A3b5de#5LS5n8_U!7r2P;KP(YQv}6F!Lmtxh}dC zk7fFAVo$MDT^Wbn?p10Y|GY1mKuj&f)@qm~_0h}r_4FgLSH`;iD4EQFO=q&irR?b@ z#7y5$EAn6EhFM3w_DlG3OIx;k_Q^9YoLAti;#{iBoh$1_+55UwtW)^rR^cr5$86hu z1amO9g>?|rwx?8`MQZK^VpAr^^3Lxnge~s`j*YB&XG32@bJYSFAx8IgbUzDcrB+vV zw|_`KYQMguJ5Dg`?{MyBo?pNY%<;MGGtMo{cV-?aJiqR92@m$Au9EiLiQUN)?C-0J zWZ!ltlS|%HvTbWp#t%NMd^--RJ;dioV|(S^F*wGT(fCyk+r55QVth^upRMgOWE`p) zUp*V?K7$G(m@0=Ix9usgF8D zxTve~Hb8Q;;Q5dN3QHhARqR{ zYAhcg=sAbV`aqsT;S37rrMZD9Vk)yQz!o*6)e@O0f*GRN~O zn%4ou4U6E33$ZF~S|w=RNbAVjIR2kS|6Rx{O?#-nisMLfejV7e)q5MoGgvn` zXVDttGXpFq8%t@tceOUgy{(Oi`(=y^H?qxD&?oc5FQVUmM5F(w;4txH*C58n62P=S z{AqW~Gl4vJW4z%b;Mes`hpIRRXut?*%N(oJIS|L-r}^9dfwZaPoCdm%ybhgrh0#~t zm_coID*A-B(T{sSIK+JA#~&sV$O#X7HrPs;wt$*9EUa5}j{6O{A9R;wcw;uvH`5*v zWzioqr`G=_pO#D6>7}dhbG^DJSTZk{a~OFWb8Rwbd=}N4JK-alUkYv4U++qQj&R#p z!-Q9`SAIWWGaSp!>#M!-o zX=0_ZbNX@zVjy~m)}7Dxmsb-{+!!wpa656t5``To#`6s1PQP3Sqv(CWE89m*bHoJ2 z-hg_jn5giPD}I{;mct$FnSi1`5F5LbBso9QtXRl@&&-?MXXzY6#4vk9lyeKdy&|Z zp4Q7wZIR=R%cQ?iVo!qo9M(|T(6YSsh%YF8&*llI8Sfl?hH2AQJt4m6W|=b$&%uv? z_G6vE#+Al~{Lg}DmMEahOII;n9NU^MA6;d*M-GjW1)zcOd1l=YXvP`pOw?R&*n_YB zP_DT=Wy6oNW}=h%fzk!yy6;ICJd@zjJUA3xaV7i>D`B@f*L|yt;|9Y& z*33KCJFlF@Um5>W#lOx__6g+*Z(c+0kzW0@UR=wzr8|^;(^E;w3#5LB9J6QM2w$s8 z%-_(jG6{$6TJ)hOZbMj^yKKHwy6$=&$=wc4$6wBDIVz5 zSTgZKukt7d{tfUL>H+`KkG@;g$9M0T_Emus^D@Hc{C~5TlxWh%!=mPF zDyA8jQ%7eTB8CYAIjI)I~d+KL0$8Ua0j^D8~U%-*m6mFP!`Q)A+-xA0O z4z0(w1o;^|7^fx~9USxITIR`9-a9nk9LFfdha*4m4{KyQ#CPT2PHXazT7M_(ZwfbH zYxCd2B}eVC*x#(w|6lqfe9Sz7*zbO~=fB_Ia4`?y?U}#-&Af38D{a0o;{yas=5ycF z-p}LBReeT1SMBNH1I&JyK7^1-ohr5nY&ijQBWd;i)V$Cos_#To(C>bnJ2KpDuN%y2V%{;MS6%C41k{};^HY2)uVuFN%m;FvHqBvs(yIV=K#9Mg{U4dR402}Silq@BXdN<(^RL*6{~1E?JU_Bk zz}|mZnP#NYohfPz$k7}L*p1}_NEW4iqo3wC{`OPE+iDSMRl#UF$7rVi-kYP~)e%ok z^DYzHbBy+M!nJ;Ck3x*}h013Hc^b6{Y`T|GrqU)dTb6;py~6hvUMD^M zE2I9I?=nW}M)K0D44cmy)uexBK5RWu?+*z7k1*f0R7|r-8_|xTsqtx-I;M?sB|zUh zPtg4@6&>lR^7T^3&7+XhW|?SL@)%;OA$MsW!5{O6`GbEJ=C7W{nv)`rom5tp`$I}O z8{)Gonv==<-voJ1Lcg@0J&141{*UnMg6%r3B@f}`8^@F_JKYb2eIe1FSC1t-omB3K zX#)!#LeVzn6J>nZiT|s0f!v=<*1IDn!}s#JjKiJLKAu07(YL?j-!i`4uW?02-+qmcWc2OV zxG1AwWc2OVI6I?nzs6w3zxQjLq28}a=@-`T+QOw`dd7d}^Z4_O|DDg{ zwJG13{@OJuX9wn9xAgh*|#p=^6rVc ze4MjGFArTl?C0R?d9bK&T|V2rrs(re`$*CmlYh%nwl47L8K~k*r0Vjs56JSKZ_(xd z;(*lUds1}yT{}7-#@ZPzaJ&pc2A1mz<`vqBJ52=-jO=mU}ukxcI7)K`wG0evu7{qQgw|? z@fEm8`3jhF-S<*_=#itnNwtIfe}WgR4s^?VPZEqwKY%Xf2k_&)gm)yzoo%rZPWiiY zxg!ojnaaThe)CrMauHQe(7q+BO;{`S*p#&P z_Q4H$?7o4)_@o)_?USaqx5E|)Hh-{7`iSV_uqk!1qBE&%o6$aTn9;s>&V>a6LqejdY8S?A%irsK)P0>B67rxWXHSzk`ypQpatF2 zxH#;>*4V{tM?aBs*X@~Zw0DinG~m;n9&yFj5YGPYM%_rSu8r=yNi$sQYoo{in2ES` z!b0--8JrdE zH*Z$dHeHXwp1A1#IWgE1yVf^Ew@j%ppf`hE@uKiz(egrF^xEn~dwp=1uvE{9Z~sfY z{p}Z`?N+K2w+0xoeQ$O~zncvVHhIg6SB}KjbNqcEYO&ua42UpD=Sq zR!xkXxlw^TgH!ZXPbfS;onza#5Z~Tp=0axqZ}=zh0hD`Mp1JQ<%YC+~~b#dq7~T0Ed~bPv9uHMWuZHh38LyNSl6 zJfnSgHqpnTHnHQ>X!?%xqV4Zz@63HayUk(RFQYBkFWY>!><>!Ya+yZ@h(@|R#*4jl zMJC;Ae@C9L{YIS;;|yVzq6@UYS^SYX)-Yh@Z4#vyzOv8mt=&tqOYAGowYN}AI@@SR z`-o-JkA7iG@xHQ+n@i8kb!aWAjjkm)?%}wo3xzAVP}p+x*pPx*vB~{J`*b&G_yo4O zg>HLteXRW}+H)3b8sSpE=#x7RC8E}l*gIc-KX{akMN#Y1=XI2}wV+-2jb-?B8{IpQ z`)$%iM*GL5Z5-E6yqie0-fL(2Ie2;n`rsYXPpmZrG#NykbxYPZPW+g z#GZ^E+hMl34A#eCN3f(Eyu@TzzciF<&Ii5AJwo^W=(mf0(Wm9qC-}>kD?h2t8L2XRi{ozUQ;FKM zCTE;Xmu{!`pZ40*`nN_;C^MDHL{yn$ee8Qv%B7zw)4o31sHFFp^I59Q(mv|=QMsg# zgP7-U5k;!(mOje*sqF97`_$*UYP-B#`Q=|O`L5zr9ezOS-$Iri`;M9PALnFlW!pgS z;{%nyt?uWN4ol}2HkIjfp`7r$AFFHW!R8h}ouwS9N%hf)PXCb!p(mHWAm`?bG zy1lBcMK{a6u2{uZCplK>6&et_dr zbd}N=@gM7>n%-CIHjXP&J;wvvdMEvkRrA}guNW0!Imaz1LpXPD3eMpy=~kP>ImFn= z^zCAP-=xT)dUgrb51-HaGy3tq3ct=Kq5L{oN1@NMCzEsC5u$sa&PI$0 z1Ltp{>9d7ynSFv!=gY^DGlBTq<4L9)UlQ)4f8z(wX1xEOl-L{ZS|p5)@cNSU?3XF) zeI#N4Dfs?b{UK@ z+;?2r7x)(R?1j}Q?uCzD4vuF# zVdTpjcahZ5JWTu2)o0A%c(GfI1)hvv-#JwSLO%~#``xRdx)>}NMZZ>it~Sg-k}I~P!XSmA(Q z)rmeq_TN>wTy)!o68}2PSHowi1RIOZ&HHI*Znca_b;BO1``zM7Gf-c;;*-+@rmcUo z&y|-?lq|FUVr~B_OW-2IMF_Kn$oW$-v7a`&0I=7XUG4W^RYqdyzYBm-S#=j zax|w7D(@Jm=!0piV&9qU&Qp=fCxiEeKArX+&(E}|t>-*!9^1d-ydYROPkc}H59gxr z*>x%#j8xq#=Sr@g7#|{I+jA^%3-)Y(qp$_3FZAp5tGK6h<pKx{B#Km&Y^7 zaO!g&>!)c?Aiv|f!WQPcINt=xHJ}{@uz&L-zQg3$X(}c-c#OX$<=Q$#cn6!jA%x$H zwjWAlu-%<*w9x;8syVEu7)HN1C$?8NiZwfu32)Ux(c6v(I%%`bxQa(K1T~p>c36e#Ka#-o@@{Ee`!}$s^D^NFS{!0hr?20 z$%bvNX=7#DRh_Ers&2Si+EtyNVpp~QE@|(SpOSZj^OsN^zfS&p+p2bDTh;y@ZL2<; zA=}#9%eKn;Po3>kk`cebwjvQr6zlSdn8q=ru{H-r^sFZ$x((;&&Zx9y`Fw-M_9R$e zIm$LK@87`Av?VFpaq>EJ`##Kd`95?!ft+p{`0}X7T!%e&H2>e(ewp^w(7)a7lf1KO zV~M#uwq5q?W#5Mu%@=a?wi`L9Xw?c6j{@J_7V-aAHp^G0*rJS8d#A^bCsn>M zJqtY23WXb~a->tqk)LjpIzHGukE-giOE&F;htv2mCfNI94EXLYue1+FUtupFW_vb0 z2A_jzRgLkyDrxsW(|wrFHPEM#Z_4vZ*aJ5M{@#VGd$SY0(Y$rS?yD2F?LD^5uv<25 zn;}ob4hCm%&@;j=%lyV18+2T4DfHR2CG4KZ2(91mX!G;`3m**lUkpo`!=Y*pGZB;D zXNy|1bPsID%A<{O>v}ylEzlS*EQrSZCj9BYyI_3`aQAGP1sk_G`uq&dFXk_e##FJ4!nl_n%p>8JP0{Y7O|m1^2hjw!&`8E5Vxs(oTn*W zpIe=sBJRGjFCV$6l-4WaC9D1+_r=n}Fza@Zn_{xp?B7JT&nWZF7cQlLK^>nalS5PM zHuuaGTb0cP&T>nd#2CpRWw?g#6lv5q=vwlWjG0OEn4vXxSXBHn__mBmlQ|kQS%>l= z@fp(RpY7d!8<7i?xQm$7F(-}r1+3(vt;wqe1y zYf|8oqt+|iozT81bsGzL4e`17V7a!aJ&(Og&w}mFtH?h*0rGHd)UNnm=sMp{*An>F z5uoQ)b%N`m@3H2rwB`=dIs&}b#Y{iNIif3tR+zRQm!-tt9Hq|qtr=3EiZwi>D_3Y;y8OT zhP1oJyMfxo*dEri{|x6~83Vm1=BVIvU4jQ<(sK^Kpo~So)7qm)*}pFAe%)wzUAuw5!6IGDN(gKgi7kfCeGKqkYnh<9<)ElDxJe;TCIoWnbta$ zw>cgCAf7F?Elb%(X**xG-l&JI7wr|3c+bAp2y1fQCUbli8JqMjz-Fq<2i>I3LG11Y z#G}%$txh;Sb;326e#@lZNuW%mNt6t%qczbaun)R75+CUf(*K}P=k^)yTjbfkd(uMj zVH9w?CRS(B^3#=`4LDFVKw}#KjP*0sC+HT+Q_k3c14l|*xb0)W4dP!x8_l??uHo-6 zzO}KfpBxkF47xKtd7c)>SJ{3K>c8D0=i04ovUJ7Y-)zx#Yg!BIpF#JlERx>8qVRCh z#E^q{Y>Uh_tQ)C02-41|i$8Wu){~>ke~T!dwfFtK9Iz56iN!Ie!E?XoA71 zDf^T|?XS1lrC#z;HE)nXex>S|8hi=>8V;QC}w3 zXV%4C)aEI{#`u^w35TnsucjSmGc@irl@I$oHEyDj`KQp{k{RYRA>&z#_BwJx@i)Wk z_#4#0ykStrsVz|7KCQmxI75Tq$+ghF?Har(*RSra>K=Mof=e#)WxIxNqHXs&;|kal z2BqzR=4QVy?pHSCXjT6bRlh}j?^NGg=zGKv?Q2f4{~fW(?+K6c5%=)@n>WF~d&iNR z>k!*$V;B7nU3yydLc+gOsebCKu(&<(tfIDb)7HRWo^IP;T9@ng)p+hJ@!QZYjm1IF z9H*!_u#cz9cB-kJ(^F!@IuySDllXxU#}tpK@{PK9R^Zn9yc>Pc3_0ZCNP750&oNJbt=b91l1yk71n9nuc zx`+BG&o$k%)VXGhaNAAUt~-<;4{Qt1 zQ|HZB@_B9xpEq9)Ss|z!IA_EeBVv&qEUjaIlkr5OzYX`UR`ZfLp3Lt(j{_rHxc{!m z16+1yg!)HwiuwG$`tHNy*rTrFK04SgSdTejQ%v^KRrF_tI-4w^-wpJRXmcmco$*7$y=6GBbj!ZZ{4$wvx*_*X!2A@>MU1<2 zsWSwOu-CyCiqBHL@+>u--~|{FtQbbm@Y!F_9^y#ZL#!!!#f!g@y8lP0KetjlIIGW7 z?cl5)d^*l{ah8p1_C>R?wic>(&Oa_`wi*8h z^>tBw*bBN;eO;=4+@pQe)1}(zqBc&!9>DE1idm}OQ;+xT1u|Y-i-;7?7uK|F_8Bnw zmM6bS=089h_-V&H^PH;A|Rmy=^$*QBKfPpB>7j zIxQBJujHd+Ju$5!Dj&B~#U?U&4X@(y+icCON7_8RO=R0Y=Kh5@Cr^l-gLpJuDe_IV zI^USg5=*VI3#diboH;2Ig;a$;_C zs^8Q%acoMGozXV*TX{-<rp!8_zk*ENN%A!G zHRf2_Y%OB7?c>CUioStv?|D0!c=uamN+abwK4Hd9qHl5tr>0tZVl|n3_NW|r_Wl5T zN(cvXQgMvNu}#Tq|9ra#*LEvh!=4LVgRMAl4R{88L-}!-BVT}h^!safvVV|E>8qM{ z%JcD7T9Yo$)h=V#aUMgWg(#O!YZC9ETR>a~$X;mAs_a!QIV68&hs03T4$hw#|L>4` z0oWYn=*u{EgEoAQa4Y%h`hUdJb5=CxYLCy!Mf{%4v_~NJss%ok1b6ml9llUls%DcM zaeWN&JUOlhYzL^GWmMj*t3c^ArqFtZto;X)vqKYtqU22Cmu>Z8ZlPwNY__4nMkzMC zWJh~_Nrd|{yQDUXm`34}pm@r+Fm}rz-FVs;jJ-_%pQ2w=zwrTNUE3nYosyT1a$etb z?P{)X(S~Mm3uJrv3nT6d^}`h*xejuFs~-EQ>Q6(-Qj$eH@qtSBh5pTrX~t9DCc^hw z@t3{9*ewTizTZUs!2MIcrWpE`w!R@+u)0C)PRh7)u!}?NiTaW^axu4P8#45MyKEbC z0bMEP5YNY;PskCc=05lu)={&N^Un6xjH8oiZKjq3&SK5sSvAXYjl$!VXJfnvmEml# zQ5@BJ+Kmwoc!*DgZDl6a?eT8Kxo1Xw;Tr-zDbB#0?ig(YH^|)OyOcb&d)?8*9gw|Z z53_Dg(;jAD^?`e(zRu!%DDH_;`_V@6eoC8ds!btd^md=`;2m;QMAUs>_6R>Y-<8Nw z_6Ug4Qk;}~*i>bc_37}A1o(W!k-Sjp6@9Ns8;kTk67OvR-IB@i2%3dM>9XHeG1*`% z0Q}9+u15aUZr#wa*OG};SsQjfCfpCD>_dlNlkoqeX|JK$?)X5qO|&Wlx~+<1W-L5) zt{u^hK-Gt$G9Z1O|670da<*TYh<$VJxD0c>NtoxnNy>T=?DL>@cBXF>nko`i1X!A^o0Ur}2LrYlZoF zbvFIn=vwxfhiw4ugPk0sLE3u006T!|ek|<(&PcHX=$t0c<_l8dt3U?2_Kk110pR?V zs%|sBN}76)cvO>0qwU07#ci}-miauicIJpwdw>Jgvdy@%2l&)nN6-da*GW*SF?nPpVhOx*|Afz_CVw^E5wQ|KOxF~;s_2?Z*R6C-qpKS6lXkFkQ`bEuyQVdYRZy zYXC9lbh=j1wUVw?bhXm825sFuPlOe|H?sZh)%eW--q#SE5ht7aM7UlX3xylwQG)RZ z)-P2W7>_lkdwgNU6VPpd{XoR*->7?Vo=WSGed=8F3^~ag0#ttZ9FnPOW6zXmMx|Gt zS+=A*qNootMYx*ERFF(xL9)AcMSKy#SbOad%}p?Fp)yx-JUpTo)TeF874DSzovu?l z#mLkBjFt4wxF>AJ;HQvZS&wBuT4C&^`CG-YMwWqOV6|L*j|iE4GuiF1Tz^*@94po>^; za?2d{`8W@?_IDeFyyo5PcV%(8i9e5e)+st_bzN-$u7ES~(OI{u*eak$upI`xA17Sh zOEf=^+6Nwhzh0?g4_-&GH2ZsMN`I$Qe|IW6Vklpkn4%~D>Sa%W{V}R!o!RP)a7t+h z(Q8^i1fN@#Z?jwZho_$7rKvNh2bJ%KsZ(+KbWf)5Lx-u$Cz;J=o;~54`>A~QnVgEF zV4e#*eQsK({&=7Y_M}Y=Q}8v2A#3-Y!g~(*;Ta_@W`6N}r!V(}vfwjzk?gn2C-eT` zOt||j<|^|nrtGA%7(4QBs`#sRuby>?eZEet+uBXzbfe{^qr5Nj86VwW^UBf0J8UC( zipU!%VS3Yf(mt}wE@il{(&X={4vp!iF}{q zs}V7JZrXw~E(QE?%%8igsXM-|ZfO>0{4*i#y8SP8T6I>D&c&i@!O z9g7|FFcX;8nVux^BLPUtn=$#UmmZ+W?F|KUWYmV#X9V#)?qr^F~~Dfr|(o@=0`JS z;+XRJK+L{umCJkEK*9-2g>mitqn+mesZA0uU@rz+G0+<1AUpj6nalj9*Ag5*%cWr8 z3C9?goKHQw~iWURIA+CmEMrJt0W}K)f&Pt+6d)9pNBlM!T5VvcLe`3 zWuM~qHaVb+#W=2{y79ZPL7rnTEopX;>}XqB5^|I)+rgzuw@$Ru>7+ds?Rw`PO_(vc z7uFx`1i!;M3nJUaEt$GU^KTc~9?fP!&S>v;VJi#8T*Wo9x$8Ag$(y=uoo`mwI$zN8 z6v=I%U*L&=PwbBx0e+qTF>F*JCs?bti%nO-4q>|h9_}2KX{6=U#n!kRXq|2s@O9mu zWwfW03}r2>jaqy=+TGsyoI@gSc!Mx;mGKdDty=o`dx_5}CZ1pAwcM>mc8D~>d*-nj zFG#NT<5?x!id!NLaoR`X4l2_{b8hLC&)MSLLHruah_PIMw6;I{94&-xUkuMv?LB0C z^+vH)(de#oT?z2r$mIh(oaB$%aDG38_CN6C!)Pz$GYFcaN|nF*U#u&tHgI;omubc% z!;ISm{gDC|RA>#(jj2GJg$;ngkuXkCR0cjqdeoAs&IVm*ua=BP#Kc}FV!_BDJ4ptH_s5bSMe zZDrp%hjXK&&R<_RH~a0;b=DkjV=l=J4%X{b&Es?E`Sk6Xt&MTi$NI)rK4a=WgDFHC zkwDzyn-jkXWvPD9yx}SyFV4+NXq`RnZ6Vy62>*->a`Nj zmO*v9Av^mymTmqZ4Rr@(?o^`ru>GvtL~A!3h{OMQkncm07JMMCXnj8H&+$y!noo)q zfgknNM|m7FmSnd+Jlz+HeyUE$XJRr`5UY+W<`~E2~ZU_D55dP+X z=MUEk@CSHqtDX~`3toll#~80u;~T`^PciVmhWfpM$^_iYMOCJxqhtRi`3D(CzC|3Q zHH7)@9SB#qa!y6CaC1pBKy0uQ?F`j4`; zuY~gPEEzKVm@4lKys5omJ_W(MEal`9`xxbn5IRUF3$4|6(GmgyYhf41!^ILhun_Sk6)t4FFDn3v#3+yTuUru-a07>gl zusIG$n7UNFJ@5}zrA@TwPKuEXITGvYG(LA}5qEhH>@)2ikuS?4&wzxR_Q#i1UqPe# zt5_fCU*+ERcJ{f2&Pr<$SMT#0 zlQMHo0*&#alsO5dj1#!$R(wF{rk?q6dFA|Io;>>=>YkrJs5AA<$X0R3*V1e*Ec&{ zkQE|&iDi@rHoqB3i$-vr0)D#CrCkG`uO%+qJA^xKj#<<^OU7#f-~5A(px+ZXkA}%N zTU}EO>lS_R0VVr1XHh#@#EVipG}c0^Ya;v>ORNR@U^B;cGD|b?9?!AvkG#@HzhS?H ze)p=+qI95KuaD{-r4P1IzjKryBKnjpf&b1#%vlL!GK)4o?&Nsy!RW0U4kZ?8mMEY7 zQM=8wCb56uEHX=tZy?hMSy#I96VJdqqPeCF{~G!XzDm8HNcAr8d!zV93pTS2JYaN; zo};c8Q690;0vO|b8sq$bJ4V1hbsRSB>e#Ea?>A4E^8tU75mfiWfNV1r9-pb0KJ0(z z4h!(iY!giIbq#)7fPX4)CBD?ZjP1|QV|zW?Lr4zgK4nv%EaBX+Wr4%A&p@Ak$Z(&4 zSYHb6l`-O_mP~zYzL0&rK4#PPLfU&e2U6d(i1hu>AiAqX^^%OJUg+fYy@1bM|S_uqina<`e5{YrQdc0>)p*0WV{UrwFkHoe?64xfzIcm`9$M7W&2kn zUtgh}ereAyMB8W!Z3dmPEvF7W?$4tSQF~|y?PaI5g?a}l+sOu!pEw5wU^09?9&9qy(w9pnpZ>d+jf~x(`ZV`ry=RN zjK#$KCE~uTSnm0663^hPlRnaJY1gfCa~L&A(-x&JH<_8~fsQ8sGM)ENlP>3<8H|ID zp?&tNRqfxYzQuQ+Ax?p5U(l-`nZ5d9@1q}8DgDrR@6z(2GfC}(y^lUj?EWsweK>SN z9uh@2eLb<}u1tX$_LKZibz@*87=@hpvO5?vVPx91VV}Ww<;kAC#A)ggBRc1|!nb7NT<_5JJ#@d%a=s?f zW@+MhvZ>`VQp!0~%4yo$G05rL1~)k@?i$NBPpzZ(xAv58t*S5QMSAfbQOOH&ei(vN zmXh1tN*2f7t3_&9KGU>EM5yo)mSeF8KK7+K=b>Ee>A)4**F{c>4-jCMsboBRN*zt= zTYPs|;VkxaQzwc(p+DIvd0ha2gSN9 z#K@I#8Y07)@0GDIOx@Jwpy8E}M?k+~1)e74t0p>BE8{A_CU5;bDZ8=_%EZ{`IKx)o zmwST3{BOokcdPsYV^jD|KgZ{n@eVQrQ4gP8(wHC?_Gl#E(@eBk+(J; z89ZA+9x3xK5PNN!v1RydQ8hZv01kndnU1&--UW`h4>=nlD@2X{Pjz(rcp&EWU%%=| zv`w1L`F_yP#YD&6Na0OodjX@(Hk-zDc|1aGAcj$}B$SJs0Yfs=j5eBM$o+4f*TFVM z;8~!z8i4t4)s6e_+hBNUosIUrCUecS7K#3R9@qq4(dhSSN8+>5p*YTTac1qkvLm5v zg@_+)E?F=55!lN(TUqyJobLNjOd2V9ddS`dw#8ic{p?#H zY3p6kQMNu9XJ0>kZrmPzAnw$z=lF&k+b*bQZN8f3Dy{F9i}ROtV^Fhntta_Tl$1GD ztJSlfaxIQq=>5zT8&B+IBU0#03FA(4x1TEbh#=yk2Ew%F-{CcX9>eOr;AEi2Qzm2+l; zUUcUgqWiyoA@$TgWnT!`Z=pU^6FvE`*LgB%!uyIQygsxefjBq3f4FO74Ov0vZRGvN z?t9bMlAaSEQ){8;%*TM11h&fD3$Ra%j@c$YB3bv@NCoHZj!pl7_mEcY;TUod+M(MB z>&6g$Df4RaSsw_iwtRHOu$3w2Wp764UWRcp~L2Ya7Qi7+isv(}d zG1Dk{NH?;ZG~>?uAB^8~6>KZD&dpg5bFNa@s0`5;2w&CgICQ}mB5tPl6pks5{bo(! zH6-K6v%EEK>KDll;B9=`Dcw4@bd`h8zE|o}p@Vm+I`Ex4`vYzZu`Zsb`qrv?q>gQ3 z47!F^dj5Q`=dexNWxX=C&AT-Qy%FsNmL2eMrf25;TO@zl-KVgv-AIBl=)D=6b=B~2 z_Zg|(OZ#j8iP(dOy0jfUPiJXSKC3rD@oiqGQBQO8_2Q$f6M}Bg8JrWf(_E8W8OOd#_hNuHCk{Qp zFrT#Tb^7Kz+LZ48LihyIJ1(m&JfX}MRpx9eqhG9X&hqIvOZ3hmJf0(3hlj+fJ451K zWxIR9l`=jy`e?$5;BUb>xTXID{4Ycu>~l`E?!ZqEcl+0`x;)H!&}#U(5QnwO!LZ@~}L<IJYwgGfvqm>jtLNS_CfK|I_^^$oZ+|bEy2P zUghuXRX+M^nz2)r51nV>@tfsuO)1NEn^n@^1AHfV`uZ^onE!TYYy)CBQ`1H|{j(Ww zUVcORC@{bJQZlhd@&B+ZDK_m1p!b`;0Qno^a;=t#hQisx^t*dM0NJ#mFf42wgMjVbV`e`y(a%6Ij&;te?lvk z`6+HEJYN1=-KeB;c#rWs>urwpr!ugMN|!u;#;Np6y!PCxL74_($J+|$aSZRDFi!;= zQ`}3w`7WxVk-r}~;&qEtRe<=1_O^3_y+CzYRtKGA&aRPB07W!qcnT@AfE zm{M22Z>ei0)wQ0=*Ou-S&aBk7CmB^2s`B27CR<4jmtR5UF|IZAjX8gzlyUzf1y+b# zpW~xC2|kD`U6oR91(o|NJsXwsY&kt^P_}Tuxsb|_4x9iz2j32P^8QOV7^8g~iIyU! z=e(%RyWK~4Ioyjv-&>K?JC)4r_xuU&jsJ1&+tjxRwjLEp|5UJ z|9{>qcD-d7?L$Q0%U_mptuj--bEv#$P8HLx+a_iX+v)TEy{&8$>$v#&_i1m79qRNf ztBd2@f8&p3e${}Cu`MhG@M+OwKmJEu9Pw+kAZY3&lFjEkDhkt?e>r;KP{KUFfNj?6 z;I$$xVyb$NI?8-Y8HV!Pr4GdXMcj9L=dS58*s+NmsKzI;EP#LZ+vm|fiE|ewXt5`#1|jo%N73! z#a;Sb=xJgX0cVKEHE|^s&O?eM4&0tHzu+y$U~XuBEn(>ghyIUOWl=}J^-b-l5BfWn zC!)lY_#RR9KH|`_8#^ZVs&g3C2|JB`+GN-gJ%K)%eR%`9i>Q8czR|{b`re`D8+8=W z_ho7?8KCSi`PqbGrRek+luRiprI?BIe9h+4hXZNb(tN5YBsP9i84Y5%`XEG^jcvz3OPDIx4?o9cxq_Pxh*#mg<=N9qZVs>UgAA9e2cK{L_nn zENRoHFP%u6HV<+o(o}wjJ$=xo2)#dkT;;5=p8S3-y+2CtY5j_l|A+hVKR>2@xO$n8 zF@WVh+@b8^&GJ|LrY`Oxc^l&|sBk5!?%Kp>n+=}0$d4%l@?8ab=Wa)pkQ9jaT z7{nK~`gX*g@y&_Bk0exG&tshNlH@D8NY3oWD4XYTA-3!W>+MF9x2T`VSIJ4ah=W%Uu%#9q7XAsnfA?&}zx`K?hs^wzs zK&P?y@;csEpr^;){2}2g&gJf)?^ImFjA_2v@guf$>34sI)HR|k%H68UK}Om|cytiu zs!lHVGgS_I%`qyI`u@(*b@76Y2fBTqdvXivvHVvKaNM%J!|Q}IC*6RI4<6Rc;r!S8 zk9NAX=OTM;VUhXDf$n&6Y!6Pb*z1w&4tpTrBjM8Q7-zzT;5I$d$>Qo zp8kCOimdxB1DPjWchLipBm-tnTrdhBWM`k008 zOopjFi}2j2TH9!j)kzZ1h5S`OQL zHpU(@vB-u#ySmHi*~@8;D0K?bCL zRO($};8LtkCd7U7OIh##x|#{1~+;p;m&@9zJr{yvt{-!Cuu&#*1}H?V!} z`v14Ey(guwZ+?fqe({5E@9R>tua`@`MIQ31n|+0UE@ClJKh5(HE%42YB6L5< z(ePvRGc5bLqOX2Z|8O?sqCUQ<`nXs1v7bCMMLfpXoz%yV{vY+RIHixj{||lq)4%EC z4^=*J|_>Q|HEn>`oP~7Ql5uO;LtRh{L* zm-0{->O@^DbETdeb>5LuSNXTpGxuBSX-lc6>O0gkBc-0T-gjcCCwxjKe{c2HMfXu% zKj~G^N$~O$ypRt^)dhdAHS2d$U3KwY-nN)45{mAjezCt8)$5Klv(Gnlt>5bdZs0v` zHGNHpCSkwCzIN&Jhghz41$A3aK)0m_{kDEerZ3!cD3KQk60Z`BrvP|Bhrb6l8TP;x zaVyER&U#u8!FtFOueWBu$8t0FTkN%;UGHMqF<<%fhO+t_JK^K5&5k>R$cd(BwR~_W zG0wkGRN7D6fB7u2g!W&pXaBYNLs2i)>s0$~j@o}&UJS_GG_}w6@Gj-!ti~B*5Hn25 zBJdsUa-0;VG(fr?#}_ zT5`5JpMCcO=q7{l0lr|o-y(uf_yNO<7`|?q15eT(nyYIh?S>7|jUzibrnCto_F)eP zIW~lg=JZEYC+H08tYMQ6yVvoZ-EykAcbGKYq($dk*O};k7uF5Ll}r!&5pSAlDDzE$ z6Y;FY600{L&^EJlQwTD4wjg z2QMt&f)}qVyf|Osg~h~+t9tMvrx#v;Z$AgP5mvaN0XHHNH)zj3SK-E0zzsbZKaFrB zVaf5Ti58fKf(SxD~cC_BBCENhR^}A2Rlm3JQ zUwyv^PjXW1_xh*o{mUkICd_wvx^4^tp6Gt$4(;qxc5Ge2mz?I=1ODgTu~S^}Gop)u zy0~50+g$K{SHfq1mgML;aZ8pS8$x(wr}d6pPG`}7z?0)Gl(mU2lILyXU0lDjI>`Pl z(0l!^?kL;WX0e}dU7X|BpDOblAZNQiwnYs6$+$TDM4VhE#AVV{nNzq-b9Wi&-$FQR zCmKZk&Vz3V^s8c{%%cd{k9|h!vHtnIe0I|sc^`gX-lIJFdwiqJM>s6)WL+xWPtA9+ zZzbsPcr^~_e%F*rn~=?=b;3>kOdW$mjUj`d_w@Tqwjb5mZ?j9)Ib79Q$nr}a>(>CY z*G`e~CQs`HAJ~=>JUUbB%~tK<+vnAH1S9sp`uLQ-`(~VSa^Coc%xFALZ)YygYBcnP))e0caL44kErIKz$+j-gpnRFOQW-xNak`)@1Jq@$HIaPkw^OX#kOMexs$ zNV}vP5xaoaIpU+4xfR^XkN%O+(Zrgfu-IG_6pO|-v(9ZXJ=BKt$4>5hMNu=`p>|cL$8EkjF`RqApJTO`^LE6_ zK9qgU)}o$|`MWlOwuhC4_&2WN;Z9a-&pB9Qd!^^R(pIVNG*<#~Kz1uyZEe+K>u3y! zmA2@yd5G~HvsRrRg}%i`y!~j7IW~`DjQ#{MAV(}g>@UXAF*rLQ{^{qx|2Q%6GTrde z^Ic=N#&&yaV^(iv)aKh1-SK0)akGDnasDM8i89|Z@zsU8Q5;z&nmujNjidG0xXW*e z`e^TJyHStLA0wiuKhLp5!0sex#9R?6S}ejvg;CgN`ZR5*wXh~yL;ugG|L$K}5f96- zYu6C|zZV^%X)lzy7YT>AA`Ux?&3iS&dea-V?y6`LVBk3)`{5!7&H&aBd_MBmbDqYo zFzpy`b z-Ly5fgYKb|N52lU!}zBQEYVtYMJ#*i`^N;ix8k|iR@ajNGEu?F}bH4t+N{OmxV z#VDQ-MlR3T>R=1=7c;6}*>?roS0hIL)v;5U550zSnOHfVgw_f8o}p}BIbK*q`fG8_ z2ycUcACBg$MSOnYqcU&Zd?;bo2mAiw2@9p~KH~jUS&RXGi{Xq|jDcQd3+9d*-jX?7 zcbacgyPYnVude-RcOCnux~QDh{Z6|jcx%)e+|-U(cUFz=)qZVJcB;tlfWFz?=+mt3 zJ{6b9TrKbu8$j(l1JpLP&-VLSbA;xPQvDm-)97-zYunfPYq?$1X1hz#j2v%RxJul- zW(xvM0y@S#_S0$NHI4n=?r$Rgq`AZHt6}?k%^wnWx|Uj7#Qj&ey7NO#0sXF)`!L>} zf2AvtM|-AO7wkN+SK!@r`p%Vg3dbq<$#v2u+N!?8etPDWu1@p4M(@q%dGy?j*YMS3 z`P@V8xJphD`xSjaF4buSH^gcBL!Rn`zlnX@F`jQ5OT`tggju(t>OOYGiQgYkV*s5g zzb@T4pZ2?A72^heyW=Ata-Y4lzgcyHuTRFb{Qgsi5?;h9fbLui#7@_uYDs z(4OjCU)MhL85!GXCC-yLhRGD;HS9|zi^bZ~Cb~i*5M3r_yh3~SQx(QEBSh5 zub|&m*&*hmB1Iw5Mi*#61<_5!+&tT(ahy=t_1R&|F*=RyEmu=r#lDajLURMZzgxWz z3-Ar|)6$|Vik1_9U(5H1U*ay3|MSMm-(gfwj(X;uUn^QUKaBM6B3{A+|GKvO4ka*t zJVw0E+TuB4UCtbthsq*-%gws&Od}@2k30W^()W1I5G!IO^INsXN`kvt7B*-6 zT;p6w897Doar}I&HxK>C+J}!5pQEd9(@xiom!_qRg~|pr_?=7tB72HY5a5Bci%0%& zC}HASfhrRrJam?{w1ZE~iy(II#+b9DuHF2$f0fMZiQgmiYxWZ{(DF;)GtV3|3aD-1 z(7PV3JNAO)$#DKB`;2@Um=o}eA@6dr5o^j_%lo>`tv`yjMD#PdKAWC%{Yh&)RucQ?lWQ|#8> zc?SP4a}2^a2{BJ?<_F#b%^q|bzcQA0QL!>QbLDsMx+U*#o6UOcKNUPie6 z=QW2Ch>MSWn&nDPAC;1a)67B0G8b|Y4%3aGww)~`cs@Y+Aw2lmq3+y;f5v!-rlZZ_SG}_DRKn58%BSvCV|3N4Z2v#r+Y(Q;mEl9mavg$i@DDCPS$Tuj{k-~=;j|qzc_Ms;^#)maj$@UIz=xVB@ zzoR$!u+XWm;N_fQivj;j_^x^%4Kh#G&mC%aR)^w<6$Dw;l27Yq4frwmI}jh`-Pw-( z)(?(355zS-!+}3?Iq_$Acn|DrXd`@y%xU*U z;LF_HzRDgX9zWC$-+iHlVu$=!5+DtsliI*|+8DY`!mF@=21?avS$qHl%GH#h3`60I+(HO9H= zd$+~#`RYWuZ@xhNQ|W(w;Q}!uQYT!9cSn0kZJBPN=ML*A-Pq%${!$r^Q|)eUx6r)o zp?a4UBmVZ>=qmcZlj_B~?DB0Q`co&GsjgdElZj)*BlTB)0|)8(v22ZVp17&q{nTey zVI9%NCBj`&C&Hx<^EzEI+F>J}!IneMn$c5 zT?O<3A2#n8K!}-lhBQAUfy4fX1ZTi zrWuRqeii-q(f3{6Ht~3w9^2^)ajc!GMe|uc-{}pFKnxk!15JZX4tPl7-KbnHWR^%_ z6SrAKbYLfJc!?(5Oyx}4J%OGB2eLWmZYU004U850Fy!Msw9cyBAz>X=YwSVW+6@ff zoYHq#Co+}!j+Sn|#Oqxs3cXgs;fZVqb35J_E#a6o@Wrd5KAgredMA3uLAOkEwD(EO zeKX5`cAoo?xR2(3zZPO$1o{maJZ_)JF@vyHYKo~G(Ix27p_8>%{UXY8UO?YS{dk@F z)tUNyyr%7*c<@kSKYZf?b#dfxfjme1)yVw;g8#gb0G@a`cRb+;^a~{+!m~vpuP`KY zUW_zxEhHG92#*Tre;46TL$=mw!VP}bfGNX{=Fp;G_at}>??Q$J&5@1f$gx=Yiw{*Y z>mrWPAn$h)ZO3{YMs-*VrCok*6giJ(#jK^eXIwOdb!M~qYGT8P2lr7M_DD#;-@-%l zGZpjgzMOD1i*tYxuH+Id9rP|2xI-J<+&?ChL)o{4zJ*T)V1qn@&(r^H^ga48&uWcA zhNHG>scaL+5o`^KJnCB(;SKU4G!SkFF)p5;Nk%=vAhrL%>o>W69sHfttGB{8Oxm0} zt4Q{^AN$h7qWmqpF+EaYoc}5HYr}&gkn3PSq2hC-z3gpo>Bg??2gT|eAB=A)dXRN^ zFGn6^x-tHaqr4xFAl#ic_+if91i7}g=v`sPq+ON0K!T4<#>b4(TsC(9VAB>%^+B${z*oVc1)L;EgyRr0C2lwAc zb>iFGek*O#U%dapcvrTp^9YR#JnepJNdZ!PszLrtW7d zU8k#?4}VzL_UpztYF|_BPgCu`^2Y~RKEd}+&x5SF6TGg{h&D(&j)GsQ(NX_351`!`f-@NtY zgYk9l2YFmLzj|MNf1dh&1odMr_2XEM?8i#gj~%0X`Z1a6Mcj=_>PLm@2mIJyRdwa4 zx-O!+W>8%#Rb6XUUAHRP?N+MiJ%agEs%MI-=NVPU3eJ&7GN^kQ&)tscat<=ooV=y( z`>Fdk)V)*Pzozcf)%`}guVa01z%XsXpr17Dz=jd6nsHS>qkg!>$QwiO_ck-FxAy1mTu5BS&zXXT3UBn|;BMm_<(hx;lgRo1B<~?~RF=zzI zoF!KnP2Sq*!U*~oG*!J!t7GmYag8Tk`wgIQDTc*EZ9?nR_Kr% z*k80OYlv>n<@j6F#u3Ewp?5YFe+~TcZ?roM*uPq$GM*X6nCD-{vLe=CCB28-+2*8m zM|?AMH_+K+<+u{5zN&nl=Tzq|LnQv7+(5+fr?S>>DLcMb*{?k=j$5sfjE6nL=E&jv z6G1AEGWh1O=fwI}ro2mdPV84@%DcVlySL4AGaBpK(y*}jbz>&UqM(P6MIn=Zt1P;H zetV9#g=JB_^cmRL#-MkC&dM^AX#O zk6z6-v6{bG98vlz$e=PlIIaJbSo6#NaFl)KWh`-N2Y%l_q@U=5Kd7^S>YlRzSISvH zCZ7e&;n)&Qf0yTGfBI786L%|rqcJaa^t=CPr+G&3S;`p!bZNOYz0L@N&bZB2FV6^q z@{9oIl;^#d?6zOZtvT_00Jcl}N;CueiE~AUvDzDsLHD2asLU+^U57?IBjo4htV0R2 z?KF6p`jRlmAX$hr+@giTS-Md4^Nx*sNUnEA=CG{J_Qtel4bd7uMqV1|k06J9^Oee< z9Atm+S@+XkYWIaj2JysRe`6f-XN9{-jMvy+I5sPX zbfcAc4A&c0j^%UbfjM!zdy#N^7dp%}!FfBV4)|x2Y?74|Z4_?$j^x=6lo?0(7g9Ru zF*KGTWm0d0oZ1C?qZs;Tef-_4=ER4F8{@84tbL95`C@-44mv<`(NL#1hvx-3?sK9$ z*=Gg)01WJU4#y3>mHJ|*HI^4`7LO7C<)mjXns6XI`XRw!&0|3^^vqyfw=QB>nEwCB zPpn&Kixp4L7J7C)&HDmTL3Cj}?f<=DbBlsaF^v(qkTK8bo4MWq8>h9g1My-UG`Y33mKEn@82jL>N%C_WazP=MW9(3O9EZj(xpqyPCiDBO%VWZj2^MQ$K!<2*uTP2F`nl%8OG zO5Ioghr0EYeuim$z56*LrLM7k)a5qoB3L!5xDXlK&v18L_;wXy{6dG}2hZjqIlyKm z`OR}i>=4J=b({V)R1eoj>+0TQH?C&PT;D9Z&dMN~(ZcoYrFuboZN6bq7y77Z`)OVB ztT@&09yD^5(m|pe^od!tZ$YOBeT=DB4E!JK7InH-e23gr&=EpEc-fV5Z6Gh?_yF|0 zSH~u(__e2hE$0dOBP|(sAIl9sA=# zUhlu={jr5<)imB8=khrO@bq_7_m#m9#hNx(e(@gYAUP&gi}=UidVJS@Lj4ErYyKjcu(7Ty zYOGRp2{Ejo-+Sjt>2J2<$pq80RVjJa5f{rr``jnWhGF0nDt;ZwtF?$(RY*9UmTd&V zPhFhB=NdMj-+(|=2b8*MQ#9K5W9>&w}aDOY1OB6gwYk%TN9+W&utK>;wUzMiD zg52`CPj3>yfnjBJ{2OE$zJ>dG=mS{}a{eDUCwGg`Pm}hfnl@h?B>pguWV)*0G7(nq z*QC7PM(^G9K1A>98D5QXH}&C{f0jDf8WlefWBx1WFIqq{tkMa)!%>_2?QZ-4tQ|@( z{0QwkcOqUHJ^P;t9SP*KpNKlW97mn~-lx(2TS@Krj`a_o?3^rDqKx*`&Ha>J27OmV z&u(OUfF?1Hp6AiGKT|Q%c;BXPPopx>A@5CpF0zfTYIPPpMU!@QSjU$hmwV0>+S@{9 zGG0Np+W)L7CaN`%%R0E$iOsyu(|Els7atCHb?dZ2FFb$T&vD&=$7j&qyW?mwf&JGJ zkhTl3p{Z81+l=P`8Kr>Z+{@f{92<{d{@zZKxxLFc27Q~gj`MJ&`Sq+^f7JHUQAux2 z`Jk^l)BC7%LrR^IUUjbQRcETLkGXFlF7%;qB)m|sL)E)#=b>)6*_khy7{gxaQ2Mi5 zwJULE>%rccPW9aXKT@CY;L#J~#Nhl?bI;?lM^rrcFI2o3vk%~lu+MRvs9b3q2m9_L z7Zd+hrE^>mjrm~Y@vWoZP0aUKAMMG>o9Ac};48v5EjsOQhZ5j7V7s(0Wk0X{myGds zK=~}AeZYc!(g+Suev>q1{tVc50WUCS#7j!`OGcZI?Ur!ITA;qZkS=51>>wJnvAI;n zDIDJm7G};Ctc_y|?-4&I)gBN$PLJ1`!@L9sQQ-M3x2LX z;5RV^egxka@=D(kfFaY;($G8MqR=Le1Nr%X4@2-@nI;S`KmX$#l^2Ke-JmY&2VnWx z5ovRBIe2!Ci(bic9r|bbf}B3EE`IJek_KPQ<06?R#Si=@<>L+A%*(W|ttxHlrvDtv z3;Di5`+W!Y{hiiTJ#xi+rOo9k)_b?`nft2JI`Q^jd-mMv>`%Q&RAoHyQU>FKy;`SZk=qmr~E>Oc%HFOiFuKKQHBwhY8*< zt9gEjzimFD56^QSq`X~2eb}pFR$?8m8zb%J5RZ636m}gXXKFbHa)Cq=AF1o#+r`!viNM$H7`p@|9ENV&_K_7 zVjNb=c;8g-Sk@Obiy-mrqh;QL?)}#1mOL zFT^~~AK7z$?xlOLZ!w=8z%H%Ymn*F49%Fz-%SUbspCg^~Q(W!qNTl5til^qNK;CYS z8$oR}BqeUHgTScp`8)=Qm_twm^wwq&Y>&9(KnXh9j{CtQ`ScyO6n5M1Jsq~B; z`2b)i>(y!edVU;ot~EW|Xr^b?I>F&D`EkH&JN4J$9m{r*#PctSs6GOA4b{0EW8(YB z!>OK=JeM)ey;wy0ryIy=+pSAsStM6{G0>IBQM`7w&yhR1+K~(Xk71wY0dJbWqBU21 z@IsVrLvp;5ugAGeIkiz^M|@4)1|J*5eMK89PnUe#H0^=788eUdBbq;M1HXJ|`NH2( z*%?2b9@%!o^vIs;r$;8!|CO{pSCv_fcWIx5%_hfJ9_V77-0Ei~9^b5T4nb$?N|^_Y zF~`-jzSj?AT|oDHpN81QlcMP7MAgr=s-NkKKSzJj*YH;|W-sFv>`@dxjpA5Q%^aV1 zUEzF&56z>;tz{casb602Vm{Maj2vl%a|;#hs|fbt!sP;I`ey$YQ~&;`VwbFNoor7( zZ=lqro97F4y%By7xCV1=W`MEdt%-EJobBXP0wO| z(`dG5u^4H$6OR{!&CQTP0JWY{l%QmK%8&wI_N%@z)o~O@wzie{&n4MM z>JKy~*M!r><@f)HQ+=?HnPk|A?h*m)9CF+A2(F#CPLEXI zGCdNatL^6L5hwj>^epFB(<8@jk!AQlz0=$a1pK9jXv;Wmy!cGgW8?`xpY_7p6CPT( zms_-q9G|p5x!J1a4;it5&l#SvXmiVbr}O{gR&B0N*+~9{%8&A%E~Nc*)VSzcDbHU= zRbI+8w~Tjk^%v4V3H^dU*KY_WBu{jf1tCXHHZ0!ycp2i{BhO|^ z|DRQT&$A!~@AbwYO}2%01ksK>@52IX-saoR@iBc?nV%_5#m%cfD%ArIG!Hk zD{6N|>0-vYW7H?>dD-zF!6(VET(()#r>@7w8hFA-x0WEsSO(A*m~IFDHAgkypW?eNf4w_KZMy|=j%6Q0M7Q8`6Dn;GkCwjAb4+dK zc9bp7C0gh1D0?8+7a-VF&5rvC=KoW5U>|V7qFoci`RXwE7wfgc?ww2gJ6(E>c+H|c zkwLIpYJHexjL{c^w(GId$+UKL`TW4e;1RAj0QcX}e6A>3%(jUCKumZV^FUX&@i)TJ zsc@!v|n_Y#i* z+F;Uwxg3X5#$&B7S-^4>(d=C7MYSHU4|%7q=QCx$;DV-ujymkiXP{5uLT_DyG&MtcF5z#NaF}7}ggUC5+3Bv+wDQ|@IA z74x&C4_UyX4K@2Q1@fBOQywFjVE+SNqOF?afK9-7jOI3+yIf2iDESK5I{FX?miC)r zv`;zw8~Ziv^@wIW6`m2U63*6(Uo*b- z-~{%!>j4{r^$;4PIR|4>=HMQxt9bfiQ5f@BZuIJS7Dq^o!jc@Q`__E0kME97kP!Cz+*%b(yO zz*D@t@(|O=&TnL1%d5XhW>^#*!Z+A|2NJGcMg2bhjeLHX-kUVELebm`qPfqj=l_mI zx6)b~SGJhf<+!p3#3S_0IHIdg+K0y>AJ=!NW0Y!h6tx-p4&^7S@{_6jjPFq1ugd$W z{Iu^-zD$)bqw-bXp?tY2UryyK0c*rwpz^)Tp`Oa`P+z60uafHXD|%rc*dtFpkl{+q zxC3;2p}3Xa`y;Y$=o&}Sb;);VW4vl(JhgGoaVh7OMII5Gb2Q^4ZB`8Y`9bT}*tVLj zF?Zw(~BFu0ZVGM;6S+w|B+!3Sbp^z7%f9P?S|QI*_B(84g+9;YLRu z@n_g0u_nFx0@{b0M48^mvetI!xg#Og)w*fT48B{PRR?>{swaX+da9Z2xv%E4>Uy>- z*L?H4V>)^`H_dihj}zcGzQp46a4tCPt=m|Rgbe2~pyRXnJn=7>?`jeCMXVEN9wby+ z2OfMk&US;Pn?xSTqgb!dSq^$c#^i=9P(c67^kpLG&W}TnR|dW{qrmtz)5+%UJ=4rP zJ^EOZeJYEqTZA*%#58*UpQIl%;yrCv`;Mhmw{2Fsf^Q}rVjIApu%BxS%d_B{${>GU zf;k*VvQNLL>AMeoueHC&xRQC7X7T>x$pmbQkeBS<)k&r`8IFHTU z(96ax;)>fM4Sb%AoN&;eBW5ekm8Wl&`zw3`y$a50t-7U1ooQeX+CpP^OX<%{n3y@~ zfO}tlolG$7Tm}5R0kJ}940mI`f&{DTMJ!9EKc>#`ss5iuqP9F5qtCm5?c31Sd};^z zPjff4sk7}6|I*&v3D`lVdX~nzN}a8u?Q(+28rC0PW7sS`x}2S`*=W^c%jw;tMelL@ zKA*Jdf-HoygO0L=xx_Q)mbX$LeBjULWr>#}@KqmzpanpP?(E0~Fr+Z~A z4CtDQphtE~S-F7dFwW`c;EW^!o0ypf@8c?8$(0u5`CBLe|APm5;NFo;KEdm#RX1pz zu^l|yk%ehJg{4i%&ZnilB=p@S#Os)GPY1J|upWD6CE+G)-6J=2+YoBLnQ@nIb+l`X z)QiJM?R_d!PwORQg>QKP`MEX*vo~$ZqcsQrgrg)g*IT784c5_xR32kn37E8oj&THsBu2e?bTSvxyZjmeafZ2JIwxKEdT7)XRLV(@4XASZ{@)S;_(&452-#{ zpVDoOu#+QN-L}kboH4J$7(nxd{@#D-76U%M!NnPdE$rvGI>YF>GpxsO_T%%*b0+AT z3W&CkVB3~}F$?S6aszDr^MNORmB)``C9Bvez?*vNWAheyHi#HA){Esk%{SgKeZ;<4 ziSx^9nU|dEzJtnfzJy0jJrJ!c>Z9Gal;McBA%~ecZ@E6|)G@ELaa4 z)p)S4tVX`fU=;a~I}0G^X$wgPSu7Ua5f(#epL7zu*Ofj%a>zpA4K(t4^^pwk4g%)H zyHqXXJt%L)LIE2_DWA+C`D97Ad~z*vHxVwuE+miY>=-Wb?F-_alK0oM?rz)&myE?l z{rq(JX2z5L7r7Fj(%uPOCUBA44fnJQJD(q__25+FOX}S?U>qhN@=K?Sc<+VcvJo;yJLudy;}7w(PwClI>U*)m z3&6$hYoI<;8~#PC193*0bJAIVn8WfWa;W}^=5JK;LfEM71rPECczNjbps)2^9%p%* z{)6`Zoao0BC9cFRDrX^bF(EG#`nV?;jG6fh!MA)w_uyf=6c1BQeV;f`@+xNjri0!& zv7FpFB9E>k)OX2COko;G@bTQk@+0tL5#xuQaigAbqen(vn1Ta~x^duig#*9n3np}5 z>|grd!KAy6%efAX{sSh%2qr%#m<%;xvX@}es2d;YDe%y@#&*#?=sv?lmoP#94yXTn zxL|)6L1QR4`84D#_RW(q^VJ!$O`Ug`emSXmUCi^24J%}&N3e%BTaEBsr}1vM zg3nXm304?sFV(Rv5BQ_>%`zT4;?Nz5z9&BOy(b2C=&{4@_k?ZlL$S}j?}-(#2aP@y zv+jQ=)--TnG%wIB1`_NCMsEq5u}fIrPja&>`m?C!*C*k?7ja$Sd%N0S$Fyq4pAtRx zB{)A+p8c40m}3+n}ER7=vO z-9mqvf0_5je|?cm;Cr0);H-nb&83TN-=}4!+vwMZ@9o}Yj=A(bY+`nl8SM_01J(w< zRQsL5w5&=uwkq2@*b8)gA0`hz?PDwb z(mr-F{Z65)ims`2-AdOqx~l2Ai>?`T&7>z(G9_e-HZ!Y|?^1WPBSRsEdz12)nbD0(SlT;DgR~ z^_8$M%12&`48%L3cj>x5YXZG@2B71-+i=kRSdL{+{79rO?o$2|^{qYjvx4?b_$(iv zu4EEFWRk@!lPpfLpIyo_Nl1VffUW5LFA*=`pB*3F`UcSn#ARLB?gYO=>l%Kf+s=A5 z=F%1j==^OF*!C_El^T2&8U<_@!o>3ge2wv8${tlCUg)t4^;rI&B|kQt_u&>Xgz#n= z$r05`7rKC+H>>{-bN=0jh1=VFg552jmFm*&cAGB8>Z10lTiGtpu=^Ia!w=-x3fR~# zY_}6Uzoh>zg6S7(kN$jxJjeXo{v_xASZAJzM5tbp%hnA_H>AD7d|}2%_0ygN8=d-J z9!)qw6NB~f@l>~q_=#r`qgK~r;4xumjQw?$($B4gy|&&MFD4ibA-=4Eo{y*hu-o<{ zZx20#ekr4uoh@v0ztmx8yFmDKDO-npjk$kOGQebIn;Lmo>SLc*`c4(Ah+*f)91-kK zwoP3iN|bHt-wJT*=N=DVGlgbyIkbZd{*mHXVu#txB~VH^uAe_ zHVT$NCC4AKkD2RrYT8IU@s^gr6|^swvG381jB|P7r}S&l?(Sa0*U>%j&P8=p(0;ah zi*AfZPD5IUI6uMtE_Dx?J6Gj`ouUQf@V8t|`yhTl{!G$M?19CBu;BQp=Wj4zAAnft zqpLO;PWR%ySm!S23y@!o@U0))@ihsyAv&*y=u)j%`j-xlyYz9XD}k~&TR_fc%*Xo^ z4kc#5|AqD0wH&jldAK}lK`aa|UoFcQkZhcx@=n74KhGy)^R?61^N_1m$@=gO!+E&W z`Ojkid|}#ZxqP!6Gm4rWny z9v9yKA1KpyQSS`t&3XS z>kYS;)_QhbyH>rBzdOwI9CGG*_GPlVXVF@&6*=AK_XO7n*48``dAgsm!a84!d%|W+ zt!-j`tR*90IK#8!gP$Tk*QI;1A0@s!L$^6e_IJC9Ux17mSb{jdF;~?C(X+16W3$Sr z{53z1YSj;mx(RhrCt{%Z^b(@Mg^mexqVDP};vI60YpN3Mw(9h_8~Z|_E+%=FK-3!8 zWVizss()6zpvofhd=}yl8ls5d?j$+SMe^QSnu9?_+HBUUytSfV>bJ1YH4~5aR|5hH^v;k<`}~} zI9u$oIF0GVgCe$0%Tqb*E<=7vsG0>Dgi`t-qO%%@*}H*NVK- zU80!w&n)Bz^y!b+m(CXOVPA9Yp+qrkJZVlEiik%aT4OX6)rx`3q&y7XX2EFPSnXSg zyx>L!a+;UOefd@Bczv^(=cQkj+hR8Rqq@AaMF;WBPXBDNvczcwV++|%$F5x$LyR8w zM~xDX7uGGvy^L|e*8lc!M|W)TbA{z%#EzURmX_?|F(Ovo zq7r$IS6imXg2U$u+}pGpfJ?*ae#9qBC9J59Tx)r)hrZ8Eh1t`DFH;{|C@PBnPvVi&b2V$8okvbEx^E9OuXt zY>Yp#MvuLLu_@b{(4Y;isPN1Xxs|K;T}cCzsHWoaocjw@GA+RtukH$GAd!fjn`JYN~ z#P}c0ft}0*_{JCFoA;?qC6&Sd&*}dQ?u9Y@e~13B(H1fdeG22(rGGDA;363?gJFEV zv5wkCxs?h=6;`~z(?DE_VuDRR#{cMSv4-l!96!o_eiMu}?m02gh1G#MF_Z(Ji1`B# z2i*Cw!V$!7nK%4($8GBD6Mbk@Z4FcN@u@nO#Jkxk{lGi$A?A1Yt9O;^T^`}bzZB0n zocYB`#wqk{H}lxDss05V+x%nNA1Y}+htb^b!+)Af^!Yy67ZZ)Sb5K3ow7z6>F+O}q zWrjR8oAGf0c)pY}YpBd@wGXvkXEz3`IL_FU++K@O2Dygh$7VJ66_ya&Et$_zrqRR; zTGMw~Np3^zNtILGJe$9Z_e1#~`_>xn!))$DlTF%5;(15P^G14JVQChBr~X$=2nn-H zx#B-6EF4?H_>+2nm$g|uM*r`c7!u_wZ(v?kka<%c6Z0B6=Tcnq=pojV%9u4W46|P}UJIVzW~sJi z<3H8y#CHaL*H7j3OH;m#KV2y6x1vquzk8W#6Z`#UdY-9r0Gi{*c{lo89B3BTJbK8? zH{nDa=QIB#`RGqC?5S^PN_~hQz1rvM1Z=<$6$cqM#*CZ8V&=rK5FBTEp|~sD!S)4v zsGj<<^&CqX{XKQ8v^xMi9tAuIzpfydA46Pq!pE`TUFg{{+BZhyKRvTsTEr+WLwy)i zCoaZ+f1S|i`9)lY{`=<$j1j&`m?y{-TFFA;T`%o7a1Lfywj3AooK4}Jxy4#oz?KC1 z^8r7VK4Lh7a^5tD+Fd9L6m3M_M);{QZxE=9zWE{YZdP(!^J6q##B9*A7K;1-CHY*_ zXQ`O>r($<74w?IL_!3e5`*>|m;d2G^{W0PTP-Y30fgL*ZDu{=N{-JNjyhQI%C&AyC za)@~htq||f--(c~EXW(^g`SP%72F>~9>J`6G!FWu=M(;QsPjL3lhym1OYsfjpR#Qp z%Ln<+ydbYl$aJP`=PIFkyfXhCeCFIG+xS1^!H8wPu%^4?vc37DgX8*68oRTv_)=lz*bC}|b@!#PJ#v!LURnBd*9OMC?FXfCgr5t1u{JN4gX8kyIpT6y`+1Bnz1Hk>Z;j33t?~SXp38C@Md~*w-{rN& zPkOJ`9iCmL)y7-B+hTY4l3ahf&la~UJ7dDp&f-5#kBp+LlCEiVx#)6}obekseW$%0 ztJdUq@JGV)Uwq5+TfKO`{iNr=`j+z3`Y7+E=LJ^hNq!dJv$_)8b|2p)M`s$?k5lCm z#Epjz$x}i!G<}lF=c>IPq;XGxjjfY^^IZYt1<*PzY4WVzO20p%=K}+ zLo#+H$OxN#ofYv13e z;E(w|a0uVwY#;K!`Q5pJzQ3`mZ!Cd280AR~H1e}niP!$bQjY`j_>X~r+o z{IX7eW!%iGfbnDye4bVEhn5nz!NT#n=drxuR=&0tS2l8x&>o|E1_CF-Z^!Np%Xusg z65n^3-8iG9g5w2&R@}=vxaRJBojJryTV2x5qmuUOA)4glXm8&=Z35zJ!YBKRxHXU) z#abLp^EWL^J$H}cxNt z-uT~i7}=1kSl6Ok3J{AOa;uVeadwV80XPFPc~t*p^bL*cGqzFGW8O%!s&^^Z4O}T( zPjx>;Qe42V?EmvT0<>D3(glqV1r7ySnMbM3pVV;V@uv@GW&sk4|96cB4N%w+n7`# zMsFo#k&VvqvQ19-J7|lArS-u$V19Ij)T!_M0Cs_uG4LuRHpo0T!yt-$YcUCTPk#&uj&o)oxyyw=$|8PM~e4&a}tu7zOBa^wse6>cGFU0v=92dAcyLy!`Gs{=W zyiCN?BCbI`=yQRh&jS>F2F=yfn9zqq=esy2J8auHrmJ=j`0C-%9j2@NHlX*#)sn}s z-g8d;y?dkWpDLK6A6?)t`m;}3#;nX>{DrX{+#fHk5%l|r$|aL=zT9&$t}?HzFLlo< z^VSOUzMTH!n}5FEeg2L-@^4Y@7bJLCU3o8sqMKFH*qlqnq?`4CX9Cy!d#%iWH+xO-nmMu9J24YrF`QyKmvFC6m$aehR z#`yQeq3+y(M*_1MW-rlrp$pe9a+2Kb=W)x}T6%0t(d?F4=etgbkzvkB`Ke*yn1Yzo z6PS;5mUr{D`CHBji$7-8#W#%lIFU1=SycK?wxb)acnpjiWs%dP>5`AT^Yip>!^yd1 zPOi(+M_se19_(FSk_#SQO>({BPr*cYY{4X~*5m6@uoG_?j#`6kIYjcBv+uGl z@GWrqM?dKKc2;I6zGuvd>kj8J$B18vcXqXK-+!aT>%h=xy)JclC!en#>f96vv* zv%Zw~7$5vCLc+|?XzuC2FVGXGlI2wH_xVxW(+j!3-6xi;x)|i2V8aWZ7M&NN!ynU zb9F)%wfoO!pP5sUuO7Hg@XO)203=KKYvQfGov}M3l5e$nqp>?luG)T1v>p5<=N0)^w*-`VD~TEi?Lb%+0Z@q%fK5))^j<$x2Q3rT!eT~ z_^ew}I9e);c zIzsaD4!^#d+Fwn${si0D9+!K{nK(Pd-bwtwm3T`6((AU%I}(s>5QB8$z}fLt3OCGs zb%2WTg!m>nSNmM;B|LWEKjfVCJH;rQlWE+_xRhO8#B=XH@KD^XY=pLz>=34}ea-Ry z3DBQvo0NAkNBA}x+0NglM_l~fF4kYnXI;(R^o>)+21#u{Vmn!8{uPy#`?pDto5gWc z7vPondqjPAqbh3$j=HzUrn{AVP0!LI_-0S{H^p}O%|!K$Go^l4ulg%h+3%~e#VKV| z`L2*Ecd06Ou6u`=?mp1nhoLED*Qm0ks_c2a$`0$*-@U5**{b{ny~_I({m601as{ef zSxR5aRhe@nJTkamAMRXa_{MGbE%n21}zY5OGoyo$%Oi1m;r|Kn7-955zHix-It0~>{< zDi^kY9#=_yF1|_Cp|}fo@m_=&;#?kh>XW$T&^$5yN~b6KaDR`*@Ar7-Rd7zX{?IoO zttn?&ZL#=`ErZ}G^($OQWQUlUQU~!~+}Gk%UQOxZ&2M}s@FBRbWjkDq)yc3})QeZ4 z`)YHKT_nosf0qwuj2?y)+Owr@&whUO6EyDopJO`#ZXr#_McnLJ~V{l=)-M)2*u5Q45EIZOgQ~yI+~~Y2wmANDt<2Z+ba5x zzWmM`HSF#=e7*sg!N%i4WmC3C*~@)0xPx)En`YCVy%GDRzgcXi?=sHpNNCCi2&6`N&U+AB;&pa^Sz=BX7%`6aVBg zoJHwI&P5@PubxN01#~&o8DsfS7u(M`RgUcbRXWG;OH;9|_kER2>`&1v87jXb{LsvJ z;ivs9XuV4D{E!pgK9)?Bt9Zmyl$`KVYck=}Lh+xTqp_dWL|!NV9Z!GFl^-W=Bfk7& z8qSZ!p}sFn`Top4zQ>$QE(wV#beXU}QXOQUhjidv zp~N}XT_DDRl24#BJ?&?qxar%lnab+Q#u9X30r5^N>Hd!dpFfs=oLHVRcOUlB52D|# zY7L^!)OC2#vHppi61m>6)_y)H6gSt~q$P5_QGNMxKfq=xHokLV? zedI8JEnZ2BNYf_8?q|5QNPqg`TB+;v$$XH|$2b-Kg#im+OSfJKWz4np(h%rpS{P1N zr^omeWTBFtd@~Yy`6A~#sD9n>&gf; zL@)X^>lW%~mTkChxi_3lv-uu~^>3|>Sy~@7Ot>&iS|c&Hm;SpUYrW0#73&PBF4{|N z-k;cQw3pg=?$lmd)aPER>PtEMLLG*@rYoq$Og zw!P9fsalQS3O^BQ`++da1^IaQPx}8i#^V;Tr;oj)?(689%auT_Rhr|oi53lwN+xR(~r7Vd3 z`v=F8oley*^D^puC`K?ZNa2ah{(J!63ZL{NeV=0tH*@U1kCeY7`ZJyS1Nz{a(9F6; zm+A}pwP=Xc(SgVM^tg;)`r0`}GYCGfVINXBg1$8l>Cp#6cVLlw=aLi7T>}#LG~e6& z9(*6slaW>#-zwkS4=~TsJeT1;djR2z-|%?-#*S-`FkSm8+h|Cg+!r|S^f{sue~FJ* z_}ka{o>TE*C$y1mGlCZkG|r_qE}}MGP;LAeKEyVQF*Dah4U#SLiZMqc+c=HkYY3&*a?YJ?E4Rvp}TJvDnpE%sw6& zsrsnsWNIJbUxPmCee`ifN*_^XS|4Q|rZV=FGCTVyGrw0Edmm*UNGa2eCnKbsVv+N| z1iFj*uagOnn|NGTDE_OYjJph-$lR}cbRy>bLoYPJooKg8IVV3oe^$5dNXqXUVrO>C zFv!V{XAyqJXIrqxDIwVieqbuz%2F$MKY3O|JeemGalMEpI8){TYb}HJLfT7hEXylC zDNW0cMStJl&!VE z6BsR^h^Ro`^<8_NWD@at`un_p%x7lyeXqUt+H0-7_FC6lT^@BG)t4^!t$SG3YUO#V zug~}$cpK|&je-8+BkV_SmD6IXc*H&}QG4mBT^U!O1^tFckETGg&LNsrLE|p_wTgjO z)3M6A*Q>Gb!hIe^r>gW-L~~cMFMz!q%Q0cQd+8i=6WhYyiSyogzzLZTIPkl_)E7!k z_u`IfdU}pmThvgrg#Bh+OTS@H`Bkqr%BbDR=X%BCF=x1$>@;e(knDZ00~!jsiq4#3 z;+IOna}Q(RFo=U$Y+(#u+>Il)9Pjh#_AyQ?~DI?5DTx zgq`UFe4mYXZl}>$xD54!*dOTMFFI!QO^8%}Onk5x2+y0Xi$VEL!)xW}J~|&J!6#gg z%>nMixIInjL;>ro3GP({s}jPGYW)G069OFPEm8c{U5EG#2_Ysj)rnMs_Cr?g<+Ht2 zo9v*m$u^B<;Pd|MJd@JBRn3&&+(RS!^Ws7M0k+kxr+u@*_-FcSee_n_(tcWNH!Voz zYa*-oPPqm+E%)d<*l*7&X9)9DQ;K05!e^r3|6IyHYP9nkgb{@Qe(~+oDz$ZvKh&2CJL_bQb)4K%)5PgQy;-O}0l!< zH4?7N+I%Rymh0be`zK1jJ=GI){z-DeG~#Wh6AsT^Li@Ji0p||j7~a9bKPu6E;??#) zk$fRtNp(An7t+9Qe|#R>LqNwL)aI3Xg468+kM=TbM`pm5#%xLDHqJ_U6N^&b_&q6_ zYswS6(SB9aUdCNIaQulzYLjrhLzgy9Y15!Kjd`UrU>id9An!KN?|^Yz3U{RIHEmIj z*srwh5c?I5K|d{hsir*wTMfLM3N|k1_EH2V*!Oshv6e6CO?i?uu4DylPG~PZz2KSe8ThYp%SSbx@A0*RmFaa^en+tPbFeR{PvAE2+DmxX=50xh zEKa0HmLv+VgKPjFR8)5v{8J{@aBLRO=wb_gJf{JMh@D2i0nb3>_LOGs;+W`~`GVu> zZ?B{LIn>YBdUU8QPPSfSI{p9I2_<(2^G+^zPdi$`{IG?1ZDz_g;9pSW@Bdn^thOK=17@uQ<-m2 z9^#=# zGb6-y5IynK$Etfj*eyla)*!Cf`gW4DmKW|7(}^@HEA8Km4uX^Q@L-Y99|7IL|^n2iHEO zLg+*pV)`oogsfYKe4hY45PO(4pTcLJinGRbVKWZ7U4EZEtc!IJKl!*jI}7^!0V_^6El)eAsh zcva7QQAR5d3{!er*A`$!72a$@?}0nnrGo!U1E3)of86U$`5R%2{8q0mGI-7u?(YAU zzDw)_B4(yDPJ3xJtpndZ(Eh<#e}Fp!&@37YkAKo`pIm9b~Z3V%X%LVlo2kG17%p5`Ram!&%cenSh-F9kY`OvP+ ztNivn!7#=80$&gZ+fQ%={)LbAzLA7YCuHu$w0FOG%OWeVdXa_qr?_MJJ^XtFRymJc zu55Ki67K2eulk}5J@MaoPjC&#npx!p3JUF!@Tq;;s-E~ZUlq8b9mM1~L~Wt%*Dr@1 z*D8KfjTpTXM1Rb&k|_UP>Dy1`k5V~9$&2O3PFMa_Per?@tYZ8y%+19|&tFuU68~!> zAzM)$SAK#o0)u2IpV6%3BF+;YfPTAndoRn_Fz?9&7g@7DQF^b%?)%3xRw+BB^B3_L z5Ze^vab@rsgey&h5J#fTS#n-wYT`v*tYiNt_+IJN~RU`@X`fbdxjAKBS) z33b9N*i?Uq=GS!I+q5UAuxao@PcDZ6r!Q$n8x zS*I|q(|JVWjt%b096cTJ>L=UacOYl0_z11e&#t@2Li~&h>c7fpwKxV1{jR1D_6hsh zpnh9o)W!v?RNOn|OE4dL55E7EcRJANY$*+~T^;-uyY(NVx){&D#_r>B-Z&z}ZGkR* zkMCwz@%eG|^hL`4Df~uyPFU?B@XVfuD=kmsRTlIW+3yU(T8VwR*fbL!`IPN4rn#v&KEw zHTDRdoq={|$?HAw8lU~_dUd;I8qzUsG=vF%G{Tv+CQ_`SVS=SI4~%#<6HbXn(dXf?w_rOPSZ2Qd}nOgPy}q z-&a#)5iH7A!k>roS(+bfS|W5dChC?G*Mg{P52sV9fKnCeD#EimAMvk zq&Z-Yxc_g+zMFxcR63Ii^~&uj0MCKRew{+C6zKrjAZv9M+(S=i(;N;r%L1)zF z+V(}ohGSvSx{uEZ$YMqIa`?j%KkGqbS!spYTpBXxmBxiXSbl0(W;OUHD&Ji62Cd&D z8vmr?ZTzC;*aD_2z;i&$L(RQ$%4PV3W9lIt@5S$D=+cg zlX_!2X6v)P9LJmQk?ma`rEfLGj?rUYVfnNl+1p?XNn@CCj^8e!Gb43LfjyMYs2v0R zb}^l=w`pT-qPKLOkbGfCEHO=;FW&=yCOjo@l;dJ~6(4MfuIL%j^A2?HN@PEC8N!vR zG=>QtS00F2cQ5VbvBH#oDV>Rpv%_|7V;}{ZJUZ(gn%Ri`sqh;52nMKFR#WJG1!v)1mLoDYYM=G|U(4 z1|Ayu?!DkW*jrQv>kgd(wNo76w|%AdQKP+-_=V!5MywP#d(5MBX!jiJ&Ugc*_G|RN zgm|*#rMb2?<~rLGD&@O2#FJ#%L+3ap#BYQ5Xik^WTDW%yrrGRduPtx^V}VY{qeX~! zZguA2ZK_^soi6LqYb%d89Yt0&nev5`sp1~pxDiTyncf@g!}f(@Utg!Wb)xAntJAY) zdJD@)IYWs~%33EQFW79u0=)^HIfHHu+c^zb?;Gr2&>r-xE42bL?lJxNVcg&LwB7K( z<3mEzR+Y(m{u4MCRWg+xSL25-TtEEsQ2xIVBO_R9UrBp;Abn3ES&r(`8n%><=Qjy! zoKq{+dlJ{TF=U~j#PD$6?T!K75ME7`JK+DJ^+rrClhPi<9VC5+1kb8TW?F$jc6nFkH!_zlBa|r<|813mi|Q?O!UtWZ5oveU*C~B^0sOCwR_EA{J)kkmdVJBt zj>8bSV(YjUoGrd(&aSQMjf@K?@P0p|^*%~+l22FuBR47odd5O#=8yT4a2)x zPx%!Z|4w6TdM~wwbK;=!O8N7KE>8LQogGA z8t3Y}V^$5xLfJH@Kr2e0>)LMQ7Tb5oeO?Ln5798(NseVdK(7A$dY0jG5{beg!u$N| zRYg1Cue+v@_732yT@TxdT7JtExiw`L!Vd;~W#R7T>xlnWp8rQl zI^u&j@qJBDbYBMqE@^>FF7=yFaDk5@=sJ()46uJI_w4s_8qJ;ftiKYz4WK!!^e%I* z8BXnKQL8L^Bm;W#!3o7j%_JEHI&s)Ge)rOSnGnI?QPIg69RDzA+ZMSQ;prx-awWWeK~U z^0xo>mGn-dCG9o7p7NQ0Pwgot+DP;N?6rhltwYzHNY|&sZHl9-C@{wTZ-dU z(t0KDCR$5ySbaw)>;4Wlypj$GtbR$bN{Jr)31fG)PYwdDllz)1tAhQYn zjfKb7^<{w#`3kllQXYI*AnpY4{ifj|rnl|+Uxa<9ls#Y8$1ijzryt#U=a3rTcW8V~ z(8c5Z^mBMW{deZkpyTu7?4mPDZ*1fDvq~Sog4X90WkW@E@_O{~D|+?u{nrTV{*`2( zHS&?HYS0>aWSrA!ocitREk?{(>wtI6j?a!bpdB>kA=+T3v!K6z;e#&~_~O?!$LfQ`+48r;`Uo);;$Q6_=Xj2)q|9 zRquO)(P9hxy-fPy_X5VQ9yz4PZ!yV4Hu~?+S7-T{00Rcahl>>qmij$^XK**i28 zwzSIjuuS-Oz(&`1F?BI0-ft_=Nzl?atpRD0qRTV`{|apOOws&EsW^$@6`Xwc=o!cJ?rxK)#fHT8+SRcu?|E_ zLFcBMEj|^qZ!+F%`g&~gT>T~9BlVNHKF`*n7;;;pY3QnNR?d-c>;R^g}43KlPQ0&HCxphF6 z+?p>oJD2u*Tje>kxv%XW^p}W%1D(WSg)4K13f@K(uDmL^65zMdTF<%tj-=NQ3-#Fp z?ZqKJleUbZGpS{ZGgjpO1=PMf_REPM>K#L`T!ORj63QDWpwC*l>xwo8(m1Q+ol-Uq77~s?@AehgbPL|SYxg*FT}D#Vdfqn|XT4!wbFe#u*pB#r>A(B#+Xax-Xy48Qe=hs>(|d`Y3*7Mj zGl=c%y=1eEcg47)UVmN}$6D_`caVJ)ya)Qt(QT3wiVb}urNx{XBU+qyvTXa$JEZh* z)(71gBNu1a3(n1W$4qmhd2;+~+7~UG_>M<#J?qWc=hTG z545DOy)M?_(V@y-7qrkTIQP#AWv@HTg{`!8p~RT?dJAEX=Q~R0&5;vo4H{tFoxOXq}98CZ1SgrEsHCo<~45YfJ$$jS5 zlkkCC4isd5aH6}yrknFi|9J>wTKzL(fCjf z`HdcoWjV|BjkO%3sW_OT53SjZ!ugIrmGHGB6X|c9JKt&>=u53GtW3>H&v$0l&UYFL z;a4)wx~+s)`CI~Q*U)eF)thW}5KD2psp4!Prq?ah&NTL8+2+hFRQ{Uo%c^_tm(-nB zx!jq~^(Na3y((VLeEOb6ZOlR3Ont27(+bm9A=WOUp+~^I(>z+dw{$L=l!xGaP;4JkGovO!L6K6?ag<*Y*#d&_dNFN z-t*==O7BeN!YNyer0i;AzIF8Szw!H|lFAn6n5klchR^fcH&t~mxT(rnF~|(tZC)Sy z4%Z0&Y*UFf_N#c?c>m|xfD4gs zy6<{=>n`*xa4s|RlwTsM_d}2J?WIfE{H%U37C-gnsqjf=M%zJC#Z&dMO(^zU!j9f^C^OT$z}bM9T$i-im9;JQ1{yE= z@_38wqsH>mFzbltmmb4=N3|DLQM%*Py%zRnRPsH6Vye3$fHQ#F2n1z+P+F;{c5^YM zm3niA@c$gzfB4Vv&EqjKUTq*eg-+-#*1xZC5`_WwaTC2(y^*NU=CglN_)Iv%t1Vi1 zXge(ZwMcKV$ny0IGj34Dd&(^pdYy_A;7N{bqseXA=MI9-*?d(slz z?iBkMuvr&;{1uI_k;<@-Xk$UzP4`}y@DYtJ_0=Z|r=PdLann}{9q@RH?e5D46?^Iv zzNzQQ9?7A4mn3kfQhrl?x)U}H4V1SQams5FHmy?{|KXPr=h-)ZIp3O5lF#w%;1}DQ zQv{k-3_ZaNDmUbo`PMGIE7Mh;&$cosgS_oJzlpZLJ7_-p)koZbQ_tzjU{5Z*q`ZjuD^A@^HeSGkyQ&%U+YX8u6#uOjOu;#Gu1{D+JG;3#B-%K%5IzQR9}$CZIlr0 ztTR_Q6@x=IVzQ{1vs2iIw{ETo_z{;;ZVj5&u6})j_9|k&$sI2Z5#5ZQQG?R)wsf@!u3O^ zXxu0J38eF3^&ru=3txvb;)fp;WL)0l*#n9P>B|=_@Ar;*xx8au&N{WK3-|H6_EAMj z-&tLx?h052Yk96~_mbt#?&ID2J#8<+rwe4N{hs!hY%hJzVLjt=rqRn_H}CG}dbOYT zb6T+t+`~SO8VMh8@EcSQzR7`CxFe}QPrW^dEyfu7t)Jnww~d(3XVxGy;R~NPKj0PH znUJ|WFrNPZ66?x#YAO5T>V26%4WhH~lssO$P&IuM+_zp9WIylUeJx?{E}HM0J#4)w%^p9YM-{naBJdr3pQc<&Ita|ezN82z`>S&8mUP-2JX2_5M1Idq!qvuL@~ zAGT;0>s7-(c8H%Nyv156UNIgx3LZ(*?K5z1{yyQ$D>Tj&?T>ujwvrR=fm*^7(h`M; z0~pluc+Ee4zjvK0KIra^twC$#nUZJiVp(RnGd|jvpKPSHbI<=f;MWK~&?|f44Li}1 z=O@w&iMF_TNW(c^Ol`*Y=i3^MZ%+z)uJ8EXWFOvWt1$i4@owf3fh#@du}j?D?c!vk}<)0oRm=$R$`x@BUyrgVUs!nu20$zz@$NJS7Zpaxv6mfdR zZzJI5{=NlzW7FjW+n7iEPu|sk884`3)f=FloEMDu;{|_)SkY8>q`>IWEV%r;-@AI$ z@9GDOZwV}dlHW+QBm|z{RJ26tRaXRVrgER1P-XOfW0*>LuO3r&53_!oErJr}dkU@xJ1(eZo`!?U*XJr(ZjRsoW>h#_EAzq`?ET=Jsov z+rs>(lhL1^z0u6_y9k-mCwGGIYv=Fh*N*+s5p9{Szd?JokZp7C5*f?28Tg{#=XUn{ z91?l_xw?Hl_paNE@iwy1V*fVsMjJMwqY#gn%HJJVZ%sX-Z_0hYoAt5vC-L*+>Y;Go zNoPbM?mPpa0pb%5G?B+3{zMUj3TLW6+{$MUXfn>w>^Jk4EAgPvy(t>FO;0{rQ)-9r{e=AuWGsljTF)?t|SK z*nYThgYFf!RPc=nIIs=8zyff%tW11*(mV?*x3H}`?E16)IM=+k^e?i#y+|@v<*KU5i>{CMg`7e8Z6* zU;01TsHr#*66cZEO3!24ZtzJc^IlSwnLz1on%`_MMH$a|EyaGC<2zEO(Y-T1zs06> z!qvWQ?Lav?OTX!st5@ablm+^fd&zB2`egfU>XTu6k?J!kW$wxv7p+Gr-qHpsKeS2Z zxAz-2)&=$bl0VWN%f)Ieh);*IJ9X^gR_piDk5}wKp;yP=n=qvBnD3Et4MPGwX|&f$ zw^X*3!f))B$`*#%-BRv1Vk5ByKKYDhoAP^nD6XS12P9V2+pcBsQJ~W5({zZ8M!TX<{fGjB_Q2N;KYA>w`F^&z{I&Q*>j&32emdEbH$g`L|^_IIneJYn|T(iCV+ zG>z4?MPtNAQ5o@oY#(e!oh#VZUh&aaFfE8Wcz2Gqc5M}R(iq`;8}_szEk->5YRX&I zrRdzPme+`;3{Nic;j05h9>h*+b>1jJEU!rVREb*&xde8d9=!o{BDLVvPKK9G?TwPV zHrLln_#`w`d`G1ZTz{m;4=nub?54F1$~uLwIg)`-^@Ef)s4>NOhCG64`l4%8y$1+3 z2FW@8vot#;`A-wCi?}r=mC4O&dxE*v0X#NPn`7kn)8K^)d;6qyvqw-p+}!{Mm?Qf0 z7`IwJqd5h5SjAoZPNl5i=_KBu=#i*}wFeGeaJ`~8j1NYF^`z5pRz7p_4x|KdB0f~L zP5fF`yW5JDtnuyriY8*M@Mh!p*Naa|8pk)gdvSpleG$rSJfZ06($BhCKJv)@2z(?U zf0y`htk3e52pU;HV})M?Q+&&Lv^(LamvzdsK2UZ3)~$GJU1B_(n0h1=q%jrH`H%mf z$^Yy3!-nkaeO1)nbYr{R-%YmtNo7N$@Ol#7)3DtJ;}PK<;uVzR-i}~}J1~EE1JRsG z>4B8yr-0fE-MuI6TjyonE241m(F3t@HMsPy5QddF%I!YZJI{& zlQh8M2*0VO{f#@Hkn#ySesr9D$|)PUHYYpHBpw6lxs{h&UQb&m^57S>rw;qQ$6K^X z=|P%yu^HaM{<{m+eBlRG#ec)xj13O#iv#TQgx4?MeS1xGmVKPNeo)!psg_79zoseJ zb})RgUgO8bol7IotMBU3tLG6cj>>)ND5f2g@U|(R;4AO#C-MDE4&TpA;`C5q6r(oM5FY6QMF&q|9|vCM0D_sEkhZlHaI#^KeFR zxhwW5`L&p6=5S4WImhDj+6kuav$v&M*q+T}My;xi#Pb#=(hZGxqk_13^sO&Q1&QWF zl3u3-eoBmnls9=_I#+yYY)dvv{T8l|{o_ym+JXN>*jxFu8(639lm3a8y^VB@{fgYc zc0_ul6*SHEH!gF=)3}4FWvm|wC703KpzJcok2;O5jvkq3`AJ?wOk2!tAkD3W+BqQp zhk{1R-e$BoGbAn#^Q?4kj-LWPb(s?(SdTcT13qTU{Okv+jnh5GCcB3HHxm44-Oxtr z`vvwXh{1%9Xo%A19%N=4Uv`9;|8l(^%jkxl`3Y z%06sXIPN_i_UK%i{~kJDaIRo}Z*~=AU{9k{8TjKnc-7ha;6uuYb4)Ato%Hk4kiwNH z!R*d9=dH$6C(dZL=>UE(AGFC15g)|m=)b43+19fDdq=4Mp~_{>WtSxEM=wxz!^j^E zJ9*$T;aP6UM%!yNrL{h7ZR*!n-~XQKzI}Pl==~48hJTOL9}0Z6;e@aF*UHCOULSv* ztG?i4%&qq^d<`HLH_g|dHD7##_rsiB-%;JA>W=r|g6F!z#7q9@lrZQ_+EbNid$GHF zRk$SA9#y8&yp*nYfK(PU8J#DA{V^9_Vnxy_QD%X^{44R}S;d4>%Rj zcbKitffC@&11h#E!|VYkr+Sl}C+lS-9^f=yv)m&1fh(pp>hY=SuF-`j^#j*i?_=z7 z`EL*{9CSM3{YFzI`Xt1m6kK|s4{r4D8$NNVf4dg@aS8Ncs_(N-);Hec)h=cG+K<^r zMYV%(?-`pohAsL4-ng>eT*3{uf#;aJ%lI8He7m^5R_gRs&URX#nY2FqF0N;NRs}xj zg#DhfO`Is}SEtA2?mZqj>{ayIrg9dqwQ8$^%6j^>^){8s;62O-ota?h>0}vwO!|QT zd3N%V49+d1m&Yx4V_d->b%ig_E~7U4+ls!>seEst+yt~I_xd=eAh+%{ck*4Ax>uz2 z<==GH6z6gL6Y#g-SHZ_kp!R{)VpB z^{ZK1g17C13vMG zS9&-OAaJQ1W7lqC`Am=a1Aei6;`2;wtKNa#p}EqTcqr|z9*6o1! zHQeb_w4wjnevQiDJ%22uY$Gv8cU=L?1}$ct@{KN*O+G4Ca1F>iwzH2bJrvd&^BzI- zj)-00m(BYzn%_h!k2Y$v=Dnx5cixdm?4lew z&0G%m^*?Ox=C~@r@!*_%yYSA5b`6aYx;M-VdWiPZ{PsU+PUsVF^*o3#PcSf8m)B}t z`zI9-+piP9N&L(u8?+2;j=n4U50u+(1a0jbM>rjCsr}*k&cv!b6|W|%t&6EGw;i&EbSUu?GFB5+8ufoU~~_^XT#ea zz#nI36?|L>y@h@Zda3@j+3~41<`M6Vnu6e>4IriJsZz}6Ie3g`y z^y*J=4=|j@0leqCmwtJFzw!vji^W~p_Dp96vH)l!&Pvc3=nRMl4>pb1L2^tx$EtiZ zneZt60sY>H*kP0GGMZCF>~qUF?vUDxYl}jesfO~A5@COXlhcrYBX#*U{EM@n#Ktz~ zU=I7hz+8u=ce zlWcH@g)LVecpxJ%QRSH1i$m2#tL55wgHl^^(G(qUe;w4v0aA! z%*e3q)thYC?!!h6=S~B7hpJ}wi2++R;GAi+I(0-h;I|62(altCT% zErUN1>~Z*x0KIy?r90CgXDZ7=Gw3`Z8U3nvX@8I`3-H@R5( z4L3fbyveMK4{1}CNSkh#RE~qp@Uq9aH-+=SYY;4wcq6ztH7MC) zg_5_XpkwvuA2}F{N4G>TJB4E@v!1f{6{jR|wS$PK{re=V6V4UinkB18uD7bh#;m_@;J&hYdtX_+U)wB;f1hOWh|-OD zr0wDVciTKi_N&VCQu>*rd^fs+W#Z{ykgrz+O82Ta&D#jp;giTf11SFo1nVxbuh=en z6i>f)d{hoGEFe?wfxJYtBRwWzBW_x7OTPW_`C}toC zR6ZzIZdy%iLv)Jr#&3>0hbh1Lyd91~|F^)-#~87h(0xyC7_J=TT%`n7z%S7>XTFu@yq?X`tUuGmiW;qP~6m{A{cmayS_$47X+>hI%h_}~Ez)sxCE5A+lte5UMio@ZOiR_Cs0tJTri%69%iqMf;M z=xVk7NqG~G_-c5!4H}GCGM}tdau95v@oxTTveoh#i&O6XLP_{?rwsfz$w+g;2j0`g zS0DPuJ)G9D(8-5f(6PYDBYGX}Xmw)rSxBG7^oi4_ojxn+vzk5$`mCeRL-cu+K2OnS zJ$*LNCrO_z^w~hrpPlsCO`kpVNzrF2eH!R9gFZ9qGmAcr^qE7Sx%8QqptFf& z&oe$(aG8sJM{7W5o3)$faX!KME`pzzV7ny=Kc#@@8eXqU<;Vpx# z7i>vC>F!eLhlYJ?!q5U+)0uKEE{)Q=UW=@_x^EB+o)mi&-b-A+qmX*DOw7aEj2yzVQH|=MnV|^+*);L3( zGCl31?FX~k030ehS_9z43}a1zewS`HHw6&i6tHMIZx8z!E223}+tRydqu8_5UIX=A z2%Al;AN<2pdm)p2FEgbF6P@WjmVi<$ilmIBc&Tzb~_UKY~7jw658Gpw2SECycv;(&5{@gT~GFn*H$XOn2Q82VBVW29uNXvQTp0{@aa)NWNQn&Qv4~$FIuYf)tNcN_?c~-KS&WO4785=NYd1&A z&!X=Qot+uTT3xa?v-<;20zSsfQT_cuXp)^)^zb&RQ%7a6mrIj9d|byXgbHo`>~cOL}~-KyG6{r^HwJ^(D@0VZ4!uIc&>8d@9k(MFU5x zcM~5GKMmitIMaq1TYB0k6Pub0=!DVkY@jh!>%6n$@Uc`jTt3S-PBUJCV)Yr4wv6(fJ`Swyf@Sg@h13_vRZMIXJ zu%j@k&4XEOhNMj|@e$v;RJH3Bn-o{)fP3TW+&s34M4M>aZTA<{E^Id65k=|p>hH6my>7IGwjjD{}EE!kH zWon%flV_Op^`^89J=Ah;KVlJI{4DZyL-qekR+-<(7~D6=_eh<0-8wSn4N?d1J(fwC zrztIajKG&!xeAxC7FdI!X?4Geyp@!vXXOp1yuVW3ELxu!*2vWd;U3ITHXJK&Tk3?u zZLAwQ*rehnLI#fA3ETS{Ii6uC%DT7oPyL}xP;eXZt4dB=?kv3BVa&J!Rl=^o& z&zLpe(v|H3?mQ~{-=PDpY&S{sz7z8_>AWR)|NIy8E%!cgR3&_|s(poW-;r_ygr=cP zC6x(EyruQN5a07`$^GKp$gY&aeS`3}BIxG#`bWl{+_sdm6F`~6xnC?(MP)Wi85b58 zWWnNH+>?ICYj380Ru6P#)rbX~Lw_XU0se=?PPW<)9U$+8@?b>y-}A}5=KGXva#ZjU zepxX8GrCoLaO#hEsBzw)84G;KGITGDhV?1a!e#b}4J5`90*#aV1XFah5v{FDXI#I* z&Y^JzI9=KM6P~axm*Yh6KA6fj5t_tEg56_^(gUJLbo0SSJ#<2itvWAuHGpAha+c3`%`<__teB%8uqa`9%hwgpyU47z{l>RJqJ^5Oq5O<(O zjaylNz;`SQa4sx&_DdZa$0O@>uTAyr>4abThT3}<625$ZI0)KGhSvemFd7^CyueHd zO!i4>B4r0?9JFtb}BN^q-cb?;x+uE<(-BJc;Jj#LQ;5T$)d-|1~LuCsnZ(q;5 z07WZK$)Xd(h!*&TJ_N!E&p@&3=eGjk#EyKt^Q85JO<)n*Dc-1J12hsZB6x+ptvAl= zvDLW48|sM>K7n9gmY3J#%k5rT2aFfvM*U!;@?r6B(dFlgAFF>KSGKFbA;@nbDhHkU zR?xk1L~Cddjvu##ZS(dRJNSEc!-4nq8k?0o5y`Q-Bc)a#PV}ZR;enjw(FWTW@)`{0 zn0-O|4jKXPaE{;C?sPS7mN%@E**_5C_=be<4hdgLVGp*MyxWVplh|J7&Di;qhxfwP`%X)Ta-8hNpnz{*FSuNA;NX z^)W~I?7*J9#3FfJ>;=pp9pN=vdYHzh!>)6Q>!0x1@uQb9&r&CG0GMB=dZ+*LBQ9I7 zEpgMI1sooz-pA=xkP8bq2IR%At#|zi)hFn}55*@j+L}ebC(1taNDM>Zh z;Xpr#k@VVEJQ=qP+TB2N8%c9R+=FT=cgJ7UJW{Toj>btA>qcSg+7jpc&*sZ_;69)n zFwEwa)P1WO%UJdS4S#p6 z;*OxrV|toV$Kp9ow%>%FJ3f_Zj~4lF?VJ?5Nov^%qa@S{uC zu~GQJ`;Mx;e;Q(BL{@T}&C+I6+H6Bx@d&^7$NXL1_s8^q;>fkm7@_g-Z&&oMf=np9 z(h*+(`M5*H*l;Ec9#t$t<}RvRP50Ow6>=n z#$2ukO-SFtwARHFg(KSqr*QxGdO!R^xdCUWa+u>Bu_u^CYwY6UcR7w*tL5s?wq3R_ zv)ky^pFyXByRzb8UHsPE)o+a$P-K5y>i$*gK!3*i5`9++dNk-v`q#OZV?g%8dp3=G zufTf!I|Z35@ZKCT#XeDf_EC1Fx6S!{iCWW&(f*hx=%pC9>9Yp)aSk{;}MtFCC`V`UP6^ zJK<9aK1GMAwnxD4YQKID4L^Cm=g|KxBtJcx)o&y9TPFSfOZwd-{mzkoAEfr)l73&3 zenF1`{})cE^j}dKTgp5@zc(jy%7=OUj=0sS%2(sNn#T6f z2?gIp4CkfJtMdIAeeWecM;oN>zk==gcHxqVc024Rqv~yuX5R0xTq^cZi_KQ&FH?@N zy_ezD^5)#d^^9~L+hCoSi_e~(AY zU!3)(?kj)Rn1@*C(VmT6lxus8D=heYg8!T;Bj`-;D6%FHEuGlW%J+GQKY_7LtX=LP zCPV~xJ~T$$@8Hg93C2mhUC;|3BWs*!nR+uw^(@4!8aDF7jHe)CC(HBf8GIL!7+D3~ zn3)*uHFu;Z8m$)U;XNbj!N&^TG@|c(;@u~TZB*Dy_#mIE_bzNV%l|=dwwL$Hf6iAF zPfd9a+C5gT-b|vs2=(>xQ(7h>_dR7E+{dkPLZ|kYnM!5ee@e*=Rg%8dOcYNw*96c< z1IHMNAwGxo?lHCBo}qRcq|NaJ@9CH)osVPbw`pu)_|;IIDp}w0fEm@p`@EN_%*vXz zPD1($X;JH&bGkAiI{%*<8L;;n>fKw#5!KgH>I->0&r&vQ>aAUqRU-Mn#M;#^=RVmc z&-Y=*)kA6>iKeN3ZBdD=X-LLnOo0tAjkzOY4Tira^Im7~&|KTraW6~z+VdgpuX|aa zc`4P`vS!zL zt*c133lR>NMX6jvt7CMman!qy-gmdk-sAf8Fu89%iB=8KhjgT=Oo{^PfYe&ek#e!uXz!mVvXdvLB;H@B3!?K~&>d$RHiDSw*m6X580 z!Ow$K#^61bDxOC8iSl*A>j6e6KPD1$ZkF<}Gn+{;_778ScnaJY}#eVf{kQQJDT>At0$ zM{V99b$esQQfv)EXp{LK@M#vSTr+F$K*hx&f? zT4%1%7uZvy|Ds6Beshenk-UTI!(Rn_4H3?;Zz$jZ(I1YFj5PR%a?^rtxvaDba|`=6 z^&6C4*<9>5Vx@=&IjtWKzwv-t3&LOa@j-YSIG1pJM!#}frQATlb;O|pj>E@i{jgp- zI*sP=3f@?j_tmXUrgYf9H4g2gpRk{hb_cP{(e8LJY~dI|G!JJ0eBhkg+s@cAibhW? z%(tuPymHeoq4W+adsn}FGP9mlJ^bi*OS%n0ggx6?lfJj{%6Do_@)Yl z3wW=J7y@&L1njP`8V6|F;WFaiUHpmQ-dkHVe)Ou|ccgUA9~Iog8_>wGzA(z8dFX^= zz^&VbN4Z9D>lak-7U)1aR`8v7hqUt{(HQ)HK*n}8jSYP^5RBZn(LMds$H0Cf*u6w! zEz837%W13+NSl{HHzebDTgGvwjAJ^LfevDQ*1G)jk|UXw&^=|Py-8_plvY4^4Sz^= zS$VHf-eO8??}uaO%9;daO`2sr;7>E2g-?H_`gc+NM8EpOrTz%1f4S604A(hX{r{2b z<8BaetETzTRuS1YeFS2)$-7Kgv(eNvG1)Jo40kl5X>4V3HO(BivR zMXTPLe1!Nb7ranVClG8-~%k>w54Sx;it_PLS#NM);t$ZD|wdPc^?oYj(hE*WetZ z|4}`fV&2Nw%=|8FNIZq~zoX6B$#w5_s+n(%vo9OK89p6hi@RZ~&wevG(XI;P%@y%F z9SOURc%7Mgt5x6F>J$)7iF?|+!21|F$r15Zw#kGq2b`Ul+f0dHr^VaY&gm_Q>GxIR z!%Ts8PiKYj2gox_^^WeRPiPtVjhH$jV9%s^&w?#3cxB>e_7IGeFNsO8^YCcYFWx5X zedtgI{i1A;cplJ}0_fvA?zQ|{3*HTso5cIn5${vqNc=>Y_@KD5sVSj7Iq!J){$1~O zX7qDqZ%{w*k8m&iESM4NQTTh*+ZdPNx5o8}uyLcDSF|6`B)H9uC|?$UWfZnCMvD`s zF?C+DFSEVsm2}wahus35FJa1Cn(~;xO&zU-jY6;O%9-U|8Mh6{e0Z-q1wJaMon6w- zZV&22NKSt}br5z9{mNfOVVe#tJ85E_HsSA9!!%s~zb=V=Qc@ec%J(&j7v*l`hfOEcXqxpI0~`_%)J! zbSuFjm|99{i0^t!`Wx`8S_PRdPB?-04y#}*>kEU{8O`a6$`)rd`!JZ^243}j^Thzl zggK5al^wCkMj4EC55Ey#;q2u&cPpGOa|!hUUyUurA^OJn;diIYY!+LkRZh?h+S++x zJ7}zOd}b5j@gnE4vzvJwL1U3~A}i+OwBc%BVlPzHCDLcHAG}qLNjzE5TomvTFGAnW z-meP%L7a73w_zlYWAA#)m2Z(A-!Hndy~F$A_{APOm{79MY+A>koU@PVaxUU~(VPZR zy%f!>ntpGk-;ojOcNNWPLm~97OA+fSjW=G|=~};Zyayv*)6OoJENo++$tahU^d!oi z(QNnmKdSG4+>7-2Z}cnQ@4vr)e*gOY`#Zh&Kl~5*#Q#uF`6`u<{i~a=^EpL%r5oVO zsHVA?=2%L3rG;5}RIk)q)m)sEyyAX&o=TO+u&QlyF3nSZvvk6b@r1KpP5j={{|%K( z*%sStZua^6rF$vePwAfi=|SKll^@e0KH^t7Mr|{%gZqxh(3bYR6}Q97_pD(Irz~%)YdwYThV?wwfPF2 zX%)kJ>3Zo!ivHhCo5f8BaDaA*U{F5J{dXM%S&tIh9)2P40;YIx3_cyS8=}>o+IIGS& zsNSX*(EslQLK&o8)1}&lj%cEu--kc_J++A#5aUm>ZfhwI@ikL4mRVUia6hF(-nr&D z?&DTCi=I;aFl3D}S#Uy``((^VsqD<5gX~z%Aoc+`gYX@GS-<;Nh4YVw7g$f}O2%AI zXD@j0M`?d{{N=^8cE0i}1{oIca_>H`)U;7SIiIharTD4o?Eid~^68md%qwp2e{~#(?MDQUga@{tuB==qHezl(9`N1Xg_j+VZ#76+-n{(a4% ze%!qcpR=>fH`%{8d>hR&{}x#JdH4Q~4KJq4hN}6tpFN1@+eq`qd@;r?G~W%xCvBzq zZlJmTzD}LF55smQqUONm>fnE175fK*pDf{t*jLuC-|o)9w=Zb(TpDM8JFl`chdWo( zSl4F73;E>&HOJSfpBLOaT*QFT&c^AKSKEDe-US8hLhAa+!0N zN5OulG11PBITgM*U~441)TdUnP8B|Y>gZhg2f>zjOb`449m6{;n)?9a!ChaPZxT<< zaq7WGQs1zfc!T>^HWYx-#Rs6Po`(CIa@WRY4s7EP16bxgesp`EdwZYQgIy2U(mY;a zTQFrC@vOAJkNr%2u^#4smDKyI)I-{%0u%W7M*O*dX02f%jq%fywD(80yGq!jsXgcf zrV~F5|80L9dn5y&N65okH;FBWhu;RaI|D|-_w+KSVB|i&`>z*22q>Evt9%3iClR-> z3i06z5Z_n37&fO}hI%Wl%RYjSfi&9+v^hU}QrUeTW*>~poTq3#YfkcJ3-+CB-&DR% zQsz!4mv9KS#yGQK2Rv8i@$<3DK7;*D(|E3vc?@71n|5anot;K+tgrI^b`P#!x(g3< z_slay^Zq5(gD%wdQFpt{ndfUPWg9m5PV0j1P-086O*PGRx6HMg=IZ9dPB5im9=fGR zp9{KWU&-pDPK#O_%J?m~jr$jqK6)11A#<=TGtCqFdiHfMJd0O+tFpfUYG0GL$~ipG zWsZ_vwep{zi!*l~%UzlQU*^l$KNt2Z?lor`F|Nn`6JNw_u`flfe5MZnS?x}U=QJrz zvRb8IkFoz+Dp#h9e_M5AezP5-@u5C^CWewEi-pf7KD2`EFzdo`rsMnuTzuH^nqRoh_Pw~x z=bg}Ehr&@Ozn)|$Gg|81y4V*=Mgu7O+ivAc5OlsqU<(^cQ+~t#EJ*!fEkf|A$1sR8 z41x@UILF+9FP*#eW(RNmG1pl}Gr#R;-2&!)RTqz2y&pe&pC`H4hEF;ghjX6P@9~ca zSyNZ-vMs);=AVrlHCcFIM&f*z3Vmis{Oj`FlwN3^Y@I^XFY)}A=ZsCoAtP3bGJe@J z&^ga+Xm?asbD4CON^ix#gHRuxlW^!an=ckGsjP>qhx_krd3-dpam|pIKG?FpY{Ii#0U< zc)u~A-#0XkZGAdu%(JL{-!;l-=*zI@6aUCqj|#$@+lXg$;c*YO2YWHRw}Pig18SFod(WB^K{+I2MY=5C2UPkqR>p|uJ zLZ|%)`95Ssc^{5pI+0*MSUo;}!pg6aO?88Y@)f|m81s}P9O&_^XAUWw0=}bC_iuiE znFCv6@vq+!gk7!KISND{; zgT5Eg_lxPHGpLPQiQkL-*~!taPnSimu;6E8D0I=_4R0L@=4m_atY!EX&wh=cV*o9y-&aE zFAfpii&-|!ql3o(ths>gsY_^nxmok`X-{@xZhqqXaYuPj{I12T3w%{Y`E*V%D+TP| zG$#5$mq1MjDO@F9M06BirJq0F;It(BfoW@S?OdudOp{e}I6{pC;I=V+fYMjTs{ZBlI9lFe+ zcC8ZPGxX#<3w`mJk}>v$0$uqK>N6gRvH#02^g%QqcS;o!3l2V?z3lS{I+ZBi{Nd4p9^b_ex_*b@!)mtj8{_%~sdx7u-i{c{*_OP{Xm#GZ z^hjoO_!Z^L47wlq4$)ezV{L~r`2L>Y4Cqh2*=l*Tu%&4&sSC`AlTUNHARG?F%L;6i zeG_-XQXYQKU3}rUN=M=EA@tY3BNTjwtX;baMM{hK; zfN69cwc(dog|oVq&*raY;pLUHm0ft9(d+jDd#7G}YURpXGL-ok_g+%3p6a=NFBbem z`AEW;tA*cye+ul&Xk*mE-o%>dG#0csi06g9+B>g7GA}m`GJG}8RGQnyta?hx?v4Wh8r7 zknH{Won1ZW)gG#^g_rXf3>kAY5@Wc(`H4CkbG0e#+X-p!Q(Z&GY{-}&${MSEXID?$ zMi0&JP>&1{vGC?-o8T(warDj%%chtccw)dC@DGWv!W*2OxNxmoSveFS_IRc5sh*#>ovj(e`_4Qd~I z>u8MT+obLQiN|(=Y(F1m|2y=}{?37G^FQf}`_R2;4J+6mK{o#9$-69!;leCDadF_6 z1alpDO1NA?G@jOx=+8n2`B+cJhsXl8&P0EJ7tL8~e0#q&E+JfX^L}z?7xPDGyIN>& z4)4bmPKk`geNzg%$Hgbq{`+1(JiwbM7jGtf(#ul;Kiv2k9T)lSk+q60V0{d>vubm; z>p}a4A7+@(;5TeUJJ&(hZH!nsc;geE&wf&-d+7|-)%&d1-YCc%bz_7QP5YoRlQFaM zv6g>(L-|q!?S#)TekZKXd&XxMz7>EEWJRj`=cR{w_8#b|N%)L+gKXn9wimDXttD_O z8s&E@f9URA>zsZ#b@#Ded^*au%Ie+YrG!s@EzUlvz?U?Awmc%XVSL9wR{fE{rLTiTlOp|1HTy6@Rvw+uV;TvOMBiD4nON~26x+2 zt^*F-kbb?p`(;ghm70j#P3J9Q7DHx+|E9C#_mHeM{|%de8pA{x!;LhC>^3)0o6sxO z^=mI9^>nFsHPv&=xcxYUpD1%!S7pLf2LDs?e+>PHEpiRj)1}Utpy~1(ykV*QK10s$ zg@qpbY1jqwyW}X3a}>3Mu`Z#pK2Pl(rgH1YcV(8suPyzK7pc2w`@AE3_5eO;Yr2f1 zT*fs){tuRQfb5R+8cEkF-G%EPU`I~-==o8HGZ_EtT(-@5mj3UAO;F*}$w%pvC{%CK zdw74s-@Rj$f6IK~eb~R{pL>1W_$4MsP3`j1n#$#YTx~PQOUX4i1-`)NOPjBqq|NRB zOPhnF%|Tghx^WmLEIq_B!~3V?+V8mWR%lOsy5vw#j2W-!wkpaCdTgsv=Ae|}*t>;_ zmw!w0_DLSCL9s_m`0BHK>W1X~saMW1@K4X3@nNRS^&^1y;3OAUn>$(m1zNJDD8Hv~ zH@3-h4@>+LwmVuwXK&2eo>h)x_dKY|yut4rpNnA48;yhV`Hqm~;d=Cj{xtW#|hJ+m9D=qGGDPMKR#SW zU&=8q=)8WpoyI;uY?uNnuAcq%hn3CqS7a^LQ5hrEF7~7`2jxTNeQci;BwikMua!DC zNS&bA^FBp&A%FK@@3B(;S}Bh*Bp=&bsJwoX^5;wW@lqaT;IC>ol`lC-`7@>bC0za; zw)s)-%OF3raqJn_-?Kq&osZe~_nk4SmEoeO8BBc{!7Yn5FtVr&i8?y}#a zaXcu$iDs2|$Zw)$<+g7|**|4I$GJ*l#U}A5crEOt4^9<~!pl{>5 z#<+7u?He3N#IH9m^J~rXB&KgU^qEJEX4c=j`pj3xcI`h*xP|}7dx`#oCOky)5Okya zvhI|iudWc^(`fTjoUi6~9s{ir`|YggdGpuav&TSZLXBrH!T!$ZgykCYLC%^S-T_efmtzhoa+2{2F&g(@J`2)J3%_{?B&YzhtG4u2tvP z%Yb!O`q`3>_mgw8($A3e=LKFImo82;mT2iX*cc*i2Yhdv<1D->@ex0B3;eL%I6LWn zI_OhRACt-sZ-lOjcmQ*kI!nwK0^pmbi4T|#>N}_BENHcG=kkM9hcX`A6(rX4SEGI}lYUdohxGneeoLpOiHCW_ z;Fuk>A7K-U_(lfwD{ZU;MP5~S9@FA7@SNs6=U1nHm{~_Ok7<#y()ph7zGXBQjAyTm z=S>=mYP*Ho(fGaw@59x9)m|I7c~8GKuZP@4|G|5X=~nM$-97H6Uw}8qS?TL&uPm0n zpB6Z{dC>oD5&sm~I=<}}e^JLbjF)w$GOB$CslWA_QF0zE?x(@n$Is+;IwVUVk{vKM9;( zd+L9O)9SC!PP(6m=rjK7Uk)do;1tY)lb!{qH%@#JPEVis&*2201cy%R3#aE!^ulSK zz^PqeQGF6PHA-IP{{g2lCxO#Efm7v4;B*neY3I$elkO))pIJBeg%kFp3n#!Q)Cl{= z=AJ#oG2{te>rcZT5*~r(8aoNxzWXI`+nWWqw8Sw8HMV@AkG1{a`28$6P8K-6FR*&^ z+%Lj$tK_|Q?*9(Q{TF=^j-&q%d<%VJcGCTn(dVh@Uyg6^H!66cjj(AFN=p_#|*LByZmT0jI=C;I!|_{~bPh)I02>75;^gpWFB<%hRZz+c2N&bKQnloQt3Ngyph; z#G;&VikdUZgP(fh9L2+z^!Q*SUMH)}Bb0AREEC|0zah@LE%?K&tBkX5sYY~5XBs;K z)yC!kr3WZI;OeDHSufS*JWv&~4czw-uR9w4!)dKPdo5wF)mHgOpb+tH%jW{2w__GjfO) zO~YoE^L`|}3G^NQWV_R((;V~(Y!m6uYsr|6sco0xeQ;B1WAW{&XGf`dY!m)-9b#fq zy97U{n){6NI8pan8XLwi?p(D;Ax2AC`0fcbt$=1aVOK5%@NtYy8d zGscN_FO+t9o((cj>2sLC1GZhyiq5N{+{mQ~} z;Qcae$Dl8!IbuKi*o0v6t>yu#iI%nwtG|H z4@Kb;!3go^%ZTS~O42$cC)n^`wc6g6+I#?V$>P-J(S%DrPbvqv#4_IX_IBzU<8k|M z;kVIk&bkJY!>GTviOxWOH|}mFpXMara02EV&fPSZr)doulOb!6>9eT)bXf2%AU@J2 zGXLN1OfQr3|Lh}~`i<>Q3CF?YJM(I>P(df**L(m@ix|@yJO9l zvAVbe_(P^Rlkg$W{V(hKEX@ORSSS9i-0`DrcieA@PbA3f$b%hm4*Oe4*zTTs^+b<- za5><1vbFvp)+%eQ(FXR7J8sG=rg4?l7@JFT;4f#yS|@R$yCEG@9kJ9(P ze)t_FxIRRpP2mm*QN*d&M~K*VTkG*t1JEZ%l1|jqrr`>8#ZD zGZl{f7wWLB!W7tyzRYU@Ip2u!zI5S<{g?~CwKCS2jP-{y)_TE#>uIb%mwmNe#{W~` zMXlNoX!jEFFA}0Te3Nhh?G$IhyZwBXcDkfhQ~B=<&auBe_)2?;Z&PYB(VI=i?I~|% zb85+X8&h60l}5Y2rSy&F?J4-peoe-(SjGVRwR6rs(&PW|8|U}!7xyyg8)Le--o2)IBO>Tll1_x={I0v(r=~A!L5Tg z>+A4VY)J2U|5%OE6=4i{^6mb2eQbr~KlmNO&3eR2-xg+rNW8pYS|iU{@k`tBb!&br3_MQRny3e(~LjckDr9 zIs2J;zWPJnD}P|U{Bq~Yk?Q}i>A$OkZ}{$^O#eH!l9TXFGoa`C5BZElb?+IsnEEoa z&iK=03{gpU=kBLG?DH`)9(TT%16LYj%%{NDNP_4!#$FTI%={2&xOu$0XP>&~5#a2$ zF&^)*dteN>YSurVRQkLkniu-Z(G`z{F;)&{LFv%8~?{6debp3&LeyZ880}y z_)d9QkAJvhRMw4QaLG3hWte6+@|gL4;|V!y+`T*axZ?^atJc z|0^&1-f*=xD>#l=TMr)bT{?}|g$34Q;5Q+YEoXSO3cQ91KHg9D!T)0XPwH{zeb;GG z%bkmTOwHvwnTxwep>uySYd*+(Nb>&YtiH6^<^3MaN_X-69r%umyvg>wZxapuHI3bk z3zoX27uJC;j$sQG!k3 z9Wg69ri<&I_V0qsS>mg62;bkeyT8lNG8#}XdD-~^e6QGR=K@m<@_^Z~Ny@XEe& zXy()I49feAaTa(T#B4|1GoMj|n_3qj`5pnWe{6nY~hGgOs^|%DgM`H29)dvwrWDx_QS{-Ca_5kJLSb>Tb`D zYbkn!@#lY0k8s5wl^&r;VlZHCpaDUny%c;1VB_i)NIu*@_lL8S?q@N5rvFgs75pOe zv}WmmA$!zi<;|zOPh=i$8s3Y1D0pO)tMPv_s#nhE*jr=I-lx+%I*ixTdbriX`@UR~ zt3AmXc*kI0Wi(q#E^l)@ESK+K*&gD;-D_%ait3& zIfm-oDCL71`*kkYMc)8g*dSwsZ`@Z#DP2W&emE=tg?{a06)n2S!1lH zF)nz&AmheM_D6}QMw$F+w$`x2A=&j2+}FJ%?*^{*kSv?H(t_UMzY_=E3&PiRVv#j& zZNkp~4g6kf`}4IM)9_#RjOZnXvtA)#-$rYKxb%AC0$!V+Gm_TF3Z|tGhWM6JSRn2EC<>3ym=2pW0NV_x0RPho6o_Sihu)UN%fq?g0y5{|s zwr0j5E^U#u30L%o`g6QOx?`_a_>ROUw_ z|Dn%O@ZngibOC_LWr!)4+#$N59S-1NoF>^dI*R|Hx?_Z& z;1@qkNc$BroA_Qj3_fiI;@msn5hDaQ#O%WFfY`9PduD^|nMPT!X&$v+ zW3u*4nCjP3J*;nz;8ixCb*t1RBF4DoYuF6`)IIMr&lEnXMwf_OHJ>kwD zv5rJDvhe0QoXH&uUxw0Ipkqyv5evSPL9c`H9mE6NWPbWzc-~59s>S9>mVHZte3`vzPq@0|4&t0M`Vx3vexU#>LZzjuKg|SVLtEfkry92q1N~CslDYNtXAv$8(Kr) zFK`|->CxkA-OiLcyUTmmeO0wu_XyQ-X*hfk7R&GNoakm5H)X20FVj7W7XcsAa6;jc z%hxZUwsynsEY)@4qGg>&R|!mhFLQ1YzQ#S@wy;c&^No0NKHnz8$5#IM(|hS_h}!!F z)jx7v!R0}TF%KEfjXQtK=e;p)E<6dGzCq)}_cZt;I?0~*ASQ*b?hd~pu^v(zS_vg|_ z1Jy%ZLcHzyac)=UIDCW<4|=dd@m3t82lszxD1O7m6Z?2~`KA+!mSQivwD{_*eKnxp zzH@bde#s9A4sOiit#hUQ0PA=+`TRz6ae&TN%&UgR#rIdn8xHUoyaC$z=%{MvdZD)s z?*4@zEUL4K#{T4SHCFe$xXx7P5buAf|2^6N4`uIvs=JWpxnQ7z(b)tej00`E?crX@ zJwxs`yw+>d-cV^TTc5DD9~_qu92;d1n}S!%&rmouk;V+%0S*Cou48$rP0n1ZPc+`e znLJs~dkF^Db1W0J5ATvQZQx1HqPxyedyx3L{b(2M_sDPY-nKt{T(wQIZaHF}=fO8h zJYk0lx-!7I;r;Ma2Y$-=bLZoqxbLOPhnw#>GuUT&v3)DGbu7OtBvA}$y!2BXg zLkxMQAH%_SwpfqT9>RRCrM>g-6MgmcXs3qi{Ov?9tSdiLW8Bq`H*xv-t7T03N%;98 z)YiX+hGgSQF{S&D_Z{m%O7ms)0XX;xb}kNLUz{U-1x|v4Cr&?-*+Ff(`+jatSLXlE z{wtQg{_Dia_n$@mJx%@1{ax9{)%1zuenJad7a!~151Dv8$-;=GQ=x&6z0v+4DDmw$ zCa1O^wgb?MUH*WU(e#M*8S@)cZP*;N=irUP8fOZv*%H4e1zYQT#wa^%o!Z+I)bd^Z z@p%s@KjaJOT&sw#ab5|9>}{cm_VCi6ohiJ+Mhw;x_=JX^bzQ|Q*9~f$c%u7r@>1|O z3?3ja+?>MOY;O(8dLHF#dtEf<+#|g2=QJkGh%?Mw`|~G_Sh~(=wP1%{@+*z^(`Px_ zvvY^$_p#+4AbFos-kjk9&Pzd;aCQta;%#e<%KwD&qs2L#|2EsWsQkAj|6|IJ*B979 zYU53FqCJNCt`=KswD*yes{^l#__1R1eVE2GzIIEGO*ZOvNm=kDV+aNth6nkLE_kii z=k@w)rg{PPgFYZxwFZTgea4(Q@w?Ps=2ACC?$=s8bsJRNIygFV8lbp4BAKFJunU~}@$rk1C(_c?> z#n|9mvhlQlJsWSQFI8{pwGzLr8!;!J?JZ;Qfyw^HSIQg<32$bU=U@-nfFa5)K_1DL zpHklVQwumv-d@;?q~1yz>xQympS%|25iAz^wS4%IMqZlo?vy(JqV#D+sy)FC`^S=Z zre7=1*3A%nRvkWft)mqyI2I0!S()iwnNV>-pEnpCtJE8e+1@XIgYnP5cV;}IgSnz| zi<8VPVA&IIck$lLtB39L!(H6YVJ+tDCS1oJFEN7*!{K_$_7i-Mkz9II=Wj==jrHiX ze(%xtkBQGtcHE~vceV9?5=&<%>tpnr()Y}pon(IIuf)%gtU89yn7?G5F=3oB33bNo z{-cs_Hv5%+9Cd>3ouAR>jG=R<{5LIy<-ghNK|5m-uQ+HE?SEOD=XasGny=Ke8?nvs_yq;0oXWA5r|Wo~xBZ{xDg09q(lOJKRklR{5J{ zyzbo-+dmP!7GIQWBR)f!zSOBOmO43F%f6LoujPH=-edjZNOvDyrAh00kk)YPeDyK1 zKDvA(y_!C(OE-7$o1!zR&u)pG;QII~IH1ONdXC_^0X&~I6BE6|2+2y+go%K4GKf{ zpmFYG8+a8rwf}u&O5W(rtx)gRzTWvh&*h~Py=C7L*}p*EH@$OlmS12`%&E#Hx@ago z3KAdU;#{Co<9M+Ze^ff#?LL}YWxMjvKTMq?nz_jtBXsx1)oQ;#=}~h37`z*&vmC#t z4HF$T>X1BzI-cZaZtH5Px5U?5&m;A`gmZJGFE6FJeWBhZQtw|`^}JFKXGKiv`TEs6 zTj~*`N9RH#;)ig3(5#hG$KS7xA$8{Yd;9WBU#PcE>IM4ME0TI;f!=z7ta|IEUT(j7 zeyO)Ut6r|uV;}cYFQ;F?^kDI4&Sdma8lYl=jBc+ z^MG|w>Uug7#d#es^I45H(awecK|8leJE)&e^}i39PyCGFZPiYa%O=z+UG4?l-EXfy zKVTyk+HCRt`xJcCXes+4qW_>hl;^D1Vpa!zPuDLKSCFy+K;yTzh_3rrfn-l{a=3bgsL5D^K=T#Spc(THaH8>qC;E z>ifNe^~gKey=C&wSITxCS8Z&U^x2Yrlz7+F@xFT6(vFlpy6Q;g?c>Vd`*^wcs2bk; zF6*BwwVro_&{x2JAKEB^k8Og*dl&WY?HbzKx6*kDI?Q@I+22Zcr|x6|&GJ*yyj>tA#+8&5{Wm{O}s?#*NCI{b^BT$^hIB{htVDZEL@oZ_O0IpU!ZTIGZuI7 z?JTp6qciJSeKY^Y9=zKJ+Z#1To&IOb$#;5{EfMtNmlKRO7^>bNkrTh`Rel?W(-_~+ z8uO22%sYs-VE(1%+sZE!^>w#NV=`anel9aoc8y+eQkoHXK*8%BuNoit$$TT>BRUrF zi@pqJ(Fs5FsgpTo#EdN7ooOqz^U*5R&doAUx1R3ry}JSalxb~6Wy zK+~z}%`yS(wV$7%a@C2=>|fqZKQp0hYhC{2&4Wq@d@+TpmmpBcgn z{mrXv`CleD0%x&5!2_=&+EqknD(t+#bG=CQT^;K6QuhyD#gD;PX&(DJ?Y&c&C}qy} z_tmo^ZYApEu`TuvJ|Dj-buN=SSNgS{GBtAcUPEPaM8|Qyl=B5t+XJQT!&I+?%Aj6S z{CZ;WghNx%&;q-)f?( z{(!c~NB?t)uH@2hKj%%dJN??CaACVMgnpC2_%ieqTRRdqVmHLSO{vP_MEZfs@29#u zPPKlDx&BeDZ=R;^4FKzFWsLu#{`mlQK#9Liw6}K+aMr_i^=nx=&Ye>3i06ytaQ~1i z<*xnjK2q!OQ|SwOS*$#WL$p%Z>O)} zanwXwORGE9l)_JEjUW8+PG{VpgbjUghs^P|th>H@K2o@L5%pJ~eLX$QuRX%{p;Rt^ zQv$eYV~lsi_g3b&u=8cxj#U^w)VD#B=8ZztIkG9JKcKta{&cmI1q$Y|?HnNuequ7wwQ5SZ_R|@QZ>`}JCuFdy5MALMJZyTj8VVNy) zP?ddC^lPT*OF}gM?~&ZK`ln}agbi0h{9i!7245KK=$mo8BW4w3;W*%Pg}eU+FXJ>0 z^jpVcS<;FA(Rb59l|R~}-hC7Z9fZCyTL)P5k&*}hn`mzLWg5$Ki|9Are&_eTVYjbn zI>hZ^9s_6{A#2vqnE`ndXNHz+aY7`Ath`X2UnZSj=h6At|127JzdF|oJnAf}Ina9+ zl~Z}M-&qv9P@P3)HgD0$@PJq84-12rL3Ozo& z!MNF8@p<th8x=_|J4NymKN&GPTqW9n?L zkh6V~z^0yH^NCOKJ?UjMj>3YTm^SAxSMa%-WZrt>drArw&Y+#-@WYuBZ4ul1mvpo_ zp8TKL)XpM|9c_V^dWG5x7xvBrDgv;@mVu@g&neSLg8i(%6@J ztMj^;WZ)mrTwFfO%HoY4m9~EY9i!}{8m51jTXAo5>Nk~2Zaf)ZwMOc`=uvzX^jEku ze^OvuQaqe_{htV2i9q(eb2|LF*uRNPbs>%SOo6vw;QjFh3f^M~-Vgdz?Ba(Cp%+W` z@QE1H&xF^UF7^Yiygi0}?T~C)sOIhI$6x+H>V41CThAl)KnJ%KWEuaYfc zBY*TW1?%-B=NL4Pzu^Ap6m^#ulDj>Gw%Ah$kCiy3R}cHKq2dcXLwwb$&*UCT z?mkc!a?1NuW;fQ8@N3TS-n<&ZFN5$4e3T(RO@8cEvG!=(ZH4BhWrvP+ufqG1z(0M}_KeG4S9_HYZOBn$X&nI*#RFY#0S``xpL~H8{(mSq_S^1Wp72kfi9Jq{ znpcv>`yHAK@=8Pp(?d&PPe%D{laU37Cn;@%`wm6)tFArDqy6AllU46`l=qm_bKkTi zr2SY{xd)KeEj%ZkVI_q3mx-)&H_0Tftb{pT-cMfof#=KRrPFXGio7&VQg@?Tf$_Z#}fZ*|5WzGT;(qAE8yWzuRcO%YIBa#Px^w-p5~MsQcBYL`EQ4 zq5P+W8#p7t8*1K$6#BUS>(HgY?6^2K>NBNx06pArqI-Xyma@IaR2tiF!e6V=;w)&_ zGSmCf#h=8^RF%1&aFEU%?k`;2i>s@t%(zcgdTeNK`f^JDiljf3l^&<` z3nhJfR{A1JucdU3;h?oTAAhcB9LjAG+Sf#7s;La_`mhgto)+E*n)mk9(wo#?7$fua z$U91`(cg%VU>ZYkTPyc=xJzR@R$9}ECppWXS+3UK?@@P){rmgzO?aR2vNN6P@|~uf zpQ!&xR)1gdC|&@#in@(5K3D&BtnL5Sb)NBp(sjn%xpgFp2lms4?f(zjDSe?=XIet_ z4~m`4PL~D}4FwLIL2!Qcs5&p*cjN`8S_|Ci45$2&RJZ2wzI5*9p`dg3_MvlnV)L?l zPIRwA9C5_tS$|Zm{ZXNp(<%M-wlDH&Hwo`|rT8-adfOLiRz%9|BK&242*R%!G`{U8 z6y82a{O6UQ^|eU=zWsaHk<6SE%KiYp%At2Z`*V3)0J{O)yV2PHPGhg8-_=HP}w*;2%ye&$5vL8?I6s4_~v$9cSM);C`jMDRId>-nnSnQ9dQ8}0IEG1Y#hKNI6 zNUrI*OZSs(V-n7N?LWY`pKek3wyvlbZ-aujrr_jn4^{9KhKp0E5? z!5jRaPdqC0AK-OAmvu9;;5=2}{Ge<9B4a?C*HYdeB)whg)I@Mbw>nn>hluWg&sZsC zRu=cxy_E8oLeCdbI_f;J(|J;j+5dZGoIdu!*XmScjq?tH=R*Xe(@&`1-xE3u+<%_ZvUQ9;(Jx_~qh*}` zEp~L>vS(|u_J)W0S|G5PP|}s%N~d5jHXJUp~_d~>A?{N(*ZVuZa<`M>^5 zjg{p7@*Emt5%En=eX7nwx2#3w3Ml7D_LZHpXYAKTqjJCz;QBN7JLs6{ru4W4aqq3Zb-vB zNW^jYOJobbvs$kwdt$IWWJG&nu%PbRvz5^CwmGr5%#4-pJwM-`q^CM@Kl-e`#ko^I@ZN^TSgFqb`FA-HPrB1feVxX> zJ>VaFw&m42QY@$Hm8otsQM^w1$@j5uOLG^;+X|WO0Z)C4FJ#67e?Q(k-sFY(_M?Wn zkA=O>Lo{E^3HP!beEA+ zXZ4+q@;8h3ca=rEvSJ$*%i6&Qj85hJn(n~A`FWom+Fyb=IQ&*!=R0BKb1V*mTQTCv zN7dVMU3{KvXHeg?9?GV3vR#Nb+sf}haASW!o19LDp|{lDhV3itybz!6Xm|H0+*ALJ z=Jt>lvry*E+O7vGkWI-e?{nfMnw6p#C+KIx<$OG_`3aA(-w6N zFW`OfVd@a#pD?a?^6#`ipu83TI>c`iUxlx3!e=l06;ZJd?n7LvNh&rN&el_wC|ku` z@rT5E9~x`nlD;;KfMros#rSo7X0j}{MER+0`emv(B>H|g{lCqF>Gs^tjo_+ejxrNydlQ>KI()cRyB>~mjwF~^BulxDyrSw zSz^B8Y#_YxXW5Yrld&njWBEz>j;l9yW=iyTXb-hoTElV+J|;a4@Mn^+m+KolOY~O= zRx6#RWK#;UqcnY?6DnSq!Wi=<{?||83qa3oNt9AN@ z9p`F-4}4(41`~5aS=fZ4Oof^3WLr#{-|@KOg<&h1k~wNxdmt!fKc@T;{az>g$1n27 z0fF_O3GPoxUenLiKK&m`gPkPS3AU0ylXQ%OXs3^0n>)OA^C{>bG0I!amY%ip$y&Wt ztJZ2_7M^M5LZ=#grC}j(7;xXOnJXROmS3Bau4Esd%lKV9=osMc_eN96hWXZ0csmql z+<3$jo{ISM7sn#8RA36ho%R>@okyEvCsjwx%&g3p4Ki&yafajJSR+$gcb z3@vK?=`{6rd?3?ToMGxsk3;*Uiss$oD4#%XEV1liSi2_4FV4$ zF(+K?u|o|ijtuTRZu$w}Ek4Jo&q9y32<3l*dB^FDXoUUOKUl8`pEZa@pd}EK;(pjW zr2X0o@kiF`l))c4VxXiXFS&y6>9qJF_-V57h7G=1o&t@D-;;Lh59Ir~gdOMf`_q?e z+E*)N&%r-_vLfGJS(9(irtx+YtYJ62^1K4Oj?UiUNyGwUlU&xRpwITb$_H*O`&rw?XKw-D^)6#vt4X#yB}S~rSF=Z(o~};D zmR0MqdBC@Cp4G)ZZrLy20{ESw^5tqxpDV=qpx{b#SypC7mu;i{W>CKCGx+mzypwNt z{>^XP2)CjOEWiY?xE8QT5I=?ZjYE3t{F~}%S#9j6|9M$ssL#p+{jn%NdyE{XT<%tW zWh%T}N^_pxw8EJydM(|U$MGhvUaB$8`VMS0LF>2p?cK?VOsh+hzfrMe;n#u6O{Foq zadKf-Hs_aGPi!C8-Wfi(Ko>nGVxrG;W@Oa?P5;hG>U=}$_@&OAes#Y7OEpGiPjx@n zxdw0G7X_$%-{6%&G&!Q zb^&58P@bVJU|rJpX>D&II(rM^6ldYcw*)7qb@#pV9GC3Or2C~^N@>Y{X%|u2WBttRGhRq zCVV989ACJG{g6ya``EwU6#G2>zQH~VHgJt4PKCL`nbRn)@Bja(FAl4;-&ExEJS&3yy7zAkzGGIOLKBkZG-2het)}q&oXS_ zhukjK5p~=)@(MrPKg4{C$5bl57`;vALd$OWr zAiraA+j&XaIVL#4ey|{qQvGRz6;Gh+^Q`OTH+bhMRYX7ac4xKN%;TN`ZJjmbi1Hae zmG}j;Mdz_+&$Sj}zk!zv>GPdq1fMq+?dS7y4BO)^=QeQ`uNNMe&b}Q3h^IqbvQT5I z6&+Pz&qe$~b7!Yz;0+4Li|}dYmfT!T#kX9%fOyTuR`_GFv)lZWv^hxHi$zZ=LfV<+0-QlGtx`4{4e2)371gVz*ZLQAv}U$M;Pi`+WkXZQ`b_^YTQ*x!8c?vJ;a zYn`>{wxvBrv$b@13*k$x4LJ>YT5_4=*5`PyM4vqzOSGNeX8g7SI5Cg=9f&u+`da6~ zQWfu`h<%zZBVLQ}s&JzHYe`319{4eW(Z-RAM-EXNuJ4^KvR<&~!rR1ZYV*&i%XXg2 zoTX*-o4&US4961;LF;gqCw_YN#?ZrM8>g}lw}c%tn>hXw^L2!a9oqIZbS548>uGP4 zc;Lo0j*nw`PeNR$MVfwV%A-w!e6eU8!RLwO&h!(JH?em6fji(4IctYFB`Z7sQh%pa7;Da_K2Ouk zrRP`aYtC;O8%v>`8oVE(eFEFI{0}pkI@k9PrS+^8@u9lWCiXy+Xy4tIYFY}ps@3t5 zT#L0168sSF95Lj|8e1%*0r70sIAugn0%j_0kbIg)V*&qa8iNCdaY|{pV{l+hYH*+~ zIXGZ;oKjkoI;FHKc}l5AZ%Nggg9Fv(DWw|0@8BrhK}J*1Tf>itHlcN&PJ7Z5U1))( zO_+a(X|xuZm-3inEyRS`LwN0{wT3+7)25~W+1-6{fbpoEV|G6+{%k7lQ8Dl^#}Y%$ z4|6(|=d_aj9tUYYIf$*CJjFSDR)HOock`eNcu(Y~^dRO*WAsy6Ael;g^u;NRt@0#e z`y-ESrHt){bXV5c>S=6ojIDvj_6&{f@ria><8tCnud;mc`6*vyc_-wqaU8pAIiFpc z_MOy_$>P%}!8)HEbl$w3+c-bPYob5EvHdXa+$7ErlBe{s*80?*RHUZB_UPYAVeF8d zFn)~tqj^N%O*L*e#%KxaDH3*Whw^!bd2Ojt@Bkdjk`HjZXfN1tFT(?E0Z#9tJwxDz zHjSl@m*)Nf%^mI3j|y=+HsU!;8>o->r~Tn~6X+N5;aLCt#sw*??~6o3T^NQ5hL-_` z-~lco7}CB8=}R3wx)ia5Q^Dx1sfU_6(pO-Ofzx!3dK#LoT*UJu+UGHEaO%%4pndi& zJ`WKe81u;C7_RN?#|&e81Y;8zd9-nKK3$&<5*)_U_;P7Xh(GI&X#$O@T>S37FEGp3 zR(COcct6AM#cGBh)}W2rMm_B72-Pic@%1LfyZqVMk%m2KP}5eycSsWh)Z(WPvT?3xgx~K8oI`X*&E>w9abMGjzvjDdUB$|oL1)s|0(JhZ z`*T4C^Z6a6N3zm?CF$_TgtW#|W$TE%6_RHlc0^X4C6fNM;u-C?sn6A=PbXvaSzoH+ zySa14dA5$uW}K%upC5T;e+J`zh`x1gzV)rjBbi5TIFJcR+(+oPbcv0QHG_Va_{2qd zk7`^7c?bTeeqa7SDz0{;#2BAAK#lKF#Y5QWw<1D(E`6%#6Qs|YEm{WS2+-LOB3|Sc zj`c{ia0ubiDB_hyC+zkAqhvC`RHrgu;c+y=hwdWui#XLp&#VCtt9OYLIBxVBXCPv6 z65WK&QW?=c_Pm8+xmb#xsUKICD(G zhk9!3kJL`oF2S`9NjpMm`yt;@T1wImQ5wd! zjc_fvCExZ|B<#YCN}k48OX59ZJD=@(e6a4MilN2bReylFrlaHHapkj$Jh8y39we}U|Ee1gFyFbH@)qB?mSZF@T(H&&C9bgi;omt| z4^NQ1yNd7M5SIb^@*>n>J8Z(waLfuO7FoI4RQp4gCs%Mx)89&;A?oirkBW)M@s%ps z-&O{&s4nsFTYA86qGz>p{k;nRf5|X_4FKz$((9M1^kzzDoig!G;F;RZBbgda!D$WR z>?Bt(o`U}}Xbsvu+Qr}#Yhbq^@E>2hn$M*Z@JE+yW1rV=bL>6k$3YXgj}h4reA!zp zhtc^r3i&H~=;??hof&_a{%f!?VB6sIV?RE`@VtoX{4;PkrTvh%FnIn6kB# zRXkbvP^>W&Z)Z>+KD;k6Vvb3By$0_!D>d6p#+*9(Jso?V_G43B%$i2OAGuA@kBdFf z6(sBusy~CAWEMld|wIS^HwcnS0oX~Pw}lD^Y)Y;UhOn{r*KSKe|RzYiegVR z;oEE<$h=SGk)EXAWghkWIr@$J)*$m#lkIb8{#Ef-XYQ+nugQt_U60Xsf_R%q%nFfQ zVjzBqHjVI5)i;ci(lVnoP|{IS8tNzwl$j-^x>*|VcHEmP=(s(_`j(Dsia36pF}|qG zxWZeaQyr2GLgA%lXpg>wReEW_OqP@y$AbqQlzm{J9c`4yoa*?@U7ahm zVvbeoHRq?WH+|aFbOG+U^_{dPyEz|z)K(81Xd{0Y_4`fg7k#1*%6~-TpDSaUMtRrq zdAow~@QfQYY>_5V-xb#VKkhT1&f(+6&WTl-?W4Sb|zDMd`M097{AmUT1GM^%Ch=CZsG+-CeJ~=(>H+)-79bUlWWP8O@<2(|0fv0&?@OU7l!T%uE8Eb}h_UW_++Sk+f(HhhG+4)49X#Lm*Iv7r{+?-GR zAFbaik8!=@HFnba6tPW&&!D<||8{+P0I%OJ;zM_HzPo-{yMxw&jA1_De3&)9jHJQ8 zJg+N_=LgV-(%53OE{|5O%q$q&l#Y0p`=05{bkX`^Z2`j}wC1|E_y03A zk9Vo=F*<|&a%SmN25o}(J0@ublvX3_@F>-J19mf#=cl~w^80s`_jk&x^QyAPpDf5U z$nRfK-WJMREdP&C-c#~>g>``SR>g!1f1xtdsV~?{AP>A%hRTBG#bgXfTSRp_sO)$e z`yA;%{iM>xgb263LV3VhzoBsU7QxvP!C8%P7P{){hs!n|C4QreJ~IYCo$Rl>VISRe zu7siAOtm>G&iWF^A6eoA!%Liyw!|rEXmQFSElveuC2B2>PWdI2Uq<;AlwU>p)s$aD z`6lIq_Oguv$v=L*h2zTx={rc@A^HxH90prfi&N5h@S%F4KN%b=(=@w!79)lSTMPTIIji{Xy740a^{O>ICY51r|p zaNGfp1>I={Y*Of~2#>%!^GUWgBF6j{{Iw;-7JWM5t4CrKlN@?6Xfb$u__CgnrF+EN zoLQoShrVE)_!Ebo1$W1df1jOPO`nJ8v;F1S$-C&|ropxldk-;fq%vyOXHS6@gl zgM17A!A!K#URwqo+;HgK%oZz5b@3L|qkqUe#-~IdFvozIvd5nnb2hWD{J!Hu%-It8 zje7u1#s{6EN6P-4etYHjR@@6Hoh$oL(!~F4gBEwXE()=qpWL%!mY>oF;B15ri^??6 z|NGBS{M*}X-;%J$dt=V8u>aS0X5ObgHfM0J>{mv6=fM{R z&7aofTAKHHp6o zJDd{S`O4cXwLF6xu`UhWTRt zm~S1;vj%M@6(99rrJ6I%H9+f7OzTiOM&uw(#t4~XxUpS)614`rMxvPJ5O|H&5Ba~K z@f*}H_&VqWU&<;^YnqQcY{)X(2tJr2#{G+Ai-o!SndehuhTk%*3*y%3K1HLRf1-eW zy1Qd)bnWHnjM~7l%VXA8B8Qk3-9@x$JM9&(xr6mN9<{%b!HKo^p7o~K>RF3{V-!7rLWh76bKFXb}4NY6k z_2G-Z{SRdu*XQNhWxBFOgpI@5o{9FLh`MKhj(@l5vuo&_=lMlcj11^zXb#0B-(mPje?TzwNF4iseAhL!ThLi&^W}JN z51r99*JaqwtDI?clQSM~JoI^v(9Pf$g86H^3NjNT?JQ^GUUs#%mhIdoMqR^JoWp|EV(Gu{7QS87E}oxTIe~>1glH3N3>%6z?kN ziB$%fc&?PIrEzVL~HZStg(k^OsI2tg{ng`d%m7EX8#jP zX2%#G%^IUqaq=-Prt#d-Z;W#(?bWO?*2_KL0bPx$kmu3vRLU4IM!+{EW3V4D$hh;c zqz+=FRAtTMZ7Q>uV^^(p)=SzhN_$tvz9DPuf0nW1tZxwg72ez4Uae)^xj@cDpKnrs zV<@d#(#FvG-G1P3250P|H#>Xg1pS3~4ABfT%=g}N8>5zrPuI#eIk)|*ATx*X$+LmV zcZ3m#+ny7RIkU_d>vItAk!ZvI;uCU5seQdzYe@KD--r5nL?eg3Tfq9}pf->7WEgYZ z54!liI;btOhQnU)2g-KkO7utVqup5viBAE$bK<9qAdefXh<2}X5G&JfET-Shj@Ge= z{x5RoBw$Ok${F9hh-u|Nx|P4s@1A6A@Vfq}*r#muu1NVqn`T<+-5K_}aYPifmX zUW;)|-8z!x>xouEmp#Ua^~A(GUvO>~l|x+i-G-0nP*XY4cIltiu#|Yj%}#*iN!SiF z`V|h=5e@>zYJVhtO*r?+c;a=Vmna=M`=_BcXVG{rp?*;%ZM9m3vdrD{l=KUgk#>#%lqjo@3VK)LD zFW}xN{kv_K(Eciuevfw$J!F4Btq%0o+h~tr-Pd28%Xf3@szSYY!^yZ)LFW>5?;gZz zZ&Ws@9&@qPU98!^yZcb4dw7Gjo$9cDpKt{@&`$PCmG%Tb|N}tYkBe+{nd6TL1C$yG`OL>l_ zbWWg49W)k$+nZbr+P;_8&&*Nl*V>_Y7?gVyx=<9C=kPI)V(4rJr+W#xw{FDmtBWToS-ew);}B`X~? z|9wfHmX*GT@DcmQjl(qlyr`q>6qY!18|HEB#AAC3*p7zpa#ftg{6_je%a~_1hUby| z7wghUu0z@9-YJ0XpS3~GxA9(eRv`Y`L*m=*T;cBuc?}{x^dV%ll?IKr0IgL~$Y?30 zZ*S0O3AlC%%9gB`pTgZQbO(?V-7<4%JSr9^bfvA_A7Ww7KZf|jYnWc`#9Mt+*^bUJ z=Q;6r)L8ul6UYsyvjcGeq@NP$rzESN>~X`-rY7U|%eb|yaqpGB-<5lL#6?_JDDMFp z?q_|n7d8*H-wncD=rC6|#RHJDz@xLTFRdk2Wh`^L$0_+0db?`RGN%eQg`mOa!c-uf zX!3O|NO=;8mVuhKs#@-v0vtn6`A|6^^>3E?NQb{0IQEB$JOUoM?|YoyM7STMEAOqMm39eQT9XDUx5TRN*|wmngFK(sxbm zJm*F|(>V_JH?$VF44-H1LB6rc-c5PnRjTQ~*J!r=;&VSJcS|>QcV}ug63%rXHrvb; zbm%o3=Q)T2Hh=8A6#P_%h+iI{DgPk`?m*4kQqYwKX|MZ|z*VY4{dgM}qzd}gJJj91 z3iZI7B~18tn3X~dxOGJT6LiMa{F->?hI<%h6>?q&^#v*DWD-RG9~`gX2%92|6YWCA zNU)8}g49~cr}O~j2Z#sAA3*r!w)LUsU?*@PxGvu={Pjfk`BgnO?tK4U!U^ylh~K46 zg-^Wnx=IC;^F6pjAXyN0tb_}9w~MgJmqVA%cOos1K%HqZ4`Xu6V3dH{fq8mIs6dr2Z#=6sf2x5bSv+f zfrg6LmoS&O@=QKpFi@Kged8)E{H;_@IF{WD!}tn$@+C-)=%I zlTnZn?}5GUT?zZ1UnkP};d!Yl+UL2nZf|#YFG9K1G_T)5U$5hB$E0+=Ip53+Cu;p> z%XywuVl>H^7ca*-3A&cL&w?*VuhB$hC#NrZuBk~0^1IKDde(@i$!Hh^tW zZ()1!`_js8H$OR_c!|X+=#4*=_VxOKU#QnW5xscxt`81hlYPAzgMIC=~HGQIvsxv8lm}sb8yOQ?@&9RX7O(E^e zVuoGvTUNE)r)k^l8yGPAIX4^=vh_F2j2g-p8P0hCYvYq#K}fSQXS(LYLb$ zkoKyEy{ciaMqr~@J}|ksXRrDd?JS2M8&6=(KJ-0{`oy@tCw;%$t$afGz%QgoE+f9; z*WLV1J^e7p518lVv7Kzf{%^=ePjzO@+U-nlPMiRpOr$~EQYX6i&%}MX@HwL%E68AN z7l@t5PD!tl^d{U-P;W&G+d0vBsjxN;_RWhRXXZ3CrHF4TtfzA)#CNIc%;lKBhKj9S zbh$bUfQJU|E^%iTxjyA1UK{t>bE6Ab&+W>EVQrxWdX~95BeGJiE!wGjF zPYh3N=KG#0u$9ms$m;h2rbmazs(x|)u1-Bbd*lIv@hx_UXa@1ls|q6gUdOJ2?TzpW z)pV{vj&-DNozz7-&enm1FG1WH5q$@ruxH7=&iHcT6NoQJj>xk|62EX+WT6G#;IhaI zcGJ2=R^{MCderZ4O+nYc=+}!$ z5YEvayr*kVX2v-%pu>@iiW#h;rmQoS|K zUG%+q%YN3^xiCih^OOd>anrJY=R_8z>h%TeM-TQ0mt1`)-0cS&}5YCNLy3yxJW+(w)*r<5z zFs%vj59@w`=tILKcmCYm=m1A5L8p*4c^aK6&GWL6=z!kAps|l{bx_q{q*@iovT4l49NUGT6 z*hAig=xamM?Jc-RpnakAstM*R*2A7CLOdn$6o&!p#)!32?46Jo!aLJw!hUiB-smb= zxOtBu%~UoKi;2Gt(z$Rs_#@g^@R_#oal+Z~{1oU!cW5$r@oV z=X8?JX*wrxW`vT>DU5X{oztM<>YSd$=QQNA*hb*ZG&^C;mvfrmb-f++sB^lYgU;2| zy>w2`OZij3a{Q@g;>RE8r2n00pKvaXb9%Kt-+@mF*zDzrZfQNv#pD`iYYH}E^HVs7 z4ZY1-Z&WxNQWXwtjFd0o`%=Us6&fTjtv5nW1)Z}S^pHd6Q90n?i9#1ODZK$>rgJx{ ztx)Hzktp`cIqOX>;B(fi(KzL7^=d0R>3=8qS5-%yv#YiF4ELC^!oj?On=fwO-vfKd z7F+l(ZVB@PXAoSs_0WN7cK7=U+epoKx+`Ei)?SMHodnH4hu`bYFU9;<8wwsjAsB3> zeNxcTl3H(^>TEDib-HUVw+xaSy2rFw>x}}Zg7~-%W&!M<_jkX4o8_)ccMa^yXuVS{ z&NA3AQd^)8kb}G_*xRT(d)xXtz)~wud4a7Wy#Mf&Jf_YY(s;Bfq5}*j4!9_g!0b?2M2-2>NYxcgB0~z<(dg z+-0t1UAa*LzX!_p@4LfkEvwp{%P);tcT;<~6CpV$f2y|Dd1=^@Ohwk+EaLrE$sN@@ zk9TH*L9w@>@mKiUor@+O$iT*Lo6A>7I&c=Yw6GJ5(EOm=0TSHNF@r#Syp!Y_R}zh$}mE1T?X#&YK}qPwtl_G(K~ zKFD{n9+%R%f1xd~KD$hv)fYpiC!BQWRS$k+`!$T`yN$Ih!vy0oM<0@B?}Wbm4{rmJst}{FAM+3+Y>R4 zg^hE#4E`Wsb4YW+cP`)6CeoATT?yiOx#?lr19h}-abB0uc{@|P#%j3gP>(+Q&{35? zQ@_T-TyMHc-MeiOoZE!Eb6T@KKR!{OQX+~4Ug<%UIM@C zX|6b*Drip7Y5v@ZSsv{}$Gz{qKr^f>wacAP!K3lLU;_2J@XqS*N0lxIayt6MnT@{D z?~Uk}&g?vz+wg`r9rq1hiO`(-M%6E9)^R!`a@@X?y?swl)>v02d;8u_{FhhWAtUY} z^rU(R-WMm>uTKG;V+Dj$c?|+@$ms+t=x~zf<*^<|BiRQ080&Frl^$o*>9?hD{xw%N zr=Xkh*0vCi72DI~{T`qB9ld8h&imcB&U4PC{E`M0AB*iSX$&7;c_=fN@Ws8)#d-5{ z`u4MLlbE{SrMaChI8!Tcw85*s^O^8%;2%sC+X`)5ziB_;-9UbN40h`htK|ve^IUiu z1cU4|+qF>)PEfoN`kPB;3yts~PJCZ6|C5~~j5UrlQO`KW~2>A5FPse5Age%Mdv zL6FV>qThT!tkaoOmr`>=-3acbsm{sDBMs$CD6Ndr=uF|de-+-ajA&+ku$PB9_=uwO zv*rGI!zoH80bQx^GjMjr4jzD@@17vVXd?NUrqfnja#$HzRY~dhF#-& zeTC)KUpI*l7!5w+25JX;{4zS1^0Mk)sB!y?a8gH5O=^8*gv#iSC{^hRCasJ3ri! zyXl`u8s6sCnToE``deE}+}$mA&Y->G`l-M;+JuHfe%lB;apP^iUm!d!FC!Ra)Ahri zUb?TV_^z0CjLo0TYoqY8P*rhOZveXI<-jx=S9dfcJg@* zn+uQ3r+NweCtqz1qWarC+M*iRz>uu^3gJKkzW5PaozmBNAX7)|ZS>oxDZ6LneGdLd z?iWIw7O{Ut?GB>piU|I5shuhlFI5UACXTS8Ndt}5(_K5Wr)yAn=dt`v@kv~!z$x`f_ zrYx@Z2=>IOg8z}M@u01L$atQQ|1EGejR`iPW#&JWj~OjhJRUeKyw8{6@TVuJP4q*& z0&w?Pj1Tc4D1CR>XOAxk*)?M)vi^zXZQ64WJY0~$JtuhkGUFw-Rk)dOYp2-m;QjQN z{fAv24CQ$5y}KuGGS1jy&1fmby9%_AcIQ8=>@`lIIXrK?$@>-W75*<6BPLgW7~dl> z-gKfD#!nqpFuVaUHU-8)hu%G|@{Uq@&==4a&={A#47#E(efgQd{Shkvy!JN-aZD!? z-`Rg0-;r@7vc|Dg#xap(ozXNF*vct5#@JpC_x;bCZ}J)*BlNe`TPezqQ2rJ?Fq&35C@?O_jD3c6I4$_nxL9p7J%k*@OERQ#}vIcTo2< z;f7P43E@+nt+XbW#a|+M0kPul|AMSgL-l^4&9@GWImA9gs_FlD?Nrtwy)O4EVd4`W z039_HTrrPu;#4P(#xsG&=qJ3+$NNg+qXJRrcW7QT?h5_>9{r(V+|P3Jt}zOa@J?Vg z@va7yf$ZodxiJ{O2l4J$e>j20AHdwHt$fHtgk$c#V-?ZEDSD<8{HvB)>HwdZzl)#B zewEL;Adzm`dyjR_1-GYG`$nerRK^_eu6I(OTWAj8UF-A$=3VOv*MXDcseRz5N&j~v z9w+f*mjb`zkjGASp84y3elwFtG@ay?e1q1vQeroKn_#xBaII4#>p%aYg3J#oALj(& zNHOA+x@XY$30GEA*~L=!XH=Ht{rz!Dn<01%eZqe|r0o0P!}8L{Ix{mVKP2?!4$8X` zZwDxCwd{@WQrcwh^HhF2+e+j8)A8>8byVhkX}5vOT#dJtlopk=n<;HP-cM56Ly~p_ zrCmm8M~VNODC3+&X@q0@yRzi?i4UnW@*V1DD{LcVELT$cxl|VR54xm5770`Onb;Sw zIS~8yODL_1(i&xM7e1tD=T>Snnx(@F6Q5%~r1;;B#}$8!H!(Y@{fShL_dn$qQd?u7 zFO+^qQd;PQ@>Q@w<}!@Za!)87p=&Dvo!LOb=Tp!>{4D%uFobKEr8)d61*YS)3fXY|M{S@4}@;=ZD|vBTlHD?fp1V5gU0yi%c_1wmYv|=A1q)y zp5Ia4cCi<%A$Y+i^PuPKeIuGW*e^mbsov8;p7%y}IG*HmOKaExA4Zm^af%a|N@v6L zd1+t66el+_FP$@O9`wX}LCbGzRZEymJ>6v(5e71wMacv!ffzp5LEnX1|TsU1|mF7^p4$*7Y}`H%OP5%}%wx(wRtjSYF;_A*O24uqLa}c&n3m7ss_d zzDAyhEeknE#ne66q^he{>U_L5bptW^2*FWTFsz9Pk)g za3ArYPdb{1_;({p_`aBU{ORdXD#3idF5?AUJohg2m0wJ7X{NQHJ^*urV0jL;A5IRi zqxt~blMKTTvgOgkHpYv#L-2uM;Es8*h5KOOQ5m%h7+wWE(CB>op`ge1m|@%8oNqr( z`xWi@^k}Ne04|Ir{<%4&7Z*CXH^W{GiJl+hg8dxE6(8Bc>xbX%@_QJF6SwPIaS# zBm5R>NyH6kamxRDfrYp#p1T%Ur|55W`n5SW=#}2sVpUc^hnBL3>o0ct^vzB%+2T~k z<3wlMoH)u}_BMGLKZN^Ab*LaPk@qx@p(JNjbh z7|I_V-OS~~RDJ@LD}Q;RHJ;K7UtMffQ2B{Q?^wfBcbtrI0*x<-@#%3VLTAP_)Fs+J zwSmT0q0Wy;vc-yEZgd`usG%_$FLq8bHapXGl@?6KN<(NP8Fw0}jTt)nUjUClaKCKL zqVJ~Ri@A*kYNLVMNcFUFJGC)W+6Yk_y0p8_|AqX`wc-Zi}UzDr%<&?GXONNtSCzJKvjct)%Z?{&2oE zIQdp*vVmwO!K#K}I-FqIM(|us?P8r1NyM>J>--RX-*-2yGu26;{9UvLjW2dSN@aiB zxS7j$Q2D2%{CfIsmGT`~+%~$fw~F&^o7y^PwD9@niHGevYOgxNzE*9GWL`Sz>_DW6{V|u)eDX-nt(i`3 zL|*K~`-`x@d0(gjd{VPDAac2L05)Yw;QRo)v9isH#s}DQ?o?x%+tlJ*1l*@FL1t|v z8k0-(dBis8###uzggYBIJ9piQx2c3L8`~U=tNiQpER47@Rn#X>ZFgBc11vEa;IgAlw!Z`J$ z*9peGM6Y4xfAt@$qY%2BLZXh~oVMBbIlbPyA(I6Vc1Y1ji=}(^xU)P-Kk* zI0y9kDL?%#BUlGU%;icxr!yoG0dQ z@+rUBF=%`^S0XeHz%m?Zw#FqlIaQlvjT2#eBGoe@{l*pVJFfiyWL&fc@F^9gaZRLt z=Tdv$y_xnYjVDh1Mrk|=f;G-jz-Op_xl_^Lb;<~*OQK$l@;wr~H5H{d;^=)zv?apSdI%k^xR`8ZpWNqD2jQxU{8; zG6-6&)!E&f06=)?RzCxH5jX9ocH*aet9YynuY&P$}#2P z?T$a%3fX0mE%;ni`tqs)EO{jF@|RxFVpU*X8DaX>BaVS}V-$G(XuwPlw^p(ZMu&JV zvdA`pV*+H0VduxJiJ-w-7ZW&4;4lqI2XVx)z7o%P#-CL51%NB4=m`POG(}4t-i;SZ zT0+1R%AsW{a7qA@3+0i}2p6=x7Klc_)-3?(L%=s@~$z){Jy9Q_u@x9)fC_%4C+OYdoOl*V8D(Uh^euS|#`}vH=d9nWfUib<>R2DplnS>y`$AH7+e`WP#>Ily6kuIQ zf%X#=ueLGP-!$Yr>BTn-T{$1Hy$X)=`J(x>ZH9K_;t(B!`HCv^pQjgLqbwQZ#E-w-MB9fn9Xi4m^!7u*j z*=SidzW@&{i=45kfP8{{V>5UL`2_jJzHq!!>~k>Z_lExouZSF(SFkUukXM8LD~k;9 z3-Sr_jPghpuRyzdvUvsCUh;~?l2=6X^9tgej`0*wcm%IdILHIMbrOdeae2i64)TeK zfC)s@+~mDNw58w^VL6VbM>s!YIea2<7@w#+!u-tT6I(wcpU9q{xqQN%pZ|yL4C&(|d`2^;@MP5O>ze&Kuu`%phOT|3hLD?|gB<5@3RZD2IndaQ!JT2gS z#T+?dk&+Fu|Iou&3loqHv33q_P_iM~cp7L+g03XW-l6#VQ<$$`x@lea2Q1 z@4=6EAs!7fuLqA8PXV5Jb?r_u(yzJDZ(TFAp8BD3PblFFgtj`>A=>)Yr`@y?q>Tu@ z=oAqrevicOa=fntjv(NIMxt~O@}jjbI)m|U#Cr(dO?VH*yBTjC?-<^tc(>qPhWFkP z^ex-y>>JzeRFQ{-Htc1csBisH`Kb>~E4EANJ9yVuE$WG-{bGl(SM+Obkej6Mmak0S zpV5u43;T^hnzp<^$9O{iQ1k1So}6OwE{|8-Be}_;O@zm=oe!xWHRL@^zusoO`F>xf zLfB^15XA0`61oA zf8&~mHLYh+<^1G4Jgs;%Jfkb-CrJi@=S%$v+`cfEPF0( zn0Z&(L_LA)mM;1j$9Mw2oz7SxiDsu&=}%c7w;rwW)dlhR>PnXN2Q@~HRF9HRsmC*7 zJmEjfL0X;4`6eY=`{bQ|(YD7bI;tX= z!-ll|-FFbQXq_?!p1!)ZOS+5D|E;se5f{!78 zjfmYo+wP=YmGVQuI<7=|P^Z7iW@{Q_411eXe*GcwzgqVZPK-a^N7Dyz4dYm6A5lNe ze(Ip#ySVf>>A7>6&vWPR%Ujq6D1&(CkdN|Cm%`0)P5i{&!25C99O1uoH0DOFA$>nh zFr@F?Nd|p4wGodqJ<=iWLq+J*9rL)a)@yl!GwpJoq2f)uxO(yi@O-!bAE%Eeyf>n( z-1h(Bp}q{~2fy)@h%q{f-~L^t5vR9SrqPcr`5}4B10qIaW9osc#p*B4%eIjybQD}D=~@E%d`XViI$ruaS2u52i;tok)VVm9y*zB3L6DhS872FmGa* z#j}6f#?$vdV?S|kEMlTze@}aBukwqQeWt~;8W*=;`FJbzXg%wz!Q1g{!t>Fw_&scX zavIu%b>e-eVyvmBu&sEfANWsfl=!>FIG4EgaSoc2M{_)cw-<}JsXPPZ`JcGEn+)06 z3{_akSnd?p^S{4cC?T-|G|i zZ(JX{HA$YmHd))3A`u?Fh$?A1WsIA?d89cnERaY4%W;J+?-`b?X5 z-#uSyE+;?r7-w5e6PnYWFE*D$4yh~`c3)UazPMe;CC1jSG|z*BVKGO9ty>Y#g2R|A z$MQbwLqfmgDQ%JTsJ8GadZ?chHk!aG`qtMh_^x}VTjD|AgC6D$GOkYfM}6{q^A^GX zF1FW4Itmhzj>-lRYg6L5T=~Li5@+F^f`{tQl1T7-R!vI@Gdpx>s8&|^Wi{P()4Yk@Abe)w=Gig>~!S7xS5podt%n_ z30c4Om7hE_BuzXsWcqhO!?C9i%w?{F18d*Kw%g9FX!khUoprod%_Z6nu&p1A&>zI% z?S1}dXzzfCA9@MnEs8nAb@8~<2hKI?)PJs%_o@DmfsUo1`1BK(iy|M%7Z4*Xw> z|KCw-1Nl){jgQe{eH8r7BCS5*tE$ZzuI5>AWU*aMeX9`?I#)0Kg@7LqD-K!Y#X+y` zaC}QUerbbTA!G^>19g~z@6Av7-Z;YdtY?jC6VBtRkK-;)uk-iK#9xuc9 zUFhG5Vhz1q`q-ckMf#z}Lw|}B@l4{m1DTI zd)$p9!#gMR_Y{JhT}FKrWeEDgoMLIAtI*!9*cW(Hfyf5#Au-<!u-+5yaa=J&~{t__nxju1Dp$0?#dmtFxB?#x3<0I=-hL(Qkfhv2_%_sX{u> zM9PI-K$BPpD?&|>Nt&GUGR!7% z7CUNEB0b#vUH2$+8)UmCjMJ7%(mPt*HTbq|0>?y@$#c004Ndag9ymE{W zc8?dQJ=>a7^xH=KRiM)|uD$y>v_1XaSAfnS_=9I$tlMY4>hRkt(CUx2Izc>owABi9 zwPN42)2TuqdN7xd5%CT;i2JF$cU-JXn_JF7QHP%{7j4nhg3T>pdBJv?XV5J zJhVaZZ_+3Q=-!ICV@5g!Pn0~fRp@YCnbOkF<(2 z2_1N%c$>V!#y z-q0%eGT})_9oqUhz0RqQ22oxRYjjYZ`&K)_NKl;n29SRExo=RM`<9D(1f9Y7p6gi< zGJRb`OJ&$-!TPYc--gy-y3t9L1cmIu zp&bt&qdUczGS!%RP{j2^n=qD4q*bgN?3-=F<+`Ec`)Z_@M|L`lecD0#mH%#WP7FTc z13jmLmZz%Z{Z#tOsolmimzfxgD;?TSc=S3;3(vDWI`|9Zk^!FjlqWfS;CG;*KBvq0mn_^$Cy@>|GTu=bcnQ||?~1wP3DfuOO32KOqR(paE+x%G?2MPMUiKVc#RhQ@b2*QE87B;2HLF(hiCHMA{$GUdAWvFww4nt2UQZ8oS0PPPy5$;+kvS^@naCmEBW*`mBd z{FHg>K;v=Aso;}7@JXLj0lcJL*UAM>((FfC8SQ;El&ksr&&LL9Q>D+Uun+wHs#I8C zg89C|sf#SB6!t4>{*K06^n$MYfcI?7P3{{QlaS{&RovrLMxB{R??S#`%~{TG-tXI& z%U7~^ir^>UD_Y3qDY5>ul;gZwPtu&9jEtS1tR08F2Ohmv?mLiIyajD_>@!j8siUI8 z*NI>86=5eVd`GPm=f(ldWv*4^7w-AFJUa)UXlS(D^K&2OIeCdZH(xnmBiw&(-YCw^ z%f-5jaTf(|h-?*QkWcs2M)|>$WM*^=k=pd-e}+y z^l}Zvy3ccW%0I%c8Sl~?mxy&=*b-!&^}A>M{BF9b&ehX@A;Fu1W z3HYAlCu}rZ_1JF;xdV8^z{RuodWCNe-ea$j_=qPAd=bni7a#dS0CQrJ(F*zXQl9y( zqb^tY=m;s9Eumz#|5+i=;k#By8%@Z_C6w8~hlJfs7vuNT_uItvpTE;KQ`yT5KYNB(EL;h6={z*H7Fy-k;Y=Czv-NZuhNUedk zpeu#kumki8-2{01B{xQ~c7fl5F0N5}9BV%M!&S}#Xqy`jsi#EpQMZBx;(U^LGr>~EzwHyP|35~ zoW@%v&(7wZHTbp`4|%G~M>kQPPD=l1#7Ew49JR?IuV;I)UOQ1I-oFrQK`Z1x&i^dD z?iz4dJ+jt;f~7g=ZKi-mJ zIUMW$a0}ACj=K*IHXP1VOTaVUQg+5C0(bcAcBj5c^3vI>z)P=?Yg+hhX**j5-ZBUI zvu190e$E(V`oLc1(AvZIGD+aP3H?=lbd>g3Hv5|MfOf)xV<78%S)O-RjEhSj?9^*A z{)Q(m^aZ=`^N5(Ny!(4l>u{DJ?Kzcpx`=PC;u|b^d|zZl2V}LN-HLrGeOn1X7-*kA zfu==Bn-i2Y>Q{F-yOG9w=j&A(V+B8lwE8T#Kj44GxDF=}J=Y@dKT*?8pOBSL+}i+S zAk7@C;{V{ko(1z5^HE;SNEvUL<#>T>S6|=BoAnpdyMhD0?u48Nd64l9cQQ7cxMzBl z^JCy(yqSYWhcj1|!}{F^n0waB7!TB2GsfXz`0)KhNQ-9SS`B!nc}vQLFJlqUnSP#u zdvjt>nlPT|)v1&3Nu+(zrKv&mk!~{P&r;B>Jx%&phet&W*D5Cfdgw=IkV}7jnMHqi zeG|3|I=+wc7%$I2Ur#tj`I(K+w1UdtCvBU2(FEJ}70PF!-xSzozpN8+L$I&tnJ{CG z@Lg6C<{eAgPbBTHJtO^^o-u!a#;eV?htV%>Li*;cN_INZS08Xg1{d*0>FZo87xre1 zP2|R)(L=E^J=9U)3+?cEL`?LH>4&D6XIv@HwJSi&j5_}A8IS>;UYQMwzKppRoe=31zmHYl->tsq8O$#F z{#DOFR`-;MOjl$`rKbes9-{Ri)|03Wr z3T^^^(+_psF*5!RdB8+1-XC-4w=a1z6S89PY{h>w>;L2UU#tG>(Z>UfY4_+$o*u>- znRsKdU3FER-Jopd=F#3x#o(fS-U*-IFX%r1e;5N{GtYL@^i@!ycRC`z0{9_qA|H*Gag#!qkQ7QP57w586) z;v9CZSbKVn7VJmYI`0_tpT5+22j4A1`7fNA>SkY8nNKH{(2fz92L^Fhp|5~-tJT5?fNzBqdg97E?IBdzp&n{v+w~5eA)G$ zpi3La9iWZzYUsw))G#w$hIq#*--=q^Ay;Tc1YaisPR8Q`a1 zMqY)s7VBopE=3;__gvtmZ_+u(NPosb3a&>n!( z0rMu_AuZ-i!|&0;cVnlRA3R5&FjmHwIYE;#pvkL?kCnQUU8drbfHgGXceL1zqd`B& zgOty}@sCQHhbx+ALv9~oCd%iA8AC4Nt7n=&`b+}N=%t1+;4sBHTZ$Yc9f%dv9JFFYCWvYuA*!=VFx!?pFVtLa~)(~-2J zE?Coeo?OZLZ;gwyVaB+kZ7BV#(8n(8&2wk^RhgZG?+?J2R`JWLhYpO9-y)qf{gyO8 z3!1mqG45E;JXfA+m}v=FCZg6itYxFPzF}V#x()D+Sij?m^f6rDwyqX*1(FGmSG$bo z?#ru_>qQ!U3u*B-r%?HSMWern=kY(NcPc*_og!}N^iZd`+nDVu<62Ey z$Cxiy3%kX7Ti5E#uOz?eO4t>NPH{hL_nJkoy2wRxnS0O_J%n3^exbo*Ph#jCeDckAM9-hha)6t(c%@{f$B1|?~;x5Z&v zwW-msgS4?VIt9;@aU{XtPHFOaPT5vY`xdrGHOesna|`fK1a9yki#YrtiHmm*t3#Tw z?W;n4CV{uRF--TE8-=`XXtYcCmH15?rE1+P;HR-%wC{Ht`d(*wv^lLsnofH{5yyLm z?K^3k?K!E*=NERJ3EKpI;rlt#1m3?^*vn4GH`I{@@uppcpq*(A&5r9&BHP!97kzOj z{WDMX+ROe>Y@hSxbL~UH!S*xHU0{EwqQHJEaGu>ec8EPrpJKl-p7F<`*4! ze;UeUJk0y59!Unxm7>177=N>bUmNymrLg;2Df)Njkf_(MMZI4g5-p=0zMKAKqz93H zHqryyK%Q$`NPmHKQ|2cp;^EuC6PQAMXTm1zbimT4?rz|D066>#2h$C6s?fI#85~`8 zU}&@{8~)*;QSTpy4!|;P6mZSjO%yTR50(V7_SpmOi{{MBk|pwkNYx9OFNuP z|0`xiW=NhL^>jGo+l9){>~9~Ie4Fv-48VRAj#&pI61EDkL%5GpzK0)sSnjRZM+XfV zA22eu!x=p?=2VS~IrRJE#;7bAFZuQ$ytzLqb7OU8@#X@>OBZ$y#J;S^%BKw|_c9I0 zw}2zoFAqxJ)itPJ1Tg~KuP1(<*B@G@6^Agw(C%#Gg5bqs z40C^e>-uTd!;x1RlX2bf$aCGv(0P^?Zgp;*(_(Fo?o21ab03cEOj8HNvbnF|_gZ8L zV}=f!hq@Qkf^KcF?Nxi!v7OTQ7x^%8^4ra!x^y5MbRLS-rCmJ4K|Q5cs}Oe$1mCCL zlDyPtD$|Ws1wLb&k8QABjThpKqfIBOc-CC+TSqjdDnz~J*vTu4$|G33E7SCGV${M3pN2up} z9kQOxe^BiOdDo&s`Hm5OOhDtGJZS6i9pH&~2)omo)E!QBgR~_NH!O3ix&MgVsMkl9 zIYxAs!#yA6k)XLGRTybbJxAZ>LiUk1KK7lcd~HEqHu~Q`dEeXsZjoQs#1HI<|oiGS1~j zrhD4yK9MG3tZiOlabHE5jB(be`yTa$MEaD6uSpe&n2Rf&6~A1O68n3|Y$c_QDP75J z^=Q8U+Nxr5z@Bf`i92ZX&}OrS$1H#H4u||=QZnYu9vgG&M#P+-f_G?%u;uYFCe3cA z;vO0It_E)p##~qBp0w{2jM;G=&SrgkI+$c!Gu97lyUtiHjlyp5VPkumdLi0wR)8nE zZ4l?39;82cTg+nYm_T%?un%9cF=n+)hP*%cjlDw7>Ts?BZ>(2x`i&}&_}=zNc|UY&f%Jh6+VG91LXE|1#9lVhuOsp( z`M=nWO#(R}h`GnR64>Y!?-stxX49isik8VuaWkDFT7JfcZ|*nFY1;PmG5hs|xJ z24KaVHJ;1zo?{neSJhV?nA6G0MK;e8p7v<#Y5;4D>~Q_L6$78uJhmzIu<>HLX>=-m z4<3#ekGQj(usIGz9C6U_1pOCdJl+bN*=?_vVGR8yX3@qz(6z#%?AUTUcr5m8D~7Ti zF%Lj{5c}OJimn@hqn@#=kcwc~cxDPTF9PNrL@a-~` z#c|9rc>Kt-%bLbE>!?p@!O2bKs7onvN8Y3jIm*E}tP-)5ZUY~=I_1%qq}U!;E1c7L zzhRp!o8_`y`^(0jy;Q-SmDR38yl7Y8Fcb}>=zI9 z<>hmNCw~f`+d*Hrri=&Wj!hrdmA5jIPG4W2oU6je*-X1!*m`#;zTN5k5IoVHze9QF zCx>s7XMY4!`!YG~1X;je2f`;UynLVXtF zT&lg3Sa&q3AEJ+7ucq6KJ=woTGUhV%c!$m1nR1QPV`3jvl>~j-S~15zZ9NzGK4m@U zTJEl~>=U`hu61UAz%_QQ*kk3cu`@p48oSn!^_i7E&m-4Z()e>BKVaX5F~TwhZMvc@ zN!m&=_T~-H##pEHv3aC57POJKv;11nG9Kj`$=#yPzf*ezj>!jUSKk%3z6?58wus@~ zrD7IgyzcKMU*Y(?%>J6DJ@&7xk=C7ZjXcNm$u*L(mAWeb{K+*^#BIM5^E!h0AN|xd z^2hEPc^B8nwGRCvi#75Ixke6BYh;O9BL}H<;S}x}$(x>&ys1Q!^N;Wa;U%df@hP^A zVUd@!e;89q^1A@uZz~_&0qhYV3-|LLjNi}9dyd4@&wpR?^yP>8`q%Vpv)1&li8Wo0 zC9dhwLw$#>={J7Zm*HAaeP}?p^vjP2bYp`Lsddrdy13T)0@uYnb4#p?pE9>TC-}uB zLPn;nbp>(d8M^}4r;ObT>C;}V|KA1A@gM3FYyT+70v`N+4s_4iiGDM=Zgn_O+Te>e zX%*`R*9_Nh`u}{~H|(?afmiYWlLg;idl=sib|un3*)Qk98N&AS@cGTTU555vC)&Z~ z;cK12NL$7GNo8`J)~Inx{4Gypt;1^0aUH%=(cY-m+CgHiUF%fi8?oMX$+35lg8Qz! z);{s+YprN6$as;UTx&h_i;DKD0-bELr3&9QTxV6e9PdSA}%X26@d}18j)?fZCRsN}c|N1yM zu1}6L$|!UDWGu~TSTm&`Z16#>br-Fa>*dssd8cTjvq1H z3ci6{(6bAB+AZ$BHjIA2-em#ywI}?&uE}}p(f`@JRr^M@h6$Z3 z==E6iNAsJ%O!Tv{*7xUdbOS{7tc>Vg=aUOSMhAFpP!`cYbu@YRj2M3 zcmHY{UPmQ|&dMtRwO}E9$DDyx*DHHYaa&MFnG1Exz z7f37PLYZH-s9Rj5Y0D>Yf0QV<;=-SW)Qi_)-bsHJ?E^ONSeGV3&iR9CBN@Zv68i>x zXR0$e?zgB%4k-O;wjQ-s=}+fHunPXNq3h(?Ps&|OZ&qvR z&F)(I@9j5rZ->)@b+Fo4?L2vW418&|h@0Zk+xC$!P5MyIpHV_KS?##GSK`psUgb#p z9*%jAb&mOE+^^>Fg&T-B61E0YzjCB~&j{>$%oozl6I1DX@c^fY9n`}6nrH{^2i&*I|wNLs7M<0059tE}7 zU+5la6MLiXBY|JTWFh>9~Rr!o;bw5_Li^MH~(s=UD43yobC*@ z2c3Mbee1RY`^GI(?bbk{eW7!{{nKLx+e5aVV;^&7&@L!B&(<5-tmffU?9>_O*!1^O zg>|nQ>zaNX zjzVVJ;LOFl7Viak^NdDUJc0L$#TgCw#Yy^0=!aE8RvL}pLni{)MBd$>VSB~lbGS;=^>y)08~pYz3Y?L#{U+t2*{0{c7u0{gM2&a-<-q*i{NDcT{(Jl5QP;!nb<=K-vUfCLUk~~CQQj%a=_k&M zQ_)Y?eqo3$=7yRVgHAu!KK=foVm@$QTzLQaVqS1Qa9(ge95W_pi}`TMIbt5U<3r4g zM9#cGzqT^grz(E|Wf}FGwnFSP&RhCmq8vy22cGe{eh7GmAE50F%HWyu7rXm1yazri zCw(l_(JzcS{<)jF(zRM!8Dq@T#)!T$#NBwkOPqyzN3;rl#x<`f%QuBf3*?RTj};GnFN~jm|ogpdE)eZ;dC? zzZPehGwjXi&yqz^i+8Rxo_Qy3wjdXc=iGjPdtCJ4@r*qO`NW@+a@vs8%+#aiOKDFk zQO@=GU1gULI=(=}sOCQ3LtlrO!~OBaE$YadL~L=|$BjzY*^DiI%EOco?h?9jf27Ts zX=J*yb>j^|#$)VseG{a2EB!FbXW6^mvio(!b8IiloG8gz_}k=9gcmtig7_n08B#&5J^|`qF?7V^Un|FtX*XU#*enoIlo-ymhsb zxA4A9=&mmldUDDw%l<27J*vMXbPUubd;u~5X_Nb%ndzIg!*#ot@_V(%Aid!OQWlyB zd<&|j4t}WH#)fR;n6kTZ_wkZ14d~&0N)OLA@G2dAgTgg32bV^f9(_5_?Y9enbBgRY zf08(*%?Qu+eC8!7*T#i=T;eUv(l2ui4266`8#mqHIGt%XOp0~h+}F2``yvFfXN_ z!rtef$+b;=a?j}%_xO|@uG-fzp0_qKCUjTqYsR0;?)PTMHTmdS#5hD-q#vdQlVZ-) zEPJ5Ztl!01zdN$*ocO(-#gnMB_<37N=6a;Rlf{cn%zeg=?n=BQVhmLayWW>%tRDQ{ zjNkO_$GfzRia#wPe_9Xz6ki58zSD8{iXMGts_QE7AYJmH)y0LW-)l!ctD~M{+H#+; zS4!RtUa*&ZXsu|!Q8!6Gbm~#)%hVdd2grlS1331mqt50<trhlAuUiFK7 zs^uEvTci)Vu1!}f?TT!V45#%UhgoYJPW?en2r(!;Vp!F!C|7;`Na*PM#f2C?s0 zI4>s7b!bCG8aaOhaXFqvoDzq773t^Z3+~)bb|}3UX`W-R7xQ}kC(qZS?PAR@RP#Eh z{GhO3Ilm{;ZcE^rV{@JdqMgE5kC@XVfNu!!d1UNG(Bi33XZx3nIXzqYy+uD0FXuJ! zP5@4>tu!}=r`-8|hco2U_Oc^o%rDMo&gdXhB;|fVeay*c5i}y&=U4O>_roM`!bWX)yl`(9o?R>Q4xDW zr{7D+qO|`jgzPm1s#UCuGvd;fAD{YRQe+l=+Zk1@*FqWoq$ z)3E;XH+2DZ_xAAe%%#DVwx*%K3AD-ud%#p7nC|r>>Wzne&Eog>%TS z<`2i)r>%+9?@-_4p5bQedES2a@NxMq72~;F&5yZ?cW+j*33=JPes^?3glc)UZEb-#_+_?j6Zi zE4Y=hqgusT3hj_Q$}bf06+%vO<6hM$-=x`lP(5o8>e{X{o#QKeZ^<_Mw7sR9f2957 zkzz+(i8=o;=I{_@&+E2fK7QAl#j8rPcuL0+c*=?uC7Bq{b%sgXcHv7QywahKdmZDx zLDmc7P5wfg4MVK$bJB^iL=4Z7H8~ zA13U+xF))1!n!I`YZqr%!DM9MjQLZ_bkALDl#KKe%HsL1E_A0e?dweBi#^?H(XY+i zLnwXwx3XgYp3OZ$G;D1qZHBZVpq&fzIQCb(F|huQ;hrWOb9S8(u>F|hpQcCtL5JiW z4`}~kJu=U?Zj4!MQ{L&K-NOoHXVSv+VfsH)b^Fl)sZ$;-VgSm%=Dw2tD#J>r`=zXN z&Z20-!!z4J);$2Ru5XmQD)3L%b=r(j&nRp$;?h=Rv1;GH2pf)0$K9)ia@PCL=j_#- z{gQ9(!gsu<w5PcS{la_5(Uh)Fu{>rJvU0oQr!Oas_LS|;Y{*^yWE1{3;eV4e zH|q@TQg?531o>cFj@&WmQ{;|YRA08{oUi?g@<*QYHOBfg)ma+j-&IDjPeh%`D;k$e zK9S2mZbABd>br-@7_+=@9GEBXc?NlwoFYGoJH>V2$NJ(FW7G5ACu7wn)8xZnPidhx z=LYWU4SA=`tL`k&j+o`uE1gdSWmOs}+DZ3JB)?*LDaK?)dG*EEoBw8C>5Mx2=I3J8 z1e8Bi+q6&K(Ynjgcs^&eVjZUs%MKBzQrKWb+MMNB^XBrrGT8cE?cm-?Xpxn11l1knJ-Ih3yE>Yy2Z+ zU+_+z*F4I?7%SzzV-jUaP54%)KM{-TXRYuXFZm(%9K$9kzwsQ~_w>m=cF?EqpiTDP z-kq7w`%IpJy=FPutiVjs*KSWO@;0fw!74rNo^@t@Q>gMdkHTnYGpn5|M7#cGAKRGi zprJj4PbRdb)N6$8h2X2>{sp~=D=W;crmQ0FblAhQ+jPc2o0cBdrUjx+N2oRpY~y@g zpFWE1nyeJI^K4VL=R8fW!z_n74pX(^4Aq8jpbZHt?h%Zz{=XyxSx0(`d!P2-+iZt|jihMqII2iMyc&`ilO%gg*x@wlDs`TL+AvmO$^W7ZF`o;{7s5)8X?4|p zLA2e_tb1d@BitKf8Q*_fmi1LteuVUE;A?18-brxB_}|t2h=YAHK9;Wh`agx&y-v=v=!=B=lwg-9rFAWF9`b0#70MRZr(y(W$K>L<-DZ#UAN?L}@k1Mg z-_R(1=AgfJJQA%O{s$3`w6gJvXxVju zT}@cZ0)Q3%ImCJVohq*A3h9dt@56nEu5k2*6~afI8DC*Z-=TkS0?8H1cj%pm`3^NA zE37Ky4a5~);Z%fH2;U^-$v+5RQPn8J-_TM?Uy$_UW*B!mHTdQ@bv8R{Y$82U`Q=7UT-!u895 zH96`z+%H2f{iCbsTi-@?5P*`LGl;Vh>6`MgEYCy+~g-j3qbH_1T5}LdYY1cG3S4 z#^33#Z${qD6>(a18Mmey@3ELSY(x6VqE9Q*LZ4eACL#6FXxBg};bYqtgc9Y0^{LJz z)Gv_qIThu_b^!Z()?*U-hdzAr(aiHM(oEkJq?xprfNs|1FxveCwEvB?>x{Yc?E%`O zGG1#n-d}R};-IxE-t3H2vFxJJ!Jvz=4OM(veY-Oa^i5QLQv2i53cqyCj&q?Lzh)>; zT-u0?OUrn)$6dcz#8U_*7mK)nY%dX;7UOrCKGr~KJwYr;*kEhgbzs@lRFA=`m5GbgTWcE*=( z|AhbC5Wc5xQhqyq>pLm^#?nsZhYsVEaZ&qYMghkH)M?RHp4n=}wR(&230HV# zvmCR+=VY_;i#iZDR`{IEiW_UH*nRXd6>ww6nk|(RR2?~XD-@pUtk|)768rs}__O6I zHg6U6QEtDXF7)%sal4TIY`!ALE9Rq}J6>xVn#GvqxTcRLcihq@N{r1cKcJ@imhp4P z<6Fia3o$lFl0Njmm8y#tQ| z_ZKX}SmxR^8!+_Au(VbaJ{g3ckqB*8+Qr!k^`Z3F5UR-t{}i+<(@oHdeN~-jwOI3u zk#?|bu+TkOdY%2m98K&SxySXZnCoArzwL%KRwn1o%Ky));BAT@J*j4zgdv=O;gr4KRm)W ze^cMIW_{C~_03I3_~y^*oBOi9iDi8=_XywoUVW3y`lco8n@f)H%_HiYJz3w3%xdfN zkMPa?>YI16z8QsYZaFPx@f+?z{(6Nb_5%CS#!L%UNZ9WIhWUR~`2cP}k-xUekE#6c ztNiCw{!1#qx_XfP3i5wM%2?~IS4$DBc0`#z5zv3!stOMJ&D938{~ z{=_`bu?d^LCWz0U;@oaWnYUTA1+T(pv51<=(0Oy4p9I!uLgo(>vTJ+Bm&~zGUS0j9Z7fwVe4okMr4kk^d*; zPt3~4(~i1y4h9@$df!`eAE;?9&h<*)Hv?&(ws-hi*52W=BkUcr_aTSA*)8@C+?$2L zpZr;8Pv+1f`;;=x-i>|XbFJN(dg@`a(w;`z**R&yMVgtDmPFd|Icficv|vu!!$|w! z(BWynMB2Wbv`t8RIVbH$NZXN5OY~Sw5T!*~6!T}wG(^4X0D`}AyX9L!f&a6H7wORV@yQzDkj{oE) z@cC6jUp@-!>-=Qj>jmhySrfaveHcH4xo%QSzy(TIIrFMx&eEd?i+eZ)!oO^r<7GTL z>|LkC<=QZ%NwayMg#PP&@sR!e>jyILZ0!(!cxuPRoJaBf-Vt&SF3#2f+lzdD%kSO+ zE+1q<-bHycDfCOuyqy?Bc>e~tIQPyz%Y(J3#hE$8W7po(;ZUdcW@(30hOzYY-B=5g z+%GWJ^!Zj}St7ms!A9Ci*;_FFhjcBs7j(s(=3gwgixSJzXLlv+g^8Fm6YJ+9q&MMz z6#rM@e+T|=!~eDT{{sHE;(r5!*KS`jWN!l851&|JJqoy6f3e)UkM{uZ(D!Uole*bmfO!h}uf}6e zDjIWkgOBV<#hkt1WBZaZCx*54!AQ*6foC(mUHmt74^Paw7J=iAzxQR1p}ry>v$F4h z40}uJi+RV6ep_7qK!r-b9XP~&Bcwn0;eehX`JvSH(uY=W6}FB%xn6Om4TRztTB_^~>-udlcS|EJOK0pL?vJ|2;F~D&W~;m&KO&`Yyjr-;4D0 zq=bFo^C5c?=I%IrHy!zFRsO5UXWvj)WFkGR(qC5T)W=mJJ)qKesr1(Tv1;gYC#xdFSL!tO31@MQ6pFs%W_>0Rs09WtP0x&#m!bhycKE9DII*p z0M6=FSX*btgbnT!yoX^%Q%1N=;0Op?EMH34XPGAmTOHbHo%ecQM)>%kZ#*>@rnza# zM+eg;XTkXl>A&rCl}6kF1^0QCR+N=yX5n+wPEl#Z<))pORfan+Pucg$GEUt0N%}_Y z`(zo_NBDNk8=r(5{l+J09`(j2={x?70s8!^4USQ1{w%l(p65lR4V)@lz!rWukk0a} zRJxXxP8xKT{=o-_ryDB$9i~S=iT|yv^lbe5veL8hTPmG+-8`nh`oTaO@&8|68)!#i z50mphkUAXRpE^80m_9t8{*;T5Ry(c(d-jA~t#5EfN9e<`F;$>NQ`G%w<~5KjwNwCe znEPPbwh6l_$ely5o*b3J9yQhM&`-QCihZrt{DwP!c(ysansO)RkAAkrb55V>Nl^}q zYRy(tGMWk+H>T*nZw~O!#Z!$r9SMr_+^0!nG1h{6J_i2{D7}1hNoFne?06R8c@WQ* zoO6y~zH^Ro9m3zy@zjg+>>um%oS-~gAiX?`Bw7!&6+y@^l3BFu3ak6UVM%h!#P2n;bfo75N|N+3@3H) zpP%9UI7?=HK1-H-EX(IA?-7c#8RF)7L~}{cY@{Uv1LrxDo8{W@Cv~1vGicyEr&gWk zd_lqN>XY{9Zw3ZnPE&dGi}@`0Z`P&vd@BEG9aJ3`;14pqKhpRCT7hC&pljE?B zF{;Jc;~H`HxRm!e)VX-R^J)5kofnlfXeiUr*E%)AAKHwx@N+`_@=kn{XMd~ZxS7In^Rl4xtA~vnzZf^)72{^L6F_~u@%Ho$;!L%|qW_bI z6m2=KV0`1^>n6#%P7!BUSJ;rn%NSGhI%V%Mjb}w6d2g6!`j0=-lQB%`@6C_#5e$(x zw>!kicIA4kYvUb1_T==78ARSt?Y@0p^8(>_>{$BvYL~6PwdDXD3R1p^j92MR#}o=CNz~J~Imd>c zafa#7IL8>zI928|&ZN+4VRI407#t-0>LhI1j?xWN^`5ER3WBblUo3MUi?N_26 z!4&ztOW)7;G4?IjN5aeo%mLb%j+1tIlajJ5pSdjU&dHmRKXqw$<{XF)t=UyuBDWqXiN`AnaS^fonzuFLxF3ZyfCG0zB(eI$91b7)F_ zTYymZ9HJe7;^UJd*>mV$Kux6s5umK zM(eAcTD0fD9O_VWsKc3)p+5_mFXvE)nnNAVMaZksrCv+=DCls)8ENNGoyX3Bwhh^~ z4ovIk-!~2LZ{Bm7Tg$TKT;zE0nMEnu3PtoL=OUMvbFGZFr@tcRx{Q7ZL2$#?eqoj$@%d+ z%#S$Iesrt!mq!~gtsznFX(;mYJJ+8A*BapPoM)!QTGyPluJ8_dbP4A|$6<5f7mX#E z@2R=4ws^pfM$Cn1%Kj1Z|69$4IVzv&cO(55YA)1feRn6)na{Xa(=Zn%;7N@svZ?bQ zGosE8n-2+Fe6>Cc-%9-dVPD@c>i7BhLt~uOSBva1QwT48B~u2NEBqpdZN|aAj=T%+ z62|>N-7yw>=8ArpnbwoY$M0bBZpY`ABjO*=lJ~hn8}_oCUeA~}MmBZ{+<~O9Zx?qR zyx|uePjZf>MP3wlTRjc4oPv6^{hXGxFEYz13b&*SXSbyN;n-gKy$LijCTL?SfVt^2 zycXkp)9!(1=0jB6^ zo7bR${;Rsu^e^jAMn$|=`keNJ=Qy5Fz2z4%DVi;Rc&hVocuv|EX3Ugo=Y)FJQU3Pe zO+Vm;SJ5`DF;$pVheB0{!Kw}o+T;6t=B@(G+$!kDZ-;64?>uDgLi=rX=p$#;1l~Q^ z>g0ow_2M{Ah&coquY8E`6Q_J_3Eu=|{k{nf2-`d9i|=q-O8ISXU*FTj`KBIqTwk1i zV+!M}(l^0!o)KU4d5>K^lIw#vrS5JQXT#I3f$spm3uJv)I#&Bk-|52t5B;goFUq!b zSZ{Xzo%H&#GCgKCivJO$zW%e4 z%mVE7!v<|FT|RP=9S(OCXzG4U*z71+V8)yie_qn>Z*z~~6Z+Cx%-vf0N;g(HeP|zy z2Vqysxy^aqYP=x&Cy2BwhD$%>hVFAhdb71x_;ukL(d^VEo1Fyh+P{r zb<@*IADbcDy9hWMLc$lY8IEGj)Or{*V7_*v zU94*X+9T4JNx+CZ={LQr9DUa{l`!m^&Y(uuCIHw3F z(q;JGFJcd%P9gHMdf~gBJV*<5i2ocXb7?!Re7E!4U5YM$R-Q-MxwEaq=s)gd*@x#v zON332usH+`x;TgJa9&aNVbir(C4Jq222sE+#{*`hMa2jKU)^Lb(x&3;9*NBEE(p!pi$+-bj;Q~tmqYZTM=jBRmHjk}N;wL&7UBKIHC zb~KR{OX0s)_Xr!j1ZdzmT%>r}l3S%tTFBG9he&&v@M6)QrWlXP#xFHsM(88UcQJc?OsFYC=PjrcN1+lRChzSWzdUwO`t zulz;JQ0AMc##^--Z-do%n-gvkZTP@FGA_si%ExjM{s*#SU>s1khU_2ZXLpb3vuiO9 z+%<;tqZWPJC&t?>xh|ZEbpbG~=8J-E`g^7?`n8}l9FB?D3U7{G<%A+Js}Akh{Oflz z(~(}l{Xqn8>WcBEe}6g8pvW`)gAkKRL06%8BQvDKiaS-?6{tER-unSFhc2tXu}ZF7U7+`p~#Nn zeZ{RYD~9)OJoVwF&X}v}>@R`FNy&}agKXKi&=YfxzJRjWdZ!{uzf()F?^+`IAZRYZ zo@I$MJGs=^Z7jy#dX=S__ge4ZH^l<05|W=qJ-!e7(ciy}@X; z@TpHZ*&nKQhR|j(t~tS|2H9Cdn&wdc-xd0ukflOez0ad1+T+@jomdywg;+j$KWIRj zvk3fUva!uxXe)C24GO!Eggx2xS-SyukTEQj-L;2u2WZ|i{mC@p z4aVsRB~#CS)R$RhF1AMNORN`opOSI<=!+*=j``JyHM`vL8|C0hv(kFVgZ+>P<$93j z5p=uj$6oRb^kM367|ZE8`|6FD12X1i`cKAf>AJ)kVGAqTGbHQ7aY)}BY_s*oxvE!?PPtJo==w?%4gAhW3BvjDbC$HU{Ey3>-Yd7^uiM z2I5aT$6yT1%^CybJsbz@dv`2k_q#W{-_3u$-^r)kI0|8nw!x5X!{R;_+E(YZ_H0{7$;nu@1={5 z*)P^r<{uM&NyKQNJ?%lY#xh3MJ|pJzO`^?5+!+eFrSIvT_RyU>@joi=;!(C?p3fYT z@|mqd2XK(`1NO=E+2_X50iBhz%(ssQjg>5KGi0d9u^#&oy-vtd6Mi6l5HgQ*K#R|i z_p~AJ^Zfs4;UgRTzhU6)ljjFqV;;D4e}?U#gi8f#+BKwt2Fc$o1k5;Lq?>}h##ypCrNagJN9n0E7542@ZvtM+FMv_~=8 zmT6u1Pu-WeV}iM}P}q5_!5qVyfOnMkV0g#y7CJm}Z*#U?tz+#uuBd!AXvW(&rnIj7 z8$%Q2c>9hSlJL>qtiVi_uQYZzaXeLKOJ!BGrC^uQ*uSRq;`edt9H2<;HEQ%0t8du; zjErg2!WcJIyLub*t|Bdz#kn7<6Fyz%*cE!4Gs$Q}pTwQxAje*) zV#-u^t#yvW?>NTlT3y;0uE+1{WV~{;PG4Fq;F1`xUZXihUm=x!^vfF-^5adSZPz&8YVQ&DE(MWPxgqGeROp@8 zYDS8c3u-b6cAXd8qb+AnAKW?mFN zZ)fqIVR4*e+mt@h*F$a`O&@phDCS4Jz=*CbFif;xG+xO&^uFj)EfBp%r~lC24=@gs zYebt>p$z6zZ|*f(Q@=k%8!FjehH9_jXs;;V$Kk!yATLqi|t@r*okzpxKI4}HUXz4tYC zXE+CFtH61%`<9Z-pVYi4R%y>6Z7I^IZ*})mCqZuLGM`WTWc<8!Z0{OPJN+T;`84(4 z;(j6at3G+|zs_&2bjDA9;&rY`T^hfOT0ArK8j%#g)xwR8y>j|wuA{~^sa~u%x~46k zEcMgNXJZe>b(?c~Jl3mT@Jg;>`{?^uZ%JK@@kIL~=2I6l^XUEkx+zWh6W|(_y+$%G z2!1wSyNP-|&zLXnll)Hj65>6WfL(=r#%-exbNSI3Y3~ZY(4fVf8uCBzp{j_ygUWl; zH+>-dCw{i_+hLJx9K?KfSW?m58qw(_;_?oX-rXB&(7 zUq$bVeft4R>hYg~~0__Lyjdo|29xMIhq<&Cj$256odCX09_UPKd zLgpKG;}XlYx#zu-zN0leAkGk5t)}z#XKp<{VwInjub~oH41K~!nZdM+@%Vx z@+=8gG3Ll{7b>`m6~1YC;LcHSM=5*@^1z*;;4V}6?#lx=R>4g?IVj-Vd>eTutGwO# zcF%dgOK0c1-;Yo*{!<6ryUsr{OqGI}0GK^_V1_D~xy198Bf}Ibm=5B}1M~583A2NE z>W&Qaj)HlIc=Etx6im%&!1L83!&nNY9x!|I!2C(U#E9pDBg5=cFq?@d56tfr%wFQT z@W?Q~Q7{$85PMG^nEzHVo=Iw)0rp7a;-?DkY&CusQEr zxHbh>rttYk92u@z!JV)0O~?cHz3KVK_suHrXjRtSJUFgXa960ZI`Y6>q2LM?@7R$C zu3o`it?<2*2kv|YcZ{O1X5^9KLJIC13SWI5xGxYc8by4nIA4Za+wFR(hnZ1d|E)RIF~kPVHKxRt8jKP#w^bjD>5ox zwpOf%qK+T(LjrQCe#{{IzVHJ=KHjZkA8BlKMi=eNBp?G+om_0sNB{FK8}E?|KNs}> zMq0z}Ifm5hC)8b(FTUR=WJjh&myFq3rS<{d5ci=%-=C)JQmph*B}zXvNa#E|mF(S; zC40Asa*k2wE(fSz3bhD-P&~7K5PSZsD0hfDkm+gjK^vSR?mdjNEpM_h z)fIX*?M=SwY`!p=em9wPXhXyO9N+ym5NuOZ>euQ*wB^u+ZS6ft?9~`=Skz&Tpk2pX z=xxxqg7y=e#Jy(9yvL~cL+=UQShM2|4d~f)p=X;R_Ph^j&DLq4o9(Ep{@$$Qc&hN%OlK~ zjTi&_;_VLW+}qGDYzpg>pzFk9yACoe{gl>g?au73W=n?*Nn67X>~X?z>|Gn$oO;F~ zN_08~zHN>39ti!9&amT<#W`kc0aMe}=FCg9aX;%+;JYe~``|Vw5N&gA6#A%k%v7|bjMr}UN#GLhz&1ZPDMHJ8_g+ClIcxW5b0k=I^)f7e^{XAAaydlyY&^1R$K$xtD-WV9`yllzAN{Hv^{fm z0dqe*d`~#lBlS}C`UdoKG&LLi_U`iinbE+*J!U|iss9PMW~VkN-GWR{Du0?@MYy_aUW^FnZkaPdrj;)Pc01f?>7a0>^G}~U2nNPN5}qCBkpLb47eWU{!`m- zKZtji8M7Eu9c^oEMjHagz7OvN(z}qKz*Eb7ZMD$R{SJG-d0Ff+64o8{NnV{KaR{D}VJF!zUQ5AO3sTP>3|!sv%3 zH#MiJfBJ62-(NQyo^e7AOUm)C)V106Hte6in4D*k_F#NTihVUFu|f3Pu*&@zA7EB# z+S5zN${6EizRS|T)p$qtI;+8KvwZq>De6tG)2CR0=(3ciElr*Nizi<9V| zH7_Q+b<^d%pl@K7DeOYK5+2%|k4|80$LWhn-c20&F7FPnNbwumVl#am>QbF_$MT$X zOzCg?eXWk8|K+Ig15f`3!uRs)SEb0aZ%f~nVwpq6Hl@N^rki6qkZes|MZOx};P_J8 z?aiRgo4U>B7Ja{5r^jAfxmx_VE zVO}wx=Xg=h%O<-4eOk>J=G7^?koQ#eWP0N8CtmmJQRnN*7UpQY6X+AxU({I}WDP-^ zX{hgmz`vdLy5Lb9OW!NopGkJ1FVMy-kbXYCFT(rwMctVWwZ~2`+WZ}kvgh}87mF2UIqJO1>2)wgKB)=OZ;df#%tK3 z=(r1MA&lc4Z9U?f*A6LN`;KC}bZecxQ~3-tqfv`@p(g$oa#FI6F`euR{7-HhWHUBI zb#en^+=G9u7ipvLEz_qx?GyIaHTXSYhy0fDKz5+tPrw)`)-D#Y3VnEQ<$OG0hp@}+ z*Kgy0P+KDS`5yds(+}eJ@Ow*yzD?-hO=(L|fwyxnZ6GfeI`qqw4xQzE1HY+9Kavhz zM;jC>9sJG%@;+}7@aS1KXAW)dF$N}zGeXAY4X3qu!dHGlZzf0|NRUNeqA3~)>HO)VLN%TeJ^dn zAUks2>G95f9ygw{ozW@uy7XgNrFDYOwSdpH2>otZ*#JLIYAwz$37?d{HiOE)IB5vz zZEw6szn4k54hONGkxu5{_&(S5PLWQYcqi`w0WK+GPONtt{f)wByYYo8+@L62Ies??B#MjMwYJZB7I*^DxF6@cjaV zGMF}uZ5dGZdKkB2tWozG0Y5vlr!TWBYs|6@IiAl)KXATK#@r#+{Plvadf?ls*8Bo> z&;0t2`!c-85l_D4Trs@GTFH26$@Lb;m?xPi*MPfP#uY0MC!cX<7|%Eh(Km}g_r#<; z1B>E+4FB2pAs;JinGqivuY6O(Do|GT)) zfd8iapP~L8v_=!_orN0D0xnB~_xQf>)qy!TQk@re-&2y|-G#l1w_W?~k__X~jJ>5h zldapo>f0q^EMCzkWB0me0$!mrZniG{w&b6;E89id5R(T|mZhGT=bzd=(iT>W%5xQ- zd5|ysrLH$4&OuCR-^aaQsqn!!U;|27Wy?L%PMdaEt{vuk>TVVDHzU7D=&Z5UAL{Fe zb?rLe%wyMi_Ui+7oz%lG)RtJk22CP%cldCd=RXUdO48V^yNDE9Q~!d9&3q&KeU>;R45$V21V&;93Uyn*9LllyDh zExl>1bm}zhQIlt5-!#WQhW8a9uW&!xi#$Wbnx0wCeXfDMxNE2H*@=B(s9E?BnHOmm zK1N;*HKpVD?MGTG)|Y|uo6;ThhX?wnLk8^C9^dyBCCl))dxs_;O~VvTRXH@FZGGf5 zWiD;cfHth}v?n8Nq-oEEJJWGP(ljqRKoe;>h&<9s+5}ym$M>D!(&gTbQTiP{9Czv> zT&G@kWA+uls_q?@h&!b+E?<={&o}EK$FaX=>l}YOoRxT{gNF-Wr6|MI)wt(UYm|K~ z&z{o#K0*`eUuUIrj`S9dc_Y<^dNxY?x}}kgw5Lk{DYP^_RC{=z4&KB%F7&iw&eJ~h ze(QbY#kHM+$FJl&l(50SgbnB-yrXzxcy{AiREqy2@PBNpLwpCP?@TWRF52O>BF~3! z<0D$dI@$r4+2Q3*eQ3GUTlDz8Ux7Z_#nDG7&!~7dRk(pRnl6n?K;xtPNFU=ZkVX-I zfw8ecrygDJybqXoLej``E6|54LpvStIeTHKm9fk1gAeXZFA7N-qIk#f><%4H`|O6L z!bX+;-gwti*q2U~K4A?lF8!*-=~qqa>1c2J;ZW&cjrJLHM{LCU!1yaM$6)-iV+M(M zXVleIX!MWzIcJi0UnU57sOt1$89(6^`d8pNH0|nQj_}zQZE+mpjfSmB%4Z9G473m3 zpP3DLf_n?@E4aT9dkbxq)3^hBPwe??PmH8^ueJ&M2(OYmPUgNS!ac)wo4!{K>~RCU z?}@#GVT{6FzQy7hv+z#~8ak96KJB$nRAcG9J{jvs*S=%V*S=FeSjY*9^y|xeME>68 zJ;H9-y%*j4j{NS7obUFlSR<$3p=4j=?S;IPQRDlqKDl=Y`iIy7wI8^DzO)nn!*VI( zJK{d!n60KJeDsU^Ogz&ylHz>Zu0#DhLQPJ6vdNjJH#x0%;&|$XZ~hrVuBHr4`>tIV zZtdrJz4$#HFednm$-PHiR$kpe-bwWNlvOs*ZVln{Q)jg~H z-mLO}#kyye-;uS@<32_&KGQ~W`eV}c;A@4Y}Cgpn5 zf%o%SYyW<=_H*625#=7E;xqQpc2wOtq3vjuNqgU@xFgR!8e{M3%KnCP_}`(o{P_PJ zy=Q+0dIO(EuOaEBpKU>N=x~}($fCI{w~aw7=bjg9W(VG!ldW2l;H#XEN21yFMP4E3 zma_31S#-ai)6TRRacTD(Ji}{p-1q=TZ1d#5(dJ><=3>28GD&MVf15iWk@i>rpJ{WA z{!N%ICYrX;ak&Qx zXu|&9u1nnEtksuUo6MyS?|1LSdsk$svl~x`wp8dLZWz2j6QJFyu@-sT)8kHi;&pE* zmS*fcf8@l}*x^sS?rHd3iaf9v`Ss=<4tXK>lsuQ)bL!Rsz1XSbd3OliPsmtm(T4e} zsNJhKBy|yA?7-Dn)F4WH>?u-oLX~@qetjtrPcY#T_qXn68-8f z^z9!=T|uGHWh}91AHKF%>J>KLRifZ|!$GA-D|Tb> zT=@9DR}S>`)O2yLczK%lIMyrppg7~%Eo>IN>VD{G&`E!e39Z5jRSXe6Jh_LU{bc9! z2QutS-B>HWc@@0EYsj{mWXQTwS34CnQU6)2^rJsKAlvFD)MuhmFYgAMGR`EvD|i}s zd`G}D7I?UaA)Xr)j)-UzzZfgT!L*vLm@^S=f5KfQLVrzr^%9JSM>%J*)-@52tAS@+ zf9&5^7pfRPCn?+fbFPe8++X{`E!J#|zsbqp+T35WU%9X5+O`|{tMr(4W^jLIH}>G! z`>MtrQH%ZtCV#EK;vQ?{i5Ry}UY+87$=0o{so>UT?5(O9BXijL8PZ-iQOdKVowhgG zYIA(7-FmNBJGr;2!k(UdTl6KyOx1^SzY|n3Y{-Lu%h=_8S#qY%HC*a7vey#YHBjE= z8bX&^TW_pKS?e7g?L5@*S_MK!gR;Q0F8;5Cke8)Q(k$xIVMu*YYpB_Y z<9RvM*k9JW_&r@;FZ_LM{TIusyz!G|QU8-&UcRy(_&4k25q&1(G|W@wuudJHQr3$9 zP`%tbeOg%!|6*A)kI-MOS#9`f{dJKlt6#@R+0}pyrL8`!tf8u`f*+`|gxsX+gLfQH z2cAD>mGhn`XSL8Dp79^5(`V@`<6kVR;D#fY<@VR7l~th1;#!!9L@lA;56L^5T;q7Z z;#KgtkaiLEj_c?blX4Ped#*iedFM>|usr+2z6{SeC|9pn_YPdY4}|$g@&3&EaLjS< zZhl&sPh^!@q4e5ED)WSYQszs!WlkOQ#yM9;E#46&f8TAy1%FRO)``EW_QJNF>CGEd&F8&E$-4X z{>owz_t;1-R(jht&c^rqGP>4a&(|8t4>mtub)UAxTGUaJxi7v%+^_B5J49w!Q8#XF zSf0fUrk-+sZze3xValmv9~O{pIgIPv5aA!GT*O@C{TKRC(TvpvesgufgGQ`ilNl?B zD)~P54k_=$@h*ZVSY~@pY$`_{zKvDV$H;!=SF6D<&!C>XQQDGGKeu^VNrwJ~L)DKY zT^|eXese_lMd62mcTDNeWOSs-Dp0;b3dbbu(9GVEB5c zeGj3JA-B`d0n?k1ejjKlRJy=>Ko9S&98@-qLhcIFSD?Jxz_Gw_;qPing|y4K@h{P%0x$>`6X0PUfYts)I=bUOP@+&lb~JBNhr?dw}k+rhD*?>O^M0_HrP zaZ{J9HCZ!@2W)m0D4+hjK`Z5}Lxc8bs?AP^{}*VTP6N-SwP=dI58p#x1JZ72>B%er zOuuc;NXSS2W@(!2)@DjRiWhK-yZDip>G!UA8pw< z=2kT{S^mEb*yj}rSu~Mev>$yzy9JDC*XEgJedD+v2wTDliLE8TQ+^wx0dYB ztet{3INc|F+OZ8-cVEbFQ6_AxST4^0M;vucioW;R4!hY7W1CY!5m%<%5@$YW2fx{z zUd#HMTkZ9YExbQ&Cp<0ACbU5po(GXvoosQoDqZ;W0y!7$8|1m}uB@{jVYiI(U0Vps z!c+gz*ME;{&*&X#o-c76VlS5xdpV@>Z0IzlbElnZ&p*L=>Sx3`EC(m=y)#aY;I}F! z%@0pY*fm;gjp0Pl9f4l+h;aB|NF4ZPX z|Fp7xm{pc1t1SAiIU6vOK0{f}S!I#$L{9P8j~I1!AXaRbHrCm0*^IXt+4_ReNoXnT zvEn>GY8PiawW&5|59(H&dsrd*paSe#XLrCKaJPBPhIZN|Hy ze6Wq*&JH|JVctFp-oks`OAR?k=VQ;g6J_kevm1Cffu1dRz8vq)jN{!vz%HEDo0)?? zxHnFJNF9zT{2?`45#Zy#?d3a4GWDkP9mlh3xnIQmMH$5!_UGYdX93dJuH&Au)2YCk zU-pN-%<tv z`29a<8OCUtfO<7VS}Na1+H7SP!8;qNuNB#QB0hV}j5@pasycfP>htpLJlB$bVO#Yb zB4+T>D0@<&oWuW^C)ZPs!B)r#GN$QTVLy}dsFUEv4~Z;uX2dpV63pX zhi4z(|IC3*DzX^-1bi*llPT6NPLEQy86*4pG9u1MS0eqiM_WEZ=>@3sG2>AY7kt{7 z{emy@_Y3>wyrzDz$wL`qg*AJ6Z-3ff`}&4W#99?UYN%~~5pn_On23G4u>hMBvCpB?(rAs_i7@b`XWqcZ~aBCTavv~C2gHCeP?uu;-_ zOct#_%A)lW;MxaTzdd_^Ruodqwjyn8t1C`hVO<7#*iKuTdopML*J6vbu}&2z%avhR z=6-xT8?>FQXxnvYfVPF8ZR8Q!@gKDVv_-RMGgUhlX0>Bi4sC45@rt(FF~8Z4E^S9E zeJIzJd36hMN|6A12p~55oj8sXu3WRP1G+1l^jBw=i09i z^ygh!^qm6wPB=n;-k(L^_$>NtP4=fJt3Nj$p+8^WDe0S@)1Sw3tZhJlu9Rc#Xvnf1 z{*BHRE=`d{`eDeOCo1_UyUn6mG!4n3=^sMoUTk$_wb|BBwAo^7D`;Zbo&GyO&skaU6aESPZGgWF@T0vOovk0M{*QBi+txz+s8PxWNQ?pH7u7mNjsf9s zEo%(ai7~LudiUIcF>uBw#=tUb6v||~v^4c(9z?wAP0WJdm)t1e2+!|w;ZFzr=MD|PKbj=|W!A*Fi+>s5 zmr3||vvVrougjsA^39+BAlv7QpqD!2-1@xu2RVmMLw*-+_`BMipX2>fLwAPp532mq zCqTisWV{~gvKhybGNJ1i^w9NECJdtd2bG-uKGJmTQ5nB}-_NVIR{U_x)_q&5w(k4y zs;x^Ot=f9bOnJ_QQA_xQ3B|0*;T?j9)Wz32o{KNdJJtGPCvH6H&_7qbxmL^t`l4KjzBPc?^~FVh zfAj%Jdvd1H7hna_s*qNVwArDhf+w(FS$3h=3$AqzVjnp5KwnQS@Kxl&M|*7IBaXkR zy%lZGXy=u?_i_0KeT82AVV~>6qDsWUp?@IkbykTz)8qU8`2HvNPTAkj%=z9>-#4l6 zfA{`?4JiHJt`fGeD^cGT%a8dx2XeO#KD1Qly&cHFaph+%S}x+`1{%t-mneq}J1ecn zy-qOdbpj1uqwRoeR`sFi1N8l|8#6i`XtnhmHl-2HQw!>Bk4lD zg5sV+H0}E3XS)r-_;LT|qlfbu`M;!3B+T(weDZ%O`^u9w&WJ;%Z9gn6-}mFx_v5l) z$Eokf<@vrS>-+4!_NXzHI|e*z4E!@ZwOM#-v+&er;i>J%Geg`J@aR)45AR$sHbTz0 zpe+EUOb{1$QlfH9^j%=KCK4=%DVrj6_|LxeAA#%1L>!uxA7 zkPR2wH$o<)-?^?*kI4Ts^8c|WlaX-=>V=KaPRLcF40HWnAIcai?nSM4g6clkL6q|y zv+s45bzV+c)Jy*b_==Ptx>u{EFUE@0O6r|0#{Ky_?@VBBP*#2uzln?OL>aXr#kyP} zY`AnCWip;U+SKM5Kj!tjs*a3f(mQOBDEB4cAHq9US>vF8tzt(HK-y$4Lfw;rA-o$dtUSCY9;;br}@@eVO%UC#pUJ1GyUJN9C1nbMYl zHs$oWz&`z^hyK;14c9F0+0}2x{p~$kvx8@N?Uzg`zp`%RsdG^``XgO`jI{G$+LcUG z-!fi{H@d8>D4ZyzPl5*3NeTZTj0F{Lv5GwH-392AFZK0hCJqY< zI2+%6S>dM-eYE%KJg+sy|Cz$CVm?~GgzpIZU>2-(xtDX$cH69M0w1s_D(B-NJB@(yJKe_tZT{?KrdMO=QKdntTdH0^2P zdvz1$Ttea(y7Fkket&f)Q!sXUs&?1_{)SWAowt#G`kBiu5rZ0X)8}r+zV4pp6!m{a zMu8R3D($9IQ>FLd*#}tK@Oh$3EkES^fHqtBHT-V)@2}IBKKCg@yD9|^`rr`r``AL; zZ4>gvKMEY{9L^Ir{RO0Xw9D;@S+r5N;+Dm7Sl(X7RwyqK`Mle(V|7-0=CuFg$g4(s zPRha=yxeO)g7lZdbvC~fbJUc6Rhi#~JOkf^v%dMMDuZxtpE3P@q*pPeTUI`Eb@MSC_k=p^7v`9?Rz%X8{-cYf#p@_Zrdy#+_n~uNAu6JDp(pP!T6y#G4trG*xq2 zyYnL8$lnVTe}4}D^$B-M`@+bIGM+(~=kQtHqjbyJ4)`eh+mLl;+HX49h7a@1NyLlv zP^W=@AzsG9$ne~{>rPR>-;>XPw|H(@Vg|nzZ>j~O3()@8zKAUZ2tFiMk_}C=St|i)>M)oyr8^pcs z4PqZW2z5Q3_OBIph?t_hudYXyS-cyDwSKRz;!B-O8M7;4mk2vet;aLAy_@Y1+B_Xu zbIH@S!n#)VmrLt4Y-{r>W~khyYr z!kce1O-2jv%e?%@^f$PwYzktT&CDaEs}b~@kvE8E(@bmpa4KJ?!baV~Yb%%Jss`_f zg`WqfAF`-jzZv~3GC*~sgGx8sL4KAGi2ZY$3PBOSI5+05nfSjuU;XmEt;LpTQF$p> zF|~1pY|hkf_4dXM$x-*7l_e}LK5eK=mU?kU%`U9-AeAD=;jnhyPURfD-%MPyemDd% zOj_5dT9xwj}dFY@E60GjpmvuyjoT`4_oP-0(-IRCdWKew#>gM+*3I@*< z@}&lZtHck(Dh6J}oQwv>JS}0lf9Ln-eyGNa&P6)`KQUIC38*Yv~E!-qNr1w&S$uqy!_E%_9Fp2>aW(62wz` z$;oBcQmg$9$w|?;=J|~1Se5^L7XjSw)l@f2vYi?AYfLuU8>bzAmUZ>|KEuqgb!D0& zPWU?=^qsG6K0P6_FJ)Zz9yOZcbemM0ejQuT(&9@>kk__ViWIVYr)H- zIY1GIWHHDd@1KOdj@i(HSjYDI3YD-0EZ3#+)jsN?_DMKwz{7 zQX@0F7Y0$CTj#qosCJoJnD%+f`Io;*d&hNev0jgLoK+a(=NTmJNiGV75Hm=w_IPj! z%jL2mIu90M3GC{FsN;_GS8!x$^o|48>ZbkB-EZ6d{##`#@*sJh z)?^9upDfXuIzu($CATgQgq}M0siSiHgFkTYBDQ|$TxlS2b5Gs~9Z!yBnOV{7Vy$-N z|KnyZ+7M))|$tK~X*)uAtdXwv8Nb00RMNY4XW6TxUe!}|G*$Xca7 z!a`5SEg%xrdq&&DD2FV{ir(xLJ@}o;ifb<9)!%tJdb=B+Q$%y4KXs@p^Nu}fwf z1ppp)9y~KUTE1VaWd5gHN$W`D+wFzefoF_+`JY4njs6X8wb6@%NhNGLDh!4VN&-GF zI-Kgltv>|)n%Y@!5U%ua$cpF+F?W-oo2Dx6mmyCtbX_&@j6!n+G7l(3UZE>v;l5b< zU7~F&2UVh$6Z}MNH_UbGdgx*X?blx^DgV$bQ&OpCs}x=Sw+$5*4bQe-G@O7;fYfWY zmKN19ug_pl*nWWF&CknZ7jBL%h02yP4QUqnVZuy+T7tIs3ntuDBRiu>*|~*uGIt)`WrixOzwS>|=8``uk@CG;bg}9NQa^rcxav;K-iO0kiMI<`v~)RV zxf^cK*5SVN^09chYU?FzHFnl9R>j%A3AI8|rEYNf=bU*JU*Cv^{M>F+YIDlsGlcgZ zn?{}dkxJrh-gTNx%;h_kN&Y@i*SHOY?s2Wokw- z;AG9=Y!7{NVK$7TIciK9PoMNCq>!^ccaheARF+*mHn@Yjz>ZD+y?ZoRtgXqVn=9Yf8Up4v|ic~=a)}v z3LkWetNbs4DKv8_P(++1G^)yuXeqfr!=DvcMHjSYPvpMg&=^TvNu!^-R`ZW^VV+gD zj2At9#SR+-cT)ViV7aI9)z4)A;4c5i4$Mw#nOW=X)Jhbn5;qTSFkKx3UOq`tD;^2y zpAW?~VM{yO#&&LA(t-z9t%_=?EIO4b-*U7p%^cw!&KZ1X_YFtrk*&u4PCyd7YJ5Si zs<)4H>c#`K)p&uAXP0>cs&~_NKJ$#ncknC*W^M~E?td<@_9csy-8=r)7BZP4XTwxt z&b-0*CM-0S4%Bs+`CBSv<(nt)24ySj;TF@AHZ~cVB$7?%VN2Hj@^fU9tSe2)WgKHJ zb^6uSSt>fpL5+}~U!uyky(zLtsvG4=m zWL}`3?>)QCyG{Z@P0x;=+X?*ONEdQYZOKr8e=~k!OgNHkgn9oqb<=f4JUv-aPmtlO zQMh7_TWc)b>63gjE>@v7mU&OlBvk`-ujxn^KYeq7)7O(5Kl5!j$zzSYDgraFo8ZlM z33!(v@9rnenk+j!R6&v$ui9ggar@JZuKOlePSf#I?iB%YbVZjGu`@fKdg5bpOJSKl3|{s#jW1`tT>@qwK9VFG<|XUC&SPwUZ>-#z{?XVoR1M=s`1_Uh_qg4F ziZ_fkso3@ez5aF_l8@!oVN^f0ky+@i3;h#lFVsgZD+nnTY7bGq9BgS`cOGcPZhd>P zwr)q0nqVSB`gwygntdK*NWXY|Vc!h;gA5`wF5SlM5%G1G77Ly2Cf>b~L|jCi>@s#= zo29Q}aF_tS1?eeyh1>9D;Zyb!DtpmsJ@9A5)iSSUd*WuEj&i4smJI|Yq~e|QPImXt zoNC-dIQ<7XK%Q#Z&?<|Ub6%TwZ{6Q{QW@ob=o;ljV*Qm;^Zgp;z9i4i^s<3Sj1-m8 zpjMmMisYBt{UCG8LTZ%wAwgTF)2ceqTpP^G2AUz)w@ z&#s>4pMpHcH@n_NS8Pi%0=bVPi>@NyZ!}88R)3d40|p z%JRr2>Tl2Bfst*)IsmEGpW z6JM9-xcIl)*;dYKseo*p@Ism#!1p8h74ycX-iKU4aj8%g7kXMKk1E^I^th^iWarLG zz;R2mOKqUo`itWvSMIVMGi3E^3rK!(DfZ+;x0V{eO#T00vVFE*@#dht<88K%px z1%}fR`lIQkm+uTMr`;J^JSVE?-T0*z#J5Oc$7!~sIW30RUz!bVvI7tHvY?&MobNB? zTI5W;Ei>_uSNdz%Gv0lGk;GP;j~LBH1vvC=X-S`ESZwC8=&7W&^xoSwJ82F;nZ-fw zYKIiRiCY^FaK0Ppg6#37Td#|xB}@Oi#7E8b)Ngcg%SRSf6#umUVt8|f@ZZMPt7iU^ zT-i&%MZ(rOjhS(UpM?^ht>cLj|F-rWZ5;1+@{#Yw#bo_vloS-L$Jha=Rwhy7N~0hB zas0zuQ9IAETsvCYsFdevi1xn^Mt@(c_^e2HGp)Mb{tP*$6gB_#vl={Yz|b%${$S7< z0{>P|H22M3?Bta+r~!;*+UM-04*uIq_8=iNPH&$5iWMzS@)2=#tza7C421o1)_}IR z{js!cZ+lQ?xNMNtUo#|TJL|0`GKMs}sXNDMnrjI+kJ5!V%XCn31RSP?rOWYTk zRqc7dC)n^{vBcTa5YAielB<<*@};|f%xhniT5rIRMzs zM!VSG00eU<1Ra=q6%Sle8F5paS^xRY3UKX3sPA~jOx6wKbrR}QvoiLfL5u7kWQeS?{j`s)y+*ohyK+u>4Gp^a z5Ay5F&geAEr{QbD#5W$bk!EDbuNmO!lOI#W%#a@g5r3qWJIONY8^hJr=R2vs@JYFQ zc35cTWJXivq@6pj>PU@DxRMX8kRk_9mG3+7;yZPWY>o#rEjKCtz_tQBr^kQZ@Q>VA z@2n;w#FoGcPx(hHm$J1t@2xW^X901cjgno}y6wP3rO&-FXDi|R8g~}BI}%>)4!-ulE?&R+V;S*$UY`lDXvxcQTR z>yKa6kMQT~>(#+uIR5;cj|Vvk0dpCKP8wQwY|ns`{>IK^1<#a2z2g@czvznrA)WrcoNN7kg+y4ShF|_KRs;6ydQuJMgd* zpIZh~3-Wh8heh7^3_{5`#3}}G=WE)dj8(ojgt}K9CCUaF`2w+Wpp~?ecum&r=2zQ- zh(r6Ur_6s=o9bnDv}e-lGZnT?g`Q^8SRbrBoXhaaTGCn4G&&22XWkdDF74qFO3E=E;Q5~d1{UYT86QK&O_+!1RNSim5<)nEq3v+{>&~^`2iAkZ{!L5 zdip8w&?sTW5T8cy%gF`&aZ4QF7`;2A#p+?2A2wqj=AycUXB=tb8op7M;wH!GgnsPtm6Rc8uh}P!DP_jm7+jJEuCU8q3fD;bqwT)%C~a zf%y;{HS*b#U_#e()s$Fz1|cy#;WnST-Tw9#{4LE>@>rISvDf*BrKc<#xbo8r_V;sa#X3;5zu6Z`j%M$*JUM zfq|D`=UMT60Air(&*W0{3-$oU>h7AJ!SqG0gAGBwqjSk&-f2R$DPkes9qSkeQ_>tL zRqGxVbaz%+<<19iZh9l@a-P20e@0b=KqA(z;8k1T{G|g=dzWRbqK8 z!om0tpF}u(!-L_SJm15h2o8#$#W%7S_}K=?he^07~%Z_h~}Egx(Cn9HoZH;c{4{`~O2 z50%{t$h6SGe*c*&`8l&+>_@%Om7ff#3iEBPWM?BFT>KhpdoQYHVfy2d^Ocy}YkU4WsL0~eDhYe(Rx+3zZ5Gk~U?1otg4VuNLQKL%y|iFaJcSJj=-5;p!TK?TgP zuLjlVV~$>KDo8!4?>Nd&j(rdGyKI5@qu&EGPDEa5M8eEteChshV>{prr;paTBXy!h z93mkhWip)mZmlt1ryx;zjz81dpS}HD9qexXE0g97OkqPz%)drXMm6o-wbKjbUI*H& z@vImEEd>&a{g{`Jhs*7%`Uh_e)+z?g2ymdVIj5}6X1Cn`XlC+fxd-3PO(}4W!kDht z$vje}mg+E)p?^c1%C~pE{J|SjylbtIl9|+{sBgO2a_}Yg4&`>ZJFi25K0!I?QO*+q zVodNp1K}Gj=maBG{nY)hb3?mT?5hgv;=p~5%`Nzh9l%>R@8G^JZk9ujl02jj7ni72doiu?2{>(#sA`g=BMSXhpt}~IFyKl<5r*3dWb20zbfN6M*>s4d#%E9KL^g> zr!&3oeI5v$KNsJsvF(%3suTVTz#0af=2)aW-05qp{ND}RLWV-{<3IGtIbOk*xX~}c z_iegf(d0XVKTxjqWvo;rSVYP48y^lnSqGc{5pY0S9yt%RS&Q-PJ_*>nsWYpYJ3~)- zg)>^!!BHMw2@@^_?E2@&OwX^2^b=Sfdh01mH1|eRi{4q~+8(B3VV5`5t{SiF9`|$Z z5?jx{oOr?lczaA<%w1jvmCixB#l_MY`THcC-%B_ro@^mC?`o<&Q9`}mPIGL*8gFxH zhNFNn(zPYOljvZX@0ujEQLy}0ogDq?;WuqE#@pOZEn!CO0eO(pUyA(GevKoWT20oL zs|Nv)kGn91Qj&xva(TckRfAx7=?yGl)S@HfacYO^w&A`>zNSa1(d}i{wM}9@wU-9*l3Pf;fRcXRIe>ZY|C@8ij2- zz0_hK3Sw*4%&vyABCPtWHY&<6Rw&Y|W=Hr7&1_1)ns8brqTzMDQ>O}Cue$R%5y-n) zko{~6m~_$^H8T-rEJz}AVgGQyo$MYVk*+d&2w^w2H!*KS$qWhIk@d`|h!g`|Pl>j( z$vr3oiNjz<$lBw*@?XBrH z1~yb>djHKCL4F+^>nzetK9ldf-PP72nh;|{WAA*Q@uy*=E?}cxvY|93Cv;>yuwJ_o z*m`2qr*w0jGS2h;9mB~o8zC_uUf$>Ri&RCNmu2S&ShYAw;(i^s)mfsF9$gX znfFgq58R$oeWv`=c_hVQ&EK?P$pg}RMh%u_wn>qcU`BPs_Xg@y8<+5jpo|2OCn$b@ zC3xKpXju0jxz$%>yXo936gNy|1u1V-kZM0(wl7b5F+;ydI~g@!ELEzCy3!|A!{8j3 z&b>BtPJ{J#L}N%($p7P|!^OnqhF*ntHeaW#76S%D8!bCU+Ctbj?}p{;9bb4@{ZKL?7T6yzByO1yY>9-h%Kzvz}W;?W!7nS^HOG4nUt2Q zyk(6j$?idtVsC**)6d6MW*-9OI{lQRmAeiek8ybiN3ghMyAal$RkBBdKHH5=v=}xn zSZ{dFt-zl{h2Cm?2<$TZ%H(JirQ89PT^ljXZso4kJG$N#8tsXY1wmh~}qhy}!=P z_R>K;9)_#L-VVWBzLUw~(a5G1$D6Y?HJ(#f06Qo)nv4*rw_xVTH~M9+C+=MDIgrDD zuj9bQ4b$|)zO>zy$r5u66u|FbmTx1UPiKh%NB-dE9p(d{n4B=1q{_YRjey$XVskY8YOuKKUGR`i_Wl{tg(LM;KBQh zwqWHTr1eZ!uuf%p^1vHHy?o+XxS(fsL>Zm$A4$}BtC-M;>z#~moF2C~9{)GvIvJR#8*q8*sEH?@Kc@7eO`Q1-3iy*1^QX|w0dP3U zx(YmT_Bre+QwtHUEHtm-->9gn&z;K(T%u-pTlTivZAiMSdykFX!%Q+;s-UNY@Fve1 zzyqiEH*!&T?8V?(BhJz3a#a~*`CBg}`K%@Hnx}8OUngHpo5T(xo{yqljneMco}IWc z=Kp4GQ5mmDuy+)z1mJ5!LmxkgCOifuCt+#DnrACR<3k$3qNF$b`Zn4q^uEq5_jnf- z&s!nviPQ6D_b~cSIK9V_ucVB$Mt`a3dev?9w z`N6gmmQt>sctu4&X)S~FPxe5%^FNec^*^~s2%|k((Gh8UoLQB9QL=fzVxOi?{T%D~ z(=T#yvcRmFz5Wa9MtIWt0Of_|Xo`eP-=IOn%Fs>!OMB1|ZP4OQ0G02u73b`H^xi!n z`E(3i$Svje{5VL@XI|%lC+XH6&zg$P+Fuu6Nk4VgD;DeZOYrOK!g#yvk9t!A>*W^~ z`b>9N^Oz#DQlBSBOxLeDT+z!M)a;=0WSrk*onfbkEA78oi)dx&Za9|^$?iie7<=jphXty z-P`v36`&O?L&|$LuAH}QWRUaUR8@?ux;BKaL45G-Ep;*P9+qk-`+hqdG-ZJtJ=*`DGwm^O_u^hNZ{p71B9MUEanr@xoaD+_8!keX@SY61Uyx}-K9}+GX+zuKs*o+M*dU%GI5O?j2C-$ zH?uwaXLONa)JL~h3$uj*J7ldNb#g|-)=GvQwrmllOk#G~2H3B~&U;};$7)gI`P7{J z<&`Kj^5kd3Eg4%p@SNeI9j5X?!PGlrm(WIKUz*SP5BfFl=acBVNZ*AoRD0EIjRrtZ zeX^@Vu6XA=muF#n4Pw>56j72#nvm!^)-oJ+GO)P|$DG{=jA#md*pV&`kPn5gTOTg$ z;Gc6Ov%|Np=)hXIwLr;dp^m^FkZ+b#E%)&&Q0~R#VER8@dom&<-U^vmv(M^Eoy=X* zTV3>LI}bhD6xmqv6G7wYU6IPnWxfNT=1{-peol!+NsvA z@re-Z?_=S%>a^p=MR|i`)&_5vk+;*q!h3@mJ7+<@5yg$9qDEU|1Po|_dQ`f}_r|2k z20i@YZ&mDJgnG^3wF_a9FEvra^G=%a4-^1r!1gQ}c!$CJ9JAaL9T-%*`12t_iExeb zSd{i1&H=wWI9_uHI~Y`Y2Q#$)tOwj?-x-YLg3W7826s6tPm%z7Jt|K_lvq*LGY82JMjUWmo|m; zJOU)Pc@k8G-Ba5FhK0BDyc#$=f>*9Y1!?xN-HEcyaiRrvWaBejcSR6s@*Dl)c16BM z&b7#@+slK}cSvTs6fm|`d~9x`AXZg1=*?fCkMx*VaomxNN2g3pRPyD7AAj%GzL=UD zvEdFh4~?zn3Hbv0;Op!c^xlwbW^R?Ms3TaLpI5aa9eiP+bA!y+gLm6Fj!tXguNfcKu}(rMipZId?hF zczEv2{bl~_dak)V)VIj5~5?Z|4km#Z*5HbS;nI%DYba9>|fD_fjZ}(q@Ioq-O#p zzg0S|M*U+gOwOWeW^JuCMuUf9xcMbl_A4^CsfMRv*x$u@{rin`R^JTi{fBY;H+(hg zA8)|2&rDhva!MJ9R*+uGTGM9(KW_ZhNmh_*`?S=4_#(*1rlwOp!~Xr}srp9_bys1B zx-p=A>xA2rEvuZX1l_MXpen7cN7mllhs*p~Xhxp+7G{wg#%ivw`Q%CgyhzEDZRo-e zs`ev``Iiq&$atgWke@o`4YgsVv6OEr*-JY@mj%M^E?5ig0zAHV2$GDR0F5FP7SG=D zO+`|!E!;e-ypLp9Cil}T&Azx`w$`#6$`@9$g;6!Twa1!dguVt;5bns02>b-ogb|C?jI5s$PewqcKi@5e?e*^FLp7BmnA0*dc;`jX- z&3AA^$u*(K0zUOiK)LbLX`Jx?2^iI ziZBt@ZNTnI?pqs3Ds9W~(D8U|XBNJt787>ue*AW%ukEo^4&Rs1?JUOb@6EbL^Z@%U zFDF(Fikr&NXu7C>x)40Y496V@Z^~eZ5zcwj655d~$Wg;tuF5=yv`rqpHT&yb_C0&` z8l_%(%D4c|4r&WwByI`t6)gR*qqhxX$Dw!Jvi7=O;4i|hmt2<&EH=?Q+U>_cZ|~EO zv^vG+B#4koJEi{|;B$Y=8f_{VcbFQr&t9R6%iGK3Mar8A6piw<2{d?4sCCp1za-|o z=-IUS?-e^xzxFrCKQrk8FlE+x+*W8{Ej?W_+E~gXs)B9&tyDJL>F3Nt3uO_8l8b7V zT475FI+APDy%v>ECS4U{r6UU-QbEA6O`YQ6sc2eZjc(X=_96DfBjL(?x7vZY6!z07 zayIJ_4FgPMf6!9llU()FEvnhxz0!Jc!18a$boLo&^D?u`p~UglOw36%m8&si95>Ud zMmKiYh3JAD_C+}cC2|?ZiId2Jj7nLJvyu)9s)8P-Zw;Eghoc9uSH?g?7nNIt3~Lgy zGoP!mf7AXPx_n5fs0jz0cFn^u!`luf0a)(l#}xrw&u8q9uEGCYO<1c6 zSW-HA8VD&^NWnGW3=N{08n+_UL6QgN26@>RLcG`C-a&Z$cptCh`&+(!RA-?f+Xw_+sI3Kk=B0aG%7o}7)o%ShaZZ|lUD#G|D>U{XPhjuQb+;G1D-Mn$?&Jll`=3L56C&B` zLjK7JCwZW~5fw|%4PWnE3Pj+$ z$ldQGF$}fROrH9Hx*#@7J3w8Bl9vW_?gqRs-QTCLd2}lCSazy=6-EX3A(_D7kSxSk zBt&wscD#tZ%ws9{x`y<2q1p5CZok{0(|Aw72AZM_N-d=lJTRI})3cE8$=g*6adR2r zV&R0*GMVQAaBAiJabV8CDP#ACyU};?-I8I@*rF?1j#ZBf0fani z3XKh(pEzVN5<5s*R6S&3I1)RX3mXr89Fk)mS%a?p4=Vurzd6@_w+{MQdlfzIOa;Ju zQ6?*z_%xCgo`yf9!I`^S?^*gQ1+kun5nwrj1VcPUO~r{u+N0TEgA>v&frhtV&qIAh zhIahs{<2|jfs_$Vc*dOe;SXZ(oG&2g5GE)FaGY4QGdb`UW|DMuZv0Ou>8vJ1E%xvy zggq~2r{NN|g>jdr+sMhnhV*?rMq4vO6;*~FN?6x3kg9`L`mu#FL55wdv|4Os&c*;B zb$d04jNyMC_8-b(=jjTS)SFHxKo2SlWpP-xcpz0UTe(x(kvl&DSM9un&(+=5&<9I>JPciL|z7!^P;1DY;AfNGA|GbzP5pc z2>6w9F#@_dor&yusPZFt)}rA5^)Nhci7Mt z+UIg!yi@8v-F_ZjueuN3q`B4x*K|-3&I_;O!9Yu)N1CqY*vQ^;={d7VX8=Me=!Krg zpNpY7TVioxu{CXl3Vf8qbD8Nq>zS8Ri-QPhrcvh zv8C%sY~gRo%}>3NmNKP8w3F5gU|eUGGgU(PKhg&NTMx{$8(w0R1CO_DZLkk>hp)WI z`AJr3wPva-stk%{n>KscjEa6rk8DK^L)fw^d#1-@zh~1i@9FK{x zLNL`_FCQnM1C}DBE)l;dl}qlT$@wt31Eq3yLgAE3xT*{jnG6cT(-F;-%4?S+s4TW! z1oXLb0_CQyCWAuK&ZglaMfMc`zM_d6>vTS}{70`RzU>D;yX_tN;Atx1WofA~Hn&KM zQQ8Jm+XM$q;XVdnGn@VNJL&ISg@3#83tuHiy%%ya2TNhWm@n$j&hhDm9>5!ZsX15bWS?E_9;lh`{Zb`TCjjS^M$Y(W|8e}@ggez_zZ~o$=Oidp9ju$k zOtaxk>8v*iKl>%Na;?DMy$`xk{7e2L)Dl^RYv$R#Gq1MeF=(&*Jhg^R>vW6nu(4dI zP}W2l)dG7sYvmA_=e84inY5bs1(S>By;|ZWfiYiueOh3!FGsQ1cpG3jbq$lFK|0`K znpJ63B`>=st09BsoY;tMP}@Ly@S8P}j|qm)P~nsMShepA+IKXc-*o6Yt~FD9lbwrlSlt#I)@ufGF&iGMsjg%GGV6%1ps4Q!%Jj7?oapOI&oO1p|Ch^}c6igKTq}YZw<3TG@fo^{mJaz}rbgjSB1|_l6%bv6UV z25Q?B-gJwJ+zBctQLBN5X$+KcP&wp6zza5a69Dd^Eo!^evbIr)lB1!t;poAJiP@c- zzLF*CV;gpEb&|HpJ=to|6QUjZ>k@i4(>aUwU%5FO@tj4PGhEec&I@+{UERFsuE$2i z?xLlch&H~qx&P1C#U(;*x#`GkL|3Kq_&qe33HMC^N5e2Q zFqC&Kp+iNniWGU=UOg${&>nsEkcoT(3PN4LJ!K;% z?^QuAmuD-LOF_3o0p-2E=L1*^?13$$KZ0rvXl$cz5N0Bu!x$~-aS#dITcdy)wr}2L zmef6AwDrgLwQ}sNG1eRXeLWE~IY>_kL%{hjsX%QH>B)TpINn*&;cY(Ku4ObL#TnE{ zhr=$T&u;3?gfijQ1HqX94;EW(U)#M2*0by7QA*`Dy~7Z8I&xbrdyMKGy_v0x?hrO& z56C~BVXQl%NtNB5#n$Hh;=D2r=_%7wIh&R%D7uElO>Af2$_4VcQaO+i(ez)rS{S8r zXPt!(cAokVsN9ggL4k?94x%b>lzS+ZCoi|CTq@U5D&GkqgoRT**@#Nem5#yi?DHO% z4SINy9(LaB70}KMrgClq+G#hN)-;)U+%uKq0q><#_{;$FK#+Cl$$LuWZo4C!x6z0! z6`9>RIA3|2uPt)L6)#3-@sXiHL2pKZAwZvvD6=;}aXBmwTV7>sptxLoP3VTd;4pV@0 z8#K_J15eyx2=JMdZOk&d^gJPtZOjUK_S{e74nH8E&&~%$csLw&=yhJ15lsx`kY)6Z z^MtkZV_RRE(|Kt|+F+TG`@?z>Vy`>~O=>k~fi+t)9|K>pR6iAm8_6Z*7~duZvk1L+ zx~Y0t(wwkCI}%wu-oNz)+gRqfyw(GW;Fmi)wE_G)N>qpsWv0DUQ+$S#;PMu<_B!2d z#IW6${_yoK{%6x1^f_L{{3bkSowB$R<3K8GGHxd$q2esTups zBvaI_(_zXXIkeUJ7B)q`^O4D>2>kMG;_up}Y^M`PVL&J?X(rQ~>T*Ac8K2-FJGEHh znpXWfTXhg?xcv8a2HdkrA6dWjBF5kT9^0&-*sRDrcb08i@O)}CjrJRrGAq9j<>%@H zgnQ*D4_4*e8w%Y~Ub}m(Iid6g^q}Zff?cN^2Af}@;JPZggaxeCy|$2~e8xT)$dYp{q2*8B>3hJ?t&sLxyi+oE>;-E29!aq*K|O=k~#P1@6tn8n$0Y$l_j6!smT~E1`Nf8d(~yln*iebDwfhNQ3ol zHlxi9G>-=Kn+r0qHE$XQv2=vZ&m87TlSAqPoPza&yi|h;60Ey70)XUBFX-9kTDJqX_v5S z;(Nr9h<5RO!T6-p?ICs0j;AkZ=lEVyTGy&Nmm}jB$hA;fR;$J-sBJuf_r|g1z5kru ztL$|qrDI_DIO7yA{2cvNh6t+3ac7J@tVk0D6DbNFU|jEm-q(S&MDN9nG_nHKor&Gc)szYw(4 z1QiXNJ4TKG7?yCs-ufl=ao_cd2W?j^A!HUVeHly5=&RT z*e{%8B=4DhV1e|8g*qH|b*QLSMPTqwbYm@1&VFX8tYW~P0BcgE?nrC@mn^8NwDo#p zlMVixs4W}N@-p-64bN08{2wl|cq&N8qAOUhq2}pP@S>nI2eGMj$1@K2 zdb@_Zu*UNZRrj-5HfGd!Zdvev>B-K{dXXWR3gx6eM8IDN`P1{}K7ikB<`vM5Gxfwb z8J|q}_S&jmJ{(qU@+>~EOAuQ=0XJF=2TOdt_xxn%X&T^oqQbP9d#+y=o!(_suz#*o zxti{y{xTtAGV{fQ1dCCY$u*Oxinq|NQzo;WlruJ-p<|<(xPU9vsv9(A78^&!<*DwY zRvuXODko;xT+~Un;N2x?yCJBToQ2>y7#^owM977AC64p1rv@(AU|SD8iVc^YZxd}? z1?MDXJLPI(7cc3kWb6PpUOh0@m)~8@Y^hL^gIy zKtQ|oAIUd%XZv0Vz2C>qoaH$rq{^O*0l2UId9)!;uktXYLe8_uX;@4*an>E~H*Md7 zL}u6E?D!#C0eQUa)oxR%YgZgpviN)}NMKDZTVS@3_trni# zm%?w`g&Ce{B>r(J9x3quD{lPuy}h=Dn?uLf^B{#!I+s&cpIrBRVpilaI;kLGq+Koj z&bY+*KT?OXO53?H$eS0sd^xqojw_|!6DJQJQVx$pQDH=fKxa&r()c*kDyOWFXE=c4 z2gy{Y;a5I>l)EM_j5$hX@FhiQvb&lKP`nt1du``{t)HCyl!x;=EC ztVQH6Rws6oZURLQ>{_szN*&#o2nD5|7mx2GLWx?)uSYc}znBzdsq~8-S6zzoihPH1 z459ujp;GN|72dxC1_j-VOGOVxB~0+a5{6Ooz5%jcg1rp&5}L~`YV+neQ>@bc-dIg3 ztqTsZVe!mMg-e#i4MxJ${RUpm*jXDe?VJ9MD)D4*nR+6N^}jcRmkz1_x)L|)P(;QI zhvlcE)Nv#*{wcM=_tYuT(H`=?8;a6LS|QP7^eQLb(dG>Y6(=&K<|!C zVw*|ftie-;X=N7Q(3lhym)m#Qw+yM*HZzaE)T!=G8=o^(YakFWA@yqU8{ZAo$GJP? zx)h?0>I<}|^=uCkk#Z05(-{?+xB6oT8s;6MEHU5J^?bliN_U(MQ0#+d4-{AInfB?N zZ*9kU8AsfJi8egocJY&{S6S5R*xV^BPZY31zx;NbuQ+(|t@cHwq*OKxEA8i40fI;*^@PL__?R0t|@}>(|GFEi+j);fL^7ms=9y@&3}To+Hi*&i}%8g>{aBTXll&a zZWp>EhF#@!WJAIPF_Xgk_%Q2X7si#KK4fit!>x)b@DoClgn28#~2HApms z`7Szlz4Yl{@1dGK95hWTyB2Cg*y1~2y}$Gu275Z8Q=FHdO|ucIMmC2%Ah0M#z`Y&YP>{}0` zt#p=`pL1o1#|A#WZ!_Je^2u)7lS~$)PSiK?`An9vuIUT|1}Wwbbsnv9KN`pbNd0>I z+EDg<8eg0_(}{j+;|%C zURNvZVVCbeTV2E2NfG@V%GGuIfoz#+IcF1XIE_B<=j1+ng!l~?f8E7KMh@er=-oQe zTd&p6n9;d(06FTOG{8$pI{|70$(u-SWNj$*VQ@{Y;v zUoA>FXIYncCc1_A+Gcwa@t0v5k7GwC8ROZ*v12>L!`hB?h1p`4ss7-d73w#9w~_xW z`Vu`G=@A!DofX6%;CvcK^=&2I0l$ms_XFlj7WgD!m@cGuy7$5(?$zhq3yio|lXLIT z-wwZr`EdI;?TZhlenFqSFFlz034O5sIiDYLTE`^sg#C%Ul7qjZ_5By*l&IkRQVlBh z3_QSIUGaaI7s zQpqZv3L|v}FiC0LZW&*1`}CPaJ6N~2vF2F6v;5+E`$6P8iPYP+HqTiaZH8`lbs&;# z?$cl7oB_a>r#0LEfc^phFXD4@PWoeo4~+f<^-gqMuK%Zs!ZLSeGKR_R*sPpI)^LgY6A3Beq!(er7<{*-9Ffv6{$ zuc`bmjL#2!Lo^{qQCZ}Fh91AqgB(85H1sjPz88olzaTtx=7t`ncl}`%?V%S1$)Upc z;Hq@%uW7BvUKDwB-+LYL*w%|;M#^W$?pm4t^Y4kzwvMwWUcWqD5$h6Tn)2-cm7P#Y z@9g`QZ5Zd-Pv4bH8!=!elYC7w4bh!q9sheqIX~0}_vJSy(?2o?_m!ewOd=8nu+E;nSQ{0GF_2+OaOmyTk6$xO7}ZOMGcOrUEyd%&mS^g zO;?dDU!Cd_F~)Sg0=!pwIJK7K`bYO^By-o$J;ZB8Qdill!(n>QH!WcJhIN^{0C_kE zUmwUyEdQv(IKL_4KVwPHD$aGhnaf^}`m}FZA5dB3gCIIs&Uulk-DiO2&^xhanFoUo zHPvZPf!-$7E-oAOG4lWlr`!2w@yFQ;dWT!qq-)`+$@Ilk&WH_PpNi+{`se9-Sx)&{ zoO$Lo_W7z_=tXe-G`fB+T?^&3<8-=qCSBX3=!M7JE%j-j3zaXWu~t-mFXjhuo|3#B z2%0aJ)~fvCCyn};`ObXx9`vh<>csgRP;2;mVPIGL9KhFM;>eyslX=!Go zjj|6JPjX#&C-XqDcJVTm!}`=>YHb==n@j99v^KBe7|yi<@zb26!%W_fwxM4KAu~#S zVw!0MWJaPD;k%J<>t)W1qQw#dXUO@~*AMCYIL?VZXDHXl!CR2yWIkxl>u3Hn==h@- z*v|U%oeifwWj#J4nSLs9m9=8(3d19qZ8WaAe_Oajx0xI8zUz7RZ(}xDL z1;m>aG%dG*HSa+?NS+Tg@>$XEF<&Nn({2|izWP~`^-#uZUcmAPuKUa@EiYmvX`CNt zyDf6}NnWMT^J;ojF?i8v`ee=@;gx3ujcw5>NvD;@()~YG*=~Y4cAFoC)p^GGIOaoU zc|9*d?~WdAZ=?1;wYo2j{^fl}|L#)#3#$J4(Dvxdbhf@sG{I||)E@0yv|cW!^4GSf zeP3xye~$iNK>wfPGonYhbl=xR<+mqge-&7f!b_ zD-z9VUt&f2g`|}qRJpy8lQ=&~?dy~K5Pcp?Jo0&A*wlMO$Q&M*bJVp$_ZpR(9)`W^ zGS>O$b6!TQ`*TGGlC&^iPTb5P~G zqPD(5?SG-bOg{e#jWg`^TGDa~i0{}6On9P)!1VW|o2{FzxK&~OP2>~3#yJf65_yu2 z(zLrn+QPJ4dz^oKTj6aht)HDchVv+|G~(6=l`k+pEzQ@qE2hevVZ=wh4jgu>!(n{d zrX+Gi^&`)ghpuBBLe$=S=^C{&L+xa{*00?%^c$GretPasH!osD?z7svke5oXiSg-w zmpeJ{8OfYi@9FPpc_`gay z^lI3Es2z|)!)6=Xa-s8;`L5f5~AziDb12$`7-@eDSw`` zr=N8KoKwB|k^Oh%$e^!MnFGpJf*eGv9QlsZI8UX-spm7!SkJtL%E4C%8xrs)@Z3kQ zNxKWKeMr|1yf*0O4=;p160%@PE$ubE%dUT}hx0R{JaFf|>^IO<%>0YW#qc6@*E#)w zZsIpTm1FRT_3!h5{B3zkhCYej^%A`wIWG6-^fT0GIh&~tzraF zi%X2w(mO_6pG?*rDZbH&mm(J&`oHz$;qk&)_19|7hlO&i{(REmV>Nh&9IJN={zJN+ude62`afIxj?o!d zIFd%arF5XKey@wh+t75*9Rb`hxv^TT|q3 z2(mqNE&Fl0`oc0p=?YQiGjw)W?HU-Gf9A8*vxo(K$K}1%HTVp_HR2lLjrWeYhInPz zeaiIZjImuxW0ZUUL5y8a+t9bqYTwz^KCFX>U~hR{{{B65tLpbQ`u*u^^7kL;_s8n@ z!}R+@`n`HkV#DAaZtUT2)qce}C2ebxw?6cX1H|v?tQ+V2b;eq8_B466k5lH!6b~NOx0_I4S%5CFQx|c#z`Yp*k zHY5k+_&Z_kKSupMc-k(eZ?rES@=c9f3(F+_3;hr3=4#Jqs#E@I^t%+#zF0C$Lt$U9-gJQJ zBKkaw`iVThcN|sd?1SGh^mv81pXlyNY`FPAV-pyw)Jrl${N2IQa^*TnE zU0_I^B=U^bn?39g#J<xYK=wv`3-o(w z_}S%M@pjhDN5{H%sz1#94Xs^cwXn}^wSoEL<@}X%=?(Dp zYi0X#a-NQ+viVAX2H(ngzc|pp>!q^o^^X$|wY|Y{Z5`{)O~TVCd6;Fe{aDDGbVYi- z-Z@rFC5wqR7GZ6jfxMK|7RWRehLlY!Shqe$>ejE@BIxWFeJlLV#O4OJn|r6WI!kEX zRA}o(;2dCP#YNvMQg&O6c_ulx%0g~T%bB)0PJGM5`^RX%*`Kd%qR-9yAG+aj<}V(m zZ`hCPo7zN_KJ(~f(45s!y?BqmN^>^8B7M&yTAPS~&%t@3UGJQz^wf>7NcpUg>2$An z;#KL3xbsyh<3WE**YsCs$rXK6#RR)B2YlBw2G_x}VPc|8@@V zd{xe2zM8|of3T&VVz+E<_%NB>;v8tl>SHvIkIhxn_gTnk~dr&QBu-_zVg4M{se zqv`o#$l~)1Nuxc=r*dF9c$^-NWw_PqynBqvPjb|aU#itU|#|MMvh;2=0)&n5nG$OG1Fi!7xm^kai#H!q*wIY zbJmXgtIg%V)1+;s5P1`4p0mSOY3}gR8RMgS;v6a;R60hKTWqXD96|A7V|gij6a4D; z=20K>nq1ttJb=DqTz{o#AI=l#EkIv`DdPE&r=89X(AiN78f@rK5o_Sl<`>hvb<z*_wcy+}EIMvWO>5CBN%rv4ryw}T`5V(UZR05VJ&Aq~`sYA5SGWiKEM0q@Xp1@IvoJfo zkIGEV`Tqjz3!{o(O)xfJhS&Ex0hw3gELPu>V0P=dKKE>qHIl z9r=f3URbT9n|RpS&XXj6dbDO6JiX>`rG62O^R#B#sC}c#X4`A1@ddyA_V1Ra zrr)gIWCN7>!t$fX>NJ z-;i@2&HFgpGvYnwfAgMjG3Oq1-veHACB3Iv)kU<}0nQ>~Tu=vigVB*E#KQ*aa(z%b z1^aSP9S=}Da@R{8trx%6Y@zPl_43i7!G3;!sMz@$Wb2%EpZ$MmH~2=p%V#LxIa7|o zPw3rqM~uN)|A)HVwLYENa=zPVW2TKh11lWQU<}Y_;DMvx%pV=0@875QqrS(eZ&(kh zL((>$yB7=8UUb_B{nRld+I$XO8#m%w9c&lMUvk>BF&j2*Es6KC|DDiMU83Rk16lvM z8#(7I=sIX3?08WFd5$*;7lRXhnrCbpIwM^hCCa+_lXWWJKq^Q{2l&Nhpw zw}TEQL=E_OqHVB2;Ca|JX3_h6Q#WN;cAVPHHl44Myn_3B)h3n&;bU^1lD}Yg{=E9F z)9=~pcLn{Pr+&k(eWChYM!!*4n0VDN{hp<+8>ueN4rsoGBpO9P?&&%8oJH3L{J_24y%uOb@grFl9YK3K8!@Z&44j6ESLVYgKOJy;8| zCrS;v4w_mPYZpgDPfXuO;ryoir8&=2Spk}g{ZNOwr?zRdkHd8B)SUJN>6ug5@3;v1 z_j35fjZ$k2{s|mwM(b+H;Naa}^p&pTKdxUz*FL3l0ONschykk5<#_Ke_!#ynU?&gx z^UfxoSSR_U;Rl(luJwrTjXKCNhD+(YHcb3VY03>4m{jPW4T_qRi9a%>LqXJNo5NHVA)BYRhl03T3OV?dARJY5bfG zS)}UPHUXL9D~m%}Jd5WJQk}oNEY!b%uAvXamr^^|i3VyPVz}LMWyWr?wsJ?N%-A9D z%tm^KVUZywZ%eQEY{>aI=f>v zYej8c59g|0Vw`7JldOh0t*z-1b+sPOmpYI0SodURydc~2+ZSbA4rGEwGe{1kx>~2k ziMMGLBjbtTCyn_sXkW|hd3q?jFUS7m*WlM2v%dh}Jd)ucJ2cFrewaO(xznUy#YDtqQGa%M zEzX|;KZ@zpmNTipUc-%(orCuU{j}z;D?7+`9xAsD^}ug>96dApD{<&QoG_gs7^h=s zz99Fm8ObE5g>eUmZ9(cA@4-7y zdwL*?GVRnhp=8tP#BVHZN{D&dcWGU$6NrzcGyUmn=>K%IH)owab7d&&_8EFR?zgcs zgSChHk9``sY^A=j>#7jH>s$1$BlQRRw`K13tP#5(bTTp83zgL8(CQV|`qdkFT);zYO}v)IZ`foDwB=R- zV_igS*daG)niWof|GO-$C6bl%5-UYztiy>_NE=xN_kFckLNau_#zGuRx0z?z`3h(UMW`bdz^ z7x)k`ZJ3YvwQ~3|!M0KlIqVua9-c(I{e#52`+T%65C`7g*lrohe=l!Q+|r*Pr1QL8 zRORj?UE0vTr()bMd~q;~`e@ztAF1B2t2R)-xc&w@Ls54%@kUkACqzDtebuI&EF+=4 zCY^)WC+;5cnpasr9&A#P%4Yi0LOz^nm4gHtvLXSOC z=GrJ7;+g;S=^)30!M67b1`pD4Y9p7 z!0|Nm;d4>w*82q23EEbne5u^)DY_0m05KUDFU?Ab>-52WzSJ`)YG|Hp<*=rk;%}7rDM+|7#jnAi<-7cRHQ2S{Pya5 z*j^1Cm_M?4FMJO14I3)0k2K~H?O}SEqI$v!;g5g^r?b_1L--qesGjp|O@Br#X&Oss z;>{f6gEo3gn$sj}dC?C~s?!Uci|eC<`@D@W^VykCeYp+xY2emcu^+K%nYSxV`(dun~bhS82#o?E-j$)56b&0c60lYBiS!wJ&)|b2;r+V0S zAEq{qHrZz9!}z|W#@EL&ar0;|z_t#%RLnM%OB7HvKvxl`Aw&XnPkuKP|eX#v)C{%OXNORkm_ZVbY_)xj;9iaKS z_9huy1isj{H^R>8OC-~uY(9`Jr8ZZ8H6egkRz$yP?-iG0O)DEF_1SKq`SfTK(*$&2 z_7~fRXy?|i%Gmh=_MP9%HoV8x+JS%4GMe{jZJ{$~a+{6wriOU^Aml(g&qv)M_cQaN ztx_g(-&;UqJUjp6?1#`p95w74^isFPR(KC|@_fnnFHK0ke|j__sxRIkW_J;7Z|Y#5 zr>{}_F4S&trc%3Uu3z`k?^6_S0G%fD>PD;OC3(6^e?i1({~?ACyc_21dK2f>ob>T^ zJH;5L{lw#cB6+e9{PJB~9a?`ijgU)j;26Sr^o{u1Yvgx1cp20YR=KwxeL`X}jBk`O z*XYtC%Uo{V`a79^gX;3AHUmqbT3aiOqolkA{unY>7mW|@1COWLTqBlJnJ|rY#8@j9 zKu1XHDNQ^A%D`{hrOU8Mvkx}WXV^TAs64~`Bxf#(U10BJI`<0ioxftwcv>v9uOzij z_^{73`tQNHq4n3WKgC@3ukjh3mXF5Or+aK*sliw51>=QujqN1u;wOa}^Cs`uq!XDE7YEOx|G<|cnqNO7 z&bEZuJ#o=8RdYTW6&E$n#YNwQo#}hE-gK1~7x(ME>FU4i6xDiMd?QcG21f&z53yXk zVLM`Ur7_y6dhpz0{Q|~giB1SOI1}*99vXuP zt(&a&UiJ=J4-u-vQT6}v11Xnwy+4pWm)7h&P21Q}^pbezl(-#X`!esx^z~s$OW-E} zo$15GAMQVQ=SyxJJuo!>@fYboa2d{sug1lkQEj%ru}$1V@6;k~V(*DT8lzWOPlfkm z9S6-eF}}&-n5^?tnQVgi2Hj}4*Oz#l+4Q{6Xv=is8sw|ScH7s~mf3p7D4s{Z(L#H$ zE#ul~pj-dacQe^OD&I)$n*}`r{3RRPGWUQVp=bMQ<+EOTZZTb30NX@_eyg?N(b_WX zE7I65P^RTo>6bz@#RL0yvGzUIWjuV8#ENj^4{lx~WzYWSByQQe&kqjAR4gYNpIR&W z&yCp;y;1p0#I1wJ7g9U+h`lsFahjVXVqhyZC-0o3gLQKst-qcVJ{!Tjua<2G z|2zBJ%{KdODP0WCgbS_!-o|?N(ZE`x_4&HX*Tr)9O~b`=h)BOO&~@)urLK~F05ESf z51{>bJSXv7kg+x6ETM{RFVIxVyj`U%8;rlNi)PS=ZOH#pE`Y6k5`<4S9q_Fd-$O}nV0 z1b7)ejQ=r#+H)0sw;0LQ9wWYv%bHhODjt4Y2gZWxxMU8UQ@}vbW0tNhw`VPtvazd= zdi07={}5jvD(1Y6(Cdcv<#wYQk1X|5o`Z2d2g5n%;1_6YNu_pbr4x!5qaty-`Q9Zs#TstWD2)^8olN$W(E z>VkiC)ww-l46Rw%3D5@Ai~4$%Zu}prj6bK$%Q>Hs}zsz7L+$I}{HxOUXK3#pkl$T}1l& zW8Zw%dic|And}>k8`LYH1I;MkXYlE_+>>o(un!`t3#pBw+<9hjDB=1su zg~VW*qxd07SFQWIKa%`k+edQT&{wXjv4iI*`W3l%L1%QLGt)q449vw?XNvmmr{6W| zH)PC{6fN@5{-S+cey7@RZhY@v#mDGs%;Decws*>3q%JK(?>+eKUhZptPQU%C-{{Nf z$~W?8>dc~X{N9=IZ zg*N>EblQKARZUt~`ynsTyhikT%!6|r?T_5`yp&`toPR{C3W?W!`a1f(A3mYP<8e$` zna7FM^|785{i!vI#bVmSLG&+$7_%<1GjSk06n93?zseXAm!N;;@CO~)KEE#8H~8j< zOk=QzW*@uUmh`jPKCojT`{U^q3geDGaouCi^M#&S^a&|G%-iGEnCNlsIC zEZ{AhH`DpjmWj}uFED$E-|peD2)-cK!;%-|-k5!Cn_Z~-1byAgX9u!${`C8e;rbz0 zVXcHownF`W#>`4OSU30Y04?LQ&-oEOn=4c0(hm0HrZIXTndyf;$e?%8T)qx_$+0Y# ze3xyx)znV2Y}i(FQ$og9;=EoEkmogMq3aiZEj9c4EuW>-7}yUf3}~?;C^*YkEp5Z z5oq@{#83ef>HaI?q(1+M^$l8w9wA=!ZP`^Xc%drbXY-^+6PT{li+GBJLe9}V! zscU^8Aa%@J>6`Hl4-);kwoRbSyFPjE?><>JOW%59TvX7f_L{iB9>9La9spm0z41q- z*T26+W8Dq&E2qJRH`~FP0{U;r*t~LJ*!qEgPJLWfbg{&gu zpOPz?r!3SigU@kL_iteT5%5*vrWHH}{^)~3Pf7o1V55a2z0&8(zT)V=>s_&CJVVsLU>Kokmz2x9NKk>Q~HYJ^oR^ZL{ zie~uFCAuW$MG3GhsBe8rkJu!2Z((3}#=69*c?TKm7?^$1zIci9L-9R^vk5$Jg^QD+ zbj)WxGmw2#=`{#t;?=UiV#4?rv7YuNwzD9X zT-V_9+hxO!SV`?X`fndH4I0Zn!!No1YyYN`{XSiTT;b|tN_1IIC1aE^O zO%2?v`;6V`8lzqKiN~v@?|`wJbp*94HVar4&8cRK=Q-7COUy`|ZC=EWQX7`gnc-Df;;kPKW^tW$z)D}#p|JPqnQg3( zQn-=vrw51P_<#5eeCp@(nK`omG`F5diEbDLhwG%jaEjz}9s=$x^=IUBrJCitm!7*L zIQ(3J!c(uKXQ2-UmO?(}h-emcN}Q7*7VGZL(ZRU&g{Z#GRNt=P;q5r-6p8(}_6X06 zR(P}LJtN~my1+A@yO!5$FxHw5-rO!aaQ+4l_p2zOI^p|zaK!b|bR9AY>xF3SjHW&@ zu%6C{Sg&wxqL`=ZEp*;tuITJGc&=U*m?yv4!*c`Kd4l5O$AC}P-58`EarV0djPHs6 zB|I++*cLakZ&PI+3GDm*N4m%L(es~G27ZOJ3J&kz%acP{#CXpB^$OxkS2ACE_m{!r zu4LZhmF<#e{PN`_=OSKB;k0{ol8tDsIm8b_HgaXA;}s7K-#M(|AAKZwakK}r%NObX zL3-cT5$)JY?Qq+DnBUXZNmhDbzEPN`Ch-DGzj-$zY8OK8T8fgln7VoQz$haUp@5ZV@KQ#$`Q?WmYnVL7N zSG4_vc*v&Z_L0gTH=;bQU+|F}FOCH#TFdrXIuG*AwQO$+v+qtaeYPq$nlUogX0%A0 zZBrl6oK|RSMZXVrR{0F#8EV68h44w+WQ}@uK;gsTU9TPun?akj8PGX5^X3E6f20YR znT+K?YkD1>rR&7($t&!NSg`NP2FJ@R@(MD%OGki`^7W&UwRqI627ndvD`tbAhCI9(( zzj}UN^*Yh^CE}e&JRdFl@19qfpsm!GwmOsj`O+UDzR6n0^w(qEY?qWMtWs#??9QlKB~&GU7pAe5#*#vNrM9x$>E?*=pk%JUbEf(H^Z1xA7W(j?cMX zmJOc)f1_|ro?^Z}>imiE10-H6Yyq#%2sy#Gq~37vpNMvBXWUR{snr0?aHjsGzR1J1L1~wakps*liXIBQX)NVgfO_OPgZC)MH|v5u>%eLDbZ25cTZq zv_aGvB!?I+P96P6AH39lU##Y zw{K4l4&JS6l3#ohyabIg`f;@Chfe)~ANW^rrWh}aC3=NuIg!o@YLln3#R=2igTIoe zswHhwyCc+(DtebeeXF))UzVx9xnmvB<`!R*jFm#K?@36Mr3VR&;R);>0=4Q7BIb(x(UW44RK|Dv_*mJP^=tS>o>sHVjSwS+#I&lY` zZ{SU!vtF4_rVr9tcHFz)NgLL+wtd`k8|PV}A;%5&(;(5J(Mgh@Pp0#g#tc5wL-NMx zVcFv>`mJ#s-xd-7>xccDUM<`1tC?y0Yc&V)Due8k5nb)d`J599I0s%}2@T7yCEpn3 zlr56_nA4+D52_Qb2JHO7bt9^`c3?rQxHnV+OxouQA;$dCD5 zd+7X}n+`W7J^y4Ju1kPP@o(=V8c=wj@p8Ja(Bt&c-db7?-KF$p^BZf~7H}(#F?1-f z{h3q_*HO+f1nccy)vG%=hV?*EKj5Dh5Z7w%d9PI@*nUvG!r_ zEFn2zpj`S^&>6|+>sY$>%L4;hpTflKoB2lizI)$D<18+ry%J)KDd{&}&$^a!(HN5a z?zPmOp!Vgo;Imu#e9#&#qjk88@yqa@r1PaGNk(T34e0~yH=B9v`y$)Z_w{X0V-CW4 zm)Lf3i2eS>j!X8*d-UG&mD^&gpju@i3s_Dfn48Lr;+orkZJ= zbrLP@rcbi~w&zt(f%n$>k>d#Eg3)HaS3+_T?z?N^zNa$G*SUR9(Hxr8Z+A}6|5K>{ z+u%e_Ee@HJ|m;~T%GL% zweCQG@h}k=(`@5R^O>C%;)m(1oCI6dsWX7h*&>cpSRMFAJMaxY_mc~0t5wTdR>&m{Vsa84E{FiSzMc^p3y(! znb;AYxiIG$mlwx9=#_B)dT!&qp*9+kp3;g)FSl`eP8*NZzs2;dU%d}?_?Yk2`hk;- z|6YZwfb|L7XSYoga_Yq%WIdO{cWDC7NJQ$TP~RwE=BWB)+)oc<%-!EFZBrle9=k-! z2BwP>(9T#LxjCAK+TN&e5|uCAspx-H+QZm0M5bY4?+9AMl6`P}=gZ|)Z6m`C?vzB~#S z<-e(a{fPRv{}1aAD%@S*ZrrDy4fFiD{(wmj$894gp%J&emGGCCO>|y6%WJe+er+t* zi~JLA?m_I4e<}MI=UAk6-HN(Rj;|;TDs1fl&mH#N-1J47b!u*It~&M2`NWC}9rzxg zt!U?WR6F6T5>#uZi0j&{bP?L?iDNuGE}%gts5OIr^yG|}p{{!so|M~uPtNbABdq^B zE(s0coxD6K^)xP)-#0FmdY2~kEXw8XyWUIGzN2SGG0!XKlIGdx%DL_weh5r0dKT*u z&(66tG?ag=BC=KtD7)&vt#PXRNBo{k9LR_mr)p(4!uhX9)(-76$oK9(JHYEi?z7k4 z8s2AUL%wRm)Jt>hv5h_AEmvP1RdIFH2K$h-F@|#Xtvk-wsColR-bP(7tMbs5LWXhs z_=(~hniT!=M6!ICzwPL*;)viEXFycQwZ>OP>_TN6UGP z0@hBpAIxXpfSnQeN?pR`|Bijlm>07hdd}n08H@Vii8jHWaH{(r#wi?8*3jbiORCRQ zw%Bb4+bQUMc&{z}M|fV)w!bs~Ka5>?q`96mVy+(=D2gPgSPTx#a> zQg=Sjb>}jsXr7wOG0NVJHF1ZUr+kG|tZBTT_9oN6-w&)4yc;&Vrf7>e*WoDJmFB^b+x`W)BA8HgO{eWU}cSpHxECd=ob9r z^w?PHs|V-6IsFm`(xnlw>$txWZ->5t?s#WP`^mmfrOzd`vBMvUSsLd{DN+1-n{fG8 z&JS!z{PEXvp5gs%#&sY2qU_r1(Rc2JEc-7dzvVvPs-Ayp#Pc5W0vmh&K4X_9anP@K z?wj)HzWa=w)<;LE$5$!qdGIsp@f(S~Zavee9={Ran_G{&?x17*g{p(*y#xOFe0G`% z=7sSr#=+MZXMPv+HPHBE+Fc{~kF|T+r}FF_!+e>fafM6+dc;{ge?7vLg@TNW06zjb zwpfeP6|Xj3@ov*q?3KGW;Imz!-f>*cJC0KCsKh&(pl6R_&rZUg3`Tp{Z<+hkDE)Ku zv`c9}v{?nTPZ+NXYnkQ>dqrz(w~zyubsW(Z!p-wir|`4ps_#Mb5$<3I`v(uzFB_(K0LwLUK|$@ zL~d}cO912R8D*zAh2>Pn^g{l|!eAfmt-e1yp}tNltX-b2!q~8FO6$+p<}-c-a!~+h zBfPzx%Rt{7M(%>fPHOKaQF}4+M9g#iNj|T6-!|iY$tdIChp8RFZGr9ai;8xh%rSEG z?y2o0CtnVo?j-2LUR8RKu)ay0e4?}=dO0TMQpDnH^U(hiS8qq}{1`c47}swO(+ue8 zkaK$?(TeFRzlD};rS;qj3{_bc@gw@$y&mPS?I*f0bv*48y+s^U`^0?*=Ewbw_B}-H z3!57e&zeRX(N>RYC-O6)%=(-@e0+ku_dL$Bu*W&7RQe-qnw-f_XKW0q(*aMaB|8Q3 zz`Vrg9%6;GZ5=AVBlHAr?iG#wa4ZM@A2AwFH@6DbWX+i>=Sq{L5k5`k1HAYm$oCSn zknJOM9&?P>z9IRgJj}MsxoM7ZRyc*QkBp62PL0xk{Ot3?e4$Qd!25g6DACR9ZJ*X> zar_VLO0*WBH@nfF&wLehQOA5L|KJ;JCev6yB-^Ipw*mj@ z*uXx1Km1GZPVDhe({fttm!zp3+k#D-#SZAz=^OhXU*S+|jjg2>L+g83|5p>1YwBw! zVEi|W1Fk z*QoXIPbIUtJk8FzGCqy{p5dp}7#FTi24xN1VN3Wlzb~2mO@ZJ64?;uvemA?mg(+U>^&caZwU! z6W!d#UKi_yWyimsF5AfGtIMab9J*Th)ycRRtc4%_OVauibM$8Sp%2Jy!hKlCeF)RO z(Npb1eE>heeMq4XoBpj2-&TD9kHT0-IekE01TESrpj(ywXcvpPA8Umx!?CW3#^)Z@ zmjG%&mA@v1vw-XH+gb|QO`R1@Zr&u?FV&-c4$h2MXUH7*{ti0F$;@YdwPwXAr{wz{r>wcbxxcBwDNA$VX5vWMgrpZN;g z#|s!Aavpeqv+{UNU6O|HtCz|E1H~yTR|c35AlDA8JNJ=MxsX5SN%w?%yw#(LuO zTdfMSLzL)G2w;ui+`<~(j&sG7`J3K(Og;nO=%|{T$7x++zTi`XIF>JO?`L}k=UGLZ zK!jrBnmxjZ@LsC4lEOkG`XvN2K|}t@|6w+Iby5KF8dMOOGNF*RDPKY5of06@+igE z;SA$30M1^dlYI&?7IQwvp6?L%R4AJn)-vMlaUHq2=^p6wLvb9Svm<~$xc~k1 zpYhw45N%l`&t}X=9=~U;IL;T!Dl9spoxuB(SYEWx?$^xr-%;7$f&P{v*A3mnyNJJk zy(F=jby)L~n?;n?E%S$rD>e@p`*#PGubkoU+7CYMY}OlZQ14-X%BLB3l<^?0a~1%T zA}4n&@YWE!iaEQ8{R*)+B(`vbWB1NSykdHED(OKC!W6c}(r;t;UOaPvV}M|%qcs$1 zvwe}Bj4ws|cQwY|gM3-=3yrqe0g}%>jV<<8U?bAKWpxG4t0vJ<;?Mka#%e_Kv9~$r zD9uec1z%fhgMDso;RuT=sUd6ujr8=#7RIV=CX_qliDRtasYTu0J zSOMvm_Qk!@?`!*BtiyI|3a~~SNggp%VjSC0lj+}q<}e;#mpDP?8~=duvU0|b+KHHN z;1n-Y^y$p1P!@PtDfR!fDyftCnajh(qP7m%rHS*G3)nOJJt018&%u6(&{#GSk4xVi zCmT5d*sknjhj;HdG??{4-vL=MnsOw65B*P@eFodx<}*JGOryV@QwUzv{^N`W~4chGka;=9dt8Q>^{N6GQ|`$UQPv|o+aTl63IwTYT@gVEsJt70a2 zyr54xo_K5nHtjBZw@;3n)E#YReSIw}+F!H>5uHZQRSg zVA_oi%gC{$1K-)RAANLR$mn3c-H+Uc2|7Qp#*-aZP~|%Gq-NP+`dxTihlS_ZmX%W< z=m`76C;2So=TeEi@F4@;$#dlgdcN+tNB4yrrThRHEKi%`@pGOq zlJj)S;Wakqk^PXbys`C`FL9TJ+-7;&0uRxfjqdn*wW#IOw_Asm4@-M9XsH)|*=BPo z#~}0XmQvRS-SBym@sxfwm?Iy!K9lfUaL-(SZfqB1Y`XWpXCQ;~w{_}Omd_Kn*hWkL zKUQ`;=>8bX?x2(dK{G*v-h>QmCd4SEvxQEO>xJB8p3lBywBCR-z0$8KnO;lo_Grl+ zL-s;tV+S58_1EVKCyUW9L_Vc7USee3p`m)3J3v-p_kJQ`#zE#$le17}H^jjX?r^QwYHy2_4Z5P>v z_pY)aH)}*I;X{k{0NSwIjoWFQ&GuCG(Wf@vfbr7WnO}j88{^)=*Wxm-#CQ+KG;oZF zmJt84(WWNa8_83Hir0mBJAQ(FN#mmv-O5ukG;+jq?v0#z zI0kc|-zxbuD)ae+Qcf>byadk566#mYcIX{qR-U$y`8i;SV%)>2uj$ae=T#<)hUKF# zvwRdpzFuI919zWf<#6n4(1A_Lm4i_iWb-jfFYWGi9z)M^YvdlwmC<>RDH(mhcq;AM zdWl!?5WS^y@mA&;(Pw$DmH!XP(G|3n(9b zx>izUW+(Azl_a z00)xKrUw>1o5uWxO-YOVecQy)dUokulcGh=~j z%keZ;5ABUYm)7-3{jfJFX&wBF+_{iGF_5qO#1PH>3|+~t*t2QiB6*39k({$KnA~U; z^!Tww^cy z{K_t2LN}C>az>4gHNJ`0IC7GD%=37S-waG(wKi7KzQ(y8(Yn}g;ekg6WV{&aPDO2C z6vHp{H-~`P4Xkde6PU!Xdl9$9Wde-%#Pyq=q`qqT4W?X80C@K4(;25x&c4LxkQk8O_qcs9g-x!)Kn zeY@A@u{2l|Wa zs1xhGgm`?OXLU9Jf3lXw7kx(AvdCtZ7i(yaOp`H(`*F@b{{pqq*x(#9XeDf^zp5~nQaIP$UtpI+@`Y9g9Gyv{x)5VHk zL0-t1q`}b71Ir4!80f^n3&QR;QPC8?OH(w7NAvrS2D6dy=Ka3#IF1)V{b(QFfimZC zT(+F2;W?a7b2yLBS?r?<>h~Ler1OF5C}8X!+Vg#1;4_PJDFr+BLoN>|Hw1#o4(4r} zZc#op>NoVzRmzX%NzPvz#aUAfdhXLUzXgALkKSla4P>%aN;j<;vu)Sbp0E0czCChK z(o3(3JBGb|pQ4jE*L&0$=BXGl_<7;oY!`yQHlfbK7~3lQ(WaonXTD9f4Z1czpzG5pvsfuhvj_Szfs-GD*kqqswqpZMk~ZTa}FHhk?vrB+so2FqqY^&dq?`0&HLwY+}OSYgISMx1M_XPc28yA z%Y-guu8J?2?`#0APttnE{%q_O$k~gt=JfA8x)1zX!`PtnimLmZe@dFXhW#Ekizn6C zf!{bC_ed7}KI{|LX7MWB(^6|8*Kxmyk1swYE%BCs7gb_)iIeD=AnQjk7nkE5#U8`! z1%LZZ;1ng=trDiaEBM?5Z@n1tc0?~ZURmiv=DTrwuqPwuFJfQd-;`RP0cM-eyfx$T z^c>~o{LMAASBi1|7t>zz<-z~oOiuKefoT{QtRXLrFYzcV;rHU!=dr$KNuMdIGiCWk zPu-aDY1&n&Vuag zH5OUOGl2Janmeqqs;$s_VobeFQXhVo%Bjt^M)vM8Qw9dTXKWL3%yEB$bW=G!^taI9B;CG)n##>#pN~=o}FKeKC`VKSaHUU?qhO`j~42z(?}u z=o4fN-W;2GfJS+SQ5&Bw!2XHEhvMr3%Fh<^S4FhV-aYKAI;1ObZB1O4dfxTjL3^K2 z&m2_GxW2@&3Dp&?X1^t1+0lXD@A_)9O+>|w1GDLgA0HUnC%P7~56_bq#WNn1d-BHz z`tkjnn-26hOic{=N7a$MitCJ#WhMf;sR^9dVfwzO`9MEpY4^NDxv4)sFoa78e1}~s z|684h>QQ=rtVzF~5HZ8+Kpw_9hO-m0C3w5acLuWXy@4(aYZ&Xd&eJ1a{Xm|UXFt-qb+2t%zXGF8J#xOExd{47IaSq zbdAo=r}K=jTb>9oE;=mGD3r0c4P^7p4(qE#d(TI#T?#tXg+zzX4|v#bjDG9q2Vk?o zJQ5G~G$1BpC9M?9uv(eqOsme?+d8C#JW!QPiwR1KP}~tOR0YBTj?{> zV|mR+3p^#uj>e0uKl3R3HsULueln*%&RurdDCaz?t88||kZu2S=RtSa%XWXFQ^k3_ zAJ%ccGspt@Ier1yJMMFvXNIzFUM%R1_NcK6s=exob=W7;yO1;Y&JpdXRO9$N&go2J zGxU9v~Shp|RiX4c3Gl6xNK8}5dV-{?gZJw(cU-9^D{mkp0%4>R_ z(=mIw=)7$?=W;0QlRi(_dm&?ZuiU0=))jrL?30+^lrd~=v#+)Sx2?1a)i`0DUco-h z3*i4$E_FYbISq@J3*B7Keq;mX1&nR*5{(0}&<1`a^H{rf56~v}TmoHf`DEyfDSU$C z3YXi*ulCeoyt02XQA0H-jB4W=P7?~#-xRR zKdq@{x5$`D*1?-{E&omFU21a9pJ>w?!Y6&u((u^=UF0)|%7gx$quN)=^LUAK0rTB! z`OF19%!^3bM%TCUwR4o7x%GqL@eC;W4&z)sj6c9O8Q?2`FMUVFzWb9&PcYe28jkdo zR*}pZP%_eYK9K$bZrp}DC$I?=Dt`);{rRB8^yOF>HI{$&*BXizn18GSe?PVeq)l>yK{S`s*`95^QyE5`@f>D zA+`vZG@Nf#jVJid%Rgg0U0j!3%w4yA-}{HuxuAV-Qv3e-8T23HAB-0|Ma`0yFQzin zS)a3>?Gd$f_FkoA$RbteSHVv;cEK;UAM_iv8?n2d&>ZK!3D2faWm&3MG!;o&UQIOO zKH~Ehd)D#14Zbhy`C<+Rr50%ys1ta|=zj@)mjEk(zANZs(5H$%)%2;Mj~S5|QLr^` z{s5S6QSk2Da6X|voK27oE`5J+IF5<^t>?mLab?)(74vf1x02ci+(KNh&AA?@>sY7m z*juzOO_J*pstoj3)uz-B)=y3pL1E%vcKngHwRw%bhQT>CuFii zXL_yIS?U=zbf%A^GyUNfd8X5O9t1AbCl`F&|DVeDjVK@f+{etvq*UA7xU;?whA@=3 zv3-{2wKlqiDdtM5X7 zOp>#A0ZW?BMEO6U{(FsX#K8L8I6s}^1%~T+2{AwaWj)9x@D%$X3_t(e|M2-8pRwnm zJH(tr7oGHYoaxiOJlB|W%>Ah?!!lrSgbe7$n;~Wb=VDf2W(FDeVl%J*JcZSCV*Q71 zJ>_m}*^r$GcGLPoC-GQpOZl|9S=OHTdP#c{T|*j%3zYFUuR4!>_(K z9HZrD43CB2D>p(;yph(#9x5|$g4cn55He#>>#~#m0}6Y-%g$GJES=hlcmZ0UD=T$X` zU*JLGi{h*&_%g;Q0eqii5yso~{mWB2+^z3PS~)8g9}Aq!8KAjM330|vkM0{!dAuZ6t`)-@Q{+`rZK|eez z5x3E<{G4{ZFd*9;P&lEC3#Fd*2Lzw>C^J{secOu*J$>{U21hSXse`eT1! ze+rI8G1iF}Rr_Hpf=nNw_PcxsFf)=gzTi_NU&DKd#(5d~zY_DM4dsLG67~O*`lf)V zmFF^$GnWCH%lhj&SRe9HY%#~irl3FO|8 zX<=@L@(aW~363d&JQp&%&7ybn7l78Z6fFZwDz)tk>`;eXHr}r|C zxt8;fL2euPSjuhin=Dbh9du_4d|u~wN?w{tbm&8cC+1;0#%eKeoX@F=5)Ws@>{>G> zGVD9iBc6O;;@+Y!)9D=l1LIY!7H<3+>oKKnvDj}Wi}IDP6V7U%cTFbw5REm-%+T3* zwRymXI!n`f89#HwL;d~kd{rynH&;iAa(;=mWiR@8Sl$Vm61&$=^BROMHNtzVyxNUx z%X!uv|K<;e;=jv*Mp}P$Gi82H zi3u~$SxDos0CQU69kPkw9aG+ww%qfPpRi<@hdt?CsXGIXPMv41c<~*1W}U2Lu~}3{ z3Gp)f9~j8yp1a_S%HNgacB0DLje42R!~dyK`VoRgO*fwvW7K-9Rc#C8@W#P+hjb8y zco*j6guy|^#HpLGMOY;{x?`H3Gchh6NiXkI?cJ?p=Y`Butz(|5jQZ55Z4 z)N>-$16#nWbgv@kUgZxDaLgI($q&=L8*}cJt9y{qafX0jICgv{o7*SIXuIE$XIDvV zbLrF^{lJay$Z`0Kiu1eh-Qj(gJ1-cQ$KG-M{N%Wx4vW@mmUEtyOiI^uweBIGJ_sKg zL;8|{N3JKn^K)u#Lw|=lz>9X$HMhQF)%}-w?e`3=eXPNq#uo9n9~{U=NFF?k*6eNI zeJ}>9&A=LkpD%a}#4~bx=)3m_?Wj`kf&Od>)!R`#Jf@GUcU00l5U8P~%a2y~#7gy_i+&jax z7`{<`zxO*6@1?nnLDts#H~j!>PM#4VRW?Fp8%qzLv-94O`kJQF;k^JHQRIh#%t!03 zyiB{5=_vRdPol&A)$jV5C&d31x5=}CAB3oPDz>Kfq_?L2k_N`s?Njia^Z_k2ViwMbx|yw_AeKxo zyRKC%D?;26(NsM~a)gYX2^&2knbV)kejs(Xzav`zd!85BhGf}?E`})kCj9yVi7D&m z4DBc#-Xo!?4oMkWbbc&K!SCBN;(eW}Uo(}SW1Zj2esrL- zhz~VcUb>WVA^fY8MPrnmfq7cxE5v>h@GYe?9lRaNEXKWDFd0ysAZ`A30ruMyel#CJnhq`|-aQOYV=zg7|=eYmsi2G^vyrb^F zNcBS|!hQD1Q&@K>`|?r4vC8*QIh1klJ$F=2tTNRT8_~``sryf<`wK?ge^j+|doHhi z)bKeD+BNC#Iam*Bu8)&GyF!;biIwmjhJHg&#XnjB-paPnKG^4$Z!&M^j2_UmW;j%)iEnE7nFbo!@E z*KR^CHM3jHBHFCG{_KgU{aspTI8%22+V5PMoXPUs#)(gJ{@@)mlIe?XzskD(ZAqVr zrWF-LlSRNezXF(DWy7=@eE#Nl2Z!P!gDMBzjju@k;l=9AW_t4WFh&97h_{vBLj|2j zJ&L!4JYS=H>xqWFUIyO|PpbvHx!-tLc+GEGGB)d~`+OvC(V4TG&g~tHJE1rGIJO{> zEb>vC{nTcfKaLrBgY^;f8F!$jY*<&|Vgh_#@m0W}hp)@{Vw12VeP>W_nmPvz8*S>heoVD==;Dg^_3|) z9%b7u`_6%f{--+EOFUY6-!WdNOpOcML#f<5>i%^ejs5lzM^{F3{sw4YLfMRHz53pk zeueM>2+~{zBgvwE*jd$@$_e%DG>q?$@dNOMzLIbH7^M zuciCrkhhce$LAFW7k!tnKThMaX&w1EW!aN*%GRl}B!8CQQLJW%PBiWmAw%C zuNZDattwlbQ?^o-JstL^*m99egCZ?{_JRTR#VO1JSE6?5|^o>D6nc@;pn! z9u{5BXBXsmlYT?KsG;x2fJ02*@WZi+wuoJYiq=uvo+_0XxjX6lPDQgIBkm}bw94(v zopk@k(C~AAp!=vdLDy&HT>l+ie;DzhbY0K6{#&~K09|jS>xrEA-$mE^==v9` z?Q|Wn114Rs%DKLouHS(%pzC`IhOe(HMczMYN3AoLi_P$%Ai8^_Dzo(@FZ-HzmCAFX zm+tS$x&NfP-=^*(*F=i$FI4wusrx@JmApk8-B0E`@7}*bJ^y2jLC*8;`@gN8zk%*A z&Ut>5x_`BL{@ds~-Tx$KPOhMP8!)Fi^}5eps_I27?yGdR#1=i6s-w>W`g}nD%jlc2 zq3E3Ho0$;6C#sFE-3xmB%QHh+Q^o!PXOh+sV@-y&UU7_H8;UzX*$3~>WbYX}n$LP$ z=@XzkM-HCQ-hqBooBUSa)P#V(Y=PctZ@Kv1G|Ho#t@P}sMtm8SMLFEVb(HS`w(beZ z^u)80>4T2Ef5%aU&OUWNVRVc4ox|VJ@gLri8BsR&AIk0-QFh6HDEs_~vW@?t>=Q@m zhe`cNIse}OSF3iUx6yUi)*IHSevH4?BRu!_b5338Q+|?pD~mYs$J_gd{6;^zub*>Q z5V_=>JNCV$c-Rhs z{9{#lv{njZ>6j;(9@WvW>?9px7Tp``)tp;=nu@FF5TL8IiFVio(;BZ&i62l4zC>Ru z%8ZaxRN3I%QJYM+o!y%L`A+bUYsA6&C(^TknS-+^)hu46|FIL2X*X5|F^)A<7tVgv zT{5j(bdK#7p7Lg=b8M^7V(r2-+Qp&!q)!6y!1j!id+jGB!0%o!zTPfne)RE}4Ejj& z|9$;z(}8|wE&YB@$?14r8<$K^AMJIjj;HgYl*ZuXmh|zbNxAJCR443qXiJ*ji8?r5 zbF_Ttq7s=~5B1!m+Od$XfzMo~{x6{aZ@77FNM5OJ?66Bzp2W&_iPiqw=@`THE>>jW zENV0O!iLm(VbJ)5C$*$&PM2%MOmqk>xgMBW<(0tG_?*mz9lj_Io32xHNiyyF8Wu3_ z+eWdXs5|3Htl(Vl@XZNp8^xJLFVkPBeCl8~=XE|?>dGLWVXXuIr{qTi+39*h*`a51 z%z}&il1KdI%8!PzIUg|JNV{>+GKajhH0EtOz=j z;X9^k5StyB4wpodO!OuoiGL+b_dg0-$`v0Betlc`Ov;CP;|+?R3X zzCzR7;MzeMcWMFdQGFiHO?wI3?B8Y^l+3jQoZH`ewX8?_@Dcr8!E|Zy7%yXiVy!$| z9Ljc%k@08vkL#dSf1>L>B=T;k6S%s zZlk`L+_xTMEz=kHx%UvQ2pa1|$JCY#z6%m9)>iW=rW^UjZsF0!Qn|;9^Nk&)2{Tbj z?;D#iW2Lyi$xLue;wI!Tp>}?5~HpbZRw0{PT4|2@W8ZA(G<`}Cg;792_ z;tzw;uDOh8wOj6h!aIU(@(+;^>umH$#4d?O81vy*XGlK7QP092y8Ye^uV;?sk5b#t zO0upAx)9hY5gXmoEaUQ87IkNWJkBb|s!4rK7PCJAXql%x>1^v8#_N>pvzPT4oV$f+ zJ=;DF&gEro)n83}3TJaZJcY9yKB5WqA32tQNp~yGU)meG+8drpNyntU@%(T5 z*=IGPXi!Mu&Tmw{y=SwHWV5*T(7r74RU#f4d5PLM_Nte0<_fe`mPc>3;=dV?IZX^H z>sHV+yk238rZ#PZU9|C5_Qk>ceZ+R?^9~lN#88w{+pfN#rto)xNqp3?-GdPTjJXyJ|3TR zI?E;Pdlc9Kjh2HtIe!z?hxevHKd9ayyZ6w%oXhjf zw%2>*`B$ZMwQrv;=jnL%CncV@uU8;f2Kv2xs_ZxHfcY`%cdX2w%0A<=9eJNIcUNNW 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

+`6Mo`w*h!HnQS*29gY87WHmKqQqdA?$`XS#(v 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�yDc3$p}6(7_38|tQ#ntyvc7^1zKLpwSf zbu6RW^PkiHyiV`iooI{YZ0onE$NW)Iv(LLz!}2%%v`g+2Uqjx%($>1~C;N-y1J)XG zkGo#Qt>O9y=x3$#kbavwY|7rLpMfS^Ua(T`ZCgGlcP(9thyKhXqq@MI^sQ*W4`cY+u#Rc@ z8OF4H^srcprf$D{OpM8Z#{I)$DFPmpfmJ_Cj~KtP1$}-Uea@l%De07@=+wl1#V+Ow`%mh(5UoHtpUozA&%oeaW^5|5uG~BgO}Oaas4! z>YO|L?Tf@ere%tv+r5*Ia&N+!GyI1^@s;*tgc+@KMCUk<`GlFjZn+9PPCn7j%Dzcjj5=JH#cz z_CN7n+B({spE}>E(>m&}l-zTToEd<7xCHK(<2`|QN{vH!;nwq=i&0LV{mtLUiZ%To zk+V8tTq$uN!saLC&YXCEt@v+j^7xE+U#`#b2QYTF8`dzM!Fi?E$vk*RCbrIcp6NAP zy}MC=8sOsBKLhof16#el=s&7qz*u4lvGY3`yz=?NvoZ!m_O(7bM#%yxo6beW#3zyym@*bi0?4xrRV<- zJ%8SJEgmy}>`R$H=kOG5ws|KF7#zW#Daglh)`_nt_-(QRl)CkW=8Y6K8fs6Htd*u$_*o|{0tz`2selu=) zRNKnn9J#BKceSY=@dcW|IEO4xf=&o6Q?{LrnPn396WUCK^X%s;$V-%^8DoYqr&lYPI^8Zgs3@z` zc8zUJPc4%({%GzY>H;Ok259-}T$PzgRt4wfs;pG9Dz4*UgtT6PxnhkZ`pBT&RQrhR zLq1UQjesX)9^s_1One6Xd#U}`4UEjMF(Y~lvE@8P&yV~Y=gl*H&bCW;Se$*`m#^jmN8>~8RO>-4vx$~YPZZtW|-&Qgd9#2yIsKki}w4Swr0kGV6fM-Q_NYt;B&%F~n|G5^h@ zhue4^;cU+Ugg|@0V!wX&cd_Da`VQHbw`V2t-W8a~H!$B(9m~1z(y@q)k$Jer*G=5; zmeM)X7Ki%vnOx`AltUX2Uq<3NTc0An7=yK~8LwV)YcBCD#_LUGn5WY7WtwC3nQSEz za&Cu9WPB@;5x%#cF_6aSAZ~x_-8u;F8|RZswj>{0kG;%s)TbX1dVdjZ2AC(7dCYU5 z+sSV4e93t^(X%AK`Nah*drmM2dO~{w$l!yN%cNXl7m&tbo%6knzXP7~b}y#SX@AVm zl0IV2n5)D7xh|N8nzw~{>$B$%%zvQUQ*&x^_PoUyU-YkPDM(D(6z#|-dG~|o;@mhV zE88S?*cBSrQ>7HG0Rwvq8AQqB)$d>E67eP)S2cfqpSWgk*MTF3o~ z-{)g2jKe{=?9lcI?4R-e{d*Tb9!KEpkXsLVph@hLW{Zz2@2Qz5i1}JNsK3;8_?$kb zXG>0473;6Yu&W4z=_Ro$9L6@*`-t&6h-;;B6UW9@+M;7CF~$sIE49p2b}P?PKW{3Z z{Dp6;xOGNG`^bEJyUY5NS^inO?YdpIIYYPk3$|%&@lIwQ3+gaqDT#|5h~?VR-qP9& z2W3zEFL9f9f1uG(ecy5BSB8pV=2w?{?`57Zv+{oF7RlGK#j}j_ocbj27W?`l&>62;x2Kek_Q6A-84c=|y z*+Lsy?1kNJj}{Jg>?nv$66hDl7U*APb4-_(jAvYOnH{vgXmdPQVLV1o^-UiWE5BLz z>lc|{6k|?dt`hg$N;%jMcTpB3{=D^x!6J1D)cLfFOqX+=$CTa|{NX*{93Fm9)`mHV zzwx;1=f0>PvnD6&HK~?(LOJ(^B-SODaxSIs7uMyvM#a-CJT37a zQ;zuR@vN6TuNw|)zcJP2ohA^BZC{0U_%He1JyWZ4IG z8RG`X*igpzPeM8Q-|uc86n$C~V_IQ7;~D1KStetUI1l78%nf#sF&8Y3WsW;h#&M3cTHbhSDLjKnh0dcmK+IV|f+ zo~bs~Au&uWt3&wRdh_dV3T?|7lhIhWslOxz^a<;6FKi;c;Q z#JFWS%Nj|ujI8&3$uqGdijJ4qw5_Of${U!s)=~0)?%?}l?mny8edTLIgA0#Pz8~eF zXD;4Zin+G~o;^mQZ7IjIP~tc*u@{;dZ__)f-MI0rH!?3n;A-}(dC9ewl2}0tQyK9)z69f7{K8tRS8`#|7b2`>%G1zaBgR3SZCB!|JS%cPXj>?5 zZI2KJcsEjwbM3EwKji!AsE4t|+@LY7u;%IZ0O{Hrdc0v3Ln$V{ zY=Hk?v~RKCsolUygZiFFy_4en1ASO~KlcRN;P|HL zc6eW);zdT~UZGaUi)@{xVjeUa9o`g+@6xV=VXrSEcB261IOeF zOP*|Vn9m}SU+qMb^ij*$MryMcnip{bR*?7Z1@~aEHQ(02mhV!w_2^gr0{Xb(yzzv^^x@VwnGAyxg!in|**YVT9Ip($C z-cRWL5!ZHSq$$C_Y+Vl-cyQkti8Fzp-zhL2ec2gU;m%=Ls^vZB?96*b?VF9GiMvdSs`uP z>(7ZWZU^j|ec0u@z3GtclZ^A*LO+aW1=gW_957s3=y+PekbUsIStai!@ZL22Uc{CVGh{V&0c`{-C9?Be2)Gc*#juQB=zzD^NO%M z>X&10+>{#L@0VL8<&2}py+ZicmB9bT1j<2s2;X{t4xr78k|> z`Bs19h>s)nA+4k*sX}?;H#X?{gU_79m`#8ibNTrDhW3t>J9U||OPlS~mBa`QqfVKF3(M`7Pe?gmU+q z>`eEB_eb6O{>>iq$831t3cDe<+3PhU?gx8vg`SEEyEx@MxBcv+KyNQ+Op5Pptccmi zRW`fbv6c3w@HjgR{^G9h<_hmSqscXLUvP}fbxzNRR@ve+3BKov8O({3EA0GiuJECs zfqqYUvM_Yclgw8!nYLk~qwW`5H}Oe}C6q4qI*fDYzr4R#BeXi2@2#$o^{W=!F523W zKc(&AXl`od-}d^E?lO*$r)&@4cha-5;%_AuENJ(5V>BkxMamA9^3WYvm!{Tkxqqm| zcxJVBNt_RkYj@YKLc5%8&**%Mxj;oC7l_K)KNqli!MPoH5Y_f-q^BP`#*jM`6@RM5 zz0olC(jVXo^xd6XWm}f=_dWRCT?P6Qe%WN6`Ym4fcUIZi?Up_Cy?-{3mZ9QMcvpdSS#Nh}SK*mkl&zrL>oWhA=HaNHZ^0OXI9qs@ zJdXdf02}IZbK5~LwxjJQs9WSSi@E9P2OQ`g zFoJ|_9_@D96$0D5ydO5!dlt?d(&zx=Qk#OWNDP(5IG0}*d2031#PL?gFbfWScQ?hy+4PC^X^3Ix+|72E*9W@N2i)Nu)jC*}BWN$vZ!S4QWyB$ibwueqk7ruo0%l-OkRev>Ok8xbVxZU$B)IV9(KR6{_ zxSI7<{DZ;*z@IS@7E9cVEfU9obd|Z(8OLrC>c&cK&LAV*dH$ftX5T-5a75nv-uZ)r zzWq_FmUWv_S&5ZKnSu77^y#|#JRL6$c;7i?sY#n7+5=c-_aw-tA;Y8{W$&aqt6OX; z$q%#Lgr#EE(E|TJ73Hrc z>K#gAQ4!Y6`NKQ+S&RYLnsWHQk;k44l;ezAFL~}6r#p~e2p(m%ZGg^Bglv87Gy6rS zbh^-z^~xWcd)-VsjO|*pTE`BTe6LFxuW0fE<>l_sq){K&WAEf0jP8r?T31W_9JYV^ zZ}y9v!h64|SX27QhB2>Yfwcpt;=lO#;n^wpO<(+4-L{_xDR^gWq|Ox7VJy`QXiC|FYkDVMyKjuc#odqM^p=1){67kpb@2to_sQ9~z zuOMyS1li4h9w?Df)}nk+$7GlLDx3+--_E-UOP@^%iQ}YVO!B-k@%u!>*jTNfpP=F} zx?!>JrEafh;CsB&08Y?1JDlurSeJ1a83)nAS*z~myBx-bxWRgLe@J5FZDwx8fo=L- zzaIMx=z0UZGeG;CBgcOi_@sSW58AA432G9%RDM`|C-9k$&u+;#yxJLWtU18Aym4(? z^MuyJOWrl`G}DErfozgk?%Zo<6-b2 z+$Yl+8^m0v{9y2(d|eI38m?S3z1757-X3Kd36VF=^e=lhxBjBClPVa^yg3OSdu z`TVzT%5Q%2ro8{n@%?RhSjNYDoq)u4S|?)(gU5*qFScH6))~i!_PFfl^^!g$7Wi@7 zT>2Hxu(ll@qaoKLanPdqjn(DCr%o2SPMgih2!Fa!_|t#L+ES0Z?cd(X-3dO0c3t21 z*N-$kzeeJilU_6T*dpK)R4I9t#7J{Ds}L9W1m z;@eP;Yr57emo;7M{fama`hD;R+vP4yaGY`Q@r>(S0URgn|9Xh`qL&qHz{ZdL-YWay zV#XNQNZvC9*(7Mp4KV+ZKd(KQ*G}0NmohHpUY;R_9zXY)$Xn=(eUt-_*!S;rU$2++ zl|ftNqnUgD{^8MkOVWv1+82%O#j!>UGK`fu+g+IWgSY#FT?NK}ju^cXZ!nMuP2^sx zmivXx;NMjK%{cZ(NX}zpkomQV(;S3$r69Bgf3+P%N)*DJSSf&?TVgzPC)XABy!>#ki;+qhn62w&%)UiLhG0#4E+5QL!WrEAmdNvT#i{{{blLb$M}T1 zJS)4)Yrv-wAHGK%eG2P!SRa)=0~}{CyTbn3TdE(wE@APA@59Bt+Mg8~M%zw5_ja|h z$@6n2TGpl!SsqC#sBMwZtn|ac&96*JV7LM(o2WV{*^$HX<(X6OW@G z17q_*4w#YO?lSLFJSVX?1|k0pkmm88CC&T*fMJcfNz<||o`rU!p!to5hNa&C;KzCG z(S3$9%N>3H58AQC+f(=JLRfP0cH0ri1eEs=g7$@5H+l3UYQ+5Lb39$fD?03eoMBkU z(}9P?N6LY0`**Z=&}Rw9!gV|v<9Jc*BR6XM$d%%&ZKl@!=gRxE1tQI2p1V&y9VZG_BiPjV*!Q1i}U<2 zu+BWgRs&}luieKpqhHB2)tO&o{eKO<_Saq`K4POv8>!qDZ=T$_6L#HRTKpE&@A(p^ za;3y~^Yh3se}cp~p|1zdjXBoK1Hri9_bJmxZNVq|IhafD0-CgM!I#ca_s!Ep*6;O( zT06Xs^fM#5URP^92JN|`>7`B!#v;6?#sRJwed?BLT`>E}pbqOw4l+~K5#AB?zDfN* z`XRq)rGF)UV-5Ij#HTv(E0527dohRh24=UqZ^k*q*oJ&o2D%W?bewJ8_@-(z06xD~ z=feYic<>p4Yp-_zd@B9uDc4ILc8(J=Pt$+J2F;s(niszT>R4;rm@mUND5pyt<7YhP z9%fm_T2khk9<=dP%-%a*-ixRKy52&0Klld&3N4e1EtT*BG z5M+b)!j$9Dmzj~g)NC`H+_F#fi4#tJdEV3G-J9~w?&9xHaBs>rySvxnJKOA9OAPns zOtaf^(*%h{-Fx)}iACKp8{a9EUxfFP&2D{z(q}F>3*U)mH-Iy&u|E&|Y6G2a^P-tH zFW%aQz1`;3q}n_y+2+;e+q^oAr9Odj9mBc4KNAsqm*Y6JJoP4 z-tjShJayFcxx-lMETu!OH~)?PG?A5iGGBLEj&rXJyas6aS?wPmDpE%(`coZ~cSy%P zIIm(lV)$m30rC^WJ3L@6SB4tXnrm)~z2S>rVSOvTk;!l64m_$4WxU zu)drd*K#iX*Jg=N+)}Su+bD<5%7rKg&(r@ipzF0-4rZLPuA~~T1sQTS?>IFKOXcK_ zr{&~XW8~zokF?Y2T~Hz;zd{+=dQQ%leswTz6pktfVV%ia2;N9EJmcf>?iQ1bD*!{p=N z?%H3pKr6m*j*^8LTkAjZoBqCO?LSXDySg!LPDh)JZO;0n(QM=Lb4KOqOV3d@)61@3 zYS%$ln1lb6$y&y=bIKhmE~_6OT4Z0~MHA?KK<9MdoqVDoJYy~wis9_0uTThv3ck<;2!$RX_Gmf0tLuoGBLL8H8QN z>Ho&@IkzVmw0X9%o-ZGUQn|KZGS{}IB49_R0pFs5@s0{uG7WS2Kg9pIE*h2aSk z+{1K;R<4ckpuRSk<9%bV>}B#>=@KVvI+$IfXVsy;Iul zH6J-i`WTv$E-W~9mixpZC6iJ&I(AMgiAxywa-VNaDH=r_pu83mnF2C6_5C>W61l85 z4Sek!;q9}2tlYh^?*M1|$2o*UJQs7S!I#GKOC0K5$rDAhOB~2ZgNz4wgZb+IBP1N zGqMunvR3pXC~w1_MLRv~PqIUaPMhZ~^A3lspcB*QC(BI6dqi2hXw-_rU6=6K;) zgL&0nE!tTBz0o#lFU@?fv^AkE3dbsS1M2<{=l)8bdG9+hSD@}>P9@jBlJ-ZjqSl%C za$XJAlrcaUyB@NS_#RRAm`fdWtHO1EY^39aXVl2pgyWBW8JscRGuTCY@h0me<_`GKY>&jBK2i9BG4}zfBi#q|9(ErP1MffXu={{s&uaDW1J?hG`+(lj z`+zy4_W?d%>fcpCzzK{qbAcwUzX89#w>GWfixN+U0{)#5`s?SNQLh)_ozcD92dM9= zz`hq9r|3d^)t%9Ib`>I(-2;)p=$+B%Jhq81rlDLK5CBMtNc*oiMr2Ku`Fjn?vWgH;Im2NLj96U0W#~lQJIyo7*$^F5t+4a zL}uMlI1YUTbc};)?VqP))^(#YE6-l68TqI`mpsEhfb73cip_#i1jNMUAI)L;3 zuL7fq)S<)-&>2(jks7^6Xg@4@i>VK%42%A~Qk^1XlR7{C;=hnh{P~p1CVpPq^Jff7 z9vkY;Zx+8H;>dErZzT_@-wVWtUj1H(-_`t$xeR4GM`Ve8lqK}<0`)?`=}4>OkN`gS zicTfP{Rx^~lT$cHe6L}?1MIW8cveH($i&8h+J1cJR@#bQ9?Kl6lX>@S|F!G}UCDFzf+53zd{By1LG5(R5}9=_=NObBWVVCr6!Juk=g%xLdNX z?!WvDmE(3dW5Qt!8z-J<2en;=kS z9qIzM91q|1Vaj*^SN2bjcQ<&aC}cJAO)q{YR%CwmS&-2vYcW5}1k6MHw`C8_mogB?C_k7!pA#3Ld4_uFPqi5n2+qBx0oeI{q+P6)? z-oMeLElbW_kx;qw)`UWKSo1NIlOL2^-KBiY7O(f*rFPGp_uG+#uT#ubkv^B|7l)EN zX&*9~`@*&~heFu9 z3EDj7z4>b)&q3yVXsMDpANnS~A#)}_hi}N7cVCHb$efAu@C})>ZwJ01v*zmXZK;?9 z24qd&>g6ulrUnqUSal&zKWr`AsV3ALI3WGVprw@IKBt ztPje;@kT!<8|7i;7etyhjc~^EI|0MHD@NrM+Vl_SO5lk1{5HZRu?74*ON^O(w;n&= z9m2b96Ks*ecj~eF??;dDzB%UoC}i`Oa|Ga&oQpI;OVU zc>U}_i5(VJ{(Dc5PaQg2$!N6e{nOcliq~#UIU;+}){3@}*lXXRECIUA{4TUl-EBqP z^N&$@Kv`q8rZdLGp!&@dK-6I z;GI`H)K?f&)yQS} zroDCC;bSbvyYwAw8dDxXIq%Kh9y6!6w#JIQXW22P{PnFWuD^dq;+%J=Hi1nK4-Q|nSQFCGwlh&8TyvaE!0cC zgJt3?WaiYIxu58F_kMrg8PG7yo47*Wct4d|O35EzXHA;`z|=AbK4eIduB>nuA zlIJye&S%q5hwZ-1GcBER&cj#|$Ctaabo+e9dIdaB9zQxp@`1zp96TNGycXT+F^BsG z9lL8^z<4letnd~culgh(#&;WzFt^=$Zt2A1UIz7>$MpRO`sqdayfNhuq5O`LF^N9& z2<_je+ph=g`b+A^^;v({O(SET%(x!d<8Jp!IQ!oJcwwld{#*^K+jV`L`J7T}EY+zl ziNWxb8+l)va=ss+T&wcR-lNNSp7aB6)rp{GAcZmKlkTvRQs*0B+oB(Af;!r@n8GtLY-M9b z59OLZ+=(_$D}nU~1ByoY>sh9A?}bY0{0(Q)ohOt_Y<0i?xi@N`!xDTSyXNh8sMv`n z*71Q87*DKoWFN7OL7c5SPaqF|c=SA!fQLL~F#~%bq3hP6Zo`ei#~1Db}F>$o#D?_vJu>iH)yf6}m8Eo-oir@lH0-&+iY@6%AP0lY%<7b zW6C$8yvaO#FaGt0f4>)xyF=~87R;aXFv$QWtB+Iley8hw ztEAp^U9Sc8>c`Nf|9uaz*!w*Ni)kfvX*FQMab`6=Nb3Hkm+aXr_L|>Uji%=xEg9Fn zhlVHDBo$4k4ru5TkI`;^uqn9JV?6Ocy)#<(V#9cF8sPaY`iJZ1Udi)g81II8Ah_>P z?`LSo(Di;_QtxA^*MjE{p&dJ*ov#JZ94$2Tj#9uv>z=`rs>*>1G+Hh8IMAPT%tu?l~I@?SFs5&2uR z!?K@kR`Cm;L)kn%ru#Q5xnMiWA3`~0MV9|)v*HaIZ|)A1?-;Mj@7%2AK%Rj(pN~f0 z9kff)?q@@C!N>dlIW zrW{+#`ntSR!*VUkGvF0BO7JXU9V4T0 zl2P>Iq{d6&^o7kzx7CmK=^rOCRE=DSaw2WOL+PCMvtiusTqta<6*|K9H(v7B5npEB zm6$r`5YL#hM6S@%@>k*GOr1aQ`pf<*xXRpUSL$cS=w~Nf^w$wz;;6OMxd!qqb4;JB z>-`yWbVo4i?$B~>xz@j(h4C}q@dG8#A}L$ub_Sje5LZf`vHaA{DkoLTnDUbaH*E25 zF1-V$3?0g0&RLa%hqiHv%pZ7HR25F-DjA39Xvqn!VmM)brx?~okrhJs0*0qQGce9t zVr#p_*fqy7e@m`#b=3um{>we)Mvr{*`*~lH-aa6)pbX}bX`y^}7UfvO+#vTzWBU!1 z^c(j3oum4Vl=fRCFfA-RTJ^hxKI^()u2IDA*JLg-)o)oz?)h>3?RGc>z6toVC;4m0 z`I}@<(nfX9CbfqnsdjrB>QDwEuIx!ZTJY;UjXJdJe-5}NKC0SQiLj=PG~)mf*7Hw_ ziob=NT@t&u&8F>i)SPeM@`a&df_kiEhb_9SWG8hKa%aSGx8mKfvCNK4Y_rKDvyDBu zZGg`jZSOqaUcff`RU6|N_XlmfD)QSh`&PWqI(+Xc)SJdQU`gIp%sZ^F@O$j*Q*7f1 zefcn@?*(-z4St;Dbhnpi%{bu{Z54Shv({@rF;{qO-jI%+pJUw9$qB|h$Fn6T<|K#h zFXXw34^RDLL#D&w9`w(2(zXk=3^h*tHI(fI{b2k$+_y;`1E503%=P^i9u$}amjkz${fK=ZV9z$$9@|-HEs=H_2p`cSrQBAdeG*_Y=^^4U z-rs|@;9YC9W|X!KZB(?4?Qxuma8&LMSSM~ z$uq9;{1X0|_ddi$<}v-@_;=d{wv5)5bK&5duSp#hFTBT_7gl%{*7l+gqOaGehgz)k zHlq7ue%Pdnw-HWG@jgA#kaLhUg|_;lH=<7ND3pV*sL}Tz^Xb2qZkO0zGA^CBLGaXC zBmO=|8O9U-7$;~uues)L1Q)3r2x5K24;AaaWJ<2^SEIe)&(XrT^I^ratlp^3UCxE@ zW7#s4F{kUa#p-^>@AK%AKF9lg8o%+hd@{M!T;na7+HSYx*Lb@F+Y3v!t+sbhd6Kp_ zg`klN3^%$BpJjI3qaQp3x#)!_1y4n|Y{VO&qzQ{;C>iPOF zo*6&;y{gYWk7tp8;QV3vZD@ydVZNTDKQBMVkbn2&kMSIhODtc6cSs9({xW_7b+DqR zGcF-b+e`lsL;0c5&qL&fAoX_1ha@IlrNmQdcj#*&xfaZ&&TfgLwajCFTH2tTbkEC5 zXOa-Vv5f}p6}X}&3Y0b`|{#i;W>l=a^db{8)g@1AshGj+;t&DG6rytT_SNw1l= zo_-9iTfA&`g(G(Tt;?`B7Z;+aGcJH}r#FgTI*vM5otASe(w$-l$$Uk>`>2Xp--3Sb z`^Rgd`^;*+gsna{Eg-}U&e$9Dt18}QwT??!x2$Myny1fM2s~%H7sO#6D{)YmzyHYk(tY3%v zre1^Q)(%hk|Mz%T==J{LTd%2H2m#|k#d|`=&h&a^{fvD8J};r-CeW647I1%0dDI=M zR_8m7~C{ztvJ_!t;R*y{E!-ViI&?!QKClrME_a0b$smw2;S z+d9RhjT=eFR`Na4%@yWO?``zA7<*6MIdprA(D#fDj90wTt4ORHAU@C4`5~r*wzRbN zs(hjWWzToHjx`VtsB>hR#^WDPQ2704$&ItjlN_z$*RfQ7OYThlJ1%xi>UXu+E~($9 z*fgo%4HDa5{Z3#!3DQCQrj2BcF0Yk%&r2nSK!e0dSNVd2-0Ps<DSz=S+CW4Lk5l9#z^tM^7mJuJnaxzEvzUGX=0P66ZDU3Ia8N-XHQx{QV=*BbVcH2qahA!*U_1WiR zx{tfi2iGQtdP!ZcUDx{_p79?(Ny}~of1@rM-^5O#aw*sCl7dx@aQQqsyl6mwBY}ZSlYXr9H_igyS zK>uEa-)a5(4(c3mcFrwXs|!lTohezLZ^(P<_t)^dhj-g}Z=A+~|G;}^(=Q(FwP?Ja zhO#fAjQ4^$-3Qn0!ze$4^THfy`p2(@m=nl5bE;#qk9!ky~5bxsb}im(I4w& zM;I$@*k?hOEbKA-SO-<)l@`-?Mft-M4cfY5+!@fgTq*y* zJ|=!0E6fgOj@UA$9Gi8`Uhlc6T1WbjhruILm-Qpm-=puxr|akcy*?&>&vWs=sif`i zp?sIt+xd0b#ui=w&Zw{FQ1#cZS9>aww%uRyP91n-;X^+v>NQ#<4rPnj8YDGrE46Q5 zYodE(Jw7b@Yz2?wC7!&pt$v^Q%68-YxIt`=6X|D#_wwzJeILKD*6r|)=tRc4%Byq5 zwCNMQS^RVj`diyw661Bc&TB=QM;*b4&WCNGzt##hckZvN)+_xa?N??|Z|OfUDV?>de;9eye@{TJ$r@fS*{e^q}Hh8r4 zgi9E-{Mi{$vf~eom+35 z)_-CR0}T>GtJjO#l-<7Rj+gjNfNQ49`}=IAGroy)N1Zs3*Y`gCCJx>#|o#G|II{1)%NX@f=D@%jAKYg*SuxPSKT*W{kU z_j%#(EXE{v7kd=luf!T=Xx~&hN{86r*VidJl))GdVxLKjHO&_;!m~w`v+;~|S@so_ z?ctqAjC#C{Qtt~WyP5YzleJ=S3)yCfoF{0+Emj2dAbh+Z8XR|PtVINpRrEm*e1`I)pgH8*##); z)wDK)Pb)rYeAHdW#iC2*T?uW67=t|6nwtvQW(spMFvec+gYEAB#$O+aYfQeC_Y2QX z9TM8a|MSMbK5{={g1*cx`A_{x^*A-2qt_{Y)E(@fcL+Kz#pSIpihS}R+JR@XBlhXO ze+l<1<4(l0>vYU6mR;rsk}K>f66liN zodq+o(_{bijpccD)mtNX&LUU(`HOuRjr?bQz>zR*&^+e1*D71_FyO&`K;B`Z=3$qw zRd*wlGidL>oA9KMGI$@tF_=^~n!JM|znS#&cu@vr?q2lO!nlXP1IhcUZ49XgtIzbv z8AE)y^&J&M{r$ohtQUIB^Upu`cm^_NJ`$z6qdeFm0ko57iQKkCo3{ow#N@;~YF){^oI)~fqD@rxRxAAv z!i*ta;)5XfNi!APm^YdCN^!GG{4`ry*9m;+e;rM&7hdb*w6%szaz6H6LdUN>Phv#2 zi4K|i!)U%rcm;_$#k)0|@mg96jfr-Lc7IE!e9qpTkUZfM%Y}O1Xlj|{jJY$h#G(Hx z$K7%Dd^2t=o78!A#w3sD;~DKoDBqKIlRnXB!LV$h50=$Q8yB@s*bAMf4;4+LQ|#i~ z@mu&heMe(uI!DeJ|Gt2PCG0rePuUz7-=OhnG zG_j2FNreW`&zkzy-SXcS9^J&!nGP@iVuWQR;@Mb(0pO?aKC%%ooNnPHyH(x7qY@AmE#x@Jj z(6$%Iw%gOw(!SS(56Zn}OZxFz@VSLLLaiVFGJZFv+r37s-I3*1c$4H28{zwrHS+6k82DzS`$S-$MP#!PvY$3J@XvFXa9an?i#Qr z^x5Dyp|m9dZWZ6o;Ok3sT?VZ76McWt$+y`bw7?}&5Fs7pL< z#@flglGy+4-dx~jDNfh*pE!ck6XY)LGIxQt2l=t!hwYMY{tjqdb9Rf|$*5c)mlr;Z z=i?-PU#?KW^4tSn%$Qqf%zeVCl6NyuXRfV>}t`S)Rp}rS~_+Js#sv#P$8n zczu7j6LS?jvalT&G++N@1l!g-qT@Td*4ucaPkfGkERSvd4h32 zMK6xAv!8Hl&q!apwf_d~Xo*kD@-IV!nzmIL7g{sq{-w`DlS7G?ds>$Q~NL!kD<#Yr=je z4Iig%7I?;epeI&5im~@0Ydxg*`!wdt>7h)*GkJwa+qxI^Grr3<`0g>N!!wR}HuPhq z8};+-_0e8Vzmq`ycu9NY`xfK*0z6M>JGU^N|DE^R3o6`GuO`h=yvs-FBSPMfHYnH& zlE#HJj@c<+qa5El6zXRm3yr<;c8 zkvCJWI7-t`!0O5FSdnsLgD%_It@PxWSJm@a_iD7W)8cu&M(E>Rr>V0Z{L4nsLrWi> z9%G)Wv2=ROrAdE}+W2Tc_oCemv@PU4t>!gpw|O_pMUMctR016oqx^Ky39oyPT%ZS_ci5y-VMI1pWTdSjJ>fN;}7cCHMFTH zPpnh=6xmm_&sDO{Nsxmq<~;e!*7fILKD`&+oL`8~VtfwZ^ML;LKRd_#AN$$!Z=V0V zPX|5$Z9B1B+Yyi+^Y;(T{=(-C_51t5Tw&Q!nZgeys{g&1zkRBL!5q9xJFM2e{l(Jv zKLCEQd_tyha;0tq|CfzN8~XnT&}KRQpRC*T-`#b}P%)_UmhaYffzwp%1edXC>Ognu z!K*dk!6zK<-Ha6*4cg? z-OeJ)3#juOZTAzA*dQwIYJE!bhfS?WNF z-~I>qI~DjlHH>%f<4V~wl}&Y`_~C0?q^q2TML=_?HHs_$>#0K@+*zmwf7@p)cV3yY)iYBa4*iJxtmWQj zb2<8M7kQ)<)*qF)njMmN3UXy}9KJg+F2bGg=Q_Of#xV1LxZh;FDTzDM?OBO)9LXzb zBpu;N8Ao^?^WWW1?U;U;`>9s&3Hd$+JJ=*(F+cvtYcUxi4g6vfmh&Z;_61#65QsbvC>^)AguR zjpS^17wR)t9_@&&l4rj{IiG)A+r+;Ox?YF%nV3_0gc#XPoWcCNu`LwH~x}iujj!`Iz-9_`F>IX4FQkuFQTH1a3rw?I(PGpDx-4_8*AbX+ z$I)ko{`z9)J=?X?%ze~NUyxY9SR{A1Q9qAg{#=RsM>;_LpOsmH`QjPIS=ZXGejDv} zqBSGBv9hH2|AL0A7`QdLm68vfv=gv;G;DM~`peN zF>6~(@Py?bMfo$nEr4!=@kkRWXO6=LUDkmA{;xyI2GblVGo zcWHcPY5Ze;)cO+qIvKmH zPwWJ1(w(x7-E=)(`E0Z9LA?; z>8D+5g<3PvsqNp66+7}B_UdiK?@iu9{fzb|tu|#*p7+!#-R?E?cX_-EX6*VOY_i7dPUg_TfA2$jM~klQSRwI@=!_n z72j5Oa+I$&mz1}BTgf7~VvjUT3cF@~L}JipKN67`M8tvdMn>Wa#S@j_VJ8xABxf@1 z<0eV06Y&+A?E8t-qh3Agg_P~}M%J&D=NHqCVq-9IuEXEp*H%6koLPA8#B+c*bHJNy zw`oUhn9ovAbeEyy+lGv^oqyWGry0-ZQMTO6a=yp+!8_R@bDQnw4P)L><{$On^?g_F zZU*eZqqKky%raCSzGm!;l~@bLk~2gXIJaQs&UGH;UdP#Sr_Rf86yrz$7ru4sPPZoU zGjE3Vh)Y~)!XB&5oa;0(k8P$)XzmimG{d{py;SG#1I#WiH07H`M_rfPGU;<-)3{k^ zcMZ=exkoexBj5w8agN1l-(YR<+MJ$&Hpn{?bI`b|VA$<8?-6%TdAxAYda4k&H+y@m z$5DQpJv2rC$1}sY%|19KUtk|>a}fC1l;14zDL4-1MybbqX|G$C*&=gp!W=5nxyop3 zuJYqD_w^EIQDWC*lzxx#Un)@dG>%c?6Rz`?pVK`+o$f!x&gn9-r>ZsAQ|IeGN?TE# z!=fg?ek2!w_{7-~JAaU|+ZshCpT|BX?=c=>3^+T`|3jNPM9W&@C>enGHjg$}lXnLm zDfrL)x)oZEA7^bW)JqJn^%Ac}#}9RriC;xH_Nckcdz$dTbI!e~^<0PZe+2KA={0LY zc`f6pO;>TNAb%8Ut#cg4^my?mqEXqU#Ic_enCxt0WfaIMGqh2{0!z_WMbsE02S&P_Il{Lf@r$ zO2y)%4a%PHJXSaeIhQ>7&`G;^UI+|)e;&@Cbc6Rqt0k}SNc-(5@7aHNSr5wE3x}7T zgt9XvzCG=Gum=S90RzH|F@dIX9l-+zZZIUKe>}HTau8J~e}cVsX`w0EZreyEPdy`6@lfK9C9__0Pt2Yw2mPY(`c(ii>O9dK->vENfqrF2)uQQi9Q+*Z zz?cJ<`mYB3re2tQC-W#XuWKW|cZYTqhC+`@+{SQ!yVry=+T9!dOFXWCaN$TKS32i%^h*T0X&Z_=ja zsKH$fhyuC}T50^&ogpzVaJ(bi(!Pn0qAL1Wr=f21Se zr|x=P*KI)A{bTCxKIvD5n^C`B*9X6R*K7I?_U^j@=kGxF(YaA*qfwK6(2Iet)MhVq z%v_gujrOC9n;X2{Qz|4DIDH#A7m1l*&bOmx69BLeJdMKUzN|dYZ9vd@RdWD`&#XLc`@}y zd&$$r^J~57s9%j|osX=x%XlXVes+)Xr1*;t8Nk=?JX!GDWB!L%bXy!V^|IK@Si7~p zKb5q*8+)n&WpmNC_?>DVneF*)?L|BFCGCJ-JhA(`kIM6fc#l4xwRq0Dv`uN$bK$+i zukmgZ=mBBJIr(tAmvkb#L1Ml6>#>DpzJI9L5Y3kOc)@<^ySlt>fU{3WuJ7l5P(1fD z5`!-%dT+|L{y9^V>U8MO;m6f4%kln)axmnv)^>;T@Aq}CX^vHF3{fWW?oKqSY7-kH zL7w4P_mnf1beYANUf{iw=gNMoO;m~90)6({uy6UFa?3a6S+D2UrEVyy@AGHr92fV0 zQ28Ql61f!Tqsg3O9pE84oN#{!&P(b?Y{;<^-`_RyE%jRQ%*;S$>5%&;p2tyB-UDyl z;racfbUz!}Pdeq?N*)SwgK2d-i7ezv7YC!VhYJzwHPjVdo}Rw)_R4tnu?5NA*j zWkHX$&NS9ZyR<*(t5>!Pj9GFO^$gY|$p4d+|4%*rH?DM()GHYD2bttCet$Tj;`*=9 z@5b@&MG|9nlB{8czlMNg9Pd@5&CrzYf%X$KjJ@ZukD!XD_@K!c)RK$lO1Bzt3s~(A z&Lpu*;C%?-H>oDUGX;DY=39ejvryh-cFKMDQfXt0mw-Nkg*n6}Y_V)?(O#6b0CVpgftQZZc->0uu zay)fSdHwv<)k==1EVEpf)uZfA{rml^m0tz-5##3OA;a8_PfpAGM(b>4lf|E+J}9K zGhSp+@n@2;AIEtu1W!-BWjZOo`&KGR-TYu!>*i|#i*jARQf!_TuSp);()Y}@CHKs= z=_Q_(TH-m_zY_mXulH)|RrMPGY*lOo|Ee|qWq%YKjBC1hF?Af^Z3q{RIk+0MB1IYe z9*=OcGD(;GCeNs_*15b-=jfXkF&SnacpQh`L!c*ADx4t&>%3{)-tOU@!5JeM-ErWQXIj-+apHKW;R(9M8nC z_FJ4=RUxr2`OGf9CUITpuXai3b@6W)jlq~3`Q3S?Yo4m~(_&|WbDHB^%6aEf&hjA76_wxjw6ux?_j#73lwK&J=Tx5_jS<&T z*2W|CtAH7*Ga*B%>UW ziVSN+D{^V0v~oAvM$@vQLZx!cii*<8YLG$EpiodrF{aJREq9lS$}Ow$p{HFdx2$Z} z>cdPQA*M|-+kEDC-uIpl^I`ZveP6HNAM=`-`*hBII``aj&qIS|Y!f>2+Zdn3V8HSg z!OaNzHD6jnSoigWa;G!Qe11PL!t@f%Q3TTqf6#(25jy6n@hyRrMArYp+Jl~PG3~$j zkqcGG3!h=Q&=>Oxx_)h2mZFRX>_qmx2G|$GtV7|it>qE*TM>&=uGfv$pV;ocTI)D2 zp~o-Q1X^P?!=nGsrvK2H#{cK3&LCd1>#fqihW<9>rGB6<4TMVu`!NG9-`*f`&M_H> zX*3RP%1@DL)Rz*IanSeRzq-4ZmKesNl*i$p;4gR_h`%4*5Hk+lH}pRakb^2|(SDvx z{d`sE2>S&t>nJbI;4AFA8>DTRgYAtWBSgD%X^rY_|CaGuLu+DZO#Ox%i%seza2@!8)9YMKbpXHIE#D_I8IS$kF7Xhlj zGG-gb24(*@Q~Fc%#H4r4l>QgT$E0`8lztp@V$#2vDg8L+#-x8m>Dh#1eoXowZ!7^mk^;@i=sTz((_v>UOVnQ=N~6wURn@Hbg^KT)1L-%#1d-c{H(tXjL5ZClH!Or4?3A}&)xWp3m$vtc(vV+=lcDvg=oFX@b| z!~K!Y$Fq<1es5oI!0#?k=}H^@Ia{<9>G{ z&i5dl6;!ssr0iNM8&7TJQvSBF&01y)Vu93m;GUSQEa|ufZ(<5M1Q$Gc%drHJ;rhd++ z{Q7R058OQ?o3(r@XBY3D&`GWpKL2m0aB~uS<{S&!jy49R5s^ z=dhj5;WWd!JL6lNyNv?Y2UO;G!WA}X%|~gj4Y1}>xrnd{YS3EKqWzdm={Bl^y}i*u zGcKfbytjD`_?$;+u)A$Cj88t-FEgZ#qcq_=n9||@Pc_I!=Tti*pdW__Ka4y4749c~ z-u^&T$D-)YI`OUy+YJ$;u%uRt=W%%SI>~1?K!;k9wwOzjri=QXa1?~|I?(lF?OXiFeH3%c>isH~I6a%{z<2xEHt3eoMi7rmLwPF(jcg51G2vv#j0fu28K>SA?xe6Cq0(eXF$h zTMC^B+sMW3Ngf#&5bFu@C%XTRUTL+ejv(sSs4mtIZ>RNObvL!cRs{Bm>#%-P7OU|0 z09~Dyu@xF<6y8bZQeRqfWPeU!UE3A4dm^xhFy?tU?@`LzEyh;9x$A!3w)2>reSI|6 z%JzaG;8TSBpn&KuWESxIwwueI&Sket8AB@F&r|7}c)7}SlovkYs6UjymC|X>D&Gc7 zUqOP9VT!mzbUti3AG%kY+hX(V1LPqNc~5#Kr>7K!yR!P0-PKRo114q1gFh5;s$|}@ zv2{Yu?e|n@X8$2WnFD{MUZIyR-g4YZZD=x$H~b?!l-(s{kDfrlR!|bK4GI+65+KWh zkMm2qA_XNrqB*|MpptjO_L7T3*2F8r&h@k}14|)q`A5sp&xL*~;x1--YD44SaS9&v z6t*kyrzD1V(jM|C{*Wu+2Te+G`21Q@onPB|aaW{+f-CNnOH0~$-awbt9EA+n6-h&^Jxr`%lLwy}T#RR{%89&G+ zcjSD~cA)T`wyu#9$I<^EahyRo&Sifgdd%p#Ea&SPN21@Kj{=ULinW!ifETR|HN7p@ zS0>}=DD!JwBe%8fqTflx_Z^_$J7^7ci8ZrAJ92w(ymQU)#+n%j??Sn5MjP?g=ieJM z|7B7pxt?)1j_+-ZJ7mRvTJt_y=i==N`+@r5!aEkNci{cu?dId{4%UVQ-X4j!(DQan zyn(O2)`jk9P~v^WZCDc=(-E<0@kZ$I${3aoB}L*M2ta>gxKfua&KSg(d-%Ly_!9`t>$tBV@sF3eanUufd#t+(Huh}(==KMxUA25ao z=s)gP;7O0X*ulPU6=#o6FuYf}p@Rr}JL0Ric0_t&MG+5p4(wc73d8W<1Dc6Fg11ZP z8aPVoG^-e+RPjcEc3rycmc|LOHV3;fPKduucO)9CB+-BPbc3!u(H zHK*fQNO*et!?U4ZJaY_q{`^)H&p$Apb_1SC-Wm-!0#`>#jRstI(eDHFy<-y5hYPp2 z-Nm?nWrF)K!hIL71{`fiSYNRYsLLq z$3IQ25qoJorDIKCZ6r}YT-2`&%A3fze{HfpI<|BOUCL=5YZ!iO;LFPm9-ySI9s6$C zN3t$-CR;Xt)^@>Qf5<`WBlq}(a8huQikO732g02W` z&F-S_1N423Xjl4_cC#;B9S0Blw6b|64rPo3_+t1k1P(hcc)M*b;Q;u63Ekm~3~j>4 zl*iDf?!VVoNNv)bTx)0(HgWJha>3w5q3YxLPDAaYO^=~XM+}}gk23YKqItiV+r(SY z4mz(fP8SSbEXJpW+7-UcDP3lsEz;Oi|2u4*1dS)G% z6U4=X-Kv<62E%+bi1|43VH8dpj}gXZS26LuQ;LNDe?MXs6Ca;M_o%eOqL6MIkM{I5 zyi+CxGqrfO%Sj40$oDq9v$>@Vgm|>jyKix#J=WvL0oE>lUln&1vDbYf_A2zI zc0B8hxY<53iR~lPp})ZPkxBg43tLjqo?9nL`Op9OeLI2u?Kl+qo{IbJpWf^gc3>Gw zvv%UMQm0vu8E1h$2>({U%h-$I) z{0=JL7*qcA0m^?z3W^L19l!`P2c*PonZ0WAGVdD33MmE0XrQC=Y#h z%kV(BfW}wnR~C#UUZ4IW{lWirM+%@TGFrwtj5GLqpZun5w~OaHm*b>^MivFvYVe-| z-}~^hbt!!1&^oZvZ(+~M>i~BCmz%7C^J3P(xrQ~+IWf8h94t@&9n03!y#7!!-D@+I z+NbS`|LF$AI`P!Lyyh8a#6`6CMXf!uW8?>dM=O7NkKn7;pPmqgEC%m@7KQjI#0wuj zQ~2bcJGD#Lp5zd(HJRw|AmPJyp$ZLn+yi%{- z?e5g+oKq?BX;Pl(qjSR-%BJyfyZoVSx=*=~2Hya5FZL0vs|;}VKGS#np)Y70fB2iw z$A77D{3-4JQQr$)5KAs}>}Vaq2a3B;_%w1O*0HOG=uHLW|AdEMduU{*;03V%bpM8W zOcLy2i?T3;eu6Lf!-!5{-*mB%3(X5p68hWIA*Zr{Mh$l3eBB~=QW0m~-JsgsAA6vq ztoyjbT)pe=iVW8GK712W8s6wH9~OPUr;GYeA+_`)SN_PqHEAZ0J9b|4r%=@j>|=*GcDe82HD{k>x)V_K(u` zEKY%M<%S+#C5W|(u}%(k3)%XZkunyp-XGXdv?NMdhrLqz5=Z+IVHR26=;wx$Kp? zxP@!Kfh@s8Yws-ACn5%SXIpn?zJabNLZ75T*Xwh72=5=-y4lB@U&B826(@ud9~^e_ z(3!D|ax1j+uV{Msko-4Tzj6Ugxc^n5$z|1&24F8AI&z1mQwhR3_N3EvzZ zray=s{zkVR57e(&gbj+`{u>=@S)bOT+!-!q-)7*?bLjqdyhU;5fL;=9+_jz7-)6`l znzVMIgJ0a1=9?Ir?1SADV*5&c$;s}u>Cl->0G$+R(}ev?n(${sb=*>CvXt*N@DBug z5*OYy2;T_weCWSdkv3NN{oBFQ!j}6>UnCm-)a2mWr|l(y7cBP&o{BFFJW2fK)0y7t z(5!EWexCe6+YG9gy>3rrMo`kvVydslWJ?lu&O}EEXAjZReEJ?fh1PhXU;T#4!k)o0 zyp-rnm57y+%6a=wm-@4IK`%=~gOLth;4;6e+o%yQ@NbM2^i*nQB34kPs?hrIyZkbC zG<+CR8x>>g+XsnuZVnyx>g_BR?O187y1KhxL%t)Ib#|%T4>9Ec54yw9H3Gcq0pV4u zXb=C<)>kGl_cF{h1I(Q!Fw+fvgkGiIPxkg;lXqt zf{nq$=WP!IH_-chI&-Tl0&SCgQt#LU8<&=~S^=FQ@OMOZA1krzeZypf(zbmxAjr=~6;aVZi$~4H*`K*kKIV;nM_Q3~y zDeEM@Fru^5p*${VTmrQVnh4rg$hO7U`x#@Kwcm{pGA3c)sAYW*n%f4PU7i}v3cuL~ z9wL)@h*>8|9^%Ji-A;_{F4n_KbJ0Dc&L`eL?LMEd<8~DKh{yJ68E*RTs?=OT;wyqa zp+_CY8?W%6)5P{7HCiEH7d8psc<|rg2sV6^P4niaIoq`m`tfN(hqS9g+KRw7QN$K% zsnvo??Y9Rg9XSW8sJvQTxo>$HUOV z_3aj=4Em4ba4w>Jt6R$F19|n@a*tbeDRr8jhxB#Ut>Qm?W$0-*?|gZcYL;8(;k;2( z9PAq}(6&BFp6!DxoRM{W=Fr*VsAsz({N4clPMTZT*x;tje!FnD2VT^F-xiv0RgT$w=$0sz z>bNs1Ly!g9A%9RS+mBCfkBHbVJPz<3=Abs;_c=QcRLFN`^l_cfCFU0WtX>vqODLJ6 zE}9x>YYbF{oB_WoVxX>bM#c^ChbB?~<2=+qrhAk&6nZpe-g@EpbgqcyGd=8bZPoCG zv1n$M`t-y0@S*bGhvR4Z)#8#xp+HuH)++pKoUK{B7lk&_ePh|E)72q=bw&a-4lT-m zv_#iTbpw^VASKYY%3@IkFSU7jJH|Q_{sA~nl#l9;Ae@%F|0B}iyK5ciW36sb)(E`v zFu$~3mb?Ec@PmKiNmTa-s+-`MqgLkm)pFqv?~3pQs+UkUN6n`E#Z&$2ASzSFb6)OV z5eGji@cZ0a5(wKoi&gZ;HrB7sAiA*9?N*D4r$PC0*tXF=D-$tWt_VZNxSVJd_M?N& zZhajmrS8-=(tIx@o;ATYM`@eZ0&p|;Q- zvkYCRT3xjrh1H6PMQwGh?MOo$cq(__lQL}(;#tyq@D7&i;S!%S@>jM|zKL+&%zFC{ z&Oe{>;ZHn=|Nn;m|A}q%zu`4?Hl^X-;|h$~oW1bXpo=~Ot<~y&*6Qs;NcIs*deyZD=>$#gmms>HkXl)O6&!szN^64;a6DPUwojx4dhJY-jVs zu%}Sr-&n+{e~;UT%;+`B10H*L9W-$sWE(F%EPc!4O@A8CnTTmcwAknNsf|2mm=|l- zEVV(OGcVnLXI84GpD5o_F;9v|wLymx^OZyM1|bt z&{M%!_zd{qUisL=GWKXA%hy_I+;iz}Ul3fWq3=zw*&$puQhId|bGwM<7W2ADYf&3$ z?sn3A?$kCAesyZC))4$aTS4Avq$1t!YKlv8HKk`j z$K16rjy~y0?xr}q8)c@4(+by0zxePuiTDp5y!E^!{3bi#UsKStD*9hV|Eol79q<%- zS#O`RbkC&wp#wHe&<9Yi67S{?&&qVgvpBuW@MNqGN4E;o#7( zgk25M{eJ|8KB2V|547Q~Cxi}DQ(CTSw-6uf85L@wyb@nc2z{{MxvE{cutF^%USxs0 zMw{=g(dLxYXmjav8sS;)qqOk}GX8*wr(6R*EnMn(QtXFYs+DNWQ@ju4Unq3QbbYZu zKPvZ1GW(Af@%`WjZ%A~{#62waL_`ce%IknX3SL9U9+GPad5CS|vdBEt`}rZc*N|66 zcmqG+YsBwD#t*tT*1Q0Gn|9XF`oO!0xf1r%Kdg~D zmWY95hdz{Y4eU#X!~aVckH;43Q#Jjs@=jBFg zy_QQnk{-WK=heW!d_X+f3C}wt`QsXd-wN9g&8vuq?ws+&ykKebykItccGK^IaXU4& zn0*dP{UYZF$yK5MJ}>RWt)qnxu(rJG_eGE%PwAk&`QxgzLTX#>k!#4hIOhSoaGYP; zO=ZE)ftUN@On<0q@16+qej=W_h55Qqo_BVh7lQ+AeE@4a)h`~mLMySY(7=}>Z4cGW z8$$fygmxhl0v_j$dt3NmESPO<=Sm?HL!H;C9nfX#@PLTj(0!fk%O}*9joUzM=krEU z{T`XsRJ^aGLSH*SwKDy@QCriYvz12YJN7-+>NIb&kW+i9FObJ1l~sjGOMIa>s9n43 z6)ovZ=zYE{xHjl_}CTpx57X36tOn}r|e8AM*yz3@0I$PdOy9w7O{?Ssx!qY zaHEuYZnF9{5m$(CS0^NflYG)gA?!MB%HtiG{2Ts8EUpqYt*llX4ylb+vaqN7x3sUIKBm!c9UqLdkkh63Rl8?xx-GLJ7s@-8%k2vlAK$DA zzm);35$XH<#eYkmVqaMl@#gF}Eh5{Nu8&-PPw5@8r1GV_G+FKzl*?PC#Su<;!?Aj{hFKOd zJPEQ%`n>=#DpQ<2>p|C}R?$X_H}pq~)Tf5;o?9)-QsA~A#o1%~1-K%{2Enxlt=h*_ z54hD(8F3#sl##Z4RIbIE{vP9aiRjBp?Y)$~eMzFSZ*sYD+-GHI-*WI9-pcsqbGd?{ zeR0gBa?eq@8AGG}g>8d%s)Ql@U>o8h8*MnoRPKpnL%#0DeSV3W;@+wO?{X73@KsbN z#$lz_V3MCr`PH1i!6ZM2@_n4Y-6TJk^5=8@HzxTW$}i*mBPQcDp7Q7LxYET!jF&65 zZ#(%^?s~LCYbZC>*iNNrr-1UWl!lN`M$k-CevOCBrOz%&NH1HJAhg|4es5VYY3HyNx?LRv|LJso;Ec_#o2ZTV+K9J)vfZv!XgP&8;U}W2vRNxWOWqUU zTNS!|NuEUZ|C|_x|F;rPwXj)8AYKCR{P4ZwLQIOwCx`InUgCYPXU{`^0opw7jKv|l z_s`k_#UCo8{1E{)Jm2dVGVTkU?UDJE4jYJ?bJ`=-ly0n7LwWgBrkcL}ln?z%sRQfR zS{1wp__b{+>8jxO*J?Ywle9PJ zQ|`5EW%QX#AG^n{c>;FLO&=G1GF7{lL7$|cU31U}b6lR<9$n_|9C22`qX00Mt#Z~vN&`(^$9ZPI-66Rk$9WM z9)ged*Z;SN&P8wAMxu*}g@Keu6&c^Sntd1E20wC$?LudoptnOm(}aFL(N;a)uFi*K z?~^ok1D%0a3A(*g>!HIbmBP;D1TNEJ6=R(0xx$~meyTsceB8G5nXHek+lir`pZSB| z@7^CV=9RMFi*tni;3vXQV=(I-Es(cJo7~;o_G`q#J&`}e*nkzsquhQOnkILDJ2SeEo;&t;LkTHl#A$MkY+UZI-_W>EJ z(Tn(E_GsIuJRoBbRZ}~=DJ_fs!>)KE^Ia#=|CeBEMfoT%{BTm*QurL*o3Xiu?h4-! z-*tdK`G$KS^dNBOYJAoinNRmM>*%-;-hlC*GJllZhv$vkrlCyP`rh}oqBQ(Jlg3~H-8bW162|`IpM;Oee1?s* z*9oq>lJ4U4@r?}#UySOegs`oQ?ii5my-);yaczrd!G@_;YYZ$3IRlTV@gQweEBr@K4KJD*NNFXWP$>(fW+3*4dy%*+1gvW`>&Qpc8FkCG6$z)Q z%iUk}yaBGmTPp6o;=SN;4Q~a@%ib4$=KgrFJA$^$p{wJ*FjNNrM^qMft8$lL+aq-9 z)`~N2GT~+O%~7lK9#P?!8E+wF^x5?+WD0AwOV&Cgx<8c-9HSMmEaF|_ZOwuAh70`a zb}A2Dr*EI3KBhdPVr-yCm>XOs#-}J)p%u86X~iy|hA{&jEh}6k#?8$!FgIka(JWNA zmD(xrF4N+kT;Bc)wVULs6}DlQ@;gBTrw;hpwR&Ab4;p)^iueXc-HqxJT62wMi$a6S{3`Bu zi`UBcsz&NpyvMJ)*)IGl_^+e;=v|oeR~4zDwJ!&6FJ_`Z$(_8+K{?f%I#(l?!umw_#5~H z#$0~Ed6!`iu^!YpLgz*L;u()vNQB#!G!72WjcT0RFW$Paj^+}*cGYdwDrnsx?yZZ; zjln$mZWLpc}lyp2Fx{YBX-3;{W zLocmEi?lNp@65xPzQ^$!j83EPx=+dvb=$bZv}a=JzRN)O>8ymVU3l7HY1a&SDQG|H z>oU0o6GfaZ@t!GVYD8;rPB5G_1D&3FpOi@>eF5QITG?B68qE4cYt0jDzYQ_C5`7+YM7^SO+x++AMir&kJjGi#}skCA{}c{$p0ztbxPNDzoA3W zNd18xLDJ?5^{x>WA;I6co3umoC69Ihu_9q_<#q{Qrjx{an2K1C!yP`Crpt8fbuR6> ze@jAWl0_&wJ(OarXfj&^s> z@wmj>1atxPG12z}^eH?vE+`KfDc*ZB2)86btA_Q&C$|$mkb~n)%%<|dPno$$b&Zq0 zGvMC`wCEVxDjX*E3h+R=mY=)nZof*$&5^6D68BiNNB=vnq_YV8^<0lj&^Y*lEmNZN z=Nnr>^m1i8>cf9%6Semt-uS%3#CRX%Sd+-Zy#(dxTy$0{v=-fX-)s=ES)~q){(d6w zvUCS?Vs2Z7@3HB9*7-92y)3vj9d^R+RZ7`-N4hhdM{Vo2y~5Vx+^!y*EuH>!rAK8U zDBpgr!4BZK-g&B_zLo1Ah^ha%q5gpkDQDcxc{>dCb-I)k1LIvoeb6jde3Y-vo-gSJ z>g}qOa#W#f51r2v$xp)HlqaxOdz0o2v{wI;jzCM zXE@%qC~v4jyanGQ!jzByc@u=*got~B7zS$UVDSzBnZTd&bw48TiLDH`bG!w-Z445= z@1#yQ?pYU6{$zgBfj+l`^|_a!4Z0&-rq3bGZ63{^u}n3?A>P`FHHdhs@DcOQ1znLK zjm4;Sl2^^}EDG7iR;evRC4Iy@T)d0^XH{xR3*>*+=bw zhXwC2jrQ?D&;gz&AI(n_{l;Fy`aO`75Z(i=;6pm&J$@$;mfn#V8SwneN1#Av~KR_+ep zN%*8Ipix`2>?U=|a`5&`h_|m2d}-Zk zr|^M+cC$pRj|OpvwNQK6h&w=QTeLS+ws$Rb!Y`;$o9ONqpid)xmOtebcC?@m33XLM z=9v~)LTl=M%}t+mbPnA@>jV5`{go%HqdcFA^I?Y27nk}w(07ezer(>+?g-rjI^B$y zu-|v>6ueDf%L>g&d`X2;p>D`qA@m_FQ;63eTSGWi5>Azb6ZGbk&g@tBM8umtwHxxw zJKBRM1;U4tVQ-|!yC&<-TMDO%m_tWsK8gp)`S|!=;$i834gde}Ub!yUKQ8rC^!NIB zZ?P>BhZCXB^IY$2cXZQ(c{v79l z#ZdQY$4`P^=;6(6l|6c@3hS^|Q(Da^sgr7a$8Pl!U#7&Vc*6!C9Js4N6Y&ng=g>J9 zSGHI^-$M5Z_vc!vPu@@QhJrab-y-jXCs>r%z-JKMXv?rD{{Wr%`cLe)+*hrpxOa(q zXVdyvAK$F~{VAE(O83#qv9r~{7J^MY5bl6+z8ck`RBA1>=Sy3bYw=SS37yNhsTC^T zE0bvd?X8vfOVHbR%R;)NO532zp?Br+hK>sV|Bb@F{GkOhEgtVmo<_~#sv;h{O3R`A zd7L+#@^Xbe#Wi8*BSBW{3RK0pJXPsbCyw&c@s{8aF+8OH#>=!Xinq)Q76s=8H*TI6 z+(zFvqJ2r@KIvHp7>9?ruh7L*Z1vjOMkRvuRWv@YgBM=j(8JeSocD!?Sd^vj(On3> za}wz{_~7{)Wq+Tgb@SeG8EfEfPFo}V=QavD@EqUY>5Lq{iRN<<{07iE$6RM%9ngFu zJ(JRslr_>ehw6@ZpgLLi&FI_9gB{LBsz%Wluz}huFpiTyGkc zn?dzH^jXTOr1Or+7O}qCGT% z&no?{k2OBYT^&MyT}pijeZ2`WHQMS${NdRgZy0*_O5GFMxzNw$ao9$AEr#bdvJGID|~{(zCGTuyuFk5P&Sp_m=NU&=1@8K z*>+I6kJD%0Bl#NC`I729LHU5W68aQqG^;~%;|c)Y_8XWyEWZeTlsvzyTplAMC+$2Nu1v0kr%?il6yV_+pPtQB~7p!`N2f9U&J4Ri2cnrjE|_mf$s zhCOmG%?;ik5NmJ)x4pmI8QC@!`oC+5p4<~gIl`fy_`1ql1Pz@Y9!+z!fZuX<7{)~_ zm+v+>$M+l3zozs;qMgspkUpJuBYs~(H2?E*DbvCnD*D_qecMEIEtBUO^StdYsXzSb z%ZfN}9kfo~yHNV9-a%>jwow{^hu}S2gG?y`vPNudvYt?5k`o6U!4}*@`)z%r?MT% zjyQ{ZM>_Plauj9tLUkdXll9t=yxUb9@o05?Z-9POscV@Qq&6}=%QQFrj>B7kCt#6s z9W@p4|1f^joYA}OZRJs!9OC5d=CMmJRKqt>9(0x_K^MsxO)n{zvPj6>4sdzMwyr6c z@xojNSscnwE0^)YT50UwqYwIyJK_Xk7-G=*67w~M z_LRFywT|?wxg`rVq+5yijGN+D3(Bg*f5`ptR`TeR@*OTnwBG9WtGI`BUGPT7S=ydX zw1wYQG`|=VzcT=CK#{+?-(g>#Rxa;yNrv%7`61=bPSr3T*+Oq_N6)^%eIz(^rzT^8 zDx=|BpYBqlp<^awH(9d?cNzy81L-?|x)=xWQoyNl7SZ@JzdF+UuJ#~}Nv3zP==ZhU zmlpS;UVX7rU)%=#k*3}4?1Q&TXGKej#Mk1oetf@dNc5_bXdg^1Nk{OgHy?{tl8=#j%A zeJQoC+X`nrDert3*Pb?spY=hfiPnT~oV2Gw{7k?(D*)Re+{NJ!!>=MXALM@N!uS78 zs;+yni1xU<&@b+DtgkcNPWQ3+C*}PFGKDzrV)zpX`)n%&Z{i;WzlYnj=aLtPjs&7Q z+qSZXc8hWqWC_FZ4wT6}V~A++NYBUOH~jIf-rp_sJx8#9fg)q#^^)V6$?%dyJaJuy zcV+)Fyt1uvkl|T${Ams?C9uDswJ>{|_EA8-VIU9pomO5S*Wc|FJnXvx`F@6cjJZai+9CyZRf+TjIS3 z`R_L4{d4L%@s0@A9aT?BZkGKFm; zygoHBt4V`CT-*hVRM>)m##BwMQL|lDnyauu!@IVBOO2Z2uF=YrH#)xhvAYv?`RKDR zDBmoEZ;mZ<)c~DoNt^xZI#-Rhp2}~4y#U+aOL-~X3kiqZT&J+_M~vio!rw$73_WSQ zBb1D*5qHDli8b28m+lk#PAME0@$8dA}mo%cYMfkqyir#EqTQp7&hT8S6ow7+ngN@=;uO6}GwA$wY>{gJ-K`yKnshFyQ_7VsS_wOqp6r8I@G z&L?ed60$AG!(el!sI{6s*rdT8*3ET^FBWyPsct6M9b~9$H>r#JLg9zRtI(SH+3*`@ zuCS5g`Mm2c$>ZXDF5D@}xLtokR}~cXz*r7>+rCM98Jua`9ajXhZDtz^uo$1sS&R9+n^5m6h$VGubt+ zOZTtjtYf_m;ah>m?;d6E9{kUCuZ*L)NO!uc+g)WVwcmG3Kj+x*Ii5t#BXsD$5N}<0 z*Rlteidf%mB0ks&Vs2!7NEv@}(8wipk6*4m-=MIM2<*YD#N2wgJYuh)O~A(+rrkF= zB;Eks8wGC*S)+q}bdDx)%w@}9o`DGmN|OKDvw zESFbkU38D@>V%xX*ZB{>X*B=kf-l7_$kZqej<36 zq0mP{OkSz0*Y*<8XUK5>bWpxy(b&F*vkvyyu*0q+{zxBZw10B5JX>{`C4{SxkzSlF zWT;u5ZCWOk!5G<-WFP->r=$(AI(njq&_oZD^OzNi<-kHi*{KmIRQ2g0b7TAxwgRT6ld}3QCTYVQ5E;6;$8K8 zMOpe_p_6^E?9}5L3`g8_t7nPu6LERh!#`z;_(faVPS~`t?GN-{X+cbQDX+dBzJHjH z@*>{3QX3jk5C{Y386LNG3F9nq<#;a3?><%a`3$%&C0yyh;`&tUpmP8`+v=RrYA)Jl zyzYW-ii>cfdl7IFF%mpmg-`LJuU9f&6+L)OH{b>RuX6Erv{JksVZAP3IZ~b5DSS34 z?vIfdeyzKE^)f@6u0Mt`nZfJE=8|vy@a;B)){q1KC+P0_Jmeww?uo><`GHBB@I{XH z94z;MzlFnPPT{{A`nNlCrHxxQ{GK{$JG?ZW@Rzvh{H_Sn{_&_HWY={br@Uj*9TMm5 z8o)B7q5oGh{_7Zj_-Df#;nxK3F~Fldw2%IvZTJ-PG5i3-`zygiKj)diTxSAvIKc$G z1VjG-a|^+Q{0F*vIt;vD0S0jJGrZ*lZz1$bsSNt9B-M84~wP4d&9f*#Cao{}s~Stjt6Ezl`>Ouu<+$+RuYv!#+jQ zff?#3%|iQSF5Xw!z6X2i?gZ?oRoa|8hJ>+?zoRtx#sUpkHhYwai|q~6YgZWeHt&ND z>>D?7Dx(xbFEL_6p8RnlpVZVco}-NgA=5*2IVR z5PgVg=WCPw^F+-4(d7{P?r=sv!Tu?U?w?HF6X2~|f7=zo|1GsjTA?K}##}V!7bV%>t42E|T z!8^+Y))CX{{XWY(jg{1b^5p-*_b(fc)% z`*j?A4^iC~qFr}#9SfC*4S6G_!*2UlPCuK{A@4@}I;@44(jY9I3tdaBb_&{dtkX@&pa2B**w-vzrf z;-gZQ!M^TO%?;nEu3Bw3d=R-F*Pv?&o1G1mmQ8s-So_jT)v63{Q6!xPeeR|?@Dcq1 z9ZGThG99)P9n7#rX-k5Q=%A;%hyHr-&P+Uy&23e|^W^2i7OqzN+8V9%J>igszIcj4 zW5DYX%_9C~wT11%jcW_M)XjEfDR`om!F<=FHKyGTIi759sG`~k*zgU4#yu`*+|vZ3 zRgcR-WqxCTKgNpp;cLRVf!g$|Es9emTregUrpF6tJX}g<*!oY^7XME*HHXIXAA?NJ z2AfTci7l|QeYqvt{tFhINi-%dIVR&-c&3T-rgIx zA|r0E_r>iUL)}lIJ7FAu-uD^Ae>ED`%{p3ZXa{g|L4ShL_MSDAd)aE)0sY7LGUL+eWIO9i@R~ny)30D(-u)1#E!5?D^5^8f)|(_MEl% z8lLtGYxp?>J{$Y#pNIPQqoG{4p??`M{o7+$qr-Ja-u^ZEGRydmu4b^b7k_{05% z`U=&LH_Sa~@eJW_cuE*FIq$hZ+usf4cdbssw7ZG=X1*_S`Y(_{#OSG`|0R z8E07A`(kL&B;J=3M4U6(Uxx{e-%MjwJS2K|yzRCqeYXb#w%lNCTmzkzO=ma-|DfNo zifOEJ3%Vlsp74kgp|W8rt1UsyIL7_j{%~(u*`8&4LxPHhu?_R11m={oatQ~bs^bQQ4 zhp2~gTe$oVDi2-Xp(Z%aGr`f>502l=bw+Oe1stDdm@hGoSD3)O)MRXf*1lu=-ds7h zh)3ApJT75)s|a4s0OcO$aT+olj-oIoh|M zZyxPCw$FkWBfiNsB+6SoO8tE4Xzy_?Hr&U&4Ci`+bE3(3W|_=kz14gU?ccwE;Hp1&hlFPOB^e6%l~PsHFkf$FXR zo;0^VQD3ch?TKX4JZ6t^3ZL%4(a!UTKI|xH)_$HKagW1ZiGeFz32sAXvt}ng z8NS{f41YMmKXQcHh>_t9KiXG@w~u-ALIbajHHJHugW4H<6z@rEwfTfQ$_d;(5_ix+ ztV7(V(2sYx4?CAA5$n;ucUeVxm`zeMiSZ;$jH>$W3($9iYXJ_Vj%-75F#rzU+a zJl40*$KwpAHDv5F?rhtso$)4XGu32$)A=FZRBIo(SnxD$`|e?EP{@cu*a3QS1oN;7omh9IFU&^8ynmk%%*G@A_iqKmdWv8zGl3OvvNpX+ z@3r~bEt3BBw>B3rjHLwQC*Ts_tZhH8S=;QEG9nsR=Q$>0d#wpQJWuJ%x2(QJuAR$| z49qKC!+6Z$wR7vqDo6XOsU zm90I*?LK#;uRLxRm8UuHTxTece%;A+&=(iiOEk>?G#-}(syoL}cQ)61-vrhrRA(!d zFQD=T>CM^!_{^f{h-}fHw zyPksF_YUeyHr0jx`VOwMkIFwoXL<(Or1XDqdM3fwc@Nyv9fr4&4b)y5;j!Hs#bXoK zYcUze0F{4^U^f}cw{ZEN4)rbHK;`!yqC38!{5me*dAP3(yPC>>L+uwB$~SWP`6l=* zpz?Q7c^8#;4QN4)Yr+-tCUTNt?ROvS`~G6#wSVAXcPD)GLx(4Y>s)eJo?nv|zZ%@MFJp5Jeem9~ zlRl-CroVfvqwjM1c|`WVZ;p05V2H0)!@4m@-4{77SQig zEPdZS4nXHck@_jnOM!f?nB_yCSXc)o_T8h!@a_?;*QyO~s^1Hrfzfy8?AUjY*8^?u z8OrZx_(r+j%Yf@{jLP+bz2$l<4fPk}-52nD5?+q*pF{9`4uM~OO`vU!q5SPs-sZV9 zlqutFuhwN(X74NSQoW?)-fxq&bE5LM^QkS!YZi$2l~v+>WfG`WK5S#$WguQr=rj=?8vLUw6{b&*Yvi7-Q7;;fWihRp7#sNb^Nb8qL+m&q17@x z^flta(;X^7_$^$kef@K{(2x4!7vzdG?n?uPzFlSL*Zb7w{xjuUvd#~|w|mApT@ier zvPjCQf_#3@I8)Lpl+R^)HJHnuKxLt?n0R~Nx9~en-ez0iH`c(X!55i_aKqlb5jG5- z=zTHQaL0D|YBe3-@6VR7k5nnbw#azrL)kRu?NBDnWq+WufN`tIyY6fgJXgfviFt}= zJg@3Dxzm{F1x3X{+peVsU~fVHE9DjZI}bS4H2)D@IqUmn&E__0cw9d?Cg0SX5G#P|5-;O~ZgE=7 zIniKf`z3xmPvWyh*nD%F8z7%Iyq%++Dns4ivA+Dr9IpF!s+&V~p%Xfv>mXJU=Bb>{ z4*QSMbL2ZdYchW{KTpJa`khig3FnCo`h4)$#X5U9Pd1pGCwRNW8=g2%MBJX*kkEJJ z`Fn)s&+2CV9=BVZEiPIc`HH0Zc*6ml?-Y5~)LG@ZVGXWqcN*Sj4#%7`?$~qYIl99d z=svB(bSjg+Op$Ng$BFn-{nP%(2v%`Mvo=Xd>{(|+ZjRE(D=d9!|IL;t?H78GF>hb? zK)vQR^daBEI$A+~lVW`K8StKH>3u#f2<+X1GxEFcy#t<+KN;E>YT+}|Z8#&1V?}4= zycj(!#rKG2_55DwA!G;}`9MA1dbSV^((!bfjN2vDzwBYnnqrBL8+gXIZiLy}ufCk)glicIb7yaN@o`boJ!vw#yF^$Dx zp$QIHD`scXd6 z&!!)^e0QZR|MRiFxb8K|xLqHMbNpEoej|->44bs^fJuL!QKJ1tpY(IaO6}ZX!cPn` z(G%N&HVBUfo!+?QnBndNotM2gN}LXuy$PA{Cx0>FPre$UjW0}O=>LqlJAO#@KRPxr zKlK>T!&;sPHRe8>Yq-z)x$JT(yXlzZQRcc6!{6lf=27nFa@ADs$zxJ4P551-HNV|$ zpdkUd_Vx8Nm+RfnxZrI4zLC;jp!5U8zjP4)vV_x5rSvaNc!>(m2Q5Iq z&W+(GKsRRdT<0B=JlZ;H_inEDk7H5Uiq6wu-J)v>*f1d1Ys(T&PITFMFTy#Q||M{H>|C7Ug#oTP8y4#qa zJI7FOG~mYUFMV%iaQ%@~AHJOCbNy2d^}jnB9W$LyxEX&3*AE}sw89B@dT6 zBS)xwHSuCa#DguM&v*lW2Hvcc{x`(vJ?eVpa}f^$Iz4rWZ`CO5NN{GA(!5=7q7U8$ zeJ+E3BhFO)p8v(sy*>JkI9v5IRX0dwSBSX1bMb{5nqUwGL^!DzJ;aTPw^!30aJ;nX%qu)}p zvfZdVj(dE(0sr2*<5B#x4Rv7mRT`r^KG#Hd+|rMo2JxoDH>AopX(OL>PpP!iIRBPC zkyw51G^U+rkL!xy_oRi2@NF7P%Re=N_eMWD=2w?Wn=vCzPczWy6ByQM3*|lj*XWM> zV|2$0OIde3P|NYrYkO>7bXdafgJBIJSdW;%sx;}>Jtq3q*`=&I9x(6Io;(R>e}y7^ zfyBa@ZUX1-e)PB#2-feq`@TKu@czlLzNlcG@fdz$j0rz+z5b42fVFqFGm=I1=hOXN z=tso&UK1}coVN&$-K0;WP3CDx%=!Kq!Em!KR+@?adn3bmhF~Pa&dosUb|24YLw8?V z7o>KfyB;)@-@)ZiG|>rfrSikrk8cCf;FP8Kd18W6%8D5<_Y^B&f7|Pk3-(Uv{{$YHvDL=pN=~; z?$5pH^r~KTy3mA9H-j!xd0igcLzBhYZPcK@DPo7VEW;hg2HQWhxB8{i)rVqi=s>>` ziEdhA=;k#BI<}U}8ShfdXP+WrxL0bh-Gj}ZZl_mafbrV_X!EHC7#Uoy)NofGh+h8P zWdE(9@-4(OmB!pFPoudf8r1pYoIMdU`jTMSiydR-`u(3z5itv5_sGX4a4SvreGF@e);0_P7Vb}-;gewgKq)W^J&>Tp^a&K94PbN-sU$^;=dsqMwH z0oLcUqz&Bdh-F1I#!q+iSQ^vF@SY)f(@o&bH-VR8V*9v>VBN-jvJ7w@EMRy`8D6V_ zegre*zPy(9GUA6eu^jF-PQRGapM!mL3?KVqM${f~9Mc|~Va!+XIOHO}1pM7on@?v% z?N_d2yJPtNZszn!{m`X_)Yf^hyNRJ08)9T`j%`FMHW!80v5#8Vv-^>stv zLNT@pIlrL)|F%J&`FoprfBga3U+69N^!cgLs=cL2`^XlBooCdYxg8194G&gdK{@ttAmIAN(J2 z`LAIPu8hIOGXO4w47i+cHy{6v1h3F!{99Ufx48{)f3lj7|5pZEgnwDhVYKuEBaO!5 zMT5P>|N4PpwDD@PM#r@K{A4l5uqDW#w&o2muA3MKBm8>|u#;of_V@wD)o6b))G)^` zUUS0khw!=L|2WT!4deYojIB-n0Qfv%*!N%9qxg)-m-xWeCzJ3w^Z$s?Zw&bS9D`56 z0Qfv&z$eKTeJA+YFm9uHuO@k##Q#gi_x81^($`@yW*u(LRUb9LAB}jFM*A}!=i$#U>|-x-Bt~z*tpANz_bmkP zHHP>6Xw_nX_n8vyZ+49R(3^(#|7LjaX*8rSQlevF{Y~_p!A0XxKfpMY1!LA5je`-d zAC=zYFlm5s7-X26s|7gCZ*0!O~>2~^2yZILlYaceGZnlkT5u&1oKQ2xkeH5=PMZ2Qv~azUl`M+T(*(Q#+l%C z)I|P{a{w~fb%u8tfg82A;RY#h-D~nbbHK!o;X!*}dCD4UmoaBBYNM(&?fqNH}?^5uiu)y*X%PHvz7tI>;`V{o0#_)eLhEW zAI_vc+|G7aMJ9UR!?@hZRPMH4X-k)FH`f82aD%j^iyf<5&1_Ky7^@t^SQQ`ZeOGq! zdl2vk-tA)~{y!~HdSw2w@J}~^pJ)Of{YW6#fP0cjJA+Kx$+!1@mvi#{`{(OrA7Hl? zEbZ%8$Zuj3F|nU95%Rq2qhoT<(f;T2DISj(Xgp?^*kW8_0{3&9`B=Pjy&Q`P1HfC% z@KzAKQ6{?kCz#kp{G%T`$L9!M@=^2kd>g}g06w-&;0!l`GqE2ybp&TfKX9&KI5P=O zw~1ZV+9Q3(?@U|&^LCG6-X1;D|2Uq-a3>PnJAcXkg8TP=KmD6QFb|p7K%&1%zwv~|GZ6(~M zAMQJUrHA{@-?Ns!^9P#v;&pQVuA+7t3s@#;ljEuP^KQnuf^h!rVL9%CAB*o@?vGq< z9+kV?gdSXCGS77}wqLr;xrXri%~7cbppW|?18?*PhE+_kPBx*bUzm)+MvM6xzLUpb z`{DlAR35`CBzP~IjQMX(;BD;(-gJgH_OLuhW98|3ABDV|;bsxsR1=$mM3eQ>YUyiJ zkWVm`!@bXK9nRs?C5!}u(RHYA-#QNc`t@`Y_w7H2%w^BUzJ1AXBlpvN%@YTN%#32u{GHf6GniT^GyL2N~97d$BXJ*o0obX)^b5mj2J5Pm81H z&)-beQj$q~Unu>zx7pC%QIr1NWzwE~0Q~-9Xm7U3n%ieGFVFX5gR+|1+G8@e*P5)` zyZUKk3AJ_CnbwDDv=ZOo@OW|_3nWYU+9`f1~4YNPH@|7ZAVyw1+KU!LJ>5A{z^ zPU5n;RQ80!{kNIM<+8X<>i{$=fy)k~vY`R+>>kbMKey=}0MGqg)=Fik4bWyMmpgEu zZ1V_}EsAf}ijHg6&KN4+aK1X!?OcQy>Xe>K={cOf?qIj`V%Vp}yd$|eU+j~EeczF6 z#gf*nKiJ)=#x-kddb5_wbv7LCcFsB0+m17d^Hx&cAjD0lybV+*p3@5mzso2+V5pP9 zx}ir?qPPfs|3kg;!5aDcT8R(xPeA{vog!-gd#<~M>cDQH(4>7Wru{#gwEwQ5{U@pY zBlc$PNLsV@8P|QA#^?jsEZTdw|DmDnRFigJ;C7P^^|s^GaeFfcx9d&X2pDj?@{qLM z^b&4=)B8@iodzGCG3`HVX#2Kb2n zyoKvbqH(;4=4(8smvZ`cYUkx6Y_AzJ7uUwlg$c~_jB|m#VQtnn4W+ecSceHjM>bmf zwm&hZ{ikB)8nS?s4ehU?xh^xbGmh)uLG|t@7&9nu2EiV~>1R{=&KNsR9d>pM>5A$+4m%{*u&!6C%aXQVBhTPus+&!95o>5S z*UOOFU3 zO~!B4HPN{{jc`CLjaT<#tKDp(CuFhwy7zv6%sa*Et-0z~1|6Oq{C<*T zqQmp5;r#*dWULK-kDm}|!#m0Ef9(AR(cfGAno+0sf{XXEM1xHV#yu&>KE(`gIQPf+ z_AZNg0~y^1zWMvd>QhInml@y}#^|iVHZ#72bv{d?I-e)U=zRVff5E7?+(g#iM&-w+ z_0?fIaJ4f6-eb!RQin;%(MzIs9J(LhjXBaE>^t)m5yLB%U)*T|^B*SqOYzk1e+cG# zG4g%fVRcw*8P@XztJOrFy}?A+r#|LhBKUuT^Q6(IZbomN!b*m-Y@YP(9owge`|%m< zFv_{XU-BLA>8qs=+B;)(ru2T@%<%3Zc-Nc2yU+yQ!?Ez(65djVb(V>33d#e{r3~-t zdD4gPD3h@~!DKA&G||&?u)KTj)lon6Nr+_^qpzj+HJ4#eAlN@1`*mTi~^{%IG{ zVvI{ca@05RzGHk&c=&#--~V~sI;q`Fy8VB0)NXT_L60nl)4M7C49pp&*DwP8x7RJWLu>N|iuMQg8a3%NlOTYS9Uw&fWjHqAw<{LyOYe3Bp#hSj2|W>G5(yesfH$hoy#C5A$QriNFsr_JYtGyZcl=D^~Tfk97_Mm%N_cZ3bz0`zm-wL^uiOz5)!91VZ*mGT9 zTdNo5weh204AUdcHj_ST57GPR08n-xv z`Td;BU~VzTM@(q_-wCFkzn|@|N=3|2S@+XpGVVqxr=#7?gQGrIeq_5Yooo6p5G-XexN?JK;E2tKwP36ZNI%2qGP);8AI!L7x#D0N3`ZP7lq|IUM_qt zD6Y@6x~;tS>S*l+Xzj7y;)>O$slsN3_k-92@Jk}r;9?az>e9FNXTnas$G3KMplz5~ zf1hf4oO9TMAf_O2#2Q5Gu{l_Si{I$*74M0-bibf9uY=exC~N^>->&OCm7gr_0~XSl zcbd#?s2>_@v~R~8V}4g%DdQg-*OAj;({VM!x|v{YHG%baGh2GyzRIwU9wa!3p*@-A zdNR%Rqe*hEUp4qD!PptsUK!Q-ThE%R5o^lF_0~{5#Fo=(RxduVfz}9OV!)?{@~H-X z5OIcVC9p4$aWN1htenR7M-#erHQo6OmE#2ewbR5d2J=~1@=h3ZB52TIL|h#3iQpr_ zD}tBw_0!H|ZpX*%1Ptv+omzt*jl0cd8f&)Zs>2Psmq`{~rm<92N(_3>1{(ODBIOzL zb$Q0?v~OD6+HrfCPtX|LF2 zuAq!xmU$ENiX~BAagzb3zxMF6GFHbs{qVEk$-n!)H=fJxX8T!By@s>+e8V_qS)}h` zF&;Ya-H*J*Zj50;YYRTGbzZ|M_hE;A=WEE8yvLvJRw50sO*Gsc>>e4v3HWaQzVF?^ z3}>4$j)l?}=Zt=E{<~oeOMe09n;GYO2w9s&JGfftrij8f3qW5+0dbX4^p1! zu+evmd%NJb=1?8P#hJ5}>ZnvFNHmoDgnlP0n>x_FIy(nOy}J5YZH)h_^z zDKqEg3K_RQP`TSoXv~c!H0CTzZ=P`w(TmdQPJw6aSsrh4uI5qwY3b3kT;~O^pf(O2 zGw5}eMDHT{xTZ0_S%mND+%LVXlh1s;ZwXv>7?r)qdz8ez<1Q(~X*ZFjd~KrZw`2er&f#fM z8O{#e?Z+`+5pzd;ongOEu-BOATNax1_d!Mat~biZ02h7!lHulcOP~2ZL+nA_XFlW? zYZ>nI1UJ)UzJ4;%^DG|#?pqAE{n)^8A7;3<1ovMi{r#VbpOSiptB>iUH5nQM}LH5zMijn=9y=nnWoV9;zI~G4e&5OiIKna zHu}C7e2@OZjaUO6zVAoh|KU=z^Aq@f4x^PxzuiLe8)J`e&^yw2C|hf>Zfjjj@M8t| zHUK}WNxcch^JQm({Uh+j`kA)k(DP*#^Vuzg&)d(cJ0WA=G;B9L=O+29@LmVsljGeA zzA3j*jx_ykIp#Kl^XI~9{l3Mj=Vu#0eynXb`lf(=mnGDGox$FRo9}(@WBch)vXcr7 zJ828pNnV%#z)4g7F;;uWk*2&J z{M~p8e>ZN@!Fz@MacTsA_L?zj-RwZ$!uargNutxNHqOe9@rn;?W|M=Z)f_g7cc%z*`V~2S+c&@}- z3C|1*bYzGkju=j+TC|BgCa;~RVrovqFDqEVO^nWl3q+FgGh?bPd*uNoJ= zR(!3PTXvdTJAuwYlMU=-{+buMD?dtUp?U{q%&j6zsK4bYf?H6i&f~^?{re6zt{>3c z;%DY<^xJ0m4eNmOyOY-FUtRaodvnyka}50px^I3BjAI$;-_`Wa^A8z5yuW`|(7)4k zy#!~Qve4X*FEQPhZ=8QkciTm#yc}!NZ}jzNXV8om-H!Bwdc7l~ZKu2JHk!&yV)$T; z`|NHo&MmcG%Yyd2anIMWySn4+0sVhc&^JegIWb8KwdWJbZ`cp!M6F4$IoMtF&o0Hw z0lYpH&P6qX-oM}EOV{uJfX~0v{be_nKh9AWTFVyO`YrJc%+dmDP4~NP*qb7R`GR15 zvs8Rxu^{8~f{guy+=IAY&W=*?EVG4veOl;O^jD(a%E)bI>65 zWNXyOh1ODEoBW^Xi}%#1xAe8JcF{H(=gw&Hf1*DW*K?AF@hYYMxFY2btvaE6q3Uk5 zGQ|I```(iesT>HdW$gX2%6*n9_(1#W@g$3bet4=`pZdxIX5X|Ydlm88H1n7Fzjx+^`oI5_5ZnJ(S= z-`v>v|1>xHw{mXuqVc-*pD;J_V$6-piI?ja&W&44b7N>L=En8H+~}VW`EJCBxh#RX zQCy?$WHsMPzi#)TeRr2vjUVg_1=$&X+&3`)InJ3bxPO5Cx6oJGk}K1BT*^rj%=bN2 z$dP`Zk@q`N?(zfPx&h1=o^DZbFvWNWaI+Whd|T=tpEwqoe+S^-z-+#QS}5PNC^=9X z8QzD0SIqL&pkMz0@{Le?w*#F2y$m1ya|tYdCY|<1%pEJ`n&@k4`$86Tc@$`s(Eez| zCT%wNfj5|^qr`MqlnS(#eVpODpV`Z~rd;wZ`H|ia@0WL2yZV^=1@H71iLxlWy~Lwp zQZde0-RF;PsF-@4uRW8+X6h?9$h*yS7RNQ8MQg85*E0e9Ja~o{I3ujRV^R({OX&SJ zo{z_lbn3Z8Tm1di=r;<@X`V{Ft^-~*Ld+w^X5jB_39icw6(_VwkZZjl*MCQd6GGdt z_sC$JP?@PevY2n;^wo;@rRiGWA;EqgFZgxdH~Dos0I!jB_RJFUU>+hKM}bGb=E$|< z5au(2{d&6Ui>`u9odlUS2=(etjZl5y6lkOfcHO=RaXv?Yj$NRUBhc`Y9Ol?pq_dyo z!5Y>T`HcaW5WkkiIoqh3daOxokX%?{_(l&u3;wOR|t8vM*~hNz~@*(>%Be1cuo~^TMr># z9`gUUyaREo@gHRijSH(1?lt<12*!miZ&G!ld4~1uJe_~cshkP+likQ>(BtrEr&<|rg*s^?eQL6&ULx7c zrpfuiE)(pdbtao_6Y#M%N3J#U81Z--c>Gn^hmQ*TaCrp#sRVe{3N$_u?1mwx9P7^k z?uYt&@^D)z!xZa}eR?a&efKowTVCH39-q(aukqX z*k|*acP)l9%EYzp@wXU9dZ34;83_k4`<^#Wo8rPs{XPr*UFuFNuc3TyPapc_ZWHc6dt;2He*Z~6HS(*s z#*a3g;@qc>Y7F2V7@5VEg4^_V-Z-;lP6{?P`1@*=uf4NoJ zNps7}S*-bJ-JklX;7=WE_*0EqGs((Uv7oI|9Ddg_fXxZ5thA%8sI+57OH7HH7mJyH z)p(cD!PEwny;sZo>I#3D{6*#Z{ja+F1^Hh|_vH!l57uK5gYqYrt@XDlBipwuDEBBP z_m^m6S(S}tH_cD1X@Q@26=-@L7xR4iNSH78o9=ts(0$LLVa~v|D1P3R#OsX$W&4=- zgbKmN$Q1m%9|9k|BgHjRB-Ckmp7@jipKSu4%>tjU#K+jH@lDF>!&DrLxli6~#T}UO zrllNcU>?{Bd5r;nH|5o+zCFbf@ZVO^Z!f@aSceyDa;C!?tk8n@q9|7~e4h;8m(uqy z(H&UG*>EGQzYSDJBrmUCbFcQ}nybP$k!6+s+G=RWJGl+>>1~nbUZdAx#CP|$qRNie zqDs5Ny&!I2Hhj*mv}^9eD(A4Nb|Ze51?R0}6qh&#+Wj2Gw&<}d@cY$zj_Si=O=0}5 z9pHOx!FO`E55t;|3b$D^;Tq%T{zCum2bk~0fNSWmJ`A@m1}@h5+yS^Y!cAkizteT` z8h;nJwV}KW_N8oZL!36Qp;x&cn`6OveuH+h{?7Dk{j*1}+nnEEbuX;9xxE{FHq|f4 z??hR?rJ$11M<~)H#n|MY>64m-Q}%Q_N})rsjl+7B#;$lwD~|r_}2md zI!NXukokpFwf0M=YWls7k)ve~*87AtvI%t|@^S$$S7=|{-rZXlm-({KQB&bZTP6wq z#eRr`zOjMMUI%S?4fW1HN!EOl^f^ZUo%1gqzf?a$3y+T(f;;CEWIa`%{z3-%{85s zoOZPJZPZ)`^!w0@k7|K0C^i>!w)7#Ip90N2@O|Tm#z4l8sk>5(->n$}|4xLz4)AyJ zZ0fF~@OOY>bB%XYdc2nhb?_?C+ok^Lpof>j`kBw{(@45833Mag+rCNb>Ov0aSCcQU zk>!4u)@3cMOIL!z599>v>Eb&fycezY0zB*$)?2_vt68nTsfp7jHdyw1Q&RSOt=8%i zUs2)Gdb>8EuDr;1N#Sb!-X~5Q+mP_AH)X`L(3Zl*zHIN}dZ#uv zW?LT9+cFl~vbf&P+G3B_-SjV6H(eX>c-{}sAk0$wiQ7X z*_{Vb=N09tx>T_59{`;)*s3}4j>5Q~z%x-WX7)9|QEL_|LXcjTiC$Vl5H1DaK4&%6vEI!}U-Y|^ zo(%tg;)xIW>-CZ5v;o@u~yy*-HY zs$K54B%nQ)!98vd((dO9?YEN*ZnZtM-|!A*Sd=y(pZyGfa6)Js3WYYL1OHTpV<(>0 z{=v7ey<+feVEuN`)NgYHo*BT?!NxbwD)(C|&>q0*b@j3aX%95@+aru#zA@ieoXEw$ zMs5T0DPZ{hO#L=jXhSOS@4|2r6C%{t1=>Hd{yE0_C)?D9XBfSEBhX97F=n-4cE$zQ z;1JUqtYUnZ0$;l}z9B14TaE9Ju+AO6RRDiLfWPv%O8pX_e!%B(HZLk|K|VPqJ}X)M zrZ;V}+yjB$+YIglTd*H;U6FOi;W(Mz5TM6viJf5mkY|$5X$^&w=uHHAKQMa9Y_8>- zQ~7C0UG4S9|pK zKLPmYlN!SC(-{7hG4KljALCGq8GZ+bKRY2h{)2#D>r4!J=VoL0A16fbL$pml4mhFcv2_c-8g1U%!e@-V|arA5b0f^p9SzGsNEQQXMsJDhqgnTc4d&m_mc5&asVpNl@@8xtFNU!n|~3FcjZu}6`0J;D9xb@)3~lofMZ-ExPDGx;y#AIJN-I$S@TZLj2r z133-~G8_`->QH<5o7+_4yB}!e!`!=~6?5+^;@#lU02_zJM4(kJv}1EZcsm+zSM7K?#`wKKvTygO@%t6PyJ4;F=^3h5st9fiz|{jx7Qmb_ z!Bh~;29K&|hVkaE^iY^31hW!gP5}(o8_hMryht#=0+_P^Gar6Wq`M*mW-h@j0vN1U z*AM7yHPM+xFwc2Z-9OYlJ_cjdo=t;&%;ol4ClmZ^k6NecKr{9FP@4A>OaZ_oU5ehf zBMJ5a>f2mlJVyv~BMrtA?GwH>V6OP%-HJZWm6kL{CxnA_Lfc3cP2jViBC7cix=8#7v`{Cn8SUkjTeM^NGFAw zN@Kw0z&$>s-`uLdkT%NhBAQ3Awg=8V)A-gWE7{LX(gMGZq9bbwt`XoS3Gzwx@p4En zV?A5*nr{m<&kuG6#sDom1GH_$zVa@~uoq;=5o8#4A-tcPY@z$g5#X79A#yv{5s$6F zqyL4-@umn4BO#J;{PJ>zfPzx z)>WtvR|>q5t`X~)NNWwprV?am|8w*<-$y*BP@6BD2i=&wwxyn2wDB8Cxc36?x97wA z>Z|kNb0~}E&A9Ie=6wRKFV2Ve`;PeVeji8u{>k~sbK**pyC=x~oAc58r!B#D zq5kPA%!y9IoY*4FiA<8s2{h2x;A}-7pK7Q0UwlvtJRxe<8!&xiNPw?dzcz*@x-`eX<2|2#&YJVQJeQ=ed+pn6U&}JG+tJY0 z^a%6T3GF=ybh6QQHrW(^BwpVDuiwJD#CPZTe~hWuWr8s-A)MU=`#Hc?pq@iJ+eGg@ zg4qW!Z~h#)kKZP^odEaBx$tp)@m%=)>}k>m2M0L=PoKkF=c-@RV)W}W;^_sR5C1P^ z*B)0@mHl}saJgJi(eZ(a3dSfZDn4e!)Y8)O*@rRH9QC7(w5M%XC03GaX;lg-|zmewe~*y>~lD4 z9VV`mn7CH>`LvC;i0gLfk48TO5HtTfI4>5E{&MI~0587&nVdauCh-=4cd^nOtJ9U{ zbD$FEQM|HGSM7cob{}T?Ia+Cs`Q!fjm_G;ZL5ACt8Lu*CJ()FFt|y&^|HI97e?qIw zz6_xA`8cySh`2wDKI<5pRx$pZHu!TNxGNa$Ym7fH`02R`;HJWlq_AvvQip8!@N)U? zN={9kBTJkgXir4@U}~RGUFR5&btfL}(P;kzwTo}Ibw_(7+MQ_cL+$g?&m8mePoO;k z?KjKleN*(aPJGJ|?U87&r1pVm?&7PGiX1F_9C>WqWv(n zWAEg+f_@6nJ_qdws2zI|M>%s%dWzY%P4$&IXWsKMNXa=9&zJvsk327?B3_ZS27B`k z#TvY=t6XQNhsw2J-eW$V6^wQVM*B4yuyn6`QFa|a>W%im*=3eG| zUp|L(#yv6@tj^+k979@tpjFN6;er{ha*KS?5u{aXq2(a0*3hb`mbp(=UA1rK+`fJh z&IMdAW(1S4oYID?lYKm2fin$$#dcMmAH~aSh_Jhe zu;+n2g84mD{2f-shRb|1f&UL-j{$pKiTXL>J^4QpUS9yq&#v)$9$ zWV`p5%C%q>){d7EuZ?IQf%b2xeJ$G4MI6x{kM?|O&q4b-w5OoGHQIMj`)st&Wa7S} z(j51eKIZy3ufwnBU|%fyjcp_IC$p(<;qTunW&WfZ7jI0KQ%vTAUmT?6biPjf>ENCh zf49N0gRN!XX-eN>y*2jjo!?JV-&m_JX9Vfhc|INAD6dEMm% za1+pX6meb#UVP(2>|@0NcJYyBlUH?rstw0}6^x;GwM~N@|jHWovVdAtC+;Q;bkn;WU zeZ=);Z2b`U8^C7*pV?B{`lVuPpDKRtiED5c+1V9yZ(0-myx&ry&HH%foLQYH=l$=& zjc%eJvv(BzKQm*tlyo0~-M=Z{8edJke=wZ+;JgWZKJfVw+3ppDO$AomOM360>f;$N z<0+ow%m8l*c#FVW1l~g8CDPo04UYZd8`wBL5y$7y@o_XSkK*_haSw*$10rO6XDI%) z$Cx~3@!VbfUE)6SwFTxvt-n4_ds&73LVWWm;9Rjqd?rtK^kRndBPBz_V2cN~6Mm92M|;onaDw-En5 zh2M7k|3Uns@yo!!^YELAUkZK!_$ATNjA*dX#ywufpqYzXCJoX*5JEmYH5qG&BQjNx>p|8b$xM{jP+M))|q0Uy&D zAG<5Mp)S3Trx+hauE=%8hO=Zt*Z>*l9M}-uNE^OVZ1~s^=d+9rB3I@u#fDU}!MC5Z zAqzJ6H`0dbiVaN-ak#+PFbp>k|JXPib|^OZ7;N~Bv0(&kxS-gO z;N<691~cE)T>gQVqeB9iCj~R@QNs8_Wr{2dajE^FhFHW(c zol`&G(qThdBW1|H-jCw295w_r(gt5;oi8`6KR&(8Hi*2a6UuqF-*E1yz=mHA zH_nDl%DL}0T<-!H8$_<&f0XOpt}y=G-w3TChI4;?n5LDkXr&p>{b!Z_9}m-?`-|Y? zmIi#R*ERTfZy2+WARmJmA4N`LTg8T83mzOrr2<+Deq%0r&q8ipQMCIR z{ETG$6yH8;tN0mg;pcvC?R4@n%{BPhUcCl3(T}C5Ptd6WANMmpZc_4@=7t--)4}+d z4130hYc>oC=Y2fH_!tweX|-0g@(e!SQr6C^7Hek_)Blgk+IiBYoe$d#=R<*V{rQ)R z@BcW{e};0Mc}2OtZ8z9ISLy#Ti~i3t{SQ_8pQPOL?=sjwM2Syxi}+k%`ma>_k5R5& z`3Cz#l>WC`+~1@z_c!YK@|hC<0)zeUDDhco5ua7u^DV{xFO>Kf8tl(e`oD{wYjqf) z)zf(N2kY;rBpd3NXMWo4><#5v%%K27{c__uvL)x-4y6Xb`vJUv2MY}2b0F^Q-vczA z&H?m|7DK&)V5RSBfBpF{>TGoSfvdA2>!Kf=w$?r5c3pI6&gydZsK2K9hX7Fn0Gi2C zGgkP9KKzpd>+2TuPsusgLD3Jh$+_K(c@!C{y=PU^SIZ@>w8@V@3hu)2_3qSAs{f^M zqiuB8gvojUdBi=XaGl`B(>p+-4^fZ8s-Ik}R}n5PXZTyCpUm)v^Q7}&LlU?SrIz*= z3csaIp7d7m7r}>gm-OL7g&S_e-2`q5xCO+`Qn(HqZfcmUEl^C{)e1MjhPxz8=Jh9p zN$ygGd&?%b9_!f3<>EVE#GR*btC}<%>tHd@L{5L0Ruf>V!oO~#JvB_$1h_){aSHdU z4R=DAtO*d|5bZfAx2UmNZZE}0v?k+=~G z_lQlb|Lv0XGKz>RVjZCHzqipYa>*QiZ>-A`H14-H+ygF|hwqK`MTJ{v!`F1Urn9j9>9Y`EWGZX|Ulr~|--fy3*=3e^hn;kfE8K^D8(#0?T(ZW`!2oT&+pq8+vf+1f$vQdV zO*H;4g+JWJ_SWF1gP%nF&1%eSxMy&$n9)Rw**b+g(1v>y+#FHUlXPEIxP5JW{tjG` z4;I-}^LdHF?_s082mCxy_k{R!6z=CXbx&4;yG>l%h&x5$erm&g0o?8Nbxb99jKclM zhPw#dh(ImYgB9)vHr#pO?h<1hD0Sl%?q6-ViQwjoIxocSsBj;*;r0QyK&*SjZLV;K z*>JmpTPXI4#Px5)oECA84RYSTFDUD+aohXIyt$N)BBy0deVv(+xL25dM%I~WXwHZ{ zl_J{npHcdZxLM~Ad;YTS@?GVJ!sNTSIljdn@&8-L`FKJ^t&v#g?OM-X%-e+71dRA* zdja}6b+=R3&ufIq0_I~;4_dsdY{0xkm^XnD-$u&^Cf9&TA>MmzNYg@El>wdx{0kh$jtcOsnV7%{`Clc;K;5Gv%*3E<%1s7ib?Tz~P%X<-a zFtA(ezxjiGQjA_VmN5N**$&LE7_glz-tUgkSOoomhSUoUg%^P2+cUFsga<@-*psJ=xXLwyj{7xCWx6(6ZxGuFpb z#pKEtGx_@STzriZQQu4Gg^~^DZs_Ykh*}j9R1-mHen;B>9V_!ye*k_Q&NtOYac=D) z++pBu0TbJdzU@3s<_?H&JB#B%$y)B(4&oGobN+@orYCQhW4c#7w@TK3-$%ssL@$Tu z`y1vQ0o9jvq?b#+e11dL0x2-8AL)d97r09|Wc{B^1LhUNyami*UACNOb^bLbhuya>$po8}lKGcj1>G}oIDd(F&Va!hBy9`XFDKK?YH0_a=}%F(_J zG=a2dLi-^m{`WE3E5y9Y(Z^rBkGB}w{S7r1ygnw9&V$g2VRVw19Gz!e=A4oG?|=4^ z?=3%2Q+GKR=WA~|ck1VsH$O5*n`6S)NYd{L{a7X+=^B$e@qm-pA58k^MGgezm5Tdb zZ;XT0ywV(*S6W+ltzO?Tmhw{!`d>2o{h&We$t!hGex```U9e$mrT!an-dLX_t!ra^ zJnt}Ct(g3rg`t$Us65kZ0*w%nGuKPYoo&d+J*0aWx+P40%4H^Zc1ox|cUJY$9q;h` zT*dpCOIkai^(~|I4WlLA@8ZVuK)f8!&(M#!cZxIAWvIVC8Rk92+U+A5peP+E^O zs4l~xP?@8uev40NZiXGp4gQL?*z5CONpmqY=P^ECDmVK)+i4!x*P(M-yibpFr{f)* zJEKW=GIaNrn|=MN-0bTj%Euk=H2W$vpMnklD!2AEo;2@)=DX!)U)M6e-oyBs1f5q! zE(V>a@iud~Iq610cLAe2o6)`7Df6hgIh+9fDdqeeuDm6+nn3G8M(bWitF6VF)RyLO zU-Wa3d`+KN$K67QR;Zba;F%e9b4VZ=vJ7=tuk=A@UB+*DTWC0{t(`%yanDGV>f>NayRN5c3=snqR?=O=Z?|co}J~hGqui z^Ge3Qiw-T<9t;Lq)Q(Id1L_6WKCJu|P?Oww8atus{rB)5ltzcQIHPmY$gPEy2o zRt%Vj2{R2CPqnN|7SU6W8A+H&fVo~R>rhQJV1^K83^0|zEEoAT226j#3$Zf}1 z9#SysJwY5{{|KyKjjU7Q6Q$orbtX(NV1lUjM63bRmN2ovxN2nGjwA!78DTmA69G&r zFlh!%5Mf#Y)3!#|vdlMN>TXI*C@@jLMA5xPlyYxTMw~Lj`T-kLBWr~i{qqo}dX$f+ zTaB#sY4qPC#&y(VP7vl-VEWg{x}uL6Foy_p8kj*fGI!V*r+tJu0?d8D zqydv|=;v#~90X=0Ff)PKZ@_#;m_5LVx(7kV1V-y}FdyR>it$MFlZmyX z>mBUX&eziU|B#R8_Z8;rT*nIYbuN?kYR7`j*Eyl-4?9{^SYPM%lIBm)^kaM;#rXVm zuz6fBb$57%f}aInd)|SsACT^6(2Zq$jbePwB3~ylz6#C#u%USazOE$AOlbNtn(Y|P z9NI@*4Kizr^X5ZnhBlx%mo%3^vzFPXoh>!T_hgVczH6X!q!eod?GH!ToHt`hcM5d# zOU=5z%>HGM#d@)zyPV5q=;w-353wQro}@nr`bQZ3?-;*7ap>zIs^{%^*icZ)pSKaD z)d^Z3F*yodFvjvGBDEX(d2w7^9WQXzjG{btL)P6aAbbUn6aNZA$tP&<|(ygBbnyp&x1C zYboeRlsQ7 zV)ikC4!&O15Q^{hvbxKKxXyLHgX`SQYN;Or{U4dh z{Y?6v5!fd)=WP^soe!2Z+__lSb;bRF#kuqiX&r)=52IDZ%;g0ZzPh_gU;m%6vyYFe zIQRI;3nXk7TmfsuXchzs7`Yn-8t$Bo-s$WXWS(Fr-qc+=T>Q!=~~S&3R}J z*X$V`nwVcmiQPZlgHDL?k)9JiS7o4n%@*CM=>o=#CSTo3**Fi2KqbV#JE$m z_FiQK-`4EC+cbOc%`$d|XkN#v&tSiv;0S&=z~1|hqWM0WZyh11VEuF2I6%mtd5y9dSg>o9a~fS)Y=T6mIv zZ4uqi(9PB8dNjJ~_XdS=`t@KI>r9+}eND99M$4tqdRe3OzGj~I7>#H9_#4dgPoY28 zi0(#oAJz2dQcZtWNq^R9)>Eaq1s@g-(4Y5-=5jQDq>1%*O{^OCa!GKRQl-eowTnMQfNwt6nn~-LHx9PBdO-F4{tWUUCZk znJKy#qPtcz?^bB$-7V6eg_{0Un$z*&*8|MEiK6L3^S?Fo?vFLGUZ;umd~|MyufFd* zfrbho0rKojd7nphhp)(14}snYxaAMyu?wL&!4p?SGR^EQoUvy7!> z8cp@O@ntlx9YFJEqWR$WW#16hzKNRlEzz{^8g#zmxl`Xm&pn0qy+L$;i0(f%^WZ_v zJlG(y-l~aJ?a_XY5B>q>!O5aI6V1PCG~d){)=Qtx)M%fDpe!C!qT-~U11IH-B8d>~d|ont&V&K!IeJ_HZw z=ioNc>Y8N)cOHn<8n2n}gUPXD$v`86wyI?go_q>(@HWwHK{rX$uiqYu?blivOFNQd z`&DUve!e4k;86U2-6)!`qSuk}#1$~cZ zJY{M0UqL@VPOLx0hqL31-3vwQGPF{ubNDo`c{tN+{=Ch~4H`Tga_nVn`N4OBFBJSs z@I&A&;Emu51fL78_Dc2Oo52eOUkLsa@J--V;I|7t>5GtKf|`H97lY3gJQw^T^*$?j zA^04@lfgsSDF&YnK3nji;Hh6&XMuRYX9|83_#E)*;OXGg1TO%;6+9c<0KY_Vd~vAP ze(B(WbFn2jzBn!fPX^x(K2dO1L4_*rX9(Xx; zy5J9kKM1}Byaar>;IyUV8gL)@JaDJr^T2NcuK=G8K3MQ)!2bt)F?bfZA^7v)YQJ6t z?gIa2w}m$y2{{^$gu3#p7FCBd^`A01^)|p6L<-DJ$RAeYrr1^F97#}-y!&V@M`ec;N{@+ z1aAj#1D_0D0)C_5UEu0-6F2xg@I1k{g8yEh@s;g z!9;A8rA6jy&e$E!)%=fxkvX!}`WPB3XAHAvnUxlqbAIUVaL)O4!N{ERYQ8@_)>>=U z1bN=z8u)4m=U3Fvlbq)2cNIe2w+u_~|Z@VK>^YCY3%|wmnN22*{7jqHZ3fiqx zI2~Of$1Ks@qtR@Jy9-_+yh3;%3(qIHxW#ab(Of5- zTdAL6%WFPF@|r82`ked$xO3p;+B8=S_ix=H$MR#e0cCD%J|g&f$rrwr^7Y3ebAB(8 zIy3k4oE&9ck2=qz)E3J}-LbLUDzUV5vzFVq3xrn%XaARsd&yEcjyK&Zqo2%Ij_13#3jSWp7fpma?^Q#|fUh-^v58V%@G8M}zVCKlZa0r$okj zhAq}n`(tB0ex4QU2)J&zZZuQ-pNBxmF4(JZ#h8Q=ME^ReA3oS#uYU*b8ciRX2= z3*fn<&O>S56`o(8K459u&*ypmJZpY^oV{*f5Nn*A3G#-GS9&1!{Dc1Abyf@iZupyQ z=X(53_)jxOE>qvrqO1(tKEWRjhR-!|<;2Fb6ub8`|K>-XGg4)1!y?W6yGYt_KHPN0 zMRS>O)=K}(g!d*s9Zin3eZS3ikEVYL#P*k6;d4b63a3JzkI&$}{5AUpo9(-#&ij-# zQC3P>Dct#jt9iL7&Rn2A3;9oUYtft)Sk7JoTH2 zfbA@f?@FB_%F@1Jk4ahc2-bhW^T7+H?~*lrHyquo&|GV?IYzjj()NEp&i;t95^QD& z{%7!oaoRwArrA5j5&Q#vnhP%%-Z0_4!Ccn=`_QqrJ%{@K#9=tEFb_JDBHJyrGu&?f z(2SvuF;=^Mpw|DysP*5*eN?yp3zzZTRRgzXIP1S~Hc6W=fH##kD7D%COzPZB*&NF9 zDa(i3D)@|G_zaeGO`E@tZZ4YcD1V!6{(3ZX==0+51m@7T1m^tHS^tIOqP{y$pQ!KE z*1%1HSDO&E{@XNR$}#v<+o$J3iCxZ3#pC|504GuO0l zsKe#t8p~BmomQ?4$|iGl^LH}$C0uJ2w}-mD)a6>s-?d!LTy0#Fx$?M*xR!9WehZ%~ znZGl*3i!K}E1PQ;*EDQ2aIfIn#I+v%EnEw^mUH!RjRbGuzK5#;Up5^NpCzKs73n`? zB*VxwGhCVGrP2m(?F%`k$ynQ|S!+ho##{E$M)3OEZ=!HLj8o^gtmTvyVRNkDwbJ&Z z)Vxo5xs7|a)EPoqE@icp)xtePaOPV_Nt|)0-Y+{g+7aw#zS#+HC%hElZ5GXD_y^b< z_t-Q~d@6GsnhD3%SjmhSXU9GbkF$3)<80SxYn*LkoE5+=I6c$cFP!J7KUdoCxTgI+ zfV&=EMU>_)o93i_v6>B{Ii9v}hTDv0i*T06+BOv46!vz9DL+hkvy|@vpDjKGG(J6t z?cMv-{1NHX7Mo8KH9l2~Pv^lch~hqHzp_%XQ zhg%s?^K+zTxlMDiM)Pjbych1sq)c<x!9!(n+z`Y*ctfa8!Lg98X z#_nPrEugFbn+pVQlzwTY{DH64*;<)qIpudqdDC9TylA#+G%rW9elL5?q{uku*y7yZ z6?@)Vj>O4p&aT6752HClIL-20ybEs;K8;Kc+s>6bD=1q@SvFq?A*@9Pz?LSd|CFQj??r^E|8fCXr zwwzW!Rx0jlhbO!F(jxAdpF}&b$(N|neM7I z)wwJ!_o2tTUW$u+DHYJT-l}SfkHx>dXCJ`4=hu6TK+zQJGBPP2wsHm|nXTV=~x=g@G!g4+Pk z{@IlJJ$A0m#y!}`VC*biesxEYIyVwK>U;m{obZFT99$_H`!}fEy+bAcr_JVNN!To@ zG@odseiQZUe4VK!zV@_2o~bhRd|5VK*fcyl`~Gf7z?N}KXOd?{#}Lg!F9g&J)zK4rIk^# zA#Mzp6GOeka3s?<4o;FE_;u+Q_b`jwY2)4_{ai4~8F5bVrh|v9^MAi*1b-Z2P8pzW zGx2Mh!?N9Cv#p-Tj4E5(sm=GXsfzX`?!I<(ujt@)`o@`~eeH=&HTw*spfg{! zH_zhI(!37!%sKl0-)*YDpCKOg{@HTTRIk;OT#x$IYx>$u>$Q6SvsoUME79=mw$2X0 zhSOEOzr~^Q&{dm#=M}3TBI&#$oY2gTtZNlCjM3h|l`-ZXV2o7~+q5*RU2n75 zTEI9d{HwEbiNCU=voWvpG@~JKn(<0N-Hpceruw_@T&%zCBB?7hB0-i!TdO6RObxlqeRE3&e>`X=6=2UKW$X!E$V;n^VR>( zQJqEVf9@yCUATchPft#pqhR6YOahJDIRuzXT|J(#&`Fzs@OVXW(Wwi>}2eH*i- z-Se7!?Fn@i9cfRL`_neo>?>|K6ijxVWlqa>cDfCE^RM+4XD5S?*{9M`dd9elX89SzxTKJ4Nr@C)ifixglDO*-~Fsj>`4au zeH*JTboM=WbK0%kAIi^RuT}3G#yX|m^GvQ|ed3y?xB>bwKiGn#|lo3QIi z@tRp@dd=ciYyWpGKK9Swee0mxS_joUuHs6}S?N#puQ3h3vbm;j4NPQRO!llXXA<*e zDsQ1DoYPKe*>kG(=XOXCKTgAsI!!*e&AqYTjaZWqnNuxIa@vhWcYSYUPPym1F&)I>_eehe)vvSNtzUIV`@No(D#ohtd)8_4{S&3tb&exAqc`&VA46<$){5RA(96-pIbIWIk;G}=qishg zL-Dh%G1ecGddAj>#zr(gIbr$I!+tW^7a4zF{x7NfG<6@rp4yX?O^94G9+Enh)VZ5F zo07d|%}B4={E>VH(;ISJqdtnz=D@kGFf{}=V;*{n7L z6T^D_c{a1aRlj9(Pv!3BK41K}8$Z6Ixahgidsg&@oltX3wdr$_cVIeLTPjEtj~ zE_xZF=i)v?^sYy*t5>~F_L{yCUUP-$b@Zyw6RS;^Mz0vX&)_7-(MuIQr|7BI65~Yg zV)VB4T4!E+(EF+A6%yYMPFU|#r-K&>o`fGKdT0-D1N;ub_xFSxo!~C;z;LfQPw-Ug zC-ka(k+jtXvA*SsZ_~s#5BC#6%Qq*!y$iQ7(QB^7<`rUdHa4#SuLWNM{yo8YmK`d_ z7TGf@jbTQ0z)kx+OnvpbVl(YyNN!8R^QganjJAvBp{drmn~QC?oS{ALqwr@)cdCAH zhxet4>`B$$H02y?PkI~N!Y-Z@=5*%x&QqDwcc6J8ypb*Xy_dQt8S4Yd#$$UFx6bup z`#W$xhEtc|H5Z@mHG6i*_fhD#JL$K{2lPIi%$HZO`@cQvy+Go}?q0F`68-x;_-yc0 zaKGR`qdio6b)%=Wu2Feq{~AAz=)GjN(r)|^?GMc=w4cOQ!0?)zTwe2C(Rd5(H|2cn z3h*Yu{||f@c%$w8?>|VHi?S#2Wiw^-;A|26m-xE~jkVy@!Cw*lA@B#l%fQRPHw*6Q z34bo5*0D6({J$#05llqCqxuNHxxML4+1y8R_3(EE_vPFda;@h|4y8Bk;oicv ziLwT+SzO&*TNL+5dQ$;^m!1f}zuo`dw*9mIrQ+MxZ$pkXD*vvLX=b}J%?AW;0KXSJ zwb{{G?)G*5KWEn-9#wVi&twu9h9Cn8A;f5ghl&c9iSnvqnHIRx3K|3~+USjy?<=-k z8*8l98_Ng*fd-vGc!xSl3bjzlkx-%laJ5d*kV&F@DE0 zZhcw3-{+utzt6IP;(nfKp=J6;N1`V4p@X%fg`G7Vp0Rg$-;P}P=G@4QtR*$h(^|a`$105lp7yM`;(Jr`jV0Z@jP-{cC zW=K9d?=muJ{)f_LHrnJ|up~N1-W`32_kV9bzpVEt@DF7q%PQWD<~f+CSM3f(>J%BF zr-Bnb6L&Arr+s*#^3HJlo)3Amwds*M!zi$Lw(IY$;A4{3L-hAn1qYrN3~J)L)fhL| ziF($%cs5zS%bYf5;kC<;nt*rv1&Q~hZv^hn`kM|6H3~pK{Y7aHr28O2vm+6}oeS&rY$3{0_b*D~;OZ&-REbS+du%818?3)?Veq$@-|~X%@EgRz|{hOkQ9=Z^M4T%NAz>-wvn3ODNff4l3${JXvpCGQl z61}B_`I$SGrI|T`wcqa_M~=t&Eb|AN@K-JyJ)Bbb>CU0OK$vZ^=aNd}#C&dV{Pvw#fMYQPAYy%R#e^`GTTT%a_q#ihJGAM=kLEUgbUO z*@_-3fQ$8vxxi)TPg@l`-VHmp`m==k0uO6nO72sO{$S3H;9-*jztWlPPfKJ!(FQvE zYKVD1YNY~q8~i5Qc)dM3&sVGh&!_sAUh=+D_~fO_%=vqprrg)cvHd-^xku9bY?QRkre!+k9o0Uwm2rJR z3Qqbe+6{eG=lE_)$VS|oC5^X7CHt#Z_^U&k(*3*|D=c>Y-{e^>Y5lh)j~oXRZRUcz z6&5QAuseZ^IX-=pFL}=;n;Z6 zY1S>Q_2%_x`_$QlU7t&?yCl7PL2q>m?zLx=$I$K0dKB~?SLjhTb-uA1 zPva%+n?ZZt+2pZbeKvXQ*V~N!U-dJ`!y{+^wXrx@(i1x3IC+})e_JNI)aD|4sPr$lci0v;!`#i&Zzpr?|Y16tSe_;6njv?ws|H9P8w=hp(? zDCU_>Jz_2YLXOP2va#v?$S&|X3~>K*@!@zSa4rN+<9!q7b-+0qzcF4qA?I5w-k|Io zzcAHfq?89!d5BKJ~F3{1)V5T+B1{e1pGA&ejU2xc`FkNgwfGFjXFPIrA9Hm4oxAAO zrqrCB`8@XsB+V!5&3OL56dx(p{m!G;Yowkgjx^&%5sRn9Iu#1OYz3d4A5!~Zpu}A~ zGIxz9oPzh*IZ z{3-rV1I)`dFn>^BE=w72-}ZIKe`fbd%gC{_V?NN?$`R7zTS`a{+uFxmu&k}wB2E&gE8&qoZmA=XB&WLMEm)D)GwuN z+z;Crina|3kIzZEgWA(&dK|bfZcpch_g7i{(ML1aqwM-)4&d_@-k5)$Z(Lp{`Md#q z_Fz3Wvq&$^Ez;*o9pV5Fl-e%s3AjWqvWqda#kMDozGXDpUhuU~1qeu_*DblZ% z{I#@kEhrIJbW?2kBGB63#xov8N#{$3>`Bb|-<(Oe(Vl(Hxjudd`s-4pYk5U_k%T#U z#;lF2vD6>hlVd5yMD(3%ETzf3=2V_L{@eECbv!FSWS_jQo3YBy;adE5)|)}U9Q2Ld zCjGl$3l{DY8KYRZNh=Kex3wq7YZER0JT0~{+ed&ID|yOGxo6Gd&B{fVO8!FN?-Igv zP3ZQZfN3kbNAEE9dmC4e3uk>*kF=eJyYabmzStV9&R%VtlZ!j zY@!K#H}x&jpOrkrCf$F>7~7}F^OXGUD;qzy0Jy)PpLC&pev!UXw*4{e zXy05X$pBYCsJ{xpro?*8Gp*{kxi0feEA3kgFVt^JMfUr9b=PI<}8<#xeR>W zV{`xA)VB1v@Apz)7VH$j{-iBg$K@%ub7P8*#{=eA< z`la3A|N0f_KbATj4xO&Gq2aK((=Rv0FS``K+z<3l@@x?BZwLM>B>n;Dd%rRtx)dLh z4VVJ(bOJCZ0CSOqiGrs?+(+k5*h`-L%{ZNIFK7C=M}10rw`||nX1p9j`(7#b zeylBdyyQwhqmCEL7f{~60SE6ctXF7$^`1#{Z;Ice%pairF6gHP?OO_p^r&pRug#S8 zOLwv#{q((rAN|Zm<}H0pKe``s5AL3T-7Vqf80kDT0_H(O?mez@$9i#3G4~#qgd)w2 zZn3AhvfLf>c$VmdtAMW>d)kO|T}I4h_X<74cJ49azvsSS8RIh7C`Fvhd}GxMjCI$_ zSodRH^CR|OZ`Mn)5wD*?Ec$R6>`JatP}iSB*WG;cJ7d^F5yO6*h+)Sg77{V6*?zOg zVLm?RJ;58$cC*$amL=oWOvrw3A6Yl&U1)&c9|TMdVLq|yMg^KSEvA))a<8~rS{OMIJhIr01Z=zq#YdDv#uNXV$=#2}lS@>1^BPmK6?HZjr1M!HY%T0Toz zqsW7gE}$MI-a z#JwE2d)wHM(UCrPWu?T|3jq6FhjFx|;BZ{cm6l7o$2!vE<_7`O%9{8$i8cQQBY*3V zMXxr|-&yOJNoOeh$jO7|84CJCEp$Myf-440-mAV!+z@aVXymLyfH(U3r z4$PH%#FcXt*|Z<{irF1TocD@3e6*Ljy0s2TdNseeG%W79FI%BU6n?$}KV0MOBKV%y zx$pC9rOm%<<{sTj%IBCT<|VKk7I${zw<_s#Gaysn^T?DVWh!?h%XBO!S*EjELZ(qt zrVJ?){O3^*=(r@EKFV5uH|TbeR~utvKWSco5uEdF!-YtCj(A8rS=MPin2yqt-GrHgar| z{$oaHpuA{2&1mZesSI}w)pY@o}>*YE^ z-(87VxCOqSK1v-&XL_4DInZI+$ngF>lI)57O8#D#eD3s_`q(YoH=d*Y3$p#2vOVXd zT=11G`TBZig0DFEqMuRu+AsM!1h_(s>me!ocvndL^}zpSO5f0b9qLHe8_zxk!BiHE*}?M8K^pG*BCa9F<&>oE5qHXz1WBVk_w4DT*)(30O{vQ**m2OZ|S zL#%PfxZr-t8}}=hE3j1(?zWT|g7!BHFw@X}Jlc;34-d+=GthP_?0Pt!d+_`|`JB34 zi|5-BXG}z#(PAXd&}VD?#6HCRJXeqZPvSR^f9MhBL*`fw$26@zH7BWbf&LL zpN&sBJ`3@w=Ksap^-AA%eU`UMufpfAe?A_+X>3(=OmUU&$Hx=c(s}}TUDJ@yA+DLp ze2({{m6OhL9dUoe(LWF_MgKJTm+BY8e#(8dR*vDW@CFeZ^p4H+*6OT-bKi=C?>#JL z-t=~?!c(Qw_GW@M=CQ~G#yFNudOtGn`O)|e^;(^HgW3w+tMwA^lwnR)+O$Gv-n{V* zBaRsUDBCe!sDNymHxwgGre|wxCg`ZJComrdnra2?$+wJnsmQyQi@Yn3^cVv`c7aa= zKIqViKD2Pf(J#5)jHn0vb%C60M|u^M1K*jRM?|{_{goEfZ~BW7Cod=Q|E9i&cOXXv1W_f0R+2XgHQ z@`ydR`1^)EhvTVxk#1D`Q1W%Fh!dB0t`VieTx|n0K*G4R1<|XGVUcN~k7`996|nDR zAEn}&XoKrGWc0>*@Z6N`UTdfJr`Gtp-i5&^qBjsr=uUj(9Hz&S>raqpXbb7 zrZ{u=m_89O`)uZ^9X9=SCFEG>G~>rI^wSm_xaVx(1`6G*)F(<<&9h7|0ldf)@qE@m z)3yXpi0^4*yzgeCd^DaQzA8aOD z#^sK(`=T7Zz8JEw^;aPn0Q;2r8@H3&ZS^<~ks}5&*7lh%fuBa}r)w`Bghr7b> zVa#0N^3997ymO;Y?Pn3EmUG0ZWgIze7>h&jowcBq!Lz!^8@n}CBUdSn!0)U{z?3G# zfZo&hh9XlQuZlhc*sQVz;jZ`23quFGt7LxEg1ItD+vwMO6G|i>lNR@ z2>q@ma*vF#<8o)z9QQZ#Om>c=G33k$LEca(=UUdGv>CDKd#j?|uc`{O4%h&msCTEf z0^_P0DjQ!N$9@_@*(Pl=Or`CAB|=SI@4p|KkJ$D+N=+0 z&+La_RhB0EJiGH;y*aL%(I(qxo+*0;f1iRMbNGG)8K=hRw>T%B3T#<8yf?c+RsaU4*ZHG)f*%`M0#b+9B(jGvObR&sPTAv00%S zeK!51Z-wxWVvjKFkN%$Zs+q8r54ONAx$fv^9c*fBC4G~u6|lxA?ky5?CgvW0Zg>*p z@2};?GB~H;nFluY8~mM#XE*SiD!yr(E_^?LZ$G{-!teW2#%;cGM&50cyRw!rI+OFn zqNr8#&4doedYChsd_4~QL2b2O>RGKXI%9~nJl1D77)IRh-yiD_yn+8G{aVo9X+ytA zp&wA_-!17QK8!5@{Q&6GCv*jU`ofuFZdf7a2A=PoEo~$S9nSKY^G-3IPZ>5}*g!VN zDe(RAdCa$fZE2h@;u_B7t$@ko{?lIb#X0Cn#q;&BXMS`fY&8>fW3V~)!@5LGGj=C< z%D``{45Q#P*dU*G<-PQH{;`Mw7V&&)nJb1T8P{ux*A1$PW%xZOJZFKqle_l)g#rtAMNJ>7BS z@JAQ*G0#f624T+gFVS3fu7bgL-aB5I%caq#Nruh@W}({S?nsARa7L z><#0fpbYj_ZWD{xz3+qjWlFOkkIYlDc>hPw^u5`d7Iq$D-KGROyhP6Da$h)O#EU;S zW5pqm9c^RW?{XpfEf+H7LI-zB9q|1jQQ8IM-_3be)+{UKI*F?uKJCd#u?qS!?jNGh z^sN#5hi1cvEwk}i6C7H>D)0QLWotEZy@O-Q1O5H3f<>ZMhguydicZubOr4@4 zq5}m@6E76vgef{uAfNa9oO7F-^cK3;>-+s9ucW8}bLS_4f6bj(Pj)&zdjB>aeV-^Qg+XO-mL(mpC-eOJf_S4RQQ-(N>xKE^NmmK(n* z^2BD4HZE?J|H?kxlQj`jfBm>$f*(GJesu5- z2hLX=Jc+&*;?W8>-?_?!J0Rh{!vgmV0rxc8?ElVp`>t|_AB;0jTk@o!1-4Sld$gJI z8P*Fb!8nx1@3FiWv%ELV@?NgZd*OI@Tf~hvJZcDS5d&5jt?5~+wn$B63Gi`sT;?QC zJX!9Ed`q6HSFedo+qo~swj0N2F~$XW#a`Va#@Qy~vbLK!8iQFEBfpR8A9(*W`lqfn z+quG+g|Qnq$~|-*=10Ch9qnakpRd|kcj4d1foGh8=K{d@s;=!BJ6SU=4_OJ=)|2DiAbgVF{`-A_gc?Hyb zY4@3d_Dfa!477i)Y^B>Q^EKf)v_ry^0eEQBn27hs;QjN|`#;6|I2-o(S(Kr>E@I{aK#aTZ~cGR~T$({f_5PN*;T)8ut~9`;^GB;Ik`? zZ#KwrUpy+ub!)FXW`zKiVx6;`wO#a=dboNT_|DQ)` zo4K4kT=}Nx6A^V+h&#x-1rp(K=J+ zd0Li?X}w6<34W~L{}teWLD@NJCpbs7x1jxf`oxv&cBX2-8SRYI+6sCfi2YEH?{)aJ zI;5?@v`JD2o254j9ZU1mUX&B9fDA%CsnpkK4DmZ6L$D8)g0|f4jfT^oA90e`Dm&I= z_)Qs_u_?40iujS4vPKs7SEEMzL;ooE17#b^FlE%qebo^k&fexn;mILrUlqujTR zb%XHUtiC3HuZ~2$iMWvunNtNhZXDzu_Al;90-e$hIOT_~=!Egbka;fe7~#-7GyGd2 zQw4>6)U8(uxM`1gUFgqKq7(6qL!S_#t=ELfYvVWE4w&-WgT|PCSFwq)u+w~yDNpXrmMf%beMXUtZz z`H22~qIdWvN9PH84vF0GNmuQb@}rUkZ+3K#kDB6;GU40Dq2FIC`mOLJ==V$uel8RB z>w-r8=&Y_fg~0b-zoJi{kc*{`&2jRj%|BY_NW>WZNx?#Ss}yVQ2n>u&!20K_^(#iZ zqmgziZLcFx7jc7@?!kFC9=vIqI9CQyM-z0){aQwQ7tWyU=UK}vX#7Xnlg`02XHn-= zzKY)oy>6P2Z%iCy*x+C?U|py7?}5IFx%=?mfw!`vxxL60%2jsamq$r@DHJx_o@sI* z#&l&R=;TAoxL-nE;2cJrn!vf0Hk&?@wE3_aYY5Lj(8l^Jlj-7Bo4C0<)Ozk8mFPRS z>%6Fr+^zbqN8i7rY#bskuZrHoJ&3(LckHs=?Q*Pmffk!^^w@O&8;mv4GS)!L7`LCAm4kkB z&Y+JJ{qzN0Ob6^A`*y|5{KcW`r5tfGp79GGa?of#C4sAPDsQn3&wfum`v9I@Y7@tB zwvFuL6Z%@vcq22hKKneL*qFE+tH`o0I(21?RgAH|YnNjcV62;oqkX$-|I<;a!>&Vn2<`8y zc0=tO@*cDAwdniPqf%dF9sM`dvp>YMx{4DhL;I_$eIe#TS#k#2C!&3wYF~xt+ZeY1 zJZ&ChPnS0;TA2k}xx*%YVWtf}PNx6Ua(*uWyf@Ky57}}fWXl#cK6F#hWWcpU#RDu> z?Hi87Jx;X0f%YKU8&&&IJb!|X5B8*E&_%vQ&bt|K495Gj&~Fj?{gdjq_$cdC1r5S% zKKm;?%e?)`N*?~bde)=pVzzV8dOzgh&mjkoNE@`?g}=w)laJ31eA@6ifKLz~FaBSI z&t&}Gh))GRdWxS{$j-F+`GZ1sF7-3-n{pInXP*fa#`qil_jq=)j>-8vZ$oF`&x70g zCFZj^(<9>Y3Y31;@rtCIe_%fCtp%$6^ zS3I}04+ZY%$Fas`Tw;mK;8-U@zRULqy7ZfCY-E@nan|Dt8YQPE^j#~D`Pnw9^InZL zeUI|B7V5a^u+%%YA4e8s{e(ca+_y6`6KB(8P3m#)+R&w4KiDJlcPRPdn#}GrN!#k- zFR;$tViz9h%)s~X0{XlgB2Vj^!kT}RQGmI8!u19n3HjjktfaU^KFhiHQ*+NBDfP35 zZTQ>$J=hk=-!^6^c-C0J-DvavGMo3g-uc-H9z9IG+xjlry2;Ni_}tq`IKMnu?z=lg z?7#|R257lJ(ei5G=t+wYY1k_X|Iho%7D2w7ui9BN_Akm7F#_%1Q|+w5O@5qjncKH+ zPmHofHTFj__Q@uEufeAUA9H<8p30ad?i=z}@>JU2$O~zM8)(Ddz^4Y&M**2b#UM$( z=}@#zzWHcBu49u?=x|pJkLSKWDT=WeuaLu7 z6-RM(gg(1(pwH3f2N_e$!J+JumEW0omcF}Os|~W4`(s;=`Y-5y{`0_>Y3pL%&mY{} z_uCUOIiOGaJ83PwPv-EDH#7z*3-b6 zm0-;()S7KqbkF>W&rKLCcFk-x{*aR;-!spKQuY3QahbQA>l(Cv2G;y=n(~>dvw=QS zhc+|nC{Dxya=m}d^~9M$I~9;IzBm5Rr-9dPj(%PKP_KVpWQe;vA8b_kwVny{Exy-j z828MvGT(?ic(gtzk~TCDras6s>JFQ@GdpQk(woq>X5(?E9bM?4Hu`H1^GCoNZ}i z=Y?+@nGqdO@ab-z=`MejQHf`!WbKN%0T0(r=w?_qt55x6g^#Hx$+PDAxQy?u#NKFl zDdF>@3|Fpdme#8FKcbyuOjdU9IjS9chUY@+c}gz3Q?)nIP9@?p<=(s1(*G;e6|nba z)9#J$GJGcDGX|gi=O^TM?nBCA(q|tu9OdH75qlB5b$)Nw^N-wrVm+lC$=IhK+2H$% zE_qCzQCF+Iw|~w{osO}AFzsz^m5Yov;M%E8W$vKGS3gzw2UJABN+@s`v?N``}9lr$K9RL&i3 znWV#mUHhb_YkxlSfuzT0Mrg4WfahWFu2@j%rhC?@ySC8pCnCmWg)tlLQPs{`{;L%I zR-k>SYOh24T$OLpKD_&wb!yDT7?Zh*jtilmj0J6Zfy<#m!>0j%A|I>D(5|gET$fiH z@3-y|Ii2f3pN*i|t@v*JA82)OFKKnD4XrM;!F5H_St055W-GnU34~4BY^!9v$W+J> zQ*%Z#7Q}Ln6j7#t9+NXR+_4h!65}CPLQi8Ya%Xx@^d~kne3gxyM?E;CEfIPRb$~jY zK4kby{tIfb9@Zqw_Gj015YqrcfpnuLxvf1E2BPZ!zX z=~?n<&_Vf#1RV^bd<9q?`B?9Ez&Iup_4|vX#DmX=wb$wmtvz7$(P}$efs>rG!X3<| zZuQp~te-RJ_B|p$moX{a6J>bj@h9RkkG2Ook8PDScWAgKbb&p6cg6VZz!BY_4XbCr zz_X9p*vVG(;HNy8!b4oZN6-?_oTv5&aq>4yJae{czX9#nSYpgFReP24Q|70G=4qD! z-MiA2k22_qk~dO5&fl;?#1i$VEL;v=8CYbLSJp!=TxvK%p$;eZg|ojivSn0w_wBwq zW48Ydp*Lv7Erz$fKH}2yI^24GURwFQ{ux@Ch()W=n+>0y6JadjP|6j<&yPC&>0!z{ zloy>7^MtQ6QXxV+Ag z`)8@xKV_z@{Fm-=Zg#ffKZ6GA1r09fiZNuK@uTV8>F~E|zcNm(PQkiWSa_UswLTrfSA;>)p(b-DgDF@yE^hHVcuPHf*bJ~P` z>MChSn$ufKzaE2k&U-NtS9FK+^)p7XP_=)6cG^pV_pEKNz}{JheKZc=lg)jk&X5-D zqw>l|!=YkasCNXhM_&0d9xGI^FMbGp`j#5izIl-Cu(t|xm@kmS+`}=fGYCD>-(EWa zZE3lB1LMkba!XnazrWUrzw_Mw+5zrBi;*vMjA%b+&rIL4sCFY+FxbhouwGx8)`9htwF?r`?MBgUFhu&*1a9rOW7&lFlF@wOt0C% z^bu(@V3pNtA_1HO(*TF==2__D-W==(uj%dBwHW*P^yIPsYBTnWYV7?dCC0uMW9MoM z#d-M%W8t;MjB^C93q&jQc}A|j&?v$g#XJI0XGYYITxb;Hd%Pu<>1@_v_Ae3qWE_5% zsNZ8*?-cJBk-yRo?{6?#M7+S|tfTLl9+*d-938we)G;G8&nWUO5xJ{Zh`P>8jBLhO zP-d~@I@9JM@L*|kqV1=^L#R(O9&WI~!yO6_J5KHwE%tG4(*8Wr5?3+w{e3b1P5L=) zm?rA6^=2*TLoP^xVWJHT(-aI9CnwfoqB?h-ma(%j_NCnWf#mc2E1~D`z7>gA))gQ; z)&9i-@4{c;m$eC5FN8UD%#qytsS#ri^}|C$9rak>I{!QoGfW#1} zw#M*k^E#=M@_EQFg4fLgt(fuin|Svhe*Z(s*KQ?WZ&?|S-Kc!H>-w)Su6seAtJeUY zE04-M(_7JArrPgD`|U^N{%uvTPPD|wW+;5;0pBy#KEJ4-`*TO$lh5_VbJQt$?@STK zxj>Dx3*&@&&kfo~puI@7pNM%3q8xyBFWS#i?YAA3ccOS%rx)^puG$&HLB30$G4D~| zhX0LH|6?A`5*t0>JR3a#XZhgUQ`XUmbv#qmpW&S{IjY}_(eDJCeoNx^e)t(F`{Hw_ zC-xI%527A%>K4rVZYy47&=3TAl0{uU3dRT*DElq_zud3% z@i8uCcGq2@JH(#N=bp8+shGgQWj>Yfz}PVK<>SN_&n}yD%`K3JJ#kn>E_$d&)rpfe&ffqNKIm@2j$OPq-)o~8y zW+rrpa;LpN`cl<@*(lC$xrmjQ_k=AFG3I8?&B5=<*zy9uv|ScMhMIis3d3A869(Ro zlMCGQ9#Y5koKY91EzgVJtMKi@_Zocr@clg7i>o8$T4{8I zu(iz#(E2?{)c9IJef!ginKb8RDd0 zO`88lo8|mFPt-)tU2dhM%Ndq?nH`o~oXr`#V$|_<`u`MdJfOx} zqV#;~DB0?NA1R*-^QfvpJFW$5+gtj`SbPy{-#-vG^%T-jTgiQLUuoDE;Ps7-%Z(Wt z@3iPI{N=qlZ+8PfK2I`Tf9U8=C#_03(TV+h2k59d&}7uNH$g7KSrw?m9-r2s1wzB!T1m&LO5V=(H4F%8 zP3g_PrgVo7T8Dp*LEUJLzP`h!4T$d7Url>XU+>d0$mV5VB`; zphldrpqU)V7^038YeukM1o`=!f0H&i)<~*Q_+$-=Sw8ujHUj3AGPZ+vmh25V|^x$>6elV1HP;F&0y>s$me@GcH({M5B;SjU!p>-b^DmaTATeH zdROKDoG9-d7Ip9}G;yGZIn!QmH|}MYaW7Qkt~w>rA9Fi;iz`2E$0@X&W`iq}mi?!6 z$JKf@zjuG2#aP?ml|H*-ZgtmQ`dU>J6z}(E9y<8Pe(;a@bFzIb+E1Y$UCA$pRQo3? zhkY~J+tL1&YHvV$t&MNEr3c?|y*GJon>0`CKAZO+??Ha4NTH*3c%MFpA|=1Pt>Bui ze8UCmTzy@&2bKJ?20Sqzym1r0Kf@wut_x~{w(k^irC=j~@J7_{=RfP;L?0lGh61IwXz zBrF+#ZjD3zZX9i1{$TB6Ut1)tt5r(PHbY_J7sK_2`4SVG}{)g`oQ~e9yv1)S;kUK;LM& zwC@X=S9L~C6*V4$kOy)E4on))ppK$`Q+_tFnwzAnZ*%QWHZ>y_+r8fY}XU$W0;Nj%e5 zMjn{ro6fQ9N9xIur>GY#5xJ4vo5XR8@W)-*K|3(dd`+(dD)_rDFJ|#yO~$)Cw@E>k#L37j#GZMb4yH~4c7$5PhVm6^4&^Ay>SlSzmvscE2 z-ag$W_gjHwt{W`z&5x~-w6s{o(U>u8536>@ThKqe4zv>h?QG4E@d%`sR*YwjOVAyx z#myS*%pLSa)3682+6Axb)%u-dvwky<+ViSmDZFZwg?2Q3VOOqZHuf|7hD?;E1;RP3 zx9!$Kj(sA(O|I2FPg5tUHCWGSkK$Q)KKk=j($3XUl zab7hV^?^mkT~7jb;5=Q>T+sMZ*tUPs;SL0#1cs`#@*5lRy~tgDW8l$i@qT%&A#em( z_`QFUtTWHKm8-hS&X62O)F-4Lxm=#Vf)^Ao>h*du4*mJ;WPW$>NcZ);Dv1}!y6u;m z>sbp~P@U6G%lQudZ*U)39|(G7LuB^Rc#L|XyJQ*8;wc@_Q%3j3hQwNlUM)Kb#&>OC z{E)tF-jU$X?ur93fAos#^@66=i0Xl z*u9O*(#dcA?e#fp^sOD*fQHT&zmvB07a-p{N`4Y?7gt9d+O4e9C2~X7@V+6;`PO(m zCTfw1`py#~Y5H|x>ddTv_v^G>u~H?ct$Ie%SO{}irp}AcPVatRT&>{08SpQ&*lt4V z{TCDtp60yVgVwJCo#wlfbfmX~K>OTRUq@mvvKto5gJfS0)dBj@D>q56756-|^ z@IAApY8vo!7T%q0sRwj~XD{ZzpFS+gRNyy`!0X1P_wR|h0^m*fc=7S!LwoK@3mn7I z7sp!5`jfp}iwBnd?`v@)*TQGN787jNqQ-75bmDSK*IGbWTsGdi7XG?u!FfDR)xM)%;Ouh+?Lea)_+R=JlBbaeur?ie#AzZAD}igb z!tZ~UNt}C2YK6axF*2_=%eWWvJr~Xj@&-}Q4|rids@q>B*4u|~hi`+ywYbN*D>lQC zEo`!X2aLqUYSv=VWZSc7v+_~G&v}ni?>wpAX%%%WWZO#BMw>#jYJ2#wTz~FauU2Jj zRqe~s&bX6cN?lUZCn4+528Ep z+~MoP6a?IQ^+`U=$tUzUnHQg?i*}`fCfv)W$P8D-qROV~jd z87|e==zj3ZRx>lEYe&$*A*_-=f4pmQz@-P1f zxlz<|$pvh*4Saz8m8a}?^aT|-(boyGCbO__fSwqWIL@t!cC!ZVz^4;3jHrP-sdqf+ zuBFH4L7o&Ibo4JO_q4si2^rLprZ+e#4{=YViI_{tdv07Rd5@JxjWu}`WD4>dFZoT$ z+;A7K@m~hg2%r3U8bm=7y!<+#*)b04#;37OS{%IKd{uu2Y$0?Psabg zk2UYZT0Z!VLw^~0-cgKmuR~kbmvQ$F+L9rc;eVGow7nVXE}L80<1zEM;4PK4ksTjF zw$Y}FTn6qr#_8XJwf-gJgV1LY`Y7l6q0fcr|2q6W5x@6A_Pw6 zkQh5UbagyNoSEZsth=6;W0B@qGm`DkKEwD1Sueu+?4eVeLh6X94DQ2KNnq-%4Ii+m*`m`U-OSI$;}_5@ozme>~TZwRMENKZW%}(^%K? z3D&n@Ed=e#j#aE(48DKnIZ~%QsOs9WRyyIR0t~eKT`l9DJ!Q<>v*2ylC-Inx5A+|c zBu*^-Hy@+_Bdcegwj8_utzlatQ0Lv ztxn9Vm^mJ5Evl?=Gs6m9IFX`e{R9;F!j8s zyT;rs3!YDSB^l@Q@W028Cf?1l{NIP)49IU6Q?E9I~2 z(cYrg?>w}b^Zys#X*}8;j|+}5@BJ?)&--e?x?j{_lls5g!b2EaWcK;TWAw>>E;iS+ z2Y!A2_5?5He14_kF|NV)RJ56MdT3|znvVG&=<$V@?dfsSabO>;V7Kx!!GGunz`i#3 z^PLvh`Vg*^aZWwPI12%rb-y3kCh>00yCP-YU#w1^_xFy`_nj$gx=Z!F-y+K<-4Ws6 zDsBIIlaM7L+lX9-YlS?yHA$W<5w+NYMwdRJ>Lv_iu8?`Z82U5+&;D*S`!VHcm7g{z zJ2^kJ&?3{*pGduDn!ZZ-NGQL%+Ls%YRlRsNO~9e;HUG{Nb*dJLXN8=Q0t0iA^OU{l z2F6LGWn;kfY4<)Xhdm7|}h>g6*&t^nf}C|+1eUCujtPQhHTVe1{ z`5*o*kw>{x*a=n`EoeVowa-<)x)9)i4xZ$r``7}DInP!#&kAKr8lw84yt9aTKRVh| z=JZcXKYvyIEJQ!8DrbSUI{T`AfHzMQ{q_siwoi5sT3>-r5TDt!D^2RYFQ`vw?OUa9 z+ux*WZg+d(-CS99#EC9!BvCdPYtaY4gvlr4Wbi=ypn-$G$I+)otmtQJc zDYfj48!S2n>qKx7FPo1yvp0KO2PShhm z@&nor>txJKWu0;6V(Bvs3p!7R`}a0`c$(V7TWQ0?K6HXFVPA|FU(^H%N1qaVSJtaxU5-3e z8`c0E=DmwmPf7Y-7D@K(R}Y1|NSm5a?(Z}HDbAz{cP%n zLj`>%>a($ZFW&j1Wk3JUvY$t)J!kIcNx%W)grCn;17{Cb*YpO40v)t0>Ib5$SrtGHb=FZzd1C2B3dXUU5`{i(#A^sIk$ z0Q+kP_S{B%dou^EZ{y#}mfN-GlwD)GI*Vk^skCeGUWS=A=g@6pk6a=AW!}mrK~wUc z#i@d}#*5hcpGWUg?`kr4daz%`q%khLEU+lOJg_J)U7OZ1N!ZwWrpmy@cseZay!i#z z{1XuipWHX=BCJt;KWph5XP9Tl#_S$zADT4IaaQ@>={WB@xtFLf-wwHrIZy*n@Whx0 zLO<4MVQ z@G?HV-m<66nsk$2OPrB+V=ipZ1B`c)=LedM>fG$8FWh7V#$`tbwl^8YCuNfti}$0n zFX=*l>+e?eJ!tP^Y$|w*s0lIdwZy*qgX;gtxA9n|W&ixzvVZ6w6ysvOxK@FUay%Dl z1^DgP9_r5+T*k_>E{s{LwFGmVhCW-2OKPboe{naVd~sW;*+Zd5T5+;62KHjFu(ErDurpH2I4Pb{QW8?5&hY0>Bhk| zI%8;cxXr)N=))X4E#yc~sVjAs#sAuM?)pCz>q1>155MVeW6kK?KG|J$i|B9r>YGf# zkFDo5V|hZppzz7wG{Pg!KjyX0w$!F_NINC=)`wzmjX~e*6fgLMeX1H*%z^F1dU|^} zr!ugvY4{#isA@p@TeP}%%g?V{*Xc!Q!Oz>`72vu{ z$vMKdYT@_a2d)lS)AFn#S-UInyM|f6n%pR$p81Q0!^<(U;PzLV;o_p zXhC};<$u+F1=<;tS%>!9(Vni_S14cgER`=Ee?qpeMf=m@t}5vMBeSEVA#=ZZ8ONn^ z8CGsgtjXPK?lTX`^T_0(dsUx+%kyjE1bZ#lGid!L?6<@Ce1^{$kF4jHy7$V=y=T$S z>C>2CBNLq=_T4X7KSAU#vQC*+ToM^2_P}BhC&bu|Up~%#5Hwn}>d5HflIK}v>tJb^A)RQ+R&i@Tc?#;t{ z?G{>l-a>2CV~Z@bb_-x+os}`_+^c#b!3*C~Jd$g6mui1R>9GY^vofsF#QzWLbb87< zIn+9R^;lw^+K2tWTc@%A!#eHX(0!d=IG9+cz2DleQ)EN;b$a4p@7KwlvQC3~Sf`wn zbsC3ts>d45@+8+z{oc7+gtc45I_a!W-(Z}H`3yk&fWA|hf8}xZ^@)6rK3-q+M8;TH zat#Qt#OVhDr_71fa#k1>ZVB&>1H|bEM%O#^f1a@-kGW@+1=&eH()$H&r2o^ea9RP} z4AHc`eTuY5AFrsp=gGwHOs}w4dHQ>`NPlmM$ak5T5)<(|OWoE~nA0sVvqp29I?Glm zcs1EBbQs2$9qauonE$2b8?wC57`Jhqz1Po2Df)TaW;`p7uTyq46US9HI3_*J#+mfU zabRbSole!yObhJo^r!q&%IZ98sQdR+3*Njl^w57L{L7CsCjIfV)tIH0G1t72orCdm z9#m)2AnYO9)z*QYuX$Y3GwoSCb9vWsE84GoJW=b9cDQZ3d&ajZXHsXlNyXRmY`aMH zL7y4#ft!Z*i_m_7YG>>jb89qkB_IVZ}DMy#xS>HI%HtRye|D(o-eew@QfKb)Fb=`;@+8K z%xMAb=K~Vw$#R=HF`jqw8Oi6#^^7YyM!&Q%4n)7DYF%n=`d!Mq8?fIiMU=% zy}uoNq+azq)23h6g=#^+ZI*t|K2E>nhttt-xmw$+ZTf{=>zRmtt1W9g6#eEOqAf(m z!%Vcq!_c0PYq5n~h(3$B9ya#H%vTd)(dL#Gm6atKCb_J!rDbJrRK9Pl>u&fHDk@R~wovY?W>l{0YnYU#P_B`g*-A-e zyTJ8P;i95qS@Gljo|$ud=HBPwhx@5N<^vq&nIGqT=giERGiN*#gzp#dP4R!;kYknZ z<4s{(V%>1xa=tG$%9+CDl%Skzg^#kdC0@`?fu@jwk~6OA?w3r=og1Qs&p%KN(_Eh;%6DsMF3qu zqQ9icb{T)je{Cl3^_GkKE+Tdp=^OI55^n`2xHHq&>d6jqcg?g`yPDT(k>V`WRaL|B zC}Pe_pP;)mLn%xK+_pzOP6v?8-nF>vGZuKzE{^Tv4A1<@?? z3cjl!%NQBJ^deq&^ka-fGM)UFj?#OFz(_Ih;X=y%m2tA~M>9@Fob$!WtX~i(WoJ8% zlZ+BGP7*E=C&w5kZ=P)(CqW~9aq>t9aq{xn)^U<#fs;XgICumW5&t8hW`vF&P%{a)ps4kN%uBz za&V6sC%Fy2IB~Rsli*fx66lAMjljuN;3O6)GNc`xq?&OOZ($3+m2Kg6#z}u(M>rfA z!q50GS!YakopBw+0t?RvPl@}E1L%u zT)9~`u?_N0@_mZzcPO%_cO~)^*=M0Xl8u!uY5E?+zWf%KABpk{X^A%sZIHuptK7SR!dt8sG(jX)!Qhh5r zQu@%9>q1w?dVT4nj$CSi_s7MZCDq6DPI+GJd`bA2it}Rj#ZY}-Hj;hXF8OltwE4U^ z(eJ$YXMKsWCE}Ly9sJ>}o2d@3AJJlqc0MA`d~@{$5t@95T+7f$wBz%)mhSY2$Toha zw2}PvvQKr)rb}{60!BhC#*tbV#kNmjeiSKnrSO=44>D{F*TkK4T7$g9eng8DpDBtP zeeyu-K5<>Oe54nIZTw2K={@DV`2GgnbJW6a^}F{C%r9rmN8{Ti3g-W)V4nP`)+jcy zCFl#C@s96cyF$(x=f(45^YlrhecN-D(w=9zJsQ5rV4oj)+xcn5=ZD@cobSlf!M zM|+-Xk+Cl8Fi!q!qY)Hvf_|9x6xa^Fto#4a1znq<5{Hczw z^Uv=zuk&}+|7UiB-lsZlCpdDhV|D`Dsn+cTdv}`c1kcy|+6lUBuwLhD8?4v)Kd$$+ z69hfKqa+phNJ5(2vmJksR9}CPdo9)x^Z1QMW4+^zy)NHE3$<8Nq*~~>d&wXFF}apk z)Mh>&i?;S3N-Opm=zxtHoOf{m0664e%H`+`>Ovl{@(XZpN7RzN?g1 zXO=thyBs>8i?SXinaxu0_8H5}37H+>^~g-6jW=@}=}i{LWV*NRs>&QKeT;XG(L8&2 zo&POpw63SS1N3(h{zq}&u2nFWuVCyxlv||e)%j>Y=^>YeULCp9STAIAdmAuz>0CZ_ zoY_}@pwhn_&VLg5S1Ufn&nbFtG~es-`sCk;wk#t%=E1gg^I?=pvH1F(v07L7`e2kH z?`B2MZc^%xLj8@bzlWjj0wv#*N zf50Yn_*T~8d&QfOWV`cR*@VeAv9$P6kxu(BPtZQ;GE_zYyZOeU9G0NN3lkfj}eD_H-KQ(;T zx*w+M4`XM4mWF)aT{iJ}Y{&5Bls#sdQ7BRMxB>=CjrBl=x0UCb1-wyL@C)hTpro zTvc1I4s=rtmLZVA9b;YYXl=EgkXa+zz8QJ$80d1RWoJ~^WS;Rf4lU3xhHCC(j%jZ4 zujsPuxQBjzPHlh=T;Qbp5gFB8G6<)$#rt3mS4PB3RWgni*GU|>|$A7KGeO0FxhC0KVnkgo_ zjJ5Umc4Ym5c#BkX6RxS;w`$F}689M~#)gWx5;@SlIeP9v-J`h@s;{uPXWLaNf2)X_ zpQDdL9aKKGf0efmMZX>w@0{l7$%By3@BLls%k+1RHQhHX|47K6*7LX4>z;*InEe*6 zSH5|%S$@+U-()o#{-?{EjrpJEyivWB`5*0EjJ!dE%<>%ht}*}ri_2~})#CYv-tKV9 zKG1rz5__x)%;OKc3A1XjEruV;@ehcXFppUW` zLkE?*_cG6OQEw^oui-ae9bC>1{C^wh>HOwvFw^7dU6N+$4@q|$1DSpl^drsEACm4i zHWx_xHE91t-Z#*_nTt#(Jw^O4bd4^J!@8r;5ml-o1%*bHrs3yQq)4P}qG;0#_r>OY<*-wiwy(?%kh&zjruBVg(O@|S zz5B{3XF9g8e59uJedU;9^S<)?I^TU|YJv5>^5FvOedXK&-+g5Qu#^A{#UVLEJ9vJS z;(LCy&;l#>GgihkR>Jul=_bZZPsYp$1vBKowyxF}HwC@TxVf!^XGITFyk6j@oaN_e z1vh2DO`{?|G5_x{<0h}JW4O77Vj(MdJ$KR?Hwk`twYmd8#$t^@b~U>D9Y4gk&Fgpg z#yBAQBXu&y!P?Whr_usrFYhogwu--*gKu6`?BW@IXF=*2`cCxiX};q`XG90qNql{P zvffwraG(0!|E7IebSEj7H&Mnv6ua6^E`#0&e?hUUZC_`^Q~y@6tNneQfpt3fN&%+R zf#p1;`AAzs<=gcBG3}CCiD?(@^#fOY{=)>G6Gejok;1xB({z2<8 zV9qpd`zd^A%MLz*&Z`(3Lr%&yFZF@qDP(=9346pbzkQf^^7@>4`W5EogNnTNDe~$~Z`&#In#g?hzNK+9^Yt6{Lyli^ zox4!yVMRU@)*APesQrbIPZDG^xmU;a*$@lajIgkU)45-gV-@!7ORMR-kipSQ zki$3&IXKzQ?xoSYB&Tj_@DPpS5C>w8`E6m1_*=v8%kFOQ&^V&M!}0gy(cp2c5l@|L zop#V40bQIi;P?5_EC+gzkY!<0WN}xW^}KwW!rw2Lzu~p=9Rlx|*ssXXe_nnZ^7}xU zmzOdR-{*PxD0pZOYsYr1=ozvb_Xsfau*s(Noo34w^W{>yPm2F#_0h!t=^a|K9VR+g zR?pqt%x|54sn11Q34d2wls7m)mS>NYc1Q9{+O`wlrYBT)5ohCh-n0AQ*q&Y8BYSD? za`g9G@KNKkwDi1cQGdECjOs~B->Wy0&0EoBH0E@h*(N{(buAlT>{KlnX6!BR)BnGCK+pSI>(B1<>(?d zq4tVSZ`lVrU(xB!+K+F6oYS%Y)SiW`^K@JAlkS7))3iakN_{ijlLjq|@amQk!Uro) z59-~`U5+skAoL6AnoQlEx*BCX<&&VIsU1H_|1v7sLAiodO zIc;BxV?w%Z{1B^V?N`1imA5BF3)4*gxroO zSU)1#eFNIPfZH9Xw7Yvi+dgSS@m;=Mem6q-Zi+>Jwd~3;%s-;f_}y(!SuMuQ<-;_w z_M8nKZx?ab%0=I4>{H(;_Bi$LDhvEHH@5^Q(^=SX!~XkMn^qeM+!tOZbzO=xqdKW% zS@mRX8U56gk=|H*9CLau_Nm#>o9WfPd&x83L9Os7*GB%ZvY++GjDAwAkE0&*7`F1& zu`9khPo0!L=!C5)!z8v=@_BP4_%M&Kjy_C+{BHk3-W!Z)rEQz(jE80LvC=j=UyeDT ziSsz$HA6mZY|>q;r|>txM=k$h(~DTCLQz0Wv>X=gV_%j5E7mjI;izE4Nwt0(h~g;`br+$JtHR zu}G<7lQQXGw1R zH7FnDW%iNd&lx0n)5+lq9fWqAYofasIeNq8n$H=*v2Du!lKc2K)OV;!)+hFtN`3d( z$o`b0S9F!-2czr~&P%Z)qnmx(=Hh%B^7Tg_vdh{Y8!w>l@+QOfb+E~>ecf%Ncfe(N zb?$DSkC1O;mjXS%cY)sYSGgucKZ8$$o?mOF9}J%gs_RMARfD{9Cz@ryPT`AJ4iB;% zXuevm=)O35p8(&yq; zeFo~N*l*^iI_`gi`lmJ<{QRfFPx7grA7S7%7iI5nlKrbt`bTqFKP86JETx}yj2S2M z(%a7}1v7N+Uxa@4b1V_(p?^j_UnzO#DS0E2cPq>IN#vV@d^FdT#rWcOqSA)h+=iCp zEuL9T#yMMfvu}Ld^l+oE$tc@S@wx*G^!cDa%J`WFp8f&!WY7~pe~{_6W@&$#G~SGr zFr_Vx+?Jzg%MZj$loN<@W^y@CG|4!A$?eGP0KQ+VjDuW7Zr7kMlNk>q(2s27%lgDz zo_Bvr7^2zE{pr?fu=;OFO3Fy}}^fwLk6wpWd@nJ6L6c1x4(^rH3BIpUAM}t0) z>FYp$1@uXv+d+?F`VsUOdZl*SCvA`WY_xAR;UC{u^eWK1@%QiI`|Y6D1r+E-pm$>W zT}{$PUIBVO=uLT&{xs-+LjK}9>oq>D@3%U6{G-lo3J&)wI3zo5CFAh(>TaI*k#BNM z>pF$zJt}h!%Df$Xh)28P(XJ!hu2qdK!AXuU^-Qn+g}$bFfb=x!?Er_%=GE8RQQykO zmf9ecp`na@T*d<^qX1<$*b4N*&;q@L>C-?@X_n{L*`UA2bl@U58M@lrj{=nY9Qv_~ zzu(IFcHsLp_`VQyIxBpW>5qZFp3ZAQj{|)p(}C+?ngi28cY?l-=@r00Ir1;Lj^13E zRn;}yWgCXPRyvJrKlO~^KUOREDro$8I=(*(0KY?;PvH$KW&Ua>1(H?7ncynh)RbR1pTP6PgqwqiZqRl(4jdt>z zkv8`8Rp$6nz1bfp(cwKKy0faYV)G5aTK;?C`yy?=TTU2pTRu_Fe&`%6U$HS&pe}m< za@6SmXYcC6qpHsQ9WsF-1Q{S%0!AHaR9VD&P#&+7$E!`)&fv})9tZ7SIYH2&w z?24>zBTQ&OqmvJaQeCDsS`loqwX1b24lVRUV(UI&`DlR23|E0s!7kF&BH7>XocHFQ zOm1ZSzki%(=AL`cIq!MTd(L^!d)^PUAJ%7YM}GC4ZSK9&5s_alwFk3(hMe|Lw;uB! z$vv8LAGfc2xJ_%NhkR`HHuoO!`%-_ct^K06V%$?0&w**$SIRK?d9*G~d6$*c`UjMI zsTfMhHoG96=vTguhUrG_Re0VA9zS^DCc9yxrr`(rN6NZCIA-KsMs$qe`M&3lQ8qgi zOCTH{igTWOZfzPf@(%V3W3-;vtID5DbNZBD+s7`ZTt88lj*roLhkSRPU+Z_pw{2AY zD35Nmoxbq-Td2QpBK5r1Dc<5s9(}nP?fIJLr9TfoIq>GD?zeGP-8o}r@+qVQ(h8&q zQV8kv^p(kHkb01oBUK1-+f zBh?^vm8?uswlo3b-??)z%ip^;@a(-<#jV1cq}BuG`y#RQAG*PVTMH!))kd57{AS7n zgIV*tM;~#&GwV?COz?hUQokR_dB0TN7n<*}-q5F$1Ls$EGS-J~`}F-9*0-o*iF(E` z<_F5NEaNbLs9MMS031aVbUc~>6dsPC!Tko+5Rhde%)yATBE)F(%u1&_7(zP zUhRDW?Y(8x_hF;Hol@T}kNT3M!2i!V@IMQ9-!$sK)Tn=})c=G>{ht^G-m3)O=I}$d zQ>PP`sTupyc%%LkO| zDcWv0<1$LSXE*3}&2m>6<*G+1N1C1`v8I~U{n3JqFT_~zi!;rkHv2M{|r)P*()&0vPnQM&Y^iYrcpYH;ASCG@c!E%hnh) z*~4?U(D8qDiw?>=8m6;d`uU(d4|Hid?>;w@&KGQO>*QH=?gg69x#!)tUINiV4)AVgilkFJV7*y9DN~hlkq%JxM)s zgIB+gdL^Rg8L_(U-tyv1Z#jALy8cV7x~UP%+UV8B1GJ--Had+qHjD0yeI7j;%V({t zDslB_Rvq@%-waf{dMqV**rOZ;TzjXwK1P;%)Jxr$ZL?h;BTfvGzc*;-MTrq|x_>bH zf;xY!O1}hp2!?eGOslcGFwodt%Db`I^ufw;j^msqa9u8Tm|F}R$2ep3g3jn4YDIKy znsHQ4-+oe^X-I4J!9o>#rG9cGbMpjC*%R^IG@rI7@>}kCXNphj?A|T+RGZE6QzDrg zjq>B9JpDQIed#MY=3y@G7BQC8Bv*IsqQfI?I_kx4q)+@od=R3^4cja+9wBWs~)xA-|Do{4F@mXC~Ng@>N{m&F#& z78%L+EiEItfc{UL>(aChSP^ecbKgqf9q0cy_VS&!Rm5u*D`mQ&XJguH#%Swh`G)q# zvO^>DjfC~1#A|bkHnb<6OuKQb?l9IN+SSkFJe{P+mNAA7qOMzM z`vEvlbFM|(lpO!4`2K&;=bxz#IrwpFy zzX1`&S)$o-9FK*BkzwcSwFz^rE@e6 z`lUV(`&SRW>`&+D3D0?3_WDM5ufI(8`dd6~bUr6>RaZpUq)GG7gXaB=1yY4IIk~|e zQ!?D*9aB?RktYx1pYPV;-)}v8&kz+!c$>?q0xnmm$Zu z+uc|UyA8XVBa;6x@;4cFH3!<=`N{i$Ud)p?=EVx6$B>fK-@CukuY1gsC3(&h+H?6a zPX>fO9{j_|d2+eOJeh0Q8D5P2q*R?7MsH`4_yU~c)9tMCXvY>`fDM=WhQ_{_F{eT6 zi~g+jt{CGhZpCftlpeoLpZ#e+OnNLc%5kh`8#MD<8SAr$2eZ5L@S%E&I{yOeVh>oK zWz03uX^+t+V}O+PkD~u?%#HgU{eQr+-q3Y!dpG@mz|dmq|F;jf=W^)r~5aUn72VoiRV?(RNDw=9*)EA?WivDc3I5v~8Lxd$==( zyAEpGri2H5v~G6kN()P2C{SUr>+OT8Y9@k?_8T(^~9qTi3 z*Jsx64LjB!Nj~NKj6*j7TBrjJ%t2Z;e^4n%3sXPxkey70U@O}%7)2=78uK|{AN{`rhB{!{irx#y59B)muMAK;VM z-D%`Gb0ydQAZXA;-1wej1iolvdrln};Cp|t%kGu&zY$|~l>80G)*tS&Q#trA2mbm0 z{R7&L@SY;>5#uw{eYKgVaUQ!#aJfg;`IJ?ZAx^Hq``x#lJdqM#uL`HeeY-#0q2uNT z^VewEu~@9N!@^d zB7EVx^kI*&XG}+P+&FLlLHYCWWvYTPwLiahV0<>0KB#{Xn~872v0=QxmdErM{#4>X znf9d>2L0p%#}xX|1?^M_94~mlQ8CjuwIUpwLjN9Vu@&dJw~F>Z_i1{e->es8PL?45 zMaid~CVhW5AF;DP!(1$nKb`Es?`zVA86!=fe>*`hU25#nM->+Z<9xM0*lGKMt5hs; zETmUEeYisvyNEuBfoFfPP4%zCqkj`5mS>@|z0fhu3g!IEm}Y@G#tHp=%BpKg zQQmwl`f?QGVxFrQWByYZ7v|MtTuzXWE8_UNbE{Qw0vah|oKACHdQH})rOvvPOk@Jd zHtG)dQwG3wsu(m`j5FTqT_@FCn67-eyK>hO(kc5C>{9p`7j8`Xf~!+wLTggNa16Xh z8|GC^*^cJo;C;%D;UU|U0bK3K0P>`z4>0C!fp17Ica@22Ymb^w^tCeQeZC<%5^+bI zo%z1To&QgI-|LfDvt9Vs-#GjX8vw3P$oB(hwC!j-2fkl=td$cv&VVlyK}Au<-pZK;EeWxFA2Zp%mWpJo##dLXKAR-9uwN5 z{F(LTzzQ4}0JjCxblls_h?Qrs`>$AQlx ztL-@DfyC`~sBaqO_^8vFp9NOz7;SQM=fgOU`M@*E9KYU|oA!@fcj(LYUvlm_>Lhl% zwu?_>8h&PL+dPa#0R3XS^pm0LA%7l>*$xZ~J?1s#BmvOHK!xT5O2oI3v;K1IrpdVd z?HTQxHJ`qH4sBHx>b_m$(YFZtF#&rMdG_{U*6{+`PUk~U+^1tgPn-97&y}$`eveIC-DMc>ZNRlZ4_uRX zx>?5kgt1N~1W!lAZ&VlX(gZwFR&UDaL$ptfxW1z;k<(Luv@zUni%dPQe&30H_esCM z>e26IT=SD!HeYPmhMMyE25A$#*^F}ekMm|xgSE!)tt!scg8wcKH{*Y8Cdf4rd&Dw6 z*A!<;f@@0a(4XEKu5AnY%R*~P8yjPGF6>|SSX&nHt|hd=o`dtzyy%*ARdXy&{-Qo! zn5jg5O=B!w-yX@3mnld7B&!o+(TdcKwB}eK9YEV7Ohy{_e69m-#Zwutz!kj~V-W^COxEdK&dT=&??9jKTvIqrN8KU>W8r@xYk! zy}uu?Z1}=T9zR~e(|3=C=O=*YN#TK(o zV}5nnpZy(h7EWcBffpq|x?I^0>u;*Dj#T2C1@g^uyst!x$~laFN1Eh+u=%+_9lre@ zVq*LUzKklAa>92;qYLqQ~a)Uaz(#DlOY#OllufV>0 z%dN+Cyi(pvk-up=sp_G)nl8*#0u?!^@F^$@Pk61Id_8UGh+v@`Lqu1iy1r z>y=GeT`Fc*P|qBBjLQ@TuS2?a=y{wva}LkLS#!#qXlx4RP}wBw+hy*%f2IG3qKHQw zH92`TsAFErspHgpi^JW(DZlSlb>PfwmpgKTRKiyfO89C*ou!df zXDRC@&DB`lb|k1`ZcqnlmJhh}r4qA9L%qGgOE2*<;qL z9=#Sk^?!p|bnpauzOlYrDVr?Hr|l;CT^+}>k(LAe+N14xKAfKfr)R|XRq9rKmoph{ z=Cl6Jq90aSe}DM$$n)VGpFWEZ$uk@u2zNbqEF^upAXz^QLLV~Xd2%S+I|;_(`n4IX`?j6HIE^nK~wY@TPL->V%xNA#U* z@k9@}iag+=58tKZ+`ITdD3&HpXM4bSvpS!|()VKwcrM|0{;+%A=N&M|_ywe6~^VY%ZJaam!#dpX!m1ixBV}AoSLxae8l4% z=tYMQb1lG{a(zIz|K{G2?N`zVAli>r4yVO!(*Aa|e~G#yP4q_vhUj~M;aG<49fG8_#H0$#<`b58u<^IlFL1t00zc#OV8WxY@B@jfFzfN~EWAN?FWTHK#UC9cj|@($m0^g_D9r!}W*{xm+zdzAWc zVWvJD$qZKfT=i?2y2kgjo)m=}SMV^??`mU$M zGI`WG+FBL`<^AhC&w9MCl=rr}8zLXApZoD#o%22A4-t8PfOm8`@0G9Mq?y;yUnqMw z-}j=-9QD7U|2OzQ*Q5SA`4)V_jEG15HQ@DKezIQGUz_BauCD(nl$ob^gZlm_dH1Dc zE&9IL;kC9Xo2`XP?&t6e2V@P_J{r62rQt3$Rz92$m-5VUX1rQ6O7rB)mVmZ)3T=JH zgSKj<9ky|is(bjo(`>^JZw1cg)TJb>iL=_bq4Jpr-rOJRRDMzYk<~WuPc6V|MON9r zHTE2=Ei-ydophncz$15O{RBT9d`z*;nUf%vihnVP4RdunFqtZ6kMT4T!cCoa@igi`mQcK$< zFMvpFAmK$MWv$rS*0!NQG(9u+)t>TjwaqlTaZN8+!c z!+EVlt$XNkpu@TPnUAjj6D2N7C&v=)wqw%gFEM^u#P5Uged?`X){wnOWeRAmmBqq~ zDxm*};T(~EGsULw0qWmu+_4XzpJCfXYIBLE?Qq%}No_gx9Dm5DKbP%Vk`}{w0@lgp zY4{HEgj;;L>w`P@!1G>j8OH$yte^+G_#X;Z6P)>>x@gatE3`v%RCXE7kyGchQs;}G z5WZVA1>ep=@bwJ=-=A{qh;BP|iqg|n522^~b8>$c>09@!c)!P0^>MsL58H(nB)DYjB%`t7e?fXuK z{i6CFzJqVlp4sQ%1k6``zw(2_vd<^ve@M2@=?;=l4}In|*k%>Bs@QL^TXoy3{^o|g zS@65O=f|i$e|^8=rDM`Bk_p*f^{?-#yC6siI9uTFFO&4|Qu;R~&el{)zj$%p4*L|b&kn=>Pts|B7B`8GyRv@h z^*Ih}gy`Obuo>Ye&6i zAO7PW0-jEu^PJ0f8sIN+A4;g@YsifA|S2R{h=G9$uUiH1JI@NJ!BmZH78=}GAoXv={E+5;RI z2B{AF5Za7JGc;xo&h6Y|ZIiJUxW+n{##-PS>ycn`%@8nwACB3fydBEQZOSGccCI*| z@DjiC?XwSNV>I8@wZpBK48?~8ah@I_US|FNeGPJsaXpoTe2Te8nSYHvm@OyS?a~W( zXZ_krWqU?2ejs^>{c_Ku@^P)xz9;@K=D`}MPj$x;??&y-<}(rHHwfn=!z2#aTq9vS z{MvmXg(uekBbasD*nx(IqMi0-ufj%Z72B`+wCU-_nhrZaGU_ojFD0P6hOz+}!Dk3< z8Q3ghy!ELSyP(Skj)II(03L_%7-A4K*5vv4xuC1BI$?OtBVSnNdDW>ATTn8P21zPX5>fc&}#Pip0;QiN8ue zOlft|%?wM}?0Bi|KIX4GGQXeDNBFac%hwtmnU)LsvJK%Ldl%uJiIg7Jd+cwW+nTA5 z_Rt(9GIeH;4Lnqvf_-L(eF1Ef2q*PJpA+psU*P}C*5#hsUw*VddyMh2J-e*fdYRVd zoU?{m@Q3KpMq2)19_s=_+0?)v*6TF4&?y_##-CZoy4v1MYa46&S7Ej8?_i%ltJ#Ms z#*FbLWXuJ$t_x_)fWvnw4Kl~Q&)HeOIo96wREhP^6yZ?X|4p?8*1cyG@cp)1sE@Z$ ze_kx!mkrTg@gL~f1zm^-yuaRQms5G-|5*oueT$gs*t(-}|q8+rz3pZ%e7oFxQ$$3K?_ zoNH^7>Dwc%nR$`^-6u{|vh~C8+e7OYHXSH~vxnXrpG)5u-oG2~9r4APZ^!$0gLnUB zzq-G+2m0G#d7bzCf2ccSs0*BgC-NQpkT~T#Z99Eu8iPJZR^;&aG>68d@-!x7w3q{E z49)MUkElI&w%}~wqTXrS(+T3SSvN%Z+A_c|9VTer@uwxMtdWut*eOFyixDpeS@nmzJYw=-{D^&JqLL* z*F`Q|58Um{Bi8Sm;|{W|&fs*+?`z`*;&s4a>QTj32Iu5d{wl)#7L|bwvzsmnX!ZK5_{wVpf7I?e!JJv~i$xaOD%jaI>!WV&l)t2yS=$+QFK zvdK53M~A;mYieQUW?E+$PZ7cW`NL`r#iBS*h3_nBn}<$pcZpF4}YE8vRN^S;;- zaC{$A=RF#V=*%179KJjjVgAUW!?>#fn-SZLJmcMwy2q}t2aW9Z`#59f5pRkMlSdE!J%M()m*8x@Qr9!yP7=V|k@4D2?6 zFKU1P7Vq0S;0dBvy5Y_ACq`zVd%!o)Hoo(1X&<=yJ!=1w{dP854!`=zbZM#Dr?9)! z^yT*3lXvI(i*an0alC(OejGZb12+c5kN(y>4`q=S;57PC+7?QK4Z*iaJ|57X;D$a| zd(7+7eAZLhP;?dXK#uQqq-m>i@ZU<` zflLrj41~V}8?-m>u-bFw&>b0$pY>Htr&ry1h~v(>>GX0+0~|m6_dqz7BhG-paRb3I z|J_wNIR4DlAK1&6vyE&g^I?SNOsu~(rO(Hg?Q*em-$ma;8uBiu^h3fgW1aSvKAkQSJpVH74`=@(?M2r+%_U-D@Xy*JbQZ(Z-x>7C@;Z1r%(SO4`X z;;SziySEWABzyteo{7YxY%>B@13dxDQ)6505se2~Z~YIiRy@hG(w-?WDVBV6M zL_8Sw|2(~GS57WVblAqjiZ2_^@iw~cZ-(14y&JdZa7PJnM?&F_3Mu=R@bw=EOkgKI ziPqh(1ui39a2Xs6WXH31mT@D?5Zlv}TrxzlONN;Hu)R6 zMEi(kGU@+muKtHy{r{8n|4oAJ1j5Uwu{=ceCbp(E77DWYSrquXf& zt%s-&d+6J~nii9NrH83~`t}}@Rc8w>e4J&@Zk9PW@mWl_U9Ee0{u+o5V*a3`PH#BO z{n$YLfP9po@-Nf3B#ut8(}#v|hwbdKe%fRAP~C098}9i)(eB5gZ;&z#G#=oJZ%Ub0 zrOZERz9RJf`@&w9mr~RxfB1MC{X^f-uU9u57X5g<3^e=)h`ko;v7eIu11~=!_K3I# z1{>w=l!tWWKOlMVx3|ud?-Syw%#;57LHg6fe1O_pZ=OlA{J8~ICDCulPNNZHoL~+d zP)>Ugd@AMHwOU)Inx0F75ttP=AoOPV#<7dAJ)p zkG@wR>+^m}!@Y~wTxs`F+D}9_YLdPkq%@L6tYcv_O>^%z7H5zSITLH(jk{g@#7O#Z z&h-M(pE*=EAnjf#V>?NEqG0&P;ORJx4{es8=(SD?Kf!tv^ac3t3F09QZ85Fim$`25 z`0eS>50 zW!r+yUTtZ3WWKyE<$o{be@Ervs2adC`ThN`I$#4!|p% zdYR)j{gB!_N&HlNhj6KTja*1;qS3WRE|N9!O&RM`uCbo_F=K5QVywpv8tby;CtK&g zds?mYz!2+v*bwXdJnD0qYYgYh7#d{^n``o8`0!yh2KeyW>7qv?Zd3G#_=GYa(WI*g zFWnsO-;H+A?s&+s#9KM*p(18l_nvYv3*Yq&CxHple@y8&z;0_$`E``O3h_x?IAt}Z zEk8U^UsCAOm;8|OXF_kiKz=Kx%!!0)U#;0ZM54*?R21EpV!G15Bo(YhNyh(3Pvw`#q;Lv(RG&LzU< zv(5ng&8+_ZwSM{@&9^;E`qMZ@^#}BGE%?cJ6gt31kk>px@f#j>ch`>96k0fQf*cx% zbTEGno#`{9`*_b}JlZ3EmksYbfDxrX48C9R!xWM|E2ABD+h%H;XqiU*cQy5Ujl6Gt zG-Mg{9_UP_pL(>(ib;Ac(&CVdSN8?ti%myg{x_o8Gvc?T4t(R5)Es)o=;y>bV*MWR zG5Btrco^t{939n?_Y^M!TL}mM{)2h;)qEy-G3@bEJ+?2b*81ENi>zvWHS36BgA4f< z{?`D96*B%$)A${nSm9B25O>PhJ%r=x6H78a?Mm27JyIF%Vcr$6eV=2!T@JfS=4B3+ ztF=4P#d9|PSm7mNs*6G2yP#7XwVv-|U;n9tP9E#Ff~P|+gU*_8tDL_Cw3P+7UiYuu zJxSQb))9{sIb*#&M`-kh(g2SQa?w1Lr8Wr{mu>wJvVXTdPxzX@pL{U8RgY4uQPXFp}Fh5@s?BremC5bx{v10!He(_ zW)S>60{_O^0?Rl8{7)13ukY{wxj}Shj?fI$1Dt<+vf|5n1+G6jS?R{mC)!KJ!`2?k zy(0!n(~3jcFVh~YbO{&Q<<1RQ`O9Wwe@QsW`3EYc=gGpZMYe9hjPG&3uMv z!GdW2?wgZ@%W0i39A&NC{jSoNkH^^u!FaZ&?16fNyR#v4wOvlKR`;0owqO5^je96W zr`AG80Q{ySURQsA74%7t&f|w-J9?j{_#jQr74IC=YCb!@uMc${Sq*IzOI^rd38{;C zNe{|;E+-hH-S0@=63W9E9GxS|+$4F8fRpg}j*iMlaKm~$e3Dv^+hsq!NAFk3yswkB zi*g60oRfBd-lKe0r_Q|IEv5O>0q<#+MYzMkVDNm6nXdAyDE-Tlo^+*mQu-GteaWEjE~WGMRqsDvM_C z=JTvW`+`}FtI}xWaXDkbS@(hS|G20A)4TaxD8P3|oI5#Sgs2 zx?ke+9$}q!?)-A49jMCh0q_!=>JDbzWz-q&w9JxdryUTO4dZ#6&T+sy!rS17CDVJ- zwsh+xGkqcP-FMRyIw4PZmi?TZJ%u#w=fm0e#B}!Y})Z5aZ^BeX^5%I-* zMjhU4JAIn3b=r51KEOH&cUl{zvE7NJVJ+N$np#7!-E5?JokMG9Tff)Qd=FFTlU&n_?L+s@3%rk>qZz6tMfF&EEijZ zPdYdAeskoxsUI{qR}Y#SoSk4D1BQWU2cHXJte)^!>?s6G&{x3oC4nbog`$)?OJ9RC zPtfa=wx>s@p0Y;M9QeY^(x_JyR=V}CNsV}`JZBFBicSE?1d2Q(V(7(F% zO5XU2$QxD5yH5$J|#?T-FRz^XjPYh`C$z-P#-d{3E= zjZnIYr@S$99nHrY`X%Y7bl5BHlJ%mOJx25y;hut3V-{(X!s;CQC)XrBNy4A^y83$f zN2<;Yrw)}vJt|Y+lzB_aApJf{$2u*cH53XbpIsAfdye+Wj?uU)8cse&?~h~6FFQ71 zEx~dN1~D5vY-{F~s@%$5I?B%iO%+ zD%a*J_X{a^m6S`!+1s9D@_OI?I}h`juF{XK98zC&@>V+wn>429(PY`}(arWAu~k5f z#Za}^s;nvIHhT$o;tVPpZOa_@#ogI^&n~j&rqo#i_9FZSj5bVbj?rd=R#P5g8K>j) z+(G3h_K{rll-Ih&Y_b-dRK&W1*qKEv-{6b_?O-3&5j~7jof*_lGqw4+*iOD3RQ&?3 zypM6qH1=H&*oWla#vvMik)xOTl+s%}dDt89Ikk?~)D+RZm(u$Z(RaWH7GU_G3+8}# zRA7yGMYYxW_TM>iVEgNi$;(&=D39>qzAaVxv@E4@{0vvxZc5uLcZ;6?Q29g!ZwGt7 zWmWlaG4D@hft!}OzJv7VDE$S-Sy8sZIhW&CblMf4_R>0zD1Qr-_I%ivdk0BI+TxBbUUUeDqj_`MNHYbHIP!vEa^Z2@A$ zyEwK0cb&OAXQ%UEWLp|`2;i-%sh^{ypPIgc@6}aH3_+Bw);sM=IfsU>2yNY`wPqeR zTJ1;mR@qxgm_xvuVNKuLENk7v_bd~c?qBZDrUs<7XMRX&4Lbb0ciYdO za4-vBN%c$iX7L_B{a|*x=&!WmWO~fvy}7Yf-!*pQ(P!gM?^JcSiTGpKN`hv=FSIju zUn-gA@x|2mHiu#3rT(Y%b-6jxjOCo>)hCkp96rn^>mh09loQ= z$;bV(r=;#@Wd8RfUgHYo|Hy%Fxx{JQ4!hp7V7J3DVv5arujQ>)cNJ1+9ArGY9QlrWK>-Y`ramGr>6F#W`}edTYV%EY4H0 zPjIHH#};SW2U=GPMs()uDCPkh?9;VW_Edg3kHGZxxoT~s^nrdc;(y>&)2=TLjN zPYRx=!C-zQ4O@)Sko%|&_|Gms&THLA^?=*(joQn0XX`1g(UtatnY*)1p4E2aaryIN ztg#T`>zR>ud)KAVipBnq7{{EjwYu4Kf zj?JINe~ zeSuy1Q&c|cDnFCT!;b-cS|6-d=~$x}gRU*kG@qdC9Uo`EN%=BZuTGiINg3Q-noI51 zy4r7~JosvZ?R6Bs*9eCKciysD?VVo(FHxNhQitIswtJ^j-L3GagnI>)esGxA3L45T z`0G@EGw$2dzFV_G=^UKB$MTWTUa#E8glq#@40_uSN{YA-2g`?B&w=kG9vZxYXS`;; z*7UmAfw4cND(v^};cCBMEPaMQ%epSw@2)$d&bKGI{3SQio}5VE`(0m<<^Gv$4~qU= zW|fI;9c-&+!d8N1SmvX4IClh*K9hYbC#`PpdOJw%Of;13rE|A*A#6N^PpH-rd!Qrp zi&^{Or;~XLjKP7$`PA0KG2($}?>tGuj`YM{>P)-yje%%0d722+iC+|29>L)Z`PPw?LUp*n*PmcThqrgui9-_k{mu9 z@Jz7`@d#*ok!@!mMt?YV)@2ra!NEu7Fq-opjD5_Sar!W}1DR}Wg0D@)s(E68V6@ZmP!1D$Y32ImorF5S)FK>G*TX7LK^H0WET%)^)N<`{CHhVM6& z!@Xa^k0d{uGnKEDeUHYw*|!qzk~?snPH>$qa6N{333Xlonev2F31(phSG4yC!2>?U*L%|6TlO2tN|S39rm#VN5ja&@=u>r@H-agan$~!)IY=tc^H0C z!&eZExjEyDKV-sx-%P(|+7k`*!+twc`Cx%<2-`+ppYl5X z{i~e4vW@Ng)LI7}p}ZZi{rvu}BlCN>cT{`&?tSVmT7MS&K^^!Z;t{qH?}j}Nzshw2 zgBbPEp;O3A)}tr=$vRmI|?0q;fPqXD+C z@X_#r$ICwH#_Yx&<+cp?9w+U%-Fe>7c{+L^oX7BekW`0V{HwRvrg4P!a)C$gdqB@K zNBSRrO!14bF?Gj*ULZO%K8Gh2lYgUg-fI>s9wrR4Q?Qr4xU0bSdb?RTp@L7(3D4g4)o}cQW&X=iNAiOl) zua)6WMO8JGFV}pQzZ3qnRavaTavE19!Kq`DT8pr^>ZSErB6oBaZ&GU==e}*SZd)Yn zPNw^_GqqUnTC3?lUD>vMaJGF^!FL)FzAW0ek!|VToI40nEJkx%AU!w zEM|~QpD^JQ0_9M~LuCU}CaTZMjHPlM14LVH6OP~K+!s1HJYeCx;1>9GGB|dq_1>9^ z2QOhC$BOTGNz<5b1l)_*rn8-OlF0i_gVL2kPYS*UPspF)v-0Vxr){ueEdP@Urq8f+mCDQd$ee)4V~hfyMp^L-a`T> zzzDKh36K3!v{QyYmB&Hr|_XSnJi;_ z?PSt-lO1IG>*RToOGo0nm66{OZ_}JU3FGf1ewXmg(W2Wghff!pgW?v^ll3NjBcMkT z8eAy;2BCj|O^PPvfDb&qw-Nog8u)xiF+E|cRzhw2!D|w3$2SYaM?C7lKP>Pd?nI)D z)6bvnLcgzMp0ZrK!#+efWdo(*9uWRB>@TCT@Le8Jwy|g0h!52*ckR3Ru08J9^L;DB zeb>Hi&+=WOGoU%y{-wQ4H^ZP8%GQSPK!?4#tk_C}N0)v5$lAk>E}i|4y-aI2?C`p@ zo;2bc5E~ME5$i+kg(%;tsb-ipTlItoUle{F^sgdnLZ@F`eTTBQr*-i2${2i&C#?gz z&w>o@=p_Nm;j0fjF$}5-pp%rn@^@MzypQr;}+A+Va3xIL0RDepnNL*DObO9#!ktr_LVJd!$|v-`Can-v4zl7eD4S zIj3omdvAF1PujxVqdm<3W}g3MlI))V?&E_*Me(f73ELhuOCkpS=Lgm=q<3yHq` zLi&t#S|EMq`>AHnF32{RTi~O2#rGZFv7a3ut_+u$+Sirh!?heX3tv?JTX6>{K)9i@ zS*>54ctgw=d{!@_apP_d-YbmY z;H`A*?Qj>rW4#58F7}0mHQ`TDdNtx)cG=)zbRGJ{WZJ-RZ5FOP#UYZmIivfMN1IDs}-_TYNT&AgU(Koy)z@hmg-|%be2DI-_f#%KR`)J_xabI62I*7W& zKjppwo?Iu|?$@HZabT~*XILfiiSNjFJo24#l$Gy*hpvS`Ctdk-s_pEwt9v``Q9j734Y$;Uuk(siHW%?@9nUc7ZjUUP@CXGixz%1Q~c+zn~?WIsUAD9 zu+@aUQ_1~A_wHI|`o3r1bq+E_>Yw{^vNQtc-XhnWodff zQ4`*77bS6b`(az%m0i8dTVs|5QauHM@G{L$&ydko^snkSc)hDwTvsdF8iwBOD7&z< ztMBGfZ)8&=G?V=sa+xa;tECG0l_$NC^9_$NfR18LZ>BbCjO}(c^nr-Ym1s5bZ5m&J zPUQ-XRxMDvuFqSuj;3_29k_9s`8VnZw}E%cn@-N)6U|)#*R$|V2aW{@+ds+*Hvnao}#}2yY2lq!c9@9+t@-Oxz zre^%H3yEgT=X=$dBY*rN;(te}Gj4rtAI6At%OaYaMLaiGGwni|B7J4wh*57aUt;qd zjIz<@8X7m+MB95QJ9>2bH}4X0o2BJle^2EuoEqTaA@{e(Zh158g;}d`RSS;3q9&`e4i6DBmsMJLApp zTQHt+sN(s~;Jz8xES~S+izSUM{l&>=AE}Xj>&b*@h1i|?zyFVSw$uex8 z9MnN4JhyIqgxO%7EJ(*~dL5@Llj_*kG(seoL6=Qey&b3^4q=Yy~GJ$FTfB zV&hoOp8TTFia`tu%pL@f`yek*y7_b0*AZtKRQcUl#Kf*T=r@7qY zvzFBORBU01*Yx93&H8Y&&3+e_a$&}= zx7d23i~VN@QftbKxF3~lZx22k{y!!Gj;S@fus=ZaCihbP@SUtv^M`M1#lK!Enrdaf-~;B8=b&u@X@Dqq9O6Si9R0A z3jad526dn>LLTM=`EO^1Z=`&{^(AQo`oZxuH%l-#$$@h-O6JBdbF+uzBC5GT-Cg4U z?i{u{I`lnqFW;Yn&GSs+>9mu<^Y{hd1*rTMj~ZX? zpOoH3m;Ht3+iVZ6Y|##heNlB-`Kkc#S4!WkizOIO+(vu9(!mYH-|)QEwD$GF?|Phl zl@Jf#T|s$A(f%4qc}H2MvTr;jc+$RFuHe-%;WoLm{hS25i5P8Mj-vh2b zLKbrRIm*?~S<=sfjo`s%!rr3TlWJmnlY)({eQnZTzu0j+B7JmhD!8s|d~eA*c$@j^ z4jXF*=O%|_-TYGg%i+wuh}O+snK$kahf{nsy3BqZyZaXS_ zZERX_8m;rA1&8?shcyWfJ49_QF@yUWsb5CCI~N-hdm=OhzN*&MJZ`5xVPCx5uVPJO zui;yLvN!6ES7UTy&D}6MY5n~%JDZmL#zFay(H{B><(sZ?ohUd2@fw{m9Wn)fNL+XD zwOF@^2ZH?RW?sg@c+j_ff(PCfzm&V>y@K_VYCK<)wBa&#%|$QW_yDp3zHbT-bBNE# zR2x4On5+?)tfJ?O4lckNyh!LP(U?nQY!^c&5387T&e`G!u>ri0)^xP9EfbWrRvm?2 zX?hxGQ@96Khq#|q=K{p;A>0NV1K_qF{Bol;S$~q|y2~z4EN4Ch@pNmYd_cwo`o-gl z^SFxfodQ|Y2NwTvj|1nBtNgM3Y7Z0%y{{KI?H9c1w3%hwF$EW-)j9k?T={lF+tsl) zu6vZg+-a*&zE>b^vAq!Fj$j$$%vOPaepcY>?&l6yAL^-}h*Nt)+=M^&9KU%YrCWTb zXt}N8$S$;Xjxjl%aPdmP#mZkwq4-8oxOinA7bgj};kAN`mkx=Gp@+wOVV>6kwqLb3yKu6}ep+wQly3+2RZ-VsO)^?{O=ACbm!;1U8-YW@KjB&D z?73*Nv>==;^>H7yeRW)CI{3en5yKUF+*Z$uzRmJ|=y=|exCYLC!C0z?+F!IzaW*8qr|H z5<+aCsYh!$eN#iNvX4Bv262R1GB_)qltPS~7CXZ6{ubJY#7`5R(1mRyJPv&r{HH(< zcHWhHS^p22!@)s+6+6Xsw0`jZ;D_oRKDt6uCM9KRUG<_LDqPY^c^v}7*JRueiQm#S zH12@JllnA`{eHI5Q~iT|-sM-p#--cdEbzg)9tRk~XESt~XSG`J1U8{W92xKws6Ux3SOhCOo69b|BJD@Pog8dPZC9Hfgho z>ci(abPMIebId

7x5bYF1>Eokcuk;7``~6YY+8*W2HGRq6a2W_x`{&ua1kr!EdJ zHVaY&uPN|(Dx_mt*m?Va;z(?yJ@V`s7x&*T0S$4^L%Q9ZS#&sjH+Ax)|iD& zR$X#Y#z(w-Yq-^H9gp_9i1v0dPX*d!$l4sk{*qVO#iD~8COSyG7mE%O@}%;?ukC}+ zg?h8s_UpIX6U|n;L2I?^X+45(abOCa@4Ye)h)Y?it+BDru*QBqV=t!z@7IUne<@+t zYl~>TCu}VVf0nI$FSJOzl70I9o$WP}7UWxu#S>}E@OTIoI}T%gHM7nBJM05T+1{S) z;=7~o^=G$7*OUALeSH`0q4U{?6?CXEMebp<9-vm>=N%&^3_<;8*-?`~WKg{o|sqwZ9 zzVkZU{VcK@1s6ge=o7q(`TCLg{P)V)jdOm6*x;!D%RS2X;SJQblkfPNYeYX}+`=bR z!N25Gtu3>DPoD20nLNOL-)LO8w}!r+NZ);v^~K7cZ?&%csE;*`hjk768{KPp56Z+b=$BwW@o|pi^&S8@u7vd7pYEqF;f&pizrt4Dk9c9(KYY z9f7-?F6D5J>XdWNYih%~jdFhBVIq+V#sM@hI~r3Jwx8`wFC$)I*+}YpPG{}c%j}%a zns^P^rQ$3iK>X@Ea=xj20j{&1e%GdS)=fdzP@Y=H|ADvg{YiuLHYi^$_kU2{87s;+ zQ2C+8>y*bh-D7r_=W<8rN5c{NQL9DRFIwO~z}qPo8Uo(VnR;zF%=fooS2c|96Dhd+ zqoZur8Ap1UUo*mm_Pod*EX{B(^q=ULQCmAbNfGJuIB>JO5eU z5Ix%*@^T+ z9mmHV+6YSc40HxYIc=nwuo_W6ypCUEa0 zq~2%+n6>_qWX;_`}krj`p^&XiH8rVz7Wm*xm(v!8&)z> zqjo_iH%Ae5f5*{{qTgRTtmuqW4{@6~CP1v+Ucz(Kp7W=N@>fgwzw{5B&+o~6M)Y#( zW4S$%*6H)qw*bLDtod^?0_MV5^UnJBGyWVnA6OI4+Q{uw_*y02!yrBZG|)%m{}X+K z<&HdUuJX(I&KlwY7-zWTT=<-HuUX2ke1qdbciJz#EAk)hj|kxeC*}*SgU1RY$&Hnu zC*h-Pw9`iO^pAIyok20%%uI(3a~Jim6?;bGC)X|YDxcl7CZ~_5_wf;G19OUb-`C&& zB-XP>=Ebc~!?`7&O<_L^zQH-BKhnv4z?miDmsA=ZcK>DjvwHj`!tZy|8g7RD!UV)v zBHUhsy;H7r*!lg_oc<#9xk&cO0o2u$Ul+DBPA088Y46}{2>Q-IvcvB71WdXUGc&jCGQR%$)=_3!3w zPGE-u|G?K#|5tl7lYLfGS@=HjvmU*J^-vFRT93WjFig}X-hL^@K;^oq?`jVDc`579 z;ny5<;g59K|6o4qYO5s4K68t4CRQwdk^M$bg=Vx?OyzN1hVk>ea|VYxZ-{OLb{nu+ z&;-9g254aV+d*>C3it=g`y-b#Y=5WDYaO=H9M3?z(t=&%xne(MBqEtmXNMi6z6R-A zLF}7&2Y7hu^OdxZuN+T{@hq%I=po9(qikQe-NafUe7n|9?^u_#*4GB;e?WNTwwf;3 zLb9*i8Dd}4R-zkA9$x=-XviLavNWw+-euFSn{y%yS>f z3D{#iFF2Sigy;tK&el~;l_V@R%#ajFf;ii%Zd@lCbpeZ=_r2gLzev5Ga+G@}iwwLI! zbNG*FEOa=Aw$dI(dkD6mzev?uzNyce%k`h<>B&8q*Coo&$77zlSREp(k>5A_X>!!Sf!E2yob zsV&t1H{U7gu@MVBKr+)#ku!l?fPrxu;y|7b}yFl1O zGuRHZBcszkhMiK8q1GwWH1R9{Hhl|x9Q4RWlw|8zW5$S=Gp<`jH1b~1$b`aClh`j# z5A$=hwo5+`euZFjuFMVY0mF_sfIHQY@jp=MK}qM>0qs1V8~wk}8nz#h+M*-C;X$25*J) z+T>vcJK#syR4Dtr9y@8Y@g3~7I4_|zFYQGd^FkWeQfHhu(>HKdtcQDY=k9tw8_&>H-e*iVjf!KqB(G~5Lzw&4{x`4b)X!?mi7 zCk0N;1Si;Nx0RMy+hG@n|26cV@^IGQHok;?_3m+{Ctc}lMAwJ)6ajxs>%XycYDVsQ z?5K;)V0<{7&yFjJUahdJ5eH4|5Lnj*o3Yq$>}u9~OiTM5+cd}LcnmhPxR-cYdKRw_ z=Bsz0UEI4yyM+)wH`ESmOnT+2#c-&cWWqq5M28{ru?_Xl)3yrK{M zs1aLZL*EWPuT!T$z5`uGfan`^=9otx^MjYOUN0Q3l=ybqBWPE2a#i(uCGTAy>oP0t zYu{D+9^l!jktMu8=2*dOE$S1k3RC%@=Hf}Cd7OVT+n!G6@nTJFct_zAhfljy+SZw` zt|Z>OlK6%-#D7!U(JuR)w{R}0_@&bYS5}JN2|76kzI_C5*dzpmNB*rp;~g&aPU;L||z$E0b*yE5OeWE02l2zZv``o}Gwr*+x$^)CCB zgTn8Jg~ukjmwppiUXGWMoLy#L1eizE81Er@`2=bkYmDGpL-R16aj^2?Q*#{Ufo~76 z4hK5rIFAiFCPl}zeIBYyeW>)Y5q$fYmRSTB7O>oFFV&N4kDbD&It z*f<{WjNRMDb_1P=-AH^~i-|f1w2@Xb&)qa@9L}r~N?(e7>MjpEDz3xlYiiB68;}f*f<+K;8FJ*+eU5e6?(~q8 zo*J00JL%MZ{ls4OJJ&z?601LM`h4+Z>G6%d=}>%ex<73CyouKI?+^op$`(;ypJaUB zMLh7OX_5h|UJ(7M(=VNPb)2QF!|n83;IoxZ$L@AVxr%dYg*LXDexqv_ zpT$IyrLe8T`UFlmUF_#bUal(;TQH=>m0i9CTZ$#r*ZG6iVj>Lwc_ehpWhBr092<4; znI9ROtXty8=*SVo~eWmDktZwI|IH2a?Uufcvf_Ytu^}S1yR@tm3tBvi{R}QF$SY6-n71O?r@c9CKB(uII(wu>B20hlE zaqfWJR;p!{?{a11UKw7wlJM_Zhkuw#_`U4}h2yUi8ylQeocafw??Z>47-oS#esq0+ z{klMod#O|TQ3THs>P&hNw++4_3g81un^vaQ{WRzWtIY4xSiVGKxv>elnSHo_H{y6N z#{lwrl zjomnS3_i+VCf}MjXbj6>4{L0)I9dLwBJQa`5!kH_4mU)e3CdN0_#kV;1 zcANj{n=MED=G}w7sSWyOy~`Kf;O}lRk1$^;nJ*(hU)0t|=Bo|!J;b-$t+63&Qb{pru(`en*M%$QnW1q~_ zHRid8i9AJXY9;i$*sq%fXPr@@>`A?}U(vqPHrhLf+H>~#>p6QOHGVC6X@w=Wj!&c= zT#q_Am=l~(4r@)N2|aM(P#^moTdnZD;K{*lc#M%52cN=sj#tL)z~&t@m^;s|jkodH zQ4#x1)UwVUPEYZ-8Qw(#?>z$VI)V3yh-uyPdu40l!1y5I^Ab(-6Rx_uKYym@#+@N& zpT$19&kUODG4yR(b891V=QKf2rq3sB0$%k%X2M?Mx-Oat+ya^adJqs=;2tw<0(18t zPin#0A^W|`GQT+8@}7)%-bu#YyTx7?_b@HtGrcEoVx9J@gU(uxKiHqezSF_yxcPWm zH=}h=#=|sGTMJv}yI|jN@qR9^&cMn)!b`f(SkQj)k=iGodvvrg1Dd1SZ|C++YTxfV z_be3te>CAtjsrn?crS>yq|2kNw(skO8E^6BT+aO+cb@<=cV57?ujlEKPIIC7{)Iet z(0`qI!gAZI&ocR(Tc4utC8Vw~Ln$*&xP<%Tq5lEtn@(w+#IybC;{AMv^`iK(h>MMZ zn@2yz{3CsjL^FF)GD72mfqQs z85ToY$DR?|I{MwZ$Dh2T&)>VM&rkg8>SE2r-TQXxBi4kWt>OFWr_wiPoqa)O*46Eq zlg~XrbMhD4S%>10Gbxg%Pu8_&zNZWR(9xrImMA^*jntl#=Fs0Zv3C(Uv}%Fy1jn$h zxRdXXPk4)CwBwxMEQcpsv?&b`pWffF5aRlBYLGSba1Ml%P)n6cYz@bMNyq|}npNC#K!Z%a$&Hq3@A9Q^a zeAeJ^I<(W_{cBU}*~b_BN@#kkom-E>o4I*^v+n4P?s^5Eu-<_|^*pY6-~$!!_|bZm zC#iZN=0#Qgse}5PlM9EaZw&g@k|DlTN8d0`I&%LKAJcvV)vJ^B3%hEZ=hP08+v+I| zWyX7brjogo{gX5AlU%m`uxp$DN}ewb4_b5JNhisg3lCazeyR&zaN?`MeQqAqX&*BB zRK$)yQu`@s-^jP`USAHcTP^!XAH?fAaKKzSYw-g5mLcD&9W)lS=aegQwF!HhaCkk@ zT;1`vQtaI0g1$&UQOPupjPoO!tA`%4v(OPlPEzr{9h?GP?Gl%q0lyf3`T%DzojDn4 z)kw|y=|k{&q3n0sq%OYe*s1|9&3q#-JLT4_YdqCb4{{mH!GynbJ`3f0Mvt_~o`l|W zK~%|EgmWsPTfE>6W#8b)QkT|QeHe4K(Z;xb8GV1Au6Xsbx@Y@5GAC%8_?4e~9DkA` zn}d#o#Ag}w5U^V~hVP6%$nWg4SoAM`wu$b@_~RA){TJR+XD6`J4~c!rNcP=$0n6ZQ zixny0vTWneXAVS{^wpSz0e(g+96yNk-<|%3=RjYZOBVDnO@S?eIRWrqke>sl3Cmvp zsC@X8Yu~_TV+->jo%XZ?{n^d3=Gd1y_QZ#Sc(<71p?Y2pX5p_{oy~R+L$LoGXngEwu<=zl+lcq9M6mIJp6t?^Xmn|pF!s^?UkU4TN|5}F{0{zxIeDj$A~?~ zcivRzL)%A zoD&aatQ3Au&5b)RM0uej{Jy+TzaOZ>Q2Fs>l#EXP)&d1oV znD?yKGWf#s8q^-*HPJZ7$r>qit&uG+!@oq5{Rm*s8WQu_A1kx<`1zT0X+3DA>+Qs; zLF*#pe6~}^*^WBnzdG&JuJS}8Q{aE4RFnH&@Y5#Fqsqgp z?9nvt^6(;t5AL`CPs3+=AiSs`M85!^zc1oE#zEmPo4zpd$4Fzj&P?m{zev{eLYMy$ z@QMNBK_16e;VYf=b%fu+?*dl!1gnR_%D*FM1$bW%!6gtQTxN9GmC=q2cwq3qBeX@r z_qOlxCsy|P>NNQl&UE}E*V{7+657N@&(M3wO4dNR>!%Ewtk zc?$WhChaQ|G0ONH$3Ie?HOT)D2o79_*3_UfRjx8z9_=5l-DK$|eP>IO?^Ko3w}zXo z&`X#~A9TBocm-a6wfc_y$9GD%d?dfhmCt1>sqMp?pCVp`z7g4MY37e;47by`6QBiF zi2bZgr@hte`4qK(%-Kon$4yCV=V{b`GiiOcF~YL;{8+#W#*>S0 zAfBSO)hyI*N*9G6Aej6rvwGr>%~hu-x$j=1lb&~HR-bUU`Qs~->DJ5J)0hMJ$JJ86 zUuy`~%LefDf2MhI=KFI8l#S%~U+>S^d!R4>k~;?TDIM`&=B|7w#k41WX@>omiXS8R z@pyEUk9~%-?{N4aYg7Jco+|YD2!|BV`tglpS+~c2>>tVWeSe29=vLY*o=hk)%{+n6 z|1PtNVy&6NaPofi1OD?Ko0Uv2Dov(;bb|7Mb_(-umxKS=fo}#R#rtIIex+=1Ugt8)?PXG?mda!$Z=ck!EK+#^%G*VGxLW|dNrGSsIVUjaTnXoE zgU?-tI)4h~%jM2`%H?cM#VYyVo$Kc05uDkD!Sm?O9fjgh3O2@#8K(E*(*|~%AuTzc zZL_tO&H}9^vFJ1Vv)#mGA&p>J(;)Z3+;VZ$tJdQsF9lhL1H3UnzryEPB$uShS%yHK zTSjr}gC{HA8B{jqv@XkquW)$PMi;L-#l@>mjkWV#?Q!(|Mw}tV^LJ(tH-PPeM9!T@ z^m#7$SEB7qqlB&_eU79D2BpuI^w6O6nMilZNvJnf7kleY$V?R#4Q7SyO)V>JG%9R8 z0om!PbVRGLgTyC#2nL$=MXOS0zmvo#Y@)OlmTiX9dKhlBc<`-8xyMu}HW{Ezsh7mB zfy?II8LM+f^rlOP=fHUPj{F?O2h9<9*}?Pilb3=y9@$BM&S@hiZA7SzNSlc`AKq{~ z-y3xFluh13)-&i@{_Lu7P?-fK!?{dRwB4HKDhL1kD1+}hyitpcJMPl+>ruyUdOGy! zo)F)ADJTB(f=mGRXgcur<*-|;DdKgW=q%C_iGNJppIu37yNLZeLC&~5jhH}=E&mgg z4<8j6C*Znz2i8~KPeq7*fOgY*a=|gyn!AS;6y6;3)%;T4f0=U!+F6tTa@~t|#(uzc zN8FJwp$GWZ4)`M|XW67&FSnH*oYoQ3;PTuZb;nO%1@ro>lVSgLr_p>i|9I@i!E+kh zafH2_lD%u>_pV$1cj{Naq|W_trn@Do&UBRye^pM0Un08Kz@T*peW;_y2OfM~^wR3? zNw8ebT2G0H_|%in2d7%6`MY4F>10*eDXlznAf@Yy3S ze*oMLwE=(ofR%%ffV<;v+#T<-!!bPv1JE?joTP6UU`g@-bgps25nf}l^${KZow7HU zJA2~}g`cQiA(f9a&dJx=B6l~OaySDIFg#b<&2BuzwlO2q4m{r=SRScNNa`2G<$Jkt zwdVF+K=$2+9eI2MS*kvu=44HUibY}kGMLS}?gOE2I96_>?q6RFX8qx2u?1Bya%@bo z9tPkcf@xIlYj|0AR?hfzD)t(m^`WojL!OBYg=zRrFBHs>} zU-@>^fOZ}$MH}%!bz(eUE9`1Y&(qv)dxoUfy3%p>?GHEF*MZ&Ig{MxZzj#cWmYxy`mwOa>VI7qi0KSG^@V+ZPvi#}n!+EbOT^5ghK_V*{c z&p-10ug(nk%Ychkd<0j)zAWs`6p0Sg(G6C+^qS832XqZ5{!5+54WMn&E}nxqgXsgM z&332hDsASV^*)K-I|~Z3avpPeX>CuzEy%+A!7DS1@K-U>ny3Qkx zE84~9U`5e_%)76#uVC8CxVxAi<44A!D>{aIja?p}3I7(=#E*E{{<&QIS!yT4_kcrt zX4WbF@=K+fRr4D=>&cxJspnvNy6lBPJdzs#fIxr0hOAp{|6ky-BiGq7%%9_-u5s5J zj9;UzAK|ISzBq`disr|0)eAz)Vv3d(3eIt#*@HHHv~_dy~M-e{^gId{kgdBka6Ivy*qOt@+5uh4%W44u{Cx(eWTlGH9Jo~ z!R)-;FyTAzKRs&bDMa!g>6SddL4d+)30f#lFhC<@iZ4l#k^q!g08lqotBv#6z?~A4vaO zZKpe<(~Ovi|Bn8x2l^iADW^k+&(ghS8S$Y-{cF!F|R6d6?>x4CXQZVi`xEU7!U_yJCM~ zn&8kb^vM_`TW4e(kTW4;Vmz~>(B;#-2yKVX$e}O1kHQ|)XIx5n@TQCxx>p)!1^ds+ z%cf;)tFF#1_zpGO|8(1Xi9R`a9Xdd#UBue+hJB__N4qy>Jksu7m+Ts*@|_|lJtcC| zKYyllif;XdKOD8|q7jZy6QO=M^YdM2e&YH0sl(al5b*UHi;f826Ftg)IN*jY)hQgJ z4))eh`juZ5_!_`>i(*pFH4jXG3GV1?k<9-w&nw$A_J23XzKYk7kzYezBX1k%*b6V| zS9guz^Kc#UwU5f($4V8Oz;f=&Vqe$A!o0^p1GX~{+?+E@Z>3aL1%-39*r;BihIe~pPA9p^NPK~tleX8<*4%9UwE*XqSmQbAHI9@ecbE>Icf8tdsB87E1ieN*nJ1 zlm$Wm8@&?8D5qj%9tlw!|M*d zKykjF{ji_q1cndpr%~Exq~wc-NWKXE+U7W`m2y|DkmvoQeee{H z#9gZadAT#`PMT9!ddNN3uJnM*j??n^JPTo<>GV5$#;BD z<$P0NJ(y!{_JIIeYm&@O{Ic51G_Sx#;4}0N8-6hmLqpRM4}oxk2|Sfd-~Q#-+18Q$ zDTu$B&6n8XHQ_0iPhXhn@+>q< zwP*OQNX=u2$(k$+#gZPbn@D;BI{o1D1$GOGXQ+*Z8Qclsx;3 z0T;jFv~m02RD2-J&8Ng>wlw-I+dL5u!LjNasEucj^;r2ZCE-Tf z=|A|JO-}}MI?fzyqUH7#GPY;O(tH_HtdQPpzdIRws5P^~*UE7i#!O&7xy%>GoL$Cy zw^V;l-MjBhdV&d=zr;#g?|jaF_lHX|@U`JfEXk~>Tta&~SytCdxRS~i8_hhBc(y^daW6^GTuAt$*ADn6O_!xnDXIOdWWZyWoj4Iibr8r#|-A zsLBTPLGY*V6YpB}hU-iUdlmaI;PR^gdn3@7dk9ZDcH%jIO;m5@c`BwK`2GvdEyO+| zS)m(enAWV*F0^ph9s481erl-i(GJj7j_1g>d%`Ef_wtvk3$5$)^HG-l2!r-MbIt4Q z+o%e05C@ehlrn!s8Rd8G5yxL9-y;vV*-rb)rz&EwBt7s)vVrhh=wyZCP88qZKm4W5 za{$|KRsIT`LwTN)@;gsb<&Tr{tyCWS&iRI4i#k5@EXN-4iN5^43%Jh39Q_{n&J7;5 z27dme=;dj?k7Iusv^P!Md-{{@)4rIV7(PG4@pAOWjNiD-4y4X!pPB40TARuDYODEv z?sWJE9FKScPCeYus}3vQ#07#Q01u)8<2`Icp%wpmui`VI&t$*9G?z}__WU(}kHJ|l zPTqni5fiVR?*KvX3m+lqdl}nwp#P6j+Dz^T#~`4-JF>j$?=-}0lK!f4Z%KdA7Om+T zv1ME8d=qD(kNq{cZw2+)o%W}{=I@X>>CNaL?MsHI@)=&G?vvfm?H{>c1k;q$uW9*y z>D@N)G{=aGa-2mTxAVOoffe)@Ul*7jq&4)m_^EU0cyoH=r)7Ty1il`YLptq<%U>Dq zNupt?$w{V(2aL_U9~)hC_ifqFPW|Yh`tYj-9l-%@bI!(`s0nIIs7MJtuq`O%gl^oq>u6cscwepEYMx5&U1K;fsKM<5FMu%Y7ZlTFo_`91k*a z+z5{U_r>jd_c>|3BQ@*0ly;>n?S*4hTC*$d;3$=Li7RcVwD(y`W4~ZD_HwV!0zZUx z_wp7MD{NA+&j;I}4H6sg9@tk``Ba>7oDEWcQ4e)6j>-h$p3X>5N=(gE6JGw7_~)o( zoIS&e(|Z%!mtDqwoYCe&(5})E+~y8yvxM3V(0U17?X{kZD%&Alc#C7CPBqa5@EL)m zx{KG;*=;xWcH58k!6$o%{V4Sj{6G9b`Fq(<80-XXr{8aE-^=>sdv`0}6pf-IcGDm3ZGZ;szoAn5Y!P=O@-9q9Okw(uQ)c$Vv{iFKVC^i61)JM=O z#DZE*ePzEne9xEqT=>Ot-R6LR1Vnr8Q z>HT}+W6574c3aZsf_sAdCJsvbHl?kTy7Q>+m4Y8H5?jiE#LnHmrO-;t9q$ z-~TSr;Oou3Ie%U#d*7zvRz}J;oH`;`7BM-m`Ixc?#||ue#h|k8K0HWe_k3E*mHlqG z$@<*Kw0)>nvzAHu?@IZ}uJVpO18^S3Y`Dy#hHH4fOv9ze>^z`K5W}MJ8i@W2(%S*oPg4W>OPicz~9Ys zl9RWEX^l+aGnbkUdz|b=f3(9pk>GUR=#EVJd9U+lVRra$6^$oAX&*z6CZHTaHh^D9tJMMCnH24`X+TpQUwnwSEW3^$WyTv992l-3oq-NQRh4I5BjJ zmuUy!f_TN3J-e52X1n-pU3Q|zKG0vHykZ*LNb2t}>h}VwTOjy!B*{J(P`z@|7lH>{ zFhtvvs0{cG_;}w#^Sh49Y(KR)S0-byUfnv4%Ax+|T7NF@Marum;u~$J_;O_+tBi4d z1O87yBMO8@R8wAM_ztfBX&PVXZ(jIUx1LKWJm2;=AO8o9j3!AIj;v*0m(}`O8?kJj zqP535Da6**d-euMZdwAmGQO)XWF$RKKfDaX%dORgzLeIRe9U)Oa$_0CKUUxi7Y8I3aU6Eua`(B@>t|l+GozE%PVf-a{}&tom37LpJ}wbuJ9y~h z8pL`^!K`FATO-3n^WrC9I>R8Uvk15nmQMqB)mLua1HqR zIC%b^+}%0A2ENPN#*>VIv&YmT_BnxXKINKooCQ|$Sq7D@S<%N}azEhjD^;yw`G z?RD`>(BC_FnPYGeEP?ldD<{R;Sx%TlbMV8z1hbQfzQPW-SmMt(^xMYI?9;dPd9+f? z2)B;BIlOokwRIW1Q%dO{Ku5z_f4l!b;OIMR=8?pF~2G;&!yHCnO?hI&)**ETMw7##EF@^}PYcEt~5O;8M=X(2t638K| zb8vth13B?YX)DP1V6{EB^VST~LjnVoL!FeAn@;PaBx+iXe1Bx6?G28kJ+in0=UIT^ zrPP0{-6-u}XYIn5aAo2VT2o3cYr^y zyfaxJ+-d7k!Z}1wSZ86(%0QOfeXHW*;_@x{iNRgNCQr9LhW6MteZBn)p%3sYxmjCp zpL7{fhcE~(e`JcPemz;L=#urXM zdgGikj@~$NoR8tfvQ?*o-!%fe1_ySrTN!qR0=s$V6Z{IUB-e$j0t!N3yu$tCnontCr+SQ(R8?kSjJa^b%9NiAS+?pcu1RormNBg)A z>i%Bf1etAvEB&jk^hu)uzgro8F-mvtrNmt2uM+qnz0H;0OzG90l{V6`1_4WTPffvc zguwE;+&Wx5U>(l8Mqo*D+Ia%YdDxS-fGvE=G#xbO8CR4>Ym1PzS>?)^PMPNZ*R8q_s!>d@_X}n+CQ`DeZ7_6i_NY! zCwdR&?vhTTa&4LXUaY70t1Yz`_wc${%hnz1fw%#g(qk zPNMA3ccQC*f2J~%e8dmB%E0fE?ke*;D&yRRUpUURyh`t1yvOyeUs4&K7x)JqRPI4n zxx1yDHbl8LSGhZ=T&=4de#WJQOTKtC-^+RUs6t*ldNh%{d-OG$`^4u9EzBR*p*F&A z8#tdB?ziWb=GWR6sN76S<26F`XgK)JbN#j-v8p_)?Ae5ir;7f!kP-cWmUlS8scA*RNXk8!sX|+}_HTLv9n@j(fbRTJl*P~_wAXX>DINLJl&c@<$j;e?-lqS?98aW0$(h@N$2TS z1HIpxQFO~qhXS5F9dgqxuPc4SQ%7(7VB66fmp!dwnbn@J&Q3vF`0fMYR?ry0%{*Jt zml+Oyxt8cltjU^vmC%=H6Vn#J8T18k27PIWsaR(-qHQ+deoyJa94|T)o(9}^EEax& zXdV3Yzu+2I^mD^`eRsd&(5N<{QLBkYwPkR2v}V^p8s*g0W!>UTWP>aHk6J!`?s5Jc zE_z548U_C@$K}`X{o27?JhnDhJHOCCqq=P;PTPj#{P}$vSNrsPFZX9LhTJ}-{hOjO ze2&IYO}M-FxcpvixTej%k;*3=oKE}oY|sUI-{~rM=(INbYg8`c%a=Qa%B`dK!03Fr zhbOezU!ZcDKVR+`f!$}0Ys<`>2)m}FHJ_dr?NYKo-!Crj=K1+LzEP(B<9msb>i=x| zpDI=VXT98?i>2$v8GxCSUOqaX4jtSVC=dSg+_(hkS5P{9obNeqVEQylhn?r6uJk5X z`y6{~!q7P7qv@Xvr>rUUT8^Kb7j>ma*W-x{;>=m!K8zR~(24oFzr4O+6=KyAuYx)+ zN{l~0+ak7QdQnznS?q_ju6PaX5%40#TGt+DA5_Xd@M}M@XEQEthD=k1_2cjx&RI$G zSGw(KhhOJ7f6b@o`Hfp>e!IVt=QmLPA}NP-=;%@IyTWfc?VU?y{3vsJp5ItNWwukD zWuxPm0i%FaQ0p)`~aoYGb<=^MZ zPrxU;Yc3rg2WjAO2Bx>#ns+_N4T|cC%-e7FXAgSv?{CmM=IiJ5ZW6z<#LC4`%*D)_ zBV+ze|C_w`opj&@r;ooFl()vkD=j0Oy@cMI)A?8<&93q7rMfv^CRBGOm2EIpS)A23 z(fbIh3%kgPF4%%@cTip6Da5dJc!~nyDV%a`RK{5su&>+VD*GO_|Ddbvcc^T)lzr1x z?f{kB<0^N9l*63vb(PyasJ*XHx$V;4tFCf8VaMVc%hgg2?LC*Xd5MBYDSpaTZW@)t zUSI7hQy{#ZQ)a4^xn1G`ETd=l-D5Y-c;o1eTj8=;??dRf3~n$pR7#HwkE z?)fEd$dcGf+XH#+X619@Vz$fZv5&7&F{eDqkr~7{*@S!1@x_Qg$n?%rs(f4QEm!oe zlGgtjsH^vIKJri|E%`d-pE^YTi;}-gYqw7vl)sSjpGJN{#SQjLOphSP^g!I!Wctc) z9nLyB#o};sV<45>Sd23ReVrXhEz2x3R@%POmOkBFW&0!5wr|SqeXv#Xn?3e$nj>0! zj}(c$)^(!}N?S>*I=slPrC(>bUHQ{ktYT^6Zo!PQf*cLqeORqc=!=_N=|Sq>tC9y> z)&q|huwQMqBY?f{hGMIc<^#M%>0Ro)p*OlSt(j|WZ)&GKmf$>x+B-?>uo?e**4X1| zK28sJ*k`A<+LO!<`}db^O;<)b>}vYGH19CS6I*j)0ozIi1ph7^q2L?#I5PN>0W$d1 zt^mu8Rm+>K2ip}sKB(PlA4lcurrlxpQXd@I`SlN8XJ4CjryEHZZCAQ}5gz*>)He!+2mmvjE@ly>Ih zezT4G2K$7N_=Q1UWs2sO)>EaN?N!6S+`nJv_)!OH3#>{iPirLu*lDzO%Bai*1UvNa zB!bNc`FPaDfeKnz;^zi!pHA)8Q(8c93-pQLFTYRwem12$I*R#JZtBeeD@1Kq-PmMZ zIbw0Tdm+`57SYx@ZWtf#z8V)EQ@x1D`WVgX@Jhnmm(hpYL#+}=LT z>_eGjXfB&4W%`N?e+DrknompjZNE5E1e+7uvjsTgK>NUJur+zAJipJ5BRJ!XY^N*j zXiED5^>qQ!$*;en#`Q;{FLUXA3XK!7A^&o}%`|orpRcXua|HMeXw03j<>&I@58q^& z0Q7G|c|N_L(kr7K_ABrk=_-Gpl!qMF>?;2cN{1auWv#3qkw3pIaP!eVIEwbcIkfi- zS3R5ReU9pFFUzNOeW>u|-=U*)rFVR&_zuwY1&m{t@Y-E0Tdj2VuO|>ez3VPbK zyp!+1=+WgWPBg7Suf+cWjU9fI!Yf!me!@NVF1p(IF?6-8%%Q98cEb>Kv!u+StL=7p zhU4uhcTjzZ|UBx{aMORmTgs#E{mgwq}4qaVYo~Nte zNo$P9?P{W{we+hb8vAkdb@+!v(^tqGMIYwr>!c?Nn6}QQIRTx;nH=aL(^rxsF3@0G zx6angZtOq%VwwZ&`3ECA(}hHDKclNXKb^_}59nHtJ&o4T?=RSzzMAOmOrp2H8m89t zi5`Uu^hl5G-~v6~#`pkZ&b035a+RB-OrH<2Lk%^@<%Bb^zuRPgtGfqD%b@Wz zwXe6kKO3|jim>c#l~Z4vX>4=)6#uZxY+`-H1nTFRI_%f}w5K<)2Xi`?r0B>bpox=@5q>j$(V`+zjgmSXgN3z_qrZR5*~_l z_5Gq%@d!z+&3+enwS2w(sPG&${LSTkz{x-P`hK?6t|8iEz4v-9R;W(=!bIH3KU47w zxJT&I9@wKrTbRc763@`IdYZp*oUK6@}E$k9vi!veYa;pWgU1)91 zzKVDeqNP68U3S|sy*+cZspu`qk5x};?U~uv6TO|)WZkk;(N3hDMD(G1Jm{g&;CPpP z(@sT$zc!*hbHmO&4aWPiuk`a=fd;?xl4=L~4P9(W{kF387WFPSSUpsKV<1*i4gtv0!xtb5&%zmHRe(u+H zHcI{QzOY-}Eu?iY)5zOi;hyDe7d?0CZ+>6VXLY}%$2J7FfX4uCVz|;bb|3EFhqPuF z?saF}Gn<{#(Es_r9-a@;?PHyYudPU*Y9{2z__*?v(Vu{s(%E zJ&HO%d|%OP(CQk*2vdHl_AO5mt#--954*n6^8TA_vr;8B)kNs|H7yXYJaGPw>ZG^7kM<;p61*U}>ID7)t*3l;-(_q2%v(^*o<2l>Gg= zK2ZK1%qM*3rvE!W;kJ=(`TLXc2Ziq+nLp@%ZyM=B@CLznci$=0&v7pP zV1n=mXHuULWA$jtr!tviUHrix9^0CJc+UQ8vFHv?p>=tqjOn!_$Un^!*V{p&f%h!T z^96h0OO?JAkap#JnY*ZMmSu?6zH%tf6TG7xnI~vkxR!Z>6NDcCZxe9w1HV6QYx->A zv7dJF1EBwIegJ&{f0CG^_yMPl8XDuI8$YT~s1bhPGtcMwfj@r?Kkzi-=ajAId+ou< z^1fhv1@i^|c!!GB6jpoz`UAQE-T{08t-H+C)Fhz3rCoBJU~O4O-Cbq91osn=>7M(p3H&mmXjO)d39y ztek$Le-mU)ppPj3SLt7DkbWRe^;$Be`}-2XsuqB95B&yT#TaN>NS z>F&G--c>aH#zAuVFQv|PL(uJji*DD5oP8IS4+z~plj_{_qmR;Sr|nhmDtbLp#&@aE z`6xX%uYD*rzq5+Z&~+`5`4!tfb=vp7_j-=jBJb{fuV-g-+zH$vg#T>iZ#W=#W^tB< zy9qc~S>u$AtC%>5u^8cdfz51Z=%pw89HER?{J{?P(~`U}pnR(!4l;0IB*OPahEcz} z-rJqsW^5(;-fjA#_n5O`rzvqgpg%+zlDQwb)hUO#?)q~k(ZQe3HdeFWO;wiTiavsv ziEWh%zB9B%na>iuu6LcmxMNAEKDP|nXSZJ&_c@IF|7`jWzJYIr={qCj{sCb8S%TY5 z;)ekG5r(0}jRKr+*0vEWjf@-Sfbk@%Hy6IP5DPcbobgXfPNQ{m75oU@82+ad8-cz$V44Vfd%bACQoePllCH0|dVL(b=_0rPnrmGe{D z_S}3f&cG+zbBCbU)%MMeP(K7l#6x`+Z~z{2U;&*p#)$EK{{=NRjPsz}r-be2&Edb; z^JJ`q13beJuf&;aDziZDExaXuL=__w(L&3 z7}EyVn4UbO){cpD4_XW5vKD^7_x0>NtRaaf`yJ}rO_6`HPpUKN|6J)C_{aI|hlSt{ zc*?l_p02(K^#SD^+i&oXkh^a-{$h*Il*bAp#D{9ylSjMOSgEwn_24Ik>XyoP@D2Am zdtKI2MAp(bUdXSre@UJ$d0(SEob7+yUMm+kIk5K&@26m|aLngvjkwq4dAW6|@&iPN zoppK3ySuY5{D*ak^5Y19+#qE?Ze5otG(%LkdqhV@K@MIlxa-Xm8?v)r*R*eIIwo=>4}ZsP|iNKMm)Zl>cq` z>!)!o!M!N@&H>jN8!u}N`dE(fmPlk8C9WIR8gPUWQM_U;Jt5E3(X*a@Vfsy^UjzLn z(eGjCz+%zNWRF(dRJxk$O!K~x)soT7SxED&wjVAl%-K5JH&^kSeti+kV~Mb*?4RML zvd-gh-(qP6&QDPX<(qGyvPP8lF77^S#f~n%NOA~Hpyp4 zQJFa>6%4TDyjAK4w4v+&S?VvK`b9Dp=Zx-p>f2mOAEm{u59Mx&R+?N+9bFm_8Suto zNUCtx?R3&%1 z+eVxf&zZ%KXTp z0tYwjCfwlQG_TMVk9M>5Ed9Tl*8T?*f_&E3Y_w+9k6w{R?8fCIT4>LPIhFv*g!Dzs zzZ)F4r6q$iVLl@=7V(|s;ogH;-g}WQ8_##wYnHbD5-Zs0H;Y%_YI)b*N-|q3uZL|% z=g%AifLGLkm%39B$KB89%8V)H*f&cQXQd}(;siGb-tS)b(YiCG?m<`Gkkq}=Rd?SI zb#X@IiGDLP|CoUFs?PUVCfpRw*LnFmwcY~~-yC($fFCwvtz8{n3%FQ@vDEg3TWKDb z+77Lq!uLBA&LduC2Y5orXFpq?OqZ}fq+8Rh-|4(HJ;zY^mVI^5{FP`c`e+aPMv(l4 zJe~8dw2)3T-WQ~FtSvw8qLExf^#94G@vDjc!>*ynHWIYgi8rlHcGz{X4*N5QlpPP& z_?OtXK+$lBoh6mKj1yyI~HKG4~@w9Y-$Pw@ZG9ag^gpFQl@pKwgeVw_nl zbG7kPY6JWL$%FfPkItVT-}SbV7apVZz;T|OtbM1X|M9TG=XzDXt?suW2duJxcUbvv zVP6>V!xl?q;CE2@m`PeE`(Af^^Hr70U0t2>f9g@`0f{*P``byy1=dql%I_fV?{WN} zmBB20cFY_i@7I*)mo_ztu{@l^?!sZcoZgF?b&;Dqe*(aSA>tvr)@Xh37-)GuB z_HpD&9 zy6u@XUi4Kb8QJM8{4-^|uk*bYlrIPTq6wBwA0#}E^7wy0pZO#?28AA0{-yb@WNaGf zXPWOv;eIjuI_|b_(G+ZPcLm?pDJ?GWHY5#Yk*<4HI$*Sb#a+`KeEk@krqWREDk|s9X&tq>&ei65)aEOYa zxNiskAel_Vrjg~r=t4VmjI2SzmEQxNOGGmo(MjA7o%Qv@e70Z6bg!H7zT@ZUD#<&< z{!taZo6L5RYjZSh<@E}0LSELjHoG6T_pzm!dfIP=LSL8rJm#7bMPt?6w%NA$*+82o z%3Z-wXGf-h_~t;oBjZT`FXz7lI6-GK?RwbOblV2#iw+yigy|=_x$=trS(NXr7QG9V z4^nwgY*FS#qC>#J<>L3VfOv*F!b#=f?g~mPCy$BO3U+qDQ@uM`CK6bKyr@#sPf` z##|_4v5D4iukc#9L;r%<{Q@sM4|>`g%|NE`r@HO(QC=%xDm&D|)H2g4kFvGqGW%~* z{$?rP{4wS0sQjO${Pj}4`(w)2Q~3v^{MXpeYPY@9T|V5JD<3wM@8X{dPkD&Sp?pay zSsF<76cib%Jl`S4os*O*f2Wi$KT4H{Pr`uFQ{c3ZvXe+|Kz)?|p_C7QO!)>^`Bo`k zpsP59PWgb8Z=|&oq4I04Rr432`CCWx0=(kP3(j<42iGOAAUarFTe{wEDpC8igz_%! zRybGuMizs1-x^Z*$xr(Xd+i|hd?;V%0;)5M_Vx>u9(T1hxm(5HNKyJ4SNf+Z9d_3D z0!O&gCr~=2;J=1bKwg8l1lLn%41@-b`t8C{2&H*(E|t zs=M>FWIDz}c@wFAJ(aDL`ejt+RKZ<|0AYrIp%ZlL)ngYS<; zpsVP!wBzXx?pt@Kq7zInqsoRVbNEf>$w#r@jOo_V;=2TT+-nc_XAOzHiZ=iFZ97}* zdjCDWJHD9+M%hZrdyvu!rM?k5nDd!$P+vmBR9{}{3T6+zu^mF|F z0uSSRClJ0paGa0%V%+`5dF5qTSEJV3key}^EATBFR!{~XOD`Kq_*yF4Ol>ZJUSDv` zMa3$%T1ap=(m&PzW)|n>OG=Ba=V8BQw6h=Gr>;{n*?YKSZ4?f;H*y_YGT;3E3omgDkz(Vt8DSE!F+`j(ISJu%#FZyQ%Ipua)s?}bO`Z(RCoP#ed1 z;9qj!c;EHA|4_l{WsHyg&Rk~s zUSGeO7T>-(P2Wv5(=S55diu@%+;>y+=?6G?1rCpjZyK~UXQY;O{!gjUvP!>nInHFN zoI4Zv2FZlhpNL-HTejZbIYRbu%(TYSTB_Do=GOju-?DS<8NBva+HZYJ`5t7xphVs0 zFkSO?uFTi5RR54Gy+P6u$9*F8AL}nn{a@zl|I%Tq&riG3epRf}o^qwV5m0GQxY9NU zRT^yI03W}=XCC(8=zKp$Nk4G6w$7EVOFFGDAN8x?tAwK`x$*;&@0a{9;x4f(Uz7X- z$-i9mH|X2bv=;z(FTp(u|I&lj?p3mO79L^kZ2Xp5JJmEUqAyhkh<41AdE2}qm_3`u zh;uN8snKp@+`#i&sN4s`^7H$9D*HqD&7$;elKvp2fyT_IIv)}~h5g38t~&Qo{td7T zr1W}8KY0BJtN(^eta~VL4(?b}-ZHH)S7$w?*SXfw9O}Oz?||!UdY?`8>Zsnsu6oO< z9(;e4BcAPW^{r);b|2&pN^6!h;E+X>zK3w@Y)@e>Z6T#i$C-@_=OWhdcULH1CAh~| zH#|SKZ&EsJFO!JlsO8(afzoTGzwk-aK>dYJ473GaKIHo5Y$_Y0v`MbCFRcjX_RZ5D z^fN7a?1$2mGRL2zv`sWOyNG5Sq+e*AqH%n8lV}`l z63z>6&z&KFM#BHnB;lQL2hS5epM7ahB0i$j<@;sR2MYhd|4byhITzCzZNTqEMB4Sc z+5_*8cK+q^aUXHPeDsREZ+plokGfz}xgsBL4P#s*c_UXSo~4$?772IS3w78Zcae};J4{Z7DG zHZl-SmO{P`5se7wD|Y#{Y3xe{^Wsh6uJ2{g<5z)4Ti{jWsEE-1r+z}tgntUZzK-vG z;QXUDe3X*)9bJ7y@jHOc?0$8|q5M57`;-I1*EC7ncXPX{OvBwGrxPxo80qA58^1cw z%;_r-o5d5mFjE_AW%&EWA9{gnT{vwoTdw%1CTbV+Kk>hq|M7$7zt%PXC->tVsV#G) z`Txo4{QSGeKHD|-u_KJVY>2VfxyD{{gt1>NW1shbF!nbN4;*`)YwX#>A3yf59bxPz zxW?Xggt2o>hCyTZyT<<1;i1PqT*lr##Mmo7;n*i?svi%?*hk3N{W5kB>!p(EUmVW+ zq#A1cpE|<$?auu8H{7lGdGqQLt4!{e6-VI9bhVw5^C(YjWCk%#5!8gN7+E;G zba*s^q2>H%oek|r=-c3nwLIEw!{>Enf@5^Dp7;^grzqW*2E8YI({(;;{zlV&UTDJq zHegNr-uRO$Bl%v+_oS8)3}&X^;k7a|y=-H$^e3=Gj4d(|Ya9B>dWq{DH^5)0{}uFq zBJNun-5h_TX4d|!-V2+xtF0gM84UaBwGL=o)1F@Fxsn{G`Mn$9>#~P^|;2!1zLf2p{K&wgR_+VDC@_N9!REBqmyYLrFR$k%(bVFF%QwV zx{DW@DC5yvO_X~-M)f*7*oFnP5_#LG9P&JRC)*mqSJsu(=L0e2ClUSwU!XGheirqU zFWZx8yoH9>jK}xy_86CDZi>RwIB>x*a)pI1J&6Tt;{ckh!^_Iy082w-7O7E2a-;D0x-5pi` z=SBAKUK3IOp}SgVC>mZZy0KLR8^ALdhy9FZ!q<_9X)rRjJfHz76 zXWsLn!W(BZ-cV(#!xgs2@MbFYJMAv7mt$HK8Y?(vdxN&zj%d1t*ulu36kBfN88Owf zF}~dXHm#rUoBMa)r1kIq7OkP8UALz_sYRLN?^X2nN3q4G@7|^9AKmyVb6v}==8tGS zkDqYs{jlZM27fW`1f0(d0L z5kK4Ob)VOc^O1c+;kkdUv~%^`cvfI*N9k7v5}7q2EHH zp^%TajMr>+Y+~{7=G22 z?|F5`fxeGI-#ZmQr-w(WbIs_Yk->=K-B{mG>9A=DYTC*E@Ne1PSozzH@?7C;1mm0% zeuC|d;S;Gy=J+u2?Q!aJ*r)m&=p>n+`uzs`ukEz!a=ctLhv{xrVD>@UtKIVUT%G)0O6(hhjGru|yCiM#^+9iA|6GxQY73Kg1BtEaA9p3w^Ys0@;ZH81FC<#sV_#H9bS0EX!zb-yzGV8u2Kd_S zu!{n%>FpEx`ZRs1od~yD%}3dN+oo(yhl~!ppJ01pTQVI-(Z^*x&n2U$g*c3N)^T^d6x1p!ovz<$&i&rj_1Uq3Mekndqyk1nLczLJ;yvr@K?6#xfnV}csl+)XNXN5&3Pr(%7wC4j+V7Dr>2WzIwCfG zqtRy1cD+xf_n5r@fZm(veWoivO7Ao1eMEQ@ud!z6)9D*y=^NNzGi0q{omH0?^SXj; zhqX2L_Tat<;&_q_7x8rQGhrmGg(F+ikje`tB2_;!(n zsC~eCq6^lb2X!>oiZeCKQ=Lpl&yK(*Io%X)84{-NbmU>$w&A~*FYbJQpnT!LbOg~{ zjHT=SkC!h-909IdJMwT{a|F09c>kmFRig`@^Ns+|-*qT>-a7<5p#!gD{o|Ajuh;69 z^t8%_)-=LLb^6fj^v5okrZ)Wd^6G_y)@h?_olbuL_8ApdPG#klIHqTRQ*V#Jmb{&asAb~ zxSc9KOE<@&ImG%)<$LWsK0i(Hc}bX_&Gch@P2*@2SiiX}xUb9lvr6LRkX`48EqN&drUW>o(3ofP@+lmD=5#rqd-SeQvbmXuh@kk>FK$ZQywV^>-! zwk(7rNw!#I<9*iTc8)|oTK^5O2|*m*STe16vsT;T(fsm1AkPsw*^y-bTpr?zsQ<$a_~ppgH{^evt8Bge zpPbVvsIn3H-zd+|iHv(hIAOi(_;!~a(_3sjvEFCP|E2VQj{HZtIR1y#8OuER#(a4$ z$c>43I9H$AT;oo<(l^Ned*#_H&j;nXO`hB3xksLdDx|3@21wtK*Tte0|XQ^~4Iw>yk@*a;+~sIm0e8s)=Y7w>-hACUh6@%e)P z_wo8t|3j2+$baYn>g0bn{SV9kH6Jr?*bmjNbM}$qOT2;jMkm%6?7y6~>6}Bre?+6M z;(Hr}Kj#ttoGS0IuK~~Or?jZ6%r<&&cD--c6)XUQH;4zUqx5J^iS;QX!uk=6t1jHb z@mhVvt0Dh{x)y?Y3$JmEPal+j3gw?j`PHlwqw(vMU!UYW&j~Ho`IP6WZAoJx&fKByTBIo@ZJ z_#&?(98fVqv&tG??TZo*^m(>_RIt?t(U}KtQ*;KlV@>xcSr_sf>rJ3z)MoHmsbAtS z<@6@4N0!^KcvsQTdZD2q!v8H}6kfT>*uVR}l;X_;Y4!Ab)Ke=3Pq@nbfu?09hlgi= zpnEb2pNc8&J2R2~K`NB-Al5x}cJZH@*w0-Twws|;OS)Te;RxpUoE$D`ED9F_qKd|#JTtUf2aE>e0QMk<5M4_`&d4N z?&Ix4AFunkY5CB)kMM1I-A5aZmwhk0bRXd(=su2h={}x6qQcz0cM*k>O_t`f=+~GLru|l%;B>iV*c{D@E@YTLqFOM z4b+D?>*M?4^Y%3w=U^SlpO=1ANAd`z?WF!~7CsGh9(_Vv)$s`HHLg9>pR*k<6x*R! zcpWO82g<|_<^6u*o3B;m&q426nveS}_}kKimzpEAV92{cLQg-gOfF7G1b*=o99zTg zSMh_CNvkn7&K1QcjC_v9v|{BK8$Vf zxR5tD7_{#2{LkxQtQg~9IJolwlQM}J=80dC`6KT2!j3`q(9y1a=J*TOej+%A_kJ>c zF8nT!SG4AAwuhMpd*b5C@N!O@1iy2a2d!maDdzj%zyA1IFIlh2ntg*~Devw_xcF=3=^NwrJKqi>`_x|iWf(LLE z>@+I<3NFvyn#W7cE<1{?x8~sm`;kWlj!#hf!VxNcr=)FirD5-XAnA{~+Nk`A!cQKT zj5Fsy>>Foa;{QbYAO8>K|EGKLNM%NRf--*DGymyZPMI@Hl3eCO*PaI4I}hdK2RZRW zchcNU9F@myUl%y);`7-Pb>YvL!k;gXCg59# z-|o-jS{MG0P(Oo{L;20uP56q@E_*FZ|hw8nR5BB ziT>e8blxv_Qg5L?Lw3UZMei#d;S<~4ZSUsiP z{kPDy|Gv+6Gu8jt_+s42EDIddT7kRz*aIG-D^$K}KH&}AM?^W?t7sazp3m;LKc&_T z{FQc}P-K~>7g>n=IXBgo!QL5dn$}FC&7N3QV9ld_jB(5{+ic3W!LUM<$enK z*J;nx+cNXhuS*;i*cMK=J}>t3SW~z+x?o1JH5Rlul_WgTY6D;B7qu#ULG2be_#y^; zL2##E<9V%wFIw$&=ac;2*lNE(zxytrIv2Luk5b(^Q(Nuw&$QYp`b9t6YCkfDa7s+w zrx<`!Vu@W3P~MDK`yiasp7|xE_fq;moYJ28DWwCSARTaV+8Q;yJrfw;Zm*~O`o~JF z>N88MTT%-D-Qp_u4QgY<#&&xNmF=do56{YfyN238x!WmSzoy;pguN}TkL#c6ckH68 zHsJ1q;HK@1gIOnj^D-9>`uk#qZ;(FEg|oIS4(4JN%yi+QO|EpD^E!BI;g?M750rO{ z+_`Ylf9Gl+GRR&5N>?~v@rkF#kE7?5{X*iK9=P5Ibg3RzFZPiMKf z#vlF-uUW{sDqg+GXJ`2FK5_71RLMA4pN(%Rn)*wETjJcHby4_yzK3}O{QR6#V0}A$ z0l)uJXl~waM$unKk9memH+GFnH|Ewk*3th)SNc@>pUCNXReDtZH_LN|JoEN5>f4Tf z@hX=NF>g!L?XsomcG=Q&+ZTeC$$#)KYg~HCnexAi{>O&U(bl=X@9zccM*W8W!|H<5)?3z31V_|Q< zv#`)AKT6T$BDoh;5jU;p76r4PfnS-Te13r|ANL)fqB2X_9$dFim-xciBRB)XeWs!8 zEWUm4qjnZ-V-Z$+3OWb)T4S98(bVe>(tbxgprX9K;8%-+OrPsqX+NX1x}VCqS#;pJ z*;NOXzAATa7QG--8_l1aU3#!TcTY-peXDy>-X6R`+Gacu)pKWEHA9?r#Xsh(>&$~n z|Af0HA<;jT$hlWa$`>)+U1`_KJK>Tt!Y@9;CuM|Ve4%im?eHsOux_zCQN zI7#lYePK~Bm)`W#|NS|$GcM1;f#=L_`(;nWpLzGqk3Yxz=CXn3cuqejEOOZ}|5Wi% z;GJIkOTWY{K|j0f28kW$lepUrI`MZkMCYg;a6I#~mk9rx)Y(7a_BU0ZN#3Y3|4?H2 zaISYh@d}+us{}l3B54)HY2V|%H|RyAIa9*lyK|6^WNmKlV6*OFJ67n$p0t&n+gjV` zgg)Y<^^644SA8@+K6H9sw~^07-_dX9yzv>F|Kr}Jz%bJuWZ!V$$yd{unHK+WAe>)p z&)d<>`>Del%32p66cdNg6Ce7RHL>7Lwb!9*b$Iae^vCUQNxFGmiLW@4^p(wO@}1z? z18k2>Z8`SHAwExCHSj!E?md2)+Bz@txb57T{L-6Bw|q!q_+kxS^``PSH=K3Ri*2Q& zecX0c?a}R-gMaPk`;@?eUe`T+hj+WOUGZEFp6HaZUFJ%^m&O$e>qP56 z{)_>*JP?lXSvI~29<7-7&5B$+?mF48tf$xW{2JQ8(<@I0pGREyeD@m)pBD-~_q%ZU zt8ch)d7#ir9hH|ijdmA42d#49@$vsdeE0Yp3U{0$>voNXbE1`YHVzwG#JPPcE>g8|PaN-|2& zhRQwzfvcjMZQ#t$Qd?8#e}mY3I{kuP;I_7bya>`3QQ8MTRr;;meX4}QS7!=*ro%T6 z!Dpd-(_na#%r1SLtrc+}&+!hlC-D4-aiEOPRpv%&aD>oame?w<=dI6<7G! z&wiPXvK*R&`E}#tb+~gM$lJYN(5CKPb;G$URjHLYu-JU2uCp~O;noMtdUG6)3wW=wd zFWB(o^JlD|*cv-8-!-R=_!|3GuU34Wrmg+{q@?wwa3iPRL22VW+S=qK+OsVCHK!lI zJ;ihUR%?TLzrv$cEet~kr05WQR>6kmX!;+b=WzI@pr^q$L5u8Rd{lg7SMCHJR4*GNiu&i%pc9!-{9{iQlMg4@V76ZxmNc(cAS&6 z{&dE9JQx4=XvMG7945~wwx&!{X)9>H?x8syagKVY2LG%1x^&Qd_5L5u*Fl*t@Bi_9 zc_kg?R)~*V@Wjc({d}MMe*=#*1Rk>l9v*?m+y95~IQRdh^;_VA$0uFCrS$*v|4UdM zY3*G8e+aAHuC;T6%<-l01pxipS;Siit~=$wT>s57hOf#Pj{QFz!^tuR;FWXP|5vm1 z-r@dYr@xij8ar~l-x^^=ti;dY6Qjd!ALg-M9C4wg^_o^^dBXhKuP?C@X9O)HM7)-!~`thU5bn%v?b-=qdeV}G*y0z@K^fvn53&(Fw z2lNiR*tpaz2|s3*rz=eOJ(gWm9<0VXdeDZ^LEP#pSPZy z7_|O;#>G4~z-nOs29AyUM`J>Kga&h=T_5hTlcyxpt+g%bh|!XnWGu9G>foWb`r7Rp*)C~JA4tmTDvF+Jyo7cv~;^i=CveP=#B7tk+3zfzf&)6K^I-QC7gd(6aSdJVxYhx2|RIPWe8=dJx8;k?P= zfK@+U;eZbK)c;@LKzAEdzl-u(-8B6g#tn)uh|u#|#tn-8OyzH^9bosNaLQtPBEEC@ zzr(GU2ws{lcxoz7h2Dr+XUbI<_o7zQL$lZJrG~m>gEft72gdG?>=#%lGlGo?HI(n2aG7|P`vC{ zQfE6q51;#~drn1E?*Bq>_4j`dt+(3p@1gZpEW7*<^;W#e2|d?(&3XXoK*Y;S)&!Oal3jdtm< zs&S5XL5X$W--@j&iPb)KV_qi}VjWhS{Tlt&jBm3WPiwOe&~M#@HoJCWoBfUI{aKCh zIpTdI=JDJK0oGS3o4jRqNMD$l`uIS7RfFiOx~1>GOenon!ytXtPhIIT8jnYGQfzBt zC|O*|+DEp{;rk#WM}LxXL8shxQf`)0ZdG1JAz3%t8e%O@EeM$F~tgb?G;a*ka&unp+w@%;_)q1*5bY9lE2xo%l`YOs*zFRvrJg5bA{)=7L& z`ZP-4k2^%pedA8uX1@=#?r{It^KYfs_%X@1QxY%Q-~0DP8Gm$?{k>BcXO{eBz3pZF zd0S={@o1g!#TI^)V++x~TMB&e4m}+mi2q}3jvSbemU4#ZM6^#(r|1)wEBFNEFn8zW z&H>e0@ymbq9WDPu^3>&-xAj=bHe!|XKbgCiveI=gWu=^%t`t8PN^cXE|DN0#<4ScW z#aL<2Z=g9te4g>G=A+}g?5W|FT$}Ty>;ifA=kAQGbln+QDR)Lz%AJvwa%W_v+!7(g8 z&*`$;hDeW1?y{F4U0-Q0Kea6rAimJa_X^Cw17e)Go3h6RpF_DhmHRN%#v9|>GTtHD zs6`u;e;$3KWQhEUl0R~6TP8F_euLzHp6U-9B7c(PS5W=oL*$o_SNT^_{SiatYse?q z%px4@i~hot^@DBnLsey7y`0p%AA zk>4%(?UY|QME)Adzm4*XhR9zh^XuM=I5Rip|1Q`5I^f#3(f@=y2%f7y-s;yXc20Js z)Bm9GKXYGG_bOm#SROC5l?-yB?cDLf8Rx^nyw3UF?<*Pwp3!@_Kl?g-G)ewl-_QG# zSVnw7`Oh6*N7+N-yb3gO;e$IY8U@gZo}^y(j1$ z-vl4aX99zG*+TJ)j_-|qP0`ar=>ysxExw}O690|v?_EpdgYOjQY{a?SQ|97*y*R&# zDt?yFaBz<^y2AEEE7(W2GuGj+sk8Nv%NJkpHKoTt(%FrV_{Fw1o8w-gPk2ZE`QKOm zIvjtpZod4a{~=$#C#&qOaCZxSsF*L0J#%D z+b*7bTXrB%{!}*4lMglKscm^)+nI+V8t)Y96X13ypEtMVY>J#RhrgHSyD{%7b{2TK z<@q}}@*n4>@WI=7Rtd+!P(IvS?In6^<_DYl9pC3w9yu>PDBrNZr}$u`l^3ft)0Gw$ z8(GAF!o5Y0Mm&EwPQM3CH6PP_Q`ugQZJCJ&pT;rM{88nXtogp6bH2uY*ZmUHBP<)nbNhTMt($eF!&nCJi|yAX-&6id7Yva%mGWLg?D;=bZFFoOLK2Ha zk0v%z{~n{Y`s6T-Uz?r|McWz2gb+81WPl>XAJO0=uFZt3@YjB|r|ElDBgAK?bGE;M zzTZ-+@w$Gd)z0GFJ1#KbdtK2kI|_QIb=h|qeL26nvbU{ar7E6KDR82k{k}kO2_PmY zVxNY;Y;yeKjjd*A(=s!(nSNWAnajehCj7Vkdn|nFHp8}~%CRX}XRNnBs48Ti(fH1m zm*333Ks><<;r5KwEXn_uvN>aR~vRUkZGd5`3PMd3p5dhfuo1Cc1Z7FAKcyH{Y-B{j31h@|DOzLJ@y8f7owdHgu)%ab=J;?^}#Iib-Bw6 zdA+hk;hv2PC@<1szbSo7OW(dsecLO2+y1oBOeIQKlA_mMkZ#^QVv>-Jyk;rCdr z$pim`HF*Y&$wOl}Ue-B{)w+GSTIVBO>wMk+pv_IEs&!sL@N?GSI@(W8e?PT8Z&QPN ztDORi3l`-4?1pKb-g``boqA=R>bEI;0XSVOaC)`HX8i-;6nMt*L$7=Zd*S~9YcWN% zD!w2Sia(U2Rp4_NpSy5(KEB%(%v*W2>4`rvecYPUT204iiUSYNg8W^O>Squu;8Kni!1@%T5k{iNZs0vXgVLv! zX`RV3PiN9Mfzy=zdYIR$`af365}&oPD3aVb+_QL3Akm&8{Ql%|gkMXwn-I&8@j7DJ zV6H-hQ~&TI*kw#--BEdGTW;Oyv9^pJZ?iwYUeOKq#eltnePTp2h|f4f_Rl%ICN57C zuUCw@8zp-=PIH&xb2!DHV{e$Qy^;EEkYlFe-sNUV|HF6lzS}V8QwcU<`T_r}AJ<89 zcbe5TEyhO`$&OT`lzz1oH#%uh69I z5^G&PSDe^6!M|^Eakk?>b#Kx=ts4>Gb6%oDeREwuZInqSI?( zcR_O-lXdnxT7O!+oA2wxR@X_dpmfL%k@~`1>^$&7Cta%I{a`KQ9dXznyz+3)U;m8i z!dy%%ztP5Y>zvCDvwuU_ekD9TdpQOZt#wagNhXl^ni)#8@%{V&t@n2-_Gb~#Cm{FN z5DO*rCFRqe_z?S_v^E@E;QWdx&*8U#mxzXNd`qftA+{;bedf=7o%ap+Ex-#givcst zy?;uJsYTjt_yTE=_^=JE_ZNLOwcS=)Y`p~E{xlC5^Zcla-KR^8cP9pC=P@43g6;m< z`*ZQ%y32}KKHY&>Ho+A_Qvno zANu8K@QY5|SJ0p(p}dadOSh<4Tw9)z`?tjZV~>9k-;}*yDf^wz9Kz4pm#Mv9<)Qy) zsdZQ7qyH!~4KXvQJY;aMrqaS%Bm=y2V9Fo&Oz2l}>L9P+-9FsEZ;ofZ{a{a!@18nq zvzgM$dz7vKH~=xhfdfvOb~v|w8)V$a$eG^;Du*&CJ6g&iKJ=+l?iBjJ;jhJ3vbfm# zZmP-Jd^9}?4l_@tC+&?TXBG1uMA#eP{HZe4W#^ftTJXtV1GXHGQR?B@}`^gG4Y z&V5uqPUW7Yr%CNdyGyE6yZTtwZj-c&7+~Bk;hAb`2eIaBsr@=?znG{-!?K-$!Xa`7VDv$@5xCZC9rT^_#xA>pQ_L{1wmtgNn}`5S;>G>D86& z7+}90W-d;5D1|aJ88@Sh4{_QCm77Ux9dv3Y;fk1{e3s3Tv<40Itdo76se5$OSk~}L z%sN`@XL%)l18|IUZ{rxbw}HES&V3E!H%b1;u<1kmU&YV0@p-dTPERE=>_b#rx2H&J z%iZ??4Rp#y4U+GTOHHExWtyS6cvv7hJd1TM2itUc4|2*`z)59KjBF9_7qCF?UzM|Ij0IXg_uy zQ$l;T!#;F+u~k*7Vvg(zt2-ahAHSb>m)@ z8{dk_{GktC>I2eJcPjbSPjD-8m2aT>h#~rKH@`@0!!PSwllAS)_rXzn_c{B+(N}qf z*aKV!{)!3D1YCQC^F4~{d`OSvR5moWpfwSOSs`K`Jyl>mF7f9~a z*oLRg9xl3pZN!i6xP6brt!}f6*>~1@USnVB+{gP8bB8wOp$)0;=mtxoYTO%$wqP&f z{x9|-`?&7JUg)xc|FB2vE7U%Ro|$A+JCIzGF~$~J#lq(YX+Gnt_VJ!Q4Su+cHTHq3 zp!FP$a~sWZ>&0phU_FGicIbSo>Ir{_w3YV7JicbaG2goTUcJZy&+88(jsnpGg3Za& z-c5trsAd@7VHe|UWA#4Pk$B>5nZ3k2Aw3+qHS?gcKO0}ZgkiFT_ELTL4!h2{HB%qG zmD8x5JzBKY-n}-MovPiM2^i{}Vtv(a#@X;O4S3a#Qn(ZE#<4PP>Su(;%=%=?$9^1~ z-yr$rl<&0XlshE*BR;Fs_QD1dG$+0&GgVuZ`2l?&`~7O*A1YH9`Hk%rx^ukH9lXP) zCxE-w+GT0>??(6o@g=kr(AE)8Rmy*jn`_c>=4x( zMtw!!1B8Fj_aME8Xzkb)YV1~pT0`;i?KbK_&oau`zmLyG=>N*KL8c$z6Pm&+)IEEm z%is@iml!k}{6la4et^faZ%JxcFF=>eyV^9@J;h5kccgWj9)LkfPB#FsahgaSG9W|o>$S+@dem`yLB9oubFxK2EE;e?)K?d-^|W9 zyM$>l_)Wi@O^kW@&D`B#M=$>%;eiIZt5**`GotVj@MpZHlh61HB9 zH{X=AQiq;8G(gik?3u&z`Yy=K;0wIpRyr=MwL{OSJ4j4tQk{G+EJXFZh%2nGvwcaL zkIo)G4{qYIt>dwMhWTY0TQBqrKC^5xjV=7;4D{^<`qK0<69A)yv}evI-dj&k;4xlh z6~~jMp;%7^^q(gqW^eoo(;r)8`e_^-w>Y)N#y1M|Rq3OoP1XZwvj~owSvs21box&? z0{1+zKJhKYZ1aUjn$X8`Um{;-zjufYfVFx|Bk@3plapEpTTqrE0KZpgFBKbKgN=Ne z;|61m(t2+rnGLb$eXcmgSR>AV$VS)~-2`7P*#Vo>bjawj`Tjq_`DfqC!x-~{Gco_O z(6dIZfS#xb8HozwRZG!MSa?OizcRIsoDfv&n7?}=m?(RH6jYqg2$RhMsWY=zlzjEvBKmU1miLr>=)-euhC#20tGt7-;wvTCf59>IKX|F!k-@g=d z4moo}SrLy5ywO)>Tz{o@koGmahZU~gLTT7TnCI#-n0vxU+NJP?TJ_gg)jmX>o2bq+ zvd@5{SAEycf*(npt!xxDIrGL|KI@KPwleZNyO8*e#z(nwoaxWJRRp~@eFj^qAO({e4gn2I1Z|keHowR(_3vP7G&yk zC2SkbcTMqa>I?8-qu$Ow)GCb!>`I+vI=#i7N-}Sw(Qd;==(07+MksZ43Ht?b;vMdx z`cs8JYZU$rd>Qh6msrM;?F=)6y(*0Z5CpdY=nt`z=)1sFv*E%a4nFr%@%KsXD z5I$zh*!_-Avnu-bzSra(b5sslRd`nT;3j!>A7V&4?Re$8x_o!dhvKu8<{Ez5KL5Uw z*WT&R`&LBy4$)Nx#6JM!8pt$QFR=Lpydc*=c6z6DuZqbWZKdT5olgCqy&L3W`n!u4y#mvueC6LM3hPcskbl$VTVI{55m4f6uf z8y82D8~we>jasMq7{TPp@nT`TwIZvWE$ zT%2s?ov3`%afQ}vHS1ZSAhh5&NPH&~t1lVotQ!*PgOJ>#Wf$S4023%69l0z-nA< zf3~u>-TpnT!#TwN zXJm~-UkF+972#(VkbDpygcJU@I=>%x)hjs!`1>62kysyMkMU{VlZpp9~kOSQym%5-~jPlSfliA8}u9fnZrykdw=FH8*^7v z*)M2ZzeVhn;yA}US>e%^R%&Y*cLA3@p)36LEpD^NK5(4R3dCBK?IZC+<-}KMsa6}` z^V74B@j!dWsb}ps*uL-||_1)|NkK1EsK4jnH%nN&pZ?>=x;n(l# z_f@Q7oABIH$aRU!GD~1%+uLJLJUU>#D&GR%IOa2IERVC#^B#sx(vwWrAqE*emyg)X zI@t?7`TS)gly3R!!fU$Q95Wv0)5&y?^!F?DUBqf=4fpa{9`rSS(O-H~-F-!2#cKwL zr}d`p?!#RKe@eFjZ?31-;#u{*9rhvDcWUDuY{z3xrSJ5z{U`gRa`dg?5k=N1Buj5c z-0oX!DsyKhK3dt|ko;ISu~*qqqK$uif;Qg!j%uTpcy`neQ~jxj)%u)ExG*d9mDZz& zc&Q4si+TChyULHv>{6wFzNS?4Sd`8-#q|HiscPL`Mti)P#vA}YOZ-O&^5)!RnRjNg zOpis%jA*2+MC^sZSNe(1(IPFjMr#)Se?CWTqb_)?5UnrhxZV_B{a4dEXe(Q9M@A^w z{J5JHe^8Myt#hPrXVbGfDc>jAAf#QD4$*r5EO_#DB$F&iT6$;1s*QGJjCh3PuC?|g z@r4e3`L7QnhQnIBwpQ`57$23j>*)6#Dpwon;jAXncsj_Yc-ps5t^X1sqCbuHMxZJl>(_Be2z>F~O#yj$ncHkNX1; z%f3kPoiyC}HTlkPv)JCxmv|PFa&mmLb)CzP&?(HDbaQ*bONqZFz5?e3t=N0?od<@i z_P@b?qLi(JW+opS9!_o?o=R>UiTZ@EAt!K*V57wh@%dhhSxwL3#$9~@^Y#qNa9)h^ zVvEfBaBIeht+M^Gg*NW6hiHGjMsyPU32VFSL**yzVH!L7>gl|daP4L3XQ@m``cAm| zG1?zbo&f!`@WzOR4n1l+@mlSku0GgXJtDE|!EYgtc_*SdhU^u{^Z&+Keyr0LT~vA> z?5Si;K^LjTI_w8&&7%H+acb?}Sf*Lbml@D0cG$h)_4ZHZ+gYbCJE^arRSxV+Xl|#1 z=F{^+dVVlmoh`8+M@qZ;reHQg>DBZdyd(W`N;_NRyAFCjH9Vhp3FS@1`bi`aD-v@EHdl{rQ3nzl(g>}n!6sq^TG&pwoDq90;olyNU_t z2cl)*`8|d7-ybaluTAopPn|6*Sth4X!+k{P&tkOhJ8AtTdTiW7@B}WmJjIunc@taM zCeGuh_rlA|h?goO-X8Y^inZRaW<1gJGlkK1(-XchQ_x#tjyZ$&-Q*k6_2DmP&VHab z&33TRMJ77frk`;bjSD)ypzxRAX}JxeRVB3F83(!aSpDa=XHv%ptue$~j({Cu?+Ux| zWS@m^jifZ67jRu+1NU5S@1c3^VV~i3*uRtpI#+)2ew9w^5q5khel?jsY1LOvjc~}V z%WpM(x+fF7|2ETS9+T0HHt+CQ(&JAhJ)YvE54im#;GPu8NBW9gC|d%(A?+93$2?D4 zwkM!1vsIiErDwxfi*-fY#z_piqeYkdJ8O?Rqj1(6^ar_p-(j!Qid2k5s@p{C0W|MV zH>&f40*T8~EPCZu@GFt#4EVibYUh68O|g#Ru6EGIFR2aiuCZsu&z5ms2090eP_|%8q*+*+^oW%dcTGDmc3`~Q4@mkor*GH08_vy8!V?$FRI)y{s!R%4vZb(;( zE)RO?AAMne*3l14?+)@g9cY}oyMz0n#8bz<$~LaxH9S{c;H`}j-6MK;NNf)9ERp8{ zx%&>?ricA*QlFzr7vq&a*$J9qB;J@=e*&-otK;l-V^YULiq-U!w$;(NwGXptBM9x%3u^{VLe z^`FUeqL6Ju;z`@?O%<7vujclf{q4tmzoO)}zu|u!?KR>{aSr0{5#`<2C-L?-AZFHp zeS^M#P@kJZJ)5bX1Im6q;K@nbhrL7Z2bOtjpTuo@9QgXQ-|l*|KlT#F9qSBZ&%Q3S z-oE%mjvw|I*2Yb0Jh8Tm*gikPVvqDhbxZlAh;=Ap+{XT8FPW)BKE~~4tfnBhf>c8S>|9%UEi$t)# zh}S~38jB#~UKR=1)27s!4_}lrt%&da{1V?fnXBfL?b4|a^JpyAmdo+TQhTQ0)VTA= z-6EZ@Rpl#IcG-Ef=Xw<_WqGq(jzO97{{W4^x%paqZfe!YJl1mA$Ey;EC9Mq%4i^)5>fZk|B_p&SU z0`dRX5dV9%=TnqP>BK9MjM^yYV;IecKEYn{8s?)qV?HMHe5}EIV4b#0UY_^JRnPST zA0GEZ=)a$MZ;Qq%K=R7wa|iQST#h?N&>3K;(wMn(>VAJ{Y3_ghetO3Dlkh#Y!TokO zee2RIf87$?J0xp}2a&cJS3BTIG;N9SG2buo9Q@cru-_nl0X*t!R}ejgpD^(b80)o) zU&P%GVuJ^juBjb%K*Yn=GL2|pItPCMoT=H`3_4S^Gocerj}6g}>S(lJ$!8E?4h1 zn&hT&1se9|DJF`0{VL){g^UTv4QHHkY>TGO6DV)1CK;RzTUl1JQp zAFHu3l)kr8jm@n=snflMeJ~dCy^!9$Pz<6zl_a|0qn$J&3x%F&6GikKvgBP1?&R36 ziq1q3>e9jin+nlz3Abx0-Q2XDGGVrzL1kmat8prq8zEe=?ywo@^|*(ee~FSPcb@ zR>O(2t%mYO;+GpO-}w=11~BBPy+iNVsZl0Z5CoBSz-H|h(Abqg60fs81HQA#ot zK20Kz`t#yx2U56Ky&JL`wIx0GB#&s?D&g4@mve8$1j{DYtIiNw1DZu^pa8s6Of-1t z*%z@Qo(3zDQ)fjA8mzPTG+5~OkkcD2-GZD=G*ExQ;_(Q#^)CHf`j>Bjj7#}2w(K{E z*rpusYNdcp7{(0z(j;2rkYO$G0^S@4eAN*4aaqat|Bv0C%f9}YzXR%=)2ZA#$~(q@ zEr-kp`;0i1@r&D~|H2s17s?Z(G`wG~(g&`anec(2dBxhny21K6FJtXMXEc>%V&aK? z{rncL)7C9Lf`aeAI>`#M=aSJe$}}|I2pt+v%6k zxxzeFMDq5PytjV@KkJ1!7td0Ao#eZPOJ*NU>wZVlv+LtN=Q}E$?Q`M{I=vf9?FTQ0 z*s8);8)ILS~QZzu9DU@>?+2v?SZtFFewdV9H3{ur=+xlU&!(FDxdi>Wpje}xoSM! zG~gevQf*FsUyhmk4zhAWz1uzD-8Aag&%TiUd8cw5NbutAqQM`r@jOz|z9(b3d)?nx zEXhsVnN})U$fs;b-}!^YgvjgeOI3tBj(N9Tz4Ot#vTz6UzOSgXqfhjujF6NwU;0B| znnyqKM86NW5svXUXLL*X$isY%v}Hm1&?jU%unEfQI#^yhwOfuMblGnCe^BKopOAIC z_IlnY`dr)d(uz81Q>d#tg5Bv@qj_%GtNtMQ@Ym?O9)*{>m43ggbe{YF(C7NnmsYCs z2C4FnsJdY1;MPU!n%}jka{o+u;EPbJYy)9u2>*pzj`{Ke<4n1D1#TZ+S9N}*%6gQ_ z*rTujz;n(}vKEae@6mJ|jji(DgVt!CMQdeF(coj^yIlQ!DPy_v(ipcKYX7Bgf0Qya z;=xX!=Q^~JWT!gio9M0=Geg#!PWjyN9+P4Jc$G?r9UjVoP6jq+bs4tCsPAi(?=#rX zT_yWgwDS@iXDgP1V%PQG8dQ$Mh0tcqO*8G-$G<8kNS*nvHHL^E*K!L}wZ!gob` zQIAjFvApNoKx^Wx#kSXIwp`hVc-wXO?VS*H_^zRQsmOaMp1l9*SDd_1#Oho7ic@(> zhnN=H-{YUO$V%slN38qTzv7gHR*Js(D-OR8E#&t;w~h$qrLy}%o1ENGRDMg(`B!Xm z@~$9xNj>|%A?wDyWe)MI*(6i!P&!4#>R@?}#(FN%DRBN3u*L2>`vt~!%+FY-Kfj^HzVGL8Co3GafcdnvHPa zve`#+PEOyLjfK8Qw7?f>^+0zrM_oo10pT^Pb-Oln>U{IXO;NeU3Gs-i;*QV`P@3!5G8cb+t~zT*$#I#3V`& z7$5Sazr@H9f_Dd;mobtwqp6RjV5vqH4Jw3UPs^LiI}E=9wzK7vY5;!(E8 zjCJ&L=p7^-3o>?()R|=)(kBRGFl4Zna?4;$mIrc=@!NrX{;9HY{%>`C_y3@-t|7

~iIQ)- z1M-eMhwm(+b`a+R{pC=3%4Vh1A8KabXOzDySNcET`M&(gj`wt?&qS{pZLDe7a%y@L z@B)u{o=MN{@9K=-;f&v7Gk$y3e={S^$oO4JvLs`7YxHbJn2z!NlJvE3JU2_-`u!KT z@LdysNAzwm_2FN&v|p~c#F@8kPinidEqVX#Ex@dByrB-*Tid?yBUX0Zd@6UD!ig

!lwd?xi5B4#pf3 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

$e3s492p}){n>5&mHhrOl>dkW$}>~sduTL ze+b`gqb>bEls=X9v>HWEtD1dAdjw8_FT^&&vH7h|qdW5_I(n^mbn`hLoz~ZC6y5}E zury!bmBZ=6aY~%hOgL47mRp{ubsZ=svu=HjQGeTLJ#%S(@4+WsQpfe<7>YsB zYY1uCP>$zJx|buNb33~%2EDN*$|bg-u+7W4kK?xhKj=Ax?)2oq61M4s{oYwOz{X9N zgU?S7;ZEQ;e`Dks&WB%)hbP6~Zc#_aPa*EH}Y4k=;^RllEwt*=T zer0c#v$rU;|C;D_qAu<$^7+oLqdR*!-Pt0#vqYm$3(%eQ)N&o*$z^>S)w#W^lVt;| zRmfXIeL??q2EpPc;DEczsP7-k7OLR;gJlaJiGP0d%Qk=QOEWsPVxFPQtKzH?bh&>klK;`*9Q1A`MHXFAQynDFci*=qL4{P>(!2XneXQnf;o{!DkR}!mBLYEPHH8>b%pFbu3I@KKiAfa))rD{B_3*)v#mwBTaXYU4oIP8l*YK~_= z`HR`6dIzl)Vl&VDQ2QkqAn%Z6tNN|b5C2DNR#A@_*SuyWfrWbAZfx9vb;J7gkhROR zt=%BRYwOdv18din)(~eC{92s9?>_wT`lXWp@2{VI?XZ^i_1kb*){oB9c;m9+6MP)Gl5vXxzH=DY`4!+IrMu}~4Iub?*5#T{ zH~{{?0T=z+Zw26DiT@q&i%eInUUl^o4Dzoh8l*Nkjo@k?l_?7>$(tN#%qyGNn0M|y z)j4HnR_BE(YV)RrYV!>L%sh<2WOy}>-&?y6r+kqc0v`VDkif%AO@rdQtWN{Mt1!VU z*uI7cUWGKgs)(q)7A&gNGC{}#nI8AUrWkOjJ_CnBw1$v76iBR)W*ZFp?+0yR(DmIk z46^JrftOgmi6?j$E1cJg;9}(t&7(8AKzZWyT``a8^6txSNOU&Fb8OTBbcQ_(38IMtKhK1|MT8J}CtBR{HYfDvlt?>@Oy+cDUxP}^4$r8X<@P}z^>U+IclM$PRaNV0eaAo|~ z8z5#IZ4+8%enz4c#!TC?43e_f4f-b)yVV8W4fkJA^s5b zgg1`U{*_^?i#AIFgkKJuk+j;J$8za+m51yLPc)kFb;x`-s5R`L{^$J} zJk2r6v<*MK^Xn%Ct6$C!Mc2`Od^pKZ?=p0~314$P9W4TXxfnh|nO4&2kZ(;ueZ(gQ z?@)LJUoo#3@-y&=M@#Iju(H>MO(6P)zjGhK3i#TBJ}+XTS^k2Y-f)uYB?pNARKiOi zvyb^H=4&^qnzF2}HSFD*yYFXNCCXt9z}x=~`{igSKppEuQ=jd|u$snjwb(=eZ|O>R2{xZN z&(UrAo?0@W4uAnc&+GRIBBn0--h<_(OdSg%>rZq z5ApAsxQ?x|K;_Uq!kt<9oBb?n`8E6DXi#JN=9!?Ok@vB;-0XVyEY`LEylPLXzfqTj z|By#U?MV%w_oa1^_V3W&QZ)sJZ&I&54iq==)N{F+4)- zvlcNQ8>uavNqSq8pgUcLw)cVTu9V+Wde7+d;@9caTG1=A;@)E(~`e%r**0)h`C4xZ4q$8}xM07Ul%m zM}M!jZL8^~{Z3hVNW(Z$rjqhtXAz`xHuz|R&sxR5TRE;9`>6`TcH+;_5leVv&O>R= z#>D3cuO62usW>-z2ER%3X|CEX5%{QaW)tBN^BMk@h;Ph+;+x4z157LnK#nt?-`H=2 z-)pr)V_xJES{=GMp6Eg~UgE)EeZRX!)9RfppNh;sUdaCaTzprkE`3MookQLJQuh<~ zpU|Lo+3If-A5Z-eix~RX)CO=k)Q?bo`?%p}t)yapX8tcpykU>%9UYYW?L^F3iPvr6 zr`z6lrQl;7zSsK^yy?%en#Qpo4M!~Mz!^ZC5i3^XG|v(>&0EVng5U7FJeF}j!n4Gl zQv0p2^Abv>TxTga-1|;m?>;XV4EL_jbBe#$uAM{4yS`1c91wBqdc5!2HQf8LqH;Ti zdp9Y_J0WXuicZ&F{{ON3-=yNdfQP{LJ2d`GnJ=s|wQ5?tmdm^@J_egBLdgL{_d^zB z_bmu}2!ciCS<`FalWdpWhu}c*>y&s=X*~$u&pwK9q1^t4Y2iaSKQ89Ek7L>g zvO3s6gZ3%lc$4*+ykd^ysO=C<8zNR_ezW{$Zg(-eXaKU-KIV0 zI6B4eE9?J#Wt}HIkIje$SS7YvLG5d4XXrV$eH$7Ykz{&eBJ9-aIEG4dpoV>{S!e2O zI#XqRnl!#@^Obg-@Sn0i(Pm_PqIHqAv+kYc(~MwWA?^dliMRWXFSP6fIA(8=f1s~j z8NYExVY3hGI@&Ci{yK@@k^^7Er*ISN!sJNY7_>8Ymp*s5z31Y5%fH`HvG>EAUxw^V zY_{@*ZmgnuUkSbjUkcOde^SP=*Ky)!^fr80>8XtSLqu~zei@vRteiL_p6kCNPB;|N z@$e;5mBe`|@I0}@>8Vxz0OG+`tAapyhciU~iSFDd_j#{F`-Sj}zef-4We1VFfgeS4 zI^8M15i8y!z8*apUys^&eV4?D0mq2V*?tebBa7~h!y{m?qykpmK#4n z``AC$s3u6gW;&N0Vw>0pZ$YF3-@gu?+645=&&D|jLbv-l1^W=h9_mKt^HkP*CHPCY zFVa1X!*As~hOu=D+QT^bjx11`Anh`6AuqM@XKX+4b#b`Zbjr(%yQfDc~8G#q?P z*!>P12_Jlt?%7!%yHbx^IOxyy8*31~O5JZkMsCrNkz4$dK56ZGV&0I`97}xz2O0oB z++!7gKS$qT+C$6dTd8-h!hV(!e8c_^&~i!B8JMr!!Fj5L+MD2epW#M6%exk2{PTM} z^H~RN5Y6Qh|Nazw@jv-aYbsDu$Ua7jiqP&%&6m^h!xQ?S>)~rC$+NA89Uo^I zgm2^j#K*VL`X@hfag0fePXXPyO5T+Q2% z@!LLtR2{uxQcNh+i9L&wm6a8Iht7{dPBFZg^9`{*t^q?mS^ z><=e@)nBD*sO+|H_N3qoHW+g9nP=WP^Q}fEp&JW6hMRDgs|gOeSwD%^pkn|&uurh= z?-h`jS1eWWyWQrUp>lKi9eHMPknmqW-*vNhG!DFheb@u$p1g05jALeUWjdWgY_AJg z-yHl_F?H^0@Ap4r&*wdrU z&5-XEB#NdRO(o4?`RdFMODGUQj;W^kb@JI3<&KaY6|FLvFZis3y8!1u*Mwe#q# z&qdH>(0hW8(n>1l;utyF1{`VFvv6ALVS%4#>C&Qq zlK70SIk9MwHxTX$AH=Y??92YO?uBoGL`nQ^UW4weOLPp^ z;W$RITGl;s;u~=h!51Wat-n#b(;ExJ?>PHyMm$E~h^K-lC;U0Q>9-!%yffy>c{N`# zkXgri_4lq>J%6kj`%K8>N7Plee4laRXRv7>fxAj$q5EG?aDUN(ymu1tvpJr5(|*SL z9I+WQa*XI);9uZ*xxJzI{nY-9f%Iku!trN(4XhImotst0y9uB8bi!Dz-~a#WZ^i$| z{jL0o{?Jzqt?}W(?<5=|^Ul$@RnJN~pHKTDOus(u4Ha3q3G}%gzAZbD?(oKXSm_pz zqDK5(LDyo;g*zF?sPSo<(_{13Tr1`9K92Apj&syp^Xd+QTVaVqAJ2uI9O{gqGXcJ4 zuRrhP{I5mNt|35pTZNV{GOkE?LhV*p%8D}|5tyuF+Sg~~`c^FaOiXF1pL{3lhY|n( zOaG4(dmM{KL!an}aZ2htNd4LSDftEcY;4z0i@l$-bwAh2`T%dT+J|qP(yV<*p;1w< zMu;CC&(M7Ma-sKcf!gXTH=$DxxNw5#ry))f``d{GlGjGUdGhXNVij=zRkpV@^Cr&V zH_`H8}j^HZPJdCAY<7>$f$eEkb?48)suf9OhCN|$10p3H0#2L!b{@3-rFd_+#r(tZ_q3={Yb2o6lVVjh> zTm9aF%^ID_>>b!EI-;JSmLZG~JP3Br^u8DMkodT@98-zy_X`jAdq433wF7w}XofyvUC4r`&w^JeArz zv@^dG&(R)62u6Sh`SoG#?;;{HASc@k)GIsg1iu!?iN6v8fbn_s!TQg07-xa~1Unp5~ zawlGoo_$!S%go!R$4779>VBSOERWmqzV@%;5Sh$S@!53B2icen-gwV-o})UOSjXpR z%^P2_`2&$LyL_7e9zL#Kg>Hc_`FW~lY`yB|TcU=^dgoZUs!w{4~ zTusCuL>XJG$To8cRL3z_pS%h7{6Ui6FHplcC-{uZ&WM`zjy~~t&Rms4=hZN7CS0PK z?+WMT5RGqyC?ByDEcmDW@L2DBj<+%%AEf68yA2Hob>5UAv{yxy@ydZ!@zuh^u=;GJ zKHL27TdC~*I{hcom@4Di2WY*T!uD5V5+$Cqb-WPYT($|ziB-Xtq_B0+5|tl28@e|% zz6r&&e~U_3uLE_?;g|H;xm}<6wmx&2-#h{9v&f;(PMf~>{!HK6 zU(-CkM`cHVYwV}VirqzLp!=Ww3_siz!;@p*cBQ<&u}nYb$h#gSn7Q&T*Dmnd0MEU? zbChL^bnSN<=Ag{uRL0`ZyDI2yI)`ZT=*(nz?0nXvoK`(wg&OCpVbq6@<@TEQ#(HYd z@Ae&=QAAyv>LWa&4Y|k8u_T58RfCcZ)uU`QA~`qwQwXTfrU_&>moY|MV7Y)fa;9GZ*-Y z9yA*HcLV=s9=kc$zdxfpmM`m%HopEgoq|oppFT+VuwYau>4_5R>#igZDhU?^NBa4 z+3pzi@1nPTzvZt}&OGFCp=b5EuW8ihK1}C+I`#&8=zT|x>WjYMt2kN=pDrV8@14sw zU;CNFdwc`GDSAFWTU=4AoXeXn`xh>|@F&Z5u$8Ug_iS;Sch~bXm`@ zS@W^)We2fK{kgp^Fn)Y*As4aE+*bHQlQOWSgnjb4y`$zv#JGa*EcnF-PUequ9EeSn z{-wVv@v(On`$p{hg2tB+i}_vgc|NAi_?uKYjsL$AzrbhZ3IFCC%6mq9qPLy*LiGpA zgKq|>cfKm2Jj?<77Us{>n|vzeH@CZkA>6@Gn9iS;J>&j;O8ejwU7Hcs{i~>FU!ENE zsbW6=&Xv0b{xM{_m+;wGlvz`hEw$ka);&VmQw<#t8hbF*c7F22-oPqXZabUp%XP4o z8$#u9_bh!ThxT#Hdj;6{R7;v|1Uu2(@&*5xJVeWk5G%JUy;t2kg_Dzqv?#=#T-aBo ze5?yI%KV&tooPNX>^pM=FIssp&1IAoyMgxoUzDbO)-O_PduL_y?|0gt@&y|COtT%m z;Wh(=6F(>UpkWH1)O0xB4#3$Z)YeI?r{| zXNvi90fN0}Mbwlbjmp_49G@Zh(bTl|?M>^uX4%Q0IilvgG5zALgTm|+BY0f38t!q^ z8{Eie3Vh=GI_+or2)Jixh>rC;*cS8Gj!VGb>-=K{`L zKmOQwfoBrU5&h4Mcc3u@e%-m=Gc>;nv5s;F&WKE*wzm4ps|e0DqRqd;cGMq^Gv4OP zjpur+34ffYa=d53KL>FB*}1;zxU+d?JRGS?7DOk-A=k(Jt_95}zX`W;+ytMM_oP#0 zMGI9(#>_sOXQ< z68;t7TVW*I5mv`12O#shIN=VQlRS;mXs+gSSSR?rYHn03`*+|mAQm~=M_=GgoOnBY zvCfI3AFP$Dc@D1?^08KK@6txB5!UNt8Jo3U$57qYL5mgY=CJJ`+ZxRF6Yk`U&Sc-N z1D17oMzy=$+TgtyzOGT*=7N7MYvZ=f?{%?n%<{6YOtPK2 zjh1#0eW94Ya%IvhdEc-enniazGG#%F)bm}R8E>(z|MuH--=@^_N&)KSVZiaKS*0)>7RVBXm6J6RVM^Y4ECPJUM{zeKQibeyi^31U5dMfV>4vEO~r zf-%r|**@UIJI5Q2GY)?GbxGhhM^PQvE`KUMoLElO<;2gHEsL599UbBweDK*DH75tF zl9TBzN1PPv%sCK$u|mHuHA9G|jMlU6P;L~l6fZH^KVLIwx=STCz&y4$KupV=m@PJd ze~EI&Y6)Il!nP`~o9ZaK6yYH{uKO=-yVK9Ko!_qQ4iz)w@G$^ie(@PIl|FNNej6dz z>Z1ACLxpCt{4lQnUdQqVuf!?55$MA9FLG!63_<2q?$$9GhKhdgvKyl2d`Es9=LR-s z`4PHD&C$f<;9bed{)Md9Rz{1!A3TS3L`Iv-fH#W{5X!R7 zQ=mb`2Q5@nj%#Ec2bXt7e6?pD>ks79`gHtq*#gLWp4fe7Y$|=4cikB~kh(Lri9SC1 zIO&s5Fr{@6aNg1I_0IQ=&LMo>Gp`7~7cKqFd>`N>&cZ18tnCTj;1uS260AbpE-zq1 zAff4Ny)XGcL0`X-PA}5F8v^XR!Lns0Jjsko-*L=?#s?j|)iM?ST` zQrd#gk2+}!x=XN$wdUZYIXw3Na1M)pVh)fC-XQ({OXiR-bAbM=HP$?alcS4kq#p2( ziBj)AwguF6LhZ&q?f>DpC;!B_0WZ&#{wrnNc`}B}Weo8_`klX;@-GqD^0NO#P2i$A z@u=wwXd5cFTO)Y6~z!BofTGq9Ju4Zq;IK4CUw_y*Adld>Khtj>uH^xC0 zF&q5K;(tUFql_M)FM9T&?_aS#ZV!{*$znRA#r5YL>uK#<)s5r6(3~se9v1LDY*5`o zar3&4`%}P$02k(+(=QGjGEVpqWY_=sPWRgrxTj~nww0y2MQQCT8#ZV@PefVvWF6DG zd}kh~#zkKIPM6(6W$}LF{L;8+uc}x_4QWnW+DB;}pMAKD6?B}R#`vzyf4mW$$2LkO z?8ovF6F!-ok%-z%@Q(4G7a^@C3S9lY_I8@XrHTexY$u;ts=j%<20# z`#kRH(eX6seVolcE{q9gQ*0q(I2PjfV!+diI;Ml*hX`-l5`s_eDC;)v3Ln>?`isAn zu1xcdOp$*f zzeh{i$Dy-gDeG8-gl++y3E%v$LzWKNwy!205?r&I<;gm2vgo_HA)BFdLhr#Yw=FHJ zH#LUe0IfGQKCx10L#rJ0rtGoE3QyFr$bL9i`+&Vc`ZPF>cs1)xp#Pw^HVHpIPI^;9 z(0hpCKkbjNI*Ialf89~S{o*r{A!D{GF<`4$P3<7IRHbs$@9T&T^#oz7FpK>gI1Tvc zs3zRHI$0Wrf5{mNyq#^w!7e+ZdR(wO1s{>PD^qjmEgLjj8PO#Q`(DYu!k4PD4DK|6 zePv>Qab|dbqk4bgBf{F>e!Rbz@c!n@{vP);``eHA_mU&*?;_QDU3P!5uZUNPeV)m% zMDI0h=~jC4O@){Ov=23MFK#bHoLs^=X`ddEG=pgETPPiK#yrmfE+_4xoxR5vGL8u! z=aYss@fjILV}Z|0D{kiV;#ae!$j$BLPppme+fB4K`uaglx35Ju-z)FJU7s2P_8t8p}2OmpNt-3iuf?yA@IkA?d)vL2)lmUOgnlr0bN3G3jBKxZ*(?v83(%9^VPM)>YZ zhHoJnXe^y4=;qLzJpTF0)4V_p{ylh->=)J?_&rhGd*`N*Khu(K=5B2a zc=h-_OHCWHP)!h7^#pH~+VVzQ`x&eKe^Ot=ynvC5*$!#9clL3+eY1!7>AzoMf9>_o zZrtmeT|J!AhD+K3DtCa&ji9sM^}^5y5;z)iYTqyQ0VeHicKopZKropw_M*0P6wU0VpTe|Q~1GqbKJQE z^YU7a^4ztE<#y8RiCoXT#47rIK*}Kfpm!0k_w!nZB=H>K1U|Y;yZtpu?4jm?&PtXb z#yZxL{v+Szotf;yc7yY|t?3*KN%P#BByOQobQq7vdrtc|59!!%yX?+(hG0LEJxB2A zu%M01z-cR!Jx6$#vgh&)Tbsj<(B^5-k>)rA*|Xx1vx3;9li^FX-988Df3V#?PocCa z?e=*prA=+W&-t{^ziPYB*HXD_ZToz!?DMs@eZE%q`Pz2-9A=(XqpBs?VR#!kZnhOm z-qnF%Ij`INpIoxXsjy z>D1?kHILTP>3Hn0-gEfCnaX3Hudd}W&u=s4k6gOlkAxT3%w-m|Df70J2{YfIUTw*7 zvn~U43z47yh>P=Y;`{}wG*{=NFV^X!GCw@5%UmX9{89#b=1rez`?h7%qvirfL7e@N zhM@CH_#W(3D~L9Sk0yG1+&14b)3WhIKXi)^Ft_D93U<8g!*MLbceDjR6gTcqr|f0f zca-pGQSQ3^VzXMM<<%BV3t31$wUHauzR4y>XD1EBc#t@hpsDxHdcg%bZZI-4Npvma zl6fp&(y=4mM1!CV^hq!;;C&8lN5M7~`QEDdG>_K(guiy)=#5jxasLHt0 zSH*VTs|g=rnTEG3y^Z4%@NGF|2>ilV#aGk#cJrrFP0eXg&FAe-c_iMqJJvqlcP*X4 zN>xhvB{3cE+wBc256AV^c_m&QFZro+cCuYvi8rF-kkXj`OJfIL3b-WjNcOWFz*`wn zu&*d391-t2@J#qrylVJPiLFt`N2mI&dfC595u~5C;2J0iLxEoPtxdO z@Hax>q0;*820l)-*o!~VKES^|?UM((zJhzV4w|DdcHsP&lQoAoA$K5HX8Cq>+308F zy$tyi=r)e6NwBjxOTYfRK;yrVbMqe4I3Y^`-3A_A2kLjByFnl!k0$I7;viW2a=gfk@^Me8?f#j4S&-S6 zj@TE!-j@y`>`RknN67oK@re7? zVfb=qzQp^qh8=9{ihBp&PbER^vmY^MdCllfU@V|D>L(l<$5^a&c!b8Mn1>Eo1C42r zwp+Y}#&y5wOV(fF$;PB1Ulq@a60%y+Na(s>h|>00Hd-+SqMIDH?W?-BHU zkiNGZ`zHMD#SL#xeD6t{2>-iR?WAJc>YBJHn z414nO;(5NX(Bu~}Oo4y7e4)Yf0CT!pFz2ES%o#v;<uWBKA8h#*0}Z;@ zEacd6D}B&U9c%6^b~F5QLvG|NH#@WKqV~7RI7GqzOnZknwr$Ta7Abd$zH{(5{NMcj zJTEV?8Ow>i>cOL{HpCbv5 z@5DDdKDn82go=9FyG!~0zQT5hH5nLy`_M01$2^`YdYf?%*l(u4PI&{ciJq?l(nkk> zReVYw;TyEph;869LTp>Ln(jdX%Q5N+Z(YhUDsUHD2eH2!M-7b&2o&hTqODz=GS!Z{nfx-%+{{60Bd&H-zUfuUCp8RhAJ@R} zt`P7pBJWT|nBd)f3*Tbj%2+R_XX$6!=U#)ryZL-3&%s(yd6z#Nw_y7;de;*S>ond& zZ(6ZY5zTc}MEMMlZD*Sbt^$7rT?jtxBPzUO-1D)&E zzOz_&B2M4A5@UIC?5<=k`&EMP3BnQLglplx#H*C{x1{fj7D=;h1lp<+YDZIDdlI-kRaHkIeGg zsXe?gIo`9AE-p8!nC`=(Jh3~cH*L1FVrCqB?&AHPsqEu@NA?@*fVQl?-YPKx!86i0 z;IVNlwnw~g73(Xp{_DERxMLvQ<>MkupVs!75yzZY(>S~9_}ymUTdhmbL-c|{Kiwz# z1!cChqa_V7Vx6LEh5B0#$v)CJ>&Ntq$8)p}LXOBRdw!+s?cjJ6jTwIU9eMl3rnXTv z2;7-UX*(oss-)eVCw>D&_Z{aN@3D1Oj-j)H{&R%)j<*YIaKYF5&14@ma_0U zpMRhBS%4=vv_I}ZH?3x}$tJy;zgIz?iP=ZKE1Mbo-tgyZBaVchduj?Jv!7tpkq zeWmAwSR%ad7ahyz%V9fTDe(M#jTznFAL;5u0?CnrS0HUT)``;cMVAEl$-Ik>W0^3^ z;xcb&qdH){4>Xoev<}NIkD877gab4a4iF-E99*0^yMF*}6P+Co`l^%8NFBooJN)h6 z?rw5y>(~N;ze}?4SMFw>uQuMnQ~NV_b4((y!n&LE##C5$^P(f(&AeD`9Cz5hb`IQ4 z`n?VDn`y1z!<$6?TK5jPDfE1t5p9n*SI+7d+q%5!+@D$vTvhue)Nj{IQFF1QBfnja zD17zPdm8yMU4Itl(yaZ2gAR1`fiBIAICMU8y`gv*dYbgRrqWu+QRdK$yjZs}(2^JT zrFHCvGdIcv-Ml(DSL5w+o&eilKcLUk9*#$|R9X5l4iC}V@M&d?EZ%|h1mC)`a1y+i z1$0JkJ7Z7E1s$#!>^C&OG+%f;Zh;MhgvW#SFJXQ;-4V)rOuGW$B%d56ZstC9h~a9Xfu1 ztrmO%UHnz<{?uNPp_X*Zrhk#EbuNHMd_y?I4ht6NxZ})w;TXiBc+N*F0Gj_=A{`QrI^KKbC=tp~-y971>*XU@Yv*A5V~k*JKjV&zHTBfwAYrneCIiHq<<;Ms$t^=cfQ z^-I3j>kQpf%!BShqDwK>be*v!Y;CJa1%IC7)^l0|? zpTm9;A@|g9i~Ti!qwAjpIU3;zne$8dO}?d9KxejtocF{&U4FmdID@-o_y6o%EmuRk zfBGSv`TZL3rZ1xAz0S_@&a~dS9>JpthQR*Tl4Ubq7pqsD0T*6gLi;trba|_~xy2Vc z%6-kSvQdqfet$)MzGdxMQFbg|N(Z02TSeT=&{d)b1|O6T#N7zd+XNnOpoV>$O!jMk z;~8BfT95o-_Wc=_Ih(r7QS6(gK?QHAq&KLE-yiUpJ9sPkZOP;KpreZ6yV0?7j)v(SJI3)gI)imd&=rJp z0KeJ=`F88PD%FKy@^jj5pWfXmLmD){nBI#A=q>C>^o01iK9zsGnh-^$sa3O*Rl z_)NuotheY@8Vh2YOj{9FE1jL$pL;Ir_|>sIBKSweeBG6zM*}}sF5s|4`?`IfaJ&x} z(cv6#+P7K3$D=Q_0Qn3juiBttGR`pcSfSsW!*P77NTwg{R5*IzH@qhd|2zZb(D8`(gFP+_YLRGg5w{2t8shiIYIvxdM%l|Fup&* zh#DR%#&}CPYPyH)xBh^B54wv!-6C2K-Y;r1!#nb7eGV7vbIh}+(Ysx& zg6C+T9N*C1Fg+>q2>+*upbu^dP z&!+iUxH!%<%Hcd;b{YJJk4pT`Fg}ECMxH+$xAb6KqU&Bm=d(=wX&_!T>^G)}tok#d z4Rp+_y5xUB$I;pSC)OCYypm@M9W)enU$*o+1P}AFJ=jw9k27|r(4WUEmo$A4s3{RYoU|`?!qyc#-97(L}cvE$g;oC|bTB{z!1q9(%*$Ct!c# zH(9(yo&K$*&qj4e)7UnNUrMB1diejYoinK&+*60NbDWH4=b#_AGvSsaw}ZMTQ#>r45q{v(~JTzAsk%dV|BwB2Qnv#T{6ayYsFw7}7%VO~B zI8WWmF}oM5*5fjE35gj--A>3){InlqZ`hM!{V!U}QXj!@8oP&RfdYZ|9iRggs#Dj@ z1k8(aeEW;(zU&^>$-MZOa1wqf0mqw$gjH|a$J)Fw`%{Z_3)A>3lMVC@*#3UJHC0M) z#`2@{%wpQF?k9$mPoNCZfX&B+>Fo-uvNNj`_SDkVx{z_&i_O*E`fe`&jBb#x#C`Y; zd||$_+kb_IXg|$3cSt{l{X8_Nh92OvFIKQoVL0hqq%NnkF~O_lEC&0K9R)p(o|EJ) z^dQDxWG>q(vri@iYaYq0H?KX7<$l00+7JG3+k<)~@# zuQOsF9ci7r+t&F(iAA=T&NyJH-KHvG>`!fmFHYLWk8OL4zT(&GJq5k)qjkhtUM+AI zbZxogZMC~-8J*XVS?+jQ0bh7?RhsuFF6Hv1T#Kz-oXWLOIo=~Wt2k%yTjcvg7t@_G z*e7Xi%wbNCmz%>obvCER%FUK;2ICLA`x@qS8vAtEc!1_Vp_6&17ySP^HT1a7{2O|s zkp14_%Hiw*Rm{9B=!N&jj0l*zQka|1B5u8-x8niuvYr4rR?O8++yz5Pr~$?b7Dc zxa$?x*4w8_A+EIVlrHArcxPU()i2XG)~f@p2d&rO-ko^8{3mu|A5B;n(7>h8xuU)8 z?+qtAEKT$Kk2FKloRs!~=!JN?XX(pvbWYBu^uIjVnu1=2<*UJEXnDTyE;xQKbTgZa z>eYUK)~D{aJnd6=fNz;P(7C{TznxFr|5DkH^R!P7%cpKPk@0V%{$O)eYO}er+tPV{ z#_s#)>XrN-+Ka#T@{#Su`@ei-d-0EVW$nd#QyKO{Ms1b~j{*G9&{cFFIp#$)@ieuM zeYVC3|2JNn{~HVcEXdfiYW}V3WmhJa2jYW#YsJm8`fAtDf_D8Bvd&)C9<~i%RQmX0 zoh#$3|CjV}=MnlC@IU%^@BgrmtB%k||Nqg)3;&0Glpmpwvj5S?^8dp=PB}s!?*Gxp zoFnvM`6ECdut{gT*sH`Yc5H(>iu+lZ>8HJ}XvS8baM^xrquij%e?i$kqF3rNbet{G z`4m3}ujJ9^C;S`Cx9NX2%I|75jox6p{%2ra);`_vEL6ktwT{^J_v(1{Bi3o$4EY%I zwUQ5=w5#rIJLi4;rt05c*leM9TYdtuM?P)a-ht?g0%K%x=qke9s_P+}=;`*-KG}3( zOXW9U2;epDpgUNVEReHi-`8TBJ+a5em$7VswSMv#=DRrP8+y(jua-LkrabwqrW@Vs z#0Hq-cZ^}%JMg!xvViaRKdbHa+rymDE!t-R>NoQE7G%cP-)574Tsz+Zc!$c4a3)+w zvX7>+h^_4r8*Hs70N*XqBBG;n=~LABSvm##WsC!`6L!n*#at=aFvEWNwPK}tpq1Kp z!+&C~%zxO(e%$W7hjE`Gbl%4{unb~abpzXmPgsYzNDEYc8~+>c+Ro<&I+q*he7;BD z@7d1hEA$>OP=RNmOPlq*q0j8ud}iDF;mG>luyk)%`)20Z*XyVKXDn*-F8#FsjB3`s zMP3p6&uI7w{}~M#{~2zE|7-S*u~mFyw5Vk-TD~#D zNA!(xP8XH>%sOioa@GR2`%~SZ?+&e(eV(Q5-e2aA5Y6QY&S&0<5nKS@aK)(@&S|!8 zfvv97rYmUOBgkx_7Xg`F(|P^lRt!M!WuVLX!I$uVJeGa_x-DC)v9Pu3W)dz^+&ZWR zHdQ_Q(EmL7pTqP}H#1-UXZStm9Uq5|lEu3}E|$HUz#%~EVLbpN5KHH!Gor;IUo@BZ zBrq=tetoVt3>j%LbV8l9u1_A+`~mROE&oX;w#6rO z4+wvX)G5f+aJNc)o0+G_Ya41*tAq7CR?s@2H$XRl=Ae2i5`!&5g9<=Lf#}fROI$~{ zcWwsmxtJ$8FN5FbNj&&Lvi`sNrEsD`{emQd}d+*nDwjg86bI0Aja6C6= z>HO4YbbcIhn~q#Nogcs`w9|A>|9Fm^*|WeCj%fYXR=_L3t$8&(#tO;{Mc{u%??(q? zbfW!xk)L@}7X0L!VwJJZ{lOQrZvpIcTpT0kHKr4>emSy!9>RTUpGl{l5cy-R(1%+N z?Mppx>4(a`L8fo*9bgaM0EX$bkE#;|;<&KBVstZ8*p4ghwnEJa`WMUL?O~ z{|G0x_U?oC2S(o_T%-^S3m=59hU4rItV3NM{oKA)LWU$Ay*azRo82p|Jbt zd0)Bd^3$Hi8;S0$Q|_~tsX~HRp7`BKPjq&&i?Nn)uL%i{(V5OqXKKH*a{4-}1N^=$ zqB_u7xm($3sXQBhBKSK;vCG@oZMv_#*z23o&C|neI{QidJ)@d^ls+*?@qAno`xo;8 z&hyw4di>*Q{AIs$Fh6+uFXRW0{-`xIb!=EIKQYfNrnT$-`*8A!}luo(V|_C2Ax843m4E?L0l>?oe4T;?=R9cCHT7r$Hy6!IKjr--4b1%_HTJsL|9T6od$vR^p*;4jl<2u`7=0$whjDqjPZhB( z?3)NQmxFzQl(FC5p-*dEG*@DUkC1rih{G{iV%+3QdpW2=Zo}t8# z1pSJbB~w9z;O+);&Gc!6_Yv+e)eicmzMvmeI924Xh~J2~Dqh2%eEXvPsmWBwQ5b|@^tfI05r7*@L7l5x7t&m`@K;rhNK4gO~kp8!4weZn_| z+zNV-SW~PWV)@b9&7LIw9NEu{#D?<`p8s*PUhl6t)}HqJwciH6A&2brnJz>7^BD9_ ztbIV9d8QuEXIy6~#}@*9V)^^VIMz2Gc~7am)2(sw`uen9>$N^jgIMGF$~GSCeV&Zx z3)UNmv&_nVHozCXp3X(tskuZem(!c^4*P#D`+eL06|`319j+Z%uRP)h6=@@kxnfHh zFp-xp{#8M%c@W=Ke1vurf6_>^e757;{`;rCJ)%2>{&2@uJNKu&zAfDL2>4hQzr^-3 z|DrM@IQCUN@Cky4u{QqN?PZr+WizoZbgZ7`+j5n!i zjwPz8=wsD6HZzX5YMM8_{nhXR#-HJj2|iD(*g^*h4vpxk{m20x{d1v<;}cluj)pL-?14jDzri0koDlXIM8o@51s0J-fH2 zGr!!B^$$Hj;{D_pMTxcRmM|`s}^cM0zq<1Gw`48ICjy@)8PN%dskjw7*li36$owrJYY>9!F`PO4@pA zAL*kg?Yk~fv%JJGcW!HC-B#qIJl5m<4cXYc&_T1Gi@v<3qgZFqAv|qsKXPn)y_EVI zO6}Ow(Ecg5{r@BMJ1G4m+nyp1=@yN2yp%s*c#lZy+pawNLVB4konc#?)`afX2;W>4 z@7;yYJw|7Zpq%`ZsH#wZ{|oZVsv{LA9cq)>S`)q`!e3qd)2wruQL!(?pSSd8o^4e{pT&| zjBaiojmby#@%HU#$@;tpjOjz?8}!RM+#T@6sT_Rxe~fYGmN(PRWCB%#K|Q<{3|} zp!eM~pYd$KxiNuy)ko}ba5fP?53r{+P!0IQ=j$lLIKl6Gm-i1bzj7*P#C@psN8{S+KZQl z?97~Tr1c*-SKZ+r&3;_E65;ocP1JA9Pir`ueIo6l|2gs>xM1jwj{F<4>X>()nk?%B znq{|lnffF3Y2BSWI_YtK*NJ0`(wavse`vG&Y2Wbt*7cX)z3F$%H%~p1X|rB6QJaHp zZT`q7rtivRuBS4dgV=P;gBZ#FZ(}r`DuSb4fio`K-A0~Q-U^g)*z)XtHNlI(9BXZJ zbkTS`w((rM>$%uo>rPi_9G~AYIxD}X_4fDZ!tYlS_6PK)bsoPbRVaFdH%!z1qRtc> z5ZF2Z4xb7cg~S_mNo)gZpU;dHOQgiVAoF&Y_-7%e569%2(Obh?z~VR7YdF-lj(*co zr%>QviNq~Z(#A@9OA5Sv{>(M&p%WWLZ0=oXyR%+5*7<)1?fa}aD7x>b)@$Dlpf`}- zAZ8(sJ%~v~1vpS|;TGM}jvyWroBCo}k=cK%ql=l+lg|OD*qiTZCQzL>+tbYN0 zJB}ahgRiDK9gD7_o_%7tBlFd{z+tKFF3h8ens+?8L+h$Ays1Ne;ecauVLy}ni27bL z4nAt@6!1m(1i(IG5APkP_Ybjf(zomVJ05ae+y2228x{&g~ zUw}V?=q~NI3$P3Of_K*AsaK^0*B!;t#Gqp;lk3){Q!IBI;$fRQT7z8cJsE1JU#KqL z<7cV-mO=3ycDn1J(64TheE~-dIQBE&0C(&tzAxYf5PbK(i?}CdPMN+p-TP|1C4W79 zV806-UE@}ik33^N^w<`#e=)5KTx|N7t}KRZoOL5TjF)R%$_JS;?d^Bz^z0EQNE{w- zxtTj~MtlnV$09!6I>-=&UZ?z5i7B5P?tovpd}xe@TJf(? z{(UKzBW2!YyDvSD2c^9?rHn_)Y_XMDDrGiE8K;!l0KXi4X2h-7S-HL$aqL?zy{)g` zP?>z=^2+2iZvo3L&wO6<&RJImd+MFVv8s_b-J8SuEkkW(&Rz$+aTeFTlk#EjhxC(e zWlqOBxgZyvmF&7L2l%+?5H6+-Q8exQ$^`CtMQ~4OBm$yp?d?P$M6=;_Zdm+SR9MdixeoLRC^zjm- z>Y$wGk31T0!^HO&_iFWw&ACcv2t9K2+PfV-YrbauI;*ojl9b8p{e>a4H#vH!b! zPua1{FHmA4W98GU8Fvgh$UoKk! z`Z6?pdTjUE(_`VYrpK1ZxAoagAHM&=s9D)tpZy-z{eM~C|H|I_?pb-p%g|5NvR{ja z{GRXcQso@n(L8ZrxjEjz{W&X%GLb>Y#(jc|m-^mOxr3lHmrhx2b`-t6U7QA;;nCQ` z+`hhzc`v{}HT$@U<{nG`Axp!V=xFQv<8^wk8$W2}aanXA`hFK}(mIZZ&;5bRIHut| zpEnLYnr{kK>Or~lRy-us--tRPs)O-Oq50fcZaP9ElJLLo^395uvTsEl+x$;NPad-h z{mzO*55&>|DYNN-wB)N4U?ASN-xA*F5g+k0#a04yvEbXI)OY9zb9_M725n$nas&@? z$huhL9~8^(Lm(%yV?3Qb><9K@F6{$iEtMMU)iu&L>S1p{+s&pvCJK*MzmJUy=Mm>} z0=;8PzuK3&*p|-?Ts-S=a@inBGir^zmVqY6`lul z-5#{%gTHYe{I|G!DNqMXVaMfoHXq|(>o@Huh2QAC;p5QifPpOO_U2L!&L*GSo z)}XHkxZ{0I%Ws+Pe3#`kEs%2wu4?fbaqnL`yifS*T2B+Smq%zXH=WPH67vwSas8pa z85$pTqdoOFBd5FB-wxnL4UN^J&8@n$j)iYaUHB44-O26hg4X%x0nJ}1OFb8}WJeV? z*%4^sdK&KppO!;`js$Mt)zA) zg9k%>3=V`;Kl=2ikDvOe_(yAMr=vkVGf>kYPY={F8G=^)KKNq{YFhx{Uj^RH%2_ds z^-RBCeV2;p?Qk+Cx5d_>x%ul z-FOQEpQzJ*u8%;N^;5ClJ*h5i;WifP^Lu)|i|zI;92RrUk^SjOd*d*s@Y{em(uYqq zO!)TbLvX~BpE-T+?6CABjX|1r=}K#Y@lElhx8LghV*5e=3p?kDPbteMXs@L9$^0ds z!$!5UXEvV02m3X>n4xowWy(i)uHPT^y954vSBbTYc&)CEZjO11`Q+DYSq;Bg$)4-{ zbcVt2gUuRj)rJB;tq}izh*bnygYeS+wEly=b*kYwr}+Wh<9zmSU6))taZhTPV*z}` zacq;vuKj_>pzW{2YQ(P{=0{W>^*x~$Wz~DiRuA{%8r1UylD%2)Vk!Gj^!(aUOm&OP zn5LVnu9ddXhOf&@+nomV4yb-?u0s36{`1myS1ha+NZX(t(7ub>|MahVTrRqAZeKXB zGhhbm5ojAR^f6TATO*FoH$S9)#vkS2cw4};-M+fy?fW&Y4POt#1};#6QW}qky98zW_Y%I8t;}^)rmN8G*EhAMv>if#V=f~eNzAY9h5HEn3jIJhIeeHP zw!BRS!0)2yO%JhFJD~D(*%r)=t znQN|nyOs5bJ#@bI=DN&nbcSx3r{#etHzuX+j?Nc4$|Lw>x0fUqtS8Ig18=pCJrAsF~Z2_YB|pz#)2o_gwKV>r8_8 zoI9{8j(Cf?mC!$$!Mx{2Q{DyOg3Nzjpul%_32*wSFZOa=NaVZN4@#4|f9Kv5#*nn} zoQE3Wq_-lR%yTJ*H;+6^@J{^0=7^4!i_#FMk7zm*u&*W*R$)&#IrF!UR2lt-FI~{@ zfcK!?fp=nmft%h$FabL5WBTpbktZ>X%kjT|_Wua{AE0(vde)F#oc*lUA3!Ww(AuE0 zOMUZ{$FJ#ZtcepmgFey3>%GA*$Vr|`?TjEi$AUeGzg%wn|1M~3+yA#fTigC`22E}I z|5{p~p`aD#n_$O)3T+IXhd&f<9LFmm2}$;Cg_5pb_m;wR>HOt^a&hy2T~b2Y{<9ru7!8Ep3H5;$2id! zI^<(2W!DbRL#0lP*jn1Br4bB|o0@VLu0vKip}jxS*}G<&)i3jGh^vDI$-X~DBLSnk z(R?4cOR@i`3*P{TD~`?|0e#;LIm5f>uF&M5^FS&tUcvo4C1R?HEs|cwwPS2)Y>!SF zHg5(hR|Obxt(ys~YpTxjo0PQL@=sRQ^^*TfqhTgri^P@Xi^ZfLtHywT9FOS z|99;VEqLmKp8Y+-P4JdzFJj=DUZH#d#%g9AmN(-YGS_|I=yj|`{pQ6F$MJw@TRB{1 zQ{u7wP|+ESiGT2i?tzgz{G8J^qc^Ysr72j*hL3x2(m+xK;}b_N=AcXM6#J0S=DZBCmd9uuz09^=7jrHmR57p%{K zQfHlncOc(WAm~D7rtK=Ih?k7(3EtA}F`aTZ70<_&=wqo5KmTU+R65PHAj%=db8<)9 zH#f^fp}W|N{X5f-$E8=HJH3ekb`)=yztgqloU;6p48F5iw*xf&vl^?qL3^`b`q@w6xh&72ncoN^Z^ z7k+fxxq?XKGmn*j$x9`ZqW7(^=N|@TIGln^^5X618}?Tsgqq&_LMy6bH>t^6W5Yc% zJFTI=HDL)^Ik@DotF<;?`KH0pL zpp|Nroh3vQ|8^(6h4rXS;jd369qOkyZL_|_c(Ru3iH<%m?gr#>(`K?<%DrU@S^t8S zS<>X~Z=j3I-lFzQH(supT}xg2_|3h*#C$*0FQ`?~rA<}2BB7zpY%_?bD2>2I<9S^qk*~a zWYIePXYGaA9}ya-Pi<~`B-*MNU>BLuQ#R)F_qqVk~`elR3?<^{>V^>k}_Y;ZYxRxujSb=K3+(v}>5`Hf_3Kk=bmdg`0?VrUQ${fGTfh z8+s_kP&Nk1p6dh3E>}4yaBsEG{hf4Xq#34*RB)(EI{VFi)7|S<74AHeU+G6RhaS$a zX|yziA>?Um{7is&C#2)uB{`SG`87kJQEjTVro&x6@Xc^PV?w7RGQhh`S*Fj@StQNQv?4&5-x%3aJzPVWn)6dDL$TR-MlTI z7Xyjd@{t7ds_|~gn4+A1&L&wi>gud>&yeSd?!oT-uC+y&(|mqIUhQv&frYpf#VjC zNx>gL;)+1yzm4=wlhH!X^(o-VHk@_zcvhg$o^f;jPsjo|d>i-HROBrP|Av(b;vy1Sbp( zSYWc(tAos$KOyZQ{Tt0`%Sm>X^p45^A(N^JW6sT;yI7a60x?6HR$4AMR03DNg3sy& zQw*fD2sF5ec6f1vD#X_YIRsM>Z*{{!xpiaQ6U5cpqjc8OZ~Bb5L})N9R7B!4bOZg}!#oES@mXjfcG^ z;iB|J|Cs+=H+*^wpTJHbCN0VvVlHwvAK)#0zBIF+vvzh}tFV4>KZ^IaA}WOow2t-( z9FD1tJT+ofrh(n**+&>U~(I>|Mpam!Bkw7^Iwy zRb)F}-}*n@7n%A=j$*?KX$yjsTpZ|ejF86!q@sUfi%rYwP4aqipTbr;ETLbFSihNS z-6r^Ev~IVmAcipW+1Er5R3~N6i-Csu1Va{af-~nFc(b+0C0_Ss5t~$!`TNG(?%ftw z;B5H*_@&xEsmXcU0K4i6WnZa^qHYk+IveE`D&#dEYCX;!v^IdQVLUYr=slfV5Ik)> zW7o`Uin}l!H{kxXSS2IfSe(n8Llq13DAW6@OsbhLTT&3 zGAYU&PnWom2J}|l##&eRO)gUCab=+wN?+NL@-!;grBt*`G39x2ZSRx=<5`B5UC1zm z(Une_iI_qSkXNZl{(>$yw;;KYmq$pU0HY48(i7F2n7O{#6F^1pv}C0}td=v+ z9Y&%w<=%c(vn&!f=P|t|Z=6LsY*%#P%qt3`zrbur=6%UnzmU$|TTjMbJBRIK*E_e) zF0c!DLh(#W0HR#VOnZa$ZX<-B8qi`bJLnDxs|#|=s?$E7s00}6Bnsz`KE`XOy6>+4 zO0;+JtjgYCpF*4`(0c5VowtO{72FnsrzV42AG)~Dp5?yU4F;u^SK@|}rbR%ce|{HR1|)q>A{F~) z%7>?V9wyr&px@c{VbQpRjXGw=6n^<0K3JTz#`rQNQu@D{)pvn|jFW)D;Un%aKw$0n zWxq6;(PL5ZH!J_dB)8njk1!la1+Ab0AN0~RZ*S2#RZ+fKLju4;Y^Ob4=A7t0cH-fmsQ&_`MmB9CG5(5 zPRJet3OZ_R&$IHJuz1!yFP+!`4Y)=f=x*)DGuFWU5Ky^Srwwj0|Ew>L_+9}=6sd4? zHUc1eRk{+&Ia>S1jNE6>cV(d!aFdzeRpknO;wb}2NO&zHx{UYg=3kt>oDRt{H`Tpv z(Hwfb^)M zAXxZ?czVPSB^q^}bHTQg(~MVnPR9T+eiE^T(mbDLI{^x9aoSnMHWo?b=p}Yvj&fFH zG(wn&P@kxgw8ovsnWBf~&%+%WT7OK}99=+bd9f1BI>S|6xkAir{Vgxcq~eyac}C-U z6`zP74=pN4ujXE;cA;{4tREChg)+E z7mfs_k648RUoC{|8s|cH#jF*|&tS(3of}FYH{U?FMzCL{{gl&+7H9RB^T3m`tj(DW<3FyCc- z$n!4Yi+3+YK1~?ajY|&)Um*272}8PxaMjx-kKqO36G0VH3i4W%2^< z1xvB~PDPq>Ux1SJzOL@ZYGETVG9TI3xy0 zs~LS~Ei_YUmhPvo>~$c=u{HLHSx2!}W|wcc3;Z&PTg#;A(a151I%zb>G<5S4<&hO&BMf<0#pA>!09S@{l#)VyhJhneSB zY*UasKKMnyXP2d-rLtf2N^Q4!LOxq4u+qL@%efa^i>1VDeHwpae-0DKkCWIw2Mg^PG(snsOS_7L&aV7p2Rg zth5a4eSQ}vVfneb8U9SGmV||W)BwDdEbE|&wa1;sTHxyWvKcEQ#yvx&xI7^78YZky z(x}gIK95hOS~F-g6nnVa@cg98fQ|oi!?QZSH49(XX*q`!sA?_%1iCEy$;vA=+HmEt zGICN{@m8AmDye)WG_vjpIK@7zm_>$;lhF79`$4%nz+ z!$tdhgMzPdYKbj`tY6h*gqX<7;>a!&f#u%|{4Xe1#lI^hlgsfvvwFG{-QmnQYOveT zSzy(Kb<%>h>Tyu-;pd=tbV099&O&Hi!}9#|l5F>cr|8$7v-dF{g(X6Z+n+SOeBn5L z_O+rs_Ey^>yw3X0zBg5k;cs1@vpj0^rr1Cip0(2yGvs*0P8yxx43l=5jQWh|GwODp z-XRwLs{-tH>?kI&87t6Up z%)_O)g@EC2>>9fgJU-0Jouxj;-tmvJnbW%Klxva>cKr2B+7=KmP{GD|!gD<4LFrq0 zfI(|Dq^4%<9akHbtW@g___^8f@1Ucb)><-uTjUKn*+E;SJ|i_$4r7-UzFr=2rL2B_ z44kk5CAvRN-fV$+F(poS-r~ZGlpRCAa#RsvGR2yXyi`V$*)S-beO97JmuajzG6S0)yp59%sXC6#}&>=`}3DieqSUGs9rw@$QJ1ok4?Ct792 zG|@$A3c@q9)$vmf`q7D-cWVD4T#N9aZy_G;@P@Td1Bb*~<=qiOHQ&`T()qLHF3pP}h@$5RBHgmgS zru@Qq_m%-!EpeyEi)*`JCAb?m`hq&A*HLm@NvFE>eeoipT@Q4DTh3;ti7BAqD z97(GNS&TU=$|49G@CQQ^FHTdHMGpV;f1r0~_!r@LwTN99Jw)x$BfDWfd2J{EK}y`^ zy?YOr#o6KDF<@&?wi%<*4?@=;sfmJOeR&^mw|tB_+B>ZA4W$#Yy~FI=!PN3kQ5%G( z8TCwmXPb%gp)HijJVI9YHNmZ@9f8~X>~>GZG(_t#NvaU0NeMuw`HrJ`aYjMPMl3)Z z-tz{2pS5(ikgp~<1Uk5InQlsC0I+M;u_66IuB2iKYzrRI_Y+$bpDAn5Xl~leXFBC6 z*t=ogOxdb?=B#PF4D5HW-Pm#6*eP1ddji0SwJZmJMA~tx{WU5{-51zRv7Rsk?I=?j zbV1sGPCRY-B_@0`1kPsaAXRz}%?nFyy{k~5 zw`$Y=as@+U+afM}5lNJTlIN04PgSf>C#b+xw%fgrqUuNXKg%^z$5f`b*X=ihLkIrF z(o?P+>RQVNbQ*!(o=z^ULobntH^XZx;YnMXq>W^iuJLQ;<`OhnYg)e9`Qy=bCxjak z_a{lyfl+H;=sMwM^1$T2z-zX6DtAYY9QWCHt7vh?^iExO_%Ek`*ij7 z7`)H?lk1iDG_Mc`D_>gY_;-n5g&lakx($`@L{k`dD2Q zdK}&OLH=CU?H%e7T2<3}DCl!eyV(R;6CJH|af^s!c1{nM37!z5B{LbKG)oZ*!TD!=v)~ug0YUJgK*^9b*m2SP# zOE;%=E;OOL+pH>};#b~7wE1(eK&M7e2Zgo|)yl53$ok#aoXolXmzVFq82(ydivGBD z^Xfg;o|p@=@;IyX%Sc2SITj0y+6L^}HRjmsew*N#Xl>zUisZdn48jpup1M88(|Ao5 z+o9sB$a<2V(SR_1M9EzM+;J}D$f+g`irND?5keiFk>ecKbWkatmr>S9OJ5se8b*H^ zu*D{A-z_-#!q?7y&>L>W;`+pl)Wz!OhOBWnrW>Zl+`ppgyC64mJu0{T74dQH3|pO* zoPqZe(d6ZXm`nvU`5GQVapH3e5)UwZ8>M9b+%fN~VNAs6FNxz8uDr_G2Y`eE>8xi} zvvv!?lOhz^CwER`Ig^W`JQ)4uY6653sY#7MA|l4qJ(Zs^wkjBhKYwagau)U!fqAK< zMzGD+^na&x?)7FWLB>t`l%_0l((=xFm2$>R8c8%?&*y9FIrWQ;1;IQyR^8799Rz`(WK4r-xK{|T4WIjlBvRB=1W zw_8A0K4#i|#-GkLoU*^<4O13^6-kW6rJs&5rb*lkc%|)Oxl*B09)h%(;&LjCps#c^ zXE_cf3ZBY&{*_a;WR34fQtt%KREkW%?;`WtFnY$0977!Zi;k6!AeM0i>sT{W3pLR8 z&$-$;$b)v*-;yXf&c^IR-XK*JoT)Vj{Sf=9J$PG3G?c34pVN8WS$eqn=4LfdU(+wf zCbq1)$c=>WeUb3#kKrLpAdqT7oxt;@ z8#oMu;w_R$p)EG?$JUrvmLevu$KTxqOopb|GZlfKlB>dlOit6h zBGgs$+$ZM|>DRNImgLOmB0;V<;OJpb*8;M^i`;L&+4+|ky}RdL6eprpwhNxWW>w9j zx68&$yK-LRSI>|cZ><(_$h{OFKM~C`q3F@&!A#ba9^cqyT1P9NQ@^>$*Xb8LjDq(!D-!`vY=tC?oDOkdXTWM1z)Y>&~wEfoU z{1B5;k%6(}JmgnLG{bTDf9|f1%>JxbQry<-sFpQ-`6Mb7)L)D2^>(puvi-RWSk*w} zyY~pG%E&SAZb;O0EwAqCtogA{GDdyFt;iDsRG$jZmEU~n|12?Tu^5Q%q^p1x>$>Wv zi(ZE1s=Fv^Zh}QOxi#H+1<9`}ukh%7}!49zy^# zij=7!Hs1jO2KJuak6T88vl&RYgi4j!7s{@w(vvq_X5ME&Cb%1C?0WcobhqIRR^7bg zI1=v->dR9|+}Nnq;TwvxI5^i8y%Rdx$RP@dsysv>J&wPOYAvpZE6{(n*4=LT%f5XB zlAz3;c2mrHl?i*+4*GE6rD9!#N(;;TMmPY=&93JB(84`pfZB)9g)oOOGzo@KTJ!4S zE)!NBolAuvemanKeK?RYfbhnHl2*0J_^IcITCc$&v(+mVKDUF?kZLno8y~-fbR5(J zP;MZzlL7Tb>^{r9H^GYPx$yU0X=4`H@FkrY{BJHqctZ_y2k#JNZU*sT5pV?&e6{@C zapc{<4z_U>mm=mD++;ku&V#4#mNJv8b>{U%QG3E>!k(x>BavEQ9SD4pmgf7S@dNCc zf|(D?`-6`IQKIYP(w0xpWw1)iGb$Y>9HZ{J>O!W=(6eIVzzoUE8D2O9sow^3o%on5 z()%XV4xd?zKOMrwK#C;J-qWASH*!)>C@AKnyb~$JV}lNGXjcU`nPUbivi}}R(g9)R zV4lTgnkD*-?04M_DYbPB4FTxRierF8WzpYpjL zg&^KTZqAnupdrR{5n33>rePhroYL9=QILD+;uUUvB0hb>laH*BM0kD_Em<=>Q=B%} zk)2{WbbU?!wDVfnAd6#4oVH_>c3uWya*kiYjnyVa#Ua;SXHAe~!C6 zq^_uPTD6i*^UgfOv;MWRWBBsHtX-Jyu)Nk3Zv4}|{K|s6JhxG|{63jXy->Gz89fqY zja|6Q-L~a)hg?&Xk4aH+4CeQ_hKO{62n^Cd=KI!z_xR79L?=l>p2jW$jh_l%amDBS zWQ{<8=QmO=b#dUilvP_y;J1Lem87%QHy#B+^I_(3ELPTk2iRve(CMm|BZ|ozzI6!` zjTNr^Iily3HvcHi7rNg5{mcuSd~0c4BW1@h*m@N~dZ(p<)t<`7Q?5~*;LLmY%lEiv zcJRFQcewoj89JON**gTzAykF7r@V9yxhWR5lnDJr$7Ko})%=p=n(RJyv!A#5s$C*@ zmA4l}9&j1#E_7kxqa8J^^kI%7P42ta03A~&{tpXp)>s|IDwcag`J~4&Hr|;>4=>&Q zZ{tVXLMX5|b$|I@b$IHnO9V0^suhFRO!`C*VU6`)SXGXu*ta;7mLu7qlcSRmix1gdJ5|2I?}wW zVDmp*W3Ceay!<-xT4tD$ti4#C1b<&-*^;y#xl;Q&a3FiqP zUlX&xHPF@uCtIoE_ka4zy&>_Elyf)+nm)1b%6H{rDPr{e=9N?zg_f+|%M^S<5hH>~>b%UB~bP$HwGp>zd4gMFuMEuoP!*!F% zCNab>5v;#=T~?iU+_Brqy_9zdQUr8)M19%-R3Fhn`j9l;W4qswjW3|`T_5(j4Y})6#n)9aQX>!;|0oQO|v9CvoJaelb zEs`&D_e&|b2q|{i*y5VW03oKlJn{qi`*;r5JfSVR>c~T^r4byKJLdj%8dLFF^f$i` zD(_tz_c_bblgqG8;?Jro`Y(i67skIWV(E-MZ&$uLEOQ|9tq4Gb#fDN%E1o-e6lUt4 z(d#8-qB%vv^Li{Ry(M*NTA!?Bm3c4-XAgI}6pXSQJexW5Uf4bPOg{?Enw->I5k7DW z6^XKPd|1(6{LTmQG$t7ndHo56&Qdw~A)C77!JjO2ra+b=(3g)9Q}yIGb{HF}P%%+lc|B?o)n zYmZuiN)@0ShuGfU>O~e6$trFUQgpfL*SHfRwMFTNOaqoLRy{Sk!S5Eaex}B%3(!7# zeI_?1Toa|VAB@>K9Ynjz??luz`HW9_i@yjn!}hO`LOeF23x{_D>S27IihguovVYHUuErUJp@Ir({c*{REk zh;11kj^iS(NuLb3{P`mBR$nJ;{0uk?p?HY; zg{`sr9g)RAXT&eaTcTj{W=r=Fr*H_*MXI8j7aIH023fLSzi6}XJT-YUc{=ysQ{u8F zFRlwMrUI@kLNyeqEyVb)?@EZt31>2azNC0AtZ6E^dR8w{G%RBckaU-QX8skh-#?Db zdSYpB6n_9QOqzdgm?iO;Dt{~oeZClo(Z9IcaAE%S$N^WW+oIVq$~}tXy@Zsz|6BCw zgO4zMLP#bb3$^}I$NT*?q1!K1l!*K_=ji+0q?*jkt#^uB8lNY1tan)y&*8h-7)2Xl z=M$cT^FCV#;?qRYiDaUYMA>8oe85ee7VwNI_bOD zwR)3Jxlf)TV3-Ye7$at7<)?_XyHUMOaI8@Zo_6kPl+Ib|T-yC9*L#=g#jndN$UTV6 zR+H`($h#u@DatVs${4)P;1uX}42ak~)o(__657KyzI^5a8z*Nej0*mnbJlU6XoN3W zWLW<_nueYUe9pk5zes_a%j%T^5$~ zZlA6M8`8X~SfzM)_R=K^rhT!SzR-IBXmcJu{S4cj%+Sjz2^kZwNx@-Lf)I2`;W9u}C>>D|dCCX;L6DnVGc)UHTE)ymckV$4t8l6+jHz}GpJEYrLii49{l(V05A)!XXB zB2=R?<0^Z1i;LlEAqhA4a8+!kseCu_87 zarmAon&Kw>_9;D#tDzn^xpFe;9vBwv-QXZdNHbYq&XnD0mqc*c2i-dMjchOsM@6Mb zuo(qR;a05<$zrJsE+2pHA3?Xu%U)a1Ghy{j8vi@Lx2dtNe7GEq8dfH2t~KniWO~Q6 z_FHC9|H0_6b{djN>3xP(wToos)CLsvlZ@qs$-;46O3e>}2vJ>bib@?=KsCAKc_fLAe3p?n>1XqcRd!9qk#Lb?#4TQ@2#8EYoW43|e*>2Qt6` z;txB1-fMP2Dg6P2DsELKY@C+HrJZlqVB+q{8$Y?%7>#Tx_;3-ATWWWJ{U#~?037&# z^f?k#ug$sd@gJaz0;^T-Ft>M(Zta5i1MgE|R4gFo7?brX_RIz;a;<~@UYIiADmI&g(9|*bduo;=2 zkr=hW(+U3Kn9jRg)u$n~`~`0PLjw{7-&FjAVcp{@m!WX+y0gr>G)i4$u~8T(;_wd4 z8qa-FO;WITODCJG%)WOSGAxIOi}AV?cG@(48ShEw+YH(-HVY=TkA-?RT+H#3l#*H{pKtzS?wnj2V>#O-mfc=Fxy*(H=1Vu0UUdltZhvvP5Z^KINo4S zG5%!!7WlmlZ~VtM>A;Pg*>iW~B#=>pfAw$ANA7Om$bY7aM`5Ycvj4J|@nO(>HRLd~ zl>iwdi3%;=FE7m+9eo!0giWuq2W56Uhy7@FTp6N#*)!>$T$YCNF0!<$3yItsTV2v6 zUh#-q&`v+M?wva|@r|zhQQTCJQq>DR!55&IeU=fZFGR$m%-8%6K(Vysjmj;jsDBB{ z51mq^2~OqxYKe}pEkxoN!$B#6YEe-h>EV>SpIsQQ?pz3#OFO?^?Jw7);my;(Rs(ii z;=OI%?_Bon7@iFJ&jH2{R4f3%=rG&Az}%}6gfq23D;Ry}X2nB_x@BZF$Cvfk2nH7u zneB8T_)eyV&mAG?@JV<8Ln0GrkHqg0>x60*@GqT`L(>;z;I@Tj;G95~W!R&d{hCJ9 zy9ES$YxYhPz;_9H)+;NVen`+*sGM}?9rxED_{v92pwgroRxaKpW4rXqm-lP^V#$aF zI=QZe6sWnvKR8ep=9dFmU5IenUxM50kC9@d>Rh%iB3v4`R-rD9yQ_Rvmb=|5Rxmx@ z85f6T(Yf}Gx32vFhFzJz!3Y~Z9JYI&K!1KqmWFNK)aG%}a^6Gb&fw8%b%M9Yf(>i8 z=2w|?we1(k)c57FVS%i-;%Z6MO#nJt%TS<6dl%h!K+OtLN(e6EbV5a5MOEy1BZF~d z$1t%HlKEi4>^Ec>cjOSnq~vQbg>a)~A6I}$x5^OTOVC+vN4E;^O!W+h-bFqyd|B;LF_sAgdZCa)9a(@@BR@0`tdIz7iA%lSTihzl1K*&iOc z=wEEF^4asf3w(mXepij!RcbhbNPgL<{rUc=K1@U}SbYDvCU#9~Z2ct^Ae z;%r9sV5JbJm+G!xwE>wE=vWRl=-I}yXHptX{G|r+Q&|l1nTOlnDw3G^Yba>_KoB%K((+CugGpMmL-xDL-rIdaCy>DqxgijEsbdJ6$N!6DJ!4eJT%q4%Hv} zB{qs@Y{esu4``l%2*>HX1TSlD&ZjHZMPA=F57tfp3xy4xVUak=_W>D}Z zLEp{zkTQeye#|Ssn!&?v7VsT7NY|R?lH$n&m`88lv%})0@YQ(5kDEKHLL$=H%f`NB= z8EcanK&5fqemazUK99;p*=#r(RWAg(uEIfzVUU%W%?VRs;lxH zIO>_t$O+p4IqG0bT$!fLj@^At$A9%cQogA8(NXW;@Z&GcoAHcrF(WO=L4vK%fp3hSFz-Vn9wA@LCm z&dLqbX$JT|1??gLheFb`PszSJpYeKALG*U%2D?*TaXpcEQBsx{G0STIU(UFJA^VM6S|j@vt3s((()q;LA@I z-;ZFNynYW)2R2M=$i7XOyoda(Dhnz2E=ROdYhI( z)(=0w25{R04iJILw@?Zk(&qMDYqLxjmDGS%nVPh2Jl)+^vciuOZmV3~vkp0C?vxR8tAS@PfW zUaKR{+bRVmW5Defn@no28`E;lf?YO?}c;NI!Rd)4v*GR@IaY7T&(tifz3uyD*pg?MO3@`$fVAdFm;asuiv) zo~vb_FgGcRDe+c!(ZQ9C6}%fQfl+aqByMDBk5ouuRfI>oVtc$RNf6uC_YAB^dlCny5=nCu3xY}#p z4Ku*yGIj&x>CGtIAM_O-ZBZRY%ONrDD+qMN<4%3+|6L{*v%*eG5eFR{I zh93Wr$yaoV{Zf&^IOTuBT~CWBVZ1|H6V9Zh`^(g!d-O$% z>UAoi7QOC}*bQC3l)7*b_|H(|O{m^YJH!~+zrbK-_Lj}iEwioZ{l4m!WwyYT52h{{d&%1%nE zoYGnb$Jr0R2Im^t2}kErURIBcn|itN&!1bbXvn*6VPp8R7vD6FH3McxozaK_T)6~( zOU<+?FmnH(m2nza5*CLDT>S3d1`y1u#i6%(>s_ZfSSR!v8t8aleO;j!ECS4BH4AZS zce-o+)2`L6TIsSpn7w2!Tk@J>2>4Ir=%@ojV3-eNY1{o7I9jbzP)>jCxE-#SHr$v( z%$%@cN<+CRf{I*oi-6kb=bGm3FunjUjX%MmRzcqmy5k!guR@gxOOb33e0VkEZaK1t z((=g#=M|f-QlOp*g{hcpk{cL@i6V=ud3s?rwClAa z4XRrl;%SBU7Q|4=N>Kf}bvTBuFWt2S6`a>OvMKQ$U=4dQqwE>7>AItS9Hd{PWAaIr#&i;z``wKP z803o~iP7lH4qrT6*ZbGioc5EqMbA-Y&IuOkTducu%2n06#_t$VqEw1JqawNgBm92PTJwM=WORZT%_S7%b-0pSa(raN*FW z@Uf531ZZVs7d?a?t>m9KpsZ5$?g3hZzhd(TYrK?fBSl%Sb`C$HH)NB#@T&(=WOBZzqs3%JB~=IezBHadidhhJ;tw31XrQ#t;O1a6aZG2?;JE&;);N1W434%#<} z-Kg{Mkw8r2vXEFwQIN!dR_nuUY}HfQJMB}U2hObR*1Ng!hVNOd{|xl`Nw(z|3EZW9 zq7|k!&ziVOQyOU}pTVCXB=g=OWLDpw6F;eZ8XHyWY7(EXCwbq9BGfjbEnKvcK)q+H zRIzDS?=CV$bMH=TQ=ujxU-D8Tkgg~`zkWGcIyczdUUcvGy83z$MefZ~43AIWA$T!p zwz3o%?Uhq(_egctp~ziJrsRA`poqwMbVYLc<1MuEN>8t%NCJHKt#=n*0ov-h0c#L% z7}cb0x8-jSBh9_Cx|id?oxgFhbA$CK*DD@F|hPRNrbW(-bVC2hOJN_gM##+ zb6cQCM9QXw^Aj>(iH?lu01B?fT?kwd_jF!B`IeRbN`_@PZ4{S5jiy zCGa`f2Tx|`Cubh(6_M8;lPLyxUz7Qez>E>{cT(PKau$RrvTn~iPHrbkRxUx>g9WcS zJiYUXD`WGc!Q)`cRo>C`GR53LLxoyZrIXFz$lhvTIK2GfCkmN&d(8YVMC6h6gyf6J zJ}S$|KlbR4tTn8!tyV9~xmRUg?JlX?@9i7u!;)wkBdVU`Br1kPUvs(&E<`I$1q6&b zn*I-lKzYB=&1tO%iG4YR$1;v_0J|*YO`3ZJ^;6TQK}{G0Ja`_@Zz|1gDxC$~&dpUCRS+qi#68&Q2i;A_u&dX*0E{rd*>UWFEM7M|8|*v$50n= zG1jQ(^af(f$QUpOti?%Gc0;@P7s%^R=}Sbe^G)xpzxBS9-XQ5HXQh`d(=jS?+U;BS zWjfYH`*aVbH`!!5wGQo%j@zWWbKlZ*D$pms!=j7x1fQKG?>y6G4o#Q2dQcrYd;cU_ z0Y3L|=V}}c>K5jU(Ee4-?CLZ^IZjWgtJ5DL;Ap8c75W{Cld`# z-)>(+-c(;G&*@*<3V7C)`uXiTqPM7>3;qMS$|w_koJMJA8|{9^@AF9WWNGUp`bJxy z^Bdlvs6A!1S48cdBJB;LZ?rW~+S+LtXxbClIjOWXITOj{vH%9B67``n8N3;#x7@}XGrvyLg zgXIo^uQ@?%fJJ#2QfB~l0FBLlZ)?BH>iiX{(s zjCI8u^qu?0#&a2WZ}uKq`evUrwAC%c82(J) z?@0b@@*nUY`5WZ_yOO_7{(mL9DKF4}><8@Le6k|FML z6EK_Qe6BRMDh;Ot=96M;pyNVpWmzoi`Oq41n&|95BR-69zaLvdcl$>8V;P6^!m02# z*+a+2g#J42?#x5_ZG_AXvbUvAx29YJwO`z|M{VW(OE1mJQTdxFZ8nwpN^phi>Hiuk^RBJT zb(D5DmHArAT!nu7>wZ6wek&-gx#w1K`JHx(RYR*3pLD zR*SNHmFV>yEqZ-=eg8~l0sAzrI5OdrbsUU!Y`1Pt+t%$oTDNJobsIusUE6NmeC^gP zY+JWqQ{KvU>(-CbYHaJ~rT?qjty?cjtF^6L5A@q^-MZS=&3fl&9AVw=kae@4H;1fY zSJAz2*wzr|m*sCZUk3kz>_O^20sd9H_i7UL@sP-qK02IEeJ1=TdznkA%sG@^i&*Wl z*EsKEB^`A)QQf_4 zx?{&pfiJcPoI7^p83DFavF1YMdcKH#7d;@zF$ZG3vg^dQOwftKm;kF@UJQPyhvVKl zt@zLcyOtgXtRKsCG}`nBqPc|U7O$f6e#1!mg9PIUC;mj{hqnGDZG9r^i*)g=RcOau z+)K62V@Ah==z(CMp7lINF-&hz+Mnxade7%EE_oKmLejAMjCSxn$JRE|4-m}3THAev ze6d8w3by>ifjNqT$d>&t%>b0mbT4#AD?r{y#QFH5EDg0(XRo|skR{Gv~F1As({?D?NYx*`@ zZabBO3}B+@!x*9u^RVzYr*vuSE9Q!BhWXoD5hvmmbuZN`{qyQf?5OK{hmss80{jH% zFbARu%dbJ6#8YyKz2~EAF}4W%++SkM>Z zoPKnJE4B90t%=%+4Q%HQe+qW|yNvMfC2#Cct@diUBw}*BdJ1^GGtAZAu-cN=Hs3*s zYqmw&-$3oY0NZi7ACG}I9ji?Ow!9E)QCBa~_TyF_&eOytS{Gw5tw)^NvDO6bJwa_Z z-{9i-K+sXQkGX5RF_+SqZ#cr3{W9hUY-1in?HWdB9&;15e-N@t+dS&AK0h&!wKR{x zN0`USOElh5PV?~CaOyJ-=`-Uyr2PUqjp51LXl$r+Cygl#A0B?l0_xR)jr%h(W84EH z85}HTgp+>Nn(_>68`H%-FswWSbxaqJl(%BKxT((@-8!ZV{0svAv3@b(0fPfe)e<_x zzTi^DI#AK2jGqjPe4=uj2`0Puq@XK{7#-W(dsrTN8vCURv%PQa#IUO9+1aeA46B-B z9cIu2U(0cG3avBl*-Ba?gFZ9YwWtdERMRIypBE`@$-1x_?yph9S5Vpe!)ij1KBK~F z#JmE*E6ihY)O&H$eu{3TCk<|Q59Im_$Wny*rbIkN4PF6@tf@E{#;1ZzDCF-Ix_ z$u;l~y?mJ(EPLIr$YmPQI+ZW+v?fPqCvW%cPFx5i$Le~aW?(1wK&OwQ1t_l$x&^GsV3b8OAr}K(& zenjKMIYwRyo#Pi?-=9L=CBMlvQD+jh0Y4M=x=W-k;-8@G0k4zGPNTA(c4g;E*=MAz z%iD#09UMBnlj&|(cBYiQPs%PQ_=U2Af7i(@m9i*@^0!l2j2q?eL5va_JM!yf{0IB% zx+AD=S-ZNEZFS*?yiDreNp(f0Yvu`0+buq`+r$Yu)-bO-Bb*%mZyg6@p2P_O%;(r+ z;4vTXH*cphzmqbJ;PvNZV}%?(Q>WhrUcqU(W=kxb3?WuXFm57N(iS@ZEfU{jBYorC z#b8HGXJqeF@cR{3%m1Ed7FU#;lW8q+4qY+$Ukj_4m(D8PhZ1VTC2hE+4frNU8=q1e z{pfeYZ)u;Y?zsdPymX(PRHwh8%aj)BI%V|z$1dSy$&I?LEmU_f-NSQeenY7a`~%h& zWn+Qh>`uI1^Ms$mJ5ZF3^>OL-n&%5yUYW%D2uOUAF_dSWMaZ78r(Is(-zLpXX@%|5 zz_ZC~mxg#sM!Phe@9$sR&oB}9^*Y((YP^XumKKRSGLXgsnGfnC9q)l#V%nTQdH=QL z;a&4c-m#STu`O>3;JxIPQ66mJCiK;@QN~jq_&6mJ8>NKu-28vVCMna}fZ^0z`01tJIDKv`+h7BM%+#9?ProS6iI2cj==nWrW7_&RY zqKWCh-(;TQTW`7u#^l82#&csI`v}&blA))yPIOP$e)sp)B?lanYa(_f{KS4l=e~c1 zmwE90Du%00@OyX?!Ed7TvBo~%XxK{@M+UyC`gxZsgY~gSv0cjm!CTp;9KL-VT3!R6 zL!CtChFBSh?>M^So)pqP7kM1s?|C=3riR+yJ=|ZwJwM@0{6~U;ZNJu8!{68#JzK2^KuoX?JQeeM1lU;ZD1E zb@BS)gE4`3xQpNAqrF z9|)S}igO-t$p)`}!@6{JFh2Rv&Em&^$~cG?(`^S>w;FF$|5${5r0TffIxZ)C3g~j9 zSbx|rHqU<%{Zil|KP*h^nC3ohy9iwRF#LZnOfw!v^<9=Pca)#~r1p=3vO&=$?dk1e94>MAmIq?-$~I)DFsQtLZDL+Q6RX+Hlg-t=~>?3EG3JVH0sz6}|7-~z3S<{R2Y>s>?7H;8w9oaqQg-=X#X5PlU4gV6_I^Wh9= z|L35)*gnA@PM%5Qa1|KlE3#$08^ z>IIH}zUXd5v9`YX%A57M%es5Whc3yr-e~S$z0u-6ku>YDJA@uaKHL8-)U>2kelnH6 zp2~Nl^7{n;gS`^u2=H~mGLnT~XC&!@Mc+1Qw{!8o~F}L{wovnUHI9n}88yur=!%cK|5Unr&F5}m{SuG(xSHZm=eu4tidUSwr3idK#EPc0?yJt-;#ir#rD%2j7CM5H z;#k8_PDSE^0>Ixe|7ZN3-ksHg$Np`yD+M_s!-fk)Z!DnceDM9Tzu@5qL!kM`n{_mX z@$j`EKJ%7<2jFRBUn!s^2E^tvtYDo-8x0S5fqE7{_$uL{SvD&u_hnP|9L!n(+PpF2 zH}g8SN785dY8ySi=Tvt3}G$&*@7|ZRJ1g-;~n6X{SH^Y?HRhd$Ty(Z?n{O+W1$GH$fiN zn2|>n$=Whs#i!TT`K?|%?42cB?0=8e7X#cYmVTR>G~b!w3Hz!Yhc}mbz$*`G9bs#& zyf!}l(e3=?-P6u52G+TnqoQFPWg0by_^DjzaGmzE_pu)A7a5 z+_3*g@jIah1-#+kAGhwB*iP?k&riG);G@2CV{0leuu(yW{)r2+^gCoBrEEJGV7g6sgIGu%)c_iQ^QoFgY*f^#+%l~{ zmUsG|)JjUnUhVzW)&$})Al{9`b49!$RvnKxjQDUGi$B&;{WX72${*{c{M1(N6W1gS zg8hXA2ZsB4DYv2Z*uMPjo>W0F6dyxnR#3YIMs+;5jLK4<$p1|8gOtDO2>A)hUrp&> zV=OTliD0$0m zc~c~Bo#Zv!@}^4O8p`|nR6VYP-M1z>c(3GfIXqX!t#S2{F~wv|9YntmV|$G1@0I!o zsJ^Rx{YZ7ZNa}Bs`Yx#t9o$9IfB$$dWsRY8`!+(=aYNeJZM6Y-B}d@w_o!#f&Zh zFH3IR+15`-hK~_$&+6}Aw(;HEuH8=5u2t?qTe-g-(7tO>?q!>QS0|PG`qNhC=|Fx} zBe5v&UB5r$pOs^e^7;_&8;F{>e68bT;(a-InqS+_`EodB$r!dTFnWIUwYGV?@hMHG zoODo+^V+X9PZ_#%uq!pZf#e@-IMfwiYnW@n;8=yzEF#)v!q*x$Td;UM{zo-#g#Tmk zzd4#X3b83>(|m&S73c$;fn47;Jhqbz<1yH&(faN}z3G7O#wE~edx!9g^@L9+h{n9n zVN^YX_p6L$ck>l&#jG|6KX}Zd!Ac)%Wj?PR|Jx}tEBwBO+rQM-{>5$D-@$QFj7*%O z+lj`0Fvza4x?0D!zV*PKwA)K`IQ-GU1XRB-3l&$!Q z_HO>Vt^UhuiS-WMhD@w??|PQAtoDW!9YJNS$zH9&e!}4jKT7~ z{DQ=KU+Zh>hBFov{{5de?BA91+o<_(_J1)lu~*{UVjLF#9Wfz$|1N6IlQNEIG`C#z zw{m_>b-jKQd=B`bhR=@PzoD{}hW}>)|3(ZM!t3#F4-VF_o^R?aeO~bUojaVcqc^Vz zo@pvdU(kJ4-09t>?w~%8znN&Y$d(oq0nJLJZHZ){_poYPyU zB9wok6EtjC(w3_4IugC+osk5ezcBdGj^ikQJ>gH0f&%tKTNs>`oE)S)??*dstxcyo z2=8Sd;lnr4f6N>IG50TfLy!C-$hLBwM634jM{|$yM~knm&Dv0Jpth}8Jy+BcjT?<} zYz4&5fq#fZwJXJVBi?WSJeKX&-q@gyzdoFNXs_lgE~rI}fOC>Q(QEJRFm}1VnjUNZ zW_qlQzFqR!a-i-1BYkQQPLFxM{^{=~`t(2e)88n!<(nUWAClkgzxPtT68asazBkcl zJbfzYf0({;PDcx^f_=ZIQR}}sMTRhe;E^Ra?$e;<#-9NO1T;Tm)tsy!cdJ|vDfd-7 z`SO?TIM>>RfVBC1vbM|Z+2z#Dlb0gMFcyc*-*9gz8EoxB5 zeou7epskkQg^Z5CL-ZT#wzB8e#QOSlDirV}@1s6fitdGFV{>ey)(N!6(S$V)>T!I+ z;~1ByZ?^_`M?U*Ht8Xxe>P!%R5XOXc{(~}!J{!49f zSuCA_r)hrRr{ioF*z{7~hu%zA-S>I2Zjk?iPd>mqFJrediRR`1c6w|meSGwB(dVbi zj-#^UDL+7;5%h^4)MeTCr)@v}Df@9Ujn}#><@NfmoY3yBfZuArD~~pa{TJ$sd4fy!E_Rp$uWwCt3&hRtRvbO5v-W_lUqp31BGa(q%|do_Capi#qd53B zkG1Lm_>qBxQ~Vy_%nbX6d9bEoEB8++_ub)i#z*NODfji^^scT{4zlAS`euK{^o{s; zNN<(&q@+Ve(|#Y%pz-=}4uf&nAoF+J7SrWObbe>CqXwOS!QSa#ftT6kfQI9De$tw; zF|l|6{nzbhekkbv+ym(h&7Utcf9fY_{y!W;IPBkBQ~5;mV-A~yH=Oag900#?3*#bh z&qE9|58?tAT0Hs!Im__p3pvO^=Bdx;*zK>()AstX`vRZQ;?<(9Uo~i+_da^p);`>t zvhpq7(lHI$IH@ZiZq;@i(sqIHG;tqF8q%ruZFjM?{UFz!uRM~EdIb$S_5#*orJTLb zx@(?9{ol1L0dpzvwXkh7Y{H!Wh&nU2RR#Qr=RCoz4TR$sF9!0a{oV%X-onP~_5I$) z1aK55$I=TWbA0f{Gy%SiUx$psvhiYGC2UE(TBjXn#Tl5V_8$9g;$L*n))usAe_r(8 zT9-$^gYLc7$7^=Auzw-Qtpc#cJ*p+K>bETk=+f;i)@y<~8xLqX0_y`okHf3iX+E{} zBK5&>+k}_QK6EL41+@+N@qweXefV?K#>x&l?Q2O}L20Wx=rP`LvYdHpKScFcQ+gm) zojlX~F25HuaQ|Ypalf@@)Za6nC5fAe*34m_E~7ABdY(p8T6#O|KX3A-w|_T9&*RV} z&8IF1R>kuxs^b3$zO)^<80=LeG>%&ig5w6uyk{TKdRU-4Fs=fb_jttCq4`;J zw$^qO#*KN)I(3lp<&?gP(p~M!pNsMv*(N!$W@t+SIO~f;b^Wy)TQooP*Dc)l!M^V% zPRF{^y0D*dN<%DAw)LX+#*5z-=;h%o3<-S9vFZ>H0CI_3V{F11S)yK~|In>tzZSDz z*vYzQznIhKtL z-;cT47UyxurYb@_zPWRCT=ZKjzCipjelMP;{5g~!qx4>q_8el&N?H#4bA}({s98*O z0`k$O6;s`ur`Pal8z26^l7@EhAMs#5m?tsU^Nl!c2BAy%_lH^;-$46^a`&(wzpJKK zCjl>UKfa-~0>KFn(C@cJ1_l}lGLi=9+KCJ=wzQ<%10tSsI+%b2`VlH-jz@XvM1mA&UAR~<~J z8brsZqR&SP_6~Cpo58zSu}X7j{qURC&#{R9`@4R`axAnv{EEfwZ^9uy zx+gklPwC!a?*doMVZE<%`o_9gYqXTs2m3pL`dW9!dV(vX61l$hyvH-B{o%CkNSn@g zd@=I@2623v#cZdJZ?uyaSf5xOn4>QJUi)1~95riSUABGAlYIre^mlzj+4q*`OZZn{ z)EspktxNeRJ=RI|jXrLovErNXz|@36x?c+qeChjanuVLMK^l#(V&og_6VM2}p%!CK zzIy)OBy+N4at#uv>~UMH({JadGjze_vZq*Uug#Am%6~!S{y}i#yEC949!dg+)YHR{ z`&#*6YwC`6z8`V#lXG=E^_VRkcmHEbhYTs;Tb$7$@5nr*IcyK_`wD!Z#VX4KngjjL zUAT8Q(i>{s*IZu}@1w>k-%xbd)c8SfsJ`NNy`%KmKyZ8*aPH5Rsi~2=WX;IMssqdG z?^PGX2u6GERTo7Oqvc-Z_T8(3fkxHEcxY#U-VP6y8Re@>mQb0BSe>f>&zz)#{WLwa z(?$Qs7Mx7c@u>RU;ojUH#ImyZN9=Rzm=&MsxJar0pup|dEB|YCxG~Y6j)fUok zOD~`RG)Zi!avMuoCPnyFu@Q?FJ7Uq?GHNe|~D0BzT zavAk?0j(YDar^FKf2hxT7A7oTs1xVvGg>0^#h3hqMRyX2mPLNpvp38@+@2 z*oAo59=(?itz(dQ>PzSbyw0&NJhT@Tp6afhjA)S&o!jFRIv>^;G4F~%U9wDg+#%X) zFRfiy?+4spG2s@?MIR)F{>&KvdW11v-foQRXpEj{qq1-;Yph`zr3kUz=G9Thh-3Nh1ct-ey?1$Z+iuzW z5;|ADS-kq)UMJfHxmpFsdykBgeGAo_B_%Li3vM|p@V?LGYEjZj3 zCO{tj37x4~XIsivZtfA5iD}uXWq- zg;`E;b9(<=nvWl`h6w&HhM%d#a1Y~)RU_!z5sB90?Lj;Rns5ol)y-@)@H!tvQZxV`^(HeZNSbT7p$+-~w_E4gogHUVV$-v>z$i=@E?s4~W#|wTOKg)(vH2@S8{Z{bZk4vwTP1J&(TQ zItJp!rjP0mrcZ>*pf1{oiQUK55#YFs)snCEeR2t%VxK4S8zdh(g#8Jww9l`l{55%- z6Bo+(4odqMNc-Wh^;p;DZDt*uJXwb|$9M{-;veCz+r`$IrrJK&Tz^TEr!o|oOAH=an{df{S|$l3T@}gPFd$NDrwN^ zV%!WoCps@yoxPI3QSuLerO(A+$fs$)F0#D^WuZEjsaSnqD6r*As`Db9qqF4y=U+ij zqE4MEwz^K54`N(H=F*vQkgj~6Utyc!i`nk$f=kay-Z_k5gO6ZC;G86A04iUKLLwqTpcs$ zGvY$=T}?E>c#ozNS-%Xv7AoedTA1Q6MU6*%+oCK%u~O8aev0|sx_t__t;{w z+H589UbXJkuzM=gW2LO8mqXv@3tj$+&9^`vweu?LVu>Gb;rFEP);>v*ZmrFCccb0+ z6xJ?szm|O?-&%uxck6xID01Q=Pu7Qa>Td0yHP+~M@JSN(`joN)i_}%a^ zdn>J1UeJ^5hV^nZGH&{x&)6?t=1lPWf48t#p8z>8!uH`fBQ(?TsmdfRLA@%B2 zDv$MFE`8bU7h`v8oC9Zy`B${hI9oVV&)@yyGqv*W?3p^B`d%q#(3<-bQpc{3`Y@#} z2H)J4hO>U(-H2VK`^A5bQ8+M~SbTT(TpkvBY(C~7{vu%GS4F=E#&U*IUHCd`{#zdQtOK!p(6upntSHI6LX| zZ2-Ja{BbX0z1OKLZlxatdeNuMk9e5xs$63Xy|qF5tY965p58Z9FW(z^tjF%5Jl~B; zhwqspGz~b!>v5_TTcD_@CD?uiy-ST zoBGgr5$iKpr}~GO_oxcMcO#fUaMav;%G-&9SG=8Q_H9nw-24)FZM%Zt6&n|!z4cC? zYXhyr>p8}y!0F$j_SZW-F4Z|Up6HbE+MgZxJb~&s;ug9+moWdCm3}&*bmS+`1`uA#PBDfdpwNrhg0c2FA3EoorEWx4nF&@K1>{Nj89CB zEm8-%e@Oja5r^L25~BBSIP`g{lXpC?2i4DCZH#bihKx*NP+)BmwBD4?yx1z$srwKm_`sI#Daq=?IOEK-=3U)X7^#0|?wOpZ$WvQ1D9yO{M{+T_V zdzCX@tUv?op!3q%Gn&`_eBKlN8*wiWdPXM-;uGUsH-7z!sr3C(I{muagS3%!4<}OE zNW^G-op8WJ31kM|8Hnx1K8HI|TO|hkzH`jWLgcfLB+5rQ=+^Y}!_KFP?S63op|^sy z0)2PLw=FT>Ta_#ze9>C!({9??%IWQ!0{Hf;a8kbX?HN*wy2FP zY`BySG5+u&%Yx3p`^`Ar#jwvX>CEexND_wJ7MdRot|dZDiHx zzO`rnt<`>8t-evGP|9Gh-jjA%*T|=J1Kz6DvW|%>X-}RmH#-X4e)cD1zeTkE<7iJh z2H#N7dk@k22lnBu+e&X;3%^x&(m6O<(N?4{l+PsW$#If)x(bFYzM4oGN)GYay-Y)Na){Vp)F_h+5N^e#v z&8w*o;Vcol7X!gNtWz~aBOjRgUc%j6ryy_hQ2Anpi(}2xA-f~kg8NVS*wY@!N=1?mf91x!1S%61HlQ3o7j*mt*Uhmo5XjpjC=`d-l;)1$d7 zPJPcYH9o)F>ia(^y4m;AcEh+b?($q2zn9*n=9@n#+W6h)sh}^t{kGUk+gJOBCs4+X zzP-_BoL=X%1XI_rj1{!BH~N4>r$6ZSE`1RB1XJ&)H~YcPu`vpCz6lzS-WMyD(%`T3`%)|Ki}n8X*{Ah^^2N8Og-d>OIGvg&{A!Dzh5RoMYy8i8 z(~7A6G|2n_?}PB;zf=vScM5M-Kg6iQTKmJf1tH);W7tN`6JM$V{%En=AIt9`^>44zPtD;O>Mob`h$lkC?I^{Ktx z{H}~Q2m4{yrQ?w1Fn_WMxMSi0@o}xw7OFvvnV2t#;ulTR?LLZFwvkZ6vy$OXfhMClFDXn>b-#mUR{Aaz=ty10- z+K-|&l>a1X56`7Z+OJ}#aVfoLmlhKq^1Ah|-h#72^Sp`5!Y59SuLXQV^FQ<-@m#@& z&82q%{`R?lKV&V%9PfH3+fP&f9=sJr<^jmY2EC$C9`9Jk$Y`d0thdW8Z`a1dM~0JQ z|9{l|dwf$>)&~xsq-mR$04Xg}OND@_Rg0!rv})C&sHjx~6huWW7acFCMNyd%CD0ZM zQl~)6O^|rU%ZwFKQBi}SG72LKc*QX}r-vdD!J-Z-nsULNwHAAS(bgtu*WP4JC6 zbH7?slSEgv?7R4`O3TL>W0DYW>kB!)rheKdx?{&!J`E{dZ}Gd8BJ|VJW11-C7JjGB z3<`sCeLDu0^}UyWRb`$gcg8(!xX(y?os`q#2ZfjQwVb7`{7b%77!N77e2`@im3*G0 z?>m#ezu;HpKk3T8>)Afug)#A;%X4Zw%_&PaVfif3^F|YQHh!9?`E-tR)BJgq@iOM| zz3ZziOIEabJ@g(P+s1tR>ap9RldBrd=8;>Ypx@B@}`aT|m9f_u0A6ZCr-r>DIa@o(j+4eR~3xHm}==ayZMDysi zOnRs9z6jcmFh9}q(R2=jT@~n1vJP8*Ov+}A_3I<6iav-oq^oZXQX&(>|e|0np%mAX%4)&`x-0;yps(k-+ zGrhc)1CZ6`!9RRg!Gg+Ryujhm)6M%uwlc=gO@03u>&}h_ zmOW$J|G+x?qge;v%7gXQ#`>CSd@LQp8T-IbDqGtVL|+|q%_(%-nlr#zbxXRlEc*eh zgT9)v?BD91)!O@^H?u?Pk9E>S@ow>V)!cJybYGpCuR*_8hpg7E%`-jHC&PeGDzd8; z-WvVB=R-yzaBzvfxbM-7l{8ON>8w^Ed#5FHLE65*Da^sa1H^_;^mnXt;~-ny2NLJ? zsynjx4&jr`KRX^PmT;%-F6smdf88e2?JP3gRfnOu#}XZE9@i4<9C*)smT2yJp}81a zPmz~xx1aQt@!0@2o>$&prWepz!QszlS%S-7pXzidpNcr&d5Urld4E@+skUn3C(9+{ z^>>QvM{&*Hs5{;b-od)Xhip3#k0I_^io@E+I%l2lD#X{DL+@{iX*90PU(lH)9dcp# zR|`Z8ta;2OP1d^Gw$@z^?KMZkEdBDmQ-AacAG@FC7wBZuBg)2p$@j2t2-W3<$X&JNkt zQXj1$l)aRBi>r-Uybp~s9ut3is7r>}k3%=e8=l{8r;Tq~cd)S2Mp|o68^X4#jeKAD zq;Ig2E6ZMS^~?L1$Nce^L|>gM^;!jftGSNO{#RpMw-68YgUz*Fnk4N4gcVaG8Fx|VB z=Z5Gg(VT%lK1U#wlB)HHrb*k5|5oW&rrGuh=ntZ-7Ah+w<$k@hV?W^=rwIRYir9!* zWn4k+IEnago+q>qZQhxfKac#T%FdwnZrsT>Sl|XvUdb))mGRl=fLGj>;Qg z_fc%~V|YI6Cp4OVkN zBT8o~Ta1r*zK4vZRg`YPdeg#Mb_jm-J%W+UI(5I|?j*pzOFqVW@hM*;mOkr*Uqu!o zK2o}fkCau1k%iRIev>n{CDtYIu8BTxxm@`qOz!J6X>*D6PnFY>gA zKGri6d1jtvAMmE^BSXcm6=OW3Xg&M*`Lz}EEWq@p*0G-L4D90s+g6l~b$YYVgIk#% z3^zvc92gEA$IMjvZ56u~%k~34W-VLKGo-FZ#S-{G;DJW}sO;M;f0obPuiiWO|E`O( z4UNMlFY8gKuozQqcSqe0k*;%H!l$cszv`}2{weJKRa5E?_Obl?Or?Wtt#O3?Okp^; z))pPyR}V;ES$dr)4?bvWXW(wmYb=MYkJQEDBg~oVyT4~8?usKbRUZ)@QnC(PpXSP$ z2>oa7Rp~bDvh^wCjMS%3TQ)Ot2kHD#-6yn%(K+!qI)5#dFBCuPa~n+f?S!9*Hiz1$_c{{$^lrIpvv@7+)9_yjy2Uo0V($sNi2`Rw zTTj@9_IFa-gY#LR1h$@7=WA(f(q%uJM|IlfTgbf6+mN{iYW3XvaX&YL*I=ptGxI}R z`Wciyg~HwiCX$4u3?RBk;b%#BR|&rtW8(YFd{1=ko%gHzVax9c!tR&}{rk_%v?Lkw zgqaCD^Gut+#B`g#M3>lSLmzFGcMIQxFD2g9ne>e-sVvBiFSqHWR-kTzom1Evk7fEd zw|*$!M?C6q$xMZ3dWtRI1v3*k1E4P!*1(vT_qAgmSnKdiN?Rpu_=v`FlKlSIzwxlaZ+N&RX88|hpM3WzA3YW( z!l?TcpJ>-@IDzI!bJ}_yTW)WyvbV=QhBa>y{^pE$hqBL4Dtpi&%Fd>;S5n!3@x^yo z<)3z6$8t_dD(B?;6c1_XtMYzN<-APgOr~Frw-fqvl+;iuY;I4$tA*oE4V>^nMx!r10EtI>oV0`$Z{ z$F9J+G_Zwjf1RRZ>K2 z|0XvupUb|&=Bp_s5OTB-9|D}Haj;3JZ{&Te=7ja_G?71nM!iAby@t+4(EsoLyOO2x z9V+!{rRWmj9`!{^_r&i9<4^pJ!Y_><9R3uAAAN}MM<{&5?+0VXJVfD-Q@FKE z6n@tszWY}S58z&a&iVoBEA$WgE?2AHiT*npHV`ydK6}#Su|dBb2fw?N9`p05M@;TZ z*jn(|rF1bGz01vf@tgY3QEtVXg+j*Xzp3wlFX{e-sbti@b?no>+~tme|9_&ly6?W> zx|Wz$v}+ ze=MJP-B{;0vG#LqYu_$YA3xh&4^@89 z_W)ZixkQGBHo0Sy|-$ zQ9o}Gf4AR?j@hN7l#Ut7I6z@3UgazMLRPi%F8JQ86y`l!A{mtEfJX1TxC++<5*mG=qdSMtmGY|8?l z(YRlH1osKD*4S@S(Oi}%j(I`RUQ0IMfuDQvw{$MW!7i{w{8suss*Z15;clOURRJYy zz!`ONK6JoX~=sG<+aYxA5T{@qpyUw`zO6St27<& zDK`H4wJgXD* zo~ZoYYc(UYITQs>5$?#`@VyY4N4(ZcChL}q&ziH~ha%+*wsRqxn%CWTfqsUvZ(p*% z?-x<%mKJK-7uFpn&Gp9|m7y1L|8OksR;W%U)oBCG1qbc-{)bvv*WA)|weHoHdTaD@ z_@<$;Iv#bF@tY*$cb&-MddmFlCwKk!KDvzhhkXP3ly5-v(LCv+&%f{3M=wFAfzEKi ztAJnAw8{&Ju5$$@v-DD(a`3ja8skj-wJ z7LVc1@irL?w2jYdG@r7mjWYnLjzy1zx^u|BqZ2-{C#`4W~Y ze%ba#C7(~>aqfvK-K1ohu7O$pQTqw&_*) z>H}?OD)7v1kqNFd6MUQ{M-9N=A?Q*-VPae7>T6_tAF_=v?vj_nUs}?AG2#~dsPL35 z8h8!S!1C`z9xM3ZNI#wCQHl*WJi15OPP5+#kpnL_6S^F7=7=6k^&B8`@i|KOZe00b zXWj|?8GIWOje6W4)N$8ZNptH4Ur-Oxd-^x3+!f!cU+nAfi}-h4`8=?E#sc?c|8bhJ z{~XOY?w@t~DB=n09E(g>V6N#8cQVhZ+Ge_F|D7{v5smds9e!JUgSyk#CF01U zc5c2jl1Y3~ir*0_+1$y*duOac`Yok*{PxjdgVob4p!bqLySYyPz&*<};GQjF{~M5{ z7xUTsGd{mocgrdyPRMYxFnhrNQu8;@{wJY!GxE@D41+`qsn z4+H1-v+l*=PN~KIPTgOA_p@m8sh>p$Q~L`2oy?1MwZF67N9Fs`;q*R4>tvqo%OHB9 zbQ_iyEo$FmM-5Q*TSfmD`+J(JkNu2gdXuScz)?WkubT{Cm5aj`GrufH3#%p&PyW;VSF~;Romm_KY4-WS<;j3ec_pKd6!tjqfCIUNpr*}+b(caxL zOOGCWT~}J?g_LHpwutEEXVEGCw|1mej$?WWe;IR<(x*`RPhjs_MdK~{Uyy5LRx7g4KE)*PZw!oZfGI^IomjO$p1 zedbS*h7{2CKSjn-9ZM;Xrd6Ax!iz8;*yn5^jSs?L$NuH+c&wbtfWA!$ryXrHYwL)o zdn@f~rXdwZC?0>!nma^K@&-{|1MqdJRYa=;wUM=&_6+7z4P*bzH;bvfHg8k(K=BsV zbzj?IS<`lNQJl4%0B?;epeoiQ1Bzk6CO?7mYcv&~Yw z?;Pa2XQ!HL!0EH(Q-za(NxY}k!s;uS%y(nz+Yzu|GqDFWS5Z9c2~!9AI^L(U!9I~-{Ngw_W%u`Of#StK?WKG_#Acg`cajd8);DQ)O!mQ>RJbiOK~ zv~B)hqSm~Gzfo(vTlegaVUB1_7oX;GAcw%1<7`++b#ZwgGYjau*U-3^g}3pzuhia+ zdT1}vDg5rvMBlWi8NX%38z{tUYcn%mG%D$!8S za!Nlwg19V-v)a^!Z4jz;XXOkXYk_!#_cNqlunq>$I_uJ+f|W=>T6qpuaV5wV6qI z3Z+i0%dNAlIeHQHwKB*rlnmydy_5__qw$B%m=Cg^RK=SQuW-jU{@xMS^fC&2io%{F ze!YAE&S}%k0RK)mHQ(HJ9|Q`&kGfS0Wy9ZBcfk#>^eaqqUVHQm5p43qgdWOt(5OGPm!ohtsPE{klpKfqVfZ+CqnnbM zz7mYbpgW3pgufV6_L#_vZw>L!H7hmc^O)%8YpLq@i!}O;_@RTU<-I{?!3gDj+?E&p zgI~xLe_|fxBbGB_E-wixxgg|$;0O4Qg~qUv@<)Wvu<#GC=RX*Pyzrx_U*xE>>HRXB zf2A2gVJ*sl8TN(wu-NYR@(Zw`O6E#{LoGsG|0e@SUBrZhtsS0HFwctgo)22q-R{>^__P6?$c z{10hPmTy@&u?{8Q%q#SV+rQmiaEvS&67X1&KQ}Os%jm^r&|Y2C&}x0FB$)7J?$PF& z-6_qg!9lJ=mH285i`)pd@0}^WYaX4$GTFv4(~&XM=w23qJzidaYJ*eo8F+p|9z^9> z;XmUXAoD@lDpauUnf?5dMr-ipsqxqz#@|+HyGYt^1d9V{7zYGCktl6T(isTxPf$4O z@Riu{T6wTOAC|aJ#HTqh!aM==bCbF4jkXxu@A+_l1DaL=d2^m6M>@CYZPS`dbEYc# zf<8QVP}sEJ6(CKGEuLky=u4tqPQix+Mm1>XYWk+jx4=v#`bp>7*=%RhEfhUL%VIl- z?(};m%eppwd&WU(^gY-FTDId#ihek0jTG>pVTMBP@6n(cM+tN`y>Tur; z_R6|pLR%=jguYzvL>;7k&PqMEKl{hzrf3K_Xata$sVJE{c(&vdihV|zHRA!|bV~@7L9P|d( zc9S{0579H?b70>xqN~EG$@EQU`_C@6|4*a;ucG+0Kq%$vsiBlpS@v2|+(2V=$wZtqtGtfuO;cmx-qW`)--tO}>UGf2wWjM{* zYowk;U$VUHLoSgYdHLSVmOnYq=k$H_O%e6YW1lPiZ@l~IeL1~D9}VB6w!xnPW7ULZ zEW64Wq1=r$M(As=7Syl5H_^w?gU8r;$~y8KpfzXq3b9>3+WCak(JS&<#GQU0&di$b zC0-VJee{d|a*Lk{EB^v}Uf6~Sop3}##%MabR}!tj9M1JEQ`JHC*S?S>^H? zJ$nGoBd$oVzM*Kf=$&D1L2tmK2kkVP=ri~k+*9LT)j{k2djqOaX#KI5!E^75eG>)N1h>Gb7(uKLV*m%Clo^zIi4xzjses`%?BDVl&irq^vj z;w^&AyZkW8-QMTrU&Pz_4Cj~Xj$)`S{N-s7nkIF{ev7$`dhYowF-JxU z?bu}t!#pjKdFqgP3cdG2nmd-BLq_K=w`A7HDo|>ZM z3QMf|`+b{Dhv<>z^i^xsz?}DO}5N8+*@8J)<$m<+!V6waa4tlM?#8 zXHwd8Xr5}Gnd~2Tzl}d)8*HrSs(EH^T-=gsHq;U9b zdX>ThN#Q9J{vw4}B!z>n{Efm#X=>fI;}>F02Nb>>_>mW0Z{xf2A!Q3##{=_X2=oR<@A%!ofP`5BR=3 z8xQXh%v$92R4HH2ds!!&^00sH;ne1t@L!*2jq}>xEKfJq(b@xkE$+}O)6~90=LI7t zplG{QHtTQpRy_U7lm|ZS3n@>DEl+wtVG6_Fa&B6J|8r0{;&HB9I!x(BIE4=b4;Fb1 zbbJKM_d9W$M=&kU#X1X|uj3q?8wkQ*be2zKE5$7TQv9Y$SIhoJk#0YqWof^meGBK- zQFprAX-)HI3A%H`=W6a-HZjl%ojN5!!?M3n=ia~F;coXS?`>$|w)c9F%AXo!Os+C2 zKV9~|q1YS!%1=X<_z=B$O1wS(_s>!@88`&6?+@%rz?5iZ!{VyCJmuIO>a{BKUtE1wRIP`NVr$b2Q&y3mgL4JGU}zfPNeM0g(H& zfnTbz!yL29IF9v$wwmg0Q+=b`(TbNweLKu+4lcf9O(uidxV zfqN6}JpT(tU#-4?ouRLb3%X>{2mY#Td`EVzWnAb@pL9&C+ISxOnLrz>EaIoZ9`vfySL*v(5~%5k1+OOuNs5FGVa(%j-)>9 zM&q7E<6cDLKHw4BOZdL6(G1%93C6XB`WAiknv^@oR_=pRmx-{^O{z;Hm3zw}@=TLFf2BNDU2q1) zedtWeGfVR9wDs2{$&)Vqg?9I(y5&%Rb))_|jr!{{S|_k?b>UuK=o|F${&AV&(-F4{ z^iBK(;_QHZV@Plz-|xZSE7m7uJ}&rDrL(`Q5_VgoqMn8YW|^kVb`d@73S4{a@z=L< zofM{9y$PRFjB~El>%cgl*Y!Kvhw5pq1ax2(Tl>-7T~%BBvJZ8pzTS3<3OgNi)3=Q6 z;;nrMew!v=8w}$qkS9GjgyKix96K94)$~3}Uv@_C>Ab(Bc&F(Tz40BV+^hCn@J>w& zSZ))Aj@OglwkGxu;_1?)yjVQG1ZxZDOyJQ^Nl)w__fS9X5iE7+;&h_l?{H5?=|-g| z_LEzszgu}M7MLXz2mL&hfi%}s{8zFMmDuuKcbVFUAXnOqak?P@w`H@1(--tnz5*w3rG(t7jFq%rA_F{y;V+<*=r0!w?SG0BoKdD}K7RTz`X zfc`R#Ng>hy%%jygeK4QvmAt_n3Zse1vq3}mDSf{5<9~BH4i!^tn-(8)I z{_KBqX2k2?!tz1zcbCvUn0tFm%Q!Cf2f*>DbpExx5=`Q}?KG0?5dP<13ly9(#s z+5Vzb=FxD6G234qIg0AtT&B)3XZ|^HjzOB^CxT8dGrQ9qO0((GI_GPQcjgvaZ|RE9 z`%9c{t}QwGDAw&bS4Z630Y^uWme0S`4%qq3ko1g20v|Kje~52Ff1j20UaCuEpkzmq z_fa^~)M9_Lt!>2JeW_a8(`5awu;>G&zn$WsH&ggh|Ft`Zi653qMNh#Cf#&)jNi|$$ z^Uc*E;-8uuiNAcv%n3fAU%0w0=J7tndKbW-Kabx1fvx6{s)c4M(Kcszc4V}7f%)0m zrKX$xfl#_C<--X+>T|2+n(tP*WBs+y;den~{3DEE>?`GbT6@5)9twNh*^Y3?$j>4^ zNy~z~I8zfF{bE|<1=v$xflfxxsE=ib0mfjUvq5T#Z?*<`kgM;!RN^mE{k~Z`Y>>Zy zb|2G@9M&sPxL2^d$62~lxH<|y6RCmek>YTTIkReJWObkUX6@Wrk(m>xM@ryN-M`rM z(mCAan`L?%W|}#47Qp$5{S+)vJm?R%yF2nM@1c(Q(SI}Mo$@o{39pN`f1_xgIdft) z(T16Nj&Gsq^)95onnwHFbgmbL%XgNU-!;W!kY8dfT7(`#N9wJ=weh#N-LA&`Ye}s&Zk&Xsw#J5StKy5wA#GgXfiE(+c#d?%j49GX|+0=*yFcI zJpAnZ(Kr8nkNReb=y-i?ySu#N&xtdwDSBJh894A~buL36gz^+W)NqD}Z6H?omYd_K zFRgkZ&4i>hHI(KmO7kh~3T$mf`KMFaz?_^Y*kYRaiCRH*0RQ@f@UK=`)AAG_`{po( zsipZhn9JmR^H83;b3b}`3)`zAtX{%;QP^70jNwYx+Ai-Ki80Pv&f}WnPUz0xRPK&F z?o$11$=|z*Ot6#99(n}&pLiwsAYLKqaaVu2gu^BxU&gM4@y1lX>t)<}+VVk{{W=M! zb9Ls8pkr>;2cVOKsZP)}T+y$IbpjxFA53WqBu!~~!d3u!3*cYsByM22IULC6x8zLF z`^P>q`JeF^@|M~5ikDIZWxfly4}zRO3^|N+&3L1^-q`e06i2XAD^Kg zvn5dn(1Krj2lX!=Xkq>V@kdcS>hAO_pEl`MUy45azD*tT!`DP1@r@@Ezk;(l%6pf} zv--fEAGE+o%8xm|TITrOm#B3C8Z?LIxZi&NE8|r0a=Y9=uYKP7>5yl?jjzEyH24`$ppoytbE<0f9ICg6&db2@!rte7 z8F~YYOxW^{rgJ3vyVzf2`h#1|#kUd9;{Vbt_BOK2Q}HcBv7gOOpdx7qT~vE`qWl>Ye^PS?GG5{byA$7- zI>cXV+UGFtyc;P$-^WqeBX1A#obOHJTvE`LZ5#9YlpF1OT)ufUN2^W2r~Jb5OZ3GS zbvA$w`dt_oztUsJI+{Rr98bLe@F(}hrgp8--`}p}V6ji)vBxWFm=|0@zk`R?n9uEO z<#MXzejPk`rRZujm(}VwQC)d`5g(L8W&TLt8scAQ?#vb0xqrUi&}TVxE3^Cg-{pL# zKMS24bF8yrb)}7bL`SEt%#^Qfaeg$|3qRC&aYGa!X%;Q3OFTXP$yQEhwV`#gH zZob{RyZsK9@1rV}jtJ)QKPhi;VuP7Z-}E^f&Bi0u9P13)Olv+DI(U#zW-3_>?iz4! zkU?}GcO$rqcwF){o~~?%i)l?aJ=4}chP8p(NYzOm!{;kA%1%o+YA4Q&^z@e*{hSNU z6xOv3WMQvG+V#WL85L*K;0y4njC-@IjV$FG9s1IoT9wZ7xT!(6 zJ~fo7e^2z;JK#%}yL?CgXUYFmk=fnk|DBK*c6-RgJqKesY^AeYw};v>EZ?VhPd9bu z#rwPT?#R5$(89Ej;hdWJXX8iytupq}FW0FTbRyx8QsFOP-Jfwc(F*$icsd6hko%H> z6qZ3@C)>jO6y_G(tAP^kDN?$SuszA7dK^b--Y)`APy3>Fq;V~!yP{ahF-EOd-%~tG zHtSUQ*k5}->YU;Yhq6=rbD~F38CM;n(mJ$mT*jz@%8ulUcfez$=*oAQ%IB1P?z@#Q zfl~HgRKfmY^Qq1F)|oVqbLjsQsVuMM`x&}&@Doq<`1!7QtUJXQ9VY&Jia&zlt+>$}`+eY%bJsrEaIhGp=BYk*&a|DU7! zerbN(H`L zO+?!L4C{raME*v3pP_G{J&t5ZWp>Thv><)q;WyM z@7dqn0@Lz+^nl304ar|A<62JnCrbY961P#x_EX%=6xWU7wn?0e@@Wl%wM*+7>D-jA zQpx~-vt8&^G49+Nl83 zzq<}{Z0Iw3Lxa1yLLtYr#rqVd5Ye?EEHmrQHk>Z{1>X*Az%;g{8^wM&y_JKzc`Iw2 zgPZ5@eI@Sy?%1(AW}Ww8I|x}V`n?zL0VDK+<_Fl02l|`9sa}5$?lfxnz8z!#*x4+f zek3Ja6G2_m!yet^9~W7hrS9ZPXm7g1w`T|H{z3@2MKwD50sV2QtuNk=$G@=KeY&&< zbYNz|NBy!CGX{ROSzB&4)0t?<@2bx5sh&e^yvx6b`(;ID7e1FM-~Y=%tFwaQ7vk6< z?ig^8Cs7#_DC{&T5K_Hl<)sN^!}E-V=w5`c_?gY&v;M5oa|c{_AEnz*T&epuy;6K;(vk6QsN=M z>?7gu^ZQ~S&3LuQDracc9tyie-oK^)!9#<8o&*2oXP(Dp?4a;E|8(8qnXW^}2maTc zC!VXrKiSvp?|yi6KhGUik5}Y-w08486?r9}@rh4?UekoCCKK|@M_1w;JBhLXpwHpx zR003sCs?{~&_A;7Bv%(NV*ifa*eC2v9qSRcQ+o%!vGc;E`*vA*puhAu?&16aUD1># zbEnApz}t^q(H4s_tx|G8Kg|=!;Q#iUnkSGEbQ3+?HpkvpcP9_9-B`}{*9+Y-E3W+K zytS?h(UGyYt+I*FI=5JDqw_#-Y1^^3w%y&KZ40?=y}4~OxNXxH?TcBm8q4;@<=@h( zDZk8_UONB6M+WTLzKh4(%f)$Wh_v6uw(HBxZ>7CfdE6(x6Mb?N^$BEZXm0`a2V`+K zNq8$ zu&w+0&UicK*~2!Qme21Le~ls!$qmq6PIKr;;1KyfivFN|6kX~6DC+bEB1GF9;KPCI zP?`?^3}Yh=PAzh=zMEy_dwpA@KZLhZ`mL0HbcEKA!*z)CXLI@)#Ix42t`+Q{+?~`J z2D(z6E_Cn8udw`_1o-|1Hp?uVpflvI7ur~^3ca_{m5q!^4ZY~ffbvBNpZqCB)e*)h zhwhi7sWoLs@x_@5CiLa*kfYo1+HwRUJg{vCbZlDj-zJ=ye>Nl78$+KiO?Rx&fMaY*8 znhYKFzQZ)u<2t*~CwzWqJrVZPK1}(4gxxBoy9hdjw3lJ8zAF&l;i#Me`q18&mMrSC z87;AIMDKfVire^%`fKh53Elh&R(}PQP9f^}!9?mSy)x4Ke76xBbUtI-cX?a!QC*BV zk!P6~9$`Efy)8oXIjiy7^^t$>VOe6z`g3oKxXR{4`rN6`h2v?@ePu>VyDlU667VD8 z@I1D00Va);?|GJ*xx_yVrM|*G1t0zeeU_T{d4?HX>3oHK=AKflDaBjk4(Pj5tULAY zpftfVJMsU|QQVXs%gqfkKSrRv;Ry38UZNk?UVUHZVa9Ki_80oaJj6YpFDU0F>JNVz z#*uiUvU>9@k-IJ-nij5H$a-$a^0+SK^H@rs>IifyoEmIFrt41cEc$I=IgK}XuKo|o z|8i&;o!hQ5;Clmmq}KtvqB0e10gD# z(x1^w*^N0xZ{u1Tv#w>D4!$_uJ6L!72kUqG!N2U;k-TcCjRp0bk)AA-dL(IndeIZ*j3aK4|iIG;|^mMs2WLP=`$4-QQ zff~Ikq@;qZqG1a zYc26~C)(gq^DdRrSo3bx`R*8Ofk1HHQ%e>VGQLH<#)Q`>+)Q)EWPXJK`PMU@t$9{gu(2 zqrO3VbGS~`5zq#tL%wRNqu*EEoyjlue6==U{*a6h=~et-Ok=d-mG_T_nWC@c4rP;@c%mlt$L((^du zuK$sJF>km`hYaiQVm~n_B0fb}pKdgC&6YgZXF28s-;eIJ<`<2}d$zuNo_)11WEqaV z?jK4x(maWI;2p<4=HdS%`yA>E|2W<0tByF84M}Du{Z0iAlFVD5+zs70QDIXd+$Z;z zh#yPgcT2gx|4{C!hbVU#&#+FPClXAm<69#0ps;SB3+P)4_u`CguYZNClLGHj#xkO@aa@jblYb1CTifk_@LrI3zXI=tCd>2?1|D?SpOmdS z>{r;&bZY83t2XL)ZpZmGvoXY;5maU|VB*{}47c zw)YR>3PaC&e=nY}SE-USWG;;_^z60kTVgplLzF2QD`YgCX*_Z(YxSx9*BPS*b~dt! zuRh23wgEY^2jj-R%OLw>%sm~rd%#zMAB+#jx%nKDC3f&GZ@rGY`1?Or-*Jg7m+f1@ zBiqtF|8Wb?qg%z7L$2J>BA=t|PTawrvXAkEh8mX5AlkzAw-nYzFyC+GfQR;1N`I@j7P=)->rNefW*@2xbVM^KFQ4@xd!@NJ zdi;Fz$QzVg1GYjvs+2#O459T%*G zPSx2S{IC1?>~S^h3$lU5mg1f5r2kWJ4x<0N;cP_VS^uK^{<*1!gLvB24OU;wiVS*q zmJZ!JSHmnF{et$UuMI_e-T?iPSrNv8qWv2E)G0JOvhjA+FKKcQk3M@(!mNHm*xR=& zo0m@FJM9wcD{GA0k{4sNn$l&8Z47+T2Vgr#VK<+m8OU2ZlxTIi+ee&N z4SnH-re#-CbVHo?Tzgs2%MDRk;Hh1rvyVFnkAHFNlG{6uo&A4|&0^7cyYVQ|ErgFj zoc|wdYu6<$93hw|3-7%zm4|t&u_D>UmzD5L;YgK<9n;*dkfE1ch(4BHA3{`MYf0j0&TnN zZ{jaQeE1(F=iFYrzAKC)83!t4?4&ciGe2b5eeW0Cu56MsZNAcvrm!4Jzn#*jQ2MSC zzT*0LtV_1S2EqH|*DLykG;sx_n! zh|@QV`H-`&$6eVdrWN1G9m+zfb2q9p+v-T2%WZXji|YIiXd@LsBG3q7C7uk~z{Hh`zw{UhweHk-Ihfvg>Oca}~L!eOhB zC3+d`r&02K{iCu2`0B?v+iNJj0c9)e5p2BQeuqwFEw^o7ZA%R22fxi`60*Gk)V^L6 zAES8ac_Yj(>mKP&kp47k6^`9Rn?Cc=6le7@>J(Se8b6;x8Z4J{zWem;Nta z7mqzhvO zzjGW-CasZ}D_C!qS^JOdpO^K~jH$padRxh?zlg_QL%O|^&hlAxIi-tJ*bkC!v!t7x zlitglI~$jXW?%k&5`3(KRFMRZP4odTU7W+GjrVD>H=2ph0ioQhQR@mrU;a{<1SuaRg)l$}V zRMv^T)crBr#*T}}?C+l>y?>na{?Bph8$6ffTd&GDZpJq%;oCg)!uj-_zxPh$3sXM( z`@M*V& z;*TWyaUb>BO~IB9v;_I)Qy%?yQso05y7CjW8r_I1Ud_^51&_Hsvva!* z!*A!fWAO1ed8F8IiBE}q`d;&&T?XzBkDgd=eDO?MY=Ty6Hu}`}wR18IV6?0vUZC6; zWF9o&51JK$AnUd4JZ3q|PJaru#R|2B=4P+kSkq54KG@#M=l=lF-VL?OP509-BN(Fg zEK4=A>3oH|gZwhL>G2NHJzh8Cg}Ujtw?ATd{caPo|J-Ib`w4V~+-w^LyXB%F{GMM; zX@=a6DET`6Pi8ayrKKS_A!tyX<1>hg|AMPje_Mr8(sI z^LAyAT%gsM-{Ab=rM-&g+cmTg7qEUgbcUwsSIWCn-bdh__R(Kx?!yKkyRXLWdO*`& zE9Z>rJf3(mw0CZ_c9M5{k=ht}*lJDQsSEZul-9Ta&fKtk9O2p8aa> z&K5t_5B><9$tu>-*hJ@mhCEOEIF#*&{a1~dY|BOGgD-mhy+(&$!&k?;V;1&Z)&@F1 zV}GJBAJ5N_0s40|`n4gTuV>lhRi&$Exd*d1%3xXIcqz4-+dx7sno{D8udf1==i zI^s%y*;O{1b(m+5gsSngnaN%U|?H`Sh=^gaQ0Zt^~s-k%LBf8bbG8+s|-4V*WA z=(F7X+wwM^Um0I1oAY$~wSQ+wh~^db%U(+B^_KsPw|E z_YFa%7jC_;4=TNI>pe{GbEVIolRg_ueFe;bokWu@zYa&&q&gqiJ(_7K2GT(BujPr$} zOKI-^ReZ_pmAsH8O`^Przf*J(^1Di0Fk;+FaVT>R?H@y4>c4i*%l+4e=>Nd&tHVKh z_S3WXiq&E5s?}ltO{>F=6z`??&=raMgo=Q&8D^WBV6A@6(`_-OvlEJLr1^bGubOt9 z^Q%7I9h>8CYWKfhM|p0ede5O>_yic@Z8Eo4DB4&@`xSI)R~4&$(!x?J)D-Wt=ugzQ zNq&e1i9Pp|yFrH*5FJ`z?)pj5p&JF`bHWdb4wVuOqCHW^K9WIav#C?*7c#XC%Esop z&5EXjmiMFi-n*xw>CjaGO)uA`>+`&2uzPp7z4c6cHKDQaX8;-tduNmdn)?Fm)qDXR zSQZuC8r6C<<7_V?*rDzABJVBU$93Jq_~QZn2=+y*d@@(~*PB!5d7Pe&^!z|ie$jgK zlS-wFlOuO4$v!$Cx;Y+ug~l3Zz|k@XcAw>r!4JR?3ajdB-JOS`trV_{O}RCfbP9vt zA^6pEcl9X!pR?4we5KOOa~JY8%%7?%k$F`n?8KZwbq0K81@`equ_>N!zPLhR6`jpA zTgeVPoCjwT4;A_ZzCDc0M`lN6KSI10(Ur`G+K94+9L3nA&3!(Py31yxqpZ_1GRW2~u+QV#js5!w|-7@4}bjA{~*@FC=%9!-!?hf~-@T-{V zYijj+m3??R`^{G8fR&)r*0-Q&96ymwosZ( zDRUB)X~mx<^|apqLFsZN-OZHlTsdo>TuSs7Z@71=v{iNUQ zd7qcGm(W=#KxwTqj-<4|QGKlUCn%lue>WMQ3|s#%qxdYjYsr-F;N6OEqWA&Qo>S>N zL&V=?ynbISh0@~PN;{jG*4~CFrTx{`zFVb!#tD01Gf2l9>oE(Y5{yJQ9j&7 zwc7&*s!iz3yB^-h80w%i4*DN{DB#EC2%D}U$|{FnSn0EsL^B#_jjxeD(*jE0a0&I< z3$)(%EK_CfqIA$bM;!cFOz}Sg073Q9me)vf$9BG=y z1N(4!yIv>K6w&wW?STzLh-l4}pYzrpM8Cx+#D!0Fq~GV!JLopc7!OOkuQ-TyEB|y? zBxpC$&nz3=?!~0PZ#&+Iy3Of*Yl$I~9k?$(m4EwTsNAV!{(Yhb_qvAt$UF&YQg=2Yn52ta` zkBK~=tylk}tOqIo_k!VL`EoX&gw3_`84eq)Ou0W|3~8DJTe~K7Q1+eaZr70*)-}lf zYCYO=_LJ+D-&Hj30cX#(L+JT$u@w#%URUffUi}YP3$7%rg=By5&p!E|{nJ1C0 zzxc_6{nH=LfBb__!mjwx{^RXs);y{9;8n#9-6dUjZ<3$+dnwI+@iX6k$D+;SJBmpZ zcYxxw5kW5B^2L1{g?mzI-C1>%xp(7}inoT0{~;gkz5f5;qaFU)ab{diw3Gd-oSE>` zKE)Pi`BK4|y8D?nU+r{8tq_0IR$9oXJ+?HA`{A8yvcF#MT%Gzp8@g(=wr4k<+KK&F zv0pCWmJc|Z{bgtPwwP}A`#6l~#=7oqkrNK?)Rn*W!x^f4gb(>f`5H(0DA)Z*<@&eq zI!-PxVk>X_HwkQ3_GMcZqOl^B*-m-#B@f0VNNvpBwK{x& zp0b$IOZ!j$u0OxNqrdC-u1V+z+5MUSMr-Sz*F%?D)9rNWzwtTUd`-g7>g(4Z+UN9B zwlpiRKeW&3hiz$|zW$GWPS3w4p%e7*_5bhiIsKpf&`-Gjzw<+1N$EEa&|B@}hP8DG z#a($l^s0S&z!_jddQrM$V>J1KW9!vfJPDcv~!IV1xO?@eW#- zWyXMf`W3us^!WhZ-$O>(^$L@*zwq{51F8C%6c#uo+G>TR4yulxN@1`w^=UaqZ=Xv) z$4g`78{5t2b?Cim-VvXDMBJODYyNTF=)919r+?28PHn#8U&D*dJIbElp@kNicWTe? zs2CKA{&kpU1ROYXj@QR)m3ot=MVef$NO)=}3R};H%xRIv^4iGK;m1Ul^ym}mR}hN& zN~kUc)1!`(>ZsA#PsHam^hGOfFDjxSYDa|WYm-#OB@GR+G-%M`TFA?3v@kG-=+cIo4d&TK) z_S-c&mcV6*kNxj)8P2)kU|fbRCYoBgiQ z2m5A6*|*!uhA;M8MtAhh{-@Cg`)2?2`i{QYuN|#?b^LGfFVZ2MonJ~6LYx7t5c2kyk1M}EwHkf6u-x9gRjF?>$~TPrSDTO%09^I;P> zTfo->&K5AXFs{JaT7JD?MDP?Zw#ot{oTjZ zettMyt{|1UTClK6MMs=yu)8pz_T9tfyMyxiBp+z@WLks%Zxgb_u;|YnN_YJcsZ&^k zZW_)D4d&9vY`W`}?2|Uz5elWi*0WIRm3&@xQCknCyM8U5D~ENx2j|ty)kO=;?*E*r zSM*uP_a523s`ZMjnWlejwOQP!n*A|0 zJ$5i2$1Q@#(J7o*tG5UqN183n?#nY@a9aIOcS-p2Y=Hl(#U`DZ^@_*f%X2aN>4Y!O zz+=jnC;WF>zC3Zq0$D-Hx}_%W5QhX8neaD|+dS9YdbK+SpP7Z)mJYr=FH7>}Ib3`n zXNxb-%el`-u`f3G)5`t;vV(lsjjEu1bIw}$s+uGIJm;7>{yFTc z%ByL+;Cn0kOxW0EQ=RFI?SGr^nNTjug5S=hC-gDB2@EevXc2k|@ z9>A*4US6k5Ow`BCHiRLgeC>R5*vZxUkm!7>$AhL8nPU#2Z=pU&JD%c?IH_8%w8dBU zQT2KDgWW8<&rMxSbKR>0Z|{)p-Pp0M8nwsOr(;_$_)xVqm*Vmz?pkUqunACq=(~lJ z>d!jTR6j>ywXWIfr}a_gBW*s#UqJ24wZ-T5QQx?i>JK|Y+}rVeUBJTbYBGmCs?KWN zd#OG0>9O$bqUnw>{5Fg>Jl`*0cnYnF=UxwnSJM-q$3@T9J`2q3w?C%(j%J*rcUfx98Z%+gm4AHCe{wn*vVTK82btDBVdE%oim(=@{&IAEZG@F!~b z4+(kdj&W+wb&D=0_^#+Ug?X1;wwKBV<~IJ%qW?dVyVUhmKdW8^RIhIrcC1%&S>-l7 zaD4lnanQSLG98a9{c+Hv8Di^xQ=Z292n#{)suuIu&nMn#IqOVcVa&vRrSDTSD)*cC zR_RsoSQ_n35efsoHo_s-=utUSe}=y0rS#uO`XWl3MQL^Dd`jQ2{y(MbM&X86@sr9P zDHL5o;n|dbr{q6}&UHR2BZtCvNLW6-cc*v!-%4S*S1G=17yW;Zlm(g1%yBqt{>15G zkmFOje(Y~A6va9$r80i8wJVL{&!Rf*v(@!(D&uSl`yr{G(CIpd^8YOPds97sx-uRs zqp*KVSR1_$qWAss{@s-amwzpla}$N_wv~S+h22c~+H7TiO?hvju)PxYCB09e_wVKX z(<{|HyUeR}(z4W-Z%X;93=-A5-`m;$60W zD;R28ARBuQ_8RzG#=hbXyh`)q%BVMRzD~5-O}rOmS-Y^m3c`FC&>nDby@6sF@P&HHc`>S=F`|oUy@AxJjpM4RP zmtN-5xy)i!Chk!3`UP3;fO2rJ^w5L*V)!3nrIg41P2i?rU&%W*$o`J3JP%49gq=)z zKubI}-wyjPe`Dv7r@D82`|bZ8x8l+y+={2lJK|Pcn1qqg^3(2i+=_E;7zrDGQa)FT zY#0g0^;AAU&avTEWZ3YNhO7;S5B2O1cYGYdA+(o{0{yEdo^Jl(@GPc|P2gEX?@QoW zv~B5#XW{UU(l!4?-Qj;R0)IM_ldvq-4|Kep+E|w!e9t%H zNB?km7B37uG@iw?0~2@_p53BL$@LXqx$wDCMf*S%>n%sE@i~XaCmk3T0X07Blg4KX z#wVaKERM5{Po<1c$TmK2kGbi66(rV><*#!Lo$_o!B!bf&YN;#=AQid34Sm)f{3x4W!#KrXv;v`_`j0 zkukXMP#9qk-Fb8bvTV@5OXPkIb*QRTX@C#mk8^ty zxDfA-Q93man~g@}3~KkZa^o%3p<$Uh3b+>y7wPjeGN>MP5y2&TfZhrtZHMKHtMYZ6#mE~!<8f7eBcn6 zVR_V+MS>TO@-6JI(`?vZ$@o~E$8_}7xTw!I_MO4`84q_9d)iU|Zl--h4}l%FyE4(moa6M!VbGdu*2Sb{ZQCp34FAtXrJHOhsI>s z$0qEr%cTv6!b|(+Eyc$@BzRYLe6ZC&s{a0yjPc>{!Jw0x5B*nKf9St_U#&@f!?w!s zy_Y*c(SZSM8(ELIgYdn+eM{kcA>A|a_%r=FcWuWz`^QlVC!+X_me^y5z!iHC^$Z5| zqYr^A)<}K)#3AxbleQgw2>h~{l?pQq^w*j**@Dp%tW| zEhFQxLMbozsIKkh4V3agYc@NYOw8!{gj z-wlpnq$;byoHDV2{jWF#<7B`1L6{d;J{oZU+E@HEK$ea92tNSqAH%QoDN-s!#>@0w z?C~za^MVfn_-d#ro^Kv8F5#=;x$Bg#0n5(-%6RI!j{XPW!{E{DI{IpOAfAwu)y}ni zEX?ZQW1;Cf@v*RcR>H@^@>$|zVU*3s!YrGQg<0)B7HZLkSzU}2_*e*9J{IaCsE?yz zmVVxYb$ZSC`KBjW$37Q&+I&#leci!+6((MHuwR7<*Cp<;)>Skmra;qwugb4$#OB>xIS zu7iARQL9V#CD_`ZcU_{dlks-`vaBuE2plD%+dV~3t5X73B(Kq-dJe`cQl5uO2AkZ5-) zwVS^!{%4Ms`++Rs#W3F*9F5#2+{v6HZGxO41nk=`s{Do%JY1ha10aXic3CnxtXC^P z^#3lE{P0x^{ItEDJLWGMpw5!&Y^U5F6>rd7Sv{yJLv!r_0H z_pZop<-666tzzlD99SwiIK-o7$#{DNL#WIqLtJ&O!a}*U*G$Gjaa;H+vJP%q)e&W<&DV+Z|7`jhQFzB@E_(D^dAE&ndyVKJtbt++LZt+Vm!7Zc+!SH{7zYi*y;zQlaS z+36DHZNmVG`z$^AMOr2et;o1>1t*8|hiPwIk-xyY>Ga z<`BNWZn!&!`%mlM68J;UO^*McF^3+j|G!}l&9DF8V-BtKt2@#;!w-)+bn9G&IpqIN z$pE4MQWZ3 zz<%!N9Jg|>_@1Y+E2s2nVpI5>gah|>lr8*8313a&<89#~313O!D{SH5r+c)iIOuFW zXN$YwdlkM&wO||bdJwMJz1|cD5SIv~q{#~TMi^>Qlm9bdL z$dWShZDlM^Dq}#A#`qejJN$57b`JXu=XXAX)Bljwq1>zJTXT}Wb-#S8vwSPX_N^NF z7W=5BK3pYzIO3!l9eh3dav}BOV|-t-jP+%3hIS5*#~v0N!wFpyW3%C8TA#=xa{A4- zxV03AIXfIaF27T9!DO7Q$+h| zhvf6g30dUgr1~}`)pu@Eee09zJ1eQaGn49DomAhcN%g%qslNBn`^OeWgAGgSOd5~+ zsS0E5mcIs>FL{^R13m`-gO`~!yxKf=*rBo0To3Gv9n+;ozjv*|*IoL0Jk~I@hJ8Xb z(l2<|d!A}*_d}nsy-@sZ&n2)sZ)Cgk#bS5gg>)6MN9c? z^y6aarh#|9A{+7o$c*;-w?%*OZHundwnbBX!y-A|7nx;FS4vl{EG36!4Kq!p&o(k! zrQb^Fw^I782c>s%`WdF>!=y@kYlo(di@5ytdV^zai--k=k@mz*f8V%mpD12sLxi@H{(@a_F3hs3_0#)T$JwY!xDHo_tS5R)%BOdst3*75w-8pRjt~ozW4iXRK{J9!bLLxlZ~R z_xb4OCmH)?q(QvIBN^VoD^dOcxktu#hgx>T3IDe9gd_%Rr#Ci;zN z%gqSQ--}yzTmGpSvxl*Is6W$eSUvFBv`X-Lj;A>eIlWd{p`#zrcGSf$bpby*hsv&@ z^ruMK_e$9-4pa6hDZ3k$jXN;32R;NaFY=G>8$tiwLwy&te4uyk+5smh)YC!yS4W(n zGmBed^HG=1J=d;pl%|6|R6Lbc}UnKAFL47g350&>WHk_dMY&bzH zyACx@)wDA{l`zPqUZ${fDC}zq+iSxU+IN zdBBq?>8u$&9py$HowqEUp-(8h#!qKaPw*g|p$`v%Gi2c%ZLrnv9UI=!R!R$Bkrp1& zo3?bX)BiU~`1_O&_rZhY{at#0k={R)_qXZ&`9Huhs#^5NI7YQLte@P0i%j=naE!W7 z?}%e`$CSh482KOUh+~BK%HCbu;|m^ai`j9El5vV~WPSL*l1Wpm+rr6s1ZM|wQ*7|?)8$LA9(Qo*rfsTH|FA5y& zH+*nF>D62MLF_lYa=z&;o6ov*X?Dla*XLJIiVOGN7eh=Y7L>mQP=q zmz5}=c*TWnu>-|Q_U#hCoowgeQ@&&@zrJf^{NZGD%Wfl)p zGHu8{fuCo6<8`zvc2Em-*f0?)H12RWGai^UE$* z@()gXc@4|PS|kke#~)u(cSnOSPuR6G-lFsku$hjLzOmx${npDCcR_s>uVf^^4P2aZepgvipWC;JdOogFtSH_h+ zlO<~h*6d@WRK3w(Ln+?!&vNR77RDNKNZ(!zpMrj+Ux9qAvqX98r`G6J`L|qGqnE|i zcdx!&>E0uM@0V2A>r|IqI;(Afeh#h8RmUnB+xflK9Z5E=P3W>W(_`Vb?Ug&_l)%u4 z$XTjiMojH`3dmryek;q_)Rdpot}L9|6BR}PtO5L z2dvNoGFM?2bmyG5gf1KIiN(*a_3li1Pf2=rCB19O@7hAs=hcjWR=?APJ}!NKWYRbD z_t^Y`C;8a8Z9!WMay-x-C9`NUw+>xk4*OQ|oFhb@hrRCwuaf6ogS}65-oWFr%?*ul zH{y@|wAaFh#T5)0Ih8YXcPJFSqye}tSMa?X{BS^izP}snLx}%By2)$+Z3!qW5Nl3r zff;6j%`dWLV??${bR zE0@^9drkc5Z>(lD0(HuxyxYFx6HiaOht2Weq`M2XH|PDKCrN}^A3xheIb?O z2tUAf^voC0nYyA>`H&p-oWjn&Vk6tN$sJ%`2Mq1gu86ab#7vsIcUSV+GS5wQD${x> z87r;jRPphh4PUiXNA^1}btuzvjicAiVeCKJ1Gvn-RA&Bwt!zJZ4rB?id8`TjH-J7K-N-tUH}l@V*gR&eX6&bRcGn%60lnMP;R`;b=#o|LY?_}dsm#m) z%DL9ln<(=@U)(JQ^?p>QqoIoBtVC~4VS7UwYu3RREN{%S z#UrtYkBmYuDMR!JEX?kCBNZ*ouwixAk5s&;)u+GQ6f&^4&-BlXl=VnAdV0&4UQ`#= zMEdn*+wds#>B3nVMjwj9JNAZx0kCrz4ml^=g*);?JU4&=7cY;;#)7^|8t9nKfliBz zEynfjA8dgdAZj}CIN`Eix>F69X|H9)U1p^kEun#C^d5lWO zwuF@Kz}OlS{ykx<>v1IFo`{+=0H-d1N z&CeI&9-_GNu07XU{w~6Pmc#R%_9&`z*F2Z*$Q;T#ijIt-u%*a`pSME)X5KTra<^yc z9$DeA=XaIijIVSXu!lkZ8YbSvZNo})(0tj$_em;k7fJh#q(vIH%*UTb#97vCFC(4e z_l{6Dd|ydiy5zwb^&5$Utw#Hq&#y2aaG&0r+E_|;#(g=R;oRU`pqpUv0^%>;_;iHm z%87q)3j^Y#5lZLX?oWK<2=*z@VJ``mFw(v|LeBD#^H(KsT(7L4Iyx&EuQk0d>NSG> z*=gs}T=(~NLU#`P?aLz)SgqwZwX~l%;0K^D<+bJr#s~cRGb0l7i|Wnyj88}zM^pN@ z;lsIHywcWnebI=H_Tq&WE-bYp$5+pImpL?3%Ss``_pvN{ zgyCV#=6Z9u;9rI-m-3nHk@*Ve5q3E3n4$+^!`g6Cedp?KYU`_1w*#*%H-WYJnr}Ou zMTRLKnZQkLP`Ih=w~G4W&kcKaAnt8V`vP_~^gH`+Qx%p*muo`M>D!f|jgIDv&X3bi zXFT{73e?WKD-d6BXCOW!9k^(;*WzxV2KJwF=Gr(MIIFdKRZz*(5%wO1b&a@n(ANy@ zT22SKG2a!_ICc$t7^A4bd1aK&czJy>7m6NgMcc7vfg$P*FWWX{ZS}SCgv$hsN6K=L@BumH&sOW=a-#o@uI|!_v>(-;A*t z^#;z>8-b(SFf0nZFX)73Xrqjr(6T1#rzK4eZCBTzro)fxpTm37*#5ykgfVoXn?QTP z61Tj=UTvxawzH#*TO7dQSz>y9O{xysv$X_KQUGE~I+l9tibiFI|)CR{og0y=UxE4M)*k(eAi(#&iOW6)HiLIt54W4S6hyQk9CEU`HbMk z)=?Wf)|Y4kFnFoF4YYqY=Pc*;Ieq22)xM9ZoQ9l^*r=N*?DyZ}yU^aBdn;ZD^SX-4 z_wrg^W=>ffG}jAeEcayy=VfJEfck?b^<%8oX%XPFB8)LQ}CwsJ2&k1#HvCpYajAd&Zzf&wMTU*#k80RddQ^&L@u#{z8_s<1ZZ z)=T`gZ(KLDo$`9;0l!M{MIHX?$ZOJ$T$U}U?_birx1H_RfCEH* z*1i7scplDI*r$Dhof;n==Xry1L%+IYZ^xS1PjSKD)wjH`N%JSZXaANV_3=r4zW5(v zyIzia;UsL=FX@}*l;4+x?YfP^FE|9Y>p|GGRpa#Zs_7BvE3{MSGk=JnHa{n7#Sp>-6jDeKD`E zOwY05_D-jE%?T@eP~i4rpQ83G@%35Wj@Qd}dNc>WnAvgeT_^qRJw#hRkT@%C1>dn) zn6_GEw6z{(tsTdA&{lj(WITM!+VFDO{_j|KY>o{t7q(6tC=CAZ?Q~+@u?afa_FH@x z?o>w$pT36T;J-X5?ZBIu-&KV&ZDjFvX|()BX|vf z&gE3$?x4{;s(K%f1$ZM`N3V5SZ~6Qk(eCpXbyKqZH+DYHcl;roY4{u!a3;=t1(<7< z5#u|lM?0>LrsQ|f>BYT9>fHYse&ghu55{j?J?voo#utYv{Kg44cf@Zjxu_$4WAQ}^ z{6>WNFY0LLXyG?roS}S=DE!97G@lkH@EfZZn4U0v{EUuHW?v+ujkEv9_>EWKp5KPw z7&r`m;}y|D?h^~YaWu`1vcuvxJ~-ph_>FZl+St#Ah2IFD7azWTc>KmGGZOfXle(!r z7XC1N?NYml{7hO$a{uNfY7 zHPjEJ1#m)2k>EX6&d`sZO!Sw|3Mrl|SkGhls#c2A@-*Kf^OYjacwsH%K*Ol7hGk*T z+7yV#GJKsP;PW~)hndHB`W|4}%<3V)x*5qfQf54UhN}U4a-x36*y@(gd;OKhU!*zL*2PwnuJlAA>kJaM&%!2Jnm1K7T!$H271=Wuk|$3 zW1a7(?@M4j_O$sf1bujcc(R*mEP|Ss@AHyz9`D?z?CbG=)jq|yzCwAfkvz~-NXB%0 zW2nM(yqnJVyAFZr_|i~?>3G{s2V*+^eW=28EQBtSeD{mr50BS*9BiXfr-grTO$(RM z?|S*Qp4F~t?RcHf?o)W3UK?GSCv~~xrj`!hMfx?rConsg?t?AAva>+Gmwr#+c9!0B zFmC6Rp@+upWV@-#ggu9a6Z!YQw#6L23;1r(YFj^QTO+k$P8zj=o>B5^JvsC!|K5CN zWIdNcI#069&pSqnsiS8bNjQ9`k9tkA$jI6!w&|?HtCm4t7}%n_Y`b ze9YE7)zP*JWm|TO_{P~(c5=D!q3s>`DgRGvBI{TwANh8$O>rpt8quvaGA{k4?_Teg zm^TGOJAT)mr;*})NqM02+A}E++KhYQL$;0bY-Jx7QWFvExet6i{;mPcBUtf;Q|`N89avhGKP=eNb~EM zZSCWAX|Gz{s#p8iNqej@#2yH}m0TLHW4a)Hz3%bV>yZzYP7-uw-Cl*4efKlA{S-Er zN#l1MkKg9@@hjl*tL5>turE;`eDA=M9m`_>%eJw7IiSYrMcdfE5IB4ujP27&c`&w* zC*|=Tv)TMyFm|t^I;`b!3?4L&!zpf^=%Ycm1$W~gKG+r;U5Pu&kOr%Y8>=XvZA``!9qJx5OuCQU#!d}x&`*bJ? zn|9J$yJPPE1vYK{6Y*F`uxU|;6`}`Sx;LTIW8u>}gzhvvsCSw(+J$Hhh0USgZ|N!TIxRe&o;egYR`@jZ?fVzRW1kcKyGh>PrT1|Ze}ufh zP48pqy@$NNDeo!r{@Mj>G{KLxY*Ye_fr5SYEGHtgMPlI}ji>~)KOfWiw7#_YA{dr$J+ehBQ~R2z2i8VMWic(?q%qOt0?UN!OO`Vr*!&8(0sJ716R^I&}81{%lm=z)q8Jw-+z9` zb@2ne17B~f;2-ThKd~-;9orJKuLbzeTbY$ulP0CTO>kxzmx$hb_6iy2%KKOJ4!oZY zRR5i0)fziS%J52>tx08Urg!8=Ie6b_E8|lt1Ag354t%+zPFYEH3QKub`D^I?JX?9I zZRM?_^7NBKTwW(B?>FMh>~!b3^E=X=73X*C@5j&YNOwX>{k!!11l_@Y5lJe)F{%89 zr1Iw^m0y=sevPes*zRqh@-lOowq6NIqW-<==0@iCtXB_Ya?Kt4L z8$*7S-;=S9HRhqfXWw%v{P25O_i2o+4dbW|_BLH7ZLr?2mNr`NS76TNE39!B?VTq) zuIl)()ZL-#9{qK{y3ce7MnpFAA484iKv17#!=1%h@WkFRD7@!R(*duP084yd->4(PL&cJo^p>f$`k&k4F|_R% zYMUpOZB~sdb2QdveCgSQPpqEMfh%rm_mAZgeM;!$0tbzCQEj$q*WAaLbio;d+5@y8f%kpe77fZT8CEeawTk%-gJcF&X`~IQwAJ1T(?m zXZ>uW$7S)@GjiTwy<2rAGO{TAaq+KEWy6pfOXH67KtCIP-jv~Huu-_%P)C-tT zshgwxXya~mLc;>{mcQ0AE;YudhHkjUY$F{p_ z%}eR55*hpsl@(+k5t|;ty_>@02BviD8{!|7;tI4{vrXnKu%h386WGyB?O4+9%DaUn z{Wjj|j0`Mk$UTE88rS7{O?z$g`sHTtXKDV0%9Pxa>RRrf!+MCAe;z(VPBB zb|?e)V)wkD?(R^QhuWo8)|#*nm{L@02I;Axr)p5GIf`O=35ljNMXQ`E}*{sJMFJ?-%vQxpTM7|Z=2a%HABb!(sL}&9A-?S-{$P) zW}5iR%f6b{483<1+0S2SzgR@?PI!IDw!@Q# z*O|M{bI0s>$aBVa#6zwd+Yt}BW^6}1>RoDjsEy6xYS!VHll76g(pw$fvX}NH z&|uL4v1o8}c|3NJ_~o?lrr)LdZ>F$ORJR}6<=P9(a8S`iZ?@cH`y+;n(xgvoV;<#I z=+$K@OvszAipP9ejCaFhxnfK_R^qSKE4{Tk{hD>YTD_Ehn^l-O-pgU;93O|7tLQ1S z)z>9^Ne$KaD5`9~ctq!mL zX?3{n=hfkz^yL1sIvn_Qb$Igu+OJ;gzcxa@D=6KDw$)**^(xDbrBdn9rOCZIWJZu9 z!zQsS-=QcuvfsDabkJC^ezo{REG>_-FCn&D5&vz7JGDIFcdp=gmFHF353BvtBkRsS zPj4>U!Zs=IT-?#u>x<`7d1c#Jzb+DwGmRTFo5tH4F;pEx(X5Q}hVe9vrQgH|TvI)4&%m(5_DlS`)nA5{72Izq6sdbHy@ zzuS(v!ZKJ&k1+JbC&V+ROW*Az9$n#oQkk@GX9)hMo8B*&lED8&+9xQj$#~75u#an$ z`5N(jy5K0_&e0=w8&e>!guR3|!uYeupAXCuUq5B4KlammA$0x)EA=j(L!Yn@mdR{i zeudHPwi>;s*kl0rJNxXAaWOE;VVmS@jBcPh0x$axiW^+CmHXmYu{$H4_qE)CjeJhJ zfU!9m84IICeBNTs4=!47T0Wob{-3OTeQo)2Bp+xc@}Wg+DGTKNta-KsIX4iN=NZ_3i~=K?QTkY z6NP({(vGLFkK`T-VU{fQ+Dp{_h;P(M*p(Fax-G4BXEj{X?zW}9jKaXnVhr43H-a%Z z{l0zN7U*J`PFOgvo-1tD4VV`dEKbFa-^)Ay!Le?^C4)P z4?(qt(s&K6S2CZS>I{l;?}4%OHJV=B4+&O`T0=E@(UgQ8FUw2*9q09e`lO5O=o?D& zwOxNVVENi?GEb)VKtH8W+uV*Rl%TE3rh~D1`%I7UeO{mHh@Z|^FIm`K0mhr)`}+J@ z%E!jAlbL@`aVbB#*|@`cT5x^QkA>)0szZ08xhekh^drOv-e97KJAKo_2k03rzlVD! z$?tRjAzfI0x6+eVNxTMR^fc#2PK6)ngkQ)q(I+@w+P|ND=v5f$l}a}NxL#u?YD^=o zdpO2Crg7_bY$&??;)Lz3^&Kk@WE568zyiCPzK!v)(ph0&*wR^b+(uzb;rmgrOt&8; z{I_m$hx<7S_t${1D)CBIFBl4i`ip(+ZqO>{3sg0h^VPd@fyHAj)J@HeHy;}F~3#Z(5{n_j2vO^+F*Fpb#u z3$z!0o}Y@h+d8&9smcnLxfA|mft&uMN`v$Tl>WygT;{2Du=Arj(){U0^QWxuwD1sm zD(D$a&v<$!AWU$VZ|EA-9h$;qE|IWe`Sr_hq5Kvk;X2=UR07v|FY!0t9zECQ(o;f@ zkDkH5DZQdKG`Hy-#qDmT_IR~g-2JaNB=T&(y>ls8pW-6n|{OPMs_4*EcI2Jful4dR9S6$Pv~T< z2~?Z;)TUsh+VoV`>W$%Q6TEQ$KIO*0R;hb+_&yo%@@|FCUdCtbEp*o2lCEiA3}C)T z*<&N!DYkScYTElQ_K8AsHmf%B1NE78250}3ucts($bM6c9)`dQ$3xe}7 z_ItmLcR`+?UP|PtTjAOAYN&h*(U&j$kdacG9MYz@s7>~7?X%@O26ZZ$9YK3t6PsFd zX$-foMw@4vuA-(^t!h5|cH5QI_9=&Gdy}p0AKJe0T0H(fmqlgoqW;AH_WEd5)#g8K z>51lj@i+1D@CNg+i_K!&_wX&ygFoM=&UdRQ&Ha5_V(!kgx956zk9`$Bx$+h5dafPg zJ)mPwcNRa3v`5a)uT*~bkEAu?Dyofmsl8WBgzTAZW?A-d&p8xF;|97D0N!6`wU0OD zE8A(tpT*kkoH(aEn6K>EZ#+kxpOGeq^#c=WYV#8|=+A9 zh0z-}MU{LP{s`{GJ#;1vJ44alewVKGnb$f%{Ot_nKB_RzpgyWA5q}-T$LF$-j*-ws znhpBOep6{YAs@=Gs%80K{FU82#%yy>Yxr&SAI(Rn%*URuDfvbp3U}LNrCfKK5AVIY zoApNXyQsc8llrMMjpGl3A7jnIQC$*xeVBtqk`8(}cir zm&7<6E%~;~dDA{d`4WeHF-&8$m7cwB>JMOqGp>Dr?*_0(TuOaW;#a;RE@s~r4b1z4 z*Pt`cuFndlh4CDqr{MT$;Q&2V^#3AyGH5;)z!sPKXd<2ey-w^?S_JnCeQow)naW2y zr<<13F&*?EQ_85FmtStIr*=FiZH)C4nKb3^q|$NzwMTW#4;yaiMcThH@raITsE_iT z@(q*y4h+&!cbrop=b1)l_53XGt`626*i7kJSHTPaK0|S5%;kD1&3r8jw%mCiiJs;h zsqb4<-xN)a7h~D}k1mcyrn*O^nbF!fuI=-N821Jby>>&#S2lSWUv zPr^0$a-#fH*Qs8Ij=MOnyXY6Y1senSlrCUxVDIqOvp%|qd6Xvh=UXbiZ9NexFFfD$ zMCj~-Z-(nxCpw>a8I+6ikQRBgh`LYlgquuvp#B>x4eAA65N$!domB4>)R*$Py-j8@ z(PFoEI?-e3bWf+g*kVp)8a-^`P;G<=udp#%Fk@eR;-E~N3tyaB%izGx)wIA}h&*$?JClkK{x4RbFP zohU!8uX8TPUGrlpTIdD0`0(*wO!)_u8<$gl>zu98I;-YT{ixX~%24$`vy(S;w57kE$+q>ui1(^aMpb1c+h_M5 zN_&TQMg)5P|2!Z5f!4RAYZcL-MOSIR;6{7TP`YQs_|A5|xsLD7HQjxf_}95C6<=Z- zD{eovC*W0m;}kplBa+)02t9`QltAbOqV)k^{Bder7m0cW+?FTtS zU#iaps*hJ_sOZG;ohi`EtV@!G1B{ z@-c2|phHB1;MWPde6GFAS}@My+bq-XZ`V!bJ<2Wj^P{ETem+wC;KPSnQs1G@;Kj7c zk61p7??I-EeskjkKlGcB6+^2_|?=7mH}4{Wf?H&ONxJ!i96C$#3v`tyeYnV{cZN86VOi) zdNoAo73zug_Eu>;meTN*>1minJmpvBU|FZ$n`!-yDK}mzh0fDg=J^u-VkvC8zcMe7 z_vcF$4MVxGb9$EEJ;8LQt<4ue_beGM?q2dW2lvNy(hvW}8O*oPERk?vf{Z#+oq2$>v61@7rIqP!q1QND zWr|;-ql+}78~cs}->Cev0fYSJS6X9Am$rsw9+*SprF{4|C_B=rJVo&@tRn&4ckg`j__)HNacgs1-ebHUb!V54`pP+_OlX{&zdhf)#TQ}Si#$qS z23$C4V;SW^eVnW_T&uqrSM>IHiO1bqzOTl-h4?1ufH)b8Q1P*Dp*zs$h5mi6rf^We zzn%pi5jrSTw_IDj(3VtRicvyzWTkftd~QO|CeP*D!ZaJ_$aK-I!FPb8Ht{#r#`lD` za3iuiJzOR&ia$&?lUOi59F$I{%znPU=t_bf=*`*#W@)t1wM~yz7WrF zyv)0?axVH-%K0;;9ZTPb&(ZwX`mfzj>%<}FPqmMPV4IZ(oBr-1&l&SQv!j?pfmp;IIcXztLYbe{JQ=9iAN@k^D5;Flb} ztu1$+sp{29(_RDL^l#>yn#`+&_q^rIL)Tl$(AD?ZCnbFYW$&@>0;<&A0r(8x?}}za zhp+i`m*MleiDs1>IX>tz%s1UHwX)Aq_JvYeP5gbe?yjmf-H@N)eBq_JPv<-jo#TLs z@ywQ%c3BYYQX9IsjO`+u=#-m~6Jb0TNuS|cE{f|U@^%0FuZr&aP~9zi4(<}IeW%=J zgNc2opXi0a7gUP>E7NK(Xuiu|&2oM8TO;iciG8QZ?0KerziBdiaDO)OeuI4{o8CQD z3)rUH9bQ2D!XndKR!!&Eis(hmTaSx)eWCfZPt%?_GosGJP38oeQ!n43Fg&o=Bd?3? za7M!)@Cis`?MJ_yahSO$>k8{P~V)!fpUVPq=<5G+j@20R! zd`f30d;prO3YCmJc(#*u1M>@%ti19~r{N3FFn@TC!eQ6nOQmzoOJNJq@(?dS`H(a(pw`C!D*PenT_N z+=dxueq@GOKxGtC*?uY)?L9-i9$wTz2X$+puf zE#}fMM=1Upa?Oy0|43mtd*H0mD)#Ud689a&{aa}C0a+_(%T5Z1O^}cFj}P|+IB$EO5(%wP-p90>hjH}J#|>Lkj{jzKy@n4f{6cq zmBIkuv#PcIeCf5(#7LMg@Omus)@JBfe^`4dv=#@PfwjDV*OJ_AXY#t! zM({Xcj=|pF6UucrVjARky# zh49Hiyj&^l4$6ezqhIeFQwvW+UvPV8()jqOt>>Js_NOY@pR98+d|i&FI{qki(>{2W z{r+0C679!bBlgpOaJ?$j-C$W0&zlP|Z>j?N5p0v))It7=HJu{-uS@teKd<2iPy)I#jzyOZgeL zHh=M}YBOZukT*jP0GkXi-zg5(ryo%ILHl1+^5|6J2{Ksronv|`A)5)X&j^<{hjlq{ zHrfike2V{0^whb(ytUxZqv$`RTkxB*i@?}EWa~%!*g~&yb$2zk^XzG;eS@vBZJ(O~ z9lkSIKL9fKG8_+vx9gj5ztMc10AGf*j~sbAc#M(8AodxcEdjPGbTi86_c-8HW-T|D zN{h4BW(Mifn zVY?vZ6A^b+kSE#c0qmmEx+{7RIZfg2pzae6n!^eDI#KGMZlkYzeo^1+WUD`9wz#9U zqlwUoR-)Nz&oswG!{MiEGJRlDStpu&o4QccEJ}$ zKcQV#y}b0z<+ggkcg4@vegj-XB?nJoengv}TB<3GTsmL63;YeHB`57bM=PZsL_?3p zng}$SIOE}bhke{9XS~0@pm+sf{dlTs%t;B@bGlja3Oi*q%j^bIn@&4T=`vVyU>FL!dY@MQEq?rS|ngDe>p8fqd6a_yS#(uzT9D_$X$U$))D5vbuX~DYyWT7bW1mIrt>Np zLNxcSbe1oc_HuD}W4|;5cLIg-zWM2N#^%adjC9M)fIFSffKz6s8-?C#v*PY_1G*wh zuTST**3OD_Lu;-!{evkz&3o6zblQ`u&GI*01~33yPD*P(Kk}I}NKX|#mGlJYDJ$o* z8lN+%Jg-*GYt0?1Ha!j1W=^o$%&n?6^DAjh1**+{xGN7=o5l1EKYh29zRB{pu5avw z4u)S-vajN+(u~bR()b$(-b>@}6!b{rZ&e(d#%;xS0C7N$zwk|s%Jq7yzwuC+kmL9@ zRhFf*I`X<8(=p72ZZt;&SzAqqcSbajwVw7(2e5(o-h^po*&91=JJr1_wR4SL@S&0e zA?zj!v+go`vri@VO$t4aJhvD3Y9Exv&s!;)--N+RoPq( z(b`SVx3aDn`x2`nI#B2^KKDV67BX`DGj#aZdOS+>)3?ARI-$dl$KX|Me71uvYA*b~ z;U1Cio$I=T|4CD}2ARrNOC9SfuuY+V8J+j)*srUbeqDUOTW8{~>Q8cB1TA)J%cx#$ ztRMCj(RQ5UVCU+kbQ8Kelzo)1UY~qtTg+9Zbi)w0l;Y3^;wyEe8Rc7U-cD(DNqmju zEu-+8D7;0&OC>zr5B$>Q=GZ%xeG_yC|CHMjV;k5MH}7c+yD1qWY-2alm_aXiw0ADc zKVQ6K-!A)m_dE9`@W3h?On=ohmhGZF6M_pEW9yfJ?${*iL$}P;^F+?;5dIuA9`PQD zhtDDl?*(x$7i{J8#%S96;Gbeu?$#*VYS5lM+FzqTHE|!?4MQe7+Nc_%_bhqsBFI?N)V#jDn`)1RS7Y(h zlf=f_!Z&hDILhlaQ1z*$ySG=?O(~UyyGH0&u9vXWDC~Q&Rj!b44xq58oC}I2tbaGf zcQk|FviJ_4vam>3id0RXYtuyiffiWhF{52>hrhnXp7n78zmk- zCtts#qt8i;*ZMxo-HvUgZA|bG(0j=gTS_(XAkH88>*-A*}IYFSoQ&B$D1a4hM?6L z&%$&yc5l)*_w(9pG)KwzfZ;vm4(0zZH>rJT?Y5%8x>oH;x3wpfo@mcgN$shT@~^km zxqZwl6@Jmk>uPw8bftOfsJt6CI;RwjsWC6xJN3t_=>eU)P-cNk^V2iQ~S9Hryz z?~PzT!97~N-Wj&>E8E)dh41AtTxJGc^LL)2U16NBX-gV%9gIi4O)$}?eB6$el-FGJ zMHJYV$|vq{qaWp8GvEuB8{)pYx-apD?4$CEXo;qs0eMVu!)(1=`V_hZIV`&w$-0GU zh{wLh_cGlWJ1LER(?xawxf}E_vVV`a*Lj3|6F4irhFQR}#NE^TD6?WrO)7lHV=nu0 z)m(#}?>{EC#Sper!hq2`n8G1^oky4&Re}*1ithtLYO}yTcN)7rA(qY;F3+Cc{+Nd;-@APPa!&8(I9xH0P*&`w?=sWKYxiCoAKDM zz@lS*e@M9*+YY)7*_$_%eKqoo*~;hf>*@c=T8?S_BJGDg6SY4?dn0`K^-cTZUCX;0k?*YI5edrq{Ap_+(f+4=MgN~9GRJtESwEA!U@@wKdW9U2m9IRUz zEhuUteb3|`)1oSM=QvP>tr0~H3EYAsUjsRPr=R zc@323-&JjVr!@sULWY`OCwZ0ZA2P59epk45Xx9wdci;~eJiJTN9!+VtNV)k^uAj<{ zQn__IZWTRCH!5Ai%Ca(^YoHs=zbpSODdKw+ z;W!tJ`(5eM4bDuQ6@KsP-n9Yqw@m2+cx3(pSFxg~fp`gEHw-tfWZU!xbL}sQ^+DjeiYxKNmGV= zu-A-E2`@FftX<0btiCiP@p>M+%j=>6#M933>jy?!_!^qJp!fz&HS>V-V8o%vqs^juP%e(jQw zNf!K<{r7E`|9$^GSNEU$@7tuhZtjxkztT-gx5nZXCxC`E3}yRv&AZ5iOk=#a-t6rF zA2!U$!LM%~pQl>H#smLHaaNW8{{_99e~1i&>VMP8A>#LznoFNm@?u)hnR`#jV4U`C zG_S#TLbg*Pcjs<5T*LI2YIW zX6UTv*xX=VNVLJ*Tw{8go6IWuZGK@}bk$4iqbuq6W%|vb@KF@*4p2USjX8yQ-U;Cv zvoca+PLA-q8Kh@YpvI){m^adsJF&+6U};ONY+^#E65kw3-+G6_CntqpN8xW#`09KI zzk_DrjPV+UZMTJuq;%b%Y>CxPT+e=*0!8b24Oe(;bnvim{e-!UI4UGVR?_r4C#=Y=e$JN0?E zPZRGuR}#P9|Ks0zUX6qf(9jywRifd!|BIiBv?=hlljqKM5>8eNU<@hzmu_sOC@aZ{Tr zs81?=H9B;Sy;GIn&GEML0OWfUM0cs|>{O#0<w1cg~S$jLcWTJEq5;V|J#%=BHaCgA1s!#=Ti6w zQsx0Ev)|cjKX0M^ZPsndM?K1HkTN$=c=c^+zkWyZek*a$;ruUgpJBbzH`hp-0x7?a z(%i}QX*B;qb9ld-Ny`MdzGZyl}8 z65%BpdUZV4oGtZbACQ}%_dAqv8Bu2Qps%7i+E-=|$Wj95>URb9?10Y@+NWj%<0`0S z1NSe_5!h~a^*VGXW7Y+XDuq2Co$7msc(Q895VIZrjj#oDR+mPyH19_9G5TFuwlRuu ze0!Cwk&&Gf`<-1r2ED$DF^zmy>dfnADC7z zg2%t)wuH-vX&qrrVJ)3? zf6GB-EVPy3pfYxgOz|^mcW&o|jO|+)Q^;^}R)LIfSV=rqPW7##F+dxJ*xI=1*0xw* ztvh5mc}QzNTRnTa()lhCJDXGrTMz2Eh_S}wX8$rd)PBr+o@Dlv2F5j2L>OACk;?% z;2idku+_x)Roc#gk9wesx4>N0JHf+`xwWl*eysFui*D%ZFrZ_}SRJtc_qf~VB;xl{ zJmw1G9`q=@8}@5MbszFix!VC2BbCkfI8^^lzqI>T&Vv4sB~RCU+e}MlFgB2t{%R#j9+LEboswBU19hm-o|$=sb!mp&q&c<4sVKf)ihnB zH4fQ|&tGjQ|8ASiXX4iP)!D!FWF-T%>VZDV@j6951=;v=vnTZn=<4{xv}w`*p-r#Y z+VqaJDdoRx(_KkzNXg)`Wrt`}T~eE-NSm7fsb~S{fLnZKLH880 zE9G>`CZWv z+@%(4%FkAxr(a z!yPpEdYUsIuE6+wY94(py@$Rs2RJojW$@EzR~nyH&7Vetp-kOfwa~2IL;F!^c69jL zn&AkPG46*$D}%mjw3N;jUYbwYJHKxAg=QPs8@_IJED0HJj@c9~q%+*gahsykG5Lo8@E?TiT_R_B~1q zOhUKx&rIqcFU{Xn&0%1y(9V^PO;OC>oXYz4`HQue<=w>d*Ngcp<1$d{JDBxMXsl0A z7>p>}qt)-knCH;@tuo%we?+;!h{GI#d@INQkXh^_{+`}*>HmJPJE8yY7oXDjPOrG~ z&0XxDWlp#53%VuR23pfVZF@oD?0tm$gju&JULIwE7OawV4U(=?WrWV=%gw2j?r-8} zbib@Q=#{;c>5e@mwsxP{!k?$`N5oEOmBZP7*YPxkSBRZNzAgN*Of@cpZS@1sJ%+vu zzoZ+8)gsxOJ@&$tynxb3E{Ko}!?$E;OzCA~)W&Wd!U-2Kg#D6po z+{SlPDP^IooU+H8!aa5|YE@d!Tx%+e~# zw@c!uP(1jNTgxKqT$`!v48V_gKUA_A&`;F#+I?Q$#&7tU4nyd@pmj|1YGm=P_+7LwxPVraF#k5{~CJHnEPx`58CVxWv?Ev zDeID+A!GHUn;ekcY1-9n@88^aQ`A-HG*%DzD(jL56fVR{Cx!W|IZqnPgq7Z;pW4el zM~MdI&>DaFlugk$=_w2nZ8A1RONbt=Sx59o?91=x`BblG;a-H=GCV~6=64!aTi91Y zXtwU6w)`cuXNT5svySvB4HzwB0q{qRdd7BVCP z-GO>t3pet81>OPU`4*Biq&B~V#eA}+3aNM24uGnhB zs-!mLi%%S@4c(*-@J;EHHaO1+aT`3gF#s-5?jhRnCuxIKZZn-N(T0<&DKJL%{jBEgnYjeBJts;D(@I z3w){`#gNxfJ=Y9S^;sfy`I`C-KG_@7)c$-@x;yrT@Rgs54v!UwuwyCyW7*Tg65fZx zHbJ&TecZ5FosU@79#XO#fA}l*W1hmkYeuuJsIqAumOY36SN^!P=1{hyIg~P=Z3!Fr z>{II?{-j~PnfjQzr-uKBhO(LLJGm*%9dR{JZ*ln-n;QE#2pB_c_lLND1ojc+YFaa$ z9c=f9o#gJelRuP24#fw{ct6> zajwbw)^t8@aylXtSVvmRWV;O5Gf;b#&p5_<$Shvlz`Cu_$Aqo|Nc0_=e5KamwQ?cKY^X6yJGt1N%+U}shBd5b z`{m&Gik7%(4P3++9X0K;)jFv|jjvYs!#`ChWPH4=B{n3}W#A4GWmQprH=ScG-HK6K ztzOdbu8BMqp&8~4jV-b94KvK8QdTL&BQ8wkxc!SvV8r9jvpl5qGjgEILEqXc-*pk) z7(r!BDpPl2Xg~DN+_LXeAEeUybJi7YNPUB8|02_!o1p!;7k%pn=+`Zx@)O~>6MglD zM4uwQQ1U_Vb|uB3e{pXYqV?dG^BwN{mNK8V$Q&ib~n{e|N8TJ|0pawf*QOI7Qn@S}uJlL5*%FR$Sf=>Jbe2GLja z)S;t`drpT(*(k&2-XpeEJLS8J=$o(y8GS?Bu8N|jcKu7Lcb!9QMfQBJ{2T1q7mr=g zwN^i7Z3~|}H%l26QpP1z26S<*r8E^qwH%hWwuR53R-Yp5zEn4#Lz|_22%DU$>;)Ft z!tSK7!5=AoQ?wU$0R;}&-&et}{V872=eJ~we@adGgZ7I|bB)b*x<+iLw-&f#!9b%4 z8|^f0L^N1clUiJm@MTr@djGY4TVC*0$onqx2_4N4Otntp2LQfGpeK{-SZ?-_vhqc* z47!%M(}ivn{5+wo+ydo04eNDlT&;EJI09#2d|Akt+JBufYG7w0+h5MU(ZQ#C{PWn) zFXIIHm0X)16TA%ZDZ9EK)9nupV}DxfMoNI&YvXwr2vKP8X-~C5^}Etj=sliSjfW z8|b#9Z%5JNwe>Ih<96v=^kt^_c0+&RJDZMk$ABrJiCzKdQ@ufPX{-w-}O`>&n(Y&@;K7~I` z^~p`D4|JRRhg)`yr|((c$(*ZOsPz6<&^IsU`Zt+3G$^}3#)P0er?MVK z0R9|!-X+hu9GPn#_~qyO5}I#5{^j#D&6{1vNEz%y6*?6C)Eop)5u!fw$Q(SH=8Dyx zTxpN>zFX!Y*7pR-GnCS=v(>eem8UF}@}u|=M|di}?+@r&*`0by*{TS5kCLn=vn9nz zW7lL}aR*ofPkWfq-)GP+@GGT-U*S?d6Khwl&Q(kSetWoD_^{=L)ZlUAH}@XhRJ zrbpj-1;U+zWA1~?+{wg>rZBVoJZEsp3H6X)57E~C$$5c0ByGhy##&1c2H}(N5wsa)^>aIo4bvbKxl~8F`IU9L zYofZh>*-+rIGU~nBW!CsrZ$4Ryb}0m(-xTNRke{@zu(8WO)UQe-tK8`)&cN{zgdm_ z{MDP#k9LJ;noo@~W56%S(zMsmrc53% zDe>)2{|2*Xxyk!b`+TPF-k9xF7@lbR__kQ4%?F=_tAVjjuMFyFH}NKqSiVxUqT0y2 zV?YPyn`!iaTA(&EiOvj9P+ixbqxJ-+ZyWoScl?TU)jIY} zr}tyC3(<~V-f1+~-Zrs^!hg0e&&hi!c)-g~uF+pu(h~Di81{RFErovi&>9nQK{~%& zG`A(T0z8=5sHLB6w(EYfPY^Ar4=Ysqk8HzAeC7V0%7+5t80Y!K_^!P~8!A|a5Hf1~ z)3|+;N>zKS#0QHdZ@@bD;r06fF>^%CGrB9n9eo-pq z>}knQa%mq(*RuJn4u1sd{nZL)z#9zNG8Y<8>s^Qim+X(-x%8-+0 zl_$;;nw+~J7sB|Te5>*saTCVMx6o8}!o!S7f%#?y>jW(1J{iRE%I2dVhbvyNkEU!z zx@y`N(23A!|3+NR7|`PCNKSa6S(7!tm3ac<$8xo$X2Z7M`R*Ee@?OSY86N#U9)G{I zY$ju-Eur&3Kl$#Fav$&~+JF0b7c!Qo)~>r8ivG|~-Qhx(j=DOsLxwJXH16J}aL;zq zc>e&sjLgmo`_?JGB%xbJH1YOPds&u?|Ghn�|i9RcwH&#a+*tEInxbGT#h1^OKE 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

3CF8AGU{yijGzqS(a4>Jp4vsjCq_IYD39Qt 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

%@ESi?D~7A2u4Zj(?oVKkUpMitZM@ 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"y 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

yy5K94c;4H;4xY1bZSc- zoRtNTM^w9Y5%HhKfW8PeJs*5ohzHqU-OhdpW|Zb+J+%Y+X;4jCyHDuJuGW^aUwM$^ z^3__alRIyKjW{;HR%C4M+-9yj@6TONY1_&AraR_Mn{t20Y)b;_x&SZ}biV$H!90l9`VYEbC2LxpY%-h`af&`~Q@ zk$W04j>5Ql*lSyzV5!X0!f^sqIhT>d#x=*ki?gleeD)ph?BH`WtRofsbh=mH{3Xj3 zH=(^16G)HsDc`keFE1lmqHLl*w=AwB7h(xw@+uS=zqpTa2?Z^nPeU^~>{+I}=STFF z`5f_ISWn6#^S8`1-r%zd#NO9PUJ_;9R=j)Bao(-wGlaBxm!#{Nil8r-|HPq(xOrx1 zpA%<(j8m1jCx6x>#>O3M#tx^k#=SW8@qEd%RLBZ4hNMA`(*Vynf!Ad8ppCv4%Xn%U zGshhVU_P9c$9!mY&P5(8&p0XiKH-Om+*HTt>vp>SEMuoFJ$kK69#aK9S-zLg3q<8G&N>eFkHT5;U%E}fAd}wp1oy!K}DW^yJ?&7?BUHM)UeF#)+VSinJMZLYQe24iy z`&bJfg_3ew;7W0pbZBeeQa1vUFQ_H-0k->AKKVl__FV|Ap7^_*-4|l8z1-@Ni zy}qj$7#pD5S@ayvHk7(HXMRG+%Rgiqyx#t;^pk==#3ytQeGU9F%rW;(bnlr5EtZW- z<=Xn+wjc9b%-Z*MVQl&eNag^I2cf(d96%ho_vCRL-BjB<2u4NiUL4 zRVd?}M$8FkZ=(4^A6|Mgm%WYTPv~G6bC#uOtz(><>Dq5)8Hj&8>?z}Bftm}jDTL!;> z=)neZzi0cJoT{Q;d&JE@5I8t}^C#I72WKkXKZC{)7!WS)d{`&?aGUG{_5!s3=CO)h zpvUah+CaM?ak>%EeTJ{-1lzBL=y!vOwug_?ZeK-jyRU}7Q{n{VrzrYtct88ai$jd% z;ZsgznVQT4Tq(V3dwcZzBtua4-w;3NaM7xIh@_xht>k|!KCAqiM<)I z>Vlq1{7O17mT1bg7vfxRwLZ{3JoZ{Upofe+{=bZe#`-vu&?#CC^3d+?vv zE--@9u8)0ZU#{2p%cbl4&Q-GilsdO6aos-{uH>;g4$vO4=d$O_oim>^=ctRFoo75} z24l~dq4=|`j|a5|Go&|~hqaf?MV!-2*dii`V?qu((y4r6U-^Q*&#_;}xK1)q#Yw}z zc%A3*7|)+HoWyb62#}ntkesaej`MEOG2Sig`|cUXez*J>@A}R-`rW>5W_m7|67Zkd z`<(ymw2f!~+rIhFKDrM7G5R(@`00G%dgbxT?9=C+r$1*Nj=f~Mxqyi`1p3LjhyHyJ z%{%mO%y+40jwR;mCeSZ*N>%2L>pQ2y@0rG7xXhy}?E#3rz&R@H331y0eT=<1*Kx~n zZEpXA{jDMlY;(@ze&k=d>>xLPu+)w2>az|v$#~Q=zaP$i(j@l8xIWkFq;fb0UK3@Z z%!uA*z40&bM#Fx|<1hB5TrciLQ09?=&)9Wcy*_$}<^FLJ(d^DMGN%7ZYFFIgzWc9C z+uZ+n+CD`04p4bJPk+Yr&IRHV=L~th*WV-*W`C3YBLq(-9mWUWm8E5h4d0UU?y(Mf zu@cmrz(sJ|b}qH;@U@=UY|>Mb>r##zm+)6==f`I%c^k@{k$d_2YrL=AY`+Ts%If(J z#`YePXZy)Bbm&u8zb|qk!r%V@Fau5Sw2fOC)Xeiw2$g6`n=x#F~O7Jh?o z%;Eea)6Hvf)-z}!>o3sn?on4bgZicI4^dX4fq3hkv_B+?cdZD8lZtVVIzPnnWnCk! zxk@{v)|&+>pK*BR4)ah8eL_3nYgra zX^|%m9OHR_`Zz)6Ut!y!D*FFh>i?V}d%r+S(X$0D6-io}a!T4Riy8LHA6r@2We3u4 zlQG@X<{UGZoukZm+&O!c<7SekZ*ZE&itQ1}xrq1TvBH=kRw_tkG)Q^*lNW)# z5>K<;X3mry&dejZY?V5nW9rIC55@JvB!A=kr?=2M`TP?rj+uV~&wXbxdFyE>kyw};P_VBoQ`OS=Bg5UJ}UO4-9V>mlp+P?c@o3xxM z&eqE$)@`%=k63ee&AM10HN#rs*#m=wKz2s;Xtnxn#CyJr z90WIwIhrmDy;$lZB%EbOjXaTK1c8ZMbfIXEA#MGC?-FeS-hPjM zq9gJ2D)!6YLm98}#5|^QrL<4^I8U6+!=$uY2Y_uS$9jzi-|iObKh{-kzg`Ru#FsSO z9nJ#J{aHyPG0*)U)4i_}{T!5jpua8?bae`?)wkufHS${dkA-h2uKh}0E1_$D@x;cj z9w%&Mt_}j(Pvnn@F!mV=5b476%%Z`W%i^W(Hp7z1#E!vN+QM>WG zN=Z3!pFwM0V}G~`mLm*1s?@&&eFfKa;cI8_Je~I1LgM3-WX|?DhqZC{jrtN7mln^E~QAT@${_>kEX> z#Q^35zy)c8|CBjK&P#&Uv%msrv!+vjD`+13Qybjtm^0*V#{yPRT0WxOc#WZ11lo3`fL6w#@t&iwhGi@z@T7LhHn`W0)dm+2t)1F|`q38D5BxQ>VFCMxE_UYj zX$LLlin(%Zu8?gxfybu9xkqAS;QahP1wWpol_2{-!=7{I^DH`jeJZ5DQKMr}A`_>;hPW=&2{g^|n)p?%!BYo;; zOv2hC&M^U6?uiSWZD4i5p9r+Io#t~pjmh5z_GDq74PY8U9A4?H3|0jZ11|d!A0?l8->zW4(KawJp$*4r+-HH6y5vMi;SJ45Dkt^zG$m@y#@XfQI9Iov*EOaHfm6Y4{{fQmEA7-i+W%DaN9G!m_R2lz zk0#>hO_}$+f2U!i?qKXT1GqNmH~axF7$|tA8((IMi|*$EIH-8d>3} z+VZ1lq!e*Lpc5(|yy{N_fypX!p~&)3R#sx(MkL>*v0M`ip2zi#pTh zTQXvAvL?ZFYio)VFM_Dz!hFb8ub|D5c}ISamUjl>cU##*d<+qT(QuVd?;v*E`T z?875Y5fJMs^{nb*szS~H257j~7nSpUF+R^!Q-!fzeE-90jAH1@Z-?*0{vBWH32;y1=7sgFvF z715VD{=s-ZWdzh$j@m=n&oh<|^p6=OSc_NEJO*7%fO^3LVRu9wF-cz^xbby&)Bc`F zIs34`-zm=Qo4^x0!J~!lx0~o0xP}X~B|J~xrQdhU-*q1B&u>dvFR0#U-Fr=jbeJ}4 ztiGN3Q?QR*Bl?%N2g&)FN&lk~|3~28T*vX71-|cLE_f^v1BCJZfgJDM%-fbSZ>vGh zZ%KopYT?U{u?|Sgy}w1fI5#-S1x0sL|Mt*)pTj&PZ9bO|PppR*TeaAruxb|#Nj1^rkVP8&dImgxS8TXQj@$xG*K9ZYP1SJ-9Fg@NX zOwY%82$k_TKkM4N>Dq`Q;*Dtg%aTvS?o~#0?v!g9cp!=I3wiJn*DsXz(4JJvc@FeK zdnxSI@IeOMD4M`FfGh~Sw6k1U@G&V1>N}(?NHVI{{smdEzvO|r{$5#7>|IyTJUl0T zH-jEoutAPVOs-d5($+>ryi>5KwwXj8N zDfZt8l1z`dlb*~9_AR*z@#!*8Ib@ld%u2SWmvDZ}HV1nMV+8|8Ap^QmHbFisK0j?% z|EbX|9-cOV4T$*EJ^q)>JsPbgwcb=2S0rg3rfY>;8oPa|c@|=?VpRVt?4wAs2Crwx zU+pxOsiVdcXG#52v~SZh4)J@e-%*l3X>$L*Owze~9p!0qk9}Rz^}CD(xXR%=lzOZ1 z-_VE!3}TX-OvVOU)e(&#oy}x~hy}#W& ztkWS^#DtFBz7LoOz{HDNKMldhL*%;naY))FR%MX8!h)}z*r$$`53cdZ5_bf|oU{}O zynXo7jh9#?6KU)g>}$=;p^y7L=NSKwckjRb?tATczyI6s1%2K<)@Q+gXwUKbiM@J3 zRM7ZzN#nzm4&?2!%O0^rZle%vhfAD9FNRp&&W!tqa=A@7KP-)}at_hj^y!yb6XckO zLPW1`w`Mldr}A&DnNjpnjn>Q|`qY@MnL7G@jy}Wf)=WEn=Fm0c5Ye^Onn}}VBYpPJ z^)dTfGm!(Wnc4KYr~8ZFANI6nn%<%E4pJRX@AdL`zWD5J`aVpbU>DU(pNaIT?drWh zvFqqht^6#bHgxV6?ZapLyRDgh^w~`BY41}T=y!y^lX#XspW&0GGU=0`=QDKgFn#vD z)tc#vFLBmOz45PMr3f|{*g%H&q3u&bg0_bf{SSv+?-%s_Y*=Bt%5dUEn2YsNE=9T6 zBWq>Z-ZO!n%1b8Z$@OK2uRSmwaewdIIre*UX#m$y_P0I}v01#g$~IQ@Y2zWR(>lXO z-8jR*cTm=Ulc#Te-y@+X-?u8r^|Ei@?bEklpT6OIA}IH_4?fLh-RoOq-Kwm61=a29 z>>X%_ zqAotqCOQkyvmqaR=8@+{x!K+lfX(A(yPvdqpuK*z<0zSA6v{%ZAS|-bwAm973 zho1WO^E-iFI*096m$XzCI-1TW^r7>6T~Z~p7-ASymy`t9qzq;;Bzs?X*sTM1dq=TH~M?W4*Vb~$L`tS(e#_{ zL%%P}I+n>g9{x9VJl>~{J7gXAQ60CMGHJ?-;r+kI$j zK!4hI=!|E~*hgZ_7s#=gB*)^;e=`=d`i#Xe*|u4I#(Pqq@&4}T0{0l@-bU@;$@;a= zV7~=D#q>Hn&UXHQPfM3XRI1mrkAUy4@b}7qw|HphFCJRGk*=@3NMIYnKN|N>r*cOu&RT78v?SOKzkVo6TP{zMJ{Wu48 z9Y(E6VHPr4JYG+v5+)$P~PJP?nCHsgu|5c&jHGlt1 z(3u-6^%%9e{Stv69p%{5U3~o))Hiob`i|YeKI7jc$D@PZnI_j_U;exMv)rbrA+UcG z{Vz_huicVk`r7^N6!^2;V2|_z-%{9rYvHHvGXklAqITUE&h9$J>$B%ACzdY`D8N*LzYeeJ<9Y<}2oG}M^8svC=kABCbeteft;{CdI zX4V&O;JmcQ(}hNP=o83FF+sAca-hUNruW8rL1y>#oU+j@g%zk7L~&~YY98jQ;^J?!sYH~;X9{afinKNE<4{^~zI zPi*oX%@hB2M2yMrh<--(*}wlBK6?K?hx!#i&i>uEo{9e6{=6CyYwDEGdih|ZhYz0U zxjxjx`-(pkybberEdKTvY3IV)dQA4?1@`}2xn8q9v|H}#A;_aC&+T=on< z8`OpvA$_Pp<VU^LNyPQQcnyNdR>82yG` z1Rdp@(w11rnE6v|KdlA&3_afd~Q#nD{aQl3lL*@^x6gg@ASyYZ+du4Ut3a%uUE$TexLST=s&)lra?K{PBTE# z&v`@(YmOmfEmi~#_ATc-p8Bts_0#@mPyG~e--iA6C%J=&liT-+luN1He|#?LibxuO ztQy1GC7$BeH|4V&{a@wiz~Jk=*$8M2Mj+m7=roUCrhAaPuB5dEKd{L(hNvHSHRaOA zKZ&ln?b4|&ynoU4%jx>3Bm=CL{sM2#?@sx9d=lUm~^!7{jT>nsB$NpC2x&EHK4%!QP zt{?C`exfF-_L#`a%Kz{ zdyRd!q{pv+&U0;k4RR)}HO_0P3wzW=5AXQHC%t3zlBb@>W%<98-;dGvnu;R(s&mu! zpVUeA!C+7J*Pr9uCXM~jev00GP3oLK@6)DhsZCrT&VuUwn6R_DB?8gYlCx?B9ZT#Z3^&* zS^ar$pJAIGB=YY5=XEM_UeLYI<@(?B zNsjS1qQu9GXe?wO0{ zyep6K&SE((m&$i=HjI6-?PI}Pz$4~=EUwL!-z}bdjq+N({JvLy|Af9f`-ScMN`;^P zy6;%o37?94-Fd%rv^!c&}lf@tLT1s&O8H$O zzsu$K3G%yCem8#FTjoGd`B8blh`!6vhtI|Tu$+?;T9^IgxcENq{e6V`R_p&FlFb;iz*19IIzHO_w7Rz(_(cp$yyYP0 z6|kQIwC`OJ6lWapKL&P65!+jutOAnFhbOl?i0eA5ZacSWRHBLYgC?g+ZxZK^@g~M0 zW}L-XBj?g&T$orh;|WEOpQu$}2jW|!wT^cA6TrTGi(|fqrQc%TW3*+sqU=y&Dbgk4 zocDy=Au$SnI9%uo;8Vl(-41Z_5M!grJPN>!&{A#eM>s6qmd7>(?#rPoo;NMUF0l%yYP9Xd!r;4a{=SmP@k!PI_I2gv~-EvS|gyFZgSw$eaM6F%K5T)USnN%Z_;9WNg{36+?nKgo^~g4ueVv#XJFpioNvG%Ceg z&Kh)xdUv%8+|#Ix|A0K1dMlUx7snD9$m7QGeqX&MX}R;j`7>x9enju`__N(lV6UOR zYiaCJ*U1ty!Y6%yfAp3Z`wi^^TiBh0e>WyG=-G+?W=t0J8I#cea!hdMzT?QzV{-p7 z#^mZgV{%B2Nwm+HK*kv58JD0O7vMrop>aWduN^shTt>-psgvX4=3@DOsQdf)D5~oZ z9G`v2W(f;SNTM-BnPAkYX`LXoXi*kKrJCyUB%o9mMN3<(tJ0RXST|%7A`-iK0>n^O zr7gAEMnsE`}uueuiqd0nw^OB=9>>yiZ_`!hZvHyfa2N*)H9DUeQgD@~y%eb?N7m`}%Q)%JQ&$TpIeA zqM^~-0@(`}1{lKz>-*pJE$}@wjx+7HJ)zouVqeZ=+9mt`Pp&U?J{BkJP1LT7RoR#u)9>o!J*jRk*2Gd9 zYbAPiKD~N}*UE5(55>N_*uM<9j|EjdPwU^u`eP6_^pDBpef@hHo|}k=N9*T3#z?T> zKhm4umits&{yHy^-9c^H`)_Exr{mw#`1c3UGS2~7mrFYa(D;8tFORhUdwTiH0c9Nd zl`NyW;p(slitfQRD9ImA?oWFKXNhYwIbKY6nt4N{4a@C zuq~c3k$E(tor2>E{}(i8>YbA2xb()&8yHuplLm~9n4G&FqLWxBpxNa_7tC}UjpZE1 zRb@U-mwX(sifhx1Q-b}7eJn9=zN*>)+6gQvkBYH{xrKTE9P=an`TR~{RUgm84Xdl# z#kfj!b-QzT{MX(Y=X2)|l5(uBqjiKiuv5)V*CuCYTOdatFjn`{SRGe>4zd5Tj9;lT zrcxQ00~-gFv2j2d^9GcGb;)?h=%2WpVi&s#S@%b&jqpK1AIko0 zuy-k5(Ny#Mn{9b(i1^3(?SbC^O_{nXvq_aXRh2oF%6wXtS)$7P{D3mAp)&tne`21} ze%AZWKjplmeksrItD&lIp}R4yZa#;FUDZ&<51_BzejYxcpO2}zIk2xkZr*%uz}(z5 zVBVZPVBWm_?*Dvlju|jFe>$LyAp^>I;bY3sO^IvAa;iFW)|8JI;w!*^h|-sXw*j9J zAJrw68|@+l*-lgE;-lIHFgd;Hw!^^E^rjmQYsacG{paQ#Cp|YuJ)XEkb6U)L2Xc0e zinkf0x|RP>?t?*>7mQ*pC?CR<9DC*^X&!89|26Y@`zOI3W;*Q;`>;oC_Om_1G~hg6 zGEQ5;GUD5Pf_dyZ-s^5)ems;)&>oi%924+A;PdFj?;&<8@U|o4i=5}F?uK?6@$~KD zi6UwX?PnUFk0&5UJGC0eh$*fNC&aUj+cV)d z=xFwH_uKuxf=m15?pXoNsr1x4=d=Yl9=F1SDf&R^@DX!i)+?IhMJ(p6_0F>wZqEb_ zqGM*a7_Cip5c9?#UM}Ff7pX47xdZpnXvCq`mqP}p@mr2{NA+nJy0P4zvfs|SArO^`*oj9>s?p=l$HN7ce`BOM$vzohnxqk{c&1{n4!UU zX}S|e+#kd#ICC$x(`(pnYcJ@?VDD`o)|kV+y-~&9@KYU!vy8*B8j5-@+?NT4 zyM#ggw-6F-KriPP8|YO%9BR7}MjFOe7TI~N;M`Mm7+tYtq& z@Db=Y@GPqy_Bn_xb6RtN=J^^i>vnpMGlWR1T}gfB$GS;9Bm%TYJT#(0fbq1uF_Y3PXuPi zLH%K24fQ%WTk@F=z}m~ud|YKeb8rLIHKDB)7c>R3uJ1xfdqB8l{I%QW7y?HbGkXpDqd`{& zeso5kl&`=W|E1*JjKZ3J7k&19j!7;1)62M_;H8S0_r}=N8p}it{px#`39PSYFWdnf z)!vPP%B}P12Rc(qGzhc?G==Bko5>9GlG?aT#|3eZ8-E?|uqU3;cR{g7+v-fz4)yk& z>vzsXY#$Xzio z3h^|(;aTtxD?!{4#2R+}uW|lAj`-C2C}_p?h=)?)&IR!un$O{fgnRFg-Y?Ee2H0i` za&vvSNn#!&|Hv$k!R=T1Lg#%p@>Ma^;d5I<^Xj2QAQ$Hf`kgma863MPa=#dk{KLz{ z5jFM_dnsZA6BYEx?MqMO3cKq9(4WzH^oL^*Z|=EpZ$?+xs(9wcV}4Tc<9H4oVEm)L zUOg0Wt{9nO8SJw8b{4+1W10; z17dg_qq=II?!#m2FmD>IV?K$Mg|P(=(7a2FIA#QJywD!tf@v~F1~54u2MvstQoTtA z9vN=5N2YzYFPwS=^l1A;nhO)!4v%>Qa7`seanF zj8D}MI9{luTR#`q3qPg@IEPpJBVrn0e;iwfSci>7%Q~3%@oJ5{Pu^kd6^K!Rw&8pO z=leQ%7#gR_DD9Vw<8wX7Kw=wCTq7x`+Q9P^@0-;I@Q^!>Xpu&u8;!ZRhuz=r%U0%L zN%NV7IwJrt0D4dv=@cj@Ks>wD)6L*`d8M%gbU98neP5{bY1Q;iNb5SH#hZj5KNVB* zg$D!KU|pwhZGwWz-U;6gqIY+gduhL(=KLISsw1e+4B%RDS+tK;yvzMf-_hE<^ZOEa zJ*f6%U@HJqA)WR+)8k1|&lprI89NDM!#=9oEN2qzpOf8)$ES|f1YJw3I>jQQ&83L*g7|6lf9Ikc{zZ`+U#NiU^4%xPgr!#4FV*oN@Fm=u} zZ;xnkE*(!MRabS)=6|TY8`8^nO`l}TIv2)>nPoG ztTlCigzn4fo_*le+<=ezcB=P$Ds!^QcGqkhKGrxB`j||MDrYm*gYD>b>4Q{CX&cl# zl2vF{gyakO|GM*gQg-$~(dXi{ROoIDb=p75<7-%l4jB)6PUw$y zr9a00G=#Aj5*#xed)Mr$eq1F#uW700gim@fZ+-q=;n=Vq!}B0yamf@$L*RY5l*qZ0NhrusF&-FI(OyFt#$JQJ?r`hgx`IAsw>ioTte%ds)PSPfw zV^W?dlYJ{;XU9#D@yd0?PGq~*ge_y@b~3)0VccSyUdnF*;wnxDk6Lj~ULRDeISY9g zyvdcrL2L&&<6zy7h|t+ z)Qv+?fqsgQMl7URjCttxA@JFr$*b?j_SGNUzPjvR`f6yduWoXN{tx@=w=NDnpD~k6 z7TB+&{7q%E%NQl}-ZYxL=ufP3pNi?}<8yo&PwQ`r{y_ir z!`47=km?ZBJNZ0Y+OIDWm9)=2N_qSH&+`AHyu0{R56$<4-9r2a^4|5ugG_Tk2TKiI zl!t*4p^M_th{wixuJ-7c+f}E~J~r}B>btr26Lmsj`qKC3{!{eU{Imc5EV_rEsp0yW zV($vOHX0qmPvd#;AA)u1rB_IdMo-an>>E_hB-_w}PJUS#Q!tJ&>vqD;WdX#rk2IH& zyj?O(odKfmH$L=-ENGM`GQ&o!MaW9fd;i7lN2Loh^q}+3-({ZfDV*HnAIkd2)LzcI z#fXf3gfZl^0%M8A`$W$g0lkwyNwN^I|Ed4aU3IR7Go!GlQ=Hp*t`(v^{M=DQ!;_;d zte;`YLG~a|@~{>s8J*AKqz&>Y`qtC)EyOjs5VEtU=YbOV+xEqV-WnG@F%CSas^+mZKUuJ!-OpbAsN;#{j|F^00 zp|O?neCUQz@_gvdn*!O1cLcI&g>&QbpnRT^Ov#v#w5MD>K5jFHoQvbt(;<471+tY> zo+DlW=NVmMf;!`a{sZgIqkqlzGaXG`$h@cC@HFIfUzFyUHkwA=?XJ_6+&4beH$K%j zD4**_b@&a<;UlSKjPX4^1uTv0<(an9Lja%8qc>Y;Jp%f>hR=2ofBk_60=*af*3P0H zE>7qwx(BU1Li1z-<@LTgqXK`rQIlt*DWgq9%r@aQqSkbhOAwD9SPu~s@n(rP)3i&x zM%>y+{QNQc=Gn9N@?1fzM7DKIC;3e16otzJIRG)s?l$@kVVyAcEY$^mL9{nKj#&1` z7|WEg*NTGbe;^MB5oz7C$50+_CjTe8v-_aLns)6tO7BX_*zVM>MM<{la5knpMT&UG z2+#Ee)^x-GqBiJ?9G2D zOl`;^os<^q!95${*ntrlFIS6qh!4!8+3Kn;F^l$n#BW7AO-);N_TREBZ(V&~lO2pU zaIE+8sMJ|wPdO5AvPUcnFt*jEwRSEB)iK7&yq#nA&>DGaveqfwcZg9~nTt^f{dT7~ z`Cin&XB#A=UUfl}tr-dC&q1&G+%?=Ns_C6ELE6_<*ENZ+&|KyC;1garvTs>{ZDH|$ z$YV0z;D&$n@x1mxN0g>_L@R1({1HbNxWu(pB!{0KaDu_^Bf(U+&`Aa>jdzPstXq^v zyG3QBTNvSPQEhdLnsm1S4PtwT6v+-r;#p}t^;oMYjkbz%n#+~pR$*AJqB`9wKDS)P zFt1hgZ@!{oR}Fa1XBlC2#!BN<^5eMubCOZUHFWYi9rM6+T3@r$O}0hpBLH$hjlY!6Uz`xr z>3t1d=TQ3kt+f6;3DHU4Z>mcO#ON9|G{HVF0iySJ^WMgOkVT1DLM*4byB=pNbUk`k zLVPecA@sWwqWqQw$2#3o9(0Bm*E^9<1RTV_1g7R8j;}P0{V`#~LvybT>r|uh?mi#< zZWrTv`iWQGSs36ofEd|`4^z(izmzkE<>OVnuAuuLtIk!T)RuYFj_OggmVPqWnN01T zPtSgtsz+QldjUO9(lf+jnNREdsIu*ToAz|vLkD>8EfPbOee+2s8l&(td3{qK_>zd* z{nI0eQNHdPpHnxX-r0Xha}X09&nq*Szbi#B)@tKf5!>%9=k3|U24rruMt03C^1_pAMuw~TVm9(jqmk2e3~zvs+9zdHD!LY ztE|oI)itBB%*8naZ&|M5SR&30=tDW;W)kiAMqwbwH?I7gBrY?FQLo}=u8N&DO8a&`7VGHa3B zSMcMTbwANKwRYfN`envWlz7znvJGOx>gGO)m&36d*NAG`2g3{dasEoao!}U$57Jtb zwxv@UN4Up)D>Ihrws<&VzAqsj<#Imrf$z_&s*dA{{*NP`u_lt>_%FmWd;CUQ889$| zkuKI{PvpHto@*ig81S!A&%dbHi`Y|G507&O;&HyTRCBJteraB5hZKeu@jtys&uvNX zqTfdPt)gEG{T9>RC0#En)vP`AYLM4Ro&dI_JyJV)ObE1m!A ztfOh8J+cYs7`c2lseIn0e5O-ANAuo2rQYqKcSOJ7!^C+IO%%5JPjpfIR{bZMC=RIq zt9(8SeYrm`zcnhq7b!oYn__p~yA|r)CVDr9-tEYH_Z{`_DSBtpyO;9bwWxQG)4N)F z2khpapFE#l|Cze2IFG@(s+ZRO`e;(rs(l~;T1fj7&r6!uKc#tzb^c7=+ye&oBBKNN zIP4Pu{bP-BreM5Y%6F6cHo!VXDN_gZxz_#brB1O{onsm#54(9l$5%~x;QRIJd&FoD z=cQrXNtI@;N&}s2INc@Y))qOZpEnu4^fqW0(zjPGw}LXhw)4dHRHib0rf5^&?Z;V9 zUfx3~UAfA;MWsQ^-pP4s1~FZcY3@^LUO`;nyfj6uE0k%zrqaAXY3lRR45l<8mFA9n zB;M6VN;8)B8|z!dt80wcZdb=7|L9|VP0G1NrTrnLt);a4R9eWsZrUKnW^T1-sFN1z6B4c8K z7bu(y9oqG*D;ohFV{`?dFG{`m3Z*-{fw6dTrX7&6&Ddwt#Y8+7-kG!Uz@Ak~>HP9s zuILW)ZSf-gKY|$2u?IvT&(;=oW8Tj@6Y|Aoyk~hg-#(Y>Sx9`uAM)_IL$CviN_%T* zTQki;+k-CNv&NXZY+D3++}{pq3-7k^xWcCc&#oi>3)SbsQ9T(x%c1|ix$TD$e}ZxF zbafV+*KW5g_=y6ew^YSm&TqHF=P@%8uc2sH_*K@Uz+Y91ylfw%d)7yXKf!qarCO5p zoguCBh*ygfk3jtA)(+t(Ioq#oab=f^AY;ELh1*U)`?pMGU9hghwq?yh#vj!iY@POx zKd9&60o`{Tw+Fln$%B6MBX|j-_dab-ri%4)GKQJVvy0>B4x@WrZxSRYFALXo3XcbK zN7iXbUY&|^b(+I_O7oWwqN)aDzB5u`yQ3|N=~P?K*bT{_~w)0^TsyYn2$M(g(OtcV-Yj8fVv7 zlYdci`ay2nLnp-2{Vlg^72>Az_kY8jM0v@RmG{M5dH1OFzvDSf<>{Sr{p+&4*Oi|I z@yV=v%;})>?2b(0Uw_zb=i)csq3;#ZAu>2TpXSq(=E;xN(q&|Gh7Zbpo1%dd;AEt-DXk`G|kykNfPt zc)1N47)*EO&Y!WbqfCxnYf)X}QU|76BzKzK!lyS_KUQU9jPM=&zwj-}xx?5l-1FrwHSn107no;@g+E49c*XFGjWaxLP4*loxow@V)nv@Z>lk}lvRNP&nig#o)yfXN&}_5}lC^QpzKPF4 zmvH@wC+J0gIIh11&AZ8_^0$bDi`>_winV_Zscfi{ec-c+3>l3H!O%n9DjnO}oW{e`18@=|t95Hn6TT z27Rq|s&jEpr?=vNrqfHd3RmwE{1=_x%$!c|bl9J|d+y~g9C`e=5*H2j?iFh7zoM{9 zT^*lpt`w!zo=|cn>%um~_GJFi9LTzDE`ZHA(I4!W$ZM5OXf@>;TddxbV^f+I4J4mHq!HR z8pFwy#-RU|)*3OC_RsgBzgO=NFDn1tD>QDkh^u1CIIRsT|LRDG7!!Y3l>B13T|;@B zROcF!t;*?t1C3ERr5Q%)f2L_W%9B*Ltwe9>-C&YM22o$>ls{s@gzLU55Ldz*?l?Rc zw(IfK)6g&cSe;9RlB^5Pol8qyxO?8pb}tnHZC0j&`A%A&B-0`td@lx3S*5@~>v@29 zlp7tt^`Kp9wSxXt3{C>~9)8DbL=)9F5?(FL<)E)>o_%+D#7PyoRU` zLWqZJrJQ)U^~hJgrDa3td*a=PmO}D6s<=e8XX1x~jM%xQX{`67%kF4v7d*u&!UBv+%(u(Jkc|G2H+ z<+(ZBHzhM((;hERwelY6X`{Z!8I`e`zFi{*h1(AYX|B;8!DIgkHTDC?z5kru9ru}- z@BcFHeyTJ24Dky5$@}dye6unRbY7`70^_{vUOQV8e?ZjISU19U)p(fJ34EL$78sXm z?BTk!g@Rs7i?klu@fS&>D4!k32mJ;8M~(IX;{*-=b2d8$w1#NMZ`Ji?;2_c557Pg6 z;N9bE1mq0F1;RLCP2Pt7{!HCgR}T(5srjy6llX$O2G~TE5HDd+oBc%Vy(#QP(jE#r zd7PDp;g|JIX%hwhwdC8)tb^-jdbC2YJ(MZ!p{nB&fA1Hk9?in0FR0F;Fb5yFQ|jTc zH{$y(^u4RQfIZX=>!j{tzT!1oXy5qr*X=Cqj=+ml#yQrS?NRYRzJ8~ii&?~qp*?Iq zy(>~SXVXdchd<$0R2sx_NUAihygy5&xlN_{C8g<9X$Gl$=BPAtkj9L_&!l1%)yw76 zLKf`I+eI)gGGRWh?d!-#n0qbm_?`^e5tG0Zf^{1_Ngx#M`dr@{ECil!>9_^GdC1*(aoq2^>nL?t;NCP_Q(oQ|x$~3Anwnn@~ z{WCrKkO=cWr|M*^=61UK+^0aFdLE*E?jbRl_PG+;=Se1g)eVC^2|4g9`!_Q z(9(0MF5gIi7OfP;(Vr77`nlLJ_ve{v_Q6hNesqeYMW8|Oi$t08)mVcjG)VPi-Ph)ms|rOz6T*W)*6UuFL?%-x3`?#sH^v!I2{ACoLQeGv9X z&@1VmTd4SO}t9;(p&t&yfDQd4Zgb>mBAUF+%E7*vArft0wjP!z=BaKBe6CefT%^ z^|1Yc{2qPL)F)+mJr7$ZNMo!I@DoGY(`k-Pru6?!IlA(vfNo`hvPXi9Jg!06n)G09 zuM($TD0P}=gI^=wuKp~K1AnVPQpG}ztP+7KO%`mDK#R(GtZ!t!2>8Cih}#xP6+;&U z%prdYda>09LCdjU+_XfVn?Awy?i6>%wzG}}7z%jrYn1O_WUK;N#v#`>fOyAKeb<98 z+wAIuS&v~rk1>_?fP8)zX@!klu{WG5#$2w}yX5?(xlpY)k<3MFh4y|eN%I#!eL4I6 z{BSkqa2M-_-8l?>X#sEnBWnb7GVt-LO(sN@xySKWB|vja?l8BP(XYUb?Ot-N#If-x z`E+cf^l8PKPbq(4*e~AFD0N&V-=*|1nI7~Id&BwkjY}sw=$r5qlC2~C{a&eT8GK64 z!n$+&9eW7tm-yUs0>L>|`rA~z1;_xvih*t?M1=zSg4^N6<89!m56s$om* zdq0rvgD%RA!QM^l;@dlHN|&(xoGxMCqtZdg{Q@wJ>SVoW->F!4BgxcLaL(Oiztuo{ zwz5ABD*IFSd;;TCp=?jJJloS4?IWODF`8@RJVZAtX%6f4G*{#H!&9UlaN#wFvtudE8H+@A>=da(K-~8r>_9js{1QGl-LGiISEmQE zyYu7&lAWA!k4Rf^@CM~-O%eaSAG#kcN_+I&W*SS$8?QLizG35+rg=+N%Q+_>7W^v1tyfREaW+&pF=ed7t~(ax9I&Y@FKpW7ylLonW8r7$L`fdmFlsFeKw{yEb{k}XqfFJHSt)16{M&s<$VmR;Q{=obVZe>g; z?hmZXJGAXIH@b!2lMv%ny;^wAcJX)JS{{p`bnbbecg$( zUgB?bL&l3=OZ<0Iop-LJ|B%yQBM+>Y(VheJJZ=sCgS6MTL1)#d0*^joPaRSC33zYT_?3M^+%f7XQG_aUOBAUzLV+#9c(4FqviKm)<>3Z zZO*e*?LKKfZoIUCF$?d7?JnhU#OxOFkBMuzkkSCVA*5no`_+5b#(sf%AEbOrz6*QG z4wmUOnx~ECL@PvfKOU!j_$izllMGOWbMc2oG4P~f54`o5rtN^w0nP?=S_6;|aW)Y& z5YOjfYO6d$c?4?& zE%@C27bX3^QHGM~H?zHb(@Fhio~C?P(OknE!k%~UuzQ?a`uc7dIEK|H*-J|m?`FK3QejMe{0n!{qtXH2lB~waid7Y2%Ry1{ajz&WM z%`cC~hUm|o#w$EVuyH6inooM}$8D$i;b$L@W{G)fKFoaq|9Su1#=}i<$&1(K$9Vj( z?}TRq$25pBW#7f+Ip0N$AIA87qPNhQ1Y^s*MLj9cHNd*KE6P6rC%cHC1?q*rP(PzzCQyGY#-21_>^?)!+tgV;Y^Po9Fvz7t&N|At zZ1e0m=0rUA8MpNV&5~^QDOfZO?-X0Rea;B!!kxD$6rr5Z8QesC_Q|);J1a? z&cM!v&(@;fi|ja(EyA7z_t~w=pK-3sH`23dtiLI7!0Xh1+RrvopwTHkVXvqCZlq>8 z-8f66v7%=Jejw}U`ULSdCdmiT^}O3=XQPy#%PX!MQb1!|?{udVcAEC`kRfr()_vLM zz=j-qaNXQ`XXHzEwm|tmAz#QyuOctvdtbZE!}Yl8f`siUZm|5cpVUx!p5moeHC;ap zC&a2)LX0U+h~rexO4^4F`ZawUHmEB&cFkbspGY3W-br+Di1c${y`x{9UkCYFM^1i% zt$2!Ls9?BRxH_!U?<4+}p0}vyr`-oEtWL3TsFZ=mObKM&v<1;XFMOM?8V~uP(JnL* zdpaS0K=bL_)smmxcvSMU_W@%?<#9tKkgZn#XVQP@!2G939oY7nc6KGDJ+5S~>*&3| zN7{sf? zBO2nnSfyKNCfHvLdr6dJ7xN=r-^|Hl4edeK}x{l%lze@ z`z7ULL<;P_NSXbP!brkiJ^2sp*Xux^uMzL#H40dEllG&XWn+!@GL-MpmssEXi<~E4 zgH2*&4a*g%E9yz}cR0=4;s~u}(0TasyBG)a81tf2R7NBo#YIYw#PVU!8n%-ebOIK| ziX&Q2v+(1muqY;{R*0u*{IA+=XFaJM4*Wkax@SKq*vl&$4^L6dfxQLw=Q8vc zY^nTpNj@{d`*L&Hf1@X5nf+4g*A-MQ>UhhyrM&wah4Y1W73B2K*E1G|t9O=TGs78$ z*z>e5u_xb2|1n11c&c~-{U3pT2hT)(#xV9Q(zsO*&;M_Ny zDhB;1RP}_c2AScxkNR@{?D^l}T_^E7JSJh-?_x}*pMZ%_S104#*;GfbI;VIUbeC9uJ(@X*y; zm+}SbQYFaGLwTS+^GGIgZO`rqzs+`lh~+rXY%Y5@T#Eg#hjX~$lqLdOd%9jbz|Xt$Y{{Ga z`PxACwa*8#6O|5_?N;gg_>!ck(c0`Iu@$^NE@xlrHunsi{h-{qE;25G#H9!-+v!g$ z+i8X6O?-07fnVbtw@H6S*tgauC9Xng1pMu6#~@lq{pC3iK7FwB{tvMv{SpV<(c%eU zUWhU3yug+7{d&JH05RZ7zS6|{F(0i3Q{jMvw==^{;*<9Va=QQj6nhfsUOy_>#}w(0 zR~^k_oIlx{&Hj-1!Z(#Z3HIHvGMX*uAxs@?ojH(%BjhZyd`Zdkl zaNR?q`fhq2JI5LpE3^wq<|@3a(Zafh-t~O&zOhu!_w<|rI5MvelXfXMXNRsXNOa_V z7pqvi5&j1inj!sOHDf93uKqyfRvHg6f92YI`jwsp&w>i0;6!YJ_LE`@_?7QU1ND!e zF#$AMLl*1d@oq2Hrn!dq8}}T{^*;nH1|9x_I_I6E^s>4!f$bVU2OC>`f?cUK!RE)Q zy-oU~Tm?F+Xe?|6z&q#D&2iuAr<)i48@gFLfNttUPj=F`J?1-^5c8jsF4Gw7sL=Nj zpXwn#sMtP_X(ZcGaliTXr5r=^oZrjX0^k|2f59dP>)G>9iGlLpoPCCr4g-4|=Ii^L z?Gr8>qgiChPHdA8PeiMa+ql}&cm3dw0-P;IT5&(|K|NA^nQM% zjrD6L-beQl4Y`uuU5~MUcO&g*K6#F}8fTKUwl;4GuND4ClU*L4WS5((#D+9|L-WS> z`Wx&oVnAm{w9qec=8A%_;m`StOk>`zTB)`#1Wj` z&!KYN?~17&(7S*pHb4#m7IJJ2@Y$B>;R&>+rvpcSS&uqT)rz|gV|^E^m|h7jp=(tQ zr*e!~BcXe%8g%0E%fPE(O((($i~WR(8?0cgLAW+5g?X5+z+r{H1$+BNLsQNL?-9*{ zo?VaF!1xFhH=XK0uSfm(du7LkpQ-BY+ToP5Ep#hO9JX_2y6A+AyQuZtKxNIj8iLP7UXO#Xzx9&>M(?3 z40NjaIMbX-7Z36+HS2vfB%iu#*U%e@-|rCB;YQjE6Gsp?h;28hz4}SUdTvbak#?Wt zWsbZf`E(ce>_E#fXGBB2!*K+l3y!U#{byz-6uZiX|9&C+n71-^>jG-C+$&~e%0z1$975Oc4SHd`hpsoMuMy9t z4-^M=_7%+>*lL}M7%lKy``y>I-gz`uz{|k74ExH_+_>Q@H1_Zjo}he$;|hD5V;8Wm zW9Db`zfZr``cj7AN+du*UwLL*F$|d%y^_(58Og?zSU#CmWgOIR_giu zynJxZ#(REPVl)CDFAP7uDEwABg@O5_b>j@t8A~*Q{fx9*t@N;T#;dm;;d8mPw2OpY zczIf$#qGGm&Q9VvKf@_y92iOi+`AZX3ALh^hn;1;JS=RbDV?{@a$xsKd`K12Yi9H< z;w85RRb1YXvY~~4^<3&7L)E>2XwX>Y$D!5j;uvEk%x_L%+}8rOSD99V|FuR^=p_H( zKkPk#1KXl-Sa11eAgfJyS-AHPepBw!+fICtOyg5&zJ&N7l;%N7GbS%TeRQHMtnQh| z)c5du{2{HiNx5`;$~<-3%NDrzTFS$IYkCK#efy`9=9DTLK2F)rkR0Jl!*7h%8`d`W z0mqY(Jna_tYhS_tY2EprQ)!|51fR?4((uV$BVgNrm~w6zY!{;!+eaYJP=AkpFy(vw zJE@X+d3$+sbTVfbh`u-YQBsnITX4)J~-p?@vcumoN z<_D7ZTW%~QmsgOOsq~$hb_OLIE$ksdTJzXP%GDk+h;>;Klhy5Kww;3SLKLe{SA-faDv){n4IZkhnqnI+uw&_a^(YoEOff5XX+n{Nnba;IPE$&auu=LW2Q1^0X5%6fuCh^R(u(fGo+EE#6619V+?YB?OJf0KHwab|K z3Y+2;mG%IomGKRyvXAg$_+P*o2h^sSukJ1Sjo4##&M@d?{A12KIc1opO@-g}xl6=GPH7F36}ZaYT(P z@HY;qah;GiziO4<3b-s-Ye?@kQa-I}U)gVsTX`SR;7V0 ztiMW@>(1-_YF?kI((I-*i>v$VHiFXaRduUSX6&v98kU+hgimV6)U3 z{rOi>nyFRRVUID&{(!TrCX7%lGC}oAE(LBt9T8^8F>=?Uqa3SoKLP#o=A^}Q~zG0>i4&g zK#ylTfBlGf($p%}%`O=v=Sz`F5BfP?rJqhb4*E7<*PX9Ns;Bp+dJh?Jed@%rf%{ae z@|wVMK0lt2S+;HkFgiUjFD> zYS+w6etPIzL;6bL>UDzje?8If0+mOB+DD(_ykoYtbo1XZ#WkdJ-YNGw-05x z@M(sQ(me-=-_j;@CEI$Gp9S{(?hpI2CA5x#!|c=2Iho^IT~a5`_SVYpO;dhvLHHUX z#$#CS^GE(E{ojg||68e|&%bO1ufKxrqg;Mp$G$w_g(Dw)5&D`HVwd7egN&8Rx)hct zzHyJ1)m=SDMEYz)9(d_gW&d-nofYf@KE-zZNK1m2+3wS4xtK{f zXV;Ys*xJ`0Lk=-6H>G!FHcj|-2C^Gu<2cdJk!%aJhiNI!L4mmuOAmIQPuDv=+MY~L z^)7CXhbIDxijW^iNWm%QM3&w^F|(!3S4(rSEp;oJ?P~m}tWB_zUIU zP$|wHe28o5zMq%({x6IlROon>UUuVE0mkh(o>yno^R)j-J;V9+tUjTh=p)ntbvYh> z;mD(QUvK{XoA!zIN#@lDb_yZaPJyw1+LTRUhj>=snbFOO_AnZwFKF6o-P})d|1{@D z_($ri#1}S5S^O53nQ1T9TI>prKQ+Pr{7uTYna@dfW&Gi|Eze1KAA5JBv5V?G6@2tE z*!2{|BrW*cGjg7cXSqBnI@Lb-8MO}u^Y)HUQ$0RfJIooBEU=zU?xgmf#(dNfTKn#I zH)$5f32fvotf`Rn41=JsM0Terg9qgsZG62iQYDPjl#|Jgn%O^ZpkkIet0X=4{2fr}h4%iUSEBn8h^K80S-HoQG@D zXZHWiIREacj~{2}^Z&bXzHh)dcmFTPx%>Zcoag-i={R>^nK#Y~#|P(_l^Aa;DNe^e z2A@uhd-`D-zec+{_FaMT3#K}FKdVl5i`eJgSnJ8Mkk%?zylQ6`m_KEVfYQhs+KXpq z%*Yis=;A1K4q&pZdg6Q7b03Myy}Lk-bDfJt+&F*#;XCN3j;UCbooa1hUBE`b zT@QwqYAn`L9eO&|=t-wKyb`Z|^`%2nPN&k}CXKbi$M)}UFh(ovwsfPx_L&Q;Dn5Hz zVr~0;?hIt}Vr7#B-I+gz{+P+whzr8c3dAnMnbZ*FU+!YffA#NuS)5tLw7x@{jDJ$+ zrv0;uUDBD0FG;c@wQEt2#C3YYUH4JoFto9b40ze_Evf`YNUTkap#FpJ49>e2oA5(w z=Dzrsez2$?tW*d5tgg|t^I#JQ`>sApGfUHUKp*W*68}_{%9JC2%5xFrS8hmrB-ch_ z_05xP#t)!*G=F%PkTEEyIIC}-V4u%+4l@~3!cTKzFxy9|7(l>;GE$894ZIk(IaN6B z_x}StV2u6r6yNf0rLjV6)E{OU%i!}l*u_uHJZtVQ*3HI}XU(m}^t`N++6ye-i21PV z>r(+9>(WxmV|}^a&W@)(LR)LX%>uqq5$$2|gd01Ho}-QMYx9IiZX$Ytb%8#>xtFHa z`Xr6!it!-R62xCbOm>6j4Co5*%rIX*t>(%PXs&dsxv~y(CEg((lXL*sZ*qKT?gl3n zIl$K5NaI{Qq29qb1NS2op}DAc3h1V)W9{MzoJT}xZbqP+(w2daJi&fn5*xb~XK!i_ zt*1F{5FH2pc9kyUks3y`t>?{SgU>!>{L5}ihjE!q?@JL2RmMww7rN}v_w?g7mXDF= z7(-ac*dbh55c9VuEqS|Ng1=Sm-bd|b>>s_=ZYO@@sG^s-G+xSA3OqOwbvuUncE+HmJVu zQ8>Flrt7O$16Qcfxl73;YiUgWsOG49297i7XTGR0-o-qUXHRAW5S<^$9xDwp-Gg7w zm+#W}oLs!wk3G0CvO81h(rX&mnTQEWYvX#*9~yg|_8=YSo8goXxCeS{FUf)hHto-B zw~w<|ahtRO)54YybFqQO;Zrm=O_3(6N8#2LOaa}YIck7zO@*y0+sEg8{KE2FqEhYG z&ziLFhf07C#re7Uj8^$_Ud4@;KiS6ii0qrI?1_AllxHl>J+~hkzYvgTLuvSAN?8!& zigPBMcaWTD<9ymrv~S~-otY^5HLo9s&X;xuZr$9v6jsT$gp8E0y`Vq?ULop+wiX!e z{BA2~&46}p$GQt!z#Hrxmr}|dW7|=5}zu$lsRLMHh+$%b)V%)g)CYTf3tAiMK#u==jc?SPg+P59}mH2gO zBZ$5%4a+`6pE6eN9dbU*)0)Z#6EDf}y_Jm(?1x~3F&wr-I&6ogzz2Vs+o#%A^v4{h zL2uA$y_Nu5!$b4RQ%qN5`Kel6$EixD*8N69nTsv#+WR2?u?n*nG^t0~7HXc(!&ljY z*GoZN;xOc9q_0uFBHPW?!_O`g4C z-NfY_!?{1~a^v1ErZZMwzimA65Dh=NAk}aV)wdeBZj4V)b5yOXp&qSh7V{GlW8l8+ z@CC%UyEch!D&}^>zr@@=PvNEv!x<%w-5jdRSY>;AvBI3HmA>ALTVJa~Phac|@3DMm z;2Vyito4@lSPs=OGe`Nb(%ASshIhEqy;cl%ZK-MhzKPO;7sNL+3p5w^xabL@X|8?M zw#x%d(_*SFo2btFm5sFcK_BB>z>a`p@^LJPRy&lI*n*{W-L!RQX3N$+nTqsIaR$l# zBj`HP+(SIrPPP$%ujHGwr?_qQt8$=+tn=&>*b}_8H>~-sv~gZZeT?%Xzk7CMrY*m| zQb5P&C*I=9-)6IJ|9|5J)&HR18Q2!z==>DtH>xaMl@(C75cp=^M(Mx#cwU_r(Y zo%MWov3mIFzHE?qkdP_)kf&JhHBITg_GLaW;BW1-p!4$8 zZligzBt!fdtT7ki{l z?uBYx=kVF=bfV4ub2_2&4k}v}sq1V5Zdl1hKaq8~HgAk__UCNt(o_~!_ujnkfBzTQ zy7cGk+W*{iSAd_p_kNmpp1PMs3q79|U&-eP3()_`{TYAqv%o%f=0kpu?$5wR^fr=t z29dmREA6q*n)K}Amk?*i*#Y0zc#C}`)g@e8*O%GWbwAsZZlmuIgDp+p`NJ*t2JDge zR_O>3zvPd!R(G|wq@SSQa{3)v-jZhjSXztFNzYRFon;EQS1R8>c#Cxo(yO*ta~o#E$9(gKyte=8qrQqc zw4b~Pj5$@uqaXFLPicYlOJjXC_^3!)V$UATd%wxpn+chF*{2_TY`x0kS4gAqfc^Rg zjxU3J;KzpdGpHZxVNb2*MKrpSaZyGn+88yvIiJ@lpPumB89&L0KIvCYw z(TNBCu=vE7I5-dV-f)!X^U9CQNNR$H^DgiXO`oOEww`2KeA4PRGkVbJ>pLQGZph1d(7;Q z`WT~$c<0TGanh4=Zukg3cCBnrj(#j;+lyxV>Df}=!2EOlxu)W*D!oRng${u}M4!5K zJeBMCc4iLohs!B{?BUo8{{DodU7zOjl@1Y8^lFH9BE2$cZtwj_)^{+~_Y?FVd0`JZ zoBo@y4X6KS(tqro)gMXwWwh-KwBxDg(|qQVC!ansP$rA@%Vg^ylSTVwvUPbf*=X2W zD7iGP*o~3n}%rL z{@b7WTsxV~od#@*Wm$#F&xGS`8NljpwSV-_zAXGw-FQ^LP#EByl#lqa%>R&*nO=k5 z?kXj(5)WqdwAvGX`#C$~B@sU!<}tb9SIw5&EboZ=KIoagu;557`cW zbvIGE?dAwKURT9l^&dLwH`M`V;;zDPhagB|$WB6Oo zU2kXI_iN_`xb2}2WWO2;`!u*KmBC!Nudi=4@P`&gZ)CdPjhHbsE;N4jXVrWI9sq3Q z;14)Yzeb=RS^rMY5QhR|02`mK-(<7jrF+DlgMJF_EWc~8fWM_4vr4?m=Mw#MQw%oN zsZ12~iq`H;><28{JXG0Z{u$VgV^**qFYE=YRsX_IwaDn7Gj1OTK^xV%=R)%u+x3Gi zrS^PC_n51DK9u?hU{a%QrLj)l4`@DABvqdS&r5$~gz!f?#Def<0sBMfM&Z-8o8`pL z+_Rljm&Ic`a~RxORLX{KnSR8Aq;jA6u+O!Ndi*!&ZyHOKkMinJ9@0}=R=YmK?30jc zc&4v!8O8$kg~;!RAE@{2SC?uiruB<>DvQjxFcf~^Ic|P5Ct#C-{br1ky%iSR=JH~> z-V?{AjWx$3_%D1<{jpSWQu&_3w{P>hzAW~H;WVDh;Im9)boAVS^J|iodF|7@m@@2W z7IO#XwWOt8!ipWzFXLVH9Op+rrgzxauDVjvG=u2A8-ECRC+uGUtcjSUv9L9Kg5<^Z zz$G?ru|`n+NM?JthB2_D$GwoYf;BEiE|nE)m9_$v18fBr=}oq4D*!uzXZmtDxtnqJZ=B@pANKFx z{Br-Sl&l}nxL7quV5{yeV)=6zo^bk(BGBR{$?7F3gX4tHiq_;3YuSL&L<<4 znMQOK=T|7_S>oH-uH29|#3(bEcdoRa@Fr_ve6^Y?S4F7 zp2K%Teo)VTsGfm-C)Bfb2sTJy#l`cRBD$6+Hn_=Bj_V?@>dF@p7< z|J~T1@-bsSTaEpEHTIFbv7ekb_E-Eb#{R0ju^*wv{o4}o zG5n+&!-paJsb}Y^v0ee(3-zp8r32>F6YAMW^=!F1^DTAbEhJN!v8gq}7m=7sT6i_> zdnt=Qfl&#PkUc!|x8HIDZMGEOCU81@$%b4MT>($)w)kA4U9 z&J0i%<9Ek9#DN!a&b>+c3x?rSK8yJT;H;iaeFOiHKwdqPG#?7ooIBN>bJX7^u!RTY zaSGF}PM%js6~;wa%`4` zg(_x;i*a@B7q#A9dA>JDb04KI$n%Y@Ez}&dcre%VdE$ZNA7p#k&k-?9uxFaPL};jfJU?ekY%54@sy5cjG>&+HUaz+l z`eDy!{V9)E+v@iuUoP-OQXY@D#A%{_F1*rjdjr#<_bh^}>nWJ-c&|+Pz<(6b^Qy@y z-_5YQhJFE9)!L1YC*HtxXe#?gHra(lFG&_W&wE9}DJ1yUG%?DpNRqUlU zpj~xrCowZab8R(nN8PqzZM@pocM1LjBLe4wp3yjiD6uT8u{6eW4P%*cOeo?R5I39J zT&9@~Wx!B`uHp++7x(N1`4?QdUG^vC{{&;&%ktoh@gtN${qLdvUkh6bs{b0$#qgIb z@WAjz#(eeYmpcVLu$i3zT}lJBr>&z8dbXLcBjR>=CT@2;G&aZ|WeJ|ccRQZCR0*}i z_oO<{+5AsAm))30vTj${z;zg`MKZLeFVT$_-lshJJ&f(|(Qgs|KwK{KHfxyifbEUk zW--og>PuD;&4mIQw*s@pV!CBqe$W%S!p8G|FwVjZYX5BryiRF$9WF3mJM4+fu<6}- z(1ZREa+)sZHTo2D9`z!6S4{0HC^x8o4Vu>^)07+11_}I$M{l;?z`mT0z}Iiv8?={$ zw-}~vK7xF)KK*)&2pTOSWVVR!;2rIY;9cIDXlGq40cFu=DlueRpv14 z--hzp%`WyMhc7+SkKU8bMuTyZrL4@EV^f(P^X1Gu;=QKTWe$6l&e6p&aCK+2=bVsF zmCD0V-{;aR9Uo#y&M`X05Xs{?D7SPEXoZ!Tqb0GR^=yKQ&N-S^gsZHK+F;&n0wG^cf<2SkWg zm!9fzhDV$1r)lpU7N)h3mOPYZ>=9mL_u)y#aQigIX~g{jzAs~*Tw>aI={fY@m(bV` zV_V8;68i^xH|;?_+LxMv0T_iH@(j^P{{!AQ(WqAs!`3T6YxV=|O~5!(Hfy-L_UpCa zkF*lr>la0mVliVt%>ZVlk9gY>t!^*tnDTwzzxSm;)>9|rl6tsKGn@iSuT9yWJNJVB z`_I1==tcg(aSzaYN>kFCht&YR39wUZ^@M%xt}NS8>?fY<0~G@|z*to>js)t6bHzK( zmOj7#c&0zr=bX`L<k5Y!7-^e6r)&&x{sH_Y zV64y>BNhtw48#Zan73N*+pxRe$XiZCw(5vD~+PE zc&(W9b?L{6HWw0o%)FV+20d%VPv!@*_2zRNGZprye9jD;glMCH+yI;);04tuiGQY_ zMtnQX%gi}9O|rq)Bfd1wMO|!1EsU7az%SH_CXFuTxquiO$E!-k2X&>qufY~(xwckZ z@kNQZ@I{(8i|Ky(e8gDj&mX?J_2$aFc&;hPd>rTLqAx1E*hZ;)_^Oh7jv)3jeG>`8 zhdMz#2>rs1Vi(IFa$Je0!n&>4L~S{X z+8rC!DbBepVQcJ@FpXu)ZhF@{zaNugCe`yZO0Gd($a9&>?K|mh2Z!Y$y5#yxYQUouY=``_q_1%SCK-LM)`;kCc5D)`s;Fc#gHa ze!e$9z~y2-Tnt}lq8nHKQgAFB_{(^Trm=k|bjcCoGhuW86s^(EA=bEOu=BhIypvsw z|Bn6tDurhdOfO};{lYN#;w$WP@cxf$R}!DsJNCydY5mFn*)Nj!`)|KNIne>X$@Dw& z#J~S}^}QVX8JOlC?Ru=S)xH7GXg^)uV{GTR64;9%<4)y$`9LN_ZGKAP^DpxnyAB6w z4zSNbcK=~gIxc3i89~y9fkkYg51hsJkwH>w#9^J~I?E&;B?XkpvU&1km zDIMa?uP5FaKKadcORY`jG{(Qh9^2E`x2&1^7P3Ca$9!9`PVg%VkF}4Uzx+-%%W@#` zypZQuKC`Z{H>6i)Jn_rz4dIV6XQk_HzwWU@h|Ns>ekt|)Mye-%-Rc*kpZ*_y-t8Ehk=QOSmfo*|%@xFlS2`aY(Mu1Zhvf z{CNlZuCR<<{)PP_hui4p?#gkQdW+G+i&DtBE;K^i}7RH13~K*ffkg z8J7N%jEP6|rYE|a^)bzJQyJ)IOSNXUQ~ujNkvpFOo=<6-_&fMSQd_>akH#OiJYxns z!07MM_ho?FUZf@7d;Oz6H#Rlv#X{8A=yT==X^(UN4_3ZvuFsl`Ig?cJ5#s+6bB5@1 z@xc*A#6QJt*bui)IwK z?VD{R1JqmHH^Wx(Q@OJKQ|vmwij5`f(#UoB(xih~_c`M4{#jvBpr4n=-G1Jcne`y* zIE(xGcGjiKdftY9Pc{P&F$3Kkd|TRM@;org{l8KSp?2PP={Bb{m9WP%zI=xW7;To% zc*`W7>q6u+QQ<&esq7`)@qs?3M}H?bMo}d@R-&)8E{UN|`{d$qlVEv(c!3nj(o3qS zuW0?O9oa!^e1g^XCi-Mte_#EZ@q#T*{&-bUA3>)A8+`DcC(S=kM=A5~RQV_VCI3)7 zRSZlJSw@1(pl6xFymByK(e|5nNkgv%G(PsKGx0kq z2X=3ap-BBRUfJAzjoP;9r$kquZAs6k>lV6h$B+KMLBGB9JAf-aJ4io`{s-x&)32NE z*U|3@`fa4&a{6`BFG0UI==a()^q+o{=ofj8@}z5=eqs8R)At7bYUsC^(jM8=l0HVi z@PkWue!yUb>PoH=>2i2L6|d-)dZGqY0}*zA|hmU`b$O-W@Sa}0_! zF=nv4~meS2unp!vIw<(k>Bo8$91 z(7NBLcWXHB0_$PUtH64Q@0+CE3%&1x&1G_h=-@o2I6JkIkMYk3^zSyv8p&N^SaOg( zs4bOgl=)h~>RuFCArOr3>kt)Re~PuGX&db?`(+Prr6L9Y{$@z}wm&1Cz`y`r%WIQR(* zSlxqEY-ExPdZ#Np><4kLuVCHQ1H{MqNrr$PrG^!^j9~lVR@+nD zXoVxi;?(^6WU(kY;k`!;JK?=Y45s^r2?=Wu<_p!OQ1#;vh!^sz{{6n{^GB)8e^c*i zY*zn;pO4=H?dAIbSrYP8yZ;+r44Ps;w4IEU9-?LPG$d-mc>%_VSVzq!fIE>`xL!`RlZf#Z8j0uKVr+^EIp zArZCmJI_%^Ufg^PoJ7KaP2ay?0Ov<5PjZL>lOw z!*wJ>6YsOcY_v9x+mq=rw`RO1XzNy*-$Zli3SP`_N{ngnZaBkcJEx?=5~22PA>Lqd zbQRm@jaIgC{_qNMI@?c7$GH#3mVl0x_iv)J_dWTN6TXYekJUTl5jzC_K#*ao_GW_S zYO%yvYQ;VGTN`WN$^`YK?bCNNKi6aI%$#D#Sk_)+r#RJwzuQhxuFj*OHylE|CU~8% z-__TTO-Ovt5E*m8IsXk;chkhS*x2L#$mcLCSnoo@h|sKzw^1Pi8wS3jKz)fBk(ndWj`mG6zH4o zcsI^DGK*r}u=&cYi*_?U)q)5;k59I@gu6w`>K0LwskCG(@$Ieev7SECD&Xf;Zb|&s z!t0J^s}>7EFyR1j;$LG+u8jaU>rQh_{HCm82*!Mo%SU}%-kak$uDna`A>_83& zxoiM-^7cVV5xr6RRBpdm`c%5UWCpOsVWUCirAH2Cc^16yDYr^pHQM$?s_VhR%B{$+ z{IbCuQ>z^IZD|>E4EUuX#-VAoBnGkcFLkkT$J{J!jJ6L-2>8v>*p`%2AL|P1gx7dX z#+t(XsfIt*)+#L=zruZVsu+x~fpVeYGH%3*K<`^v4~15`g9G+{~; z*Ugo8{R+?5pO2YA^>M$mX9aS!BBth^``;~7Q~4FsZ=!M#qa1Vs`^&tN zLbl6;eK~BOvB%+jqH2xAG{rll!8@dJ-=9YBcfi*hdlQY(g3EjzG}k()&pW7Ijo#wM zl}wMr(iRGK0nn2cJSKGvcfda@)+OpL4muc{yIH@lEgPlozfAYQgD+M0hy_)|@hYc7 zkH|J?E?)2DDh={HgT5K9?h#Y7Kz#%Ix1OrEGw{!YZyxl)h;;*hwc&cR4WG54I5#y? zXU^H3rdZu`^Y^w=vHz^QC>GLZ|PWe$tnPP1#*44Py3}e{7=VK)ozn!`BXMI`l{b=K7zAt0+xUt*?&QR;#&ZrnojA!X3-UC=0 z==X_lO50~$@m;?}ETz#+jAP%Nm(QNOe0JsK^DC9l;$3~&Z}NOiIT(+T<||^ujGc z;|N^ZoqJcloa9Bn@__~Y(moaFjnf)M`a>#xol1Yi#Sy>m6YmA*6*z&~|2c~4k zfyPn4vmHT1+Jujx^?s>GE7Db(29M;2?pyPcGv0ii=d59@JYmijvF@?e#+f(xnt9ZZ zV{opga6+)w4tlhTamu~~c5|Gb=K0~*vTUFIPwIm+<2wbOUqbmjO?lj3JIMydf)?LV zR%}kR*D75}z@zn!d#xqi@_I{p5?w!hRsR2XKQ|q|!_U1BzkcHPlU_UVda@tVyT5_y z{+qhwmvuBRz4e-`PxybB&;QrIf%X3X`j_AT`fKv{zv(YGkN?egSih0^a*Z8_ZLZdZ zI1$bm_3Tf|F1u83wU3j$wE7V7MaqX1&&I0wU@PhQh47=HbyKJ44&G`J0AKM+VOyrh2AH**6l;*3$hO%&FjM-P??`qedv~Z_@A=e zD^RoX>9hmiOp2+ni5Q zo-Vx$4yZHq|Da)PpHDRG*;nOWeJkjA&l1%c!%7&fl*WX(>;kF;7RVv_VG7L-)n5zt)v(_nNSR z#ACzW$4spjh-HH~;wbk$$c(Wy0%ZUb(;bI_ZGw+np|Yb#n;v*gw&|1Lb*YY@pz-Iv zY2D_GkH6*s8+hPY-b>@2PupXvUz*`}W=P*y^n2+~rHU62;}%vW{k zqVc^)`8v7p=BjtVmYMreU(uKOj9&UpY}-ZqInAw~iM}j+c~4h!!el;Mt_xsam8j?N z`3m_9ou}wq?5$XnyDzr0-`i+suZ9mT-B13ge~o%+POcLt&dG^tPCg>!oD5T)KSSS~ ztI8l5-3M$j_-`#z>#>^tyO_)hX;VQq;b4eD7 z!0u)S&HXL`y;9=qA*cARdS|+lQTWVQ`9uU=j9G0ZV^dwZOJrfQXf`~0FxyvYb-;v4IX*LCmFkVQ9&WUaNTb-dtKZJVmBHI*+r7~-9;b(7 zZ`dl%ySIqz7hW>h(ISk`mnm+5osI?D51g0vYE`QaBgUN9Y_vkrM#0$Mx;(R9_j4*k z@}L=#U3b9dt5QqYTrX;0@3=-gO7jshY~eR{&e!Z-*am4Twj#%@V;z^<7fFu42Fz8D z!d`{Gfc-b%rwlt{>TlSdqR%zGQ7nr>$I;2y7=zm)#JKg3*DLg0sj*f> z#uRZsLMDPv1-4D!e9Z3k2P?O_{w|2W1H3)N)B;{1?84}t#)4#EqJO0{9$NLJ#6P5|PdFogFMXJM7^^T{T{wKqZcX7%wVqqtMSQFYRQ8XdR z=f<$fKOJ^>TBksKBgV`z z^qCR1zXbi9PGhxN*?hgvae6x$Z(3uY_;%>R*mhs{-2l5p_EBa(0r0@)67~nh+W2?p z(_SU#1+_+d-S6zI>!ah>T5K7IwAF5+I=rWB_bZuqPYO>e<)E*DPXIeu*xFb4;0sUf zruqU?@M7vuZ#T!2at!K6&lc*>o-oIn)-Uj}jUKR_H15|nF-Y|*{2w@86^#YX3)uc2 zd_WlbiCG!hPujbF+E37L=re<5Zs_l5EMiMf7z@-<>!GnoB?NF2N>4HtIE#Rv5cWpc zR{IROp1F^c_fsFw&g|npp6N(Cg$5gK#lCYX^^c1+i7^Xkt?$+5e3aI_M{{GiP~-Qu z>PP)fAIG+@R6Zr3AJDNucYN9Pb~Y4SA#Sgbbi`{+<~4h_(RZi_@;A{G_+2d^S-EAj z)KhyWNKC~qFwXQEj{jY#B@Y*-8u>g6V-)3B;1XM8Df^S8GJm*iu=C_)pL41+&^xRa zpi@5WCZaKo7TcDG*}nq%>CLk&u|#G-v_ znU|hl&AQ~9z;6_J=sKCP(nxkB8dqF`*rpTg!9AL#Q=13Z(R!je1k5k=#SOd`Rtx<) zA7ehk&K3K{3QgOQ_;iSUb&FMO$yawu+m%yQymXwkmC`yYrSTkUZWqBwLTrg|&;03) zY&HlxZQ28;(;O-^yASJhKe(#na7agAPi6ZFe|SmR;0cX~{W|@pK8N1MZ!Qy5r`}1L z{2n^4K^&8s=$GQ%K)1t`pBrb$&vAOcj&-^WwA|g7rp~lEK9D=_FfQmzKd#h&8hjN^ z>R;;DTQ0tw#^y}RshD7SjVdd1=0wX!?`|0@pWk|hd_MPF_1u5C^*#6*Xv;WO$Ko&l zA*(U2SF;^5mNAClKZplGKNP0X{#F702mYTS>waLv^t!Q5zYDA$70(-Il3UEZG|#3% zFIzFx+$-Q45>glerAETWobzK&Y3(FZ%)!}s1&u$xU4}CV-H=!yutS-y{QsZFS*^KJ zVPL4eiu&#u&`_KUQQfB-GIq)&LyoP+_;3CF?)Ev#fR8?{<1X0X=rqP2^YSHhZF&S} zprF%IzrlNBj!#hY0k&I}l;$AzUV~$UPhPpH4=@5l z5uQr>63x-7>49wVlzL~5;ssz=QeL%I00UTyLM}i&suo+}BRh{nXNPuj%qNMXi}fF@ z>N>1h9lU>^`g^>)3AiZldUc`|3MY<{y6 zG4!;fSaMyn6t8^AN%@rd19OX>9Cap9gjf!7IYVLODucO1I^F(Z`)6 zP3XVKC-fikarLy&(S~Tu%Exq2pULwe*cwaQsm2p*r_he@pkdAk;+gQjns_(1@z-=2 z`uE(SuD16a^=_ZTgY=xTy@SV2k+t|)B zq`n7!<$T5aEu0g`;*1nFX8uTX?)i0}53p>5{kO7w2*+H;oLPCv!E7$xD&lHWfBr+^ zWB*OrG5%G`EsTY~?$jbDPBO%H>SO3Fy~eH9qaS5^En3fb$Imp$19a2#11EXDf}W>O z@;ph;7gsaikl8qVF#EJVK+p71@|mWu6-()U(}w5M9~k}5mLNZR=C3;O+r{*J-e{d| z?!k}azxxhlP8($%zK7D3sWVhJZQx{SRs5kZgjT|v*y0nftp%$27w$G+ZUXWg?ZV55>8ROX2^4gU>2 zpMOdrpSOa>U~WN%GURJ@aYg-3bL(q2&v zT%Qopyxphb91vK%K_`y=neqs0sS7Xtx!}0q@bv|)p7&%C(`(q)7e6B9G|+4KCU4fZ zXK*$NJqOMfPkEDQc6zn&h7(lB2=>Fx?E4p4T6P9wRjm~pZiKJML%a?Wbg#wk7Z1+C z8kouB+dU@4H11^Bp01xS)(H0S9Ty+Wo|yhbc>uItSGE8gFPdn>dBhVPPXZ)71w9~-(F?er(q*eU-Cp0&r;8U*W_}ZE}7Yc+^ z#r|09aQK{W(e|?M{R-GffKQYqz6r*OWEzVuY2oDnpaJeNe-&)KVR;7ppg zV=oC2{ZH5q%@xEB-)Oev;yhAWHtYe z{&jZtpo&B2`bfGm`a#+o#?yPyEbu0LW}|#hZuw`n*FA?`RpR5=${Em&2+Lua$CT|L z#$(+nem-}%>HQk@9DG3GXz;YMZ1;TFjgN-<{;(t$TY58O&O+}r$hE88I0jalfJ)chA8T(JCK177`34!kXIk@WE(OEGT!uZdl2!#s9TZ3fcSuT z%nbN4Dt|TAvryuYIPU!WR)FT;c~M*Lds9I(R*yX|#J<&zL37V|EAzC`lCuFSQ~M_7 zK{yiUc?+Hy_`kooA&{*POT5Y?(WO*Hfak#5>fA3zb7=R6*_?d@{46nduy6l`zMVI` zlzlIg6Q&D1L+mo>KE6YF!3UK7FWX46Z1R+0EYI>8=7dHIbF`Fre$e*kDE~%EPji`L zp`yNS458kK`r`q;_iSJ9PruvO>-ws(PEX;f+7I>R_C8I`p>lHy`-(!wy18nKIHFIm z?P4vL?qqG+N^L4Pr}KAZVXF~7MgHPa?w^~hri-_VB@VaiZ#v_~K)<~|l{+pdZ6sdq zKGvIm{~F!9xLNN0rNz2fzv82D*ge*WmOMZpyMk zZ8-Z8=3-iN-_OYPJ#Y|*DBG2rR`+H18u82+;yY0H+7GiQjKiO9kmImL>24SK3!S@* zC06|h7s~iq2Z>jKeOZqo<7eRidiuXt{ZARvFCPC_(f?nl|4I7)bM?Q4{=cUF1DEV& z^?wol-=_Y@=>LoA|9twtMg5P`|L4^ISvcoW|09T z{~xITHS~X-`j7LAN7Vmv`u|<^A9gkmtN%EQS*8ACPIM`{;PxeKYS5op4O5Kk;Pu{!Z z6jAqk+syn>fRlvq`H6A9cOj_lDglb?q5`M+_hO)Un*^r(3W#Qd4*lOzh9qU zKB`P?%6pHwUcEod7(D0;J*^Au=de#_j4rL4G1eiEZHwBu7#Rh5@>qLuKVRxmcnO%l zlYZOh+Hw@R^oZ8&>XE-3N8%eRKd>C@^QkJ?fkAif&=??CwzXDc`E$Y#AE z>63>3V7+MFP__@;kvAup&qf>2H>wTnAOGngGKK@C$9yPId&TpLuXN`D^3_$o8}rI4 zRnLBs_pDq!dpwWsU>w^NreBoL}d^|6SG@>*R^EHD^Di`OC+Q+3#PM_5O|G9rNqGN!7db zB=v6pn0kNk)Bbw*jQX{V(Ng#8OfAt^Z%t!nkE+}6Kc+rARDF)n`=dl#*&Y=5FeC$D z{`0(Ho6w{<_uKWhN6nv7K8v32_-THIsE+rmy6YTILfT1z#(%j-+Bx0A?`NRTo}zX< z0=rF5WRhKAzI_9Dch?4L&U@W7sm+N#B^aO4U*NZ-D{C!0kY;=D2M0XVB(#3NLNy3h_o>n~Ne%+~!cY$*$BT|Nok5 z^9*Wp8vm0Kw&BNl(;e3y=6JwmO6N3~%6Jw2Jk%!OrGZ2cR_07pHz(bQ11Ln`pcAoE<=CtU-Yl%iDi`cEZ`aK_?6o?$&`cG z4oT{pb@X%T-S>yZ?Q?HR*uO>jw@3_-RmD=*90T^8+Bfn1hjbtHbc$_zr0*bT`kv>G z@qf@l?*o$OJNGM+=k|OnF6D^GQu|oTvF!0_2{CT0JTrxT-Uk;Z7&GqR#02Bf!B%h3 z{l~JwG13R(n7LMjB1?xu7E4rh=Inq&d}yNFNB=Q{Df^JfC=P-W}48a+i@No{H$s%_-Ku7U+Ad z(`kL8pXQW$oF1AFBhw_?rc;lM40~-Y)+XKG}t34-5c9z z?cjZ}d>>+e;C7N7AG49yF;(VB-D~H{jqkC3&w4AWr$^Q^JbbVdH#NqGfv(BxX*-N} zI8S7KBef5_mr4B(*(<;Q(eEa;7rYnJB8`7ih-GZn*SNTfY1n(r$&{w+?HZPqlZeSs zBx7VjKce+Q<|otMf!bTfISRb z1U`?U-zl>XNj;j{^TCU-A9_^j$Y?#BjXtJ5I=x@8|N-XCKZwl&!0KTlxq@T82}-OM;9m^=A=0J>>j~(&5|pk*?}( zUMHAi#N+HJR63*|%s7zXLmvOYC<2a zG0v3E?Tpx(zSRaz0JfXo`ULajwT!oqGow}>qjI997^m-zJgj(2>Dz*R#(!+h!Ld*G z$2I%?TLsx#y;G#s*#5{k%=fRU`yZ(LvBL&CzovVX{ity`r{CkUBPnMil_`BpT61YX zJ2K@Ys15~MBm;cgT0`cGG=n}H9rS-c&81xvUShuYSa>JVh?g?Qah>>5=GcUtnf+gQDYNVHmokBHr&SpFo^_m_ z?YfHIO{90X(Yq_?*Zfju|M&aT_~Warg5(daU~08BsOLx4@kc4`)%4Bf^z9_dpRW6< z%wv=2it=zpc~{Vt$~sQhU7w}AGt^l`)yhT1M9&etcQSen4rjp>M9*nYo1K z_jSLOJPOttbXU+%{WLG0b+}y0jt^4W{213R-p^>vY2%fQPjAnF{yln4D$_VAk$LGx zqTQkCG`O{2LV`i$4vM|`Py8m$42^(AE~lC3!{CR zBUwZDZu(k!2L2ehNxL-Kue2o5jz?J6ag6TIVtk=J8JyLkUN|cVjR`rZ6ZXJihSy$F z*Jy=GLk?_}us04?SZzAh3%a`{b->)wdUdI%ErLx7-m@Pi@om)KMWtHUcKHH6+g0Z| zNCUh#l!<-DwQ0#H++~da`H0&>-#_z;=$%Zw&1B|%Bbk7*cl1fUcu}P~Z}w>6;rV50 z$~QG(G?Hx5DCjC$=!bX5b2@+|$Bx4}8GJgRuUxoYFm4F=z{<#Sw%e(WEf-oU*R88-QXwdk0(TpIy=)`I|wuJA7fL%U#RAkVa^tevrJ+M*0xBKe8^%C2}<$EGj@2xwWoNfPhm8bij&lweO44VSj8F-WrTRo+nY(AUAeuuqy z1;=9RWSbw31;ReTb26u?F*hunNuELbX3E1c;nOkrTwjRv0gjEl7ufrtK@~0y0zUJ5 z%APd8EUXc4%5qjxJ&N*t`*rmlpM$X<;xypNR|J94MRXDP0I>h_X~Q$WR5o*%^Ppd) zD*c|mzGbsi94;F3Wrq0>uX|SyfOQVJZkEx>{{2`le`a}h8qQ6MD$^&XcjF}t)?#e` zOW)FZT*dlG>2KO8KsP`eUZ-~+UD`9ReY1o2A+I(r(>AQpgK_$sq9d5wKJM2!9LE@E z!_XlF!!6=Dh5rJaRmRdzxAT~kF-;(z$TJ0af;)Qj0~z3yc&I;za{MOgC+_-F4^sPO zqlfp-9XLZpd`k2Y+fom}Ty@V7k16^zJ)IP_n6F`p@jo4LaOl~3#7@=cS|g~A*J;|j zlk_$0#}HDoh^zY!!+!Z{jWIK>pt?*}HlxEh?o0>#t8CqPg=E1_8rxT(CvvK3{`u2q ziq|ib=Xw`H->bbMPN5&>*Qw?!0()S&*(_>|z3k%)T$wSZ#F7Bk>Lm65dSJaOoecbr zO4a`_0uNpNABE>?&W!|KW?q`*+?Kv8!x4+jIFsv|Qgx(3tZ?Vjsd;HjI4+4y z+ojSD%Zud`pgz3)9vRE0R-Jvg-!i_u`nLJ9T%5QH*ksqI*W~7>ZZz9kUJSj%eSMo{ zJfPbxjpMy{3FzU+#1gEFeCiOe?cyB!qCnyYIA2lu?+0I|)>Ap{7sSi?sGkdPc44Z1 z@vCQ#0?Sn8**zf7V#;&2%JU`4Q_ss&SKs5j&TVS|Sf8q`*QoDc58IxX1~PR>rJ1PG z0CRo0O5<04B&C!Fy1R>2n#WWc$aBz%Ll40*B;wN7zUT*_gU_)n3ta3 zFSU&x8Oz$6LjH)o*vYmu`Dt|?a~VGjIslD$6ShYMp90%#8ZX4egZ-`6Lo_g@aJebp zGy8FJAD{jMo9(4)BF(VFDvD?;g+cT^qOB6uZak99rEKNm8|qk#(0$N)s@B?s%cJZ1 z9zL_d+`Soolt#n`KUk=IwpsT~{0Q)`urIv!eH-T@PJ;S^>2w5ZbvEyFjCT>|IM2P< z6IkEDHp%d@N1BQD5EXj`SldKPcVOOCye{{qKOzRUDi>!V534rU#GAiId-da|P`j(c zn5!#=YZn<+XZ6^_U|TR2G%zXSSa=mZ@^HK^;z_A)3$>Jw?FKYStG~`NL)zJ;Vq75( z*0XoZc=RLLrcTBw2lk3-By7amW;_Eo-W83_mXC7rt{z8B`4SaVzU0e&*|09-tDrq> zUvSk6M}D!tuQyEd1H3)#wUHJvXaZ^-&UmF12TUByk(F^sbQR z;pFhMyr1jwrs3dWJ86!9PKOlcx{S?peda;>e`fMWs!LU-ELn!|wmrm2VD>4)|dp-Mp5MMJ6`)4QZZ(*80 z4MNkG@E!;MAMA7Glo!W=q46p=mkO6Aml`VzNLKNd8cPcpJCgQf@YIMGJV>2sm<5m)%J0kd#Rs*Q-}ASu;mR*32roW|HojStVYiG6((JHIuOa`kAAAPAJ#RUbSZS(wb?p zA3!-txn@F?A9N10(}MY;mvOcoYZmTYN1W_Rv$@QTnag{1e+T|^N{>c;&USjA z-X?g@o2&Xg#kL^r)aNTiE%bOqTmID7cOLfG$s|9)W)br&u3{tO{$A)l4A?VIWg9Y+ z>h6i%gEN8)(I2zuemeLg)sA~8{d5(d;{be146N~H=IOB4BK_Oo?TL?pjDYq17ReUX z=~c9^x3a7)`LTq}{!ldDBqwaf8RKMqgTPt!7g4A53Tj6i(?{yt)$^#%&|`(9PHUM@ zm+=pg|8e&HZnoDB>);qR$vk{o)bm;%+cp8+CU`y8zeF22RzPWbm2hKyO{TrhC*_Tb z64ghzXTF8_1gaa$CACzKN*%b85$xd=Cb0SG9sHe;x2f{=r0Z?uU7BtYS?EH{w^{Bx zo8_6AY&+vgFCT6oj#|2<41K^cRavH``9^!lIPAZQ1_X07V3j!ds-ywHKpdQeJOX^^ zRXkVjQhq+8DQ%@j{6CcoTpE;pC$MjcA6g1tmF7t!V?fHWolkY_I_=*lVJx!W&J6g&Gro6moaFqmuk#E+M8|( z@cwuj>)R3{6ibL_FM2!k^!OJK_0(<8Op0`g5uu~mN}6k~-*qYY6A%2HfXmY=&vYV9 z7RrKeF#5yKepJ+-@E0^?e9jQgN`7`QyFkef?s@$#Wf8B+Cp5cP~myM|!2 zNlc=B`p<(;tXJq{^$I8ceZ3;`%=Ev1{ zK!09)lKPgY`kt!#^JnJUnJuQAi;Mmb>-hcrI$kdE!OLkchTnTIoMgMfAn`j`^QG=y z8Xrb=?G&(yz3<_f&GH+zITz8Q7wv6jHt!zIaug;Ag%>K%ax1{Q;tNOZi&Djsf z{!Lw@M8i>6swZMGm!Ph3S=TRpOkJT@>QZ$Rs%}9yULn1^gzENN#ou6Fp3s+(|9M~P zd3~9k)8Cg9PgcLE>PxEU0#(O@C+WXps^f3mI{qJz_qMz`oxjAr&E;Iz zP1XuoS8KUgWOWIhuH#jmt&`OG;LQgahwlFu{o0jR=cD0|@7JGM`!ZXsH!@|ap3X_? zxtZ$uYu?Aa4%JA=8yOD|DpYrdF|h=@>E998_jcx(`BFD8Q-ZrT0bkNVWloq(E zCeCYst4de+*LUZYUHNbN=jkv1>pVd}byoDxlluqs4fH|txlg2h0phgh_P=B*^We|2 zY*$;JO8KgzDPLhK%=pXD4c?u}W~-xd+mnjhh0#|WfAmV*JNSC1Xg$$@)H1}g-_bMt z9rn$@{)xSFQdI7pIP-5Ielk%!*x~$1o@HN7Jync-zciH)!FWRG$%L@2Y<5y)rFdk} ziF+&Sq3Svg8|hY?_f}x-(B6tY78oS%UW&aHdkFd#`|7UeB`*cN(KjY}ozpo6n$&Sa zMp#!==&V0;Fzb-cqP+GR^!^-M#;`HBi$Az=Vd3+lB?ZPl7zOqS`!=#)A^P)NoFSx! zF@9vey|F*pA51E?nQ?pYCd#kp0mm?;o>NOnzj^paPrLD8F22g+;}2$W z7QomX)OYB^(w?{|r|}J$ON85x!PpX^$Cn7`;@YSWq2pm)C1b>-GCMwZ(6#+3az z)m~6!$e5~k+;lL9Z&Kcqaz?_>u_x^8%iH7UD_b$l8O$Be&rntu>x@d{DPJY#O+4&_ z&6l8h7??Bh6X#5@1+gq!PC93PdUOAr0TxH1Zm^@%+yFjDgyuPH=R*eFE8K9B`8+e! zoGJa7IfJ?4@?)4Y29*<3{8y>s$1ry=Z!l*rcjrt)|C|7XKzqOOe9WBrjG8m|oGs^! z$DK1*xqecLCyGivB=*M|%oW-fOSQHfW-I!S=L_wL&^521Hes!m(OkhAE2TA-n=5e{ zyB&MxYd6R}6Z+MWG*|RgoNda2kvOln2+=mgw81>#wPtile+im1g;WOf1Ior8b0C~I zPh5TLz`fNW{>*(>no2n%Fi%op=k0$pPrm*_He0Ud3C_iDqOvPLW^U*-H_koD+%VPL zs8n-f|0P7bK{qtm;CBhwrn_@u*Kg&V_)hTuW={NUbN`&s<0KnIQ&hHG8}1zOsyTwQ z?t^)AWTcuSy=Tce;-xu~{SR~GY&A#9KW2^qOKymoBgJZt=pQpj#;Z93d#@Fj9n6Mk zj_k)C6_InLoaTh??tf}-#DDv*bK|-C|2#M56_I}X zzuyA+>unzIaZ3Jr`X)K%@Pkb0O^nG0oRyoXehX-B*RmZ-LM&t*Nry1${~VGh$FLl^ zLJS)){^R~%$Y_`5%>lM?q&AeN75^Ja^4UsIt8~zo91l#i6#IffeSA_LnD&RUD1+!f zX#d{X)WD+u(LfyZqXCvjE0GjoB;)Q{OKHF9H318aBbrVosX+ zfv(r6aeG(s$%FG~{xRaY_bNMVjL*WGCC)d;H;7AY1{as%v#g_<>LA8osoCzH85d2a zKFdEVI)8yYPq~!!f-9L$UyAc@W2IP6V}p1sSJAg)f$c?OFjiqCd6d1t^%Lc}H*gd& z_jRq=#{9>a)EG;J>&MeF8spt83ba{H@Q-U(PJ}-2jQi6;`h9Tv{b`GSZ_sZX{f<`_ zI)=g^&tiYXxiv8Fi6-r`QpEG`VLt`P85=KrC4=|FBYQZe`9+aeL}{c`JQvv~KCS+5 zzHwh>(=+4Za!d-~LZzI?CfPZ^JJ?F? zjZk^Okf%Alc$g0{yVD2SHW#!eUlon%6yxrMp<7Ka zCqDgA0o`sW`YO)@Kcy|D@30<%Vfr6gDsYy>x?`h}coUDrJEZ@=%!@B~rgS z8P&C1om-XaodVC@vnz?IxPE3Z2CYLv(Ak&6s_t128Z= zw9ez>eTO^7sP#;PJQFk=UULSFVnQu8_{Qxw}dZJ06Y%(`jsFK4`K%0t!c};6>Vf2 zk4U4{O?<)|U+T*~d(qyEXYe%VGVCL4v$BVI5n%dX+$YbfVdI8(!BiK~s6E1G_!#59 zTG>gv{o!o`|1g{BAaIC-s?BIi<86H|PDfE7&j#ue*a_*<#^YkfA8Y!L=YKz@{{^m( zmFi1%{#gNk@1xYGQR>HcfIClplTbETBkBJW>U_YW>**XrS^BT9qxNkv_pna=9<%Sz zpyV{Gy|3@;{J!>Rvoqsxo(-NEHX|p?{Vv`qb9merYDvpJ_ zMZ}cxzKhfuze`VxwALfQ!wku|0L~a{M|zlM1yy_%7jFgs#}Eye_X+8z@k!7E;xDJ3 zDY0bUcjLfgO-3Z{5^R-Vr;YXc;q86djc9vX;@J4vcQqlj=vLxCw+gHQZ~7&HJz#lp zhj>ldoE%pew#SJM9e#|;z&Z}}$4bU|Jlg0rck_Svmidg`!msU?vFhl*M%RG4FI4wl zgKhmvZqY0s=*}(5mTs83uKJYbOfnG1Y-+||9PdIL5X1n%yXAG%mj>Pico~<0C(G!}=Hie~IlZ+|6 zxoRuh$}g|#W}a~<>|w&~qBKn38E<7a(fdV|&rp?5PkL)+L)})k6_ob&(nbe+?@%*N zY2KpuX&DdFcuL52HBw%?GaHSUGOqnS^up!gHLQOas{A8cZik=c^)%0}FTuIwvv$70&y9UlPCDcIaa0;>#N9+6Kqt0P zddMpu5bxF^{m8MF9q;CBc4(gO#}HHcXEKjLb9iHzcw^#=6&9q#pj9{tH}CiKCWc5q z)Tb|a@et-Qd^&Ec3}lzrb#b4s zxg1KgG(zoxjp$ILanwd5eireWm$-8TG0B!!wTTVUJ(&&Rw=z8u`sp;zG-eyqduV*l zwhHtr%WKqH9z8*0(T25Ca+|TMtk~Fg>TO24jOi!U8TAc>V5gCK1a?jlwXb;wr#cFF zuS$x(@xz=R?X3)Kk?DDfCzSHJzMdOmdoqt#X-*H-ARomn~*I zgYkNbt_NsM`Rn51??kWk(Q#Uj9_Ir}>lwSmIgb8BoU5v|KuqT^4U5~?J(tb-&cQ#X zvn=31uUTE=bq)}Jc|Xyg55C)%&H2ma#VYyWqdr$xxd~&-@+oY4X`biLapn_Yj}n{8 zv5_Eu&|dbgCwY}EZT=AlO6v`9{6b(KHQ1fK*{t+kXtF{)FK@Ggp9nd>G8DFux&JWI zE$fv&^6P5`Iq%Rr*x}(DoWU1FZnr!Yx7h_+vjyBFU?zRL7e3r^3vrQQ-w2$gzp#xl za3Yf;L_E#+KI-@70>24fGp78v43;aQGwfiw=Ali}PlattBHKmcVy|<*$v#RXXG;8l zEyi}1wJ-dqipgg(rl@f3hTOPz;E!H-PGtX<$72S8-)%HXo?>Ks#-mTL+lDPUA!aV* zF!=sqz0Uk+Uyi4I{5k1Yb3pOuZfq*>=eYbTK)BIJKL>wiUWO8b_9)8yqxqYH;I>{emaBp zV?8bH!X_JQS;twRY|N4OTiyLJzTQ;-X%0Gnj!Fzs#MPmGTTMKLExwe)yC}jr+(BLX z{d?qGgH4L#;$mF@zK(d$<%;JhU>h%9C+utIPw%B)TA*)3w9lNO=0?o5EucJ8+FJHm z8UI=7*Yk+lSK%WIelbq(mwdJ#H%H1aDV|rDLzqj2Y92{ku`Y2y$sF^}_ma$z5JAYa z);<9pJMd7kF8$VaQAvFVoC-Y(9biIiNpH_E?xxm|%R?hRA7^IC@pW5Wyp^$$wLCY6 zQ@tvcyi%@9e6W05JLEr&(tNtTFBfaBl;%}_UYf_l*jKk+7RYw0e$=Gzh{HaILFV|por9e^{q%;64>1qv>R0y#>K-(4kdk5e8Swt<8m&cPpK#0k(WSD_L1Vbx zzypuSHJv!!>rAAvx}WIS^bh5jQ1`X3GrqxZnQN}n2HKYCwXgXQwFS>VA%e?xr3 zZ)l$){vkqpl=Yj;MqTYu=~^q4PS864B<&5|($51}(C{BncDy*7ciZ9Gp}{t3Zyw!n z`{$!eA%jzY!!LmP+{b*(5tbR271rIIORRNke-1*^G{3)V|X5a zJ(}p^q(*Bp${*Lr<$Kb%SRUm+LVM^_euYzQ439If+|Q#)|Bf`#t+3ity~>Z4`1Q?c z*h!C$TZr|6_DSE66tTc5-wFPkR4y7qy#6+NcHqrI3 zY`ccOX>?#8p}y`E3+XCYQ7l{E`-A6Ta}hjpVa50u7x+E<3p zcqx;PG>Cjmj6b_NW8h&ce46dl#=;24Q|NVVG=pq2oZ|TdU&?^iafE#o@l*8at2g&$ zw{xtp>1-bj92h;?Oftnxnm-Bquk2@)a?)mtSV+HF^n;!b`~B_otv4?Y24j0syG^yG zT>r<(3NxJKv*7HT+1H)@PiL7jPG`(qD{y`soK(a(6xGU~Etqbl{f_Evb&_nc{D=>F zDXUeKb3DXWp;<(8E!h7_e-7xYcGXF{>`Jx;wMxL>N3^a23_gJQN@alss>tcTmDxc6f z%D3jWt0a!Jmwik+nKy@hH{xf6=X!kMI!{UE+YiDv;wP zaJ`TA>)hEMmDhA%+y<|Nv|FzTWIym6&H6`ov9AT%dlA-MG{yL#+C<`|CM7Jy4++N; zHf%9B(l?Wm3B)kAF~9!)Y&JUyXW{hj!7Brt7wpTa%uA3TW1rm8CBj>Y?rnvhaRtjc zI8StOh`h|NwXsd?DCK+Zscf)an^^E>>@zu9#w;D8Y3CtN|GZ`kb%^NAHhAOEli6&9 zeNwPyO4yF|3!Qyg_q#t*ozU)iRL}mg>pJP!x&Dc6Y{XxyIEj$Q-o^iLmzX}m;fS<_z?LcfrT3cb>I(L#lcTV9G9LUQhx*f75W>h0 zBXN3G9y#rmROV|b;=59>ih|84=Z%r@V{5ioZT+Ox9c-}P-tsxeqd#a_MDLle{4CKZmVfwMf#?!qyayDX z*w?QN^rC+C)Zba^H`e>XSC9I!CccL05OjW?l*Fq32GN^cSG>wGEIj7{FWqnXA_Z1~ z*~vIESnq{Yw%(H}0k80JX)Bc7d16u^J5;+7e8rAg+G^hWFcxk;_|HDx)GtqJM;SXX ztTo$TqwkPrQn)!+o}>K!3sp?!S!-ym^rR4nyccJR_->NfEGAPMVAp9-xxnAh>3Sy7 zxyj~3xqkDQdssf5Y~C-zBoj+{xZwnOc(JjXeavQ=tHtExGRELoY%F6N_gUsLQQIMT zdDMMUc!jtZ^(Wc_d<)Qq`Lvh&bfOQGuTNic*e(Bvk|if9EP(xVk1`@d7@2cOl$a+V{YkG$3h`>My>&+8iJ^VrMhSP6UMYy0?|13WS7dPWnCA^s&arqQ}y$-IcA z=!srwV=wk%PsX`0<-J?!@ZTUga=+4#Zmiiyc@Te1-$#fZ6`CbBrDMP0$sD(3q75Dk z_9vjJGpzn@ODH2Ip?pC|7eA%179;@d!rs=Y~pcxh7Bi*UTOdxxd=RC^Qquz!dt z?*5Um$KPP*=vn_>(RtFnLO%&T3_p{jhrxmLF!ifG#)m}z=F`YsdAj^^;6L-(`jx14_L6HZsy^oE(gMqDk`7o%2+t+B#+c8zOg|0;ko{QtkY4LANXDK z&pf$XUHPn%XlH1Y#6qd8lQE&j0PiKfQp{=qzcCAEYUTdX(x(nI@QJpyA_!iRX{N^K zs?Zz4Z+UX6xy%z!mH3Hn;TxP!6*2#`QWOyX6b!?kL5?BI7>YJO_joo7tbd%7uA8uu z>3#v*Fai5OuBjqL@BIB75$D}xKT3H6`@m0fu6B#m zKc9|x@uQP2c1=YfPj?zb%z)7=*$KrKwcT& z=#xIOh{Xxt_i>7k3Qb%pk~mj9qmcUqb`Dps>SNo7y~Q#{Aj^nh>C;VncP1R3WPgio z1T3~qfnAS(bZ0JpJ@X0PPEp{GTNvL{KLUT-$>U1A@+Ip$Ql5i+r_;NppCs(vmq^Tw zmnR0Y$3Mz)dhAmy2S!sR&|7L#J4Jx{ka_)N6Jzf@N9iZ^G|~EMVp`DmH1YbeCiW%l zxICcBmApP^P5mrMYq*{#r8WKhwc93Y5A=u?I`j9k9g@EX_6YHTG)K`+@c5;V|0{og zXIp>!!QZ2u3#e{&<7}4GzAw)j0e8#Gw+hP8j(#9@l zUmx_fyJm)?PV~Qk=y@>QAzc3FZ&VicBF6rtIsuoXUahCWjB}sjb$Ib4^q0(w*3~6p z#;-wHSJ?;Mc%8IwUoZ)NTEvHrmpp^sD)$uk978i&?J&{8un`xN=r@GV3tHLN?n^We zL)w}nu1>@~*8oiq7ZXo5TI#YZF>fJPBHomlDk)U)Cw$dQERF?7JT&-dKgXn)#_>be z)pZJtG5dh(jb%alfxdxXg>JFvdOJIAVnVcB=;Jejv7?p#0AYMMRFYaRAGC$b{+7`3nFIdhcv#UBnAQEbiU7Z>B?cTx!?H)eD|k+P+yQ7^GCYY zP#K|Hn)n;=uGnvvlt>?Z@T8|#+PzdK#()mfUb{ux&H8c7S3hvxu#e*`Ow%sGp1`^u ze+Mu_i~p{^!Py1t)JJu&?mh;Id>8PXq5m{zJnA)h z?-$bjBD!C!-Y=s2#dIH6?-$d39RB$9E>8b1VOlBc|7Ks`GUm}6`_EXo4~P%;k5<@Z zv^KD}rfHw`7k3=S+z-yP$uR)K3gicz(*yqzHR1>tkSVs$%LGsw|0nIxT~G{e{Z(DVgro4MOU(qVW5b zWx;P+i?xe7oS%EK@3IZ`>OxNpYnAaAfs>b}{$cDzkHqHtPLJgIh))#Ntn*lz+b0Ub zsbb<0D^8{Qr48V(EII6_IY;|B&Fdw!ug7^#qK-pR29*nbV8f`lGk)xsRDbN*3(dYm zz=nT7omplT#@Ys=pDuP^ka6N@?XW&u*6}9w&P@Y7hgXds)_;MD@pw`i5Qa~Ar-%}7 z6{B^q?Q4CmUS~67;?eWZ(6jU~6^BK|k2&s^p~*5J8-rf}ZTC zrn?6fD*yC@f0wxP8ucgfZDqRISQ0dw%05tgl&jyoS@EN;-tZRU9e$_yc#ij?;zxrI z9LkuRof3m68c}wRo$_2$$zN=%8dGPm>X~cjn8VpL6%M)4K=i3WFs5?2;~?ykt0z@k zh}&E}vDzv~`>oJ~_QRnmpo`NTe;9iCL|LeA$zjl_5cJv_@@uq1W?aS=G>Lv060;K+ zg~aohd1`^N6n1bPh;zV@*6<#_g|0vM9qqI5m(kORE#2+L-u4V*ys=hMdaj@C23%Y0 zA?%mPdT#b(k^WPy!XOz?(m#n!a*k%PZHWrwRl?uBtH8$iU`NCIeb`(^a z%>~u!IpXM!WO~-0riyKT<$L%h>FVtE4DMU`A9^E0{V(UU8Tr4A@oD6L(7_t@e;DI$ zcJ$+I;H)RsOf)9UxNFW;@snsfaZmi?DN|0%zh zAY*1s=kY9J{O{?EV<_W5OPh9_*#a-6hWc&Pg#LI=IKSiAmKvY4IuhHB_(S3e{-nyE z`IJz)h6wERg7YYk&BTB5`2(#DG_adrD=-H;!hv4+Okzz1EqTU{wY6@9U)ls? zKBXTNIP=h~<%|~!U!HePhh4DDV+rMvqVio{q&gybky2W>(%x`}gFO^&egCfA8Qs_| ze6gk0tM|Q{nRz$jYs|nJS-mvYU~TcflPNa$3jM;Av|lt+PnRpY?b5=fKh9k}#y@FiQ4g<*Nsn(|`F?-gN^JtQsc1U({bd*< z_&{v3=JV&IoE{yA{|i>83)t;U|0Urwz!*!!a% z!Tyb~wE~^zxUq_lZG`^Vyx;PABwy{yRfAX#`>ef1$?Cw&3WF}hR*7H=afnwj4ZnZ8 ztSkH<=V;6923m)%j9AXJWQ{0HQ5jDywfyGlgAxTPP1V~ER+Uy+Rl}>S z0^MVIJe`L?xd+49yWsGN5l{g%<=-#Y{?@YyD?FPoW(!DK5f{_-1`a#y5r|LA6 z>y)s+k2>jVL@uuEbuS!w3VH@#z=@wBeQ7_dFi9^P9>^9~1z6{BviBF!`$6>n2=6J$ zBWu-JVTAg0dMqj6W2>i?4v*#}W6`C$#rk+sY&_@Jnd{&qqk}h@Z=I=4fqneDkgXY4 zg04P}CANn6wN@Ho)iUj%$E6KiV)+vebE#1iaNpvR~$ zRD6}iZ=Hxgh&6igc}LxGt1#26g^N)dPP*0t`Ih>e6F2xYLxwSF?~Nq#j7vKD<^;dMEo1n_pkT#^LmWc7@u!x@dRTv z7P3viEW~5=`SY+MgZfpoY;aBwTkKL`=YeM<+EdE0 zDY`|CMfFd2!{5uPHl=+Ze7o82Alxe8LmsqR1edz z*e|~&c?z6g)Y83-{{kDH8yw)Gzo6caV*d5vTz)t+OVb|pE|pcQwb-DMUwl$9zDJGn zpYY@C7Cd0O#jY`1#4v5+kzv{sM|@f*{gxj=Ou)sI$B|2^zBK?Tj>hkM~`*o*7364 z{p;AT*6~$pE-{YX3F|_|_n~!Brq;!D7vGKY4l91lul&}*%ew3EDDknS$u5$=z)#I~ zVk94*aw+kuzJi_GZDqx z(pub%z5s3c^ESEmKQVx|_)kJxiWQwm)Awl8qycRz%xe?Ph0W1qlkMWUeNuf(`@rTw zD)v~d(PUq%p3_{|9Mfg`NA8x-z7I@Cx_?vMKgw9Lor*pIpR-eZ?_>6j^?D%tt&xH3 z>pA~CIUiPCM|>>e&eA@$_EPYnTCdCFchns1*AFY1(~gsq@A~g@|^V9Ru8`1>DH^PVZ^s$Y(Dp+EY+h`96zH!PU7FG-C-J|yT;4747%&za+26A zsFxd?<+8xZW3z1B^nAM7lzI}9J3X*z!dW78ij~+;iLZvAuFF?5PmNdv=>}15#EJe% zd6jL=;#1hxd@ksiI-{S#>t`3sp2r$q2=*BJGyX9epC{3~idFZ~INgP~Xe)Cvnm^jY z`n!;d4ffUD%5IwRY>3{S&$^+CJJoa0-OwaCjyOAl?e8vS`&(MAIlz|-J}GT~>lpj7 z>j?3Bz}%uakT{~xOGq2I^MOCvV!!kw(1U$K#&ej;eh5&HiK@sRIBArhK00%S5kNicol|2#rbb+GU^m zF_I=h@1WCj8FMz}unnF{gL6)duRf+dCrjyLmSF6PSB<1Gz`mwpiy)ng+b3-Wr)E?P z@=VAtb###P*th31&~?zSTKe1^dQ$Xq%xSa1c5UoEGQJAiqj-XRMq92MokAa0=xi9h zmt&~~X^(kkn6lv*D{VLRJZw3}kLQ>LTJMJ7_Kb@|4SR>oKl-xJ55y?n4Z*#cNS$+d zoR)TcEPplHK2IEHGOKHM_vK>vc-2`a{P)LEJ%InB>+OQ^@~ZaHI&H8~FZlU=hw9~~ zcQMd{3eUu&VtAPFE7EiacDcX|8ly1uY4S4-^(#z6jwPaS(jiZes)4^lm+%Isa36b2 z;%hXiqpnmk)fkSY70D3azoW)lAr@2>NZn7G)?`fbhow=e17h8eB{5vsZaLk`^1iDB z3Yt<61iyD>`&dAIv*r6)!?gE?C)x0GaDAl9iSD}32CMJgy~xExD5ClHsLJR4zP`t?*Shv_ z`SGk=99Dm{jrmO7kT|S}KVPl23&i3nQL(G>or|wks;>~s7fUQw$YIq3?h1{h+E5&w&JRfpTks9m11QE8tvF0uyr;F&Ou0nW!S9daU;K>3_L#zWv3p@wRc zien943iSdWIAoH?lWVYpaJRUW`)fMze;zN7$aD4b$Q5>hHWR)}v=2z^ zZ;#nb&q-bh%eCgFIfdn&S(yOn1Em4}w`&u?c8tWoR$J(c)qGZrcm@~~$Q{+tX#rn7 z&DfFe%~U#g2RQ1~2KK{8+#{;D7G5sgb_UIroc~*FC)qCZr*gazCC{LoXgm0+OtnFK z8qI4X-1^>lmH&3iA6VPqcicSPzS8;p1@>oc%pX@L*(S*e##=>os!iPc9Xq?ge2(@2 zV7P-O%+8oS^)_Oi`D0DAmTt&lor9O9{@D@oK8$m%r~PrJ35;0=x&ivorRH${H#+9C z=V9UcDS^(p-yx3{_Zv!QlB~k^uBcDX8ZnsbbBzt3j~A(~pf%OuCgQo9h=*H|>%$Y~ zbd2V7jOKJ|4eFU0M|2djKsYMr$-p^%>y6Ui{2~?i)~j^>9<#(gi=SPuo~>~GXp17s z76y8gp7bx3u2=a}pJZ+?ezUKa=MK&asSJ0$cLaxn}-&tw7{&E=CCfl!bK0j68|AM}UALx7)D=wyZN1VMF)Hl_bkI_!>E+wd& zrp@tTKhu@J7{?W)y%hBenoTzHmo)Tx_SItBD5Ql>?gNF-6`f+oH%KfNtWl;dR8|=B zBIS2JpR=qG{zykoj&^ZP_?&=!-Dr&yAItkp4Doy6Pu$=BoAUnq(_Oqi{2Z%8Vi=F( zvzjiR1BL4BR_8|4hh& zMOwVmt|9&wbM^mW?a$+*s_*@A{LGe2k^xRgqA{j&0>P#h^#oCK6=hJo#Tx6dDJr$2 z(3ZB`8Y^vSuf0ylLJWx=vH-HwacRr-+TMt0m7)%UEwxfna4FjMEWQb3TyQOJ%=h(t zz29dtAhf-o-|vrk%*;9O^FHtO^?t3-7ksWbW`*-oU1|S`aRTNr&icJRdYAu>P(d)E zee$kcBec%~J|jFD;}_MyTObe2dU5BO>l9W=R~}Z$92b5%$V(L^-r^CeLnyz@#edIc zAon8|7cdQ?Q+=Fomh}q9!9IarA@U^A8*?4c2Y7sge!~X!dB*NuM>70H4(9?>Hi$~2 zH+PNcmC?htNQrYI<0d>`iF@m%?fE0dbB4W3#%=`oJxP8Kosr1%PVY*pdSge_o8f!C zxqF9H>_X^;vDL;?i95OlMFogDDCn6Bho~>R4fkkO@-Re_QR%DsCDf}juO;e z8Q;me;oDT6<3KFsD^RvC@TzlTz;Eiw<&Y`lyg4#gkESqmym%b&r9T?&WHyYFvi5zE zf(-0N#-qbIGZ70t%{xblj+_SkktA#%wD0H)`St0V(*IkWvjguKr}#q9>S;MzjkEk> zhw=7-ZH0V%Mypd@EA3Ed1M`NB4C)tBX}EGLLs!;$&@#?IHeajyr{(KaIYD8&yZ& z6>+QV3dX9E&qdU8pv%+pXe`ZX>9dL!L?$LfMhxNmSGmtn-G5-3G<^N{^#5VRCzO;y zb}4%vdnvY7RDvg=a@WPJKr!bM?xy`E^-~`13GmF&jLnr!48 zm00_8>?yqFzR&A0pRQpob{&?vC$Rpprf>f{V$-Fr_uo|fyO(>#FjldD-%B*EmC8>c z$o>bb1my5vs`g-=VZD!+HgsNdPjfyK>6hdat`NrQ}QHaGRQkm(zts4zqel6 zO&E(F_D-x)%&4(7rlqpMJIeA%e7WfZc4tU zOvRjrwbAZ*pzS*Re{N!3EaKZjjJG6nbljlMU6lPA^wu;7UcBVI?@Bq~G}NK;e3dC# z0K6XX!lEh;qY`;~hzE;IL@pmXyVEUBwGMy$R{Gs4WAO1#m9OGj@67qB^g;SN=K+E4 z5qaZM?%uJlXGQ_L2zKF^dhQQyaxxb^CUFf;_$X%^ zD4tGoWii!TKz;Z%J-bvV+4dOv{ej|wOv_0HoNpL=r!g5f6~c{lIO2mQPG`*P1aYX97& zXkjybV_&VvqluSdOzGT+Dq48i2QoejXF6gk47C=Zo32#4;LtE&KtyOKgUdhEj@Z>lpk6f+tG^(71#mMiIle@sb zrTcj8AeS%ev_jnnpaY%E4~mf)O5JAwo9ET~qv&}S-{9qZ#e)GpNj!-Lrj#^akf z12(Q=ya3>>MfH^eXaBvW64O)XJVA1Np;y7$gZ(eeJOIg0YK&p`YVDWr*+B2Ow_es6 zCZ6!SoNwE54Qk(7jQi+SkUfXIvA=}M-}i~s0p3NwnHQNHaBf!PTYsD}{9}zA!?Tf_ zN7>5@dF`yt#ebcl`s?xTUqo&-RTpF^oQ3)!brzVg6>FX4M6>ujFqex~8vh36&*E2h z@36!`gPnoN3h}JEMD}n9P0?|478?-)j8{}ttizQZ(8n5NGx~4@m{g% zw^RC=I!M!U1X}|A(_xdyiv-Tvk+&xu&v! zW$=95%4(%|N4~WNlDq!+D>sK5wC$z0Nv>zMQQ^SN^JyV?CS7 zs4HYFF|NbTu_WJSLVIw7!prPEry$e%Zwiw|`OZQv3?AhR8P4;C4APl-;~(;TA&FL_ zY(Vl5bk<2fL+>4*KX*9aw%0H3-pzRbNfM`p{rr#eB`i_CgeAxECG_eUd9Jj}>dK$c zr|^TIBZY76d-?VzZAETOVJ|N#(AXzkQ)A@ipXPU|I6B5Cr}Ds*h8-U~;pcxleAdm= zmN{e21=b6V7ko<1Hj-0T%CdAWR;#k3xNMtq-MJD&;gE_+L^~i~?+amvCDRG;-Q^@7HvF#8y)E777AEEXk2Fc!jL!VKjG2Wm1!8aT+^OsdRrp&^#6My)=z? zle8DsrMej#shavysdqaQ;@zxIFzACmftQmx4relrgxwQ3ujRDnYl(*Gkm+fC+=FX0 zRz-Qbj-P>^sB7N%=yVpWR^$4=ybo9IhYg8kP3vc@+plFzGvq0uy`yZg)yi%{XUtys zYoQ&`hj_Nu|N40*lcxXU6wkN?yfTe-hti?$&hu}9z15?M`zL*twtI1mo^Q*DoG((V zvuBLlSMYafp!4O5{~7je$g%^dA9QZwEi=DfrCv*q=$KCIU{m+85Tn}MyR2(fq^3*VQE z!Pi+we>H3%jCYNA!J8P%VlBrIfQNtS5ycbvq`ek0?zB9a!+<{}$sE5{<8>0-Vm!Ug znmpf?m^+!~byIRLd}^w2)+4v`1o~bC8WV@jelFt}muNq5yJ;M7-v5-=4$A(L%A7&p zYt%C{;peNKd53BLkz;`P3!D)+10FBk%QX3_59Rv58#WWwF%|-v^*mSM&L2 zD(B57>~f}#eC#O~c}WmsIR75$leRE!1)in*7?-xga-M&|aY5^a^jDtgf@j*IZ?}KO z`Y{=g6IhW7=*gZ6U-Ht?Us#VqE%m9adGc=kbV7r~?CXvWn9P1JkE3&Sx?7068|^#U>1 z!#abX2=*X&hNo58u+mXR%wz@ez@sB(qJnMT96z5Bh=*!W`UNl6m+`0L5)T!$3UQoY zzDv?8w#Cyr^zpiGWm=BdDVDG4J#!@{b7_Ury`|GZw{&YGV~YjpU7E`6S82%jwdzNoT`j=>(h1C6$yqM7Y zy_m)(8Pj;h#Nn9G3XTt1B`VDv=0|Zjz6|fn=|x7c??JDSx)JFMTcCW&Pkl=2NPyjp zm`6c%>+0R$nGqAgIBM}_LThRjf1&#YUY->db9w(!F_)j8`2QYr`P9UJJ?0Yc#~K@8 zc{VBXeIy5zUpe^ya>Uw1p+mpefei%m`PJ30XMhs}y|@m2D2)sD?ST0_oqgS0J_!6o zdImVm0dt$%sGfnmZK`Kn^-Ou*GlauDfJxCK7Nb=-d}ap z```HGk?$XUocFV@E3cCk?31w}*~j{WE|rG`HnSHL4tSxK^37(wev0#DiMuj%eyxI! zE3X^QF@@MD1IgQ z-3-4z8Q=1CYruTU#_t%;<>a?4E!n~JxmM{20xHke!{*DSezT?QVRJ{Rp{){&Xnqk# zQtSEtYGHSp5#}>wYPrTaK*HuSCsyoaP(F_JKzw2#FXjh%O)6((kEqAHhde8#bdTGq z+68^`LFKPpv&G%mu)VZE2ED@gPgGcQ(1~7G>>=VCl)AsJ^WK~CPFs~ zoyScn!F%u93bPh+b0przb{v+UNp^lHCVj5vbKK!x8plp&L#mJS46^ULqIrRnUuRq4 znTQ)8n&%w$Vm9GJOZzpB{kn?z*3&uWmG&q5zs|SHq#w}UAlE1J!eJeB&^cL8|DQco zW4drY_G$e0+`dwLW1n9Cd$~^s<)@^*3J9WZ|jl-vxt!5|*5o#-C)_HuuJhxYd$ZRkcGHea&+sc&0a zY8kM{X+Qs-bLkm$mi>sHL7kUTo$%-7K1#Ver(1yTwR1agOf<`8{-9sro%oIKmsD)x zUWG5)Ky~5&i@E(7gO4rrnv9iq7Uu$sF~6Y4!$)9?YaO!_EJp>^Ve|0r|- z+G-J`J_i%aSq2B)Lu{_MH$o}^Ye1C0zBgzrbIz}l>yqku0BcRpi|0kZ&>!^SrYb3i z5D&bjB4+V5mJ^j;s2QFB;c989xDpw`O2x~M= zZ40KPZQ`cvuzj|e`MxXNNHoDd{kqmxLA1+Pxz=wLmJuo%_-iv>A5-{#4>!ql6e zvlnm1|IaUwxJX|6=EBE1F8vh2UxV&?F|<)CyIa|lpN3Cx9^Z!jxPj=npRvwkob&W- z>~CG3TNBwoJ;69m^PiNqu~1%YvVlEd#GIl$-v*BlDIh-Nt*=PC80X(n-$50(yCy4b zNQjdJPv+^35kp_B_SON8IiBMVB3?l05?=$>xU!`Ie-?EWseE)n<-f1;r0&h<)$r~L z)ds9@tlxU%oi{#0qhz zhYe5r4)g)%m|qWAnz2UsruO7y^twD5o%0X^7f#uvwCHWDH;=?`<1yIKw3cZ%_S6ow zpK#yPTcb=htpmSy6=OJeW@Pi*ibK%8c!_Jdyzk#@~9)Y|LwdPXZE4f$* zU^mcxnZpIPtQJS3zQWfW_QW08?0Kl?d)<}pVRrwzRLY~oMF*BM40i_Qug+(a_vEmEKzH(Sv_+m z^O|dTPNqn^4&%oFJKS&3T>>1EW%**Yc${5b~84L3c zJ_m38xtsBxd55pB;c>ScBiAG48}ZH>BR^)m(0B84Ha)j{OaO z=p-J4E18G*=&7ZCO{jKK&ckfc`ss6x%E$CV<`~_vnVWw0qZheNyMQw+9P} zw$OgP4{h|~Bk}Fo%Rv_oT%Kk8)m+RZ@=3)c{twm!aBQ&ezmUUH`6ls{Ga#!;nJ+E* zD)7ny&YiqooL4I`7^;~s`W@4tQu@YP**N2Otbc%v3i|a<vize@6LA(cz< ze}{Ee5(B{e7R}cmSmp~febWNI738l-EU40ChHRQERi3coXn!$d3)4?b7v62_`OOCD+ZAoIhdd1~5R)}qy zr212)`lJ1W{+yutgSHdx*o!vf`h^cld%=$($EZ0$?$w1P(|ljaGLUaNF3DzY$}7`{ z-SM$jb=+3O0P?Ux!Vm zgvQ2u7v#iQldM7b_m+EOs(dMVeh~AXSS1ka0h#VA-~);mBlmIhMbzeplP`V7&i!@DIuexIgw{x!{#vZ*!%dZEXY;>Vy3)VGfq_v`zdgBEl1KWZ(3$9jL7 zv}wJg^z7c)FN{h14t(DCX!5+AmJRVa`Jd|fA8{T6iT{9HUNP-K#zh#DmsbmUu2|=! za$Rv=t#pFUo4mYQ>7-a3m3g&-=|$FJ;EzOQUajD<@@l0&n^!BM@@nPhDC0b`(kGbx zDr4pYY~zGK%xHz-7>G*T&AH&uEs4huJh-_!wJqH%u^oV)hL4Ah673a>k%Qe_U@fLT z+^fbA`say@%rSPKK%bHoQA<{<{2eN9l4{-Q~(MHI1qGzt8iGKq~D zW0{f8SNc4O+0-eNFkA!WSxO@R{iNJX;;{pNvUH^yHxvUiWBb z8SyP4F9)@$bii{JZeWtuHDaJ>u1}jy*J8wzAV((FXpn8NEu0T-F_oJgZC1Hfnx)-} z^9waIPXr&s7;r0N&BP-!UOda$I%A6vO{V$8bHHfP(#ThY{31(fF6m=pE?a0WS5Un@ zB4W{1{8p%^cf3QSm7O z#Tz|+vDD#m4iV2*g!~`K(?;z=-_WK=y3JDU>imCgSHu6IUH7VX;hBa!TpR2M#xg7o z^Ll~)sYpvW)sJU9teRpkFGoJEQCR8Xo?jz%&m~bSz&_paHpVU3NU}G{1ukT8-h(n9 zY%aH!ru@7=S}SsP>IUT#y>a3$#(56Zfz~W_-F@;rWd4)tc-D&_hTeeAqXuPf#rL_d zWpj2d&wf2!@t0mKw)Edl=KOj<7p7|xgNbNd1-)}L(YFeeYgCv-acxBidmVebW>Sr{ zgZA9GiQ_E48L*JcF;L$#=wV>y@Nf-@f6Y0|JY0V>>U^NEi;&k+($l5RbcIKs!_|jQ zaYXazOGhUBK`r6OwXu`NT03<4ULW48TvOl1^NY(Ya!m%sJlheDYUdVgkF>w91FBTk8 z@3DMB#(f&fd{9!5c{GpLW!!S*AAvZ_Fv+{78ozH~{FE>H=c)eL%I;6RU_di_i6?Gn zy)p3D8`VANG~(*FL1lEay#g}2=Zop(nmoHAU&nGK>sTgmUgmD6c@5*calV27qTkbN z`ox^KQtrZf>JkD5Zhc9Sh z+$Y4{KWy!^L+PF3+f?6Nn{!M%OyyEL^^)Dk~Af!0eM@%NvW53d7^Uk$H= zVV%P>m&$eE@r>Y63weIOLG$}NyMpJpKj-I;d%Buq@7l5E_`XjlD~>8ePY;mE+sQn6%|q)3;I4CJs$%6Q9th{HZqNRW8Q46h0eeW!?p8H%{$dO=Ti< zElJ-V9)*W9s!#0YxM|w=yYcK>ibwRyA?Gm8_@$6D(!j(gK9u@ZcvH$w(|XaGzKOGS zs4&_)7)-Y~T5KifgonRTINj2tDg1w&AI!r-AMK-OX!A=DXa@b_q4}!|m^-7e%{YGGUA?Ip+hZUnUv&dL#$LPFl)TEDtW`4^l zqBbV{9l3VKkVlT%S>F2xJK#%LcXGR~W;`&qLHJHTaN&13kF;I(Un%#+Xu@vPR^)QA z{M~4_UyOFyuf}12nMG&#OkctET^8s_!q;W}8$I(9JpO|zh2zUMYE3Iy&kG&5QQs^^U)b!_-qg(dzK*^%oG&Dc9P~Z5 z|5f5geWhL2)ij4bqsM`Ki?;p6^M!Acaf6FsQ=_#Gzk=pivt=ZkvF}7(qS*<};CNEj zai$TM6Z^VToMv6Q$X+qZEm|RSe1@B8ETEf?x2Rkby((7(;zklyqoS)()()qF}et_}XIKKvb3wwlD9(1CZ`23f%*)?Ia zn)v=kM^o`px{3)7>)rdGdyx2Tb3L~odFzAe^zx1qc8Xk|Pt_3Q@hf9!`h&t3ptVA2F@N7D-CDFbGqm5#3h|ceHyie>Po;5kCPZ%Vx z+^llyfLF(u7B&T}!s}Nu4o)!s@1t{ZGko^Uw69^AX{Av2c|5i8#Os|c{RA$fwf9MF zpSa>e;D59@L8Fc1KD8LpSt=Kya-Ym@mG-;wt=x~u*{#SSJk+T2eT0}-T$zh?o;&QT z#_MZ@!e06ut(}JY+%v^<^J07Fdih1!?!1z9;c3{lX?#bIll*2wO}kinIGe%!R=wTv z({nBLZB~$TiMEIiqg}LumnB|ekTEUR3xj!}8NkdbuBj!tipFy6*s+%1z*?krP=m3X zNo(yQUW@l)|0=m^HQR@eT#M_J-f#bu&*nM)2G)@phwmbmJugQy2C` zDk{z9ibRd%VLR%<6BD0CylofpwPUI8;Dbk=zSNEo9~>pweHy*1YhErEm-8CI9x%aZ zb?%=xjN2Jf*dWNw>f%UL55`pT0ikPc+37=&N%4W4!(}^#0y*54A&9u6@~X7nRDUN zI*HGYvkWqgQRT%|_lXZ3i8Jw6numo63wrjU3i^KMIPt`P{xFoeKP+=D9P9pbbpKwu z|7>0!RV^<2j{SoCY#z^z80WOHN)*fhpFPJ7#x5C+b&qp}bF`^=yC5FtDuVyo$5v@-3!E7!r|KU}F>G|ezxhESmCj&X*U|tTY86y);n(;Oh&fFWF z4EWIWzHH`w`YxinwkzKhFH)O<4Z#)x;hUVL6dXC z&;J+A=X=op>Rgg{Z^VI~X=(-m%038O~7?^tBA)Jz=WD z^M^<$6YTpHrg

o}u|oYdY{J%-gIb(K4d#GOnRkD;Ka!dOlr#<@XFEp8R zA?6`5*9p^^o#B`p>DMq9^nvY2%S5eNF1)jL6vtWi<$S5(r`M`abLdRU1ZCV6(@^+F zY|>kEb|h=v)BD~~x$5DIyy(1$djs*F9RE%0YFG40`?+{0(LXx# z<14LD(=RP=94D8qVHyno4&EQMPr^h;i}aVQGGNZfe?W6I=-}Q#n)Au^YdBXVa?v-` ztYIE(a&u=$=B8J6VCJ;2S?qKipJ5snYJbe!7R(kF@O z*Vzf$Cu{a=dMBM-ox^rWZ4Kx1ME*{VWJW*pH?Td*9G>@^YdDYR(Y8lAzpO^$$&k}C z*p*=(O|H{+UUObNG4h2%u8yQqKHxm0qd|9}*6qNrw>H`>?5o|(%LO}aE!HRAnLzye zX%}(4yFZn*(oxz^19w?p{u7Pg&v)8$;WtWW=>&T2lIz-?2Kw*gILdBOKx?Ju*X_>5 zUukzHrzGZGBbA#(Wj@i`?S|NTu`BwNlyg(Nt%Fl{+9f{izR9q$1Cupwu?%pFPb;pA zt`~JwzAm+1lzyeviBdh|u4{9qQC(;Ky3?6X^_v3{!_G%-EFgO7(Y5Hndd5tc2LFc@ zpkG~9QL4>iztyJY7BJvJ$EJQFZ4lS`SY~uj-juTEQJo>`M_gM=drqGB5BQ`G$KxN) zr~eUyXln{S{7H_L)|9zmYG#FQt;w^)Wo?Il`1aY4#1i?`cn zT~D9ILjJJ-evRt3H9yi*6U|zjoxCF>%@-?tmSnCe^tkK*Ry>-?=?|YxFEhBncjC>eG3m!b29RgnY+^D1(e(;^<0zL;!T1Q`|GpDg>z4-Fa zQf`#?at*EPC_T4p>JIzQMyI4b1G}v+(Olg~H~5Rv`A21^M^j zT{~@H--iZXu`nMP(_K?{K5+0$JMBp{H`V59_U*-Wzp_JOyg&XZn?d_b)jqFn7y~ zi;qTiIlIR1w3qfc8H2{v1U3lC0PiF-8AD&-oSja&>qy`S{R3@bngV*VNYa!8^bGW= zcn*G$c-Ez7!7mR#OZ3R1=ZTiWN0RC2Gek$fUl5`YnV6vL058e-Dcz(?mS3i5X zXa`TJ&Ja&eazceYGsf5Icr6|C`jY3$`{U~;p)E|`~V zW#LDNcexgR%s!l*3FvwTI38#y|NS@9`!5B?0JR}DshD}s8E3RRZ2N%^ES-^izu{zd ze3~7?Tw)%FKF#KGWyX}x3*>=xRPx3o=vGa;eg*5{meFs|?vGeCoOuPv2?3o*tXDkw zOQ{oCrf}9ak1HU$xjGlqs&c5=ciP#^Y;`?m^j45uJ33~xR5Yl3EhTwn7w|Z)rm^av z@msCV=8n8E?4U915R>Uyzw%XVq;jK2b~uu@w_5+sc#zkCepF3|EifkscZda^UWnFe zk81xFN~g1DT*0vZm3Y9}s_(#{rgpQ8`51Ho^xM<-z}Fc1pIiPaaiZW~8rN2fxv`|U z_Z5;`={IyK*Y3||HnZMswV0h+oy%u{`P`s%9NCZUjK@>UeyyQ?b>{k|qhE9u#c$u&r~CJ^7>( zSLUE>_;^1=?UyB03C1#a;3D; zciYTS9ZpbhbEdqS&0I;pb^1N|Rh;qtV%+H@)15^!aZQIi zRC{S+xV`U=m3t8W??n#npR~esPIR$t3HDqsUJ#foI?fX=j-ktP&oyyNqK>KKO{Z8PKxm)PlPv57QJH;6Kv@zZttp)S**0_cNyP3x3^OHV5 zyjBcaE5ITFh6&a}3ihFEls#h&t(B|n#aJsT$Pd@h{Vz*_Z^NcR_)<&ws!C4Fc@Eg?FO-Oe*O-JMikT#onMzd38cKd;&_r0rR zoC|OYW2p}IKbfv~h&0hz_^`F=ptl`NM?2`-@FAWb{&q7tuiVF+TV!R9?!gay%3q)# zU&%5ZaBweF?P=q+x7;~rti;{qeh&084?IV$|7g9>t)_ln_ZD)ccZdMV*|Vb^;)E{} zeWUh`p!ulQ``Q2IOLbScH9tw&zOt0vdQ*o;lv4ZX-eIG|uDL*7@1ix;LDxT?Lv*Yr zpN@5KEa=-*7Uzrjo7B<9%s$3oiJ7ex=dkbbYOzW20PnvW%FK%n?~My-?aafO13iAq zVvNDB((idx9{=&oetPE6ap;^)_cr+pGF8XZ|I_{Z>3#uXjfn?C8C=gVw~NZ$LuHTy z1~|qG>AleDLEo04HS%XZclreE7h$4>p}kqwmxpOBY}qG&Po!%N^?kYACg3?RHp@Ob zQU})Xz-RSelk59(=hEnrtk5O2@vrN5<#df{ zrJEprWA7g50;BN%dPv6E(!JU|j5Fjg#2yc7vtUDh+VlNvQnm-L-c$1GJ(=o#nSM`K zHg?#c;JXT*aC*8$NPqDbQAu+Ief9#_2Xa31ZS=oQ`ONnZ%aTg}fn2o_l1~;=IjOH| zV;^#_UFhq}(KaWjd?`J@SJ)pMhQIk9V}&q`9-%A$QMOHM z3BTv7s&d!c@B=`6e&tQO7`J7I_8?Ndt&WJtli0fmiL1a_v-0c(c;48jFDm22qCTS8zDDGlv5|woA5WDcHr>}W)d?qh#pCx%`d`NMzr%Uh zD998N-}*B6Xj-o?$D7&K3L3RaNE_=bFXIg9V_x9b>iH7IyBstMGG6}FW9|3l?}Ref z`3f@bap*w{-M^CVXH@(<#v`ucEDcloe~e#3^7azwpsxbnLGgBdg@E72lf--YrLSCZ znB&~xuQAK@%}w>vymo>|DQ%Fr1fD;@c6F}TshFBzZ2iySKbNNK-;dFnH7-Fsp&gph zYVI)ijNcRMKRZz0YP=ll9S{Drf-!>nb3Pn+$N4y~R9?6Ic>0j?;aH;bhAuH%L&JUv zed1_e1@`pDTbHeceHNqfDA2M63v$}%|lQwF^Av1qP>r$un z3cEAMr7DbL^x-{atA>sGGh+iE>pXk)0fp<~*{2yt=L(630DKGh<3V;fk=pVT73<=s z`5sCCe*`=R;3h_!oq*A5`Pld5c>#Sc@ltzr*ljr{-f96~@K5iNW3rUjaJ%#Vn1W0t zjcaAi%e>zq<5$-2s33W)jBWABR3NS2EzKTo@cUT?bnRJKPMSS}n;?W9kTDpt&%F|j@+Tw$;Wv{^|2U%MBGW3bZR2;xrw9j;^ z`(3ZCwBMe;=Scatoc0@hba}7O@NIiJ-ti>8cN@*!HkzBKPlJD06a3y=+17a~XodJx%gr)%a<%w# z5<04@p>Hk=DjVb>VBsJ}Q~kz!;A{KJqHN}aHay|@#WuZ z>HZmXfAMkd&!YRM(*1{_SKR7z_ZSJMdTXPrV?CztrnNoG`Gn8h8SFcKsq%N_*o@PV zFC;1a^zAG7o-6HZy`G;-l{_P*KSq`Ex5fH|@52o9-9az^bh(ifGtLUL;2Fc2ezq)eMR918#Y!6UHPkV+-=h;c~AMYdcHK{p|?&*{|AZf*eWVxt62vT zR6g&F*QoHm^rQT6{;p_S!7==BO7iGhejSW!1e<&EHYb?qaEhew`)Mz5ZW85}gEp#q z3y-RocwDY`m&XgnW;mShl*WbgZYq3hsi$jESO|U03;i`Ld7sNvY{jJtqiU8~N66Dz zPCPBJA%eQB12I~_)zH&2{$!`B;~d6_KrEe%OUSPW^7X4pVZ0!`7?%lVn*+Z<|JaoMpn6X=a82^^JO;h?sd$m>pPu13uuS1g%9)13nV}2wb>YMPgU(Ou1*#DjAzhi z^!=gzvd^2c+53i6EO0U6j11&!X>)$8-iP(?Fm}Fd6J-9dYST@s4DyivInQsRobluk zH{QxIPT0#OjI#>8LaP%VgpNn{fpga@eJ=6c6_?&FG9GrRwDBf6$B~Dj`-bPg)+8}H zq#s+#mAOw=FrQpW?|mhk&3L(U4teVu=UY_L0oos@d6=RDKMK0zZfbN{)}!}9e^RNf z64medng?XN_clz0{G|WDy z5{EYugFi~UsE)O>zni~4#kw2BU;_Kfs{?KMW0&x-Q;RD(?~}||(hzGALgg4n9gL~k zEi&GJ#=IjwKb1%_X457QPdB}S@!`XX`Bo6PJxN+m@E^Kq-5~p4E4nn9^Ny_&UDOZc z=JOjq3$zQms59a(kt`?i>tsHLW#UrC1Yael(=(f>&jZ~54$G&P&?jL9j2nm_yvZI% zGGSwM8Sv+ae0r}nM&a{E4EPL{(|c;@J)?oaQic3yXE6^=dlPNc%l~2B5vm(<&}`ht zHRF1;8NSL-^BOd|8CS0JT!m||cRPPmIq7HTFtM(7eaTDV$5(vY^}v{-`{AG=Z5~N&u3`D03|M2u8y|d$&eJkCFtFSK zt$xpYkEY(E#i=dVTRs`fy>}B|Pg=+_P%dtfb%W$eJh%1E)|8{k`8h# zFO^@e$}gkxfA#!VflEX*Yn-wv%!<9s{<=ks=agibyg|_{pK7~KG>676hpik|G!nef zEaK6aH>+7OnBS+sP0bqmH1Z$hc0wD!s^TWDqc)=LsDG5AL-6IS)K&`ExxyqrZ%@gw zuTpluE!71oN7k|<@-S^q4dY&;+$Ysiw~z6^;czzho(lDzWAVT}Z-z2o|1^|&^EfLW)RO5VGPrm@I@pZs7K6Gyw)7{51c3MRh(yQIH%25^6=a)Q|lLbzd1je z;!QD5u!ZqjAbIUvwH6wcymlt7h3eEwQB7xPt{lDNbX9Jql1XpmwRH{6+Zxs->t<(# zhlN+IcrMtADxtH|`g1%-o#Hvz9@hkYm8`!))jv_yKZ5EnkFFHuO?mBT>J=raeED*j zb9uG2WfbIip?26!>_5FG*Rk&9p#^TP4%%}h@58unG$)U$xD41L9(qk;oxOFOwY~d| zQ05n(gpMm;{*mtgjPBoeocr78{z|&P{W$l3OZRW5`}gMM^yFM@G+v8iG7oNbqEGQb zGg;T|;c2~Ac4rPx3$|DApXY>L&tW$%fsPZox@ZlZ#A{?-j*lPB`)?iFGRqA)Ucd;d zPIo)-VTQdan3i~gm%vwAo$E~s`w98zo3!=9yPlszbb^Xk8qe`Wy|nKC-SI`{V9#~p zc~7=|TglDP`4tdv3Er*1N9X))g7bd-FI{g^SXYrm3-f{HhyhNwu#Q1&$|kKFd|nl>8R%>us#R_Lslp{NNJjVM^iJfX#C}U)zs=?S zhTPLyVm1HY#<4!DbFz9ly*oyyzI6Ss+A>Ne>kr(&nhn)1Xx&6w{5On=V*|7P>8eY*Jv;pJ_Scoq*z`4ahR^xH(O zd7G#+ZWHAyP94}u1u6##a*)H%opS-39nO}+(kJyo8mntgrE?H%s$V_mZ|<->yE^E^ zHPq*s2K8HFLaZr-zJjiM*J!Ld!Ov*B+W?=RE4kv# z`%lsR*B}PkqxC^P##GX(3Y0zw|Bs~)@;;tkh;0ox zzY|Fnn>knJ?`m4X^31{J$0`eBs|Wx8p+_nD2YM9bL-ZA2#kwij9z6XCesddRGaR%L zm_r-lJ;*y~PvkY$&-B3a2LYYZ)$h}Qo!``VM2;}%8Gag+H1iCF@i75?Q1li!^uF^* zJ~mdKcV;-^1(N8OJp)2t4=l@&zKvXC!$Nc-i_dpq7d|c+{ z>@TcK@p8O{kJ2A_cp-81-WNCzk+gZeornJj9mg5}mX{l{Sz_BTZi><~g!A+aLC$CL zS-k<{2I{TO0Y_olL?7FKMyJTd!hzqDc-GK^&MqreJjuB6#9yB_mSn84a-ANBHx4V_ zICKo&xZ(&NxL@+XBu@m?9@mwg|KpSLd0@py(E0P>`uw=TcIW&mnSTJZ>$llq9{8B& ze}>Ngk3yM!$2sXCn5p-29oe&(N98`xaQ6i521n zwVo#A;Y52p8}cGWm}l!d2G7>VJ|#Sc$zHKRjo}$8elta59Zs$!zOsFo?h=prv-P?6 zF^_5SoLtR1yK?pZauv7jI}Ntu)qHN2DIQ%Xo(}x-)y~m8T_5w9N3Tn-PGEBLJ~gpV zZ{{4I9?tV*NAh@?50t9PT*I{h4%sJl%g<@o2DFGjYI8al#s_8`@*L)dy8aQ^MFP6*Q&>?YAS#KO&F7sW*yBW(Z|DE%) zGOqS~`1H{kR7+=2Fgnhf9X&7@tY0%2oZ4w=h}+29ew%>LXCU&*d2MIj2);0e&z(g5&<3nPaG(89`V7t9Bw-MN4;5Dkiq?6sx4RMjdl5Q$8zUPYRiKvmg?;enY-aGb++GmoHg^* zP$;wd!%*gr$GQI)-A~f}&BwX_5Z&+i@c44aujqb)?(anIw#~mya}H;m+op_3?o##> z$P2zI#8UPShGKqeJkjIvM2|zpSZk(nV9?9s70S!o70k=i^C9!-lKvvkcmdmWp`&Zx zud6s^_RGfJ1QxiGYpMK(H`u;ClXLHmZ5WVe3$+h<3~?U7uWt}%J<%YEFC+E10i|2v z{3;sGftjoaYRuzn3K>)2Xud}Bz-pV{MK{LI7j3+M-ihVx_;dCR zw&5T~5<1wrytBVn@f$bzk8RI5>s)!(Pw@N@@}9>#4E6j>e=a9y)jR|EG~a`Nc~xA| z(+2vzK=D9dqTdVEZ{!tRq<+tW45)r12j_J48)G-7BJAS5nbJ$RuPdA`E23~9?|%~K z)HqS^&)Gk!!cA?Csd%D7#WT%w2KTV1L1VqDSuURF2ojIB#{I$gczT zE6G>=&VJvLb7o?We+ z%D}Gnp--0iUnB=h;W?PahGpNcSFLO&?nLwT`>94BHdMfkd zJX;d@k#eos`S^=Y#>>aG#8N&p^t(Tx<@mYH%fwL5x6YLOzemG2tj&6PHJFB{PAtf< zFUSP!TUx)9(Wj_um{H<&fE@|!+SdK~=fJA9NAh8RK5>{2dtUKjO~>KGZaNUkOgj|H z{OvgO@LP0$@*&BGAAwP<&9R|7^K~IdV6@DCORCIhik6iqJ}97ciyqdcmS_>d zrWWxl@MiQZu)#nV-c>rogHs>deunXYt>I%7ZtiPvd$fbWVJ zeqaCv^k!?y1ZODU<YHUR}VkBy!0556x_;U`$u~UIWU-z4(!AGHMw5qASXy-y{G3W4klKMB_{IZ&SL#vo$}lNJMP7# zAKe|#W%!K!GV;bMeL^XfpQdR~kJ2hw*K8VV#g>M!JDU2pum(PXJt9V*1@r+;{WsCGwjX-SRvkzN6OQ{bY}~b9}+(81bvshFtrl0hzxEIi``*$&*hD(<%7G&{?rc zBn*ymQ+(7+=)9_+o0>Zyb(i25e8#n~ftUG+_ws4ilofGq?Q7lHRBnsHbkNQ2P`SCx zAEED=s;=Ln?@g9lt;_ao^UHmN*t*o;vKjPap5nidSM+1$7lQoF38f#xx#;2DgI}GX z^gxJRryM2L<4xcy2Sci2TDIc#x`mUz+=Sy@1Zf&DAn2tHU!1}`YnwC4y>=NZh zm(!?siN#u%%ohL}L^4Nq>|5*?J^idv?rmnHD|112v5$LQx{J>_U@b&|dqCygI)}@L zm5wp2ckwtz;$6-)G=4dmfacIVL(3NrcSZpy&KO0MRRm_fcaW1vF16`0w zDs;}9+f@;z`w?xu!UF28h|{%6=J5Xo^uHnR|3dmdE${zy8s9}G>YhvVu&V;?xaKq` z13YuthM62!#p_na>xU`koJvv96J8@L6WmR2xVS4&i%LO{*!b+EbW=cEVGZwJgUmH9H-1* zsLX&W^BtU*#6x>NpY@}j*e5Y@lj7lXb`kw}l4zr0v3`tbFLK{Ow$`HXPn&E1ndxRX z$sojML)K5o9Alu(Ta1_4Zx^vWvy-dEm@|AN^A>Tu{0N^`6;r-`kVndqPXqC^3d_&a z)t=D%2OIP?@b;anwi2)U>PNSw4f<4na$9=B$G4?*`jpe}2z`R|`Go#&r~6_0)YAXC z^a<0oUG%w^J`3nGojwnr^O6m$%iZ+u_R~iorrh3?hnKRM&%d9uKOfqO8043-+0ME8 zYT_4XxHkBCta)v@>+Z8BDg zj&QNNh0a4@?KEq%%2p^W>EE$$j@)~Q-`VKP2RL8&D#p)9&^vaG-)3uupK+1{dJp1~iyuGtCEHgVa8MW8n;kWh zME`&u(=sPQw$vfhs+g&TKB==^OTTrczm1v63PbCySeaM0H?M5+sIo-YE0$v~P}$q) zyNkY;alFbZ(MI2k=^K0H1nn=P8Re+`3yhbz?{|+)!LCsZoF3Ciwcs4`n=RIWe|K&? z79Zo84eFUVJ!7h8Hfh7pd{ea@IkXFzAMJ2(Zd~k_JpDw-a>S1SM+ev|UsSTFw+0sa z!)~#%(XMzy+RSHCUDK&ftPh`-=6!qlG1_*?G5TZD*>}@1%6{t@WpPeoeIah?aqanB zpJ@ID>yJ^#7miU!t*T@EG0Ha{qr9%lpQOesOuWafU&&_PI85_L`{u3dO59&vcez^` z?RG-3X7<_f&uFtkO7~8Kwn-~n`ld2?56WoTd~5zl!}7&itk;N6p#3K> z&N=g5#faVg=rGNpG2Q|{{q-+gWCiItpElNVilbIYH!Q1css-Pr>+3F}`o>x}jEqvd z3@d(;x*oj9Lfm;6*z@%6AiiU5)&b?m;;ju2>pr6V+u?h=X;i?i_cgjbWd)fHxborr#d^$wo|k#S28A=fDKF_iJ|Iqz}mF?3ji#~ew4U`q+`4;wx zmfKwE1F7yKruUa+!?~OfsT}e_!^6p&$vSb)JEhHI-xZv9(EW3)6v=9kf2MW1oNIm{ z{UZCh2Wc)w!OwkS59e_V&RohiMXc!$K<5-DCUW~eZoEK!7|nP{$a5NM6&$+(xe)I{ zEX6?dcXqZ#WZ*mK`S?NBgW-WmD2piGg%KY!&o zH~IW4^n5TTu}2`AKa$>KhX*cpd^6jufEjVn{^#j^4^v%A&rlU0S!gFc2m2w;_ow0O zMtg4ueZzlq6V1mK^C|lg6LqzT$LTlbC;%TUbDLY(G~dD)1){AMo!5K$9=+!wsuMVl z6IEU*O=}aC%Kv^iH^a4vyWfnw$5$Q1osW^i?#bkA3`_mm9g_5nx_Y`CIes6&s+>NwN+QF?fvE!Fi!* zUtXcs?Htx+N`7ai!m#%#ogMOKU82ebHO8x{+CY3&q0%eL+;Qu<&hu5dsqk%5^SH(3 z^RafTGSw}hBdn(HN9uRl!HFveK|4SX*tZ3|qPe?tOU+Ki|8U$naxmzsttWsEni6X` z!t$l`KX@55#e9M16Mjcw6&v;v=bn^0VUy~Bd=nhj5xeC^w*$HL3v}-p#%8uS7gvz@ zQ*ZBKEFx?-LSC-<)<9yLjXtAHz`Vg4FrUorQ_iEeLZFUi&|HVo_QKaH!(P9PDGA=bTvE6#y+->98uzEJgHr_J!6BsaGwtcZKhhrh= znzTpFW?MhTETQatC=X0zS-#Er1C<{m?GsNYplhiieu3sS5%Y^+Y$fnMhd%syHkXSH zIf*y;r7!A&*Fvld2fi<2T5t}PM4uO<%pk`RR&)Div7HBVy-81oh_;nILUKZJ?0K4l zW@|${DMslb$Cqxg3g{d{Zr}k;Vs;XpKM#BXwXGA_VI0Fi-(#59kvW`Lr>SCG*6B&c z8cxx-V0y8eu2G*$L~I`bj?AX_$c!^F>WH~&|-fxKj*_!V{6jbnyIpZ=yUc)<2gG> z{49KaHpG&`Ph%TW`G>r*Em30&eOyp$0iWoc^K;0Lv_`27;4jt@O+)NOioW@LSG)=M zP3ThtG8g%pjl^%vOJ@dww-k}Kr1Qdv1y}SF*bM*ikw-s)MVu;wzExL#u{y_5&UBHt z3x5BpXi~rqQLOdsj{svGxN&;Q7l`_;U=%n<>%<1+!!cWlKW%Z~M>GO`)1|$N2IM@y zvBH(ct3J)9i5x)&=*VG1w>oMfS)sHKO0M(ncC3cljBo1@^P*3`>a$2 zaw5q1>-_S;|6}>^zfe97`<#mPe)!Z~w)gw%#x7B4_#N+mEU(<`yx)(EAAY7Q@A^R9 z@O8hbV*KIPr1FCK&G}}~Y(AUI(pu8kmxp83LB~47GM9E0%Cmk_Z&A6dWSw4oo>#YK ztf-iHR;pApn=3pX0M`PhU&l2sCmno^f>9Zt1|AXkJ-ZVb_Bja>4TevSkFggx{~?_t z4+)%=ur2)HU>{H)W6vOFh3G8&_UIgl$#yx&$re_&S9~MpP}8NZ zkO>d2H{QntdsRoArjp(oEwm2Mq-1I=0DxX)Do zAD;2r@tSe$wtDyVnh?+r4AeC9q|**+RQTM(G6*vL(CKU z^Eln#c;*xPfZw9!dHgRqqT^VyE7bnsVN^8#*Z+i?GnB$ zONwP)t7_Pu(=vA)&N}!yz`qUo^x%_F@nMGJJ+FZL2Ru>YS+8S1l|3x0*PKdcUcpTJ zYL+c#BF69O8T!!RnKWLr>Gv!XzZs|P>473;C-*hFm7M1>Ddzr{jOCQRYOPKPGK|^x zTEtxT+5r4S^gc1m7-B!uh~6eljIsWLJwsi?Jl33$vftD06wS~-j$O(a^0)`TMP0=> zlyDAm=|K@V_Y=qYlo|U{XWK+mFtw!FuI_i1k z=Lp8y8B?{A{c_vcucuo1s*IyHM~~6w-;+FWUDV<@!3z3D8^4^De!AYXxSs!iA+1lW zQTCO9Tp54f_F~PkMz2f{4Hgnl9s$m>l1m~STZepLJsdx)D}Ulszd^i&)$Pnq+$q}Q z?H2OJ7d+WzMYgUUoXm0la-F@C&2Glt%Jsjw!>UeKN{nwUS&qq+rN5I^} zF@FWj=QF?VrbYn^RLXREj`!lcySs@VZS$^qGKzi_PX@ek@M1y9i*Y?3FBU|u9O}pG zhmPdOn$&(}dK*KY>h;5P*K7|_{o!)uD-E8v@q(ZW9`UcR!Lu$}Vy!%Iy_10-JZui- zBy+5~EXzJ7(jU21MDEJp`|SdBtn>zF2>bsd71tM@UF>4)4Vr_}88Y4*{`;eVZLRl% z*L4s(QLT3i$TiDSnaqH($F4H}A~x0RB)M;o{V;t8jXh$txoxn@+$lo%J@NPa8}Z2+ z^%MQU96aLN3Etj4neGJC5Qtlo(Mm(2z=8>s?VO~`C_L3oeictQ~R2ICl#Cz(` z;XN67yfg5g#_zK;9?uM#9acCU_&xERjLdI5jrvbz8qoi#kf}(nW;~pk?j-7S9p`Mo zTAAr?V*dGt(a@WONCqFUc9UF8^RC}+vA)4bo#p4U^N7E`0eKjUH&PkkUx6n0joU56 zWBo^MHZw_KRryrDXY>I$k_{?<@;c}!jTb@b-zin@ zCHlWl*qIZl&7cJw7eM_3Z9ki2=S`*0*_CE9Vr&P#9?&e8e%I3{t#r$gmGINIiGK(woX{L z5Pdgd4)ikvrF)p>Mv%W(f70Ga|2NY23Hlx}Lw5&*`jY~`!%a)YjM463i2g^k_5)t5 z!#8@e8H~k14Lw&6{qIcpnysnGi-!Q6d6e2&OxF%7+uB3)AO5|_v*Xu($a@QI1{Ml< ziCI+dCaUvERUQ}*k4y=;rgr*)`uaxq(bz7IBMQy@x)qwyVi_v#6gr_gT8Cq3zuz-) zz&?@V_ET=P%6}ALAK9qGxvsXR?CmwZVhqXQcl&49J8F8*t_1F+(Q~d}OK@CLrFpUQ zKIi;s6~G`z-8d7uetL%H{ybCZpVIYGww3z18LXFspPz@dB6G&IRHRE2Is7&{`->kX ze&vxf18#i{ox$mZ6PP&Pg8l*YvRc_*Dh=eQUs_R}zDMBsYSXJ@mRpX!N&Oknwz539 zk-j7B@4FOv%!@bG^s>$Dk$S0fMT{wYvPP3k9yXhWCqoXXaywKx0N9KU|Owe3t= zXLfS%?$haPFmgkk|FvIvh83V=gYb_ zZn>ak2bFG%_RpFvHLJuFeY-1tI#-D2XIO*K)1&UpEjc?>)s*OV#^OSpx|h5D1$F-b z&FzS|)Q_Uxa@6aidR04FKX8*Z7&_`X*oaUs;xzWFXG6zoQ_LC!u1N*G<4^hcCcq1d zrC6sPQfqJ_%_;2LhekV@{9NIjr<=w(T;>c(yJLcLUxDUqsSLZLOA*JAa0b~|Bgwod z{sTv{md+qMFW1r*S_ffG=QD4y+3MVRW-sTR?itfU>#`o_Tovf)&0|`f4^>}*rhUs{ZhqY(e^*%JbBRuS{q)YM=SQn{(EDSt6{3;) zzWcOnW_5j^hrMHa@mojaS~p~_b*w$m<@;lOVgt@nqfdllajQ+n#bl@@-^R7dak4(6Ev1tZ~dvn{nei?ci$RW;#OKcVornRPBSls zUDA%E&#-bmH((ZI;5^Y8_u7ds=BJ|1UxE!)iJFs{o$eIMg|!e4mOan>1l zb%gKK@(U zReY8OZ<2ckdx+!8qALDUy$|u7)iefolt>>5;J$64vY-v1=deK|J{IGmQMsR%6!35M zBZJPAbKhF7@x@{Ma>QHkI#OeZvhW?onyO6^5152}0X#gc)mCS3G4cq~JWWY*%xdqM z37V&gJWr4Ol>3SeV`;xvRiIi>7cP;p6nj_qYA3DpF zHL!(W$?-7T`S(@OOPscYeis`(gJEqn=aQ>s|Cnp-8lF!X%LAW?$iRA0nOH9n%k;-_ z+03;EZ+*Y-$vefJQ`RxIM(>$jxxV8b);jWn>gn||CXCLcF38jLY_-azu^jeN^&8j{ zu{6%UYMg0RI>~+$lnv8RwqPp5`vNxTWABZt5oc07Th+<=KaKUgj*66QsC-$gylV%Q z4GLpZ#*_Mzi*6{V+uRE?At|0^i7WGO!p49rFEx_^hEc z?e(B_xw2zUCFL-eMYaLIQxQK^kzazx3q?>uq2bvI9nsOJL zcM9kc&GIbkr%uevLHC~(SU*>?&d0jGRWurRiV0=XN8@uNTb+}?<76If+AeN6+wXQl zwkDo*L%qziX;9f8jcRo)U#qBA&)m4!;oNj3Dt4~&#OkfvsW0AH{i^cQEMeRHu-^%2 z`5|J$Lk z#_8-2_%cV2Eh8E7cP{va`NRi=^eb6+yJ;Y8Kb%P0kz_)IQwgEP5(4x} zC%&anOIX<-W#n1-Qx!i)&sa28nE%0SNR7uF7qN8nfd4^#-RygTU>d4_ub^P+)VazDh`D6|J!TNJ+FQj-|^bPHQmCo+B4u>-3wEn)9a2YH5LbVRh zq;>e;h#8>$g*ceI)n3Lsuc5KKTlx7T*F%A#v9syAqkNK(W27#X zPdm|#8imgPDEeN=7$e=zug;MeBcVjf2YqrZA>)z2YnBinQj$nDSDGu^46~)B(rj-7 zmfJekS0b;^N^#n`5^oH1$o}`N>y^39ShoOw8_3Tj2iJMy0$Ef~m6ftAx>P_95j5My z7RKT)Cyng=-IgQS0Jc~FWwz<=}j^}TfoaJ*FdiWct{GZgi%pA^P2Nnl? zNAje1a}I|x*6ZZ=x03NATiialGka<{vFBwl>?okgx2Nv=-$@K>=5)|(19s^ybV1V&M^3(!u|nF zAn4>yS|YJDr?O3PMd%y2q676W+FGntY_8vK*Ba0Z zuM&^yFNyUkw1(|t7g9O#)(i}zHlGggR!n^uTPsTJbY2Udv1 z3FJl~o}SkCg`=|>gVygO#4CWes%9J7Ma&N?{6ztOOMRf5vDM2{-2!q1V|v891^A0i zMf=zn+v6D*D86Gv@jf0$@JztipP=-<@Kr`1D~Sg}KYy}opTe0zddgH;MDbAjslVLU zCP`x=jCuMJ`|<99UXH<>m$U-VPftkq(j4}Rf7TApnM-^%$pNL%`$2bx zwuIIBb=9Zfy;+(+DGlxfuBy_nmN#0v0GtyLVn;J5y;<5^>_3W-6G!lMTKFpi1t@eUXHb+ z<&9gYJkIv7(*E(v%%k6Xl^hOU_K`6(ex*dOMoD~JEh*z5kn=8_xP$X|YfX1B58^9b z#W}SR1EQsqqE1K75pAdr_(OCZ|G@{>4y>TF`C7)Yhc3mh&GtclK{;QvkM`Zq9k2Ym z3M&UWoAC~j&93pKI-SYM+vx1Q#{CQEAo>sdE8;W5@dWSHgQKJ_{GfLF0py4F>g7F7 z|6}Q71@z(*8JDa~=E9^i?hCB9m-eAL{bJx+RRv?~1a$t;_lLgsbxY$|%XOmgrWW>5 z4aZk8mISSb^E91)`&JA}ob2dmrJp4^J(+t4lO8?9JIK1dmctB=vf`n!_@@^nO(+q z8!>7=w$00Ud|&}12bE@Sb6^*|RjmV0mf2D-aWx=|K!3gR8j_WaJ-M;*kG+A%#$SW{ zv^~PZY^pPQh-bLO!8uCxjH5oCChZdmClE{BbxN#lBXsaj%_P2KYI1PW#lWi$IvJ|p zi!s6bKk{r}D|rZg^6cNR8+-fY)}L&1r^J5mCN3OF{1njy9li{b zuL4cx+!M@CG4CXHe$!#T+0T4Hi;(iZe8-gd@5}r#+LMSur!l>RXv^Eaf(-2TcTih! z{%Wx!pMj2fO4ILI7D1cj`&S9H4fSuM_j&EcxI>=}o!J>w_tAS7Z3WiA@;-;>=#ZKt z;z2$;CpyhZeKXVBx|pQ7m_Mo4n**DAFY!U0#Iv&;1vz#H$p&NMZO#~y?F@R~FRqt7 zf5E}mSpFHQo`?NujJeId$A@#{N*pp(J4l`YUD!UORUBX*X_?jXgAAWnKH@2W>0CnJ zkP$|1)kxNwVUx_y_$}~DD32utFi{KWtb}fZ+O`Jqrvci#@DoPeJ`=h!87uo`V8oo= zna1a3`W&Ko=$VVvI9sJ4`;(;0%uYMcL zV_WJa#!Ia+&HfXWqJq zwBw}n@Pj-YH!lxRc~r{v&`r*x{*0vlO;CH{M5YgY%Kx+lG8z0&-AQzR0&wH0Ogohs z)~_GQZys;0BUTJ$fghUAlfw`zUv2aqVF&fy(&~)MO5Fj@wzaf>yBNRTa!qOjt}mRy z81`-#@ze?8r=O%U<*{~wI3d{GSPr5w`6Z3l2BJp|wb=}G=!mtO4tc}hCpvC%GtWW? zRxkBA&|!LQyOe%I$Ax`2^9K^Ect?G!*!qc`snuj#YD@1FPeihrtBJ3`c>FUS+^6K~ zh6;(f;^{>mHEGOlq%pgmcn7xeu4Ef;gR(8)4D`h=aqt_s`G}3dGwhcPeR$1Mrtd~< zso3neOm85Ic>BSm>$v9qpLEp!+Wi0Z#Ea285QAN7^|6fiXnGI(fiw{916>YUM5Bq{ zd2wVx=6)sTeeO^;vr(M~S}^R6Rd~&}{ngIg46H1rhXap`_3>zG7xT%yPH0UQ-~DZi zaSVwMeCzfSmwD2rP4PvkfX>CaiD*cBeY) zS7%7Olix6`u(e89<1S(x#NzbY!5fs_DM<7SwkMQ{e}V2N$67b^U22U?7Fk90>jsNf zbaAZXB<4RZW_$o?hm!U}Tw~se_*C!;pqb!JU@J!q9?q8Qqn3NqVJR1R{M>+&>1vo3 z$sFyvfq0}+Th&rQ9;uvuI+ITN% z#%*FkvQ1oZoObLZdOM2R`K6=ou3*9jj9#L@u|1^TX$L8+(4nFmaUXwfM5WIE@Ilx%U)M^dNpRTXDf9_XXt z9{H7S3jO+|zO{mFcuMCbbK14gdD1G3?694t;D&ElD@^4{{LwHkwi{e0s9yWjW^)%D=Z5ba%DDdmGG^j8}`g2NmYY4+HWYuX}vx zmrg$bzYoxsTQ7LhtxYDy6l0qUdV_N>LVPb`^+9tYKlHixk0m~#)8e%S`m@8|L$Yv- zwQjbPK|DXlg~t+B^-YZ~a#c;EK2;iP{>j=Of8^TN*5uZ{mR=+N(c0HEzopf$8&vdV z^wIRDRK;|SQgkPxT`le2HOToio9)DVqN{Rv1juU#zRXvAvl}*3ckMBkiOZ=Euq|Eo zX*QQ@7`l$twEu6=n%wP-U(p0UB!IX;@Ow>pd;{c-dRnWTJ5I&&ArIUH=FwK<{G5&_ zhk!SO{uaJ?1L~}WOv3nmv<^m_+XZxeo9dxEgU)XlKie?pJCD>$zed`{(lwdZcy<%7syyW`%7GJU(T0whoa4Av5%;nf8=twm+FDvW%~Ml zvGVau2IUIk$OYOfdgyi zg~A8G`oq~q=M-e=(`375yJL)2ht|wpWAvc&th`2l|ol@_82|Oe622hx8D6!>L&AfSm;YJpH7jS%U|U2x$w^!Fm~Ic zPV+l~B551FO2tD(v@$VJzl-M)*S%P@Nkp@cb)M!hxuYC=Z&%V;GEYwmU?DGIUBL|4 z`=5Sh2JuL-3Wsw$(|H9M=hm-obrWxnbkWBt##3&&MQ2hPvD!T%0{bcAk%@nTtrd3d z6F5F>7W)rusqf{r<5NC9zoL2jS9r^bN-immS?*~kOIuN;^0UO=`rPd_2gF~8+3woy z?4R#sJUbp_pf76LUeB(1Ce<~?e2V2_uRQ02rFC?ep8HqY1Amq&v8UV!+jS(iJNGM= z3cSR4`zibIyp)^$+7<5MDx5{DM1k*SHxRSRo>e^McSmP4h(q@BrX)T%vR}_AzI`{< z=RI@%XleV?Xq}kMw=5HX%zoBaYhlf2eYO5CJp7kNXLHyhSSRq^9brkG&aFHD#J(?6 z($8=%64(;LO~BP#C$f=J_}c~yJyrIj4`e=W_BAq7Wk!8}C}@5j`Td4`#fuU9(CNu0 zr_p=+6;`ij*MlD*R+pe=B{+N^2OLwD(BLx3uF9@x`%PQk;c}$hj)Cp$#Q4V zd!F|&FLCC9*KCq`-7w!qe7y+7QobV3?qZ~Th(WDY7+-b3e%EClhkO5?&7{AkStwVi z@E>p;a~P$)`we=3K>I$?lR0HnPRnoW7Ngm@b4-s7ALJFImgf8$@vN)(V)%SkLg$Bd zruU0UumLwACVI46PHlj%NO@wVxCb^>;vXtGmUcGqjQo|+W$Zin_nR^q=x5zoX(e}7Y=1SjPXf%_Q6WTWKCVo_UcFOT1{(rb?&UZmv}{k_$1_iygF{3Mb}P4 ze_)@wawcqueaeQ|$~HvkU;K*BPMIY6p-GA-g&os7_bcL78GN`Hvlwy6DdI^|#a7k- z5>Jx)wi7hh*wZ+F@ydUwlLFs!5%~3il)H=No8kPu4U^>FCjRTbTpQ?Yy!2D)AA$Aw zJC)}m-+v-XbPRZr3*%M*`B4UHR*Oor%c)CsiCUveKvoOW+2+~ACk%A4PZG`^@P2!1 zX>HS*fNT?eQ0n2}4^$2xvNU6svMr_V;-L(#qb(=1?0OB$62O@aGlrPtBco=(*{p1Y z!03i=9r_D8*vou-%7*WA^GVsvD(26Ibysf`$}?S~z5qvUld|jHp`Kez&vZfuPW?Nk z4>A0c;4e()>n>B;w7LECzgXFX(8k^GXSpxW<}hn#vhOEj& zns79uzv8kRGZ~%MC3qe93}T=2o}T*H{%;?KuQB{T`#5gsQGK_lcwf?S_)g^eMgJep ztzwU6U}fM&m3oNrt)8-|2oMBocAF5*#6nN^nqr*RCJe=acB<*FIvDn zJ@f>@sV&wRt$8WQ=PmSHFZ_{>SgMy~_2yxndkpbGYaqKDB)gBfQSja!rF5!ct=%!2 z`Z%s+i~;@kGUx7^l)dA-nGED?BQABDpocsD;%4e%99zr0t>@3?`M%?vNqvYM7Lr%~ z6L@I4_QHqRoQyt6ur+hi3I@-hhJbcuoudAd*Soh1`C0SSbui_qbTMb9OKk;EU zha*jAO$PpH4}D1U7MAv%t3L?ke*gCUP>u)FNyaKyaX0i|o{_3t;|C$8`=0!O^4`7s z-VYstai&f8xq8zI?pw9;*~b0zsScg^$&iXg<9cH9-W~6UaybN1$1@%V96g(8g8mHe zo?|!gcxY90cvHLka@PvjC#aSAsU1C%UVfl>1=ium+KAT9fli{zo4bQ5mT)%hFX%jx z;~ZyJZTv3+*eLfmB}2$Vzaa*!7NQBUuWMyZT~46s_r#}Mg+25%V$zJX^uas~T42N+ z@CthTNgB(g4(AP_b+fVbNxRg1QrfT+66fq=#Rp7KJW4FOUd&GaMX=A0CUciq6Ymsz zveF0TLG&@cjD3V&qdxkKL@vGnda}EQWWS3TJ9Un8H88UC@bE+W_12AJvYD$rJbd7- z(K(clr@y&oK4Wj(uIj>gRpylmruWbzVLBnC~~E42|1! zRK}$BVJ4CH^lHT06>mr}?Y2Ek`h}`KVBq7dgI>gplZ-;;E93v}z*iQz6gMP>^BP4I zkL?@ia^|Y%tMmGdHf-ej=DGurlhZGzGFIh^wQ`Z@J{B-QTJni7*QsB$g*fa|=>KT^i2!7nu6S4*|tCD?tP2y{lVTqbhaF}ZF9a=ZiWPM4t$l*63e|7 zc8JPqwn0EQT$@_K`0daejG{RXYu%zY*(>UZrkqE6E_&N2_nBt{?#a!KZvECq7d8+0 zV~>g#b4*A3)OCaH*LPX)H2`fuOeTEGIKChy<2=GNFQ6F>D!&EFK{hr>1_KQMj-pS| z4CEo#^fhu%8f%!B08VnPzCr*O2sD6w(doNb=}h($zld=wq4$9&=JKiKqAs?a`o2zh zI@bI$@Ym3(zwcrVHlH=pmk`xMEKER0$Kj%$o6 zdwo+k^MeH{Ux#&A`p^0~&Td$4@#2@VCmbm^dT04UEh$cb>`HYmL|*BgkFfCkK+B>+E&O%^C zHAJT}MrVUrn!_Pw`p=l1^ME@>_oTk0L1A?IVlwW3QeMs<a2d^U3t#t#sxVBj7}%OGULS# zaQ1Yf7k;DDf^XC}_Gj2nYl!whu|+(w2^{oxCrmV>PV08y0|M-)@_4tXwCF4xpuL)q zcF1a~`wHTrYKL{G%uBNWveC^LA*dVjzL!r1`IK>;}QnRKPv5ax`?K9Z3Ru4XE$j1G(}<{ z)a7W(OnW@vOEP_F&=gJ4Ew+Vtc0Gf0fV8l0%8XBk^J^LkM~!27Aw%Z+F_UB=s|@%x zoGS)0DcxU2wAfeN#POQI#RHZw?QDA|#J*Nv`!31wF|5Iq`$&11c?Az|wftNs1OKV>X)k!s#T1=5nfiry!LN?# z_LojS@ahuk&rOXkutyN5Abnw1$=IS8?_mL)n?h~29iej-xn2Qj zZZob*s?jM^@uTn2zFKx7ji(iJJlpO_dIod4kjADie!D! z>Q?JSocF*aBms8l;Kg(XBL2YBH^%bLW;&O*R1crapW}7Yo%2HmpWIY`r`W4}%@N1w==JQ;HRJE^?xy#@$%$JUO)C(UZ1YHH&@Fs2~mHFEAni=Et2=w^Y~z37(8q! z{(n%$<0Bv0hJ>uMP}$)p?65_k!YKVH2p%d#^t)XXs6; z?9(_8nwB}B$@i(g7v|OZO;rxQR5`xVAU@NOe5PMvrV`CrY_>VT!v=2hYQ10d5p8ZBow9%Z zP2@`A*id^l=;(BMp2oe!e>E`8&+DUptTS32=%o>39Vkt~4qJ>qJs>2u8De2qE1hwl z)+z!ui9wWKZMF%+d^wj>^VNl;+zaSDJNf!X_n|8g&$E(aRnZ=d7uxfUkF$J+ei61l z6TTw6r$vFHU9jDk(L8+peb_bRvmQOi^9!|JajU8Wv4(wgAM#UmavA48xpq+|GtFF0 z>wB3q&FBzOt%KJ6GCrHb<}&a+?9ZnqmI=-!sp#*Vw?mnEM3diHgkG72fu+ul2CI@Y|kWidKxc$3Dg|N(hYCL+~dZkhC0r8Tf#vH>vngVE?nO zmH5?DsV^A6H{O%u_jNUXusvh!5Ode~G2-PuJ7&sS0f@_0XUW569{`W*Nkw)onumim>00oo4@hLknJ%&Q=WLGD_yg#qm={yO@j| z3-MOAJO2;$V*{F9?pV@>WmJe<33;OQ6aXOs`+l#wZSlpb-KsV~i?@Clre>rZK} zKl0j$Tz}@}`U82^m+o?INoV)@O6IwG8u-gG2l&qePd{bj4F3i5!1G-E*V3&OMDME( zF`jeEoj~pWz2ajIT`XnRI+_E-Y<~LoFz-`JzoX{E0y*-6I>|)ZmBhnNW4#{c7C8CH zfrtJEqYn!2KIdkS_lq3Q*;L>xo7y|L?4}kgNVE_-hH$cNH2Pbc(_hN#h8lO&bx7hD zIj{rucN4u##F!3EP7}{qopKv2I@cy3cV*NyiO%YJl-CvZ4g1K`-f7TV#bjESbRT|- zVk*tkWSXbHe#gm7pgr009g)GFBl_=Nco_aGv>#d|-{?zNJPwl%Vh!IZp8JlIyN|K+ zEJcm@<@BWUH%h8cf>vUb>7JK_mOTQorqG!(?@bL{Y;JvMLkKx)S3Mi(x1Go!jt83&9AP7^R9)}wd?Z6?|anl zNr-nfKv&uYU#I!2jJDdsr-0>dj99$ysRVaLSdFu5R)?sjJ!m3s_9(=zBe-Yy6KT>ub8UH#%@?z0cDeMuDRmfp7`xyQ!SGDd~6RhVgBV##v8N6 zXZ7Y{gFSoGS&UEn*#6&L?yy}crg9RK{CD00V;9ZqXpVck-$;tubdO+KPV|~FgGm1P z9{s!w>i3WG>JQ-_OV*g=`^2}FlMlK{)om5e2w=E+JSQhZ2{jsfn<^gx5_xxbPzEg z3VZViUCC^YRV(pu`a`lW;*X(>cg@qY`;-oOGB9aV7zc?71U@91l(`hA4XhV3_G>-y zwXVt3hts_*?-z1@c8OI3f2eoaH@;82 zC3)AJ&oSBt93tds!TJj*UH5cqo005x8k^ROCmWs2^1E6sZ#+BiYO#>#1o_Yr8yqyh zAdr8aZKesSgF+u5mjYKNNNo!@b&D<7D=C?~Ca6En`eMXAV$4t5LHmUInboVDF^oMo zgR$zX;dk!q-jC;@BA66>c#QsqJqAK@Ql_M9rh|@~xeV0pqFPHC# zu7BKkw2WYL_<6$3S zjZG+$G#c;QL+ci?jw3jC*>2DYE|2vRq5gR`Vyu}7$O&sIKXzlO6G^u?cn&xZ!E}p2 zE(x5CUj2{po|ugsNmaL)ck;X}v|1ea#|C&^v``(*#COlK!+JB-;eRcxHOstV>4ZSc z2K4>YrbOs{tq$hAb!v;XbVeKJJ0m*l1QFj)XJpuboUl}Q?+&Q_*r4QId{2M2G{?iB zoUc*F3+mCR+e793&!l)Q80n}x0`Y^uhBIe55gmAW2`5M2qY3J3LVS?dSJ1wFZ-j=t z|Lz;1p(EZ!V~FcZ-jsY2>c`&RUYn%zgX*R|l`c<&@V*c8>V57Fd5%P0p!0}$SBwS5 z!52?BiDrp|mLOg;($wK-P2Y41iN>`fe!yt8!U@C&EM;3`f#S7;#M`1w0djJ{e*}0T zurJ4?UrFO~*kq;O0mnvnOPL?#-}3D0E%MyQcZBvwE`C<+S(1l4z4lM0{)W{V`6p!~ zgPj`Zc5rID<(1n$yH%`wBb4K7JRZio|5Li>Q`bN%?j;&ajV?hqV!6jJog9&^}$KFl(g_SgX2M?b*wA*%@zd z9SSA|{M`TZ`y_uHNzeIwUAa(X(&c?(p`z(n4>xSxHAtka!8OWnTZGln2kyw9WAUo%S_aYb5iw)THc| zsr`cyeW~L&XzxX@C%Kf)Qr6YX0(NWFIQC6iC0e$&SuHiRw$kfFglL4~=Ze3q>ON7` z?K4`Omim;vv<7-(s)yDj@-GG<8&Um!136=sI$k_D{N@i<6}c|}+knR8oDXGgaI0*D zyGLF7Yc_jdAWyHgu&jiy<33-bajW}K3^l1fkEc4GRK6HE7t^(jE$x=q-zmo})}0&k zOUI<#cb?csdpBkyUUhh$uH-WYu^_Xxp!;7`4tR~wTdlEPW8Lp*bgzrviMH(HoOvnx z@M6hR916B`>?zJ1?<`zBaHr_FsnG3gYIKo{_(xY<=0uYz_gg=uJvY9Xu~S~7IS(nE z`C8)t9-{SG9SaKZh9eM{I1m(pf#uGmR8W}7pxCl>nqAuz6v#6*I~wHJaA1TV3q&Ql;mK(0YY$ zEcO%o&<59uM#Q2gXx`Fyi0Y=50(Q|T^!CKV;Jk_${Z_zu-qg(0S!j!l*_!7@;@$p> zfjdy7nW`T)y|phwG+_$ym5sEA`7Bra81bqxWj`pqsUt_jeB9?% zBBcCCSr_BWneGF^;)`y+`prrwKEYV`*`>YbPjiv zeWlg$>Il+V{vefSJq=xh?Bt!NqhFV2=>1nj+^qMUtP--|e!Er&{666*A`ZC_AA=-kvwHS0vB;+?#=P&!8{e=mgSB z2Ym-?NUr;pSu&T*tMqEpk11C0sp>f%n;ZHL4dF6Pnl8f4wZ?qmJ8G?Wn${sjulSYJc;f z_Rsoy)O&nN&f&a&L<5lT&+~zK{8A@#|Fg6ClH_QvVSK65w6Ax|e-5v6nTSn&ipwYwls_C~xh>YPCR@cb*?OC83XFT$A%Jq_%g^nPFr z7c)<9F%EtaXgK|TS;g#}P3?VA`5qz8igA|Vj~$oshQR*#n(D)8tXrSM`9gg34f^_h z*s9EnbNCZui8o06uru99pAGamL?8Tr{&kyuL_D9+@4RVe9#-{UO=IK56;&r>8TjfV z27dew@OFCyd@MQ72+4YhX!il|V~f>TzfQaWa?mHC zPpH#dJO29KK^5P?IWUhHYpQ=Va@!J5vZW;AmM8Xza;w{^B_7(p6|u8@Y=i4)UTT#R zEyEt{@FlEpOkr24c>StRq`${TrKb)k-wTX;{6|C|Z<4u?LC2eiLLP5c1)D}?;sIJO zb8Un9xIN5&`k4olda^3!nRc`O>_f(h>l2Z9uh3(?B4SDGT%wKl_>9zpBY|;Zq;_L3 z7em&ivXxY>+UgbXN$|`2TvpSr%asKl*{B%usX(sikhn**2ZFTrE2GOqT+#T{kd%2a zmjQ)E2D%={U(0wzIPcrUXBZ6yu_p|#d5Zn?~eMk zEvx)RVAChwraYZwIi!--aG~M}Cab-Vc5R||<$S9XN7n5-s_y%bs@wP{b+13F?u0LH zEuI);`-kRhu^y+nIr`cuL&Gw0P}?OIUnKcZl+%2z)&o3NF9`2{r8;|y)ma}jUl1+z zz?-IfF<^NPmn|F`miL47dz6y-n~w25=sUgV`tZ*DdgDjd`}ToQ=Je-Wwk1OLOcW-? z(l@e0_#SgW`ivxgzXCoTwmg$l_E+DL_y4q?_BEX?i9(L4v0r|B7%N|6AETIE4J->i zRR;S4a!4djY~lS@ZC=DW+H)_2|A_Q~hyE72*w(^6@n9yKsaAgQxc;Hi8-H?siThi# zk@J3PQ+o&B|B{oLJ!x>TNapZabKP`06HW-T4C46#K?hlShBJgQSUfh!`7MB9QmM}A zw-JL*Wv-a+3`IXz$bN2f-j#9_@Ej*8ogMt>pjX3rfxH6~%o6d+prpq&%Fe~UhQOB5 zQoU7(Q8D+}i$@0;Lv37b%Dy@N*1pMl3G??$Nj{uLbwI~k-~c1M*)ok1QD>EiC|!S? z`c_0|4s^eD)GyOGS)gxTzg|7v$vi}5YUm#H3C6C=luxM4e6b?`oj;ATRR-DqE;>EMYz;(SL706itV%{`-intP1Z+*{kWD4b+y( zcn{+YP3L^sFR~sL`M<-lmBd?|OtMVB#rc!9Jz_*c^0tVz)BJ5#IgQg6eU}~9=*-=k zvPU8=fxf%!>DI_yGJX{~$8a`${1+()l*6Z&Oxu2DMuFYck8ga@fd-j14_vIPoH;FT)Q7aL_(4`fgt#@&0m~*zGpZD!@W$cKVV1F~# z^TZ{N7yL0itkjR*h2HQt?2D%j(3yIFs!UHs%lzw7Wkxbu27c&7*klJ_vjX z_j1K!`^UT&lClcsA{u23E!6$A^3Qm6zK}K)qBWs!yF+0$mJyYc9(vNVraZClW)nVE zvp8mr>S#euGQXKB^_fcpj9W#0%g?!*E>DWa0;$jF+ahsIiC=Pm_rkuR+AY6Lv)(MN zY!7sO-U(s$(cLumRhqkX!faY6PL01xJkdH)9bG33Yn_;sUdQ;O9u_Hhy9oSUEr}s; z`+Fi&o9AB@zPH#dy{pk(2fby~i~U{0_ysQ;+wDGDtCMIypQ^nm0s}pEB-Jg9)GBcc zoec~1RKQQ;u-T_o)xj4-<|VIMKzz%rdV3J`^d%qhC`4B$8)qS>_tWF<8Xo6lYmi1mDg+)_Y1k$5Z`U)jFj=imCh{wPtre(Y`g{d7-zs-&id+ zn5)@u5BT3iKlZ|26C9v3WkANpLf0A~p78GdSw-)<1?(>6=1Uyoz_|%%Z52Z1Pd-Cu z%`;-t#24)cY0Ye`f5tY6PCk6j9^#q1#Uo~#c$-zC*i4J+^eU#A2FDD)BvuoRSYoWB zy)(nTh{ko|nNRGSWQ^l?RMOlch6%Q#ixu6ir1wsxv29ZF^GN0?rL7NpXbGL`s1x-x zsCw``{3=mjeO^6h`eZCGw}tw(#8?Bq)AgRel-e^buPp^Cw#Ue;L*JlhDIYSn%`tK~g+nEfK=G3G?MY6s+~dx^JCseBah z(>tizRm%IjH`iX!f-V&gz`nqAtwX)L2(jt(zW=ha`yPMmiG7dk-)Y;g%6D7zUhJiS z)?-h{S|3=?@e)Oh&$FKUJ(=1bQ~e&H`u&`Gei!x>$$QK9}9!(8>#AgT-EiM%9C~n_6e9cjpIjX(O3v4UW+%tH zZPc{$I6pVlcTGh$Q;b+Gv(4FPr0o#Vr2$&2s6*!CPL7X4H|gGOMKd1 zQ}y*M>UWIBdA5OEA2(Pb_)nx#4}?;wyRfdlKGfydV2li(3PM zZT5s@i`aP2Hr7k{i^|+0Gvymk&p{?tSTngfZ#Q2K1gH|7j4KbN zzis)FDHmh%h`w6Hh;|gmy4ZdYGL~8)qFuAi4!YMt_d1x~Y3B387(TQ%;rjzDG05HJ zG3*3z%L)ut8_fWIkE1C zPAJ;y_>#AgjIf*N_-ycxo6CtF7RDt$b}?i(tc~P05u@)3(RQaiEpxvqM<#6Y}T}=$P-- z;k|!?s^>qbo;hujPXFj|w%AhV@78Uh%=f7t>`lx|3DNs0)V6C6XV+-j^Fl`qj+yGc zips!`)}+3cK<1=xDl?R-Stq=`r|CWX{)oOpEU{KFUA~ZLf@zHt8>sB$ymopt?!{Mz z+qwri&1%-<>MKyb@W2IHV)ZaxLw!-I?>AH*@_AxxzI~3uZlm>6Lw%b{_a@P}q7H-h zIbt{_(LJnN_;O8r_KAHFW0?r1JNZ2Qk@EK^dF(!e&+`=HaR9^Z#kZxdPv=7$pv`3~ofw$m-=UzhNeCU@u?eD8OSWM&Jk9j6~@F0yNbP||1 z#2Nw1#Z0aj1<0+D{*G0mt9hjMm6m5Srpdl5j6G1Sc-P`&%Km&wHUqkV`TaZ9<;9!? zfpMqsdAz)A)l{|~d0uwdnQEdtj74C8{)}dNwVR$d^_3!0sA7+(U8S^s{|EVoh+jwf zfC;)-#&nTrQt2a@2Sei5qrDgWT>7qqKB7%Ukc$*<$T{lX(}%NF+YU?Jz<{#vvyLFz zD?-zp%<6L`&KJk!8xmWt09XxETdZ)jPkd{d!+sVXc1nZtlg1~ke6iqju@8QG#9Lo> zQ1ann8M9?u%GWx;7`qAf3y9*ZL2RqORIra`I>9`2y0%Y@J|)HWVh=62WjvWoaXu?v|mzD;sK+q zTa66#u)j>n0Lonpe(C9;$$718amLh%R9cz%OP!>zI85mpSGD@?Vh57V8qo z&8b-}!jJcxJz_tN3)=Z8wNqmo=S*62Jr$$5UC4DO{pUR!F3StZEll*Gi{ASI<4w$# zd8cU|zO678yqJXwB{#!w<3r%a(YRxrG42?DjQdo`enb zg2|;zPtvqCi(}b+Q!jQhGvR|$tSP*V4^=KT zjx#g=EPP4_1>3~^G`{64I@5YjXF8gcANFlQ%mwgXNJhX}sU@v4T1UmVU+i$s0Nh8O zv#>f_7pfSxTiKUpx0ujG>wv}zXXsfp@9=GgeWaOjSmwAtQn*sr(DjIt+rFc&m0;bd zxLAxe@|4650*6Ds3o%zXN7(k3v;u#I4vBb+v%mJlzCx-8Im)j~S}kYY_{2V)u3r*5+b)H;vuR zV>~kt4-sQL@NYpEI4k3benmM)eXsc6>!hs>`S3Q)+;02MN3Nb$kv(&i3!iPqX>V%f zxPwy_h9vy;=|B6iPx!jj#UqZPI7M@9bOPUr^LfK3@fwwPf@yrTQv{%;I*Aj zd(@ks0MTdIe!Q{P)qG)1U~E!e-xdE-^QP3>ul!j0Iv<7~ld20jPcZkbY(J9MmayOL zY_lTe$Jxh>1mb(n+r<8~ORY^RXR((@l6}`qg;Cxl>49M;Ly4YVrgO2w+05c} zcHe|)v@fGUCkXvmG&#H{C+@M~Hy=7`Px|xxN={Yr)VCb zaGr8rvYCumt;O4Tzdc;~l8syeeJ|0upNctC=-#M9^87fD=|-m@+0XX!GB$lIab-^A z7&R&1fxm;lk;Sp|Ql>mXVcOLyKJWH|Bk_E_`e4T?SGu^XKh6$82S(#*Bd!~?wm_waoLE7b-G5hS3pf3QHi?S8^qO%<>_LPHr zz^{N@g7>q2xM?N(o(2`akN8B4?RSB<0ojiBAFc;EpZQD|Hpx-yeeY!^|E`XhYfoBqmUyDnA?R3yx;*r3oHN>`vbLjkx zXmdEnY=rSWu4Mah5qL7he<0@$>WP7Oox}EH)bsT>rLQW-q7z;IkaH>aE4%h^>|>D^ zHG`laDyukv0gWTyQ z96KTBbR6iT-YYh6u7?{ezjn1vH0$Yr!kKCqB*V8*IXx=yxpIg1u#JARZX)1GelmC9nPB z3F2!LDfWx=`uKwrvR({%@!u8QLA!#=4+r+*d|!I_&};D(^q!=U@lt(a1mj=!<@O%> z`O{CbjAwcD-a{;z+aunf3O> zmUFNtW_@N)Al{&tWPDFPjIa%$mF-Q48S?2%B}U&{y~s5~bm&5R#j`Cw=)OKwIDI2& zuf4&1&UMhw7muX*J4j>r6Ja0WgT`1z5=VRu^0$K50PO>=GU9(Wz#gXb{H4hAsmol4 zn$kHS*XMsb!@lC>3KyeM={3J_NYY$jor0J2_S}|-hV5%_ z{%PM(;<4YRVO#4uG0brSu+v83>%^8*U$tkG46Dc1iKghQVu7_z%vCluJ>JbYAG-4C z`t2Li7pzIe^KHu0ku0Y3V9S($t|Kv`$JdeM>q7SZi@Ff>_gK1+Z*4lZE+qMw%qJM0 zUCci9h+lv#{7hoK*wwV2b0UIgtV>W`v>y<&unzGHbbl-Rv|YvaEK_m8w)r&wj}x7VrzI9PbbI0CZKHvwyV-on#&2cIscKT# z)}<1El=aN0W1U(<<qqbw#s5H)b~x9ZDuS?qhPYTb!wA6YxaJh$aAk z9oT8a5AggJs(26ZxsYL-?QABJ_VT%Qi&OaATF?Fll}TxbENx1Q#qc*srfGcEi!B9v z?152F?Az%3gKg0Nhky5?jXwM!xl?TV{Z9ML7o}b_%(kPsjMa_%@a;2cjEbqwQ&kz{ zCH={*l16T0TS=eLlj|7^tjwpasZ{jl9+neYk7-AlOZ0RB(F){r88bfYCVf5&`>IlF zbuu-VxIJ5!GB)YmV_Pivvi=9r!Ji_Ip7Ap0@f^VKvw_AT#x?~xU$~BIg=Uw;r=_*i z%kuTL;7N+12TcJF3V6Fz&k|#;@cB6I*oA#zvcizeypZuQm}woY%;k9qD;}VT?U_AX z7oJ0X(BVfFuFNay`AzhET>^787te64N-Vunpq=0iynDds!Q2%RFZCWUVw1z|gl%Do zafk41pQwMEs(;;4?Th?__QB>GQ_nxBp6>#_mD1;g)tr0J%%-v)e&a7y`2_2;u4SDF z^bhwMD|0s1l)jSnf)#o8)zNvjwoxiCL7!(|O|yMElw*uoK<^IO#u{Tn?A0IFAgnq1^okhT%)-gjTLq& zFjA@fz^StQcUAc>p*+|D*3OiX@u&KiVtpm*iy~EgS zCmw&t2tLQyULH{Xn;Z3QZ1-p|*NaU}Pg<`ACH?q~;%g?;zTAMZK>m7j5$*jB0lKpP zu;gzZC0XpJ>i5I++oQi54ri<8HTAKd$ZVnw;OA)%*+osM8u*QXCPowu9e973Zl2Bk zYZa?uXQ6ZNmSoDkTG<%kZ{hhi9M~hr>&e5g*R9R1ATny7qD6 zRrSn6^h})^&+){w*5%V4-qY)NPft^O@=xlyUmlh;BY*#=YDoT0OS@qH`=-sOy>=3gcu);1?R3}+?$lU=zTc{TWBp9;V@qZAMwL2p$uZAmuTJ2 zd4IJtx6s)Fe~Ts5{`8cT4L^oz<{5|wAGgzf=1!T9&_JHfwDik>-OZ%-0ps=G=-k=0 zbf-Ouo}WzeSs>A2Ct#23*lEAqywld`|3UhVzILm=d;?_|nht;HZ0qqW$w!eT!6mmr#A@seIVQrJDNy z(HCF}E>QO`p!=U3M&5FwX+xpRY0!;swKI#tk{=yU<9P02iF?$jt{Gck6Ymof>H49Q zhA}cc8`al8{nu?&#?U{vQO!QeMs?Ds$G1^kIW%meVp~Z}+NhBClWit7&$EyF#-Bd1 z?|kTc=p2)Hne*7D5HwyDz}X;PigQN>A%hNdjRxIclFIIb&H?t)?|dS8#d6jcl5 zR@o>o*Ucw+_+dYlxbL0sWHb3To=s;)*gqe*9-g1yhX>_ZpJZP373SOGGPjZoo56cu z9mRQOJbn6TrHhBIH{7(F=#R9WU_8#c^ND@GKLCBoRlqhqrY1(ivg zqg?!EJ08hP7o0ww<5TA)TKo4O7`D&kzt=eGy?sk;=_^%K^z(Cur_)?MeE-9I<#L8+Um& z4w~b3g}IHnt4*#F3+sCY&P1Gr3kG@xa$8}IFQn&3rNd67d6^Y7I%r;iY1W;y1#LNX zw_QwQaPmK}1>HjXxmxQL6Xr@=&}g-%9=cA&si_@NYtf?YCGRR5$=fQ12DnDB3qgK^JS%YqS`jlMz}GJO*v?Fdwu-qEiWsLAepYqF z+a8NHHO5-S0;)4M&?&*;7neSB=)_i(?5b>FDp)2}0U;e_-Ew`@v@j3dN( zs-1qIGL~>QeQ%e2YJ3;b?scMYN4p(NPq2LY1nXB9UM_PBraAuFPHH^|BJrNr3e#Oy zL41)FFx#y~7b2%=v*nAMOe9Jwd#tPE& z&}T=?77PAi*Z*mP1wY(<;0>rh)in2hDua3>MvYaeB?a;oYVf%?$6Cl|?wlv{8MiYm{9943)D5PaLrn^AB&__~J$cBp!xS)1@AItd z9H`l9!$%dgZ_~uBtoQWt!7WHXCxAutH9FsbBSdm_%OW!Y-me$yZpGN&4=ym$uvhwy zmp9I{?RdJd0XkDRlxdk{Ajq-$XYLPWR-Y{~DiDKO34Mp&GYEgYfWCAPv98dUf=^dE zvk-jqfjvH%WN7&4<6eaKJbd@*zS5}yGw+2FS_XbcVZGJCJCoxd6nJl#^EZ#?+)c@f zHu(I9pi`T(Kg77Qu(zVEXmeUyvEP5blUY~M&$?9D0`6BbK4h`Sjor4Fx7;7=wW<_m zZdlWq4_HWLcTci7rV)5HuwMY58PBlK9?^7QW<;9U$IX4jc!Bs=op~7G0R@%3n7S2n zIoB;TQ$C-$tW5b8S52q3Eu{X@nd7dzDwD}!`?L_>6z>*XZvtc7;bPAPlU&x`H5g*u zR?zGZg%jI+!9-gq#5R_cT}JaV@qCBxBc5a*;}!Jh;=e(cBJsA0ci9#O+d~V-kH4ib z1u$;+6MfRXag;eDb7OT4#;U2;noHmRa~_TDQ~j*h7{NGI!+y_?>(4V@9L`x^yvGXV zjjdmetv^!6d`!Xl>>uJ{EUvjK!+aj$xjDL1&QTH1(QQ0O$j=j0`n#J4Lrg1+ zSr2@*%j3?NbnO+vM0@BVy1(Zp@li5J)E|>c^+ACg}jeJSV9MGaleVN$z ziJfaV+tC?23Uj`a=X|%96LzYMvpVmA;GHtY`mXGcIAsm$F;WUI`3Fq9x_f zaa19PEMu_J_2jdkdoy6I8}wPXI{~X}5H=2!LryX+y;_7hzF;2bUJa&!uP*-syCzKk zb@d-M(Fpx7SN{h&U)5@kDaL=~HYun7)$0G>kPjt|d}i|hE5O*K|F!D>OQ6y8zfS!J zwtX%AM;`a=_GjGeB;;wDXYXX)%~crJD((-_o8VFO<_mwbb1|d$lFR^F>6M*~vWy4N z#drV@(zt$(%6l@3mm3!6s9&As|9)8N0=)b?ug^uY=;^|v(<~#|UuP&!VTVySSO^5aXcsb3&Ub~L>kuQ3?l>Kf@GJiT! zJIC((TEeI7qP+eKwCkk33VHdgR4MzB4W!(&&XX9p>}zGLp}AcvJUkeMEv@!dQthk6 zXZ98Hw5@$Tn|Ye^yRD)1AnSOObMmdB^&tO)zC`GMx%$74W2V>8dXWDe)<>n`T1F{=d)1DXF}4;XI{KT+s$!Yr|@|7T6{LZW)y|(EY$)(YvgIiyxe)? zgUI7zg_?e8t$g+#dTz4v(V5|s@7YwYjwY?cS@eNiub3_Jnebt4K8C#rV+4*vLveemc()!-$-(#Oca`L#*S`Ih4T#cPC z51+4x%6fdl_9tAg(Y%7s*J zr;Q5#eWWboAXYJ#Q$YD~HjFHBVT1Us*67~xr_4~kJ$kJnJiOzoP^pL6KGi`RYfebn zrDJZi4gGp&e&=gLUfcis3t}if$>$E3jl71ZPaEm#Qybj{KPe{prdLFl5>I}UjO#CL zrf*GR4QTbN2LooSwb1Al1;$c)A;#QDud^TjxK@^jmn&QyZm7{ zdqt}gh_*Vlmr#4JM0+oBf|sC7i^y+t`)#k~F!wn}h<0Te@Q!e{<2z_X9jyNrUHb6@ z^Ook<4eEEZy%4h1YNdN>{*Cm#w@(w9jN(&3b8CUc2wdX$dOjD8)L)n%t)o7{kMLtU zZ#On?wciWGJQ&S#7@XiKGv9mV_5 zhHp1GnL6qd=l$F|qIc7b5iKMW_2QkSGa6gUjczA6W8JDU=mOLI!ozfg@5hb?>CfX~ zc9iL|{g;($nX>d>VBfdPjrG!wrb&!Q*wumw89TW}<;#1xLE?XS^&C>zK|Bs|xsKs0 z^c##v%^ussAKh5)CWjPG zfQMmMM{U^X+hd{rstW3trm&zryrUM3zuTGGSgUxozJ%kN4d9J;f*)Ho%#YDt z`Qgk=M&>RBKh`RMao+rqJ4x##iHLjB$qgq$LCn{d8r#RHG!yzGjvj6;@acONld zU>^8I=7EovQ?5KhP619yqVu;P?(x8F6~TC0=smh$)*xk%G{@+t z?C*Xe>F#Yb&pSB>YB%G=d3^aRp4^d=Im!{+3trtj8~UlvTh3l1fVpUD+G*hx#Osb< zBZ{Iu%Q~AY$j)Y^=94{C9Icl9FXV{%n`ei=fGuv|G?!EKL*FuZ| zG?8VNR;Tlj?b(m3m^w|F7Ya!NeT}ERM zpHlYOvQC#chkCbIrH&jNL>(0sZQ2eP5Ebp9XtCw7v9&GjwB$c8E^uh zzn-Q&yzVD3kD4&UshBlDS$AlFvigwo?o+zx)qZHY)X@>0s4R?h8(x{q%lWOE&X9xm z2LIkmNZ!Z!Yq`)mEb5;1wd(!=<8tL&3(1^sT7>R|5|!->(^Q<5()0|yHBcjCOf}cJ zg$;W{Y8TrBpaTe{I*m%^`z8vkj~w6EZlJ#_zw-oQHw+JWwqJqoyHN6doGUjS(TMkp z(lgOSXF;mn2!`9Ol>^ohe;PM@>MA4t-G}L!5&VpUyEuc+a7rcGR0{m!1-8(4MUC62 zf5Znb!#Xw5UK~q%5&F_?(%ymbV*SE53`n0et|9%ai#Me&)n7B!uQ(Q zYpc_AMz8F)Tb~sEMBt;n_mVt|b!ZBw3#M?+cFx1=ck6_bD_Ae&Z)&v<|2>viC}0sn+=N_zqRgMaLz@69#}W!Z3_vNQUW4U+r-nIfbu zIYuYv+=tN3&0v53PS(vqR~ypi*faDw_6FK>D=%Fl>E)ap&6`Gb=J2W&#wJcrqw-JD zc$bV=%JUBXeHi0;9m~VtNprAT#vP0XZISopH?VhT@8fPoJ|V9LOtJACgPf$kFRxh0 z_wL=SW7@?!rn^9o)J|i%@Y6`YLic)->OK>3O3-IWjQl@HeS|8%|5oZF%H{W8OMQfc zssE7FM^wx2E8!CZeTMvgKQM=(&ye32!#)IkhWy@1-|L~zpzo~DAQ=|FchK)Nw!`S- z@)4c(bVba=f6+QQbMk%q?C=ubqt9L%-|cMg5?JnW8silB?JCarB4#tyJ63VV7cqYc zdyL|YFJk_JzDE>id=ca|t!h-9@kPuZ!M{my#uwqdrjr$Cd=ZoSR25a6@kPu#==)Sf zj?bTxU`-f^4{8CYu}`5m!&&)Xbg6O`y&Wm|2n$slw`C`a@7_;uZeW^VMb4$O+uWBD1|cXwTw1K&O^}g-)UGm-Q(N8kGRXt1^l83&*27L5aZzx^w>*|C!c& z+Y01->C0W`We?`xbzYEDx!QGJpm)?<=j9c~y33!J7eNnP=Vc@4f$O|H3wq!>FMk9* zIL>)N%+Kk-Y#WGPohVa==1~_p7HnPi^*qmOJ`QhY!U*tqb=P zShh_fr!RD_3h_&fYfStw_R#hB&9?k>_aAq^xa6~YPUjdollYravA|-xmgN8RcSMf+ zGa1uM$RE>`SyqJlb~r+ETWprChQW_Md8o*6c+-au;XB@aN;kb)4~3}Q0OdK!vx;}< zfqlvYhl23YC*HL#wSsdjHc|bfQ?u;kpUq5bbe4T+w2)PkO|$HnK8tyt0>(IiZGIN} z>tlY!_^vo+d?nI{pXZ_1uW+R4nv((8{KOu5tF#f3{Qy9Q3fKI04P~0U;un+gt;`H=zr`=BF zN~bh1Zl@ysg^(+ab?LO8tt=Nx`%p<4`|C|7`4VxywIq9Rtf0|ttHb(r65rCfZdJdQ z(p3#DI`OZCt2!5-t#?@K)NZ>xwao6XPBBJHnThy^eP^o&c>I43DVfS-ob$WF=LR|| zU?bE~9moa9aj{JzcV#f%!PwLnp`Ik?o7^{D#wiXXI;PWj>yy+b$u`_KY8(D)$aj9W zalo!-e5KnA;I;)50>e}>fYH>!IpNT^iI7PortgvwOPG#_IL|;ITwmZi(VW5VuYsR- zo;jVKx%A|Z>VO@e>SQ~IH`T(=^eq!QUYTUnLcNS#M)NT}+!hEr`ib+pq;9zND={F5 z=K~Mj%D(6VA4LcLk&~|@H>Nm`Nj=_}h%SF5V?lm-Fq=8d`gvEMPZi_xNc)W^)y#Ov zeanb(Es*09n8`}=2i6wU2ka@Tf5+dlnHojp60Ol!5ecQ}3mIcGXJCSj_Me3dt*7Y={9 zcY30YzQ1VCLcCD%FVY7TWghkf+OE-;vo5XLSRwPgcJP^vc{>ilcOB<6lzKp5Ceq#` zxqF|+exQ@n3sE2ImgZSEM}&?Vd}UHwW-mWo_DV{40s{ zm*2@`h*vy3UD^!tYaf?uAN$JMSIIF?M-Gv%vlcX;%h+ynY}pzr8)tvXWws|d(9-md z3Xhg3!<>6*?lGr`wf&o&WgkD}t$}?FcyW^z_9Heo$@oP0PS(+wY7#4Kjc5_h*<|ES zO^7oMJW;Iookzt!K)iAS>ydEQV;Qf9npnpE7n&y4rAAp{kCJo*ZNNtlZD6ifj}UmD zKWDu{Bg-X@Ug0j6jPe7>%Q*jKBW!Y1&%@e6dUiRzxASj|heW?UrnNJTKA!K0L%;MsJOb)F;hZ^E z`-ml+<03?Lzzzz$CA8iC;vD7y{i&9KGfvFMpZ0yN(;a5| zt_yh|_M*A8R@e(TL+BIk4b1OcnqQ}_V4wL|FU$5L+Vd-5J5hfbzo!rWK74TM&kLnt z^8wEUdyZrKL42YTZnnqX(?6}=-H@Job8%XUN*mC)hBWLyzMSo6aW7+dgj)^A?!!4j zu7%yFn{jnN_&3WEwTrJS^$n`yi);12EjZ)6K_487@nKnDR z{PtA45rVy3X(xU%YQ#U!=5(EZcIi4NQa$&O{8Jqf`bFX;%A9_@D{aLm;e3YSS22;X zf6>2tE4u8~K$m^u7eYtvqcP(B_r>DSyi^0@;376r~#BxnBAX#i_`lF z^xj49&_~=eA;z)0Vd{6_t@k+B&5}T?4SxAN;H1zRY^VR695yT4GF;~2f>!%tj)U*8 zKZgyL{_|c)=Vh;`BSv*VFIK1bOJCn#XgV<#ZM!=4r^cNAnZi>`5n6 zEI+O~rKx%CsS(9eQp@d^f0Qr_?_S<};RM7iR6q`>!d>8v#EetpF)I+6W}MojSbmW= zlIv39iB+#GOqfOEmiLbM8J-)&Sl`&&;Z4FHcGIN^^9c1-@htC!50av^7)N}`@rVQkq>i0 zZ~a#Ep_+XNJnS!go#~Vf$vW`Nr;I7plIvsYRQT*}GJV{~ZX3Do&`+n2PVPJBHRIfT z-mDj&7xBu-p}vVe&v{P7=^|zs7$9RfmVF%4sC!QDv=P6kgqFV_iZ8d-*mAqPX*uUh ztgi~DE2GPaZZEerTC*C1ekWe7HnE)Lqq^jB8}gS<&%t-Eo}N`nE*nYDkCt)I<-)ZEc4mchR7xxLkfeqbHZf`1ZS=uuX3KKoZ*e2=jb5npiq zxvkbs@bgi@b2VGFDtu;JtOgDF|5~gj`o3XgFx^Gpx6pdjNbKr?oTqC%+v$~PTLtFo zlpBSvAYQ;&-@wBzcFr^A;TzwwGrHQ98&|=j2Qzi9?_T-i=M^rG{=7h-k9D6{I#4vzcV+u z`{B0>+mjpL<}a+9UdTQnoO4)Lo6!Lhu3^wdBwo$*}BcG93a#fZ;L85@b7 zrMy!N$k2OfA4B$Izdt(r*tDq?!GDeyGzztD1BSPRPURT zo@{m1i5QZLWW6uRdV%)^jHHJ_b50WU4(01*-H4xjOhG=N4ofB8bWr7C{+%)Z5Z~r{ z=1lnvY-qEkzGk2$V%?m%37wSh|4FhuY-q@x1V5%qSAAvlzp4uVE#NQ|aN85o&^Q0d zbtd6^hPxbmHO^F=cnaiw{Bn};39D{6mgcs~}%AI*9CI@knobO%U zt)Dx-fWWgq*UF4e^<&u!_w#m*Xbjzp5oIywD?$EL%mvQs9OAQ-)B=`o;X4ey2597* z7ZHoHobyM(UlFoqKp98-BgU9nB!42uQ5DX2NX86#wDBZ^zW~`(U}n+18VL(*cO}{- zFtd>>?I}XGg8}muGd|@-3+Bp=h&gpmR9;a*Z_ts{4kKm#}jTbDiQ0Mnqo|S zz0L@LzNyoV=_e01;OpoMPcf!6)EFr5LmbhTI>xa>nGa5&GKeEWY!J#_Qe%YFnT7_O zP5m@Oq2H%`;|e3BoMvFn)5T%KqiP1$-6*?^>KSZI8F_`F(Eqpf7ym_1q~8%gRCBqp zunsvrL>#Ej{Bwu>G~3p&7gyN8iGzFx{$R!kYBMhU`V|?2@0EBrb4Jh{ZS3SVRXA@| z1J5t}C#&$yUv7`ofQLHR@akno1#D};6e5{j}Ng3)-dFS4+=AbO?|P){?5|tsTDK^oiWn)b?`T7Y8KWhpcsmw%5Ku z-|yUGRplD|`$Z0ePubra{{72y{^Qje{QH;Z{Kqx=uFLNS+24DKT~FWL{@#YfB84m; zk}@9XgID?<;tU1p{P-p9h0gBRSrMxX9X0Uy+a+!j-*sOTx5>wM-7V?k^k7b#2d{yAEB-r){sZk-sZWSMA4K0r z%FpHW`7Qdd{cB=PZK&*@PD-q)3!YBr`~ny!3;P{*LB@4oAoYU@kI&^-Lg&eI3Hw5d zxHObW5}o%{C-Rt1GItDO(q@oMq^jXG_<|WD+HA*n=@<+sD&M7dNq?D`QJ}OQ0#-l9 z5!7C=kv}9E>$InwV`UPj3mn3MoZFzwUhT@=;OK};q>dQ;&U$^93BI6!eO-ZJ1b?ay z_SHmO7-U889Z#Pl_9OI1jt{`dKDx%7?fx|9lZfwh{HA~b1l%9i z$LY5j3(GbcFOdAdX~=EHA>!u(k{^0&pPe~Z-);90542wTVB>ehxo@Zc)_ZoF=eqgi zDUwf~LVWU+&c!bUgzq%Ya)BoJh{k`?{h$kfy3pBP-yW?2`VhuMIgfpZ%iu#*)!^E1 zJ}u$#y3d8yqAD`y7VvN85IhWCaTurdOYf$3 z(Em4RPwjV=ncb%h#}S2g z22P_&pWz3o#@g6-`uQ)j%6j+=TsTES5(A7LPx1iWqh|{;*~_ZOL{}8Qro9K zKx3*iJc^p*Ef7zb9J0quk{nmmRLC*aK4p;LEr#qS-eM2)7OIS61MY7ye3b>;NEgjX zmjG};kH5q>gKvT}7sbj=<}Nuu?s@5wemY+)1Zr~ zli$HxK%?}$ySr|hgRBi^H>q5v@&k%#Oq#v*OA zz4|Oe++)prk1-EAnD*?(7W%!7`0X}{(J($esfp?;ZRusK2DP~Yb1(xj@tTP1nK6QO zROVj~o0;j6Haj-5Kl`~%qjnUDiv_!0mnvdqtF?uUuQrqR7sfxcwAp}81@c$?w9|~J zE^wg-(cQ6RMAtEXN%ej1z3qF&IZlQ_qxs=!lsw-Yu=t346xQo|o zJ5A_o7+(yzNucYX^HNK6qDDpT+79@Pu+J>(0Ej=_MeUpkJ2l&MV@6Qj!9H+sV@a~^rQ5Sbwz(@?R&i%^-0^wd+N4qcGMu+%by>Gd`@z;-246H`6@{y zjyYq0qH@3cfzUm`H}bQRU>eUu&aQkskU2>IBfoE@tmi}K_vwC+-`{6`A6Qr7yWQuE zntjgbfj(#S?LKF8&%ZdMZyYu`wrVszGg{W+mtzGljWJ@( zu>XcN;HP%y>_%0)gR2vF|u7u_%>nh4VALp zMgNqtoxBTJwhNE39RK;a3cXONuv;oiIR<+q^}(lWIXSN=1v#(PLLLBr(}w>n=XrON zocA`#dAm*ES>)xsw@v8Ua&n%;z}fyqcI3RJGLGAk^OkZPcV5n0 zYU}d5kn@((x^*2#&YQ$?9(d$wjAvBFxf`JOh3`W9zrba5Y=5B14`jrdctge@!QT%4 zcb~{uBu9Q69qGq*a-7>4SH^5d2khwdpZf&mBj%jIEY?NW5xuGo1*v=oW0+#!*Xb+m zZ>&7XXW#Ce167LZw;_67MMQ61f~z;_7lxQyR4HZ+T24l`_&!q z$(UYYyL98QA|FoS@6s8kU*MgQ6X%QV?;Rd1e`C28d{v^8V@1V&7diR-O`Y&DW}7g_ zLN(2{ij_$cZ+WpTeb1`g|9vj^9%RmIb?AVv!(PteGk<`X23l+ILxb+jIC4nUQ|IqC z3xpk@>WI`+qK;zu?!*?dzajPWb*U!^aK8I4`{o9LuS9F(^Gh9>ULE8(po0>ly-XF@ z#($NuUJg(GOg2v&v9|DK!`xwxwG`(&W-PleLqbo>ScH14A}I4+qF>X(B8Dj$i`$sP z-B%e*AI@buFfM%t{EO5DtS3K>`OzIBw*+#wYcmbpEr@6GMHlq;WB;%=tL>^xX0+wRK*j_!MoI(S!wu5Uuaf_R>^xiK*^+!C za>1op?>7;+vwT;5CUqz7avGf_CoZoDdk}Nd6tPOehVL-PCBn`ZB0 z!e4`ULCE$K>G_ay&im+3EsY;MR&|QzhIr|EmXXE_j7J@Mw+`fV@>ClF7rH04ljHtE zsb&>^1KaCpO|=Hbu1=Edq|x(3h=+sC47mewepSTQA`TlE&cIZry3RO|&D4TkQhzW% ztlyVs`YGRbb8J(;^tH4{*PXw|OK%)G{RkmKhC zqiu|9H=NdH0Idzlo%0@3R@%c~L(ZGUcJa)my~S(h8n`<{pc6%HhcM@e)n*?t`n`DE zT((8{BXcT(bgrh+^Rr(S*bIolfzH?~V^KkGK9uwodjgo4uYNC+qj^uAw%dH_d?CBx z?!T7gu4|>-g}WaZa|b2Hg7dofr0R`K<6!6Wue6aj*h~Efeer9HkI}0+cZ#Er3(_6v z*Jj)MYX_uHqH|PE&tok-+GQl4wAd4991GT@Gk?D!uP>Ut2l#}@cL(|DMl+PSmi;3~ zC#mi=IE(k^=o;+tb4Dz)3tVzJVy}rF68*l?0xuGb{0AKhooyfSf(?v~+r^)+k+xE% zgVdfUI?F;njI=8TxJ<_UvTe4R&KmB(*fe8xWC`ovf-K|hVHpp1RDs@RII#=`dUr3{ zxmn(es4s&!$PvOvGMMbBP~wR)jFDreFB37-<^Mlu^W@{S>ERgX8+d%dIS_%{80!MCmHBTK_)5TAcc@9+gqCYRWuTEyVr&v)91>~p&$ zm)FOMn}Z$Go9r}7IgWb?$IJI;-|Z!~6VG2B>tK8vJPZ8}a#({$0!}RRM%p_je7k__ zRfqU*Y8QPgP}_Q;OGW(W`)5*LPG8D$U8SopxIdqZ?_#_t=zWXgorWsg2VdLI)tBO2 zUqoE)*-l^RUV&Z-edtl&HlbfZ9Qrq0{XkwUltnq@920$R;XdzV48R3!c@KYW2Ec{-fQ}aew_Fy+CZ-RF8ivFgzkT&O(uRKJeaw#}@Z9dP+YwmszbM<=|^;<{3X)j-!&S0+3 zq5V6Fp8w}HBEQMHaXHzS@BMc}mXkY%W$C9`mYHBSoh*DdApbz`{29j}i+ymT+y~A% zNb1{Z9j=31GOyB=Q_RUv2HdCpC7$$jlDn&E4bZ;ll|Uw`?KYix^$u<`5O=_NEuu!5 zUp|BKH*E=I9Ng7vS4^VD;uBA0R`*LAVE{PgG_?n_V=xn)8Eyj9(Psw%gE3I>0?XZP zEL%A^ZJ;}#i{d;B9Jq+8Fm0bN^%jtoP9vH-=;WB?SMCNcUmUwY>~q9ZY^J-Zs$b0d z6P^8!T{)SM2gxICp964Mk^zZt z3H|XcavuOE4}SFECqSo1IQ^tE&UlQmF3!_Z5;4lstS9ZV>2vzq^t?aTYQsMxMl`-q z@*$_o=V|@m8(S5k@>ft<=%4+xo}ox9_XqXulX_RwH=fq$P53m)^=QC2W!_Wp;YoFe z@RKB7g81I`V^xt)7i<3!{28MW;8L>tQOAC9!rd0c0| zf0@m>q5mQA7pHA6-I&jBXXJPmRbpXWaakr)F8yi3mkIn}RrcAz!o+{yaFx5jRSx?H zpOeEjnd^pcVqa;-`_q6go#NQsbwge--TC!y?jIw*JZ8Buq6hT@JrTb-dBK2}3E2&K zi{PsSze4EELsb9553@PF68iDMu;cU9&>wv!Y3*L(sms>C=jct%?SWPsveX#jw{O0s z)dEfy>hMQe*atr7l%+kfCD6*c9)BceJG}JvK$qP?^S%9c)_3!7qpPbot{bw0=YZ#B z@CzoeA)Pt+ZhtXG%t1(w*NyKuczx!uu7uLa!2-Q6eyd&&+&7vt=#k~w0M0t}AC6zr zWlTqRnz|ZFKg0B`nen;&`V}obAh&v%YA|MjxbHE;`{*^C+mcPaWlRb5y;65niJQhZ}e20(+ zo!@be{Nb4#)1X8}8ymL=GDc(%%bh_guj`?7&p?0r8D02g2Z$efhxQ& zIkVP*mq>LQA>Q-*#W@?c*<4GX*A3rnR?GE=PZluAVuz0knKae$Al=1}V~;pxfcK7j zAQD|@*P%U~cs<-bu>*Yf6zIrXeLLsOJfGWMXb0k*#z?+v-?oPgp|u#CFw2Br*Sww) zi#Z2YR=KVWHi1uX6ZgV}YM|EO8F_#x=UdyYu z7~#k+)~O*b2)a>s8?cAJE!#NAc`Q2Y$R#w-^gPxS{ztG~`Xd5^0+^q`1fBm@HnWfO zyNde@7^CGhUnAsPmB%|Ce2M1D-PY@{BgnQsxHwp*q!MM+P8swqkpF_zE_B{#8|@ZK ztWj=1CEA6q8~X1byp_$k=OY3?e&Y3?qc+Ys&C2}q5|L{%C}m#wD*IENJO-34(8c*< zTmxFaS*Ka-`~Q3Di@VRz7cP)}et`aq5RK8#75aJZpEEyr*F_(p7mg79xm@;f0nO80 zR6p{+^i#IezE>TrV!pe)^qphp;iS!S8-plb`XR`jT&8pVGXU1$T)y6j48nw-;Q`%_%B8N(gU8{-T>zmrFG0`@w zA=P4!m1UdM7P~pRUvpyIRXMQQvG|Q54K~)XIR@&9tEaKx^EPv_=8#ulG)Ppv7 zl!oC#?is1H5Kk9BR7-qu-5G7RenA_sotWkuBScL0MJxx3b%*`^bGo-NXPCQ_<-8pV zwArB3HTo=T47G`Qt5s%Mhem)OpJmm@sUNXfJa4)tejgp4WdV<;f#xG3%VORpsp2!{ zZL%yIjn1-q;w?5lW6todTqfRYHj4ML9`TMj!#m~-@9StzjoZ7~E{M1r*e-AB-)8+n z+K=fRJ$@+AZO^#W&K$bE%|?7O{ztjbuOM11bM8QAJa%X4#(Phx-U!@EkiHQRSsR z^ryD_Yl+ho?Ijy^dSspNGu}MinYbh0mvmq4c#!1B#~~BH_NbX**$OnDsG zAiuXS(q{BTX4%i_Z<)9|ac{D&Sx@)^krpGR&qD6*^ad((fY$64dIcnpo~F-EAD|N< zI>){bp!-iB5_1)5>Ui))Iaf|UN6CJ&KXgjqzlUNp=V70PKEGnjvb^C|V+)WZyS>)>rIekyPWg^EV`iOj&u$_8R312ETi*b#vq4TgqVv}xw901I& z*5b4gKfr$a5t8{M@ecNFXw(+lhe$pEegNlM*X}gxksp<4c`}6@I7@8Y%{u+Ij()ST zo{`0NQKZ{A3>_Ukt0!q4lkgdyOguuX1>7b0VgY;A6HTm-%r&RY`;%om*?`(^p@xz~RMzq78L%-h}6?{RA z-dph-y|&SO&eadF5Bi_A-4%1x0~OSM*`Kw|6`!h`E8xrhXMJ}C@j_*PCSG4tR@mRC zHPPcM?4A)zb9enMUJ+OQ2b$x8HN?ZGXugv3jiAwOm#k?uLbOIb$@v!S_ahPKjr_UF zV&X?yj2>Ed%maA2F`$*i1MEtP`53DrzwjP=i~%gA7QA7 zcN)k$=v7Wh5BvD}gZ-&YLkjz_%SP@`%-d+14`U*2N z(*Z6Bh;-1K*M!n_3YV6JHSsrIr@bS_DEy z!gGSmCpML6Qjw%d3ws4kni}bNuw2q4L*}*qt;}l}@{0DH_Tm3GhWa^{+AfMO@2w#^ z0lYn&i9(q(8FLD~n8C8-xU>?#KQJ=h5on+n{`aZ|$rSgRFDc5k7&q*!LuhR#QJr-c z2;1r@^1FNg?WD0|Z@#ciVBWw_2H&6G_SL-#KblNb@TG}M^StzFQchUM_uvw~2hXRo zyutB}k~w;@x3Q10r?G#%gNX*HJ8g|*NS{wUKPmPW-AzT*N9>u9 zGXMRcv`;U94=3&GG4Lxk=882lV!c>T~GAEyRI``#}r-?4&?Dr7whG%j9QN}s{z;Z(wFO9L9zHdM|ZMU7gbT`R!&B9lK z<`jLeO?22Py_xIzl?AiP!a*@(};cOy*A!s{nvT0q=_%`?<$3=b$ zReyz^d(AGBxn;e|!1PtP6SUpT(_KM(`U6GIE%uEPF{i?YO>>I59I1BjJYo+2;MA+$ zPv>JP$>Wz2nkgYkTgtDcjo9?-Eyq8qfo0@W`hJdH#*P$s0`Wi;|TVr6gO{T9^ckMO8>GX68| z#V6?uKdI_1Pn7DfJ?YR1$Q3x-8hxHj;||fhYI;kW%GhD7oxVJu3nvbmAnGIDFj=Ix zB!hbUlV}%XD$?7HFzYA{)2}V3dA-|g@F>?3owLVa&+AKjeabB+l?jyU`)Ld>_)7Jy z0UzDTA-T8V({rUq(kEIgwE14D)kYgw(?dq9{Xx9dPQJ0(v}kRC_Xpkp_j&*LWP{f| zo+$GZeT7e`M=$cC|Aw)d?eGP(4-29#M!^)?qxzeivkklJpov5V-$3jxR=TB1z&l!bx!SX`(N1a?!^Wa71;M+c8lV4$9N>8#JRlqkK^ zcO{rG1F2i=g6T1{K)HqZnOUadZ#R9ZsKK%0dSVUmmXBn!>nBH7*t@^X9`+hDjS&40 zAJ+@NEAEdKUy6L+O_vHiRA|k7gYg2O6QXsiBzlFrM3ugfeeaX^c4jl}RQGAJzO!g9 z;gd9yd27QADL*#vy(D-Y)qUMqx}y;%w_COayMxotB*fG~mxDMpV6xI{8`WKL6gWl` z(?`C{R^3mZ>tq~Tp}>qw7us32Z=8Ho&`Ceh$x~c(FqjhjBrt(M3#Wf6?kYdcea)A^ zdtPC0dQHTWI{s(Se}3{_&PL?(DMncUu`VfL&u9nsER~&L3!Vq`yxr({@TZdR0gXm( z=|wabxqe8#7WWJKaV_;j(H^ip!<2MzRG9sNfVY0kUUJ|p6ru`g(xgEyQK1dTL4 z8(cu|cXHj(`R>!$S7?=&_RvDwEAKyOW;iDt(QlL?`uk*p<^y~Kuy{aAJbH_lJ_lCQ z@9!aY1$`kJkKFQy*gx_Xb1i-TfIc^fvuq+Z2X}a*ENkhz1E_~+W&pY6lT_Egv(KE^ z@2j?{+xq8iQ(s4q{o!lJ>aj!rmwN1wOOK8G9IwA8_C~)HV{tw1_TPq1!-w{CkxRW% zTgZ4lzSvYFuhW=HZC{tJZ#rO~%I(9qyVI!QoUmdX7=u@tMC+{#?HRGiE_La$FTF+V zUx!Dn%-Igc!}h=IDH+#_`)1vUMR|W0soSlQxL3||7#HX_aARNxT_ndx=lQ{Xtb5M4 z4?FUyvi;rX7v=cn{ZjXQ)S?ZhF zPe284Ci*&B#ORraPZoYAud=>5-_IWE=U;9X{d|)CgWOkHQ^fk_0;z8VJD5<31}IC2YKoeN}O_bN<2XG5@m_0q~~nK7rDUi8+%49&~QO406i}J5k^iF zcsQp@9}3L>a1OM$>p~npuwA#QYyX}%ztFo!Zs*bc+{-&56zM#vljkMS! z@91JZDtstn%1Rq`;Q9OI^S}fjNp+NS>`;vN!$|oo+HG(>bKly$O&HI>zwWkkg&nj~ zZMLelX4;?BCZ5;C^WlOnyZ(>i(G73queE!r1HTseDIN8{}84_p`#D>acZ z(UIfjZvEqfE&42@N9H@b6c|n|{`4Ev&ajyc>EdBac%R<_K3LslC+~jKRP|l#5ASW7 zZ7Av#%hOb76cS%e{H}q0dk*$IY%db)V;<%$8L?{F&-Eq~I^Y6oza)-$usyu5%H&uv zc8u2>pKJY1;wRyLj69lV-`v&7W*fe_^AhuoLiIYMr|DI*uxY-L9QGR9Y6l_)QOdv% zV6IBhe}P5pmpDcohpD_R+n#TD)LD$(o~7~!B#w|%N8lS7j%{_m&!sXCpYLaU&tgdf z;D=qR?Xm~b{3zjDtuopNm?Ll4Z}_#jh9^GP@I{-AUV7GhVp|%yTc=)VOPw=~NttPr zTwFX)iP1Ww7*`}Ycm-hf*!T|0D5;c>3rV zt6)lt;a8u^`K*`fJ8U(wgYNd*tTM!I>RuzNt+at-G*I72^nI48Fs{`jTJ7m;gugfZx^Dd6_*) zt^OkRwSI1yn8SBR3ZHMs&$>(cdp~_;-rsxANSp5=jp${Iv{QK`&MRpDKV_Z2p*p{S z?PWLojaJ%=+t?p&~K#1#f=+L%2J@ z?|edib#QO|y#Ets^A?f6kp112Nx)24Q`q#vDu1-?NqUoj=PaLP7M4x)J|4`2pvOf}&u?l(z z{J)&`BL2tu81QW1u;WYG_xXopKl(nOa6O;hkbl0?bq1Em`&S_z3ugd$#1FsNYClHL zKAsfk0PA|=x%qPd{85|(!II5R3GD&|0N%T z5vM*oerLfxerFd*zq9(%ulk*-N(V5;(!_JMxeEX6EOD z@aLoc+(CU|tR4EU4|x7yNaXG{S(mIen@8$4b3F0Rm%r*u=6tUAgc#S`@z1MI=Kb^F zPvnm`bNp;M%@cS6V2a)IGJMPyal7Ds5EtfEgXy@Oo1wf$lhU<}8S)mef7r(iWs9Yc zS(_|N{Bu>0EK?wT%!;J{*u5yDah{K=l)9M9Y)&m^pC*iPH1xXRR*o_GJbWAbv|^1g zKmUbi!@^(eF@2F;Sl73)Ejj#HFl^@3stj6UBHYR?oA6N9 zEir(v?$`FR-LQoAHSt*Uq7&&nMQHpZ7Tbee^79XG%;wflk^9N*3r6?GsDQrL9-x<5 z8ghk8zc9$qW2Fp@J2OaScIoL}_#14QSo8w5^+GzEeHG(>zmHEB#-5VnF2(taby&y| z5sGx=a2$lcw6N1cM+V;s-|N}T9^eHd-ve^uQU8d)9tFKB@->Z-V|In_U8~}9G!ipi5|Yhyufb7y<=Z&p!Yv&FWE;LUNW72cvZnWJNu+h(klXDe&3V6w~=0?FD;7Y%|+2 zpNVg_*EempF;D+DwwL=xWHQra9vsG=*5kb%i7(G_e5Tl6`Tkvpyu4+w4fgFrIh}7G z^`o3)wy$RlG+_7={UADao$qpvN7>1K1LJ_#J8Y+^LchYk4v94G0rnMA;>M5F?7{7H zA1mrA3$YKxH+VwSZpvk^`7ZUHenalL!y8h&ZI4<@Whb-$^fN4Hj$=$ykH99Z3Z-Zs zn=p@C?Vfnb4yJb6>y@3H{~$^HKvOh(@bf9#O!Td?34R|7g$+HrfS&ucb!7TxI&&mb zQXS7zn}t&n$kBM%Jr6IuNbB8%_0H4(0;&5PoyRx<4)$U6{de?!Xj0a}%qXs;wHR|@ zk+5e-y9xA`@cV$i&}}POx;2}@xqps$Fkthq240LxW709EQkH+&PfVe4dA6B|0jlJ? z1obXtpA;X>HRkw8NQ`Y7;;^X?)nBs@GpG;Wre}(1UH4KOzLB^uM4h;giirO1r8)K1 z0xxF~&*N$-BRTXI^uH%eJVIqY#;?c~<5%E{@ta>Mbgy2<+iA7jv3;Mr>x_yz2XdW@ zxXv-IIxln8`BPcvr5u}WQdc!#dB)v9Z1 zwd!e%wW$_cPl?|f)E2v3mTA&jIQIf@Wg#PVH8nHFY)?wO?^ndTQrb-YTjbyp7W-u! zfD&o3KbP|d*~j_ZFr<1Tk!u(oa(Fr%~wUGxc`xJqFiELzPp*ulKv#in5f5dZ=y_X3YU4OC(5*F znCU3+Z`j|H<6?l-fp^Hl)UT!%+aGPQAF3B|QNX1Cv&{dB{8NA39LVY5;KO{xwI7pF z=qx(z=0W-WbC#>`XE=Rt>aq_G5`4fArn$mjnfOV8@gemZfk=y5-ZUHfytHRI(U9qh zv>Feyp9hU4T?rj&EMczN%sPhm6dBW3pmZK`@M@H}7>{46uB+u zLAGBV#5|*F`0P;1X9pD@{pRC62+W%DXqyH69uZ5}Vk38)Lg%|OJkLIr`T$IyO0CVR z4!3cckkWbxm`7vjKg3FwP+xbu^vF)EG359WpJa17ixa8LXC%k7-h%#n?+Fx0e-k>cf+Opiv47)Pjd3m$Z+0bGI`^6RKIia2@lLko(5!@qkBv!57jy1F>dcBn$s+ zU>ilG92jWoG?=f^-?9sJANU2fLwY#A0dnC>)Q6WiHi+X*7%!K2Jt@~g-_RiC2IwB) zXSP;-%Pgr4rq__%e76d_=s3hMmSJx_rR~YlxphNc;Lt~_r(x^PG(vvZaX=eV3YL{A9*5U>cw;R(%yITc3I!~|L^Rw z4-G%oF1x|i&bD`twaflHJtO=-`ay?BvJrCZ)Lcb!(3SI3bywwIAJF&D==D!}`RRLz zUgfU;tLX(P5f&_*lK@7at$17oC12uNRF}o@wtrk3F5QLamPXrdg~?;mn-}xkSBDPjdDG-NBtzLY@mG#U3!Z4 z?W#>ehgsbx9(MDlXHw8zvJR7YQvYxB`b+!=J&Qlu%zGNTH`X!IoL@opJ=P@fK>SjN z=~IL0@2(bOsp0t)JW!9;ozr2Wtkh4Mjj}9q3T=>OoH*H_b{hOG(%)R2k8Mr4%J?{z zR+PDXbw0Kg{kvn6JGS+EMpA!S=p<=O1v0kv=1pR4o!^fa+geOzdLqKUGmbuEUmq{F zH6deLKi%~8bee}Y{d=8e;r~*n>BP3a^3K23Y4VvFajbmxM)`lHwdYslX>Iv&Xf5Oy z2dAis_78AuFMd29w^-3PZc&kOi>Wr`j^o(7IvIzk6VKb=ibHHliTJ`URlLK0o8uGV z^Wn1HY&lK%T0|yD3?kxNJuL5a+lzRN0u%Nc*BGyIjq&g0VvLu&VEp+O`|qrmn3(>U-q*=_!Cd|IH)3vxcjG*UxNE9a zA?uOcXoYxgNXCPlN8_$j#cvH9qbNROUhv+fi1!{h~ z_5|=ZZX0H2LeW-xE92RUGRUIWUA&Ccy+(L*G9H=Nm zp+hO;_$!hrrEeMdv09F=T14`1x509rvWL!n*!q$7@xlHa2R9zE5A%@Y6+V7J$)klN zFHtPZdIXNjGSCz7HEXp!?05TT#*UiAdlPZHf6_A<{D<=vA^ryE&4*m?z!B6or4g5g zKGWQc@+d#Y9e+NsWu2U7GFCACw|#k@#ZNrTcIcb07PNifyWg_Bl16xdCrLCNdX>@C zc3(acdd@2_2XUfB@uddxvuc{4U*M4*%jV<3HKN;Lr3^8K{Ml1f23<6N_Lh_}UN2(s zLe$m`XbX8~Xy5sWA0+xYiuU&5bqQ)Gv5fgurD>lyN2>5;4IIs8g8Fv$g*u7%^itbH z^O@3TRWR;vY?i%N+b8F)D>rvMZ;>_wGPkZM%NiLoJkN8R+3c&%c;J_a`TMn;KimQR z5()Di>2EXeU0T=Kf=6_COz2AQch7gc!+Mg-U&k^m=G0GgB0sNFi~)k5XZ{@gP%q>A zB8SQ>xu=C6A@Yf~%DUgBx>dEq`b_W<>35{>6ygcL^Cw!HXq^|^*t1*doOzOGS-`zMH#y%5!nbP8EF+Zcu!mvoQ)qj+ z!T#gPeK!2sFA~03kc*1@)BBC|UQF-b-1H+4(-RG)vEl=qz18w-#1)PiFw^WwPsmuBMuj#w-Z_2Oi zQ~rL=_q&htd@iBSJDg{=xt4b@Jxk^Mj5{{YjMM+G(Eqh^Z()zW_O_T08vpuQRnRNm zS421N1on@lEqBPzo={o(HaS=4>O>od$^OaQAd{($wVY>b1!AFTEhm9)lzC!B-T^e1 z(@Iy^g-&j?VGDYZ%K}(D$#<~FCrLbn35aK5dhX0S`dcmidvWep$bK)Tegj__`r~23 zW=ZnVEb9m7A^sx2*D@S`A@P z4Cr_BJ3=?|)9kJo6$b73R26BTiG9df6gD>!Ni4MI+Z`IoN-nb*>j|A1$NdY z;{~lnx#gq3zAyMSF9~08=#atRJQd&1Si41RyUn)&y8SEJ#+A}u=jcBiUw7z+!+AS> z)n}zHzjA2{Kb3tp1r8=`;Q?t2r#UsljxC(#Yy3dLpTY;q-4DdK-YolpoEBj^+aJ{Z zXaDjr$%_4Hte_JYQQdC+joSwwYrAf*^us5aV!8CgciM;T?PA&fy`%Gf`0J@J58)1v zci3A-3%gN)#Gm2*APyJzPF(aU^P-sd-$^@A-37 zsuOF5|4))~fw1G`ecH>l)&TME0k>@j?S@_c9Z>X)EHsFk*bd>-Vu%!3^JN*-iq zzMy9)-<-`jpTU!PQwb9}DaxfT4Skyk`!aBSss53i-*15dyDWHw(7>6D!L;&+Ys>^D6u7R$;C1?1jI2{-C4NxZsD+A1sJ9 zn~;_8Og|m?i_^`4vRyy>T7kd5-AL*$3f;v20Qb~LJD(jNSm?1a-h~5J(VXb)2kVR- zWrE5~>zJ~CNSX^j##~;)Ws7M}N}{4{kJPO>Z8S;z&&Q&1+k0X&$I)>c*}&yUc}z&;*=UPh5~M9=P%<$($D8Odi(xu7iPmF2d}a{ZB?+*Qsm%lTxvmww%M zzV4v;ddXCCInIr=^BMbT>hFrvrK=j!lW7c$HA-Wv2@@}t1UBI^yG9phpYhR^gb(_4 zI`fZ*hnJ+IH6F({mi7;8F_J`Ef#XrkxP}Wk=E9d`n#r`}R65(>IjEnjPSyR^CdLGd z_YOZFJVhDbC5+tK1 z*l3WfBiCadFy~dFk3^XWbalo88|#a*5h{DVEc+{zmAXsebJ%H5a_=8{zCo6~2W4rz z_}|YtZ{qwM%BoZrXYDds_DnX7SS)w-p;DGTTb8}f z)d!*}=}K20s%2SCmL1!t57ip-%8Nc|vTTJcd$FqzMJn=B`2x z0zRMJHvC2veU2TGw(v`ckGLGXw%X0lV($mlDaNngIhwgx%H>l#=*-R(_*Gv$vrE2m zX5p_lh|Vm|E6y#>Db6gPT{;suyYM5c*7N7IJkj@@F3X+MAfMAEUpc4F8LfBDD6m$B zDQU!yV=Oi5Lc1WoytlEbn{gO$W|y44-1a6CWlAF9gAS`G-fS=~N&<1n3xQKrwK_p( zm3ZFb#B@5VH>TgiSw;U0qTh6G{8aYEHFQrVBGx^r>_LaN*2(on{vqHfsZFoiYd5}X zmeRYPT57|83V2^XmuuqC+FJSC0N`rLa=E3esh=KA@z`qQzm0*m~W#yDBQFHd5FM+`@p*#p?)AH@G&|&@K*+Y8Fg?U zV=u;Ntg#N;Gdhvh*9ffS_h4%t{ucMOH1ZO!feO4Z8r#}&FPY%eAB%U{y^n}-?%+AO zA^nD&YgL_X&5=5;SLwgU)GmHDki$^D(@3hX@VtT#+av3FUh-Pc%6h_7&rfANJ+dB+ z<{SC;L_NeCsW0-roR(V5`>~w%<3?HEZ)w~!)Wvp6^D}1hsV@f8nT=N>Uz5djfYlh^{G_f?;a60rNuITL80`A#JxY^OVPhL^{-ftuaL2u z6X|cu|K`$vYrSuo7pQO9Kj_V7I2S-Xk6#UpS@-<-;r}nk@C)hxKLeO?`cm7;IS744 zZa)J9Px|BEMdepZf8*0#d4#~1c^OYn$eP{=zPPTmF2%pb2LewaVKYCq3i59{d`zk%xmf95rdMxjFWX;ggZl7 zjJ(NKwc247{Ox^?VHhv+*Rbw9B%isE)(V&jm&<2?x2r%8s&S4RE{i)4YYJSSk&lRY z2%49wY0&c#oj(ibM9y6~$6JWG;~YPyr#L3C1wpjzHo%6qh9Mr`B zt7@AibkB+OIr4YdksKaX(PuHfAN|JpT;Y4U|F7?7)~Oy^&GH#S4#VlxXK@~9S`Q!1VZp9<%N6j=ch^-$b$#-%sB5pR>rJYw zIwtbu)XKFFy4K#7<$+!4uG<;cqcpCC@-BxQR~KJ^oQ)>(?(!W@v?IhkbD~U*!uOtJ zV|k}KIh`I~AIQ|wJqbTFwu{5(Pbp`amDcbu@;$>JtjLu+s#@lv0{!KDRO5kjOY0K3 z-T0L8(gkjQK)K%hgmGZz+a3L^3@}AFClD}LVhQ@KiIn5S)ftR~}yW!ks zYl&-ZfISa82-c=1v5@45j$Gf=$SzxrF0ikrKHgigjD6^8wZ)7-@1=Dl{&i?8{qDPL zL9eqmG!KX2p9Gsxp=)gh<<{mpnRj@C$mIxZ@Aw$b^IoLf#5v$Fhqc;lUPrdUs*CL9 z@Li=l-m7^G=&7A`7yT&*W@vE@pXKqK@5-qIzH#Ne#`GVZ5BK_pAV{_fb?a!a_ z8c%|L`El$~v3^VC`pwO+Uwn3Mj;`hPyNP{=#QNPY*Khvu^d434C4B4oEc;cw@9Cl#wH$g?gcD!C0>bJ(d2hV`LmJZ0w_D zp6+UwUrey{t9~(OJe0}d&R@uSu1@w*59)0>eE4Cm-#0*KB7Z;I_4{-5J7PJ)dP{nm z-fD+s`=|Z~znlVB`-5Edsjl`*UB9mzmT$jA{tmqs{(EZJv3;n_=_&*Uij)7w`5b!T znUv!*4PA5?^9tHa^IQu|JDTISYBQPO;O<^JuU5~vl`LmtJREl!5pkD$9?WFa$O`s9 z{}%h!Zf2|n7GxAFfGWyMc3Y>|tDn8qSGI zce8q#)%~F0pWrj`U`Y5mjzr9v?8{J@>%|YBS6cf5*@sHDyK?+l`q2l)9dj~0=j0El zmhquy=$q|R(MQj2^9*&jJzrag}>D(8|e*IAP3$}rKWxob8F7YJB zVnV#=nfm4c?xi!8%@tu8^NqD}K4a``kEFhyFXPqjlyw0o9kP&9b~Lq(a(>AVp)72J zH&c1UsoX^Ge?oqDTJKt{`F8|{GyGVv#$$EihYkJOXz2^M=Mbq~otue05A5#s^O z=+jU54vwOJ!oRsmX|?{iRpfRY$@UjlJ3pj$qE}gqE^TFefP6a>dCx&7uul32pv|8= zm(3(OR&IgaPp(no4++j?OuW6vqt7ctAHx`*j6rMd2{0ev*Ovwgn_lqvo8|^?kaYcJ z`tM+g;1lX4uXx#ZVPBlQE6er-*lPaMoa~k{XWyd!%|TwsXqR0RTWUYm^p-iL1i2~~ zv2LNtrOO}W%2f$o)*J6M26C>-F3wendvqGr^X62;$tPBY{E%eK{NYpDTV{~;CQI!Q z?f0F7jo$ZZp1z4SA{mwY(gYc3HZb=NzxzMH3R~*P8l2xf6q{SI67@n>BKnH_jrW7U zxgvj-#z21!>?`E3(RSLCUMx)GoPb`;Pc@`Re-z|953vuUWn3y`W!8Bc$j_Td*Tffd z&Pmt{IX{QI7rTz;&kyn%R&%bWacP{-0>1B#J(rL_#<*gq5o>Kbt0d${Y(!F zrQC<}23vu1-a>TVg0xm$zZdfky@LHU=6=7N`<`dBnYY0&(*A#o-sk?0z(EgAE#^Gf zxNDNec9V1c(s>7OxHTp27t9UrBaZnZnV=l_8Tz-aN_xjVT21d7y=v%HORqY5>GZ0n z*GPH|TSa#&W9*GHPm(^a(5-<7M&c{BtMlUQ7rpRQ z*sg}T=5c&lS=;wirGg1w(qC3o#t53?-a>Ov|csw zxa|uKOaosUdr;N)aNG^}7ThoQ4k}0^H(6{5?NiQWOgx#^kPfOHoU0f(hwxK^{uBCy zMtL8@KUl=51UW_}C}UL4Jwsp-{Xo|5&}v1G*^RF6uuH0nhyxEwod@(?U;Hkc8N)cl zT|B3^)0~c#a_Lxkw-7&A_7{$25#L84mMtM@c(J@|UXl8dOcq#`z%vl{%&P5T{{ye; zyy$-W;(iIvTL>P0R&*B0&PKZ6R>U~ZvO>{2jH}-yIXND&K+{hywixH9i0!F+h__#2 zBVP6Vf55jQVKx_o9#3@LMT_Jane~-3QY+>B(-dW2jkbj60WlO|n*Udx5WX77>qU3> z<0Z;Z;0szhO)-2=v%h+tuXT?b`*=Q$J0 z`YgUg|LtPiodF-3!{AYfz8>zr&&;^(vDl*{_aAFx#aRzVI+>@ynP(n@#tr(Y&^T%m z$VY~KCin};TGcX+5$hb5{DyPJI$XR)CCOx?WBpiv4;cwG3OS`AD*-!a-BZZZy(H%+ zfn3>vHPB7nlny4pIS}XdRK&ZG{Dt`MVDcKP5%PKb{(qk{TUp3_8890k9h;ALnWW6O ze)p>27vAT1#}yo(i@OK5HQYHz-^p@}*GKHbbOZbvh5kR%W-Zz!2}=U)IXi-pQN-|G1+Ix z(CDl17g)jlMZb5vBm93hzLU>W{_CfN&(MZ<#Cl^t;P>lYbG{XGK(agLy~LHH+$VFC zV~xQpAXho!l#omNX4#j&$@%m5nZMslAF2nq-3jdX%=4F=Pdw9g$l*N?y8lJ*Krd#b ze<=6ue*yoqgYF;f$$N-i-rbN+>3+7`+yi<^vi+&u!F1H%e2nSo$kWcbOho>l%z`V^ z(4qEEO*f!hUi!f+#@084o%)r9(~ZX1BKtAg%hel_%`)YujwZ%0mATqP2f4(M9*y>O&aEI(u7A7mPTHezG5H zWgn8%hjftSogr@uJ4vLEon(!a&(@H9wkB^U`Nv9e4pvG%`wG^hiu~kz<+#SELXOGn zm4z;EAw6?}`lh|s`=+_x%w`<_2_<=~oy3xD%#v-iQoY~T4%kgDJIS5WPV$y4``@sW z$bPIx-aUDaa{Wjmc0=@IV3Ec8l^;rbfLm|vQEATAS2;%;`uDu7UsdN=x5@rYk>iYh zA74GrpARW8f~qR z{kYsI0~^qJ&mW9xr?EX6a&ng}^9`JRqPa~{H$J(KZhW3BcOI4Na+RAT%N5CTv6Vu$ zJ)L#hOLBQZ9U3{nWe*5(E@6Rf2-+TuwQ&65@2);p*9*J&_htLA6*ee~?0xTMWefv7 z7ZLW~mGU`f4@2)hS@uVX7-e*y9Zt~xMeNOVP1s5m_H7=ITzXaa$h!k)!o9x5w6536 z_CIFb^o^kD#j9QOFs+Zj$t5UHyae)-u3fvA)_0b5fw31fz#5=*9(r!=HgkZ|b_hOy zJymbQ7uCGn*v55i7`RQ?sFGcFoosgpw|i6i4fvNzd)~IsrL8NcTmJ#=rPrjrL(qYr z5p7%BZf4wjZ7ADD^WSfxIl0Ech~s!gx_9Z^SBJ-N?%EpZ>$&QKY^GX%z7L;eEGWwT zMdtTheMa@hB)!@UCU$oqm{PbA9f6DtCR ziFsaM;#HrY-k&HW`sLkiUZC!_kzbwZmdrDb9OKHc&c(Gv7vZb;fB}9p&b;nGnxhcy z8N^)&;X4luQd;MAdW%((Y+>H8I5FQSQ|4JdC6!L?I?8e1uuV25?zcV5=ccRUur-j( zt}e1)#`)0hw;v<=)pWm+7hO@bJ?zU@n41g?n1Wf&1Jn0?0Of<-=TMY z*yyrj)c#L7r+bH0;-c9YbG^}FpCrc&njFP`p*^P=v@WXPK^@;1=)E8}v0gdSap;xj zz>hYi?^K$~5Z5@3=qAaXhv9pp(zDM#Cw-j3XUUi}hyV5|D)d5C4!>3zW8VOAw&O(8 ziQd#xJv!C1;p6u+qo`l&RI!iYhx6jjqs$B6{MykB+QYdg7!rE!=u^5)soK!Pd?`_;<+?@{awF9CY&k%gMSF(a_C+%ehHgeypw&~{+m8O zM(5bM7fPhPdh-e~x39~40eo#xpUYUD!2S69m6;6a1@0x>4S4Qp`OHSh1$jMEvC|*H zf83v=;geZryCpq~%HIciF6q}#|8%TPzX9{CiE*K?u;-(%_sjMkk$rrK%E6{zB4tCr zmTyz=UZUNRG#9YZfetuhhMjh{tnWUq?}l_c)kk#JhOF`2mEsQ0)00H{zh(Jmw$ox< zL}T<Tvp-NW|fF1tk9mqULO>vk94f%&>mk+wx|Qni%m z0**28ghhN{GQQBhQ0B)hxHnPer+Y$Y+zfG6fguUmUz4&wXnOKK(0M)ZtdO@H3~3%u zQzBiEpg9GOhlpjWDw6BI?b)movs2}M?)n0pMd43XNN3U7ag_V^i&u|w4v8X}Ljq^< zr9N#s@g|dqPndEzA6L>K`G&g=e>K*my`P9H+0dGgHQ6A4d%86rYjXGDe5?t04DcEu zZGl}hTuCb_=n58c4yKSc*Z}UdgPDZ9LLv`pDf5}gp8;R8lTO*lI;~J@CdqO!KCg@= zMCE`9K7hu@7{bOm94o@M%F$((PvS2}4+qll2Z7EOy4iBNUpS7#WvgtUyBl#0{v#{i z`&adpfApX08Re=6dOhq(_(Q{94BaU7dv1MIg4PUpD$tSCFz)7JyD=(s!tA%0N|Zrg zC499ertj${o`++L4VIO%uYmskBprw*N~c8)A9Ovc)U~aqI|uw@f62FelFbUAF4|{G zqQedhQ_|1;TCDS7`0_?yWWVfEdIztucFK#)zd~N|Ltddi|7dxJeZYh-pYTNq(B8X( z#__g`Usd!rJ0f*JyQ$q8lFfsXZbCoi`GaVe_~iBOK9@v|^ft-kjtuAHrWASR{Swn2 z_Z{{x?r7|@u7HS5fevi*DMg&O60uEJXM`>S-z#V@r|AD`D(lpDi(>eS6{8Gww8%O( zP?@zu_Ly5w5jZsXZG@{H=)dzbSj5^D!(Y9D%628^*s3wdYD~%QUeV*O3d5c*q`-byXAme;nzYu4Xep{c^M1DE!i&x$f zx^mV5&|1WxPbPZwci2j(ZsgC>tAn{Sh&%Q6!{Yqh5;2}2-e5iU8lJ~q3+>A~|M`kZ z{+}-OeZQdh59gQ}wvRY=ZeU3hT^z~wk#5F*a@)Dp#7-M|T)&OEWVv*5`kO9XhOy91 z!-rS7o^{iKoNij!+s43md3!$g+&P!H!yl16%%{|UM~50(6UY?Gd4c}+u|49v!C&O5 z=$oc@dV%%RC}I&Orq!rXhWT}#y_%i{?R%GFPo<40n(!cJ*QD5N*0B`7XgWMbu}b`d zqwkyw*&(%1_@U8x9DV8Y2N#@nnh_;_^^e$8JBG&8(O90mS-TO!OH0d_LAe@(hhpiR}P?V%%vtU*d@@OCWa%e2D|{ z-l=eWiKV>k9i2#@{HWMl{iQE4<`DM|>rV9-ZQMPre;4x|bm`#uUO|2b#}AtN>3nwI zM=ReDzLCy=!nVy)11QA-A;SGT>}=?WbDskkKWEPT`LDHWSdz? z(ap|Nn>|>wFLJbZvMKQGIo_uj`Cx&qR2!aWr+mT==HdP(%qM7HBj+vV0KS7YL^u8- zF#$)%`=uRUP51|5eoGfLq~RY3pTIEcQkU8_+Wj<+`#Clp^EZm_3}6(@saR%vFI&*- z%;ib0xeTyvLCj^joXcQ%jP=((^9h<)8=KF0CB=N+f6RP-N6shlaqELTpZ9Z}hrePz-e1rC3 ze~+efhPf@0d8p8j%jokF$AUt3(ws{Gf%m z{Z-86Vd?)8l}sgK=N;4*aBUEd9+=SLdSlk7tFHia&~9OeeUQG}yM+yFrKG7V z%h~K@YHhImmtt2`7G+_uWOd^cB&KvK~EEx}IK~7e@MAhUC2Z*(a)%@n^mz+q#Q^dZGuA32T>>rZIT|KiE(y$=yzr0XI# z+BEiSPVlqr8%SsVdauBaEsP}AoJMVG?zjqh<{qZ8jFi7uNIqMftq!X{%|nyyGyEE% zFQ}1n!`Ln2cld0cr*F5R2L^9XG%5}Lewx;bx#Aq9)0I}fcjs&s&(Ilv9Ov~suaJ*^ zyhZTK4K5!5*svQN9VBvsNgnc3f$7KlXzyF1zMs%JW^6yKE77M`S@s}uq{wyk%5{D5 zy)0vy|BC(#%W*HFXO;o4iu&W`OTq6v-<#)4cM(17#{9eX`0cU};7ebndj3xTQ(5R| z82<{mxL7mvL11B78Tik8=s(b#i)Wck3xN4O`Gsdv)B5^thK1iI?AM^--ljZ13!W4- zS&i6Zq- ztDrn6;a&C_opBLS3Kc&BA!so^tDr27;HD;8-??#E-o~0DcivuI(c^PfGDiH*&^m7ctgvfKkd(hlis zA~0>n=p9zEtL zfi)Qnzs)f6Rpos*pJrdW4#e1`%jtfB&!#6@VEyukvuIz;VgF5DJ75|~dw=3rB5ze8 z`?=0$KUerB`4g=c&dRI51NQV%md`FDeWq|Uxt z&f@?{C!1okSk^lK56>U`{YF6#E{+*K*cBjeP1QtfFrNb|zi`x0V@6_@UGW0^OS@e6 z#4PsRe&O$e4}z{+mHV$k(th~guN(MP+W*%@naocW(Ec|~_)*;XcAoYFix7PeIkZ1U zv{4bUClja*&1DzM)BRcYX!-jH$#0@>5Byp5?P_{%lKlTsnk#3oKS=ACj4iTj!eSqe z!ybHb3G>Khf$fn_gvth*w-in83^SLP~-phGhu47#Q>s9IQhb#i$-+O@L z1Kh@VB7F~ZNQx+f`|FRi#`ntm>(CwjIOhcTVCd#}ZIDNG80{xxo>ggdun*UApU+rD z`~>2}D`oCxq7_5yz_ZZ$o?M;D?4^A-*66Szny`&<-U@nt%ci4jkA*%FxeV|;p4qJ} zvhloEYd3savq3c4E~y5VUpLqD9@WR#46>f5WIeAS?vd))o}6XDcR3V~8L(?=;L}s^ zZ(hMR0W~$ps-bs1(P7uq9;u~sfOgU5Cnsex8p)z)2XzPJIR)m?a#w#56ID&JE&m^F zF)pWj#6$OPQPUkp0o$9dPY0S3ry+m&_?M1Kol%Dkc?-Pz4BCT*O*4(laR%sfF|aN4 ztL+Oe&tyg?R@hBS_8>3|lczp^5V!)sEni=@&HP0odoX|;J$j;(MJ^Qe_(heo(1Jlp^4e-io&b9ao`!+fw zt1cDgzf0>BA-U)C{=!y;y;$uC(SCNQ-$nnTES`gsx? zOlx5KIo23D(kz`B*rBVb&GPe#a{r?r`2TP8f0+J%rp3%0daHEfYHfj#g>@?S zP0Ggyi$tDy+_B3@ZawTt{e{nn9&NCG8vXcSKaQK6h&*(Nx16VVXwQacT7K5Kw;R|8 zx)QeVPW<9L)YT;Owqh>-!8#4vCj*{8m{eXMT0PTp{s&DU-b!FK(D@H~k|y|AJ$b;c z*ALi3WDJI)+`#x>p>U!!Bz0&0(uKXA(wW9g+SC3i&AmaT(e$L+A&Z70VuyfzhkRk)u)wH?&c06SFo|DA-ZID6tr$K>LE1OSRfD)S z&=#CKPhGQ#GZE05%}{-d>8WWpfvq=OV(lp;M*%C($q|V7$aPL0XnEHXJuMp>UReQM zX+$q)KjUf27|Y4={4(t^@WQwow})GEzi$LRXL)M^=ZNzYe+%sCyH2tXH|;Im=%(SI z)vL9Ib{A|_pyLr?tMajaeSErIAnXopP$5j?XW$m1`AjyC8@avuujf@{`rF&hV3_N=)XED zrzHiy5K6t%3ws0S0-)b(==b))bB&O?5V)%5xr}ScyxB5UUr1|llL?-^mdYiEzr*-3 zI2WEsB3++?Z^mT!B^6Keue2}yt+2BzILEYa+gAOci%}Ng6${2Dp=x)-f zzt9JT^!Y|;O~UjIpJS}uwAVzwl94pOh)wA^e@d@*9> z@2BVQ=UgSDsZ0aW+A&lvLiZtJ?Z!mt4n>aGrWN-3o^9q>;^77;zdzKN=wN$|8mk~$ zUttFm6YN5Lf(`r6bmr}^XM2@K{rfMPXT-Xc$Z>ADMEIp3))wQ8!k>)po5>QFt3-Xb zcTx;KK;z8O)Q>TAb{nYuu`%>(h22PZV~KVj=Wni4;Ik9q9KScxn&9&!#=-lPeb+rQ z$A(6G65p$-of#T@y=EGdsr~-y4~#K1?$MH#5)WXHl``(UHv}!gebWgaw4MVz_jOc$ z?U22uCs}9JQGN4M)Mvfj=#N+>T7w#zfA~&}q&8>J-Hx%t_Y7lSa`CZa_pu&tAMac6 z@-yIvmTEVUOQ9|)e78W`=1@H$s@u=8LoF6!{Qq0~_#p0V%<&JXuUcx^SMKXe*;h~0 zgZujV?P5$3xxew>DtdMd$CJ&n%88EQEM7|VdY07tOqS~f{XW(O>w&eHL}S?Cx?i#0 z@MSx7cQ$jr#309+s-bai81{~dxyLyB6Hf=fJe=?O9?o2dnypZs*_^qsRQ@pd)& z+fdjhl(~jZ^@Y^94Lk(SQ3%~ks{O&x0;-4PUEmKh9nj`JSqhyKwWFOLN>>_!uNY11 z(x1)@_PNKL$-G+2Fxazc?diAvW{Uxy?HL+Zf8ss;^gC!v4bkGDvsdU${6X>{sPiDl zc8T%-X;(J$82+PvV*Ea}-2gVghGDOn9`sS0YiEdWFYoiLM)SIzo_&x0>zZk1wjw9{ zi_fI!9HgDR<|^hOyxlIp(35^bM~wfjUcc_MvU-^XY`VdbG1gBaA0NC~nSeQ*=ZS1* zKjQ#nEhcifuWo!-Z)!Wu%Vf5Hsd_VXRDAzJ28ONV#V@m&KXcx{ahwMXzF@!!;MjIx zd!SEI>eI{Ar&L3_K;Pf%r@aTe(O~^5#-YAhtm!q+Hs9){6p;BsWo8<0jE8}}>LX8F`HtRH~gisZ$?(3N4Ywp}dtcW*Yk4|l&uoyPw1 zz!pY6C#Kzy36Y1L^CKqA4jLcqb;GHxw`mU2jK#6tM%#N34@WfUT*+ggU7yls1tpgC zqlg(&Bi3u+!N6}QlHY*r8fxae9zH#0dWp{v@p`lEeU864=SiH*dOx2yw^eJs+e!9| zh&(sa#|yuC={M+Ng5iZCCt7%>5mH5-1-~A9Z*yfP1D}btdKY8;qTQsviTz;k4CoJ@ zQ6f}61)WqEogv7DE%d#GzPHf#7W*T|zSTuM$N~{}i}eQYIE`rVP@+RkM1vVa-&o3c z9Pmw06cKZ)F+WD~49QI|X2sm7e7{df*U_`#SfWLZB|3w#Rzqbh&k5q(B5+*o!kcSJNHW6T#btsPktjS$7+<}cZ}f@*?;89g}x9p z9Cps>ny}HVw+^swpoVeMh5U{EjNGvr-zjuo)7*~)jZ$SES=HeDl)s9Z8N^iM+=8#H zcGecMPm`m66@EIzZ+dFLCo06#!KVZKYic^@gAJvoaz5BH+Owy-u%4l(3F-Uo(=eZ< zG=I@4hKy6+H&PRr-HONyUObxfcE{~7&j-}3@_wP4el-|_j0$^h!kp7I+ei+3 zIhXIt)6{J2Wt{O{z3>C~3IC5OkN!5-kJvTD9|mNe0>9+J?%s4%-hJJVAjirsiF57L z3x0U-`NZ1-b5Ow@!u>bl$9yh$*EsR6@wo>0Y@N^SMCjS}Db%h{V2MD;>jU98Eab6V)T8c&GSYwvB#-z~D=k2bK)V zWCkdU4^2-Yrltb6#kMK;>wcBs7u_=8bPt?u4kez>X5XQp-Hh_;drE-~Jlp-|KM4deCRY zE)S|i9OeqUg5HrQz}-$4wWA-Wok5HPv4X}!Janqlo}_i!lbho9BqMG|>1;)#opz|{ zOv7uOYfMeW?Wy#Ce`B^;pbj=X>V2kHt0Nh30eobtLJ`C^A_w;bx+{Kc`65pmpAO1q zU?V<4?+8o4f6%|a*Fygn_Zsdq z>|xwzO^A6QTFA0C?_bj=ktf7GP$_rIhP3B^-y!C>pt7V_gPV& z`|Po8*<8FJexJWp*qGPwUDnNa*{AX@3moSzD{$_z_;KzsTBrBf-Yonzw*FH1X-syl z=bV4Bo-w(ejWj>Ceb%$lwVtzRJss@kOC)|Ocs{Hp?1NYLS=U=cPS@SQbU@m1Q!v3FXVTNq>+? z!h>8}|QnX3#s@+xMEtZEz2LKkt_UXT=>mpodqmzpIb^gSu?5x0>T@y}oLzgz-OD z*yZ6?3;heaaykJ2g)y^a4vTNn-bxLSKKCRKLEi)2g2>I?YWWS3pZhWg>nYXsh|Tkc|6sO*~f7(Qg6UGD6$VK$K(mDKj0ofE`yBN1Uoi; z{xjzyU18rtk50m=7RqDr_`Kor!*Fsq~CFkm87j7bG26W+J%oWYsNRn&VUPg6}jtJf4 z>8vZv&y9oihr5PkW}cg%oKxTuWBr4y6Bc7ctPJPA@|H2ym51Jk(mS5P{3FI=w48&3 zuxk<@AEx=lykS54BOSuW8+bxA_HW5~guLo+!n$5hJWZl>FJg%4S>OwW!vYV1`}&<{ z4hrIC35#!_G-L4W4N=@1WqSoGo=xegnYm3Dco z!$JNwHFWXx)RBtSf*au_y7#6Jd$6>cve{RI88AEm&0V%+==*6Uz@{VZ=kSdZT! zUje%t&w*x$d@LkCNx!qOw$euK>3Zr%548&(#p#}9XYRv^QW+$jGn*#4H5U{ zl-qyBu#E=2f}4rACi&An7ma=9LQ$5p>VvQx`s6%lS?_)0_9{ z>I$x8c^7T$eS+kiH6-g&Jz?r2_(~B2-odfOd><>~>|qYTb70(e$#LK4fqiR*y|;zx z0nR)9-=)p5o+}b_J>H|NPv}eRk+Bsv@-h29S-E(KM>#z8+4-sXbMsTx^zuJHKeZtx zUhi#~pNi1yVTmd6-}JoKSC+1zcGk(?26~izyBDvt>D;EFkM?ukwEJyOVxHAX@=Hj$ z(Jb z^TYfb(UbCp%k2+k95n7^#7TLDZ)eps4R_?g^nX!*J^r$EFKAF<8F0Icx5|ERpnkV5 zI=0_i`}F$>r{Bn@k~)6BZ+7+jG1+g%-lM*HXe}R9@@u)0+6*rG_iMT6Ys^*H)#iLx zn-#LnHdmX?)Mi)rzi;#BU!%>_Ty5UvYV)un+MMQU^LA=e`wwkS{u*r-xY`^i^DBOv zonSOQ6Kz(Q2*txWEsQj9J*7S=h!zIGDu2bkNEU<<6K7;`4RjmV858n zvPgg233N}7rh4Yd`21oeW+?S5iO#keikIXS6?seNQh#H{H5cacQWV$FxT`lU$k{s_ zp7U+aEtHS5ZFyDXTu>558GgG1eTMG@-95{3uIc7V>HsMJZ>-V!?)H6r3`(m9d z?GnVeHIaOo6u5&}yJEeo*V8oHYDZ2|<$AN^-<%7MlczpdU*^}&Itm|l;-$kP?@R)I zRCF#+WDM#X(u0t@PmTpVGWOO$TJOEymA3YEX7;23sd4+Sy>%go)Od!o~Qw!TDKfOTAEwHfX3}4Cn6Mh#M4`LIc<4`yc8S*N( z8MqJDrS@~~wQoq<8T4t7Q{QxI|CssEe1^0|BDbHHAh{59G;M?QCleC{1;ujXsC zcdC4Dl6)?S`Rud4A82BIKa_Y#Rh;j0D6cKnICpM`BMz*^2sO1Cl~V4QA=kMQc4z1? z=^UajOQ_D|@Lj^6iu%PmExF#<2hJJ~m;L&IYYz@VE=Q8(@l04>DX=o-*iZ+?hB0D% zYFx-%tiK}uoA&+Tw|`+~zyrm{4BMEX*JJdG(QDG5N;lRt4%@hdKDX1$?W29K%ss+b zmUPEK|2RFglJmpd17ER+0+~ok=Psp^b4XP@t5bPK6`b3N~8A=UL$_!Me(_2n|Q}-(kt^*4X@_E zAMb^Fj<~)r*)l)n;70j!ej&T0Ur3AU$m;qg5rZ_4>E>RhH3K-Og0LB5U)*!@AR9j3 zTFFYrL4$57$k<83&Vu!=mi|~6?;*NxXPh(0-hO@o>(9Nuf$4vEkpEavY^gn|sg>`;_NUC;{R1Cl{Kol-^iF%x$TN&+wAKF0(`F9K zZyoh_Z_!G7?Sq1D-{XoC_@OuNXDM;I*ry&j8?WAQG#6)xJv>qR*cM4%;8OWN-Dj(A zhMY#vjM0TpoU_K7T;q57J`rmS8QWQ7NsFN;{CTRmdk8;D-Q_fV1RULgHR!+N32sz&!aQI^KjYEq0oiXJ<=d~8O(b`O|)n#jbEky!tbAWMrS@Y z)XV&DG#`EG-yql8mAlri6#n1vgL3T&tRL2DB=wWe0JRUlpoRpMQH0;p=clja`7M-v z%^ro`Ug#x7U&p2ODDm3SL?=E2j}m<*n%L=SO0+Df&*w!fh|V$A)*mpFL*6t&FFv5U z&_7SK%zFQ5whHas`jX(k=R)qMGv;YJlh0TwovqnTv-vFH3>6NaW3Zl6Z{azIU+s74 zSuKE1o_xrK_4P3Bihi^YwHBj})~%N20)BtB z@BtKlubo8u*hjgB{u|2ip|D>j(lv&d$7bwBn#cZnvjLoG-0Se8f<8-4wOG()6-5$e z*SeK%oJ@=yo+LA6=% zS1wQ{n20^D57RnR8_)svr6XP!9r-W#YxTMFrc!-%!njJb05 zCFYCwW=J-_I;L z|C^~T@GEuHPA!d_Xx?GW4ev+#4L;@fQorg{tjSFKMCM(^Jl;oV{qvBR$Fak4ekFFi zoX_LU<4mH_tD$p-4>9dW>=%!6gX!#K zwX{z`ubN2K!2XG7^X<4k-*)fYAyP&zkuvi7m$HsMrwTef=+QCHihdts5pK|4Fqcr> z$nA*l-Sm07jH|xvMRCthlVb$!zntc>f$s3Rv|lh*?l0Z@MZ?AYuDEDXz_k`{gC5hl z97E4OM)C;e9kR4v+7&`_O|TYRhvSPE7no;1d{JOOm%*-p*fe=Z{Y2hdKgOLb@2V#7 zKhy^LTOct(h1`=!FPuBXm>ZvG)F38F-dP(`Z?mlH+*f7P@8AAR$SsW%hi#0~Yw|=P zvrMP=Y4qApFGc2@7ru%lYa@0YJ{4M`1vYe5i?z}3%^^M37F6OKCr8hmrYOew&U3(@ z;h1SP4nKr4dcMM=H4hAF^bUVLk*8^1i0j?S_?q|(|5f!r7qCI8y^q+(wApf=r}hTY^8@Mm3i@7w|IuH>+c1s=l@s$p z^PsfId7yV?hwbe&810jJEgno5Wzgnms zTUA@Qzvv^CvAtp11Hf}tlu@2kvlU9U*h*xl9SXPDp43j3ZM~QS;%@?*+ev;2S*te+ zI~PB%VtpczB}RFuE9^ zAhp2GD#Aa4`yUZ&rH2A^R+VKz`rMz_^j6CgX|a?@E6F~WTONHEk4y0bdv&I*hXh_* zP`}mU@4kfTj2rt@;6Sw6{Ga^Y!Kd?RJJ`-1B3cAY)VH$Pj91@dBd*d%^h(5Ej!$DP z6%TU1wN@0;S|n(1s7fnh&zkAIjeRxr);9OvfM3T*nP1eS?_ge_Na`&^IedSC|9}{E zrw>n2AJ9JffwrA~Tmf4f=N)SSZtin0J-qcJh zByx$2qBbl(yVRGMqQW1j^ioCPcIkXoDE^tMSKY%phpoq{J4X{_8>kOsEpcc9#wefP zz6OHCiYvpnAdTT9K zNTYKX+eLe!5_u5@UK$G$jYFAT6~WdP6>;prShFFqTjrtti+HSW(%xh{bFreo$@eDW zuW-NlHZJQWS!x*LnrVsC9A1X{vpy7SW&bwX_ZWjob7O!fE}~}#%6fxT?{>}!@b&7g zkU4k3Pdjye&<86M^AJ@3{anERpT^#;D7(6sXS2(4_)+vc`n{Xa!@sYG=FkGa_;EHn z3V1;w+V@l+pS9WSx7`XqVWyGjGiW5%9P1649&1~Od<*}Jws!Yv3vF=yR5xOiKL;(1 zj1PmwfjESXoxPBuJ^E~m^*I9+1NHrft;Fv(Sf8^m^+dYMueIi_0!HRsqcZV*;@6aA z8hqXKX#+jV+ZB=X6Q$*2TS^O~1s3{ofMY1$w#%+R#YA+1FlKPzz z{oXG9K$Q4+t6IjFAg2;!TdWtK4b5l$NW<9}pGNHCQ`(MFZ+x!mchUHAy(17}9D{Cg zPE^DkHe0xh1pnQJ`?z_sS22k0wUjIHb!%&*-`hNiy>v#}IKB$`fT43kEcLCtCvQkA ziMe#f_u9ea627B$@m_kz^fZ-O$Sr}GlUM<*x6+Ufh3B(w$b(oD$(Vui-=Om7i-=WjvqzL)U?N1s2B986{^H10FkTv(+Md1ZbT$NbY6OAJr8%}*t zoIXSllb`QH5`8#H^dVW2>qE)97PTbVY#^R;1?Eg!k;ihScChC>a?c?LT}Z#t_H#@} ze!m1=>wB-WzRY*F*}w&1+%d$2(%QWY|Av(C|AgP-beWfyc~DjGp!mH=zl`KDVN0Vs z?eM+k{M1-_9Wmyo9;Wv$dUwmrkPq`bH*zV*Dj<_$9{vmGj^s1Gqjkt+I2SYzx{r8S z+%G#TeD%#LY^mT|krx^Ff|vJM%v$zYhB(nb=$(nq zYo6v+B#%+~Zt6=Lcn0taHsj}BL9~I^n&z13%HiqO{8W@)jr97A<{19<;5)=!PHW@G z8p(OofX~@%@^4NVte-Md{KhhLz8qwOr)X|GYRvGevw9(mgczSEfm~mQ*_WR_XI#I3 zDCvTefA>R~6B&Ldbk+^TCf2HmdnWlX++p|EMclDp5xF0scPckJ>=j?;b0H^RlDP!` zmvywe>exVafcDXTFLQDAQM!11U^SG;tRd%WtKM;v!JIrnf9Vj9cTE$ z?M4;b<@fh0dNZx%Zr+!kRI3+p9>0`v!X9-T$JKfC{kAvU&N?9C2bPh{ci5-z?!|Av zlz2)g8<1tume*-3)oT2id2*4r7-K+LZ>rV$0zU54w#BmHxb$C$zIej)Jo-%a`0HCt zpX8}o=bUP{M$&u%OAJ0gn8y&?{+lh#TYtve7xRaC^B>L68~7aH?QVHVVAwQB>>4l8 zc3=y@r@54QH(|Sr&^~UY^9^hifnPA4@e5|dw$C|d78(K0Kf9C5)Lc$?&1LNd^4fa& zu1%yHGAJG%HhAvtApz>=5yx4-&uKpcaeRUzOTM?zwY? zZGvQ_fyk-;@Y>^}SCaWXP#*uw zeiTE;=My<4)2RO*s=rRyicD2sX6x*?cAW{IRp49I0P`2P3&0yVSLm>x2j(~3Cyh!m zY6Svnh*yFKi9j~2^;!6$aRsU={66%)7I1*-kHUi7t|3xk<+J)i}QR5n+Sv zPkWhtFOYK-v3~kp2H(qcr@jYzPx8QfGL}6kZ9>R#an5G=L?qxhz_IG?{{r;v>GVHz zlw1GyOv<1a?(0e43ouTKgI7z>m(@mARuo8_OAqm(F?tUFPow>fGx@m-2c@pqKD^lw zI4HR9SE~yd*LrM(Bma?EOqWN12rA^IL-e0iaNERfj5e#Sc`KG5sr zvS4huWgeFFeeAM|8eBwz`9IJ zE$5gE#94%7j*U-t%UDtAtA%w7Us#x~r}8K1;dHdPf7LDIwgVM^jx@1$Ay^QAn zo_cX^ra4&PjIr5ePtz8%?Peh3TanyBcgd7>*-W8~^Tm0(_c`ImgR?gEd6CodefsSa zs<+PNe}na@m+_%~7Y-rO-oqpA7IBP-jdt>=Ll!->R>Uu9oa1>1=i5PUXD6?-hiE=> zn{ObVr-xp#-#}GxqtJa?Gor zbCr|%FgTy~)Z+ANx-dJ&_Anz=)fx($6>$lV92%-`V~psh2JeMW zu(fX3UaouH;B98l@NMP;w4cIMe>D8>+wgylHrB~Do}xCK`e#x7buR2%pR*rYo;~D^ zwHS!Mf1*iZLCcuuEB=I74B$9jSLVjmi^StLcoqLJk=yhnj`@k(MesW$9s<0{$&xqm z5N}fNA)1ohX`hX_y_vHN)=GiI*l!mUx~i7 z%X_eUNg(4z%oEY7JE@J;jKP0h`W?Anlj{ClKH)XgKeUgt)?dnu7ZQy=@-fMY^ja<7 z?~$(_`5mv3@_n!CHa6$LGAYD(y|rPBW?RHDNF8$FbvkZO98x4cp{_3`_i-PbHbap^r^6znYt` z=#aQR&U|$)5qMQUU5m2>Lq;f<;{_(lAUWn6XuRbq!B;uCVD6ImdSaaf#@-sa$GzI+RzE3sBHxhqiJ14# zj?7Q(moI$3mwu1R|GMOFV?N232_Y8_)w2P3HX8B_Uk*D0a%ap-Dm2EyyUcZ^Oxw&S zs7wK39+ejM)56+aGAEG1dO7oakDTX6sO+y<4#mAbKK(GT_@D!W?61*$Xe|NGNdWzT zCSuN=vP+2<_R6w;Sr&XgY;k;E{BpadqcjfaKOH$qIq5lKxN?-6Gm)%>g z|C;4Ey>gttq<*cHHE1X zFH9i1I-#r<@*VL3jdb4^GEKOH>F1eDKfCM#qMxTSPqtIwj7*sYT{!fdLkpYkFyg-s zFg6|LbKYXebHWGQpI9bo+8qXDlaraoP<_!B#wfX3V${&xJ}*f01@=4e#c_F#HZB(Y zcdg7r1A6Ox_Ql(c*X8|;b5J1hMkcHg=itwfF=$Nq4?1qg-=tXj^L|s7J3~>{7e^Tf z^>8S%l-6oO`T))!Y*Ku7=h|<>1}1rH=xNtAy~((=h~)%-e)9(56L^|~^+~ij*d(wK z3!<~EVx{8{Fn{6utm<P|M!R$)_;MAtEqzB0o64sEn@X{=ifWybJsF#hV-$xN&0ekBuu4nqwe>chR zpd-W=Ec>qOf08Yh{U7=LzoG9`#v?vHhl*sO0eCOC%{=;G&W(~3F%RznqSyN&zGL+=Bm?|{bh-{K9(z6pPt?e7&awi)q_ ztOKMyq;Y+`x4bfUB6KVt@_j6Hf*dZD;|%G>rNO3|Nih7OyKSX1v#>b|5j8 zc*q;UgAetqOW79XV_V=-wgLL+zteGU<#KJtI;G3ZFqkNu3ZwN&KFl4E}tb~Ip+D6IzOszaU=uha>T5;-<`p9Ed`%@p}O zu;)}fPiF>o`1CjFY?L97dDUUw6R;C+Jne)%Gwqu{GB5xDjcYExcKzkx> zUXRQxfPBordqd94D&=T+^jmx2hlsP#F=2;2zEn> zWn2y{Zs2eeFZMgRMt+&2$JsMNuXTq}({(iRvQSs$YM{^)##5Y=3D~W(G9= zhzC9iopuH2QEG=BmOktKgnwu;&J}2VFiNzZ=yL(u3GaU|Om|BOm*f0mRIZW734K`z zn39oM1~8o1J`roNk9eLv1fOfsv|Mjj86O=lUN zaJ%IfJmoTfd3sWn!zO8Y_7HF=IgUyC-Fw5Wh`q4{?q$NPr}J=veD+k< zP2y}^Zw`=WV-$RB`JQTFTr>E@Lnj|6y5zYiY+YKySa(B#Zwt(EJfBoH@|=yNGg(#> zN@vgePCBV=HF4*>C1aGCW<-hq)~6aubS~r7?T|FX={xi-jQ@f4lQ?NuzjElLl8EzI zSb=pc53dNYe|uzwJ%;CUx$VTakELgDui)NjUohR^yF-~}aK0Qm6UJ%%(z|KhaaUoU zsuLa7MKZn~zcKzV(M-_F5l4m2uTaL8U_Ox-xSVKZ2s}yZ4%%mJHfX0qD;wD+)XvzG zirUR_ui#%4wT_#JKa%Jr z+s}R}Vx1}^Uwbpkgl8Ecd0vX7JdATQn$~3O(Ok|#zE^lpM{YNK;i(4pKF${CmJ)8a zojvV7n;1u^&o~McF%I;S#`RT(K2)SD$gzA7>o%`;6mkIS%HhRK&t2%mmFh z?(TZN3mZ+`=S31XgzmpG8i$JgL}S6bPl?Q}P{MO6LauRyT;~+y*nZhc=H1plxSe@6 zJ-WhfCt0mtVpkI{Msojb@RuHMYPKD(`VuV8TG z9SLwy=PBwUUeCwQ6m%6lT`0N82L5G9a;{Or{8F&)W z@8oDUe85X+uX&P}!@hnPKEb#{JlYp57Z5LAb{5M8B4<3->E6>bj!uC6$#94GsqM}Bv|1y6Z8~&^W0U;SE;^@2$on&TvYe;$uq!VT zWc`~u10)Bu81Od?qQCU)bR~{_$87%yLf&}Eo356)N)8`39lELLa=S)lykf=)oJxGs z^km$QGu@k*t`3VB!&5-qBR z_|EInUiJQ7p^JW) zzU%Tk-8EG`LwB3&&fm>3vN+Gs+5MH~A$i6D^XR1m(y*Vf@4oIe;PVDOGwc@lz32RG z=K9mNfgfc1+!A^oab)dJ3tD

(Jg|JS^DtOXG<&=zB5ayaQ{E=oa0jD39lU`LxL6 zb&`B;l+j^1>{aZ3m z!J4NWjI z#MvP)K!0Vyp$jApdP>SQ5y5Li_k9??0S~d>vzzWmp$#8g z$P1S;PV;FN_BZ;DJ*k*83bW#O#U(|L<~GMReGe-!BRRm3?CP&z9ID03<=lGyqQ zUEuvaEaX7$GqBo$4HS%Zu*_E{aYV~$?(3z`1NaHQq{kem*^~FZcwE}w_t0EI*T42o zf%&+4c7SotoP1*>+Xcrot>m~y=r|GI;pBVaTrjSjFJm@fT_&*YU*Q<;Syt6AXIr3u z@SlR5cu%HuBj@s_yT6<<-vo{$WMrT8ef*{eva-MiDwDFZ+D8s9WI6bIIXQUa>3JDa z`T+*i|wh2x9ru#zd!zAZS?NS*ANU*K^y-M$P9!>uwYdf`xuuT*=do84^N8=A zYZNO>kz>#NDfo(qR@%|zJS!;emzc`J8a^FP%(5P_IS@x%- zPk;8GA;t<^f*X*pOGj>(750o(D@oR*J3Bewit6*MkhER;oi!r*R-!f=pl_;NC+HPn z&+9^N2li`TfVe`lm3{-RdQg6kF+E&hhZ!GXoVjk;Yo7mR-b>7X3H1wDP1%|}P7`oJ zk(Ukg#dnDGF+*%L)*9;^N-Yy>O)@gDFORt97xzyQ{r<=G+06d|?Mrs#>T>o=ke<)& zmn8K1Hvx;JY6|)`BwrWoHju*~rMeKuw6)JVhUmYQ^xtiL{zD&@((g9|hn?ma>yO_H zC2zct{sYd<#A#-x^&iiqSZ5Xi_FLR8ci9nrQb+ChaXR#C`fL3~u0rDTrW*NNg`ta= zvuyi-&u7e7oy|1L7|#>fkF?8%P0^>{Zm{2@)@-ovKJ9DbEtajmFu=GDm6Bg#+;@SC z#TX?HPJpBH1~%hf##NnZ%qJ%8-- z8~HEJv9{AbeLS@_ZVtyZO{4vXyPn5BIG?AnfXBWNHb=%#L5{|eJpRQz{@c-Bc(J{X zzWc)%e`7kJ&NRReUq`al>R$(dDZ{o@*#9df{#$h)Y*3ajY1~EftbK#}TPe?24dZ}x zSU77QI%`;W>dp_M)B5v+1_D#M_*l1wyp}N6;pT^k5yKL}q&@IAm z)sx!AdV8EZFMY=E(3Sb*?;o-4A!Z@=*O!9K*=W{s-mwnkmKjwkX)oe!p?mhFrW-i- z_olK3i{kC{{`^5;fc-q4Js1kN8l3-w&W#=?4s$V|g8^$r242m6J@ldBve&L;69r2)rQ zP5=K${tr2{I2E&MWVrz6!4-9c=$uZYazB6L_^qx_eNW5!RDDID6uJuKg+PWe6cZd5;P4aE<8+=R zCOl+5@B|8D#)-JXsZHBS4x=?CStm}s#;<>rFuRyGA1n8;-wWNrW08lB_H9E_;O(NH zZaHqROO9Kjz@IW~-A3)u9$mIYetr_Z?8FZjaE$#TdrU&CYZx{Ff5-bp^8Tv-0&+#f ztW9?8Dd0P-oA0o&>kd1c?rUJ~jNMcW9w&V;MSK}_-Bf=VSc6nQusGm*e+e+rh<|CM z@8$9i2k$r*`zndpr4AeXO@#hiF3V>Oa#efnI(ueMmoZH#ja z+K4-Ek}m8luzlgqn=HTYllNX!euwYE7;5`s>Py(kL92GNKOS^J zW$3$#meT$@nGU22EfYc&UAH>HzNng}PHrDMtQw`$ z#$19Q0PU((kh4R4hrP6pzE76l5i_mR_o)1Sh`wK-?Xnp&U&MV?tvhWO=OKk{68)V- zG!lKq{Z}LD-GK*%eg*wT|G`fHE1K@5;yBfhbL%A@FQxhU9`P!vbR4-e*iV0L+D>Fgv>y6BIx1~7WW9OAsxOj5#-KA zj7=Wv?;zFpZThdV&vSF-b3>qezC*|iz{j2*iQA6s0Kd!{jqzs8)mk^7OU(P!_;!0n zjK-`owwV2!g`D?2;Omp`6)_#tWWE>VQ1qm#E$5s!xX$^@N*-5R=D=dvP)~}pT%Q0I zx!{kXUuVBTX8v{w_-~T+m`)D z9J>m8kgJW~eUWctH0}L2IA6sLoVz4U=U0VJioW~Q?q0|&zyJl_6z<>6ILB%ypDlb( z;T+TVG4lHcKF6K*Sb2_nfR{yQ^BlU9bSG~w_1ml6XMkTo-_fUAj^_LHTaE!Cy5lWQ zLp~ZwXBM#J8Cz$WgzL_^zlvmt@iIf2mWe+;%_b+7tP)CZ~bJ7FXxm z!mm?ctg13z#KATG*1D|BCoO!mbZYZid1l<>-ryQH&Xi7T1)sC}2;adbVr3wsgLZ}@ z9gKw!9hH;g5OtsU1kUmV_&;(C$7t#2u zlV?tzTjaRKT|ND#{^=g%OvD{+bTOVB`>_jLI1x_(emr%*jr=GPT9;Dzw5g1T&vLsD zy7P#*-`X)Q$T&B%jL5P;J^lCk7tqN>Oj>)kbK#CuB1_;;L-pT}yVEARo_6jO-jld{ zR_lZ!PSLw$diWnjj* z2QN`v*whAltyvJc9rjV;vF95!W*Se2{n3yN$HpLEyyv1T*?#zal7n#m{g|I7IWNe8 z0C|Y!2lp-WL4vCp}=q6oZCuR7a695(8Lt)*DzCo2DklNVMg zMy@jCq`kKZ`O0P=3bMZ`%{g*S)BHU7U6LVa-~A+#J*Y}NOO`tJwwxqDsDwbJjm)9+)anwj_h z@k}cC&u3E5*McXgr2Bp~-R0FyVtzDQr%+hZ-!S}-8`J)9yE-*`mGv_6Pjf!#F2=xc z;&7mwtps*8&B>9=o;|eVsJJ^|XS(1E!Q-IJ|Cep9bG3Qm|DW1i>}vC$pS#+;T3~>| z#uk)$$%Vf+$yo`3&51tL(H_nDdK>7&E$RMo5ub-Td%*`qr4A(`^ZZC3iy4j_8<`t$ z{NnnPJbpyxAVmI?2(=efXIjvgR7?F3d>KPhcj6IvUHjIhfW5VxdRm=LO-gdE(zl*&Vzk?umjRR`w9C0IjJMqB7LwOA9IqWgSFw6d@ngZ*y>Yx zAMAcl<@4FY2OF~YKR++sSbnLThhd$)9#3a4{9Bt`F@X{69q_HH)Gvn_kC^%H%YNtK zF(IGQSYQpP8`CxV0^t*0x}YMg&$L#a*GY5OY%LtnLVHUWIRupjf=^~_ybdeojkA5| z$qk;2r?@FC^5-OG4j}n^tkT7H2@mgomF<&bqph|l`cfJ?!QxVdXze09Np-DJ<0i)r z2t373#5Og!?lbJ^2(4EW``+DV2rS7&T0{Px)na{06r=1D_JK*IANa@746wRSx=q-Y z93E&S$Gwl^SVOj_sEN*LQS4vXj-h`ZUk1L2<<+KykIr71mP(YVDd<1Ok$hG+ut2GX zuE}=-$Ndk6{lc1wxNo(^@W?zK<&S1Fr)UT4@>6MzN*fTTZ+SP)WQ|_JPAmi4e#X2Ij6j6u8iWY3x6cz1VxCAq{($=slVWPiL$KUT9$4Fu2U^|@BsTl&{*n8ANt5NhiKs3 z_ss5~>=)MVns9>eX|X3ZMD}p~_#KG0L2nf-%i1&hrQgW=O9GjI-qwZxeogu{=rzRO z)s}iIu|~o~PZl|@J;SN@1sEHw}xn3LnEvGc+#RHk#X>A-|756{~Mi&Si z8vPB&SJ>VK8Lc2}6#M4X=hB$@kQez9_Xz(L*k7m4^V^*?$0KN*JZB_r=pUATe87#V z#$^U%{Bxfc@AAWkpLncKXpdcY_?~~{dg{8cMqv+{A2twwPv{rJqOF)C)QL6^r1mQ6 z8&1jD1*}&%P$}&4kj_tQYya#5Zl7mNP1i|87jC6?K60y_L4R_>J4ja9;RFjnzuFz} zqoFY3ek*xenV09YQ3ZB&ll50xPoZ#IZyMaSem1Bl6O{YX)qiHU4>ZxC`V@`YC)W+$ zdui>s?HV7hbtX|7v~7WG*K^?=W)8K>8uZ`W^@roM>rLcS-f$An^|cRn{b(24X~G8^ zw(V5bTKy(2>vvR6HPzpc)8;gu(B{M*6M0pc7wH$AlW>L%jI$p!@M#*)t#g_m6K70A zPMt$E$j7*;ay&$gu~yzoBDPvF=6{Hb?cGxTfHCe`jS{xo-08^p-g#?>cbd`{x7T;V^^NezbU07X zrTvd||6t7a1oOp|-Uqsbv_6@~_2DkV*%1-M-Kl$=(3xWY9-)2Vq5X?=*dJxuLZVZ99HjRSYwwyuG-K7z(8fKCf#aK2Z;TJu zJ1+iZu#V{MLV0%{7Ix0io8X=)6?uT~&=DhI^L{f^MCH2c-CI~|#7Kto(m6d|ZFat* zq5SJv&*6Qzwd)KI@hm#-$%`2$vp`vQC^wBeMqm%DW9$K+(k5^RB1=hDFSY4?;S9bj zUFwub|LTu1zt&qOVn6tdWHHIHz96OTxgo#!sT-~=&cK!>yo}_IDhqlbaj#TQXX!Er ze)ZrFZ~l6Pp+xG5mz!(M9jFMi}|XA0A%hV|b(#?HQy#LO%^iCOR+~N-#;CU~E&0DzD8GqGF2mLA9SHvG(@DlwFf5&JG zqu%=rei!~FFcGa1O2e@VBC!1f7TiqJL+3fhMGZFx{EDW~c)`x;^b(F8R*Jnt`?Hky z6YgxmGsaklvxxTPqF#Ru_zx>GULkx3a6gGV;+VwbdWzP;6h3p8^ZcZ;Yys8{f5Uuk ztcW}C5oB>;vuouLEx|YBu8v=bwN12t2xGCP3_EcJ`j|Aqg9g(}EPrYtWB=r{O^UF$ z!C3!E>H_Pi&aW7IoYC4qJ{x=!^X;cDy3&UI8RTe>dX@nl3iK3SrPe^qO%L(+(Nl)g z{ME8={hTw0Q<^vtwwsKbLYl#TVkEP}FE3g)jOMhBV~2V5Ilw(O%yVh()f!HxC^wUw zpcyw`q!}SfH|M;`^j$-r5k})z+8z6~Dk^8R(U8;bd{8`z>KSItnJ}5(-~76GH~&QW zykxS`Je=Az1~FF?d_Iq(u^XfbUjiip{ogG6EP94LR;IQ)=juE8?&M$WzuVl)|G+l1 zg#P=p?BL4ie=y4qu3T$otYOyil+A-HNRHJx&k0^UFi-x1c|Z z4_!uizZNw!Uxr4}coe-sWt}E{m4bH(Tnz9Cg|}DP4Uj3>=LocX8T)vp;!B-6rO9~+ zXPL5__t}GdhKX2G%UMselzGIs?(=#oeMNZw3yyoghFdM9UQ&sso;=LJd)`;0XM*3eR@7(aef&NFN9R&Wv zMrfwARm6YT2;n{ucO*R(o9&+QTWmc4G5a7Y-8oV(2kokXnqx9RK+$XbDv;S0*;~an{!Nv+UDzMd@NjyZlns}B-m3`{J zx-%*LO`_|IE!Yy3;7&@P44KY8^>(389!oO(<8Pap;lwwW+(SIa?Z5(A+$)>u?Ca9X zc}LUwW*#yTv4Bgh$vfLKSa-9_EQ{20J;0PhJweLj1+RO%&<8_bfO^g)e%?1`Sr>R3 zRn`N{ywSp!Nz_66`h&M|CprtV{|2#dXCJd~fi;J*=6tkYKcYRF9WOrQ#*43g;ZR<} zu=l+!?5~M0?cPhjfnTV~_}n|`KX_-62GSF5qtjon0N^d=Md{6S6wdx{x0y)UG6rSz`QtJf4O`odD-$2`qWsk_XSr_-~} z+gS+Aveelx9lTxbaq(r~_q!oQbPYZ@F@-U9q3_s2ZP}ge1Ahb2J{ zQe>;~g%*ATcLH^wd{6!~+w*+#(TUe5AEmi`(i@s)_e@jlr7tBP^`w%|e*4DcqwvE9 zhAs9$3bC#dNqaza3H#0dAWCH(;($LPrn%*7L-({Up_MFhD#c zzR|XQY+EwJ##p27bwztTslq*lSWB^F&%s@++nIql<3mt~i;rcz60lWcr85SYSTNRFJNaOm`M$r$nbF{qc1ZKr3>I=?Vq93J!Xws9qeZR*W ztuI=4$L_-C^u0_U;cqyXWQ7@H%r2j_NlL|jZ+fzPco1hjN3Ulr8{l|AR|fr(nihV{ zqa?4G(%xVneK(E|?hkQBFF&a#hVME3We;=#Zr`or^!>JeeMf)U#xGsZ`29Q< zz&Q=$PPKk)Fq#|(-mxT_9KkW#<(R;ybTsj`>vW;VH4D7 z?YliC%GGu%x}Rf*r()ZoU&`wp11bYpQs^tjf$#aWzA+H?vjV3N{r9_Z=x7XPpVX7d z9?v6_h3uy#_*^kzYY6$PA|m6;(;hqvWN=I{ zrNP)jYdwd)`F@1z{QKX#Gr7tv_?9jKK1xK|HUuKyG+>iPGQkjxM*gc z`oDJUZnhau(r?J#qav4BSnIs*BU{WP)b;>u#-aCq;%FukX>*`!chjt;G)bk+IWn2{ z&UY2Y0jc!n*i!~8jIsFg4JPNYrJo*nDbRW7{^n_dr@}tO8IrT3i1mM`Q(M=NTwWG# zvgT8oU_{)n)BM}Gf7bP+4;UlhM=D4*5_eg3>^A~?2l%vs9{l{Xo($q^;r@KS)UWx~ zWAm>+eV>VVLmP(gFxS&3yQ~3OWi9y3)k6w?z?+2$hCV<24Kw4;v4?RIlJ-2{0VhPf ziKqY3omrzm-nhngW4f_Tov z?J1v9&3etnW0rRL^lveLiFoyH`jZz0GSE$ToFmRRn#154iItDvFRHtFz2UbMtDxh6v{7H_{htraZfVO}s`+1Xk;bfLFU&0nY+C4*I0VUmT@9 z6r;IMjtfd%Mv1il$2dn+fvr|4_t2E+N@r@~UFY2U1RXeou{*9d;oo$+#E1pX?z)ul z#X$T_=rVIj&JPnU3aRfnq4YP6VMRns!2cC4W?M7(jo?n07eo=bKWnI+tM#^kSHD@ood_^#vfJvF zZFP0$XwQ#jdyY_h*3q2gvRyA|ZoLI;B)$ivIS51>4YqNmce$}!j3;RPpQH1~rFA|U zQ;a9>@z&|T2cE+*=NxFfL1!@L?{WCV!p2<_F^qHcMHc3)Q2G~EN(N`04nvbj99Ot?H#`A>!-N zXU6u+`WqxTvvZYy{*Pq@yT&;GfNPRJ?sIF`##$wUVaJIO0Qpg)^Fhce8gBi7hAx6f(?2I zHpJ;VOBHr=Hf-*Kda@RAq}S=Oc9w%X&H5@-D0kB}w%e-!^b>pF?NGJ3T#5{?ovn*Y^ya+C}_u_dj*~ zzuC~KEx-saiwc_;4`jXgO2;3rHJ;Am2M-;GAIyAue10(WU--e0;*JgghLt8krG>w%tQt^WH$;F3mYt@^c7*$*%nzuEZp#7ySyc+bIHp2KZ|M*nt>&v*!f28wm%gbyhvg-+HCqncDw52H7WX&raWWOnJVoccA z6;@<2_dDeaUBVONE;XFVlw zp^KjowjO2D4hQL~v(i;OCG0uf_c4E-4c-rO!Qfc|e&_OacS-vOj8l@vO{epzT-ego z&ZK#T+~DOHJJ4@67+Cv|BP!_Z!nkVDCYA#*wirhxovihwldTxzH8i%E5BQR^9U<}X zm=lcod|vAUj{sv1{Ak?GARp2W${u&{730LX-}OW<4>iPxv-hv7mW`q^KDwkajn78< zjHeIABQMK8?oVsPn9R?TB@l=3F1e4!q?)V)atz@+1^Rpe)!#0CS}-5Wfh`hF+8uH( z6&Z^hbD8JbMyHxs=cv-Tp?~K3`6dg&|4ixErVVSve6Ct8+6Mek#Dhg!ICe5@KWN{h z9osANeETZ$iYc#;=!%EFi|M=YyVO4TXbw}}b?!1gJUCo^*FpXf(RZEoRA0puK`--} zH)(QEmZrbUaoiC@1HL6_&-GN!Rx0QE>&(mtS?lG#na8e|O6Wx9=J7t8i+zST5Ob=4 z8EVdqwSzaZu`WP2u_k8HSc^FoI(W=Ke1_pqIiA|JCROjadoYJ%-HP>aR=@Rd`WLK+ z!>jw&1IFy|umZb`XxRvoVaHIq{nR&?w;WD=#P_QunM{adKqc*{!Z!Yl1pxc;AY-73 zJ38FeVJ=_%v~OSHP8{>-`am!?k(|dfSBrfK+>z>jX(r0`H$DsB8u$5?a{YaFt(p0p zoQ}9)kt{iV<%uk(1NVFVYdg*5v0pJ;E5T4SgR%~=upywLKbYYmc1yWm3$-DbAjeR7uEUBcJ`9gHP_`~EV<77+gh zpVi@%qg?v`XT~U)ZhK^W235M43n zLpDml7EkEI&z12=VSkiEdnHUf&J;Qa9~n;bLT5Ixs2G1I3SXqJTe-&l25ip<8S@Rs zN-~5$1MIXrK0Wq4$2pT5t2LC^z2Z(5_tcOhq79B4^J*RBk|c0oYmHE9w^K#y1sLM& zvkE$5e%(NwgVOU2v_X+|sYLfjQGF!5@ZDf`TrQkv8qTvsE6+RZc*~6@3%2ZK=_YGx zQk-wF_w+@?eE`M+8T#6vg+D+AwR<-0(_Ho;Zf84u1-7P&kRh3t=^}=8Ij{$) z{>wAc7lZm&0!#pHE}zf17dxHy44>1`rw-3#G#U%`BTWlh0J?}VKtEI$V<6mg2xC!A zV=+EU-f(}r7-`T!4WaUZzlHj$Qi4WCfcZsp=GMDzzS)|!cW+_k z&(UfPm3RQ`8}IPNh9|wOt3s&(wx6MCHCA;3{uC`7L!%1%6zpT-fqY{ZXYJ>E8AoP$ zs?Mq~>aF#^^waryAN{YV_YWLuOjg;rTLwnVnrNM~{`{?GRkF@0P#!vjbVyU6+)wZK z((`&}O_a`u^ItaC-Mq(q?zWc>;_iXO$G5@9AF% z93(uCj69a^Z+a3o)dDNVogaU?nZ_`|WB6I6x7Gmw7Ef zGju%l1MO#C1v=d)#o2b(FT`1Q$1lYFx0@HZ!te{9Py2Fiq|-S!yx)0zI?l_PY|q<= z-8&sLBadT3@tD`}eG=YdU2Xn1@j#n9!Q-1=7ehnXm<>snc$mMwU|6O*R+`6{BNOO% zn|yu_{m%AZs?Lg6*#JM8nDAfnN!kg$Xq?tFFn4Ae!p`|mG(Nb42EU7a277M!*85YC zIfTErstI4XlBDGSQo^4f^4`xmW?lrkQ{esPW#3Jn?A}e%c-7%v*${CGD@k6+*!lVl+GB>0(w6>PP}JC`jjVOzi^$Mm#k4eMuk;J zV{kuX?KT*Lw1tLmEUiVNg}ATqrHRgIh+Ep?`1EC6i2rvJl`%+NXu!`D{$dsBddpKp z>4>K)P@0*htsC>Ux$aqUFXs<8DE^BVE2*)2JkYOQLHVC2UKzYD_BrET#a+7DaHyQx zFKFiSL!g`MH@s}FF^F#_+6WqWmgJd7_v4vIeF4ur;un29bA{IKESEO(m%|=#?3?D~ zIQ2uuvf{W*@c$^y^TkU^{!puY^eMhh%VgFu)>G01K1&LCD!SmI+0To{!S!Q=-X=uj z4ZAbM<^xvNsS?W{ymBMangLlf6FkD5Bt`|7+kQPX8a1|5vk5_+Fyhdzo%OM*m^!(Q|d*z69-T zge`rlllLL}PAA|q-NACejU?}~J!~r3nu@Ii?^K&w^RDTx?K;pW;)gcUxR0j&)$2>0 zwZ6;g`F+4LRBDKiZFUqd?Cj%~FV<-I^p36^arWiqBi8BgMzPj;tgbevNWY}ItUY=M z%}Jwsek5TZx6B!pY+?*L@czLhY~+?Xx_owshM&2Wh2KbG2$+u1T)J#0)WYQu){1=vI(79isi%rJpJIYnZPdSyFD z^SkTJwe)*2C8I#zSN~D$=&(HtB*uGMFH^!V}Phj0)PF|B|{jIPgOG`dSZ4>xb)Sm&8 zU(lrdoy{kpA2-Q97(G3&q3mpI<_gC65ciZbrA#zY;;ebI(v8wq_O|bGneH6$p}?*t zzH))2W#@7{XfZCX45Mfwe&7b$6V>cLF8%{=F$z7o{J)lISu10PV(o#KNBL_j-ZedX zW8e9tv#kg7^6(4hu{2=ID8|qoKl*-ONw+grBHCXm`8~89IG)@4$rexkQs|Ue-}IGZ z-#sedVf{YF`=f)~c!ft9vPSNYDU=7YkjvwjN!+Y9$}8+Bg>4+>4(rxkvxpOjH49w^ z)-UuLxl)&1&KM?5&cZ{zcR+9duj}XhqXGkBJmx5ov?ov-cpeZlnZ|vlI}h@Igy(_e z4$L9_ui|(Ri;cA<@0zKxyG+npU|_BS4jhfgx-lZo(a%T@iKxqkEM40dS7V(justRi z!aj7J=RFg)>7biyl})UpP^7QAi-&>r8#*G&m?w3;$LRllDdZ=_(oXf8#|gg_I1Rwa zm`Z&(6v(qNW}dXb6~Ml%G=R@VyeQ6P?R!R5FFr?`(@P7YQfHG8=Tjw(bE(`*K}ipQ z1q3?4G=R=_FVO(6wyX>5b0+hPZI1sd5^GA<&o~U4sKYHEbydpw`c%$!u3HDrNZM2V z_tSS|`J-|~99S-w%4eD*`+zcg>ma%?ShoMIqdi!vwPE<0oe_(BDOjl^hpX&61_vwaR#$ zX@MIHn!Hb9pFBhL>izcMX5zC?z}hudN_qbVrU8P62>JdIw#BEls|YNiha?U0Xrrwf z;zxj)1lfc6uyl)qdspBrq934(+;+%&z#I8g;EJHF=mXkWmDLZo{b)OA%@eZi3xQ|W zZ%wvR+q;fZ+ZC7oMa-Y0?P-_(Rh##@^v}S)yTM${JTLf};Z`ktEMT`jHpzBgKCSPp zfga^M@|?++ZTC>ytFqeOzs*<+TBPaF0@>#I@XzQs-nUYlH&B}e?|*~f!z4Dcpw)us ze;WI<$4wV8-|0N-&*UphP5A$5R zE&2`nR+Y;4>p9$xdGK}PnB7!X_=Q71`l*avPrS!GEzZ22O5d;x8?V(`9Pe~!i|J7( zS9F9Yo#b>Go$oDT!3ZC9ODi$s=Zcp?_)j?lhz-}$v&H2$>i zht(K0l-R9vuFOc&}<<;isrJ zI!LFa7gGD`4#D4e36+g`z*>Mmv#^Kigm&O6IMlANyL9A8y?_!;T*Uv3nY=qc%N$A%W7A9Hu z@1g$U&L(|ZKc+x{gYVSCRgXN7RpMgCUa4eM6gHFD34dVuR^a?sRd=|%-VEah;Rb0z4XV|_! z##leyUzDyiE1laeO}1-Hzjh7zAKHaF{VbO*F{^6xotu{5ALqGS24rgZ zRvdOQIFiE781tAza#h~6B?j)c>!;z~H*Q=h=W-<5k38sj5{8ZEprd8sXF0|PbasRJ z-eRevupc_`h2tCxu8{5K>MWdRuZ6_;0grH`zK71k8Rm5fqZoLE<7q9OblBqeAMmDS=@&@b&j^h-NVzuNvwznl+0->*xu z`gQSt=@<6@;U7}JZfCqy)3cE1Mp*g`(!Ok1h- zfL;tlUnEWdXhJ!)AM1LqY(M*mQhR?V+v~>LW4b_f1$)O$;Pjw<+4ORZjKf}nbB$;r z&a_%OTOPmd^RzM)CBB?!B1O;GRgDXbXN~>zO~?@7*FAZBAG5^c zY3~|Ib$p08#`HV$!U4vkuTWejxqI=@!QV%LV4YGX(=2r!du_tN1)OCPkOn_Fy zHozTc^c#2hkk6k(nh1Dd#2}bu`#cR@#nSFIC@};#ayyrCJ3D232|u+LnD(B$s}YBC zMUKRL*!be-%ge}kv$Z`!PYoZEp#0`IkF|Za{5Y3@vky!GMHTi6z?-=64uLr`L8*7( z2Z%nq{Y76rc@g_^8ViiWLh4f`rIU0aZ+x`^LBHkpCHuS@R^uqB7a;WU|KN?iWS5NRwUmA;!F2N&gKQ z3%15_ZSoJ@W@bX+2b>V=irSb@hW{XZx`VpFng~Vib$)U?rJGn_YgrglNXM~-Wm$Jn z8q||_oO(K56yvmx*4jW#^y!`pH``~9RP2fR7Mo=#f2;Go5jOiw9s(VqegDx3d3K5Z zmQ$|XYjJ!9lII>8X7k+MH{8x-*YD~%*-t|ewiK0APbchuXs(}{bAWjq;Ehyp%*i(# zmqrR+dYJ>-v+}zEi3v@zH|+B$9pv9t;aUs)kUzD~@zYrkKA=3Z2ysliagO7e$~5vm z#t%9vzmG=xQ_yu8z%+95pSh3gx{vDWq`EMFCGQ`|01v_KODMUBb%gHR0t+c3b$G=b z;|sQA%N$^$2Gv>zZCph%N$o;vpW0yg_2rH~3QUkil!iXECy~abuWQ|UUF`4F8_qsA zJ|=83!U?v!!T4T1E|ZBxKRk#zTjaUbz#iCg@BqsiUy<=Uh({?_(#c|AmV;-h9R>`8 z65FGa%w#lL-eHRk$Z)}UjdQ#H;XzexCz+krhq~7(N!Jja-OShnW%TT^aLW8y`on|3 zJ|? ze#i^kx^U;biq6H7!Fl`+>lN=#CLVA!?d9>HQxWKso2;T!lJ>0dL7q?8^&v0v;NAUH zMn%6eLb43}Mj6PTr1GZ7GEVJR#!sn?@%_s9BqYk1Jn`6ejFV;HUV1>U&6~JyL>w($ z+8CG8SpG}Kx6xo$p+9Ff%}T*>PhTgFg1qIpfOs*a!Ij z^yu^H|5oqsj#KacFR1s*O$+=-*<#=OEHbVd6t_CHmrYhd`v`g55wa^}U)H+Q6kBNOv=OE-goP|L>&1cKj`2oR;5q;P6+M+VO){FAMUn}%^ zKP!fI|GHu8-79}kStn3g0~jM}S??LN#(k!VXF=lWYlqbs*z4He9>y=Z+Fm|px1(t_ zMP*uz*H8RCc>JKg)p>E8|l=n3% zuUy~hNcn~LgNs9k{ZKCV!&^TT>pjRZKp0n(Q`yijM&|lQ)0&gu6X?3o;@F1O= zFEecbJ=17^bNuv~d3K0+hXiOd$#(ETu8g$_Uu)t?VZWRkTWrBExe@m%u~%%wguWD5 zjYy|l!}gv2WWsS{@VpuneAMN@tC9Ga*yANCc%Yr;aQM}3h0hnqbRIHV`Wv&aYZm?+ z^?gIBqzBo!&!-|*q_pQ9pj4ZJX3S>UyG(tH(jh$D%Je zkH5Y3`1AP8tzsTS13o{GpIq8Ek6W*#dCY3dw&3ySW zf1!b(eV`49T|W2dm#2ZaTglgVJBO8G*u)nD=MXdn&x7>*(|*r^y$U@U@Wh}8_D7l> zp^uu*eCG&Y)us`Dq?Kd>*!~K<7X97Dn2@%mupLtMWlG z`u?7*ZwjD{Z2O&sLqotr^&7Z^Q2bV{$ddB>je&ioel2Cix`m zi7}~$KiW9jw5Qf^dBa>s`PRyOyJ<{5KbEuQm_$rqunnMfKTz4} z`j9!J#A^L_RV>|i~=QE`3gkP#Xc39G^@ys`i5hq+v zww|oN-2P%u&x+m6Mptp%uou<@%@V}Zp}jkpeIl1p{})>DqjJZ?Fs)%%A5y`)PGcPEeC9Q$F^11$vLCoJ zMteh=pXOzg39Pk7;{VWB;JH4gV&AqL3TeQE8gAgeA9qYCdj1&oyJKWC+a&`R5_nWz zwdMUr>eFN3=arD*Q8$~4It;k!@O95i(euYtcdO256b`8hYkOs4}ZCW_8Rs9wLdD?pS#AZlVYsL z56QFrkp$~h!SkxrKFr^koJ_A@(VntFY%Bf-y+1=fAHewdZ#W)(5@Yj2|6Zo-ajur@ zAXlyfw4;*73A#Uw)n}K8af-?Hu~ClUzv#J}zD+*+TUJ`kh3Ly}o{ND}ZUhE$1Dyx+ z*$#r^ehzW5hgZuz(4fal6*)KX8_Z6BL}G>glfGB0t!&c?Oi%2^)meM-FIjskleMP~ z$vt%tX8^5@2WTFFtpuDTL4&4~oXB)1&mI3>Jp7@+!ym&o7VuL9KHhwqr{>|Wbj{V$ zz4Mh_R`~y6S=r|?e0C9Mf$`bpc??`>#B_$vcIx;+cH+j9|DuxI4Ijr<6WfV@sI^+p zuBW=ja$VubBB#%PRh-q|cl}rCtX?Z^U~eG4NBD%k>Fik5>u0cG6yskvSv^*FX07^$ ziC6%ThdU+i0epvMwFp^{@1>&2g=28n<5|kMc7r893*HyFBY1Wu{VtckM=jB$??EbtY`n#w$fJT+OujcU=#+`dZO1tx8D}1r7b@ar@P7KN zu_uG^_|YoiGxZe9CvQ5T#3Bo}@isdtE2=PKhb2|pm{|G(BDeQ)CN(zQG{%bk2G|EBjX_8qU2 zWkPQer{B06d+TyDGbKNdK>wJZSSWPqKoPd_}ssr()aY%0sH{y z1VV@-q&zF`2I#!R-3qW~G42ClYbkXdVSVM}nqK#KcFYK0R?G-j-@A;)VZOAz%HEII zd%SP{DE1BZp-*pQEEw!X>`ClL%+2xku3L_a6A#Sxx##T8swc_k_1t_xBcGTeu+VY# z%^kVL`KNm>vwmL46Z63LvTSZ@e%SVY;M?AY+}MhY?juu0}}7yp5BDPsbo##AeWeu}f!ZOOJ@RBQZYngnjHR?6+dX7YgzJnfxDXF(l&%DdjR2 zw^}9eiKt)q(71kdQs48R$g=+|Wo+2zL`X(K+h!6k?czm1=7!DycfDS1p5fv~AYOGP z_2Ju)nQ7kz!)?Ydfjdfjtb*!aOEeT?1^E|xfrHW}8oGgM#;`llhE3Xwlx_;8huyTB z2Ki5R-9%s$Cl=&0ZeU&4A_7IJ}zk|5L^nEk# z-0AyzzEdw}J(`!kuV7oaa>fn>FWiw;Kl>n48^%%jUgbn<1m6qq0XBd=ZY=f+&K;7k zfrFP`>J%pod#19KWa$R0rgeZB(xXzAzSg`RvUGf@Wy3&PulG}$wybvkmGS}Ou`%n}2S>%&gWssjdVWwo zf1I8#$a-$b=PT*?U0KiHme1S4?`A#UBcC_X^SN2iUzg7jgRVO3`8N6dr?P+0AHc`% z@RFmhtg)da-ef@^5z&@9p{zB9HNF0*!196*{OYW7*UIOQ(DPqSH8X{@<`2s|Z`ebm z%k$u~>f2ta((8GbpbTO!euH_aZm)21+>zjaC*=j%+ur9sZ z+)wobA0S2NDq@qb)pzrqJZvG2NysaA z*sIS7`ih2C`4p`s;8E_h*IYpV$IyShHE{h=VIzS1l)uFS!oOb99L6M%h`1)e%n|n- z%ZQiT>C6O9BJmgz;;9Sb$ztGysp*vgF|OY-0`dKUQz6%RK$qH`0YsO|Jk;is^H?{H zc9!XNi~&0;b+2_EwIkQq<5bZ5bws<^HUv1ja_`JY{GD}oGtTeo8U-x!gup;UIj2+J zobVp!0$@<3lf@4ASV=oqEHlhR!8!FkVE^ ztcj2T5zFwetClrWzSS*_>8<~N@81%324&KHk7~BG)1|&k&FP zHjQDe1^Y!jJ0HAe_-zLl`5lq8CGAW>&qo zQ=a3kxv5Iunp+QDIi2H2&MvUm5A|?f(5WuU@6~)pl*+(+PpH_w9cMAopu4D!vGUAC z`fFqwl!3g+7i1mrbQ|j*v2xIE#7^A`y*Ke5I2-rM{FhRG#M3}*S$Dr&FUJWwhgupZ z++}af>KpjF^C;g&86$eMCgP8bqI&1t+jn-14mVkUkufq)p)~L+ z-+20{oJCZ2Jge-ZpZ1k~!g0#Zr?N}4%D$B2I<-0-{mTA;%DDltC$h@!qGt_qZOsD? zOL36jVGS7c?&f}DLA`?--BKyHn|11J(H^Y%ZzXa`a8cAzgj6X9><4h4$uix;S%=ceb}s zIV+ETehfCqF$l^vR0H2M+EeN&$Iep?8gZl79gZh0I@KOtKMx7Mw9h;f;In6#hOA22r;@L9~hAdL4+=VkEZko}J2 z4aYJ*-)z=%c;Zv7V7$)oXdgM%r9OMVOmiBg0Uj~@)kdG<<7db}f}UsB1I&~p;+w&y zhT4+Dwk`sTN1^?Pd@p<^Ccki~^3$H~>@o*Ync&d^)PGGWM*NB1zF;hfjtzN? z$_}5>$KP%wo-#+PwZKz?pTt;x`bkd)cWEg~J19Jb{V0fTp8h&LL;hG+{t)GbpXG;? z2k%3p$~P&r4#KAu*e4Bx9ny4?qgTEUJ6qUb;lAD{vDWT!T9@f;$9nsU6@PYm1`}=o4o&8_^fedSCl>N6YQ@Oapnzy{R{EZc_$G+ zxGifur^@;t;Ctlh;4z3Foz5|4&<4=_=fYwgAbmm7X93q|X841y^F9%D1va^P!xr;C z%#rxn>t$>i$Yyi1;^%!#Y3EB`iRB2Q&AC#Zp0W6-YdgGQ6wzj!VOz7>da`UQ$2ZS< zK3MkiWxh|khB4n%w&D3auZ=uypMuvG@v?BnjL#~|Ph}xSO{FGcT>vZmOxdnVk^@Wh zrpND){ED0BU;pmOz^|?UJiY~+gRHs!^S^~0@kR5RFV;@)yv|`BqQzm}fMj%(!)G3i z7h+4GuF$5%2Ivy%94WCf;lB=kcYjvDUjO&!*V!|S-AwJF`mkTHkGu-)6~uZ_u+Dfc z-gfs3&I6DBj+BqyaonDo-^%vYY0~?H~7z z>de+(_=a6fm9Fa8?r zrM#5(j_Dh(aD1{EH15yQfA9`#`|0lHQl2Y-CrIxFkMqtK>H@E&v|;wqe9$?R#fKpM z@X<+g8oi&8)i>~sKhEmgH>q#1Sp~1+(y=LMGp#j@19%qJ9nxCkxR_&VjcX;p;`Va_ zrAHZ|EE+nFo(-XAXHFp==28(y!x#BH4^u$t^j;ojmf&F`l81r*B)zwnhxz`$1+8I! zE`6_45*Iwo>5_-Zdsyk^(TXYU27Ni-ed7M_v4qRRT+2R>iuP77uY&ZsGCj&0;KsSv z-s*CB6{I=(u}l-L<1-&I+`(VuNdDrVAB%g$fW-L&uQ%wZc*dCMm%eal@V~)->}CFA zXD|OD>fOHh$}2c6FGwSG3mYo83=KHE;uVET@`hcbCb7t)%Y@QKu>Lf8Rc z&3ahK+96fw?cq1{qn@4&Y-{?b{opuhFC@P1Af?p`^6VMKB979Xw62uMR@iiR_t}UP z_hR9?c7J}hITCzEe>;-wJ0#qR@x20MgqeA^pLitLj+7C-3d%SMJ|$8-KMp&vo{$*zu`;9_&&fe zQ%RN`Lo$B4(Jmu813MEpjy>C(#Du*G#}JS{NGI9Hw>`mq+EtS!ZneDU1FodsXcqDZ zwXp=Tq@n^(68Mq6^!*0z;ni4+<4<=uq4cRnC{6uH*Ktg9mBx+j2V%{@v$B$W_j(PD z$u-5W!4K-SMFRh<@eu0pY4;mGwXMsibaXK;t>!U2YTERuHKtE(>@5?%#*D3)c*q$Q zZzA~)aT=~Eo)89hcEcf0{9YS4)YuE_Hos>A6ZE;U^i4Ej!}uNM`mH-mcRb#-K7YSB zQ|k8fF&;Sz-v<|Ys_e!O#kz6tUvbBL#TVQ!vd)@is%FOTRhU-YK>McA!Z?Q17G48` z)MTM2mh{BE&20ZsqV8~%Xopj-?s5>fWLSw>^Aan26&x%7UM@zQ{^1+3(7lk?)H z9cD9p$Ee;4S0Al6JBTx=1Q8oI-g{5K?NWKaMr&4$Bphvw*o*KXT&wP7+n92W1-aMs zXp=196M2HXe@}<4@JP13V_KKz%evdf{^gij^8Wr~qEW65&^nHJF$4F^OWd@L1>zpO zt1^%oCezK8&#cNm`=QGU>MYn<&iLV9GO%6L#%y)=z_t!|nz(CF&U`@?4ibO!A? zEU{^mw1>BSllnWS$}WktI2Gv@r#uGComplm+=6?-F%@%`I)QX@44pA!KD;O&YskzE zFG~2si{gmahq$gj#K;bhFrGT=O8e%^rWlOjqg5DdBRkCluOXi5Xyb!%lMO%Otd>op z^*_v*^LiCOpMRc=zdC-B(K@o$K-+MS%k3k&vh5mbAMLXb&&sz$;Z{dYw>kr&yB)M8 zL}vx+ub9^EoS-P@;~q8;US#;f6`yO%fzw4?R}1Yx?Bs1#2IA4qKTF1YMciegGdEXU zY^+sxnrKJMuv)`y3v3+%X(~HCT9o~26~~=L86RYo9inl#dFm9db8c4Iepz;xj7x^~ zx0d!uiq0X>qmYtp_R{%?^8?u6_v21Yu1(l?xju~_;tmcmL-gHz273p@i&gm^_IS`$ z;;z%fwqnWV0AlOVGcVC_;Lw%}yIk`JS>+>t{>V%QHYX{PNA|zjo$)Aj#y{ONKmmPM zE!cSX(tr8P$Fhu||Hs?ku1yy3(h)z}jps^q#D=XPY{P+7i2YUhf|)_A_PfTk_U^fm zywia#cv-a7Nxoq6{gsHfBxwFG-s+?OkJ4|y*3NzipbdilW3SdQt}*l+!q#xF2^@9M z{#B++?}eS$02lk8#^s(U(e*iD+m?5DL|41-;Wi{Wrs^LiNj%ea)X!(C?78S?n)*q6 z<9x!SRPNmgD7EUP#XnqZqiF7twF% zx+f%eI1}l2kba++*x`ifx1WBWAK&3jqTj&GyCAm1xtM+fZ|;)l4rem`My%qm5l=LQ zegi{yDwT67{YD!uqjD~%{8v!ED%p;8)?V{US^smJ_nKdq_0OX6u9Ed%P31*o{p+0_ z<}_LVhL?Ak(`EfLWZg4mz1Pt95Ly$}ye1wL_YjEj=HlQJ4+~lg++}|hcpx}yl4b?I z<06KZA9w@!PKsC?9D9U5bgm)Zq=P%%N?JQdE|C6z(*6_t<*vuyXFovKhLv?lVPU_z z@RRQ2+OPgZK1UppBiBo;4RtTe=|ybQx`*{xqj|q3?O?Rd%B8b{F&FeYCyo3ZzewCc zh97^QeL&$$af0$g`!tTlC;a~)Z$iH8hOdp1&u7ww7lzV+5 z3QW?v^d&{?M$mSJ?5vb|)2m(_E{*$@q+g^llt|$7mdWs!F>oqRE#{0-c&|tEqNpHuvXR zdu`%P56*^LpqJ9#=p7%-^)u2A@?`qosEb&SSR;AKEhaD`eaX{}#$=sy-3P+vz>RZ} zjI=qhO~77)okW4^v7r0)0MknP=PW|MNalcV$_rHfKz+Y6nDsp~?8Oo@;awT?q&JoZ zu-U2pyVDPe*pMVEocO-Ndu1E$X6PJ5A3XY<;ETtBNAT#i#fpgUoHt%yB<7iIEiXRC z)>6##bc|E+ZzOgX^xH9-M;eE2#KeXSh`88{$8}1seYgIQGp4YLG5>)h_u4HAk1zAV zG{(SjocTP?=Qci{-E$e3rKiC^o7UeLT7PBnR_C|Ri@C{+7vULF8;QP!LzZad~2 zbAP&=YuGh&90EBuKH-nW{1A<0TVO3)Z4n_1A@>E?UzY%1Pe4lkX;H+XIZfjv8+d@Lh7O%~_k+@5v!qDDGXx z`y!?9XFsPxdN%Z!FBEIjH?XTU z!%jwppU972_c9Le*WoWI?V^Cg?fRkNj(Y+2dc2Ko=cX{OOdG9%4-e+hyakhsthl$; zDN8M~Qu;okVf)OWw#>PZ=j~e9o(#dhzgunLIm_2Y3?ufJy~@jbA8Au##NICEAQCh4+fnK_FkjJ3W018 z(zi(8wL0g$Zb9$e_F`Rc$vS7Ao@i$FW$j_M{g8WjE76Pcc#{SDzJVJAZCoH_7o4$v z^;za67HE?={>)YCG$*PQGViv4)`0sCceLN8{I4)AK)l&x;jQ$43v5Od(8_CVtS79c zxHsVpmFuZYt|zP?j49+BcU^7yx|iGdU_V;f{v~N;6a7B${iB)tq5|ZVX$u+R7 zcMX(4ua{h06!&&GxNl!?zG-4ypfg%)?DOPEyheskoXZ}8AjS`Pu~htYF(fepVGV3McQ zohIY~`0s9F&iy zJe_U*iaBoh8EhL^3_mr-I)%JkuI^%A(3IqjPnjTiW4sS~#j_K$p8coxuAjBrjQt=s;E6u^?9Ol;8E~ z1C)s23$UGSg4R{5!x#-{4`NEbaWn%A_khx?-vNH&kSeK1sgUivK(-J3BlHfStv|j{ z#ycc_ON~m*fMm0XJ4`el_O_^J32eh?4rhNy(Dy~KT?w~4kr?c0>x|skw~Uao$I-l$ z-ovqp&7abIrjl=)JrfIT*eLuI`<(K^hM+_P4x!SG_z1`Pj_*0fcU%$JSf_i_d%6&# z>u-Fwdy~QXU74Pqt?*MGV0wC0dPdJZ%APKtMrBph(0aShq&<8(&c@TXl1!A|+66h+ zm)zQg`$xoWf&Rt4e^iw^YtFxqG7Sp##^1ZfgpPQoE^MAJgwGS5XRBc=r_p(hdkyWT zT@&b>me?@%godM;^5{NVpI5`LA#V%clU`?TO(tvo(PS-kZprC$iT6oeMuqCCXM8&7*Q zU+NQ3rkD2Wa>xh;*V$#s?U3+efZ{Pg_zf@IG@AFa{r zDc?_JUAw3*lz}?>mjm6*cu6a)a|4;X<-Maydj)q!DxI&O4e&e7(RVXH>(g&?2I)=K z9e)tKCDFSLc``TP4?ly7uBQ^u( z9&2}-XT#h-VumW5c5jxc_(C0Ndez9~Et&@}50G zwxfjidmH7Y+HOmC##fb0tT_8WTkeOi;yg>ImA<<$&x=l1SQGzjc1 z!$d#UMz)$GCM3-b`qsX-^Zk=y-$L?iT&tn)EspE62#mzCpw})Z8u{_Hfy^ixk2>6e z(wT`fvQDdYU}FWGt526}M|CPY>-9sbVTKqfLi zkNtK*^AVGFiN<@;Zcw*6m0F#p5KnRIF9ntq{LEI*4Rrgf$85^RMm$V&x4I&i?~|1D zQfD-9|1>I(>MB>@hnTcKAl_$wq{-4EP0kvUp%Ir0xHO|+V-Uz>CgS{{xrOf${G!zd ztW2Y4m2)w*aW3^An51#|p}?n$_G3eQt5Z$<3eoA;aF-4{t0mz*&TPta&)fjpD;&5m zx7gOJiqD2lXL!DicA#D8i|y~L^CBuk4X<=w1FkUb#pRTC#RZc&{ni@=wq$FSV<7M0 z@D6iNR$h|RU&GvB?P7j}9MI}KY<6cp$ihyfHVio|?}*V}U|h_j^SXrkidZU}Cninf zYU0BvPZ`G~X=1&7gR;uGg8H*@LcV=Kud=t(zK+U#A+^?^GtoxgoycpfbTFTVtUE<4 zjFmix)k+=DDdrO6#xas;J`VrF{6Pm>JAH z`m4zPx;~HKW67rfYBxW8aAQ=qpVESs_&FBZNpa-W#MxV$inBwSVmNVr?KE4-F?`z z5^KV}M~0pncM0yCfF6TxAT}syhZ1geUY?EdX?Na}aRFSqk`qaK)X37(;j@8ZF%!5u zm)|S#2Y?In!G$5*G1_m@x`khum(HD(_6mK!;y|~4V3wKLeW9Pvn49!Tc4N8MZrxmC zyeoaYhL4a~*8WU)K$&ao>zDqq!FiniV88VL@@2ZwpP0N8EtJ@nm}{)HGikn;(3$|> z0(vK89`LQim+H3|63=+UTpjjCN%POkEcQA5cR|ul_!Og*<~X3n4dAy2X-=n7x$p;@ zb911(L9Ts2uQl3x8p>!r8#dAXG1jCrkrcgSH=O5xMzI#C(DMu z&L69@$|XMetu(*o5^tew9?i`h>6dDrnBZIW><>hyXCXAE@U zm|NUmVSd+K6X?axEe#vC`x}1Wz`KUuccTW3>Q?9Jod+bQf~ez0c^?D}(aI|hWFks~ zgL5e&u>)?V_m@p1-fTq3UUyE~1WiF38i~fv))qRTE%*O zcmde)mjT~^&P~7G$nl{SI!94gS$Ywlq5kiSGc-6cpX0+|{LA!(4$jPSz19(Db*-bR zd-%7aHd}NS7T>FG;r~lC@eTPZu8H*35%C?B-wly1T<2V>Zw{@OQIxiEOo;2dORsU< zv-Js?h(;0`F`3H3~w?T#eO43<68y_b6v;pg=%<1zUEz*{YT+TyxGm4dfw zl)Tl2bcUgxnJt2#qa;^^WUY6&d4XhgU0ex8+-t63s_*B%N!PFo3Zp^j8 z;BkY07>(IViA@X41(bJpzwyY$ctEbFu?2s!lExS75N!gF(lTO;fxevkYpZu$F>cvs z#e^?$Ry4}9;;(=I?`K6eT{=69E{(?TsGv)HNBohXOJB)q17j>*BkouCO1cDkff!iJ zfvrpZU#`V@Ppy>L3xnj^dTliNzlH1O{+}_KbuF#Kw;2C?%HsKPY1dD$mhmyL&Pp(@ zwN_!FJFd;nGmnY=1Z+o_wjr&cZ35FGDQVl?oszc21Z|rn?+lSHaQT5uqq3OW(XN2t3d1({t%cX5tXKh5^T-t^;SAT_AZqn z6|{|LHu}EkDZ%@Lrrkxf3~K~sV{I&_dNgGZ*QF>4;NTZ`D4Y2IN^Mi`I&#<0(8zGbWWn2o}H9X(h-Mh~Kkw9+0etEUvJAj!0+Rs=L>S7B#**Vl!@Ll_~9i}nU z%=na*bjH>la`S#RE09s8|1Zg@Pj+Z;@>(kRLcZkp^!gV9ovbz3xn7mOWEI zVx{t4_X$~G=hy(x*@F|z49fT-e*e&=2QwA@`2CS;9rOFovtNs__XQ5AXFl~ak#M}# zz`p8aU62|L+gc=Sm&G4&{?XWz$<>#$-Vtp=tX0N%j?%iPbM|%Gha4X?+{*UVjPng2 z_Hc~@JuA}jb4t4fX=95mPyRLb`;77QfOBN>3x{6lJkTAfRO}*G{)iwBXDegMFkKVa zT6ty4UdL<{{4RWAvgv}qLLpk$>fG_i1Jch17}&{TWqiEUr;3;dWwb|pg*9E^uRNg{ z65~kV&BWLSritw`|2+RM8NXbou=#{eeTufqSyj-&x+}z@YaLqSfxhu$sdERG5Zd=d zBmAKZ^sl>2-Rq2&b9d8NL0@5$wmej{3A$70i4oHXwikD$-*w;<5Q~bKh;IDf5{}!s z(#a$FRQQ*6I8$hS{u6h12JvB|Y21cY*&n`6YcRZ&V?<7kwK%gTDE3pYU&(wq?3btL zm)V01zwy+dDx(>Lh;}gAA{-xXY_Hbg`{B<^Kokh-I8u+N&4* z9X6FQOX0PU9EWzP>6N9PbYl_qr_{x*`fqnJ^Q2!W&Rl;gX>Ou5KyBstow@48*6k{= z9HwF1YB46cR1U@&_r!l-`(kl7`QPesvBO`y1-d%KEyI3%P{d@Uv%#;`mSSB8F=zUH z#Gl{iyvO@xrj3}A=hA$Z$#oBZN#G`6%}vRQ&AZ6GA3zKgng_p}hn4JO_Mj7#|6w;$ zLjObZKkhKg=)WreH`D)e`d=ddH(*V8-WREn-Z61YatJ#sZiV@F!C>n*T!BY!(Cm7IDQfcDK>k zA;#_B*P0nM)#PO3X@zABhHGCJSX$sY3Y6a+3a0BUop>zZeBnR7eaZv$X{6unhpRKI$BQxVBUYHv)6S@hFWJ-ucsY4$f=ndd8=lNKRea<Zw|bGaj){^%^6j)EX0L?gpjj8`0NC8(!=sZN4%8%;B`39>A*gkWICo3 zz%u~NgI&x==Sp7-sfPrO3-;nHFYU!y#yuGL^NT%kj~K@y;u@J)vYV?j3)1ejdk4c=G(q z?bc1T#yFZs(0`U$>09+B&9y&*-^E}%fpN|o%zDXn=h3tCM_4n?HM(%`O6UDTk2<0S z=W{;ebq(gbc;Im2jt)8sRjaq2Bpw!d{W|3x1AEFDrtA9wol21M4UqXND4(X*TRP?I zkokg?Z@0|%SH9aHZ2yFD!}{{gqvtkS{C!x)b)8De8-t((j`5h+mwY{wd(Gy8WPZ(5r{3 z-`;r8m@y80pKa5+@Oa`Qitzhk;CfPe_|L_pERM7FZraDL9(3r)pq&|Z3CB0XnrJDm zF&-J7G~?38iO%|Q#2=hr*Z04cWUyA$AIF%FLp$jV!%!fp2K@c828~6~EAwxp{2M9%y5i60-~Au*V?81Ni`p@|f^;7=aVRLah zG$MD-(N_@dG+GG1T_I9)L+-bYb_2=z2_w@VUdGuH; z@t5yCK9=}hlCPhCw!jic8A;GY*wv~#=^WYZ4D(FywfPf1lfd5}QRL#tC!t$GY$N#E z>CIM3+hrn-EbeEgk8rwx@eiC-%Hu^I_5-4PUiLjAI+3P)lt0Nh<|w1XN-3ROMylYY zgPPZ4D2y4~R|e|zqRuqpGwtGbqHeDiGLWx-oxQl@lxHIF`WdHF;Et!{7@R?4pk>*} zbBqZs!Tow&QRSJ4-^F~#rb|0{*9ITDueyFV^m}C4C1>~9(3k#S>Nuybju~H2$0uif zz7E%SD?(=~{Dfx$H#R+o_@kQ)#6>t!#&_^)tq7vQ*c++km8 z;+d5Ghj=DxRy>npzV{@VA>B^vZ7=qU11vwpB=Klot1m7|HOJua9w#ozoFDYXtH>ND zE{Us;(W$NOSqHvQA^u!Z3^Q3E;z5mvZ<;<0zKx#oYMlK?prf8ZYqOH}f^YmnV}c&% zvu}bHKL>dx(DT~L8or;Wcjt^9mmERgBgc+Nj{B&m=X}-!!53cY+nGNPw>n>Y+RQBf z>N4ipMo3&R;KOQ&`h_8WIluv?|pR)ZxFYfNTiHbc%4O`Gd zC20JA@P`8&R~z?~dMa+g4jnSJx0>V(iKXjpOcv)PlZ9G5T&yIL#qd>G5MIIkgD;g5 zX=C3_=zhK`<0G}HgX~6NOAya6fN2M%(b|rc)8lnc%LF?!f$9OS^#pwpk7br`v;@ZI;`@}ya?cWw& zX*U}SjfYQ2njId+aMObKsYbe2DBVevZqt=^huvtb`F+xC4tcno?ZgLG`&Kz+9ki~S ztL%?yU6n=Oq_z2g^YdS0Z7=6J+LX1nUv$?ttIP3zB@VhwGhv-c`=Th_Gb{%Gg(kokRQ2ZXRCCcX5ahK3}fy*=LHg z2y_8$#k$q?dZ#S$rZY#j32kr9YIg$dMtr_ltMf9axyD`w`6JrS@qI?}oQc@cN|fkY z?$zkaiUrgr&uaQ8VcYxdB>b$pH4(3Z=MujgdwN#znJC+idBOa2_(BHH&j(_DptIYBbqO>vF}Shm+<4Wr@|A6grh_LH}vo zaA&L2B1Ulm||^)>Qt7iVmTT#LUMEpQAXusN5{QlrKC zyh5f2{RN#V89I<@8u;dCj`n2G*3@y@T1oT=Z3PXQ5Hq{MQx?#A)9Cv&wzY-bH108! zJWZWr!Pf`pZBe1m7z6(WI`=SlAv))RI_wMLZ0~m?_5pz%C;LU{P0pc`eD>|3wQWtnS(IMN_HLE* z8~Q_)ey{jovk|7e+y6-XsL|wX9zLJ#e8yhyu+IqE*LrP$d4f|JLsrmD-~dEY4>+)s z%WhlfOSWy>|AV&W%eK8K*DL67d9Q7@f%pb2??FF_vl8cH-gR`o!ylSslfMj}(e$Ku z8^p&xnXM1@OMUR(ZQ{;J;OY>~rTLy9@8~DU7`yl`o+xy*K7FA9p8l}s%=dlJ1x9Na z4=NaLroBqMXuSD=KU{AFBXbSlbj-bIgpms!ZRBR-=5LH78Klk#g>Nx#sj8sgwMIyv zYs`i2Hd1c{(l;CS??)SfaGjB(Orv#LYxu+SjrliJu%6dpy?cwJg9F619(25nK@HwbPY}nkQBHqgbIYZ{|FrI&x3RFa9925UE2*e9TA>Tr(%Of{8bc@)DRgU91}k~x#q{sAO^ z=juD0vD9YJva_lFI{H16F&}5JFT*(4;St?Di!p;&I5R0NLH+%z?60b5R(799 zXZ11kANmOT0^hzuiD@#7zK64o$qe|Z<>_(Zo4P^YVXhxLkM9eC;q$`}gskV|^NZRY zkoNzl_^s$;)f(Fk*b_?{ZuO z&?opXARl7U1dkI_2b`j%5cXEMg|>oPrjjmnObz8taODSeqt4?MkKT(k*sNBz|9 zr|uAa+(fc0Xu6)d*FxXMT@&ct6Q3Owd&19g36m!FM2Py1{qa@!UebPZao{zo$BmOV zf$#Tbm}`jdgggdX>&j#KuN>eq;Y%KhAdXIhH9FR01=8RZ@3+)Qy;Y!WJd{haxT*{y zo^cTMZ4mJYgB-rwB{@DA6Mj;Pa=$ZL|0Un`2B_WRX|53OtDM@`c2v@-VfPw-wZ;OL zgkNnSy57JsxrF@+jYXVfwRmmm1neQ&uM_lpo!!@nKHh!>@nUR?*GBz`8=wK>DL=*( zd%m3Ip$DAmi9wQwsLy)XZuWXvPXCH41LaE@XmhRc=()s4`+OwdH#pU2%RE|`?>vi< zK3B?2o-6HySz|o%72@NlyfEzt@N|`w&pO)EP4d5uGVrW~lms?7L##slxUlC=C2@!2^rrpr&{!8S#SksM5C z!6`CtF3CSbvt*(2EE%rmS3+LGox*66xm=yXJ3|l3bES^syyBg!U)Uqx(K+P!vhY*# zB~D3pIfiyH<34xw5w3mnD3$Hq*^cTTvmDkTvz{|7Z2G==%E3&8>Tu%>YRbm6i0_?n z4iI0i6Hi!mWgsKu$;lSm8W7)nrnFIoO=W+bfvdxToh9ro6_R~mX9@di*zDX*W8V2B z#$*=BkV~DDd&g}SY?_t?rqQ@X+MV&g5^12n0KYzPzL^PWduSig{!!am|4i$L?O!}n zx3iMQB1AF(`)w27mHMP7gXh10MaUaX4<5*bq)qlusshL8Z*af)POXfqF7@szozVwt zg{_a5eTkC9N51U1u^R7^bhYs`VOQh&F5wQDW1&%gCDIOCHukf}89QI%U%;;1jXO3l zEACicR@|{%zK4UqrQknYdrBYcZ%4AdkUMw5Xq@qP_PGJtO%!S)28& zH*PHd*AZ9tPFiy*#zJ#39<%Fr>!!KyK0x(#(q}z=lJv<{c2XHgb8KDxp7*vZ>v?ZG zdY{P{x88nj0nQz_Cz^1=Y4o97;AaBsNL^(4!p&VirG;%CXdj#Ba4aTa`@pmSn5+@v zox|;vuDLhe$n10q?D6Af^;q2fahr=zlChhhV@7>tR2Rz9xGdD!-dolw*<}%Lro)C9 zn2zC=W9l5zuTJ9q%>A2feD!A5xl0=5BS|e141t(FNLXt<$NUM6+tox$&ig zh{Z5fP0Zn)`~Vy zGecZf<2bJz2UlnB-hZXk-R4?t7vuSgxYpB55ffZlvR2t`X2-eq^BsBL`bx@Jr0Xa@ zmqTSBuFn5j4rngqxCeiKfbHpFbLf|M(BG2!+5URU3#r`W>ASLZl+b-$*k7M%i?gzW z&T_2BY4CNrB42m|#Eem6%(%CW+`RQCg@eIn3bA6N0?X?gOP@;<1e7KJ~RzLgs zK4UzHH|!f9s-M%!_M}}Ng4&99MwwHt7W!V$d*sD)c!h8D$NVv5j4<$=@@5CUoQJ_|NFnN zv_X^if8)O3{ty26)3WaWAiH`Zdz@5yCu4F0dwOkjC&yEJ?zWc>{vg_O@Eo3}J*@9j z;ln}umg5Aeb&N|of-%|{`+o>H)EOyuc)7g5PkQx1I z(<4tFa|ime(@E)W(K?xy=W1T6o8z74aOV4$>pNKw5@fz_x*e6}PGQ|s(!L^1 z@6#cYXR8^z!<&`%hcfN;%ukE7`_r&RtA;$12VF@a$B!(ApWqPK2~2?VUpB z^A*$vuS&dAc&Bp(jX@|n(@@esuyWEHjp@Tg zod+Zj;-+6t=`VBBN09#eBr|U`cFFXAr+tGqy$#%iH1Q3zS2%4LY45W9D0{d_i}?l~ zF7%YJ1AHuzVE!#gw6!EfJVvtFSxx6>F6<4XUopz!&CVL&2U6NVxWdR!3@~7KSWfA4 zqW7A?u-|}vx<9&CY1*OHO>0;f;(mCQy5IYUgMTnBAj|ym-(U5D6HSls*t?FmtJH zul5z9lU`~=z3J6DU|Up7Ys$9-^-!NQY6I@*L+J`SZ_9h%*GPQe;wfcwwJh9^L5#Q(o&Qsh)!~ znZ8{QJ^m2f#{qkV*74;^V!nkwcyVV&dt`0A-K-+MJoGRym_Y}xM|_vO0mP#g$TD(- z4yll6r7sA3%kUIy*^FTZy?@fLobQ|@{m(w+HGDnW%^<({{~*($0Q;b{I%5kJ`ygh6) zw$hp5AsNBNM*+?r-A8Pn z9)Atej?!1KlUrhh$`v`q^hUx!g`cL0S=(}?g{hvbr>H7$McV0~YFQNbR zeT2R{FQfloqyO}MguXj3r~jAIfBHT`-$=x(=ZX7|} zeIxHLWWI$xB9_;kTMqQzb<8X4E5Adg`=K0Pyw_zt*yqr981N$pUrlv&P+rvGjx}(C zQ1231&MmUOYh-<{JyT;=o%hJJ*U38FG>5b5#o5PqBZ$`qpGoR(O!gPL>wUC`=JS7n zi3RNc&a83Bk>fB|)-|z5#19!m?Lzy`rf=xy&dh2j_>**2J7>wfdR99*u5~(MfgUcP zc7Bc8xzD?uc;XJ{;t%QERA_E}+s(rJleVXW)}n$nwcQLsM|xtujWyYM@%Fy8iZ%Mp z?X*tlvwFLk6K*qdBaa(-^qo)NShJn;w$u8d&l8`2kF~sSF6Es}pU01rA8Y#-$~%QV zzc@~QdS5naKb_l6&U@iTUi+^^1g6rVnv`k4h(d>r)NmZGP5e<(-;-TUWX=sJOz?isM?Bh3N`5f2gOY{-G z25vj1d_f;`&_}92+OLnfZXc72tFY0L|PNqL-QF(y+q_Av+fo1Hy3Ow6zAxzGY}v<;{=>Xp zl{K$_dgp(e*Rbs8v&ZSDyLP`S`*{uZvkZ4WzzCuFRYbgyyd`pu56QZX|3m-P3y{(zE)DHlfd)_No^Sy)#_Us;UdWfL5gzTf2r!T9vG`yb0KXT@8$oFQijl z5?A)JpD(hupug$9{)Qy(c)qkbe4fhor&qG?_}l3NOt)T*1Tq>htxs8G4N!#7Cg#4b zr-$F?PeXf_I{O*#IAZI%(z;QvYE?X~%jONtucdlwU7I&xNWiuje1ebtKWE$8nn3ZG zhpUS7QprN$Ke2-3vto`p(K%_G8BngFGx=(dk}$^6xSp>hl0HvD+~o~qJ=%{*_E{eA zvTo#BmZ$x3*u%_b-4|rR5;+$^$s_P@;*lm451GXs*l&5#W6Y>@l9# z@T(--v;nJ=M8##?UiinX!5O1QEWF2B*cW|;&frdvU_H`wZoeMj(du*=U+AK-g);0TvUIRo~{t7$$fh}W%C6&vyLHUf`W zZ92sAH|!CH1u|U{8`Q-IYLwVKO1S+C@qvO8ALxDai}8Vs0Aloa9V;#fy5hG$r`LsHxQR0}vrW87ax}02lz4`{@eeKa# zabFrJFP@E(X%a|7?*ek4#pQcVzVD#-%d_6!E#K?%{puXVx#)WzlkY?F{egkGcC~zO z)BAa7JMhPaP1}&58*g&b3x^(k=|Fdt65{dr*)YMMx$ipYT@V;q@;&z7_bJU^fY+gH zO#3|>(^!XPz|~b(IiFtTbjRc~RX+O{J&V&b(7a3jbS3XA$i8dTCg)kK^Y}_f+fHk2 zQ=z+l_bAn9}%94L4Z9+c}Q4os*)oAxZqPzQqoW0XFAK;H}zAST{)5SD;&hxz%|zSv2b{U%TAgyeFHYBT zqWSP!f_-lAcHmnIJRa!4%C!~rzlHCbPL%W+`{2i*UsPU$CuA?D{wRnm9B<~(|4GS)AC-5#i81piyHakOTtZ!z$-csjKVaUeb z%a`#}fj{Nf7CD`Bwwn9mTg}7Y*Fe;@t7iPA5m_ur-e_tXFA6q5OgPidqz5Zz{WQrVqUb}+is7!doV zv5)fP#Frbni6@NCDAju}m3uSgqq;liXTAGwU!Eg#=pCi&L>m@T+NP}X?$63Y`487n zJE*))wDq>Wbe@hTt26#8$3%3Wby8c7+(dcmWc^hB5&Wj-hrdamdU}R2ptW$MUetRy zN}old{N=QUj?nLY^c(RrJqwzwBa7)jwdrsJr6HPoWZn+*rK=oCTj49AZ16-PvR`CQ$sAT7Dk**_H)SKnzZ#Qmvpk@HL)HM*9v}d_guKy=JieE&+Ag_ z!_#k^Kzjn%NWerExI=j;CxkOjpWbWN!v2%;e)za$inR`3ue`Ui{Oqtl4}fn2E+XQj z(OLD=rlT3ep9Mx!=fi1ppH@pW_j+J}dti%^n@)})ntT4fIrQ$TEdE5=Y5>!r_Z)<8 z7VQ<>F^2Sg+y}(LC>tYw59jmm8ouw@QxdA6B{ zAEES=#z$#9%8B;j$=l2$^t^1-Hu#1OIUsqX2BKj{ydnFDCf1HC(+0KW&R8wLc!Y>y zvvHKqK9Yn^Y?B!>_BmCQr>t-vVkDc0h4Y41Wz+dvSWa{gx-yOScp2??*uk4Sj=uBTvG_m@H?o99a z0W*rmeLj!-+dS6S{jteA)wP+U|5Y@;oughe_bqHOAfCh|dN*Ew}ZuZ|CT@O_t1`nmL++KIGBXut1! zfF$e6E zc(Kr*VtjyAL~~?_Hd<7tcTvctYI&=I1NQDyq_C~w>Uo^8sK;)*)bPJvo4N! zT8>-X<^U@fJ{1+T216y_2|As}PR(Pi=`s~qXHC|GzkqLQV%`C$IqD)C<|;L|OL$SvTy* zA$LC4Tldmq>n6VSWU3o72mDSTZ-DoxpgpwpN?~8hc8b72EQSqhz0=?SWS!(!8q0{j z7FO9OUg2~zFX+-O>H~a|g2ZEYhBuj0uk7RBfzb!v-OGDvIr~b0E;k0fEN=qe4|fXS zr9Qgc={`d1AXlE>_tHFnB>8XPF~Ei%wtvGo?hBWlw@_VZ)Mz!v!Xg^K;R_AeOam*h z^CqIV7pF}ht>rEE(Ag+umc#V?2t9Z0>W-VA_?u49>q%)dMESR8=cngKCVg>!)V(Vl zH@#}y@X=n}a^vI1-{}87ZIkKIT8Q_2)H*`H-TYV+t}F-{ONDP2e7&@G_Vt3D59W;R z=xCfzhMyM6XCGDtGV36x$r$NlKkacbdp%|GL}?prfv<$zDP+r18Al9vDM1-q9rq+p zkPNj?-bu2*OagpW-}{H@eYspm3gf$reTI6UKP8ZP2UxPSZzj-l#C%|yjJsM&3w|LK zC4P;{gkRRvlpZ!8Q%I(qDshpO_%tgLP4K>h+yEJ~cdY5RqAcaM@tG&-wJOi|lUT-^ z&F3O`^6761c?S5gjZkl`u%&x*dUx_de zt|$%M{%==FjOWFO+qs^(tM1_^n0WGEJbG(aCDr3QCD0wx z(vBwW^Hi;t@+OYSJM}nuA=7igHtfMNnuVTLBO3n#b=_lSaKz!*D%G>!UeZth%VXruS_nEJli+jZQpbdYdHlTlVX}m|} z691rqUl41C^*D51wwx^D9fT>(>a4y%KX)I!Lu_7@q0#%pIma(!A*EXfylq-vs&``= z`mofsetX0;fkm&WLHqKvlO!9rJJAioAN_QRD-1uR56AUk4#Pj>tI}2-d!=Gb9mlHE z=o@xuSK+>$%0WKFEUH3zv_G(q)o{H7{9|Ar&cBl^hCMf%U$1|#;m=XE3pldlx7Xi4&o<12!iIWV2p*Rlns~Dd&Icg z80@Pb>$HWQHv`97)_Fhuf11yrYwXYkUVASv668CqSE37rsI!jJ-6{8cj6M~#?+<6` ztXU5Xo*>42xQx{%=+Zp7&SE^qv%r%Tk76Ag?Q6N_kq17@KfPS6ou+?_bMR8>H-K{H z%C&=W`qL-k?#x{~mmKY*gHcMipVrR0%L5`7FZ)I}h**CU+vGZ```kM6NImB?n(GqD z<6XUy_Qk?wd>^9Aazq)m$CUBAl_uBk@~$4O81Wp2gd)p%PoeCA%wvc)o{^}xfD1c7 z$}5-e7yQ@nXwATP40-;JH4BVY#z&gY>!~`gZ$5|8oV+U6-b%T5+_i@oV288PLN+Qc z7y5$xsjZ{)``!(t=bPmk*jVPX5mUW!fLxOrk8vT+2Op(F?1ioJUC&A497yCHyT(4I z=WX=7n${xfg?>4mhc(*HYZU1YQ<`?zgVOT>@@^4rKhe#zCEYBObn^sBH(jhsq3;(ylp#qM&X9Bgd*Nc*-;brg9G!8? zD$gqGM3=^-L1PwJA)+xGKI_Ru{)aL_H$FNd=tgz^v2^1>8lT^1(T$jltCKx8I9qsp zRE*CwF+M8Brx4f|JU*pze2R~AuCOnL#F;*N^vjQjo7Zd1vPAx$S%awmKc@ai|Hm@; z-W_8=t#&N# zNr`5x@N2akBL{Y$m_Np0Cw|4xJboQ;G#ucw`@<^_jNH}DhF z)bZVSNvzKKZBL(_8QTs zN57le0?es^j2oDzG`)|ufmhy0?StQ73H^R7)JHp?qv!9-aa}-dcVi5c=^`$mjQ^FF zt$RgVPT+P6zhvfhr7c~FjKcw+i~e~AXXU{dbWmF`-f!;g?z2UvemzV5f^H%>Fk~-4 z8rdJT8Ts!WB6yk-Sr+{s;?k5VtQXo-_w3lh`YK=pO-ygM)70mX(IM_Gt%n?i@2NT* z+*$D*R=UHPy9K!29c-r<8zSQFq-akrr*YBcU9ubR75o6^HJ^P#rrAAVwpV9ddEg=d zC+Nzjy}ZtHW&9o2ei1Pt2ZVP!+0U}a3i==5JVF;yHL!24uAnvn=W(@H$f*_3H^FZL z^pf@rbP_n1p^usd9Sh>PE}(L8?~Axv`U3&@`!K!KmO0Q-Jxy&cSKs3M<(HX1T;^yS zDbF+FuGp&=TR#Thk$AvSQ?yPK4_LxJ<9a(U1>f))b|ksf`5Aa^S3V#^n$LeVPb*bn(lkdq3(` z{08RNrv?nn$6=4qPow=_$%|cf&mybn#YGnAO#zkT+FYZK>HiY?H|VKcn;`J5ImEXi zeTB5yxngRdyLSv_*^qC7kq4LudK$QJ^7k6XzJI{kBj?O5kc|G9 zKMG#zTFCQKj^9UZXZ#G=F4#_V(lhw*fwnS+3u67!xh62ylhPJN*d-sPv@fwdzk_w# z&q-f|Kd{U#%GpZ4%TjU69S5XaBh&3m#Y;C*`%y-D`Yi`{Wa!Hg>I?i60#Zk)q{Tj5 zeWI|D@#;S7hw{E?^q>&i(%@_hCYzjm_RCwz={qR>4;br?_D2DwiwawGUfYzejo!Cl zzfl>zXCuA8pX+JkaVP#h?-0FrHCxhzCW z*?hvfEI#3}EIy&y{s6KCF#qU`jIl0%ru{w8&?Mq(T!+}fc}4o$z#3$nBJHcIfEffl z4SUsX&+=Up?wOXJ{V4PITy7Ngind&ac2PMmuxvulh}Wmnd&s;oDvASMW7KT-eJWz~5FmFJG>lh|9Atb#6-W9zIsdmXj8#qj8l8ZB9KMQ67C z1lAWY2#A-vRq2~=q7j}qpi`Cmx6a9)`xpD>{;FS7dE>dfAj#e(5t`#@s}+fL;0~)8 zbmJGyzh2GsS@2q*&&!!c{#?>$^zj=kLoMh2p$$IIu{8IMuL+ua@SjrFN=K}Rq)zff zv_013Oi&uF97*fY_x6u_GTZ&DoWe^388t@pufOB?V%Hd+Sh5)YEzpDT_)_{gu=%Go zf;Euq0WV(2c3oH(LG3|D&?k*qcG z^RhrD$@^QRp*HzCWV!`19X+$_Dcw@E6?RW~3d?OO)#cHOtjn|N*o^f|eZ)ROKlc@{ za(v-y3?+7#<&XW=z#dz5_A{oR)wDDXFF|LLNjs1Df{%~>XZnb;&!O={xpO7nvfF-#WFOYO$hGK;Bt0E`X3w&(%{uq4 zrr*oytX^KU%K7T+;%sY_XBO7ptu$u~=v}&?kC!QVls$Ad+GTWD;`!(wlh zMZ`PUgVlZpIiSg@QU=;MuiSGZPu{V;FY`Z6`9V|Tln&*Cj`G^oXgajkQj`Z-2Kn|6 z2H&%sV?22^ul3+j;p4~oD1Agvl%^EX*K(QnkCX@HBTqZ<>I?hyY_RP`8jR)3vOPKf z>FiGSo!!5q^oP0r>+DY1c50(%-mn#=c>fH&A5Ue0UTXCIciP)dp4zuwo{;rDc~s1i zBIgM29+B@V5pR{~0?reh7k6T;X-+;UaOFDDe((V8GEa>xZ#ku@(uACKKfRmZ@4QC7 z26`UkIa}#mNAK^Zv%7&l3Hrq81KmrKKC8jM(`Ox>>)YsDAEcc5eztrTV!fb{uYA(3 z8?qI?ao>A@+M$&Uv|XR3a($(<0eFRxh^4b#Pm_h`eod^C2kP?>+qN*YphEH_>+zaYg7mA=A7^X&#fmZ=v6K z|Avw81ky=Q1T@xYb2ieL!3Gv|OO3)7u+7oJOW7Yw z4U4rnD%|w`$zKz;A+x34yPDQGXs}jJZJ@SKP!?LNexB<6AIATy`u^j-XKKG^uvLk; z&*WVoc;wk?oSyZS4f~a7|MKYBy#D1)-eJc2r=w?g_p1Xwsd3bC+cUk-8f2Xx(0E`h z*q&zY4))o@SiF0QlQ~j4kmm~jiI!$IU>_siEzJ{j5WKb|Eeok_&Z{Q`GFn=U`=h|v zqjxjqoc3T@qPOYhacM-vw$<;XO}nE}octt+-P1i6ya1Ead+l;vI$& zFRY#UN`bQ?Y@S`eYqp(do!@k}oktvR7d!Nbl=VG%ciEpJW*TCR5g#&-{q5_l{eK7V z6R}R_IDoA#w$Iy$r3Ttwrqw!2NybakI>TAAen)r4pKf#sJ)E_$G6QLto_X&JdXPd%)N6E_}namdzKEY_;6e=J0!^s`pjIUTC+j6OF z3;gIys4c4Ufb%ewg|y#acOX-OxNIaR)`e@GH8ie=l~vA@Q-D+3WMLm4CVDhbg$?8; z`-2k%UBY~`|6sb+X&Bq#G;Z$T{k4TZw6!5V=a z2m4*X5n7xZ>Ct(`cZuPdDSlsBlCIyjRXikg{D!(JqmUg1PwKSA}w?*!{7B=srf zGC$7Kl&l*zO()QEtOcxt`?F{fWU(~vap8#v}3YD+LJ^tBq+aJtq49wXwzfmdLxN>yOS!X_gK z%tzn}#v7gAZ5MtCXfrSms&fbS%CFE>Y%3M|sZm+a^W%oSnV#loI4vP)7;V8E}%WacDOVy z?GhvR8ulr;+n%K;OCEzwuO|4TMp|dR`(4_o3tyR5j`v6NwP76X5x;zg{eHahzhkY? z;m$zJkxi?diTcY-^GftO3w40^R^xR}2srY3ol~acdpYBGme4q}UY+(!$bh}^4Vb63 zi2ZXG>c%{2ee(ppI`rx6GYp-&R_BbS{f(G@SJ6DdCS%j&K*k-j^BDh8*dDp}bQ2>l z+v_&bx=+)(58`ZWcM8G=?}Pqy8hbZF^Hrd~>$ou?(?kbWPY(3yr>V>}?Dvy2ACb?G z$oXAPYY1yN8S3A!6Fplc1M>=ZjdYKL}hSApkX-84o zH)Pt6WLlwbZ5KA#wEl-unvK#P5Z_znp6*?LE>36+eG+!siqhur{g0wDjuPwcXnpk@ z75A-!q_0Yd))nlK%anQxbm)e^iTf7DU5_j(b$L3XtDb?boL(#LyqMRbG`-JAF0Kyt z$r&ElHedgo6xF}-tbr4N+|`ybrD^I0nCl53~>jXzy!sp&V^-b%#luC~V$ z?ei+hLLD&?$22*xPtYSPouec}HF=dK1F8S_T)B*8Q2E$i)u`|=J4EZjtpSk*Et5D)UKH{N0cWG0)yz2k< z*>_1(y5fqa^m_VyS8uYaiT9nNH*wrw$T{F6s_Flzlf=0cr8KiC&9?WB^|AWUhxnzl z>=j;RNK{|R_S%JhWl8tng)Y+LSMsW#u^&1Y^m<+q_C1 z%K2!}D%$6Zo%bm12d{s@on4k}jWZbS3UchXnec@eqK5@8&i8%74{SXBpFgb6M)*V; z*KbHW=I_#(ykNDEcON7gJy0>Ax9`St$TwZjbZ77ku_3=J$KrV7^-)>hc+I3V3*7OF ziShc24?OoZ_Se12+lOx`um}Hz_QQ==*}&ThX!jcd^`S1r0p*wqL>vF=gKp*;`=Cb| zGBLcB?K@##2cBwfaWn1BW@k2?*RVr_?X)LcL-nZ4(>_Rf*9~0dOr|kR(f6k9!f&oR z)#ROk7?e~$urg4;w~=UUB5cz;ON)o?{22673d@yD|h@miLK9l*#+2IX>dEaF+(0L3vNK54t0XIS3qGMXxC>Nz|2=#p_DZ=3P`rZi?FM z%7(PwuDDp-No4+tSQmBHXOjY%eIs@t7QHp;uYxA!N*fULB|&R?LHR1ayBkLB#COj# z2Qsrm#1}~$SKxP?L*?Sx`&6D1!x&v-9)75xxM$T>#be>y`SfC|=>Elw$8Ag!cBnVV zxzOTGrR9mHQkvGo-o~qoL*6RqMe1Y2YhRB3ymyq&kDnFTpbtIwTxAcwLC}b( zhC4*!19TBvyUL*Fxc`YKamLvV<$`9wH>isEg+a8x{}rz{BlP4diVTML9YyTknPedu8aCIoBo4F(YH0dUmaIw z)j@P^?+=bs$Ay%pn(BCj^^!}SQsOT_e;=m*Rn)(kbk={T@+hy3S3KBPV*M@m3fm9F zUWm%r)&KU0Gtj-KLApI2ake~9b>ke(_7RJqFTn2)u5u1vRABc^6yv>Dt2I6G8WZ=X z@YnIv{FNxnocQ6M-u_`tJ%K$S>q;sO*1y9<3y4PH9DMDwo=kO;+LaJ@4-WGwKelbg zdyCi_^#wBXJgWO#>=A9LQ%(I)l_DO~UAXTcetEk`SyHA8y()OsGW}lm5!uDENwIBv zaEIQ`zIFq*A0XQIvWau$$(HpBORD z&;H>+#_iWxUf?<|bAJ5?VLRK9I*>{J{=e__V|>?W{0@93#_zSiig}9-80e$3+DBvV z+e-bPP2)Xy5Y}egECG!;MV|XZud)?c*I%{!flbp5+`m0kUWCefPL>x@SC&qpdNFU{ z0fK`_=8*m#bGNiQ4Z~a6)}e81E6W?>d2S7RChQtyUvoGn$1j3(TQIsCz zFkg-h=mz?=hT7rDyVHKOr)No-D)cHPiqNY-p90+q$4pWdIwe{?@oV+Y%6>AoCS|;j ze|>=0)fNxzbQU|K)H1uh=(dgad4|TdEm$HDV)y z&U(Ze94N=WT8{mdvTx}3U3mj-oad~YNi{heX$+2jhI_FUj_Y>|f9nL|brE0tv`2Z3 z$3heM)EErK>MNWwb%_P~r0PqYZ~ar;OM*teO!Nafq{Fn{ zkcaK^iSBh!{VyFAYlF_7C6KRyB~+rUb+8`FX#7eP`lz+e6yGZ6&op*=vEZZ5qw>RB zzF?1ih&^@@@3B{p!Z%>68B~|?IT_Tv1|_ox=ssgLjR$-Mf;1K$DaT=)en9QoM&t5C zKicpvd?AZg@!s(mxc?p0w|^$f{S$5z`-k|sCyedR%~aMO;V(tyZZ8n>5&&Qz33?XJ?q z{+>yD-~jCb@c3-ww7HqnV{gND(ACM|ceb6=xm3=lRL%tA-~9OlZ3B7@nm>2$&Z76& z)8#b3puLD651Kf4OEZl@v*S;7I3-EYk!CJ)G_`dU^|1nVJ#S`k9+oS#HrU^g=A52Y zkPKU*;7)QNug%fa2i#AMqCTKaXm=0gi5kd^q<1sDgY56px#j9C{z1=cKkd^!qMrSEQvX5k|4i?1 zp)mk0NK%wNBeQMuXx&dbajlm&W zV>6-ik@|kOo*k5S^=Be~TGHZeS^1kk6Fz!T`iz!3)2Z?f%+`Nq?Fsm@9}o65*uqpK*b z|Iy-QIYSl{B#lVmrd;YfG9Gpv^K zp-De5oM(4YnkVF3P8c}wnD-_0Y(Ble;WOyaw%V~o zleH~4(Dtd9S>P|f=uEwl@~r%X=9bDjd=~MWXA{3kW6g6+{oO@l?dqI@@S&%1M!nN0 zpO@Nu(g|h;|ECP->&xZzZYPxqSrodtM=uI+8YLvsTukp@rT396`gn3mdZr!3ssi|f)U?;m$keb9-EmAY?i_hB01B-A;}a}F{utXw2x^o3tIwE3w6-EJH3|Kke--Rw_4 zGtVxZ2HQyCPw$m?%ea5QUE@jqgPBrgrtRWNVXTP0!raaevv-X8URHlWye&huW`@y3^FX%|U;9;7pQ%lVZ?$=#R zfl)4|Ktf^)B>ON0-trw}Y|vmV&i1P}UI;(qt;fX}P~H4(S^8^*yngPpVgxkF(xYbQBNva z9F(yW>9^gfylO_Yr2*ozirJ??+BF^4UNuq94=xlsHTPaJLVfq7@);M*BYih;cSdvN z$yb!~gKTdn%ZJTej6TsM@LD`M;h9EmTUP8UVE-Zs>^Q*-B zZUS9`oI`X)6>)S`++RkPIeEzz0_2PQct9b}@4>Z8IgDIBp7Ct#-9=7_tYX)JH9 zk!QL+NUV{?GmrA!!5Z2}s}Z|YyUF-1?Xiz~dfxU^J*zc=#SA`l>ewEZao{ttPy4;; zQ(F)hE)V`(Xghpx!}?;9FBUsf;;#gJj0Z;Nva;9$ukLi>ep%>4u)d++(C8iL*L$7a zte?{(BA-sraVLm(Z_>NY(E%GamhiRK(n)(1?zmvPtBCtE(Blnbdf1Oo1x;69aS#`- zjMiQC9aaXm#z&~lxQC3(F?eKnz!WhPQG%T8A@Ibe2pQ)aX*+`(fjNa zZo?9$F^i>*8)B4}=u0d?S8I-;t8UrPR|>nIpYb_zon4l!b1sm+#x8~=`WB+LUHB_; z)=<9+gVA{DVJ%$y!rkj3S|9mQab}-LYve`fE$Bb)1-H|?Qu(fk-u)J~ zXIdxDNTR*d**|i;78hsO&=%99PO_Q{YS=cj?+oL3(1p-do_xj8?&~j9_`CsKL~M!i z@{W6ezPC62%vnq$_BxSt!kMYkI@P>ZNS$MNhXKbNaYm=XN8#;t^v@w9@yEC77h`H>~7qK553p%Xi%>(X0UJ+~xh76!OJk*aLF>b>Q{>Gg| zj#6#MFNQv7sWXi+QmWan7``dk7kAT{=lUixyd$aS{u6Hl&8|(^G#I5@|2W3A@mK7?c4BskX1Xuhx5>G+7}yHo%0-~f7mDy;|XpWG3OT{w=; zA>ZW%#!q2Iz~X@o7j#7bnxOFB;JXfbhkR~Y z?e}t?P2F$(lP$#JhR3r)R@}^j-(g;OBr?AN5q`JR0*jom*-wQJS(k z3t2z)Iq?_2WW9iRkGsE1M-k~Nk)Q+YpL z&3p&;BieE|$ss<8MFII_=Ws8b_ewX`;ug6UmlTV&Se3;m-biK4lxy>RDih~MZ(E~o zTW{sIUM%-Pj^1h@en_Xjn|)2*r#Tk;aFK<4ZvRddm~*{*kob%S+LNzRx!8}v*uBK zd5jnHwHuwkU7%RCsTjz$v&AnrSD-pxdM*KNWV$G4)w~{ zLf0Oa^0o3rpL{LszRHU=Gy39-XD;og}*$wj=eZHAN&>_?U;ds@253saF|qHvh5K1ACf}B_H9Zv?2!4G`0tUtnK3IPW)4M z2C;Fyp0o`tCz`kO-FFy=<GuzLyN%XP95LAG zc{@G#MRqghHGE0@ByVG#`DneBr~(7Glh*g|PR?Y&zb#kl+LcIhVIV7RggaK*FFNDxq38WkHf}=%C3B(JF`~X%QED0>SIdXYqm%BI>7Jfy6R|VJkc{x zBwz`w0ud*UeZ7>C24u-f=`;PkLXssXo%ud!IQS9Jc<>})_^KlQVKm8SKj^;8Lx4{D zW6PaNYRBbSe2TE?+zFkaJ&yRQTJIdQSYQHh3@ykmC+pjs$}C!Y8R7?`Eel^bRE+zc z$$rR@jEzyEE+@LUl<3@2IwKZZeY9>Su*_at2V5pPBf1b{ie&|*8`!?I_gfJ6(UYzr z{;;zPYs0H8REcNz0N?vWdgrC*UKwl7uis=KEodmx{|&aJz~1Hr(T__a6TL&fp%wlY0@vo}s(TH1btSGagaA1?qK-;~6K zFA;J1%=6{@6nG7yt-xXM(Odyn{GKrZ8}S)E#Lq+a!`g;@T`1kcxWP0IOG**nSKSR> zoY$w9W6ee&tB)vEfeS$NndU#_lXr#rfsCe#{aPiTokY(lEpS5^j}Z6j`?RzPnhala z$iA?TBN?{vHY)$M(d=h!tvF+{ecwCXnbHVoZ7JVNCMOKAhsyg@-&mT*F|aF&7+Z#J zG8Cy_L%d91dZ%$M{IBIR_#%4JyAkhkLonUuR&9$BiV2JolBo>D zmrqY58GXXdh9?@fm-=otu0qU4dOihrSjsgfo!94=D0_O#8F`}LZk@ix*nA^+=vt$t zns^-#;e3Q7B6gI zZXcUtqh7?LO?*YM|MgXp^Ry~^t@<~<*GHVkPlz5tet};ZVki$C8MNnylXhm`dO)62G3%IP6x24l@( zPk3nGc+h70jW!pJP!0D?QP^gOL9$e&8GE}ioQuQFYFhuw#T0R(m~=!SL8yUnPwktTDyB3;BmR}x65dJ_T1K# zK0u%S^wH?!O?DWR?{t#gt>N??kv_CT5#Ju|(Z6k=O()U+JawUw-IhyaTgFpc(2l%x z(nLFek{|! zxIae!Q4Z+3k>v{zlrdiaIii!}x)Pn)7Sjq9~$uEzx&j&pZLjFfAgoD30+6^8j zq%r!<=ET`l}GEeKX#=X3m2bGV19beeBYJk55IB;$r{rVUFY12d?z60X`V-Gw89tX^O-(1Fv#9a z^yx6QH8iHJOQm-Cl(=!&Bl>|pe!~8#EzaDN1rD9)JI822%=0JN2BC!7tybAX!?o7X zw9g_Q^kHDpZM~TG&ZOq9@!L^A-2cZ24{vkfL)!BBQuu%X%mK|5#{Vriyc8l%$ z3{c*H-_shPwNU7meQdsIjA>F%<)3-m$OIYf}>5R3X*`{Qsf}hiNvn*7mw)DmySL9dd!%IG(+YoQY;OD}cG z^hJ!71k78H(I|ADH@32UY)CoBeCR5S+sxi^3(&abN!+?XI$4OA&wo41%xn$#7?TWm z%|YSQU<0$c{x?UvyXk$7^mD@aUH|o?8LaK;B?|Lt*B11xYhA9J5?YhMH=au4dDpNO z-fu~*g=sMCm*Pb&4*WGf8n@fLg~l8D^4lf8QIcfO#86rbbbcvgn%M_O8MDy2j@sWj zvJYqZF#X1}>@?UjgE)TyCm2`2O_zi&h4_F_WW;NQ8G{RIh{1mrT5S$f=}7ay44wc*HxIN z{hkIdHw||t#gLgX$LNFKIFsXGh0+Vb_k&k22Jfe&8%^951(j9KGmjn3K>qX}UU?vX zTKOhboZWWiq=ZvR3FiD=V=UkJT{d*6e#)+w=6p&vN%n7Hr3{Z&uClBt|l z_c^?CN!#pgm&I{^Wse*bw|;Q(Uql^}HiyqEuuqcZgHOR7`Q6mssg%Bx>S{Pe)Wb1< z5xZwX&@LK-^OR+=VnwenEf3c_hl&S@c#n#}0(92;1zwM*&T;7%+5{dI_xgASnf&PE z2QqGZmB=cGV?CW-z6otRGMUN@i*rL)6Ff#+jyjpqYP;j!r@wU6VNA}d!MNY4vfmyj z{sX)CP5ND(3(WUv9J37m+EXO%806k*qs>ew_4S+39f1EL8T@_FvP2u-DFl;kjBgf7 zwF%pXc$-r~a!^^c%_)zxIhxVtAg&SPG^@Lvi>&J}*)Q{333C1Tv0 z`#n$78apEId4}BwoZ_VUaQ!F)K4cNkD#m8_#77xgY^8JmIlz)?b7sf8yD(=L<1Tel zqAR$N_BhehF{~FCKBU9sT*42*kNBnZtej)SL;n%CTwmk>l`}$7-d2FWjeB95gIxAK zZYEkT^r?J~hLg{Lr^0*a`%1Dg+-ZN{oP(bt&bquJJL8YkIiYBsBjRgcO*|!hRIX(# z$Y6rb^;q38XEpBFqBO^dh4s)mf#dqDj(kk`OnwCY2JEXT57Vx2gJbox!S$Y=B)Njh zeN5=*SSO;?IcuSV_=fNw$2#jsH#>-pkc>U==cskl<~=r>vLd0+SxH)eqlSh|h@dTF9+a}~P=**#iQFYo&1+NviE$^V*toEd2dxZb;%Kr~-{~jMzb@h+qXKuL>;N+$; zjdB7}QBhAISX7iz(4tN208s&{9U!*Y(l%CYdF;g@SHOf0*Ld(Ip-!Hlii+7_*3e(SyVK4C;``}uu7-#_LxGv~6eYp=c5+H1WRpBYYk zN1ki#qw-ul%q(ilcKFy64LnI@e1r7UKWGK;l_{wq+Kn4TPi4R_S;;oj8l$1;h+dGm zk+E?9y$?~V%1hSUJ-~QcM#b-4j8c-rXsvr5<$fR*2eJvq26D;w{w~`JS)o*uIj~Bh zmzpw8ZXvC=Ecl4B-F_yY<$FvE`kb?Q-0r;09}jRW>S$Gd;EeL;tMWm^W7IP^TSwebXYG~cF zEuZ9SkCe~HVeMBp+e!G-MQ&Unj68{*TFiLy?Kl_YK7R&#kuL2AY&%tbE@B+5&OsRj zdqOGO&Vh*#6@@e>x$)%|_IS+2lLM*bkEuSlAAW^-jB?*C@(lV$yv1|UJ~$`obr1Ya z)@|{e$YBSK?dWHML$OOUSlqwdlR47iuzEOU*W6rSs*bXeO+wSKNP(%=1frTRfdY^)tQg26f>1w zLr2aBL&l$bj5?Bs8pL^6>*Ee`EE4!x7dZ&9_FWW`Jp@zU&)H7fAZeb*$rf8Q&vT z0NZaN?pFqq?{Z#HnUgY0<-82hm_|mf6nigO$+jh;qk>$cz9@@6I=QF|1-fF+PZc*GaB+>&3J1z4PebWS#bCD)o#;Yq6Nt(lD!;WbV7|Va7ZiV~6`S z@dknZdzB7M{Q8+LJ*~iL2kpRat=-A_QGp%vuI{C0 zr#T@Hp8dA-Mfx6&vq~dBfoI?+23hY|!aePE6 z@tlWY8>k5Si2nrWe*kN?rM5$y)4h*niw9P~w{8~lbTPiZyMHY>9jjI1uUIp@6sFp;}`{=vrBlUA6AOfTmg)z`4E?_pqG=qnQNC-gvoHLsYZ4)=No@J~ZhKCoNz68O ziyEVe)%|$~WW;>8meOg`LGsMeERSr?`aKtCzO#S!7$Hz5ETYxKn zx#Rj6^$|W8@EgVzz zrkew>#Grj$m+}Vq@ez-dV@fndf3Q388S8r*uZ2>5-5_pyIomN=hAs(>?Vzz(!FIy^ zz$l`7#U!sztR?+B9<$HseiJdn&LZj`X!B0s(yKM_t#8Tr#Vv}ifLVvQWS4%gRCx(g z8#n!7pi?P%p*_<29;K z?wLPlxt#N{(OLs8-VDyEH(b?|OSHEXbz==uU$D+DOu?^S(sLL4YJuNRcP>(T1>*aG zk5)r-xux;rbLpdU#_%59F_^RX%sDJnbGV%MY5CkC$e(9Cm!qC*pnJfd$$m1%vB`{6 zM{T&8u7Uqx--N$OjUnwNu+eyp#nxqzd8s{F$isT=5Xa{&aaw6TjHb148iZ_cCnVO+dIWNXluArN2Q+YWAk`0f3O>i_dsH5L zFwCa2`f^^Ua%?bm56xwa<`VRB6>{o;o>bYOE7TPSjvZ(Aye2|`loDRDi*DZ9$^k*FZkhC>mAG`+sFFCcK2|jlkrttl}3NzEi&Sz|G<@c4L zeCffjUY_US+~(=eLY9I}G8Z}L5u+WCGImTPzm08f@X_*`(gw%2w~BrCnk+OyS|Y+zVXTzkM|h6?3zqX=37JCzi=9h z_5KQABLRa3ehG&4$FJdxit`CkdmF_4X6pE+NmPcp%ic)O0wd(%8n1Ic=M|N?_>NG$ z4Wu*vO!=1mHQP>lIIr1mA#HZkoRca?{pb+w%~4w0wL}ZuG24v1DJsM3#Dv&7aRK`y zy-GBR?=io^;ENpHWv^d)??&GwSHD?}diwwV1;?49FJUPEmTH84NQ z3X>dG+bf1edd2WqFX;p{|J@CuINBimBohsd_X?f9yLa^38|ibB_{;N=SJ}>mvQTDH z`GsrN^hA}5)gO}d!FF-;F;O0DO~m4l!9T@W6lr7oS1!rHI@V8w_R+{uaX}<20i5aV z_)(4vYN6+0XTo|Ros4;$U*+oPq`kJv&6P#{&uOre@rrg==E%u24lwV`s%a0HK zyU#}t3WwIYt@MW}oM&()$IkS`Nd~cKtio-)1~69eo#XKe(|FY$6)j=vLv3clUn|E< zw_17Jkn8UoDVe7R<5jBkuI7KHl2a5-V=cpXr$^>Bl-T28)YGQwk#S&t`eXsyn?AsI zr2RFC{93@zyY`e?`yuSN+OiB)7yMEdsysP%Y#4lwD2ctXw%bx5Ij+9meD0KOr|Jt*0@DjQs?bEAj$A=nW)u zDl})4(aCz$UumqLHf3B0@}@z@_`b&j`-zb2uT`8V8pb&Qyzpn`yaW=zG3Sl`B+kUc z#0Np^HOlWCu{}$W-#aLI<$`)U`L3D4a_uZv)_|{k7+L=Pc^pIKJaSN7rD)2G+}YZ9%cMmlKZvQ zY)kg)(=5ok{U1o&|Ci{wOSLxz_H^v$u?tC8GpdlMkoR`)6U%5mNZzHrcki!Pb6Iof zf4XeTvTvMZ-@tBrw!RzBiiPy)zW8z8`@MP__ra^z_gzYICj4m6@yOiEAJUji4YSUL zynOu+cvkUVdY1<_#dhK5N6R)3h<_xc3{y?_IHwZ!4#q#3X^+4hm;s)zQZ)x9^zDxI zxe5#ZOdV&f2Re?7|6fJFA2i=N4jpHRN6LuwU6QKVO>*TOP6quxs>?Bmc%}UdFOavNDitKh}VqlknL^-b_eOeduMft1@XGXXsu4< zcwX>EPOw20-=>iedWo_jIT zE!Jy|;;AXKDDfNcMB|*qpXmExqS0ggJ;Qkcxhx^ilAN>1SS6+s@0&^VT}`wdq_qTW znTf;`Zy`C>s5mT!ki1*wfnKp%j4|PN6S7lO#%Pi?iH9a!S@T=($$2_SbBp_O zlOC59l{l<8OT|9(eWCGr(Ul%;s|o)@_@cz%52)po)1K>zJp}CBahduo%M;5dWqgU%v#8t}57kj!_-z6y%RQJDpv>R5rF^U6wE z_QYa&xCXl1d=cnzy2=?fgYi}&2Sc{U7%b4+POs&0Sj+c2e^ojw`g)k=2|BArWvA<` ze?KYX)Lv&B&nlJ)F!s_s$kgGEp-y$ESwQv=8O=0qO^Gez_t?+} zW_Rxq3+p`2oOrXSp--4Tcg6Rh46%?t(chl`=V9TlzSd}!GbG$(4GXvQ0rzfsg!F-E zvlxSzCz^xHXz!R>+aP8sjDFH*`%TjEv8G|)I;?VO3=E`7y2riFah%d#w%cAw_fFFD z*b_k)m|xH5fwEncvJqfHqZ`lr~XU1;3 zns^rY+8?RxLR$AOAD9T+xUzLzjdLR^8@!s&13+uEE;6MLyS>*~nz)YSD#=qo@$r#4AW9+T)yT=}nHm}np-gt4Hoy7k?vktaGgoxHp>tG@KYXkE9 z05KNeQ6D@ukW36fKV3bjpPtDJ7QQR{`OyIM(@%eHo_g*t^c?ycsd!w}P+MRt$>exb zX)C!@-^cpgwWycM$WnSb%DP(jFfG`sjENOE<9%?jj3KoCsZ3vbS(nhWh?&Imx%51q z!}ICSBp7Eh=IGF$s7=6?$G+`}!-ly|7{C+M)ZEsp*rce$(4Kuv(&wwG)H8QbIoMwo zV0=kF3K=Ut=06osKAd5s@_LCteKt)3h}LG}uLQ8!*|oZI^R=H}r6l zpD>4*EKcy*briZ1wUgwgRbv9liJ^AU9&TrTSjjx?4z|%C$3$r@9gr0iQ9~Ia=}%yKUHiK?BrN!*n%FR{q^s}C*;{c%yT{0BhM~SZ?4L}SbcdQ z>7GC1`ee36wPS8sU%mb#DewLjK9nT;wd1VUv>a2Nx3-f!av_a9%DN$~tRAc@*nVoI zZ3Qwm<4~ItPXhWZ%k7M<+$w%Z^_0^Xmupg=8LG~`zWkw*w`ojYqc-3g`Z(hQIR+W3 z?vZJASB{luA}!{cqH>x? zzhy+s`Rd;U^(VwRxJ;vi@8KET!!r};y}Q*je)yHE^9@t^j=(n(J{E47U-`RWAC12u z_9k;%{IK$=fR9wVZ(8`AVa|e!q(8!Ol4TcOAx`_05iNsvRg*rp5dKoJHeeC)`3mCv zaW-B~^s<5Gc0KZ?nDedADEkBA4s(@$0U0YwJfN8Vw-XO|VWd2_g?~zZxR>o3y4g#6 z7IK;N5?=@A=o~wB2>GH@P|-r8c5Ef zzAtore8VrXjJ{?3>-ITXuPD-FS?5w+o9UWw0`+A~y@Rt4?1i4Jd@kQNvA&?#Y$!r| zf{{^ThN{nDf67_TI6e>UbZxjfi;OmIJN$M~{#0&z%)UvzcZlAbt?VJN7Z-EhvRN|5 z)|7Ts@YE`L5A}amy|)K88};5d`D{Vfc>#1mt5cXH=jFmT#CpXsW6Me2d5rYpgIOG!t)K;&q5+rzc>Cm6Goo&#otUw@2f_@^gElPrLCAQnI0kYh9@ItuZE zJRSwAJx|fQh}RfAYmBTUnP@(rHPSx%jN2w(WPz0%Q|;>hc)N0V+^!+quAdIJ zOSb8m6E&)@9)%-NX|@*SDqHu(8zt|1IF;I(1v!rDH!&s#?B3sY(#JKQ`Y=vZZzrV6-lociO&Ixz-Dh;fDywHUsb?nBGrN@iN#zt)|Hx5YEDid-l9^Iz8n~vQj%%^R+QxZ_b=3T zU`D`q&COBQ`S}4}v&*p7*v~fRJWc(I(I?y3DJDkOi5{b!_&__KGdyk7C19_6+N@8k zr)PR-Z2?EsA6>)vv=4LxCu?mH_MGqIOg7X}g#3B_?njF>8RwdVbJ|?kqo^G^;(Q+M zPfnp{3v{^_#sFuFWQS6cI}kJAH`};89k^uO(oS`yI;+PXaqhhX+&|#C7lx2iH0Er+ zs@HDmZVy^s)`gBZxE0q~6x06#jZZ}S{^?uH6h;#1;LoXhO+>QS^Y7cp4@<1|u&Y;t0F)g$v zW~=@1QkvJPS_8{E;0K=E0>q{jc_!2sRGX0^_}gR=t(BXrSl81HnHv}~(GrC}PJHZ0 zIjt4H!d02@+(1&=wNBT4H?=*F+Ky)$s9hZQ486~=3RY3yTx=W8)1mN5qp-`9T=koj zlmYLSGNHXo#Y&B4dzjo0gP}Ls*9x{!*j00DyV$;sTn(^|PO;XB{Lnt`19SsDvX6c3 zNUjhC);_k=LJIdTQ_m==r1xmLB;NNX?blBUGM&ZjozBIiV{YA?0FfclX| z_w&qs>|2HN#-6d%Uiw^k^0b`eN4$)Z_s{!>lyhFDwvJJDzl*PnNI(CxobSM21M%qa z-ds_{+O?#~!6uhv3Vm{GyR36Mlq8 zs4SENf3FzPSH#=K`#0k2z!N5tYy_EZTg5*6KCe8VfKT%r;tlay+Ar=Sy?3U^$)6^3 zP$I{xhvWvYcE9~uO}lj_tu4md)Mg-7?;1QaN98M+=+TlcM$z7A+hG3A-zlHp%i*7G zNI5S|Z3KVSRl8&?Ma%;l`pGseIg@=p<(Vk_oaYdKno0E>V_fYH_HVM0ui=G(L0_t= zR5oymVpwm;HKGGE67R|}dcf!;Qfn3aGo%cbf6AXkymspk?ZI|)u3Q6qQ3Kbpo63Ea z+rLV{PswY9t-OMj){azaHrCI->(Bk$PLIjE3M*l@`I?xb&Lr5zE&YSocb$E=*)9M( zPm^$MT%GrhRL`JFa+?i)Cx+*PXFx6;mh&wOV2+o%1v!g{;Rw_(ayvRvZXBnNo1 zU(`5{TFDQ=3qL+~;3aN(^K<3-_uI<%5oh=BsyOf9EfO=G<$w6m(frp&ew7uON9$C@ z#jL(mVj)7OSU~%2(~39H!cY9Aeup4fMNbq2O;!R|5RtgeeH2^Y_*gV z#>0p88jXGJm+;wlgBU}fDe!?(`J!=l$T)PmY8UDEuFr>SQ}9r`W*dh{W@v_O-f8mOFr@My`LHqxk9fd+Pjr0lf$P%6%_Fx?V_&3XaJFPRhu(e;JR3 z=c*@Y*hd}U8fj*P_l;a5LhCa^`$R zpN_|v!M0$5=h3c^Rk_WXfrF+ngD&ewvk_7BJ&a!D!TPk z*?!`iSxR=$s9r6yMEL2GMRjHcf$LvwBkxZ20*&(nZ3|a953k$lATG_jO~$0n-0N|S z?w}J6PD$i%uW~Yg;}`uk`_l)s*>*U1YvK~+7lwH98+xY4ylhyTHIetPZ!;!EL}^v}V*R6~4;ZA02Jp~WIh<25A5qAi-%#qtvDEPq)I zZ135&7Kh*CIsqLN{>M2q=g`01v3lqd;04O-0hMPo7iYf)#;cCzYB9(8xzBH*=PQlJ z1?J72Gk3m*e#1_>@wIL{UMZ)!QEdPwR`HiAw!0V|S)mB)IKk}Ix+ zKU{RB@P-;`t*jKKu{EMJf*gM{Nfup#`CO(2>**TNOcZof$GH0_vy^^oMiY(44GEN4 zikRnc9^(-fYHcSFXHtrNy0$TaxO-2e1+w-_$SHR|Y$LUZr)o(cw!bt=`+jJp$VTh{ zwWS2IAFVr-T}pJYL~A&~^-?{u?go;Zn_y?X=G{yc8yhEDpthIR)-!&ZmS109 z6?!)$pFhBSYmOa=$DYHUP#UjiKTm%MdD2#LKmE~q5yLx?22re08FAUqUZrauq;=PQ z!>i2iKN|ly(Rwvw4f^%Tu#XGiy})PI6O4J>95eTMv=Zxkv}ZRxfw_Q$HQ_w{SC?}<^2i#da1S-d2(<*;2eRzUlZkH(90 z(D|+Bgg?HKb6~+9_YRE_;%NWOvAl>OuSP8R)(41AAE0;OlgY7(+G6P|^Ug{c@2*{M zM}J%QF)Wo~#2bh3vp;l(=`uDEbu!LMi01wKh%=OV*Z9oB^-ClA{u^Thf!EB0yj}oV zk*?)r#hVi4DrfB4(V+cKMf*)m`y<9@IWtFloMgpKPCV{+^2^{OMmhz~ZHNyQ)0kI} z)*R>;ex=iEjD6V3dUF=%Z0!^#pT|tMf2+orWV*y?(#^XUAH{m=_Y?2;v3}&Ea%e0` zp2hR$^H|Sx{K2|}pX6+kwS9i&X9XL-9Pe%(?>`~OG|?~U_$0>ItUK$zC)Z~u`+JlV zuXFqR^k|7U>5d!nHfE`_$SB*&)(O~f{rXDQ4c2PfGg-85kvm}w^Obp4*N(Wgg&EOx!WY`* z_(Jzs*qi<4L|Q*YFUp4#`Rkc}^)<8?x3lho7;<2HKH&OXz0<~aW?;F~-s}O-J{=o; zx3eJ95b#H09;`=}vuKR()MUPiO4`%1;>g7^!^XT}tzsS*L{|&M1^K&|V4vtmjPWot zw!&{V9>W^J^ROpuDLZWYt@^|;%ux_AU(*@)+mEx080K#y_5V2myc3=?S{FIAE-+{C z4Tz|`;3y9=wg6W^sJ|9zq%m(y@O}`NzVjHn32dLCxic0Y!y5BzXhX=BdEwibe`y-= zO{0kTBKQb=0kH3{7T|BC^j!-1f_1H#_FS&FQJBEWLT+y48c;lbfwm+8To9e;I+6yVIVRK+Kh2G<3KQ++NirqiMK3_8Ra z`AaB|p7{pwIO45|!Z`Z`^+N^%uBs~o>76nr?F6lD-2(o51MBKu0_*Sr;;r!iSO~bbpfrC_7OABExNYP73}0Sh%X7x@cH5PUKNjadrxtd)Y71pgNGr$f zBge)3hh^PzMp=w0MEh))9u+Z#9|2xd&G?=3EyT1HA~vNCXQL7EIPsqzdS=1*sqXt& z{&o;o)dRiaAv+11MRxFjKs@W{^NJBm)Fws zQnroR;~1wR1V8&{v|w2JTGREV>qw`*VO1aYO@nbV4zgYKUB;sA}DL(jkEIEQXk*0Vh3kjKajlSA&Ch9yI*WfDhd3k zU(?!^c9@U@8}GlWU)p=mUVk~qcdll?4_~~+(ki-CynTy|x4-G-L7bM8^qXZ|yNkyO z=MC_|^H|Fzex%(Z{`m`yZAe_^r(pn;rC|V+eG&rzd9l;SjBioK z_<#wmtX`IV!_L#~rQcjOJ%jeT&o$GS{#5ae1*Vs2pXnE8g~$CN@yJ%Bc+a7{mYRGi)zFen_@C*f=x1>T^;@ zM=WM!Y`c*CX*+v=ZcgjZ&8Pe0K7(>!x^6(?b12(zEVNn_>q`<@oO|$)m|;47*V5Pm zr^_(+iinqVlq_jOx(#{kOo`3(0G}1CW;)q&;Q`XCraM%*-p+c+o| zOqBe?TLIjS863;zVwilMe&hKVjS-hkHI7$CQ zv`2e`?G}&w7d|=eZXKXUp2HDp4$nsKqtfVo)Foa8zE?Q$T_AO`=+2Pk1_oc8lirj4lh}F0PvZBf#jks`sNcx@7zLWEUdC1OC zcrAs>Cg{V==1|Kdb`7APa73*@aX~t+CCrujeY&KrAeWuq^Sq|C+mN80?+SPILY|W>z&Gez$3>Z z0sJU+4?Y=a6UIST@u=zTD`bA&F1CFpm*b9?&|CtCg!fRYe_{C$&Z7%oUT+@G?pseF z*53$|EIgiP|_z9MbM zNN+h7Kn{C-g@xam{@lmDhm)-7F>cIf3@y3_o;i2IV#{Y*_NWQn_8i7)UM)822kqxZ zyms=#yjgbEf};h?z@h9@wO(*)hf#WQ@(S%Sq>1mx&2>Pt&?y$^OGJe9Hyz)mjOQQ1duyvG|E%lW;$L+(_&3xThsAV{-3Q&FploMmHMO_K*c(8bN8t>T{)eb-9=+aLPv5SbfIW9R z?-BooMy^bwkt;trwqInd;2CyRDzyxBkG5`CZT%dz75gjjkb$Frzv9Dxtr}4HzW)LJ ze;SRdXRc=~yVHGYNx|Ru^0y+&em*heb>4Yph!Y65_dWZ{7ie!-Z265k%WITb+Jt(0 z?j<)`x$%0-8y{lB3b>yJj zPnEGR*={5EOMKE(*2zmgIiImehY03Aj@T(-L|R4L$Uriec#lr&Gn?eW9__GAbe}{! zFz#pv+G7~4iQISPIr%F1_~$&}ba=F7L+SkmCSptrod5CwgYFQ=aRC!}iHW#xFWUn( zW2M4`n_d8HlZJS^SfJNSJJj$MHqOza?=0rLg07BMMejFg4eq%t%`I?Lr`uyS?b3yG z4`Xkc1!o`QOVY;p5;ewUU4ym?U_G;q!mQ(WP+nNAk=rKNJl4p0Lv1M9;MH=r7;Q3# zc$jFYw%JM|P7m=T$Y((9MLvrC*AAzCel-D1-yrach$jIn(my1bToCRR;c$bfp-&Zk zLiCBy=V7`YBbg>d^Rk)fSkn(sn+|Z^2KWbUob=*xoUcHym=Sxs5B^n)yDbcX!_uzt1KHpx#pA;yWm z%f6cErCRUc{o6zT2Y~r%!1wIy))1qP{qjO)qv$aj1!7CG^sn(=IMJ&u3q_^B7W9fS zCa_Fr+rvEC5iLxzP3;ZU)w0CZ0_Tk{llDJ%Kj#uY!4jn)u{YVk!8%Yus02*G7CekV*h7`lS~$L zvXQ5m@vvfS!yaR<;#jk6W4?7#!@E*u{SZDRwVf>UYPF3;RkaO)8qxt!HfReztFV=U zuC@R_BLbWGyaecLVNR0gC^HaEC2dcL)v`&nPHA)<2>RSlsEbt|P-8Zzf zs4CPDC=7S7oezCOytA)1H?hd*EQ%NnMTKT#(P6~gQX5WQ*lRy*9b`HW(YWRHEw_QK z{jk-`XWMA!7F?h3$G&v>pF-_hz!>ba9j{sMTVVDEVg~5_H9JUhOD4zAcL=`)|D1JV z>p2JQYpjRQ=)AE5eJN_sc8&>~#d@wrbOiYm{O&Uo$IyB4pu~j zv<4#orR*bKMS9wUBqxARvEFMoiz*s}Z_pf6u^seIr`rR1mG7_j!0%@jw_odiO$_fI zk{D7^Z+Wt2a9ra|TDLXk8*Ee9K<_-uxOi;>vCp8vpDLRIYzdjlu242vwv(O@Jc0fG zv$-F`5}ieLA_q_*jVtyH%PbY2wr`x~m!I4>Kp)^IQ{#;yiJY>EzZ{2sRoTPrfmBI2 zLj8t6oyyVRVLQT1`-r*+T%83*ulNVOH-y$9_*1LuLj_|*cZd(@-lFq{F%N>jcarAr z-|cy4YdgwD-`!__c=f=?cv+R=DaD@CJjJhRFBN*QPCNNO@xvn-$Q2h}!|MZnEO^#N z48D$BCy+H;#T?ZK*zyn)Y4P{y}aUr|;+ zl{J4LHJEGpDkYN{(nr^ZkM6TUIaV_mdjqj=FARk&B)~i+zH5qJ6>ZO{xE8H7Ov?n7IHdQqb&Hwn{zGj;t-WzjZYjgc0pQi^Q~%( zEByy9IsS*}{~YRPjqwJJ=YBDr#xuWSXJ3sOC%zWtzJi}Y_W*wzmYq!Y&|HBAV!$xb z=UZ2jo~lJwi7ip|WhUpGAbF*q`=RibvLf{X)@2Pj*U*Q!Ep%;*f&YuSEnAeWa|`{3 z&oS(bLuentTthFJk!SZ!mve4!K@4m6YT=14wP4E_!R_9|ZG+8X1j%oRwY&OeIrfMn z8==3+`t5T>yT=*-eLCk-m}9_~k@Qis&7v_JM|@@!+A)XPfw-#Evd+Dqkad2Yl}r|f zo7H~PEDqD25u-jLcjnfs4%%DC%5T>X68wI%x!wMLH}N?0RRKQbi!HM~vF+lQFTQwu zWA}C&JnK`jY}3~MyYAXATfz1F!mjOiv8aM?JAGaz+PtSnjzLD)@@*L)`6PRo^MKwU zoEQ9hroWSRF!e?+^3@XJe^-b607(Mx^@d)i~OL1aYtasS{RD5{XBcbX?>tT`4|Yg zHuXQiGGrTo>!+61M!pvO)rp_Jt@Wp0-$w1W%%V@HjnQeeG5V8x+P`}D-|dI!BlcsUzhOFKF1hD9TgD&Yvsk~vY8rxgN`*7N`Z+DRmfG<+bagd9z@J~J z&OAJvXJtQQOG8fjq1H>fEc{s8M2~rh&%m~QwwL2I&^{mO{`uo#_QPf`;~>Je{(vbl z5fLZ12!4w6yVmuSG$r=S6s?r;nDM-e!FMMU_nia96fd&{+&W6?Lt`pjHf$3r8D z?6;x2RNJs8?;YxOqKF^yR5AAOy;%}_7<2MpS2iRbn$(bhuiph%G$cmT-Uuw>D*6vx z;xjRcBWbb;Vji}4NjzeXt@Ft9Z_qI6cCm%=;GY4eYZ7%yfaTcR!=J?Gw2W_9ky9aHb$fpz{`CxPSO?&gVUOfJt zaO${EyTc|KVi|HRdg(Xu{A;#qZ`zYaKv&T$<+GQwjd9?n0V|N(fW7<9t0i6+{sZ5* z=d+|!8gB~Z-hd7R`xDAVo>o_$IiGYI)H#g4k;@piztr;n!I;qh`KP3L(C{Kn`p)lQ zTVgf)C1V_4U_N+|WgD-QZHN!{2C9{xi_SKS9Hb`m<%6(tS z96x0q-p+aPKD=rmiTx3I4ms`u`EjSp=VS56b(G%Nn)ahR?62 z&d%OFi=Eq0IkMmrS`#MOJ$w%Eze_gISZ!4K@G?|Pk)M4QcRFKKe5#9I>BbG=Osi1c z>jJ)E2=bA9FSB;O)jS^K4*ciaA@g3EUM6rwpPMs~L>zW%v_&$8*MiLGF?~Fb;FXtt zN5=o~J2?;HTxS{f&f!FpQ%xCPsRcV&*5(`)^sL)fkNF*yf041he5}`nV|k#tchuQ? zZW_kw=K@+1@weZ)O8Qanbk{8H<;Zz}Gm;HPbnr}Sqxl+-)!ekR`Gx<7XY=r}x=_VY z-bL@+L%%c4g2d-o|9xFd&$Bu273|U2PiloUT8o zdmQp$6)+}XIhE^Cd8O_$-{5C=Q1& z`}LZ3=?41m(hJGGCBuslW3lSrpT*vqcHVvKC(nr1o?|D^tlOvJJ=^L`Cn

n%|M18%X|5<`Z=kPJ!*4F8vIip!o363>I%ud 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%0AdXy2Q%TziZr`3J3G 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

mKg@gPG?I1Z!EQ9GxsR1q- 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�E%L}BZEaLf=XUwdlsQG9jUP*F=uZegh%JZ0w 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

a=F3L3`DiQ)=}W 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

{A2DH_lq&ld2^BMjzgoLkK` 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

6%x>PbXTYyqC-_ZNJk+eF83=gx27|Z`ecM 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�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

pjn|Q=(^j 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

nMONC#Pyx{K+9 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 z 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 qpoc~y;!9F!ab#Ja< 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

0xJM7>YXiQ9F<;u-@_zAg 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͍MsuvQATk{-6c2?S3lxt&YLQ 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
ho92LgSP4gu-J{geJh;Y2 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

mgBs{vPDPcdFTDT1X?^b-{`}Lg= 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

b$vU674^_gXe1o=nW^ue+}~t8 zGcVq+CK$bk0LJPb9C0u;(VlYLQZX{Rz4fNHYhU$ZfScZSX0D2nI(;d-qj63!<@mEZ z8b6{Ec9!3sF?8i2=XphI#rxG+M$4IADC&j!R7mYV2*tf7cdFXFCU?G*fBN{=T`oYj zGpC&s6ZsDB3-sp3>;)>CUvi?d=Q;iMPagM%v-2fDdOPYf_!Zx9_nRHrT6MOU!10bi z%ave9jQgI(*Gj*y`LQac_%*z=6XSl7_cNca&+z_kjC)PISvmzI;9SF>UiYqNUqmj* zGxK_*z5QXiWWCXb*#>H~!JUkpqG(@FT|5?vw4|=V%{zGJMlOsbuPWRJpmaPv1m~FK znLJ4pfB|ZM#MLo@P|OSYUlWZ;&Ecs);BA{GJuc*1UjNQ)`W?w+`$tE&6DldgcK$#y ztwczaQU!!!Z7RpaJ;ii$3W_hU9Lcn&WGdQbZ~*ETKH*`?KF&+hp-#~{=x)bnFI05B zQ@<;ppV$cqk-DtVOP&lSl@0<1`-4a%l>5GO8Z9-HJu&};7wYLS+*%cFL1qC#^0d$5 z{r#=j8H5zZccQkV+=XUdW2Kj>JxSMS>s@to`M|JTBsQUwO38GdG{-PxcCwn-15(uX- zhp?-VYbWMXyjH}hDP>y~+Rh*C%sF^Zz{Ko);gHV8&QR46zO)R#vrWm?^u@6l^e=B? z;GMgE{2**5=;1toH6EYVle>u{pX{ePcaMIzRl~+lRcl0ow;02Rvd;s`@l3N6-fG|^ z{i#cz0W9Qn@pm%}q=Wfmf3(qnO^o&MmWW5a-9b!!4x)n@wP!s2#<&N3RU_nCi`atRb48-Wu(0q8UEDQ)8hvfmo%RA4v`{u&}Y3D zlINnQNAhEr_Vo8E>G`PKkW2d$F<%-<_B$%Y-Uz3gWt1P^?~o`5c8yHdecbCNY^rMI z=bw0BFWub7TliI$^{4E8?sj9>81fM9+nwi05|@&H_bq;Awr!h*RNLTg(B=N=PeyuG zNP_vL&~G`I{{Bb=b;#5D%UM+pD|&tVXFll!-~Nvjp`%YA$`uUHH0(pe7vST}NT%#K z#6dz#-b3BuUMMjYiq~j7hhi>a<9;kZP9}rWwa*2`?BCXCl&nkcKGH}eD=aK#*o8CIl-gyK-@;eyJF=%(s}Eg(%Z2LqG{yRRlU}G7 z?K|XNEE!g*afkKvOV>X?Yll@iydVC3TFHUNlL}{vCzJ6DNSihL$ib~8>nJ}Uwiwl% zlV$>>T6%{1BA<21py+L9P?+PR^#$dK8WEK^ z_}HW26a^6NXfz77lgJh~+J_FIY~3?W#>cKatd$j7D;x0Te>o^^#Jn>FYt%;TH6_GNB-p#ua6u%`Xjptgy!EZjWs0Oj8b9Gk<-j`3L9|8+?_quhV~(# zR_g%VD&IKpcC%4%cAbpceH@6}aViGGc8&u2$*IFxfb_%J1HBjENhnkoLS6}lWkD$6g?hYD z-z?)VTZbIqlpzfGFUCA^=(rb31hYJlfeX&5p4`6_2%BCiLWy(H6qcDw4?TLwF_!|F z)YE1-5G1wrWSk-oRE}UI(Tr+|xnsw(9dP2%4wIabCNj#T3=ky&5%jHqM*HIO+UDoT z-u|W?S>j~RJXy)v*z87n*Njsm1H_dR=y?v6q-Sumq$RYqs-$nM^PYYB+lt*2i99vW-V z-#_?z6`)q0ep`+5)3nqO4rBPUr33W&Q!qr770QpxQO`6Wy)l&^2P{@mb+P_7GCEc~ zgl}qqKw_!arFg)+o<5|LKlP$)ya^kJkFyLGM=n3j%{Ci%9HmCF{ett8qY!MPVC}xs z4s`~_V~@jud+e5qb>Lo<+b;f2Cq(^$gM?JVII86b$2r^r1LjaWt<)$Wov5)w_OmYF zFKx!wuZ^n@VT`D<52o`Za?)-fe&CnIm}(0yE!jfjNjw(&XP$h2_x@QYOYXk?jVJNz zethA20&OjqkIET!r9|j!yOF0k;k+d2!g2u*!p*5X;)ST<1Vfk8K;b=G z-_+&0Lmk}o92F_WIDvB(?%eI?hv}nGG`M$%4F|)_9H3WY_&ZvZ6D1Y1H9|hZ-%oMdTI91Y5T>|+>4M%2YDL;#S37m z{@O`zCYj7`^bwzENBe-znHw?IA0tWO+TR|ck2tQ3^W(z%Lq`v}bB(W`LLxt%bB`T% zMj&MloO>xQ(w*!<*BA)0D43W_XW##tXiy&$eNnW6eE1joty`N@I(Bz!rU|f>9-tiP z6ab(J8^<%xA0T0634z;<(k^-tIDTigX3jBQ+3iY|GhYeIED&s> zAok6|1dNp5db`#5-OwE)<)sPr{;@QYOhmnqx*-DU!Cqx*y|=foHRWfXi(tv0sHn2O&=YOw^FsaY214Ch34MzqH^PgNFd1x7 z*!TpZ_!prj4400&1PR|8zXOXsgT<0P@g9^R-j0tIBwc<1?cB0^^5N5W-f(3n^sR(| zkLw7h;Flq3i^0K>t#h#{zu)nmWQQ6RXXX0`h0*nqW?oZ$WR5>k3N+vQ>@D&L^+pms zjfj{&d&>m`TmxITuh-kUeSM9_*4ES~V`13UKJjt1 zLwNTt^WKsrAGIU>-eYwSJ}=r%y0+cZGn$89KD|(4j`5xUk=~BR#ov4c2%jE>>_&TH zUIh+f36%Z&OyVJ zY5UF0_}8{uvE3g-L)$;Lai4icpStw4R599t z56g25NP9MI!!`Nymr*#u6LRTKw5o3}BFhEB_j8^r$Y_I6d=~d5K70VwS-!Z-}sZ?ZKxXa}Sl%6b&0k%*}--t#P#N0P#uxw58nJP+};m zs}$7_eAJfRJ$L8*o^l~HxcbP0X?_14*;D1(E9!-|uNUZYOuyG{LgmG$KV~)?GEa-K z3*~5`6SBW@DZK}tKJOK(-+L^KCHjL@WIPgSP7QBk$~<*HgaGY(*b@v^2AdK}7iDQr zA|CZZF)tMNLViBQSM81V1-u1J4iS?B@SYtxXg@b{xH5b!ebq;(E5r7wjI%o#iRz#0 zMO$u=mN_~$zU`rj2Q%+J4;1V>NT+)IS(uHST{E1!Mz&JG|*o#70=EAno<{c*|a!<4Nr7|4Ju*4HgVN)lj!yo7^I}`~OrFqae>8cvK1&={8FRyV zzAjxj*~EMP{_AaXr_>5p0u{3Kyxw>+c2)@e{~7ng?3VLYeSZfA{q|=WIW$PY$9Cdx zblQty;|*(A2dG;C*igAmPv;e2MEg42^8 zc)4W7W6AcE;(+_NXgsPA?Rd0DLH}qHR!HW3;$9M+WBIE@1PG$vt1s`KfctymTY&Aw z0KcCFq~K34lEw)8XSXqTm~~?Lo3gT!=<`BK-KVd|v&NV3Lvb(US?KcxFg*KxoK%$;Zk4_Bi=z zy5BzN-T-@SSK(2%u6Mr;_c`e@9Ro!0xO?c$4uB~5`}SdbSEEsk!M)K8**;sek3J*S zagxb+q66#NF>WL3-xG^b)%XTu9da=tj%7+WyW?Bh@r?W#O6w;3Q7=V`!3C3(eXUr$ z_-S-I0gYfdhGi*PzL&Ha?-U`8OSQvI`&p{!#&IM-AR7wFwX%O0s%AFzs8Tsi6po$g zQ1NumebLVF4h1CpefRk%(Aaq!iVGG-N*&wMo}^|JMZ8OI#_RC8mBHttM@khSp0RE`b z`eHrpXsZ+r%kA;>k>^Ew5Q5#0RTBu!{9?S)*iQbCVB9C#3^Isy>rFp+$UZR>ZmeBR z#@p?uGL_?Dm zC-yLV1R5E+@8G1Q(Zkhm1(KSL_o~u<0R*5%s+@!PaJ8L9QcK(4{Zq7C*=)!T%%T8w z<1>btrM}&9#5w#9)Jy{nLZ5wC2V-0sL9Ce#_8zrtCjOUdi0QkbbenHc|IRKcJTJM z_{(tiBl1fO;b3X|?SGoK?V@G!t7mDn!zii3y>R``0y^W?tsO8ws>WCxz@tORS?+0^ zyg6P>&S0C-w99=_ex0o%-eS;p#!qbqsjxGUgR$U}+CB=<3@PyK-4o5YarheqC~1~K zPE>H&o&zNDNbVSJ3A7-9*ih z#RB^9C()cA)p9a>kefoqwWnW3vzo2ON2?XreFzocn@?U}Ihpa~e|zJ7NzVqT#6V-7 zE+>Tgd}lTd#(r2nbWQt!OX_BbZCX#0X|v-uu`TyjmSNbJlZM)=6LQ%n-{ioW;2$|)GmF#8Ee9T-!BAix88)L z=p(D~XA&$QgxhKzej`eO0K{_14Hlwlcylgr!fmSr|jFk#Jcn#sJB?FnaRr zn7qg*4=xE99{DnPvvg|WW*5%PT;m51Wsc7!IrHu)phmr@yZ!0`6hz7VV%tMBZF4Bd zR{~Ju<>y;Sxf$gnq`Nkjv5jF5m zUK06se!C@wBGv&=*8@mUlku@r8Q&XHFZ>ra?#kc%y?H&bKbno5TOIS%U3o7pmVh+4 zqKfFIWT!>87EW%>nEP*bKbo?}pR&gxa_^s;`M(%*A4LzIEhyl0JbhqCt_efwxzQFt&1+m4oG<|g#z}+n^KgT zzW~1?nRKQ7fOP@M0xGS?SYM;DZC=l8xCopX`(8lNQf2R@-?IUu978~;#|tGpSZ#IB z`0EP47Ls9cr5<2YXW(6hUDnXec3 zptfyeYCpOgX--w{d8Y`Ma#O03JN$j;P!lFtXio5m{ZTY_773^R&bk26>Y1;!7`e*t zvXI&^+t@K)e)>86rTkCk#p0+IPA)_qDY3Mij5HcIymk;z2K>PN*p9#C7z7A<@2X1p zq23EnCkKt|6w>1lyS{bId1y{VSp@JHnSDw&xHsD4d6J4Hy-@EA!&2fzo^}g_`q1>p zL1@Ny8V&ksF~0HR{Ul{F*DxlstYIVp$VWJZ6mIlGC!WBCpF1h-jrZCqg&0W$=M^*2Q;F#7Ny_Te2VhN`jbgRNQj2%(L@(g-!i!1)QVjLA@wYt&U==?P8($|k z%MXogC7-F;+CwAH?}hv7Rd*)j+ky@!4?OICob0=o3heXlg5??=Y4AwcfI(Ttc3K+=pM*q|6dlfdod zzU|FN+Q}mz$8v`<6l=uw%w4ODV#VS!Q}>-*#AZs-H(e7MU_wQ9#B!e~{%lri;^XKd z6ak~P4Gjhr;kLKXh1tZn(5=1Gie_zZJV4=DsV3*ljWY~XxPt1&cjU-W;4{ibFJ+o( zkPVPsCzbs(hXj9iokVMOO_Y8R#+`9TFXV{zvR-)XYlZaCDL{*rzG@`amyq9W^Toh- z6qxnnKm>lqI7JGhiu;(1)mt)yJGN&QidjPAaHX+e}=;edS+{Gye)Z<;ex)*~fPa9z>- zkz@pJX2(XqQ_Y6;a}%vcQQ)&QAD9By#!Q27XN=)%(k%2e*VTys-fA{t@hW-(85_U- zt^MjACv6Yp<#g1B?}CZF51AK$*rbPv^DOlv6TM7Zq<;C%;a~23PFJ=#l8PN1O)CA7 zD7ordyd5*8n)bdhZf7Hq;c(k{7mhs4wwd1Wu z(_R$)`PSPRlP%e!O-Kxo1%f7Hxb-xoG#QVi*{~h91qBw5qRDf7K3cqek<9gIhu3c2 zE*1d|{{8&de|Mnx+hgy*My!jWpraoPMk1=oshbMp*Q}AJK7DYjJ?H5|EZFSqb9X2h zNz{F*ul$_V_0`qT>PP0Cvz`86Bzc}9wl%ttAA=Tk7>~VE+4;KTJ~({1xOWlU4rA`A zCi=wT#iN)WHl7+a55yiE)))PsEZ%IC&n^ge=h(~6cyS+O=i+U&s`*3u;_cZx=dvT? zKrM4P#jjzuVP^NeG|@gJGqhox3#h*IU|*VzLbh}XY>+mi@Z-hquk`11*dmR_7AB@- z>^X#MO~xDI_0P#4pp^!k!@A~1L-w;n&--zo8nDF zNZq>$#IVWtH=~ghr1xA_sYg;B>mf~DG`6(wIkNaI1)?Lpfo2+wUmty-cD&8FACuf) zk;zzN|E)KnT;={-x3aPiS-Ihxx>wRO-O+|TP3F%u}zgc5FB;~%nA*Cv(b$D1Pn*y~={tpyMx%8r8JeWj=F|_5 zmG!?jMrIgUxK4P*7Ytg6Bm@Ld z1%%E}4oD3uMiD!6Fi=O#lXr+IwXbWqZasD;WfFm zM`;W%g?ls7YTSLKbh9hns~KT7oQ^(9g408l z^`H<0I={4!-E;R5EbspOlLx7M#y$mCsI)t~G#N#=Gnwpe`X>Dx_O??lWQws)6vSRZ z>FzlgVgvu|FC=Ke20o?jO8`(d8R^_9PiP<2Nr5VHKKtmMh##}9Pe40mPvO+hB42H- zDOmQuhf08on2~x(d6w`T;wF?Z;Znk7Xu$F7-ydo=cDQZ_1iY`Ge@=huRWGJvtksK2)f@EQ8pEfiEsm_e2hI3T=(*QQ zrxbd-G}^D^U!(mEDoLsAK?wHZoi~_EVar6DjBTS3Xb2mBg3FGNAajh|K|52bj;aJ8 z`JID{M~@b*gRg(D)%f+{UGC41-gx}!w;SQQ`r4=8hDp5Owlf_@?$m9Ur0sp~H&119 zd7xb$b|-djnS(mKrHEeLo_=h1?j%ZfJFpywU)cAOjiwT0cC{pEeKat-q&mP+#fE~A zvic68s27T{TBCUY#hhenZ%>~WQl)#75ib<=LUK-Fv%IVaD(Lr$^?Swoy<+|7hHJQD z?eix-MzRu>pZIGLk4RJQ81h6mB7IGWEm()sUR`h&3IIiK8CDxdxgvs4at_?tMdOLv z_RTDf-~HfIiVlnPtGS4&CvFUR?vQ%CugWJAgkp+@Q*Ig{6q_Ar08L=cM29F%#@9X# zDX*ZlvFiAV8j6LX@&z*EEc7&Bb>JawFkWvoj_2?_EM?ww+ZoiFeHftA!Qn~~&uhDJ zKb*?qNr)akQJlkH3%Pyr^M#y{u8qR*RW8z#sT_W%(fFt}{%lFPV2OD07D_I$mz=jf zd+_gPmL5Omv_S~1_I~np9SQEm#WxRMq0VzeDPTfKO-w|&LBS9ZUeH)N$HYfVI=9eh zQ=yaj^h6s0m+y_gbU@h|3K+$JP_hFvpdZ89aq?VlzjuNu)GrK-{@RP6Kl^-J$qY}={FLmt5 zH9~f>BqsewB)m|M7fO1eUN6*#q6AQ|3CiPBcoRhNw?+2Eg?*Yobj;fQ_o&)6v4kBs zz^^;p3|WA@q3J;E{;TPcg0n2^Hv3fusrmRSM&3Gsq&dvcpVX z!lKGcUQBt(izzR8G36x>r3bbq0n!(n{7yF;)iasHKQFzlBuJD_V{e~l8?P_fhuL;N zdk{_VQXu^XS`0~17;S`g+|q}p5TX`R#iAqJ6Zrh?-7sQ z*|7~TTl8oBw!C#awlvA>ca~9l32j}KXzd?@BMEm39Vg`*FrorV7$>3jC4_ptP+t=n zK02_akqsctqWeV=8zldabU1r`xF4^iMU#wSERDwddpc6TIt{3Y`Y^{}^shf2`Sfj< zw9A*1rMi$Yek_Zq&=G6YS)L*7gm#on)q%NQLOh~VO4xv^;N+K@00A?qy7ivB=lhkRHem>A+xjm zmh?hjehbYnN*BR|>^)xiWMvN!mo_?{YBDN~cct+;^Iq~C^7xNDcT$PIhFD|jUgODA z)WrTzq$gTa`^#?~FQ-danp;~8V;5qU5!g*%J8kTG0_|FrAOG$hZ{{GU^qBVzKu%o) zedJ>32d~1d@xAh%S9Y?$mo}q)Xyo0W>g6B)?IE{SM%ac&aRicBsC?qB-wYrAx&1DX zUGMFEFfGdhbg^=ox9=g3jd!83tW){jTUt{pd}v#nmku;+hf%f1@6Fxy<1I^j`-8@# z(M!NMoR_624G}g*tmCgbe*)KF`xSj-$v z?_-vAvA7#1Qw<8f-27$-#hS^E+tIY$h=F}*P9(h#Nt-5PYuj#OYr*f`s9CwSEpzmr zAp^v#|BTk)o6rGQqw)S}VrIO5`fgk$vjkIgH=6t}@A<*2jri|FPzZl^p#z=r2Ex2=2<$KEM(?>FuEW#4n%;kIT${$7Jn?HDUwjar%5-ZBR%rXj3 zUh#Jfk{<^QyIOB)0ZpN7hi$1;cObS2A#Z07Hqk8e9A0Q3#WN^Vb|yCquue)^Bw54bjAbW87vKW53#muKcK3 zn8AB&8`_2Tb4MS;t?xW`%F9l9IM`;~Y116xz$m?q2Gn-#LwD|bCm+am9oV6at3J*!MwMsb*=YV&9ol$* z1TJ@$CmfprgmRm)?bSC+FS>a)?amSD%M>*eOZ#B*Wa`IEMKAUMXP2?_YW5G+RfZ zR1PBQ@v?L0u$SYF_a3aa8>6SOo^3a~<4C;8*x?g>>OQFxcH!j55xRSY4 z^BWh!v2Wi=oey*h=Kdi4A&S)c-ffhCIy(ERr(YUHuBUuIOGY9y4Sr+)XKK-)jIyfa=`$8a_-E{=6I2MEd8jPxW73K<~h) zz?k~B4Y%6k<6U!sw*U6N=k3B{hrP$cL~k$9%#e%*Lm-Ernz+FD={vmNoQDu(bKkbd_=6YU&?5HF63wQ;EU z>@DPz$Gsza>ef>LUR3bT8_dR(J+V{SkVwRPdeDL5P6-p5;A4I`vmEzFntw9YdQhCBB;h9`63k=XRNJ6Ir{FOAY&FH$wYk!+4KayN_p3*ePZ0zISvR zV9tmf92@DP-E3y%xCfHvx0_PEH7&^Fxk`A(W zPCw_+U}9*aHiUgi{{%$GgY{rcO8?=?nELQiH5xok2a-#XKjc3It;&~aBAK{ zJLr&9t|DUCgh8lD-q?z@ilLr%EcwaP6FIaU1aLpUTbhxkO&8)lI08sK+&&i#hwg@* zdJ&xJz3=1AIPrK$ZQ5tEzj^x}+_Y^R96n~{o`5VDC7->eXu#dyWc*}v=xa)dD&Cuj zggGU@8~xPeci;CZ*sn%t_lF2>;4i*FO0+iGhaRRGt&R5e zM(D7G)XAovmJlpm6aol@y*bR+Dy8g!qm|oJfP<7P@)OQQkROtp;49{u4T#OqDRgm< zO5{r9CZ3GPXt$I??(e=)JZfJ8<1AeiLJ6B{F}O{8`y*c_>Ief1<{h3dOQ-zFm_@t+AxwJnP zSItG^@uVN@^@1pfQ^;JxcI=@1C8Vy|m;wr?;Gph_b#yN|gG71cH-7%>47S+xq|=-- zPD{(kKYdIZG2<$e@kCP!_S!MG)M^xCne;x&r-mK%XP^g}#+bv#Hqc2{082o$zXby% zB==~hg7){GmTgpX^ACRX__L~wSYIFI%H%Tb^etQ5O*vb*MQEGKd={!}qriK6>3b99 zzIO{HDtkoDhVc!XhpCnZ@T9`FU|Kw(JX=FB5%Gi3ImXCEg)u@Sy3xKw|3^}pT)rVT zTd(3=BGj_pmihbo6McTL-wP^38W`-KZCIvhVg)Q~^aqBl4+flwlnOWKu|&RbLs&I~ zwmqKHQCme>Ku`2VJ<|#OaH!f<*5?qKHygWNL|Fhh0?+9rqhpxwzda6{2%`JjaQ8cB zo>|%x^^AVRB53jt1q+s=C$`K@ zp&MmO`udVhRv}S{ipDrkH}a{N`+=q`cEGia%!-Tpq-Q-Mq>!W z=naGU=;#gPmlqJ;&em=u816$QZ_a_P%9K^UglC^G5krv+^3V68pMj+O*puIji~+Zz z55GSp=MK;>`N?ztSpL;%fKWiaUbOr8O}FnOhnuP@sTU5Rc*F}uy%3zVi*`>OU>}`G zsy;r>nik|E9_6LN#t>{*)M(!_Go>HOHm81XIL=Y`1yTR!Ypp`O@i8I((>x&#EfV4{ zt`uU)7le3WP>9yF5N=6`GowNjz9q!Ne<4KXULpQ&2ZVnP;pc_We6W_?;gTZzMt@_4$za)*pt%|JoE1t1=<+opMMV_>+*B@$HcK z-CZGZ^Zg<5$lr&=_0NRF5B_6FEPOL0PP`Qo|9B)M{@_eV^tLvLzK=DC#?A(DWwb$j z|H=koT-_il8ydvF-O?admm9<@H#LYqzr8_hzPmx(c7KET$iHh4|MYx=NWR)2{^ZvU z;xFH65aa)|L0sK1L%cqBhRA9&gn7jb(b7Ld46d9ZmJH4iUomEgL**Ib8#l}l|KnRT z#KiU);_LU$5cwT5#B-0$5Ldl0L;Tm*XNX_^*BPQPK0|!|f6WlL&6p`db7qQv`1DM% z@$#ACzxB-&Ygf(`6B}lVzf8{*`qr6Z&7aK_zui7lJn`2v#lw%x6#wPl&lDps&lFq# zX{LDZ?U~~KV>3l2G)pvh%o6u}a+cV;V3z1g&Jr6|%o0zmpCt}mH%t6GYnF(O%n~=> zGE4mX@6Hn6y=Rt)K0Hf&^VwNKdv%uh+x@dd?fqHe)Bk&xxV5EGW$tMfH~d|*2tU;JhlB7VB4McjT>i&%b5i};64En?(rE#lsx7V*DFT15XX zEn@3;Tf~3(zgk4{!4@(6Xp7kST#NYVD=p$v|I{MhdI!oLX%T;PrbRs18Wx8>9u~u$ zVexb%EcRX%77wioi!EOci#IZ1@h4lu;%{yWi%)$!EUx&gu(;+YVR7t{uz2y`hehu{ zghl2b!{Yn@Ei5+wHY_fk2#Z^1w2F_VVNY8BuA3FQ6zR?+rstGItpt0?|ctFYf~6{r7atJw4VR&i-- zn>g_YZQ>L2+QfT{+QhF0+Qj=S+Qg;n+r)pl7SgY86Gv)o;t#*kCLX@MO&q?vP5kHk z+eH7rgZT4p;xB*ICL(*=#7)0x69@mf4f@zFj?Qiu!=Gsv_g~&FRwvuVyQy}OS=TPM zZEhE3t6j_)cJa^8w~NPKZ5My_PwnC-ziAhTkG6}= zXWGRdwsnY0KG7jQF~38+mh2Ee{X&P>`K1o=Z*m>tVW&ep@TVQ(^tKN1`@ifE4S&-i zzWqptSoQBa#NdDI5TE^Zhxqt=9pZ=ovqRkb`wsC^c(z!7(QFaAY_|ADY__;%$!zi9 zA41xfXA2`UTNIqx;`85_Enc`|wz&S^&K4Ix2;rTx#UDKdW&UBdSo`K|apOC)#rTog z;?K^^7ENt)#Kw!}h@W)M5w}L?h!t1O5yltih|(X=5ieXnNBr={IpSNl&Jnx*VvhLv zkLHLU{oNc#VaiYG3aEB>l$ zu2|bQSNy^9x#Hb5bH$!7&lTS^=88Wr%@vzR=Zb&0d9Jwp_POGPAIz^6g)77-7nt97{&8o=dM5ZY0s#SJH&e27!D6Fc;T8=1MWl<^XA{rHL+R$~8c1@8k z>LRN)GZKP_!{FcO4n6@fSr7p@Qbj?izWD;YxaBX2hH*-}} zWYc1!Bdn}&Gh)buwQ@wcB5;MwVH0O%R2NuZ)fI(`a4fO4hD#Kfh8Xl%lq$l7_2H!! z<|uT4R!bK&wKZFeKyPvaRxe!@C8q>)4MVd;5m%xhjGCZ=!=h3XB@;?Pn|YkeJmho) zbp;m8u8DM6n64Ouf#G6{iZ0}Wx-er|?1HFNMa>bgZ7McSr!Zj}O6fqKh5E(6u+8i= z^a;8R-4U>3ZJ6CE<)OL-1uQH-l&NNLhf>%XEBRr!N@3W{Lr@7`(0ptlmP1hA7NnL ziJU2#L|C+o3&bbIXT-(gGI0g$?L?C!s$L-5k0#v@LXdXnW`{LwAMl3H>Palh6a9 z9ic};J3~JYJsx^0^h{`1=$E1Y5PB{2kD>oN^y|?6(0>oT6?!jpH1yA*6QR?gnGMYi ztqpS;KHBi{hEFzprs3j-&owM)SlFNQ|=x?r{RW%KWX^0hHp09+OVzR_J;2^e81tZ8vd__`x_o^*xB&&hQ}M8 zYIvsM`Gyx7UTXM{4X-x*r-uL1u(#p8hNBI?Z)lh?Yew^owiy@B_|yz-#=IGq&*+{J zospQ)J7ZwR;u)Wxv3$nWGgi%5J!9RB4Kp^)_{xkeGtx7%Gx9TvGq%ofXN=6aVaA`# z_{NNH&bW0(clV-6{|}kfvRPb&M{H3kZI!z-xJv+lIThIcX1ZD&LudwnLWwo$Vy;px znOTj}wTkUpm9lnOr*m0Yh>ewsR!W!0G!!t`utIG(U3Ijyt9=b}K>77>0hCMt{#vJ_ zS&mjQuo2f>s9E`PrD|rw*iL;tW_h^28WC*U!G860I@G_OFVa{vfaOp=tHC{D4nR{- zYYM8e%6W}PE5vl?VO1G=Tdmoyqm7tV6MB<2iZK4mht2BP$IrNP%qYr-zdFmq9Pu&*_qYSIhycdF{{-aGviQxyK0&xUOlU1q>Jft#?&C48-#+E zKM2e}b?qaTTj2R!1ORT4+BDdo_?OewGW2smtI_Z^w*pHB15KA{YglPqC(4fl3&pQa zTi7mSGe^x#%{8gwsnfePZ5hlO4gh8%Yv$6mqU&^b(-etCj$xH)At7wK85tCd{A3P0 z1+lim8#Py{m9tRo#_E`6ryYl;96l^odmP&59n!50nx?keD%VD}6_re_1eZ}7vryID zK_D)#L9(O zzih+CO`BG&SS&cacEh@>uU_1l?abhOt?;%6KE;ouE%!FU7&&8xaD^U6`%%(yVw-sh|6OIHmB(`99sY+e-TM`!lBuzfxG>2ewJ(-xtUGSelU&Lvs} z0mgs^8xlhZCDs?sv}0;%8}h>zhpkktLf^GZXbLW2(7{W0rB=XGn1;V@0e(@1mv$te zqpn3jWPs+0`mxE|ttA`>_a#T&Mkuoy@Di<()9@%vE)RRjA1d^y1}Dz1WTEC(Ei*fy z@p@nq!7OTZRoOACE<#0wTW~lXM_aiTHUpjcJ%(%HVybhF#pPR zSAS6My8Kodza!Y!5crv}N3z<*i(zmJ!g6lXC5Go-8N4n^>AcD36t4mU5o6v9p-3=a z)>O^IC~!*wl*w878r&`yhl6!iE2Ug;b532ipFacL`oIE#{La=|+9`Z+6TvcT0EUcy zh&};o9s4l#FUL(;z6^G>1^MW3Yw!{8nISpDKo?YL(?Bhq1VQ|jqYN%w&xV!17}xEK zR%%ga5r1&)_*(0xZ1ro-hoMY65bl){T+C`OI_SrI>byjJ0f5wuS}tc+Cyixwg?AhE zLfZ`8pkZ`6*Wu+=(O|hK0k*m(07jWS%6T-Xm9)t-#R@@sgbS3F&Vt*v4ljPZ<~ zO=SM)!plBW!PBdAV|Qg&l-jel1bxEoV3UQW9v?E zj;?>9Qt&DU46;zk;#sdh-q>yg{TlZozM^h~jBQm^5x{={0K>mp*EL$%9LdNlLY9ld z9a)hD(s>If+o)EC;6}33SzPY3`V7My(h6|Q0m*Z#V+gDL`KgudG#o;lxtxMuX@}4X z0woFtpC1?XvuEfosH@K6Iq>q}eY@aF*kY9-2Rb)oDs-y~kYMA6Wvf=N+;H*57oRnb ztX0)%1acLio#g-=jA~k9SjF@h)@p0>ogoV@-RuG=jPQO;%gBs~q!pk;%hzub(WF8P{96 z+*o&beYIi$Dg>abM(9wn0$s3S(vboTkO$pxsgxZn3-ixwaY@m>z8(XEZ9di72A9qO z%+tzQ88|I9$U+<9T>HU;wZ&R@XCwxTlEPV8wSG{Wk8MLb+(zd-RS19JpVFe?oQ;1= zm23@&kPP9k>ouol+ZDjYh9lka0crw}0Qe*r?)N&`aJISR`)JO1ZGI$bMOgpGQ74V=__jG0$`O`p=!a;_m$;LZjNe$%QvXtsplftW5zZBf3Wuh5 z)rLP})Jb$+4s=InG=k>~CKbkzf+6B}dG-?&hLxcM0y{aK%OQ3H^#UNITw$bLI_DKf zflTO(B!I>jLc3i4fjTstMEKoc(wUKGwW~`TWTdW;F1pAX3BkzLFGrYa2urTh;7_qSImLExYhXO=*qRJ#niUA=yfET1(TMk<+V5wo_W7Bry@B*( zAlwrOCj$B7f%I4)91Vmce*UX*Z3w@|$p>-_Lszd-p*46g=;Por`W-a$cp_<9fT~BD zj_QJHS1emTpr%{^>~gD>A}7c>T)!OWRftvVg}562Ziv8NzzsIU;co)|_Q2mH`~^H? zLm&L@$L|rbc^Hm-rRrP+1Y{LyrVFGcKES7CpBQ_RlCEV11n7+X*7EO+?Tq!mU zuH2xKLQ3yzk^>|PQRPJn2^6c@;51ed*yGR{Oy;&(Fg|MH!6Q)@;5Gj6Y`fT zr1s-6Y9D^6ef-7t@fX|Y-yZp!q~B$!jWXURfBWSxv=4zzYgedvjN;fn|5Am6Umc|H zYd2_!#Lw?6jxN;B@ecrYl@D({I;2(81sI3$1C9-z!p%vV>uLn|F8qactHQcfVcn`Q zFI8B#Dy&TXnP!Q-T9nfNz>Pe625J&bG@fqnG-hUV#vGJ`b zL&$2&08w0Up_oOjoGzIyv||aIe z+Zdil{1m)m6r9I&ylSxCNH2k9N|TpPu!^(OAvI7QGsab0(0{u0cz9ueQ+_;>;C2R0 zsH@o0A`cSX3hRUOGHDt@F@lbKW7t)=5CHeY#?ZM8lX`HcD6TDY+u+)@3u6vk5k<<% zy@vhgadhAkC?N2axAQ?=nSu#u`dFn_l`K9< zQy?#95!?m{m5FGpN}fqo*N(%ZfA=^PL5Zq7q%HUGvrT z8g9aFFW;A}s#}9=_6FiqBHO?$;}SYPJ4}u(LHWPDY{S}BYrilsMdc$^IAM#BzJeOy zegYtiZ2{>KTt-Zy1;VxFIyWM5Py!szDrYUCI?|dXulyNCR$tDlmPXQ5<_n*1oB){A zIM=UQzfoJHeF=Zcl`;%9jo2l?g`sj~q%6L)>Ps87WrMIC+;l$Av?68patf-$OAl5e z&x@ioc@B+=3mXUaGt`N@3WyV*(+yc+chq=NX#{WpHe5KVP(gy)-u!yO2sxLs<2_%8eGHG=_(M1e3Xz|xn}*U6&sjN zHENk5({+dslOeQ1xbi-VB@F_2xwPW~`b4lVXQu_=rozlRHpZ`q{X#hJNU1amIWl+> z3bGE<6lIg&ilEGJT>WOFNlbGAd}2I-+kehCPe3QwQ#UXik< z3KJU>*2VFjX<(7nI}Of1d_&A`fbb1U2E1;m`~%-dGle_@J6cU-dJSlRtU(?2Ld|xo zGK3#Ag?l$z3-Nm9%^>AM;eRw=J?q0+o97Cc$>CQ~YPYucu= zsh&juF@n>ZF|A>>CayAbcdG3fFW-Qy2`z_+D_vN&s?mKvah1`^uE%C?7tY4``JdJt-k^o^=9M zEtK`(MZs{P=Dpc`P@RDeLAq=K_Dmk1TYwbRx|RS*%CL*;Q@g}3IUpPChLhY4$Z&SF zo1ZvQpr<|^dHLQaKfNvwqSNOn>wgNiP+u#=12xo_g19}byLkIz80h70r(}1_x84ut z1j)ElbMQG48LgzJqZ8rgxo>;keA14AU8c z?8X%J2XOsOa*JWs5)1`7*b<2kC1||<3}W55$1CNm#3?-*XCysj*6aWa5@kk+iwNjs zI-3FXrS9Vf(?LwF#&Q(?hpPc~kysRrv93BX2zg;aa_7o|{h%&RO7ms_>KFpT6k)!J zSLwwAn!E`~48{A@X`>K_O?*IJ2cQm+()FKbN@)bHWL8*y3yVRDDOpP9T3xSdM7mAZ z<>jC`u9Zgs`Nn5J>axahjSfyY@Leqwz!Rh5lPwZK_4BO)NIpt^#78)bDnxdc9sbaD$YOzVmu)a}_}W8{F_?5&9rjEpTdw4oI%*?xQ}t#q-+hIWxZI*BNeNc(zIR0Rr1PMGM&3xzV_mH=`j#)7=(C5*qsC6 z%^J&`sbnGW7Q@8r!jhjt@GF2JEF@H@sE~zKfG6hxR4Q^jgC~u~O9CVSCbJ9h;SUKP zHOLOmPg3B?70S{7jgnwLf4g}io!kuC$)dWb}n2VldK3>2;tOH$B2=cDWA z^I(8?ADyQje9~h=;e#tWtDY66QOoPg8edGgGL}hrZrbOvFrxd-vm7Au;Q18_>m|HhiuH8| zM26&uJ&YgPuGFfK)_tyV;RWpXwSw}3_%J_GMp>0}7ZmJk)wbbAapKTeA}Z8VyVk6)uw+g;5y3bqzJ&W2=T%QUdK5~0uo{+{vuNw zE@QdbkV^>o5O$N;tT?xqLY2^N*Alr=^imD5cwVcz`jp_T6f@PP5u}NN<>~YE ziZdT}Akr20!ilbEG%V%TF&>R|MSH@5c(N zoDW7l@fkn&#r1g+Be!TcnQN4k)22OC{wIuO_n=bRLON0M80Yhug4mdZ4l*ZXK@A)Kcwr6MN$0k zZh=q=xe1x|S3wpu1xvP-tx7QnkwKZoE>DPu_!1tjI_aarj!B+Am@j}i<2Tr_3p0GW z(s&Ak@!k&s`52P}us6*KgKofSgh`t|^TBj$_W2r^TmZnT?R=O5$P)Pw*@tL5euy!v z0)>A$rZvr$oD3e`DiROVYOPdSlr5#ZN=yt*YZ9OcQ9jenOpK~&<}Hm*o{KKO%}YztisOwB<8~ERD6vbi4~>Zs-DFJSfrZAYO@_ z*yU$^>zs#Z3gjr_W0@qLVfJ+7cIe!n5gODALOGCgM-&G#6cE{_S7Rj0Ssg}-CQ|RP z8dUvMJ<_qo`3shwyC3uIT$yBqy6_*MmQXhcFdNM&;S*3*@@^|RO-g!8LYI0?yaA~1 z1{89}iXx*CswXffH1A4Q)PhamusnQx<%SLGHVmlck@JeR)fa_{Lcwq9&c*8G98P7G z11=+J-hi>pV)dMEE48nSSwE_ao-H-hvU1^GM=3TsYbZ}4x!RJFLXj-*TPTXp4vU#L z6x~crpX;>CA#pLkML?eUMmmdc9t$DeHT`sq2NTwATD@8$s6%fq_<{lbX4yD9EpcbU zim+Xu!eeq=4Xl$yuZHQe*k!%Jv$2JKmpFR1MK1BhPB%s$oepiAIZbap_~5mf41{|F;l4n)-w($kfp9bs zjs?Q;KsXTy_XNU$c4L8dV}W*Kfp+78cH_{lr1FDLX#x&%zD$yCeljaq)IEPrF`xb# zk*bJ%ud_-l<7#U4B}gxVk1d>Lq%G+A7wC{>8<%}SU$u7C#tkbFNcilvD>a*;ghUZZ zz-F>6%^I`RWtDRkd{-bz*}Ul>l-sau4ZneB`QoAvoJX-2f@!cZj9{GWaSCarQ|hOU zq-_?PU_3m|T~|UjqgSX0ekod?R*)7EXqdJ-olGfMf8Kf!kQV_{gWO$sb$oDjp&lu& zqri+TQcS}Xx&vX9;gowp^V)-&R7lh2cP5HiZ78*X@&dvR7{LeUWm$Hry+pV1c}uL3 zwZkn5{nI`$ud3S~qRvdKZWhgUrj=LI=q-@*+MLnmT>ex*CQ|qOpiK0H{Q;S@Zo_fT zoe9q_aXgjEu}~T~KB-%&4t24H0mDR3^$=!=7d>2;p0CPn9`BrXo8Wkg~TbZ453Wepy^VPnvHT8E?oFl7GMY-Yit_Pv%sjr)5SflO4Wq&h&nG3K4^BOXl2G0Q~&5)!G9Hi6M!6$Br)=k!CobLPU0jA_(6AqPYDtXQLW6cELS*f z68ypA7VLqPE8r<&889q6Voa|f%KRbR;BxAWAO`KDMhjV_MdI8*3$ICqr^qj{DZ|R2 zqd+K;+Vq71R&c`C9oGNgw;Z`VENti_0{BV<9j{8z5>|D5P%$YSp!ye(O^mNu!^~sv zDN-p%z%QVu@(%uh1_E^{@!$LS=!JO|U`KD;3KO`fpZ)tYtNz z;@6~$Ira6+m12jbh%M*OY_b+b^KDhtRh+Y3Q_W}9qpJXrR z#q`A8kcT^|G~&~p*#)oyi`AO1!a691<(Dx+?|r>`aDy)yjeE!&&48~_#sin6XF5mk zBT6r>ThmtXgQ_CRtx1E^-9mBx|wS5@B~rHVY~^ zB)t%39jSq{{$}83bbu6GLvdAlKx3Ml)d2BOTvojdLGNWFm+>B7wK`Upe=VU$e75jq zqgz{v;y}mLFQo;r~4h87^0gX91eBQ3qY zaQeDR4zWn4$9_=-3KiEb)`*`Hij(}YPO6W3ri9ljoJ}CoBwsg<){L^H%CMd*)|>)v zu!S0m)Mymfpol!XE7lAIg$s$nNsJSG6N9Zw-Go(I)alG$aB;Y1$q1&Xh7bv%o5+Yo~G|CgP z8!WE{DxmTj?tJa6vk?Ri=R3dWJ5&TKI!WA$H^B1MU(^QSyVBW+bDg7R1}n7P>ikY> z8gAW7N4u7wZJ2ZBTL7mBv28WD0W~L6=jCye#JBqY1Nxw$IRrkFa`YIc_boW2WT&DF z$cDQiS#S)|mei2RMRZKFy?+HV@xZ7WN!yKsrPUS#?5wHt|_ z3&D*WB3>x!g<@VP&Y{&YKPQEwO7vIIlRq&Mbr*3FXhp}(R4Hb$MNu|K=r@yb33kIz zME*wQZ%qEudv{T0D9Q{ZnW;MfpfUv=!ITak9N8{g@>6fnLW^jyz5^s8Fo4Lh6u+=Z zKC)P0k%t`en(=}OYf<@5N+b)G>SD(1)h^<2&mSf3`!4CEIFjPRB zI~zGyM)TSJPB<11>~k6&kty=!4rX1oBr8U0 zEF4P&3K4u!b{9Okx%F!{g=2L~%9c#1E9V+vQdaB9i+jR*2=$N$Lx6?JAGr8|;)$un zBtdg;lMgdKJvS(Fqn@M=Yz4L5H zVXf-!@1m{{ur}#kENeQMs^yt+1RNqa+3v;UVrZxayCWASJXM)swPYJhjkm5QU+18+ zCgr6ki&2xD;QY=SYG)QLrRjj>{2LyJPjde#N-ZA%!ygV`L7OTpnxXI?$0~W@YOQ3E z&N0$E)moYCP?1&-;D`k>m1RiHAd(3~nH$suvTId~1s&b}VTQj%@l8Zo}S~xLR7f}cUC3#n{Z1={hX)c&X z9ew@ro?K2MQlw38|KpM6!>f_1!c+`*6ofU}ZZL88%ruujtq|rl` zkaDE#fUC`~n(hFZ!;|{~2wcP{x)5A-O;g9f+h2ejcA?g9SB7m}&_>&^evS5p^{dvw z9?s_pTbVD3LuhP)C+onc`r`0Z`JEzSOH*eTlN$}rQ5RsjT?IB2>Xb47x6eHs`2#0- z=zKgI`2&!1`a(oD!L;+q56K_WGn;<3fFYyp2jZhoqjsl~a{*JF#^{tZ`E({CZKn+j zb!4WISx&?UXQbP58u^$>Ih~AS&NOlj!48>5HlL|9jUl5%%5>VcD~>hV1^cRtjkrvs zh{P(UGyH0%HjQiwC!Ef@qy4^VG+eUr!kSJ_q|X-N{W$H+^zU>wKIOKuMN@av&d{{$ zhuf+;?abBb4-&Dg57!eWUem+*=})9xv#Zv$_T7kCU9`30Ogry1L{#hY`^v5#lpmlI z{^duzX@ZGG#6xAga~ef*r~xn?5a^PwfR5LDr96#I<{5YUKp=w%(%7_MLWUkBrU$SU z_hLFb1oxj*X`e>+bS-PS)6K_p*mQF{nd#=#NeyM%xuv$_2d>2jOCEbd(;3tnoX%Qg zYSV1pC-SG8c@a`>I*S!dy9_h8_=M=wULWL5k1#SMnBzw*Ns7Bu14-S zP=}>~PFu6G_?C%pBLi#@Y?{cVKv=Kyn=y@(Ipun$P|T9)FHWPwu2)C6Kb(fwte&r> zt68PHG)?5tsvtfL$T5JfX^YiYP1L@iw_jWeox}))dJFcVg6u%cXwLD|OC>c*A%;sj z3ZQriGzV1^5mpYvLg26D{VGlCE_^KR%)(DgXIC`ov~2El@JU@D!=En(N33SE^`W*bLNRSZ{vgt;8~>Xp2n;dGuO&BoW>yn|oSKFt@E zOmo@FXk9E7Ggi)!p%H0IJ;Ih8nL|U?JIIcK)7>q|>>SRE9un6c4 z136Tz z#xB_#0D1X9+imkvu&!LuWs)v&P&PCG)k+yu)dreN)2>sxsSE3}EAJ^dPo2)x zCD4u%TXxIhy8`_#hpP_)-LZ&+e4tLYmc@3(u2IV51WDET?sO2MA%M_ai+_-E;V{Bh z+Qnj;922asP9YK%iAfEeRTgW$EJR`>DXp+6FO9r5kSCwAXHJIiX0pz?P}WtSYvk;`4Dgg;Iq%kX-Qb9cx+!U<88oio*6ambrRUKsXv0)E{ zELAoN)=rlP0IZ(~?V zjBA7~7I9VPFOb44=7`P;S3ymlZf%X_C_54AwPOT(W0>k8Kl~x@1LVyW1S?Y08C>jJ zYg^oD=fXnXLjHY(vfiA(YPu{uJZxqb!|vXkCi%q0ggs54Gw98)zrwJvMSNgGma(@j z!i2|M&bs-v0*aN8K%OS6!UKlD#hz**VR;tTEi|Sqg}z_23UH8BYgTSR{A1-tedAa7 zcLV&UR4 zL-1b_4%TZ{!f7Wr8f%)g#jZBELs^i;F1gWfXX6Jk@kvN+3_Angwv?6s(*p>2Wf%0Mmw=?~o_$*(!ylL%UoI z%gL{tP3%On8%iQ(xEg3@S26~4a;H;6Z**umD>DYysm>Z^O#7x?o$eL5Wr>FXm1D<{ zSVwzEte37^j!si5w~=rFWz%bAd{HH*%b@;mfI^j*Pd*IjvN2+~OE@hdMA-I_xeOh+oFB@z`+g`ZSf3(`t6f%A-FQ8AoJP zrJR+AmIqE~U@W9TT$NKL(-1GCAxvtYUIpNk!TBPMB$W=RAxyp;6SM$rm1{-P0oBWa z^+GzToT*Qf>oTbbe{)%_O-DnuY-C%tk!Ru#_A)Gvmmg-vAG)domJ{D!^pfMxBPxA5 zY8kON?BmC)SFOK`-fpZ4%%CIuv?}_%f?8{;-D;JZabP2u+zwqoXiJVHA7xx#N5YE( zK$R1T_7uACX6-^Rz>+rW%AtkgF6QAmC?8quN*6H;`z>MiFo95lxVD3K@Q5)^=bbep zbwzv7oaDO<3;xz}IrLFbMH&1|n&mVlP@^jg&msbbf?2c?^5Tm%rU&3VDXudONzRev zjyO9_H)?b?Wjayd1Q%h(@_4r0s)c;UA=|A6qM}S}RfpQm0B9+uVXYy+{uW^AN^mF< zB+)ZE!#4(FrtKEcmnQ61pzKlD*ppLbAJzD_TLv^Zm{y{)Lq=U1ROzJAptjDtioPL) zr44|e5#qA0l2IJe5nseh7KtTP0C8Y1Wl#{-U|){IC8={ybl!-vKCGk+(RnRnE97p@ zH$#ZVn%$x@>_7@UgwKfjdQ^EwxfSpp`O!q=e1_s4)x*kwY~OdPIs)wv$LgzsqG@d; zO~xf$Wjf3%J4iXA$oYp7J|Nj8N-3K27f6HVJU-7DN!nhFT;FNSDd7FXkL-N57qgD4 z3VT*tkv!A*u6M|J7kOfV8xA5s)MgPlF7C{nyKK2KBE5VqC;Dc?%4MsOj#2S7>(;K@ zxNhyL<%+(6loc!WWhvqV)}?J&xjN8qY>8e-@j1pJ1u&))1K-av3K#|wM8Smfl;aVw zVxFHTEJg}erhpV`UBz&oiKxc;=|;YxmJ_*h)sxkkEN2w+vzMq zJsW`SQ!r2ZPW)>ePR8|wJTPw{lY?a#%Hp(vUHKTUl1157`E-TL1BLUggC0m^lWo?>x(wz=#)utyWg(d%YD(g^E@dYJy(O~b{a<-)3 zNCXkgfm5it%$S7&8Rfy%0(!=z{?s{6>sD`ao>Vg5wC74!mWB_kg--XyLI%9bx_nRJ3 z-Y^v!NZgVxK=OtpA{Xp~-+X-^498@CS-AknFI&t;|eJI}g5JfS-L0^QQtlB6^! z84i}Ehll$3fNwyZIHlr43GsyzUW~kqWKoMn_tMafr-SbUo;zvj>Apsuw$(cc9O%xh zpnqYhY8(|qSdCd-gsT^5hwQ`ZQWBPciej6Q>LICh2c0RPWH_LZWK7$1M@*BRd)X?j zTrlC@sNg#%T#`w zu=~L^3Ja{xUn2D5L-H-iE&vk2i<5+i4A;sATR>5=FmQ+8p!f-$&X@g}Bi40JkU;^& z`LQi4OXm-+>$Kv7@bU?N&Pgp1#)4j3#Z>8h5BcfJzXFXUkk0>7BKeD2fv}mWrvYUu zoy6~fP)6+mR-;291e6}AW@n{-Ji?9{zyoApZkLu7Db+Jd;AOgx(1sG#i_dV}n=v~)FJE0N+F+Hv#p;ZqfvUqe=@ zJ2@l2GqU?xo(yG7*s5;5%(>XtAy>W*{J|oT9`JM z2k!CFvFVD5i%ZJ|4<_U5ECN1+DTohd@!5`KnSh#hlza{I)oRS|Q0yKRcg(Gm?PbhyeVXkw^y19nS;xt+bR@t&4+oLXPA}r~ z#LMu$v7Jnq>4>_ii$(Iuo^hu2E}TX=E5r+WDMTDyY~62@)1@me^~rC{qQ(N}74Rx` zos)fbd;!C2eR}=zrRcFf_Fn^61F>6upWAq*S+)TyU9%ivucu|gLfQcU`jmeO z&m!fZNmLKqrbOH@!x*_c5-lUPE^#}mu3rC@T@x?v1lp%oBF3wk#dPL_Vkm1O(z}@Z zDxGx>VD81FZx$@IaH?W#1Pl8`Y-6U&kWohT7c7n>(S-D0LP83i=+?|*mTTUi$iYcf zH>|u2QRNseIyt)i(snw7Z;TkOA|sejWiC@AG%$z0P;h+2+D3LV_Fw@{VxeSnF_Fg{FU3oBtoR47w zFD9X^#VqoQs8*K6U|eVFUFxxgaDLz#09`<$zjc|8h{VY+%G70eA7=s6weq?=2U(@DW;A-y(udJ6JJi-|30ZM;n2yun7IpG!X4N%CiEJqPF*N}1X;w5aL!WTIA ztX0Uc-^_>P6)IID^?oBof8hRGyG~d1Q^5JxNC9O|19Veoc2U5GePUCcD+Q9%&{?`! zCmF}^htrp0I7fE2xE2c1`)=TAm1ve=oOU94&qM#HMN@@gMZ74zg35Hfbja|Ej8pks z8s&?Hx0Q99-d*_Z7hef=B9i$n$pgNEVTF3Nr+0Dx(Uac6(^2 zz3c%z7Cz{Owk1b02xqX30F(*9B(^bvQzGGufa{CJ7|0ufU>+^rc&tM)Z*7;7OJ(<$@wo9sDD z@K`w0K(IU|A!`g}F~euq>pKS_5()VNULKskG0()GpI$X>lU^s;^P@K3uY`n-&uSn0 zjm!}_XnzKjY%k~K`Qu!kiDzkrln8eRx)-zMuksKnZQv(6yP`ea(H=kx@v`yEL%=3OH3hA+ z2e6`Kw$6TP68~!4?4&>ImrFGi4bcI7T_}(}UiE;jklHfyg3!Yo5fmhUi1!@%E?-2K z9LY|h@6_ZqYt{#^VC6N9bPY(BoCNSZDk;lzrQ}_3_Q;p-sTe&q&w>mA&7{5UZCBdg0~EmS3|{zh<3E`0}zZu7su~$bi0(Kd9x`=i8%6*DTvWa{zU%Sp|)*-?R}s@g*H=B);bIFX}W1PN0Ucvr?{C=gC{CsMfO z)rLP(K_ydUp&JZ&Jt+Aclq{2&Xk8kKshQcjG^-+w*9FqZ?!=_}D3_9XqTNcoT`?&w zN1WUGG;To2D@oa?v+DBmcy$5n_hg?CEAkKuDZd8rN}A@GB->=l`#)&=>@1lnxcnxk z`EfG4gXl$_w3-OWgrUWKl5S(s&H8j!`a|?g^#N)N%6a*ijg+(U#KkynmbdCzb8Fo= zB$tmKrJ;lFROtwZjdZpSCnpJZUtxhVUpzhjOVAv^wDXfi0Pfp>wqYZ=P-pWh0k_Hs zj!+nEE3&}mGl402r}8D1pjDxgcNku^NH(~VC4mJg+0qvlKkWda9I2Z+G)Rxz?5y)kaPQF@(Qu?Y8d(@rJrbQ=i3nU- zovX8?@J2YpkQ7Fi`=mG|@n8)3`NM)`nsi6`S6o%WKrWSAsGqm2GNfJC z*R#baaXseYWlUw`RF-Bt7_ZgGX^xQABVYt0hcFF=AqK^3Wsd{SK6>lQ2iBBm0-wAh zzt&w#q^zWbESn?O`Qd0F91DcwfpCJugaOLAv@4E-Jqb>#2^dMn;$0NzA9ZYus14@3 z%8fuV4(BUUOjh6msIcpf)Knn~qr3u8f?-AF5+>yggoB8bM6S?kpqB);Y<#3 zS$wS-KuU#;#4^DP2#7xHVFP?->f*4@!MKCo$+GGj-cCb#V$2*>PNLSvRhJjUzB1aV}oQ=ZA`=$^xI zt&G!6$cf?uO!`I}BUpdn8;k!>{f)~>J(elUP5q6!il5G^kEEohEJOXDq709#R+=*1 zJFg}xH>b1RBc_!vxD-djJHa)eN@U)%zVTy)_f0Lfx1fP?Su>L!lPyEMexYR}XQ#^s zaK97g;B9y04M`-!RJ-nLWo6pOBw zILX=h)Ha;-jmZ;#-%asNmV|HRfDVFlcK*80dWO}7&d$THiovW*gikN8$Do`>-a^Hl zDqp3VsmnJ-9>&L}9;5uG<743Yz6W(Z&Xq^r#pnEv8o#c2?(cHuKH$49wbjo*9y{$g z*6{iJE0KyS0~ulnL*A*tn0#gx=lVWnx`IF$#y1Xy%h9n;k@AJZee z&ni#x1=eInc#Q9ue&lTH+uYhH<-eCWCToc1hn_aYz%RL}FXy+%~A&|6%N( zdG)2UNcxgQo-ejR#-WSkj{}X&n4Zv{i`?SkR z?fNM*bQ2!$qNp2PUbTF|M$JH#rbso!$tqjQQW_VPzFG+RC;cUvDQgZ7v~+e65#7?l zq52#oEslAzUY_jaJdSJHUNu4uTn%{gAnH1Xe2S8sE2U0=?`-&HSSu6aO=0=wl&-lI z#Z;4|w0GY@J!uK5#e5U}7@|{P#3$mOS)&CS?!l|EIWkV1W15J(qq68teSXArWR|L# zW2ahDjs6C6p*FHr#}~}SC{##e4@hWpsqXG>gg0J`opg;`UtwC-{wyQG|<9{^#XTbXh2Hg*kanr`-_}+o# z1}h~~IbRP*!OQ9xrkp3A?TOv99H!KPn_pQVSR#L2F30jC?0+eNR=TG40q+@_m$b25 zcb4yPrYI|oYp10|=}-{`E1>SbT$Futp-TKferuhg!Y4qkxs z%Ohf*uQY1nxmdEV_62LAp5?6WY4($a z>bakr%90_LmHV0A|CH&VuvlNUN`QQM0|{KrWmZ7oorG&P$?}M-kND^qmKFw?hdwE< zM3lM$1;f&=fT{>Hsf$U7wUsQ=sPa_%=!MwkQUP)yr+- z$-&!KLuYV}5PUl#SkFf4vz%~W|AX*3r9MV)z$kln@w&Au2d`PT(QgE8X5wL&#v~!# zGbj;Cs5YcKGg8E@?{DqOK%3GBkKebe$(mNla!Ta#hO6mjJx6+)9d-h-u!qYii6+7| z<#a1}j5Cjj06L8^UFEJjVA2Zuy~c6?hP!g}veQDPXzV}eh7udm&mk%mSY!!9sTrVR zHCiZyMW=V)DeJ@OMEz=dJFl;s%6N67IvQMEnRMALo~I?;OLD#B8%-#_`KnHP$#tYe zg8VvHEp>f*D2@{=#Vi3J8&RH@p_yf+7_0t)1Z<&+D8X-Gy!9#WEck zf6NQuv}!ujdw-j3N1CKH=`iScVptYKDgdn5E*5MSd+_ml%In>EzVt# z){4q?by|xTFQJcQyJ*z+A4_LtK*Ax)FNH?R5_}>i;NJrPpNf?clrWdhLI{7Ma?-Jb zr{1Xg>u8_nv$qg?Tq}{5P1Wr3hRt$_s;@d@Qo8D4;8q|I#8bIY4pr%~URADip~<2p zeqAsC+!|7jD2Mu1O81QK38DuGHDRbD0YETGNIPM*u!pQ*gs`n(idKRPS5dxtfsL#> zC0qB>iY$<(_O|q&>$g|eAKLeeq;i!WtVghIFM$_SS6>#wEMKK{_EDW{E5sHPUGUW* z{yghyF7)g}ewk%(vx}p@98`&dW0%&>Rd?Tm%zBNhdu_ ziglSG>Br4=hUPC|Lt`kPh?-i^%Q4esS)jA>qtV@S7MPX|di)1nx}jB4ve~BVfh653 zBMHOuB$)0ySmXs}p?w1QtS{!v(qQfYt5V%~G!ax#N9R;g9BgaeI?9fzSAUA^mHr>9Ih0tIy}rgSP|4VYqM4%6&Q8D-icqH`w@IjHIkq}L z_CAl*Q&G^g83JT>| zOv&}0-@COXQ(Wj$hBR=fb+z-(HBg_I01bd2?pE2<&yrY(c1?g0?Fmu_#GE&n8wPdGGCpB9CkHmvD3DC|; z_xqyxJ%V%+L?Ap)_H;GS^Q>-$2Sg8kr}|A&x%cYAG^snM-2GA-97&X&_nMTB&uNXc zm4r8{X~KS_s+Dv$gG#Et(`&NdVWn5TAM@`KPeM32M28l3Yh*xqsm>e~WfxME~W0gv5e;x}t zFVqH+2UZ-F_bp0=YV(w}8L}n5y4K}YrENy>=+#81c&l`sl2M8FIFq_4WJR=u-rKv% zNA_^wqf`VhSEZW;e(R8{M`2i3w$FiE6eGHPd@olDHz>O=gyG<#1nsWa{FY0q2kOwM zIN7X~VY*5j4wLN@Zh+#5@lv*~pa?smzWq>-gh*^J8F3l8&x|Xn~giBfRqf*v^ z*sqopt65NtO*j2Z{K&ArIY3ww`N#nFykoLZv2DDRDL6N92gQ5|Y(FQvfyA}#X5K5A zZ1%L{VgBq&8K3vM!_%}&v-BOqVXDLkAl^P)UU7#F5b}BW1ku0A7;Hg=Sk_qWY|MJ5l%%zKPe^u} zj-F_3rkl4wvNaTj4y3cPCv5xH_xHJ~j6OCXkq|eXysg4Nc)f(*Yq>I?dcudZFTX4P_?)SLi{S;egL zFVKaQo~{bsyRPn7sDo+eq&*o@vFt>TpcW}+*X7|g92_edm7+ZBhAH3H=%po1_Uyl~ zezmkPvQQ)QXKY;^53*ruQs0gI#THE5Pqiu>+sG)PAtLQ&mEB4~K1>|azb0=hWZ%bf z()lXd9RR8uEuQiDBkg?Ev9RYupj=U@Djzd6!eX_Q!`M_t@dXx&T`fcSVppRx$TAC^ z&O)&nod&1NFpJkMBwT_z?AZ`u`vB5Fm8_B0rzqP2l7$)}pSHK|Fm72P?|f3$t^q zdYJ&~yUc)kW8QQ*=%Jx%Ap*0M`2yYaoYc+F0G@48-x%;PPEXzn*l1BRPRVRu#rH*f znX-ujE6h3)ZW^8S)c479e93>A0iFAjSDZ06QbUHi-7)f&z`_X&k<5kR3?uIiCKByh zvMvz{e*q#QV1wdcZ8#?A7rDymY}VonORFN?gvihes9Q@7u2_TxRD8{_!NtKnLVyH* zhhQ1qGzu(2I8)7dVNTccb}{(PkNe+sKAB>2zPj{)uXEjY(bkWi3;Hbc^61j`Yp&#C znzCes;fmovw@coftWx+6e5jDgF5i}rJO@UFd;q|G?jRhCPJK9cTfsTLQK6=|+~3 zZShk&o9R~`;IrZSJox@5`QbEMsE5H1I*vaVxM{nV(CCrLX=RWF3m1~dXF}#Qe&hq4 zs~}L#i~J=8~nIT9AC*3;#&k@T1}V1)*_(Lhuv%W%)p5RkD~E7oCghzYB0 zCR=5-GItnJgzH#Wnfb=pPi3E*M7U&_ZP>`~($J+-%}BuH!7%xj=EX^dNrv;LA0}lk z1@}Aq`^`(%TSIDMqpd>oSFgK zgxs996fCofzM#ii%C(ZtE-RgufDfV;^yP;Cv;7LkK`k)C<}~T7MpMeE#AEZ{lgJni zd3Bb<;&xrLglBjKN)zb%r11rYCngO+)DIK#;*e;+a<>Pxy2=JfIhIf=da6dZUsa?L z;1t>fXc6cmrK3tXjHP4>Y_gAJgiLY|L|jvn#*Z+d>c<4OW{vZrV^pjsJ2UP8WVlhP2m zI`Hfgo_l@F5sh2pjyMW{@l!eC6Xc&oJ}<*XgXF=aF`QjVwn9TbZzT&o7ehqPGp&(a zrNA^j+yxJc@1sw(E9oLBIF(f*AF>o#h2sNenTV^n*Y+GXRa);Zi8wL z&`RCn#gd_vkp^;QN6}s{9`FAwDFo{UqovdAUZCu8Dx=d>cNle;q-?zOZxl+B_uB!|>zvObk=`Xv85cl0DqIw$ zE3O4FUtSrS%U~>&kTG_uTa<>jI7a%#WSZYkLoX=k>Q5y@9raWVT70LRCb<|QUU<#8 zUfwHg*wM>_HIc5P6f_d@nTD`~DoR3UtgQ4&MBkAv!K%D5UA}hR<$%{h+hqj8T&-v3 zh{u{GauD#pG##i=56Z4AR-%p4-+)FV($KY}N$8Hi;ZI8C`rvj$k20oR9OJWBH-~bD zu>K|IoHUs-x%zX>B^LH{WhiNWC;5(y7i$BZwFUGz;Oz}72rkMdDkKkS4zkQ#CCroI zdG_(YN%@4tmn3p1BGFhp(Ua`$>tB{yzGCIoQZ_*Pr&%Jdaw`?G#JU81w!&4l0M^~6 zbtrnq-P1LT47d4=m3Yap3lUE;90-EOrvezA>UB$p3-&aQIuJ_vEd{RDL znxtCHc9Ud}I3wyJ^G1>DD^VLY*SeI>_TsF6I{A=zYg518f~?nH*4Z76#1hVB)W1L@ z%HDVc_O`tksOb_#qk`fklwCl8IZU0$cc>8>Ba(7B<{@)zG2_6C`TZts>p3=Uj-g>R zP(CWiFGkLmzZTkcH%mAbnnaNJS9#loI60~!(|>>sEk_sYc~RYymIwQwDYih!%DLEuxafV*RK2WS^>jn zyq>2=)GsT~57mv=x^K1}^)xoEShZ1Kzix1FRciIh`iIo8I#BeEEB=%5gcWhMv4}A;IKCK!HvGElrc2!d{)jH{5srOnkRs1^3Z4% z-po@U6*Y1^TLHXhI`%F-U+hAxu^eL8@+>W1w+0siO%CJTq-h&WV!Q)7kk)|S42zi! zjg7RotLUm>lzfb^Wk&1=TfpZxRo`I)K0o2nr}T7$jO3@I{1fA!IQ`&8loOGz=Fz6( zBp66KIo15IG$f3)M7lGJZe|yE-oSH_=6O_`U8DWaHot6J{#x>v>`#qQI{jMm7t^5` zZ%v?1HLl4U-8%yCZ7cCt*hl(#vWW_6?T`Rj-~^SnO0NM@c5Ex^7LuzA#5E!27rvqwC==LtXN6xOfumjf%;zkQ!P@&X;Xkm#M!KG^OvXuEucI@$cJet&Bzn zP4VlfpSQ{Q{3N0*`1rq=lVdWhT}IAZgPRfEgmj#zP>5SzcSZtY6^UAKPY zsx_Y{`XhMavf}207gDcqUVP ztCN%dK%3ZHTD}FZWJ%VIXaBFz2CE~MwIg)4rSHM3*}?g0y;?{uFOi+JzWYq15!Ke1L-F- zgS&rvZ+Mv+E;r@X)-yau+ty@R1#Z~^4P(g4Dh?MNPx47zT6OHMC3#yP*(wIfa4p;A zQFfQGlpOzb`=Db{i`~?V)ySR1D%}D<_o3W?sb1)_OI1HJKns?MfsrQjNhktbEE;5i zou07#7kw0v*-GFaUxCY`E+0pFMinc|*}4%Z&nf`H=xI5_p28h%k+ur$B~4BzTVym3 z80ult!+hJfUA_eRYnk&soF_UyO5mo&{u74pnu+VG4@An{e z(j!i`j^oD}Bh3-(8LEpDpHx5CBW_ z2ob{j$z=JMF}T?9K@Zw*!6`?C7^MqI#;}JZl}I<53<9$xHhqir`rp#kDs+SY;J0|p z|7NGz9}0gX#V5sVzqRQ7uC-v-t+TK>6D&~%JIAPX7;<~$R}PQaY|)|j(mXwap1-IJZO`X z1(E48iqFY_iLp{1N)UGT6p5Ld*bdZwaTxb5>QlqApO-ziSv|z zUzb&u_s}Ahf@c)q3eCnMoFGk`w|;>6+Lt0w^`AtMLLQ$`Yy{ z4Lh?z4L%&&aI`zx-J_A~1?ty4?f;B@w|S}|>Mbt zkcHY8`DYM+v}@LrJ2kjpQ{$X0%7<=Tyd*Ga!7_&-^# zfxuE)Q~V?Sw5Ur`wS=F-Bu~atA-=^H^eGA`C$d3212DW`GS5^nYN|hHfuVE2w<-Qi z4U(o^{@ftSU&{}y;~ZcsJniyzU~F>V(Z+C>G^V)m3-rs-oxu|%u3EElaO1Ky>ox7_ zO>38N7dn{VrV*J{}-&;zi_SoHEZ-QU7P8z$-izbKExWFb07R` z_rQm1`(NJXdD~(vNIm!}9BDvXrc{HqptPNYQIvNIDMBebI7JDP7fEMW9@8%=nTf;; z$~nFyrgoXkeHq-rEE6%!ax(X2;q&E}p80?r2y?$oUA3a(wnctDsPp6_1l_o+IEljh zsVoa1=^|MkJ!-JrAZnOqbvKVLBl#N}A(bQ4k()c6kx6@Mi#oHHDPLB^?e+VsSJNZt zTaz=A>w+{rv*;`@0tpMebsphyWF`K6Myl~)Kf!>QSRT=b`rgXx7o=#t;(8tU1`=Do&$w%Lj-=p^N`6*Dc zClZl**pU<3#HW^pk`Eyj6p*b$Tn@|=M%xB5uc9NU$^rK0I~~iIm=BKL{JQe& ziURNqX;x4$mlyfltZ{|LCD`_Ksf!6J4&yV2U^!`$UM&E67d&~iFI57wB85>+myypx ztZ-@P5Y1Tmde&Swrd5pVrMyE|$;o%2`hbx9nl2?PF0r^SvVMX6LPfDI?svYLwhJ;0 zo48WVcELtrJe+9Cfc|}@%(9SZ9YNL2C&=;qr+3NzFt+l=-k+;UKFmW0Js^-*45RBL2+%Zu6H zIHr+itCyx-)g?MJ_#fJULhQSXj5y255%cMIETFdM!&G4i2`WiXN!tq1SW$+t4%T9d z^UR~+85$Dc)qUN4vH|!?ZS=vQuk+QKN{%-Fia?CzVIW^LDKo;tV~%2$Kat*4F5AFLeOAlD#YP2jS6JyyMsi{`u}9Kc9aeDYhuHhw6@3nAOTnlwxi{VQU zrYe6fd}~un=#EDD6wm^^KYrMO4aA3|&We5b|6pC{L?Z0z0sbqhV`w~mUZtGPKv~j9 z>@8Pp-9;l#cpKWTPdE{Kdq5j8HU84Atpx%dE)A^?DPTKBCd(O`POa#&?;WpRQfo7( zs+YfXe~4;PW?4|JSUva4k8^!^?n!V)>+b$gbK`5Y*6+)}qbT1^Qo9Sm6}@WegI^uo zxN?nzog#X9SVS&IIe)3iF3!Kty?p*QKW~0+{xTo^LEUO%-0F5ZZ>q3rS_D-@bmBvv zl|~Pct5&coF&{3r&lIKur{zjg&`~ElcRIb~OP(f*);s5CXJ&&uSM+5;ss__3!#Y*` z!0%fzWVr8%xO+NiS5G!~D8KuNBIZ0l?z@O(j;6U5os-t#y!(cab71#;I391I&VGca zK7Zc+P0k+}7V5;&T;oeOJ}k?3WqNG!z9GZfe{)tY`Bc2l*;+6i@sChKV#YxiTOQ)c zIW^i7Q`0Zrq9F@Mc~}kCud`=9Gk7wU_KUKoN$^&(8w2n*z#k7*Usu2U9H@QZTziO& z($@7eK1tutNM~6!ZJ}Sz!`6M}Vd;<0vV&`c!~p$+vKqyrvNupQ**XFH0%YHQ6qX7& z%udF2DFe-+yxzn4FS%%+mJE$Bt>ywwY3sOd6+1&l7KSaBlVxmjQeQUr5nhBfZjMK; zh+ZedF&SocUU5lh4FJRd3DegWT(VHxuyT3V5+sOZ5HTSYw2CTK6_;=d@ZFMCQM4n@ z%Ow)wj6&V>>w36=YO)Jsj;s{NqdH)gWrznYBWmQq_NwIb>FoBV*Cg5nl3_b@ z?j~hq#LBt_VE`uXP@8rRcN;b{T(Pp+N&lj8A7@x-Kf&!l*A zQoNVWhCRRIU;an}?T2m(3VU^E2SU!aR(D*5O4#-W zOq6A-3)Sg{?CZ+vT6BEVn|TWoRc_c7-2|@DykQ2 z%rx3iE20Tgx!}R#f)?^J%f3u?ENDQ3hN_JF@TL9ruM2VMr9#{UWiMVV#8vp73cpJh zE4fi0i9H_|fn%3EsNB}(&CFiX8FYTKFG>_#-yA!Mzas}y1 zpaP78JYG1)y3V!2Ii3&492Gw5(gScoB>|Wr#BM%=2Tc|O*z1T(q!G-8nodHXaJ`dH zWmyG%`!Hvo$IP%I&{Yxap5ph-XI_+cHtmZh2PF#vtrWpD6s4InY5$kMvGqI5B)zqJ zm^mrev7hUJQatOHcLOF~1{}C%lC9$PP!&0SWU<-#IQa`a71uKM#;w+Pj~RI8($z5~ zha02`y1d4@bDb#J==rTcxk5}OO%1X_!5n$R^q!XqPF-eSwotnaC_&iTmvvpnwg{46 zAaQ6qJ+fn-Wf7{IZOxtg`wElvLXrGIfP#;XWTM;j%5?|op>0UkoDevWqO0r&kAX?b z$qgy{P8--hvK`2(Mw*sp4oH5{pF6r1)cjBR%_}y!epNFGO5+5w9spAK+@H>j-s$Kp zgb!glS;6`}(opf`ara8wM6i8GreVtb@Ueyhn&{rkn?cOGZ1M*t*a7j$6|IcAkJ2!A zaA7c1qcN|ik@6*j%8-F-x;>Yob$#(RoRkm`kcy;t%s03|(g@jV!WFzO`W(^jr(k{mA`(Li0?2JzKdhL;s5!hZbh zCh!|~bukZ=?eAv?P=5zqZ`w6hE&OnHmB^4C@k3~g_&l-|Wty@w#BX#eEZd~Um}WNd z!Xt0IN+_MoOv(;X#qT}) zoBu_sJA00FppQ5-8Y}tiGW|3M?V;ggq~!kLa^%S3MmeM0Na^H_=N#Xpl0n@!Z?Ete zKHOSW?GmgM>;vK*b-}`C%5GO@R}B3=*c?D_HxP;f62?Dd6C49%sG&=~HQ9p$>?4Ae zl52?kN!F9}ji+NxyvFRAKw6K+l$>=w$;!>Xv!=ox~lz!)v>Ffm*M&kjJmotoSo1r9(lAgPyEHrUL z(A*(O&*n_Ddr&d~z-HxLpx~TFNI7Gu-9BuY3T6hh0@YQ7u#w^VCf{NXb%d+>Ft~?8 zJwl1qsAEwy%Xxsbf$j}xgPwj3VVv@ryBp6m$yJkC83*Rtfw^|#F^@lq?5JtjwP&&E zY1qt{8x>VC2w9p65|S7hlw2i;Sjkpf-z^w;J{iRebP{VX4xQ{9gCC(9ms(1+*SMn8av)?D;bzI5^ zbxE+R>b>t$X9PBKp=(K@-fjrWOO2#i|HXgq5~47o8!*p961SN;i6giEIB*bc>3daXz zMzN4Iz5sndK4t6f1F{X5oJ_iWzDx?}!>v;rT~tkHt^LU24^;RrS;j_0p<-9J8(2s_tREsy)D#!{Zh;Oc$!bkRi!Gb?eZ~Py6*dty4UH1$n2`rFo;-Vs;1-q8ohx->tNNIL+69gtemRz{;F1q z!`5{OQC6z;w8#sR^bWW58xTL`EXzcyeSpjk*-Da5cBOLpawg{le7Tg-s?DX0h<%E{ z`{FXXTp_Hudx`Xwy^GFrzSfQgK&=g`@$BIMP;vRVnn)7>^Ew~NRu)ttuEIQrOIOqC54~jNbo)>AXy&5ygb&s18#pJI+K_Of*&?wv1o)AQ(G%xY^f;#e1Psp^!0Gc{f=LCB_elo zoAlqSofqN1g|A+O{~GS$&ujX(`6~S3hj8b`i(iA^RKe`on=fpj@@p8vL_Z9{b%o}O zL`#-F0S1jz0Ar%9EUK;as?l!b@;1H|Z7=!vJ-U|vd}p34bpN+Ei8~i>FqTLTP$w$8 zdz+0I^xu3O+v{(Id659Lg7~i1Vb#0XpCBk!ca#`9_RqzM@dl}DJSgDDDwTr=bSIIA z0i~+BxGQKs>Cw>NzJpLYpLD55%sU3zy=xoV>!+b%rUsRlAfV+2#Ig^ zK16W(b&$p+97q!0IuTB*iL+HeycgWiku48SU@)PpR4tfZ~KGk7170pw=! zp7rR-poF9GEf=g<4E$&-!`IP-Ht%fzo>pvH!vN^wxN6NklxC>dtBcEn2r~q; zfu?gKgo!V$W)sp;k9|z&s+nAf$z(!0;d}yAcJ4e*l4Ql~k)JI4$ZzvWX%ltWjTQ$p z^HZdQQJjr!85{__{Yr3$J#;~kgCt;C_z4}!CG)%wWxI2=M1yhM6B=3?FkaC!Vk@7$ zq!->~J)#d=VV@4UJqiiuWrAOkJDH~5zJsF@eFDV0Jb`=C$66OtNTb_bD$|30Dle?o ztw^PPzlpM5)B};#1mgY#qCjo55r4@W!|$6nJ6QBw87|IeI-6c>cjLKb$V_l!&?v&c zlQu1^j2VA!>3^#mM0)W@(Qjuo8&AFRN;pfOOmuz#)V$J|zcP8Jaib4`h$SuV(l5XE zDwz8yhId0LP;49jRjR=K3A;EBV9jjk>$`b2n!)uO2nmjwd>4kD9;+BjxSuh2H6xk` zYU*|vUfJqA8^dScu?`5GK6*WBB&%!yp4T8q@8KRSaOcmjc190f{e>apr~Hn`m8S#mQ=+{_ z6PdeC$~cv-rJDb|gPfh*s zssD@#k9cuA1axE`d(J1aSu|(#unGNH#!i0r>fLAfJ&P0BAX&&Sy`?wrasey|0-g5s z>KIcvo-)Mp=xywLi`rYHl9U3XqHrdjVN@3Cf9CyMT;Y<FK{4&hN6P!+OOnU~m3A<6KzB0i{0!pkJq*iMP#4979mp27~oeR&;tg$iHv5y3V z&b21w#;CJkJ||Ov?uF)c7T*fe5FZlc>pr}P@(rAD6Mt;V8pn?j_rILI6F&3^z8m&W z^Nr$SLez1%#ry>}EgurD?T##;SInd7H9Hs#Ws?<*7rYCw2g{?YozfBghK~m)pQ2yh ziLOvxD&SgIAFoP3Xg|3@!vQPHfs*Yo>`;ms0>K9xa`#h#L8WW-tZS5$RUTnS4>AdQ z(X!abn06Ut3nrA;COSpV;1PF7;CcY-3Uf(bfOROL>c32fT;KIe`I(2iK4)-1_uu9I zhx@~R$FtYcwg}u@kNv1m(rX3@^T%9dAk?AzI!3Yw8yp}2i9E6*1dws{W}}xVr_0bHL+CNHrZYT&7$7#@0Y@;8VjZSYdQCjk z7~~#yA%nOCTIR{n`4P#X9ju-tO7{3V35kQqM)(RoTy@9e|Gd2eRmzKN+*x_^@_;6$ z|Nj2uEv%fsIKI>{QK!)r3?-TWL;ie9GqVM`1!-JzW;dg;m6OHaKv`@GcfOh zTDW=lpRbNTou6GCT>M?%e>%Q6J^pCc{rgLk?%?X|)5)O;KRNTuHqSyOaePIsk-VSIP2PVTU!1veJ{^BL`1tWm+vDD}O$Qf8 zzfg$%#ve~EPtT5Qe`tSl7x6b!0f!&7EbTg}2Uavc>2vhc4M_R_&)sNKCQtEgd z$#q18m8xsQoYx>r8_SAx=^TY{VZ;m!uFc+EE7OE>8Q$WP8}nM2#gVR;je9LdEH)HQ zFWl?t{8$$!W)HQjYt+%FWi?q?hr|Yp>(K;W--$MYkP9!|a`?Atr92I1BiA6Q-3MW~&JA1{@$deEX8*SXH(UulY!ML&D(RA%<*ZAm2k``Dfa=)X)DB-^?1GJsQMj*B3D5={yTHUu zG+wyeq=+*%S(AhRgJR-(A)UbHa6v)yqXC@_H(>mvpCD)AG95(9v(5qTPP9R0c8p2n z+Wa&Qtej-F!n@dvFv*Q@I-Fm_#Hy~F1~G35&EQZ|@f3cu_X7kG0!s7~x4 zXv|^8FKkZX+T3*gjQu#K@49&`c>++QFtmaW0^ZjStQphD_>s~Pb?-bLdWZF9kM&Km zd_0~5kUN^r`XdOV!wxHE04jw#VuJ9Z+Vb0su!PRh7 zP!BVO`r%T(l+p~BPH%=wNjl{;M)|2qn50WghpW_Pp3h76F8%1z>#G@GNv?qzdq+lq zj<mJ;ISX1x^lH@qo{w=~lW^MR?@U~?XE z0H1ZLSW_Z|ZHDt@RoDy{=`)3Exp!lhq(Vay_(J(8QN=fkYuv2Br8I@x8`7S;Rp%bC z*IR6%#IcO0FJrjp4dRyK<)K@GVB?MWW^If$;utSPd=vnR1PS}|BzaU_0={6PvJ7?& z9T*t<14WoHvkD+%VF?3^scpD<4bCB0W_~NQ!rzXD^Od4R_CmcC*y!%PMjIgw))^@> zKO|LxARijfLf!i|-pIFfHoCj7X>?EL<38|thf=oc=JK~Pa6O$pco}l><}BjfHR@TV z65^*(_ysSGgwVS$%EkNG_-sd7sFZkhibz=7lZ`6v;k!l6=ZlnCR#m$~v|*KrC25(q zcp@N#Rm@zu&2oLn=QF-Ll)V0#+HE^}>_Hb%2_Jk>t+FUf;inAeAV1Pk1E zXDWwN7*N-D#GXw`HKc$Vo!4LHn$z}OWEY?7Pj*j)yTnQ2M+ejEDW9eB3va#C@_x$i z^vmzphQ`WWlz9h1;B$|@k5xuLy%wTP;npT#dR?_0pfpe@r{8h>PkE$gIogS= zQbxTQwQw5cd^VHziMRocXC8F~r!ZFRt1{TAl1Rg7pNsB+-$hl=qObF8a4Y`LypL*4 zfcZ)DrGJXfPj*YIjwUcS+F*2Q25jC0tb~n&I$XtGrXA?h!k%Yt{{dkjVFap13)1 z;Zea0xl9fYKOF=oDlP0MS@15&ez7_mX2*TCLwn)vyADNO_*-;6@(9%AiYZ7fvJq3s zX~~aEQ7<+F3Ut`gpkE9q@}kJ}9d!UlK)AmK15)%{82AyW zMr%xxu~V>KHP5`Gm(7jB9y%+uvIndS5DrC^L#3L2}YB|D5i-1D2$o* ziGg4}WTFr|J#mC%Qlmf?OsL!Uh)1IgFNG(CHixofA*(6SFI=NcGFD4{FL!^$9W5-c zyvc^MHOuQPX%{V?T1hlnq$qm$htZ6&g{i*A!ty{gnK_gOz2p)Yoyu3MS)88@!$PCY z$G%vQ3%9z6ckg;TY~T6Dn~M@0p!4Gkw&zg*L8GU@Zhk9fz3Uk$td&k|6gEmohq_#0 zFDxOVEAS`5pE>?m!R)`neOom>WA^>Zbu3L#zZvtZ}uZ#cA99VBkVtGUD8<7zye}CaPJ;W61%JQIx15cf$tRvfi-OC16_Ep0diXz3Y6~P5A#iKlpGQ zeLA@ODR|yzkKK%XTFYl+syU>cbLf0=XaB%mM4PtgtXJZy8SDAZ>ARv&C#TWp)03;{ z^5h@Kk|uea*d+Y%(b3;e4?dk7M#l#iAOEf?*}gP<>$%54*mJ*|HU*!T>!fM)gO@9mOar>1xH!ncBX;5bX{eT$yw+FGpgN-jwEHxs5Kw*%EYUAwY$1xoS z6Cm4TA~DT>iN^ou#uNh!G6vqaiAv--YdH~P%8o623(lfhLyLizrI5ZA~hy>i4 zjzifXkY>3_=I!vp8BbRA%kOW}iGxGa{GFBhMipBvE0^k`Wu`yEZg`g#C2s?}+piSY zo1p-_|9;SOH}z-vHv9oD&GZpJ^cnI*V}^3+g~#2zvW;&qoXuJDo>n`P5K6_892Pgw zizvbmV?f%yMSA3A&o-uZK0|2r=2>#Fz9`qT(S7wD?dp)m=pXvGhkr?>4HCxxDs}le zA;?;yon-D<^_XB2$Y^ScZw#Z418|(Mm!hxplre2?HLg}pV9OABr8A&2N%SD@BI@ak z<_u0MlDIv-T3%g0kx0c7ZN}F04Q)nRT!Nw-PREHpN?uS~=v&^YLQhXncvjRL_z*@#Fn+eItG1#5?m%<>sj}KPTgTR{7pVD%!Qw!I6YP{(ro)b z$U81D(#^e$Isv$1C)bc;fayI$o zG};RD%$Py|*5h}XprI(l(;jeDJSxok9j5r^3x+kn{Jaq4EOj)uDMk zg~p|A)K3n-SatMYy&LN5JRb1_Z!Y$G*Rxz*RHypW)9!orO4G<7%Ouc|)fL75_>8S9 z(~vy@`=*rv^0vLL4{OjNV=qf>gCWKM*EIWv-}3YmCH~9CpC5kx(-)|`1B<+C9)8_| z);jeIH&by}P3b=4qXP=x3GAYd&p)F1%Rj1F9zNGGa%I2*vDExFc{~fhi2l7*#0M31 z`HWplFKlTvlsUB?Tu7NLY~Hjq{qe=c*+na!t{~X!X!TRvrb&=ugnT;w^zP%?;ZKZy zlwHpSqK^I5zA=0l)6aeFP)!@?|`I5}e>%}nr3K1x-ei|Y+-VM&&|q?@)JXBv`8g~C^J z+@*b$OSc~T9$?Q~s%Oj3Y=)>lxi}x+FL7DyU@?J7k{A|opfyvHZ_t4TP`R#^DI9mG z^J+BrPmC`}l!!RhKhb|zk5l@+q@MoMXIij-I#+FJwh#GJ=l{ds^{+Jl|FkjZ{}Ts; zno8SmQ8J%astllKd3k8VN5OM^B=Z($h& z4HlHI21U+Rx76RE^C69is^@_n90Q1teq*@gf0#eJGM3OGV9f}=y9VmZ#`Gm)eqtA< zSoWd2PAab~ca}p!>u1y}r!~bg8cI18W<Wnc4Cr((CW$NR44 zJ>wjb`#%LZk9KLBtt0&(1n-2z?_uB7Ji$ep@Qr-Hcj2;RSjU|vRnF$+D1sSSs~5OY zS{J5#FKXIhQ*MXvvjU)gkFvi!FaRUGFA{4YrD(m>C$y#+f=Zpdq8&M%!zQ+kHUfRd zfCq3uoQn%{q7@%Mzw3pLy3~=X977OpUQ3re=)SNQ3dt6TCh2&)D{Y0ITVe@FQa)3K zp7|IwQhbF1wLRo@bdByaXNJTj-QwegTW|Yk%x8$ea9ivbC&to`5A9*ZugKh~G6ADry%Yf9j z$Fz6@B0{(U-k1j&B=?mNTd#4A#h2y>Gbj+S(-EfAQkDXX=JQ#ZCCuETK3U_Khv5%6 zN4tS(iOS94JX~c*VMY zv=Z*DPjPX}NU3lFul-|u`Pw;iZklzI4n(+Ldf&LAR+P+ofKkB=wZrU&+}agMzMcT2 zB&*YJ?0m=V;q$cM_XX6kv#vFNej6ycO+VcQe++@bLd)=Tl#N*-YV?~#+mU=9QdN;5lJq=P^)^eTcm_PuKO@x353~lHO zSVwtDr*?1uSg;3lYI0px&vWmXZ_>sef6*f&(UvpSA@1VkQ#Ls>J5s`KWaZ&h>@qN5 z+H<~y*h+C}L!{u5ym%`0rit^a3bpwBgQ9Y2bUNjQXSC|9U}s7r5rRy0uOJe~nvdce za6^5s@+!zmP43eN=Npat#DE8%PCi^5Tpe4ZH}j6y z=;O(UAFrxms%KhJzg^5s4$GJMG+hdgHe{zes#vxnVL6{Nfc>&G=|ehLkpvzgS0usF zD_b8jE#b+x3^5I#Ihf2wE9%vP)~q6w^$w4w>|Y*wr>U~421s#~tn z)qK``0zw@CaM6aFwUP1^T5oyxjI#c4Rda{sdT@-GXKVDf@Tcp4dOyood<0Ugs8eu? zSxaW=WMsv+?#lAUpaQE#nWw3puj{22Ir1Q01+eIHi18it=hjQVe#*OH$>w=aC_JhD zuKfl6Z}hYttLMfByK23!9A8#^UNzT?eDHD&P(_mzeTB<^FCGuE%oBcGv!z-8FiWlI^Ws;2!^3u_0jXI@zBuWc1HQNJfbYF57=UWc{#56p>vg?JfAf@~TBGps`crD0 z-=*4)^+rs1g(vg|`~8}))hQ2au%y}yI2T-zl6vbUTYszuZr0RLGs** zr%W7dS*o*ExxheOBjG>uc`=Dct5fc-+XYqba}A=vg|FLVyHDt{-6!?g?%JKUyJoKq zld%5$PtYPcKLXQW)LQhFW0I*%KP$r>zJuj>Ryc#OT{NUsBnU0(Wp{~n*^bZEQS9qwSaz&_}NW-@8JG|Z_4i5Qp^^MlC>b)!lL

rvqkG@SVT$k|E*A*LgnMPQGS&dw4#{hePXFqZ&7z6_F_F4f6ti z4q@V={TV~RJ1iC74!U0%ea!JVEw17BC%n+4P_2aWgZO$%XJOe#6*L({-DH+KWHJHL zVSgqsI*i#sljfg!(Pcrj!6LU|xEFXWaNkha9nZQOJ9`fS@_1?OV%E%=#As+Y+$bDGN{OL zu`*eoub7Kg@P~U_+%6>SrI3|e?$fMLpN&7jf%;p%qvRDsd>ZZ->;OnHo}X{NU+;xS zQrgD!|C>QfzXcKV|6Ren6vwJxDhrPO4}8&ZQ`BE@f3Ed@DGim7Z>v1Wlgrz(r%FC2+ze^c8q!mXA3Egg-<<7^aKUo= z`Qt~-1r&G3_wavWVZSFY4TfbG!yJ4Apuq_(=xNS&mg`DUzp*c}_{Wo(o!o8Spm@Nm z(5uiHL$G}D0uWZ#0k?87q2z)a$bt(2O*UR;*=Ho;Zu9;>t=n`&ioG4pd92~X*g8U$ zAoZRq;hIeoOPKu*HLwWn*YjP)1oWc&*6cHS6Uct8x81wl6mek$o7G0R>J0=IH=g15 zp)QWuAM*~W>V@i9Q1rU7MqY_t;WwBZ9^DfE>ASzGtq<$yU_JDcj4xhLk}Rr3A;3ki*&5pg_A#2qtS$gmMbRG` z>7$^f68D@Z+NZRKnLGD6Adlb)FQ3m;^=JSuDe#KSjuu?%|n8&)YAA+@EuQC1)VnX!Z? zod(Q=S$pnP-+4k+=0ITPgw6q>f7){n(}VRwq_3GzjI=`ozc&NnAwAd&!MD{R3>1e+ z^b0ku!SwLKw|t}^G#;pvI*8qLd_F1uq6PNJiei>tredvWuAbZ~W04}SC|~zIE?H{Ds0i=q5>HMUz;qxGLXXvP*E`loo|M3^5na=bem>C3H5sw%EunUV~w- zCC4Sd?7kvr2(a=zHDj+sFJEoP*qaLCuU>3_E=7;f*q-`$@#!U%VIFfrMG~$%ju5}mBKGVU2vMYAE zE+;1be)EMjXXQZHdd;`Oz9eA~Zr;Bl>mphFW{4J$B1bZ=D`XTz@&!{$byLlGO*B?d zUY>cz3?>KsgVHIJxLm=(+W0sJUp>l8^})tt5+-w2RjZU?bh!Ea)-Tc#1U}A)j5Q?r zk8}g;%F*ZdN4J|Vu)m8wqEsukcGw^l`dr&yZJhsM;)Bbkhx%nVA9lsBf_}>g{0KGH zel5$N)cC${eD{0%y!-8& zfcYKBV7|da_if+$hqdp+Qp9A=r|Y^pCn`hed(u9dpMri%#}goeg$&1n36wyo`j#gH z{DBZJmCo4v9rXh3UvTLoIgL@5vFaM>c__Uzhu^w(DB{9tna-2Et7lJ72eKY(*Damh zb&5g{b*wtD^aV`karPUQiV{chMNa?jgK&q%sli4DCq-=BB=KV8-2>tufOuzcIfiGN z?X;j{b#N$Q^9gkJ7>j6Yl9%%=!7uY|^vjz8{l?h*Q8wbTLSDCM!JCLJ5K#P5tUd-? z@B$6{E`w6Q-lmOq83R(4P_(o`>SMh69^EiM&3FtAU4D}^{2JlPX9!sx=VBQuYdLh^ z`YJzG-q{wX4vI}2w@}kpnq6s&I^{79L40V$$*`7DLw4>5NpjEb>gf&k*Y=3EvVB%j zmj>Y33I?;JU~?;CtoozJaFoWZd2T!vVxKi-bl=+SnIMEusrQWi%MnwxqFM=zJ#e>Y`R!)!^_V6Q#07ygkivf~;#g*O)_OVM}|f_l7Q zR-r>9Sn+_HF1@gO#*k$ihcMp zW|jBp{a5A%iWJ6zIKj+rM8_LW;|F>HmC0Ecjz6Z@LBC0{z-Qu59M4n=|8kkaH-E8} z{7U6B5`lCL2%6>FSjgS6SOp>h=EI!#?mY|LFSBc2;IPa5!uE@!Ve+f-?SB6ihwv|a z;^JWW-eJ-;;IF2SzGwu}+-CWpufO=R)f#$`C!`N_uAUWJLO(#IO@I~nqCv0jaX3QOjnGa<>mq?Iy~DB4iAqn>F|1fc6stQqHzaDKc8Hl zUHlyz*uS2hoxno}0LVWboYK+vjQyNk93LDpX6)JNF@7(82}AsTKK*$36WigA5`{bq zHs0{vLGYeUl*3P#r|&Nrng#M|3A0rqj1I_`$Mp1$D*1_y%?La=ygK>$STb?=@dZDB zKK<$R?3dHf{D$i1cW3vZCx6sFB{6nCJJP0)NqBrFcGq~Oe}V;}p<(x}`0{1GMi`8b zC#Ro*H*|P*alDcr;`^>B9S!x)=kn<4AHQHcMB>g8=ES+>QL#Jj;5M;pLQh^yG#L1n zvj~1w`I^YxO+MQ@=;sAP>mb(PWLY<~EQi7+)5XV=PbXIq+RnFpv_rk(bJRIQz=^!- zPVAg$;bzlRBu--M3%QS}gH9jgX~+2QZ2|l;yT`LPhbB3*Y-NaIUE?ct!w*$Hp*@I` zb3Nd+=OYUGI;S-NG`0|3!%X)VcJvtpKd{vPEz8*XG}aX;mW_e@FH{5XVi5F#AMMBi@^9A9T%<4slw2LzKVlDj0Kr7mEl!BWK^>CBHw#WLN z>s9JKpssi%KGn3!5C3s~ot}$FNY|cwAj&k`{}az%q?R5r;h#Qzc7a~{kK*C9QI7ax zWL>Se=r!Yh9={itgcvi75z^DN_S+=s&WRuC{mJD0dCX1l-aig1(dXI3fBo^7PyXx0 z<)#06gbmIwdsZpy_@P=;*00obbzI4d9{rR5jaxTal1|0%4J$WS-Nvleh&GpR4QUpC5r!O?DFT+rUPhLHA^EpYZ*zV7;d@)(Tk1rp<7}gZyK`tbia3C`tD?*!w=i^%;Kd zA!(Z60L*PI0X)GkGIfC70SqxBtF&8SwnJ!3Q{hhJ-*UufyUO&@zLZ3-%*&_v0VbxQ zIZNZ6nNzjr!#jhjdGEYsXaMKOCgo*97=#*FXQ7zmahUa}uJ16Jllx@V3(#-@HFkd5 z5oU0qj4a=_Q=MaR`RRmhuZ49jIc!{BGn?QMGfn#=6^zv#sx%+UM!B;n&naCwus=j{63=+-`;Tu9^B!5DO z#%O6gc;9eS$=HkFGTdY@a{L0_pm3Are;i05R}??Xamn~1n1!40vcyxH!Z`gu!p-0E zaX*7%(chrB6ek@1;648oZsO7g3S9jD3%^T^=U}gkTh?`&=G?|n))5fDKkaPfXfKpf zUy3Ve(O-jdn|c0D{73XS(Tvwi50090!PxKJ%|yxvI!D}_dBJlzirJSTgoiyi)=11g z;Mb`2OVO&QVr%PoVOncP(objO2d%{; z_0WsE&pb}zyKC4ua~+@3F~czRYWydKzh~%;TDaW2l#TF1R&;IhvEb_bILlWvq-Qhz zi8}qLw@1=%;>7Zz*OK1E)Y5~@x2M+_6aLv@-BZo=Uw+V40&-0wKY=ij&X zGljSIGy1Kqe1x}^e^kSqH{o^Aeg9lz&NP+pWhW^u;|SB>mhvyz^=?ae4bb0)e>P52 zdM)Rs%b97ZJ;zZSuNbnmn*Q|tW%OC~sQmKZG45J#aX(y*r+)fFw!&a0v{J8x!*j~P zrJw$1!FjYpQws<7Sfv~dKLmDnuXct5?<8`{S;2fXeCmMw^Gm1CyaVXJWq#~i8R>4| zh4hv8;T;41PqX5yDYlJ9a2vvw|I|-W*<%dPS37g&`?$PPeIcvHu|Cg#Z96m7Zs&x( z0naRFEHP|VjY)^Vg8pOngxL3=p-=tNrG+xGJr^Z&hHY}H2z(Z{X_Gl_(OH2K91|i1 zKSw;_C?*Pi$MM66bqMI0KSFTZia@kpw^`|xwl!Dwz`7*G8Pf7qsN?0vzi$6)DS$;! zH1L&k-9&g^_C-gmWLGfInA~?~yzr~g&@*>CojuH_q5_RGB>L{ptUvy2uaf`B_6(q+%?DlH84axNS>`%E$>d$x{(QGn}e-XV0mFTVkI1?0|!cz>CPUI`3Y`Oql+% z{l)s$%xE)*@a$7vvhgvT z?{4~itMRW2oEFRk zZ^Xxu1k1WHZ&0YogwQzJ&Bs*R?&qDg(#x^d&*kd$y1r7D!>F=FIkN&PVP|`1dpGcW zaOX;Yr?}LsjdVq3XwpEuV>|)K4kCiR($L5$nWk^h#U_o}Y9ErZ?Xu-zfTYT~Iw*|Fya{W*(IyzCR){rR#=%>^@@-Rub%s zV@VbWKp%mXl=6b-FAg=-ZOFO&^^n!UiDpKqqo)1X84-6!X!i!>@%p|Nk!*t zRbE#w_m4OyH7?p2myY!h#EasDNe;6q3|-mv%h(Dl-BQmB;9emC$VzlBe786+wb}}j z6h@JWfl)b|oAzRVQDkc~Lrs;n8ckzMqj5BcuxWBlYeMTpEPRH(z*Nw*+$^@SYU@Gz z48Cn;{`82B)es-UiW;(YyRD_pTL%MsVG|@;P+gak`Dhdlv9%Z%wP41rGi?yq{h(S5Fs^5DMtgJ2@X+kslgnhKFf-nm z5|q*U`jYz>ndG&#BmK8%{@Zp|7LQv4YGx*d;HH&lg3*gvk`5PSw=2>yFseiS7cRBa zOdnW4Zzd})hqXvpvR3>wcCDy_uq{{HV^Y60nth8&pdDP+PmIlFH^Ncb^Ds04%h;~{lbny z!HIdOBTFloHdtlS+?y*M_5rDPn5CWDYy>$_zXYF&oDoL=)Z=Ob5fz6Uf8KfXz~wAR zm!wm8S2XF82Xn{}3wxrc%#0Z$7Z*>fL)KJY=)+r0)lvr6XUaGfgj$eY`>`|#M%tq5 zBf~igTTcpqn9zm1nemurg`IDF4Ayainmkvl^8@oqFi&Cq$V%xAQZF=@B^_1TZ3(rd zHL92-HF$Gyc>z0yrnu-$eDXkI0 z4dM&g?2XuAgCmsBpv`ouQ$GsS4O_yo;KOADmONwby!v&V-N>Hr?}h@wF6rkS>gw<} zrD|P)7y)i=BxY*}jo2!jLqTXBUdxZNTE>3V<--vA`8q9Su9Jq_%sWC${vw~sX3>lr z2q&bDJeu*-ycA^vW~bCD6W-j{NIS@U2?A}ZQq4S&4|@l?yS{F(XDMMQZ>Wy;-Dp2A5%F| zB1bw&mh{1@bZy^hKWnQk`;z`3hGd-1VsZ24l~b=%BqM9gD|EP3B_Pp<&Z_!bYD|HWl}J zm*W^~h<;hIn~~Ev-o0^pPXt2m0@o#N=*LBorNus%Mbl|tY+d;|qKfxp=#xqr0^Jo5 z!}~fsk&S8EGpx6GF7WO?nE(1F&AM;7A%ac8?{I5AU|?$&6w)X};8*6D-tBa5kPQekdc8JQrcYoz00;1nB~uB2)9^*D4KJ}757vI70h|`_kRg4 z81G^H)l@L}P*y{AlC|LEEVLNhytmbK`JTN-4|RtO8qt%Y_+Gg0=sckOA4QGRC<0H0!#zlaATBkvQD z?0hOdwGAI+rQPBl`7u;vHE`EDse?vZwccXVHP$n&Cf*LOZc?wO!J8U;E0rDrYJhV= zQ1Y11ac3l_8c{sVX7!ZYrhZ@~#qA$t)943KeM?i@ZxWj|qwdHP#X3B&KE}}v)~YdU z>HJCFzw!EhX<9F(w&98Dmo^{KJ~Lh{G_Uo6vX87(DM&sVZ`jpJI)9w)tpH@1wPcXJ zW<;JmTUFR;fw)!=i9RAPA*Bizd;H5e!ylfzO4ts2rq+aFr@kvX6$0W#gk z@?CT+TY^GCJfxi+2C*)I)>rloNxtEuKGgmLwz41QKC$k}ow<*E#HOj!o~*Eqe9JPx z^prlB&HmY5^*il+_4>v`Pcz5F0rt(L_Ss{#nGu~w@pCd{(l|*|_C4f{CGRfVZhbIr zh29t!ys3x%lyRt#5q`#psrViPgT3P9>&>IPj2)Ye(z|rT;!wcJZ}D6a@rO>SP=GaT zd+hw1Pq?Z0+Hz&JE%}F~=Y4r)2`+#90HJGWfZXucIyYal3~o4UYpj_w2)^`7k7q3Q zO=r&ZK4`|XNX(}y-kA6^NbvA@zq$)|)*4%%CSvKz(0H?SKC%0Xl5NmqsT2$B;l+Y7 zE{=Y=cw#|MZI8F~Z1*Xzq2&xqKcaSZa1$2^^a zukX^9Z{uJ);$d&Oh#olK3^ckHW^ZE6SQyXvT z*X#Ptqm%21b*76d%{{Kl;O#ZMLAWz^#Nnnrg}!($_<6r8&&={pYh($&Df=1VDP><% z`$r8E=1jsG)JFGohNgT;2RPi5u%xV1I75La&^sF2arm@floEc0GNN-v+a&SRs4 zT4$)2Fs~lBE~-nrnz4nhG?wqMLGVqU#?bH=)hKd}H~swiASxE|X#H*#314jBT5QgK@3|JKm%* z>*RLEsm|#~dwe5@2yE!RzuPM3=jc*sQ&!v4JS%KFUIkP`EJfk%;IFQ&8FkH&Hs%b% zA4835<7kIad(lIT;RB+kV+;c3wKRXLy<25}ldBJxhPP_nrh{fV6(yK;)^TY}V3nh0 zo_s#V+3>PG%AoY9C2x3fc6j#b{NT!N(jr@`WT_Au_WAmq+yw zNt+mnJI;yb%Aj)jwNbr3-Eb#9jx*943g>1~?)kJr7mc=zvB#>i4$R4-P;=sM>`9ED z!}G|?CNM~Vf%ekZH?Go*G#bm6&*ntee+O8^zh(tSM#F z5emVOvGdvyWs?>&{l0J_A3oee`3h37BJHzvv(<(AaC9Ztb1G-014Mv$ee>))%e$%v=MAf14UIi}U$+S$q#`9wXk%`x6+K$jrGw+#cxE$)o6N=Vl`n5j zyqA82rLH7l?d|z!6kM2((5j3Cj_Tz8d}jp*<~Dd<(cc@POgVO#A*h~VThEh{u5xZ& znNH5CEy-}1-)*hCgbhGkR+S9p!z$?z|Lw5{c0f|!&e*Vfi@m!_>& z$MbO%Ps;^)#`DoEBW6*jUBS9}>^t0Pt_Oj)w%pA>&nZv0Q|`Rne6{K}AokZu-_Bqe znCcz*eeSJ85jZL(@D8o<%-Wpc=wxTIU0k+ZcGqbLV3@MFN#AU<8taeTLNIE^EaCSr z$vc(1#VW5X;P0M%NWZO8fQpMch6a{51?2nhFX`y2>CMF_f3un@5PibgP9R*ovMr@r zK&u!Z5l+kH#5&2!8?#DWo0x!5_r3@`0hL?ATg`@99W3woZa|6K;`~EgupkZZGoigE zZjMo!SV5hmf}Oygqda-0k@fj;cDC^6aSLQ`Qcieq1* z2|ZAF%uaocH=}DOSDC}QN}GXa3+>vaGy@ocDwxDl9q-?%<<0F@q&Vhx+RFzH#-!wX zFxEU|ZTGl%Y^~1d2pS#5KWi9~p}eaa{qX0O`n7HGj^N$8EfBVgKqCu%V@b9-d%M!{E$t}&3;`SBQWX;)~2$S!lN%` zcy?NQfB#;-bBoPq&2`@J3D z#Oe`jMi23>?8^d|s#?Uh{oIl0BaNe{pR6hDpzmLD%+q35G+=z`$ zwnNWy@2NF`%qPZbN;naS37Oz7w4STjmR0QJ7`NW=4^3XA#^lU#aI(AFQe!q(-%>NS zdDZR>8)s?fN*xnMGvArcWV|z85vAwFz z*kw*E;|*W@l<=W6QL61kH0&uMlcTrnW>9_j4-+(>Z~}u>JYQ{xw&&ZS)$Pch*HkJa!}(XLJm>inXNiEcmig zCeCWJY*eay!Ft5zbT?+mA)a1DW3Fk(o2nqnSPUmGgoZrKia5%cB_V179))E(dz)&`teM^-=}=h|}1ESdiZMT(94F{A9|iV}H;5p;WL zWTIKQh)WU3`p$9|-g`2Q(iJfG%XH>l z*8@5ab118w({yDhO^OB}1gbScYwt|tZ!8ZJ6S_uLI;qHsR?{XaPC`plw$G10+qveZ zKwJHrI6W;X8}gGfO~>{u^4BoDummOS9&O`(MBq%T;vF|AM39F}SPXG=H|IsIsJgxH zP+fG@Y*k$?N}cVN;grjKev4ZmQNms56+O;5Vn$~aM~`YH>pHP)eZvN{7T;#GJ72?Q z*DA#7Ik@?yql#?OR5)(y4o&kHc%}UdBbCWgS3@oselD>^wQ{za{i!E^D;yMo7rn?1 z*4pdV>`ZYqAIFnNZlRz;{|?*HMRsQpo>{5iB3nzbi%Xth$C<2a$LV=nbkyB=T$CfQ z^Rp-=TW5>%YJES3;{L@rdJJoxGnqT8`afJ^=V-m336bnaMr~Hzph0fEvj<2gAq zx0IE#n`KtZ!R#i=}`<_2g zReN7G?0hS>!rGEWwyDOtbiUf=*JIDnM33oeU5C2=O7$y94P*u`1sE1{bwy3?&K*p z+_gOFOni;>ZjCK1-@|FLRdm*~C7&;~C0{_t$B`jj<4DQc+y>2E(9~=Ui{{u<%b`hP zqB9endC?2%F?ky7#geqH&}y!S#rE&bysho2&cTVBvsJi@7W@GVZ;)(Bs}{^rzhB*V z*gm#jQW5MBqqc}nttf9C*-dVB-)Nrdw!b8O8@`0yTUog&iq!em;%}t5FW6G&FO0-b1O~+a&YAo?bQb3u z0mPpEyjVJJt>0;JOG+!%;H^Txnwob&Uwd2VWz+b|FK!iK3f`o@4xt5F}uKJ4&Z%7VPS9+pKaVL`iS zET>lfzcHw4d+WQ^_SSb#+Z$nUDj12ZTSRwSFMwIu#_YCl!;Ln&sZTCQa2}6uM1R@H z|Fjzg6C)D_0U#MsG-qGE^vnKx%}JEc&*t>S&#Hf;&d=S6D+u(s6;!>C10N%r8eJ)R z9{JBmpklLt8G7JsFzZh7`aacnkDCcRMkN5R8ks`a27unR5`N|_L7xRylCeAdJp8VC z_*wHvI>{p}u*;?I);GPrYfhIQx%=}Zd6fSBUhJbFi*@%79{U=!v2XsJlh38GJwqG& zX7n?Jbqy>ls`BTgs;{-j#50-&vU}mqrDT;Y)}Pc4n436#=X|iny%n4k;XUwOBlFAY zG7Z<=8?+!|8%UuG5nDpaoa1!5HwEI{RDe>_R0^Trk@-d8j_N>1Nr?&c$_$lZJQ)7K zEVBMR@eUuC0tWLX`_+VHc}i8@e?<^~pOZni=;!P;^>Z#(07BSYKEA_ZSP0SK*;|YY zflEqz$*hfl2#w{{YvlDWIDG|zdYMlx>yPGdZ3{c4bcO!zHmzTdB5iCW1|xo*I#mye zQ!P=g3R*!k1S7u%IRlv9Pe;x;an}qR(-%vClNdYH+GL8IH*+qm77Gb5%S)eqTb=jn z%UgSc8YE6Ppteu5u*V#&5xH$ehL2!l^!A8X2JRx_Y& zYqb6bcX0O@(~%cdG!yyZ`(3E2lHE6oBZY23T`)X1$w*o3^^{cQ2YWBlK+; zJtNpMci=qEB1UesERfIPO28xRMc3DmW=|3}a;5LoE+ZC76u(5fiW`tnqtQ<=hQlp@ zxs%}I@$>!g{NTfJbb0cRV-L@CO;Di2KLSuuxkLK>hLvI)V=RHqC6YzpFs>=gU806} ze5@JnCeej7+0@{khS=Dqa^p;Chi9knPd-Hd_4(}Tz+l_(8c>?nQk>>j>JN5tsT-VchW z3;_1?QT*E@Xjf&Q?AiNXXO-^TwgmR}z{b=! zhoA-pQzLD6e^RyG_H?^eX!iR0LRAo+W#Bu{-c)bEF#z)kpTYXqApm9I=W~+8fR2R# z=Rb_ES6l~+qRP+jFMHv8J}zUZ8usYM2;b?@jjpjH+>E#BJTQ2@JFxVdQOqPP6t{QV z!OHUOeXP@C_HM7;4ftOxI%#4HXh7%ShQMam!L;$9+r&&Q<(=y;6 zKhD#JH7enOkwU3LR`R0CZFo%;P~$&qhGkek4PA2a5fQU?Vk5Ui5}QXuFWQl!pCp(< zFPjZCYVCfrf>ppm-gqoT6AGE0LjOu&Z7^2XDHIQ(=~}mYu?8{Ld`Nb|O}QRcCAn%D zEUECc=vW+H5-EJlv7jb(;I~bqaw9tKM#0N|0UM@n)?2pKR?k-07#3rj*an`o3N(rL zfrg%cFI_RslI~o>&+4Qw<=N?i?1k`47*OkpEKPjePp34mt!xWM)#VNVfX%>_;cWJWJ zgN=TCWIKGA!!N*K4X8d5)Sn|FiH zO4aL(L|dx2bKX0p^WUVu>$i5y*FcYu(GV<_PbJL5^5JlCv!XZK4hyL*&R`;O9J|jk zlSEUf+GeGUCFv^ViP%+Bcs7o2=cPEtA%ex%jbR(|I$T?a#;4QC6?UA79EV4w560 zF9moxD&wmNO4%qBM2UJEwZUJEwZUJEwZ9*ygS2qP5vb#7R2CpU&( zSY?eiamDr);EMTUC%wCSx4k8}Z+kUNH!r`yx_N1QoVPuB zv&e9UQfS|{V!-XyFyQuDFyQuDFyQv;7;tVb*8F7(mRl>B8^lB_u;b?IV#hJQ(B2|^ zp^*>y)WpJC0ESg9b8l@dtcBQCb#SX{9aLiKR6KiLqc^Q4v=rjO!(H9bShEaYbh{vH znpK>>Y~gY>ubG+|3?drXd&W~~#lUN{@Baz>ItO337;~-#cWt3uZ5_-xKix9Sxe+6+ zA@MqxbE7tVItgx~$+@EI7;!7pFDSo)5a&`aEPqA%MwEr3TadY4)6gF-HDR-pCYv)EBC6BjKHO)Er?WoCNdx0v%~2AHpSlIHW0 zntv#4UtJ#pHwKcC?|agRsi0f|(GutVuyjoRbux1syOm_T^lv(P~sQgq+C1|tFcU!Ah~M-slZ>eXxL5bIG3 zTEyv1wb*dyxjTR0JQojUb5Q}^q_sk!FI?T!wl5pWuiM-_ug%CzEdt=ir-Q#m^m}}I z^*pdf1N&S};MGfC@O)o~h+dut4EXZ{CksqDC#Ofpe?vM1d_1_k(h$Ska>l^w)1m~b zDb4)YYMpN@b!HDb@(eY?5zbXld#IegPhxfjpTRjA z`Y|oKlJq3j7RriMPvWo*A#R$@SHQED+mISjdYR4ZtQlg+`^m28-Z!y!R=ON)!3Ob> zTs*9F#=@{Rfg)1w*{Sw8O|4N3gOh~Jw}H+Kh^NnHC7T}38NI>y(%$f7(9|H==y?YO zN0S8B73!9~pC@XbMz+(50KZfG5dk5@g>~NTr(IU3W_20dg>Q7fMW4`L@6VTd!0-I? zYscKrV_)0--#hg075&?#f3NA^9{u~4{=K1p-_gJC>EFL24bv<7eWky<`pY=~XfsV3 z3scc?VfgF)`4aFi^mM2x_;B74wMV2Qlp)1^m*N&rV^&k;u9S|Q-aMAu@~D=91{Z~g zaT+UV&s=e%4YEMLe#6bQ<+$R%ge4?=8&QlECPowL5!p~6%ggqR)hQkXq-Y~C*J8TE z2jZ84n`I|b?BD34#_jOkeC9ad$C5XSb@N^4GY0@f`3_W;U_RVqwtl_>%qFeJipX_PP3O$I^#M z?yKl=7FKR9M{!>afM~*fGrI1+9bKz;Rv&K^Cq?1WJiQ2CBZB9Sxy#`@4-qT*EEb=) zzLpGoRL=Pp@I@t^QSihq&IAtVjLG#4(Gz~#{okkVrBAI;4qEVlTv>o!PA9;`)EnZA zl}3m_f1Fp_=EOx>p-#}$$TUm>6~p;*23+#MY>C1=xq?i9`As*!c`oQxwDts0QOgFP z;!0YtjRd8CuWMZUQICMAhi_mNolQa5wnB>oh!tJS3)M33^0uq`Dy> zjyWw6ty}~L#7aB&)WJcLENou6qJ1E5hVB{IH-{W3{Q9x+)w!B9>HUFO8_}!VX4q~^ z*j`K6_bp+s-rP3AUhg);-t0BQUhRH=YvilwpXfKf!2wTq>2;XcJ#3VgMgGbK-d1b!gUEz&+lBqR?3J!7C z+ta!1hl8~C1is1(6+Hw|sXeY^SJ{e#;C4KoqIcLw?ks1!RIwZ3)~NalEBmDB#A?{E zpP|Kh>snOEs;b8zs-@M_+HT@3p*B^h#)`d--iaYFl;w@$r#aPc85QIEIGb&EI1lrw%r#J6 zIgM}epo_K-H4*-NS%-vLU?>#0@jEsGiHU-vB1Tti(?8@Tgn^OGgvY2WI^Ev97eyf% zKv9DiQpS$6;@J$)Nt_U*v5H1pdWPYO3zZdv`H0iWZCO}_vIdLq&vPHg+m~n9>}ntF zAQCslDnW7FT=-j-OjtRhw&$?M_eiUU3}id$Dy7jn3}|r;g3QVgaEC4?+J3!0l5Y_B zApU59Ckn45PM|?!Qj|IC=v9-)GZj%K&8xWB{+vBvC(|k4) zM*^Pf1Owd*V;Jnvr7GM`3f;Y5@JcVzzX0jB$jaNglV_1^F+ARccv3NqFp))E-fW}2 zJJ9qxJNv|QVOZq9rISdi?$|Ri`>6ILb2?A)ng7v&?G=(oR9Ox>yZO(X-Tn>zeenYM z&-1d(u*T@9tQogEQa0CpT4AL{Bgd%yb%N*ryy?E}M>bg5K`OT*_Y{LMrp31_ZSLvB z|56InbH9wkQQgIW!R;Q>8Ry1IZcSBcJ1OIB#fZ+b&C*WoM^5LKg?H&Rck|}Gr)st+ zsYz=^4~#y;nw%cC;#`=tYghK!9OanKuK7gWcIm8E=rk@_qGkY7eJKbp1Un%r?Xr#H zbBAZyCuuO|4nfGUvQSlrWdA1SV9}hk8jT&3FQ;Yo$SiL<6IEE--^kHfJ?_v2o949D z$k-R@U49GQ0C-h*??%ljc&?LM!jsMZjgO6I0Ho?T8I_KzVMSEq#7wrHrV1HiFDDfh zsfoWPm%=%n0UmfwTb)~;<-Qa|$Ed~Sg58;X)o4!%TA3)_620+0HsfteVAmXVpR9ga zu8?muw)^&<5mmF88ql0534NYsK#Lwgs)djf^~dbF0A)N_9I752aMcc_EtS^CT%d4O(G1%GUCQ4$>m4 z>f=`ij!qsOM>FTfJQnBj>HyPeFg!W((ppXNY^0j_H+eDZ*m!FL$6`x+deLk>Au>ju zdc&4_nCqs^-X`KFveFovwxJuYLRg#7X6JA^cV`KMK>%kiDshUL@Z1x*_bjtE1_I3> zSQJJ-n^vW_$9UI(es5v98!X#bXxZ+z>z9qvk!1gz?Yu5g+Cwm<>{%kPw&d&VgIWR; zLwc7Tiq@Ct-sy^9$&UFy=G1|ai+gtB*6c!P!z)Hs)@b=mc1*{ne*TW;@1@>)(52Hl zPi0OU(*Zk`Dn8?gKSG&y#R$F9ED9pNX*Zx3u9R($HxY|j^!3pHRBQMl-~8N-)n|V_ zSi9`XNZGV@P-Q}PfE#dn_UZVO+%ACU6mQfr7tkIfo$g1)?-to zCL4TV#MgA*&ZejQS_VlP{DE?HRxU2OSvIu2R#dQ{C_7HShp{*FY87K|(k)`_P5e5H zy-B;Au^)My{n~kwMjp4{TEncCe3i;fU8@cfCf)BnNSOS~4iawN!+=|)c-ZGe!OXK{>c+V1SR{7(uWV)j1Y?m@Y-OMHyHv^WNFKl_HyX$q)qNRhWepIDabAF

04_paUb4kIS*s>2A^V|+?4$|GV* zTegy^S{vms@MZzkKoM@ zmvmt{%4q~agZUL)i_z*$^b9z#61i>9Ut`6ucm3PX5TCQ<&7H&hgDW`& z8fX{a5e(JvP1(=7Z!tnLsZBpC(gW@LC}C3oDBuI*`v*HF7PA3KB!%mC-)=z75E$~v zeczV(%DR6-F(t9|*wX8I-~619=GxPWB14OF^hkTBg;ayNO z7=1ywJrf_%>}YGq%7<#)wly5bl)O3xlauQ43SpG_(P0bAN+?51a-LP)Ctx zD%OD$uECteM;Q^NCYG_4>7>k{Qt~`lI`52+NcG>&dQNIrC<%mjuBAaUO6sG5g5+4c z7vimB!43^Kv6gpbElYl*sjV|!Jw&;9t&mSG4*%b`m+*5|(T@zgSX)YQqPYNbkZV}7 zE*F*P(YDg!PxL)PxD~#?1df$ax7Pe7tJP7`Q~>j4zN@E1a7%ydIi;^G#qJto5%iid zHJpp@#tBQdtWvXLzM1%`=u8{30k+KYM`894 zl?(-SQc@>Nb&^ykM_4QSJF;eIP0Q~v9uc{a=U4jsD0iIvOmj8mb)aN~3UJSpJgCG; zVeb8v_bi3FcPZE-Pk|**REK+(I^4U|;oe_)&r*kbmpVMM7bw{S-bv19Ss|TViGJ+tB+$S{MM_4`NJ>FhCb?}bTc;)A(tLHsR=_dN8TD_c|U<`+O!%$A_! zJDyvockNEc6KlT#7JZhe72$G;o!6R#JQzd!IhX5Smd>G z-nS@VVy#+)Gsc-OD|xt5pGHAS%)GObh)6rzk_h%4k1-h%{F@&B7m2)I1q>b9Yv-dZ{3%+mMDWO4ChV70%M)nK9gZrkb z4Y)2oZE;J+<9OOJdB$wFBAp|0Wn=LVKM2fs$Hny=;F}$z!zY}qh!0VQ`d(>0H&vgd?tS=qH_z~eJ$Q6+L`H`h2o$Z~>4;8zTUr<_4tpCnIsP#}sRcK} zYXxuB3f}S?!8|Be1D;Z!*l)z;(fiBFsuA5PMPxJ1`W}4z@{W9e%?X8s3Amof{y0P~ zdU~6kM%XkS++r_g^nbzqwQh{Xh7S7XqO;=XtAhpmT^P0vrhBiy zLpkLj%fM^XVY>Sk0{*Yd&z!Vzyrcyv_tkgodhRMB@u{?> z=3j~KTQvWNF+ARQ1c1Y3(`LnUeg_~Lh?dC*AUEFrL_YS-kl0>yuxZ1aq2LQ-vvBj^ z{KTsNY-HOTndmBTU+N}6`|Bi?YoUM_aTl@TN5(u2wQ}H7f<}Rv@IEc@KdtSv{7>>f z$9@Wxp;t?aw>P*&nG^PnKB0xc8Wm7)Blbjmz@u%0*@*f_8^pA$Kfk7B#m61>xy7zL zz31<}=T~p!Wn;b}KC;-Romu^ry1v6*`a|0b*1^hj__KYpMmm|RE7S4ViOffoK{olC z@P+u6-&ea)?>Q5fyZm)G4|unSC&*^9NW7u!^QF1*m)rb;Eqh~iiw4@(iP5up6BJp$lEroCj0e1i zUsGaAl;@RQ?#<9eb+KF3edi^0-?(r6Bl#B3U4N2+&50)ZrSqkIZY!JH9>7R254CUo zPCg~CdPv{*{V;m@LEd>x-B?nPKb-LEbem1X%}K8J-+Y!43n4xLMdP$!EVWwM8>KGB zC2hv0D1ODIKB>PpyZTukF-yPCXuxgXVWZIxqipcVkuYfHf0P0cXW5uLg2!Y&$;{HH z!($}TV8^6&2?w*8yQ2^7V}LeEMV{yh^VEvdmX5i}Y`Q_X4XXfuN%`(YfK6u^XlG0fX5*Gv zbs4iX;`IhB>&(o+ot17SXIJ9rx>c<^f9+;7{FeAV=Vgl!?qvxDePz12c9SOjLiK zmYnLz&%jgi4#)fi?NP6PW!XR=%O_I35uOG?rkA_@8|Rl2&$xKI9&iVUzsN{D>s;%D zS>oI_yT19EWojN-4rCfvARGfj7_}|zo6#S_jq?3&?bzE98$`Q6t_Q}H6e1@z2(H?l z7NX2Yl+?e-7XK`toPQP!JuV0yV3)|(r2G_yST6S1t`SLsdYJgxT%unB8z7ta|g6RgEKcLff2QB^!bzVKmQp1+w^*(Bcw(xrDV;eE7s zKL(B1+QhVXFtz^qtbX_|sUGylkzNmeI%aop{2RUh`1$h3AlUr$BG^2qf1l2UkNCfW z;Ntk;=-@~C6UcLP`S;U9;0#=xTpjC+JWC<^{P`fLgmcKz$wlx1to$SH^UGQHT{=mJ zLI*z5f;IlPE-x?a^ZUF=bPb&T(tNdlR08>yh&K zp3ea2vaTL)&XLYWE`wHV2Ax3qr5%v|mZLOP)jX_b6yrjKu2Qv?u$FB$Sg_3oy3Gc) ztu9!wod&gSIPkaE+SaQ3Qd!PZBayF!+1qLk6H?-vkx01e?l4C>CXO@k(+er%_q(yC zxwW)Q@~4_vPRAVP;S5*HsZC-<>b#X8-x^w7LPtS3Ls^)Z&DAHNzZEduyCFx*De#`1Ux-S&j1?Tr2E;CEk=(!)~vH`QK!LvGu)%(=2lwgCQl^cRNQM#<=%xF~;j* zrZ3izZD9ejaBF4Sn!SXl^BUz-=w~sSs|#S;N)BtTQTp;o7rmLkvqyGCVebqqKO(Fb zKe8P!JO2@FZJEP^uEBC#`3=_$9cA*#0F>*<9%(wPBP&!<;Wv|UM2#0E8C8()&HANb91FzCJ&F4y&$p$Q1KT}J&3MaS;jQYzzS zeM1MD_z^tXU|vwUmfw?c;?&pdx77F}5r}v59VpUoyBtZFqS*13w(z8tg{(2k@JL|K zoHHLhvEUkgVeOa(s^i!wM5K~9sy;Xgm)v(r{eskEj=2w8h7(iSqJ=8<^LF;}-Gj@@d_2DeqPQQ=uEIreM>O0Nr)}~g^}BG-z9@lw8zu}Bj7EO$ zsh`o!eCepw%^rJR{&P96+63?Qg%Mk6_zutMU@{t&CeMdM_a1J(`_NPCSLEf+H%wsI zv)?HG%Bta4#iO{igvYDI0qNUvR0Qj{)#-`4@XoQo3;meQ!V63>ZrDqX?YxUeu^^}N zk>UW$x+iVowNGjHyf&8n&Lzv=T1pG}s= zcitVnm&F#}U2lhXl1`RM=M!s3aQ>g(5m|vaEE7z|e-lfC#4M|#&ZKGR6C&6ta z(gE%#Uk8WwXF3dj=+e)7{?2JR%W;>TjMMVEyHR!(!x&gS`6y-7t>LVQ2l5z<`9V_g zv6WaP#HfO-jf0S9BXI@Zj?3$aZyDsy^Vy!%+%tNOqJ5lVZ-Oz*>8F$6*=v(Ve#2xw zp3>2o#&n{SRun=upjR}z*gVbB-|mze*h*@{v}3b;Av#h@TWzi!rG2eOE`0e38MKsMG6*l?W!i03HzDbSs!@?2_nWQ3uIDt>8fD4+m6E)2ba|~;29|j@mxF~@2L9Hw`h5u;MYY>v z8L2_nl)7JPFG!q0<}`jA^q$;n%G*0`C~Yn@pcmWv!1xw0d||@rSADedtgf= zMn!rZypgC4C2V^wN;(t7&S`G28H_1X$KWY#zF>ZayA7TnfT;9{jc4kbrv}G>8ghu?P27tk=`Z2N@kwbwc&j;y_*d{ zRfgsO+Fo4;tQll@M@%c}i|W}4KX5{vr|<*u9Q=97WU zNuGVRTxPGWk0tNt=>vrc=A<5qxanKA?e@ zDI*%R8?ggp+u{xOeDQ4}JGB3|gYvr26D{4{p>oDAr$s(^Y2!P5w}eLF*ZOM4JY1z#`>%ZMUMz?+S6X>;qlcu`dkrPKFu0knx; z_{}iU&<+1-LDGJQLR6zb<0fFa+@(aZ#Ac7~lV! z{^6U^Zzc40lb}=w3AkztXBvpKGcSVYhAQ^niQewBz02c|*<}7e{2NzMre6Wd1J^#_ zsA$$uyR)I$ODIuf?idb!J`7JzPp(c5KA!yJ_(*IQ#Dcfjtyj@_|84cq;v1Y(e!Z}!IuEmGX&-|9a;6V)1-x^RzDrtcg$CrZ?uy$ zedFgoytC6UHHA-;c;@11>CjxCiQS2ojme*uC3JCa#Xoz@CZbqSWp+Kd8726IHadQx z-GSf9oZe|Rmtc~$4fYw~;_{rIr$pHi&%g9OfY030{NBWDD@x&f1&VKh$rt?&OYN*l z9?y*Z0M(sMZa9B2%EbO(9ymBi9w+`Ma6R*)VDHH&7;aGTON`7w{4JydzOa?Fw7ks- z$u|)-wE;x8t*#L5gMeN@SDI%!!P{^>I05h5k^mZGHir(9co5-uP-HUq@GiDMax*@p zWPImF4FIL3pKJY{>+ckuH^N-^tl}m_UHb6xjGNI+{Qq)TL6d0^v#|o+<7CViuXrxv zd;TtS--2hYo^9?#EFsU7mM=W1|#+oVek&M?6{i1gGfvy+OS@XU>c#WbY|^2xX&l) zJzfL!$aE&9sS|C^$7N^+wh>EQIhc3uP3l1X=D8I2!kov1bAAn%{1T&OiT`0CnzV6? z9ZxcF1@p5OKsMXh+y+Q^Q?HLEBM6VB0C|=IO!{F~r1wyt(JUsM z`ZLMmYg>{Dp9~o{$d#|*55r*$o(*U{OH}1&y?lE2QAx$;IGH<+hc*G#{9vZRP4g{IgMUua zyM1_8gmWv2Mj1!r7;;?@#*SQ@MPo0(Qu>>DohL8E2Z&0kh zr0g>+L=`|8ptw}M)nt>9&oF@6?X-NC>1#TX67!4u@zr1GmBFCAxWd;H;|o4G5F;#| zr5dwq<}u@-nFS3B82iie+JRv`OlFLqz4rRwo+_Gox9rU5r!)>3s4-hF?*53&*VYJ?yYK6x-4JbJOT8LvpC2f!E8EBXqtPT#TT8TnzT*Fp*F94ZmvU zjaf7MtcU59uBdAG1|>t`m^Ktff}~H`-?(8!&9EGdh?L>A(tpNQT->rcLL&Xl7}@Sn z=9pp3B@05r?dBfzrV%8~-;{mI+kI>J!EZA6IxO86CF#(YPm&lJ~}vowPc znyOd{u?U$a_=jZ~2m8rTd@IxXQm)qTy3_**GBk)`PCJ6K%@%^z4r->R$aFDey2&FDl_;Ns@3Lx*v-)+br{AzplE(DKB5?4R zCf5&>VPrZW;%FY`lk>Yh2R_|dC;gjB`sLrra0B?->K8f`f)x7?(ah596m2xq|6WC* zke=6R5$g_G86S0!O+b|j%exsWd$i}NV%*JJSTsd0CGC# zAJwz4<};L!nQk~yGtIBiUrj82J;duW{Blysz_BV8^o?J3XKCM=PH9QQB+2O7wf9?n zMYg4J(xN4Gd1J|L5d)6Un>sK37~0=8Bz*A~i|p4qCVjmfoX6F`$vKUR0gGDt3uwR5 zI>&UlFMzo$Fs607A#ITpxxWNfwl}}8wsu8&Cfk07M*7+?G~(UIb8GA83aGE)8eFIf zeZ4&Kl;4GB7p;JcRA2Q0|7>O)DW$JEjURb-`oM6}6?RIgGFD`qKA6c@}-k7$*JPEtrU=wL+LN3y+8KE_PDIh#xN z?dpDAb@Bc2(yWo8IStgxHq^>WCtNZ=ofXQN*<6bUrIF)TI4nJw#06=DZbPoOQNC!T zlVMN##0mhgKmm^#>#xRQSu)>9*;!O3EH0REnQeDbktW4I=Jm4Ncv#I!&lf|zChB^R zxwt$IKU(?vlJ?QOXkjN!T&F#+#d}LyGMh-55U_iw(NsGH+REFcx%7ey#OVW9F=gm3 zA36*Ahj9S(m?x>(1daR26~1t+WbJ^(Ee%WyeVG4QVAeIJa$b?IWVwMi$&~{8bvg1} z9|5%*&x~HPqoe6iObF-$1qw&M(0$Q%7`{sfF{AOZ_ljcz3s)>bqrwsv zi}hT_IYK1#frM5n^m8<)4O&8WAdxqRs3 z{r*k}cso>It)ZRLjb1r^fRMi>X*4kWm--wG86Pqpugj z8bsOkcpAyAK#&c_R)?Z|EC;g@RM4hH-cR*CFySn_)n~cYaqp9K=05`>>%qL=ja|AV zy@Q>l=zo<1*A9wc9mhKFjW4&C$9%(3g3qRrW2QF7XeGR6;!%x;JFmU@WHCi8B@~BEZrf0nJSPE6zZ9 zD`$UWda}oNE(+W>0wrQwM|mIWyQY1^SRWdf=x@m4Xd#9nD}kj&hQ&YE_arR``*@~_ zx4*86ylUw$Gc2fPP}N>&%9rcss%qjdwqckIM)M?n$yDLxuw=#R$7O~Qwi+cRFXOwx zTFo-)`8M)NIqY@KlXB@5$W!wuxXBY*SH4tn^OL%bvJthRZRV+!nFGaB^Qm50`P6(q zC0vqqP&`g&`OA2kt&?hWyvTP*QfdKvAG=j%nw#(9BG`yl5MYQo}&Mp(T}I$h`n z)~UzoR@MoA06NmFn@!%*c}{J_Xg2X zF)rI$+K6DbZ_03grv0q_S+?gXO`a)cK{K9%JAt>hBjJ7B`;4{KZ^kkA?ZcqYzv-YK z;1L6xP6jH<49t64PHa%U&H@sO5_%YBrkHP-B^0-~OLx+L0+Wm zrJTjr>m_8wuJw`{Rk!t0XZc{gglt#8W()G+EGxdQ*#+4+rNhO#t%XaGHPV)A^y?(g zr&J=FbgfPeBUV6Lt)HXF@7GT}7=HBLrMqxFbO|%_;=HoGXfDRK>cVG&KawO+{5joVlhrgtK_K4EsfXOJ~E)NkJ!QxF6bQh~%ky98Fn!1WKf~oIYRQ z;9!W8ooJp}KSH)0<$VU>HjMCnh=SnDM#(^IEbms#Cl79!9oM6uP#1{mjk%Ug_U+k;`=m(7>6Ru;qA|0QUF;3 zkMLw*(+-k;kH=+a_aO{|Cy-@YTh*mS<$;eLPg(z6bse`m(&}&D7JHx~GOka-OB7$e|1~J?`=!PeU&V&aCW1f@!Xx~eFwyxoSS9iNK_H5p zs-{(uQ;K4o1JgR5&5J&k74(Im8pR&q)k*Y6;~#yK#fGei^1`lR#=i#J$=f&gHOp?Q zaR&9y#QO*}Eaz3Z#()@Yc5Et&H13^7V@|z6R1>selDMJUD2@91bCNRKJ6{R9K)Y4J7*qXu`N+Afe&%a`eQivA z7r#vFja=6F>qyq3eN65^{GiWDOCf=6YL<(xE_z}Jpx)VI0GD^gwZVgss{nXL6>RDf z7Odbcm&3PalsS?%f3%<=!{A0GSZ2M zF!f372L(5VWa+zQLll$U_`onYX9&Zs$F*EYSR{2XZE4ckvdieUZ_9H5pqpmh$=;w? zJ_gdu-rKgtiEp&0G4+AsZ2V$yGmh-0AoDIBW!DqXS)~IRe4#vhOv`*i5&y%>gHOlWpzZJz%@5j59z)D1F`Tis z8uCFtEEn`3$MHXDjd++Mjr0l)<`P#iNLG9kZRR)3lpmd363IS;n`L?abbNGj5FP$_ zaQfkxLOJaCe;prQMHk2a_4)YnijxMS%I=&go}M3ETwTh=7&VdYc4hnL)^%A=B&dfG zud_$%{X6C2=I-CT@#<_MfW4yX`GLhGE~P9f?9~o9LUe`n4NXq^8~$0*OBwC5qj~{V zhnt@5lJJDEtxNCJf1^Q+ZsyY+jA@eCdhux3GB&#ZE;bQ6uOE6FJKsLAoDW}Z+A8;i zp$OM{W*q74!U2CJN-Bj#?16F&fMJY-gs})o{16OjsoczbI>w7kVFIsfR5V#)Y#_vb0m5DHnZwb_8JQ_B85CVDwl^ZPVl2WxQO?J$3rFbgcW2WGSGE zla{ovLzCFu8xng;`yzwhz|i>qCLgh@iCew{6O1Nv0at5&N8&0@fLf9;{nz_9?k~Vk zb#ZuM%;AHRzY%X3{y_iU(wXk))31ECJO0Pful#)<&aZms1#Onl+Gdcu@Z-A!IHW!p z&9+TYJmQ;t+NVeTxMT9MyE}1R&9<{GWmPiPOC3LIahi9S73D0Ni>nWcfzlknZuzQw z+oc=DE0SqC^mBAQ&yq$8iJ#2Jk?qmQDEfOzMY4@%tAtzfVJ_suTGmI=ZC)pTEn~z$ zj?thPyxv`-kk)>l-O$!sR(jW1o6PFgA?TKEQ_g`Ippf27);010-8%em`k4WamG}y9 zA{Qh;ojPXKI-FVVmeQ-KehbBN`RDGvC3WnVM(H=EpV?NrUtWVRD6c(T0eVvwSLiss zM}u)<(&@%wjq}P;+!rKlmIW|&cQ}e4sY{rQ>ft-wq}(rbkFXkiJKKB4_-)hh0&ElB zPv~6sHDZTifqPHXUpAG+Hg$|)ls-(eB2}JPUjpTkOZIJc2RR*|d?LqBGbT-6&^ewY zJGA(zG@utBj!&;}KnVNuSvUuXGu((ovXzDV;d`5Ql50FWyO*ub#1*N^#Hd5HOqSVw z_3F~h#aE24TJ1?&I-QHNU!q?QE>2HQKL{KvPZ8Y;CF66y-HdFQq$6=$1&JH1v}tP& ze+YNXxkr*-v-MS(;S8tBo{V{YaTOhYJh;5v4u8z=p+dJto|B`G$F*FpO>mmT4J%mF zL);lrt8byApz2~h1G+CQLU^|TfT(-Ia&XM{yQewc}bc1U;jWuidwh4&jMa_$vUvJhx>jM25fe!wl1f zQ$HP`(%Xn3D!q4_JVZ3ucgToHftDiAlG}S`VU@hI>nrOM8_y!viD1vb0O!x%T(Wdm zg>O9KUD}cO3{QlEzlLea$u;r5NM?Vcs>eSCmED(67V|8ufDej2yp&-a_pCw)Izc1l{7C(>=!(aVy zqRYE7&f&YyA8f7QL3e+uhObpC_3LjLbw=vJjhu`p=)4#pounBUW&u3F= zp^=;fZE3QJm*hy?`01fsZ7Ns|EJ^KUGMxscEP02*D9pB*(VN?w{}JZUS;a0y%)5<{ z5(WbG_N_=?Y3qu#zbOXRs&ue+EvK=_woaLVp||;)0^Q@eAMD7#-;=}RT zd#tNO`Gg?&_>WHq7D-;+AS@;jqpbfjOO{@Bx+FB0=^+vnH>3QH!yId;;hP6HmdDY7 z7h4<37ypiYsEzk}bz8c;jX4WA(N3dis#sWZ50nCE&%L=$>bt&`Cz83X18|AKpozXX9TRSHxArhIBY^)C1X zb%gCESzPcO_kF$@1*`{g)rY@4{;$)|pZI2!#^gU$kGtBy3Y<|J6vOk5;z6$X z?kUVbRuQNoPO^tC9Ic^a_)Xldv5~FxJDYV1xI@V*`LeC7SbActBz)7-gv=Q*SH+2m zm0}qL5dK;IM4UCtp2ji%_U8;24Eqq#=Y6x+2ly*{FUPwmbOqC&x^`b!TK`>1{M%$U zq}tET1vwMk415l54>mxoj5nE$a^uyT?N@I`qX#^Hzx_S`?rrb!Z@DoQy2Q^EX#jXY zhra}G{4U`;|4Mn6cb+IM>IeqUzQa=}Ds*i20H1QW+9%?~ZX#fi%;Le}FdJmx=vZdH zvGW=Zgdo*0^1$17L2yO?>JV{rd;~`#b&nDSH=uqJJOg-xd8kr+>%v?;rH<@APkJ zd+A_Wq#}2>CT)u6$~sK!=*QgGsNaSm+k>k4|HkwJ`<84)KC!B$zv>Dg0@nj&&dl(mNQrH$h z5U^+yJ|ecGh^Z^YoRVWR<9)$MA{e~I$|il~Kltssf#rcI?>?I(`8`t_8zxu4?Ec$^ zvD*?8C6zOsvD8c(gxfLG^zw1shvBv}Dgi=?Z-z-_{{bUMs zeZdTt_5`)FjATxZr$K)VJf<N=Fem!i{oQ~;$@)YxgB!Ml=i4b!taF`$cVITog) zbS%Nlsge<{IBDna%kNCzGx|{2vr2XvM@9;obTsil>nMTR5+q_pa<1VounzH{B zZla@)$EPlTGYy~BQAw}T=Bta(hgae8gr}wg<#_$3-z5B1%BlD^nc+){uq$8c?$6HT z7-Re3OnN{AT)l_!Xs~UPK}Na7(jx#y(kMlPNWknni_)LT;b&#J=R(F!vZaJo%>q{J z;UAeIT_D;v$eE6g+1!XD6$&>OtJ^gYI zGtCUsC#R3}+Tm&W@&R_lr{$UV1<(}E0C1VPPHy5R=Od`6zFehIZgR|KkN6kyP4ZJR zjBx+GZieaXaowbMGy4C!iN%Caf1;;+v*yIg)7&>@1U7D+0-y@{Qgou$PJVN*T2yNf z&GmH7^yT)t97O^Zq0pbP&olVE!a6gI z>zu;1@5?bYbp0NoYG^91ot}0rY88H1Lcdl%(H$(3^%LXDZk^QQVe;~Rko^0@!$Wsn zQe6(pjQ^~i_$Dvcqb9cKh$VPW%R(&q(=re#o~)l^J@$-F0sXoBc4<+rlV_67c)TET zS~val=8?E?sDIDPb@R;TlXduQB!w+|`BJ&=byg3zX*$Kf$YdKlDO;Ydn_*t|U&asL zfB)*ce~(^$_kFxRMnQRtO=F$!K^<5RFK^~+O)8|vEPt8a46^Q;EJZcbN=rCD8{~iS zb@~!Mnr0*Tf$PV!bu(Yb$u;%kFq#a;PtG%3?}!U&6VN33d0Zs4MbT7U1wvu-?hank zv@TPA#476E?XE@4(j<#9&6)2_;#c4Ae)kG{K>7P~>nU^X{QS2In6~v!0g~%(Z?wzw zSDw~BpS0#Sw_U$4H~8A}cju;q9I*($zw#&cwwE0e3R>N}Yj0zVOTd=C+(NcmhH+KT zTo@HI;FH!}k`DfG8R_KrmH|+?B988MU#__gEiFTy^yd$k2GCd>+slmiG5Sz>{2weh zF~uf-xKQHxxiI?O`|f|Vv^W2wrS1Jsl$H%mdD-xPV&=g*3?9Sy+1Pz**gEA4M{Wd% z-SuQxUZ&}|%f4sUk(At|#aP88`n*;TBy}U90wM2vLcVzlKty=*V(#XW> zs>Agg2mV~Z3Z9a~sO_wkgAX}nLZ_Uk=UDd?JxUY)(~~cim*%x@gym7Vw$pif`5M? zYXn!?e)d;D zPu$vs<$msQ?F%9=H($-B;~b{!8n)Jf9TMl4Ys;M_Idhr6GfR}@nBe8_$!bKxPtV%D zd-Z!NEY~{**0W(5tj#MDfno0C8W-}DyogYa-UrNnqY_}9@fc=|OJQ|8l~O{{v0R3e zvRH2+c((iDgAs1BPO!45fDU zc;<{PimwdGT894_o?QGF6wczZoR7t_FYQ_-d$uw5VdCNB0a|ZXO`G)!n`wvxtR@L4 zq-!jv=^Lm|*a`#+lhBnOsqHvqXK0@Rq368EYybie)!bi-f3QV0V5Cx`Dh`pd+Sk&g zhiC@|4r$eiu8Fai@N9ojP2aFiS1!Y8n|A`up&&h_eTM)JZ7}cRK)4J(oS&SD|ASJU z3MW0*mz^`945BZ?FB@~{b48~n#*JriD2i-m$XN*| zU5c?`kJOUGoJ5wF+gVw!%-4?9i8Zs$AvjUjW9hJQF<^y;@MO-b5m<;T%BNyF!8g;v zY?J_SL7*0%y{^t_ogW4<#+ydQQ_r&gV{#!F0Vk&n5a805>4;Tc6=qI*`RQxQp>SZ! zf(aiM5(q+9){R+HL?X*@#A^DJ6uPajJRZ&|PCc)S!I(Nj#)tbRdzE>l6B)(;HZ6xkxxhs>frvQ{vd z6*~3VhF7P|HOWZ#cM#9 zuJUG1nFFaqk!ILBN{MVo@|4~>G~~DcNa6osGO>eOAD6}lw#N!8nI8ajFpz=S3pV?x z$tDIbmYD>eR)3K3BL4(hDtidqPHa*Kho4UmKOUTXIzD<4 zZ1U#l1u%Zgk7pm~>0GuR>$7{B@@H_}@AG0D&xE#ZVp`LDqQnu=SW3m$aPoMQU;nkb zHhTgbqc|Lfcp%U%&%g`rg@UWr8)Bt|szQ=>sswOgD%^%}xmT%Vjk!wL4 z+S*?)YuQ&U%P+jbwR%xUcXfi(+!n{jJB8hQ$*j#w?mS~)%{=^N3Y{!Q5V-3py|!V( z3UjCpqasYY&n2xcqU71|Q7etmx*y<=g^0l0@CPn{ekoW(7;)xpCpcpGNv0Xv-h8Ob zz%b7YMYHq$=x?Y@s$u?F>tXt8GS_LWS!R~b%6J({E4dh>OQ38S8)->-3u(41sY;{G zIf|k~w#x=KlMk*0hmTYJ+PTfo>Cq`-I^)mZSXQ@G=D~#tSXQGSagCm@YghLK5^@wDA5dp_np!kD+7MES| zos`;lc=_#S<7t|}oKnL2a|+K#iAgh^k4D}3G^o5M#NYYv;A(YK4bKFK7Vu5SJ0NerNKkyOL`K&8qHnAJUyZZ=vF9$c{Y}QO?!t3ej0IX=Xqx`@#{UC`ai%osnm@><~So9;(vB4`YAIuBR*MVRFtr?uDV>LiBn) zOnSZh9Q)pX@=Y3sm8fs3dRSfJt`8l?b9(>7_P!$ z8}7ztUZw-HFY$PI?J%q%Khqe5ItEA!N7tNQ-=)n#aDY|iVPgw(A-H6)6U8FMy~x&N zJ~l*$9%bKR?pxiT6T|hn#Sd=DNx^GsIa-E!W-bx?aCMy{?{zT^t(>Q&Y$1&zCUI?~ zT&A6}%it(lX{aO4YKUGddzLz$o8$j%8#_oxqcSiSxhP*<472+;!*hefVp4;g9KkPB@YXTp~$A3JTqw7@mZdYdxTDVpBsUNIUv-| z`nDV^GBo=;t7HJY$8Ui0U-HFaL-ZuRg>bbeO}SwHqfY&N<$-upgT&l}SFo}<0S79+`o0-}42i0qDw7bQy?*!h zz|1A^U{oYGp6_AwYzNQ~@jW!1mQe@AV_)yjOvt~CH|s#|b{MY=+XIxWLa`O5^QGnjn2#X? z@Cl(c1LUX2%|bVBZySkRlae?)d#(+c8-h_KD0$|%<+q*k(Y{Ez^I-^?pRq%D`AkDb@ zj9Dfw8G?zf0ns>%nBM^{5gN|-K0%R{j6m7XdFv148iDAF-WkXY&}T35&qB0$U#ay^ z71>Ywma#cJ0qK+0k(g3zo!rk_Gt1#ZXucSLN<+!kEC1_s!n^La`n~H_V22sj2kANz zXMJ>oWahdl8T`T5eu`-fWNO)1=RT_ujHlCDTHC3Dfa`G7JxmH)v%ptRb3yxW%~5ZQ zu35caT3rW(0frfDub`QpzjTeXcT85eA(YM$7u)oDKY|sml&fdVma@k&^kYno zj%b>$(`KTS5pgxMbd7QcWrXf%AC}tu!ok~I_Ic6*n#%+4f}xs6Cb@j6@(|5_z_Hbw z8)OYu`Zgc(-WW|HUPIvz;jS%XLd}{FZo>0VCx>Qw`x`J^h2__ex*iUB2XcHZN;Sk; zOVf-vN|zod3+OplmSs~Xg6CTOX0Q-`3Wbpq*mOBVTU5hPx`3N6drq}1$KNx{TKNv% zkSsf>KzFtd6$W^2NX#7r3^YSk?Gp$0nacj_^d#2nIhuH76DQ}>`8l*HIECO{dwopX zo@Ifze5DSgVHepUbjBDc*g9ACgc$ZaGVct)Rc*3wDF)is+WF;0d;86OrTGNqcLm>y zpY=d3$Wt07WJ|}HkE`-b3#}!A4?cnDC#g7ib4eXYgFc@#T2BJ5@%X zpOxPs+Rl2ALgz60^)QiH)x#n|?~1_cYP>2oY62-LxR_5StRBYreE5ExNP+)7V-1M? z{cy)H_kR4C-Ahbg0M!XFQFyMW;fzF+2mJ_uDBZVEGDFt_uCAp_Qx3{R(pk-ocJMEdL0iFFOdI)$MxcvOw91y)iZD`0h6N5O;I{w2Cj#Qn*x zP)_qnnQjUDwmhV^2X-8MbmsbW3wLAfdry4XPAWjL0&HEwJC%9nu9*G)<$+X? zSWF=&0&xRE-?s13J+FN?5Pk93ENUA~E2%i-vmXK?PhRS$WjO)Y@8-|P&sV~uPvVh) z(#pLx`b3=^WUQcNos_tIeCdNZ-K&nvkNG|93%2wcUT1w38y5$&Xf(Z!Q7Gcmz>6*R)pWw@= zy#DbeQ=KXu5`gtMu~f23pQ~vM<=nNY>SuP0gr%>BIxxxY)o8R$|C0MdYj;^Rr03dV z+(>wLqO?G@GEGAYOXg^GYJG z+XJvy+U2$W5#N#=Wob)g*kl{P?cQ*d-XPa+QmInmiJ|Y zS=rV6ZYB`ro^}%*Ha8DO#DVj6(Z#i0TlgrihjV%Ea;%nzx2LWm;y3fn^6Tr7la-n{ zA)0t`B$=yMOS^?SSQ>?PDt)T& z393}p+!RcmBCEY0v+b#&58<#6g+(}^G`{0S@mL);Nd94;uUP5V*Sl_bDjxR1tI^!M zF5>A;Hjuqy?{i%SOX(O)@;^`)@l^YA;~E5X3hi^A@7P5Ft702Ji5sKQ1KfksQR=P? zZ|?mNrk`(yebLw*WdqikrfMkJyo|5;qTvqLzF}9cA^oDALbvp(?yjOT7`=ZNy`!Jw z)1#AvQ@&8aLtm0pVI3% zJV&R6C*zp;I*#}h1lCVPYNnv(FcY$NTIX+IzprXSeC2dsnkc))zpR z_Y3$4m=N;--<@z%2>+cbBiHHS!t-fq0@p-_hn+Dy&~#7k9^U#CF;VKv}{QGykogV0ZBs#d&Fwq9puvabVUNzHIs({{=wU%)*3NfmD=XytkV$?f^XpRO+ zr68A9m%Eqtv~sT-rVq5WV&b**1<%L6sALB>cSQVOb!o#&5E?t#zcgNXi zl+ovkek|Lbcl|Nr?UTAkwqH@C1*5F&)w=VLs20K3eT62tI6IFH&(8nOJPa+x-;r-j^%s#`k`HDhewxxB zc=zKtJkUgbj0Te#p4qpR-tEqaUhK=xNA1T`Hoo3xIuw?4(EhTKY?=T68Ybne8p8Vj zR2QUlG*Ik;npLzA0FS27M~T><4npo}HBvprZI4O`|2xz_zlM`>pPSofiY{^vQ?5D} z1=1T{^BMly*T;xa&f$fL2}(0)2_?SZ#1>TfxXXqWjt)hAke zpCz*!_O?dU<2C}_-)HR}>g#>+ZO(~BeylorgHZ-AY%mG$OWsU=C10qY29IHpJ`ZLO z__@snw?sqqfaKD40*whxy{1+e+)m-Ts}`|Q{`W@m-|9CE5C1J?KGj3Vw)4?3D*$nJ zQ|Gr?wO!-_t@=8=`T8<1rAB=s((?j33G`iFJgPEMlt@}-dCBK3J0oNd!_wbHDu6yU8~3=P_gr;ytmf#GA<^ zc0CWg$?%#3?HXT4_xcMWL(46C(BDV>z1LsF)8gZJ{66aMz5d?lI^_H5Qr95cy7)^l z2=2!_^zRk@+YM;3am#ek1>QOfL9bQU1ADb*V;u)`Ct}j| z;}NV(5=}%s-q1T6-G;2!o=ys=q_ZL!Z6-a%M_}w8!S8`?izJ~T+2%W+jM04jc`k>l zF&I#WlrV>DxhJ!LJ@#8F`iA%L$CA!$O;iQbW8~;Hb>?Wz0qJI8>&+dCvF7SogDYk{ zYWm@>-$aj@mCjw(`Rm;hWwHfF2Rl=od;xI9B!#&uPG zw8NG``)XSomc=uIc6J$116-?s5*yNPlj z&cgB{1;k!77+#xC+(^_vD9f>rE-&fNIbhwoe16It)(mT~0l99UwHJeWo*%I*t&_2( zF3A9Nlv?73E-51_uxyGtY@g*DdS5~u7-XbH?At?FejA59<`>j8_k3#oa(6twyeyU5 zsIxHp{{2toO{3HA?rcz35& zc_&_4B$!hPhCB%(2ZnzeA48A}Ah<@~S5RLBx(QO#*O z??eBjf6uZrc!$l#a;Fi_Xv`ux@N?V*Ag9!nxQM9l0!#%uK#bTQHVag#C+tU9nSGwm z%KL2QCV{=u?U*^t^JQ!eJw2d6yI} zS9$kwAA&#LUfcI&KJ<6#(C=urD_eDPP&m63r$%3VcxOhsonL=qc|V_gaOExSW6D*l zQ%>2qj^=9txH6S%m#!YXRemAqLN8sY*E8bkx@P&_R>xzlE4vI3hN15Lt4!`G{45D#0w5t58r1{Us?we}#LX_S7oq+6psmhY-o(CAOg z+-L>z@vF-p_6PEnwesG-J6u_Y68mlrjfXMlf0fss045F6Ksr-U~0e zh)%t&ViVcby{{T4%ld0xcH^R-%`BRTfA$8mqp%`_d^C!uW!iO^82xxgXYwvC4siYH zmrwgS)JkZFzokXcs5`;51>S~jQ#JxkxmN=yt9F2K!B0b zz3orSwm3$c;mG#9h8ow>n0m#d#qu+_uoMh!9!dI@v~!#>`h%;B83+ug;~{Ew8t@95 zq9fM)3n_VIB&waZvL=3EZDr94TBE#K5f6uS2&9=l^(I}-tDkGk%;Fkqqc3& z7#^*lwCHjvw57~OqD6)3`G$QAmC<0tW;0WsW~zQzKjSQ#X9*j+vy$B^-cm_(^_yr+ zyX-=vYjhiymVv7m9(sTNfC;8XSVV9`dpvz<@pc`lmWVqK?ybSwx9f4*Lbq)iklnk{ z?7A*jYwG*>nN?>D?E0McDd0g^V=ot{C^AqbG0H4urEe@Km&;>L+|`4~H%v~tZ>bGd zf1%z^7IWY8koUAfoGwd)0H=kf%sk(oL6}a`jd^ByAP^z0fQw|F6d^r7l6#`Wsu}= z5hu|yV*1Xqj81@WtlSS8s}vY%)$ay*4u3ehJj6nG=I$-{6VE#f`jnd3bJ)N|8nO7K z;IlNbEqD#?;G&wJEUt-&M%q8WaTaj*JA>JSB3jqm;>s|G>8b1JHPTP3$u+&uIKHZK zpg(Sn?J13jR-{{G$82blDnU`37pG;>6Eu(n3}9)wNSjS?f*GV8f9|==tKOv;I8gEDF=>_b-X==-M?@@Mxv2KGqy-^^{rQG#^iVT zcuob?{aX8VpuP}H4+JU~6Mq)+{7SfgIGCR>!`lT`B(Ycn*q)d0p}nI2C2k-Zh>)LaIw6Y#}& z7I~Ls4E(apr87;vfgcXB=lwV`oF(^BIi0FiiF?<*vUU$itg1q`(5(Lkq8g(Y$qxFEpX0IXlhxv)_TCJ(xX8{E11DJx;#JM z;cEswy^_(Rc^&epY+1Rim)0n^nNHN?E7A(>CT`MgjD zh|y>{qe!KKFX^zSY*}vo0Pz;+hJIBVFNB)QfcOlGSbXJVlWARQ=-OE%&y+9I1sV2g z99hj4&rjRBKlsQsax{i}l8(wqgq>|~2i6cK^nJhmE}J#a8bbRTrVzJ}uT45FYm~yo z6qq3~jT~D>$B`+$aOyy32?qu6Y|0|} zfM8U~!>J_HOH8#I?@^76lJCCYFJpapY&HXLk2tYbG#>?uTye~)N%uaYHKiNAl3n~Epg&u))nkV5VZb%isZh}NKfvpKeg{dB-~rks}b z1L<&=gw|h@J+tXXZS-DzV1jR0V)k|ly~uJK0#g1Hi8mr^=l$tGGgoj`g)rFNRMI-n zRGdqdU+Z|R^||go8rr-!^nLUl5HHh5&C531qGNT}Zt6&`2DPFw@=YC{orL}dsVHacD z<+-H8{krT=7NOI5rvVvAraG&Yj>3{d3lmzzCzZxt&261dm!#A?`6MY8C#vb|QhQ`M zx$~gw<(b)%=2m~1FQb3=+Ja1l))tZZ5uZM++cT~U3^Q{pEI&;iy!M(oW|h~ye(`X; z7!<)yFO{T15 zqRGR)e;0i^_+MuirXJzM4PYFRiQm#9_v8~*83{E+8Y{Z|o-T+CF5DH+p)(tU`-+B1 zTRD(7VWd@ayY@ZRbf!KeI6pW&{umv6Jo))}f2XDc-3IFH#{(Si8k-yF3xi(7aIa(1=a#++1nUG1=2-f|WOVJH*%{DXfu8cnx9fTrR}8 zyU@CnU!f6EC3V*ZoZyui+@k98jK4;>O$9aOBJ1V^Fg!&Yq3Lj>_x4a342 zvB63i>)_qTP;Nl8-(tf?JGm>i7pD)U+4gyVq2ty_i+5@7`^!_d^L^a*Egy@=@~y*W znDB#6u4-m-oG?O~em^y4A4nW-A3Zn-b!=fAJegNUw)uS~ zQL{{!h9MTqw7velx`praut{5?tQXbxl7x1xY!W;6-JbHi)YUn&#R=8HRG9$};`j4n ztb(t82#1Pqi89Nr>bijsm~sHHsUmx*+O%j!seU9eeJr!tU)Nz;tarN-9>4?L5eTgul{M_ zo4f29L5mI(4O+hK>9=#WgM2cfLr|$VcvJto1(}v%*m7WdGs_Fp?h0?VwN_c2&Z@Z; z*L^t&dnQ(n*Ygn~{P00OeGF%P-f!lme}BPyKlYVHPZ>tOm1pQaP* zIzm8DU0Y|St<1ox>peKcva1{S%v+UpO6%IqEUN7C^8DQYenc+b1U&gR)j_&S|LdceeeTP;M-^x}QnOIHtZ>BLkSVbwP)4`hj_ z9JGXoYlbvsw+~ejxXvZM@#b3jQ+O3W7sVJo@9bL<-M$ggHOub&0XZB?95|ABKzxfZ zGP9eUL6>k(_*`4=%K{(=Jo|hVZtAr?E~0Qv)dQCOU=9?6`3rAd$+x0>Bhu&7!_b^C zahZ&cP;9d|rXC_OxG!b_A=?=0O_;kEkT%*TqYB$#vu5e+_GgG9vdL{IMBZE!%f7%V zU~@lVxRFY%u8p%#pFUU3G&(ZhP$?s6@|MAP0x}Ch>fMmrI`k5JQfoqxl-Z8{zG8gm zWE$KgeeZ9&rYo9#|$aftZ%)et-s7hl_?2Q*rIO-mYSo9Gs$88S7NPFjL zNt@q?cm3(V-3_6J{Ya@}=G1UoOu5T>DqcSGF+}KPS~l}m@)>H0{18P=2B{X)oc|>+ zfcn{wdRiEro_`Lg;!7I&N~hAlM~{;jz9EKFp+ANXV0=!1`*22==jsFc=j{Fa?eOUR z`K4kB8h)xe<|tD&)@x&5nMblz+^2g}i@rRSszc_II7QSFn6_oaWa!(kH6ZWemeXxjd`m#tf zxh`2O-EcYppY%63@Y4l7yK|_`+ znggB;e(~CV_PTzFqbCM2fz-86qY8@g)x2YrKnak4NxggP?s@I|c4e(l>1CPOnaArG z9n3oA3v>^VrnUs1y{@iP6j5KL%0u=&e4xr%uU-B{=?6E&{lsAzkEc~0Q!n{y9n{qM z(>uX}2ZKM?=S`fRE8jRscPaF&vVLuPTpmi(AEh@|i$?fRt5dUTmV0(S!Wfzi{;dS< ziLmpn>z24$_^bWfyhiyht<3N?%zRH-i2VU2m30pd6456yLQfpc_(FS_Gx9U@v6X?b z<08TiZ&-8?>*?GjwHhi!3%Y528@Yf8tSDnO}F3pAdY%P$H!LCsi&7Os>-Y=E@GlSokcv#HNL=KBXru< zB_dK`#y{*1Q}I14dZARDmBo9078MzfNd}|a5i!hOEj3 zS@J{kPPt&43vc-a-=MLoOSxEouG+PoWqs}$^)~AE(}qwv@z193ez9_W-zgDm?yHq~ z=lbB|6T2!NyNnxh*{~PKRQss)yN}LJkHdN&txnn2_lH*> z8-2Mth20x11Ru+_DsLu@72|Ml_07#chb|@&&5*W!v2Ck-=js%}g1-3M%D(v9!oFxt zx1?QvYi-xhmw!J!Q~*M^7u=S!Vg{jV!^q9;{6^DUM>MzjorGxf1Ezn5>!9h*t z(nxox_PGjZ2_y@b&B@a|_a>Bzy`-oxV6o2ulWM!-4}{q{N1Ih{qS~93AGdE{gPM13 z=eTa5Wu>wZ1=zrrp(m;Z{zi<)W-1(O`usdRIis1g4Q69M%35U$xM+}5r3)tUTlhR?{n-SRxr}IKAeCjen z+zlaFocMAi%N}ajZ}d$JyIptn;p_ll&^DNv-Vn3!$FK%@qXq3R@f|EGirM%&yuVS% zSQNbP0mL@*`dolB1Hd7P^1pEF=rj+HEOdZj#(u8y0?xONO(;BANn>36hOdB!(aJY? zg<3^SBQs^bjF`dBx@kYfgCf7mM&@MMa^HalWW)pdAKnWe(MjP=i|(cNt9)fkSv4f|^*t8qhHO`g4Sx(5wWE@!QbYK&&1Cs(hv5Z< zSj-(5A&6bd)=d>7_Af@7%?vsXGN|)6-gC?Tcu@fy15J4fUpB*V zujxY~VE|-*jUf{%LQ~6lCCDd$z7Nq5^#wPXn`v+*FIAq&x31pOI2BGCAB&lvZc1bTJ7>3RuA@l$NG5zByQBTO+rtHnh$^m-^7(v zosSh;51r*xF~RV31lZmI%01jqN;^gwU(w5e+{7ccpO$YHHFQcGG6eKJqh61>U;RGo zg*TC+rrtyh@5xSfP1v0a!=aAWR_}{J={7#MitIN!YsMq1UuF-nRuTgFuO$&`Utwt2 znz@`F3H-Vb*wvP2D4{_{MU9E1e6d=m zq&@rj_~PTi-=lNq=jEdq5Qpx-ur#f=g+H&;hn>qg|Nc!A4zDggR+G2g zEBR;6@YC_tft))1JD8-Y47DAy!u!HA`@(WP-TPCktEp?fRJNxC*V9>Mx9njgnY`Ya zOin6dIO$y+ZTW{5WdTi(ahDmK%w&yYZ`zTc_Iz7#g&y2x=;330v~%q@TI>K!qz z87s0gF}jgbMtOc)xsTiP?^2|6xUIvrI>??u?dX_$hGBno9!}=+Rdg{R`jMvCPcfgM z88?6|AyNvDKftCb-O;$wsE?;6kkm+qR5hI>J1>d*m;OP*qSgMQDpRq%q-uH_i~>kM z8W2*|_Jctd^LWj;tuyx~HAT4osw7-k!y-9NIi8k|XFAhqT`k4Vav$?*Z{fF3r*?T@ zes6m^y?V^KhoMRGGRw~4b^t;w<6p4{fQq!fEJ=Q_CIGt%&L6GI>wHMFjqs^zTIbJcVr zx3Px!)ihpREd{wWa#!v(OFXD(x(fZ0YP+NSI`^^c{Jw@R2J+($$=qvNuwEH=&+i}| zVN9V?fA#xN$lxYpt(C-cpGxK8l8u)A{DBLhuFmHrpwa+OS(jZ3RuC4UE0?>)xlT26 z%Cb8M7Pq_1d%xV=yLv8P)igT6tT(LPFUF2i>Z(vMQU(Gl0|(TledLsqHcihjt~POd%4+~rvuo9j_A$; zOF{)wJKxX4KUv<{1enWXdFM6)J?BrjHN=tgPcAp#xt@Fg!cQ1-$e)6X5AQ1PN1qNV z?_=_1Adj5R+)7dYlRL@J}1(n(ib1XIw5EzEi9C@w$bm#kr+8z3ztfRkpG`)#M z`YOk4ygJcEWQ1@MnGCzWNiS zp^NgMOhC?9cpD(?v1>rxzH9)ObwraA8SyDx&f~oB**gR7y#Iv$ zT%9cFT(RV-;`gCLJ^YE6G5Q?s(aSCch`jGpnr`H{NE2R{w~k25Px9OzWZ=-;N|<9SN26@ zGJEeIGyru+rgABV+lODR+q5nE`S|qnrKEA?AHMs$#J|FtLfyfSN1sl(PfyNIqMuKW zj?eV@@Y4~mp^KBN<97##Khg8?(Rr}(+XG*~ZhR}hyhsrCo5=W~w7^hyquUTbAb5vZ z3Mk~Ej!~6&uj9{&?L|JnwtN?kUHOPDm&0T(*!{9NegA7iPk&+hC|0UM0BMOeyl>W> zZ*G*4waM?#uZN`qOu~(5+Ea;Y1=p)J9hzA4iNoh4P23J?TF19`M{JkZXlA$8on(c= zc{_oQY+;_?nwC6lrh^QX+jC^l*8MP`tcza1$pH4c#4LfYm%x7qjJp3W4lEeYQeg0Xe~m)`UAl8O5jWn3 z9%_HAKHJIVMflEu6tI4BO<7=JIs+Nl@SkG#eV3<+$5ZE7#Uhniq^-6*rp%8F&iF|$ z-P8}g3Iu+67ZT}m>+k~*k0ce7h)wV7g(>vJczTPdv z{kP$ljcr^(rM1u<3%=h{mf-k zOFcMliqmpL?8HY8MZL5e)lSdT>r?pj>KMEAnWS9|UwB8oAp#hc)4}FOJXo+J&qw#k zP5mv-Ef-DPX35tz{#V=NKZx_?q<%i4>D{}0#NKmTWk+-(MEt`1@x$``@x#*mvLAFu zx%HD!&9A3L#M>hL{JQ5z0Smt0;Nbu(K-9li3aPb&db|rog;APLTjPd98(E2icN;Hb zGtOm{)gT1gVoYnC9cN=Hh2=HPCS`+1Vz;nUhU~7`>Yf`A*mSl~Ha=|l2&m6R!67^U z6d3w?b-}Oo{N@y2%U+=c%iCfMNqrnyIRiTgKfRA5+VgKc1}CGVg@vn=a?aaeXg!%d zIybe#bwb}eSD~|xb*H@{um>VqPiFiwd1AxtRra? z8d0yd6&pasmnhrVJ1q>hV<4jy@p0 zjli>p%XwuCTePeksACA<*Jsw{&*{2d%8nUY?)I*Uah0?TcdMdQ3k9S=~{Ri^HgDdt3s~P2ke{ zY>s+ew#+^pR=Mw6P|iE3T^zQw*_Jb+aq9|4v7${#=_$PXE(&!n&;;quN7L?L6pyFA zJ6SKD=8m}4^`jlH6;l2(t=E`;gbenI=!ATDR_&ZZKt zror{OqC4#MG|T<(2Lxl3PC|q?UDegfm^JfX9k*t!jiI0mQX6c3UY`^`TU>d4ZlNM+T zLPzpob8Dr2ruoWl8U{LC0}<_!4m>VOHz@#T?$%yfKiR($QMjbf9& zq81!4j2E1$zZ2R+!P}Q(X6-3DQi`*{c?|QnPx76!gwODplKMVaV*)zCGQTGfY%w=r zw<*S6F&h;>WAjlg7BBpj32&jg>@n!s>-BsbIUh=L%*p#=qx_s{HQM%6e@yQWPCgzV zSse)JTeGz~9RgneR6Ns7oDQ1nK-OtB(Y`Wy)$fK@hr1Xqx9a*0HGINs(&B4}d0OaQ zCbQ^{kMW+9u&R$Tw-xuZxa{7kj~1?rj)M4D{g6Qjm(!IKWU$~q+8Six*qO|>oQacv z{_+lhyvsXzBXc6ci(wWt=AVnF!Lx!vIU^Gx^;V9rG}?A2N&V->a?d|A_|hMDJZPrj z14rcmA$o8h&QH#)E&!c)>;Vl*w$7&@?`jL;WLz4NykyTVj&Y8#5&>OLJ}qRPZXA1} zPtWK`up+4Lx5j+hyu%fa4YTEoYF6+Ko&`$6-V+M9in%S9OiAUQ%lHm-qxemF*L}<7 zMPH>HrtZQo*n3k(gWx_5D(govyl|Cd#+>8cpS(Y7iL~v!NMi#4=BSonYSMJz6Ry+g z)cGJlmyDsp1V57eJ>CM6bf%7E?h6)o%F!USs+&L<6R=(3hmlG2wMIrgKJorA( zENnnpPH8tuQ52W)j$H+Vsbzl&_AuRJK>czY&jvT0s$Ufc`Q+}YiwCQjTjV(OR&=Ax zw5^;MF)LVOJ5F#83Qyb#$jHd}=uU^oqMFyg%f@};>Dg8Iy*fRn0^ldZ;fS6QDSd=2 z$29xdYx;Ip7S$_yK7Il81E8S7gtXd03Ze1Grtc(`>iWXd{gjm_PNwW0S6k-_cg_od z2B_D(!xzPe4K_Zaa_QsvR^6Um;oq@Zi0A@@<1!t1dVNUe)oTPg6}=-tPI)1M6T74g!3Gq z9&{p5TJv1qM`fB1{r841#I5i)eKfj}vMuEZT{jxub&&97=N98Is;9~|rT-;b@jyVRun z!4>3M^#4BG6!r7CNa|HoeFh*i9nUG?YqEBZ>#{hK$ zbd+cedixmUg4^M_ZiOi2;DxvOJ$tR3mS_;MTvFWTRG??rCP%vv7-9N>iGR4Z6vWUB zjxC5>@%@6y;~i*gIrOw#s{^6!6$k?$7n&};OhtF})m(+KC9Qm~TFI!VxeC?}XReMU zg})r!b>fV0jwf@Zq1h2-2@UDd!3!Bt@3@Tm5%sPmDk<(H`fo>v8ofmawh`;L?7Vt28a+5Z z#<5hYQEi|>Xx|DyUmbk#@D$h@9SE9n0T&C5H1K*?Hn?q7mHBPnzyg3W84mOmr<)=5 z4w|z2uub&C7&$3l#X!Bk&9?;U=0PpJP;G@S99Ql}T+vLga5OO$6wZpO;nTqYZg;A7 z74C3m@1x9lQ;z7ZhfUefB*Ce7&}=K0O}KqIkW6b1Zk0vV@(YlEBfkVMl7oq#-gpAp zUJ08`X+}38_Gtp0!iDLiTrXj@O*dWGaCQ5P3ebpSJ1`U3=;ymG9XM=kJ+7b6X8G7< zuEzJLQ@;=Cb)CM0W?W$8`8afm%0xXa?vg3T;1*_^qdaHbj<)hV;?_0)TahZ2Z+H$v~K30ev zj`I8NARpx|W5+{kBHQ|v_(@uu(yuUax*3i#jQ5@X*2<&7qBEPh+0aqe-9EZky8_y6 ztbp0X(U#s)*8Lde1qzmIMX9t-=Ww}Hf$OjA0D*L}lpF&`lku+HK-`tjtp zD_8ygJl7(KEeXMv7`b1q52<}3Z8qOYT%ebx&&zU>LJc8)=&}RcmUiG`ePP^^eC5r2 z2J{D79W=+A@i}7XSk@XZm<(xrmv(h=R^w-BmyZ^DDbN-_hX@%D#1FKrFJ22gc^h%V zX_qCi-FCWgQ^w2V`^)o>;&R3kYws(Y{Wq!=(h^U{gk@=FMGO~a8ac_K^9E+kGx%da zy9kpsjXtCa)5TFVo+QohxG!K|)79JObWuDTc(jyF!(wK3jizM9Y))H_&g^d1Qa2Ng zuGtfc>wW|~vZ&~b{*-y|Ul-N)q8fi)^sDdvqHVlrsCK$45o?KiwIptLN!;u9xLJ2F zx`nPrdwA~Mo7uSHfo8+3%V+RLK8eG1HVtDn4)?F|coFYoZ=AHDZE4tXNFl<))_Z11 z7?;G$6;-+PK2y@z%f)(MPG7xZeWV5r$!0=ah!*&A-6GGrEQ}fJ8mQ(2;+4IEti>hc zcwrom=@?3#c#7yLdcE^%H}KwfDZqb!MFIZ%&gpZ5No@E2A@wlpJFLTyyqald98x0o5^@k?18FwQ@vOiC*(^*?yj_9iVy(Jzq z&tz|jALV5UPXJx3M%&(BNcUJt)J#JZ#7nWL3|>!J^3YySIU-)b^7YO5-2_A-S=`TQ zvAd`*u~Bno8d^UuFsXGX^)Ss_<9Wjz46khqm!;#iM@Ot>X>5O)En=;--gdJfJqiPv zTo7MSH_i&Pim?Y53(I2S)-9T}Pww&!;!ATpiMd(0Z@Rd4`VU1rmw92_5}GW+Mpww{ zG+le&vm`Cc_*SHmep7y=Ka1u1Ms=D&(4)!h^|#;t`y2KXkw)+x9qT0z-ywD(j$pfe zT$9dth>0427F27WvPRzq!-TBgCJ z_4e)9Q7On=(TAS@0S|pI8*2aIO3V{z+48=HTmee0az3i@?@$k8_BsyQ?Vy^C3Q3r~F<>ItTz1osC^lcXDcrVbgVlyu~2St4L@XKva zAK&!DdeVhu(}3Xid7!!e|HS=kjAYr?AO@Ybgoh3ZEF@+m7y+lhtE`)KCnGB#Rn^^j zZ`SukMn+b}bVg=&L}XRF7zvPVY}p7|LI}$v z85sd${+Rh`j1UN0!m{B9g82amBv{Y=IFHE4zIWh$UsuN2d+qn$Yp=ETdVJcRyFM)K z_}EWE4NH=sBZDrV9~=kkgXP9S$|0~bR+`4->IEtgc05l!l*V$8!l7JU0awA1 z#8d!RthZ@)1&rI|Dmb^vJly?oLDySu?(%!KXri-zZC1h-_}{>l!SzU2>_MGBRFqs} z|9N1=dyZTxLhdRh)A zy|fM|Gnbb^e4H;Gdcs|;^vUvm<$Y-oRY|_v8;3ql5cA^R!RtqD_|MPG9@GIoW_P=W z&24eNR^Q$JzJIjeCnuFs+Qee=a{9$g@(LK8$j4}*RdkTTxC0YaOX~iP@nJpdRNsiRA!~({2}zKFL#kvt1AO4dYIgEv*8M%H`KsJrQh5S=vI(hBzGyJ+er+b;PiLVRakwJFs)b-pwKwVZ< z|EzBVZ(M9il9J^XPY11OL7tZ?Ga? zLW2eJv}GJykq7|$?ngRY&eSr6>_CbNRopU0r#%NGBX)d<>K5&x|LR+WDa<2($CUs@ zOc89j;nhPfriJOC^<9nBF_P2XUUjTD(Ilsm^B+5oXGJtL-DBjKaKIkTxyb|HK052q z47-59SjzKbgMxHX!{i=SU~{a949k+a4FQVuHt z;`$$pb5tAMp|4`}e2H`6+AyiCWjx?KU3b6(SG@=+yKy{I@9 zg}?6TaT0$$n6w*{hR$p5^anY|nooxjiKy{IBy3Wtgj=GY96||yT75)RA{L*tk?0>n zuQ;C=+-N$nb{P}L78+xD>(}UZU@W=^i(3OU9?piurLzRzlr`x%agv%pVH7jmId6`Y zeZ|HQ@YYrgZicD#6lU?biRgibYGgHp&ieWEW__yWV_Ug#kI7BE#?>+Bm-H$qykcYm z!&97{uh0q02Z=?$F&c1`CU(`E`tg*rb%^nyn#b6f6!U36NmFa2t+ovurjk7og=9_= zbNpKC#XY9|oaM=kErC0qXxnIA`~}Zo+|@U|k@}~WdF9=Xhz1Q0IPm-@Tq|}Zi+WgJ z8NL-DH|`xf1vIBrtMJ!e?ja3TYgC1Umc@bo@15+ZyTTCm^PV4 zezK$^Rq6)k-1cH~G7Q_3MB>Yo)97}Q6on&C3(mKMaIj$3zJvx7^$e^6YSv`8b^uTYIFUF_0m~Z; zn2dko)t=FP+E2_L29JVMoHQ@CDsJ>a#+SEvK-2R{@YW}J{%)oN8(1IbR)?_NK5ysU z@+z6<_~lJ+P*8#a;jPXW*U=FLy%3+BC_YoIC)D3`mM}&{?QBtyCo7O4SzqbRvEr;@ z)T@j?*es0VFa|4M=ezh*0z_G6@nU&S?Jm_09JYIL$FK7hi?yo%VDaSi!k`o@2OJyr_24rHnh_B#(l@gg~dL1p8 zzr)4EP-E;oOwPr1M6o}zG264X*bM@`l+SM z9Nos_tFc-u;xi)Le&=^W>KknUxPpi2%{EOul-xyfYunl!QePMeqY*9Ejg=0D#Bxp+200OVznoJVAvIySr0oy2 z_Spg5l=I{Yt;2qY2I*H*{jU5nKTKD>?S9S&7s8QjP=u%P>{&$p^tucWsb|N* z*EQpQG*q`$$Mx2W<8Dj6e~aB+y(MOuK0T1XpD6~&3|Yc*7`nSFZvRRSV&L)!vK=Xs zpE1M3nlgL<;#$u5DjbrJ<$;HHD9&@Th?WyHzKyQn|Ixj(WBNFqA7pHvOdl81Ob^$p zlNk#Pu_APf-^j`~a)sS_Er^5W5lD~1y46}9&7fT7V^J!Np~hU~Yw0rstT#m&ine`W zj8ia&9GmI%qNTy8GLXKXJB&o-z7u8CqQ0t>ou?d*U4h5*aVV)vn;ZAf-Posuh1paR zdt?}y>^*=&UiThxX;vIx-V)JEqwjG%iBPkjWerx#hq==TP0>`2Vp&&2tu~#DN*Zx9 zxN1&0rk>3=83eg>{l?(eDf#e;7w8ptXk8imK?!*L%P}-hbO~% zYJDZqC5P?6--*iDhl_3V9y=Ju*O6?wRdKM=SuF7dshE@?uJ0?l+i+P9!uM=JAsEw> zdu@ee7lVY?cPI%L-Ab#ob_+|`o6Qbs-jXq~%RIi?1#leAG2rYO#*vx9$@+w2>?eT5 zfG?Pdy*|NxK;L>8-ZrI(wt9A)yqf`Y><0yTGa&gFE*b7dgO=>4jdm5nSDS{FU+LYjyo6R5B~hP(XxHuE#Vk%T3i_8u&_%G z-Bv5AkVAM zt35_hM^lxLopu`<^o#bQpVw`+8t0c?`%qK~3j0haEzOigrx9Z5Mz_xZI7vDKlYu>t z1WOypkiSkH=@?^kBoo7d`fa$~JHKe0saF!7quVKLKb<3ahhD@O%^D*i+6^UdC1dO6 z&XtL`)p?Hw!-Pww&z`-_#=LUm2ebKNkgeNJ6FbEbKLCR*_l(oghci1F@)Msk-(|F? zOSidh`jSF@K+f;q%t-?-pD*M;2^oJ&VVqt6YB@N*bzQ*nHmSvIo}nSQOI}S3%Q(e3 z`YO)>d{mZq>BN+BoOjOUY3#SgAr^JG^}dzYo5XTq{e34a(W|6YjI!&&3+A&G(VQ zF*dB5M!Ee&0fKEypp;_>GMd4`V9cBIA1Sfm*lROQ5GQP?-*D`T#ARfGyLW`k>N7#Q zxy;5aua96*uQO(h1#uz%EvR_y^0;~Ki1y8awPnodXO~);LOyIkoWu+~OGCCooWiUv zQn~Cj->B|w6@HQC2=ngKxd{~N>e-N|7mjX*B2QrvT)9ZW)U7E~c4fbrSY|NW8X%G3 zaeUmkrOBBr6NMeV1V#h$XO$lEeQ+B`WO(y4wc~dbocr1#XsZNoVXGStpOz-G+ z13FdsZ+`4G_D}O^zd9UWqfv2+tMw|;Uwv6g>5?16;=u-b|yvIQhsw7W^cE8w%#7Mq81>@tc z)z8VoaNUwZz6Mz~{oO_LAUv{WfTEF0vRl{^80$U|fM)NfF3Faz(O>c{HZ=nSZuxHUC^Szn{(evt{)S{1aiv%$qhQ zOz>2ZS`+03^W`KWQWH3)(TFRyY4I)EyWdO~v(fT8Qd8&2^k!t`ExmXg4aUoRdT^wE zBQC`sR#u#S_nNb3OwyCMdm%^{oo$hN8_For8~dUp<|fyXe(J4V79E44;Xk4g(bFU| zO@7PTn3*^3SsGCQzbjJVNs4G;z`_`yaXBKCguS3g<34HxV%WiDg?dK3wmzc5 zu2<_*OXsnVf@suwF&=0ce(2FrxW5*#U#8QMeTUhGGK)jJvdHh}g#7rz*CIXKz#vZF zA_s0`oMN;GFH8EjpumKk{~W$l83#Y<{^bnweK#S zPTRF@!oG}IT7vj3rsq_^GqqND+`9Z|ZJx0KDa-KbvIn?*!4Z=Q_hoc9W~^PC^#_Sm zl=0QeG^%6tYs;p;uq@4(BOi9-DQg%!eHgMQO=pvIOh<$%`V;Zl78V4bZ(h{H)9Lj! zUU6u>3R}aG0{Q2?mgBhdrwG=IQ_GEBo$ZHDH+1^%DU%U4q?O}@RGM+8O z@2s;A36D6Nkn@1z820gboNfN`7wZ3!EiV0m;{g8x9`N~O5-Cu~7B#{i%(tIhTS;A~ z_2w}}ja#=*wLN667B&LPayA;0aGpgl_%18r9H(6k;t(;l2t?8V7RP0>OW-^b?6EW8 z@csZ}8~_tCDu+wgs0-U0PH&Tb0e^Tykq{^ouu~6^_FQ&|?hfTS1mvqjVmg#YSG^1O zdk%eOl?ODLfD4`OsG``@ljT@Ah&1Gv%P_toX$F#M71?|0fD+GI(Y_!~2sbn?;z5|v z-N0Di@%&Sm-1n1YV0{yKx?T2>=2Nc#FDK^KB+D=tMGGtu@r3)4iHCW@YnA&+a&P?^ z`)7p8Vz+U8G&m>SXn+^Q@YWry+jTeyGdff#4YukqS=ll^;ACVJP?wpTuidwKQQ+|U z*5<2LXZ^RfupLt}&>?XeDufh`lN3d=u(Z&)KM-SmLR-wAUjs&+@1aMI*(jkFjXtuw2Qn5Y_WX%t3a&7X zGwJRP=qE2cFds8VcitI?7#L$9iagFhukyuAW_CW^*3I}=wmpBO?fD~Z&sVg)xVKZo zi{MU9{+*qfc|2icZ}c@Px{z@TYaKauq|no0G8%X?0$C#rrjg5I*&EajxN(s1|$eOo+87h8fgRNT?Zy6A-VauuZ|bXlJW!KuolZ)VeQvs zT1Czc{SN~2c?e2zCDSYEr#yd!hmEK%GV?SpL<~(8&F}5+h4Z_A z(9~%aA?gsTJkgZHPBo zBFYTZr+a2FHe`UJyU)6BIrc7-)vRCYyt-QawChBY;6|G^1v} zc=gm#uxsO{&gT*Hw2n<|P0d}r+-x37f>R1~e}%KgvekUQO?#|Fp6Vr%j2Y&yWdHI-y>e)~p9`&)!UaLI559_DrordvKc4Pd9(>HFtDvKEWG*OiC($GTK@qKzV zkFPllNEInX>z7Lc$HJzqiaeKPs}VWx%ANHh94oSh)*@= z$m3KqeL}r%hT12owkTwDDiZyX=K&l+oZeuMnAmqY5lp&Q@= zB=mbXS<}fk*0Ae)xl6$}@+)fc3yK6!XGA6()8QC@bN729eT_q^3N94hsOnt=*9-WKVU*6mS>1FttmnhGcjVdATj71@d!kLD_cEqZK z#i=Ywh7D`qX&snrbrYmEySVW_o>zj~@oXG8@GUvGZRmxNuUe+!!r2$M;S^T6QdGy= zdi^PN5R!A_KGJ@LgHi1b7aAB;=hz)PfKWUW2B~CW=#`||{@&|^!sJ8AA*nr?`nK+QL+ZTRHtm#zXd-8N9dV!+v*>0qh==q^B)_-L)#OgMh`dP z1GT@G{eR}TFEHuudf?2rs*oyau$=g3p7u#?_kah!xsg8KqC_aeNn5r!+ zs-J=7IcSfJGC*+*B#^Ca<;yRjmP~&7GjjZl_YR?N6z$}r*?*nZapC@3e^1Y0#o@}^ zR{u*~l^>9{ys9GLjMwVlQQZcK`B#$Z6T+UMPtHq+MRpE<4o;u;9erQym3oFZv03)B z=bO-vIw5ewWqIW_4hW5O5l;s3XgWzUws}MqV2_MgH&y;mW~f+SJCxke@ChzGi~Dpr znXo82w2iBqTiL(RhU_kCk2V&Zo11w4P$U2fDF zO+Cz5kg+sf^zKp1`n+O>f=&^(AR6iT{K{AbRxu)FXt?3i_*(Z15`**?7@=sM^am!L zVAE^XpXVY^K66!iQz9EMw@y{Rk{g2T2R6Qj?f44u5?QoNcpkiZ@C>-q%j=5_AnIGs zE$xB(tn&2oFp@;{S_{iHL~Ks`VKT*%u+7+=v}1V&W5IDuO6&Q~>`f6P^%8caK!&+5 z@qnWB7ffjIcpWKwG(}q&jcAALZGiJQDKFm<#X4lAnG~ZXcKM*p*evIU7JXzfAp^md3YO02#h*@`>bVJh<#-y%RF;y_N?jYjyc zQM(8`7qvPW{8Ci0BjvN#swLNA%KJ&jb$}8NvfL!~iLT z2RAWNmH3T-8b@HG-X^$q| zErX4g6v^}p<|OsfC(E%8Db+N#$s{jtskXU;jehwhrt!sZ_kYn9YUQo!$4F%AIH9>s zQj~0@H1aO*mKSy_@IJEz{5DCK%GaEom|I&w!b3wtA7m8MNpxr|#JqfRm}+gu3N${= z9QdaR^P1-l*Gt|dd||!l{?QIE+t^Ih;-2Pl@YdFS?xe9E;47^0{JTo#{P?e!p2eLB zEBKT$Ryr93&w9%%4fV|=`c~+?hj==>9v{34-yRerTv~J95oU+Eu@V8digb>B`#TgyHp%Psz@z7hRn_2uK`iTxJvQ=hHQH%ePrq)ciF898R901l0LSHi9mZ@YRI z{!;^KwM=_tUmE@u7Bb*!_n_nuB4F0@LNGqg*r5$o_${@2!A2JMu4x?1(f!0skvuY$ zmW7)Ii6VT}aLx_Tbc4h!v;SVFWK@B!3-8~AOFtt}mM1vxc*fQVU3!^E4BrMLv$t~b zxzWA^pD18+9gsw4;>l$S?Sn-1a2`@%BZTX`ubUcj^E=BtartrCL&qHx_VD{w(;Ad$ zot0Hkq*_fj6w5cP-P0aFcXwI`vl6IJ)foK)!EGod;PufGuxvf8WD&A@i%DhC}N- zD%Yn2(zYT^tY3{r_gh#9-_DR};V$B~WaW*O9WGedNb*FW#N?`E+)i>&c2%q{$rwnDS z?%gqoXF$*_LKEE9+$~TS)Ly4P@pcCc3UjG=l=Dpm?A2_ds63;SXTXR#E-KGdhay#W zBDe8cly$?@^ywHmxlfE#jgGVNprkODlko~D)&X*_3%ZMFf8!q664Y|&(FVrJ595*40y-RHaP8_A9R&-|JOjKs_RFQ)_&Lv@I4P zw=d|q7}7t;FVwBVeZny`S$|>kx$Gl6KLzXRk-f$j3H3=7G7k7<7@rugQP5CvbUDTU zhml%JNh2Ni>f=-gFBwy5>m$#_xY;&^RwA7PuXALcGREyIEnQDp;erQO(RtzA(s}vX zxC(a$^hx`Dzyt~+uf*t+7Q!QOnt|p$ZBSU)akTIN5)S3SIUg4880lQ5i%Isi8uJAu z?XZ(hd$yXW@(WlMacf@BO&AFT9Es|GpH=@?zyc!30pt4_VlCdajJ@nxT&cg*I6H4O zS{27v8`iW^MM~*d4=168e+D1=_)f50VOfV%m$G^p1t02XoetD_+_~tK+$Z@v;x)a~ z99S%jX;~=TSC~dLIR5j7_kIOCpe{eSqs|_p9f+w>yU}TMw=?yeop+ljKfE#Hzzsk( znLS|BPcLenPC+^jRg>LxnhFc=;ucbVi1an|i`N&VXbM=JUxUfn8{)4;Z$y9T+S?)> z8uL=9x*)jz;^39{6C7Z1LgMl=ubcU{Lo@)FH+ii^?$l%)v0HJ`@w-ujZ>Tn_kiW_qtCv z3u}+C|F;xoy#Qy>QM?*nO+9^H#yo@>6s!1n%2QZl4AMgtPe(tOQwqc=#!lppt#a9L z0cap!|C{RIX*8<&?7G|XDaP5oQC#q86grT&b4`p3@~MFF4f+%Mdkz1do}XVF)#~3x z-R=+c){;ngY)ipWKT}|&!!Ya^!#eoi9}$%ZO!F8%;eX9Z$XW2eb2#bvo7Sqjy90>y zWy)C_-wxo%#7(f9w)W|iG}B+t|R10!Ui zF8e((wBXF>JP`#+wuy`_#L{UgocEBdQ$Z(xlV^C8lyL1xS_ z9^*r(0PBck>4H7|=U@(?^-85f4(ZGC0eSuo`J*&kRZ9@mF8GeN@T==>9k)6k@Ga{1 z^!o&VlMd~15TH(X^Xx7C#qX2T%g#GY5E%T~Rv^J?j@t` z@RC<3xsLk}qzz4aQC#`m*cy#e@bvgTQ{t7Wrk`c9awXOi5ltY_!mn>(71 z%_aOhTg;=ybFVJ^$ClgO+kd(KSoi*fv1a=Cr17noCujfc<>uhexF_tc>#{p3I3~!s zRPz1UU3(wzub9s)?8_&>zIp=e>w>ei-rm`N`AQ30`o}8snl!w>!|-NG)20wa!?1KS z5Sn$tz7n&#gzAzS<;nASObYLOO^~`!&^g%8;BQzzq^b{mn?&Q90!1|>xKx=}Ud}*` zP>Th+)`eG++(NP5LN5_t$?(BzSOI}`U|aPQ4W z%D#WH{222JN2ltzR)m(M9p>29#&e?)A&xtt)4jxtwbgr|iiEpD-$HD;sr*QzMHK@H z&M{+D{uo{$H>eM(_})5T_r%28z^H-qyC#F02n{;2X)qbaU#VPi)Rr^rl~uHbzmOrX zq|yS!u_;gHnd`Z8t9Lk4>+$j)En1w|C8Pzo98<(a+SRar(+N61#csIvl4wkXS~~@9 zC$&#W~if%xKoKYvdyMa_Hjv5izCVV9Nfk&?OBF%&fumDl#r9 zX44tQn9TSR($g4td?2kI>8BHikGIU&`kBEU8KJIWL|DK$7NGRn>FIgB)@`1jMO}8E zZu}15pg2Ylxx}9*7>on=Wjvf1{iU6k0~79%#Bprqs5Tb8<#1$aVA2z(ezHKBe&WLg z{~~olvCn5272u=;D-S}D>9wcBdOE$%1-BGm1LRMO6pD=HWj=2PWOCLI12r;5?_Bs4 zoY$#7C_RhDcR?W^q$9%LWO0^0jLmPvx=y-&KSL9lAKy04e%fX!viR}r9PBxBYDVw) zV-P!0Yr@IKy@U(I*V{_~<2Ag;9~^)1s5OMBu_x~b;^|A1c34e$d4Me z_UR8%<0B+}IJs!jJf1ch7y6fSpzTHr?vkk8IBnEA4d$`o>*)L(`tU=i3#aDd{6nK1 z9iM+V!?K(v5at_mPtR+|+;-=(1Dx}*^6XLP-DOwHw~ix~FOh8N@+|uPvf1dW5ABFY z#J`W)joNqeyMBJwZJu2=unr(vxndNy^EU%=LLe~TzcvZB4EyPJ%20yB;|KlbQMYO^ zytZ2gC)!Vj^i%QyUOT2C;vA5i;`qZU%|WMqMC;O#{F;2jq~lt^e-}Zc@e$VWEa-lK zd9Pt!CuqZW8^7Ui2mYSJKpO3KL|SRlNv&Hu&3*%3>(IQ`kDxucnY%p4B*uU`DW%hV z+u6nbz~4QRLp8gN=(xpwsvYCc&UeiV`rAFHzs*jYa45ojU#~a$Z>K4~&pBOup?|SY zLGGEJ#CI>&LU9$BGV)J?*HC-(5LpEH#eUm)C$??yEpOovmqBIvH)0*aOgvG^L}Ka_ z`iy%Rr(a3gD~zy!*pT{GDdkWA$+GE4djDLoaJPOB8G{uZG zXxOHCF`aT~L$cj(5fX+0Pg}S7|qx1jtt7V`;2EU zH^!&-s!||pCQ~o%b^RrFpbHy-}z*-scamV+?ak4-qUn^=+FI*5=5U6Gud( zIf{OQVSbQW&lY-2E*WkL@bk)A^2t2B%fI-o)7dEq=SdtE%_4g}@b{s+XLaK+%t6?G zk6mb=gc{R5yPmqCY!fUgDtJ$_?>^cCvx~^TBF7o|V|Zbn-0&R;mKq1!9JpV<3h~(? zz=xpgsU(C)C~m%3%;_Nrm5TI<2m9NOJ+|IF|oq_wa_gE3Y3s~4^K z9&yVH80iW6KZTF}2AaJE?@j0!EOi3gSloz;uIom1_hlNMUa)~_{_iNWnOY!}ldASx}MNpT^^C7NK zGgUEBWf|iMIr^E8XPX-{k|iQ{yD87>9*kxn(CB6`S0ES0!7eOBrek=BQsaxgi>Pt@ zw!!pu#II<+ywmih`euF~84TjcNDp%|elD})xAV5qjf8XsKI5#hiT$m6(k>GMueo4dcDP1?j81FxP(rR(9d%|1rNj&`>_5&QG4@ZImj7vWy^rN!^3SGHgw ziePDrvHFaJiOx;MFC4?(pD>2KCyZh5AKe%*^wye#$o0#V%@3jwc8x)}<^JIB$yV)S z)Hv(5e<*@QuYD3qc;(!$F)z?v__3XN09tQOOu@%+guwEQkUCNM{H@pL;bhG&=hvpZ z%LTBdT`q+!TJWMW4(e$Es;qTun_3Umz^_!SIvtUv`g5~??rXJIuL|lc!lh7oy>%RQ zf4FFD;?q*3s^ZV{bI-+2kEleW{_ecAzQU^fzL-wtE1=O9*6?SXqaFBPVZSuv|4;pb zX?a&d=Wdsq_ExPaEf-<1CipyW+FB^XOSzg;3oxY>7Zr6GO~?(fEkG zSO?WSfhO52nh$R|4B{xBk3!gQ^Zh7abD7bn?-%?2o|)2bp0DU*;lq8&+AC}xdl%2AatS=%JT?By>Fg$-;m7eb-1X7> z+G+E6)9Xz24e>h>`47jvUr0l%)&(;1I;V)Vj|ob8v? zPt4dn-@uohP8%I}iDw!%uj)>(uWkIOwRyeypT_GI6}SC6wy`*ti-^LtpyuPS?|kF4 zH0>!TEs5u&2Tp`E6n{a+bk>Vm4z|RdG-l_d7J8-CS>E;A}8L>zR z+;m)|TzfXrNfWt7HZ6inuP7bUA`Q!0lt)px3eq7tElO9_@}j&sdZH{yr)b*+=`g?` z2;1V`3|)AM-!1>FCSz0N5!`#1<^i6FJi%6+!2pJbEWxF0UUYItm+&~LR!%qh<8a5AHq z(FJv@*_IRXDsZFtYMsU-0u++in$m)aoVi7g=d`8}D7(1LWW8tTzz3r!#mPj>m~HY&QE%Ah;{d@t+UqIpDl}?;=Rh;y2KeY z7DKB~>R-+Ey5V+FUQ-LIe6)Y2Uu)_hAUr;+%9HU*T?~X}PcNd>n=G7&o%q*#$fT~Y z$1ZfL9pPdFu{8(!!;Of+?nE#h-*_v*GlClos&8cN#gU4*X;c+viu8$rLx;U3jo#Z0 zP2W*1R+)|YYx;Sog?!(tcY}qo(?QD{1rvLuzPhHS5Y4s{-VYTQ2A`tuG>=yqXSu>{ z#61iF#!Y1la9&Y4H&Y(OvE&T&DK|{t$d;VN9J4$QSz`?EImwB~VAc-EKWzrtFHvHU_)? zD_qkL_*D%%-41EQ-*1KW?y3Gfsqkt9HIM**AlDF z!jKjxjsf+keHh&Eu;*YmkfRaOJ}}_)ZtM6Ahw&u2(ZDE9GQn{qe(Efq4EtZH&5yqq z$sY^pG>S`CMx|0x@SW%{;at@h_pVU@DM#V?A6_q~%d~2Ca1cBN+Nrw+Oap{R{Z7;@15LWT`*h;iNxW4w4tJ9LxI`gK=CHU+CL6Y$Ho5 zCK}L;^#759KB)&oY7z0s}~JxJS}aRTrkv<-znoAA$b((%otVS5#-q!L`zDfTALSSS3QansVetsiAfo=d(K&-!;e{GXr+n=xO&zA-mY3upE&Dpa*ckRy| z7yh!-K7hXMTfmnl_uUT{rFqTv_oaEA_w~}e+EKSO@AB-pG_Q4jR+@LxEbohpM@YpI zeH_YyE6wKPj&i7t>h7!UU33K97rkzw!(RguzLpKk&w zF;5cro9vk|CeDN$9kJe{7<;IzYqld`UnBwtIGRdIK)ZBFHtHE4hiH6&_Akp6J%*Up zqV%?JeNK|I1@@9?v%}Bhp)gvR_XzK^66do5V3!Yu8oTEvm(#12F zVJIr5T=|ZO>&_RoMJ2dSXH*f4K)kLqDazE8IjDc?pKp)lAuR~pv90FPQUZAoV-6$>* zF4LU;a4F=L1lBcY8OSW0E<-LEx2plo;_cq{uKB&cy`y^&SOv2m(G_^riOnW~NHVdV zi0+Q9ivfz(g`N$NvCulJxBbPaioxGaOwYSL^xj-0Q%+7J7#US{nFd}u3Rv`<0PadS zfxoZDl3g0x>HED-KDHAuI@Qk_B?Y#6b=G%$Amd&PJDF%$#y-;3Avfb=EpmxJA{zqg zIUq6b!qYpa@uwK2Wjv_fT@4G<=j3D~pME{KNsH1`8bCgs$7R#|SJ&Qme4AFG|GBiA z2MUjw4$~l)HyVzIi%i;J^pI=6C@tF-+K*7Uzn!2seYYfiuOxlHB>iPc`m2)k*Cpv+ zlg^~XirT1d@9(8qAB>K)S^T}H%N~1kMXdUHKF}li{W2b*qOb8wn{^>S9HS#xJ;=r% z3S9EiHuYg|hyQ;4%6wPky8`s^cW37x&ce=lJw#P%zW>@Q|MPI(m-6^CQ}?$oP2JzV%;xRcygjWS zV*)Sd!{rzgfTJ8ggn+Dx`h5~!=Q4oXO|%`Dqvr8f&i!$V@wFt(7L-1um}ZaV1FDYi zG&mRjwRypP{_@{b%aWR+z1joJpg~_ybZ0v;QBpVIbg`QJgYbp+ECn z<(u6qXm^VY;^^UeWIqSPB$~rjf`|AY#X9~O`^K0FDxw}#9Df~rLJ*zB#@`m+cSH^R zT8IHQeE$%2K14^C&C}zkdHh>Hwl?~LpcBhMini^&C`ifP!$8N#5#{#2a(ORcGLG{h zuK}bpiD!d(e2u|JXhyY+4#C!mLph-JFm)E&lT+-zWR&z55n*JqH^CoKe?E?EtP@VV zjpxIdY{})@5V%qK&7_sR* z2zbl!UoEE71yl^aV|@K_XP5u(y~4lWe0;Sd-(U0J{T)t!Eq`Az+_$e4?p2NKbh!-u zKIyc+{rK^t$*(#2^84G@yRU-U#rNOryne~`NjtB(-EY4A`lWooGW8s3**((-O~dk9 zHrB`0Zuir=7?%p?2?>Ex#Z)Dux zNZ-Gab|hWK{Yu6O_dfppeY0Jc?{B%@ed#BBQ@#7ruN}#ke(vq+{OY=B|MwUU#)0#( zgY6!-P8#j@WlPtH>+UvAPcPd|N~So1s6d3au@gA9@;BOxw}S86$3f@2OPUM#dlK+p znhW?#{`NY{`4#QclUi^xTGFBEyg%(WB1}Oa2Jhi_=dyi5zWt(B_aZtwkB*z2i__W< zkk-8jPKTeV;IZJOchK%}_kGZTyv|Ym3G|91BtTzm$(-WnQM7XO+WDeRPxAcQZEYnr z!a>E4T{@rMKU9~KTZ+{E<3{>ZHr4|{gam<~Sc>rPBd`euyk&p2)?%H7Bv~kCrO?$J zINj z4T}fM3J@eW#dfxP8#{Z0eEl-pz0tIXnsn1S{~V^YMzC+TwcR63=lNe!+*|8NX#-!G z{d#f3TH&UaN4k0eAos+J!VTLJpAIktj-2(jNnu-jS5JVkaz346 zqf}>c`rGg*o(%4WgT;+$T4qa?>u7U zE=n2x*BBZj`JAmwv$N@TKD3=|xr&7`eOSJ)E^A&NZl)vB6zykG#FuEl_k>IO1 zRh6xav#$`etfnW)OlYup(Nz~e6a8_tgeib~SfZxT2|*PsimMJi>XmG6tK$Q8O{Ud& zxwtXBpdvYmfGz%S;f7_t#ou4}ph7D<#Qo285_zKn<+1Uz%h4~Zw2i6m)IZzMamsV~ zQm)G_k}Jd5+LmJ^-|H1N}2J83j2n6z8nH!)m$ag_um)nQsiN7F!xnz)#NedfbK zQjPoOeIvfuy!|Jj`B_$XK%ajoc5q46M@L}9aWglZkNWaiNG+3-vI##?MH6j z>2YJBl$q#9ld@H-(=nHobJnmPL-B~(Ns(S~d7p%1sg(6eIU2WDytl^pK(gRlgwP`< z&3IO?6zwadXT}C;RSNcrfK-b15S?X<=y4ChF0o^C+#aJb-!d&&lNB)NwU?furC$1W zhHhZ|w3Q4PmZ9~rZcS}HjnVWuL^?fCqN4_pv&dky?W%ql!fTYz1vB?M<&1ND6*cMDvm^4T5b8PQ3Je zd~+37cPa|t7?&F|B;OySsOPAZCd~k^Z2ulk6e=Y!uKX^ z);6NpKj<5@)@>Xk|H)LE96nrY)U`m4a2`_(Cov|8L)jb@NN9R>^+F@i^WG?~M>W$@ z#F~?S;;3jbA7NORi1la=d9yv0Z^4mCMZ~*gdtXB1f@qTLnL*lVIst;1F2-#8`sSj|(_ryU%arGxKb}s83+m|$(jX+oFxEy)i9{0{ z2eib+_)p{~kLn0Y*V3^A5OWp+ivU3Z0TT<)SzOkY3A6m!zdzS0r?O-e$o|Df`WF@M zKgK7Oc_R0B!857q&0-G6kE})47!&VvXGkntBn?A}tHpU7N9Bogw2|7#Hde+CRac4e z&ZN-{IcbPWs$?*2(_q8(6UqrZxxHK)RlzNqC;hBm&!@{-`8hNFBpuLRl1xxgDGpZC zU#Di{Q9XcjrgNZ%ys0joo4OHN+b98eAWWT97f(2vvf!Na`WLX3j?{uS1nbGpzY^`M z(sBkX`vpqjt)wN>LJ&|FB3di!?<82=XW9Hxm+(euiV9-rRUDWB)~e(5hZN2+eP?IX z#yZ0bt~0HNRR`N_BTrtkzCUivpm%x$xw`2bu?Oo0s+o{1`(#(E3lF!Ug79r(&>IG7 zKx0l69F6ET1I6F4hH5_hRr#Ld9(CXrpaJ1kKtkCpG{ZSmncN#FMPhxMRrS*g7>NmI z@(ALjt3dof>*73npWiv=;EBaz2kW(+yS@0fF#daa0cbASjY!~KX6XO?%GAtUh5p6}a!l=Z_a zV`0yqz$0>Ph?VJy2v$E`j^V1^4r@KOGu~F(%7ZPQY&70Ao~mZKP8(UoDB#uIlWW*aH9` z)7`{;fMLRn;yUkBK5z%R-SwO91FQr1xcLzF$w7KG*Ls<^JAk_o?m-IDkuJ+K;bb_3fwT&-fq(l5aloK43)lc|2qc^L?vHbAr?p-z<&_ zGa7PhEcAkMnFkP2^v=T;ZzqE@hOi<^1=~>I1@)A#OL6~1rC;neyy%>KQcBt}XI3Ka zOeSa`C)E%SIv4r@a80IcouP3sh&Os8j+)v_7I%1qW4E+F=r9)V@lL1SJ++m>eX+7X z=FsDHwr_^g|er< zb>`__yl{hKMA@)uNg z6s5!K)U#z53R#=scX5&hwW9ZpcBgrM=7tjsI*oR-#NBgAI&(MRRa%HE0cBPjAmxw zsAdMPZl!1ZPV)#1HpDYuKOT z+P7=11LDf*zh&4u+6r6kR|mKNdmr)lYv=dZ&hKyJcg44z!K+$Az}8x9umoM}P|)_Q zAAM(RfL&eyeZ%|bW!O1}()4@J{yq!O-nS%v@cfqJU3KDdx}01G-w($axix5vW<&TB zG!`_x;4Gdzz-RF8VKPM9-WKe1#2FvZfA(Y$G&(Jgr80{rs$<#dbc5fw&MD>!MjuA_ z@%$V3?`!z)HT?IA&sm%%_$F%387#}qU4D#4BgWEp03I!YxgtYP)_?Gl!cCm9=M0My zsROgBY#Ox(bdyk%hapG4p2vgXl*C+Hp^=c>3jE7^lL(UsJe@JI!vD6yF`%>I#8%de z=Y6yRvfn&blhBXnbG$M5JA}>12huU!DxC*^sAhXO@#ZvEhZpmXwS>R?QqO!F2TY&x zuF+|Q@5Ew5fylgmi-$a#-g)0Q!)tn{=CqqTm@USS^C_v-K5Dy<%yjaC+yuhzHKKj2 z6iNI;rnal)ZljlIq5C`Cj$P z;bhN%T^Yp>s#s7lZ`#ay(3K~;ME;y)G7E5sgui(WI~z57gDi~^8cUr|$HIs-O-$>Qqp zuPFLnjbfd?q2KQ-C1do;ZJ75*GbVtE1ZIt~T{&8A2?mD#Q}>;-!~M;sF%ZN{6F;}P z^&_F-%2SBOHH2E7LkTn{tO@8RrMhQfkx3oo!aS&l}}tNe%hWc8&4 z7t51kAh@d9p{J~{;D3!X{I@lnM9cRSq~xA{;QLvG9izA*`+MkI0AtyIGtmF=Oqq5I z1et@Rx4gbe!@&?kfvRmXzo|vQdF#2es;R(#Mrd%+$uR{^Ag zG9{EKjhBmr;;=m1l$43EhtI2T=65M6yx7}rV_?sG{?%Mwzu#Uo&o>5MY%Yf`ph?2B z>zw~w%phGe{}Nn<7aT}?A(i08bP0Fvgx}SZiW_@Mk-WKQOY0C~g>dUZQ9NRES5*qj z+gq}NJ_UbQWn?~n4@^S5Fh3y={z}+T@jqx_YZexN(tZfdeh6tl@HfU*1%d>9zZn}y zk(bbZd+%ZG-V!%U*lxVNJgs%l+fn^p?d)wMdVhY}t-Wm&>7L2vmpZ9_N*Z#=VNUN{ zUR<31V9)0fuZ5?V&XJvUU-ng0D&rFT`jXF` ziCX6zq%A;*@hwYH2b)zM9N!f3xip55n_T2$4V2v^AX3VeAtUhts`FcqJ12%Z|F8bSU*n6E%&T z%VglRyzULJyd=8ivv8(7^8L6s(`+3!!>h-EHxwPG0=7!&j(1`3?)SbmpP-$5`JT?W zr*n@2RXRa;U`f7v59!e?EMw2NO_Tf7g6H!H7w6Nnbczw0I%FAc6;%8s3)wQ?kZeAi zB_b=O^%uhz(oW@Nh|Vx&OosFn`+POLPX^V3ITjsm`wgpEHLLBW$M?nQnpWlOtFSKE z89`B9nRFBaR!LxE)8f%x{E%X*O~YHYDl2JxqVPpgmHQ}_H)8i$ojjnZj+p5DpwmFW zf+_Ms(*cEp?!gpKufl|Va;0Wop_Xy<>E~Q5c#KjmmC}oJ#MEa*v77DVO8+poK7Epx z4`u&3oL4+glkm7J4v}=71^1ueS~|(rf{v(HGH`Zirc`Lf`C=)PCO%wv=T}7&o+T%w z#()=cb%2*c0M~-m-GlF<9nX`?#!dzKa&fW2NI^a`$PAU!|1Ca+mLJVvgWPOq;c~oi zra%$Ax%RVliw~pm^j19b%7Tc&f$T`7o6}0hW}smwV4NC4vWs>Qrsf)3*dZOK|O7i z)kBX;tUo$PUQY@tj<8ZQ+X@ z9K>6eSr?{T9A(O@w!!;O<5ZoXT*Z@D`>$TTGTs9y#7SPqko1z(*$si1m$|Qez2@wh zCRr|)D1(Dxk7INhnz3uU8P2$u1?lbNmgP++wKM8}cs|44{)hr3$fUo=aDC&uFGAM2 zHcYRutWn*1e^n{6zY*mM;hlAUQL6*}X0cx@n~oD+MYNacE3XI77rj!`W|3EN-7ZcU zjtxaFp=H}-p)Jji^<%q!WoA8PZ`iu0J-nk>Rh9f{n?gR1fIE`Zfu;wdmdSwbcm-2d zg(7s?m8n^Ye{oh7p6n-$Vum9`LJ?9WpQl#03`5qt=H%t-!D%l746JYYbd=lyE4#p# zICl(U%1Cc_b$-+~o&%@z3BLFZtSGbM!ZB8u-jP9qAT*Sl$-9ZlMGSn#%Q40_H!A3U z`zqIx@Gba4!u(W0T}9shjP61Kym-qbG%R>Z-@j2$zdG8*P};_KVNu>}nr71XR+QN@ zWeWR)rb@pCU=#;Nxaz+qD+IQP9Y_4QI>?Sk*GQd60+jN9tHw-ERp!#6e!`frtNkUM z_%ZnfLq9AyR8BH*d&O{j7S3r~9NH{U6P+kY7r%RZX!TX#!m=s8yWSDb8{0dmp*Hpj zV+*aG>ttf5+F5^~SmVu6GC4%Opy!qH{yL@9 zzFyajUxupbr{S!MP*p~SZe49Wqe4Yg!&L=6TEvuRN0G_N(zI#g1s9HCjWTlJ>E>Hq z4)?%DYSw-wJ~i~AJu`GR&AD=d7>F9-h!mxG){I>}Z47g=ft{pfEj+hbElYP#ID7v` zxF-&fRyh={nDDRAQe=QZS>WHlJSf1~XH&CXyf;wqb+}}%joNnKnSioQ_gEdWV3}Un zakA|vch$X9FEbI-U0(}O+{7Jf5&tmo$+e1Go?k9W{yw>O%V%JY-*-ZE43utrK%Ng9 z<^Hfg@d*2)P!>iwl{`qMy<1exx<;=ds4V)tk{z?=+kQ;?v)B9kuLkST;nT@vvL*DL z`JJQp50u^^9V3E6Vy8MGzTN$Pq$tC}^q{Y$>%_2{rjBHmNfRNX`MqWQ`}>P6yF1TU z_<9c9&H|cYN&++g8po+gA<@N9(JgZ;e);QjB&xZ0gp><56aN$Ms*burIo{v(g-##m2_Yt!( zc0bBK^Y?d+#61|-koSb`Su;ylOF#VbHdhPg@)I`gQwJ$U7Y1Tzv!N=!KdLOxK@E+( zvv%*EI~PA`n%Y#9UX0?G$M=qs-@vE!bn35ZO{{E2Hy6Wsukj@?yuq!=pt4F2 z$HAKUHx(A$7{)l)jtXQ3rF|KfSW(h7xR|A{U+wPik*7r~-*RQYmIk-pITX&j&r*hW zZ8ZJe!Y-D6Q9qHmXFhhXU!C2}&E}GCr$3MqK}tb8i{TcK=_IWkVSG&Z&S80iAzq(@ zG{Lus48=*beKQnI8cN1j`x;VKx(}}?AVW%Mqc@$V_8tH6a+Bmbb_?p;e)dYS+@3o& zcWrEH!E^{5%gqN4qgJp#3d#|qCL4W4iIFSUw89wICL+HV1da#6Zw{sX*E)$dV%@Sw zVKWmBBy-~oBW+b2xYQ;6ay439AUp6;oFKH+aCbo zzukhso_7$mm@_9W}>Gh~UF7Cw9Gl+BB_B*4iRTu@s z-i=Q#gH~h}y@LogB-x+FQDO5zGBBmr3!&8rTh4EZlCzjn(w#GfQejliLcErRTiruO zeQFa+hWzsWh-LHXT0Kh3j=O3+;=>KiU7t-aE^W%|BOJNvb;`Txg;ltBbP)z)K?*AE zRv~9RG`?{>Y;620&+u^*@qeKfJ-^OT7+f|ZvM(%!@JxOcfd|hp_AM?!_03q!(lYv3 z2;e+pP06y>!FiruRx&8T-xij&29YlvFH;KFW$ja0lhA)Fa&%0?+e4#O3MdY+A;n7- zU1%q_;*>?L$M4=>Smh2>68o+H&Sd(Qj&Zzf3zsPXxbV;^#CoF}%aDx`(?c>d41P=X zVBQ8KEuFeOe}YntJI2D-N+(}6m$NnaxIjhOL(j#h&XCdWUZU#uPaYm|DK@UBysyPH zA_B>civ)nLDyy`$Y&XXc4As!x5^LfOrkG4@5a~{pyRPSr)C6!f9W{r1o<5oyTAo6A zP#^f{;CSKWyg)XO&mOIY>|d3a;1(Rlp;lqoaDUGn7yx`iG_1P4vc)Hf*%uC$RcOq? z()JJx{55u$*s04uo48Mma<&}c(&j2YzQT=#6h*ban2$>CFrwZ|3uWJr%g0(;1-}0I z(@;7Ke}*|I?MB7!8`w;PWeDn88 zIUG}r_A=r-9eDF}?8phKN+p!!17CfYOl<60ph&Hl%t^C|#->>WGlDvO_|bsf3!f?zF>V-H8TxxJqzc=ZXwd?^NG$_G?3u|en zc#X%+gC-Volgu7JK1cr&gG1~NJ~wU*ejEB@?p(B*!gLnucUhj4vwuquf%tB@v;Q&E zzIK4FxYZrV%$s?pEUwy+UN#L&tJecAMns z#}UI`&B?LEFJTrm)ib!F%}HB;7#9YTfuL6bWy;-eqo6AzdWQ;T!8 zwAb&!@EZ8SKM=)#d+6Ju6E%(7nmuyH>8E566`z^c=F9-?*1ur`AehDLYn)ATkrJNQ zFG8~Nb>ZK4C>?h0^>s4GD%lGY8(_1sD@v7Ma+cZi?iDmXnSP7A=W01$+|Y{#or!W< z=75C!?28wM>JTJqhXnryR!b-4e-t^V5w7pf2rhdJ=g@uwWT!%~_%0P=?@ws(I{=J0*C@YsyXv!h6^)QUm zD#j{awhj_3JadN|8LEXIgz-6%b6&`~GVwbn%W-~eJZGp$QZ^U!{4k&1k*5-T*(P^evqTdsZaY6R zxqN^fzhW~x`Toh8k^AzU1973dvg{$3F4Bp~*A>tDTHv7Yu6j(((!%Pi^l9gat1RIi z6|Og2h=FebxI0g4sqe@>oL4=*Bp&=>nJ&g6M{@3`N1&x+1-NvzOl4J-Y-K|62tB(5 zmWLu(GB9SWQXYjV2U*twf$-*h*$IV31_Zj4sQYVo#Y(_=5BeP8o{tvzCb{4kJ>ux( zBiq3cj6DdL%xQ2OBJqapl;AwzNSDCr?D%zs;g5((q5(Q9*;odQSfb^OKLZI?9${+g zr^%Ovk=iM7i-O0~*H0C1|6o7HNfvMTb`g584p!1@E-W0Jg918+b+s#EvqRnpg1}gR zdi|dH0Ut`v;P;>_&eB7I&FWY2DezJYM_gL9pG6Eukq=dP7#5-qpo8qC*zi}B`4wer9 z^Y5G+)S7d6FG$%$=EE-uc|Q z@Gcg|C)T@wcNP>ra~IfiCZ`||Q-t4{u&RDuP8XScH)s7hVeBdr!gxN9A3R>nYa58? zY&xX)Z~x3m67KQ$c~L(_KiGLgC)(`phOEEj!d+c@&35|nDEZ~>VCjP_zgx&pl+Imm zR>c(Kz`*uJBbxlh$`XHZV6k*b{b~Ou8T)u-McoYTR-36e+vC;smiM-xUg_y0^%eBc zoBQc}200(Cus4Zn-`&{nP_Qf!YZKzB=Ig>hr z^MQM0^(QVEiQ@j#%3@z4o}fzMI@(_4E~v^Q@UAloaX*1%4j`xg4NM+(ZpdMEvbqoY zbZ2T!(IIWMhYmR4#uQ^HcfMCbmeAj1!(CQ+5ed2W-D9?h1|)RuAKT}%sReYlwRyz6 zVs9AiiI=2hbmQ{#h4}N$%8ML5s>$j}Nh>*C#1L1dQ`9CzIbja<*Sf{fEFTK`B#-9oi%5gV9Iy@>5YMP z;ppS*6YX#a9R2NZzE}ckHp~deYYN}}yj>}pr`4nI>~Xbh_eKIrPp{Ul#|~yUG;GM) z`yRC*xia4IS-z_rx0iRRSPt&&KoYyc)S^CB@s=$HuB<;U?-;xEgsh@&$)ao3p~3xb z6rFu-h=-3`XnSL4KQD{PSoV1GhLT&h^o~UlMeZie^UGMFxkW+aXE=oce^C^*lri{6{v{Z?N1w^`Plqsh(0zdc*$3VQbYJHIWEjpFtJ%FxHhbi~l0YcRaJ%IpPkvdR4j{gE)OQt+na z+7^sP9OlFAJ0F$ev-?<^=B2ivtiB(a!^5)QM<$|}=VNR9EZ?U#`YRnIpsx^r2eUBW zJdc{N^cmk|whF&pL(&w{R4&8{nTJdtO>dsaUKiIPSE1yJm`wY6u8vYYIzc*68}Ngo zeWI4xYAea-Na7w9tgqut!45P@4>x8$o>}Rt!KrVxtA@;6%kBWkDl1e{=rZG=1+G%p zFNXt-zUM_`@CYwcP^j?Dc9D!{rG|I*Z0CCXg!Z|>R?+(gzsE-Srn#~YMSF@$^IeDP zMF*Y_m&_UTWs@Zk1p>yRc7dnve+sG8AV%*AP)YH7%u;j$Tu8^)Y$cB`ZigIsp}emQ z;cB!MzbV)KHKC@p^g#h1>j4zVvPn)85}U~)f-Pnlm9iELPh zQoX7oJVHBI2&UY76Jvmay_cDv_IU`sO!|wWH%EUBbZEHy$^;FiCDxKbWD6C^9m@N( zSk6#l&6c)kKBE3ypIFv0T`rur0dC?kM#^A0d(0{`RJc&4XjGh8T$`7BWB>}zW3Da| zH<#7Jvgm9r+1qY1AcBS8=8{n+Ut}?IS7&87hTko|PqR=Z{HD>%W^uSEsxh8Xb~7`6 zuiN}k>GJ5tY88Xv+@a^5gJN5f+#PGz?REey+*=!d{ z?^s6nCZju>SM5n%ykZ4X`0y|&1$E`uccg(TIX{-^On7qkd2&^SW$^{whV#!=4BPAh7vM4SL}NIiyqnFS7;>Gv&MQ!GPnYz;rI*bm z?CJiX9+N8@$jC9hd05V>iyJr|H`CFeWG*~-QoJuNQ9jp$5gao#AWqj>8&m?LMSW!L z5f7nm3C#}-gmhk>QicYTE0up!%)RpUN9a$Q_Z^8ZU^%u5?rO0Y@ZXbA2$`Zns95oB zXZ4AsuL#?0f4_p)GT70haWIyqu&5kE?>^ilM-Qlj{yan5U$hTAQvt_~0tRZ%>$yJW z@=RTT>E&t5uIENibYfMQZm8&NJ#3r8{6vvAKC=dbsXW~1V5EX{!92z397WZ|#ezwE z8p)m!H{CxyF24i>s3w!{;1)+#_7iJdQj}*;ga6J@u-7SG;k@{c z$8DS06VIH7H27s=%M|jMerzEW3#F)C(oZP-oDDXV5f-_0SSBnH*O}p~2`b`y>U&6Nn;6**3&2@j>0)_XQL{vK1keDGy2SA zIbUuqpq@@f@pY#EIXE@TxdPa5 zljrbx){X#>;(R%SGdrJtN+y39wvXUkL>RK!9w_HNG6z`E@08q`$D`_OJ{$)H>1omr zYpNd-#`MZ>i6->-h{{ zTBsTF+qyux*1~h`XRNWHPk7mC)D7|&DE3_&{f&EU2P5-^-R=*xew$>XVW$A{duS3B zUl03Q35n96Vs^olFA`wSuj2G!(&yjUeWVW-62C)XX4BC~f0NA+?Gvn;Cy1U7W4N%x zm@SebG^Y=l3CB0-SDo5-2jQpT2=4=o^oukSz5b&cnMI6Yf*=Vt#pdk!;UUeRB+%Ga zm%kePYJ=av_{k2{3>N5k{25g=O0MJngWk@ZCL2Q%1rGhjMHm5&zj-7Wx1Hj}Q5r=x zp(Orhw?;fE5xEi)Nu^AT^|FB)-n1>I^Tl@9y#aJ`htFUAd7R!*mwC^H=!1H`9i9yD zDU~Y{{ejoC2{E`VoDaBtu*dv>rb4CuD2XZJUpksD4FB>q_6qmMaBv^q-2gn?&j^KP z5co=k6Il^BZgHE`WQl3U{x8^|KmbjhQ#9v<>GWWyQ3l$!KZ6YMrj+{rN#el^HfF=w z4S{f9s>`RZ9N#cnM>@je&98xk3T!NQ17|Tu1|;C4++U0WFAj#B$rmuUFYM;7l)@n0 zJRKz#?mtpl6PHYIh6t4esL(f9l5muQ)|hCiw1d5T3EGH(6=*Ow@dzJ(X&2BOJsaV( ziP@F3S=GOl=CLhRclWt>I z@;9_#d5*RFMF^-b_ZEIc+y}DvKX6aYVYnNTYana;Eq7>1Sqq2v-D!yN4pBV0cHd|; zyq;g|Uz+k}&CFxb6dfE>#WC;S6_D;%yr=kandT=1L|PCV>3 z&+DCT6MbPI0=QD53g`wrECjE%cIiVp|9lYApOC$aDSHQ7<#c*IN^ap!6Z7tLM|>Vdc(Y$Pk%=0!NQWy za9Z%{6?!BALavH!ZeBePTJZ!Q1J2J|VRE1JmkWB?hW6;y5YC*_u>?BS)pVzG>CN=6 zDh({t_&V7f(^xx@9=0ew7%a!L>JpPOm zr6VyY5f)*p#1N#Li{}jI<{RH0K#FQT?c|!`T~b>>=yKO^uo5$_KU=1oBLi<>be_e5 zUj5=SrMRMFVrZ67z^+R>q13Sb;#}LJ=|l-ty7~FJ)J>u>a@b+Km_7^9C>BYCn>mAr zn{W#gah5_kr10SeciQR@%|A~t&fsPb``u39kjl9xnsl>I>(b@Z1C%|bLf_}{-R7L~ zzDpi@(|9hP803)iK2jlYkj9@jKVjc%-vuMV2b(+9Z?S?pG91`#MHK7aW4DVJw?L}* zF+eJyu4l-g0KpEo-!%HaNeZdiZYnNoD~+B6@S`qloG*PQ!jYVgcB2?5h4jy|xV7fF@&(Jp*&g?k=HQ z0MqB-5tU4tPu{$%N5&?8;Gqr_XDV!+>x z0Z@@)fY+DX#^3z01&lfT-%1{0$1n%@;l&BF>VH`_qM*J!%oqE&Kyk(M>zge}jWiGp zi6_1yUI@xDb6PwF0P{D0{L9xkhQIma4&m~@32fYNHwNvsY05O2595*iiELc=ee?zk z|2J@7cPN%7M===>7wS_NRfbSD3xCOpLG#5qsS(|~zcna0D(Ycel~(gybd7@F2ut!C zk$G{us45TZwaG3;Nb-RK3ge%w&W=pX923jOTNPwtFT4>Z(wegNIBEa+SvJKH2R3IRR=&zgo}Ih z!7;~w$*;pzLcajj^WWb56TwaS`;YBz2jTu$m%qo|HvjGL-}*7YG=nc*L1QqFsYcIX zGm$9@g+wlaR7x_NC$vS7P8m*77Zbfrr8mQ?g?ytV9`h*VPQbNAgCUF$Wq`;SVC+}r zcbHM&rzspWK3(0z9*C}nSJQ}X9$OvtQHXDSKz$M;y6jk4Zl{fY=!|a|N^4?bCau-p zElAtTrJdDJa%tUE=QWBA@yaNQ+=Owz>zwlYjnl7dnM!`y);=FCQ)9f5 zd5<#r{SoO%WFDutD^6Spvq;Xa%Ej$aIQt}S^H?ig?q9BSz!X}b*w z=NT?2?7~Rp7@w>x!r!MT8YNi)@@lp%=TX$DS3+IV1ES2Yc7=n?!QR$+cFvoKTWxR$ ze_RC*upF7weedWn;Ywf@Zq*~o#gxw_F#2-ci}C)M|ye%tIkiH$`SJRhk_F3 zAUdC+k@i?t)`tB#nNOV<3zs6VyJ(63KSvLS`*`6}4%-#K|JlrvJ{Jwo-v@k;VSl6U z#|R^|W@3o=&Y~&Qgv4FKGVN@ce8&h5?mq?Oawl#5&c@-92GPrszK6iEWjLVPk9kw& z^w)!QJRo_e%5x;X4ukUa38MIE9eu-nWK#~YS&CV zpMLfkN;Vgi>SkA5A^N>=`nGb937l4eq3ooF8GF^vZ( zC&rj5i^NZ(>wrUx>2ouYVtI#-a4ijjYqZ9qjvN7ZNts4ohg8yc3kViBI3VzaPjX; z`MbNzfA@AVCVJ5Zi#SnIUy~JgyY?P@ih+yi13#K`_F;%l9}A2%nfS#dC9#e4?fE8 zm6ZpAfaKX!OuB?vXyDW!b>ILZ*~HiYrg?*KzG-#>osSjm$Aba8$<4M+5{K1&H$lau z>d>4O8R^+n)U%Vc#+8e|46N81MJW=62ps~Pp zt;u6A*=v$^z^7z6i(EZP)g;Jfp!78w4ua*9V>eBv6Ov@36xRH}c6eh)+8(eU^MdpM zutCHliDcKIEEji^DN5URJiL!+FB4QWnabO*pS}iv$B4zg!R`-f%dWyt_|htJYmtTC z+|5zrXEJ4<;>P`PC7>L-FX&f9_QE)S=upmA{0lJO6vefGZ;e24b0^axyb0E-@9d(n z%YHwZQ^*C#9v5~G>LOWcBy^Ocrzy92Cd1aLMoKgSj8BBV(OIuRCJnVts&DWI zZ!>mZu&BIJk_M%+l&)@x)J`?OVuqOIAFLI zi~H&u_>ADk_Tp+B8rdY%Qbl#BE}^A69Pj;v{H=^3*F5Tgk$(LI_)0X=Hrq-iF!FjK zaB|@kf+&nEX%cSkJuiVYuqWi`$}Sf2y&6&%9S8w>q;(39+edGiD?u?Y79C7cvHgqJ zq`1KOH%UCgcF0CAje*#FAXws2W;m%zu~U=Y-iF5cHJF(T(Qv|BwBBtyeR&*Si2$JP z)hElNWq41S5`|@k6JQ5WX*#4ez#9zv(=SW z|Nr*yzxeV0^*8>RfBZN9@L&4jKlFe2{Xg?}|620*YtIk9`%nG#H~-jw{Ga;YE&j>> z$?UJSM*m@~L;65G#ozgR9}c>`&j0G)=>7G7_CNpo+BYQY-}?8u|Jc9&Fa8(t_rL!8 zfBWzLJO9<@f9Ajb&;2X^oqu}k|M}m>w7=H-FZ}!e(d2(U`%k|5A078^{?)(n|M=hZ ze)aeM$N#axum1UeZtw4J{h$7gzx{9iFDn1b|HQxb-@o}+{C(oEhs=h%`q?1(F)THB62zp9L zXGS+w^H}I(zmcVvG-3x~>PE!yMtAt&ZQyLWwMBWY9SHlVR9z%G_^N_)%QMP!6-=lt zhV%p-q~m7oZS~_1!6qm2xsZ)mo>HhOYWHw+on6`HR9;d%j7j| z#rG-?XK&C*S7O(YwLoo2kqe95mo$U~o6z&EyAM)8Si?Tm<-9jck~?Vu=~ITqO@ew5 z%3+D4%<*!x7|uoy6?gw+UNa0Gsdcf!5Ql(_$0=V;728%b(^kdZb9l-~!yxBgL+I(^ z{#Lv*TRd(Qb5)!=-0pFwE4eNhh0qzUq9r9a}!W_f3OWqD*u@U(>jnXNS_T>PMQ!0Pnb81ZDekirt6RB>1+0K zjU{t%5l>`P8uCGMO%~Z$h%IAl{_UL0`u4a6%XxnHf3*$$U7w0m5Z;K#o^g;$~PJPDF=$y1tcM zd%%sur9%;}x2bWiNlipM*c#Au(mW>gbCSwV7&NodLm0*qbx80NDv=6s6F$q%>`BWZLy>`*rsMq2e<5m1(X;wf+YxQ-j z=mDH{W%$%+`&*XY>L+mL4|vhZzucrcNYE)g={BJfFh(Cma%z%{eEP|*v3>s;PLM5s zh<3L!eao*kksvI?k+@?CKNS|Vfn(Kq(Q`qvMc$K(n|MK{p~?LWyGu&KocDM?9B%&`C{JCSRw=rZQ6@#E$Iubj472GZP0TcB+pxkL6KcuPGtTu(BJVJ!v$k28d)NXVxDg`(M547wD)dWN0Xe+lFy%^@Z znK{?J?d+_eV2onFf|^90y$pRyJ^Pk`Nh0_@%sVE3N@`|=5}ubu$=`U$XK zKLPfeC%}IDgmdwPb=!Nwy6w@r?J+ExQWFKH`s1i2hmRsyx-+eBZ`=DsWb+gz93!Lw z+q@OtEUyzmkv2BAhp&)Duea;lSz56OKaPPHkq8|qq9QiI5NwRU^ecDI0josLU*(R| z>lt-(Gc>BH0r+XmgUeb7rDO7WNbgZx_hsh@g@+STFRPUEmk5V11*o=4#;$;z&Ha?A z4^7>iDovfLC8Q#}#hgVNP=;jloXc-vnn9F6!Tp8e3Zxv3%s}4R?K`@>p+lb0eZc}O z>FD2x_#!jMs*_@`s{$HOaK1<)1X^;DBNfi=#==#_#LHBjR8R@IK zxs}l9%DVf*=y1b1m`@+V`uW8VC_TUz!&Pv^Ag%#-*=e-bf$MbJm-ViNTm_4qwgpr; z#}c2cpO-V1ABlF26i~^C1|5LI#v)59JJXND>MXilSzX4Np^Aqe>)rOL;?A?~ zX`T*m75df{MYf#m;4xm_uUpZ0E4?^y!r88`J)+Y?0~28Az6{aGUCMTZPSJ@wwBKQ^ac~u-6JbA=rItJXU3H1ECC3 zz0>#jR?oKW2;FgaxA0aB>nQOcYN|PqU_h38*80}0YehYelt0DWcvbmlJVdy2krF7R zLCn5lkuvG2S60XZ*=ULP@@RVP>}(WrL=-)ttp8>aiRy}mgR+7pymx_o!5@Rli0nJP zUyleML?~ebj;rCspHb+es9Tlwoi(_OY{B%6iXVvL zLv}p!K;ZjGRT~L#t%c*}Y&SRjfo`DR>(&?_Js>*u=W{kM!L_TCuk&)0oeVU=XK> zB$p%703WgAP)T7=@M!hN&$)UR?D~9*#&wrU=?ik{=p*l4k}qg_APA1 zySufxQk`?T@91bpjb9sa=vk9@#)f@lZ>tcO&Fud1$tvs z|KZQja~xqk^;l)y!sPd(F}S+s$2B6jwN?wlfCCn7h4KVd-}B>QP0#BJ_Q_2J}2(Ou*+ zSS#5dkqeWM<5y?&Xnc>+AgTph zScj;VOs{Ci_Q_{z28Vm_r@F7R6wvB5z|DybJh~5TfA};E2dn$zoS8D3tgJs=)a_BG zOv3=!*+kNiBXW7~=uPuzgFBwA@8iB`j3|s^W?WX(f5|}R=o=zyJ}-x}a5!)SOJv^| z@!nGI)4jY(_Jg?f^l_0vSHj5{i>Cq}NWxr*f|o2Tm-E(1qTS9}<;Ynmx7JEfUN09h zH7nfE=ZnXwbX}AT=-oa0W+rUemW6f(n(0ukjOF&S#UFbEG|W+v&OnjeMR`(}FD_z& zw~XS5^gN?O;`D{K1uBTaJ~14dj2?%=HwRv?w$(x!PIQ%g;*58w;hf<3MreeX7QZK( zH6wqNu0Bd;AEJXnMzxN;P2oLn=}De8eV_Jey!oQE+FZSML*a7@hcMd$f@7X4ml>yv z%=nxKWBXF9uN_#~7S$HH!6#Ku(|N>Ed(onORru_)CC*dGt^2)(YW3-xT;E!qw^6Is z`L0q3lY8)X!1MYIg~cjs(3&*EhS)T;bB0#V>!YeXZgTC$aigb!5M$^dg;Jqc0s9Gc z$M%b15xZvKy(Fm-#W&e%y)>@dOOm352l8#Y$@PoNu#4tSAs?Vh4GE3uWb|Oa*qt7I z*GaGXV#*dFZPBcttQjYg3lVf1Nr_8T3UdrRDN#5WbWwsQ8oBWC0QhdoWC2i7&ME3= z7v`Wibwy=H?WG`X&#Bsn^V9ZhLq3?7#86g_Rn#)d$sS9$^f*M%` z&@#8_Y5>zuHeyke&y{0d0h$^73drm%Jlg(RpqY7jw0$!{DD!K_#=`rAyYFyx!#E_Aif5#1&B|}H@l69l@!)007zg39NC2% zu>*@sn13O8BXWW4T-2oDsSN2<-cGG!GJ;0$lm`NjZwe#gMMujm{HGEO!;R{z(csGz z{|>&K@t-;W>GPij{MmiQGL_#|4Y`MeBT#oiAhs660eW0hOtoe4(U!$JTOnTG(!nA8 z-5+>j@t61d{>vO3e)9wzprdaK8;z!#ttmG{Nf8M=*YIjU!WTkD;xbkI-I9g~3Skjv zrH($^>PV%uiOFM?>N`EtN(_&H{!GH=+56gQ^Ozn*NT_3Da*@i!CE6H>9vC);f{6wC z>7SAc^=9k*xY2q}Tsg73SJo3RE}ioQe5JFekC@wst4IJD;|9t@_Fh@gSL!=)o{ zH{=cQ;{5cqd1idjpe!2A#fB!kvv{}rY2 zYYkbTJNq&Zt=^kt|LQm%9XvT>;lb0Kb<`F%b$s9=auExVlJS^wMHAP*Q3q9S{Ragu zw16^@bE9yL$)KdR)oqsbkK0wd;zAc*+6g`DGPToUY{PfYA{k@MTi2!z?+|;Ai;L&H z#)b3#K_;H08@k1hHCbNo`9+D?Fy+8T=yjl<=!j@c(dgFu;zUWmLmz*SDQGV zd8FY=zP;%LHqU|<2p^E~Npw-k_lqsoRBSj6t;RV%(xSX4vyUFxX9p}&koUZ@b0Rob zLgTRQ8XJVIx(@tyobxz*>^zd+($n)!V`Tv!{$#YIBW&UWtyn8M#ei?;xKG$+uw5~; zDP%7>{)8-0$Z(iqt(T{-Acp3y=>gW%$(s>CKU7q znsti%P8-5g>{iWf^N4@M$MKyzuj=a%GCW_0ZhF>VBBr_i5+9q(u;9+~T_lcYBMMmQ z_yh3v$VN)FWa|KIgI&P9w34si%@lu}63h2fg5n{5&vx9$%;I@Uth`JUba27?-qw#b zWwO7-SEA&Mzh67Qzjl6q)#hx7J#@O^sz_HFa*E!KfPX;Jt>c9QaY*ZIBY{N8tdzjS`Ta(=&d zet+%!{?@I3$N9a>zsbIf)8K61?l`}9o!@)T?|tX@OXv41=l5&p_t(zvZ^##KI!U8J zI!m3teIvgqFNRG0?%$82&*LHc@I{N%D-5=bIFs{L5-MY3qo5uBO$u7#t2%J}VMoc} z8qe<^H_|`q8}{J;3Xdr(oD<5tGo*&MM;(lI%GFRxd_`uc4ebU&r`vH97Ooeby z4zDo?<=u-ZnV8#mU?Mun9*)s9;LJ|a7keAbC*wv{-=zD8X9}@xZ3NYhS@mxkj^g=s z@>^Wn#eCRbh&RuT0mrPxQbDGC!HuiP8civkJI|KkUpYE*i|>Qw_)wiGEJq6~%d+L| zWuV&BNJemA8|fo{V7#0W@bVMWjI<;Qi z@i2L5a!A}dDWsZ-vXtE4#LIM%8ydWa)oZ^^2>OIh%YJEx*EK(FC zG~nZBCWP0_p5e|-JV?~p@4>oFC{AFf=MvHb>WvhnBtP`>hg0-8GRxKLbz(UG?6+@p zue~+^j6-u4z~DX`4pv{Tct#DnzVt&CWvUiGbKF z3Mp)QPVl_3#!HVB+^}mx`6@7pu1C|Jbvh{hbx2I!H{<0Y5=B_FN(6lB<6cD=G@6Q^ zH{@z5&0G>a#~BYACZkNchcYVLPg<2|b~TB_)@==hVh{1c9Gqc|Hw$sQO4J^&Rfa~X0@_BB zGKUgOpNgxvxV8W7O zPp8wuii)ZPW17y5)E?mxVQUvE{yZYe!0drBt3|J#I3=ytr4#hTZOiDqNmOrEN#uQI z?(HA(!HkuBJ=%qc1A1y<1Bk+WnL=pyj7T!JA7X{b`Sfb2ad)?L%@4hEQD+%bib0h6 z!>ge>E5%`TemJXBjNI)o?A{~~#-9+(4jgHVe}u)fc+l40ibsf29hnwdYEcv-A7^B9 zgFx;i;w)*V#Bq6lJm{eaC6d#H{-@Wbcea_DqtJ#x%nhi{!wn)3F&OEvcer!EgL;<3 z9z`cz(7!kf=^@34AaY@2AP-rvYEB)dLsXIgqz1IJ&$fj}I$AibNB{r^ci}CdY2R%Z zdq-Vy(q?ya3P^}uy@K0{Wevsoy=AIzY$hM|Ca}R|6wlIRkjp0vS=dXXfq>#KIEAE5 zVZTs5NM9ADF%RX|!;MRWzLwyysLP2p^C!9S|* zJ3l$`&*F-Lq;*U&h)GP8Imd|Qby8*voov6)K+++|Ju5ID3Wk{>8eH>)?GZ8J^da?%HgE39a?z?gOL6^9HAvqp8xZ6LoFdY6K)`X#k?cY4}L!xF;R9Qn2zG43@1S=z7J|=KLl@2 zg8(C{)c1~qv-9X}tI>*Tr>Ez2EYoh(T1Tf1iXYpqb>2mtZmru0>fMh~=R>nwe+Mv) zc2qw<>oz`iBaB#x`Zf3i>N@FS9Ut03r}n-;XUo=g75iHY=na&s*_ZA8<L82Hs2R$8)D6pmnGv-3( zn$hAE1a4^27#vq{Gw1(`I}3!-n>jCejxTkxTWMB%;fImZW4SW^!8UpxP!Pv$os zaCh4c7lr8*B+s+~e3{*jQh%B*lVJ~NK5FxpLm2B{n9_TavFNRlPyi8e{Ia>RFEM{!fA_X?8g|}>$Cs^(gD?d;jSa5# z?T79fAU(F|B0t1Chw`uG=U^PiOtP2D(|W_}t*kU{@1NY?^UIts$#bQOT+j-_QKJC* z;kzU9Y)Le{OcN;VF28uZI4xdJK9)M1P+tQK9 zWn@*TW~i^5jy!HiAtW%$eaQFmzyng*q4R8vI+VP6Zap0OBQNhGQQN|afMVqbPs43+ z3G^3pd>M1&mh_&|x^B@xjD#@`6R_ZffVgz+~=(P3(0Hinf{0>i8% z(}da{BL4-TZ$SHAAI8Ip{~h0Z-!L2-Qwc9*n2$++NP(sF3dH50dwc-@q}+nuoB>-QZAwp2kaa?+v{2$P6YE4xOcs07jYvxR~VN z1#c{FIn;J2Du8p!_iGSr{;lg}JmFp*OOtbQr;J8m)`&55HmAIBBGi+$fPeP7%L1eiQy#4)nAvbODMs4qo(;fCv9%N0ZojP z8S6>WRGK&NG+S@?CUM>ujgwy6BYuHUxpr=E+9gGl+rd(%I#nAGD{YFQc~6hjA|ph+ z?_3PU^*T1$-e6MCX&bWdfO_RGy$xQs&BAL2QagBlM#JR#}*oo7>!+I)NL59K2QFgezcz%DnhS0*zL(u!3d= zfB*o;gea`DuQV8&5Ado8Qdl?gdOlswNCAZ2r{YvJ1B2kp4OYb_9?^&b)9^>p00Fq4 z%pPK~ORzEfE~Njy`FX$wL$6^vcX#j~{PhZ|-uMQ7=zp)$90+cx^cvVu(h)*0Xe5dm z5B%@N{lfho%x}GX7IfKfpv;ITu9`b%V;Pd11xAT)8#E^P3G+~eE3mpTsA5b&__Ii@ zJ`o=n6u8V5xhRpk79^`7`B)Yrb0;vtM1iyhN!p(eXN##hn;U7gvAz2$MQW(({2Iud zSFs(|R*(*tr8{MifE*1cM&GJC#P=~&e_|UGl#vi!gm1w>I~WCBbZsMtX+B%b)u-H@ z`JLBKxEjvKckw(aU{ab#y9f04f3$aC%27lOcDCfa6CZ@;6-Dp4-hs*FJm^QC?00Uk zJMMjr{0IthcM!jFRrh4b;P5--<@_R?&g2PD-v^fyV3EjTR~}F4Uu@=XIv+^WK%}ta zEa=gJ>8a&~mc1$${uPvbfrW4Vl0RPeB;ltmW=0P({FLyfJi;eeBRU1~oK#MA8M5rJ&b?PRkBr(2s^H1{vl=G?`#HRNAf(znN-Md(AbTO?rV?wT zPZ|L^qjy0#3oEn^!D<+M8R)ku)VP}2($g=Ub4o=fhQ+X*XPn5iA?CJR%B&w3Y!IbrVl#R zHyU%#d^5($%{i%#D3y#?-n{3WS&KuZ|7x&;cO(*L7F}VXjg$wA3X>Z~Ba=h4&!(dx z408kd4CL9bPzwxuPB_?>lNWNYa3up{>c;mv;VMYp`)No_s0+(HjuEw)5KinC3i8+= z6FMzQ`svCs@O|dwi}58-W(JaFJVU_ju$;*}8cZYZ3eosGXp76*E;6OKBaps1=^jX* zi96)xDnY@Ryy;b+WW-?O8ou0qdH;g`1x&t68TNb6{jLNr(uZ^-eKA;$XS6m-=CF@{ zGluFL@o=a~Pm(vqK=nOKkfJ=*@W_CFCP7oJLngI`8O5b0Z=H zGtX4x0T-9|Pu&O6XnN<$#)|1-$Hvp)67VRZV$f*FWBLVUkua*1mj$AMm(`~oSkaKE zlHzg;g8tYDKW|qUJFvbQ4(a~kcjywoj%}yO)&fZ4H z4eSNBe~HzdpC3iFdcD!Li)8?z=|2RXdG-Xq-Zgl$*5Q)oXcqe^0vpd_IgWLcE_#myMmyqQ%VlCUTXvSxlNyonm@D zpH6yHXc8HeL$ z83We;&gLyKm{4XEkiT!0TXE=!D^nS~V@god~_fLS=C@8{^243+A0(5hd30o`ufLhn8Z zef~#-k&Uc^U@!RPArW`gRIfh|)?UI^i}O~{1>w`+pc(a#9#R6RV%V2wLFMH*2!T@^ zHq_Pdnh`lY<@OgNpQCIejT<#^2MVe((6vE#B`YG`gEVn2p1JjIJCxFthS6?8+D^VN zqk?ga3dS)i7{@3-j#0rlMg`*-6^vt)9mjN*WWGn$WF1r2s?oK1#P(V*{r2bw&`AysR(&ahh3Rf_agJvgiXv5+uKr|77|1MdKCAP(XZugZ#Y;9yOI97;_7Wx9YrFyoa%;i z$N{okP3a{DBWvT6a>c2Gw0Ptjwac>KqI<{v`Yjbrt2v*NIDX+57-AsRQeRaP- zASG@64Xp63{sx+Kp6G9W)Xv%(FN|J@dE3u~l#;&R3}?_q+V^Kuk{e)B*gPin8uw-2 zqhVY?d32u52I#Y+$~&{V_&I-mEp31@9Ey{~$8lZ>R=tV;I={!9y+`|EI4RIYG0qs7 z9%OkUy4Xj1IW%A3HzyLFzcBW+I5w|<+T@M!(R`kahW`7t|IUfEYqf02egss+as7Qq z=MWh+7T>_&ucZ;^jX@AYI=xzW0`7{Re-qCKlCOau=m%1qsD{bw5Cps1d;BH}^Mu-R zf-Hh`wwOgg-;p0gM|Miz6KDZtvx^A(h$7gzvT0W+DaEv&2xuAZ3WzNRmQ+YHRtOP4 zK2RF}3bY?Ph989AhC%>;|{CnR?-?!;6_iQ@- z=5%-ewc>k6YlAh6%>L*mY=#!mWATAI^cxNrN4m46G>?X<}HNb`Op-D2S zgD}7XxA51f>!%du$TH67=YH( zSZ1-Uf%3yB1i<|jIKQK-1-&ms$z%{suOfYaU|m?aGUIU%Um*}C&~_m+LY$9pN!#C~ zs1_l567v7ssI5VXn!hm`@jn~=V1u4}SiZ=ottIJp%9eFS$$Z;lbgLfrIfN`5uGXMb7G(3zDyP8o-YM1LVUgJzLS zR5{V_iSzq!kw-?>;f>IPT!cNPg8@5wIY-4cqaDESkelR|Rj8WZpdXFd`+(LZmET_g z<-DZLeqaIxv#7O-7910dT8%CtmhlM6VQ+$$m8I;?dYH_gSKrLs9-Dv-if)1iy z=vqh};>bYU4kx2MPMX#Kobr46dVPnE$nk9|Q;~`?E;``2LYogh5^Dc}SeyLJy+$Vx z^_bmbvn6Xm9q|>>C~WAuUK`@DhT^Va8=ZU}iZ4d!nTjwpPXNNdlo=%aFiDa@%CVNP zi`8&O_yM(tQ9QzKs>cZ+nF0BIW1qI6TZI$PTM0mP5ft~PbF6cFd%Lp!e&-L|E0a*%r0O-B#EuU=>W@Y(`8A2xA9cqd$!Si zAH~CQsIGQYe?eW~9LPHnAe7o^v(^EGL3q&Q2f9zKS|qv5BVqyrStS%DEeAup8eo!m zK6=>J*h0|dm}Gsf>XDG+7{kX!+ktB9JYijuTNo%#q#eH@zj-o|6+uO0=rdrC>1cZW zz;ewwzQyaCiHCQv~Y9U-7zv$|o#b3*X0!|2g; z!R!K;6}dN8lHz`DW2<-uiI2m^WA+A4I14C5az`#KKQE=o3aBlp*45^f7RcXDYj{+# zW21Cu+*R&FFok*h6~6RU(d;`7ekE$e@|h_wg#t}y>b*)P1%b}j38Hlhj3vSrdVk-T z#j2Ogo!b&i1b&5IYdppSvuTUq&AcjDOto5n&1=Gnt(Fl#t-qgm@8D%89?OA9B@gc; zX&{<78mG#KK|ZP~n`B8ta~}gKY1S=(U!KWn`z`8&tP`U!h>F$l+$(47$09T!W7nh+ zLlB9vrymn_&;yr)NaK zQ}LbHYYwemQoZW)Ro*H8Qr_z!2iNy=!}XC<(UQ3$#>#pN?bSJE$}x+t`Po?c$_Ghnvk$b z+>aq=0k;utZYH~>Z+3j-5^9dI*JNT@U`Js^he)y?*x2(=S!3R%%u{*M0bqZj#>SUl zx?B89K85^Sz$L>uFj^!91e|WOccVF{(`zg3lG}~aw)-TgrUZL&mIEEj{htdzd=7Y*HgM{ZS%t6TqE-0z&e2I6= zmn5zD5+8!UG%RNDCFwL6AMh&Vp-K)y(sHHU{N)C$#d&_jSLa4Da8Jh*i{e+zE&ox|NDaIWT!8tX~)lI&QB=m+7Zhr&L4qIB`!BJKF?2Q z27n$-C)dG?(XeN_|AK>3r7!lkcXzg5ep|iX|9bb;>*U*@7%s@BKTb{}>w-UY3X#K#2lTmMYF;WhpOjI5pY1I-RgJHqXGY_l@2I zhS2oW&|?b2^EZBJurcqT2=H+p%X40Sw|Nq4{1-BQ5rAuO+h zYBu`$)N?}Z!bv%s((Xu<$w;?ML?jZ{kfrRq5B%nBh%DAv#`Pf6PA4$;#(fo*pAkEG z>>OY$=nd;Q7`|fYP)vK&O3>NF-c@Gyn*%Zc3IdO)y{ORdJM-W8>ma1)AVR$ZD~WTe4pQ-DVN0E+ zZVXjNoXd5Q5JvK2&7xZFBrk_S2N=_N49J3fuwF@QdlE&OatpsbvdCgDys!qNDbiM` zaulhcTGPZd)_ju-4)H;UHB&tA*W5;SvM|+sR|jTbk@n+>@{IivFdVohK(UDkA;80c zKKSv5W{^uLP0b-J~77iDGlSlt8Q{7H%=EL;)2 zxpB15usChejKZlMYTR?8CYED-bh0^N2)k;UrV$WtpA0O?=hPXGHjr=>F;iE&QLmjg zkJ`0v^ZYDy<9!{3Zq7-qc^X#Vxa|xnI3F(baf39Eb&SlPINf_z&^>`YX`VGZ?;e{F zhOJ#3cfS30|2}G*)s9XZsQP@ku{W^k=*aJ~qv@vHRXndQrd9NfVbbse6R(`KlUm#S z##Kh!?a3gF$35~Q1UzU8d=y)$@Le4OIgW}-?2`xXa`l}Q-ePEcB61D#WgX1BObu}t?(XbVoPNxfBlN$TZbcN3!=u&}XW3fb> z6BRiJ-;`rV{pr*7=1fR)AJO6{{Hl_#&p@(boyO!FrE9~^h{iYgKCp2Ua|(RfHcWi4 zb>L^l0KXI-b}?Z&QAR3-gQi`;QaCcS$J-|5$H)Vhj_a@mKe|WQriassgc%5Sw|BO8 zO#56z#Bs|8i%s&}RPk{bsQ{WyXVZbg{eh>Qv~nR+ac57rXHBnh&(VlX){j3tl4xl;>VjH;F+QlJUM|$n>k6r3?uA} zBKEA$-|Fs=@S@^ONS`k!kwbJs8k-dd{hM9-)xX)HztXpzsyGOc*i~cN1Cjj$6M9Vh2%Jb&`n7`ToAsXw=VJ zVjj#cFG(y;zr^#F1i^6B2r9X<7$;q2&SV5Nn@&>e@fB)Vjz*PWRXO$XL}9`KVPR}Y za-&NCSINAn&)JsNs-(CNCIpDze@!NDB&>>@DUa$c*N#S|(T^qXJit?;xb9gvPiOcm zKX)j$hD~g1#4*<(9Bb{7EI(C`YbhQO7Jwdl9{BKMPYdxyA9Xm^Ya)`fU~E zooRO?J!R@JE-8(51S$mIN+_bG#6ZvV9hgdAh+YgMRl42>$lGoxGI57y%*_p{E2-Z> zdTcIQH@-4uh~&>j^uj$jk%EY@6ZNO%?$5w2en!JN2@WNP&bVqpPmyVVjEH8mmv5t{ z*P{vJD!nQhpgOq>_V4neQl__sjMGYPa7pUq{h< zHU?ki=G^g&gTjxSM0DHceR5j#R~yUL&CfK)FH6edRb6j*#kN$Ef*Pjz^(ih3RH+g($y?D>E;gqn~5qP;{_ z>#aSEG*8~S(GT~Kb>_XiD~*kqn-`sxlj8;uva`gUca{_T=Lu!u)nwA2Kg$R`*k0mnW%`HW?F9oge zLQo$j(<*6&RHcgr_Z4Rtukl1mjN)tD;rjY74B570x0Y0=vzeL)0w3qo-i>g|))?&i znmm#}=MPgR~tz#7#GvgKq#{gn9JtfYQM0w)fxN^Spb;yEe z=ZM0QQhyMT&?~>y@g-e^4-1%JG-qe@VQe3ZPw%?>&F;106ZwRF>z)}ndzl@T=GR!z zGbPi-Kr5}}`{Lb^F$p43U! zF7NSD*EcU7;iR6(3*oQXV*U&HAS#)?+mbmg@Q|(08f04iTzo z!`heZ#hd~OlsZssz7_UWJ?*i5Ge}4g`_a8}Y~daqVtHTP)=&tOrh~P|d52>wALWWM z@;eH(ikpV6LvOI9Z8{~LEt7@Ms(=J)Nzf`iKYlHj1uKRl=^0&2X>v_=#6|mt9#-em>v=qu3O$+Zc!0MA%oRC2 zT7mCrW+&Jr(VUwm?2CP8_VEP(F%F#o5x^yjs_FiRX zmwZ8BTeO1Gc@0^U?K`RrO_noz4;Z*d=VmnQ*=@>~Xz@O$PP?a&FM@WXb9ve&bbi@x zR94^tw%ITb`-Z+-c{W5g*&9uJs@tEPuhZ|C%CT};ULQ1GR>gr#nIj-t?uG+C8dB)7 zGRG&iqr!qE@ST&3C&AZA_l!(T9mcJc?xN$p-MC-OV~b`*dkz5xgb*FGYw8 z(KsH-?^W_pI`$~wWx9F`>EZ<&6BWqEE-}E*inokQhsHw+I^tT{keT0*SM+x|BW7VS zEyD>0mykaT;7ABzIVRAIL(AzWBCDx0Lo(eODG$PFK&YX1#FXmI^P8gLZtCC=V|e2u zznqsVEHGjp4M`u0oddb0mn6AKwE9NHGJD!6^F*BAJVJ8~5~Q9|4lrN}ZLi$-*xTM+ z*lHX%FI(GXZx`;?{lrJapzxqSo{Z2}`HFR;8z7JU%W=4JP?kIA%V2%}hw1*x8f`G; zBF&UsHU+#|p?Vd~k%tiEfaTvzEFFMle%wfZqFqh=X}XFo!2H~*RG2fi1qbRhW!IIJNB1mFbjkaqft_1Y1+a^| zfg-bk%E}fn9YVKkF};!>qta>0gd-JMMnjh9NM`X>)SoR=3O{_83{VKQ&RI2Yv?@Tb z2k>b!iUTiJTge=+A*^`9xY)KGt%lK`=_fnPNAP43E^S!;N8Z;DR0@d43d4cn8y!AF zYf_~Q-$S_mUY4lC-pB7c5G>LpIjljNc+bxh3A zaQ{~Fv{lv=mPnQbshZ%R@p(@*N4CQP+1BT!`t8~ZYgSae@$<4!7enS>rfu{4E@Tqf z3SE6({N9-@lYw5l4Onfj*kk2b9Jziu6G=6vf3gadH5SUhr3r1?gvZu(E^Ct<8$B|!uvrG1E9CV~ zyVg%qw&kLCM?|`%jk0uQ&35T>f$9onJk-{Ba77K4HdfwN=4@>Yoa2?>r~L#SC6oGWG5aL&S7rNsp*KCE}e6ETY0p1Mf_YcX75l>ID^eee2YM&rM;Ox$I$jy z18$3T7WwxrBIr#FpOoK6zpO*!FFf{CnZkNn0$sDC9_Mvcp zIdV^I!Ea#wy(|*WTx;vSmjuB&bZ=f}iauq&cYd4jK?{I0>*>nH4=PUGx2 zs<)0K4CjNs)7y>j?aGoy6S;$27V%v@($F^Q^trju>2R0p-W%O+B`#OV9aS-Tm3)+? zUGJK2-&NL?)25Hefmu(P7clx|Jn+FP+UNwR;U(%L&55bOTasV!hKomeVEdZ7{vNM$ zneXsblbd#*@DKdeFO`c)%c8x6)Eqr_7VK|*34O}`{D5UjdWh`idVQppi+Y&fv-ah5 z?RmW9GVAtog^V%t;=Ag-AN>uZoj>#}y;;An!_3J}HU2~PO>%y1PwRTLe_k)7!!EUm za(Tjm-TG(HSnz#dZ0U@9rmW38 zZhf|SW@k-V9|bnw_cM@b2XE+cG8mGF(lNS;L6RWTR;J8T;cLsma2j^V>k$zN132p$ zUlyy%O=q^4j3(pvfn2+@p{vTM9bc|I_2^)rR;x$#^RtsC#rcsXk@Uuyn^)8y_jZF4 zIs>-<7!-(f!qk;MaVO*Wo`Rc?hZAS4Av+61d@Ks(TKLf7m9nw9UW-E;sDBroU!fK|_qI^ROK9ae~(j8VT4KjYV~LmlJ#* zFRs4`{$qHqZ%VFwc%8nLb*-o!$M-!JsstrvQplCw^Sr075vp2u?VC!ODHVLVGTPZ7r* zD?3lg?YzJ0aM-15yl-a+mq+(hrbynm)yh3pS~|0*is9(ubLpkkYfJNBw-nRVkcQJ& zHh1xOKIyHXP@jrdbnTq$ywyHCa>f?D-+ScT_bB=iW8BB-k9_q{T%(mWi2txPfVVTa zv4}?DyvL3xE{T2nUGq#k_cz@^SjmcWGmFtbmSY#R;y!SUF-SB(p)Ukv6<#=!kj{C( z7i+<;tow`voyOIb6N`(4;^Ye$`-w3C=I;GnP}kLHnckGm#j3s6X>>Zx^RuXV{1n=} z(``3utx|ll{=}@&Rx$mbU0)hMiNsgZPN>?oF+ks_)8%5eEWJO{n<@G0joJGq1-Byy zA7rA5{z2(Wq#-|U{EQAmA8nJKO)Z>1Pcnb2&&l05MwM8+t9%~d(PEZhf2@td`;}9p z82)21gRbAIn-8c)5>J0!@So0Ifa7hy~HuNri&bJxMJF52hCv_$yWgxHe)oMdEes)EUj zyNItd@|7Z3#J9k~rLLT$2o8w(6fiXlR@SeVB76(Do#!>qB2dV`;JkYby7F`0c|sw= zTIVV4&8xH2cSl>v`3aQl+v#XIh8qiJM|}&slOnYb2UtHBk(RhVVd@zN4HI!{UW;u;Qr7nyf4D33WBG9JwlSR+MGU zwR-q!dpA6mgL;0^ID2GuWiId~Jweq}+z=FzCh`qqO2=*&tZ+r--dMdLL3Zu=nL#DF zezUFS$DGXb(Y3UNoH2Rxh;miB-C*(}wji+equC4Jh~&B>LkOC+7PlOmr1=zXkRB^K zLw`=bk#3SyZ8B8PFwB*h$&c8St>o@rdWRx?iGn^juGg|O8Re^woA72RA>_2}Ep3wP z`%(&E1_m{&R^OPIYLbO6D3@rQz#z{H`%^}tyD%okWFhU!Fr*RyKqS%@c#5nfEflqV zZ2dl4H=UaQpIxtSWmL5T!&}2R{4Sh#M+i5I*{2`gqpJI>uEOyH<3h~j_f?V%IO-$Z z`u8N4`}`U(gJUsa;L7VJos@J|RIw>@HYLSI3~xD2wXnd5fBowzJv*Bs7*d7*;8WMqAqb)hSn2g zC5z|Bg-mR>*6pl(yD6YEOZeep&i2uA1@A%5xGW!A@%HL^0)W{lejr4^9MU8A9`@$w z@+2&#VOEU+N~tIL2pxZ}S?0J=SjxWrpz;96!}H&XP#I3+glHPW*>@tE z*G}`?afn!;Pp0Ra4*u-ZqR6kQH7gdiFYK&i4_zQr?6izHrSZOT){VL!qx1KT_Q~n_ z2Z`_D;vEyChp^7$yuf(2pW_9Hj+yQIv^^xOL)%MPN7m-hlPpwSm+iB4*xz?vePOND z{%{no+b=3lb0WU-6z_<1@vir`iuob|Go>uJFcln)4lo(OQ_c(!<|FR~SbUWnL+CSG zTd7>b!06m$aI(iIMa(Gi-r)O^q!tk~wh>7!A{n0WA=}$)zIo$vTmZUVC3AMB?RL+| zwoORsw6dmby1b=aJ4KCT=gxf>kd04!Y>myO<+M(Io8d~#_lkEK>cfh+hRm?Nhnn@) zWQESd8uMJPYw@VS9>(=2z2#vI8O;La$?r@BuMJu?{`T&nB8!2 zH~ftpEHPMdI3D&X<^%f>q`g6MS8GMZnt2{g7LU>xSLJ5!j(%gLA^bg0P#Zl6qUf?) zdmFuL)Q+PlFyCDucj%jFI#$0y)dg~=G9>N4^f_zM|GcdDaEMcVI3Ri^Q_DLSgdiKv zJwNhAFx+DWBbY1XKuLvm=)O^M;6}?E2pm!x%h_shhF_v+&B8I4X7w*{oNCUEkuF%s zs*%kd7&`+Rhmp4ghxVq4D}ePB-AumDYGy(yUvUfd8w0y?<#+svrAy_u$287?2h5b;>>gylE|8cbx+rgDRq>9P-kcOy#dJ!}s;u3x+domvM!>TEojP;k-5FgiWIX8MZ3L+Y;TcXh<#k|H z4=B`H_<*}ekp1g&n7R*SV^dHoWZl{t)(Z|jZM`>B27f{oh8uG&62I-FC| z#N}v}6uOOd0PJW6Fw)-iUf?IwP!bp@m2^prD1aUGh~y6r9n+v1^R~WxW#9_g8u_X2^!_pMq;AT!LyBlFGZqxX08v0~a+I{=hk#1rWcd|;&$I$w0SkWhsy zm)p9T_H3}80zG8d&s#R5imrpIDWGesWWej^Qq-1!g^$; zn*tT3i}7gZ{+>*+aF^P6J!WU#P3ND4tC1Ku*`-^~IR@=)2zvllyvMuYdV)cb9DivT ze{*>sk&guTHwlMhrmLO$PM7!WPXUh{NiNubd~c3%bS4Q!G2^O&qfA;+l@=ynEw+Wd z&cWcOPT_c&!v*c9P5rxjCqR$j0z#=C)Psbq<^cwn!jPOCo7Y<| z7FcL{H(8axoE6k7c{|lzf4rIe-Rj=T{JrY_%KZH*ARO4}E8B=ZB@f8m7uCNaZ+}JJ zOE(X<-YA;Rk=3As673eG?E$?pp#y&0=zK@9;V9y$OGgw+YB*{wo<)gE#?J3XSK(ke z8zuMoh%GnMbRlr|_Cb?pj9S;ZXd-33oCRJWJ3JsLM>c+E&=);M(%Q|$8G8?uiird! zFnd{;dfkD^z3g^41n2G=FnhVS_Df;+U06P!D7tfhQw*}m_c}+jO6dkbXtrGboc#Xl zZx=QqGR`Rw7#xB3LbAwym-Yl>fSde$N1S>HHwA*DR@CR@udHu=H4osw(wai-Nm1hK>n6? z%gZmAKQe#@CJ#?M)D5iS9bMrpD5MiUOZvkrpsh^XSRrmn`CHnymtWAf=4VGqj;=9g zAN3p|{CW1Bw^8<%>H#!G>h0MedC6DSxC zlKTaLXF_1gb&;7jLWg2b54dny78w(RDq1&8%ziq1o7Uc0M0zW6$E5Z+-Z*)q15rS^ zejc1JDWlVYuo|+_p-)|WNp_|Bo1;|rDe^K2AI9B3_ua`gbH{2wX?=jKUzx9ldOc;?1Ld3Cz2)18kWO)gDHey)k&d6@L63)+C4H}VG1JTB=6%}+{-o62M6 z=BO=v%*?Aq?!4zH9zfS?SSjv-$GW93{JF(bi@0$F15VsJmVUHr zelYeL^y{KV#cd{zME4ywP>wVhr;zH1_$}}uD$d^KxDayT$XY0V9;Wk0g%ouoWd}Yi zWt^m8Gnb=Lz=#e#8TFH7kRqAD+4N@jIQ-awzs#%_@pz%b<8kEhAiJt2RIr*-r@UXX zaKdAHP?sezH+P}o^UGiu2Zu&RAZ*gRWzTv`=YGpWC(J;w63*hLI{F?EdA`ye`gX=V zGO>3fbhkao=k2Y?+h39QGMh*5b|FbIJa|p9Ff0W@Ace6h1%00(t}o2nTamZFBJZV} z$M?hyOfgCly*ZyJNUEfUZ8Z0s4b~KgIT{J+sC5pEQwGT~wv8sM>B*ESuMlN>Do1l+ z%b|+uECwuYdo38e#~1T>lHy@y^n|x`@x`6(cc#1f{3q0&>)&H@@wBc7nV`hex&A`r zl&PP*>*yq17cR}?@V{{E5?VDL{IaSZt!w2z9H-a(MDw({Ew9I)v@c%QzH1?cK8u0m zV_k*=MLyeQ`PRAZw#eU1&qSprC{Ev`dxv`eoZcpz?eD|pUR@%7JYGiY6<%(L*H-$l z9f+fQeNPYTXWdino10ELuD~f#XbdE;rA@Wk#3b}Ngk_0mA0!#BeLJwX$ml^4u(m~d z=F!!1(#MMgrpV~@avw$DnR_R~^3T#J{xq(>8O#R{#8=BVd2e#Q8K*|$#-^z)B(5r|wPS%qPwiu6do;d>h|%=vTl_v$FC79v5^V5;%OS$%;Cl z&GF8+-|p_|`iU?leMqlTch7ip3j{^a*-NaEQdGNrKh#&?ZF>JI&?er_?}<*k(?uI4 zT|?B2j6}iN#_Qm59=DHwFp-Fph4jtVU7$g`t+e<#yBb0gQFRA&t5H5X;3@`S;wAzv zCb->>$ zzSfTL@Sx4jj*WbR%=I_7W-!DvqDM-0a`zd)*Z*;J8fR<0ua+XiSLmIfS zy9KbjMXFC zEzl*=`-U)=XZz+zzr?zUsi_&TJG90JW$+#{1nA$gorPs8j@YMsk9>R68YH#5fhJ$+&n9#LMvq3Sn zH`1!C6Vd_B_$wyAznsreF%0Vk*ux*uIpg4`<@>D=v+(<;Wo;{*PS}QxW3UhURTMi6 z`&HdFLGG=a_7nk`ttAU(>X=Tdg9OFzwi=VypXKV-ARVT*W%wo=djnMS!>%sov((`&Yx!Vz)ZJ4NCI%R^;s$=IwH3HBCmjyuB59`z!KZuE^W1CijbKKb{3a zL3`zS`z!KZuB=leTd;Ve2PdC)Iumy5o;f|YR7aSp#A_SyaTWhV<(w5~x{^QB?&-y9 zBK4ivW;oK=`VBJ9j)=vd?1@Kx^lyfv0pLOIEE^hx{Dc~2UeKZJg{QN_0(>sAm?udk zaGkk}N8DKnsDn>oqN~HJK~RuZWd^XbS`V)q};7R@zZ zj+r~dhm&2(kh6JG6=9W>F*@00H?HPi`L`9!76z3dD}n1FzUaw&EX?3{QuWB0cYfcKYID{Dj zVvYD`KVEn3_119LK_5tDSqNF%nB zv-bjOvMT$=`<7cjS^{&}R@Rc%&~!sNdse^C=%d&s?US8n+o{~ki_GAP$8W~A)1OY(KDwCpedk#Vq5N|Pw1&G zvf0M|CBOPAIn{mQ&Na@GP$dHOkmSN$Q{7uA(R5Z?6!nCfk;yLL``P*m{V_0*B3!%g z%$8fZJMz*Ae8t!p25a6?)-C}b|j5v3hWJ>X%dgIvWmrD zc(3&XAMYMi4Ry{aoE0ODqKX-jpO6Wz{~O~JbCF^SQ~75 z9WW8f#I={m6eT91S}+2eiJLf1T)$}2C!GA^Ce+W>;tFXv?ejJDc@{sQF(UmoMF{>5 zLrachd@xQH`Z_{82&cy_kQwU)?GaL|LYk>J12^yId+d&Dm?|hgh8Ne_{m2uwOj+^0 z);!r*M)lf7*c#qjJASjyj2<=y_5vTo!y=ziaF%4}Y;Me+o6u!5hYqo6bPUK|M9HD( zW-!{6cy;8PkA@QBs8Imt`52Q>FR%l0d3JxYhdAONU0SDuq?c|T6BS~XkQU$-8;uCV zsdcvU4{fO6M~idCCYWZ7a7<967r;&Dwy3$A0~llN0WSB0Jw24NiAyI=c)-7es#d6Hna&+iR?p{@zJ zUi2-I(-v`TPc{ao;QXG(pH_nMb{2nzb{4jsXEc?I`-sQ9ZDInrL@HmlvvKwg_VVsN zTN_eX2fUP3<}RP8c3}K9x-_B_*Hs8I6sWLBgGfX&MBf-pg3@v^UUjyNDZ+Duw_c%| z744}H$!Jt%hUfJ1EDXcI@kbEK|428DfkGz@&48lGwEQhC(0*;mC#Gk_f{ySPu@DJ-iUQ-5IHhRCOvqNBK`{T*raFb=g^Y{*u5Q+XH zt2>-8BuvUb$~GvN-QgzFWeA0B;omWE?D2JiKN+Xw##@2)TMVxrSb{Z!vn<)#`2Z;|ObNo9u+d{_8g1H!`rbqw_Y_5CmE+{Jl7BP`87|$8O{7xN!^}>~v~x8$1{98_~r% zjif_+s?$Ahdr84@vjaUpYhcHlXE4SZfJ9`z9#D&>qp%mbY8dw4Cit`Si=fqc8(q}e z&F&9U2yLaCXWunA{HW=oq@A3;_0zkxHX4%XGqTerjPtZnYdh^r|F8pfbT#$^jR}A{ zUXql9iNwB~zirlQr_m*p)mA!9Y&@ca1=W*(RdRN7e&Qvbx6ysuv6t3-dxlf^p?QpL zcACeRjo|xQ2ji<=!t@5Py`tlWgj|&|9XFxs@A&T-Id$gw#&3j|ElJ;a#?e`!ejh=% zc#im+=11~)-ubsqKK|B*wLGkLJ1}KBo$kB#`Q_Vp^xZi>>1tv8Znjzx;T}^Ljh_3~ zuAOzriz4ir_T>fcMn4@rBA(Pb*w;4f;5H3gf73AKH#V!k>5v5$&g>)kZl1lboi>ln zx1d4u{jSzNHuW~nI<)t@uo$}Nwc{UPpZvbjKBtsG*2(~%oVQ!GuI9mn9i5&7UO8>H znq59OFln&xoZgXrc-s7ZBZA%6Lg#mQOfLoYIC>3q5t<;uk4~fU9ez`KyMYE%)IZKY zX+rs08|v&_)asbgJp2B#*~b3TenvNiC$tHVYh9eA);Vmv4m4ZGz9RZ*=otXKa6$X1 z(XLS=0!xD=Uu)1!II>uG17-_Wu?D-j({0uv9|HzE3ANMH^AEH%m$)HX=dcEZQ_wki z^X&NigNzB7*;<{pA%E}g$k^Zq!Nd6B=f!!45oq^ZCr#jBl+6?BxBlwD@vXm$Fvzd| zh85HH>H8Gh$G+$yUBIC{X>{xFv>)0amighV4qN^V7pz``OM~zNtnlR-{n0ckcicFE zxz*_oWCl9*+8N?qIC4DC+HD>KuTr3O$miw7F=8v)H74)${Oqk+fBvYytDON_g_db& zQJ*;o3ZUgzvd->xrmDHth_X~Z?o{`^-I~}+)`3x@5vai#{ zy{$!>XT|As7T*IdsvQAVJ#C!5?Y=`K5A_pL0KT9Tv}$%~&r75_ z_jQi;ojIcZPy%deYK{Kl903&^U9``;a4P`@BLpr=Pf_2gNEpt`p#zydPFshGOlYf7%shzz8{e4F6*=B^9JPbFrUuG zboq2Lf(@F`*J~IHu{|u&AhQJW+P9Hb--w>-7q78~je$J*=sQz9VJ;I{IeeN&KF2lB zu9$J$eU4CH)5Qadw30EZC$NlMSb6pTC2p!ZhEYWA+%R5XnFY7a z(}4|D(M)SAyt_&8DUpn}IFmJf*=OBab+YZ{+I7+>#b-=+PJ#&z(nSXG#N{f7$-0n~ zX#}&Ok?p>wVyr_jiARx?ItZJmr;WF@(@-eGFi!i2q)7umJ|AlN;?mL($?N5T9qBj> zTphN_9tS%tz`TDb-V!M^iFYVeIuQtx?jDkb=R(+M^20Rf{kZefA?xa-G5x@Fe4LMv z4` zGWaPBeiVgCbZm(Bf=T#Y@<0bH^uDR#fXb%*`EUmK24 z2Y!67lWh`xz)x&Qi>c`gFo`8JJ&Ti)=cN zmgxiA8Q@bK?iW(k^S-N@LT%c9EIx*;tI?2cJ?nCay66vn5|g!S7sChP>)r`kJj1-! zYhjJNn@L`+H&we>;y;-XLgw=l$aChi8y|tQHc7ZQXr+0d_0c*QCYs(^QQjHi-hZ%n za6|3s-@%=D7sDo#6un>CEXaa&8!o~cAh!ukRe)YT!wdGIN50@j@dV})XEb(hBOXm(834E@hnFDmg8Z3J%KYb?3*Joosg^+ zuF%QCoDb?72Ia_{oC`Fpt3nalFr%yLLLKy2m~MQ1jW-LlKO&cmimzY?EpScHhpM)N z0za}P#?}7+QupuAZ5&CyINFN1zZic-dmXf?S%PoMGS5o0AOMOO6CezLk~|X=9U#yo zdxV$JfJpj#?)}?ueloKj-DrUH>^Twl?v6!tRo1&ID>Ew}uvDLk6*uEOcs7{RUK~S# zae5mH9y_PIj$d_+vLe$j!}9dDY@P1zjb(8>5cp=u7YoklLY%-c?lYyeem)(3`NrN= zsNQM9g|{zhS?}h38a1$X+@Fu0LfRS=QC!pF5=H_+4DimWaZ;h=h_XUn7Q=8zi8bXj z#&s%#Ukj^2RfbD`%`%Q5;C)oEvj(To7sZ9~VZn4@afhpPiA}^jK@Gg2W7j7{Qar>< zc|Th_{!aV=#g(=BteV!J^#?G*Tm$uyE~wj0bKI+hZ2C&X)O2}w?_UI=b!3Y3C%B09 z6)Qq^aA+7k->k7Rj34*Xc)$piJxTI>rg8kmt_Ip{Q=ew{)S;1)r5h6zy4GY3R6j)x z3$Vu@v9chXADnlZ6uQ%*WVr->5!D+)P&+g)%QV&mkfg@vWClJ-bvk$p(;2(LiIf!- zG`F_?j5?;HaK0{yZy0VUM{tCwL|^8cAVa^{+H&gJIkS4}VCV78G8qkXdu<&or4C>! zv${Ffm07o$*1>~0&}Dm3{~d09rhf4in%qDgy`Mgf$FLM17#E^>u4Z%j1$?Y%xSWLP zw#o43Nh*1+?OfUA#2%dW<;_@4z$q zlF4%R+BLa$y>IF0PuAD#7`k17q~(^`09Wl)jbZfl zh_-II)~xIu9lmC|w?DY&g<}swvge4;6F=EBnGftyTkkPW=f^_AGgCK?^XXuj<`TQK z5nz&*17*J_I#CukiyyJk^o~g!Cb5D~dbyXKPeJCUfhDlB#RrefwS$eV)MXeGxv-KC z#l*WgYw=}?Ee0%vgBCx83C@y3X&Lp`R8&SGHWc&9O{NoA!_it{86YpCq=(QXW%^}C zCH@$&ZC6YC@B&6tl7=Q4ko867`YmzUzNHJtNm$No zqBZ$$Z)Ea$Mq%>D`lN7(o6Vo86$ZcOr{IiHNhObCJ+dQMX~PTPw49_)L zSP4GJv{nIZErt&Qrc0y%NI*Jd^^7+@=twT^lR0ZSE}rW0GQy`0rgL^GHduv*Hc3!e5AzA|l0BaT^saBtS3z{)B1sP=&=C|{SnY)2E z0mn=N9b;u$`Gd%_CRN&ey9tJJdT}Ne;y-5)Dbq z1B)xfXsQri(Pm+uOz<~xxCm}X{q+^L8{hR`3Tsd`E%P3Fn#>35`Y6bQ5XrY>%Jex4 zQIf*3z?uXX)!JRRvCNujesLLD<`?wKZJnaIS-W^^=F-9MhCjNQwS{tJ{>tKjgdYA}A z+k{{g5Pg%A*1L*cu!Fg`S$BRbeKR<@tz8(d$^XF37w0^WW8l5BE)2=#jU1I_>i*hcF69{UtFQ8v)l~1zI~?76v{HKsz|{&W*H>o z;hbzimo7umH7CATg9v#6W7oB*oG(c%cmE?iJS1Jp~imvtbJiZ)=~6iQjMz zg;uhec^0H#>qz4}-b{Wa%%{0}RzbXq7}iQ568hPP4w4kXcp<_Sv}};J5zCpm@Q74( z86Ju^ypYMubb$vx#f9p(UOIF~%f1|mh?5AIkwP`{VS5!Lh@3oCj}oqZbPj@4<0co6 zBzIh?aL5|6Yh^untHLUF1n=A;!;m$${3U^u>6V@jlD-kPgiN{VTeAu-2V9rq&fPup z$#?+Q_e=ZU{gBJZ@AY(gyI2EQaUIHJ>KmEaj7530WmdDSDgm{fFVxM;+?5~9!?lc< z-nbli(xCG@MkqS&KZW-&qm*>a^O#o@Q5q#EjYW)%aCxlfEOaRgzFVzA>)2aUfoGd?>+$;tZh?tvcQfFc_5 zM|;fA7KB$vahXjIgJ)nz-{@RKJ>oYWm#H%Trt!AJYIZ)FC_h`xpuJd>?CY7p~-ebP9`RSxTquXKOMrY(NDo5@wsFycO1Zc=^Qju*>EZ$+_DH&1cW4}8=&)$kI zF<*9dO<2q_5jQnSw2(2pu-vyC7L!1&`Le)m$pkN(16&$QR^H7{W#GT%WyV)9?|cVn z@TmBa2naYlPEa}PGir`=0pRN~V>EB>FOK3f^c6KKvMmxyfG6Ul#n(+ z-}u|$2(TMqOunJR{T^#@GfrgQ<*sl~`Z z;)w$#%TQH~Mw1?}%+B@RABy0-S1x{zR-s}ctm0tqyptCbJUAA;5O_Ze%VcD-bEBR~ z*=6fyN}XR8!X$ph#!IHB&oiJ&7d>ykIa8NR=eh>h!WB2Fu&VA+3~Z!&wtt>XG1FE# zE4RfJVFF+KXC+kuH#eL-GC_hB2Y(C(Jg?Vetx}C{zwPGK?k=mxyaJP>>YOg28@JIf z^9TJ+6#MkqsW1;JfQBE`I&~hw$1k}z=O#hWkbQLd`*ac;52*_?r%pXAW$A$tyvQ4c ziUBms&{dwm#g}*JA+syh>(An>^u)JAa0}|va12;=!DjlrfqP9i#7bdVPc@}5KNFe& zjckG;I+=Cx3Sf9?Q}=`(bdsAJP-`@UOsg%X6R#D@2bCRryaL9~s8tp4GT4Ih(usXD zrbE3S2|I}R(8i{990uK&Vv@a< z(e(BE6f7VaA>)x}9OSi+%Ji3@SnxeAVyyEgrqljxc zZ_5~Qj4RDo9^GUK6;t+;?({rU6g8-6?0Q5&}wewvXl)H1SY%h{PwQ^on-0IkpPL=-br@c3k$gskxV zAd@A4#^|Z2&2yuJAOZXUk&z=JTjMNZ6fAqiqG$s_V3p?wyU5 zJb!=4_V@HTR2ZTHPqVe5W1jI?EBsH)+JPK1ja3Yp2e;~m9*tv^`sErHNejzvGFp|! zZsQ)}T&G9r87!=nac}1Oc0`9{Xe(LOFG`k$^;S~v;mg-AQn8x5{ahiKzR=kk8IsA@ zE@|Iu$WJSG$|}fqr{ma}m3R!3ES9a>&@&DD&Sb|c-BJ8yLg4ziZk$_N!?(-ydO8Ds zf>+*GiMFT}%1&Ne%=0e?_sXrX&P`?TWpC2|5*mxwR{x7%MB0>RcW>XB@rjOb8r$OQ zai>AcN>E-E80=(t7~yJ|BeHs-ep-%fXlKcuc|7W?Q73gxc?hu$@o0Vj+cJGDzm9We zBz7ZJEo&+ox=p5bffkse`jpAkc}&T`cm9%)P#n$Gmy=eOGQ= zS4K^9sSC@AXQnITH2aSnyF`73ny?h=jy?Cnk-GPqb+|rH z%kf!J8=BEmmiN2%BFM7blcV>zNVS>7bZyVEy^j)2~u`LerTR%;ufzDW^j4#kZyAJ@m=DD!*|#THUrs<3SMsv}-3_)u%T-kNI`I&NSck?sl*6!wK%B{u2&-HT? zE`FwL;jVtJOwq1>Zcf(W<(I5M5pI62T+!}+(H`4?qq}T(_~$nEx-y$K^x87((em0d z8&LAvG8@qG+A`}l@7jKC*tF})6m8bEumziR?ReL0&W&?guqoHV7i`AO`(phjG&Zn* z61{FHw|*yXD6@7at}nBGC$2BEekZOkQ@j&5^lR--TwkV`7}x+`NC<2g_d0a>-2ATW z$_?;^1i*9qWZlj@Pv+x)hu7LrZsVQ5soc8FxuMM3&AFk>+ReG4%-TDCQ{Oh-?;FY$ zZqiNgMVoZf_}6XH=jOTSKHpTPXrn&6Z#LZHFOq45+qeBu8o%autA`aGE7ltxvXcXo zWFo7G)iaF|GT*NH=XeHeV_hofeXcG8#&tzEo15GWW2+Ll!3*jdJYSdgKYDI9o`rK& zs=jPSdWV=F>RoJIelmn?u{cjXs;n)Wj^cQ>CQo0F^d#{cD%2~zd-!8AjM2ZZ%OoR* zcXCe7g9#8I1C1$m3wIcS`W_XVzE!n{y7%%dlCp`44aJA#;yz)m7$`Hf>EGD%T5_AP zOBl}~j0l2_j-kY@hC+<1#Ocj*U5Ffj_d|`9Eq*wRKhXg-HCT#H0L~ZA5~R8CC%PVH zl-w>DB&eC3fAz=Q(RF2fSXd8pvIm|_R!UU;Cl+t9vgtIl$;8+p`S0E~1aD63_TF)!Lmitv<(}&39Na@=VX(T_UsN8+86B}dSq}Qn95oFJ$}lM9b%Gci0Ji5HqhJh3X> z=GuWi>UcUg^~`-M4jBDB@V;pN9d2)9am}Mj@iy1118;YKOee8}PD6esak-uNW4zKr41k*^mvqc+Hn8>$zYsIbjw8XNob3w>1?#!tvaP=QOUfwl zMp)0-e=VHRDPWvMgP>*jgXz09@CG|M*ZI%GYF{(-l8!motUJ#G?^0rY7*X^wQP-6= z*@h3lPAnpuMa-YU=OK2h`OP{E{Gq=E`x4765Ck(@fw2{=lzDS(eU+Q?;tN*3KG~YA z9@9j0xNbM%Bx;3SD<8XVL4!Pb-=t}4p(;oU;>X46$Xi3>J=j_^EK9vTy zd0M~qNbKrnxRrE7|MZOZY(3pI=~_R#DDb*y(mkuHO#fEWFGWWrmn!XITl?P{?$b}! zIasYg(pQG5>AVE6K?9K;vc{j`2o%udv8kD79O3*5`0E48X#3#J>pD5QRs3b! z?1v8BK6CLGFZ;=O=1Rrp-06ZF{GMD#7A>g6Iz4qm_;F&0mU9U*57Qf%fG=N zSshAOZlc-XGv|xF?qWLQF{3@`kcQ3&JjY%b`U!2hN%txsb3@g#>xgoiwFA+KRD0ya z?9Wf)rcq$3_KfVCGon8w-znDVyhV^xZ6e8=N}PS$o`|(O?a%Umv>pXlMu~Bn@6tPxh|as3Vik#nt!?%WC?k zGYU}~+W_=g&xZJ1>9~$bc7&ZP{S!m7>mggDqSezRvd$XLf9CQS=Cz-+}}9G{6o19=zRJn#0f)JE06R zNxv|jRQg1d4TDPQdL}LJ$>->*U6tJI8Akuj8J6F2hUNFHpUiDF8dpUw%E2=B&$O&5 ztmAab44celR1?@-O@Zmt01Dzfgmh{huFJ{ga)>L_{}x$`v6TqvcKckYt{HJGL$O!J(tG)7F_d2&l~f< zb@8cjwOnY%C);zx?&L3-M@K9fn$RV9bmGtuirUUc?~8CqnURQQ`nW>^kx4q^4lxMJ zqX8!r|*34tU@8U-|^+eyll%@F z;RE&&)3I~d;MsjiK_Q~KK0nX2I$2r8AV4^z`C@Wv;!)$fJHgeMhMjINlXd|y zl_nx~`CvSxax+CWryO<*un+w&61ZHfFxU=29>n{%z`wobxr?8zPRhRz6?+ZAEJ6Tl z+#TQd7wk3{-qf5k#MC{G35o3+819BW6i6n^M`2>bHIRKcvoA|5_nZ?+Im=g%plAO- z+_gVBcg~X16QKPc>!pN-M?khhBO(fKYnp^CYUeIc!QGj@x{4W&IX^f^CqDhRUt-} zI+q7V1mYf-iM(N^KkP471P^K0y{=a4-EJu;atUPd3ttYx>`S;0BA0cp3X%iydSC-o z@spdq9yBOpJu^@jiBnWGsJhYy7<;jl5aV(kl(SL?4iMJG&KFIQdHcumBA64=I3s)i z^`>}5Ku9#tSd->vYiPr}XiS?hzGsJ)vakAx8OJv7v#5XEcb z9nI<=%N=h=sBtZ)Dp8fn%*#6k`>5Z$!Zes&E3?jhT7ek~(PjXIkHuK~c*j)tI#*Xs z%3MxZxFOC2)Gi1Pq+-hGna;^u;`)38P!LBC! zKw@+viQSln;}J)BB_OdHW@}O#02N_$X~DJ#y$EhgQVvaQp3;~Wfe}n$3^*L z#9JZ0MH=tc>K{1!x7;`R%>m5yH^&**-*1jRn8UZ`jOKiG(xjj* z*=$?GQ~sa%UUlqgq9EhoPL`vQ|KFd)9S{~V@{oR2R{CYUCoqWzXb?igy}?ZZrx~m~ zhU;qHTQ{+%gv9rf_3{t|VYS+Iv8TC4dr`9ev0(eu#5`7rM(elhM(1~7^=Y@LcP+Uz zGIbe9VvyL?H|xAe^x_PhZaG?Zab_Y@yBi`hYnnij?(DMB?L}H&bo9ol@_9J1ux-6@ zZ8)27duvD>pacRqdXpQQ7s1SWIl~QjwBtwbVSgSazudrd6qCY)09JH79qv-G=yue< zOW)C=(*O1!50CeuY_k7&u)n`gAFF*|iK8a|htZD%gqO2uTlxX{i-t+pdQPo(Jiolq zec{&bTl{nI2LB$XVf!~;fl3SKZ)+&)&7RAr?5YD7<5nu+Zd8i~-7E!;z_okKF2}1A z(+`7_Z%0#&>&{!hRUsr7{0|$-PA$7EH1B_ND>E2{f+jA{TUJPCEpLWbqI0`Ne+6oWz=XqLpIbBQ z5RKucx4aR73IA(rdCLEL&-+({$}b*R5fc=i>mT&)%`8(S2 zOmAZU^Y`1dSFbnPncV3V$poZAa z=82y?AHw-l6UP~}KsR(jGTFjyOs4PneCv&cON%oj@#HAKiPxV+%UJ{jBeAt5ok=93 z85a?I@r$g>g&>(y-O+#z52y%{1oDwgmC&4a=?%iGNShel#5S`EHLGls#;)HaDmFp8<6$ z;xXg*c!-(6kz?Ev-AEvD@xC9i?jonF(`nJlk2t7;Jx=l&sN^waxK8kdcBH)vNY)YEG4@wm+W>Ri7koq0*}d-QK~;&$JN#umAlo`hEBdChQlQYNTTY-kcmUo!z}^ z{Vwq@bSu0g93cJY$6Wf`{ewfI^LynJ8VT}_b`O4L{-)BZ zoz*)Z_;;;Jl$+#V@BbY1>XoXg2Mtnt7p`7zU)H`?KJ51Pj!(LWxr0+xQn@?|#5081@(C;_L2XAx_?GMacOo$yk*nKPO z)~<9^tu^>alUAu!+CAFWl}fc!Y1D!W6A^>(1h@k@<-8ZRJ6A!u@j0xXQ@?ii-}AYu zU;f&lJ$cDgS&Z{jL%fjK3d#J~}*>Z{E8f-s<;Nvt9X(`rGML zeh;fxtzPHq^0MAxeSoVEjcVmG{CIVFjq_OT9Gzemo81aXee>7mUvxk6O4n*FtQ|A& zwPeohIPVjhuZ!*n?pUpUdC7a?J1RQ4;;2`+Kul?{ylVIsN*wPCuG8!kpbh<}2#m8qWz)tWTz{ zgE#HqGyQi?o9LWyQI%-7c{0HCia)DlAoE@0mpB#_>>tP+?;q~-nXa85^CqjEpU7Y8 zTe*9EMtizfr;~Yc-94aD1Xt~PtBg1FcDahbM}(;5?=SrK&B@z0`u8pVR^A-E{e@Px z6)(`;@^Mq<8jVyBPELNtK0i7-JSrb?yT^xb_#9SGem*#=pg)3KD$8#F<3aaO_2JKx z8)9&%%ljR^Yfgkd8pn6E%m3B?BRu$U7W{4ZE#r^IRkQwq>iT=59W4A?3TULwE66r;H85e|L|AcH^p5rz2fUJ#?+}M*x~AV zxm%Mvpm%h9a&pq*ef^8v-;_o>vlaYua?E?7`=JqFE`fva7aOP7{)PAB^@PPhwEmx2 z)v4R;R#)ys>RYdSN%g)t**`qsc6+jQgWfUZ^z%u7I4!fTE55I28=O^uyK(&?{>h`k z#gukT_!4K6ND}H>v(o7?;j;I+#&0l_yIQ5kIzglGkmq%uF6uz_jYi?oA*US*O(bat zN1Dd>%_q8_Kh^jOqWk4J3PTH;C&wg zUyi1CcSMyM_Caj~tYCvXYQH zufIEZgQLG;k64aVI*mkIBR%_n5R!x@iqnrM_tI`fEh#!W3^&&t#>58R%()Ta)9;9<8xO5anZAcy z7vyvNo}Jg~H7^Sz8u9m~EG(6eCh_ty%|Nj*n>zCNz3@y&)#-Ai0cDfPQ09*KBYp3B zb%ZD$%E|L$>ExCQ%EHGg##plb;LuoL;345K?~;BwiSB(L8<*%TKzHRGposXLd&gV0 zO%At~yZUy=@aC18pMAq690ya69wCoK!u-MMu`v7?`V(A{u_4?VEqAy<`Vp24oDm&* zGDA*R51Wpe)bzz8hGHzRc3@+u6e{;I>3Kl|M_m~amV~m z-a`HaxEd=48hzTfH=D<^=$4QOGyZ&PcEn1P#W}$XK%}m7e)h(Q+>=fTekKZ&rA&vP z(OEQa-eC)p1lBdqY5phYpY^SYn7CQBFP#j(DO=x{Xs_*2Cr=Iz%=T5mqd!Xgrd!kC{lCtJJ_!{k=rMDe8CyK0B$mBwYgRtgG|6qfN%CTuO{ za!s=C6`HfKT4`6Rjo$B0(_>9?K^f?ct|^zzlCm~JjcmrH7lXw!*A^VL+zo4NCYZ$m z|I;eCAN7eQ)*9zb8{i0$y#_xA zhd0`ik+Blr)4pQ$S~|oi3%xd!(|pb*GKq8D`BR(MIKpbWbC^qB1AiK-QupfX@a~$r zHW%S`*p>)12HO*rB$jA4NzUg?qm&?~0#&`cyK8)B<&zoyBf{z3Bu1TMH|)*X3Jbw0 z=tQraHR{j5QAEeUuU7kyxB7q3pfUl(h_=9>UH~F>Rag^|n`NqqohPV^0=y%^H;H*T z6C2)BLv#HPiW(fqMVKDi_nzm7&t9?$2wgTb=of;S_4R|ux`JEs==Myu-h-f6t9;r1k*Z~0+&Sw@(#8>OV`K@RJ2p-V)D)T>$12U8_#`e+h;JI zuz01G7lNr?DyOyu8G_)Hx9T;?N;_KP7GczK|CBN|ZEHcau0$U9?^&V+6{qG^tsZsj zt!~{uftG?7g6TZXmy>}g`;IfQMMd|YH}e*=d`2-xbo2g=V%(k=thbJPRgu zvZ0+!rsvSVB(eXBv-G@tF}e%`2WN?!XR>o=&bWf(9t!z-(;s{(d1r4u$n$lnolYs( zT%QLfbrOHfJ5QZ0`zxG1#>87!dRHj;Zxqq~_pZVZ9BFaN`tWzM21UuDOo!tI7K>Fz z0*QG5#Y9t|5hAe=XDe0eU`?{{U(=h||9xsap4f;5g1-Poy+f*rH*qScdIGHQ5vkrS<%#?y;!pZ_ zI@9-gp+?>Nyngdzcz-sF7X7P1>hpO3H5lG)5i|dC3u(HTbVb6; zN6O2mDl0I%)5s2Z_xrzDVTw=s_OO4uc+ENiA`8(u-wD5sWrXiwIKa{?=DqJ!J0U`7 zxcT(yR4@dkixkg&-}VuALa+!%#1&XLsP+-5{UsvODoXE^ZC}lQ2PN#;-8<#Hq0cZK zjSQ|z4VOvj-^TrjUDTZ_A^(nLIjBdff1%#t9TW~2La! zhN|3K@@3>KztlRos3*@Gez%o|z!Ih4X!m6I=r{-t_xIl%>>sk6f9vh;+w{AwgE!DQ z`EKi2Ri=Xfni$WNI;i(jSMmQ!LHXdjHUAS`zVD!B^j$LiZnT_yhu(b$@kaXHS5`;* z4%#^1O(#&0DTy2&r}q7Ok=Nt@<~RJszlX^bAJo57=KYfi|D6xM@n7H()!&i6)4Fa? z=gA#WX9q+n!`?A6-o7G`<#I~H_f)GXk%oae6ru6j%ArI2DDF%1H0n4q-4-WPsfY=0uD{@_2}=*heJ)L9apt}v z{WikEl;*!g)A>w0BoR;F?U&5lwWdY{m+GSO8f(vQq)qxBF6Z3$MKs-uM|c_-?$I}O z&2(itduP?_aCX>8JAzFYp0ZDQ2xdlisOB%;^cKMj8l)qvxP|VWKMX!yfpsVqpko8- zV0BH|O2=y$IGaVIK*99iR{*4_ZD`tBV(Wd$R8W4u0f*nt@NDF**iH`P=U{Bl=O zXXX6k0;xiS#GYPk(kTSSBl%IDJpz2h(BJ5aj0!ty5*bS#d9=D|~jrT>45qnr^Hxlsfd3 z_8iPhR#5K(Ey1irGTFmR2cJ?kOw7M zAX=fqdu+5f8$Ds80D2bBMD#69)IHzkZBg>!=0V|AYJT zdv(ep{o(8Uhl6l?ym&3M^q;ii|4{!2R>$<8r40Nb@g^DgRCF!=S<2RX6mBQ64+j&k z`C>1A)Jk*xI40^kQ*Xw*l@G5kV0J!ikW^T8ixVct7JgsKwS#-`8()*QB^b!^GJB*E!%1cB^DY=EKB2=IL;!xc=d)m9C}00924b7)FkXJM z^mdTib=&rFxegAkskO*+UIdTE+M8U}B>0_`9sIF}P1=8vmC7`XjN* zCPH{A50>&O!>tREBCbXF#*sYODCBcqV(T_b@E>?iXYa6_;DNh8kDV{PdksWa^5Hf? z`EWKLj&)6VU6zL$8&6L`0iK!+jLFt9Dhej5z&ia_T^za9jUNw(qahrk%@V4#07%Z& znU?Qn$&~&3&=dqeivOkZdqNu#@Om^}F5*Yz@fxXnCPFUD30DHkA>bM|d84@)^!e?4 z+g9`i2H5fZwY?^SA6@2bIi5v2(3C)!KYvI@qj0{Q*ckwnyp__}M-t{j9q0MuGjbC% zI=Ag~ABxF~nJ%+OS#5?kF#Gy*xvX2Hx9U&x`0ghqDx^)SyF4H!Ca}LHE&=~e%N#}o zzmFagwsXaA+VACCW^N{fr)>Qz*?w!@IIMb=TJNM;8y(#nnR$b{QpwH{dqbm<{^8A& z**EOv(vy2gI`2iBioVF=1wpsnfbtCjmB5AsE5_Yon^?-@aIdsah6Q*o6uQKNttSYVrWvJPb%T+OJ^xD9g_)sp|O?a*6cNGpkN_GS!O*&y<+=*G8{1s z)x%)K&yHdKL)`P?KHcSitzYZB%`eLn6h0mFM{xwFdHr2Np96TY+*Gij+@EO24r4Ha zQ}^vLA)0amV=wUV-^#E@JOy=xE9KuV>)EHv|IzlJ6V003PMMSs-(jU_hr;K>FfA=M z9i@;NAgyO2zaou?tUQ0isA%H?5vv%DjyRwaCj7fJ^j0s!|l8=7HC z?0zO*j_%>mUBpIOiR)S%R_l2hOeJ<5;g+Gn~GD~L0 zD7=(`$yCHpvN6Ty3vh{X#cKRz;4rG>G2514H1u~lfb}+2Xs+dzehDnbNDS38usHdI zfsD6~DbP?J#-eW2Wc6#aFsyOncdv}`2E}lG*D`RhtYd%aOt>=^bM8F^f!ccpNaod1 zvoDV@*qWmLX?O;I*h+fYyTHsp=c^+=6%yKY7GEcZTgM!U`;>UW+qhtCW-etG1!|X{ z%h6ZkFT(VRO~fz$5cd$X2Rb$URx-yQ>ldhKkA&VP!8_nayuah4e3~y$;%_$RY}8+{ z*JXK&{yLbBcajNvAC1fMn8ax!(`2m1cP!GB8iHXbf78uZrtMM|X9to-2&;V4AKNnc zralf9^N~%X{Ib~5AdsG@paG%rO8VyH4Sg%V+`DdaCRN{@dv`u#u?AqtzN~`lk8O ziW1|MpuCvJaZ%ZVxm#OS=;W2V6B|f;JPc!gC1)?R=@%wjCm!f**&&^7{dSMnb*oHxXHrWgID$CG>6dH63yr z%M9Png=tfj3i6WM{y;O0zphVkR>=WMh6%fdp0MAwiJ@F2ToSDy8~^jWxASXcZnpEr z`4!*0J2?DN<0^utOIO)q_Q{pSrG)r=MN8m8EJ10Nwx(s?WxuFtXl&%OcNq`|PNi=f zKblUz5a!hLYL}i7(FQp7w`HK*`em+7!llzC9g{T3&94N(@TR{w-&=zH-Q$3;ppCLd zzsJV6dHP_i&Dj@G91)U_)QbbtgO8CAJ&}Y1^u8xPAf+?mq+s6nBwrs3)lG0g`|W{w zI6WA`Z#l6`=Iv7(XZnY2wM1|p>yr0bl^>sOmgfNlcd>M%Il>B!T zPq?q5GBB`XvETj}y|$SIGw`k-E*bp+B9y-e`u9-(9?4(A+{~Xb##Ua9vGt2&AmfDp z5kF!0Rc6}2$1vS?v*E?FWS?CtHzA5zaZh!FTqb*Fxo#^Z+Dgk?Gwlc4U(m8fbRXE4 zeyxi+3Oee-FARtCQ#s>4O)`upiJ%K^Ls9d#=gkI~mM#?mB3dYY?a6Motq-vo2Rtha zF`%x?CetK+f_IpyjgP{q6TZAzY;4V?2NXBSxdu z_m<+}hBpIz6XkZg^_SUwwUn)cI#WhHWmx8{*28Pj?p*b*s#lj$qw`y&Lgt&8CR{<; zH=_LfP;WI9#7n65I+r^4jyhUSEY<5pK}D05cB2LXNI}>MhS-BX4nzpF zD-tJ@MCHNM_j@N6=vFfU=_>{c6aS-*({z5)w@Fry};61 zqTcM8&`>Obt=P{G)Q#`T9Cfl};V9Ky|8(tR4#hr8e)%>JrbZ);Qq>~J&TRNFp?|6K z5jrpQFCDaMSfS64a+{YAoR5%|yhE4g%Z)SD8s|z2(P=X?UBk2I%xAoqr?dR1i)C zhvoD6a<O>dR{FrTh$1W8F`2@y?Hm=j9^Ck~0ppq6-EqW{ ze*lXdJnopcS^4~@@f!&E0zQ!{r8{igPbOZyEm&v5iO^GKC-mX9h;7o4py6iZd`bQC z{>$#`bSMN+FwV_zG|3__%JfIuCP2EDU@4o9`rl&wFq(Z!J5Ih=S(ni)A!ZQ!e02>O zHoM*hz-A}eeT0)p-O5oQRyo|l6im6wG1)brfBhQ0@)wpJP4Ap-tS#d^o0~m(TJ8uJ zOuR<2HOaJ*8@_tta`XQ@+#kzQ9?njEzPe!RWcTEANPiD^5Al~ass8fnFhcR!lc`QO zAdCA_HNKf=`e$&DhLO~edmIJrJ`M#r6trQG*nK>j87AGr)Uz;nc#vSPL-jtw;S*1{ zM#BK*Gh@h=71sBb-`)wo_&7B!ZRpoe%y9f<Ae3SZyGe; zHI~wzcdg1s=^`OSJRjUYh3Vj)?&;IgUiy?;oC|oyxFwZ@@9}(k|5q+UlN*7VIcE_+ zE-Wn5_WK#wnw?;NT}P)t)9&ZW>=~s9tzVwo9KOP>OeO6)eS3?VzIiknz^IpJpjNiczErG=6?He5dqa-~tD0;4l}xL>|W zoQ@5()-N8yF4slJg8FnU8V07~e;oX>yL<5FpFe5cPu@gm%r|&R-R?GOudxiJ{5;V_ zpz;xiaXok=wXfEd-`+I7j_L|AqURZwBhDk`=j%i_5RJ<%vw!=T$LbQ-k!#7DJ6b6- zxw)mGetgnU!)BeI>&40@dtoVc z+Ex#2s|TE(Yjyu|AB@jFIGp_>%9Vy&Q$EESQbNr`v1*BpnJf5CkS9%lH$mhf(?e*N zte?&u5ttfa-U;53?GNTt4u%w$3}T`MU|rT5IvC~m=?G>J@C-S*6?v2@48f>bR#oLX z!&vBSec_G;2JbY+Ye!uuHr|??aJ@RMt-N?xFv_X zW7p~QrpyYAAFSZ4c{&p%6syZ01VylX=^3tAUX?`8 z?y}L0s+YuAeMx4aOh|$V5d7fBx+v0@V1M^OWx~P%8sGdSX$0T7;%o- z)3aLs#*dLfQJ#rbEdWsR5Njjz1n%q7q|sfxP}#CS$E9F6?rXWh^qvQ9efgNO{1#r8 zu%$NYpbS*?1doV&QBL@lBYUR<km`!;rC1>p8_Awf#cVF|F&ffN{(mZ7u*G+$% zg<<~?xoJ0b7s#!e*n}cH=`MFa7E@kp2EPgbD z*~*o*59w~KF#dnN>Mu-R)x3^gHW;a!1 zCPDE^&QICO0f-N9e*b^Oxs_KFBY(x~OL=h5Pwc6t#r^VZVDtlM6y@;{iV(8f>0IfV zu-|lhn=~00-PdL$_T`G^`fjM_lO{;N=_JekqdwxBL#;j$7``)Swb^ajDa}@#E^mlg zm!eL+O@g+@)`K2DZ+UYnTDzS`jVyJVe_NJ(TZ;$v>L~U0KT9$#=20|z%frt@RMe{?&hFQG(qGDDrm3%*hKK~)Z+!tpcr zx9MUND8V-D+YClhZqxC#bQjtrYEE1i$W5|Gw}XG-oErSpRK-{&?{W?lULCm`)f9L5 zfUZC7<7rb`-We|xYnWaW!Zd9i<35&bj75IUA8`ek2Z2||go7fNi!XVDk>7*S$i5xW zT`sFZ6$r#a9s#9kl_k>-H54Ihq}(Qx_^&RHipVr6j0cb}EB*;ae|7r@bfTr<+@5et zWo)QzmeoUURjR+nVl&C!e0c1am0GRiXmbg^rs`vek~ef?Kc@0#R}R-h(i$mMj|M~g z&M9NiI~tTq0gdwNh;B_eJILBu*@z{<54d-Y&J~N{pbbrkX1E-WpJ=bMD|-!}%wnGDS=uZnrOfXFop8 zO0RkmR$9M@lp;DR>~>Ueu^{2`FqzT}{?GoO*U0pV+VYgLB{)UN%Xc(BdmyzlX&s5E zEZe{n=c2YqtonB^K^M`A;YUpT+R|!2QlCarAJaS=4sM(z(0B&y?aK0s9VulKTT3$~ zHZR3&r?MU`4L*Fb@yM8oDKQ15vD8GOBy33j{YkBNsG8ip~@gB!I+p{}t z_a1v?0nfCQM)w!g|0Oa7of>_eMf4^Kb|NYQp}XX`o^2DyhU>8&Y@AQw-gRrQS7}?1 z4&p!hVE2tHL-5+M;~o*#@RF=B{8k59NL6Ua_v>sdB-0scM!puQX%>Whu-h zU-D*3v$aRSkZUaZGnC_fPQP`(b4@E`7o~QK!joMHC3G9ObW*bhaS zygIMmi07!@b!g1ZrXx17pTrOEOw25=JobTI*ZDNVacOQOghWE*0NAj%6j_NjR|A=IS zZv{fmKj1Of*~xqTBm|d!xv_VsX+yeiylQ!M_KNBxf^h!jop1MiIeoBQ)F_!=2W5@S zoQS%UXucv2@DKup?yqO!kvKEgY}LN~`jize>Wh1vnuUuNE}EH}$~4+}==HE5i+{W7 z8n0;bkg5Cpg=JK!XMLZ{>*(!h`mhd0D^Z|g7;HjkLLG{E_ZnDn0FnomHNjJF1c^U< z4_J<5$8Fz0DieisugqfVmvBL(%w7{#+Utth@HoG|!RTN-{KwYtpQi5`_LVmmjgr-$ zfsa5Uy?tbyBtMl-pUqBvb4J*M^}PUWv+#S~f9-brR7hEM__iE@_=nw@IAVkz2HSE| zjltpWF*}cc^@hq>A2r5ES+$ZG2=lmlk%uTYlg+A^$+nH@whlfA$USywZ~Nol_;`l1 zFN@dOPj*Q#!y5zoqmgchJS-5NMBNdvQ7(k1fqb2Qg_-&wfigOYU&Mxk@*`-D2mtLF zw*St?ZYt=r6rlz<&nB2oJDWa}znqwSgGNh1ewFDP0il*KOPa}eY1R48igf8yd|^R< zoK4E_Y3oH8fS9mS+HLv$Toi;UnfE!j&xW@dg22!Msacp;#{}89s@Cd=0Tl|7bsMR3 zjgjJ8or#4Am!Mf4I(F-?f0g+zn~~y$V$FKXYEZ*J&fs7HHAHDV&h8^myAnG|Lh%wM zlgz|75%(uj4`3Dz`?RnvvTOUV;9i%+&`tM?oQ<(|smliK1fnp$NFGD=sT9+)@He%gw-+_8!RS`%ngPYAWMcZ0Ot_pl#Pn-cDXYM{Glwz~WfZ8v;F?t!U8CaVDS+306!c&fc6E+dVTQ@j zFq(XSqnJ?`uE{Bmkx=&ex$y{gPZOCd~gh< z?)1KY5Lg`FY`5#rPyVZ8?!!F(5)(f*U@gf=+sychlfJqkNq<)+ehu7|xd{#k3wLug z3T!o2I)vuMsf!OGJ`aYdsUUx6D&>S`#LXi=k z!*Nsp$?_1#6NjP%=J!}*p2}%7c;cz0N-|Tcb^lwlRan-Wslt3-X_Zsu`j%gII}_Mj z_{|ZFMUPS{Gq0;urTSGe{x&3^(&0ITrF$%$Q9~!1t5oB-q$LmDTJRfo1>TkuwmetD z*jovHdSY3D8KtK1wKx--(SzN6p?iw&7P#~*zF^Fq5xw||p>d#Pz%N9ZTpd&yjYT7S zHc`B}{>@iXz^_qSfNBRc{!Smuj0RW{0N)&Md}t!(7)>_+|7zAr3DKILiOOh(TW?ig za52`$fYA7P7gd)Wu3)~X+pLLb+e%uEoNZ115oj0 z?eu6%4$c@9_`0j5yiL$;G9UBnz8L#>Hbd4EG(VY29jw7L9(sD!=NkG37s?4daj<`f z)69G2?TYoDHK{9ngA^EJlqYNSFhWe(S4W?!t!_8#Lt=}`Sx;xeSWZY-UNHom@p~pJ zl=`>^yAfn8emUe96n5*tJ+jlNs8V-<%1=Bvcd`u7i|c|i@~bzxrpy}R#Zy&{oIQuW zHjk;lgglG_Ubzv42SjN1TdAT2nOa4}V4<#m+rRp~hTx5OF zNZPlX{vsMr2_;VFhD|Ve&Z!@tTW>Bz9E*z(z8n|jWMX9!yaU)6$~zM}K;hn@S2!M8 zpLdpLO-~*DsO8L@Q+Fh$g?Me};xt>vpLW4{&m4%Xz1?gKNhn)Wt8Clhdf^ud=Qd$z zl@i*T7&NEucMKfo+w+lo?*~HSgJ#ZIA#Px&UWSXz>jhMyjNYtN9ZnS;JxXHKeYz1r zl{U5M>F|3nIXp;r;k++y-;A0V|L9E@=bDj93O{NIBY0|Pd%Ny}`A5?}0gBo8?E{iG z!QGef!yH4Rqo)|rA(VQ z*l%>?Wvq+oqCbjm{Rz5^4KeY20$v}mF zt5)wSYB#T=ZoAT{hh9BiUiGROp@-G8YRC31mtVO!Tc3aaAuMW>>+N<5^SW2(y{J>~ z)_ZQgO@6oX>5w|yjJmztV})@$H5z#dl4)^q{7 zs?rbET3tOg+SBTI$ngZ_LMwvM7#CcZ;PG{p(VBg3G{bKFGNiTMU#TdYe^8K*yLVH0 zKfkCvHtna&N-KZ*^81!40kPyO-m(}g>gj!s+84h^m9wjkJzCI3p*5(q&km87JzSDk zr6sIZ(FthTx<1&veAY@iUHo-r^VynTLw>EeUF6l)wClwhoY6f5H`n9tQM0@bE(rI=nr`o&p;Z1ralRl37>2e-h{tiAU zULAGSCz9rdgV7f_7|3XuqRyPdChRpB8t)jYQk@RawuP*Diq|q{p5gJFjZUK*cC6jT zKh#d)pW&&P`Q`bO)bJVLFIW%C(vffeA&)UA>z-v;-`I^st>80b@p(I2H+y4}`qgHY z`@4h_Iu~pdJgfTYWj}?Q?#2fn6E0ETH!Q)k!f>Al5|@qk!>&{6skpXySc z{&zOOH*A|Wx90W27vJ|&h#u%#E8jn8T4IyFErQiF>k|nLl;@9SP^o3{eq!r9emlPZ zqx?Aa+vzVC#Cjmk31>L|F^x{t_ax0RRhA4`y|!_c;cp$snuZxY^j*V?j>pN==W`d2 zMqkpU&23tyEw3RNCsbXdn|>NwzCi%OT(;Xa^W5aOtxloJ7;PC;qaNUSdcYi$*%i0 zz+bP(nu=j(qml0igRuc^ee5+3q@1qwX%%Eeuimx=EYkbT`eV5^Zsx-~cod4H)`GDY zfvp=q+QI$CmO2K;bkqpd){H})^*lF*yhn2Q;_lDKDOE98j0*biXRqnEfP`|t+L}$l z{^ol7&(~YY)T^6mY_LG_UK_7qfx>e$F2Vu^mNxl-We_%_?VJ!@PFb16IcQ+q?90DA zu_tO*?GyW`@C@9FkkrB(chV1aiyLSXc{R0ruAhkJ;JE~aPEygWN6hD@>E z=&WN0K@_X9x{V@fNTvM$0$;Xc+SoGmnvu;z;}q|a!^vm}$F*O?2%c`6OkXpyD}66| zrViPyzU)??sqP;nq5@N)XMYUSUIt(imNpCtO_wi`?B7v6Q^I3PMv=$TyLYZZlh9}vuidwk$ZTZ6FXRs z7BKnNfed!Br>kfWihYDB85#;c`s5w%z|mErWzHOkh?6y4rwn?cgg3_hQ8Z2#$sJR- zcnd@CBDK;rWybvh!q4z~8r`+xnkY(Ht#Ofzmt%JHhnIVUeyol_4qjpd6oL}$H(cZp zmZ_JkEQD7VBSCRbm4`8PWcUZKKm0-}Q)!Jq%{o<$A`hy6oQktsd1D~rIF~>00bU(F zPb=E}Wmu_GkN3;uRjFgVi`(op5p?V=yXVXIL6S?t=N0ozF!`O|=Cj0yl`;>*;n=>( zxwJt++RUaUbK*WIh2|ymJ-_V-d6-#0`#ntVEbXj~o8JTPHyT5cNSd*~(S-R;RomaF zHbXPc=4xM_iTy6`ohp+qiOt;nQDm`f?@T9z71QV%z%^>$7zV2Joi1;nit7vjm-Cw) zt?S$V?k~GX;r8MF!O`CS@!sLd>tG3E@|6AueKA5ENjg|gm-5_hR6E5#XI9Av7B@xx zBBCkd2=SI*DIa$ne=RpnBfRdOIh9z?mVwK7K_R^8GveWH|Cn0P zOfQ9%#a*nEnY2W-{bDXNL`O|k#PvSgT8`NZ2>zCAJdn`qqX~DDlS62X4)e^%IG?6I zb$NVR%(IWCDRh(Sr9)|+Nc8cO;UId<&dX8t_|5*A#AB_uvU%6l^1;DA9O5GRqTQ#|)l6X~WZsEkJN%h`ke%+rJ}$i;40>6NJnO$+6p#iK9DBs@Q< zo$R0NXNP6;t`80m%}nM7en!Mg0?fy2R_02xX_swDB^=bQ{1&$21t=TrFIQu}O#RZ7 z$)$60m2Q!{et6E^;AVTQPf?WKMLdHtn_|@{;myguz~!GTBDm26KwajC#)rz;@4b5Xp;bQX z9Pb}~3O^-t(f{g9m)z(@|AFW2`W(}i-`SMk4(}(22m1r>AYyJCS7EKvlTB0a?ePSx zq?Nn5w9hn{!{AqHFvaZu+PXg2KOnT~8YHr*Uau9+fwZwc|B?YVmB$=nB@p72H!Bs$ zeCs-9VOCFom;bTdI`F?U^)&03)vLX;>+|!<nw#`!dz-V!El0oQTd z^LpL6SE*Z}5z1n11NkzD zPNY#+R{D}twW!zI9YXv4g;{X%OS+qb)iqFPqwSS%cT;5!*6?}R%4*j7-ug&mlUjan z;MyDQ4?FbV0scA6aPd_e1I<|AQ!@~gTCx@}#@iIaubG-x<^!riiZj%1I-76zjx*K} z4E-6z+vIpSqG@~ z8?$reeG;qi)}_J&CE<^#XH?;bQEi#@;mR;^yDCu1p`d2ht2`Mwl1r#JBLb~c~(hc^)a zD6Od~$Ed>*2%1Je5BA^g2W-B#HP{g|l&#cyTPyM1Qbo9?9x+nW>Q$>%ulCG1;D-c* zJ)6>YQt9&5*}tf05d1!!Jt>W{d^8POntLaVd-Y#;*m!9=p3z9?lm~zGmvd}d-;S?Y zyKLqsahAr*;k3+I+h;^cy>{`Au0~Je8T_EpZ3n`nOLxI6{5#i7{O;#U`S9^Egq(et z$qT!e<&#GMLO{L0p}WU}^yjxn`++y*glV221TZSlfof_1bK!+_65o}A{%kgS5{ISV zcB>&@Z#h^GXOv8O9+^liI^DCEt@6=+h*L}y7C{&qym{5FUNqVvI=V;y9Pa)6a}nT+ zY{aP){-dAlSetosE5<07-|IPo?}6@9YW76%cU`YetJdf$jUzZDU5;l~YnEkeq0}E* zS%=!}v(Bop< z7UW$7grCY4OYF!b+|XsL@9ay2qkZNM3b$KVVWrdN*eAG;TGb}sJ&}2rIvR}nsS8@^ zs}L`fsqC4=Z5m1we-={&q$32qWUB?%{1=(~b>r%E#c8qgv8R48&I$YmXzeHPBbvV2@T*l`@USH}fq zvp~)SCgWqTpj?+fjg5wRM1>aEbMWflPuhIPA$X{?xb815i#5tG@EqR$@jhDsuX{(% zmAaP_M}9b=>*vvavIj%!c!^s}Vb=0a{b&@FZQEFTVw+#!>d(X|wI#*&(`ynte@*>W zyS4lhA^uZC7EcGDpnS(8#j{mp{UsL7r*%V>E}1dDU2;5*`Iud>%;`ERZnMBSAG}lD zrp|f(+O=3;HksT``Diijy-oZ7Mja^T>KKb}%RgJkc#+yV3d`nQx;l5R&z=!DvILG| zMFQTz$&il7nszj>fQhWBo1KpHJFq>U*)M@{7Hv-Hnm!okw5|@0v0Zzb5G6DS#DPEI zV$O~x?0P|Qv8E+M)xi8rsb@mkbopsaQY}KXcLPT$c{3VO0b>GLu|W!@`i`nx8k?4p z(kY$uZpF9-6>o&rbdv!(&0cp?e&HN&<9G_j+trAUjS1b5*R{Ku-Yrv))z~pl^r`?O zhYIeZK`w)x-cz3X?7G{!ZocEMTK%K_EpKLE5|y8^K3GbiANW=N)z7s=_;C&s-XA&5 z1iG|&uS^!V^n1ssPs&)Sd}Np&jav^oksTUDy*Z7&nW&P0U2JCV?I7_pd z_$Iusl^R}%=Kyd%BPQ6{^kf_{p`z_>~TqvFN8&jV#9 z^r27JDq<5N>;@f;Bi@wed~mMak6PbWDm+DDeab`YKm;V&4Z~*t>4pPY@cA1^OtcgZ zD8ygoxBfg4nKI-r_Pq)FU`t*|lx)-}1JtfO3n+e6O?q_xzK@+3_Iez9MLo`0G{Wrt z-kal{?7lIztAhPZ;sGea+!|(}sYBf*QF8qD`+~l$>BC#U(mOP)KGIg;cf5sgArq|+ z`*^mGVBO+hL4|DB+<~H;wf!N|F*_-(X?WRghVdgEC%FA!YXl|`a2wL1wi#^^sZSR# z>k69C1KvS^4uxAA6Sl3e-j~)$^S>&RrW#AT>+*V>CuYwg=Pa|7M^JdG=f-SwogZsC zsoD@cma`>C)xN0yH6#`S8-2RGyQlA((}dS@yF_&zuCKb9y3lC!foZbe`^WDu8Z@%q%v+>v0 zu&gfgy+JFmyGz>;3RGo{pNnn{6Fw&NKiw@Dn->Kko5Oh+Ntw6`+71I3Sj}uUNB#xY zC76pusX&ghD><2*zE#1AE7NWd;X<|h0tPjhi1N5P^}E6nSICn%Qo{Fv zx#X>!Nz*-CA*j!s4BOV7Vnyp-BrqPTT-*}xnQw_UX4BF1?&*}vO*s52H$05vnZ~R2 zFY4rOGMy_{W#1I^xBOn(GeXiW37Z4GSvKV2xS$fzo&KR!>-B`FQe>X7yOE`K%8?SQ z58IZ-i>auh@r>|(HTzmQY>}y%fLNsug7e#>UhNKoglPoCLJvLL5WCZ;X^~}4^xnAf^Z+n{ zeWGvfCc1gN8?GS!h+zS}v%s2_hG#LNbQ?$3DX?x0eSX=*PTfjH3NTWC(R|*Pv&==A zJGGV#6}J#3){lJ&Q!q195xpV;L~=u`rZ2kg{_uR*97!aV<^1L}{4&mm9r+XMLN(C3 z;F)J@W*%|n^(2UWuwx4M`Jzx2H)^A z{4?Z#23z}wpNFaZnc?4reOWAGvELhb1!2rZoJ?%muG7QzG%h^#Y6rUF=Q!hR zUZB78!L{D3#zsN4#qB$iKMT9Q53WSE8-bayqW-LD265tR*VW#;t;aq7AJTfixBYD# zFy9mj?W!?tw$khb|5f6oFe#Y9NAno3R$0RyHm06GJA(_VCMQdurS+}sGaPK+{4V~jo7snO}rmdM1C^7shO3 zu%SqA%5018&h-_DzeDyXx$P|HlARFZg019r=}+~gC_}5kf^ynOP3ApGE_-;PJpq}FDO>@;ZB0edfGeL z+2pMz8_msTc5GYTn6M>WbU+)C)z$e^Dl+Xg^E8=yJN2)njrmy_h280NUlOqb8cwgx z)IUUiXZb8WcNl6=0#HwQMW-@XVfMPtZb8>a69+GSaZS&5^d*(#x1tTl_kt7jKdPVo z)w!Up+1(VptZrKwKkVgNx@j2eDD;|Tf)<~b{+;^iAf7EpU;bC7u7;uUOE2v6&64d1 z^BuS5tw#FmWV)X0+LmLjzX?C5XLifR(ad<$=!QuqykR7QJnQVTN>z4!Zkqkavn2vs zztc!PFPk@M$)wOU;gwbNz5egie{dqSW3Kz-ie-KN4~^g~vwYl&GnRjIa&q)06qY{y zAGAfAfZq!Uv%9viOPWx;fLZSUWF$xWrk5SX!x@4Rx8u1zHviLhe0ksVIAW_1_pG@* zimvJGHL|8%y)agJEk~C@=5%)DhZ-$ClOO7Pn@Ge zHk-#xVEiwZYDuDyGa& zlLSy<2B$!6*xCu0QMxO5hMb+hzp7 za&1QHQ2p5FK36kL3iVN#CfgJJwmr~q)1BaEFtkeH_L+o#%L|I?SRO{kmM0pqA83Et zMHmwewHJX^S9D3i4BiaVMKD^7BaR$6ieVE>bQab1ZJG=t;U*E}1de<8Z^|(q2KUKm zsPC7v{^A~gx!lb%<-ghyNA|!E;5uj; z7dH=b34>=?mo&3BX0Lo>->x@iW2qtzww)(bKP-k14e-(WTNc>7IO^J5ch73| zkLTS;+cQXeFlOzL`PT*J0CHUp#>F3&hC@Hkt}lNzzuCiUy=`?}_`9UzVFjd%$|WV> z`$N4~>oh*rJ0&|_n2^9eg4r-ngpvF713$xu|{Bq4_i~gx;7}4x?AEmdf74UP!_T z*lfLu?Tcgn&UShB`j$5Um38qPvRv(7#?MlgNyn?xlB>%+E4c?HagY39VkYP0U&O3T zQ`(T?83OLirwMp+wyV)NsW9y4c;=JkXcSg&?{=BE*@ducdoia=4>!E%DZEc^2XfZN zV-&h*)B-{?9Pku64@eu7(|Evo`UCcZ)1S?_ez?2XWm@VBfAiIZ*jU_e%$4W`W6rQv z-kWe_bi-l!uAxi=R(~?TTferhKDF2s5%NxXpK??iYX@?$HFiDZ1Q{wfofyq`Y>98l zPzf@s4r|ID3|U*BL-lzv4^7UC-$X-@kJ!QDa$&% zq3O7+|M>Wkwk-SmTR$HqjZtdmdAS%T=5O>s^MT)^8K=#xPc*!fh-2pJMWyqh-hq$R zYQ>0t-P0^>#PfJ8rlP7ddeLfIU#3tPvf6fR`eQUNvuej2iJDbrG56T{HxJH-lhI!R zgx5_zu7&#T2hI$?8IM$cOh0`wwssfhJs(;C`Sd|Xn~z$96+`5p?P!BZW^((bBbk~l6~pxY{)Ny z=0y$}=1H$FHLlgVxdVT`ZZ7uHGN*or{zO}+eq(FOUHqHv zUHpmm9NJ@Bbl|I9mp{HAMY!Sa(&r`x@wc-2D+Szp;xf}mbj}<__CuIk zgpaja6&(Gaxu?p6xXQ5Z8;C9kp7^5zS7?m>3evG>sN;e>Gq@A`;TxgwXu7zwQ&2R1 z160c2>1KEO0F0AhsbMC9#eQRWT=^*Z-Pv-Uz&%)_7Jg{ecESc8ZekxtM?^Cb^`yq-jI?LsWvyw8 zvz^_A=YN$CQ=YQ${9Q=&FBK`$%_Ck%K?{NIXg1hsSp{@+2qifoiLq~u{R`_ot!c&V zu^?EL%Vqc9RthSya&dMDm-c7Bw=3N)*fCCPUe)TSTN>v?;W$mzpZxQZJ1vG*5qV27 zwXzCROtA>9r#@NKkgdS}xa7fk{lJ_-8QeIWgC9R3eI&{f;{qx-NasbUBJg)5>(5ew z-A-Jdjh1(b_=p{tc+IGb((+BfAEZ0ueYw!}tS>*73eLIsaP)mUVybh=oa>&dKR5mE{TKe*4jiAHIuu0repeHuM$>e zX9`>hDi{-U+L~%b@L-Httys%}S8tS4AefHAl&p_=9I7&PxC~Jmu_a|-ZA=GoVPEqw znLHntIyG8ryV+m#ODp9uUu98T&F5id@@e=_#WE}XRpqS0a_A?sBKb0c^2@v>gVi~h zO{Rl#JSPsIU%rKhs$BkPHZD&mSi!OrKIdR)%a;42hyGIvP-xEg=XiNv?fxLtji(uxg{Vy70oR?M?A&TDV>5{@$vFjaKh9^Bz!4MZgE2Pl*~eAz6#))ug!ITXxe+JtAVF z(fQ4qI^aby%?5scNDu6lic5F z44gb3Py(gT_Nt5lVC#YTDkwJ`dPQidsYuDo*OzD?#F@|p#;VNs>8?5ixr1)8A)jo6 zSB-HgEdw1h#=gcbvj9=_s-LeUUt9*n6Sh)k1zUNaxYMV5Wf^!)iPEw%NPO3-+3#vD zpKwl8u_=K~J1a=57Npg#s=s>4oZjwSwL6V^uhRKF)7JUrRi#&VGE%yt&2|Wev*9=b zwE$y~C|2ui!l5V77Jy0Ea`o+jWrm^=IcGVTfxTKTsOAa#KE#WoI9!4Bm5med9M}J1 z%(a5aoSjjM?gd;XrFgemVEeF@JGi1B=QHP12)}1@7}VQ1t<-G9CAMZkC@+iVpJVTz zAlw>+Q6&HK|3Mv;XLx%Z2caUoIj*lY{7p)|JOg#)AbCpFEh?8wq90zi(qg zp)$o%gY>@+yYjqo4*lN_82T{t7veyjA(O3pTziUc=bOTZBh~>5vFgBDB<>jgdOXm^5N@3LxqJA0W%5d4>;O zKwPKRx=m~Mo)%E!jBCU;s;8g=c8R{V6>h%+!w;GIU{AV0rPq`Jg_DS51U^{(IUy#i z%Q&7bo)F$X{ldh6ggc?bw9t4Qye{)4+jVk#Y1XFLI41adFYoIbhx$*hi5Nl|Ukef3 ziiwp7$U3K3S_(e(6JrfGg55fRJa=j%h)akHUQDSkcjBdmt($I%Mjgq%72kSKw3Wv$ zVVl*;hbbIW@le9;AF#n*8_TYtZ!ckdL;h5s-1lK(@>70Khuheuufv*}C%!uV)Stsf z?fVb|j%dJ8vWHUzVKzWDBJeKWbX7CLz=6J)>c@`QBfxf?$HA3-T@2mtd-!(F>FLA;YVgx3YoyNU*EflIN1PT-l$bFlChcg z^5TV;Rd9|1t00=8)f8J@RBNSG8crTHJz9G0&69mL3^u(g%9{U1JTa)f@M=> zhHoeL7WdHq60<1P@a2%G@Fe?_o7pp78Ij4|McC8+w?x|#|K5}qh=t|N@{XPAC5u)6 zW|o(h6K&Wpm78rr0b>Q$y}lHIXJKUr0S?C?yjce)T(}VO(r7l{yW>mwybNZW3vE`^ z?{pPzG~56SlJh0?^33uKqzbXxKXXLc#SH^tKHT}w!|PEt#k65AV{u}>jG)3?k(F@) zyRE6dpiZ_+m})SqqOptgaAiFqn?YGwu$4UlEQD;_Q7iLh?neh;&w=7nqBqNV4NYHK zTadpkL<9_#UT0tzi>FGpDZb15*4J(yK5#j}%?*5f4lIelffPo@rWkk(P(V>*@le$0 z)>_8XHpd=_lld^~=1R@b3YtozUrGvnk&Ph%F;x zk)U_arVZjZRe9Da!Uc{}Q0mEo{ya=}!^XneILol8H1P?m4J=d>TcQrKC)9Z8By48B zFem&T;Orek__LBL3_|$@i=DZDqRAaUBAV(`c;xH{OIaT&;WjN$_~j42=0%6|M@lKb z7dIX`Sl;96g4>oTfWbCWFA-8_4u;hYsGgMfmbjJ}Oz+u@hYJ+JBi5J)PoIT#%l2FY zEPE8{yu2l=O;3;se`44QM9#qz#n`u>DQqJ*5k+T3P}TgaAB#9)Q;_*nmG(p@9@QY~ zd+^fOPGww$HAOO_ixCOd_5w1&B=tYlb^!eSlr>}rgJc-VOP%#Mx|o7T=WeqL>yk~w z)Y_zgA@+E>4KMJmKayol9E`cbN>D^A+` zbD#(R9=pxUy6t*zfHC{W!@DamuqjH3VwK$#wC|!B zqIH4x?>;jh$rN#sfn~h7$TlYFaeD+txY@(lp&VlBj92WwLO*IdX7Z-^15jU6kP0o!nM-up7pje|+($u$U&3QZV7#01J9R08#bJ>eS210}exB*V93oh}G{+ zS^ZOUU7`G+7>g+uktDSx(=_pm7q*OF0t;s>)x5MG1V7-?GxdePu}Rn|eRmtJ50~}m z^12m-2;UZ6eXMsnjanUf)n?SZzU)Q4O6LQ8pEo{7jn;41jSlPg^LMqeRc9+I2l(1Dm5ms`siFU0zjxt(;xL2q64$6?HGKK5-qbtLRfZs?~cEge7cN zK1W^pebwnkZ;ox9wfe_K6@4=8MHlt!PNUmvRJ%dGT(i;QG_)US1-;4#PU}`$bpmX4 z>t0<~zY2V%rdiytPMyAC^b*0e$4j&24&HFNMyt_lR4zI5U_S^ybsD`oK~*p6GDe!$ zE=mbJzd@LlH(t0|iyC{P{63{quFv6t2MKw2l=53f>Zh~!Fvoiu+7-Jj1m~5P->8>q zp>G!Vb2bO%D^%OzV3arzU2VX+Ni?3;GVPi3x6@YKJ29W@~0P|6Wd(DJc}9|*m=FM6Y-h}ZR^^pG z4YxaIRi4+k`-l551o^E|EgzixOy58Ax14`*9t-O&*$WBFl+H)f84b|+E!n<4Z%}RQ zXauw@wP%c7#lv_u&!8KVw^|63k%3~ms?uxL5u3Z)svVd;hJJl)RKi|7xSzmVAVHd7 zi%p{Lm*YfyUeRqlAIc-C#M~%zc(nO{vR-OBoe*Y3(73)lRj~i1d+I?K!5PEO&-*_I zt$J1BMV{~P??1|$99};-0(D2KhF|#pXc{2OVEcIgLwHfE@jFX@oGyuNXt1wcd38y{ z%9v2{puZzM?#<&bU2&NhB)eyHC4>hDCuqWc|84pt-yiC&dZ$q(9_35Y=Qj=d8@@Sw z`_}wEIz-&k`p^48{mp*R`sE;Ky~Xc?;LX9&LEx1+Itl{%_ZVp>M-unxX#XTQ**^?g z@p3+;jxL8H|1)F0sL`Jj{s#GEr~gS|GI&6(o3$*~r4N4gL%SPPnvLLNGKbNq?yDg9 z^=UeY=l$S3A-cIg4!cK>?l<+){-*X}!&&(pb}y;lov`;8_J@f2?~|bRu~x2Dnqlql z<>tqO{rw89)OawRW1V{Om+3gOYj_c8-1~%ZoApkG=BM%N6)pt+8`iqjuzrY0T8*=2 z*y&adS*|-v`CaDi&nLC2w<&*qds1(Ib_wUpeXzStrqX;&R*w}-N3bGwR~B9 zv;{8fjcP?=+g^Wm)dbD{BE3&UrY3Em?&V@Jii7wXr$0Osii^^T3zL|qx`p+u#k}av zsuvnJ=uRh3vL3hc2FGk%ud+w~wHpqS)2mbVGJQ_x|K6(vWBTO9O#8iEhWktWt+tQ& z@89wL>+~ie9Mj~t^C!d$o=mYvYSpvy0nri?YfbhhkBFO)v(}i7mzt{a4|DEie?4NwxJEwp5&IxVMKLHiKds^zyQ z`7%^w|A1+mcKt)x`uWZNAoL)DBKRYQ_0O?cQ(CJztU!4me1zU_D9ffj?pB)J>(+;$ zdtNIa9UfeV|2Y2??pOcG>sPLaHI?6Tp&K~$o|msV&f6#<`a;ogXAgwl-(uMkd~bIT zKK$+cu(Ed`v6XAdT>`FHc5+z%T&B}Olg#p^Mmt1|=*xaJ;j{3u_Mfzqg2tpQ$QN_* zG@pI|1yX-xKND0F?Y66CSf7ABU(V@fJEx?R!y~>cE3+9Z^d#*m@8>It>(<)+xEox? zkNvsEg+p9nbC$85a4l4;hX5bI8G)BpOVTgqyGzG{aN#!^)13ceIgd_0KS~U|yK%o4 zj}!;f5(!R5e4ZydDRf(oI1IeQ#5?9}+PvH*E+}K;6!Q@+ztMxARZ?lv*&5Lj){-%5 zJI9q#Ycwk#>VzNL_eBj?aPVurdS2$%u#WI~z*XAo1n`u+G4syx(!c*ok@eGyu9id{{cL>p}{i#(CoAnPB!t1mL z>7v1|IsX)00m~iAouU;gjT4?j=^!B1r1AH9EBJg+tDF8-8tq=4xSUEdL!5eS)nDT$ z;+Bad_7|%+Uyf&@q7W>Oj!rc8vdlCSNLf86122~ei|6OK=2G3Yt_pL?Kf>6Z$Sl3U zu@9;JnYMo(Cr_BLlX5aCA7n_fpj+GP)-I}<#5Pft{YO2+;o;uV-Z2wCe}DSSH0Fo$ z;o<%{2ao@BS!q$Hi2oUlI2I-CqTthI`QYH^)qKGTh~pmaAMX>HN?V4SmG7h6_euWy zF#G)`n}2llnEC#BKl6P+H%{*Rm+bdJHviE3?#6vSrEOyQnL|^$6=$Jx2QHw^v6Y(r zN4_z+)|zHUiNCcmWDjqJ^7DN8T3{x zG$AIGP7C+RZ6HRI!KX&+Q>9Z2noBx?n$~W$BcKKS8@4Yize9_&I(?wcrF1rMcI6tO zeVZqIhd~Y}`b>;SfXkQj)Td&5PqX_eEo77K;lG6kZ*k*X&HF$LG>o0_axo09I#mSD zY%)JlZr0%pxKjRjg})zrau$D0hRGjF<3Tf^KPUdQLEC;R`{Zmy^u-x*Yfs@B!dCnu zp<3mhtrK&Q3Vr$U?f!oG<8;`+#k&V_ZCHz%?Ai7&zcA0%e6!Dg+XqDZ#_5;IRP<7> ztDW+jgYF>?^e1>xpHIxG3hdRV>rLZr6NY2;BqUYXNfMC&@fdeAq)ALPH5W4*XqM>7 zWb$Q|?iYLq3mz9!#*m2yg!@5L6<#zym^&R)m#^sJy7H;s2%A@D4VDGz-ShVY(5jyr z-R@a~WAXBQhD1qx6CCj?JVY)8FV%WP5*&mdFn8>TFYHZmx$s4-a-zR6KAM<2*-@)X z0rz6wrU6|AMH?%h#%H(w;G)~x+?~G36 z@15}D5z`ILuJXca*Ll%B<@Tlwp4lTNmY^syr|a)-lB66>4+IoE-uK~ki(}P)&i#{b zTeQNi{P!_`JR*fJ1j@mTZU}^ZhVhe*dI_A}^uvQ|cU7ylmrK>34%J zMWSgr&D>Q?orh=~T{;>iBfmf91cRbblO)3Aor#^GMGcEqxi7+k2*Ysk2`(nFTjpg;d25;!ILo8>OxAH%>ZsSr&ZO9>B z$@}b0)BEJ6AG9jHZoSzEPD73owTnlOO0yOq+D6zs3pBFj(qPs<;vuCS9KJ2z&=4Cn zvB`)Z7evGi#>o5B7C)M*2Y)O*gI$P;3@Gk$z-&P8sT3H9bN2Zy6fLrMV9x%o2yert zMS@G1`n|hjnnT}SAM_eg&B2XMB~cRs3L2z%;cR1#k8YcKu(M7zZ}_d|kQcwWld zzS%Gt>N5H^iJ_9FHSd`p+46ttiq4f=do_D-&tA#7wODtTD$K^aGy}8oesuj?ciYNY zvgdWe`P!;C#TqHw2;0vRevFiz=R#YcM7bD<${nLZ3VFQLwK4?#oEv>Y~}=QHf!A` zUBCA6r`ycW$H|GgV+i;47lD<31I1Q)TA#^tZ$}~Vh5K>#Jqbd@W8r*H!*0Hddy3Q=!3y z?B~(gEBXD01dPsq zls3xmQA!nTw%E}p^#rTuJ-oMkeYw=kt5uoP{iC*t8s6ItP69SFILBV5_Lp*_=t$|F zJ0&JhXW^76X6TGa=TD($5OPHA|JX|ZgMNP#O%-{bR}~ed3*ds69Y&^V_sKdaYV!%t z!>1DSjJJ~P9gR!HCT{Q+YwVHTJP?JPnOSu{u0uAqTv_;xX_$j_dq`}!B5@haI_E3_ zWUbQ4!ZX!VyBY~U&W??efr;6nLDb{nsSO*$E@wq~bl?0q2-&{X3%y?UM%|$1I7XM~ z0Qcv2S&v7oKLIx>tWzP@zF!B?ApN#5`eEsf*%YfsKWC$$ddya@RVF;AO35S;fxKST zy+`EI+XPN!p-QW6)xxdMA>Z5ay*Ptmn|b_>0Ok9Oz`fD^ke2dkqTpG|=v+d#zp zJ__Iy7jSp_mgnjb9TyWhXgM5Y{9hRR;Nd_Ozc@nH$oNr;u4~n(RcY4W(H3>3*j`^0 zBz>TgD#U*ADXNPGsE zh~seHpgz$<*j$9mS!TCNJ#voW={cUAsvc@Tg2mMRWESaMb6WQMhQFOne3C}}$T=Uy zH+$sL;3pBs5vF~V{M#8Mm{zTFSvS()3RzqdSJ z(=SVbK-y9HM)hXm*`fD)--}`~UZ(8AL~K2cyLh?7l$>(*n{nA}d+6RY zB_fBePr(T`st{Oj_1mp5>}vv|y`fRo4)MigX~`ubmTW z-+-3=N@wfOda1?aJ{Ujb-@gm@feVaV6v2rSLsJwj(?I;Ar?b8dR?9@Tcn}T~Kd7+W zFHC=WvDLUz_<*K%_?G%}bBmtcrl3rg6N$@a))x3`Pt^M0pBBMm`U@zWE!YSm>+6N} z0e2O)s*y9&J-SE`1H{-G_~lJIyLtcEs-L%uI?u0L)!jy`+pDzLIkzd4+W0LwZw)wib4InHzT@Ab2W?o40LQT>C85YLamDGrowl8DMgVx9Ri zSXP!(efCmVyKc4{tqEy*4g8;*r&E3Voy%PUX6ad z{cPxKW~fe~`ioRLugj2qZv5B5|K5Ke{?|>icz>!Ui2vKz;3i&-1{=W%-lFvIY>g7S zHk07L!2eSvm<6guYy()V;Hz`@ZNP@S*uVs5_^)^dG7L2(^Y^E6Y&rJKVwhU}e@ep5 z1s}yg81gHg{lKxPi5N|Xy;>wriy}-@#ESZC?huaaGa{bW=5sdJpU=_t`t1U7m}k-^ zU1{=z(5H4|G5r!xPK_b=t2f`V!?Ibw5QNC!yLjJ?WSOc>YJMKLN332O&w`iF1NWKN zcV%V4txrdA&;Z(>$YS=lDYz!PqnL;4KP{#cJYn#twXt z-P(UMTK+QxZ{0XJ`uzE`iPvyh??fDCA*z3@w|bU@7QNV2SZHEPq=kY41@LQu3t+p~ z-FCfIdl4-4`MOyz=)@zIz>X6>jobDa-XU8fH; zdxXn-*WJv#7w1TPbpQXPE38+Z$&+-V<%Y}t$jh?naR0YbPmUI}=|0Wq!)IvAOnQzE z)pXo3VZQ$e|nR{GsvReD|idG}|ctB#ZKuiu&2w;OUl)#X7A zQBr(7a(3PQ-R?>KI`7o$t2XlxhlIGe;S)>j0YY)vseaAa$fn-r;M9bO(QCYAFgE@i z+J8#HZx{6n1pb70Iqy^l*s1>($oEj+qkn5xsMoLFaO4}ony7jsivMB}yu zPZtKI2klOySwHvfg@i7>9WB#)McXWMIuc4iu&VKoq0ac#A2EM-dtLWUsH@$(Y|weH z)jI0SSiSlCWvr)TTLu_{Q_e51yBFtn-LT51Vc8KDMXBdpC`M{@Zo^x*o77 zKpi;$7e3x|3_6iMSz&>r1B}y*tS?FH`oeg>!3NIY&9C?FHyi@dDkfWeFLl=5N;*Cv z^gtpS{G3S%ATx;Azo~~;;bai#nPa{x-!GSe>xc2&y%Cq^JYD!NPA*uyRvp4E;;!{W zZM8mFNO5qDUZ!RbcWbjmctK>wv0tR`!a)({L(&V@T8YqA6+n1 zcFgdZc!e*HPg$F5=h~R@dapvf5g6t7$U+1%0}}=n21pLP8qkK;s{j&yz=*^d-|h%(ulIY;dxE?tR@XV<*sfHYuPscqY3(WS-PN~=2_m>d zWo9~NH#&wJ)%3+Qq7iGNra=(Ko_}evqs8OgGO&JKu9RPw-$JlbU!#?&4t!&DJL=!1 znpEp`B4uRNPFr3%%5w7~G8g?VzsEghgNrck&{aG21Dtn0`ymHC7|LJ~p?Yc@a{Tc> zBcoeJ?)C64vQMu8x4henNBMrw)h3 zAL$}_6Wjg^!Y}JnEs9;^6ZbcUDS?tjM8Gu3YQbxL*{eqL;n# zx}tmWg~p+v)XN8Qt&l=DE zQ80Ui^$en~!&KB9BQS^|K8faeG+58*VF;W!%V9wEZ!gaNQ>)jp0>`I@)=-g0A{|%@ z&)|>(6v1PDW4@igvavk-A$DV1xu2njrSkML-7vBPZ$-y~_xNZO-_ZgzT5ZbhHvV20 zhu8e9W&IIkVOza38t0EdPKU6&6y>NQVh(agQqpjpER$uoE(uH_3WV+j{-&g@9 z;eSV&{gXSVimtrlYH(1ma(U^Mvn7NJHM}9uyMEYX#)pgbB;e@*!(!f+>*j;cDiE{C zXK2^fBX1|Uilk4B1#N0PtECf?-h+^@iRd4Bx@ zA@4Wu@bJTaAL(9!B89ejH%p7RbgnMU;bi*5ioYM#?(jUdKEcL3!c7>_2LCg#s`TR1 zcS&l4t`MSU%N#%cLt)+FEm82Jq4;>l+PU-mXXxYG$gU+T*!{V(^7bt&#gBmVM}IAK zj@PebLEg$v2!fZ~Sd$mP$lZZMaPy>(Am^3FWxe)&DX0r|*l0Pyh0T*2!yu#7#eP;j zG35}XVgIQeYcMKL_8Db@j14!_9UZ^wc?Q{xgCUwQ~}jHA7|+7!qJ#s zpS~`sg9DNA91K$y1waM(Kp&pwIW+U*DB}8Eg<{{i5dTGCRquQSUAj zvA|*#gz9qrx5;|x@};s10~h#yFu2ZzpWh8@Qyji~#3Ttj5(RnPS@HE7W_do!qeXG) zoMx3KSqm*my|~Zmco^v|9}Vs!xu`_8fGlC?vgz1>(+Ts+d}$45UluCiVD3zyBsC-7 zfT9nz8Wm)Db>tHX&Z~B%4li#|*pb2djud1KiaIjb(2=4%%pBV}Fot3(gJ%lqVz*F` z;S~_ehk^n&BlzKmAMn^jD29HOtTbr^$1F4Hg-z6+$xv>ROm`tXvuU<86;?<2Tlvux z^^4Q07tvL_-m2Hk7d*55Zv4WV-l|UWOxUTxJ^lQlL`~DCa`WwVkH2fZ&Z&8RMwIw_ z-P`ya;*+VYQ~Atw)$gX#6QvgPFue-1or4!Rzem~$zf+oowU37LSu}vk%1T#Pd%N0U zNy+!Apj$ui@Mb0dM4o;p#Z8*46^=Fk!vA-D8N!nu|1PZ@DKj+w^oO!6%^!iipap2V zPLPk`;(kQ8z+{n0B%04prbJ@JdKaCmUXN}}f1J{*n%678TiI>kdhlJSeX`BF6xX(< zE%|!}P0lYjsrIMi_2)a&oBY1~KfLt8|BZDuiB=>3^#9sw|6f_d;)N)e%Q912Dg7*2 zFV3fY!O^6d>U|7n(tHG$0gDt%%Nv2vxRAjyjV#2V|31t4hUZPk!yJg*+ZOlPhf*Wo zbUb7EeO`7E}36z z18}F%W6yI=*|9!E-=Jj6s!GSI*HKtsh#qh1sPwa_#e(}%k3HX)#Yb)Bw7bL^zbD=F z$9xcmLKtKdU2W0OVg-XLyd**tx1;HUB^p(|(duokLI}yd0bnst?(SfN!MV_kV?!qH zxKde}t^z`bP?W722>6c1%SU5PI-SHaP#+^@F&}?t5OFac*1O~DIFUtv*>YR_B9=66 zQ%d@8%?2$t9U@Pf6$G7TtKNG?n(FQMRitIxrK7+g>*NAxzxSvtS4yk`TP67N*n&8_ zD%N))bJXNW{@he)P$UbItymQ`8OF}#&nAFa&_1NY6T8QA<>b2Tm`&(KyQC; zpe1Y~3cuU3JRk0YRQ3?t)6NmLFr=O5;XhNkskR9JDe;hz5f^ytRXup48kuc}CApBU z=j4r?zPf2VS?x+YjE!y)Lm4VR#LzwQl1 zhrXgw;G%$)v<|p$kveaq@j_&q^!G(I1R2{=cQ<615But%dL(ub4!0s^@<@LL_MOI7 zuwE@f-w*9;BvcG1(D?q55ibvrh$JYjL|=nVdMjgEBJY7jX=_B8Ff~z5SP5=A_ZC zgtKH83(^$ZF}rVa^TYL=$y))pP8%E1eQ#jD`Nwj{M9IBD)Y@>&F}=C2_MEoebSd_z zOaw}Ex3s6yd!s%@Yf8kF)U4HlwtUY|>PS7MMoMPwg)g%^^fdqO&D;z3H8N!pWjLOI z=>2q2D740Bm#beb?Pe|Qn$T!&vBfk6k>p_Wq3cFvqXS4=qjv6B{>yhPyV+PGPpZ~AZ&@co_L4T_!$k)#Otw{47D_G z&3CZ~?8J)ykM*y`)vo=7=cwgaKGllM*$Oi4KCmW#TtNKAz+0Lvph*T|IVuxQD&r0) zTa1)RDbEMrM9i$Pkj<3o;$RS*>6Jt&LM5<)Y3}YOPy>l*ybJsGK7WiB_wypW1tcM?G!#J35^iF!`!|O7#TL@#%#rj&=IzbI8ZPC5B?$xe7wf5?;ie;TS-r$^kDunfs+#Tl5k$}0RvUDj1@o;8|L>#El{|DFD{>RuT!gir*T4cR6n zmWSJc9oU0JPC>~7bZ_dc3_-k0B<7;;a&qo$zOo<|YCVi)LGrM94C6g%HZQ`TwNO6|0NQpxv4*lm1h?I?PXS%A4C_TVQg9lvK6X{plq z(9-0KFMb?wfF4RbW4}Jb7~zz#fwXL`&GnZ!A76sV1qf+FP)(UssjJ$lirw~A>%8&d zx&y-yXRys?A_1EXHfn5^4ErkVtJ8J=6zPx9=7s_Z?@CWFe;bJ}DTkZS^S*wt-V9U( z!-PKNZYb~jXX!5%^WwyPflDv64ifg_O3zlHSA+Bax#Sa-{fiQ{q(b0{P{^-dGD8xPc}O2N1^vs9F4i@Lp^ z$v4(o{1C}nnUNTEX4lP>(aF0l*89zCy{Tsm2obdcRte^Ex3_6gf2ziTh_rK?vW{|b z-?OlA;-bKO1FO#{-qY{0JKm+c#7vq!DL$;aBFMmsS!d0z3(N9=n$@wC`Y^S5Lm@+j zoKu)>m?6^tX0J=D^#JA2l)C;4>MsSAYPH_&UUhzdM?LBE@-nlC_*S(G2XznAIcR|F9nkumNDwyBtr2L+4XhR8$>mG0`df)#!{mC&= z0wxrn_&3Z+h(UET<3ST=W6dVMWeEs;>>sswralh~k;B`#j2EccRt4t~p!0(w+ zcP#lT|N9ItX>6p09?w6@=VfZe{HEoLH}ag;W~1QoKa$#Fwe(%{BI9rWkp8U;nGMcggp``xfC{2z8d(`z@^Obzw+;@KCgX4Oz z`u|LnpYj`KS=gf_=i^N3bUx^^Ryqc+5*h3(@g)6w5D&ulRYLx#9Et~l|Ej=x3#H6 zBP|mFKjOI*!yNann6+gn(3f}fd}j{%au&8<`)bHwcIxeC`q5~u!CmR%|3n|CdUV0g z7iN6NSgW~5tt@Ub{oL5J!709RE3=Bl-r)>>$i89uh-Im^jYYZw%KJc_oHrEpk)fFu z;9t?=(d|JwB;En>^qVBow_LV{^HBf3#nx79-C1yU zzpZn$K01S($J%?)DDW0#txf{J$@`Uy{sHxiHl48myCT}yc$3-*FSZ8n#HXBS91y|t z-{ID1vz&*tW?s20o|hqfDT^&Hr=<(p>0`RZ%i!}ROY zI+n>`P@atF5)3@<@=x-$xC%NKEomi1|K1(!XiQx#fwuuiKg z2xu_cUcr0p<#lUoX!s|W&-;lA@|{OhHJQroC)6){|3^V@PtZ5VUpJV=_k+-~Yd}z` z%C}g?HcH0HVmEIWNKhQh!_=W8)>%Qf3?u4v02GFpKahD;gLh{-A4!gbHP1ynJNCTj zTZi%M6IvVNH!}Ay7B}>#l`fulZJb)=frdouvF=!8-d|3YjbNwXPQzDe`rFiqFcDCG zM-rI#RU!AQBQ`+B;o9E%V+b$3gCzdOv)C8M$nc1(5`=QI6fX8IJ+x zfmq%*oX?O`FT4Pyhu@4ZS=oMjOu&`5_K$`c9M6#E`%__yRR|c%G9{Q_A`A@>;84^b~m(JP~UyNKG!#6@U~h{ zSKKyR2&p0W(y4g0VO1K2Ie0ftQ=grU;tDfs<=fNc@AjN*R?N5sOQ){3tgeC4YOp-F zG52%E+na6TvTxBQbq8ji#+fb3y`+!c+FDi3ayVa3a0Al;gswmY(Jmeq_B|SSLL|*# z9F3BjtX{tfv60j3WO0+6?+h&?N>re>xAA5#&yus(D>nCndx&mFw1L=4X>&el{+w?e zrZs84M0VxN1HZb8PqX8oDNZ#WVL0RctGJZzgW9ENU9j+pDnF$Eyt0cJ>efvEu*S~z z>jE9VA|7B>iOa&{;%X~Nc*C{fvJ8UNZWGFNS??4;1i4 z>Vdz2uVL5>-;u#_yIJPTi>bqKK1&V#t%x;W3Syc3oA~Eh+!NiQd5%UB(e1DrL*-AL zE$mIXEVB>irByrijq{)N!Ldi+JI)^mN}ozhk$*=XZR-B5*DwymaxyfQ26*nTXd};j z_IRT$!A6^fFNUk9&OK4>-(te8Fx8k(XEUCGb85C+ty!9yza?O=rUbz@Z3WS5c^zys z>F}C;xXH5z#|P_NHA8K)=}BGu=~jQO#PWeoNme*Ua4TX5_@jM5f+0lAJ_EPPZ_};v z!JAZLDfJh>9GI9V04t|1F7uDx1C;UYR;Wv|6XL37S<&JC{x5sCD7G_>s95 z;dAA8{B0Lw{aR$l7_W7#^bBlo6}CVgfy>52cx&MrtpdDQ0Ov9J4rP~K1g~A$EI;w! zlZjvVbKV?&;NU>>`421hAwO)TVdjP2hkL`P#e0h=nKW?=MBhKgGv3C!r0!eyZ#)yZ zk-oa-t{E3=&Eu&bV#vRgsW#e6kI*C0ShPx>Tb%=>8DH_pGHFf&KU>0RPgvyR$M3VV z&N|^q|4xixjcJ(5mMJ~^>S%63_ok>LvZPT4%^N+;be4)2xK;g0w3U%ddw0Zg!XcFr8K3E)G8bb}u4mOR}2mFKTUN{Evuz0(_(a8Gp(XjX zdT;0755haPS7(IvBYx)mtQOw;CUBs|L5oKwO7vRCcZA>UK0p*MAe-J{*}6GlB6v6a z?dqMyc2NcPdS3qFIv9QT$hv1U@=5ULY$*6Fy;sV;CkT1ObkVF2<($%=*bjedAG~Dk zcQE8HOwPV!oiRpPXM48YeEH1h8d}#s4=}*~p&(D@@U+msT;Ujm2NHBNAH8V5ItwSk zi^gB2oKq&9c0t40tBZg0E?0}CwX`grY*+lbQKG#fSgHglZ~yrD>vUkUQ51|XJ|AmR zEm=Rtg~UjI9A|ltp%==mKz^Fnahat~^Cq{q3(gAUP)6j!TIY~>fxx-LX7y$M8gedt zltn;H7$I(a6uKN|-n}=xX=Z5HX8*AapUa4sFd;%9ucNVME!oXu-u7&*AM<5ae$+DJ zMeE7ej_J2rx61?C&B;)FD#DfH`ZXwKw|PzEEDZJ|7G`&^p}ohkG1w=nXb5M0rixZX zkyqQm*SRS6d;7+|qbi%@kCXZnW(AIJnldUK8o$pJOH6m!+E(eROgKQH6BLakz zeL#;Q{vf!1RwtXxcj8~p zS4Xw>B^%OZK|E7&T2EM!VokEKlXc!w7;h}po3c4tX?W4a+dmx?aOfHMm<#0ZS7z`T z&1IgMt+ZmDZ%s#sd|_|+X3VSbc^u>UnxTGW5quthV{L^)<%zNOq#PfZW=|YX0QHvw z)W&bk^jBy<>uI4hTn*t4Nit;706Y%4vw{EF$$e3-xl3FV=Z&UT#SaRj^{Gpr~q4BJy4R%FrT5nF;@451NJw@ z7yBk_;JgK}s<3(dm{Yqg@VQV5HtyT3onF3OpUf_8(3dc-h)P-CL>v3GqPL*F%hHnd z^)IrA(-lAe?VNI~pT~EvQ_~h-06DtVgpl@aY*1G2J(*Jl!Z8_7;R1q<2qTRGg+85b zYWJa^7Pc*+;o!&Wv48lp#!=szjf25ZLs$qK9&DvsTSIHlL3jUfI_8iv3S&I>yD>B? z)o^RpwC!D7b$c$+d*f%F?3s}`t^x{oPdB^e$x7vxNbB2|e!V zZ*FKSM+b2`zC}sqZ7V0-W!nkEkvWb+8MLBu1?D3@?x8!&%q;sq&*iP!2bVm4@AJ!~0YRw_x^z-RdJcs57+$*e^o)M%aVwH@skwAB4@J}|L#m6n62Rzt*LvlabU z2g_9IESZwIHMDm0b9Z6(uaxBwe(&7=xjZV zO|pi#D!^yCjb}s3-#J5Sk?qtgwWxO0s{7xtVb^btyCeYKHv{l@uW?mvM%V3{*kW_q z<<+O?Q!~0~^yK@Z@!`TG!2csKM0DM1v>Lre<+Aa2>W!rNDF#kyLoeggc_V1lF6&Xd zYW_x@b~9*QMKE>!ctt(QT#2x29FF2>Hi+i4aYVN^-GYRv2Wc=Q)*=#>Z+K>iQv|-i zoiW`DATCkfh$5RxqW=}clc zj|1P5Q}z|Bkq4{<&NiE0m&yD|gQ`%O0{0Yw`lb;4rMM)@-VsI_V@9a+QNoA>;#Z@= zw#5&FnC+Bji&iQ{>%ig&7=u$j@aIoq~xG~&}~CRSS-mcjg2|b zGm@YO2FwHs3Az)Ns!Gi8ArY$<>iXf(5t;xY`s>o~a zJnl0>yM|my0n%K*KTbzP<9UsEdCld*<(RguE_tq2lb^59q-QFl|Jx(Hy+`hDO zN~EuMGTP@7+j9!?2{O;=^6uUfMXMTzGfg8pQQ<{&3OOLH0YbgZV?y(UNa7uN2WK@V zTk=OPhJc^nB2}>oIBAQoNLs_m5;GvRFP=dE&gS?x8RFmgQCKqDU*WbR!(-=%y0fBV zujL91iZ};xkaLCXeqnsU^U4g3G+j8kOn2v7H)}E+KEEJ#esz3n7Sf0Wtt~C0TV6%I z-`n+ftYIYI?ao#2>Yb__X2~C}&4fVB`kJ}tC&R&MDB*W~D|L1gi3g|zHmC;^SxQ^NxI<-XLZ< zJez->;hz})lwaBp{udpXgorVZ_`3{TQr4s|gz;}99t|7EazVheAX?USa&tt~i zah&mw0p<&Hg!#do(DIk#={*5cw?(Q9i{AuPw z6sg79b~FmdB1`1TOxpx0^BRA9=>UIZP&YX9ZS;ls*5)y3o!j+~#F>9MYxL+`cZqgM z2JGSG#&eOnwcHT{SN6xVT+oI`C!m_ou_$&4W5?nBVlg}2+k<`OLwvI4v*Nu?1zr-AhI_;$XHDIwR)4%zt%bC3G;egt7+|qTW379qMl*#P$)vo{&aoIs zXmK2<-SC>0GkLpze7HMI5I*7E0po573liF5V%{4#^2ABdZ2NxyD!&FANmFQCP_FcI z;my%G9wYZ)c)578drsWg5l^+8^BU4jajmpI(=jYfrtD2`oZQ_n;NW&KH(ry4ZJ;}7 zK4ha58P4cwSMD4^+|*U2Ygo()p{}6tA0DNh*K)sOR(>J~f=533!7d&DOB3GzgeJ%E zP)Ix?*Ubg{i!V3B%sidQp%N-0~hZ2DW_-uMh)A%5NV`4rj zk+{VvC~`WAgV@9{CD_GiJdW;W$uy!Gjj%%W#MzlWT-&B05yLEdmwfRvRLYfgJb_mh zxtLN@K{|@#nJGW8BKq}hICQ`V@;(Nf_;lpv44ml(5IStk%((f$lp&X)IcIV0&2q7T zmr0`wM+IrR&odf+NECNwc{-dZyyfH0fC^T;{i^Z_Gp$Sf1%9q3ez33gSaFERSgUx_Uhn5%{cvD1CfrH?G7fq914EI-_f! z%)c6SGmbmITBJ1%8=c>rCkXb338Yg07}0$j>Z6;uZ6QFJ@l?;53r*2a#@yQ0@PB1G z`#Dig<33hlCu~dxyI!9_ zn@;bNMNDi!^*$Mm#H`zgu=zTix!4e`sbe~x5vuSCR_yA1nmoG6&dh~{LH01TOXCAsm@Z8>o$hnoi;%H?l%Htr`Fg_b?s?!QBu zz-;>8u72;;s~2Ibeie4>VP*IYZ+64*1EFA@v%kkgSdZxL&TU)fYvSS6V9_Uznlo!C zZ05Qhj}p2w!unv8%;^4YUzQK|508S2O0yDvOm61=&vfYia$dQUIDA(}u;b+|sD-2p97(u%FEd0VL5- z`f`@soyC*z^BM8k3AT-wXUf@KUQ_|*WjY~J;w+8}CP#Klt>e#^ z+e;so$%6RQ3%Jq$T%L`l{IJyf{N`kT|3BR(gFpa2IPc;~EY`}5C$#U3E|fX}I$Swx zo&F!Ri>@Yr^uykCIS0`(S%mdrqJGD{{3@91WZ*I{`g7uxlE<(E7j8CYbf9wO<_|w_Cvb{M`H#TpO$zzOJ37d^pBP4#i{yA5cQ2c~Alkyn* zqu`u>z!cL2SX>(zf8EsPVDu#tlkr$zHMSE-^dri6EswtfTL1{&+=FASrNb&*-^`zs zzA$Ox4FrBNHJkarl2-;c$}8E{_84TkPk;0!DM+6tbb^vWxSbd{xkI#CdK znzuRZC)#pkDtCA?e1JriLPIR)uxU>PX-d_U znIQJknZYb`(8aR&r^$_3I8X*C1?|q~&!3~)huvg+m#zQyLCNrZ`P&CIjLEl&o@DDF zYEe_Ye#eA7&_Nayx^$sBX#>s*`V5|g`8Km3TGOmoG(wfcEXZCc(x7ujJ+{SYm_A0y z;UF?fQ<)rXr$Bt~+AS)F8d*NFs-rc`kh&$|b)xYidYHo!d>-UtQP~!^(p-wy3gMc$Y*}U%{H0)@TpH$?j=5AH3Tt z@a@P#BY}Z{$-+t9GLDt=?eXl{yJ>59^WTqKkI&sv>%ms$tZzN@iFudd>)&~I$3Sqo8R*&T`q5lh$9%>$8gtX(7LK3 zrujNNzmdziYonT}y4tCF5O&PTe9SV;e732h1Ko2Gh7v(->$Wjyc+L0uDHL7?IhfdP zDJa}8Dln56mU=aKx`u*V?VX|W7UMh}DDsBGAy|mHJ2x)s`B0?nJ0hKiZaJ1vT{?HN`kY@9qYFv{rJZo2GiwBHMt`06D8P(lQR7U@ll5}!-zO5Z z36}78F&hKD&-!g~_k(zIl{q4ER}P)?D<^|-FZpdNm{Eq(5guxK8KeUX^c|Eh`0qgk^%7QALJ1KX~{bNxO$c&wE?5SNMpjh#p zP$*~h&W2JQ{4$@U(v9f?u>e3(8k%bbb_ek<1gRykC3@Vkn!)%qG=bPxOh6&Aeo;K( z7Y+6vg6m}+zmyLSuxUMr?mIRGFI2nM}o`f$8tpD=>_9T_$5teKm3#-yvHytWX9TClEBnhJLT? zX`$P`4Tmdb?gVi!>6)LqGhWws40+a*8xZSBHDsW(bqQ)Q&Hm^O*}Q3It#s@eJU`P| zacqZCM7xPQWfxzo1l<_M7db-|nw?U1U-2uLZ`c(Y^}+>ZL`J?J*d z-yh0KvA#Ob3xh&mjk%Qj2mHaI2!dn~@f!>!Fc9mEQqdf(&Rm5tc#`|Ts!d8j;cZJr zy=L64S6C4rVeF=8yRs&k`bw5SwD1+f%0YU^h{0WISgz;pM5>bw6gS@6lW4Y}z6tDF zp8>2s4f2fOf_0JXSX)Ikp4Q+7e>6CNjKwz60P#0-jj)d{J<_<3tq$p`B@Ok`Z>kjN z_{5Hees2xe@oB3?^L&`RrxG@R)-YmJ@+M`ygvCVPEmx{#Jdi$(=`eg*%OeV&5uFM` z{m;PNB$FIn5>{AfM%YPW#cN3kk~P^6J#{^|cg_ zS4fzmJb(A=ycEi~R_CJd%&uF8B3MgV(fP>br~J%Y>y_4>dE3Wc;l9swGjRAQ2(BB2 zYch}Ru9S()NSWlIZ;2qH|BbqX&7WH{sjFA3^b}s}k_a3y=VAHeE#9O1X!Mq4r9^FP ztA2D%Nd)3x*<_Dp9VeNdsF&k3JiE*y1=kM?tEzzGIGdl9ulYcnE4avGMpF(k%nrp? z&gyV#X0B+Bh0>gx_%31pmc?JTK=GQdfUU**c|gTI!gM=!Ps)GdxnnnINy?t5M^lZB zV)1EtD=j=z|F=%I`nAeC?z4MXtODbDqj| zD2TiF^RU>1)FlI-gPZl|P}X+w!fpPK_cx1~r$4Sf0+MuKO_r?XJU}Bgw#fUFaKJZ_ z;Z#qpPq~e+p?qjgJ^yp?(gEqFA6t;aJuK5FH>TcwmW>C5@gk!k19QBdiFTszzVonh z))o8rl6@z_%c|i7@)4hW7#pFt5N4%s_c9`Os%|^Cu5U%_n-m~r^*v!>%qD@c%5=6^ zvlmw3vo208_zK_4ye1I3=TF27OX*P?0?B0h&MMEnvJQBq2RB<-ug1dE+P9W6Z#$ve zjV3^svuV*j+gPH7<6wFNwTPS&YQ6W<`S3Knn~IVzzCyej4tK-KW^& z5P94re(((|?6+~c9?7t5y73qPGv-lc3wq{g)g+)Xe2N>~@U#Es+P_Kv0p91IK#Hdv zV&GBzmM|RUgScOWKd@rG-&@RexGlx@q!`w7fA=VuF9!Q-{dG{L=^zXjUlaqL%Iw_} zOG|t!Y}@o__G!2;@zJbh!2nlH$-$Z-vGHk%Ly=KF;{Z&c72;UmtSDqrIvX{KK7!yVj+se zDWXqW2m03-Ou?=Q=uSleM&8mN^$FiYH;f;!fzRY6MrpFF_ZVLcvo&-+t#1q za06(p#CNB;SuP<53&lCd-g1bXWHcX}f=q*>9R2;vUry=2lH_Y~$)_qf|1W*+8V6y;{}ZjFzG@2njI2n~)B zwm8=O_@vvaTL#{gM0S9 zfxboPS76Uv&}}yxp&!Ca;z7?QvoiJTG)!mX#Ow?X+AS(v85l+ZLXO*aAp`fxaNd>6 zN~dZ4`p}kf?NvuH?IZzUje>0UN*#Ec@F8lfWyezO+pyEC7PR6SN6YTEbpk%yTu`6< z>FQ)2MZ{z)x?UIM;(Lt`YNoKv3lJDHXpZoWS(Vso#x1&2VI1bm^NN>e4|DcKvs#aw z3cibp@yb-ByorU&o_}wvc1N7)A^ilKqxycS9#|HsGE=krw zHs*WaWCW2A55>kieT~7DJ9C-J^XIW>5;OY~b6ULwU7aqLbSICd4-x_kY7V%c#2<2U zI5-Ww{Xq9NM1fGrQa2nT+P#Nt7l`rrF(`UNKOCsjeZG_zDi3z^ZR-D-tIt%;^0lq| zWNV=7EG{jCr}H`@_&bIGG&1J&@>a=ar&*t`?12=pOo$r;ecQ8pBg>SwSaxnnz7V>T zn%`6{1iyA78*K-C%`Ahm`(yVW&|qh8i-gr&*Yx9gzXVXNI~;Iq;$6@p=Ht{TlI8;Q zitR(Jj-n@1?$h_`k9%`jEy#`uP3ivVZu&i93sYwKJ+3rS*Dq1i7t#_xM`-_y#K^uMP!y$n`Xy=Gw3^+H;OhtKY^5@ z?K5R>br1a~iC}7XaQH-*56-%-yf-%(TU>Ciu_w~OC~$6S%<2h=#`(j(pI@uk{9S%) zkOf2fjA(0-!@fFp`&j9qe{7}yR9Lvo9XweLI2pC-YQ3PGs)(3kD4`R`znRY+vhNN; zdw7wR4&*$|{bXNZmj?+5{hcg;I@_L=R{lp#uY2Q$hY{7b~27O!;Y>{V-DuN$<3IB6e z<$w3mcz_?gstfqg<+lvKKHSFK5$HQpCqQ?vw0CxWj{5(B{D0y-6_xh2uM!X%n>d<3 zY6@MUZXB8Vy7gYv?e*%ocd0vO81tb91p?}eXb($8-$u%bW$LI@dmr5#P@lqoCAYV< z-q9$&MJ0P&Pk-nF4Q0x=8||o8ZB=_A;v={i58L;|9im~lpB6)(m2$S&3(JJRUALnS zyP5uh#@Qn>f5@I(h|-`eei%NhG)pV-W`Z^rgp;~pqTcE@}pi{VO+D>1C##>W95YM=G={6so z!4fYCBg-bO+rn~&_TGzrQEn^F%gFbwJa-2BY5(B!sHkA%G zl;2n^$QH0tak>At$26!id`1sn3;x)ietG?8%7oi2_2%ny6pvry-mu;)@Y^VZO8-?$ zFp@|Cq9?-c&a5-p44g=)*<4LLO{rz`n=M?0EZ z_TfIBWOUk4hko0V`Fhvnr%!1_=Lse;*_N$srCBbfr>v6ZZE`#14ZItU#qE_uq5Wf7 zdd+nMqntO+uiVakwobUrFRb#l?N36;Vcef>6X<_a#dNbW4E@A`GTVvI$VNzwd`go_ zhxfG!GN4-O99l>B5Fk@r7etdjN*N*Uoc2dT_*2X^N>dM?rJ(x@u_5j+)H*0)}W)$ z+&GXv_5)ym4Nmj$aGJ}}otL-54+%8ZveDwL6#9FqBO5zxH_Pz5#!jn^Q~qS~ZTdy+ zQ&#tR{v?<_i0?*XP~*qU>w?MGn-P6g@|age$Z|#iyLx*VlVa08&cfN{ucuponcY`e zzQ`wbCgG6;NjQ&(b9N(C(lfdsx`J72Lt7xE;ugH$%&0vg&2SlLM+^2Z52}Ea;kv7R z8HQIS-z~-UdYcjjOneZ#@9*@50-0Qu)mJGj&mgk9T^pYEEnMY_!YdK7J#FHa@c274D_dDX=y!={GYjl*ixtaN+PhkEPX{%bh{=!SR(O8>xV z-^qNH-~%?c*Vbq{{X$*HU0Wlw?s)NWuZcLIICOf9@vb?a4l`%dh+DC4woqzH(1t79 zdy!>hwD-%9#ltIekWUlc2u`C(@IcE<_D@>e5KKC=t;`5@u|54a??2EJVZGW7Mo^Vn{fCMQw z6i$F+Uh`F=_lW5ot&7DR*2Vyf1zr3&^Ns<7Rkv<#vy|Dm*ub)s9i_MNZaZ0yu|Z$! zPNllBp~|cbC00Mf<#<+x{;v2pEf4S(m01fT(PDd>TVmR$(?w}RKJRnpK%3oWnGhBF zXhb$<-a%OphgKBkhFr;z?Zeq}l*X@1 z26q6Mmsi4~=<^3r|Het#nO_?OnA{s?NLZp)l0CvKZW`XlqanCl_y_4LcW)+E?jzRT zWPkdg%*+5vL9JPd&O2AlNWyLLckjx41=+H=Ph8O~Z>#zLt;D%ULs*MbAakmpWxgJr z%(dcvlBF?a36kl4)3B^xx~t1Sg5mOQ^liRSQi)?}@fAlr`*7TkV4lybihepc!xw-t zaD*|?<@9zN<$#u>#cR2zQTD@BpQz%AI2>ma8tD$umWqvZ-zlxb7=AI0z6aSF2Bzd7FMs6hsjkb8!Qi#X(%j` zQ_>C~i0*}d$FXb=LOJs{{Lc_l#lZWnbj~7?1g@r8a3hbi3GUmKUrj42Z+cXa=D-W{ zTuYntO*O5ncJ!$tv3(E*f+!xB9REbU$_MtHOFx^H z&adV-BGRC51X*cP&5c(3x);%=54_(I9}b4UysB34V8JP&^alH(deu5_e30K%755vz z8&}c)m$WBsP8>;A^VPqiI$n6!9&*y^PadFwg3(Y!hAhh9T`QJnh3I0@M9-FF&*HbHau z@JUAcv0ud4Q~g~>90~uO=MKA~C)>K8^5lb&`=N`fjmAL#9yb3V{**=)+bMD0^P1iM z=(Fq_^(o`s4;>jtUWpSNa{?dam3`jmsj)y_)z8>sF%|~cfApd_|bit3Ae)I(J@?zriMeNoqB`uwdIC9-Mii$BmL9EI+g7L%#Bmv zVQr@fIRGYmc9F6oe-TO@-F?18YdILo{pHINmf5b=@4B{yz+b9^PP=zovH`x{YWJ$x zCWp6)>H|>2`dtGX-Kq|~w(G%mnt~&e7!46cvH>a{-<$baM4YczV`6G$XX|HDcK45 z<0B^_C(7=xf(3s7k~*`ITD*cI@YPAYeNA~nAzLJ;nl0WC2F`q&)$)xKij*bAXg*2p zT1pN|>bEKLc3iPf<5#^wNVX&FzY}L&3D;X9-`8R@U0_tSPMphvEbZ)q^(Iy~o`Vrf zqb{)tn~?u_Sp~1z-)MG4(-3c;Py@yr@~J*0buzqDc4KPAX1l-{81gm=o#FfEWQKk7 z;qHj}UmItqyYmbQ1{6#O4qmzRetH)o6-g5$na9U$q>LfGRnav7J7Vr{IHpwMvr`g3 zU7yn}iB};}hpUs6x~nY0gi(BTmYj}}0+^UvO5Se#yj^_d3_dUyzO6{SENz_n8#ZX7 z31=aRAZ>4kaFRPF0T#bjxp;}whu(qEKe&v?OA_N=4pfUxawWFd%_!|&DG)nY1` z7*XS0N__;yNZt7#XWRAjRrZwoq-Gn^q?%siZi0^#vK%`nvG4@mJg4>Km?Q7`F+ zSf&XDhJ;zH(#xlvBr+1YKC93kZM@&;9)kjyGci1no~W{jua7u}Xk9S176y-ermugv zjA#xi?HFz*S)q!49JWUiMEUH>rKO`?r#lYZ7PbL zuDCKQ+5=0%)9*=K4yM8^hbmGEQpWaJJ}Jq&$5X9YDEH6o$mDTeWOO$m&vrw9zw-7$GX-#88+cfv= z0ax16ilhB>O;XJgwYZ4BQ+l$JW9w8agGe6C2@LxeT0ebIP?$o9ll4xY}&qT#Nj8}X9LnuB6y*Z7CMuQOaj>nd_>x^j;u{3 zU6zhdHqrAa8t2odh5J~E;Ir9Ywj{Hv=PC0~k{3+qW2GJ4>NIp8Il?Z zB}ZM3-3iEgfH3w=odxIJDV%+U;!9cUWLnPo%i~4*|Izv|0vj&gx)>*&V1EfM4`J_t)rkEU>Fn2{N@-5w4k>sn(6}0&VXvh8hiXZ5zR^84ztj(}@zbky zev+K0I;Z^#me{2S2Qe`vGwj}LyVsGBJJM1T4WrI3OyYeB zv-(KI)9X#AzXO#wsq!!W%s_rkl$Bg;)+E~{#;h@#&f)0WuXfm3sZg+(+pVpIzC&O|C*yX}Nr4XG&xTDnJY8V+wVQLE(sa6R zhGAmi8*tw_$(M}ig00u9b|cdzi{kC#wJH^g(6G`shhta3)LV`Y)3`+#QZ0;9t1CdUl62K&ZN=^G6$ znw$Fvb$AnU>)i0VUAWNrQMF&swhINbLFLFe8BrDy5RMh+N&4+dZ#XEJFnR=h?MB7) zhqW+`M2v_qDI$)~3x;Vq?hvWNR&~(lz4N}$&a4mid)Ky01+ab0LI zBnIax`^gseP2>WLtRqkbUZJ9cUfLS)BkxAWSqZNXCOfN++H7>sJ}wt{4)3p)`TBA( z-T8}+uvdmV2!o+|i9;3A`wM@)TmbIw`&N0KZ}x7QrJ_}87+Slb#mx|Hfa}EqcB`Jt zDwU$iYBw&gOC*2jm$seOI!IsdFbfvgo{`cAUIUxUXtuPoEyVxmc{ztVvc_n{%8psU zR*GyRIKU}WanyId_onf^GKOR zr;35b=lOID$Pb8QFuHfM6}xD5-8^CmoiaL5UINaxi$#cuwewTFoq%^j`z3&98~L`I zmmjr!!wu^$&JnF1&QmnNwbXFbZG>Z+wcZ|9aP8sS3HJA>aX-wq3eHZer|UQ)n~HEb zOtsS!qd_aPVHRPGM>14#ANG%R*(L_fuxWXOJ5n(7xr*x<*~yV>2&^AHWh~#m@oG_2D{?*G$RVp0O3apU1$tf~ zt%B0Q9eRz^{;c6ozb%*NtUqc){oI1B@~nTLJPk3A)O;B(7jLXKa}Gl z*ssv7WoUjw!%<1ck%qUr3=H$XDV41+VQV5~-KIq=x!H>6+7AUbcei!SBX38T&|2)eD`0F@*r-!8>t!Bbi!Rt zU$4~}H&GY60Qa2LlHSL5DR*jB2G@b4#EsA1rkmf-L(a_%TQ66uH+GfHpZrK3cef{d zaD%F@a?R`Tj+KhP7r2;{-bZuJbu$rvDY9x=yYszxCtla!k<;N;VmlX~DytZNMLyv@ zK9uWEYG#uEQ|P%b+ZC6o;27ZuiDM+0W`i$a3re!!IK+@cZPtp~tb(T}lvY$Uke|Ij z7WelzjV1T+SRx|MJorBKUdPKT(Q|vp-3o01!?1&e91R$-PP;cciPahBE#8NGBv}Ze zB*9MtBFEuSO`}!31aJZx&!!BokcZ-5$Sz9CT#k%yFwV{>RHehCNtduGr7_t+TIhaov(yetmqtUZB-Ik|h?Fig_>a z`#`b4-I8!^bm5?Q(}J@{-Pl9-!N(sWc@QyV56r}eGvJPRfVq$hK0zdDP>N=j(jK0N zjcYItjp-p6{)&M>8M3NDWX6;?9D*L1_4VN@u|$RIJ+$3vyiNxMtZ z+ST0A6Dr{78X;gvULn+>1a+k9dYnbYSij95mb0sPu<=W=abMFPb4eu*hh{P8v-1-} z%o>$G%r_EzG+zz+jOgv9_C_fKl{cxJG|mkRZ@`%(=smJj#YYEXxyQ#P*wg)4j-_OP z`%e8ictJJhBJTTiwcH1rLd(@D`9&h2#^EIOSiFGDmy2a$EsVjCnyh8YI>XCswQpLi za|idd|KJn%4mZhvGqcD`Pfydi`*S2&d-cdyOV$B`L-$EJQB zj@V6egqg{=oFFl6%;+3NJ(XgPcB9s~!ly2+lJJdxY4g#fw_mEANfSr{t5rY8_7riV z+GWOR2NBxL-uXTjeUSdPB&ZN-F2j(4W3EtEeh~J++F+)w4UTI6j}N}TGxtn>h>VUG z(q=Ch(;mbHfsLhSdadDl;$K!O<@kFsh5l*hoqYK(rK1w-i;tLS)p(6z!vDu`Xpn*O zvAh{mv2w0kC`d$Y{nVhd1namqO@wEy*peW-X@br_-G;7Dgh`-pU!U2!vWH8p#p zFpSj-@WVTfY_!ooQHunu2|x5&flXo1H3wiV_>p}kbKVDA%$D$plEzG)clTac8-BQ1 zJ*otub|0(*KZ2!_#NEvUbtuPRt$naMUh8}DS}$OmmM`KMK1V4|#t*i&_WIKGp(GB%#P?UmP5az zg;&CGQ-e1(cvFKnB|Q5R*6hEqoC`h7--)m=&4rfNg;vIeR`!KfrwgsF7g`(aO0I0< z0T=Qw*`dE!$z2LB`U}cm)WVColJu*z>;g9p+`?2IT98o^DQt_or5rEO7Oo?Ta`-pP zGa}U^zTnS>zY^jR{w%~T{1uGsCB#?YuMB^12hNt@uZVboKe$|9pdZ36AnpS8*9(BV z0Qiebgef5Y;Lk#w!e0sgY@^!ElTeo1&8xlD6=D1&iDzBu=jUO13#oRpwVPH?`rE>7 z+;X>@@6kR^bOwY}{*HA28OAqm`JN~)mqb)L(Z3Ty6k1$_SXJId30sHZG@@3te0j?i z^d&sp3O1|^nmHC$w^*lFr6uZJJiROn0iYZ@4I$tWI6NhBFb$@9Q@8j+7_2pZehpWQ zbN(r^m^XQS7@s8DWBaL@aebE|4MbT1+sG>zsg#S@iwmJcWy^cOQ}8N4#lbQe??(ZM z2X}JLHgk1%qVF*&r&^%~Qhp)H@Z-Nnx4Jin>(~ADDkTQ^gaMOdXRbN)*s~Gt* zL#Pl!`8?m${2_$*poKqJA)Qpz%cF~{x~ZXl{9xh14ovpk{TX@Dq!PEWEXLkDVV^)< zE-1HzT@4B)b34d72X_vQZ&CjuoeeMEV=yE28^+hUVTh_3I9veFFBkz~V?1>SD{nsa zQ75Ae^Cn}DbOKK{db!$t^>mE^e~R7bzo+BB*y+o?3@5K~4V$ifH)Vt74QqVp_F*T! zM!mHSul9M=)c48AeR$Mr4!U;{m`Hs8?qhS{b(;6hjs%LtH><2Att0WpWPG>U?!_vQjE`2}K)iJ%zLwC{?T~rNc^$#y%dzPvHpu%p>vEk@(_~_|lPh z`$)WVqG>d^pd86QI;zD4zr$%JlAt?wh8^aa9a&^p@qV~lJ+GYAFj|=1xjXNsRNfp zh=trC?lUOJ8azn#zeZ$N7R5ZEzA+w#(O$67zi_+bmo$}@Xt-hdhYJngTz(>rX3^C! zxUk81yWXH==0@4`M8x8;@^OxOS6|tK!QIJM?jlDKx`7CvN%x=JoiET`j~Sff;WW2V zZdtf+uK!1HB(6m`TrjiXwbl{$OWCxf~$ zskuT+=1Ek4RwSVqu$ny{MF)dI2zPh`&<^E%&yStT1v44egzf+lg=%yL;<}IdOU80N z4rbht910b2WmEhpiM(8F^Ss*feB~LV)yUWJT~PnFI9*inZvEm!Eyail({6-w2Jj0F zC0jV#4bjk@4?;DdGWr#qr#yOQbfZD4VY%?GzUQ6vTK!{W-n}|#ux_=Fs?$g9-p!DO z0OA~ovQUC|;^08QLF3I{XKE%Q98$U>YZW8%pcvc24TOtw!8A67TNW4W+Z6s z5*96%M2!-K^`s|wPZ$>FIH>HDo`EpEZU~2+!J>Q(J+AtZ^5TU4OoZMamNUfH2!BPr zKo`<#5B7^*HH5)4^^mLolrVUAJ3G%Psdeno_$zh2TI)1bS-<}JE4@Wc7q8RV5~kEy zA!`<_;(6p`?*e9%PZ<*x`6zAI87Ejyy zc*X980I`dHE;E{o*Q2#u1>ctooZ{=Z#aO%bgf)uR8x3!8{d4g$|JeFu(&Vgg^{>jL zmSN?q-)v`6OKbm!#kVP3-8aOBlgdUUnsZ_X(&$RIn@@Fm}V zPV_#`%F*$QBgfZ}t2BJv&O+9N04tSdmPbn$%9#3VZs=1;f4;0>)md)Wv$vDI@Z9|F zzBFp=H)2N5WTlijAyR62qK|c9M{u;-PPt8#*?JnC3;gi1CPj(j)id5U-R86sX5GG! zBr&dbTqAQ>&ksC`PtY8k7*Kvz)%tgm1C+2TKUx${zibr)LzrJEimU|MQCu&A&se=Q zJ<)q%)bS!-|2UjzNG=y&N8FEGzr%VvS6h|bf_0W4B^~KylgEp znXT3yoC`!h+AbC(he(w2$8Xp;y-gt-N>oT3i6&H*TF|w6s0HHxnETi6wvi-J6lHyE z{tEcqrRu7EMB9>G&T8%B+E=0|o6~v~DcfDss~0XsLK4O#K@+4Nwa$;f8IODcnE*(+ zXYZaVi^z<8XGTUu#^XKNvx33Q3Y|QDz5DZLx6dRjB2Vwn zlhxH{jmoW9fi4VL&=N97yl%xWXfzHGc{^h%&MWD!@$q{Zfi1YT1+8;o`GTMserQ+p z;p3k_7v}o&@F+55np+lJKZWuxPL9ua&xsFw4#xqH# zDS9R~Zn=v@W7QnP@k{18#{NRf@WMTfe21KPVm62k850$ykW_K4!Euysq_Eh&bx^!o zo|wHYY5vYl(jnk+=k3eAmv3Ib6fbWc3VEHqm+xNg?Y+gER_pB5c?Wd*U!lNW{wSs$ z?z`W;{^5TVVdx2SAW-aso$zD^=-q_JHg?8 zbo}?dQrhXOPEmEA{?$zYA7$*D>{sQZ?A5RIm)=51i^>J|8WED4{7DB6E-o6xXtNM{cmoV1;C z4d`sAjRKur?N^|)GnpL88F>B6#HTBL4$j%>{Sx?13p7Z-?|5-6WUO~Jb=Nj$>Mflq zb)KkP$yW%yNxdoh=-9~(g`wuV;A@E8y_9S7)mQJY<#~QuHu24}jXxIG2aDrZ#c^d4 z{lrdIc6E8}BQNZy#opsZPc2s40pBc5{IN9m!BXizh4-HATanV5`{g3|IzL+K+?Dz2 zw;S`-4gGNGJy_#^3*k2KpGENXezV-Ujg((9ZLjmjNTh&((*Z=~_asFs9$08zZ{w2? zrYA4>j61NsadEYV*Lf5dORU@YWZC83ZJ#oHWSiZxitm><7Fo%u=IP31hJI6pZrvDW!uE!?nO|X$7aZ8+g zxQi0(>ORg(+=>mSB(&C}K>?4HNbW7^Z5WK9;fO%{;q7ev_HF*_>o;Wzh3F?M|J4N< zq_tb6a)prNvhOC}mSOjg;aZA}&e!Y5y|+kD82CJ}yMH3ZXxu!t@j++FBpuPe9XhEH zCbaeAOn!8JyIqbJcQI%{g5B&p1e0hrov$Aw`~ZxVEFo6OL3IE6<=$%=Gr_Gr0o6zU zrRIfTAlRKY?y>n1&Nm7kpk6V8RpVf#YW@fguPxbU2u)zsgSk5s7mmj1Yj(5wf*D^u z;e3%j(F}AW%o!7;@Gu3UkcG9B#`=;wf9j~>lukN)RReh zy_SAaK-l~1v?V_~`T80{&XV6EzOyhyiIO%b$7*Smpu(!x-B zcp=CJ%+MP3FnQVTey_WADFwEjKpi zznucCY#+ZckgnP0P&@8$x_=2KMj(t_T^=dKVtT*x@_$GYxCPk%J&^z4-$lfwCsaBmR=z9Z_)X_w)>lIycko0dw&Kw7&4mNI>2z83EM@q&Vs?A*p*a9o^zYo>8)B# z@*;gqrbM;8-x<^Y@!YH*twFY0vi1ek_KNAJUD#&yy$kX8)K4&!RA9I@cn(o-jCun% zh#V#qfqK%(D;~__D+~cdX~ja8Ys5b#xv>7%dwvHpQc;NI zgs&3VgTu?qx%v?!6E1&uFV6Ju|5_xs@ocn|=ti%*YCo`XbpAE0d+r6pcO#@Yy_N8C zjDTPV$tTXCXTMqZJ8m0mJ*`ux!BNqjXX{a)m5eIQR}-4W(?{#b!N%cDrw;))GO^RB zjfvB)+!n9O`$0dMxf_*MPuGWD>$r_g#$+bR84t-M)CMdM&a^>2fHGEVxZxp;HB7lo z#^)|I=T<{xD@N;&zi;R`>MdcNx9Moki|9^4i-%5lposcx#0C5y{9MSb2!dLy?G9hj zDvmS?mlnwq#y}G#j~B`m2-#-SY>6S56dxxK5`_JJy-)wVgs7tvy$P(r*#iNNE16FC zoZ=>>{XxPGnJ&*M&H?(d$4)`;YT6(W!zm-5e5yM7d<8uEVzoqsM+!N&FmUMUZlRX? z5~wem&Jy-^vTu#jZ0N$MVEGA`Ld75~v~iEYZF*MpfUUczwb6>1ncR5o0_{{Z;ncAU zR8EY`MB81j+4`W^8K*C8YTJwXthVl!*=+PRdD7E6o~8?)!!>=$cIEz-^E`tqOa8o_ zX4jJA8ci2>BW@WRY+0r_Dflb15j+RZ>h$C5;ZcHlSs{U5!-;D2bE9rTIi;K!?J^w*v7UqQ`z ziQ_>Ju~gB|+(#pP!UCH2eqa1w1X?zOEBN>7(=aLn7#YBOPhp6w6)gJR(A6Zypw7hE zA}6_y^6kGfozPjmUUlC6^6u5%-u`QImO9RH>gbb;u_@n6N=&B7e|96q?pNGA3MZ_Y zcbC(|_)G19HO|#SA{wZ)ZPTS35t(UEg=Og$!wn{po9x3(o}B6W<<8$;{%y+b2z3hK zOp_!tcdl}x(eW;N_ZC{lU<2w}hTrz4WxLS#OakiP#XCQ??sY_^vDIxwJ2`WXJjzs} zqse>EJcsaTHXSX^EXzEMO|rqvVHS;SGJ~qq8>Qy~CJ#FWvDK+xFDYjJEDOok&pBU1Il$Fa`r_h-6K5 zK|>&grofVXr+Dfn%g#-!MzM@rcjrO!lbu%UbN{%1(T#uq)EoTKJ-k%kz4K3J@yXeh z`u>0)Ee$^`d=GlRAALF*y7kEvt2}(!<(=<~&%MFv;UA{FRkrt!O9%G&cly+IT@8AN zXBX#%?-Lv5LwtESIJ4V#zdy)Q$IkfNZ?l-LwRq3Ri$=*2q;GXGv-0u%6BAU*3zhP`TW}4l%3%iW_{Q&~%eL6k7 zy0FJrPLumUZk12H^X?z^UMQt?2N##H9j&Zvx6b#6_&+XtA0!X&z?9Q)zF;Bw z`)cq9?PP20JnO}@3wJ&)2mOmdALHAZJylAR`|7mc?H$LTkNUB7zD_Sb#6+;zun>_B z7IoDc1?#>L^NRzL=NAsuFb+%e%GmLY^lpokG zeCw>P>F@Q*&ckH;8?syHq<+<6|Eqr=sNZkjzF|9RwyS3QYGr4=M}I%?_eW)Gt^RWU z-}(ED|DLPAWBU8t?NqellcnYgg$}FL|0P5%M6_%A1#3fpC`Hez~oWBA|J^sHdbl1KCYA2 z(I`jX$ydwd8Y0e|X6p%+g1DLR0FVBgT3_zq4f1F-h3J2~(cxO|3|S4%&v6zx*^o9! zCi?RT;$B#JA4YPggI(9-A|q>BNCTICrdmt;{bZUhTA!1pOjciVZPB~LDOg}>g?*?; zj>+kr)3N9(nMuM7rT`ip-i?+E9_*1E>J+9-P9i_f;v98RG6E*#FppEok^ViMPRZX7 zefJ~@H(t4O?oJRWaCU}ZPI975ja!2Z;>uIIxA-m*VRcw9wFy(w>Py~AauaCY0~^!+ z-bY{R^XMEOz~F(r%kN1?L|2ybFUSdr$%eQJcOx8gHkW(J9n)^qz3whsXY$I9dUFuY zIeTmfv0Y}-m89y`@5{3*a3+5%N#6+L_;UIodUmmLIQ=s|gO$@Sy8~}Mm%Sm^Wx>ic zs>iDLs2`mmzXoH(0z;Ndx%-9kaBwnDeV>k=z(ZGbl&+SzOm4cB;ij7mZWDb+L}zm5 zOg~Io)B~;nq(Z76>?udVb_ZQu?rd$^J3Q=``gYjuyeanUQlfg`eN7$H6`E{;TXmgD zlV|3Dz7O%u1Mgz|J|YW~Tz!AIxQvGBpNak5ovH)P3%j09K`~O-LEYmCanekgWc1Y} zQW~7wY$^MEoQ%^MA5G4qc`?7EKR$hyI4Pm+I-H`}ntETwz5F&h&GccE;~rg8tSxg+ z`hYN_0lW<5chT8V-XiN7@?|%GA@Dg+#Xs)9dn*Aw5OVLbWF`7YT6Vl0T4$q2>uk!_ zUXH=-!G%jAhJ>Emx1)7K>8U8hRW$ABr2r84Yd0<(C*tnyKjT_ z`}^}Y`t|YG=nCz5!P}T#9L(!p9x?9XoyX}tnCQimnpmg*m&r2CCX_~38UMDn03kt& zJ=F5#A0;a*yPR*gE3pt?2b)J8)z6>$YV`2a$?G3? zt+As*01uWec!#~d${!~3N?R|NFBxQ%(~sAje{vZeE>Yrw{=5*GtFkB4Y@KO1&QTk;d{V0%LK2)4uI)sb|@j!4}dgH?PzLmFc<^8@M zEn&-Ff<#mf45mcwQ#mWixJ$O+sL#W8i?XLJ)q^9{sFy^^h*rVHyK)r^d9+jzg(8Iw z1G9dXtnM<15&ik-vx5%k4p5l?@@lB>2$e>&hAvBimLi)InJaHXToy(j50N8z9|IDYwhA`~A_h0@us@LF9JYMvgWgFgy{q9rU;e6ALZLEw&uNYe zN01Pi*7^*V-{}l3^_FzB(GB*R@6M0C&s`f=;rA6fqm-m5)!vnpwHz6W4`|xRBHGnY zS#AbY_chj^==9y__-Q_ZcuP3%c%fg8B$+=*Kr`qb>bQ~^)K1`h#I!08J}_Okpz=(@ zNj6^RRsw(PidDWM%W+ice4VZH)_-Q%%&v>RO`qu7DggY4WXnd9gzPUi( zT=Gev$qiRmu|7KwSvODm)g2t^Y&!Ae9fEW5uiOn!zT3~sbehTAIs^W&7u*D;)jJX;Xhg&Ax{Gn977VHqTwIU1)J?dW7W0vx58!qeWdrf(%L2BB`r;8TCY zUx}RfL&5MCQr|F0lv@Gi4m(=zW@?Hnx6-fRVb7D^pHJjv%`ury;L#IgA$OpA2)G@L zC{~&32Z*Je>9+V>=EsNYYo*%&X_wlCrW39{f#e>a(SetVX@ZoFDfbCj{&ST_6QzYToB7?tH{ zXVQw4`)BYMA~DwWHKK^tkRv*u(XzGP?(et2@@^>CT=Abn2=@p~ft7Zixy&fyUZw~X z#h@qzm^}0Xh*4)T;P2kM&i)&S00w!Wyst7|clLjQ^yANcl&QWwkpG8&_Yd~@?`!6WC;P~}+`pUZo6koR4z8pS=mTlaYBX|rVTShh5B6Z5 z_FnVfcl7t|>w`BS=-z)z-}{{ZhT(tZ{Jmef+%NR^-CIt7_xj*(e}nmd(|RLUMiy)J z_$^uSlfVbbErKzmkK`2ridD$hFdWi%;Ei+dHT{Lnr_$cO1=3$`eA=}PN1IN=?C+}t zU53BAho4WoR)Si1yCXUc3Kze*97?9{)8v7H>@jh%mb&1M(_CG>`ZriK5wCCr8$|Md za_;2b+I#t?wf}Oz^+x{pR{n?mRWv*9*ZD1-%SVZ%$MP-!WRc@H@+z?BFOFKn1R`*) zlxVf}9~pM-3+zK+Q<1`zuy#6gbrhR0yIFzNmRc9(#~m*<+-FOSL-Nb(2*YDa#x|Qz z@)kJWwZFBT8uolL8sEJdO8g_oBguAP3plHFyw1PAIv#=O4SbDENxGc3P9*F7kS)LB z{UFQa;}H^6=Ufmtt*2M=>dZKnVYY;2ptl3C7lO07o)dkJ)E3O$d<~;va#NmXdFDV* zj_-t%=~|v#`m}yWAI%-tIvzc#VYRx`Y(05G`8*y%dWZOt9vPq?$s&cld7j)VHlo#= zU1uQ3AAU_%FpleudGukKBy*WA`Ae*5E_uWI6zR8b>k;C#C9GqTfMjWy zPVcgHvVsPOsKoTArlTYol*&7`g`$<~SKTGffm|dU`wiHD5{{I(N#4$_Zi3MnzOY*z zm`9$s)iQl#x|#1wnoFk7@762iwU?=!rInU%9WErX02E&#L+%}P*!+(F%Ddz9QJ;C0 z6-kE@$u;#qUwu~6ap3Pe`wjfB&udtt!X%4g8y54b0oOrp{liwtf+&?7O$7?EbF?{>?82{_UQD zr*(O?ubxnRX?U#;b$OC!{=MH|soWkGjXh5=910wJk!J_N+ z?ThHkGLsYynI^Iw7?OcXnU~X0;T$ySJE*?hYN6I7f6(uFHXj@D0_rYyG#S}ijHh2a zq$J%!ZBcypH2_#Qf1&%o&J6Lv^*ZmMR;Gf<@6sEIdF~4JlRq`IjFs{{q;V^fB}nSHZ1`09;v%=tTu%CeVwcm<*sJD zUM}UFO`p*6e7(R%K`ElG>r^h^?j=8lYMZ;!=d&0Bi%Y(9F562?-G10FgZ@=dgI2>1 zdWWV~4SNPY2if3!7v$*@H$0%x9}uHA;Ln@~N+u4h=Zj^J)C}yJiE&J8XNZFI7|zHe z1)8+tba2g*Hd>EYwhbfCIa%bh32chn6Kk-_?pWj2{fTxK+6T{{wx7^;W#37)pLYE8 z(ZC+E4K79|Wi7{D_>Coh%72c4b}{hZB+LOCa-hY7wwQ-*>&Dp61FB_?zpc}y8J|7J zR2TauFo33VYf4nz%*}J*j@AGVq#5y`sn}f-% zf&#hD1jHVo4C2&fm;VA8`7}uuj$b{~lIk0S4w_Pc!&#gYWHigB*xqf`M{t=ciVA}Gf@!^{iFABu8}Lze7?QTU7==lych6Y zpzEV*z{_>@d>T0Iu8Wki3ga|zYLL34o;K;8lpVeSyHbv1xLkS447rR&Seg3Ru?rBF zG>8L=-j3urlyu34ZANlb@!bG=bwNw96FCN18EiRMG4~!#^kGxBr|?oll(-E zz8K2xDMkRCs>9cf!D~Lna$YMDSB+`6ooC_=h)x1o%bR-I8%d z9+5zHRYX7S<52H8Pg%te;n>}x&*59-z1~5o#;xRDet2Wzv9IR~RPv!1#w$E^4lVqK zNdmLS)eV6~=SkVG9n4rxZ${HJCz{hDM{sU(**eG&+fLpsdb!gj$zddH@Wab~yCr)P zW9fLD-6cpn%7p|Yb3mWA-ybtRHM+THbQNRMBLg2oFl`_VlC;)({uRJhnY{8~m1V>0 zSMtB;+VW9&%NHBh?o5R}PesDa$y1KA7U69$4CrIq-+ybN?R?G4I}nBWR)@kj z*BDrC{~Z$DurDzc{M2INOJ#TRf)mGf zB@E!2Ks{`~A1=#o%olZVV}8>v!6@crB{9NG`#nU9dJ{LcQ0B^k&88?Bnyqc@q+jL{notJ~us?PpmX_2}ht6ZI2~dlZTOm<>FHf zsJp?e9z@DBi}FtF){V`1*QTRa2VODp%FNIgCOm((LuJgFHQwIqVbRk*Z?pic?J_iR zMY-*&xiLNpjVzLV+EIg^_RPKmj(3)W$aZJp>)S$BMZWPgd05dGKx2{=S)sx`D2ak@ z5^Ulhp)0ICQ&HZYrUv^#-ayOrdd-(Y3I6wY(cMj|CS!rxV2;n=ioMSM?qDBjB+|4D z?$QbC2~*)#qw!2Z%L<$vfG5x!6<&swwI1>0`4C-i}&CdpskyI5|lR_i{QuXFkd zX>!3;8vc~`_;&SIl&c<(c;4KW$~VESVguYQHnWy7?S*a8oU4RM{=5SNN);BE2DJ3~Cpq_YQgwBe0}GXh;JePz_}c-X-Zuja_F&28*~?E$6)xko-;LZ~52_?E9hAw31To~0tA)VLli z_(XUN!1wL==D~S-EW=BH^_?61jB@AzncytZYYZb$8 zY~Cz<^9b=PZRG|aalm+Rf}-|+?kxTlE2|T+dZ@Q95rMbqg04qp#5sbwu z_B}>H!W(Q^GiNs;x}@@4<&uN~v34GupT51`;DvXFAxr+hprzIKOk)F_4jk-pjNOP!A1QyjDuan7z$}{Ox zQOA%$5TU`Yz=yaTUwTxGH$v9389G|UYJ+tq91h)@3{}*RH%fcJzvrAj+xsAZS990| zfIr7mpjvXJw!j?(UIa5j?O}Om(Dh~DbDYg)@oh3kGyYhS8G121=Z=((tXbNPBzJUs zOBU#IoJetC?8BNhxVn@0*J0l&if#hBz3^mBi805G@!~tI!_a-G{CM&O59Y`RPu@0_ z(lcqv%+ee~RqCfmPhY8 z9UY<@Ih+W2YIrbyigwn~EN|Dog^s~NxEurM%V!H9Eg~0n^9qb;kEV1 zt9BJlAEKWMvH&C)6y*?Cmi5!VHS@X70bPaOOYwr2`xowG*8B!%^$~a|8Ig6SN~og; zk$ybz@3RujF8>$gi(KCEWz|NK+Wl&dL2bZ@D19=Z*0$tYP}6E!*2A?84XiAes@E^$iq zR&oQLLnjB8;wrzPz*fV!4y1QXQPp>g!ng4KJ%o+T9r<{8TG`*5=KXc4s?9s<>BG19 z4%!Oxzs+Qm7#0^W*o0A7#oV|!X;`{*o8FN-NIMgqidVcg9oda0b(4_>Rc9K*Nn?9)OHbj*btS z^cSeV|E~V-1n+FK#|FJ4U8Awq9=Sz2`Zr=fsA~y|&OQ=DYxu zwtA|gRV1iHR~j722@3xuIV;~7_|;dxMBF79Cr#OqTqiel3Fm9Xh|_g`$M}y}p(+{J zHH4H#36hOI2^AtIStC0|x}4RzSr8S3N8+g=ta`L`puK$o%z+BEIB<7YRJ>iu0fUt# zQ`-?m*ETeacQ2iO8h(t9K7BZlsFtpuZ`fWkTdba5ME#W&bQse@?>F+mfc=IM^##u= zKJvnWM4r+_ylyN{*W%eQteQm%bVNrV4ejYCV`qPEXkWqUX1!x)MZf~#QP%JR3O}MX zg1@{j@a6Gi#K0cdPnJ<9_Yk-SLM~`Xhe6x((ENJJuNVH(m1Sv0s+w+6KGbx%?8jGM zU~Vz~0dhz$*|Hy5Udi1bgx@1R>TvRQ1@(QTmH26A{qrOIgK?p(g-YQWQRgbth^oLZ|l^4;X`D~p`cR0&3v^WNnHpIK5+lu#9{jftwTp{QLaKS-X zZr8gfU#Fz^LsnZiMsAzVEu%cRi#pLH%^_f)U*>L!8wrod3Y0<#zifx(Z>PP(VGrbR zy+QB1+lw%^Npv!}IEzl?X6%6N?R(3KLN)Ek9a+!8(#7)oP?F`mJ>91;D)F%Qd))na zc>bYx9QV(MpH5Et-M-A&q?}!BGWMsOj3v=}U(zW#2pZV`!h-C8N@dhhis=FG0QKDz zhc!vmZ?C@hYKd~*s&}pOV>kweT>M<|=7CZlGePiFeexwb2=)Woxyry8YyPC(C)&?> z>j|tyZF!jH2neg%8ET*b1N_rZUiC9}zTQ3;2FX{A{ip194&Gqo$;_Wca( zHLB?vx5ubPB?<2!j;Y2!z>+kO9a>CfE+2~!+iByHN4p-*Atq@CK4KorhO2pfVE>5)>v^Z4=VJS89G8V~Ko`^j800+`n7h->YmZ-2_E0 z8Wiipcl=_2{hj5n$Rk_eEn`T5t`D}SdDI<<26%OKkgUe5;l54VC>dyU{^@PXauSo1 zj2B5C@7<5v#NK`XGjdKo``&nLSKU*%Tp)KN5=(Wy9g+oE%AXaygMnQ@ux=ZJdGyX4 z-w8%B1kQ_ktE+m`=pUc<2s6~$wBj2hfH%~|L3se)IVrq=VH^na%vH6ftQ3RAm~QpX zDesl_oC*Z?S@1noKc`l|*-Eq%k7r?7&y_a0pGgA2RjMQ;0(s&4&-WJR>T#~_s&qMT zrYU&qi>cuI3c9#x&x9k?z5^QAp|ah&+9Khz!Dyq-7873CZ7Lh)+j_YKZ!rEjub8t* zrU})s?kwq;=4D2_VI3a}Vw_#C7^hmEJfFA}b>7}|oSK-fYexZk-{UZv2EWF&o79yp zLOR8K4zNOWN~rw5dE2$_JJWn^`^8(*%iEd0l)%ZEojy*1zB%`v?peIM`<0QE|$i7jU8>jn75GWYiaVy3KtxN0#WrvAnd??C+qn=K~3 zFuj3&P#sM}O0{Fql6@JSjh^JsHPSAV-9rpR!U4>igi^Zo!tRMj^H=Z&cK_hU~DDh=PDjPphg^+4_&aSnslT6$Q{<6mYbb5NsLt=HLsqVB}`)Z zUB#JWcr)r!k$?`(hG#TrFBG^Bx^n8!DVxFxsQk$5-)N5%RV^!YKG#~~vusD)1g1gT zV#D!?4d+iZym!S0c3fhEdsl35pNkFc)x>wSix6ABX^Rctam9ChLl)oROK9u-Q zI#^;$9Wb$lzM0rir%i02FDEwC#S>fV{E2^)4x-qC1{E99x#By})}o>Py{NHm5L@s^ zVoP33H01Tfcj7HYLta*F!BdHb{F>O14;0^l_Y_<3dtwW^U2MT0hz)rV@tt@du?62H zz7x+Uw%|9#hIX#vJJ|4wEqH113_WtOrS7_DpcgMTla+by{O9?w5gYi=5e+d{E{J)_vbK1*zA z116qfcP74rouhcBt)-~3GZp^_*ushiHoM~gARA+`g^je>!WLU>Ve>7vv@aK1*s_Z) zZ05z5_W5E9Ujd?_&jPW5&jRrseT|6k;Fm#cp;sn0^j{}7&_fej_@EOF^;g6OIx(Vw zk4UkFPLJ3?XGk>ESrQHOpF~4lDzT-mmT2f}QZ)2kDH{616dUTIi7j>B#COoQ6VK51 z6W>AKP&CkM6kF&^iVbx##g=+sqM=@yXsD+qo}phSHqa9k4Ru?^Gj(XiGj(`H17AR5 z1K&d889t1}7QV2=GkkA}4Sm;&4gEQZ4gE!lhJL8ThW@R@hW@ie1D{-COMhQt1D|4I z3xCXFLqDIQfgd!{z(2Y8j{e2PGku+l4SdIn4gJ!J4Snp2hQ5161Aoh+#%HzI&?m2W zhW}sjo%|4r20jnPGkhwFXZUgyTlkI?4SZUP4ee#bhW0pOLwg^wg-wyz(tb&7U?U|q zu)Pvn*mj9$`cfCq^yMxZ`eGMb_}mrG^z$n=^eZeH`YRS&`a>4~2H(u$JNS$i4gGJ6 z4Safw8vo#;p`UTFg&%J548PyvnLfP5Gi*D>Gwn*n7CsEbGwfi+mbSOznZ8cMck;O+ zw($2Nw)8C{Ht=5~zN6n9@eKbx;yd~g63_5wB)0USBpTSDiw$hr#dok*7vI4SUu@|E zKzs+^3gSEXco5&oe}>q?cZc{t(5Hj=PW~#yzrm-6c!rM=@l5|F;ycFF5*x(w5)ER5 ziT`FlHDW_QI${f7Jz@)=Kw<-*Lt+D8Mq)!hNn#6MOyU{-qQrObS0%Rel_eVb;u0JB z_!7_bDJC|Er6snAry?5qRuj+kttPhg{U$c_F()?grzf7_w@=jg#uLx*yC=5r^Cuem zP7w`#8j3Arw}=hm&WH_S$%qYN)QIm87g1~&i&1PD*GFs^KS(r)O(r&oO(wRCktVi` z!zUWVwG$i0#w)y;Y7WSKyo{Ko_xclH`Jp0i>7jVH+Q-YlFm0tmUfbS(emXxpy!@B8 z^MOU(Wg(PC9=krxmp@G2*F-Wr)0jjZND0^YexSI_96gz?%_gyKSbgCBdS8imz_MepTBCv4vbGM~ z@9y;JXVOA;0@U%o2*KTZ8BvR}(z&5}tv zdZpsYzmhGyf)-w>re2P>m><%62>LGSf@opl*_L%@EaX3e_XP-qfaEc6?{t1^<4JZr zj1SCVOx#(>k38{X$hF^0j0SIgEL2~7h4n0wt1wT%5@;+h%v@;%?FM~C{1dTVm(GS| z+^7U=7B|^s-tIoF{h2?B@elr(dZOjay7x|gD z$f5cCHXL?8_T(;eA4_&C=W<7n$xP(G^X`E59`J6qybV$-3<@LVYEStN$D#o>oRt-vRMh|?~74@A7 zZtw8?xN|b-^^U3KV4Nfce|~Y*2;MjTfZsuzWcT_)Qo_BE58Ivc+j33cwpq^uG!;|t zgvg!)4h+YZn`d@!>?Z(AN~p2;^szx-k^TairM!@qtMzEA_W7<7%hllxdPD6LJ6H8k zQQiy3z286eKJ||Obx_N1HMsZd^d4*PZ1GH*NPGvnOl(09iVf&xu_a9|p1}u*Eonco zA&n`XvA?$6)8adxGx43yzS!X26&v19VuQO+Y;m`WXWZrDe*=Fkw&3H%hOz?jOxc8Z z25luayuZX2ccj?x9u^Jmc2Pqgh=z2A*pPk^8`4MOe*+CCHlQ)Z7JPMFV+&_zv<3@ttHNpXOiZ*@MJQ*?hIkrqNG3 zcsc)E8#{70`WA|BIK;td<O>=QC!rYT}B1iyYmY9;oAj6Kwgv<22VF9)IzK zL(u{b-RDt#Fv_#fUGIEeF0&gsIx6E5r&cjf+%mMxsVwD-p+xS8k}>QDwB}i5VO&N2 zFwo}bv6~=@X*oyVYPO!P zQr5QuyahYV_YQ>S87LQ!WVfU;K;=gAMe7{()lf~j+dq!aE_)y1&;8@xMf`F9-CJ^w z)C%Xb6D9u{fmb2eSw8?rAll{Ad(=P~ua+`BozRy& z4(sH7-Jaozi>lt_70g&QEl=f7JNeHc`8o7Mat)J%P%IrduRMP?F#nbvKM4Dk$91VH z6^=piXjwYVZ_?W}x|f}Y;)~!y4EZQtY11=0&XdY^8sIFR+uH{7&-ah*kFHU?E#7xT z9|C5pdaF}@x^t!zy>Uks4awFo@)ry-Naq&nyt!!y>%6(~S6aRsh!0X~I0u${gI(j; zG>l7_MSXar59F&~xpb@VZuLwSiy z@O-zCzK+!f)9isZEc&@f*}7V40la8AX0MFvwPW9>N9D%6F$%IN*_JCUHOD=L2Y1?D zzznPJ5ZpC9om&H1!Coh;2avLm8%|Uu^TwM~q}(EBt4t#6cF^3Q^IM1~$I;;?cS%Bt zk61xTy&6@;8Y;T`-nHF;x2t2I6t9hq`e;#7?Z!GwhU4*yvoa(1YYls#Hw6L-Z|ckAMA}c)Qt|z6r*-J_o@Iy}QZz%$3q* zrS8)hlz~1lU6;>G<%^so)Zf-TlFy!^`k6MieCJ7H8_oWgMs0sN$$L4_d{4y zReUT>S7HMt7;-c!FHNMPB@B|!_&x(4)YxtVIoEmtrw*o4@h{bWAsWDM(l^my?BW@7 zD>ht5(Qto=4d`^S1s@=`;5WpUyp7nBml6&5G_fK7AsX;B;+e8`vBA56_&3UF#0D}a zv4zY`Y$=};TgU>%cakZHhB6GXg?vP8CdX-JqZg1Fi7n++VoSN0*isHBwv_vcEo6-1 zJIGDNhH_o8q1;$(A+Hh*d25%DL8E+qA%l8(s!JCfQ;>}2W zhqo%R;rp1_@ZC^s@ir;8cmow%ytRrg-gL!=@7rRFw`S4sjbD6+w{x+jo`Bf!&0TEB z2Z;@MEb$CpPHf3*if8b{VncpdH00667W}{1P8LxWYob=pBfhgdMQkX~5zmkvi49~_ z;u&%@v8C)zdh ztBMA1wPM5fUs3<2d;&-~T8zeDF@W(BNls)-a(Uvx>ELJz;|as9vPI`QTdlGgz*KdYZKQ!!MurWjXl!M*cxpa2&K6m#b zT!l%RFAC|y$~}E^bL{-n5Iw1R^H*sF(f$fXCM#Cr=S`S8rkkVu4mT}_xlFq2;&4JE}b2@ zwHX;W#Eg=9O1*p1IFPY=&~#3`xh4>}Eq?Or0aeJ4LGi8a(TVG_V%+(sv-l`J862MVhOHX7O9L0y_ZzZPuCv2`IF-|C ztQQmThXo?)m+7RUy^sCgKsE?9oF4ws8w~5-7R}jD=64YUW(ew`-#9Xu>vV;I`e3$D z*u0QT1(o;f8Xonp28UNYpAPKktF8{kT9R=AC;RM<$5L(naOoEp}bcQ zfB}IA4b)mSx1bE!Jv=(>#%CADpfcIq)}vjaU)ejq8eCldft9xWaPU(pYKHTTqGqXI z?FBuugx>Jm_;91oe$^bj3H8H)F?|Wc^*(pwE7-8Cfm#P!F}^{zB6`6u&OKtvez5Vmrda)*|_y6Hmg7vET|9ttY>T@*=weQ{gpH8p(@$j_Y?WrSF zfoF*Xnk3T{sVjVFk?4kyAzlIs{nJeaCUbKjha^u01Q(R2+bh`L!~P&XI~rE*XMh>> zPAXx#4eF7*cW?+b4SK_mH2koh_r-GK zhKPrQ3orgW)@LdSz1M~7zPLKP>R+5!*IRlCq{F=AgWd}1w5VsZJ4u#B3k>j0w;jnx z!DpPQ^7;v!9#_y|K-@(~g=a-Ta<~WmWn34mljQNhuS@NJ#xk=tKQRNbk?p zwmjYGD9@25Ku7J5l53oxXcxOtUH0^9z(m^4b=c+GT!}G zD;;dr>Ecgo?D%T^Hw693DOqN9AHzE8CHa~wJ*$_;)xdAsKk*&rNHkarvBesT275NPPFk(*(|8K6jfWF>8@tChH%g0i(mvd%0Iid*gw7 z|!mz7ZGZpqRGrOOy2#)82UC-gw~Ndf?uA z;C}JI{o;f3jN_fB>^o0cn1eHUX~;v(fA{$Be(OBbShw}J*YXy-T_%Z1YVG}6PTUve zG^huV6QhsT=c7UN`DB29yYg?Bzq|Y$*%Zse8B_E^S8=KA zGY0(ffu8iza}~Ag;TgA8*^L#7gzXQ{l9}O!T)lks!y1#b&{iWK`uR-Orah+C!-E>P z3Q;<9b>~BCqMVm5B#9jIu|Ro}Qj-`;Il{w$%CMrV6ei?_uYdDQF6V5vj&7G3n9wC! zSM!CpPgE(X=IEMo)fW#p+jsIU16Su-X(Nqr#t6dA+NaS$@?nv=u?mUg}yL`-=OaQ0;$b zf7?xQ+-@1cRpK`cE*rvd1w1LX!1rRqJ4I}HcZufrcu>ydyGzBtY3_V?nAm{s5?k&C z@!z~>#fE1}{BOnqVvBo9Y>Ds0cfz;gJKh0ei~CM&cxQ=c+>c^Inp-@B<`x_99b!YC zMr^@1i4A!h(U9L08`7a-LpoPHpT2H{??Uvw*n;N}{|C^XVnZ5RY)Q+D4S5Dp&xf34 z6!D#3PZ9N?cvDuY?uM)XJQ`lcXT3Af-Mi{_uarvH;Q-%PccbwlCTAErTDDApIkmp$ z*?f^cCet#c$uUKs-JRTBE>*-t!B&yFarp5xnQIt|hV3M=vvs$AdwCTgU|qT2^RGI^ z84ICdC&07*f>S~_2a7gw47BMB=OsEYLR%b&ES_ffqew@-=DtDW?}M~21xm-aI(+q! z|EjfxRRv}KY&wbY30(e`SXBR3tJdP*vYl3Gp(xK;B7mnTg)nWcmbFH*&DFcN@v5a) zM8cZ2Xtj7uXk=i`eM`?d=)veoly&3W#q;&7)zVW(pDmcJmZ=B3)}tpNwli3^=&71z zLJ>RZs+XNnz#7K9{qy0~;d!@5)>P=40q2)MAg$e^XKq^an}zXdMXn&|vt#~8Rs(s* z{vXw;O}YV~Q3c0*qzo*oLvJF-R_WkJ0b^ zDsBg-kF(i=Lht6_QbRS<>Rla0T`muG^^T66?~_9QNg@A|jllIwhx|90kCXhM-TKSI z$>g(PM+U|Kzxt&^9$t8xdQzS1UJQCT0$QdPya}3kICQ2|yqNeJ4fD$BOxeI3q|0yG z$Bx=T-u*O5uGhCWc}&zxOiyiaL(Bc~AkV^mf_7u_H$uj+D)fyeL!;ZIQJs-hK-E7P z-{-2nMs?@{ss`-GG<%2_@Gz(9qK;;KqFSxHhj^JUVnD|kq$J?gC5i7BNj%QS@w?Z1 zv3UJAxt}1EG!RUwTuMna!b4B9`6`!G9aJy>F$GzMpwOeI=Ih`qt;bH|q$Pqg4oSBj#&^_)Yfb5HIILSAZ^gF50&SnSsmds z+@!n@H#I8f!HZA|xK1_&Cw4}XBC)(;6h8OnGa*#YpX<_rJWXF=kKa!B$yq1^5fP=! z2l90t@@t*PcQcreZF8j*;wv|4$`Ffz0Q*k6Jnj~hYr~Sa-Znp?7%7MSa+nIH%sT~ zY(4ATXDbYjr2L!%rrlae`cI6t-XF%?6Bqst` zX5jv~e;8M_13X`6k!92R_C|9OibepATZd*&@s#DWU`aD^BkB%SwS{{=)Q-}7#4(T% zfoHiD9zVzi*!QH8jhi*nJ?s#5fj;v5=Wz03=gK>-N3%mKfGG z*vXZvu~Ec(smXh{emBWLcyPO(B9YnXE~zLF+lcoNAM(!KLx=f5pRap}D`|=Y;<|hF z0CpBrd0=owa(}!pU5LHLHM#%5*BU&!SY`dV{XA1n!Zb4X`j@9EP^cJ-s3Vsq)_KPq zgVpPBdaY)MNd zsQ!;Nl-y$)dUY<51>>GYI;C_ug6nkT#~bv%#1MeS79(9>fxIy3qenPbG%G&7J1{R| zvo#3Bf!%071nO}2op{E+7F(VrvE6z0l`G*2(GXvWE%Bk)9yf1S*18u&!}~{khx<`9 zzq37d2OH50<#AQeC*qm3kZ4AW)wNTi@x%u7qu7jY_3i0e+E_e;78eb92eBbfBEBoY-|$U<6Pu2$l__w4RWGx7NN!}|9c(Gl*QqbIJHMZ@At~J6pStm&_o07r-fpII z&hu4X&x^COPtj<#8jbIaE~CHC+P`v|FDv9YS3%d2mS&!t-;ziM zHKZ8zkT`9;s96h1P_DpBDRTn5;PL_DCV}Rayn7dt9!{c)c%mFu32?~!O1ri7oL*)S zRF41uOKLNd0Df|TWk(4g2j)okgKieIbe7$juIu8j*##uH*uXB$z#YUe5jj?YWh!LoR*4dJDV6yg z#4O}z0;#haTU9z={(07+y9}jT7gKZYUTuLolS%QGZE_!b;XpJ1>b@S5LH0+H994b3 z3)c{!R|3S7qx%rit)+ySN(sVu);$yW;dt2H1>Y{g*u08XWE8}1{U@kyPnArXtyP5_ z9oxVzhN`bBqv#wcvYvAdoAjy4`vK80$Qjkj!?TAu@hjSskoSFLMZG|GIvh$XS~wEt zcH?#Y_@z*^f!yAuV`}ylDBaZU4L$j^e7r7`Cipi@!&Tvpo#GkM^o8F}+0eT>&Vg@! zyDY$W_{ewV_%!lz^j;)k*qfpOQuyvF>f|9pk1dVmMI*n2-Lu{qa0|q?c*a2x5_UIY z8x`%14h#sqIDz`2qc*@&?a`FKJGNd zLXsDkB&9|-zyvE^$Eu)a4(+CVbacL+;Z+K(XZ`v0_O0CjR{^SK;Va;440-UruKzaP z;t8NGLLic$kJs@mhM;gk95Mv@Zbi=Vi05fCk7OJu@5?ph*SYZ13W62=1k164*)&=BMEv-0|%%Eao2r&4?NT z`G-Pw_rx|q^T=tCA_k?>s(kH~u`CzR%BkG&Vzp#DSSMamg>RK1igZ)7Tn8aY;A>XRZ zXi^KX3yG)go*jqzTA&5`?wtmH9D{me{dvAt&M;{P(OH^ojhYR`PuS6K;o9&uOvmZS zn&EZrLRg?F5(zY~j!b8CJ4)x?`Y+EIf(edXF6(4H_42l6@1!@QaT1SblW#E&^8nk7 zZzO-;ZsN!1Ns^^wq)dS?4b6{wW`wBcp}XQ19Ud^8_LV0qt(Yr_QLejAI``hX<^BRP z1FGLerVO3XrItHHFI}ShQ$d_~@IUP}6v+7seq9B8M^iZ~YHz4?W!XIW7Ttkldc(5x z%3D*qqTe^G>y6t?R@W-%Y2&iLN5{SH#c^*C_0PeD@6o4|linb77n^q2SLFun^v;{M zlgn#bBN@3P53H)IaDwt$t7DyRKm!koWoavW_whFMJLLj(ciG^BOdJ*UC~H6YVhy{R z_5r0JRSirR2sd9n1j-p3lW3OTMi=M0nX)c<@}QRlfDXWmGQ9X{md+RN;Cg*qJ(!@+ zcV$>u?3j1IludM4BB|N>U^`IGh|-;gf@MGtsK5f-1wCs|p&a2--URmnr5A(Ht!k%v z^?{ctXD!4kRua7RT(fJzyZ&nV#LHztM-O)?Q1~TjZ}=>3%!``6Y&UFim5s|x));Z} zvKyoszl>5KmL#XLTrV(Y?lNL)P?S~c4IrN`?#_=pY z+5UTv9!B6atj2ef>{cHEubg;zGKkJ3K7%_0SwM--L-J@sYCj<0Wj z#|xSnT)$inHF@*ZES_e!Yz_-T6JV$0)%)7}&enW9$4BAuc-P<(!k_gnc^N9tjY1%; zx;Jxh+Y->zIQ&PSvQ;UAW;r?9tRv@?hR^{ZG+N>PvuF%Ac zh(6=p0=o>wS?hH`3 zVHGw>dgQCTsVoGm_4AVjo+q8bg#_AC$b37DPX+Czq&wB`M>X_xQ3zU=C2@Rm^hr|^ zwQfxBK{c0Mhs>*fd!yDF>*zjYH#b|*#P$_X|0c4qM(%XEQoh{T>@VkGnJQ_JJAl>UNzf?Jy;gs zj;odl(7Q+ZK_gH`-n-w%wg%uqz5XBbFt?L@yz#q{dQ*qO{&CYByMwN%lQ&(={(Q#M zuhlw_KqANTG{mk-ND!V(E9kkaYF^0ioTPIAVyN0oR1z!$0|CQQh;uI{TlEMJFvh4 zc$?MmULEoglUHi!d`aFoK0drU)Hr4&>G)fqxaZkJyO!Sa#~jdhLg3;O)X>$Pz8ER5 zqoMhe?B4%wz+nInFVWSyS<2QDP|N?q zH)(BX`M*Nz_!njS3EnqZ%W*!Rv_a-p{N2Fgx$_V$1h`QKMHNYV;Dsmii8&flje_CVwZktW4tJsh~77cZbL<8PjH01Ne7V;#qq0CA&(D4>EZye$~zNd%{-f=_& zJyWseo1fU?4ODFLJ}b6-0~K4mw~8&^g2k3^tzwJ!ZL#IMyV&xbUu^JRFB;egi4AOo zL<9W=v88T=XsCN3o}u3%w$v#R4fMFh2D&Zc89Fp#16>{Q44ojcg$|N`Qol@Wsm~_1(47+v_433PI)9>}KB3sq{y}^v8&=WGzScKK8`-LeEp22(a~qc` zKMh{H9kGE;kl4`PNNj1NB{s0L7aP3aiVgL|MMFJd(eSNVG<-i6TfEDPE#H7eL;DS} z#k;h4#yhy!z<+|+z?NP#w1*PUkfDfY$Zo_2G9s~ooJwpV2NTbfy@?Ivf#N&JAH_3e zpkfQTtJqK$EVh)di4Ek8qM>Y6Y$%r&4c|mW!#5VOh0c)Jzy?KZs4pcd?CV8C8-4K| z`~ipteh0*N_H`gO^tB+i@aG`5(0LOZ=mLs{x?y4qy))s_c@tac&WQ#(dEz_j8Hz3R z9L1J8m109ZPqC#wsn}3&RcxpiEB+0-x#BzP4~qsm%i@`K%3?#iXt9NV9I=6IvUsK) zwAj$@T6_neVd9y7%fxr^ohF{)yG?AUuOk}zJ`oM|S42a77_p(Ajo46+M>NzA5*z3o ziD&3Gi7j-m#0I)uVgsEq(ZC;-*ucM)*urL2d*X|4$FRa+l=SMjj-d;Ia(Zph<5>05lqQg(S`ohI|!)!jkOcp~4!n0{FE+Ndv< zncNw947${kK8n?5!C2)qRD0qZtZ#|JsGQGo`IFO6!;h6^oPM+JGb-Fzo%U>+25k?o zE-vk+o0U1N+0W%Nrx%CE-U(_nRt(f67pi)=P5RM0KX!&&x3`>!+S>gD*vIrScC`#P zD?iU-ClcbuZOg(EwFbth-j~(1Tn;WSdxNV#siM{M)m~Z!@Jsk7{-4l4FeBpx)BtIsK+;V~Fq= z?thQ(;LsfwY72CY<7slAOiL5JeH~_^eYU4s!+B>CaVfw3W6j=L&%a7qN+nH{D4`L4 zzB;PG8D9Lny7r&~e|c*^AXSaRLR10AZpscc!fjjiGYR*z=W7?FEH>WJ+Yl|?VzzXv zU)z&cUm^{>6ZW^|==Qej`=j*S8{?$v^7S~Wx_t9}r*(IFpL^$5@%hD7|KyKgEV!7U z;Es~4)y3cdpMwHEM=kgw!tZ`OJpa%;4(}Ox20x&xUr`*_s2%KEn6^;&khO`S03U#R z40AdO`#C(99XT1TM(~;uXuDlAe_OyxV)j$-T+*4fbLTs60UE)-H-JfJVHot}zc2?)=qP(XM;$Gc5RkW+)j-~U(dPT?x7*c;yauPvEdmO4RM2Lh-<_KxKnJ2pT#rp1@Rs5hIj_<6VJFa#D;gM z*x-H^&!7XuhBSxRfSwW0;AO=#cxdrV{#|S!D-avvIk5#U6%FyUXh3_5??mT|??fMq zXVU57nS6q1z>A0tWu;;Z`IPvM@-guYIi1)-E-1E;KZ@t^tWD;)#3zeq^7CRde!f8; zPqyo01DUYcLLMzPkjsegAO{lPK^`S)WM1Ms%Gbme@;&iPnWFd(a!v6aGE^ zWyRu|vTCuVj9fhPeMo$VH!88^`;--`**ZH_dAZ_ICi9IZ7RwjXkR3{u&>A*Py`) zP1%cAjsvkELr9oN(1}`(=C?`J{>@e+&>VC6QZwf_({!;3d@4sfk|*Ux9+tau!C<+3 z3MMWLpNIEr!B4UOMb38)%I<2dRr%U2!k{0!C6!QLnQzKN!)me5`KJFC8TxZKXdZ{ysoKVr-J z>-sG=oli23y3VpyNn=}EJ+^&tjjX^c%Yg+g*^GdZ8Pf|Tcr-vOI#%|;ktLO~<}fy} zRy^BM8Q73$7kBf3NL5}}%Hv$CwMeHrsD-EOXXU-m_77Hc;Src)yIn4*oAu7wm*_ej zY1Y+GSArgd@rf6_VyCvV$R9+r@p<6Fb0)S}6S2j977fpe*kC`24fm>e#<>uioktJ6 zA6JPjah2E*SBdYo=bG?|y|(81E&~ z1i#bCdrAMnFG)+iN4gDRv`|gw%ZiiH%t{z7Z{ITw@$%)X!vB9wmh)u#ip)mySF>c2 zj$Wy8yplKBtFffQmZSK7AHH6WF;0ox7&qxH#w_Wm-!Q&Ndw#b(-e^Bs(P=v8IV4!+ z^;vU1213_&MwaY>iXbKtx7hiOV-dM^H|fW$t_@ndBS{F#-7yD7b)pU)sCD z?n|hig`~{U8{JKG-ut4|op`_K`<2_gONc+GT%Jb%ur}#usW9R;oN&Tzc{0zlCDi%( zNb!O4wD-?HAD;G)edxkf2);y6endT@wU8|SzhHO4Ycp1+a0jGgO5{;|1X`4PrXNSY9-XMO>Dj|knck}l` z`46LXRXhti-KJ^F@R8{sq{ec*^17WZrU~rkSbGaKd)+Xg=3J**j&Q?Ie6p2S(RiF{ z*Hm`Q#z#ZukJ>|NWaB z*)F*BTXyazz&pP|QqXt>atLW`=j!4T=|8pw;C|gbD1A4wGJkAWj7_-%EF zS8{Opvb{|3o!siB-|FGT%;ri|yk*GER9u=NY>YW5Nww z-4ppJk!7+=2lPG4j^5Zxj4FK>d!ObO{f7SA&3?plgl%+yr^>CqDLC49%P~0cEasul ziD;cCO8MXbC0UZTo+l46FJ$L8_(3a%3;xgaUoU5C$slt3>HZje^3ErtwJ~XIF-}y9y%+KV%y)-?7_*;*Bx1~@IA81Pdaj6INwgbybA34^6|6-x0a+w zJIUN?XF0i>PV9CUdcAKKX~uZFE0_o379Ydhy<+ z>}({n;?dz-L1tCfX`k6StxU#(czj*ON!6*`~dpPW=G&2Cc zOI>{+Me`f#YkiHvh`EIF<-2)$E=q$nYl1L(sBt-79<)I%7(am)&Q#b5wsI`DGTaQW zEC(yj8IgB0wuW9@h+;SWm>TN)y;~N%-Rbx}ghSV}7%l@4YK*6&*@6xXAVx#v8TyAW z8S)DqF_YLX(uMSNWoe31{vwl`K@nQovGgNCtDlyRCbU-`3a0Nyy_b<5F9u`)N)B{Q zWp|$vO)Ifiv69@dfFH;=FtI;!39WsaNs{UjJFU3-!d-5`O0qdG?q^EF@-}U%*i(MB zu!U%<91y_R`*!(`A1!a!GY%q&^R&vc=sE=ljLV#K{dVc~n^+O~t??a9r`{KDkr zixk7jAzz5SfSHHW=k5V>#CCxTh^NWiStB3Z2%-x)-iZMApK@@((fm_39p_K;F-uG! z&Gf7Merft-)5Ma0i4ot)^MgL5V&&i!pPeMUf`q+KkZ>tuxd}+ztTPD>{};+ZIJZr3 zX%>P>LDvp{jpn0@x@0cbHM$AH+^D+vQr`>L#{g{ye!mWWzg@yVpb9I0nRC5kE-<`n zCH1`q6xWedkGk)(H0MwHPLjnkn_-gkJ?Y@C)Nry^xW@B4DqW!aaEBlqNOi9h1*&Ty z`YcZucTY~;xMzHshH3jP+HdRf6RWi9gSWWjX}r+RB-Bc|&Pkv~cYftMb?6Rq)9=T# z&f;Ox@}(1|Gqh`-N|I=vbjYt(IbG77UsalH4i8L6Zh;P9?-t2v@Q|qAaQ&#?K=P{J zKzYvAkKVfEc52z>V{|Ioa?_B+y?%1i)OmE$_*}VZH}1FTBYvyXQ%>90W08kq1_QFb zaeSWfjBjpfOrAV+DyQce>Cz=kr=(3KzH#9mp#Z|Y_S`OgBFLR|)5P@dcc;rivEiq-q- zPcyfAr~fw<^^a~E)i1$<^-t9MkFS22*<^kIEHFQG3Ip|%-(Qam%&nim>;|lL=MxqYqrH*B&q)`z& zs{oHzZXs=!&O6M2m*6Fn7R<{Q9Tos7dN*PrV`N>}%A@1L+As1Fm!p#BjYRhiW!Z|q zoqjb}#BcABk92q>04TA>oTu1Xyl`BZ2`2d~#(X5>L;1bI;D9tCqIJH+Xm}u#Ugi9g zc?@E9$n7k|Xx7}V8XF2^od*adzh|2HfJi>YR~$I!;sbLbN}^1nVN)3p97Wl;tE2&e z%pK9UTNT$)l!2G)aAn}dO02n%%S_X;Uc7>szBnz~k9}e6o}o8=E1)*d`j`E ztRGa`P93)3y_nwl4W04ow>Nzr;6O=+8;%}GZuD7;$g_u$pU}7Bb7>}`&;0y?JgPGu z&rxDI)TDg2sEpl1N?%)Vc`)*5JYT7~;jw}6VyQ&juJn@XIE5L5a%mn-!Px`842;*y zB~B)6ifi_rPJLm&)>aT)OP0eSr(|7{rp#B# zB4@kkWKw*e7-x&87)-6>b#5!v7Uka{%ZexIvRK}j<8Wwr70-q9hbsu9H+M(y>;`z0ohgx5Z<>KjOpg z)u+R&ivb5+!@x|uHD0=ULoRH5b#xjJ`~TT1l+d)o%+LyUJ@~GmA6>vOjUGa7kl0OE z>Z!nfm!mSUGoe5cs#LdLnK>#MNv6+v;{!b<`T_q;p&4_h(|DN|5e*5MxMu$zO+DigB~?+mO!qF~c){AFglH+oIf?9sSy6 z-pMHVFZ1A``PF+xk9o2t%0Z>&)6sp>N!2?hl~>Y);@w^+i3rmI&7=@^ACxqrzRqf? zM6tXprLu8>Uy4*LUnk8f!rP~_n5T9QMjb8bJ~oqp6!rVu8&=~DiOOY)4$)4%VkNs) z4P56pxRp`0M3pGhf>YO?f$~uKr6@F1b0JIVJzbVLaY!9l;7M}5zP$kv0TqbA`nnbF zgGYY_U~pS``Vp?DC^-OFjY;FtWU=?|-D{haN+;Hwy6@C(+3SfAd*PymvU|FZUs2v5Zv9f(2qj1=A5ptH;M?rn(#+ z3}jLz4WcqH=x3|^Jfqp$nnofTPc2AEw-EYa$S)#F*NZCNva${5-Zb*#snaISTjZIy zsKDY-tmttW&Qdk?=EbP11c#w;cC7nAV${;wzqj?fef2wZM!U4;SRsg!RFvuWtTP;- zlS(vR0ZyZso!sJGM~^YnNI1gs_y{Fb^`k%oX&S}a45fR)8Y9ra@CpX?=Kg(1Ef`D~ zqd*KL34lATc}C<*9B`hu!}|>cJ-E0NHZ=>pnfl5tX6ZOq-XlOSe}l4ab7ro!VJi&) z#>Q78iJ;V*9uSXeGFi`eMY03a&UE(X-P`@}U8LH)>>eC&E0Pk)b@=ll3G~Ao&#h9v zQtW%6wMuuX8(x`LQ7hEq?}umcMSmDyUVt5yt9K0}%+kC{#NxPWdC{0>3`Pu`v?RR zbYJ@SYXQP8>yoW*y?X!RJ|jwyl|J0|)re{HvW(E|_k5bIz|fJ$l1@N!%DW!%2;Tz$ z2Tk0KG`{rt&gXj_nW1}Nqo{MUIb^YWDHQ{ANd*(wj$A=^pG#T?$ zE%sb^v5hs~6$Ra6i{c&{; zRU5`0if`q}#z*9=T@i*r16cYHv~O_pMY#Dab7f=Cb8&U4qe_E13~!TZdTqgdqW56i z36=G(AgeHT3V3^?^oQ)xF=DyBhur#r;8k{+#6!Ob!ey(4#G<$G*n&^dFWP=M z$*xQF3v*%ASQT03$eLsLjHzZ%y~?2J{PUS2N~Ur>Uby>Qoj$;S;CI2dXKWbQsMT;J zUWyzbTz43O#Te=RZ~|ebtwk@>*(IGItpntw8Cz?$S6JAbPD*knbt`~t4!}KZ(j85* zB-cJW+QoawxpUCgbD4Z&tIlG7a?66am`7)o@oPZ&k8BO&vW&CfUI_N{axrr?E|ilY zPnr9S&8{m7g>2eO_VoM)i>f;N<5ysF&qF}z*-J|&4KK$6V{E@M`}k!(+GTx~0IrY= zCol1IZuDXj=cN$NBYTLDGXXc4&3}WJmUI&0A&dL0XdABIYbBo1IIxTc+4mUdxv0=L zc3gjnnbzagdYM>n8c?3xQ1F#+=>S$qhim*5*xR-i)~~f%E@y62=RWh#p9W>^4+ca% zN~NR1h9Jyiy7u(;y3zT+9nEGVuTL<`9x()D)iavjX1;1{nEYHc|(x@6`-)}cA z9xFgb@GNZe;B-DUML=}_>Tk2Xy|*ai;-3uf>+4IO?t(%upw&24etz3N{|b^Sozgh6`&GJ26}R}0Zye&? z-+qbjt^P%=f}R5(Ty~y{YB#9jurBB;6`goSgw(hn&`yj05H3@~;4=Qw%F03f`VOt8 zN30)b?3xGcX<560dDOU5$Z z=pCM!x!7z!PzFKb!gnXgCDhE}2MxtB@d|G16}<0f^XZdi zPrv%xy<8onsmbT#qwJ;OfmD8h3VPAjxE-T7SF@cicPrByriL_TwIexoS|)c>|b11DK1;%dX}BKL~er(V*Y`v)4ce|b7V^srja@Rx6W zy2x{aa7#bHd(Zg!VfXKp$?Aqz$wN^V)4^Uj! z)9e}*XP{AKpTTZR$p^Jt?^!oG%CZ$i-;~4otRkXXF;@!Xm%mQFIDoHz^~||E(`>i{ zL>`7;AZqVr^wWQ(68k0j`<*FW5+R)QkS)I+z~ce)@`gTl;g7)@9mr04AK#7ogWu(P zE&=mQJZEu`z;IzND8KjR{_D^I3KYU|wafDXdhxQ|5%@+Ljqkke4dvxb53?{K6m|rC z?IYEcmuAGjeLNm7iT&ZS5}m4$&Xe0xuc1K}pWpG<5Y zUd)Wvmnqv~&C>BQi&F?k!9MwleRaK^dB#$xA{ylqFRUu?tk0^s2$N>Z#NNuK{E{_c zxemQ0i+0E!eEacB88O427|VVbn@G3Z(P-j$PAlbur*66f3wmekWl{}a@WWo9t;x6g zc)mK=nS|&<(j>h$Rq|d@F@^)@xolC|YW>KELz%&O$`q_bY3}Z?Q}l5NzwaLW{VZFO z2H`xGrGc?)C;IwCQt*M$T#>dhda_f1o-sD`p6S`km7X+xeRB0`BsyV_m%crdM_PBU zO>_OaRXI*L&lp@G9~;MuDFBwsEt?MUiXQ zn>+dMi!z;;(S-pisKq|#*f|9_jxh0xLr18%5su+>sBWiTFV8tm<^g(@$CQm%(-_>i zqBrgUZ>R1V_x-ep`?#jgZ{Q{_W!JO5HHFt3w%$ruGpe#a{qud8r-V9P!GjsPZ?BT= zz^U*mH5=>hDNiNsg0`hf z$Fa67M;a>^_R~C@m(wcH#-tnw`yjnhoPlsZP-9}eL^&?gmksBjshp&b5*)M1{C!~z zgO7&c{it3YwIK*>9^YAkYUHM%*TCAnN{$mS2m($)UQuQ}C;kroI4o}ya`OzAB@-1s zn#190;ZfqH;yx8`tEkxmF&mt(8h%;v7dj^GW^{m|F-bV6iOW!b3iP!^nIs|#(+bpM zFu2oE0-E6;*VlCsCvzmC0w!#?s>V2UMp&jfb*P_7ij$4pyK9?ToZq|k3KfTddHZ>;E5mYVd*`rCAXIn&-qI*g zwqtXJK_MpPXgMJvgsXE8WDnQ%`Lbu#<#DC!h1=mq;%{&Win3Z4wi?&Eur!uQ22=F8 zf84+5#-R3n^ywr%JO41i9}sT7?J4ib8GJH0C4oEGaoo!I>v@h$&(yU!?{CWb`EPf= z!t!z#?tYO3T`lwKc9}A-?(3tEFITZ{7Ky)1J>Ok`_we1&eQ<7!!^l@v zn{IT&+ty*TN>HZ01EAG3U!XAc`XL5IZr&uVmfVyuc-p%+ zNh_V*lKAs=tP~o6AvWoIf%N@A`kO%d+d%p+f%JE7`gKzHzAb#;xZk6PYd1muZ<)JE zR!tDGTK|o|bpcZha-(|v{f!qCP^Vn~oWcm(&9v>c1$#qyR(VAi6)@4(&Lp@?4hF`R@Gz~l zEd>jsJZ1z~I3Q{N1LZBlvCWBcE3i8P6O4C%JCV_?bqK*&@lP4M6l^vA74dzJ{*!J0 zYiJikeb{;Z>r|e&LOV=i1MxtZ;bh{4p8GWP;qI zOcqHFg+j2FkXMspp>(ziqN z*ZJ-4!8Wfd&mFw8<2{bs5?$|Dq3=rYuH9AO{Hj>B(GW=xVBHQ-;=UlixkxZrK0HC= zZk02^5{5=tIrSt0WEX3%qaUNa2$66mxAAMw{!kmt@sI<~S;LyjPpq#l?eU z3>nB=@{5A3Nit=(bBM{>AN-!baO0vC?C8i_aKv7yjW2T$+-YvCX!nKDe@u8~#m~4g zk%_QS?@88vzZ*?;ag4k<_1QXFXN@$_L+kFd`2*<{?U!}*;=L9$(XK4+6G`bRyO<_1 zmCN>0m}dJN%@@TsG}-%Dz9acbl1Vuqz2VScNKf$H4)nyrqJh2nnU&9~jwPJy>&q@u zfk1Vj<}C;aRls`_vw&_SRs8TXJrQ1|qrc3?r9f7f`elag!x)-Uvi&dX1|if=PrIB`WWdorP<{Y zv!S^!(Uz&BEs>K`G)cQB@?NZ1LnqdB!On)r@Rvngs_Y>boKqvaOy+T4e4FB(h__qdy?<=SjHTZN~|oPRL5%(uKI~ zdd>^JC5ey0XtfgmTt9jGKwJL>H*oiWkK-H^)Z|09Qr!OdrCqt^#r1|x(dJc5p5B|* z@#Y$=zEhNYG(Df+q@;9SwD-bJy~%Eq%wq90P7nZo z7K6?AqO_M7Cjqfk%2U2*aWv{E%6qmQhI^P1Kr!xUj@P+jr=2?<=`?&(R{;~+PQIB2 ztvcg7SNMFdkwKXkT7Cm-&wK>2X)EBIZO?&l&2iT;Qx?(fa)F|6bfI02tu)7d!t1kM zvco2-{lJNxXJq6jKg6+&7h;)5lDq~@3dxf_74DD3D68o*bz1S| zzL(#nnc50!q?Tj~Yj7+>Y**X%Ia`SR47^dRd@{yRE}huy=| zUi5GWHibtga6K!xI;PEIRAT}z*BpI_C5c;976O}BRaJR!sB_)6{dS}`EZ$I_kd^$( z>`#;>BekufExY@7oV%IM{tuRgcZu|tl%bw1%S2!P_}T{Wz#1=^{aGATJ=-H3Ril*28{{5{ObC9GJZZF#8Q)-ZX%D+W_X51~BjZFgzJ| zlVx)V?Ao9cXQ12<6-%!OO#)%A>P^3w)wz{5(QGsQ8H8I=oFld<2OqCS)eFdLpv8>4{Qiu~DuG>`n-YaWY zcMS`i%pJ?P6|Q685OVK@?A8Uo>eZ!8$E^ct2X;)iPgd+El665Ta~^-c7$Q$|aaFwE zjh&D64ikMo>Yp?#z__<*^;+hftvJMvR+wx%c-O{IOk+=B@yqGpEesr?`Ec4Kfq5vG zk?C1JO2=*?riZWXR3(G-*FVmtNNN)8;pyA$bu?YCyk(~&Pdj(ZY&MdY_#Nmt1@q-% z1Dh4id@y(rJvF#}mZZcS-^G*p*wc;+bDt&;-Z9WghAN(F^2gWm9xC@0^RfCTUtg{K zVg(itDaq(k7Ycc$(pJ8&`BJ{W|L#5QS%3GQt}O4Xf4Z9a_s$9!se5nU=-R(muNPzg z8Zln3xvNIZ4-?F@Ozu!^%@$~)1d;>3GzFPDx?+g7KG?dZ=-}#`d z1xopL#~;ias+DJ14@^um z2IlxxshtTo*GHPUEO_u{#^jQVzI2DCPTE%=@Ur42y%78aaXSWYan>R*=PTs_; zM@I=1U?o2~F5!$IE-T^)xxbg`WBKgUUJc>YDtzn5Rr>BwA_Y$$ja(v((_I*UTLvbK z+Y2y3{I2j%^2$Rl7hrB)c}Qk8pO2~ah7aqebo($wp7QesZ%h&+X<0FdWM!SByK74i zF(}h<`i3ucj%}IAQ{p*zy<4g1Q&zkZn1SjT)I4)BWQJrx+RdmNr#%K4kxze8jxsJ; zSd{L4i99rx-?3v?>*I;e?*Nm_GhC2i^p7DEE=~vxY>ZDQTD0hqi@>Wqo%BNbY*G}u zs6d5`?0DYFwcK2l3Pc|s;mR^uV@CkF1d3Xw(Wd2 zynzGobaiLGhH)XND18yJv?m_B&HxJs3s7SL{Sy2_}0LOBw)q;j%Nu<8Ee($N@lLYYx z{ho~qbAeZH%#J@S-324_0&5v~_{Mi{ehe$_2P52*mpG9Th1f;^vOPSYEMS&!Trb>g zP*6ExRb-|qyF|r3OD#_0kZc~yyEx{_MHM7E&t*M{=S8n z9O+o4y&PMz7RSP|rAy9lbv#^h^u&6kdE6P5h{;Ba@FaWBF2WT|ZEPRg;G5kzvC*fVeGgFTEb(=IhK(mWOaOvV*ME60wO>Z{Os6pgx~0mRY!HZOR(5lV$LT^ zuiGxiF3}Z`?N&?Ux?+D;>v^)Q=*t0CN>JqrU08)ZuMoNq3L7ODGj|^nvS9#pLppjz zSUCPy>dB=Lx4ST3AjVYK;N*;Pt9R~Iq}|H7Pv;TsEp~EU9&69$i6muk16rG7Is9wJ zt2^bfA7}8~g3cpsNHws>61*A^M|Hn})917?Y5C@iBexXR3($gp-@x4HH)l0R-u-e= zu-Bz1j*rnIC%@?i*EcJ-^xPd3?Gm-F`7&2hjThe7B;<=nuEEnvoB$&w z;$)%~{NyyEy7&w>JPvqo|JQcKIWMmd&14bJEDFxYiuqkleQIut&ZxsL)t34E_SBSc z;dy#3R~c+_O}r68F>wwwDu1&9GkT#@X>jXtQmIe(=_JW00N3)~i6&are|`I6@$i`8 zEQ8v0=>7`bEvpQ@%GBLOfLuYlJOZg*02ga`lp8?s}xL0F^%XUcyb87nL-3%4fwE0@fa#GJ!QY!MC4hQq!!)X*JPE;Hoe`e{Xg zzs<6V#sR9K3ix3%f;i%b5FG0YG{P;KvIGk=ev&Tp6{v{cR>D%#KHxHJ_vCeSRho^4 zbB$+h_&PM_gU3N~3Gorh`Jp4@E#5VnlB}S`@vf(6M2s7aEou?gT=u>KW%wLc0=cF_ z)jrrUC{-uZX(X|7noUYYd}Y#GYuDAc0dW=T`h1zz&jXH2v8%KWwPgy|SWQ26^)=RH z9^@4yyECaB+lcQEw3KL2@1nt6EFkvQ!feReJ)tjz`t_2R!AP=Q$Rx9i;mW$%ObGe` z#BrlNdN<9}ru$#!f($dAu2@V`Gk^HTc?Z``XqN`cz*PfQrNPbZI}7vW#_;O4X|#uT z<=RQ^ZxtDaG9Whr*pJ=5ey0fWaqyO{r09?8T`4SwtE7{sM*&yiF+-)ORv^p z8J`7DL{XuDXP)Q|nu6AKv36hmbbb+?(^Ya#4h=3j#@Realr; zEw^MiL=SavU;+h%ag(tl>d<#exXwlPHBnNZy7kTT>y!%A!!DBK>t^*rfqGbE(h95O zgH!hiQ=|DEANEkalG%h%s0Bf1K@N37dlikXmA-@})X`3pl^81^PmS*$D4=l;W3Cy; zXfe7@F}OVir*+^-bOL2st>4$9DI8{CCkDvzUICYiybg!3%I_f%=-Z>%nu`VhsBqv|D_0>pXQZM@EaP9T~T<#LcYLzvy0_ z#{J>((N)wx|9p7bKSsf7zDOYks17=;@BFO)X8&E(h2Y-(V|Ehw*jDL1_7cM`SjaO0)&Y89 zu#_<=fyDfjYR@L>f5fa4Vr8%vN;w1i4|R0<#z0YCB`xjfR(fcu3!6hMg3~%^J!L1HUm?YtDZ=pwlo#U1Q`*@mU9Mhk2<}NS3^akT5gcJ2|Ev zq5bev>(k}1bv8=p0QhNm6d!jl@o)E-{vLJ@TVGOm2PL0WM`uG!zm)gNbeiCMXIBy@ z;E@u3pJorO^YrW^{!Tk`>*3!;Ca3B&J)ymwb|;j7Hiy3#a)fts&%y66qvZ_#9?M;$ z@}m1}3XCs&f12xar92+X`JYZ`9kMCaA*tm_red8XkBbysE4GHCn?z!LC-qA*LOJ@? zG97=FNAF~mV?VA&3&inV$$H+R^iTFF&By8!)^Tj*;qL?$0$Zc?>JA>X$0}XI@X^M8 zu9EQ`y782|XZ$pt$|DDdxW&VaXX)Jh9z8;^&-7N#l$Bpfo6C7uzeo4C`gb5SqF`O9XMC~ z8|UgSjd58>uMxxsvcAz23?E@@meQa{I>V16EkcR_rqNH^Affm<}xdexQR-aI@=_ zW8vE0<@(%oUGH5cuZ4`tgE!Yz#*;#O&P}7er_yjj3Cv9+uvR|Kz`b`Xf0BI5EXL+| z$SrUkR!Yy2zDUVSx&1rlDMJ^Xc6tiuY6bWw=6H_sd!1j$cVqgSt#0+cS6Jmn-syLR zb6nWh$)lVRU|{3`(fRf@-2sHOkcR0fbk)h09o#ck8vHJ%b>Q{pD<*gHY>Hin{A>;; z;Y=5)Xlg{X0IVFkyvwraI=y{?YSxE$%XX_ff=iVBc?^<8)EzB=D0I?6_RJZ|Man`| zmxF6YdY_lYC6KBcOIhEczO)JN%f@lu<#+ck8Gpss!|vo&~#9^EJS z!f3ha9w*ajZtBeEc?aVVW_L4Aqpc%P`Vz^omV$*{5o2f@g`n z-klryp-82+Rj*}3-I~o(994>Z53Er>kJfXh^sO`=*#xZnAm*x^a-?Z8{eU&Z^yr+{ zLeg{cBut2=@c|HxW>=LzkB?5pZ~sj-QrW$ zqALmTUQ4CTvzcBGxnmKpbY!W*`c3qHrYCWE8t+rI(O~l-u0tM>CGH9mMgmUGjLUBl zo-8v^UO=Dh#CRxk4`u6dp!_t+I`_ou$H$lvC8Q}|C3rz9;$EpmKzxa@URG4*m5$`b>CB zI?*GPrK@uCz(f*nmF;`(NUM-!i}WA>?(Nr>o|*2c(yWjShQz4Xsk|19f)+J28JtL?vBWh;8GM`UJ?8%5znH2`-hX{(=hP#OB?qCL_TG%0J5L}+?Tf+DZa zE8F)3Qb4kqDf>^f_4sYL<8B!g)&L)@u$0s1$yhIx^5tP$1&k(jn6pVd~%`}kv3 zAL#(uCrRR@SwX*^XFN9#Rj_Z_e2<>IGBu8O%8wZ%iF6K;mjR*T;hbd>BW372)pj2R zZQ3G8<9q#`KG#-J0<{HGuy2eOi`qDpf+K_;TARmugh$f{h>!jc%m1aV5#s|WVF%cL z^q``uaQ8d7Kiu1^*n6%o8=a@TuF>YaLE`(CSIa8kv_(sPcy!vsW#?1zz8E_$biQeA z19ii>4FDGFBVMR{${jd$nRsx4hT{Pgr`VUz&KqOpCEM&tKu_8mAht0(R3x7KSsW*3 zo3&(WfwqO#|BuGr{t^_d_%GgktA0Jlmi3g(8fi?5uFiEo-F4G8*ErFVfw@a9)K{9H z09aukvWcwK^N(LNSriSAFJF|#viFPZV075;o<_IR6is){i^&(93{XHDB)8>#xBoht z70S|j5m5)cH#pkiusJ|S|=E#XI(hiH;#2^97SDt9L^X6QL*hj60W%MO3=RpE=q?Nr8B!%>5>xcpy&dI)IlRpOxMyZ zr3nIj#Uv^wE1ZXAu4j|ZXnLD<6zRa}lQ9ZLluXS|g9brW9PZKh|W(QS;PWUVaj3| zQ9pEHcTNj+Ue9tPIpQ=>&Fb9Ks^I`k8N=vw^n;s8j2Sb9A@O)A@=Zo_81?W)qArduYGnB=qbBs#vrsLOfq-u#<~ z&cXbpk{;;%BRiD>fCOkmB`$eWK|eCgn^60zj=jS8zRn?>w8?#6A};;)>{r&a@2Q9F zmPhieDW>tM`1s1WQu!f)RiA~STP>pbZY_@<1=`10?OW!<#e1N5BYRnW_YV7fae8>w zmlXDw__8-RLqfYqml`8cKsxv6R|)hpd~0|dpb_xCM5+UKC;AZx@Y4{j5HD5VosIm* z+w%ON<*0L^R@3R-GM&y51&$zY2BM`{;SyvJDGA(OQK*c<*dW)_Ca**xyGTcn8&BUF zDVi&{AD{#EG=V`8J>Q9n`VY`HDm%z)q1zoAUl@j|bTIk|?Ll=%MHM_4t6VbQsyCgGbZ3I*&S7iLX8_kGZbEd5m-4hHw>>KXm0e?}%11a@455 z-z6p`SBH??dY9+2y!D-NIq_HErHflp9)MLbQ%2kN;qH=Gbf9kIbz@wBVww;sau$bZ zdK2^mplw#UYB?Slz+P$j4JhoA*Af#Z3#AR$S!QI&w6(QMfZUlU)?ymZZ{S(vdVLG( z)9xOpxu`DB^X07pVlml;OKnT^=qm_<&4eccB7hJ9ozrjFD>>@5u~vwuUR3$=4~ptm zhp}8%AJf2`0Dq_WfctEf_{N1yMFt`%x3t_4#iFIMc)ZI+ZQm{yG>rzl^TuptSp^4s z%<6y9XN(sf_EJ2Cm#=m$>}U;219%V`)t$mgYS3rk(%MbxTY-{NyU`p-E;5!}q}NXr zUeODUW+g?F-lU}anJbwjF>L?PG!#608Uhi&@-^yW!b{#0Q9%>L9dM2(V=W=^;7eu- zx$ajMHTvGgNydr{F`zp+lied7fFfU} z2~dm;zb9i##=kO&^fxn{V^WuCwO}P+w$K-x{0%}ToM~bs@Hbki!`s%x>f3T06IxYk z{f_?%{`)Kc{hJ)`{T|Vg_j@n*@b5l<@5A>GZ{!VjVB^D+56Ys?c<{C1n!MoJ@CLJ> zM+#j#knncgvr_%qLy#`weII`PxOa%+1WRU7s!JnKoR@d63wK!=zWgG`-FaV(Ur{Q{ z(^2Yn5mpVLKlnZFGopR(_P>CY)x8e1bh6@jM`c(%d=Y9)qqlhDm(@E?;0~R4GY_0A z6_MB1-s{()aREH9wj@c?*?MNH894r1>)ZLIx*e2+$YTu3Asde&I_%cf?bUcNupVuS zi}Ta|dCz-)_{yn9ND*|mvOl4hoUA=@NIDH}-xPx$hxJ~x1ErDzjQ6~P5*(e^PR)5$dT}M>62i~< zc*&}@%zs<^@h_4&d9UNk_{%G?Sh0ApJv0g^!^;kHS2_z6p>sacHy=vP5FPZPR9#_S zEby|c^8y>An`Z~XW-P=ELE^03>#`onv+17$v6eTdI5zBF&+ z(_mm1sA@xk_lAS`uzU6C@H8Mx{;womjcl(zRr2KES+x*(yXwx?)HsQwMtL@;i&Kx~ zoho}X`kH_SEx9htO6R1BKAkyJ^*VKpU>%;NelA!g5bwH5{8cQcf&IEr)ySkFe(=yL z4QMj&z9YSm8y&Eg9JrS~vzN<|0@UlC54a)iS2+&JM1X#*npe=wt-7az8el=XL4saV zwfd!?g4VF>FFj#3pikZT(Pu?bucTF--Q0xQXBxC>e16>nXgZ{O;9|}}?{k0Hzc`P( zSA$c7KJ{C?ER`pnz1Ool&|RlDZ8V2iW+2q;&}nn~uiqKzWwpakhoyN#I7MP9tp`m! zVOy%1QD>P>I$yz_BXkFpLCxYibzL{F>pD~y&VkIjUnVyl;u}MC6+m@GPCd)TdOBS% zs8{uM+2G}QP1sV1ROC_ok{ahu?@@T3t-35VwXd)#j5#nO)@Ib(Ci) zz`M|ky((|c7>-#o$sNg-cUZBi6~F~x9snEvq^I>L!FJs24dA0Xav~%b-r;u^SAV3S ziy_HCrGaNAV9fB$9ywg%s2OraBn@^{v#yAdJ-k z*@-dw$Q^!UIsxkq@a~>Yl3VL=C1hQ0<94hQ%#vh@jw<1-1xRX|RcG{CkU;6^JK3oZ z?4ma8ADT$H9kj=rO}DLYc3xUSiKMJ-qdns@o?(BrGG!}Mbm>c^;gKSrT`)Yfrx zD`$2JD`s?~WSacyfK{dQoz7Wz3bg6qlL{#qt$-#oU}lQxXn)Fcrt(NVjg4t#i+5Ju zc#O@CvxMw&bov@BcRc!TGS5;GGilfeSes6+pX@w5swr@yo$;QhopEQCb;kEvzYOq} z(WldP%L*POsU3}b-1#J*8-T9J4qe+#vAH~>9j%L4zzWNB7VULi@tC#V1$ts```4?Y zgA88g8c?cy!wyA4cv%sr=yW7Z3l-_DS{_bue8kIH@S1J{qc3?2UGn8T=pRQf-a|uk zB={j=H_9JUWKRhw0+h(VfpwWD57uXxKUeP-$?{28RmC$i0bW6WuIHT+SV)!_nhI+! z&Xb488rKx3rmQ>B1s?R{hxn{N?Apw+4-T6I;C}bC4)()o|El{jJ~_Q|AZ>jlbrf8c zB%La8q|qy8u|4=%@~Iw|b#IhI!jR4o!gL%(XIHvq1oSmLj4N;KgQ~}FSa%4OqBLt= z&|8zUg#ePICd%MF`A{vjxsyl#(d%CwI?z7547_cNI(L-1Tcsnu=TVd@NfR5uyzwYg zm36mLR2-?9=bXts#rq+C_0y>Zxyk2?)2qV|z4&s_JMMR{ddEK8F@Up&&T>CUhU7lR zTMxFHrld-HU0a+CFS_w@Pd4K0bwAu$|2%YdT)4x3)WU(VsY!hR*E_qs`onjw4Q@=`gO z&hqCNyH5{Bhk_#53yKpMGHBTI!U8SL5ckDgP1X}0U z@JH_d(0(J>Xed8&m24!>_ZfHVBqbW-5&T;8UTu4!pR+fW$kf8KK)xb(qt z|5R?4e5E`YV1Q7Sc9uWou)IqDL^-BGe+Pqnnmxpzm7(hZQ1!b@mzn#T0nWV6} zFb$`~B*`?K5-X+E$|M$+15IZmil4Hy=2`phl6_Jw*uO{ja=MfQEcTJ4CXifCfC9*B zIg+ds^m(4i0mxavwM5+$atM^lsajg!C^>TGN_P1keLKbI8w40L?KP{_`Yaa(f_f=s z4p<8sJ^fbwgWsrC12ialNt2y4`cAl4x?S2tSPuP@&^#e!kjWF5&C#D4!Nr<4<*_+? zmiCHCvgSv3|1;8Irlo%2TkTcZp7sYuFw8g0??W{vB;TQ1W^WB?1M_Au4(vExRx8VP zKkJ;K@*B0BX+L9}h7UVBTOfLj-O zpE6OcO`s~DeUBPJKsQF!sRSp7$6XbQz3@senNnIeE$D9KYr|dp^2>PKwdag_ROnkl zMF}-cy|f~WB#upu1N|^|FDY(#0d-NF5oET` zJE)AP?H38Q1KQ6j4PP=ki&@IHjV;SwlRXg1+B>$-OWh7G5s@)OlaS_8hnF7&ryyo@ z##FS?^*nnekLjvx18d1kfgIvD6I))7d2;GIa_W`UD1WxxBL^=kYK`=Brn_fcQ%k*e z%hDR>I!vg2*6a5|;ceN27xXix%+s%!^nAG+Jo|FX#H*QS*Er|FGWm%dW1hpJD_a(z zhIlI3YM7@o+?%#LB$JnbP6wdT5*O)#x$K{VJDDP=D`Pqw^e;XQi8ZaL@8s~)=~di6 zcg1%u3@g(|p+;`ad%0^GM?&?1l?sT~Q^|j6mL-m(sAKD(S zD84AJr)|@x4dlwQ67G%1KItXwSo$GGI}#I+qJgGP@_6wf_W2wUyLKj4!Cb%X|pX%9=g5}5` z>cWRE$XT1ifhV;SWi)j?f=IEF|3vy)mt}_qWmjevOvt@jOOkzH-K*_elgVG+|3zj& zI)nm%o=^(Dt)mEvA(*SD&FH2vu||oKLml5ESV9To(R2)(Gy#j5F{Pm>!~Fu$$@;#K zupB+O1>*G_9FcRk)#kf_DB@O&#zQ$JKvfd+?Y(}@wPg?5Rrf;T4O=k7%d@^4T~WUQXqXQ(FcV&~tw~I45=xyvlm1-$VuOxx}3p-r^4n;C^@v z)2eo;w{E+uAkzml!vYkWkI?YWaytb$famM|$6X46q&|Rp)W0phJvbl7hgU%Ep6eg95|XD(?|H+~9$ zR@nzM^a9{lhuyAIAY8YEjJuLE8y*Mtp$8te?(0H{R!y1Vu{(lB`w>w)?HRL=mk`=v z9?!D78C@Xy@jzW~AiY)Bk4lq>U8k9gQQlMd#4N8+BZV&K;q{7Nv%Gx6c?zm5e_?;B z)jMU}sq<3wC>Sffa5Dlsh1n-mc%WQj5%M>2Hdn^BltJNeII6}nPE>WHTY9W8+9KS{ zUR*dwx@-A=HE`h6RNrTo?xYdO+B%H74A_gY z3xw!8nWBjx_&*>+GSs24Quw6Z>+* zY5Dlsy4rnZ!Yu^vZj1OKTN!v60gac5UFM9PuoXa@a3e1L4!MlE5$8;6@FB3*j7YWn zoAOzP^Az9DVtJnACXyY2BH4O5w(XoOczDbJrON(A5%5LZv1v;3j#62obUeB6xC42L zXT{Jw%8f(?Z&Lt9xz{E<5&NJml!J>1Vs|g@lBJ}J;aRf^pStt=f88tn`Stz(Wj2bJ zFVwMk;im!27iZDX`Cwgf^!l>A4RlDHG6-@^ey@p?!+-uwye?7B& z)4r&=drm#ys}G@BsN6H~jCISiNEEK82V?`Z-ytfoqo_&=sq*$zo^th8EK^9|>sZXE zhApSP=}0oFv&yDK^RPXh_UQ}VwhNgzR=8QvQbWU{pJ1ccLhlps@H)D`En!dUqW^4SdiWjLdmbA+05JwgPMVB4B@N#TLf!*K$XI35OnHBSy!F0Sc z3$CjbF_9k8?fGEsJXG4WLe1Li54#$aq2lS9g8j0zx*6|8)mO+g$aJ6#-D=&#N=)yy zPj>ts7rtR}IiW%p2OP32DNlZEKk(MdH1j`_s_aNvW?&F_G<#%B!ia0w0xlS#2bt7Dbx5PCIgP=?%$`OdTvHCY`lwDf*w?NlVc+f_2MI@ya8 zhuo-bNy@~dN5;%x@r;#R@uITDBwecaUKMY&qKpEwG&R~-mXJ(sSrvlNDot%GCbOn| z$sKcHZ5$(%10^xJSH>v3cb(neZWU2gkk&vA0Ex%)g1(N$LI(H_S};__b(nLv9*aFR zG=G5oE7J1;)~;0zH_Ka|SRWynCS|RbX>Po%l23*LH%GcOK1$OhZ}KK1FAO{grc}wM z-|$%u59Yz2T6YO*gq04wftK%;Xe@DDUWHq3!A>vw>nnNlyrL`cuZ_l65}$|O?PzVZ zzEPdrT|35vM>!^Xd~e9seT&gfXCv6lu|ryh<(?jr$}4kg{tf}R8&Wci`k29(G`-7} zin!-S56htJ7aXN;7aDV8Sm@WQ^s8dV@ch{tXEjhJx}Fw14yeb>2L4!;prh3TcWiC@DqJRJv6snridR^kIJ<7JKuikFpYuGR0qewXw;62 zi!1k|R^`NTcRzk`&k;HrL4E23m3lEgnFR-7lPvQx&HeCwq2VZmJ^4e(rm(;es#Nau zm83XG#=ip(8h1}fC**0aWssga6ue!Bs`vk{tixk*L;j*sq>pj4G^{IwN0GZCTdWc) zCMDRJ;!bZhtizOmD(=a&b=8?>4a-|4tUj1Gh^Bpj60Gy6o;(_t*CjY^Acs}UzBVtf zN|^W?>73}ihILpaOdTCC-0QHNW#f8Gsp9^vu!eHrO8Ru5oBE!^9^{f?({Z@UWdT$P z5hW4-XR^#{i`(V>w1jakT~hM1$}&}M#o-0EykMLdZp+xz<>;nN$wr&NyKj2Q<2Xqs zdFvrv-GSBd4{voHEX{^zI~(OtD6SVTUewHoD(;vwl-ABs7_6CnZ(HnXf*t0wDwpFz z-CgrZH2dsvaO15T?Rom=-~z<6hAv!R;(hQb;%^t%+l{MSUT|;S5HFo)ve7(vCOtg1 z<72zaK{)hXbT#Ooy(#!Nse^wTf_LsaroOBDAbA1Fa4l2R6r4;ztKU@QSk!3Tonnu?HH9b&(V&W}Y zW!OrQ3EEV9d_(;de(ypLBe9l-lWRHcckY&Bez3Rm-0{Xvf-5w(| zs3-@)I06ML%B6F1D7ayJ@VrG0j=UwS%Az%|Y&GAo&63lS4a=9DU2a$&=`--?DT|Ed z!H`&O#Odb^E^+8w&U3Pi(u>fwvYh6X9MOb;qL7hOA^iP~B zJv7&%G|u-FR}rDu_R`_eo7d(}EA;7DG8;E|~zJv}@;>DBEOfR)#A4A)}?pK`bf zpMv~{+js?^02eG+#>UBfGkAMJs%d17PFz*D+8e!#ZUMZ}S~ud0#&=mJ`TV2H<7zn6 z=K|Ngp9j4Y@WdKleLQP4H_3cG1C{ng<-Rjo5tqHeXb-Mdj`Bd+RxK>&Yd9B2SKXR9FtGCWG_Z={56b^kj|?Ei!X-Bt)n$~g3?t`@ zE9HE4Td1=_1^F756n;%P1BfLlAaaFVP?ghwk&*|l;wl-OQx2b|Xg^`Ry$TtiDrW)O z@q6LObF;POHL#A!;qaBf{L$TvzKV;6?h_+-GUYDu4Ibw{1xw}VdNHv)LF!4;A0ThA zeMBnWi`gUoR&0+&%Q8DtNedQVm7fZ4?wYl+bwpj3!POrvumV~Kz>xR`elcO1Fa8fl~nYMxlJq+1`{Em+4abTC^c26jhS>#VH{3dc5Ri;u-Q|`N$k5Djme1wAAgpW{V zHhOPqT(11SqRQ3t0tU7Ty`$Ht={adqra;S=$6RqQ)xmr2A-#ThpU~}5tgG?6isYqK znMUs@maP-A@D>{9*vQ};Rqi#|>fOsvAnk=PW@GS2ddp!ibsT9zx2Q#nM%$% zTpql@Jwz9Cw*nI@L^7Rsk}jAgT&EJXQ({qxo^-`PN}fA?P}h*Lp2@8lQT;vYO1y+d zq*$+}Ljy2r&gA;U6GPqT#={YF+o3+G>Y-mpS7*3ZpBHzYetF?NaOJj9;l{Hjc3rSZ zu|R44Wp9*G0aEy;Ny>+q+$tnQGEU^AOd@zy)NeA^s~I{-vdUlt^yY2uw12Ew-{Q&K3oio{=%ku%w z)hr7Yt&63LqqNXd231fYmZFAGFyqk_FZSdH1HdYj%MmUJ=Ee~#EpkP%1@ke6J<+9$ zyAIlMsV)+MYV5mA`be@26a!06Nin0P<9sP;W9LTV@6Ok|KXo3oRV-`M>m6Pv2@jvf zHVkalWHTLklL0!G5N`S;AwSPl*3`#J?kWvr-de*Gl;5m=8BlE7)>EZ9WG`P@C+Zp< zb;;TuS2{M`c*;K8Tk@w#n`fvZr@tlpu$ZoICCQm_+wfew`| znTy}u_jvfmi#5!(X8EmCA|d6Db@Axes1|r@wJr8|rF4kpd3MLIG^xgt0(r`B zU?0ipBmHQeJM{reZOn|~H82_AGo+Bz0#~HkrN%mM!C26NdyDF}>cNQfkY?(kAoP6Q z#8{R)&(o}R$JIBuGs1PogGzkA^5K5Z`)`7H!fQxH#iV3$EO#E$ApwEo#$CT>!gz0 z?tt<*SiMn4e|TfaJ5*;szKQ_Mss#yax|0m-Y_zc9B+WtcPq(c^9^cz!K7NYbR$JkA zd*z0`?b>j<^aYtsZj$RyF^_FPES=i}cKRiD8RfYr%AK zlR$?{3U#eGF5m{^&^jeYX-VM)&fTgd04Ib{6ddj4T{4 zW)P%dI$D4kPa-LHbcCpqEIwl=|LJE#S+Z-B#X1^KzqU=jM~+IprmGWTh{J5O7ULMF z#*TYH^zWaYo9Q~gOLEB}jPJA@D1Vxd!A~}*5lEaQTi%((vTeYP`}BkKsEt}T+}V^D z{nXi+PJYJmt3gk{#u&p&4ch2!%DVs8|KhsoEpf5#NZMhPcYxF9{!Ei(!9E;1gc+T= zO@UC?JeR#L35U;vZP+fYo1R)2Xao+!g7c5Og$=GP3C~frX3Ayrwu-|IlaFT4>hp;p_nao=rM8uiX zd0EU_t;=rIo3EBnQP=F1FQet`I+KfB$dRx|axmF?Wzyto=W}q>#iNmP7U$E2zTen9 zo)uLlEm%7JVbPPuTj|&A8f?`NiOAuuVX5j3PI1?c3DijKo& z(~|aBrq}CL5^meHTA6RE!Wg^@gnzh6TXL%aGmc0fBXo?W**uBKZceQu-uG_8KVf6; ztp6nk)cWV?KK}jT4K8tx?1VXPKx?%lGIo~xQ%u_MCb^PC37cX}CI7PX`fqChj-u%Q z*?Ff@5Ip(`AUg05`4Wht-`>~3Fc!f6!1ssak3;h3YmJwKn6Gbc(lMNG`+&&P zMB0PszY5D}9?~-L(nn9t19|&qvyTdRRey)}wT@FAfd6Zb&&FU`_g5_OS7U1#Y(w>0 z^yddV>-Jwx(xv>kSg+u#$g6_@ zZM3Ucm4(FHt5Un#!#OySZvW*kBya*oXd%BOhZ&ociA-6HkcDSgOttI8%}wR7s^=Ua zqGt0Q4f&ip;2Y6ba<9?iN)l^$XIqSo?;^=NCGE}Xlhwhsg#?>6#8rOql!kC=eNu^> zB{hJo4bCXy!Z&YU2jv|%qxmmyU%!1cPm4h8sCD>!^l6B1*eKnV$K8@mLf!#67Kvt` zjm&e9;C*{;X&g(!;jnvkG58}oyEyJqt*pZX;@aeTcgk=U0P^(>+I5%>#FKao(2$dhNiuoWKRZ!9NF{xCt1k;>|wdo8_+0 z&$A}qq8zOf`WL6Y&%IN=+oMjzk7@7u2gWQ|Wea{YEWT=9^+*`<{1v*H*gSEgrB02-!89*f0 zcMx64lRCvXpYrDn*vrl*IlJ{g4tkD3khWq%RNSp@S#vS$Q z(uy-2hWng>&Xk;@w=ehGh52(MxttB+!SJfMzWob|SxO5KC|}xOF5I|yg5+6jSFWYr zZ03GtwZ8}j39vr%Ti6z#@@smqd2i(I1q=cRP@x(NgM6BQorB2XUS35I*|{6{&rdGo zIA8AnqupwGWB+LUZ2}@`959=u%GFbA#Wbeeyi2_QF|gDkf9lLfv&2qM9@!=iE*aGK z@Z_NfF_R8UYQ>Ur+OeGzkZy+Rvzbc{mZWT~pLT7}lGdDqoxcTi!<&rvrf*ffF(z2w zRK1PaFsg5E6qa%f6pR!Sh!snH1w*Bg6Xj`1HzV2NB!xIv`tBoJ58Yp5c#iLzCx_?Q zzk_0b**Db{yyxPf>*?1w`z#))$WPXLjH<)d&EVbn+WNf*zu`i|cz)doHfIaeEHM@( z-02L6F<=f)dRKo)KKo*L72$#HpF=@)akk8FtoQt?+mhFquHo)s2DYvA7v~gzSx1)_ z0)^zp;CMO{zl``V>SGlhfb|Ez1KkU|crPAJN6T63!zHRP*fD+dosD_PBl?-Ov+Q(v z*uNIbp%O(h&*gc9=*VpqCv-2ydx?L81}T^ex6HTRKPA-@5_?7%vO#Y)z_@$ySgt7# z#zPZhB_F%}^Q&lZRiL4meuN6_N4RwqW$RTAdaFzH9`(;1WYcXr|6#P8yJZ4JtnoN% zIKBZD`;O{M@n;^=tYV5(66>mA@xSCGRUizS-HH_56A4VIA`1z5!>bSZ_08z zxB}p=tPES}PC&IMkKXX&)1cdP^>KXR6wWS((bXT9JvS6t#lG;s$%7J=Tco!?nEVdh zLe@*;VqBE}srN7+xIGC}CoJR!b$YP0ktg}CH3MCsi z_3kx7nV@F1WAzoMiDOg}y{(u7r6)kq!1RfLFf{ZVw7}WNgQK$nf zkS_8#y zXQh59f+4B;UIUo@N*D~d=(!Rj@?)BoM4?y zdYM2^g6)6{&Jo!K%xalP0{cg(z4M#;hb?tmEp~`YXeUO5V~-=b=SL59rsX01_(c+b zHWd2I!_#5qU9v@>?5qPHYhNe+WASRW7trXscDxr?y=V)HqBrrXTq=QBK8z zry`r%?)fdN7JEF)1Vbuy@YGms6zi`#kHtNNYx0@BNSB-$5R51IH*U_k@ji_c5Q_b+ zO&)2j5nYpW11Rk3^$kFi0Hs#2dh2B}gWFa|s={|cr8K9?Ad_gUiCC9eJ+`q<5+eu$ zrU3X(weJLsMjonA-_h_WjQTe8)PfQ<22wN;Yzlb(pb+Mzrd9uaBfYo`_O)wfK8Kly zSTyEsu>`YPrnjJ_?DTD*44Vv`?aP|*>c!y9Uaim`QnIz{k>(ytFpSPw>CM(o_tOmq z{j1xx0_pKs_$W|FcuPI#Y^Clxiet$M9q2Ag1bP$mN}81{`;>?>~G zi0}=bJHEA?v6w{<(j=Oe1lg$BF^>K()&)n1p+fzhYTaHS(x+gE!PrR!G;+_U3qPxc zFX+TpHK6-cC^KtP2FEMQxU8`M{)=lT+DC)J5C6KFJM}uxrl3)9zf5i@{$1_et;^ib zC!r!rwx~c&2&(1i;UIdq|I6(20Y=K)d%6D${q)jj@P;L^+cF(jcCo5lRX5dHu)qsl z{d{~(9sO{Ae4y-6NN1FS1-gi+NDtPpnSI8vn=!Ci?ef`Sq{v6`z&*>LU_(R&dC^Lo zwT=yP!g!a)R>Y-uOur?X=K8S1jD~jnW5mg=y0h&*j7#&j8>u+2e%ZhzP0&KLXe)rN z;M0*E>#pss19i|{8bZCRs+zFB10+BW@MU!%*B{o~@&}4sPM5+=s1I#UzkWaPmo4-iT|r_j7$BtreZMg@71La8TW9}%0$x!V z9Dr^2u`_$*KE47@8R9pwvZIS4FLtxfx84tv|ENAn%KO&w$Ma6s(=?6 zrDI>;Tjd6lBOm4EQjo7KobsoV9Xa?rm6Nu>6Z(?hbpibwhN`;!;XgJk&rioYlj2)w z(OPoSuq*~;g9Z0g(6nuri`|*DHf`HeLAboOk5*i)E{X5nljI&MpuaK9ZoJ4+G(s>R zvCQK4btjFyvlP;hXj9K!(8gUxG_%70=$`T}EvHS%E=ZMC-;0sNtM{b8a-E`NFZvVR z;pA*rNV0MD0=#6i~I!`@%ThVV6&iFKSDd5-w=(1I}(V@ zO)`60L)GtsCv~u@nfxRdp!+jML0KuAD9<|q*ik5dcz-I7KbOl4E?~47m3Px3en?Rd z{YP45?vean{i%PGa|TwDFyHvFrpELqdJM-mH*FUQniT3c&pVcVzcXF)u6nvUlSA>P+{C*M1jtlz;1D)b? ze#E@PAUXSy60(|-Ni-`=V;YFgfn$r4Po*}tRB zw|s)USEs1pM{g7~2@8o-=uy1LdjqJ1 zM3Oe0A^>xmTk2<$EFh+b>8`iG-);b^y2Azew{_?HI~(Y0uXj1PI4gA4Co7>r9bdKe zSRTHad86De3DjWMI)~NlJAz9_%jpv-2cRc{Y@S$iWbnbnDQjaJ74uW|+ug`iPmyM_ z+`xejVRUlXKPB}ruvgCF8j^s%%=Lw6eo~zu3&wd0Qu}pL%1=k@+S;KouemhfAvp=bvk zdSA-LFyRlmrJu?hbdytCIGxspr!#7|4VVKe`6+NF95|f7c?P-+K6oPwMLlX)*JuX} zhd~p%;NxemZ20-~p=0SP4WAM$alx*7feQoA>UXinL08*_V-E{4yh*V^kT-wk&j&Sc z<%l6zM~%>|*&AHbx3|V`ZkxQdd1US2xkt%k(}|%ORYAxDp3qe5_OGZP1h}*KX62~Y zY9J$D)9*Hqc0bt%zhB-%OH$CH(Eht;9SfI8>a}9bn!IINjMYrYSqwh6N`me&^j>Q; zA51+=yEEItSYD$Mb3rTJqL}?B043qjGek9~nVh|+=;52ASEI_xt*iH~te{k0ZHYid zc0KBdc>BTIHPjz>|JfRkh5hbkDV;xwl~a1)P7JM98l$DLQ|z~`%u}TCrdjrNy+F|o zA7s6ka~~eiF3@SaBPQ_RfwJaH5qFiODcN;SZ#It zWfjkMd2QnHYFZ7WpYPmFP}l=SRV1xjRH{!sE0)!e%6mt>uc=Mst53uD>QOpWK6wJ- zw!P8=ecQ?3xAHyratX#)#~c6ra$c}(00$d+$C+Lm0`b&TxUa2w^y{yb0gAXwZNOw6 z+N*%zw1!W%@N}!V|3hkB4xBv=b$c~9r?yP|@VFbBIrQO@km807S3pfPlR=uW-2S=M z0Uyl-R{lkWQ!gEq&R2e1tB`C_LoqOi)k6>N2j@w{db_2unxK~z`k8EnXkuk8*K_pE z=~2th<~k7rMK zaSyvT#y1-KZKu5V{PSedGWrtAmX^wcpB7N#1vh}9{inz10vX^(z%nsYXwe{EQihZn7}U$Q@-_nB^dCPRR|nQbf;^el+krA zw;io;A}MyVgP+0m2ESXaSyq?M&D)G5NDg);1%IRdG8z+<3R!KL*CRgFmd{=}iQcwM znaudyt*t+s`#{ldNy43t9^qO-N!;MeOLu(8h5KNB;DuJ;yGt_#K;uxNwJvx2Rx zGp~me6yN^+^Cj7;D2ZQjt)Low;i{+$U>-&(P55E=@1@GXHu)c|)`ydS`1_AR>RI>Xu?Xa65 zI5NuD8_ld*!SEX7%4J&8F2j%nKrIvj+3TV`fp{CW`sciY=y?FK^R5qPcs#pdKB(}- z`Gaz`S%hbE%tb!4O8H@Ie{q)0RB3(Nf$|0KY^9O6S`cOlyaFy$OV_bfPXVfNzYFab zeP)|IQJTYSu|nUtve|F;9J*d{v+>f?mu|y3RC}Y+MV_Zzcf&aj?P)K}?VQ}rFdqD$ z$_g2e?`UHAQGaQd`$)ca<$VpR)H%me_u~fD5BnY?q$_VXxSG$>IeGg+|BJ7y$bsTq z!pTA3$Ou_JW8QO(NW{Pd4mLxXaSSO;SY+=^a?h$TnAW9m@BDWf?~y+)jB}td>_Jq3 zJ7X8yR%8J^A6en99>^_pkD?k4W5olsDFtgE`amldQkBzzbd|UD4c6ZAi|)`rEQPal zH}u66hNp*B3$WOpV?W?&&$?P+lAv8LO-C7P+X7*s)>YDhdCYXwq}8;qFP*jSq7T(< zzFKBeJ79q~zv#o>p#wCnp>Ma!Ghnw>v%h!p0#B=Hzgs51aoN&|2N&%~>S4MjDzKUc zwCB$RRVKAHT1>qUVM576Kk5kCt0`NPt2jjWmqaeNo32X`cli1MVFF;PP z!idMG)6yMj)@US)%pRdYvg_KvmSF*i2#iPNZ!g-J*u~0a6eCJ)piZsTN*R6$*dy_E z$%IEA*hIe5bi2dP5u!#E|FycfF=KBwWLNvRi5& z&duV1#pv!P@bZ2D4}R(D3b_F8$iZ{;fc=~<<42I}1<+V*7yZ@}fpBw3*fpkSCD#^J3pN%dv7PsOX; z(vt(f=6B0XqV2rH)pus2h3`xg8HFkh*^R{XEA2hCxF@tX9pDk2ew_v6PQkvU<@-*} z0=f0|ovCzQ3O;n;r<1SL3@uj6DjLbiw8$~~V#>;d0r+BH`^Sa#(e*K*WsTjY6Z+bk z5w{yTQFY~X2OJ;6NuyXCKnA+7_%}B3TE>s@;%<~D@p!eIhWFj0%~YW(3LudneD@y} zEL-dL#%p?7BANjEWaue+U3U8 zy3a|yohdaY>XeTshH+CtcYK+|OjB0i5S#LZ39i65U~4SPGa4?Qd$S>DH6Fe(!6EIy|DD!Nx$c@qhkVeDEJTAt3uE!67q07E6^FghsaPW z?rg`}cfmG6=+?;=D|E}%u{6R}KA5G=3_QjxqEV4xbdkM&7*2u@&HS-yS=N>oN8&`pwg|w5nkWc}i=%^EG)=HiL^< zF;naAd-B+Pn)2oKQq{347*8Ee=X74lp5U=^3x;6ay_r9t8AJy>#ro0%d!z(op9|R@ z)YqywD=o*)#GOlKPxW}`sAQ}B~=SyLm1^8u)Z#%V?|Jc((HSXWV2}O|8W$Nv4qa0~6lZSq zK6Ysy?7QUOO6r-`NSu1ip2La?`w-k#h4!eEmgE}bWpTlq z%qdk9Lp3jr-wBMhg$~TM9}n=%N`Arhe4b-mCG~L6_=PFCMj^Yz!qt1tCfi z&(xl4|L*ejvkGB1Z_AI`-8Gg-qm-uZ)xy1L?N|5ADPQdngwIAb*j@I!5B6QGn`72kslh{hETnV6rM3%{@v-b zRinHam@yiw1}%HoZ1EJYvRIzerP5rRqLj|=vut$vROl0UVj>j5wjN8{U_l~9fb+zn zmgUBZZB$O~gZZ*niTRRcN!O8Jtqy4K;>A9a`cAnfH@=g~qJPu=0m@ zR0`yi3)lv*sSXG{nP8Z~)(>yJFza~=`tq>50E59bxk4tHLJ_j#9ra$ZK^-7m&pfsK z@Wxxmb($&FeGq;~M0=Z&pcKs;X6XdNHf9ubl;1}X-%Mt4n$h3ox0o7-lt4Q}WqJol z7ZEO;DXf_K-M_$~X6v8Xry9hyl2||{t}#H}S+JPwvnDlyb9Kl|2k}pH@IQ6Oqg;OL z{DyXcqv^|vxkdw!Y&lM^r%&|qL{AJ7X2RxolEO@9^y|_NuS?`R?XTcha#KSxebo4@k;>vaV zDc3kG!WEZG9}y~Vy7m=&3C9J#XC@&3$(}Gp5@!nOLX=6J>Nansg); z%v4}r-IsJWThlrgYG^4RF>Tqk%+fdY>?JC?)@VqsX9mo;lg|AqJYJmYPS^OAys z|7urh3|l<#BFm;#xUg^V#!Bz$^afo_uACX=%Jsz4gHfnnK7$z=$HPk(+%&Wuh;f{& zh`SK3bNm&-sj9rH-hp!&PiB(XO>$gQntC!vS?GO}>o+NXeQR&TA2n-D%3)+Ay%g<6 zWvMwfq`q zw{xI0GzioHv{_E^CZXdk?V(ihv?%8R`n>~)e6&0$Jq=Pi${CVJp#7jCc@5cR`i{{V z6SBk~XqaQlW2KTK0pkUc#b49>5%|Kf{@WS*#?N)}h6R4`I>FF7piRiZ2Z4J4 zsz~PEu}r01QJ2==WHw&%A)rKQ?!SsLS@tz}X$I?PhuiOga7Y)C2qBT|jMD!Nl(}-- zVGdLUwxcpH+qLEKc7!X!_P?oWt?Kh4TYyM0iS7HAE)>VnPpCX;kh<7=m1(jqSWbni zTueuD`9oAtyQVz*Fi;McpwQ@s6ycEZv##fgwRi70i5s~-!y3<%hX(tv@F1Z`(bjsM zqETGkzJ*pCwj2GVgX1Es0Z;*&59TDqOj{+`vx0leahND^3r{S3JGl$u*6NVE=#C{=K*W)|Qv&^(rAiCu06&6b zud&LBJz{T$yRpbSUa!qJ`2TPCCT8lt_ebm$ZRwm52S&e%U46pQ^z+dOMuEo9^`d@( zSY_dxR>qgJ-~&hbKtzOMgFX?jnyfSFW5LDk()pd)rAjrWp4`~Vlopg{=84Nb@nWNy z^*4eJj>sby^-sorjg|QYuM*?DrY*V#LTe)DWu z{WO>Tq)a2R6yMlxSaDZXKCN}E4L11ydev?PRalTs>A>sO=GJy|bE~=a?hRS!MLjDZk`~QwQ!;Q_XSHb4nc&O* z6CBxy*n?NQ0`#ae4?~~3k-4?; zF6Si|^cj6q^6y4WIP+1}8`6jnL4yutV}Uks{`C~vMnuE)$bFLP+jp`lnily~pB)i7 zQb*jwQicH&ftG-AJbFK>Iwr$)$^a1!!uo<`#*5fUGz1pomC92@)2@_OM~vPS~XceuU^ zn_iw5GyY5u6*c+1`_0vaiaBcPnP6GE>;?5enw8GPZyn($dQBKYE@kXZ^}ULeJ>I*P z;r966GP7RZ#P+s06~jfJslMaJ4fyh}94lV)fT5X$jU408%>G*O#@mCC<+L0i2tHtYv>$nB#O_t`Z89jf?uLBI*_5o$#|q!{bD#&ctk<;_oh+-itG*S=t`7T6nZd6_ha4Zg zS_!9^l`3mLpF!HjLss^$#3PR7f zSJsq=%~zWb3AOnraDazft?EeayxL+s4r-C4*O3+XBIaI)hD}v+;oF7v7};M=I%VZb zjwJ^!ujt*UtMIG(S@XNmue9Y`DDq?LN+VLG6A?qoi@_o?>dP_$V?Tbb}L7%yPvjk z^OGjQWC;>Ns9<7q6VM!9hWjRw?-(bLRl!6TRCxY6Npv{)T;U{!OS4&XuCQL|NN< zSE&CEo*>*{nRR0Ny>$GEG@W>ZtWH+u>&8hOzcrSX$2I2j6@dPh6dLA-A{|xQ)cizr zg!S{@czK%}%lgTV9AJ34t8tnZz@?AbY(d>-Tc$#}z2CGJo-wgy!)?+x+TkUVGu(D(R(CZz;q z3(8s2Ore5nV%KT;3NGNeCb=(w6q6;cqQjBW9h~%?O7P4eiC*j;cXlJNXyUa zaTf4eBX9j{uWXG^bCw{mlbZ)RBqXla4?FA#n1`mU%k|If`ub@j?!eJAE2}U*m(F1f z?B3#`kvAGHWZ_qmDSw1&~JwYXl-xNlxy_1(zbxH#44G&8JNb*|22Fc-*3My(jqDHpjBL>w&IH&}0J!m)sF z^5iySY$cVM7dv)WxB@b%1HwvAk!o54J~&&v;o!_f&hEPW+A{Mo_oOyYa_YZDqw)kP zRb8Imch%-eKkCc*IQ+%y!l2)czK4%YqDI<$Rl*HA-v!Gtmw*bf_J>t?#kFwu&{zb+MyCo= z!Lya`#&W!ljq@J$u&gmto{B_DB-fesHZJY+BNI9Y3K{G*WN%c?|0A5A*tXMP z&hY^(N{v)RjEaoy87^+wmRMn)#(e~l89owIlMM&@%#G%9Qm6V8d9PyzW2fl^va=Z@ z^faB&mbX#B?AYoi*7cWg=OC+Io3Ahj;^rf$ZwZ|B3r$sbcYg}kS0MH-`lAG%Zu9GF zCIMo1uTN!Ozp43_1nblfUgORkj={OikcNTXR}`jv&8jxeg~WL-mbA5V4&m80m0gs} z?dQmVMwlo=c=Jr@3-q$g!2a;wcy)4$kk;o@iKaPel|IA1?G8H~8`t$r{i888?e;>f z7WxhDd(-qCwu2LD;g!xcZcZi|Q_-wFuql!Mj^!igCwIXBxOV{%n|3-sILz2B$G_vW zbev9ap1f3J!&x-Vx5f8|a2L&aVaL4U0&C5)7o~m~w^r(!q@3>FCv#h8+xTti4eS-5 z=x9jo(zXd}4L~G=y;!JiFUs3HN3&kItZ&Dvan-a@E8`?LQO*2X?09Tj)=accZ$F|r zu$9yOZ2h$G!jmXXoF*>(n}iC?I2SYa+`#(wVzV66I)Y?jBHpFf<6cqBN4yawI*oSL zA0LqK+9->2aJ_EYg4pI)Q=;bj_#jgjQFT8V*(j@63{vA0Npt0B*N^Xt&QX|WN8iUk zIEJZ-=7@j_tYFke<@>?P`k_@4H?f(lIo#HaFEQf>U=WX0Dc$o8Aop3cb|>uIXJXR- zg1XqlHj5Cg-yb?x#sjw8psfjiUW40WHNB8g|1GAG|B>|~bNS`s*aY~v%4YF=?EHJi zpHsvIo!ST#*X;h>`6(!TTlDz6-LZ(*#F{1cA!dU)4z!Xx|MM|5$VHw?ZYP*Mf>wh#s1|9L>CL+N=GwnW47v(DWP%Hz zOYr=&4Ax{B;WBUg07z}SWh~}&8fRmig2Y^oMg}^4B^%_PK8l8sVDVUDI@%3B<= zR}%;FAWU|#zf>-~Ylq4xBPrl(UJDPs!l+ySr|gRzjlqmXz@k)m5xIf>iE&6<5R&WP z+BGxCLV(gSGh^Gfae22zp~< z!>%1(r_%m>Vs0x557I|~mOcF+7k7#3+-mU`3ja7XICDpFtMN5IAM;hNQTKKTs9WC+MqGr<7d1Rr{9CEtgio%;tuMF=KXNzgm5p*0n z(BrrT-HVuILICt`G8)n8X*)UFJ3aikR`B!XZx`}>ez13Pyx09mL$P}$LPE;tzH|?W zpEx)^Z}2ni=&PL5DWBedZ41otx%_@?lizon^1HRU!}GxJI8n-d^E>YH%sS=$7_`$U z0sXJ5dC`2x2D97$W&B*v2d^5D7#~s_)iAVAv@`igw_OKM&H-lSO!nplul)`&D3pCA!w z%wrKpaoxlmL|Qh>o7t4*w0CK0fQWg}aieshAO%#G4Ua!Fo(6Xe?~)t7w|p|XP$utso`AG4wXND#=! zsE+hWqH?iOet3o@AFFJaZB_*Fyd=3@1{#Vo+c(jB>QP5 zs`ggI`FbvXR}xE%>4M``{iZ^6!ajL68nt*)h%@nAz>GUsO5^Y=mcY&OEss`U6OXxu zgy!RJjH)1GW14pJ!{f3))Vb-s;rTuNu5GpkZwX5-BxZd?(-;JnR%mo^1Y_6D=aP#2> zie;l`5I+MBQ|R=6UQmY4O~0s??b_M>LM`g@;VrJ_m7o*%Wp5glJ>=HK1B?o<=0#&k zouCw!)vMu1U5iWcFNKQGZ^fB$vLmiDud$^XD_U}UzVglPV+orA}zAxS6 z^7!=l?6Z6VWKX4b8>_ayt$sTyZQfbf=GE~OJ#6^20Wbw(H6%oZ1GTFtqA1e|3^&PG zZ?8Y?hhTN}^|OU_wT};=7~daF0{uvvKhBNcLEoVO%WRoC8kFcg`Q|KPjSjw&q%|IV zysmvkZTkZ27+?YCQPc#}t^GdRJ*3rIog9W*4tp?TNJk|1UQlIyec6KgTwkzX_@G!i zCtyMq@zufw{WciznZDPSnWiv~SJ10GpMem%nW!9I&Ic1RbN}o4MK`#UWg3{1lfyHX z%6+sn_+)fd?LQk4)OM^iPP~r*0Rx@RUiUEh+_^{&4v$tWbFtT<4xXPK9e-XrA3>S( zUk*FT`58T&E!{6XhlE%XCP-KA2XV^D>F3kSuj)NUW9rjw#VoXyG6Ttdq9GpS(*#jYXz*se=~Hr> z_J*@t+K*_9izS>4vuja=NgzI(Jx!9UC3!u$drR}7^()H0TbVMZovwa1Oq!SyNuo)k z=^Q0AXEROLZz%?gqU&rrdgx8P6xIby#LA_JAUOlB;o=D#;ef}x1+_Lvs9aC$4b#Lt zi}iu0_fejX*m*zEc-MHieW0}gTNwSNK8kQvWY4Bsk^e@hA99(k_n)Ka%ZJac!T(eC z^9h7u$hwB5Ijw=86HTkz0@;UdpE3Drgsi%VfG*U=yCHG~*rc*tAyT=6El*5HKAYk8 z#A^E1(9|K+^?V91Qw@Kg{cAgn@2S>`H=!4Rrtr_QSAsk7<-7v>ViB4P#Qs$_q&*;h zq`AEp)11CBQkamf0gKQqEb08p(r|Z~n3gP%a|h>Wx7}HC?z;UCy)$?T8xL>;^%T?5 z+turr`M9sPz{(eBo6QxT12uQ+PA+Tn+%ns9D)irgL9sk--L-8o+++q;p#ywrTrc~+CEHr(AVqnV}%dNvv_x^pBx zvmce$j`9l(jLBx#La!Q&;EdO5R!)B9&ZsgRIFn%c>H6yE(I@9%-NCo6GUkuiQ;zpI zSaj6jY=J*4xe=lvGY8FIaq`^zvWCCn*vX1oHrcxmEd~kN=o7M7|6p<4(Y(qzrHy9k zOTVW#IrCd3t&*E*Z;(dv%$#ym^ryDJ$LC4A-R>mEN1oxzE}UI#wjLWVn|F3ZP){r4 z8w)r2N_{*&w}~*^zX=Hwt_u~V4+4&XH{a#Jxchd&$>^9Avnbry&x zd+p2P?}v%#W{8uSDLW>Z%!}LRWIi0SoRQAe-M{>W#^%c(4Wri`YqCk@xZ46n&#$*O z-oJ~R@z%!A@8a*WPw704|9_Y_^R8P7Z@^Nl-huKsxErhkHc`=!pBy=bt{^$GG8j#s zgH_Z#q5}DvlrvVIX0W#>o9m3#3r)NVu4nQNuJG-nD#l;ikP zW8U!dao@>qganT0Ep;sK!QAE#5~_pc=zMJ9I^BBz*tIrM+-@2;!o7jHYYA^S)j#(jy_(-# z^Ps5^C3+yft_Qcq&{)P^vswg2w7s#t8GnzWt&I=*+u~o`x;yF@I6Qd8I~~DsSJ?>f zeQR^ay&E>8RG%>7wdp&OKFHbWL=RDxoP6F-qiaDlRv#N+0ZX8%K4cpp3hCrIxUI` z?EzO)v=G+ID{c~a+;-`+Jin9Mxj8MPVqF!zmfu~~+8#kJeCyF;ywa@}gG3rg2cA`M z?H!RsV)ErsHyQiTpR-M-+}$%TDp!gHaQ9o7D#DcQEjwRzcmGQ3TP6!^+`q>nXaEWf z3p(2AidOwJ&1iV1Gf%a|Q)AP$M1b&*MSCNk_S1xq)(CDCXb%9vAvgxBx+IFwSXLlz z^%LB34wEsq4IfiUKGwa`zfCFMH%1%hvZt=0>dw2_>A*{WWPcJhn6M^a#BI8PFx$NU z@LpPM)b9~TID-WuxGT>g7?zgGUsylhmr+`Y632gGE`L2x-BUd_vpnN=r!8~N=cIu!Ik;{ zjW7+jnqt!o%aX#Q(bjO{b@$GWFOUEG(E9#z8aduLH;p_zG4M(Ea<6mgM;`iUV@<*3 zT%e%Inrk?(%JJ640b4Slb=d)tpu8wZLbGL|nYU&q^-xi$2ynb);K!h3r7=LVYdMB1f6 zou`<*zwN zlK1IKyV-CV0@qCGz;#1);RG4W&nhEVmTi`GnK^2*&{50Qv;~oTz2-mz%rt15l&0lp zBNCAqdp=HhX3to-OC5&TcTKqSb>9pIC#&_Z*~fAUc}H;Fan1F|``3C|5{ZdMPDKx=vgSoRNSr@dhvAc5n5^=|^JB46u#QEFO2pc)%ki7r$Nyd~Wu^38 zk0ShaJvb|bDggdC-E4i9-yQw^AisQvK)>6_KRs=8I{otd-+ubFySGp8A3nE^_UL!- z^A7*+fBwL~?azDo{l0gyxp_*zzsc`c{r&#m@+-Ho(0CHnBbMr^-K)_>LK^WT{M#Fh zdK&d(V&MHW(DHl}PWv^PJ|xh#>Mw}>8Jm?ogO^t$R< z#8=Vlar-}?L$*ycouY!qv#_|#u)y+t$dH&GU0Bvf6$noLJ8d}nXr0c{(lYqC#ivHl z|Lse+c`O&QP84qtZc)BMf8^I6MNL1zpoY6R~&7j{4Ps{Y-)bGmB4^Viq}ND zwfTu@b>wf@oQBoAg!d0?&&^T2EM3?ivK0n?o6t)f=vxn_TH?U$!KyeK-eoe9z5Msd zaCSZV$7|J!G>W6UbNF3N*o)_GV5IPd@Z2u{-^iwP3_rU6;?Cjc2QCqDRgdckrm zFSp^%*;B!q(jvqD@EHH!_`67(cjMUckrsY`C@xVwcqH}5vwHYFbsFixUlPI=^Q{{A z3vh^DWdzUbh`kEe!Gl61=s0Z8O>a`)o?m)*X>&gD>uHSl9H|6`u4X+0|9sNr@cqMF{-V< zLj+FjRYvffw7H;u&fKoTw-&&g$!xi=yRkSp-Q&2Bu3(tA2eqxu-R-S6-f+2`?bh!5 z?Kgh67T0YGUd-yp;p6K6IU2Xa(hV5W5c`4)6KfLXbST=MPQS5>GUVqgj}G9v69{!D{m$0LhgH7AVE@{8TF-o^JgzcMQ#$E53Q{({%~-!Po4qdHYy|!! zoUXLx5D*UHm0KH%NUW6+PTE^q3(z!iS7;mdOcC9B$i{UxcLPSnT47XiRq%;@;X7EJ zzr$e%+;yEYsDRn5N zvOyri>F=s0Zp;SkEr-*u#dW9a7m?vvdaowY7!Y%vX6`ZhWELOPsNdPCa(rsxcU^Ug zFdzqwQQr;Uy%{)XT8kSP!~XB|6W2n1PmkRqA8x zrrfUOiRj!zGVx`^y`CJN@h5iZd2coo0e0)rqfrdJ%A}W+Pe-C}iZ3{>=f z$32^GnRphq8gmT~K64}fEuV7?J~U~Xr9!c@zD42d>7PL`~#p4hQ2939$ZUd;^Bgw_|d);N^G`H?wY zZqwm}`TO@x_h0<|@a*8cQ{u}!0KgvrfA#}r=_tF-OG(0i6eT+M;N&FkU*GtQ3X&Mm z<1G%_ZQ!wx=KVe%O!<)Xxj>{r+`)fGpe%2eVdK`V!c1Ho&?)@vIQZVzllI#Ub69q=O9+gz7@k&;hfQow;vALL~jkVE01;@3(adica-79RP3`4O>j3w0?L=e>bEL$b4 z!Pp*PK1v{qdQDj$*NXM|ULtN?2i4Ej)uC$`%`@O|?>YaD4GBdXc`EslsH_!7tgIEg z;W#^3}dZdBfc!C}2sfWuz(sSJ!4lSnXEDc@Y<^rllo z4{g`&PgUHLYxL*#KRhGI!BIj0&y>5qPU^76v)^O8>AIq2AC)(9)+IPI-yR%v67#Yi z4~E0UyJhlu)arT3K7rTfBF!+!PS-@qiT5%bo z3&)c46=!`=L{a9fUnFVW8l*!E#Ec&Hy!Bf;nBF%z_O|n5+9blK>G{!<^x<6-9WHDe z;W^C&#T4<6%r-+c{20TWY+ds|(?@&ks!w*gvOuc(%VzDpQXB3E16PJ#notU=!cek; zg=aXQor!MH#8lL_mN1w@)s`b5-qHn=9PEBAgyUsc2Nqoz1Yo>Msy>fU+UdXpjV`p& z7qv*EBweCYhaG~@A=HS<^a-^jsp~W26gy_sJf&ywsNM_hT4Vh}@!H2qhRN3C!+m6* zTlebE#-_JyI<}jnn&;NN_;7);qhzrnq(ZSxm3!W5>9hJI9Q!_2OqzPF)b-t)Z8b+k zeF+0<*Ld&x8k(L@68kHG>Utr5@UwAhU(GvvIT1gU;*absw~=qBY0BRH#8*&zC_5mo z90yT|xk_ul;qB$ChvvQ9oj0#0MHFHltg$MP@w@6MYO}7CY?FA*eI92;V6aCC4R*I+ve;ZtO8E%h9`oG7HDy&Nm924^+TT?O@lX3OvS&5>Or`m~GiUsK_SBs8p|Fks zd8%>@`{Z;wdlJ{AA)w`;OnZiGg$GLlz{G%Q7#x9H4?{r?dsiuZ#~J_7cay=@Fu)ac zXMR|x_=bgwiRXWIf-us}+bjy+hq-yDGj-BLcpKWp))(-6)?}4)>i5NGFNCsnQi_lB zNHI}lX(g2iV6>H3`h~3|PQG1gu+yoKbKKrTv9>@a8zF|cQDh((Bbp)r1@r7CwBgTv z3}5jGsa_tPwfQ<5Qk~hjj5ZhAU|g`P}*6cPKGo!eha-cv9Cxr_<-bay~A%cU^l9FxPam9L6V~9<&!t)hrnUsx<4UIiNq7lGlMxdj;#S@ zop|3ASReGz&Y96MUZo!GUma}Xx2=90Fb6@aDY5f;pGU%*^MJs>*e%QddU3FSvJ_(R ze&Ry|=K?Y~aM073@7+r6=6oT3Y9Tt$%>UkHJ2s#2bHvBtNVS=a2N*UAmwYaSFV?mP z$_7}ml?HRZx1`Gei}Ry0uCNOrih_EXpRKL8G!>`a{bylLR)8tWYyW;7hicYfA`&iTQNQK2G^wm^HI}AMfcJsw@*bzT#%Q^dHMaM zss1R1@6TC+NL^|Y5ozQU%_1G@Gwm8}*WAeJ@=5c0aK*N)LNl|1_Ot2=s?|b<2rsfP3trc0^SaU37V6s^3LDAf>A6{AoFO-boK5_2#Tu5(&^3B zMo1S(sFItju%^+(xa~C~61lVr{ZSori5Frkp>1idHmiBr*yWw&UbWs`m5iZYf~pdz z8#fj`xjlitH?c7^{~mEm_|?TRaX6|x7SytEENZlclt*PThqxqZRK}Du%X_9b>pwe3 z%o}fLpQrf)al7uhnD(3ZSA~^Xnl!VAy-Vg&d$`(igJ`_5A#C7V=F=M@3sI4})JsD~ zG#E{n>i9KTvyr36`+O^*uL_SO2Y%p>C*XA_IYPjQlUNf}*3&F9C4(}Cq-M-#=#%sB z7mE%-&X=o+lu_C@Nc&-xXA*-jEj47edG^9oFbOa?Zal1UTX=D|J)0kR~ebo*N@epMf-5 z0941P392y;ca6AiG5@S`UPq0?mWU9HZ&bX9CnU60W*vpb@;*_+f6=VZAvCRY$oH(Q zVn(?rUN=!^s&o=|I|5bP<6nxC#6S7~hP zXytzCplJR+8Bd}}#h?)+T#1N4qv3p(s8}$4z`F=_1|0mJJE^E7DxJSI!Ol_zkBpCzeB!l^6(73<9uM+ zXb)^^{s!T?$*#t>3;U=Fb!J<5ePj=Cw;7M?)!_ZRtM{8t`i#k!%PSKK46!`w_ZV+5 z+h)|Nnq1avYkP0M?YuKvf3cxT%zO88?~)UK*oMwler+fbLKSiv@nw;*{KlP# zB-iT8S`TK8DCS^f|HfA-Y#H@SZ#rT(1pk~9hBR?Q@E>bH3?EBi9BF_nVe35ArmR3A zO1TFV`%vQTwVe-#y$NDUEvvB%yP#g{vy*R1t}}LC8N*GDIG+@K6tyO;jDeUgT|&0= zTKq4)5wo$N*#c!g?EhyP5utAS@7U_+tC+qF$fnpp>32X&AZ{b|Mli2&?W|KnZb ze}m!R8Hd{jZ2;~cu#HwH4zcJ_%^Ry9I_=#MXKS15GTcQ2DmCgYkr=o=nu;XmVUYqw z-Z)*IW4N{9>t~~eeU+*vw$;mFn0##P3*g99S!TN$gSf=(TctlrpyU8}8Yt=i zErYiPJ1}12s1!tacsg&a-2oL{Tydj?E^dOTVm9jgYn4L8m86DO5arcIbbQu~&dx8J z=8pNW(>d?Nr&%HHgbz=>n|7D)D$R1fbKjLKi;ruQ={oM{K4PXZ zufoM)6+tu6v6;_{rqyF#9WrwD!hn)T$|?FTse46eul`d}oJglw1UYe%Bdo=>KOW!G zUn5!#%6|VWkCor*_3!2rvD0Wk&7KCngfH8Itvo#Oe;G+1GS1zVXW-ObLbYv8RaknL zoc}{719$rWHX;ssO_juJA0B}WYW^KUgMO{J;GkOCENZx3uCcbiYcDe3Lrat0nArfU z*mk<*)+RlyqH<1Dv0%E^d97ZZx9RA-y(syr8}g z*ap5{4GMczu<^aP+ctWT1)n+>z%f-XO+Re!4R3NH6K_X2KZ4wKK7Pf)knu-_$kVq* zCBf=xF23zw^J0;kU8*cxe|Xmj(p70keMkG+`OyM6_}2}<0yuNS!XM&1r!6HmYBt=Q zl;bJ$#MtaY7~rs1`MsY~w~5|5zUXf4Y&Ki*SC&5RjSFl+ScDX`AG#8m`+BbD#LDHs zNC-l0{B7PFfx?owI!S_wv!oBt)UtvZH#4B4>P{8`VWw(|f9O0umjH_VE^z1rbkUyW@-lb2X zg`Z9vi}JnCdOnVvB+tS4-(xi@ zIouis-#_SH#=mru?}we^qu*3F>!T3scAs}U?Pp;Yo%we-cN1z(Yzr)dFM9XH0i$PO z{WJ{O%-KV*Qhvkbsm~yob!Wq|rQJLouj=P&za={gW#nlQd15^S4Qe9tLwW4uIJ%svxa`X?0V^o{qLDNXx;9z z0?vD4s#t%OSk#Vo$}5sLG}zThoq6vzMcva}@bP^L(J=0KVOL}v#LiJEG^!6e9yN8? ztx_y49F#34Me=xUf@j6A#cV%?j{PJRwm;UhHEBo<9|LM4T<=f|H-EXIdo%r?T zuWygf-X0uwFW2_@*fxe zJ0SiM*TY?O&JVt|(WcI?Z_mG7zNJH_u1(9va5BvY^Zw#74Cl^JV?r{%olMgSgs4Oo zL2+FvyOqmi?2t?8&K1k-f9o0oGAKif_1z|TI8eDg7Zik+=~ZtOAMG8Vl+T}_JRK#B zPQb+M?-6O9Tf=~0%;h`c(%D8ZS9cr(l@;aF4SY1|U*E87tUUhKGyp(CyIWJ+S87RH zxAwVPa0tgVlPmJ-6(PgK%p@1CltqX&k#n1=$Ao*vyu-)!Me}aP#xfKAoQ_FIS$rFw zNujr$m2cB`$AoKF`EXG7Onj&Fuuf*;nb32sZhR$|){bWnCC9mcTCWT8s`l~1>;uqA zY}F&PA*I_`+J08{j3G`v9jJcVynSfWh)mfxg_lOFB679_#Y3}~7R~-uznS*0pkmR) zj9a}73)35zjB?q>Sy5jG>qm3^^xILdzo@Q$e-zdQ+r-h$2wFW5z*!wDU8PN&4KU7B z&m5v})f+W|2%3{#HZ6@E#21$5C*%#d7;t=}Fdg+YfRs08=3;1JJ;J#|O0uvH8h5rD z9GB^yQa!g1v4N{p7SardW*x!a-#DK!gsVm+TDK9Byx_%Ko13R!{u{AJz{=-MDDN#k zuiBm8=%n|LtP-r`fB6OZ{>`ZL-+p6M_Z=yVBeAaVB3KyyEQLLg$v88rIV{ZGsKa%E zjOjKNN&|E-%zgiBZGL+D$I^0qw+ISlcvtvGT=c_EExgXM|Cx0o;8N+-!f*Lym(eu} zmszi*PA0Yt9>mYHWrV)AGAo%~v-o@BA`rJN_XuIf|EF3kcw4|tmMJH)_W!bUsM}5- zg*aW0kIz}hbR7-l#0e#~4T=8x_)JMt9CHwFn*;YXQLZ+tp|$WL(pt=VqTIvr4egmC z-jjuu@pbq|a|apF(6&dX-BW5(6SYY1H@DsohmY*sZB6+clset|CBo`jV+ddZpZms_#%D|~n5PK0%V&RX91D*UP= zzWiIOHu#6_q%2^+0@fei*#P#r`?%cbE*|kFC@`mLK-+RgC3{a0#c1@5p{W$qci0{J{(BKX_sN+Y3Li1itnIb?~is@0%;F&l3Ez>&JsXcwzkqFRXv1 z^;w30ZhZp2-9BBid=|skPj3~zbJX71-u$__;5*O4m%dYhU$n6nwP(@BS_BW5wIiyQ z9SO(F;lDsV6bsY{7gmI)30qWRLH%EFpIBF9Vf_nARNA-uu`zdiYyi9eh;s#UT)1Y^N(%zbjN8)>MD_WM}Ufx1~ zfhVIknWVib6B<{kM(Qcj-!(K)yf)cbaU4s-NM&SxJuhC@Mo0)aqX($1_xiEgMd(8K z1(%;cPWqGPC+T&fu@ozFQMk!yd9(4%n)p4T4%M!SoyEEum;)z)WM$+vHvfhe)i595 zY_LBQ)LbJ|l{+bJ({iPZT3wFS$~j#QS`gVi_h)a~zs)ortyoMr2@MPGjO;>WB$KUo ztcw9TKgUDSIKc1yde#d3PpW%eyn)wn_B2R*=h|?-v9{S7&QHJm0VQ<&&-!uiQ60%l z0(QvSXSKQZ*=76kWS`h!u>*wrjOLgXLaXJB?xGLXsI40!BZm5G5&D@8V2=P1kF-`y zDE#y=1ntK}jps^bD*j*~Gm_C2KbH($JQcS5j$eKR-yaBr4DN+piw|b&)?cWsLm&Pu z_Y`vNgsr={j$#XDOO)FyzF)1DnX7Bfn9|zzs@}2K)~e`^=ioLQn7~OMg7|WLAiLQM zq61k7aZxj@pYOeC#@h%s=Ir$kzM+Oac0Po(t0EuHXZ-xjlqQUA$i^r1+1@n9^Tjk3 zU;JJ6aL7JMhC}o6Jx5(qzqsK~2m4O~ccJ>duVEjZ-rK_W$DmZvp@;*Qw)9J4fgTUQ19HYBKn#R?-BEQZ$xxU%6^An>J@c*gRD0$qT_M@mf_)Cjctf-r|I}M&1O+_ zklswww1~RLv8)lm9mkz~Cf2ed-)T=%bxKaK23Q*^Et`qt1LVz}WqAo3el2&%Gl0(wl7}W;=d=liw|U z-_rM%zPI#!Ti@etNFRHIzB-8FWS+AOl)xuY3QhS zm_J4PM1T~N9yj)~cNP5&`!T(q?N24G1It@|LApj4q4hS(`uULCvxn$r(|mH9@_M{a zwT|v>c0JQ?bYTFEvB_srr)GY=*kk?I;!eu!(I_2l(YkEW-!}cxiFx#%{(hprpXqOF zlgj)=e;?@YXZn+#e7)GAzjyTap8hU|=-k(fE&6NG-!}cB9KIe!|DBHSdUx};UwZr- zZEdzVKHAaN7X7uN&N-E(1$3ut@5^y#@AKZ-9zUb(*yX?dl1+Oz0(d&V)m(i0|4iDr z(&y(xM*H0Fw%9g*y^s;_3ics@zT($0eI+m13G(x^S3(U=Xn4X5dNF22x)eZg5XcF>2A zR%m6HHuh0AH28x0BX7SpuldlVZ{BR_FC6y&^2;yLY4_l~%jY7UPbt>8hCfHzQ-7HL zLJi3u*e>vt&UXCn=lR{JH@zz&!83C`ld(<(hY{v!A4G@$q^j(%CgO}tA7|ZMY^g5@ ztzE#bklU5sXZgG^dEHq)L5U9G=IH?EmLS99?)g{T&9+&ULgx5_E$RV#jiAcWY0ldy zIviv(hZ|)sjh@&qKBJ?+qB3Eo@<`5An`1Hpt=W4Zys%J)87vLy`#VP^!F3} zeW1UeY2R(qAMJxyi~b0%wZnZxKe(UtfbrkfdDt=IrDGvyN-;airw={qG!dS~elEcg zFQ($Zvx|G62=_$@wJPVv;YcQ@ecO}%rl6X5jG*>`^~5N(s}3o;w>ggmZ5c#{nx%&b zYRKnZAGmJcx(twUa_`@CEz)_2df4Lbdp1b(Q<#5#y&4=7%RQpcp=p=-%?&TeQaV>! zO5=*V5^53j0y|>Rap0xb71T&Lu+N^D8UNaL?ahhpi}q(@j`vQ#Tl)Kx{(jKkpCf~# zXJf_BGakd!Y%mz6^3tUq;py;^I3>;3w(uL)Ivy^2h5U+#LpmpkHc@!<+~RXZ_q^jhzw@5oYrhVN{=x5_zVGXATYrDm-{182zxDU>M1MQx zy`}H+D=r))uWRCC(lgID;LuG|2cA26PG1m8!*6GP#oQ8}_os6{$27l>MT_UXYsh2 zjxN4;qSG%I(FvUsbH!7anGjRm`PEDxqrI{2mGtQ<$L1GYmEvT${Eoj?^u67|AFq)v zZFTzNXX=XJKcZ97$jkYdk@CU!gJ^I5NPm(p_&uLK@i{3mS0RPab0tLtA=!TeqDA=A zbe<7U^}x7=kcl8sedc|9lufy!lb+NE{4O*nN&(jp^Fuw`Ckp+}!}CJx-DKFvmxqUE z+>c-6w>zPaw#CMp_!~N%%$at0eiFIou06wX>YH?VJ{sfie;;<+{0p*(e_Q&yt-m|^ z`%Zt~>+etc`$2zy)?Xr_nwR! z&`kTXdJgDcVw3K$cn*ut-Q&JF@}Bu)>_>|k1X|4VvC2>i^{+Ke zI}*i_&wjZ@2dby@z<$=P!+YKnJk7%6&8QJi-Px3-?$Iw9LP8dW;z0WjZjpG`J|y-Q z#`1gpIn?_RM}^7}Lr7IJTO)i*UH*V+vO$oN7DZ^q+%O5KvZ&-y;X|4g$# zs13cLFtLnpvp+bJxqard02HtAAbhs!!Nbqkcq}WBy?B{TEW5tnn^H#|_kKL?fE$Xw zjpc;K5qk+C+w4f)XE5n*&Poj7O)5$7cf`CH)o=H)$YpxdCofUHX+a_$rfH<#xyVHR zLD+GSvJ~M#eqq`w3T{Hg&?i>Fw67VZNhxB_ilJ+q)n!B zZ$!@rJ;==D`IuJc3=9H2AJIBxByr%}#u43u$Uun^XBqlAk+aRc%Q+&W30Ek4k7<#J z^B>2nngrBC146B0Uuyl*_{p2dcX%#ny$y4M*V)*c(Ny0hCmMFjyfe9X)ElHGho6-Q zL_IY40~R5lnC?>oOs}a~kVOfdbknO#x9~*VnIW^VUK$AgWM2+$%n1S) z=`_pmVx1Rx|2A9#cCac7!*74hq6yN3_@%|oQh2+rcszVKt+M(pJ3MAB*gc0jWMR-0 zYWdUN%{ZIQdB0xV3L@9B_ZGhE0P?T_%ITb@Tns-S3f-go$r|3766JKpvlFw8rJ~Y% z(#^$3lAjK`<|NN2rk8>glFxMb+s1im(Z%sWazVU`$?WW%$~z?Ok>G;zdw@&yJA6jd z0Hs84D?pJ5DHn11J;VYX@yfH`gz&^$3;fz;M;!8e0J+21jt8fm$k~WGqyZ;bjkXdm zO{u;xO>Px~w4?cO=)dy?aAeDUVdE9{cw0z25R-c^F=ALO3L5^QnHGkXD%s7B_bw7L_l{3y<9TY= z3x+mC2d2E4!EYBRA1rh!S$>AaoNDe1CY-i0{7loc(v59M=7m!4^Zupk3oLd5fd zOi4;bil{BO>SyUgD(@ZJBb4t6XtCNgBm{(g75J{W@icTBleiuo$L~Z1 z=sVK`pt-<5=`W{oUF}=~mrl#?ayM{3C+2--KM}kGg6Rx;IOlNXQszkcV*DaS%9vk) z`P@_asPu>UGvP=4cR+quXQJxkFFG>!=fd-`2vesLcSn7C#b#33sVQw_siqe59@cP@ zKWG6HQ<7*aBCX1ayju3t>wKE3yTm9+yPeMlAR(X`z-w+k$Y`?nh)lQKm5ErdKKddo zRh(};#`G-nG~nmUbj0WxaHevNrz7iM(~d`@Y^-OjtoZZs+jC|`^j+56H`z*2z)75l z3^wc1!PFaCLQvOGY*s+`bYGK%xODGsjZzx-^_SihnhAKp^*Q`tCGdIgUlZm0G|;H4;d{HxO{k2 z!1$hU3@Yg|KO9Yvut#%+b;4U#vZ8pFk+jedAqq&QY4vnAqM(ocs zT9{lP9`F(Se-o+5^IJ6^QxV(&z+sfI=g>Qwv4f)g+Vp$iJhCc)RsV9cflzSmz77L)I6KrU8vo+-I;E@H3Ti{Bn*D#VRxjLgtD- z#qQPG=FYD-_~(9Y^TV$b{KK)y9%KFg@KItAvtACSQPgnQ=_IObj^ugt@-TZ{`Iea~7$~uyfSYn^7o(iIyrIRD@{tTav=zOl6&@KNc>F zCEpti5`hYFmT4t$#jw2Hqy3X_hnMH)mtUx^|M+(H_3ZqYvrp{*me=!^Q~u4AZ-8wlST@ zr+Ytd(kZM9Q~%k(KN0lkwU1t-WV1o`51~KH{F@N^$4Vv+nFiA};mYY+KR&zocA0bz zFU~uck*0|*m`g;O>V?_F^T6BeV9q`QfFjsA5S;v8rRqz>?P4Pj%dBmy4;HvcA#xY7DQBqSHQqEo&hatA|M#NctnWJ9K^jg6j<*rQ$e~eoBq(~B67Nm;qL^J*V?SRL zS%`0=nn=!@DcJ>PD681b&!_VgUB_!Dm4Mbfz7a59z+=jFQb8Y*`n- zVhM~=lLAUOk#A10KK(YxJ}c%|BSF#JhWV7^6R)(_=fzct#HVxTDv=r!s_8Y=_$COz zn#+EIUA3`<9r&~?%SBb<^4WW?w3R~_&?oo^c=!&q087%%oyYir?ogOiN=Y_m z!K^z3tQ8%K`VlqX1Xkmt!BEyrrC!5HqxQRRyeP9_L2s;k!)d%5uR;x8zcGdvMXG8rEsjn`?!96uts% z&rz>7d(jee_3=7D|E5bTl=15id$irX!yi*H5oX<-We;gK9cc8?>lz|P6w9?fGuqBC zJ|LZY4ogc*^oMF~A>C$}<>%m*e>Z*&W#5Dc`%PojHk3=1_y`Za&+<@NZ)O+R$Pw-n zh4@Kf$0~w-v9&m+x$!kCFPUDvas1)tCy%Z;Vs8|Kr*RMQz=#Z;-U;W8b#E5hJ&Rb7 ze*1{sF_6c`i}4@VU-&eSe7|_!{jL&GmjI$VtjKovZVw+C181@|A6h=C-ieZ zz8*r#IyP27Yh0nmY>JN#E{#p4`qK5n)?X2~7$bt2@P0doBDLZ?XgRA1Cc=jB2Z#w~ zpBfF~T5w4`q~SaL!A8WTVV@N%?R`4w8S&=V2|XrQpxk_R>SUtgcpdy@rS5hD0o3YWgX-r^uok z`~y2&eVAQk(Nxo>n#R9P;lbs3`iM7qp2;%`q8=?vd>kPM2{t9qo8XNgvoc-1`0|^J ze+s_Iy~k^rwO5Ahx)G(bTg=G}@k5(gnx-E%TN~TW{?0qgo8idgI%ZxqY-8NVA$R+P z1F@Xx*y2SHJm$q@lr5WIRNf6+JiR3N=ClhGr7xwTz-m3NF4sD zA>Y82g7<|b^#_p8*DiILg;v08x9+F9Z>*b<;^kTMJ;m)BmlFyhwY`33PIw;DA>WbG zUc@4kwKdE}uCa%bVbgi2wg2lWzksb2$8FcVmi7V%$$yuSu4 zyH}?K83AQ5$_kGCNzCZrktoDhAC2!h_Jui{5x#5Q<+r1#G&Way$2po#A{d`o!qa-L8sV!_eSR^FPcmu1C8>)2WJ*(9{6i_@wOfLx*m<$zLU~Q5 zxJzTj1WI!P&2y>C7qamzvG)vI)(rR~`bZ@Zny%XB-XItSmDLHK%A5^1O=7`Lh+%Eg zF)0(K{^XhXH{A693Sj=1BS?M!lXd0pr|ET*JBbshwxn$nlu}Y}ysrEG<}4jennQ?d z%JH+9)mbYX0WA4P;TU)TT<1iq%=`CRt&Rb=vAEVmiCs%+%^o$v|9;rN%Dnph`{?<` zMPEj}+i1}^X@2ea)WMthhSKiQqDiTrOD?04bLse8Tzo-WiJ0R7oZZ4eG#?I{^ZOT+ z_o6y4DpR1^afjfu$W72K8CV&^1!a(IiP)L-nG?b@ZQ}9& zlRO^+mkEqYzeI$HNKtn@Euw8?HO;*L;fU{UsK(ru#U|!Ii^{#LRZEkF> zt+5oxtDevEjz}zv*8NDgpmJP-aOauEcnmX%K16e7C-gjV)Ixhf*A)VW)O~ zh?d07G@no0IE(HwYo2Jph~kaRu7mkj<+pHjyEqow$M(XRaBHB_Cl8I7nFJ5p1F^L> z7x|Y)v<#OQ?w*2W6opHL#v`5P32G`>cab=rMi(c6@i1onK@FSnjPnWz)nE!) zlhDBz6gh5+?vmW>upnJ^e6H5{z5!;XGRQnB&+^Me$3iLWZErl7=Gova4IchjE-f*O z@^OO5sm8r~2E!5@4=G|J5eA_2+q5^?@Z%hXF{vg!9#pvBE;bs^!Hjy7WH9Ra_1TZa zgFN-U%oCCsrNmUq%^;PWsKa@hr>Q~kjwZ&cH9#)hst*fD&FKv>8BfX|J!*vE1qYC}CiA z$A>Wyl}pw@u|~-cKH7@6YlY|@i5)+&)^L_KNX5U~D|6c*8xI5B{FG0M<|oXBEEuTM z;ZlT{p!sx+xUtE_WhXZ7rdODISC?G_UiB-iE?XvEz0A@UafAw4XQe*V`g^{^KgvS! z=3?>cS=tU@1v@5v4S+zs;(N$ZkAn##etVD7;bWW*afsVpY(Z0|cpCSgD-lT?-;zXR zBffyjiK7@W%n$I9t?O@?-G+-<>oq-aq*@M0Ly zoMN`uRofM&n!45ekQvO&){GMDW@%g@u3(#Be3#K0qx#FBU6S_0`;~^#esA*;zmMkE z!=Yx4uwFyTvx{3;8;!5flYOHSYgGelD*~>d6@sNMhe8Kcg&Ji=U(a=3-z7LJ){`n( z@;ETgG~B){qUhPO3|A`rTp3wSVW}T8*3XtrZ1nLYjbCIe(;6y5?g()V@i?(`w?sp;ZAiG7!g!H9U$!HoHZZdFOx|jW)Q~xUjG(k7IY{- zG7G?)uo09S<`1hDTmHSp#g=|=NipdE1g&u#$2_j4uMH)JqoZUwDkFcXq4-DR3y8JY z&^oXMAEXgKXCc0@=?&$lPJ5F8KktP9n%JaMdocq!`gma990u8;xi!D^FZJoQM9}l< z=ltQL{jI{unyxGs5in?A>~=3u>(Rp#sI(E8@IYQGFyx}kHXqBb7TU3}MYL}tIwi$7EuB*ZTuP*Nvmh!oeEj(PTj>@5qtw;-N{Hmg~b$s*aT) zGIItqZi67gP%f-shGSz}dqx8WPBQ|Oh|0C;dp z?mo*!=rf~v!IV|cxd$e|t7etI4VZ?OOzKj;iv3riNks${w<#qk#lo9lh{eX7?S}S4LH`QDiR@P zajRICCr{w&c-Fsd3a4N0+a#aB7m!r8ZtigjNW!+tqo63w$%l^4w#OTwZcLppL@x}rAp4@0wnP>V3#augtg));En-dQh-sSx7wZU7;k7E(^ zXim&YOq0lW<^GOl#p|P89$fb|zsB5=2hE7hk#E~zdgHHf6Z>3x!?olD7vGO!nu8uF znI?#_*H|}S-%vWIG2=0DbdFbkm*oT8d}+YCU0LgbHcQ_VQ_mNDFepDxA20;*nuM9g zuhY32RNA))o>w9YHA?;QHf(iKIUN6^OrNy@adpUVf^pq-oBT&C7=;eUZ=6}RkTp-4 z9aJVR#*n7xQ)MhVC&#D9m&w_2`!LpkIc#&1jc41fgmo19BMm;+o8Ejhd|~hABkL?u zlM-yJkH8}yhGQ#XPUKD|vwV=NPJ##aQHFGuV7%-LDzz_C{v+F_5T3+?i}%hL%S3(; z>ur?3V?I$#`^jX+VdQm6K7RZp-=ayj-^ENzgO}8!1@NfwuCm}8HT_<-p4vv0>O#Tm zK~Rie%jXkUWNwQ-0&R<-d|?w5F9Fc7A9xlpTuS-3Q{LLJJcwCa<{-_0kKhLK#>G)w zE3LzV)!8&GIA&Q$H}4ejPN~xVT%|0m>Zdns7S$`4*D}i9jdKI4A}zu{kP$XsQiix% z=xse&J(T)#L7{c&+&U8>DhpE_qGJ70yJ3Jo1ih0EO1*6?guCqQoptxxmqc^2iuK9i zRi2A-u5cL)yDrT2l36)YndU zJ`mL>62`SjlSwph{*aF&b2MVl9kX6>hi9W?*(k&6*(8iQU;0?)84QV&oSGX>-XQda z5`I`#mv|GoNzLj1C)yxI(GXz{8h^G9L^mD>_qDOw^u%iK6OJ|UD)1FS>weu3%+wCP z_LEA*iAag2SyXP2%c*ROb5Ja;0%ou>Jf*s{Z>WsBwl=X8mDZh@_r`N&Z9yR|nM^B} zGi8SJ;+9wLLw+Z$hY+YiUxo7QiwossbTj3{KfcMwsSjtiFucVK7(s$+WyB)8PIdLl zctxq|^~w?8qoYcDc4cnXluuuPyR_|&>|WRCT8MEad-ILgPG!M->Y3AxWX-7SsQs*X z4v>WhcSCkh$Fvm*B~r1-T=7Dj3xNn7Aj$nG0U^x3H|UwEqo|Iagy@(%up*7V{apFA z!t9y~&eSFBu)QPdn@rd{Us1dl?6>@BbEP>zr*SGZ9D23+-!=c0sqZ?N5-NSIW!}`m zUJu;e+A8h5LZlSsGapwkCrzk1W0#b%5&@4EFUcU76i1q)#3P|Sc;`j4oGEVn3JBZt z4N~#;l(6xTt^lwFMAr&mz%ca2cRWJG`bE4niBV;!Ss%ztV;~`9HJu(j)uzZNRi(Zj z#}BkLi^oUvmLA6Nb)!6Q4B6F9USelW9#N_JXh9x^*-!TQ{4ibC)UI7rD)I17>UhBG z-N|7BAqrE`h7XtT*L?};LVkGEnkN;pvW9?hZ-g?46bY7El5CUDNYnt;)AS%nLW+LB zlN=oG9VGk5X9tI!2=DEa!#z&D{F0oVUmhPFxA&O(JUBn&cnSpL5vBazIlMUeP4f;8 z+nvLsuBKCE-9vufYya)raYvqy&lIN2gR9QTr7Q^FhlJV`3&DED-YnVM1M>IV^rg?o z-OIyHa&mrtfhgTmq#mAmNw0ZuXm`J9RK6Sb$s@F*Y8!bS)Jno$B2%cNgP$uS9hi@u zr-8b*Rq?0aZe>}B33MV!!S6BQ1yj1|b*g5px)*!DoawkW#D9FhLq}+|*N1I=8X1@W z2dSjfTSo`OS5rW5gj`y}V_Y^|@Mq!bc!j01E-h=9%NW$K zumR7&$vW%j`CaBrw9FD<8?8lasWg9{u$!HvS&^z8bry`)*5j{>MfDK!VhU|xJ!_7^ z^rXH%9z=^TFAq;IE=|kJVW>k`?Oo@v`|aei60y3bA4i?T!({*4(Gj7VmF8km87=@Z z;8=7D(}BB(U9}EYC$v1tKrO`mv!yzQH|(|w(hi??5hs;-kjB(W?K)giN9jnGO3EZZ zPrM3QjO6I0-%t@v`BO~KTDix9eRPwDC1-g_9dki@Aa4Gj>v8Qo^BHSh!7vh+`F!s)}|g0Zk zo~Rd2}EE_N`wO+XH zoSb0Y=+RYZPFL27TGm&>%Ox(Rv4}saVR+Q@UGEwS)g{*FPt;@7YAnT7+uraaQMBYc z0V`H+?6dtw1-~9&F3evmmeJ#7-ssQM*-LqonyUqC-=TN3FRRbj`>vE*!~@l}f_IX+ zo%t8*S_xU!e8ZD72(2H|s(NSef^xpoiQs$(E>!K2zJyn-$T|VT_H=T9K%yzNuB#h> zFtv6qJWO*_9=iH`{BU741@d#k`w;C-7ZJkFXfZY%Ql*hAvIZj?E+%ZX?PO7b-ju3R=^e(@#R9B> ztpL@)SPE#-_XhRpkXX)g{4C99@oHT@i%v}iwdKVPXHA}khd?VK9AiYjZmfHQWFR57 zEi9I&Nz^o+wo;ntp1XIvrGxN2C@;R;uOr^uCAqWF{8BkgDCcW?a=tQ$ENLDu8hJ7w zA71M*a>2GIFRXCr3LBgaoaP@UQFu0JogvPE%#n{Gl~JC5jeMD;*9Vn{nvO1z3v$^? zTRVh1&o82qd<^eL$7jdgFNX*Gymx$ZXuj~aSHK1Zy7>Iy>tKWbuNp|bQe0%<=VRjr zh4Qt!x88FU$uHkGC9IV$y8o5$887w2-j!&tH*8tn-==U~*+ngN?eyFjH2gZuulQ6o z`g7tA2kMUO#>Vrq%1#GB9zv&<&|5Lv2@(@TZ5d_LNsY@|#QC7F{Xbt1J7zk}=Q%CC!9P(g9t-$CM#8SH<4QfI z02HG>g=NecxBS~UbMK0W-h}!xACJuif-(2Xg;VzVgJDyDYS`k1<(5O=Hg`0*ohwvaoqBnFT;7HZ!OD$d-*&Dc%!cT z*Gw*9YAR?Ducda&P-wi{hur)sz3mOJF-f)rrS%a-5Acj+6q@$#6#`+!93Vs!c^1M| zaSL7A_=w%cioFfgeHprUm5V1XwwBzmaP8AQ3xq^5?lQKQ)g11FD#}zdfpetcer6Y# zw3GISy==tB8kNj%<3-t0F$4L@pN}qLcoRjUQD$d~ZkHAa{$gV&apBb<#lW{mjiez38&`LoinF3*CYdkFj4mY#CD#&<_(%Q~Z2!aizpqXHAqpaF zpZp#@fG#!GIZClN9kqKS2IZ&`#RQs6W^APMUotZ9htRWsD|S0Syyp)%SID&B@s);` zXMBTemU6*sgHa*%uNCrv{OX_d?Wz$s*HV)c_6EL8IT{$Zo5x@>lV8V zn4i-&`t$-B5S9(%~2T)xv>R@ZSLB*Mt+o`l;)h?K_ zQtYUAHO=}Ej>};N1hi?#RA8`NEE&SP>6O#x@!({m5uOsyL+O329y4p zhgqRGQ`k@aMhj_8N;B>k!}_q#_UDD6kR;>_G4C5CxI?kVJDU%O@rCXU&p~M&teR>2 zrl8P&kb$+f`PFi5ap=NM+*_!@9mEXbR}$1AlB8xn9zI1c z>jN>I#nL{&w~;^vE=9xd-?JNrqWN`SeLhs{`OYAsljm1e2P;8TnzBNur8l~m^fQem zebj|-dzffJ7qtHQ}#b8*2Rd@-RD4q$8N4(tyu#4-aO@@J3xtwvD75Yv0%Bkld zzPQZMu={Ml0zvlpPg&|HtB}aj*Ylxnys5SCTDV8@Yf&wAUT?1KE^E}6qk1*`XSik- zeq*xQJ|rZW4oh{y1vy-E^Lp&vUOC^Ry{rE4t~r?ZhUGNbE}Ax;Wl;WNSH_F>pbt{F z4}Q;!Cefq6Tl?OJCK2(qb=}gLUhahWu*{}2zdjhx%AJ}^8>B-x{#Bo^qh>nRK1`cL zkgLbaQXeEQw%#mbXX~4#I&SIpbrXSR%i~VxLTvKFAT(vT%0l;DJQ`cLn*C%p6E88I z-xc68ga2-bsC?)-`*ET;nl$!MisbiVcptnAMKW>oCh?vWmS%S%&zSG>SXj3!Jhz@t z;Cb{eQJ=C3Hz_(X?^TBQg(%)e|j6^BV){^Bi zG(`5moljzX8QlK0;tTJaH?HseKD!-F%-GP#+7(p#hB2ZCOuWk&$Xj>1x2}!<)I6Uy zxpT5k5phA=FoEw>@y;*rM4vQ=_ru74pE^5vet(z-@0;H9mOpoHw})wFw>w+-3SQ8( z054>;=+h>WSpY5lB?J<2d^?uso=B9;X#WYw5pkGrVE4~H#)w3VKwMU6t^6+OHf8(;>0Qj3M+NDU+*wYr+aU z{h9CgLp;;m*!W%SlqT>k44ZyF!8zy#NYu4~zUcm{!qR>kJDXMYof*9VmhoBxz#YPl z_m1E-^%#m*ddKlX5_`-B{xvKa&L^=33T4QsUG^!GipL6C5nE`eMFqo39CDA|N}a#xeT{}x$_?|_y+*lssr}6FL%cUp%lLKXL*zo(`CQzW zao~YZ)kdULvxR#OhM9<~A@tLhfV%nwlmj%a1kYzqK!=Ag_P{GMM*eyWJ<^ANJQ{jw-a2jcr zs2*-V`k^dwgW`jlLHnqAoKy2Vla--k%;q>5CoXg>9}|CkZbih?2GA3+CP%@0zw?#A_O} zcuWeuUn%#klU95%SL%Q#3U_Rn@0{gkG934TbUjG)T5#_oCQ6f4A2!NkwQP-<(^H4h zzE9`F)TP=voDVG;6yqzukG}VL^~uWtR~EoPJR&UeZ2HQ6!=TP$+J8GJW*hXY8ctrk z50x7lS9nvt!F22Ch(0@9kGmY2NV6R4h`o_fkqcwU>C->DUy7Nn(bj3ENkR=$;rg~6 zRbBUsE@Z){UCr7l!5Og19`-Gs%05eh7d864h4|NG+`Z{l(i`07BIstS@*raY$<L5au0o9ymBjC`_LbR}YJsnMYN*k`8ag-wHXy*xOj6 zGS2F%jCOPpu9qqdFi<%EviAGKk~d?g+tBdggzj>(A0Nz%Aqi!c$M`@R%=>0OWf$F> z*$Swsok>vM1s$?>9>Ol215T zL2nixm_=qr1Z9MbxyH5_#@Q8fN|p4UO9!21E7JEid%_e5!Ka?%!HFB!aqjk|;+OXg zI_)0BSu)4V1v1qe2q7FW(VXn=zZ<;RI}8d4&OIL3dwJySinA4tE?r4i-9ULaVh=== z;MR%|f_}SVJm|p=7=7V~MJUW}KHCH8K;m_vab_CNR%Y}dM}7Bl@A8n{d$GM4n}u{s zeUNF5+cYG{GAHrgmA2!crfrvt`qqfT^Pvx|r`OqxuH`|Fwo1s?V76$&uQjbm;_9bjI_xh8bTs(|`k7f#Zt zEOIHvHD=Ec;$lf{VSTk0GZEdod`8ynA3+{X`y&q~pG5NGGIy5dGJQ`U zAj^oLvviV#{9{_9@h{S~R4);OgMccf~uHW_jBwA?dl_+bD8||+CSy%n2&l06V*>g zqsc`IE1%G5DPf)%Xf&9(6jXwvT30(JThDAY+Hdx*0JodT53Mr$?ftKZh@8ixwM=*iRO4Tw>Wqtf$uu= z5iv%q)WLw@mF@}ZDFfqi)e;5FoW!x!g^_DPB5NeB zK+Ja(dfSV{22t2C7vPxLb3imQmo~%J*J)y{sykR=U~O4BMC4=f|qWwn9g>t4Pu`A^f$8>ZxDVk74FD9wchp6Ne#|+nX zY3lB#4Gb0zD{DwRYq>kV8B?d5&|PDv>ie3ui?LoKB@sUArpAlMF zRqj>yPCdPRcfJLufoXv_th8sF;5N9ll%T^H85S_9FJp7opX$i>xCHABZ&yzo!jXeF z!P!=Yfdx|tBWhgTu`+};&)XhLNY`njUpQl($fLrb_Wfx`$_;VSpQpul0MMij;p z8qAW$%V3<gAP}(_z_?^n?Gn?9VcR%T2}iA!g9Cy^a* z*(7pOm{W>f_vsBU#zN5#>potpHP*u|jQD(ylT1EE<+#8zdl1O<`~3jE7M3%Nq3D$* zqOe?Ad29H5o3kb5$;GMI6!*OQ(a*VtEJiM!HVs3oMA?`%Nwe7#TXP8w`kvPAt`JU% z+%7_*^zV|gYvbTN57p4RaIR6pRc7NVcWXKg+7`> z8!2XJ!?dwJx3+ESfh7+<>%Hp=!g;f@9;(#-|Dn-G}66n$IU%cvZ+?+^f(KLL{2=C~vNXf2vf&?a%m^&hh18 za`wwXe3f~j|EOdOgN!m8cHCEj_V#~W%X~V(EzlQ1+xExZi*9nBbh?+~;ia;{?V5QW zvJuw#rE}Q5SX}F>kTSOofP>R&UJ;Em{uCpSDl5#7XNtj_Lt-3+UZ#O^NDrOdq}7tbAoP)xaL?UG61&2M3*G|64ct z<@n(8ivcu+41_nY$DO|= zhju6{DGeX4dwJOn=f9L%s<+!|cWDawo-OQKeQu*%_O$!;ner8gN*&+MPWQTB4-YC8 ztpMfq2eSu1X`R}77UX*6_rB~W^a=QSqqCJaS!pbnKrF5YYq2yoiy<0|>!5+$f4&|M zYC&DtAj|9VAS@0#JNlgLAA5_dF4f_H%j46-P5|qtl;8pkSDRYGw-!+^!L~1fUUufX zW5zoTf^V!|!u9*2(&vjxe}N&oztILdKR6UrRY|dM2gjX5b{e?5HfVmjnC63dUu-Lv z7mz6ZqdS*4D}5U!sWor88K=^pH#9Rz!$F2|i$ z`@dZtcG=lw-PqRWns$e@Ln+0ZzsvK_pHB{VZJggA#e?haC*LjzKO7$Tu%*;suG(ka z)A~MFb6lT)**m^Wc9OmJSN}VuRIgn!3VYx8j!$aN*#)^?d8#t0jzKB47Cz~?y;(_Z zxN#ubhZo2BQTH-jw>3F#|JRh#F|RGd{%@6I6|uSC!MdRgAfm7IVMy+nOS-NW)Xt2ypl-Q(~}wW)3#kIP@EOZD;d!BJiP zrBpY5M|Jg=Q-k{Lc!mVRlH6c^Lx_+#cm^V@2lVpdcGTrADPP-;MG!$f4A4FP@564n zd?m*}w`?B)P=_BELs&Z9wr^n_3n3ceeuL&(?KsxvR`;ugs2j(H5Y>7i9GUzS^6erI9X zou%d8EiCu0rd&v2n=&Dl9l+Me5iV*e?P!54Wf>(LMK3Gi$>RBf9GlDP=Xtaa;WmrKSHWxnZhJvV z?;OBoszditU8*Oi=^8g1@g*oC$a=enC*q;m9&)Qfy8BR;J{d6ZNsI+??dTUax+*U& z;f*ouYG6VY-UQe}@nAlhRLA!vrOf?erFDOaYuaY+EmwnXRQlmd*%tNUr6m^V2S7u1 zP4!|oYIOkuh&sKBe`g*0>F=y5HZSDPnwy8#$lWUBI91)9l}py@?>tl5-t7LVZ-=ED zbz}GM8aF0(VpjfAbqp6khIj4Hw5)D!>LD9$|HW&Qo>5oBKI*G;jv|dGIXnNi^{xhO z>YhzA1j>-;7aP#F6wT?7#(Wmaj%x^sFgZqtV@a+zej$XIFdH32H+IXROy5|4S9F-C z8*B+M>22t+Y}C%l>LvXBgVFwXhGI0gcrEgE3na2u0m9Qy`&ViSb+=w#lcziptj~X~ zCNoB?pdmH9`WS!NJ7H@wgJ7S5sOqs{P6AyjNeT6LDCytDT8*3f?@%Xnlf42|Nq+{A zW`*%V2LIggTBuL91j?+*)63(!FY7*Am}~JS#)X6Om~F1Ar>SVz7jJ@bT@l*rYyUQ- zrf1hsc$!L0=$!2`O~U`J1uZ&*Z)v$swM`@Oc`dwI$7IxH(FPgB*OzIuvpA9icj|jJC3dN;%<`D3O~M7e|Uo4hePvAa-w-W5qjY3O(D_y26^>i5;kZ_tQpQ|)+xL>IMebq8z%)hx|z zl)i^RfyI2pZa{mFl_u8U*A+@M>Twx}PZt^@S`Ojw6G_^QVH{n>C(9th@l}(;gTv#q zt7@5)Q|9QpEUR(_1De zeQ&6YS_q>#jQ7$K)icdnUUQ55%2$GFlyREJ4ZBj6Hm?fp+FRzf6@xLQ(ukggu|B|NU0%+Vgs0t}VYO&Qfg*!TH#I&-5r5#^_I!^3IS0Yw{bH2ac`b z#Wj@)nrFWE!csN#q5(&==3=2NMRFSp=HASRGg~g>=B1F8Im;*3qYMhfV z&pCICay14Cen1K5%AKDOD(Q1&3)*5pqyhazc(LpTfvu9JS=w~IU z#zGt>5j2bw2)6sKud^1?(b?nSlV#Qo4%J;D9(B)?zg01cb7>p>57gqz2vWFDx=+=) zhk9&Y^7-iHrOaGkA|gAS$jK63gg$j|uL|w<^S1(iPt^ZOZ+gS5CP?wRPed;);f+~U zQseC(Si+Bp@fnD`;TExYt`Y1P_ubQcXvgqhtHsdg2PF(dWv}4|rUnUVL{?uOpQO3P zGyelM{ZEb2M&o~Ci~@P{3wqah@p#mnDZY;tD!}`sxVb1(5j_vpSYB7?79&~>(%^z){R(!sPzsCiz$%a)uLIJU9b<%eBbG=zOTP1G zO1keFU$um^W}f^@m!cA?+EJ<@ae{hXRti-Gyy` z9@5VDxF9ku>+^nQ{spwtBC7SJC7hgLkY3GiuHnOph-f%9VMp`S*_#^>kaaR4oC zvt^9KoDh1~_|`AMPUbV?6_x2e1T-If-LHWirzTd&v>*l!f$n)R_wy-uC*Q8zmho#Y zZsBGYGSqP%4_QzT{|Q@P_pQ!BZMh5*eJVjGTUz&x+CIQ5LxEtsJ%p(z)MM=4`8(HT zDS^kYaJ|WOA@Gg=m;Pf_AVk{+Mu0<88rm2c;T@#2!>=0)X(r~~xaTwSG^0@xj)8g& zd33isa!Hc1;}!KGGoPVSUkSxXCIT%K15X3b3M0CJsOJ7{UZmsrDV=S&yHs>hV<-Dp zOWxh;LI{UT2ukn8JT;|gL5?>!aY+nS={`5s)U_hCSHJb+B@4#t#md?-bNCFDSD!km zO~peMeV@a}izJhirr5h?>{f+l-xi&A1O@i09A3OWR8ksIRrZ%(iwg+j)Ro7(BJZn( zayTIL54>wnMR+TtH9CBhctP?g1al$Z_%kINW%|pI2UxH9bUL5RqNTZZ9NM10EaQXG za}~&3jf~?;kd0Ei00zhS(=u%bbRNHkWP5G!CVFuRUmv?PBekhMytne}^mUd(*m^wQ zYW`LaFoB!j<&b4Lz6%`BAFm-q%X0naOPFs!lNNgljHT=g7V<&imI}2`4=mnT0n)#} zqGZq*(9rb-G!N>UI48cln3+AkDzuL)9c~R|JH#0bG8|B=eO+me7nN$%ehcIC@^3v? z%F|z+8OFG>KC3zY`W9l1LnqaoD|NZvJXRnq<-aVqv7o%?AUW`Xxf*1nT&E#j7S~mQ z@ao{bkOb@l{Fbl6n?FRO;~%a!nnTT(5i(*9z#i zxXmVl#CHY3tN`WJ=X`n65xtQ3@p0nw(2Wv3q9kZN!4a(tX=Q)m4VWpzq_8@-M}}$h zYS4{kb$i18C3SjGjS5ZX87VpWw+(c)B4iD%r{C5~r>Im{m}~mT%$nD7p%W^pcD&0u zeoyPm1`xKM`&`3s@jdpahk!T^7u4rAN_>sG35T~;0-?<-9zs`wvTd2B#P$3>&x+e} zYnJ5(_>$e_PIK{#YPWH;I5)6$W8$=ijfj>*G`xLls0Vhms#pBa(=@A>YLsbni7=3* zR%c`vq)Pc7q#mk9=SI88?u=Kfdxa9E`w;KO#8HQ)>gai>hQ+(aCp)|cqs;L+7CWmR z0y{CQ8(I9j3Usw@i&s1bMzJ=Zkcd1zuY6;rQamm{!VStNn4&GzM=Ps}L@Pm6?qyj1 z>$COI;@k?oPteEV5!Aj8He(7FxX=1q)OCRLQwwPtZp*LNT(_dc!x{SXy zq5*_h*ZFXu-jRLD)MEH-mxK z)LAV~beo^Rk9Osj{bxEFW3`6bY(pAK6SUj+Engi*2bRqAZ%ey z!7H+qM|O z*LBpU?}qw_UaE(?eeci)%ITyo%JpgY-aS(^8qI~9XU~uYxuFdW$j_-&3Y3s5V&@S( z3qdvUrXae()rk~J*gza3Sdpybgx4CKJ=X$=l3u=vWfk_Id?r;P{5h>JTUQ1#M<`Ff zuW=G?r!>(_l0wB}I^FR2tD0OlH?lqw-O5tZU*mpG`3&OLY3zuNXkkup76sM`uCRV{ zF@$FiW_Tk$m8FD#mR55c(T|k5gkD228$oWwepsi`N>B~|%x8j5`S|*_)kFAw^TZY- zRWx5v*K$aoztNdA3Pl^9+`W_&$n%A|WU)mhrQzKNn`puw)r^xsIWCslZ@4?)RiHyT zPsqXP9U<7Ot5n^MM5{qIs%?f@8Ct@k-LSz!J}#v$IlTm6;Wa(R16UbHf#oxe*uyxDT!UNLb1cy?_biW*-8U8_SJOwX>2a}=!t z72Y$w?2_qEmGb$Yce}YGqLCvt5SB;_GK2 z&3PjnhrKglj^8k#8_}~6zDyWjS$v0EmmBVFxuxPjH4Eh03m~d~E^GuRHc;ZPmfNxj z%A++{pHI-K-cR}|RXrG*KG?p9_j9)0duudxcb&fT%Frde`fPy!uddJ-UtXOhQ~*>_ zGMP;`jHr{R85OW2|DMJDt3liL-=yPYlIKGab7Kszo@S{8cio7dg=qNu9Um1+Cd)VQ zMK;<-Pd^H-uF!5TEalC=DG5pJN}r2fUaBk)gjGiKG#$k@7~`_sMvYA>J9E07v+ZM;FK0P+aCt*CK3&* zZuqlRAnWGGa@`)GN$k}eK}c7Htm=!pBcV<%UCOPIbpry?@@5>OHJ0F&V!Mb#+>=MI zUZPQBC*kZIj4<#yh#GqfaN*1Ase$n7d3$aarXQqSqLBr1^5-ENFF3b?b7d9ilHQ!I z3SMxuYrR!L$&eO_D0QO|y|_f9x=xwisWL;+N>Gie9+82l*vN&t+RGqo?e=SS$@BXN zF>hr98}@aPJlt}oM)`%~iIwe$URbIYZ+pgaK6LfGSp?ar)M=>T!1oYT+$&?W1hQsr zEQY?muC{j>bhXWcg?5AGdKW{6vC=t+9TQV9OTzeLp$pIF)(7KcC8#QTh89=Vx)}QeE|+;M%;ow%Ho+KQaEtPdn>)8a)|BvH`nHSl zxxE$s?c(&f9sh!8_3U@=*Tn#?cjy!>U7_oNafepT6-DpqLgnIIgiKuewa5Wy>Zspx!P`;6+&ye3d+qjNw_Dn0C`J{zm%j$tf7LScB5hvvrgt@Si>+p2f7j(rY58+d!Q%sNEB8n%>t7AI z-;DU!p@ABX*xMH~PFqbAptU@Yn!|M;kD+4>WZ&Jg9w@47I82VLlu-=aZT?YEC1X zjIw_7VPK|K>!HNtVUTE|v_&=JF+b{K(WI-K3T>o5$iY~~>+XwDJ)Ghv$pgGU#?sBYcxLBsP_OG7za$%CxVK8gwO z@_3;8h^ZtUPfS=-Po6RE?PUNHn#@Z>I0)I)JwLjPUw8BC8J)W6o2Z*2!5S^T!129HpYT2yn-K zT-W3M^YhE(;QZ{c+O|tf*X3-;!VE!*trC>8+asUSF@jjiJ&*eVFxb()a|I zEa&rC9sK!a_i{Ua4bN2Yn^Ng#_j2#^Apvx`rfnI=n*M$1O$TvDX}EG7rxz#j>ta3_ zq{KPraCg;X863uJm={G&eVxlT%?JI{8xnO$bo?ZnKGnb-5E%XSbyTx)0cFIzc71;9 z?$glFKXuUMwG4Xmb%A*812h&(x~|UlK6Q<_42gs(UBbyfe5zfq@oTp%Cm@8m&O^9q zVEzl&u*PUFUi&p}LYIvm8VUpaxEO}fzak8sq1Kn5Q!vW0Gp#0NPSp`rFdq?a1t%RQ2R|yoXVd~* zJ*cb?Tq#u5A~0Z#Uw5FZ|Bf7mOm^SN?;Os}A0Lil)k z6?*&YX~!5BXsGE&t$hPS59(`@JoK`emu?1CL&CBzZ zj@c?bCFHH%WF*~R{aUhp-Z`}8)Z6CXcNqyC>|7VqwEy?D!9Pr0Xudk_R;<9YqE#58 zSYXZClxpq0Gw1#7z4;DCB_9hSWEUGa_Or2C{}IV(9`MepdnkQBUjFH^46< zF90mZwYpy$Y*2w8-V?m&a`4((_x>zy8BbU@$w@bk_VzWL#U{%&sl%)hPHd;Z

|c=w6Qc4nDvtwS98 zV%E#;BPv3g@TSsE+q(GSHXZBb2k1ZC0vfMYYpBdDdTa1=FXZAY^yfN|YWK#X8#ZNM zgxB0r8VS*Jp}ol)6(TJy=H#&zjlACQq4!ik_$JNLIvkvBj>>-h{dqTHdBO%p=K%`t z5LV9SR84ON`Ig-K3nm`r_n3D1EVVEl4y>kFI$!~unLfoYYm=_&0AWwL-j#dsjx%UJ z_;z~w8;&g6dnq*DWDO7IqtR2u|3cr8+fB!A(Yq#wG`pA45``KVpJv$Jd`f^W#BjpZ z#&F&!$*`e|OQpq~nGDDa_eb+49TS%7^FHaOI)~ojxK?b$d&2^3I}v+olTfn;)(UB( zITKSk6X7?6{c6&ZBLx3?t#~7!Fu*mi?2U`^b0Uv3kj>~L)(mrMUQHF5KJYV!bgE7< zb&b4qOxUMOi-&~UH|+yI46upjlL6|^W<@Bu*f6jnBhh8IRtU{8`z!5XQ~>DsDtICvXR#c&rXsvQ5r+A5o1QN$7NRGH{})9&hF1pG0^UK3XpSvfAhZmC4-fuJPY4UyV1hKdD_dtJNx>hH{Aum*E`^Cu# z)`Ko4?xGxMJh8GiUNy{GJr~y>kl3PRw0CmxWe>bfmxBzRaR1KFj*dUen;D-~>KEAF zaB|yAsExGTaQuJ}rB#~ndStEGDYWH4a8XL}s^OQ5xtzMfFiY&dpNor<#>>ZwYt<3M zSAx4_m9tLSBO#yp&R-CH|EPN^+M5U*Aew%E3b#xrBc89$#i_2rf{+bH?sYLt(+M{5 zo7iYu%6`O%*1&7LjQRq^hsntUnI(+a6*b3 zdS+Mk*{Z2Oy#GrSH$Q2tI2z%#IsHHWJ0W_Ir~jx)=d_?Ep?RGB`}@VYbb`vq4e7!* z4|S2H$JGoahM{OO~t&xDM9(#_C&f8MfsH0?l^%rhbSu&KB7=BVX5Ty zA-Q4J6E=1Pz)hht*F^J}=YBtdtfnN#vD_Q-xSeiKfJ<(->t)xroL!bUX+1i~r5oEN zTKN5blbHv4Or*breCeBydGbJ%D^o`FJjsT{;uk_F={p?)<5{k>6QvC&Bb%SkZshqY z8}*Ypgah(kjPu}q(hn2l{f>4W?Wp_IfJr^Q{$#Ex{5~p1FrqUsTz4r=>I)P7vPkgD zxi)wSxIetcQ;Rx2w$D9&GkIHH-j>a~x^m^rbC|c~pdN(4c#O@!Y zwEq<+g!bPxB?!vx2kaLtYhJnW>HM*@U+kU;0DRuSq{qda1I54*=99N?Dy?kz^&81m zxF>s)ejz&>v_`wjB*2mitM%DZUae6C1UblV%5q;x1?YST!Q!h|bk-oXn6_}v*T8Ge zf-?2r(41145YCXVoW<)Ys_2y<)rSh^<1>w<#a+-2H)}DR^GWtd$Ak!cHX7A@l-vyR zOW!y>=yn}4r2lRR5sqkI2sSh_y1ty%n#gH424hAv&qbj~lg?>DoL*Xy_A6=d9>HnD zRx&bsh}O%td86l+_q^pjZ<=RnLV&CBexHu##b$Dk%Y1^gaGKtG%&KX(S1t`0__jzy zPe>c)rI%q_J*a*sOdfFt(r;${xq}qgVlDy0YWVbi@ak+l9~Qh`HSUHMsFpI(>NFS0G#XX7RXN#ee>=B>|7X9nHqJDleDBsfi2Hk6d;&FacJg(1M z_E|BXJeRPQske-&OuEHJrfsFRTCAe)0sbhZ1#q%+_^oaq*#6e+gD|hM54<`n`ykAF zx1`*=CFOROl-pTSZhJ|&?Iq<}OUkvDl-pWTZmU|(Qafgj6#M#XBzX7FL``IRE=;1e zI2^WuH9H(`mEH-x=H)V!Hh-+ZdEa`sT@+xRpu686p-pr{eb&46pW!}aHY4`%;K77u&y<{tK^he z*9u?ibEO_XxLwB&ZioCJ!+5+E6mYgeZmg2OS(lIV;CcZcM(J6D!#%6JFiEJGgC4f6wD;oCji$5O#*G+i`}PdGb<^oA_|n)aK-BFzGE*`BeRPQI$vAMyJ)VwAwIaw3*U~xM= zZ+Xux?|IuiU#A~7-@SjoBUMeF%}qb4_ft_o>W5Q}%CfAvxmGmIqL1qL1Z!PT znI>W|@VYK|Y1hs#fU0xHMPEF|*nf09{)~~Xj%D-LUw@6H508(JekagYN|LdrtVeqW zQ-xABs#V>gy?5KH&#%{v_VO6(qEtk1(+K2WKeM)b&T8~t zRoBBBLh}ugwaAqGqq6?qJ#1gYZ-n|;G9aw~QTmqTXg#($yZ+f=)RvoKLeWgetj_ED zJI>X*0`ViKVne}ZP@2D+24)hNmyL2ej6RwH8qwK?1Hu6=fP+=-3UJy(95c^;+iaB( z*c&ewuhm@{2ICoMk(J$dSYHwj9z#;HD3I@Z`nj{zl)-e@LVNWxWpCY?6NRQq=daDW zedXG07Mqx`QN`36xseR>{l&=Ci?K_#Zn1?Z+YAuFwiDl9(Ex4NeLMV(GQJ7TJV zthN=CCk?e=rFB*ZOPg^*%Sa-#(qbLCJ<8KPD3}&cyt~X&I?l$r^vwn7Kkd|~{~V;J z#E}XQ;L>gfBV`P#X;J|mw)7Hx@mOv>JMR7*m7sZiz=0aNX<^yhrx(m`9dr~8o@f^n zXNrC;`kvIGkPFrd&Jt6>qV@u&+|~MTRUzHpxnTVO-Orw%(ei!(T%f>NBFyXHmjl*( z-{Ld&a6DUt*F@36>>1;w=ltl%gE9F=uQ#kpWFx}Eu1?dT6#v7TjJN(gxn8O-LU$-E zIImGpOuH$bcq34U(~5Km+XG&r-UN7k4Y}T7o=;%pG-IQxf?5UBgbnC#epFREEq74< zx{KgsSXtX1D(&<~mFg+a`9b%X=f-I@n})i1bKlYvmZ~|>y>LCTjvy;`M`oXF`0dy4 zd8*Wva=|yfvhBLH>E&B{Cm5v8jDHDZ!{9WFv%oWqCjF;upNT=fEwD%aqIP5zU?7B$K?DQKF;)TVv)>gI4LyMRlG^ zZDRcwuTA`3ZW9v2?=YCPcN-=Szf|Y9V<_vGLsVr-Bgw=}eS!(ZN^#p8#{UY#CkEy7%jG%;CYsQvA_g zdY&)^!fR7y!1NC8a+r;+T-U*PvSJ_3lK~@L$Ih)~cUB4eew8}oE!$4eI7}d*fS9Fx zBp%px>m7his}AOy4O_>114nz4!M zxgs5BCt9~wmyhia+soG<_r0|_9(e$zld`s%ed}MCqu^Ql6iFA42!w#GXCSd(>Pa|juSHpPODnA3?0G!M zb@Ovn$VM%U=V4U_sba%^`(W^blr~K;#Wa>%P$rzr%DiNJHEAl~);XIP3uR)svXkk( z36U!>1)2AT8rhXYhP*NIrfkx0nxf6(dUB=db(`Y_RA&33( zwMmhaIi0>~ewscMh_;dCQ26BR=hq}29cxHK;Qp8aEky<(f;HD_929m9P}AXYK`Jzxo`b8o&8`+D!A{639Ei0b43 z+<>Nr(Lp?s(l=^=LR&!3BOJ>eChF_`-`2zqwp5=;WV{-zT+6~)xlA$XsqsElJIa-qG$Obiu!-G>V z|I?fsuh$0aFl~m*mJIcTHWl z)EE=>C726ifo-SC`<_>icM586*w#~4?DepBQ=mQT@of5}x5Q{7!`R%$>h+qt{Q4SA zuEzOLSvPxG_Cg9ej?kXVf^L?=n6}je35?hf*FpTS?Uv8|mRKDhRXrUL0+%h+-cOG9 zI+6ay|2y8{=L=1{@Y0UD3fKMZtOFei^SmX`mzVpTY@em1ec$q*y}WMw@}#5Bd*1U! zr_;gj*(v|-Y5GwI--J!^`jLIFn0WW4Z(+95V&>b*!pOA@he4-$w%!kE zgZ&-Wt^WTmPQITIF}YU2by9Q`N40a#Bm~YmguAd;ne4!TND6iLp$-pDzsMMNyK!{- z?d0;frcNvl`j48m$?d8epNkb>Xb~Bh4>g_RURBFr!I?7jpR77fsKU$QTi%W`O#FJg zb@iscuB{d7+FGG5Ug)vck3B!33Xe7KgWI+5id5%-Hcjjo!tRL|f8*@@@^Cl)&JmJ? z;vYWI5hjj;e4i-q!*a%#5C@Y)R7s9RxWNR%aa-2Yx2~?MQ%U$n9gyE+{%!9`ez{HG z##XCRw&%?-zamydBKEzi-J7C4L74FT=*ak*U~QzJEc|g#M?LjZUmc6HCQ-L@_KZV& z6X&W(>^0T;hgsNO+EmrXmf=6wY^EyAa~nkvKutMpmcJ~TZ^_?!Ccm{XzcM#qM3&&p za9+wDb#2+w%v9^y?^$w-|8J&8PSj~_nF~}eMDe`L7e@C)bdj!DT?w9v;6<~pPiw{NH#GY5!q7J*A<;%7;LWbCubO;!UP^-s zM+A#BPAcIO^DUdd8-GnxrW7fO$jz~C%ZBJOy8Fjva{yv3aH=MxB0|E`88{8wt=c)a zG)~Xes}A(EHZ!wEj->hkI9#FMGz69P#!!~M8FMg9LK5NIpFPG`y)oMg3)Wz>$g^&e zO@9w~ZZB7|YTMXR|C*l#1GSGn!|OCNKhk>fj*`w)25xHQiFKc?`K~}9dzJ6XLRtFh zhz2_01?k%%$SfP)J(M|6#wvYZ_ElGkmXueeFE*GxHj8Xf_-XXs9QBI3$Z^W?ybv+e z*vKqh-BgADUTQCWb~i5iBXOO^=plhy=k`T%aejW1bdUf0Fub#Su59~T=PPVi zuWG*Q5&f0CKY6$s3Peq%Obw%1)6RNEb5Wmcz=a9$Vz52Z@qISU$0N~rTzPNf>{(r} zy}UlKb(n4w{r0mQg3D=kH3yQyNbxFGY0|$V3fG*4m7QO>jlUqOP?PoaybFkbrv`<$ z2LS(J+oKY3iNmVPa)u>*f0`3=aJ0FMnBg;IgQ>bOfkzRv0{~KUT-=J^a=bn zNbKTe--pV0B)gN;)z&#iZ(TT|YXPqSlM`5?Q?Zusl<;rB(b5Bcd4(FVqzOJ=t8ZFRRPWbm@K$qsUTkcHTrxHG*sn5N@Anf>9bXw9}lNsoFd+M1@;Bmm|DOnAPPg9C9H{v&1QN)8kC9_F+`7W7tq1c+D$75dS?LT|G1>BlG^lj!D5r60HcT=USX& zdXB((UL99{0jVLup zlWz!_3Tp0XI4^F^Ce}+CPIDwJhoZzVv%=%L{1_vFQoT$h#@Ak@kQMeG6CA=s^t@*0 zyXEi-0N`M8uh-^p8kIVG!-B0`W39yRt5-LwC5lB!BCd~4!?Yjt-*$%c*X2h$Q`;8? za9^y25s7#5K*(u6slqNBz$NwBifUnsbVyVjHjVwBOVaxU-ACePczlye?8|&O7mX^Z zFJT2v@qI8(G^Ag2on7Y~Xn1;`4kY|b!pE1%L#1JIWT(;kN7f;Uq-_b>7S35@*Esu+ z9lV8Md4V$apkUQSYC*jVPqphV`A^?+xxHlE+CloO!Mf>9YoKY@^FCOL+V?``7*C6x6;*K|Ij^C7Z z+J4wptw5be5zO-^)-vXru2L^Vx5kWmjjN@#iM4{w|k!%@SCv5E9{M2K!C+1Civz`Vl7lUeq z8-WNmLj^1EE_HPh->tEz%QYlUj0tmL6x)M}HP9!|XWM)L7a<(4dN!Sp`^=zH8KmG|R-oD#!yjqG z(w0W-mDKFJYP+29hIv+|m|fU;8+gOd=LO|*FtbbbV|i@f;y(QCKYJ3m>4)vx2SQzJ z2;esdANrBA2ssdDGe{vwQw`_a2kPd*TDA~pRFR~?$ZOf|T83|NwOH$$I4bBLJp?SC zZ)*KJ5|>Og6^ZwlVO&81z!vSmau*jU@#9?s|3HwZzL_3tDeW!yd4`+kT$uGhyXq@aeZ{%9>*>({Kii}oq;I#-^JIlXEB{*4En-ud_TK?zl)dCxy= z3&os`W16mnK9xvq2r1BKv4hOfPbOQ_nLOzY?4(I-De=`rOU4`kwmq64mCI;k1NkKw zY)CUicn@L&+B%9P2!7$E^VYZN;?jg`W0Q|$LKvB86V9JWT+sx}VHffnn#iBk=5|Jf zM-xlS1bIS=dU+h9kv?3P1_I4X!}!mpB{-UAlWNk&e2hq(Y-tPoma$_aVKSLd)LRVu zJ@y@iAXv=kB{r(3rea+3NlkK8&{+a5vYchoVLV}=5g8c~UCq0kDbhT-*s*i!zeXDF zvoMXG$`s9M@66va*Wvo+eJ;A1Utfdb@zVl4!#j)i+O8$gc+bSUhA`vT`n`j=p|qq! zj2NUb=A>6al9R|i6aM{?&JL_0BH?%=yZ4zP{5|*O(QVGIiox_X0j@0>U=i3>}XFGex z1ooNn+}^h?a=YKU7l&sDQs!juxBb2LSC+@`U0i-#r-?{2pwpME)C-@obm(aHJVC8wC@efRuc>N3yBIX-Ov{O&{2{kDJ9**iVt z{Bj!LPQN85d%w`RDnHTj>0YvTKy!}qy*T9lf9{?})bsZ7-U+vVn=0d9s^FWxf7ADF zYg6+#HGfm{<-NQ0LGtm7e0~3>@1K8aZ6~cA^P6n#NAkS0X?{8FpnH&f`=Gx%<`-sR zw`CK>ry}ca>jL+a*I?YnJHp%z8N59&rd}X0XBR9xtj_h#H$zUWil*+eY212jI|y!*;}|KvT=VnAEa;jw(~7B5XD>K zZu;y_Bzi6FXIhWF#(pIJXAM`MH?Rt)rSg%LZj3vw1=&m|QJ$nwd-R>>`5_zJK-bUZ zs{Pw-3Kte@1F`#E=cnH6mLJAxc5_Q7^t2JJ^}%d@ip{?b@YP8B4{)IJZ$tF}_>RU@ z#HmpP9s^%rdwk1{b?=R!&se=5MSp;e;?erOZrMrgGhyNqa6KZc*{5FxgH0U zY*c~Aw|Q)6k4#43O0J7oeXyBAi^~W&_<93e2Ri^7t*N=%b`}kI^$4Tibitkv_KvX> z++Bt23>sqf$M>W4C-=$GM%-AJP#%9MM`OsS@=~8`lr^o!V-<$w^4ay1aYN_oxiB() z=HHza-&Gn5L*n&0gbnT55!@1yK-K^~qY{yWqvc<8^*%wzYE0%r_tF)%1S(?SNvKDpJ ze)>6@fJOp;P3MbYw1sgNH0k<&vYSFNl|A0jdIP+V`1D7kZ@tv(hghsYb zQTpd+=G~cpuI?8jyA|}aV2*I2M$eQD!?fAqD&rUS52zE%XBQVHbOMpCRnii*6&O7r zVDweiE7a0;FiaD?CY1j1MgZ!9`~j6qaVZ|^(8bA2(ks++g^{pb2P zSP0|Bdl3!d?`0pdj{ca8_^OK629qH{pMo(kgXOK$ARm+r`HW@9$T(#XqjO$1Jd@S@|DQ0%qbUrp&4nkD~?hUqnaqCqj? zAdvXIg50qGGy6-Q3`WtYxQc*Z`A!pQZk{9a4c-F@f*M6O4SYeunnh1x+B9W_vmi}v zo=h4e2z&8YO6N;@_O=$L6Gde+%5^>ThIh#zAE)JXW~TJI{JDHSxN7swMSYMb)rDzN zg-zpwje6uH6*zOJDC9giVLC|ib=Cb>w!-tq7e(h|$oZM%h=@t(de;?NX9v^| z99CURHqxlyFq$)h8RIoL z6!4rz+xqP7)B+sow+XaFeS2L_v|ygc{`6H~Xn##O0(=EV&MnK^2|f_6qC)?99*PD7 z11j>p*96>82M`=(V_8qeMgcbPaV$<`AQXj+iO-n+DkczRV^ljg9TWt7ftbGMGmFd}C$K;^M2uZ(lznlEJhB%X=vJbpgEzV^mP zG#h|_^h0i62jd7h;GKFX3&WxoT3r2G;|ZjxVlR<<@!gAftE!U~87vaW%4{2WSsM=$ z6U>hLb|o42Ey=~{x9H-$d&v(r?ZBk*T?`Y~*m%2k8ZEuRNqi868^J5{HyCy>C?twl z9b)G9*4X-auzNsVK+G0^sj5d=X``ZcPYb@&apyyCF+FJ4w@k#H!vQ5ah=-DPShL!> z5GHU1UBWxIp1hdVR0LTzvQ^28EhDpWR@|lo!pFUgjR>XNN>j}rQ70senYA5sdaVZE zIvUKuk8>55TDi{Wy#)w*R~1VZ;7*KPz-3`1pTo6vJc6Sq7M5ieoIz^&`?|Kt3^!Jn zm!SD9FHsy|@IvI#Qqhkf2z@^CwWd_v7?#eGn@N`Y=kJ-wD|z>q^L!5q)4TZd#ql|N z>7rgikzMdmX^r{yO^h2hmj~;4FV84?ttv|b35~%qa#W$Irw@jCF3S@IvsqTkF`ZFK zCPKrWIi4bWoL6HGg?xlPb8GgZoOgw6?Ar%bR}RlaKPTLU;djib8tMg>c=TEzgM*J3 z)S-5iMKMpswo%VU=D3Z7Cmzh1kj*DX+X}Px5$5^s8@Nq?y@2_SZ}}5Ne^OzO-NXVRzYvIXDZt;Zd`+oUS@mDvUYK`OlV|Qe4NQMDFg^%Fy2pB{rQyOyN-{S>n4B6O_JLeL_2ug5d920L z?mm6_?OM3b&OqV9sF?A6@iZDCNM)aGCJHnAxXAO`>i8Qu>-geXi$0+pFwV%vv+ACJ zR)|>Nz~M((KHhj|g)U$MkSNmN{0 zG2uoC;qPmMe^hA`5kD6>EQSt?dKr?y(3)S?PH9I|;$->t5dLHx&bmEgRJu!quDlj)UENP5*vbZNLZf;d373BpdO#h;N|a zdw$+r@>pYd-Q$=BV&rwW*NNK~Qg^Ca#kk%66rb+>N;Sb4PU6o=P&$P(A?Z91`!oQ$ zum`L09dZQ?w<{kWx864&`U4`eIW!`>A#$;d%xLw)VPpp6@>f~ zb)rP*YRx$jkJ(}QAoVe_+E4C!TgBdzG)nvAG9O*_?$q^?*?QdPZ2CLv+OXkO$+8*w zXS7U-yEZEUTEL$;JfL%+zxIc$Un~z}%*ny@RK}AH9{t$FH1MOW59YSnM^L5a=-yjj zrh**ib-W16wNzpGV@nE@BERJm3>VSxm#iPh&c8mE>c*a_4KQf%l^b*uaCaH$NQ^Ogf{DXfX^#K-lCn9~wTqb?bi0 z^2F-#mE$f*t5l<<5yl<0$LD04-Ls|&JLs3a8;0Ta*UeQ9S&|Mo>_H7u;|wzs8*vBD z$4$`YfmnYvSZ<*$PYCHG_;#%fqo$qL4;n*&Iq5+f(0MifH!-0jr9%T-e)Z?hSR#;~ zy(-~rLFv7L)AF$Evjn5N$$i|&7TF!wxW{qJ&2!6pM*Q@{N0;v7HkLY4sN00-N9 z9cjM!;i>=aotMtC@wavk|O7N``{B{X` zy9B>of|vf5>bLJiM(rQ(b(7BF=Wi!_m**WB-=y=5HIg`1Bjwdf58R#;QweNjtY$pS!(f%F?r~r$dX! zya2YP>+;g9*S0lf*7TPCZbt_?1_!3xaYyDt>%)5_zpYZbuCs)yO0b-wOYhl7o>{9% zrjJ{dv>B!8kVQIN+(*;D(s$>NVf*;q_Fdo2xag}LGxKi7-@FIw$JFVsF`MSC!o4}=eH@5UWZyscvT@X%q`f;x z6*ZHVW89tG+4qz4^9$G$#ixYiWn8!7@A+^(N@a}Q^R{_L8xPdRUX!@b)wJzO8qcG? z@Eq&2TMq`(t&vtu+ICIaPMFpz*GKy({&H~?_t~iBn%-NbcggP(J=MRBY`%H#l=3^3 z{OwwJQ-7!QJp*svxgUo@jO`OuyJh<3rL}6(wrkRMYSP}BajAZzRr8Hj%{N*#-)Pl* zW6M--pIhGZw)ec_J-^fXT-laaw&j&=d1YIs?CJ4YvVE|h?0osdKL7OY%O8TH<$dej zCMR5+cayD)cgexNJiq6sm+-QnFhH9$?_0#n?$2j4Vj7IlXZDcs1^Vn3_x<8{(we%1 zrrK|x7&Wom-aX4JQ>c#qcab(|7PPNI(`JE&c;=kYXck^qgRiQj|nLJ zDnI$6J&byqefFN{;_AtrRX)GD^=)9h{^$(^VqZ1t_#3-+Ufvd3Wuu#^iKn*z8FZKg zXI_LaG(MOuq%MI&gx$+d%DTZaVy6on*JMe}_!wU3TZE>&1+!fAzh zSQX;b4{;dV`FJ1>ejy2a^uu8V8s1eniLl};fd}i6l^~U~h8`CCQ?U%{It^TQt!@AD z^^Y>ZHBtbZQ;R{Oa{ko~M}(DJn(jA z*?eZqN3wyBzuCvLvA28qdSlGccd-JeX+O>G>4QvW0_zY?Yxwyy-49jxlMueVUrSq6 z@iqRnV|>}^bd`VS9gfV%JD)PfoDLD1bQ8tVq#v~7!(x_=6gyhHsVj!22I3;sOcK<9$ql5%y)`WQ`!zx-8f;<2=B}CY+s_aU6u&3}n;yud|!^)cWZk&^r5r zL&dya8;tJXn6%MVn25A-(NFqC1sr}QDv3xd*D*_|7R6AkPp!`wfMj&fZ=?H0bf3^@ zC%5zRcQidnzE7^U%Ak@KmZr36DT&jDm9%l5Ae?>8w`oMV1;hNo;#oiaHoLhs8OQ#5 zF{?-Oj9*o=2v857YDT)|A*jiGh*OC#jpr7RN__g@+yb@)<--&DR;I+${#)dnT>ZT8 zIx@S(TTk5gTV3mBH7}w;Sj)-~A~m#*%6nPGYCdt0AmrkMXXu-7JncsW9-Bb!#I!#p z@vww`Hn(zuKmIj*$93$@X6a~R_OWSdK%iJy4X2_&Nj0B~9T~cYrJBVYUR18hqfGbt4arJe@)I6wCb$e;UKeM(G9a?wU1cPANifa7wcuFJ? z+`X+$U@c2;xM5tIRPJDB0o-gM9CW$h`QXv})^h1|5S!c&v3%H@vIIihC2)mXt?iv^ zA5=q?b^6x4xYEzvy4J#ZH?J=}3%57l(=q7LNW(!+*vn9Q4JXs{WsNQGd3({A8GNGm ziQYF%j`x*vzsk42i}Sr9ERRj;mRRQE-TR+D{9J8waBJ*G|K2-3lE5ylHeYu5zNwMN z_gyUKHdn^g8(!Hzf^k0vxC1sP9OFjIY7zco`xf4(FXkgJ?kf=*9eZV_C{1wiy54Jt z^#}0gvbVNCX??;2q@^FB0}=LE==9#WpIpz!ecC(JM{N!z#`oEjW1Gt|XItaFvo;e~ z-t&olKHNLF_;P-BsP7`nv(NBDuT8J7+^$P2c#c`kw>K0!D02sXH5Ym-#PUo?yNgIq zhmdE8c*}TV?!?>((MGwoR1(;EtZ2UHZIog{W21i+6^M=aZcCh}+_m&~TPJ{4O`yt= znj?c7G$Nwg#K@5QA7jIl&R%(IAHJNgK_bY-DEO0tJs~seDL!Y{yqLO(fUsHt8%ITq zuZGzOu96+FXzUF0LR2}-`sUHoFuI2BxA7s^G&-NTd--(W-M>xKx=b^d{YQc8_&3Oa z_w*_ptPSlKRV6Y6k@O!ew?4}~-f*#YO_<+3IX;aqe_fmNaBP?}B`bVBQ_c%fx+$_7 zEK~ZJExHU&FxU^DThF2K})3$l**i8k_h!N}2O%J?UX3YdrS_xE<%ING4Up z#>=}AtW{Z*x?&qn=A@gA8guo;?bXxMoT3R~CKfe$cj_Xoh=Ij`KjdQgI=JTrKD&O9 z7))0BVr4pJ+))FQGMYSSKBdU=$Jh9uAk>-5I`+0ga-$61f&6UO@4-?M*g z!1)0Cyi?y`UX8UfRw3_qT^kse0AUh8W9C%mt))c0)5FsF4ASKr<_r`zRz!G0<;lJJ zK7L#7*WI(z`?jWU`{}&(`SMHdLiN2>dfzU+@08x(mEO1fy8L?lI{flc>E5tax?41N zCSQ_+?kP8m@2oG9?*|94gOdBvljF0)^KX}1Mu)(@)1i+$ zQPUwj?|9EkAG?-JdmxeNVjT8r<>cjWGJC#t1^{IqIaEw8R>+P2=k?_KEFwZdn2 zC(mozA*W}{!UUHINvz*Jkci>|{^8)Swq`3YiQeBLkC9B zL)RsvaH~Dxgq>4#B~94xlZj>~wv#uuZCexDw(Vq+Ol;fsjSJi{xA2{9VF2ErBy`!aL@LiK>neN&5(|zZs>GF29@~cb&>W*P{CC}qy zf6ZU)Kc9EBw6yqiZtp=75Z7bZsOf5e=|W#Md~nZ+M}*G@3-X@8T{fr1Bu zJ8ldsnI8569+n!)W_;<7=f`?G-kiQe?F!8vzIYeXC9K35z4zr=@24$d+?ILT&uSE;(}Q#ZBcDa=cY5*sgoZyw!A z&B}>t>dmT&827U|;W?W#@+TX$oIMO|mSh__YSHxax~mBU)AG^Zmnuxz+lQcQs(il9 z%*9W5K_H!OA^zY&XW?@TnaB9a=J~?Of{iyfn;JYcseP)X9*H(*M(i8QgFu*aYPWVW!BYCUPm6Ca_T>p=lhwVy7Tc>pb;IYh zsZ`5h!vb(Tp=Qd|lvmhm>LlHEu_V=kPoBI}Y~!rXZ#1UVx}mzA++%a$sIh-qO2+WI zb1@+bMd7V-n0;xaVm(^;9maVq@fk7YMQ$mC;e}FZ3+i?!HXsvp)UXkStk#aJ?_O&7 zqVUg`Q}-{M%D|XEL~D+*6LtIVE}=fZ7!||bWjdy;{gX{_lQ%>X1YfX8DDz?L+hme5 zGJ)r(%FtiUx8Ac}8gIq~V@+eP=+WF=Scd^KcvNR45~2|~p3qC&^9P}3E1qppUf#}y zwaiOPMnu*s&90W;(pM0_BxUII{%c-&I4FsvHK~9~S-Qerpsig7&&k&B1Lxk8^tJPx z7Dwa&XGU+kr6rvG@*GuiPtS#n)d+Rh}Tw2@XGBi@}dRIb0OO(CXFP~@Aiow|>=Vn~*pnJF9I}T+a ze0F7)W*XH<`X-~T!Y*uxlD67h*a|D^6jvdjfLcwTMqOj8F?aOvaz&6Kd9_m`CMrQ^ zC)M#ST|c-gS8KQ1!gt8~u9k7U(HWM1*5Q&o;?_?=D}3_TY0Lm7JNg0e_q_3u^hsU8 z2Al@XM}}R==QOgCn&`X}_+MuE^YA!a6HUY*_8-+A@?>VI4Q$jihq-Uw zd0)LyOp_mp7$lP1=P9tXdu3(q=}OVxb|-y(n=;i`snTcIx3%9^D|u3w=Q}bcN*?LV z@$uF(OJ6sNb~JdxPc=XFops&qGhB5Y<$jBdZQf09-Yu29q~!bZw*9`j5^X1x*ov)H zeuRi{w@SKweV0x9eZechBfuR|G`WyypZc0LgCQgPV~lhwHu`z)I{r%Lb|hE&ictDW zAa&E05J4r!CC}J+$vC>oW?13PkCqM%ZWmH`^R4QBDk$T>t*$rI4=2BLB)>Ho_vt6> zP~C&;3~`u6j7OQUA>;zYxAom45uTDyk5}W9SYyUeYIDz0;MKzu#m7gU^<))G3iF0C1`Zj1M`}Gxoq~p40^UUI8WtL7BKhHA?EUR{A9Wd0R6yb>b@r zQed+rJT>9C;$5BmpU-vm68!Yu_#|sRkm}h11bKl_OuzBTlwaE^Ou z$>PrF2qG%_o<2Pp%WEDtqxuFe#>IeYfH#8Moympso8<<5lqa`Hyx|e&$T9MhyoerY z;n_%04{u$-I)uP{rv-gmwggjNKtQJo8_+y}Q z>)02E!yPZ>-|ud#g%QUp&ea2C*Ky|Lr@xAGYXu+Sc zO`ZP{-#*wd>hTZ^kbkFYW0gObOspjpWT?ge#5;jpiD7 zqOSb@8Rf&2Vz4dG!5%O>XaBv5qv&T+E1Ri6%Dmvcjs1IoqZN6*vn91WJMF6EK*GF> zJ)=xo5ni;%JeibqVg9ie^KJ!Ar}SW;R8h=*=qLMhjr-$fNwyj^8N&G4$%Bb!ccF9e zGI48-qC^!?{{W^|5I*XF4kZd3H!e3vE=*rMUqVZ;Hl^?JE*^p{;*ZezsW^FktqvrB zSrRX0?S3)fmlgS#YXsxTn_^-RM_oLRZL8(+{P(f@Ql-d8?hs8I8YJ)n;Gh|-fn`Dh z(SQ5|7WlBK@S3Y4(z@17!TxOCRH^3m@g8cwGT*DjTN3n#bS7U>A4Eo<-Vj>DV7%;Z zOd%{!l(J9w_-cD|KbCBuHpGh7vxehd#=-(J4GCC_`QDY6XDBF@lP0%o{oykyRw9!- zTTCynIJJC*&YzH^`qNEKtQ4D*)4}*ZZK&t}HiMQUP?|J!+317^i3G9?#bDJuUWzAig?Ro+0hB0oK+6>DFK@c7g{r7px}D>Dh0 z*ivfAXX{!vc|6MzdN&}B>{2uAO=!;m7*231J?w?Gr$cXPj4aQX7)rNC1|%;WGb3{3 zW)in?Ea~$yEax&aJ-8-t9JXh&c_qq;mAmG8sR%1);nDc8QK04U&BDF{?&9HNBMJl$i{@4Am@#* z99enpvo7^UH|x{^b~>Xwxkklpr3x8fwziUPKk!rCJM6r70EP|(>~m;8mR%3Pv*5#1bn9+W4S+_(8AhNBrOr_)vS}tsjr+E zd&z)#bl_I)-_TjAeJfy3$MfMaFM*gCK1?w|ie7&3-+y@;rmD9aE``6sr6wj|^p(A8 zxOAjdO-x^nHgq%!C{El2tJzn=l#lfC(Fh?35K1(8B_Y5Dz1#Z8`Wm>p_zqCj2{?qj zb`XY=)=DWO(iL$;KTxgZ4y*JuxE%dxAL2yv zIyp(uk+1^Yr|2HlW$4_u_pMsAt;m%6Cw%6f!axG}h%~LwTpCDwzdabk+2I}|}TAKElasJkTvZ=57 z(&CcK-r9Rfs$F!I%uHTjU-{8k=1zPk1t<1yoVO zQydCVgR|kiVwQm^F^b->XcydeH1mm8_;>~4!3c$=DeQ2QUZNAq?x5hN9ssmoJIj8O zoN|e>l_FwIUyVbp75U)JQvBQmR^PY&d-AwVxi9xF`O_4X=x8zir_AH85QB8QtIWpa zQx~C|w>ho2DnCosCuU%IMLn;Lz;f2$!MZFOcE9X%-E(T0|g zMn_<<-pL!mP^Dws!?sae_!Y}pglP=L=b)kCl(La|K9@ZX2O(0lqUYwleuAP*@dX<% z^zX;qf|F@l62M5Oyw*X|8(HgUqBmo-z#yKSVQJ!U810~M3?VMY4?~6_uh1cdFn)eF z>T~7{95IGrXk_bny$qF(X8eT2+_lSV>PG!UcIOjwTfOimeeI*^T~EPS9v$so>>#NG zcB#U%*t7>NateYJF0PQ*K+=8bx>Fp7LLgL(ip4zLIwLq@3Kf5R>KPi!Me{h2w<>Uf zriV_MRHY$P^OLHN^XAPzVeVm6gj-rK_`VE#$X5Z5nfR` z^P!pS-Oj(~)*$A=5We14G)v^6k5DYKd$ZXlADl+JAL4t~jZ7VY%E_i0u735eW zJMAij%7K_+!FWfSP8ueljin81h6huqu0jv8QV*@_p(d&s@mHY2Y%v39O1Jk2{Z!?Q zuZ?MX6@D(?@_GLT1Zv(QC`^>tN6PQ&bWYG8>SwLL-9`%yy+EZi_R_LQ zTvy!+Y9?zp13`FPad*n8gSGt=El&L|!5 z$R=!pLvK+Jt=^S0Zq2XGZ|s#4n4mgrmmlvo3E|nUgGEZ+4zQ7TaZX9m|KUL-d00(n z`N!ZUV8u_xY7#fZTAR?SyWorkvK*CiD~UpHPF2%456sT`;3y_z8#@n6jef|I-Qcc_ zYvmC^Gf?t^MapJFV8Q7KVQ<*nD;OZj(0=PJ<%3Q($Py7M2IF7bf)S<-m=FPYPtB+| zK^YwN0u*mDwbDF{=-HgBptArBDGdC|mF>lP$lD9ujj4*Bv0+zJEzJqdDk^73v zZpLM&ViXXOcI59?HJQh}u`p?6Emr7*vQ+_iZo->^OB=))!3a(jjaF^XA{dG_@@HiL z6h0i65M0cY{}RcSXKaDk_9()j@~hgsLXijCXk;pZJ;8%U=#Oh*)3^R88}B@!tWtIb ztzH*u1AwhLrT4)D#yRWR$#2=uQAQ_!?;zC+xb(Y$S{=HRX}(|8RK9yE%17E>S{?F<*t!e9p&vou z!V!ByucGZF+o;`&X3mV0Oy3^r9{G4FfYG*kUKDK9{MZiuv(bXuPaTEo9?bdd~8F=6UIfa#(Mmw6qUmbBj%sQ zUT?_Q@ejrBdQr8Yae4i0);}@peOBm<*-ltp{tF6Po*!HzC&p^y2lyqZ!Pt`F;L@4U zHvXuS2|!|Kkqj5b6{2C(%8~i>*TQOSFgtx=`)v%xwy-jSdF>F_X~So{p&Yj;=8lm^X$y8PzlgD8 zL!v~BAjaD)_^Uq~^iz-pKNOKtTZ1y`9*&}1x+r?wz_5~Af`32XyDem^5|nHe^Pc|4 z#$eW)grT)@xjgTXG)a|eaH(-=@!R$8dS3DCWZ~>NTNVXHy%c0KWEl&>MOEvj-u9Kzea85Y+s!xnIjU{D=D+hiBs=SpKH#u*#WX|AcjtQvC~js(?COPH}DK`%vk z4NT_~!pwOBj|_b(fDl6oWN@W9mKm2s{t~dRG6d$nuoS*jF$1qDu99)w(o7Yn9I96n zzER(C;*L2fhD&cdyg94aY`rWO7z{V7X&$Lvq9~mC;H6K$IS}Ihz;>SoYgj0FLvi(x zfVxu0>de8ufr}K*H{Uw1u`l7bYesbp{dWo{r!p19Fkm5UK5l{Pj?B+P%YAITfAu~+ z@PL^HwA12Fuxk738vj*te)s$-=d}na>|sh`*Zt11y;EMwGrQrIo9rN+v;GdNN=l&Y zNuurPVf{_~()atE!uiyl?5(ftTMk?v^Q}#O)BB#eYBfH7Eq^d3uRaRJKeqp~V8b1* z#xD=X9e&ZnyW+^`9ToZ@xqlrDKx?@ar?xixyv)y$IYxDSio07mdBj6WOM$qnYMisf z<2m3xgG5TEk=edI_(hv66@>#Ev{`KXHaX-So15ktv7nnN4@RAvt`8GO>8zt1^x6sO zoOvF?)>_XV<$Tze5P&Wj>tF72X>e`&{8JAFPM5Go9XwAL!yr`(hnarc(b^_ZKm27AH4~rz25wg>8n<|@+_Wa$8X;I!2<ZB^UF5_u zD+93@9f$1AJbjKx2Q}TlD2bVO+P-;((lJ|X_y5Hb|FF2EOy=o@*HZSg;}YVHyK`zN zR%BuR3gZ#FYpott;zWe;Fs8v93XG@GPmij^=r_9b8{wq8Up-w)SWo;mi*vfd-@*nj$jQ}K|?53I`2R-CpPFPb> zS08w&p$<0p`NGolr;MIAif2J@SVn{rJ_jI0twN(zz^&Q}fpqE7e5d}ShyZQXVUjTx z<_m7dsZ`G%L~={l%Vk2t2@~3zr4*gv_$v?~zL~cM8PMG?DNb=- z%H86=a9>tFO?2rnodhmS8D*GZ{z@-fHdR|0SE`)y$!q<@JMs5-a-^YC>W1#G|GQ)ECO^b8B@o$4jwvCH0D zx@d)uS*zP)=dzoR@t$yuy=bM2S!>waJZN>lXr;h=8i?_Z-P?3N?G$guD%-SndnZBt z8i~>8xH)rs4-Ma{+vAXXFTwv>84zgRYmt4&cxd6a+~XqNdcrE5uWl@YJ@EAA2?Nc< zbHg4OK1xtBVBpEmxAM@?X-qHnat9yYtsc$#WGtHDzwEXK!pv^p_oU-;Z{TbR=VU{C z=5YJW-=#dzhIv`rr6j#+46pjc_-xpAOXp999_^4Gco3;tPV6Pjjf9RUehA{1(Gesj z67H$C@9wS~P0a`UthKm=JaF8DbGLLey`^ZU^2++QP#tM=@away3HR=@B!5WyEg!fm z`w@;`CB9>WKEw;z7&l#%bA8M5}Q9`u~2- ztf5>SWYM-VY!mOViQ-Cf&qKZUSuch(4R6WEwWY(TyFjU`feL8GS;MVhmU;n&oH=&A zW>panEWYO@M4uxPN?G@bYz+8V-tY$*5@*dX6{!DpAi$TL-0&>!xd;6VczeF@!BO@q z&%HbsIm_q(CxSDs+=|w({kK*1&tC@_sEYhmM69iY2Zcs3g1DvbcKZl5#q>>InYKQ#l6_6oxas-6**#3Sr_1SiVaOc} zjC&-LX|g8OQotz^GU}-4`yFmcP%p7uS@GLyJW0y}f66NXqN%nD9MLwF0P*(u3}N!z zs;+?;$8I+r&eJIZ!!}7X)Cir6_+)^_wOFBw(hhDTxZ|rpO31m5oEj2d1C~_J8eWBE?Ew5noMIC%j27goNj z5EZHuH+6cLMfiJl__+BYC!{L}aSCK$0WsayWy3Dwic_$WWVj;ZovW07ZelkRg|D;x z>mJvMw)5OpcH(Cdb@r9DZ0U`+qtC6=AG6IissZb!gTAVFEj!(LUW_SbM`(L&uc4P_ zeETsK)&$*>7#3y=N!Hafm@V7&pI5O?oDykc#{^N2@0fcvUj<#je)fgskG)wYY(IAQ z;vzwC-=r7#Zg87MSt1c5sX!`?c^v7-h`6eQe-kPF71G+d@y$#mw$9?9y#&@bp9BRG z0;KH9(`aK(jcfuJtq1nD19N)BPr}{qVZ4+kBPWQe3%`R25cWewOzY(9kBSZ_&XE2leth`T&em2lnb>6~j~= z@go_`4fa17xhT9D5@E(aNk_eImAnhzEbqhr;_Pb~R0M~X%|`#;WLA*SgrqD>P4!1X zzVIko*j)JsIA+`qffcO>yOLwZC-O;=wTzB=^Hnj>GnzIODe5HO?;PD?S-S`@>yAV#- z$(%uttM4iZ#>&2>+ka;Lrj{_l2i&rLqn}5Cl{4C&QUT3jn3wF#aZd{G zA;=~x1R`Q&D0TMOa+I$c2eHjz@nJql--a}S)YV|ir}-RlSl#3 z*+eJt@`9&H#*oYkEqI?C?%Xkp+4<~kw{8GTLJ!B+W(yXS+{u`^$Xrbn;%&=TewvhbD(W#=Px@G{#S_axKcx{(Lg%B~7hO^dA&P$^;p$c0=+l(LU=j~uR^Oq`FAe7iJlwoy!Xiulx5VDu}eju z)HK%)c$&VxFptYL?hk?X{Ky-ONh=N69xe5TCVFa8A?7uR9ZL3RAr01sqT8zyk#r$b z{MGu+K0ldgiuRY?un{(wwlt@-ZE%SFg{b;y#;t$bqlck#sLT8|*Mzt8n-UokjNC}G z)X#c?{xhc>@3}A8Q?$0P)faEOzRH#Vva;fvbGOLkY`b&`Xc-bY&7{Ry_uBkVmL*-U z%)b_&x_kPS?}L=oco1AG&`5J9ky}X~=2O11+aGZLG_(*8Dq$=zUDJo$!^2&SODA48 zgA#-HP9YmBF0i#*owi_LcG9`8zjI(V5WzB1hv1)Lb6obI8gr(7YP;1hJVAQmBdEBr z)%H(Z7ZM({uCbMn8UBE-_9ftXFWhuO0RE@xJCGO)Pycm*PSHYv}j z5EJW52+5wns!iIN6+O8sCgYV$8DvH0Zsjlg$- z8|8#KNgxK1U&l644b#+Isg-Kw^S%V88xBS+X|3<6TOhCogg0B4X^Dp?N=4xvQI2@&YB+9KGp&MjJbN3`8ys{)=~`jC zc6M_)?Z;qGwZapS^vvp83$0d{nMp6!>Q#mPRfHPHm_UUaGMfzQ&k&6kTi>`|QkCCt z6&%)6>#Qtll{m7(pG!pNS4CK!j+sN00Bac&kQF6cFPn)WaTX<~$C_m&mqikS4zT7q z@MJ_oQ?xI7nxe$!Z#;7;$-7{U!b}aZD2!46a4wO9gs-rb+C2;QTubYQI%laNb9Ijs*VF-^ey2Ru|spZg_zzqdWkT4yj=g4Y9O&O7<5eMe~4!9RJoDdl*l4@|i$5s6ghiglYWkzI?mxlUlH3 zX%r?quj|WRZcWWpAe`9$C;%XFk1cfuok%_Ang&YSy!m#{s%lY-9!9PESsE^CjzUqZ z=;BuLS6HSLi&R$WsNQm;7%8-J$T=XTQPowSd4C12ynrVa+l1__|74|WaW-H*!utkX z3rwZj&Q6;XyL(%nh8g9=(;6M$q`h>Rram$Ri%ru1)t{O@E3PX8R|Bu~Dt#$fWIQzj z%d$h|f}r$ zoCx&mM(ZKE&0E;aiG@-hRNj5|dFYsM))aowPZV7>SUV22zC3&>JY7Q$4!!f|x`*O1 znnBLlqvbhvJDzs$V?A2zts0kFFYZgLEHN7MB2j~CTjm3kS@H2PCY|_A9*gsruwfp# zVPHrD+ZA5LLboGXP&DlrI6m!fcr{=n-%*7}_{@uG0C#q*N~)KwV1_1VE1Gp1b?w~4 zilK442L%QEMqp5TgUqAI%EwuYr>wh2y(FWVl=c)h^kN+zl;quhw5 z8zQ||f7(?Q?T7cnW?AZ7+5VV>&Gs+lI9)6p`$(5}#pdfIr#((&0XgK3eo!#O{z-KQ&rDsG+Xti3zek& z?!nOV@Iceo^Z$62rR)0C)8vsjo8K3iXt=-F=GiaO@O5*jwk{x)9X|1PV+hs87fK_B zio8(@h^m5Qo-J7ATW6<#jNjCcCcVJ%JbEf0h|P3XgP8qju%}>{Hw!E^x0VjFK{ddI zRda&L%1n0H&0=4=j~P0C#0{ydcG_v)jkC5bs`+I-QGx77coPYzYBOJo6)t`&5Pz_S zy@FXc&K()euRTub_tzV*btQrVNW%ZZ#rXf&XcwYeN7EAA4;B7fMydYKd{Q$<^<<9z7UmlXNW$kre z-exf{Tc@MmA)*J^`{prBc#%?(UHTPp&Bpm``d=yb0wLba%fkJkcT#6Fo76k_OU%yq z;9BRa2=VYZqU3zve7bFti=!9h$VWmbP+w>}@@wR(nzMT<*z9s4VaZ zUA2Z`ylMq`NBuczTD#WlSrXH z@s@+TpYZD?oHge)UA79~H2`4+#B>OPDpPf;Ber5(4nFqDNBX1~u^~1Zseg0?HZ-+J z)2OUTQ1{SasER@VoxarYa|^poz5;(^ml&5T%%cF&S}!PYm(tBC&=gV8=!O86qI~Em z2uBf8d?unfu&bWcpgQls*K)bmgloC@cQ-iKaOvliIX)ki(qp~fuA6m@8VN!J#Cx{r zL1D*(zdCjSV`|n%zY)`%U@4chYla}QHYuwH&Me4jbAWUj4YS0?_N0at&sE-(o;suE zt}o?c^k(QlK*a*@ms+Ou_$pY?y*OvO*)CdR&phpYCDq!0f^2!Sa+bhryQt4!KOEg4 z+3FtQ6Oe!9*{m{0Y15149(Q8j8Et~L8yg$oY|>67e~EzR@dUa?q?b+W)`m}oEv84v z$yll9Ssvv+D`MF%Z9U;fp3%aIz$R9--v;7Kx%n@$vfLs%Uq1?|`5Ui^JCHqn1liM% zW@!yBll1V+$gaJJ_bPHi2ch^dmqtps`h>kQaj3?Xj7B}0qmaE&YEodd)V#GrZW3GA z!CYw7amR$$jdbvU~ze(eltlD<$F*Jv?IU*XA3V%fa`uNREh+C`n zuJ4D6AFD!*MT}DR?pl+DN7+VVWccJFGcU(Qn#uBPHCOLvmL1CXkV<-6I%4JYbe#7s zIZ)_LizkwV$<1PO3X*xn++XA5V;Vr}EA7B~ZC2PCS06Y4Jujh(f2_fy8%+<~x_qPJ z7v=Fe;gkhWzo22Ym-$y~dzG5=Q{F0AT;cZiV6U(P4-BDd|70!Cc~|4yle@dZ+I4!m zDPGeP&o@H^UiUq0aVwCO)9n0GK%Y{M6aRQ~At^f; zIsF&wWzBjX^LisU-p|Kaw~X2`plX621~r8BkNHgjFTWX+nGLnO{)$JnzH)q4dx_O1 zWr5+Ttg|h5XqY-JP~Tm~?tx5ZfU&lx(J=PZ?_=+PenB<&*we)$AFkH27TOW-r}k6U4=5H)N}iR(r9ha;A2-cw1c<6zO<7C?HsS8 z{%>7Y{`0qiK|(wxc0$v{c*tZ$Y(=v#^@%VH^Pt_UMDZ#?ew-{B$@{fJa^>1kj+!B9 z#fMej3)<}VToTq|YeOKxAacRm@MYQYd=|FwG3;Ob%3KOat#d>z^pQtAa4O8AV_vZ} z_%0-!KV^uAhN>`5Z2pP|^QxZlt^!vWWtTklvelK4EcTOg&W(m@?fs+w_QRsk#O?8l zNs#*(-_aMk(Fh~MS0Aae z-;6EZRIiA=Jd)*!TRwPQny2QQ$%Va6NR~0G7xHLJIi6%sJZq}8m%sxE`B9h0<~xWY z?9r#giL(vYg~35*F{l$P+iz-s?sjE?o6PHw`sZj>$1<@eV)@d2QReTH_RxBe?a?ks z(LG~ewVL`0?378mkXN6!o%lt?I3D1lx1jTKbK1z6eRsu*FA9B>V^zL_LxGbC^;uvnTZn7Q3m|jc# zRaKnndB#&KlHX0SF}#2$T|YW(MYh#ET>i>agKr(wNMTQad0_pra9CY3?vOT0#CZXiIfmdmN?g6!)SWe+<@hv1YSSi{ zO%lh^MH*uf9vHz6zj8NiH;S5}ftj*=>rG^hpt3Vj@Lrpc?&1o8QTGz*7Jb8F5wt?_ z3xi2xg4==ji51?gJJRGonydU@N24NH=!6W&h-awrhBqz9h5wjby2$STqtn0SbTm;a za{nhMr*oS8>;rk`p{YJeCo($meS~X{HF;~$gvI(I8XA8uaa4ZsRfWOSE4dfUu))=K z8;5l|kn**8shE4z=-NpI^r!kMi}X5gR-3PaT<5Ou`&m@Wt0uFQrS(SF-Kkft&iocq z8q-CPHYQ3q`e`z3qIMzx7~a^}4qj@ivD zR8@RcPzk-4Zf#>uLYhi2mK#{Gi)yCyC|OVtQB~arWsVuy2rkstS{~`N=ihSt2~%0+ zm>ms&Z+M-m(iffZC_r&KIa^XCCioGwvmR}nF;07b zezIYzljpkC)c)Q#>uEpSayvqob`-i$1jpnK_(i^_Aty&FQ(~MR(j7I|_0t`!Ms7y+ zM-HSN9wB-iIaGog0HP*zvm~tYT0mK#nXdLQ?6c8f!8@rXo9^Ze{RS8PCiC03NweER zy}MQY&tD1oOHYg!+lV33Uj-SM)5xU0DR74V(Wp23|LqiK1#rLb{Qq}_N9aZv+y=?_ zmQtXhC{}7^(ofif#(7PJVu&%P_`kx?BtI4hl-${M{z~PGN*) zip=B?n-E8G4xwyC+g%jjOkltIRh?MPuGo*6Jz{U;!LaYF{>g&O*gb`;t~C!S2GHbx zV}A$!t{_B_Lq@o1BTPh_IM-GMyLThPkjZU+{0Cy zbvOx~X70NWZBjBwgcBDb0`ost@#ENWkkNDt^4PRF<{kl!!(JDdDpU3rKkbjaO~q-g zWvy74=%m>=cF_tR4xGh7XI=m;7>ds$1@|bam9r5B&UCZViQVE-JmyBkBd}VG{V>8 ziEoxFa2wRs%5EE8bghJ+@lW&RtXld^ zfnNfnaxt-RTR(Bac&Zt^{^S*f1kJilk&?x?1(}y)wac#QEE`L!H+{ z+D(**GDKKiMD#6?*_h0EKCBuAd3(KA>${6S$EeJJ^S31sD*0#?b6I+M2Y#m8cqXq4 z=8dlnyn}!u^{I*tUmN~!&eDgdc#O>nR2!x9wS)=7SdW?Ww0?iB=m-V<7R@C&K$B|LqyS<8w10Pe2DW_yHUR8LTiMNI1c zcBoX+y;NnN`Fu=`JD;+`lU0z_e}wbVx6<3y?1mVa3>;-|;w+4R_Lwmepa%N-{xsl%EL(_|UZ)jmj$_su-yoz=K0qoMbi?)3rh!u4=I zyOF+`T&K5&`vC$_igfh5ERl~55F1j%rdHE0`yJnCN=IN z){jA*8)ApCw`}b{v(nXHFLkFWL%`mdH|@LSe!jDYjsLAsvmUg&bC!d!toLX4^Nx+V zl%`|+W#5Fb+OUbzlqP~MSS^}^?|_Rp(<1Y59cimyHreJ#n~ohQ+@$)NkS6hWqSe9F zrEk=B`{9*#mFuD{%;eu{E?W~_Q|nRUFC(1V@WK}#bM3j>mVftD_1ai*wE2s%Z3x&D zvM;Hi)B!)k;pXIQVJ2xMwJjK`JBNn5l`Vm&P``9vs-+|1`Q zd-rm6B4 zKtF?NH8J|E@@D|2TTENy)-G&JoocTb9c;1&nK@xiYmyJJdpwO7x>Q?+$lAt%#ka|* z9@1a;HeOTA;WC!Rbl8ep4G*B^=q5bd_5R%-SUCz~7P$Z@$qB7{u-`{YsSI^%aF5@K z!ZI^ugcg`5Ou8plcu2ijK)Ts35yBnL=w=z8zlB+dhmjTV)i=OFlt~?Z~_WX!F zd|yw6sy{u}Ri6a8^$@O{KS0jm8WGj@hCrAjn_!tyepiP4#=1P(UlJ#bQ+U4WM?NV6 z3|H*1N#;^pw$vL57Js3OqJOUKCsb4Lc*A%(h(OEN0a01qX6PR7@(k|N4H@QXNAn1O zcYl(=D$XN1+z6@1tntos^Y~X`ggQL`Y<`ya^&64L zw{i5jHs0`u16%(ze*+@OFgi(MT26Z!q)au7#*WZGNSL^p7+U6s$)1&S$60^0*dnd8 zWjV*3tS46V(&+2A`BveNVa)!TfYaQ8`b1nd)<@ZwxEUv?Tz)~U+;nXO6v zhbEEk%M`D_^2i@JMw$CaOG3tSUZL?gkpiuZZk5B63eZRbn#t}h>R>h58p~)_Ey)d+ zY<~s}6PoLfA8-(Bq-?MPc55ox-#SDGl6rnYW$Q(i^0D>+L$TgxK{&Sz9d+1YNAa8O z+3y;Top;E^U?KN~czQi9rnzA;tS|Rt&N0ytIV~{?3IRD@fdnICj!6*HS}l!^@`e?h zuOAtzdU5N)1l68be|6o6@-C4VcoH$*V{)H8z)%&U(z!1%#Nl(&X!q_)2*ONH*wmMh z!_zZnzlQ z#qqPCi~nm?Tu*ZK{m0JcleL@mEf??n8F4)kZl0=VGme3ZiWXoknn`UL(McO(4M}HD zbB^s(8RdW5bP{K+Ha>2i^wvwY;xRqxHl2OtiM1!wf9`%*(f0~%l&2~%x()Dk#@&}? zK5&ScD4d@S@?;f@Y-o#`cSz2ok}&^DO&F+AVb2kZ1YMiBM^`_pAFQIlYot=8?31*b zTIA!p&tFil+8ExSI=in&G6Q7FAK>`drR4TjE zI>6qWNIHySAqM_fmKBy6_IR$2xR)c(qXj3OmB>E+sZ>9du9^hhGEizXUP#~{FB~yp z6`M^nX&yFdW2W!wqciKb4k|~HG7A&WI<4r!y@f6$T+Po?Mdq5x!3|MHtV?f;`YoCB zZS2iT96{bX6HF6+&vTvzM)Yo$G6Sl9O=|!U^RLT(jv;MCc41Dppt8fz>aaHM7k&dT zWuS_hz_X-0^x(my^;#(ly20cbZRV&2yj%0E&JxVZ|ztQ0IQ4xXDt6jk+LO-i0 zAD((l-n*>O1gA0athYo_g6Edb;(`f10nft9iSzs)i)z}~5>e+Hs0bGXAWax9eb_?g zaSa$KNct;gWA=BehYA>~rULDEI$@n#AKEpZ=Z8@T$#3&4x#>5{|86ZlJdn`G0vS{= zjgLts=%ek3ojDt9-+!(Ca2g{$QU;n_DR=YZgJg;zF3~U4KA7YIW7Pf-I%rd61v4=a|~CXiPIp(zFthnv$CGD)n>^ z$g)TSZ)B`|`^hs>oZH(>8&b(8kgS2FpN^#)K|aavAKq>2dj$?P zxqVz)?vZp?JWkGvfc2^=T$kP9gjsunOgDx*7+nCBsCNp;9zObz=d*Tos1vV9avayZ za6FbWL{qZ`I?KZm16}MY!|7J~{0V1poqB6&t(f z2|-NAI8X=}9G3jOAhV~Jze$d%F-IbN9aFZCdK^C5L9TI&G)Hxk{T~2^KzYBl)#>&5 z@zUfI7r&a#p_pdwd90x7x(+J{mGwEC)lWgfJFzvSC2L>Y5SSk1_6$)lI~16atzO~;V>DU)pG51 z92Sf3FmBE2s%ekEJs;l2iT?Io_I$!o6?=2VK3fz?xAb`ApqVSM>YN87J~Rh!o0iw! zB6!Qw9Cb|#=Xj}cTEb49-Hy4moh75&Rx-K;e~Wk~)+(WKttwxRfLop~*j!%DBD8F+ zBJZL!?V{~=v|)>K=Q?j0eLkm-$Zb$k&yGu0I@%Lgq&)vZGSoALq|Lm+Sz`Gxe67vv zI6e%@<~p>4e8;-D_%3a;Y-L$xEF%kLF}Y;NKz8}8spZc)RhjN`)~ULiC^(W;``OC- zK`WX>w`W%x98QfpTtd>9;!mwODq885;LWr6I z7q7G(gaR+i_O)jgC7v*~|6r|Ff!{@VBs3K?8tpkgAeWxhu6+87c01UIy$Ej>0%{*& zxndub%uzKz=fR<^SiB*(;d3}~fpXeTeuaY!5^`}L9$E^Ys2Uf*we`lH+_AXw@qVd% zyu)VIp2y4htc7o3Lw1_*spF4odcVg~UK}@263aKZrI3yzX(#8?cbYFqkZTqUeEG2C z8-;ozeUhsuPq(~-%{g=Gq<-3Ns!26tAM12JBJUq%YkB5`ngc5^bLKs+f2WQGTxiiC zi~}d(G>t5e@{3@+0uFWD(l3TJXSTOJv%NCKsLd>|IUgs~JG3?=Yi%Yia@6d+JZ^nZ zInK<;!fj}FIXj(KGv^9vACqUJ+2u4}v>L(T{t@~!%h5;%uL?u$YK%<7gk-)~-Mv$n ztwe)VUqham-|y_h$Dh|K&j2)Dc|76&mCc~nO=8qU~U-k~eGe#YnT7jOlaH@WE{g|m6dU1n?)7pEq zw$pgDwuYwo;Q7hghJIdKTbE~*4|n~c{&-;F0;DNZWSS%g#f z?8T3$Z@k`;3fl9-!SGN*ry1-*r;sX3^&FM8mEU&?aN>y_bph4d-ZmEGuTs{8p9m$e zT)7w8B+9&XFMFcB?(^{Vlh%v%VE=}*`;WO0L1YE|qx&%@P# z7SnKy)dh{MUx>E|Nfa3#WmWk($9#07ar`XjlOUf*pT)z$S(JmlGW4=(;&z!Hyq0Q( z#vp~CX(2uv+utk2Q*r|(KE+x`R-YE*3g&TFi^J4MR6<@M78~y1?cMf(ay7vG-+LmcPtX5 zTu(^X5k?R&!uVD^h!*bIMc=lGUNH#57^D~ROfz>+kctt?uCX8$W6w>4hhXf;$0-cA ztlT255*T#AylnbmUKtg-j?lY#oT+glpAMFxH7J&koPJtCgu!doXXdI5#?GG{h;J-u zwW2LfW%^F>22`e6`QD_+GTt%rJ5T8vz!^V^GF(qM^WD4g94t{?WFpE2o!PHcbEL)( zXY@Z%FSS|aAa!Gv1H||&*poSBofPYYyPBUfhlpuHQsLHzM?~Bp3u|OI?@)&haO3fr z+7@gd9@vQv$|>GgbDuLmG{lYvcqk3?piHLWZ*H4&x;fX2LHQe$N;;4Hp^<0G!HIga zhP2eQmvU!0`yeOlyK{iD4Ad_6p_WG=Z*7QEVpdVJ&X63>)(GsrL>h4oM z>bn>Ic#;OjvP?H-FZbxw9w-#tM&Nh<7U5w)=dG4=Pl&i9n; za@8kM4mOR>vF>T{9_0|`Ix5HF6)E2EguQeEYdL|_^Hos2UEF`wcxl_n$~bw*thpcR!xqG8-GEO;RshKnXc^wRDIZ7$MTwqs z?w7Tw6srKLaolQ}y;l3JQRVR*cuEo<%TR}>Og!RMH$Rn}6OdJM07&kr-K-WzQ|pSq z6IdoA#c@edVsgga2(^UgqkK7NHQT2Lotl}qFuheb1uV6>D#DvjjeRUJZ&YH(kveKY zV}=#^#8r!6jQdc=IbJhLF%MP?aywSu8FGE4@Cyn0ROGETet3sGZz8Z`=FiUY0UWRn z>qn=%^#;0jYz6x}m7Tz2yukcsUNA->>Yj|RQC^f0RBqncb|T8>TRGyh?fpV$)KSoe zX(JRJ6MBzmKQ57G_B(V)MjLb_Fbq9q=`!gwaKiZ@+UP=5 zRiT!*VeIIX-7Dz-V_B6Tv;277BWY;n2$j%@XO^6HnY{tBO=6qmwdA77kgJ~^@D8X@X` zqr3NTbW1v>R4;MySnvsu|Bj+sO5cAD}}Sn za5|t1t>q#Ko&94v7vg$D!`O5hylXxd&y$?_aoay` zbPkp^=SQRpQ6d%ha@(E*ZQf|#1)C!K(Vgw-4N}WyFX=&|cx(#dc}PO z-S~H-_^NB^CFlHT7=0Qsh*r%va@K?B`H8PW8-itfEj?z{kIr6EHV5y+Y9>y zg84x#g2I_w)yw)?{!X%Mt5wvzcLu1i#`4NI0*Y^8$2%qoazyo9I7jw5k9WE52U-sl zX&d)UrKsO`xK!7MmmTMPr$pIbryVq{HcU5jIsu355! z@XUdA?FgBE!Zf_vEW>@S-A!woq0M1Q+nBL!HP}*R`M%b^Zm6J|tqP_I!!0IFrT`t?-X1}8*hRLpW=k%F}eo2G< z^)~7+==77;et<4SgU&0v7!%)e<2%h(rz``OT?YT*X}uKQ#Jd?z(rDTnt6$wE>Roq( zQpB*o)i`MefZ~FqV~nMD{{XL_N1~Y8Ri$~*F9#jfFVsit`~vyO-!A;F%kPH#Zp!at z`Q4J=cjfnqS^uwEr$>H#KEhKf*>JP;%oHA)7=Fh={TXd5hBX-!?G}*lLM;=;>_(wg z4YfZl!D)jqL!C9B#2pg&XtA^joCRz@Hby_g-3iH(dID>Y6eBUC6i%?|^o(WU;2BFq z^F&yvX~R-#vH5iQx~7~*+ovz1h+W(DDs`81@=W}mHr18?qU>pa6X*iavD9G3C%Yg_ zFKi%3uCt9A5(a61j zOOdSa4$-I|Y?VmeLB)fCxu?zTsYZr_WD_AL?R)|6JZXVeE5Q5aGX~lo5o0V3Ns=yI z1gbG@9vvSxS&9Y8Dj8aL>e*H%>@80z)DoqMmJT|vEaR9qbtbfPZ{>YnQB2g@b=0PS zt+}YVm3&REi3nxYPBxs#eRr*M*=olnzM_HkC$3PxkPp~Wh{v|M(+#=IgAuvu)P1TWUPo`5?@oeY{ENW%*qUF>CxUark( zFToY2RF#Ft1NZx`4{AU8OCeSPGPQ7#5 zmidjQQebQ71!uQel+wPWF38m;rRJ|$W+n4iApm2J?<`V#=dw%xoAQLh&-KAlT9^*H z&s~dj<#Sz^4->-DQFJPulc!d@p?`mA^1z<^g&UUK+$XLD?eDUr7RXebhjs}y^KD@e z+V@`2g8}b&raxw_QAHgfJq@^O1^R{cuKGqCS_UV(i2TFG!3Q}z-6GqkY`GHH`6M2H z(Us$|VC96U%FD?~R)2Uqw~uKaSv;CdGhF???=8a$FTu|et0BjqxJ=W=& z#G@{{#NzvRc8ghZ=H98F9NM?>UR7Pv?%-0+*M+npq?P6s_G`D-r4Ii>YTGmP`@;-& z?OqE3m0%Q^>#hge8z%_q4L)jo{V;gg$3 zTS1tjSN5=b5y)YQaB~a?46yCB9>L}(6_U25{~5S?`^EDTY6&ZRAQH_>kAcFnS`_# z4r3re&=Wi!BK;oP_UlD>l!i0dd3M2vOYP}|_Rn#jk9~kRRZhA`(x*UZT^0iZpnji* z)Y#;+xt5 zz!tUm+*d0vmw(Z@t{1MEBV6G})X{+NykgpVAq@#wIMbm%Xt?q|t~;D+N}z~fm;oq` zD2-plDY5z!T3uZ;l@|96Ij8Zqw@_T@O=B{WrlErItLCD9k_Bo>QBb5c) zf)uUay?N!Ttz^llNN`@7(Ndac#my^^CQ`0M&%^Tp;tZv%5m0BzJiNcud%(0FB9|5V z)^(R~gNjoq!;a&nXHuMaT#HuPVf*mOt4CY@A*#YWV!CqD9j^4!$to(KI_a>88*$Q| z#@R~yI>y_&7fRm~dAjNu@<77=iD%_MIH`LlNj#*zmsyXR!Rl$gt%<@ih}YUU^johy z%|Cvf0(`r!3!^sZ#?jU}N3URHNqKnmTj@SNOt1wJVHe z++e%L*9UCv+wHqY77X>>dtMoDnPA=n7>K9(3eWVBa827$az(u=@#_`w8x`@J74eVr z@v0tZaZK}vtp;2DI0Vv(=0-Lio`siz%>E+GqmsCFuP`Q$*4Ljr@yg@hE02F~y&`_2 zBz}E;vn1|uA#P*+-FM5%#rQ`R@f#KKq`Up0-d_ywJP(_L(>(WlzagMnH_UOBcbJw9 zvDoZcFm~L5a%zSIKCZQq?D5Y!?Z&a+CZC)wr~{-uQ99^b{BS&qyw3I5ldSX3hDEx) z+k<0U{GtarM z2l=H2N|0C=+hu1psxxdoMaV_Ut=ZtP)<<}c5j^r?gst}td7np{*5<*?qi@%Zf9W2h z38Y}MWIS*1&5CsaKeoHu`QzqoA`S-H#foX>;k%k?X_shfSfH0Q+7NeVcis{D9Fe4D>;X} zxA9)_96|&?Q({QF*xgUlMKYGs4mv(ZJLt6W5dOcnv9V?ni6*>Y&dLgMR)|7gIcmt+ z5ZBqF=Rn2xFFT7`<-E!HZ}GFAbB@N7gE>eqe1{&{=PjlxAn{R;M#X3)VL&b_H#VaEMbQF`IX!%c^GO zRHaw)udr{}@2)vu52t*OsMeC~KSbs$=e27V9j4+QmBek7#BG+-a6~U{Z9Lg5qoW}H zaYg)AMf|(v@$aow#6PNtUl&;dB|DHR`m`WVpefhVa;X08NfcfJD&C!r2%{@`lVHuI zkR+~C5@%6ccAP^pc^~ZkTd?_rf8X2U-$&3CypcwL-SHHU8Qv~nA1Wul@!Gfm;JF!} zUtr-tMzruzbEBF4jqwLj-;J)r^ckPycs*DN7+R-9uF35D&UecKsyUTCmB3Kg)SE!nxGel=Zkjw3Up&XojW;T zVfP*aEfj>4crjr38(d^(^MIvs55s=2U^`Wg^Jwu5{dfQy`@==%iGd#VjMx(n|5MJww?GytOW4KoA9nvMUKyg}BTykUO4r5N?zH1pg|WNyuS-8Zg!KYP=h z7aQvvaHfk#ZfTY$2+egm=z%*9m}m z?mBds=S{jVyHn-h?Aka!I%+o?hxOJ6cgpuBdG>b>nw|Z_X6sJ5_Uf&jH_LeurWbG; zi?ciBdYy&m)3^tSA|Aa_&O7CqZp@{+;>p$KL%f%Z7J`i7X%fv}4h%d&x2cn9wg}0C zx$uxrlGa4vT`X81LJG{43l^aaDI@GI0SOu{3_ZUoZsG8-Fz_%Q#aQ)p;T+KB^F_OL z+M6uancd-Jp$g!+Zxk)o7eH4n4BL;-P_k{b$o8!>q!D1+EbgWY=fE4-g@7mV;+@<} zv&A}j5@b_kBP@OnfV_OtUg!hi#bWagPCAPL-t?2IQa<8$G%Vf`)yn}pX3!C_x)EjTb-@t94o8`TlzyFtKo6j?-5?kqX7l~{ipuXN$a?CEK*&_J3nf6l+$3cIj-UR;V>SEsa=ox zrrYZGCO-AYXX$tl zWs!gXWH;D{nk=`E8y^HG^~MLy4ps22P5B~eERr=zdPmMb^7SVD6>=Uf?KmAJvs*$n zj7MZF7FjT!ZX26Z>RIjW3SC`T+`1dE|H}8Ru^j)g19Y@i5NEf@d-sU^$ z<;wf%C8+0?qPwz1vl$(QR(>IZm} zsrwo_zkM7$Yww`USsiUEuA4UUUA}UAfg;^))J~eq z*=5db`!p+I3ZOfhqn01tT!hm!<2%r!ea~B3c`x;sRyOg^6a2GkY%3i(cY+UA*-4doj9HkH;j_3+=q{p}Wq}Q-hB)Y~r8A{#oK*g#PrxKcB$N zCD~r8!{*dq+Uoi6X8?cUs~ZrxHC2zQ8tdKvu0V6?92x;l8BbuLrPlKToONr&c%Izh zM#Fn+jh}ghv*;$j95XdD$E;AF8)w{;61 zMx+84IH%?NXCaA<2$bFf1fT*A1+O?LQmNbz@}YaHpUYv%iJlP8R(hwBpfc>|E#k^^1Q9i z(ZRMKrYTB-YDGXl%y1!VJU+k7^Jo;nJcx&3HcqG_&Sez8j}Ye+ynIpuxrcb|Iq6#F z2X85oxa+GTEEqP%jKU9s_#NXX0vUWL{QFynq7O#$S=7QHNdYXc%;Je*GA0M1MIA1G_^*Ku~? za~B~AfjannAy4a>t$0q-r}vj8N4v{D{(Zp9kTK=1%l#+@FAsLKs^N*<}5+au;_1aOZOQ5SJ}tYl+=X9 zN7B_(NyA_#=1P2=~JY8+b*&bnlt z6errMf0D%Ggj$}2{XQ(wVh0w!Z?&LQ610ImPVhRnrSml2 zl!-xW?9(V2OK;ZRD6gLBTIP<#EX5f`G8QAv;?-GXOV?k-NrrA0%p48VOX?V2QQW0u zCvbfS^_r;bVQyUIGcNo67*=fNPZQV=vH{Whn_`o52naVWSztOztu7O>z|!)D@ePd8 z-b?Z&vVXz`sd37rJgZUwLRD2MEYXg=TnFws$WSBmB6tK|Bu|>%S!RUrG@Y?{%BRY) zQtIQaSa6<4U#EZ zFB>P_sHb0X4B*rR8x6X5AlWk9^VXi+0G+?~1PELEZ`n&V0R5%$!R9Ze+<18Kj+*<= z_qP3Kr_W*68&7H7!?BX&*_UOO;9f?y2RC(}ZTmaiK{!7EwO%3NCTVQL%!b_`PR4-g zv2c=urS)y4o2+n}zl2#;^MrWTM4-ZKz^p~K~u)pFnns!Jp9(m?@-Fn{eyb_O2S{%z4!d7I}lV!tIVZ+oa zUAu#?-BH?0>BaBvJcC^YhD{XVSxOp660ws`+Zw>0>;}(T`#aB@=)&$WXg50t`$r$} zHaHz!j>gx3Z~LT$N$aETQ#;fy=(+`oJ=fk!C`2xnTgm^J|DHR6f!_JsQu^uS;RE4H%4^nSiwN6nXn2e@=) z+(0*M4t${_7A#--dSQ6jI2bQ+u99}_G!O374i|oYJIc$iZbvzMp&fdL21p)mE5?Dv zyVDR0?y-C|ffN2z8imrc+d#^HEyKTAAOBv8!$Zy6T%q-b52U<;#4M8oJaOLIJb+Ul zB0~P2a(P1PPx_>7lZuV{NzneNjkby?=iR_ry*nZE5gsDzfD!_d!NEv+KuHSo zj7NO$0#9s$sIwbozK_rT+=dbJAFT529TW24O(`KdJg+3VcSyg6C4l?`)LEqb5O)!U zNp=>Y77s^5TtDuQH58T`CO}3dCL_d!XQT*Y;^2E|>cEb|IHxRpPvAtMBCw80*C_)| zRf!GHRuZf-VdDV05iP|6?T%YF?tEOQUP6YQD4%|Yc)NVN4SFw4tY?T9ULVElXQEi~ zXnQ^il$`{oVo3#p_&{j!BJR^%hhJRU_)dt&BUFH=b)s#kL%rS<=F zkR452^2a^?gY<=TKsxRt4nx9)=H}8C9&6tn45sSuX5sH+`uk{&e%_;roV&nLC{0CV(ND0C6tNFAsf5w)^;Gg33!c2h^LxR@8U=I5K7f=Z9F|_5;WSmh zPnRZ|07EX2G7t9@>3aiXKMOOirg=>Hq$wPX2%svR_M>nT`xEF1Jo(cL95tq0GLnpY zjm;Az9xLH>WM2VT#Eicw6dk}J>}=Yn?@>dx@r$hE0NI`{4SLHGjD=*3RX_u`aTof zt6A=jM>(WP9X_GvURAIN0sh(Pb1YsQRQh-<7UmV{OXqwQEF>vux99@r*5opywpJ4K zuzSl*7jESAP1Y}*P`=VVSlTNVCSN0y2zq~;`P`!wB)(U0x}&1#==@(`{ywHV2k}P{ z3A_E4I}6c1T0tITpIY}I>o@by7-k$;5r;YrMC5?WE%xZD9W9l}Nk)D(L)x_`fC|tvi&$S?-{DgSLDRJI1{ED>)U7$ zmKQdk^&w8*7>R9(EhK{K)M0tMZ4303d}x7tas!WZoB74$y=4VwBpvGB+RVB>M{X0P zM7ATlmp-0SFc%u@LJlRIdGWm4JVacFrfeG@%&l*!Mjz~fgUgloyJyD#Aw{r&)LR?7 z;vzwDXYK8ZePT!)?43gEHsQ#A5~HMv{~QkwNU649=cmM%>R|`g3q2g5d_PAe;|V|Q zkNB2xY4QQesNg|hYbrQw}x5S3?QDKW2Z@&1n3$S!~l*-AQe1j{4 zju6nid(E@%OmE)wPdSr|)~Yp*Jk|8XMDbiYEibK(pdvx>c(>iiUWfKHrD zry{HfH{|1C5d<>Wg*-Aa`02q0?R#W`pN|*Zij!vRuzu7$>X1Ck{!zWr*?-Z*=hJqx z)jp{=nuYbk#qz<-teslfw;`^Zt+0ag3ZEz3vchRL9@14G1NqFSC6^5`Ui+&H3c8Dk z@xl!d?HOL?p%@Rk2^^1B>FR>S3@36G+~`2n60%4&M&ccomVCj!!QlSF)53Os<&z|j zpPOT%sy%zENuEptm)x;RW66#HA`@Mg+?Sj<+-r+!Wu6yLtbFRgqi-Q{<(8zUigo7q z^pmIiChJbnH3eEblpQdamL<~>4beluv1kg{h~_zPcw+1{EHRy2ISOSVOn(rfMaJP- zJmPsq{G8^8I46*Tr@@|1un*4&=iS$_d{u&{9DI|bT!QjjK-!Z?{HQ0O#C%r;Xpsmk zX@LGOknHLCkn4f|c12$0`x{^*@mwtz_I#iGKz+Ns?p8LInuX2sHp(89_mA`~V|Fso zCc;ChUkcBuYFs^Cd`cM*&}5%!gT@0|SF|HLD!lLe5~bx?mnf zC0suqDZiDKFyt(Up(?8ZS(H)p(xL7Qpiahj{*UCx_>q`HB}8*8WqK7KleVr=N0p ztI||nIeI-^!b?axckrV=7n)_Q|X`ZcldALOgTAXlp+N=p@!{LO}ldX$e zEDEK0)iAm5;9Y!TDHPB>N)Cpc1;*V=BoL=?M7oLTp58Z>LEJjIn=dWtSP?R1aJfz0 z!_>n3#z;NEMVf664A6F?-b@(Os~S&GQlT1VUOFLF^7}CxhFmkufKldI%3v6wwwmpe zIhZ!ssI~QFz8nV2o~`l9%&d zn(1fK(MzKIH(?FmdHrCXx$6gk3V0JE-SOznff08qOsMs^QX$ zX@;^cOoc1}2b4%}5jaZ0G7CLg(l0Y$oPL=LC;d_l=k`lAoZBx8z)`;}0H^z6O`%|Na~F2sL7XkH&dT%6o%V*tK=4_#3a4vF z+$CE>9#+FBpFbt#30-plFD`8(5MEiUX3;8kx}sO!+UhFV(rw?Ufson z<&vtJHc*z|Qu}$KMz#!jq+*Uv~#CF>aUE# zO#QM9Xn}EM$FV*ancE}2%r?qNu_IpO^Vxa~Hgn9n2MT*VH$?aWZS?5(bEK2}#CCFviozPIscMtZB>HmPszG#Wnf<9Eji>MG*9 zSi0cZzBJk2+~&V5il*BiC*5siwoTdR-OSZRpN$$WuwenB~{mb*IEh(I5>(`ENRl>OPG&k(hI zwlw|B`)nPbxA^%p`Z3=ogz@IzF3dY?;^x~-WiSX0;Kx|2?kAq$K=qD~6?xh3nXL2t zx9ugHOM}@-);ws4ydjAJ=V2(;Q{qui3uUMj)OBE7kW0tdT%17)#k%4q@Gu**OyX|P zIcXig`e>U4zyS>)wc*QYd(SRN$}lv6(SPWvpxsCT}QO1*b( zG9xTO_imZk!?_VqWW-yKt0-nknJvZwIe?z}_jz7E@b5kK@1vB>16rz;W$A)w`pPBo zh!f6G1ObO&N$&FJl|e?6Xs5n_(@;u6o~X?%OM~wQX(MOZiaXSa5RevwoX)Hd_K%2q zE!aIX>LLZr@1FT(%2HZX0PAdO<=cdnCyi|fEw5Z7{O|FC#(b{D=52LF z>-IHXk9~pjd;z_!ej$yzQ?x4a1<~{6K|s}cIoA}*RkHwfu-4Bm?=*KF@H?%MOp~>kaO*LmwWw)96t$pxqzxBUx|I*`RX@=i~$I z+0B*r@vpD@d{g!Lrs{L(@?)7!uYACU4fWjVP@l^H;`G|t^}Ry~)c4Xh(|#ZM%k{%1 zwTu#2z3#t6h(*mBJ(QYWeZ4jicQUPn)OBZOfEVHb(bI z#+uPutsG7u?k`OrkTWy%NKLZ-_s?h%7Y(hfpwQ^k= zCx`7es-9#QE3iUQZl855Y@-V-OCp5BGNS*J(+=%r77@XeOwBF#7)wEY7uw?xnILMG ztJfOuI|^1QU_c|y-IrABK21-C*FF=rjhTrtlNh89hPbT*i&FHv>5luTO_#g)4kg6B zK}5DwSmyTQB|wrT>SdFm=64Fyg?uk0JtzMfN(8F9IX)e#>qmWrWCbbTEkbRG=9V^M zV$F3|&T(O?h4S`NylTY1J|JNmE12@5?nswRdSEZ>jXHTsqAI>s!O{Moce3*P>c2nr0C_;TyMmU@p3O zr+H~#M;chQ%SayHfn?>p@}1)u{XuYSq@3*k5I#bqCPPvQfMQ|VoR10F5tJBg#3nj< zS&vZxVO8~}V$LUQvFix%i^i8KKe@~(&u(EM%+Cm_mdmfTtE331B?^=B`BPk+Z2Oli z4sP@cAtA`VJem#$|NbAuFQfOR$-lz`QW1l}&9YeGqjWJq&4zoed~Q7Chuv@O-;vhLgW~`J|7FP+235oe~{I+NB>W$O?iK?G9?0{2> z69*-sfc;baLk482P0N1VM+OlUOvD`OOFxCdc>3=~E@|1f1(v9vXC(iJDk;4@`0WG|mH_hTwml*NIVCX-U#V3H;DqDCV?9muE2S&)p!8Fk-(D4lfx zQN6C;ahc&WP7ut6ztZXHCE7AzO&5H+-{;|kYE2(3`=tXlp=D0Bp&>_iN?0?TtLocM z9DIK&d2rHkOG(;G%{@+-yyjk2leyST>5tdhl&#H|_Jadr;T|_0Dpk@Ss%NK=J*AvOU5$k-g4H==HJ&!f?gHvSo%QM*}kmpwO+3|75 zq&4>HN6(w)U0-pja*nJ^FDDPsF-5VH zY|1*1#2i1(qS4?!;X6Fz8yGg45hcj!OS5f3i6viPT1@9N)04h){{bu6i#-S2%iOxy z@Jz^}mBcQ7yf+?2to2I0LbhgVHa#{YuT7{iuOaT;a0XwYSXebTzFMX+THpiRhI|KQ z9?CcNpnPRM$~X3+Fqwq26)e73X((8%)9}SgBkIPa@~ibNQ*P##o7v@NZn>FTZk8+8 z8DH$R6b&7c9a>)ob!m#UbUH=L&M{w<#aDdYz7Py7}`@^h!RBE2so$f8(tpxwyJyuM- z8getxE6a(}^H)b^MY#VzS$Bwgh18Q10-~Jz2C+V{Fl!F~)2L4;fa|0CWw<^?YPE;P za>=w6pXhr^fkFB2*~sB|GiUv)ZNk>&a6Iz}ALl&_Sooh|Rc&!gQush;SoP~@OmMYy zEl0xEKn4Z6IrNi$7YT1(lSO!CUb{3y#XcilNcpi=l$UrCW%c3xhx??MuK3l;?tK*; zIwN2l0e?}fw`8d=*uIi{v-U&_?@+w&GBFm)OUwAq`N)!Jj%89cCg`?si|i{B0ZYWk z70vLQhiE^vFC@`y+F?s3sDi~pcJRy3MboSo=pht>`0REDO;#w!DIv|!O2I`) zgd4JeeBQ+kdxF~}-K%70MgGq0ugLaB_m(Jcp2JBWFZDj5`2$HS@4NGd(^LXh2!{G9 zMW)Zn`}gC~!|^nGz|qc`PnSu64EHbh?m7L>Ft`WGgz=R(pME&BiIv=Z4)SD=W{2tn z2%Sr3kUSN0#xC>$w$!0#-d!M%7(cZUMb#NwAF#c}%HC!#70PW#8Lfw7OpB$YpT%8~ zjK3Neczj4&X%p#mt8X|TPpp!WtX{J-X(+UW47B@wuEztq1s+X@GVCN2S)`XH6Dz z)I;c|*xMG_zj%tVCeghcdv>e{{P!sV(v?@-!#x7ECM9 z`0Uv$kXyPk7MaUa%fT!Dn?sami8Z`dUYylT{Zw?{Qdc;kQ!k%SjNS(8~}*?&Mer)+55TvEtEBfNX@UMLjE)>&o(O$FXybAmYy($ z2U?r`UF6xm;dfK_x@2}9m`P=O5TJ4>M$|0gOekdL=V#39GN5`+ zA+_RK&do_`O`$(FbM(|{imMwvd1KkAV}KI!u&4Xz{mVK^{>$Ch260xa8#^=K>K*%s z@(A88fg?J94n`?k7goN%0ej4>&jJ`^W`6FiJItwK-ijL3=I1RLM>XfwF@X3NxUfB? z!$xoGS{9n;XnJ`@vm0$zGsnb%B}35x$`XZ0C5cl(K))BC&3msZ5R#5$*r{* z$RYJxTiWGday})KwJSbZJx1+@G#gLIIf{Qy3<0$J8IJt*jqS(p!GFT*N*Mypof0W> zqvfG7r&c=0mrrpq#Hs&(me$sL7>s;(CG3g=J5x7_jLHIv&)6Qk8-+d*l_x&S?lf!* z7cnYb2Pyg($;Re+*u_UUM^b)#K1*mH8Ilo_QP3k3)cQ3|x<1N|Q-Nd;N0q2wphzEG zmy#kB`Z*O_Y4CVH4hQ7J4qu?;K#BfS6-lm+<*fJYm`Q{T;KwT#dH$<-#ht!2Xu z#;%FaCd9)t)W@I*X;97g>%FTujaV}Vjm%)`%KN@tEG?uHgttbMC`wQVXp`$8eGSWX znxID>ELB%$8S8`G9ljI5>kGP!*!I1*);a&P={a9W@Sp}Hs!wBc|G}z%!b+vcs33^| zukhU-`L<)Vr~Jp&mzP!^t-lMu`^X=8d&lH>`#G$k>+sfpdlwhW+i$m`eq)rq4g1gA zhY?K3?%Qo@*V}I&c23`ZNmhX0-fwj}Z+DK{Z}05^Jp4VKWaHl3?Mc+#A=`PXju+#U zN8w@IUs7h%Q)mqj8!M?%rBRiQ#{sQvq}ICFKPh!?iOYy5Vc*OQr$ZkCB2H4U3d^Szs1Jcqq2s7vbM zbPjMnOLxDuabmRJ+2vA3sGCWV@H$MQ<-9#8(!J)slQqCSHlCO{X_nan_!4G7KMBtf z^#j&aJL*d5$slorWYzqTIPzqw);tq=_2m5Go^P#2*k#k~p45LE zJuIH*+lutC>YRJC_a6suO~{$v0)3A&0=1}EA$6XgHIqjfnWUSYxjyVoK4a=r=UlK& zVyZI`zc};1mvtvld>1h42eh`$7BlCCc-u_<|~d;igQBlJgzd(D?GaJ9kCFnTp-MX zmEj#HJ!0?BI-ivT^VGYSI3!^o$>F8xw&F`l{8`jTXC*3Ov3@d+6BmOgm0s!BlPF4* z8Ypt6ZJ}R3y?|c7RKrh|^6vwA6T(JC5|}3c)|=%wbL~VqA3()vAY8{i*3K5|XT4Rl za^w3AG&||Hj}A|?q8jXJJIZr~F$oNHqq50~3!TO#&1@&sJ6fy-(I#V`oE)|JyX_h{`wd#Fp#$lc0nfi zRcvg^yn!Qh#FS4woUooNjWbR#<r64wjYa z7^d=}lITEidcLZ0INtIuHm9Ir=RBuEp!?)|o!w(UM0_4kPyty`G}4aB_o;ysn9Jza zf%u=Fqr~EyjEUf)6^7@Q|He7Xa@gWm)G*bMtzX{__K%vKRezUUsowklQG3bv*neMp z316M=oFEN?a>kPh(q4CFXe1vITEk+QcuEeSHy&Ya%CF5TV+$O&K;2 z(l_K(6O~obV|c85g}$rd(ZFbAnHTQIk>X2g7&1HW*dAW$J!IK9fWaZQtr&0nyV~k0 zA)1F&725!+&Sx96Uv=}D9R5^!(}i3sSS6-Ybp5cTywk&ncz`6@e!UD1O>C;tw9P9y z&-!M{;lI6?Y)hYfqZ5lu$Gd>^?=Td{m+VrVcmZ3)6 z5PM^uE{kX5sd%qL!qY!X;1rDx=(jCa(1JWV)W1WY<=ui$Q5M1`XUmhC&BH_L_~DZB zH3Jw0PRFq5hF$f{cKO3@H=3Z+0O5I%-C4Aa6XoJA;Bej3CPqEzYVAi2x}s-8OPPG! zX1Ig+mhXFY^I~$L)3Cfy;w;sAZ6TVU^_Uv>e z@EPaoRQM41&I}z%qwn)GnSQyoz8Ore2I0t4rdDtI3E6Q~?`&1V^PuCPJ@NT)5{P{_ zDq}d#P^A+(ycZ&m)MHK=HFbnmPUnwr*biiU>sb~JCm9Q2@xF@`f!xj*zfV0G?-F=5 zF#z87G;4TBRvyGq37pT!nh~7o*tn+fSb7%UX&?KNrk(vkB_*azF^!Ec4J8|@c?x-C zVm>tP_mRUi3m*Hxfe*(s;b}G6h-!g)Ec$(dE2Z7&t3~3iq)d{xBO$#Zdzda68)FH+ za&!zYiFr2ZMcgMBB{=$U0!55#ai0wv6Yzjuz8=nKqQN&(e+jVf(xWx?XNv;zqIx&p zVWW9kDi=UqxFvA5J4!CCS_5-53+_ zHZk=(ctm@ z$9=ZIBxiXy>Q41%6aGN2Pw6j3@f-1G|9L^s1H^pWHSaKtN82lazg^w-2K5 z3N5N?;z8n1fWVD!Op1!%M~ZiZcY^T!lJQi?L8HEYUoSq3YrFuqyg@kO^@DeCQ9qmxvLMUo?gKBK@dgR+KDzuq;vrD{V=9+i z9MTL{?`T0^MS02{AM>|U{hnPL54}*fxJr(O(;Kb}6hr-p@Rw0Ep`C%RRB~~!d!MnN z12-Pf$<;u&7b^3}Za=)Qt9Nv*s4nQ}Jxs-um*>1g;kPOd>JOCpZFeB`2~mGL7?1Rg zx$2*+H%(*=l79Em#>Tt453ujhuQqxi*Yg{vwM+@3iV+Yd!xYP0MP;=W79J9W}}Q{))dpaV^nl!GhY+N6l!%;N5p!K^y+4greL&M+UA@6h!u+04tF+lv| zX@(Cq1SZ-_z75CP5qv*|pC)aO@X$!7Lw=!rlnlQTrSj=J2DChDo;>PvY)|d9r+xjyfXDr@d7fs+eWvTNcGOQm zgJ04eQPk6M^<=WE4t<@M7+Sn7^ziwEcp!B+slRNWpig$dU-(=nEgg<;;zcX^uVPQx zK**)mGk%rJu;cJ{>HrV2BV~;=mG>QDEW?~U;oC~i3-3F`OG1Ag$mM({8&6r9%E@W! zO`1+|dnbD_^`(C9jPcA#@Y5u!<25j))%ijgo?Fpq44s1;FjNj-TIy6(g>I~Q_->~HFJHAi-UUM0S)s^31#146S3aYtjB1ekX+P2%x1ZFP>R z{||Q_AC0qJqyap6Kh^irQYY-^HZq8$PWXNpp%b=T`YxcGGoh&CfEsyCm7ce#beL%JcCDsg9S~u$zSE7>&Pbg5Yz5xYsH1 zk<+NlOlp)eh>>(x9+mDrHGUc_IOWBB2)Nr~k5|Ls%?e!)Xx?=W4tebkPz8*`i?8o( zdR*TC4dX(dX8UADD{$V8d08}t6O!&^J#X$`zPqjWpiFXiLyNjR*DS3R#m^v z$yb}%*QFWej89eN_D|Rs-CG;X5Zl`H$pQ1seiqnypl@wd_o?+g?H0CduAqrrtYE9& zqI&M^HR$)B$e{}xI{v4_`q62f?*e+`VHnFzEr}W>iWdB3nRr)(E%l zUqwJWB;5gQ8QNzB`UDXCidRGEipraeCUh6I(x5}`w&gv8M9Ro!*Jj1H`5qc-i;g{P zi3*%cxb>4slnLEKp>vlc^7-C073tv&Ss5blWYs|~kFhNCMokt0ivV;KMQ6xipuI0yu9C*bfgQ}XW>hl;#PdbJoznR3V7?b;}+7A;< zJH8*q`?Ad&YPaq@rUU7SH+}HUm-771PQDiuu zVl4og+=AFHQM4SqX%oUqrPzyzw!2nZHraQ@yBanfEal#3Ynlt?Q6IWX9?hT6e{sS5 z!)z*Rq&%Ox?!&c!8azaO4ak?#h)sb?-{;2Ey3iKhm?%T=XO{89a>w-67Tt;&l(#e` z8+VwtToR3Yh53%GuI-vChvyDioWHmxH=|4cJh^Br`|*U|XkubV%j5aAHmRq|xFBOF zPy*v*dK|^+ihivbSc8_Oyre7wRjr#5bn zV6nq_w_h#or?NcQ;djl09e!oyS}2c`BR9W-$LbKMJ6yGj{;L7o1^ZH zN#~y|)lYp^IA(v+S-`SwwrHa7xoIeVxc5?|T$BW44yGs$m#Y(9E@~AsuP~FXw6`9M zFXoGl^^I*`Uf4sOW!;&D>}qr1jm768d=jQwb%i8-@Vd5U(qF%~@u&=-SjRiSST4)$ zZ#ginj$IC#g|dbBK3s)*kq%HcO-ATTvfgMCwJ!f*aQUuVyvp8hkk{ii^m@GIAL*6c zKuW9=g+p9t7X0a`C;VD=eTqKqMo6#4SnF^=B9zG8N8zV-r+&0kZ|x}Of^>~uZ#0@G zorgQE~U4Iez{;D|mlOjm|9Q~1zKjqERZz#

o)(*d-k$MKf+;sfYFUho{X}eW%GH^{`z6@nqy)YXaA5{%aE* zxHcPm$F1hc!AE7@adn#vJj@k%ZZ|u6?N~n71Sg@4;{VW~(EPN^hvx-G=B+I|k4&s} ze;l3K-1!?zW@5SL!3cWV^<0%2vf(`uxjPOwAKu*wbjg{*U%@mIC2m=D#gt_NoW z@=S{kh%rE(6`C%$D@Gtf$3-w(E;ILgsO2^qlVv!71Cp8!fcPADuU5oXgy+3OLYUaX z)yrXk>Zh+!wi>BUEvHVs6Ov89AYzdbCoX|cWfu}R2uV-7$E%P{C)bQ^W#K~=@ zx3sdpnZ8YC4Lv;y8s^!w-;bDMspAwsQ@tOJ+ZnM3<(=M$gX!j@_(K>~6>Z12qt_g5 z#WktMJvV=xk|jbrZeLL^9M^$!g$C1gJQ)wHw!_;qRPD6htv0EvTm_Fj-6^uNo<}3Q zO*)>`?@axP4=bG_?}bjW3ds)%>`fanbK?sd<)_j^&w@%+3IM7;c{B?!mDQmA6n%C0-wNqf57?&^ekl#qro5!9}xY+&ngcbaaGZtJbOvMyRr3T z>wY&&sC-Pk7>3>Z!`@^4oL+>F9+>C#$6F6X#{nKq{Kk__idXNCAFZ4BWY~MOwMOs! z2y4u0R2O078S1q8Xl?8Md3UJmgmD{d@7?d_;vR2qIB*N%SKI(;Pudxe*d-0@gCU8L z_r|>Ir{li%vB?O7XpzS{zj4xfB2Z-WRcsuU!L{oy%+~%W#;fc2Q`~r8?Y0i_xHyPM zmvUIFdC%%QsuGhhO{2MT+op~21i5z5$|E>-@IMrECZTd|7(%NYp)`r#&isASX2Y9E zmMNcnuq|3?)*r3I_86r&X4Ypqif>R~1An0|?@U+TM;%MXI3B%|*czhyS^626UwUO* z*$!K`Gz3Jg0Kv$HfZsl-KVt{6$mv^Jdwe4_4OPh#TOU2Va0*@zP$H0Y3bx)r-(%~| z^*!d%P+LmZWlQAni*;OF?*Z~1jKf}p;>}a!YYpR(a5Aoxa_

@OtlTm-BB41r-Lje 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

cUcrY1Lw=tW_CSdEyJo1R9to~*nSm3J? zAoqN^&s@CHX3tcny`qN09%*UCf2q-OdC+1g5NegAttjYKZ7lV@6T0fehfH) zanc9&%hVj^j_dN=1$U&+LBdN*>n(8JTH(C}=B71=s{444>ySjeH~V3iJdpP8QUuOg z{T9QOT3LRNop7Vjy&5>{Y#jgX^ULo-+O_GYQwU}|N~xyu&`C*I>5y6dLXQb{xlul| z-H&|%3uCnb_+EjR{j>0i5+p6A$gnB&yt44@>3R6X(H8v=CN<*JO6Ka{^SmRMI~5hq zHKH4}GMRm{GX`q+6l8fo4^`RaMNxZL_$KMb3oi%x=AJejwYhgf57XIj6s($Yh0}7P zCth_B<>}HmHSS#X^Xvq;z+__Y=F{rmD}5bXQTApguc}qDG;%8YZE|bUl=X+uL_wP_ z)$ffPXNdOVU6HY*6I1)oAIc5VW);Uv5-%&Fw8UOzX;<+ZJ3J$IwVMIUM_Fib2wgL2 z3Y9Dvzhu@w_g|*fJYQ|LS^1?C;`n*SYpufP@y1KFryTD&Ny=~Ln*=NCyS{qcM945NLS5%6o;4NO(_ zc|5Zx*aEj-bxYwu!)e*;X!jSBdQOc0 z%6%`*Ct9;?lX*5zx0yKpCH^wRR}aBA`;#J+v+@#T3aJk-QS|zK+v!2q(HycxZ&cm= zMUS`_qBcJM{Asaxl)xm~VkE6a{-RIpVn*TYd7(Zb#`#OdI zzN+L&Kin1$->%2p$f1`(EGV3T{Y*5x4^7mk{r4tRN&L&10U=$an<7FY5}<(Ki`b@LVz4%aG~o>^%928h1^9SC4hRNdj$kZi^8e&NM4j0Z z7Akz`#w1~`hz1@EEVH6GA_4LUu1HG-giIucVZf3FbsrIm;s*?{M}qp1H>?;kR0u-| zh6Kz(5%SoIe6A1I3K#5mh9*ValSTF^BIqIkiU^TNIe7$1PHCN0I?Vk6xSB$ca69tM zoKP`aAl3lr9+&_NDX$D+Dq!H)5K770^82t>*$Ab2A!IhNnxA;crJj6N%*2zdampa{VS-%y}& z!7!uZP!?y!m54KHLMp=TFK0}Ia*=03gndzG1caeq&u*h`9 zFh$G%kmG@=BXJ_@l@Qv5a$nB$2>Zg%f(S#y&Th1e?kPlBj};I^k&h$Ym_21IMXED{(AO;P%iq6fiN@@+iRr-Fc3^=8Sai- zOaOi~(9QxRA4vL7C#+bH2eyOh*2t~s1~OT_vGG8V479TX0a%Y=jRs>u(GBb$VlSTH zY)S;N8P;%1vPRk$bcWPJT!C+H&X7F+5$W@v6~hpZBm1JyNU?l&7-8iF{olSTbd&#o zL?ZNSi`xLqj}=8Y0AfWw8UV2ROJPlkp}~@8`Jdmm|8t%gMIc2+F7_{D9)R1=(8T{) z(bgX(-|^)P8-FE)Y-FK4f-MqjGoeV(i6TJ$f07qeZ23QiLgpXd|4!cjGZf_i%XpbA zdGh}hI>NA)!}?B!&=PHA&w-6ZJWgxm_Igsn&ayF>tq*NDN7BeA-F zJ-eZRDXm1F(QxuabYOw;{a2VJ{#RjsSWkNY;Qs@0lp+KN+)jah2!=_{yv5eJUXo%w zFfJBeFDV%LUmeM$2q6H2C}jPJf^n@#2go9gC>~Mtl7Zz|Q4a>RSy4m-Fjf@)z;@pk zU-^~D1_Ce-1v^DA4p@pJgb-{;5kd+kr$7^dFZhe)SpI)YF^|1mB$A@{A^4#p`2cC8 zn*xG45}<@-14{{2WFM07e@+FO6#M%BfGw2dB)S2+R16rgXs`hB2C$WzVgST~q8|WY zwH(;*!##;UdpLkCM~Z(~fK&tjuRs*aBUv}1&)5h#urY9D0TK_~u%KuM_*qcT1`1hF zn;7E%85}P5+Ac*&&&G3{UBMSIq|!0t5~dXjW9FCJG1r)ZrzdCMu~U?pm6x*-MLT*5 zuOF*;h<&{Hti`yVWMi9eA;0tn%#^S(R3fZC6J<>KyRY)8 z-_evX)40C@TmZdy0tBLs_PfaJXKbalgsM+h*weM>IK#I~W}UJe>+^lhnn;8gez3%U z8TJP;BnHhZ*f>XyA#EHBKrb#d@?U{2gZ))tT?>+noz7MN9yv|`5!fZwjeT!K!Cnc-W3snVG5t)k>OK5y1L zY*@rp-K=`EI)vXyEX;Pcy?9hIQ&B+g<3_FZjDf1mA>27nI83?U&7>l=*rh9cYg1Uz zPXSalJ;-X}^G)^OSG2SIzrhRDZi@DK-BfDccdRP2IP@g^5$d9(2MMgn-@Hp{SWQUu zVBEaQ)wE}o^<%(vH#5>P%5j!##gT^zIGho!T6ZEA!{GMX4lCi~0;k;GG|C)H-P?)HqTcr9-Y$|Y+l!P;aq+OApM!QAmmGRpYMjx)nhSH&~L!ycN z(bG;i(?YKiy!tK_UfpxM!txe;n(izHVL0RS#J1vtT1b{pmMKGTecEuwP4zSskj_UVo^1!hBBTz&`AH#5SGCx4HOQrf&YNwX$ihxP>{QK)J-M zPy#{}IWMNMeB@W2MLiG4lHpu>3P)RCvFU=0YT4TP5Bty()T>L?;a3C}PxZ;WHq@{)0rBB`&&zV6GTf ziPBakT_wZYo0scTscNrMO1Ep=onc@Z*@K2ycgDFioOR;%Eo>9DL)T#mA3Gamrb7vz z!H|hzV*L6a`CV%s0^10pC7pn==C4A~6*o%kFbF)gz&D3W(}5)|8#dnKbR04*L?0{C zGB_BNi~}4&oEf8B>`Cm6;;z`SbAl5NhDW!lzmxyufPQY|9@wTF*%519HOl7*%)QRV zIc?L3{0aBjsezaIXXudpQ8xU%q+*<7!jZO=G}iO1%N@o=$a-CuBNUM$_=an_9f!7=OHr^vzR? zHZ!$lQahrk+EY{80bTw4uilJ#fy8h`J}oHh7PPV(-zyx`i2rY#GB883qN?T<&T~NL zLk<0`4zqO|m!F$iJ7$cN+oc_57S5t6mCC5efU3FkTasR0=tM=Mjaig_^X6Sh*5^-# z-h4HBpFR3kUaj(rs$a)XrQCm_8u58p0Vm$GKHqq)LManvnAiL^K4|Lmu!VI}@~>s* zXE!X+e4Vv363)LCu%&l!4HM>G8gB2CI{vr{h)xU*pPsDoTJ4PjiW%fw9FQ-*s@?;X zmSm(*T#n6DjZ39e^aHI;o+RY51?_$w-s&)J5_2^?{_p9FtJ*bY1FAPq-z9iB{1~qu z!A_fDFJ9!AOt1^jje4VO%>0f2H_Z)9GiZC#1>(rGe{+My8!Xh`=LWsD%Mp|0rq0B} zhUMSQb0D)8>?Bv{`hIGoz!kFZvKiiZbE_FLpB6UobgsQj`1j|;M=P(2aYWVazf4im zf1EGJd3p$SET4auHuKLa+fr(f_a%|a>pLPos$QJ(tC8uM?uDfcyOy;{+%CE`I%2mhVW@|;VD@Wb*uJtV z%xK^*t;PE|^t0wI&|+1QI59_ut%Of;Z~NAjNz2i&Df70_Dm-O)!RSOS=7BA)F3=Tw zdZF^ymz}FEUYKe#*fTL2nm?I-PC#^Tx2!i$M@6etq!rVg3Z3&mq1h$TG{|93_nnWl zXi#l3KG5nG`KCUTUg4o7Hs!6x{jw>wZhU;!SSxRn{a5T*5Lv}JBZu{YeoDx)*U${! zQg=DQxknX$R@1=5L5w}0vO@w}__kgVSSX+%agSbS>sIsc_ke<)B?lcje<52UfO_9e zDx8zy?PFLiJ2R-B(Pd{vmdLjTU!`s-&zFL^Vf%pM^OmN7?|Q4I4b!L*@_ZV|WD7{! zZGt}~w5Ilx4LkhnV(}8xvqdOC7DOeQJ2g^QxeI5iAGMFCJ`Q)^EZ*2ahpu!Zzi?Oe zkpETEP1d!*e?kpDf8V72*}l}q&9E)U!MM`cA*P4$+!tc;bRs3igr{wCW#^qBi=Mt9 z_xo29Ugm9!O`gP}PldU8+Fxy!8l*b*^<5yRCh=X7#~AWZc=mQ)fRvEebhgl-%;m0Z z9nkzk4*a-g;TZLe#A(f$XUg2BLVzZ9REm`6wiCw-Bui8d!*xbM1zLViJ!EQDD@CWvHj&tv{b4gMY zDLHU>CosIdmiE)~tP5fe#Y@c`uZ{fXeaJ5=M|AM)Cc7L)qXUO_p-Nk!aM7PLH>!Lc zjV1B6>w+8Q5}(TxZT}_7ToQkjaq(sFi_cEy0Vuf^Z$$x>N~|wg6QZ|F{|Mf_U|9Zv z8(e%l-8vuiFJN_Tkl909&GGXxEvE46F}8D+cE(xvw*rsq$p)y$t;tUqNkHL-4|8;F z)@{g8UdFardpYsNzfAT6sTaqL*TNhe6TByeL39>>ax&~xWR2o$o=i^OJTTnI-+J-6 zjppi7+NhXB?9Y7G%&N=ELAM5tyV9bD6K`f&HQv}!p7VtMpIZxGW9B}O3x=1ShVSQ& zCv=yzA;C*#X~EZ`dX({T_Jh~o9Vq)sRixQ!S!BpTWSqt3vhx@Jn(=yZYd@GMjQ`Nb zo{||e;@jNq+Q{%+hDkfv`xV;B`O*t()x>W#j5*PFO5WFM_w}B3x}7T|4<+;7ePv3o z2vju~1W8}W2l4IBmK6CUd0iw~e)cIG?OU&yczd6KZ+ZPbLk)^39L=7$wa7H-TlYLa zw(0ds4M1JHpMJVCYOiZVNi!$01~Y5Vs~tlGX~u{kmsc^SyZXi+n`+Br-NRilsszsp zyR5H@?H#a|t30q)na3-k+WNA~79S5CO}C_kbuVUsGRR-@KEAfFqleh9B~PSN(r$-ll_KCOVu9-++pl)rD)|mya>9d=ka)v5~57) ziDMCuQr7MA^bYa3&Zt0dZpQ@Ba82#cfeLkKEAIBu{ax?8Gf(@H2Zug@l5uYZb6NBk!Hc zoB8v5dIAzHrA4lL&Eh1z4o#@wJaXixjEcbhkV%7T@3I=iE=C#JZne|`^0Vrg_iXAe zO+H|D_|A3eeIzBYP0Nv=tDHoC-pMRu2XB#x442^5=IXNR4}`tE07~ZCpnRJdzY`R1 ztFFIDE)-tc7w&8QC5-WqCY)WTMcpP{+;VM!fSYnwb-!Wfl?TR`zQ6XRd47qQG~XtC zO<(?uZ#&wh?@2i^u6?!V9ZwA%^NP|i-F|ed;b*)BJXQ4#K-AyX3T0PucOJ|NYZT<> zyOR2=&R>ECh5vB`f7r_q<|6ipx=O8mm71Q*{Q~;(sNT%IL}w#V?#1@s@-qH~8!j0l zY!}oYKnEZ7uWlpI3p=hr|5ZK#=IwSTjkSi)uXu;kbDi(oblUw5nSVWAtUv7<(lsy@ z>Z*6rB|3dp+1x$UJm;O1R0l=Z-vSG7bKMdpR&5LNV0;3d)l(}QHBZIlCcPZxJgOOA z?|0T1YPM&!I8SD2H}MHHZtV}Y||$Am$mCnV&|q5)EAbu{{R03GnKWDxzFmy$c;Yk-60t~>gjyP6ipS*R0Z19 zbPW1prSaQn8edOe0X1u*>DtLl6{BF9)ats3U#g) zGe_MF3=&-Gt%IGue;(E!T*r}%2>#hQd`1@3@J>@cXUB9^!u{4I%8x!TPPla}s+|@s zv~zfKzwlO^{)nr$yHN60KQ$*@xVZAz-9Oh~YK{Ziw5`;`*Q<7~ZJgSbe}2**;y4li zL2gdG_o#yGclQ&1I*T$H(u0aAyLt`)Sor>X@1DOLbw}H~;FwF>of|N??@}-JOmNQt zQtwQDA_QDE*>WuzN}B6@edolloD(y@iU)fAZBqXFVaJZfHCtGe?po$O?h*j?9c=#C zZcc)J(=u7^x8!J&6@hg=Rq6^xej|Vm`Mea%$N+q&*nMIM?Z^ORgP0nIUWu4}vrXdr zSFgBiWqdc)fqShlJ~l{J>e5-YkbagY{)YVz3e| zBjPLVkB1Z);(26b3ZJ2l%ItY`lti;U5Un4Y-kVsjG&q5NoX6Sw{WL$0`{dmRJA`YZ z%BSs&K9FqG)lh3w^l!cOl@jpG{qbY>2^>+T-N%i@r%(3>lna~M3%&-&6YC}o8V&Mh ze*GEPK|eYNPXn{H_q$}XR#AuW{dtXBSUp!KNq$f$+Ot=o)BplC7!6+ST)D?1s5|sf zkAN+Czo_cWX?{#sIlL#j)#({OOX(Z(-FNesG&RuHk{&ovd-D%bcOQGS^ClW;sdMFVc&vkh-PDO~2>1~p{;pY})az!ec; z{re{&`0Mntuk;t^d#&z;LTRdGzpA^3*u?@O_G18FouZp9e*{_fkQMkp>BgJx%(`cv zlj4Y~5?U6kj0VGZkoNgy#oRc(r_O0UJ8<_odeKdO0{-eHbP-^B;=?uMKDp4yuzK~( zmC<^XT?_L%u^LW&&AOL+ArfnyZ=0*+a|g4}ck}G|{J?j|(PAGkNV=C9jz9J#?rye4EU(4|8&XyP?Kj+l_CvJvB>%i# zle4}VglB~ITZG&4gwPiChAmsk9Su1-6b|e2iNsibX^*Y80wo3}{ zw_oQ&J^T~=S3=ZV4Q_sLLuSGs8rRF36Wx2~Ge=2FsEif!jd@JYdv=ao>kQ&U)_8pOZT_62NTZA@nZ8b2YS>|R0+25% zv_FK3@7}g(tv5NTY=f{}8ouT@Q83OuVTKdy zk{sF8Zh#H?QW-VLsnDgobp6_%-YD09UvSIeE7~eoUDX2e_`8+n&vS0IHh+w#4~_TJ zWjGGFcFx1jq+Su>+>Uc%BX6wLf?IX@i8lJ}tbJfb)ACXEskl(XyBF&GjnAJ=EX7zx zah!_u?3Hm^ryh!*4ulwrs-pFR3{d>y?mR*Kr=$LG1@8GFeX^G^ePuz81W4awrH+oQ zIv4m;afKdAt*3I20qMcHU##mlM+?Zr;@qOwhnp)49Bq?+Hy%H=Bx#SK`m3~)?5@Lr zd@p%@-^AR3_}DT2RlQOg4zIzB@}rif8Er)&-IY(3_Tka)SA0D<%Nq6sNOFCC%(!eg zLf`tkZ|GjYt#ZTy`Po#=Xu?Ok-#$CYzt_eQX%}pHmZgP~(VF}1{<27+mP+o8h=rF3 z+O~B4Kjm#6x=)ZH{?jrM`cF_Kb>I=mF%3A8plUJRoq0*(_K9y9U&)Hpfh;$mR5r2_ z5BdgwJ>F*|)Ye~nAhw@VTZ^IQlUQ*=H1H=0Q%(6m=KE~Xz!>f@I~Lg^IICL!4Xw9Z zlhN!-{Ibf=Ore~`<&KcGAr8=weu`CZnAq01h5X6BgR^63+tf#uUFLUrQz4P#;OdfGztQu#m3DtPAW!BglJ1f!NJRSNDe@sBy`cUk?!1>_ng7cZ%&^kp zCxm*}@{soLXnreLNpP;TzQI6nGKbG6f^=4)6*)bIW39G*vty+zohupy)!I@{@!?Cx zs9lp6TG38JsSUMb^-Y#i1Q4%dx~<~usV>rkCwiMk92Q#p!tC$O2|}Z7jbgTcI0+^O zGhLq$!CT$eqPS0-kN2n5Ul_2XIA!L|>Hd}>Mq}*aa>0+_+h8pZVrew@wFUS3F!Hac z2M=U$@mSQP!e7qCj}a-J=S_-yxJa{;s^4ceajN8kW>^u>uhaTuHz-xnV6>ArqDgvI zS9CIWB`Wp)7tXe}%LBN9dysGGT}C2);zYcDV$J7G<`|m!ix3^z^`d=CkH?I?Uo@BZ zsa>y^-BCYOMd-H_?y1$EFG~B1$uvt3py`(PnBk0On3J;O!oL|6E0>cyobmc)XLuiy ztP@Ul67oJ1Ea~xt5NxrdiED-u(x7bDf@^gM1#vqnB+PwN^g7{B`^brNSH0;F)!nE3 z&;)(A{!8aN-=@k}j+p1~gCEt82(&$X>i|=fn4ueD{^mI*o*PWY$e9=&F*Jy65VXR- zBk30_hW&6S)$>wZ4S(9rQ2pSB3S=89e={(`?Zdi}7{tLVsn$(4{Zvld_5j~Gn0Hv^ z0F{?yn>p%*QW1Xl#5fxA)WHx{pqZbPPqp$S zY=P58WiafM7~{)w(GLwP3O?UEC=zLc{(^Tdzz^YEhn8ImbGtctT&}-cy@y|3`*vKv zy+*p{`-=hH1(AjBW186FrnCe2n^$@4=@_&zP%c@grE%|kwNn9Rhm$W5u%S5?XWJXw z=VUwykSvf|e;PA>bjBUtF!P~$_AuXYfXC*uzie*hzV!$<{WcA2vHsW{?T_h`6YR4W zXhzZ2(D3&w#6L-%Bn`va_f)vZH6q4EV>tA-H&1Z391+}%6S3LOjzJGM`^$TW)Zmoj zJ6gV6S4wdQISv$sq_8J?-DR%NkcNlrJsfH$k(Grr9hovwhefu>#W)Mm&;H8bj?Rko z2&yF$yq6o%a}Io#+as&?_47qQA$JH_0ec8t0oN8jh!Pfd!+CA~=fc>+S7PIwEQt2J zcF*ltRzER#Xu8M=`XQ~0u^{Ynnxf+R^+K>u#466uzemGQ+|OS7hHmUW*?GOfmG~nF z^Sq+huD(K0M*{+WTd7Fj9Fs4Mq8}HST^)@_%_nZ8>P6eX^oB=fRkwe#ZWw@wVwdv0g;}iWC-~j#T z-c$W~@Y}=cjmd&HH&=zL6%7SCaLF#3Atx{)e9Ao>Va^>t9&`}#4k4jU;mllkrJG8_kEb- z@5>h^-6?l$TQzfJ3QTG4%%h|4dt*VvBBG7_NW~AsD-I*0YYuB~n=O@pQ3*uJJXqF9 zL1?ObZ^JziR(huaGWG_l4!-s%Rt`s{BoIKPD}k<+dR{ zB(91t{D{%;Vat1{UG9qzV(g=GP#f~o#rB;r+>52`QwqMKz7AxpcCj;T@*~id!$Ssl z)XZ%enoy6z20O)Hm7~A6ksdcwkON~iLG%ir0(*U9yrsw=~4GF)Dry-)xnGr9M3n(QGeg~l10w!3#e0Z^0#i(DbEVs%{_P76JT zehM+<_+aFBiLPa9k|94d@= zcXOmpgoQFkeoDAAqz6q{FQlHC9D_P)1rB}upPm=%_7FQf-}(qE^MvivE|P7lo?yZn zx!rl{cwPm0Qy`@d0Sp7>zKZW22H~$+C#qgEGu97|mD98re+pDs{WRin!i1F}c$v%M z5ywy?&2Ogt=21Nq?lqf!W~|!}>nGdV%O?#Vj#iS$b`jotUeSnW9ij#I%re^vALoPW zKEk;i{n#4T519H@eJvgFVwC<8!Jjb3TR#nYcvyo_Ulo21SAair?6w#Y{dvz`-rMwE z;HtWY0(;gfv-w63X}IzB#MFbw?B$lqRlYw=LLV?D>G6$ir|irV9_&6P;%niPm&C@oCX2Yl{bhVyu4D7luq5zqMQ$ zJJW*yS^!Z{RNT9jPsZR6V&(XC!eguzA9xox_9pm7(GLYAB7Ydo2D7KYl~{3+K8 z7r;P&0?6F-8+(hl^+(51LpS<;)fQfzg#haclwJT|{jEW#3b+WBG2|4Ycbe+NxBJg| z%Jf}mcf6;ASPJ9j*?CZv8`X+t=Oi`xoEbF0z^PYZ^o8}r((?Q@CUYcP=LDux_RTqbU*6podzA! z?Y+e-kZ_@10r&E#4dfiy%rZ!Nds$x!sP1H}em=!h<|0>QR+o;h=LBWiX)BM*toRy8 zUI#4z+78xWx}htxKfBv?wIdeqb*6px$1jd{LJ+B2??(K#FO@JU)x02x7wmHIRiH{G zM)Ur=YUX~*i0?g|a#N{5#EH)~vCV+bOX!nupHk8yO6nlU3C%0h)9jfYL}9-TD4aFl zGk&*?M#Nii-1KkU4c_)twKw7+t=9q!?0(4Hy$It2p{t^}3waNIAzvi%fmk$3(qKPE z9YZ45xff7A*?Lckq!kO|9hjBH-o}@6@~4GN3qxRIS>C## zKm|+wV1_9__4TGEIdr+*YtZorh#+}|N5VO6wh>i5P-uc8`6p0hnO9;7;0kDfvHGAl z(OFvcDRy6TFuWil5scpHeqX&=ft9TjTJ+a>k7u^EPW`RkNY2L=;x#yvoleFb|{L+Gp68n6dAUBYWM#Em!yJ*qzd7E$ZqfC9X)nzW;hNpZ! zD+U4ICSORNBr*dmlw&Vji8ch1$>{bS(RHZa`lC}sSHYvCfCFoXf$bTY9a5QuU3|Y9 zl+M*+zVJ4m*CSa2zSOSc@y*7+{ZNXTc9n^J+!*EQ?zh3F zjR}Ethv>x%csqRzUk8!gwO!mAXK4O?*xL0t1u#RS2u9#+( z6xg!)Y09=6ZLXg~L?I&bWf%%@7V7a&I=L!R~qIkWm(i4m1r zgAm=*_0gjv`u0PM>zdP5Dg8TPm9~VO`m!KtISRDSGCThi9wevi_D$tJKPMkg{308q+G!#R7w zk<0)ON0tI`m%2aWbCFP!f~37lVY)fP!g-m!7n@T?-tArG-MeC4Vj=bCJv`QDX$nc> zI%S<{#iA}0g4yLFp#0bWAT?8S^R(nu!XQ;9*}6_?(3H`ZWu2xQm-c5MggSV$is#Pv z$nB>v)iDCO^`2SV59LO&Rkq*qO@^QyA>!aAtepYxfSMnKH)G% z8lX|vUvb)dolsgi#B3*3ldiV4#@z0SZ{?+@C8zpDA;MH2wv*RZM1O*tt_2}G! zfUidcdz<&Nt9z0zTZNNSE;+7T4ElsPPuacnnka zsX3kF2{C{xNb^^rm&V5~CJ;ISVx7~DTSlkq_UMYq{P~Rnct8$@)yrQPV}8eh;R5iS z)IzOodNrMrp1}roDM~tJWDGAX=JscMDlX%N#Z>!Ly$Axe7$E(ZW>dCXZUs=ZC%>u} zAUoHp7A5|xBmZ3Ul5)zc3|4jPaj<$Ao&7T8&P-c}PNa6R5Vaql~o zzt`KP(8&R!@hds+ynM)?q~fA_@tPVVb=17*4mq(!gC0UW%>926Ui&XtP-|WNR_Lm3 z!PDl-Y_yqWgv{NJC@Kqcw9^7;awdKq#Xy*o?!uBM40!q=0(kTNZ7$O1n!$M)z+^$4SYZO}6nw`>sgCItbf-I=zMDxcfi0p?! z?eWkwfqJN*W#dj_$i~2-0WeECwX51}iw%CK#IJ-7NtiWaP>0@!>E zF2c@HiWjVc=*11CJE5GQcL0!Kz!yeL;xsaw;?!(wPGNWs6RMJ_>kS-r4-^iEyTeiVHtPJpd?3 zG7hm&D2IBSZx~<9UJ6cWUjE)1hXiN5D)9_RdSU8C9vBOaup!H;ZtD}A_S9pZl>E4? zeM>B8q;PRB*sgbxiv8i`uzn$u84zfIm)5N+Re#IUdFsS>5uWpi2V;185yS}_3iew- z0Y;=8&|h3sAevoVM_1=LP{Wp}wqQVjuJ*OIG!w@seU{bj(+TyeQg9)?$rksxK{o zKPQy+!a^AE%7L9Lv-4qc4k+1U>M7*N)=YGes&JNnX2LGu$3b{bpRR;yXOEX|+3oUW zxjTd$a+?EfN`hnbwk)pAy%-!!g)@US=1`9Vo1iX`>>TKM;)f`x%bsx?v=-9Y0Ie+z zadc&K>4sw7Z6@lU@*{tAZdk)V{4^`r4U#^I4WU`QpZp$O`)cRB*Ps+iJ!k0Tu(#oc zy-73@R_3wPXx}`HrMt9W0!6*V))SsWJz0wp_8fvgGE`9h(@Dwf%kVhz&r%;%bqhFd zTIbS}J_3uNgQj&N|IdtrM7T1_R+2ifM#(}@>KR%Nq-;Gv$Ho&7N> z+j`E--m=l^@#Xnc3!@PAQ>23h&*-(Li>Wh@pzuwJo#QEwHQ!Y5zkr;iwq%K|@fZJ2 zm9e3?P`!}stov1qYHQ)h>Ek_#fC^?xDS62`l*FY^NVl6zZKsLennOIb8DKn^Z$3rv z9z*6+>r^NeB;X&x_=yb(F$8bV#7m)bBlBW;BMh#P6FP;Um?}&=GO9fP<#|8Xqf=*@ z1Iui?c>%$wu22Z$_V^%;<#0;w|u zDFtMi#XDW??iy4B3dcuxs+r@pdn-qC-45XppFp5;KC>mfnggBMrghhtP(W)I*b0%^ zc|SE@s<|X>4pq3XGduK3hgLx7W&q>rHe`KJnEJN%#f^<@3e*!MXL9kWbGi0bB4DKS zR_grQJ1>c(9TEPN8wwFQo|^=W!Rh?@E1y3l!5T|u*8){j6qB~}4CR#{gP!v($IwsJ z|M^AllwKZh<|OR*J;>4}U1hvkh(-nzhS2VHYP*mCL_CKs_iCRDQs$UEUk9S*V${&7kr>GWtn_?wwngalud^UR;(3u z_F!xm%<5ja=D?C~ba2!7Q|{-?3ILs&hJ0S&l!&y6ja|Vh$d>-9K19IN&8w@;(mRRH zB)}%59BPbR*~$MPQ*r=lL2EgH9|ZOVn&bGHH`(xP;Q#+sYgOGhH#T>5>Y1 z$V^pT+vD?k)?1hv#%6kd1$+22l;2u-Y7?>=jL^Bf z|1hQ7vV^UTIur7cFKm?a5kZvQm)3Wyf_Tm_ETc5z|r5;!?v;?^i}wQXN~^{Mb{qB^!vU))u(*==1?hTRw-x05OS&% z$*EEf8A~Q4#t>tyQk2u2=a8*(s+`GT4wJ+%hfpMk#cWR5vW*$D{r3Cgz1PcM@3-gm zJokOw*L6MjeE|^Es)mW-d&Rc@J>ofc;D7n6oBk<~UyCoQG2a% z(z!A^(tL6>~Qi6&Z z4~sG)rsLfLRk54t%HIC9f7X0XAq}un--(B5HuotU8uCrM&OS&5HIL8eDy+A91xdNPk63EDesQ8T*tt! zoVBRp6_~ktevG+B`|s2GV=+rRGUXg~OnNBVnR_kY$K^e5Dh+PwjyHoP3D=T!Gw7ks zXAJgK1m!IpZ;c5Al9NMroVbbzM<_M*PPoZric=KjUvt~BpK3KZ!adV@X6d#K3|vZ@ zSy>z&@U?j5&bk8@U z7lwo(;-&GB?=W^#iwYp^rRLnV02##;!|_Cq+~29%><0Jw~eMQp$~Ex(9%i+{W#V|gLGidvKn z8j7^-2&w`TAoFkWGic@*_}6sw(5_wQ!eJ`B^3gQ=Y^H)F`ad;Y6j$zfGTh5G>GRi)mxCK1p=? zc(_i?FOl+?3f6b+yIe_-^i|eBCgLPvurm>y9AK3)*zY8&zgbdEa?*==u6P(LiFueg zvslS2FRgix_+%CzW5YdxcZzewvzMxpa#U-FU~x{|%ZR1_2B?H+*43cdt+C%4IIT(F zAqq5Y!DhfT{N67274xK)Q$9^l9OJpsWyubM&yIrU;zM}X@iSQ;#*npxR^!O(PX{cy zpQ}b1a}kP;1%S*8Wq6)c!rFi@Kj&sx{t_+JN>~8GILM>dF}oVUVirHG8Ru9>4Pad0 z^BhJoxuUj_PCHMC$`6RcY;`v1RDYuuTh=`$L|sEU(^$qk_e02mQSLO4GVXoxSb+I_ zy3X+xRtY16lI*(sF}C@_M=;$d${)C%fT4}KVEln2#MGMYcLn?!whzP==#%yC4CIrM zS9dhutEZqQE7F84WUIjT1*A3~zAz&4S6x-_&Un#Mk#80heR+323K!KYAGp>Zk+%rsgLu-@E8j>L?8kc@*K_`wy&g}W*ZOr^_$%pG8)+Z zVxe*+)g_{Pz!lG?7GUyf@68y7=hQ8Y50px{)ZXHv>w_!d`11#=gdhLS$^doq7h;HN zdiZd`(mJ`~PS#v+ZBL8U*XF{Gz{{XWb7&IaA{qmK2xQp42vpJ>xnckTu6w65 zo8Wv$XW%-bkp`bLDdoOR12X6bk-tT((p$@7_U04a3sePbiU00+nfQ66UIu#3sR#dx z-JcVV7g2f;9CVCvnsQ}`8vAtrP^r`X4ri`2C~gvoWjiVGMuBddMvsJ4kD3oRL|7!C zcT78#0La1%FAa-mX+)!K*2Z&zub3^Xv2EsqMqBY80j`&U3H zb;?_&AC>zi;&X9? z`cL5s9Q8x}GUC%r{9VZ>`*-x=Fc+2>(`)MjRe#a_?;+}#1bV8H2SUdSq^KaJnwgK~ z=<6;P5CZGli6;dgJ}Opx0~5OLd_dF=p61$duj3&fxf*!XJN);G3l$sM7KMo1Pq&m# zF+3Vw2p)4okBX5M?aFVs4-iJqtbYUi49I6k)P*4URg*BPDjYY!L`oc(R&UN=nE3Mx zzl#jXLxIm}piXlzE2f@tq_;b`;G@r`FtYKRj^qH+BekV9QPx;}ptEotzrt&0x~{TPB?;?po2WO?Wx? z(;EM&gZ8;!#tC(&+Cg5GViNr+<<+6a#@BC2GdT&n&Npl@+ztnU{Ux&O$Gw0Z*g)}? zE+OcK9nS?3H|xmFdJNyMDR3fmjd|g#245+bfC=4F(q-VdBh5Jj$V=o^$d{Pe<5ME9KM-zQ z!WY*=J|?kmz%~XL&g0_a&ob;VkpV@S@u4|$*XQ<4eTcc3Ku>FXHVRCMbzL!{k5R<# zw%cySHp5q}?lLCE-55X2mtJ01-uqN5Ee!tuaEhY~{(@&Ey?&UlMdZXa4W2fUPr2CI z-f)zQWd@8jPlA6ft#a5Ag?6`jm|MfF0R}17ai}vR#s>4Ou85Br6x+UzZ(s97I^mJK zKn4Np=UbeFiP^qW&`cFJ?t4FGrV~~LuxMfgm02*)8qF4WL`W!@oMhRAnTt7;R-&4y9JBd1GZxM?4>ms%RY5FwYimQ1sP4)WWv1U0M38c*j9 zO%lRkPIXq`#+xTL#kiHK-z%7*3{dwX%bf?Pre+a3Yb#-1h(Fuy)iFQaXXODb=9$?B z@T$=M~M;R=@!mK zlzI6aNbUwhg$n62G`fUu7dg=uBsW*;l)m;oEnqvgY{JqWduYV{qoo4QQjFyHArQ~<_5adaCDF`W7^15PH#$`GKzVc~9ATpk|pIjx2(rAruCR<$>< zQ!(loM#7X?F?jAyz!-S00uHHeuLAG7sAD1#qA^zY%y;jS_Kb>YFUBAPw}6Z@?us{n zBbapqOib;~sR7^Nho5K?rRZq0f4i5N4yp`H&Tb#!`_ShzJ27xnT)5iSIA);3Vu&jL zsepD9W(rN;Yxjw$X+`Z)zhOu>mJ8~H#@C-ySD#L|o z3hgIT&U=^QU?8v^3!L+!m;S338IUi~J>t9!a>ZW`vNAc3ciP{{N5Da)3P|T25eQ?l9%EK}GjW z3f)589?=E8&1|#cB=+|58S_~C46F);=#Cy9uSK!h^K8H}(>(VjiXD**uyba*$(dox zxOE0Y=+c0R@qhPre}?Y5I!SKTV0-`KlyGd}!^07R11hG_W7(quO9wnHQ>7-A&JAK4 z91LPdG+@7tLoMHy_aiPl`RtWodug`jb6d9Nu|-ALvN=aItag0d@4|9Gy#m`{N<6yY zr;}eX%X!t}4u5GNuw?jWqR;<4X+M{6Vnmhb(m{3etxlUxAHKZPya9zeopK&x{^H>d z$6oS1*Lub1aoR68t|!0UIO1EuCpN_v3)ub4c6OD;+PQF4p954>NR-1};_lI?rtW zofb}F&#E@F-Z?OpTzlrSXW_e!cYifvn`cHw!A$fIFk$UZ$GQI*9$U5Wxae|XXRu>} z$*XR;@V^Z90T7znsiu%$Q5`E=Bu$auQ40Y4$tLYKy^xgd4p5rR!5_7gvV6$l8Nvc2 zFv76+u0wb@V6RT}F0aUA)|8s9Ihlsh7O88}mOGxu&#!u2!Vy7zk^j^O1H1HgrPW3)sgLt2UZ_>ohC{9#Ww^V1m3M66Z}(@mEAfeeQHt(;Dx z!Ndb92nBKv~c)s-bgt02YB+6GoB4gHiSK}$dDbdD}L&_cJZ#CItPjv zEQt9QB(4U~BD#bjRJ=lO?9Nh6wog+#mQxElFQP{#2CQ{1RPL3{xGWr_n#+KX68&lz3Y)^L^^r&FtU~sjB@YyAR~0X z?36L3pMQqE5;iElRdrxlgr$`ECr*7>AkLcGp-X~3|pkuPrVWbfXQ!KW)J}GDxbVP!kjr9B33rKM|C?_ z{WO2hONhk6#ekzrBy*nTfFL&xUJA#%x`)}}|F~AsK$cbPSH?U$oW`cWmYVEdvtX)* zF_}JGpn83`nCpU%Gf~6f&v1ow|HA$uD%aJ^h>BU9k$umLsFq*<(0<2{pXN0n(cfm$ zonuAFc#k*JPa5YPpRL5dP}04O$N^7Us|)N2^7<~^eKefH8>+g`Ql7D>`(R)$+s=nl z`;tCD?ywI-Fvi;Na!o-37gjTsFStNuRtb+uMTtcEd+=Og@E9_FkTP2arUm-?1DEdp z2&OU#j~i(^B;#|=c-#zSwgy}s?^u9R4ca|Tt)R9yS-di56UHE8U_ygu_}S_n-!uo_ zO{#Wm4wyP-;a7A6=(8&H5A@cm<}|lYzsIx5Jjg8|XK%j&2KL95P{}*@A*O(2_K>m` z+H%bj$Uzy5%&?ShE#XCJ2M2vLCNS$`m_#vYSH zYPQ`o6gb5l5y}--!>R)gaIZjMC#<_%h;_);Ll|3tM;LzT-ustUo##F}=syIm=Mhg* z1IB1VYUT4_g$u!+1{1t#PaM?yHe*W<-4jyajpqX6Jb(4e3)O{+HX3s-{PU2p*;Nc9 z^x#7vQFk?0n9Z}_;*pFVp509G`STR%lR5(5tPglIN^L+&w`1$z+xlI7@i!!tvB^Uq z*{gQX4v&;4I)?R+?^seh&H;v~&0F8vFVo0YHKF@e2GPXZRbqH$1;UA|vby zD}p&>U(u*dfK*?q%I-WzksjiZUca9h@FfJs6*l^V-(gFogbQHx@s~P4#YbVt*9)9V z( z1<@3j-5l0>E3tZ|ReI)|d5srm%rXMKA@nLYs) z9_SZZPKS3LFX1#Xfw}9_186{-gf1Dk5 z>W(_2XB#@?I?$|afO@u(K~_U0ZTJ?Dj2?6l?g*ud&;nPIG1Zg`5;oeKAl+~-ZWEZ# zN}4{p=<=y`0<$^uFG<*k0u6`suH2M>jc%sBLNyBN`aNjCzcBck!+$ zl`XJL7}_=Z-FM5-PkHz6A!OTaPc+;BvwOMUCYz-2u?!qLn~>F-SoG@&fmGdy)G^}v z&dNh>0*OsbZS&Zhb##OopOj}!8+0uqe_LQG`FDv7P>Yg<%yf)mzVK+v8YN?$7GUxr z5As`$3XAdWsJmNj%zaE=$8@h0S$V|8U?iLTz74)2|1bM?unub?Wx($mVEPWe9pX}j zZ;y8wb;1uyR)3$dA>@?cXAaa%%y{&67NFDdU*mIJ>&?|SgfTh!2~9XTS3g@~9&xPk zGCuxORz-Gm2EUx9(-$*SP)O~(cV2_6JrZJwF%g6oW(&?yt_x`mO@IDJB<^8@aK5x_ z;~hL(bx*VT_b|v%MCZ?wP4O;rE0`UZhR7KP1*F)?j~+o<3sjJJN9{?7d2ui4F{WwZ zRbHU(Km>PS!e+B+WvxnPBnnYeLW`jS`WpEnRFP6k;VwZH(|cXcjtw#Gc}?(q&73eB zJQ8E!8kV0mbGrsiP!;Z^!TeX96=3XB7qT;uk$jcx3XH|CiU1#X3l>8PhjFy}*7zR1eC3=d}ob z%y3>fp+am`;3$l~)>0iMGir?g#cpbSTn0&Ka{{T9MTNstX^)+Q8`4>B|UP#)jKlz+76nWc2ur z>$j?0eo*NwE6)bA)&3a%zqE1RKfn2w)P}_v&`9ZTUWYsVY2QYyatk}TlPs**6tI=}n@#yXrpRZZk@l&>2w z&Q3PMvPsR50Yl5{Fuo%(Rf@&B-V3|Zl8kOloe(+(&C~^{rNrr!I~y#jyn|Dr9`d7xRVi(WY7z1go*(a7@UcALdwV=v50pbP zqF=W#P=5IFLirbzfsfH%3QzDoV%AQm&F;;NE9I1Lhsa%*A-k+XFUiHdCAHmlEFGYF zyu8yJ9$xtPh!~vV-@?pggy(0Izy*DJ165Q$?@Rc*cX{xDoQ z=+nCF3VIcqO1q_+x;qZY8DGuA_U`0i%lP3J9Q6U*&b*d}mF=g%$q)7SsUS;y(-njc zUV10;LiF?ZTVL(M@(=u}!hia4c)}DAqA+zPDOvBfdpr} zLRGg$BM0_6ss|EDkrpu;5}CWls|ToshnnIe7wmSBc&R{OSo8l9=~tFkn(y}RiU})d z^A`luW0!TZ`A=%RX!ps)fk(Fjf=M$EQ05NLJFzN(DM~m~YxIah1<^0{2gRp%WuuP5 z-u}CRrdoQTVXxm4jU2vH;`eWEr(ZNDEY?MtNkLBVep(z_+n5?>Z@&(RMlL!>BfmRG zw^J0%=K|7{V149Qo@Or04sbhO60|BOY^N4>am*CKKEs#_b&b4rQL33n^XV5wp1%9#FoE!qNR`eyQeZZP5%9iN( z!F<#_Tmq&8q*7dfds%LfK+^u`7M?X*s}*^q^|_Zd#^fgTlB|Cj8WT;5+Bl0K_}n5` z^(GWps*c<@KzY#vgvcc5ogv20!?vLOnnm1%R86giHs?iUB=nwoY#BT82q+|b4nh}u zI0t{N^WgXY_Of|tm~0aF=Z)N_kM&`V?3?jGO$j4{k#VK!eGk{1e2Z8<`9 z3xSTPgmZN=t%tZPUnNAgU6_|i~kIj3RXg)(yhby1lgn;1gL{Sihl84F|kAsRnV-ylDt)GYsD`sVS@oY-%RQ zzxr>m7N^7Ib4Z*w?Z|;<_wQhl%<7Gs{*8T6Bu-D6h!rcqpZU|$VXW_W!2rpn@MQ=dQY4b!t^_G`2=Zf zcz*IS?gNT=(fQFhlzwH;Yj2L?c~XbG5xnhy zuHjkrkQBBDQEX(U;714C%Y*c?{5DxRB+i4R&(0Mn(_0uf3)Fg-K>WR2!Q5WFf-%@Zcekla*|MLHs$F#kmBgPn}=-(|voWDoq1pacA9bz_&deVN2#L z)^N-}!pdM>e1)#)xdR`yZq9jP=i}a(d0{(|@68~5oj;k(a`)jsPC_@3 z>RO->FgZI8@oju~!r>d6yT>DTy%j@`1eQR4=^U90M?gSjopALqVRdup(FB;E_zRT| z$0q{b;0F(g3Kv@0vq5)lG@=3Fn=71rLArcmTxL;rf)(9<+Pz07o7{2sNX)XPNu0ze zFDN>XR?1!$?p{<|My!O{g<;v@R*%$g9ntOde#r>Vf1~E1yZf?roe-`DkTAq!_uNV_ z-$V8NWhX!!^>cC4?Dp3#8?Tw&Q>%Gi{3BYGXt;^apg$A59^MyS8h36Y#cREWih2bMT0inw`3y&Hyj^^rn(Zf`R$0s-4-js)Wyc-kE zhW)E;S~Ai#(O#;ZI!YPRi*65np~PsqjD|&N5jN_!pZpM-t)-e9|4<%NQJRl(KQ$sR zxXvbrfXmB6h0z1ie0NU$nwH7)40hUBd85J?>m9B9C2j_xY5>g+qQ+Gcmtz0_c}HAA zy(3~`tBDvC-;F1Y?m=z1S-6Jlw7e@<-@e89qO)nB2N7mK;WKI&jkHfy!nu_bRVP zDrabi=Lv52jXnDQt#j?`jxEXn;KjkZR)O*OiUN&}bw*+S~%xp~N8A1!-QR zon(xSpI8@Kl_S?Sg4;HuSUwxF=pH}1GoopwkKaHuUvZooKn17@WXpxGn0>=_4v!8uzCLD?7U47{OVWl4gvmVWcStCKpn;2EEcSB zP~yWl7<)6@6nYN0oG)kT_;+@6yZ$ERmk#X(O(aHDkh>4{?3tJe3*5eb|7t zSbakOAr1d~a=cH_+8Qfd0xkS_)freLvUrf3kPMH=JcvudJ!?iiv(`vyV%Z;e5EnVCR%j|}yN+!W4jUfrVE^>tF0Rgn+=?V(!kgn9I7vnk5*JuM`Pd(` z!qMsIbDhf@Ud;egY-BhLIoPqb84*NZ*^u>2TiGnHpu5b5>%H0CALHygTQwW*v|1kX zeDR*DJEM86eq3>c@RRY5FfzFh8V#SePL-x z_y=Plh7_WY2L z`1KJ?yM{R@ETcXm7&quZhBITJXNkQZp_EZ{Wcpz9U4pq1N=rIx8HB_CX<;feJGD#xscF9JDJ{uQx3op9fn9L)tyz@)Pl%bzJVWu2$&Pwe0Et0(IxV z6Ga6Nzev?H35Ut)Vv!C}%(0*rJtW4PWiDCJZ(QbKO$+U?g7V2KGlJ#w1$=|I>GQRg z_G;%+J2#Al*TVC4^DDh~!a;Api|h^Snos51pAl%Zr>coS?BmeWo|O332Cb2^uDrT< zqF;)pu=C6L83??`TuJb2v^r0NilZgDL)o@QTK1h{<(I0Xu-@T1Uv;IGq`l&wS$|i? ztcOa2($>E}VnpArPhGXK)-g*uoidXD`w2Rw`Phx6BQ@2{^P5kV`9_)C6!TYg(32D^ z8Cb-mv`=44U0mL-ET^qYnj>?bX6$p(j1si-yR96L!W3<=t(BTT-~PTABC>DXd6Yvm z4SAiPWF_k7V0ZOw_olOR9p+J*Q%^UHe#-mZfk7=BF;Z9x+xSr;kT=`jsW(4&^-gCJ zHzt}#N#2Co`sv5*t%$#VG$a$bC;kq%(e=g%)_prS$w}ysedLF1%3axxA^vSKh%}l< zEy0S}st5RPpLZI6%0>zq@)!GXHX(v{WAn^u#qZYT#fGxCeJ)B*G^;Jm)p`t)E2gBY zXCQ5;*inZx$tkRs#!7qzDY!VeL{lo%)G@Y=;{Q45-(N~y3tgN4MKS+d=;OIOKn^nR zHtSIwK<`aXPWM-KIv=x)9; zTkSTm13+j<;!M6PgJPwTzb3lr7_0XRHzcMXnv$kx9EbaXe`WeM`-7n_PL{6)&xtjO zfF>}FOQR(o7Mc(jyL8K00@)?E23s2~G>4I2rJ;&%dng@`RkbCEhHP1o8Q~ZvVeS zwH+^;_3o3I)7N;z!wbFSij_;S%K1>u*HH8eb2mX-%K{ZTLB4k&VWd;6P5e0vwu9mTP1`;7Q+ZFK8)_%2=iqie}KOLyI&l+i{rorL^RBt`sxs)gQm z58|-TUd^CO>OTAoSr?zVb!)@NaBbvw_#aqHeBbEGcDB84iO)z)(SVI(sDr^Gm9`TA6cjD^iaW#pGz^csgcb1y~@Wea}x&l$Hl zz^xGMWa>_hvu^Gu`Q?|k$}JXXJAJgB83H$WriQc`-+uj28oV|I8uME!GXcYxy965P z#6`_$0(KTM|5`$BXHHbvM_~*a&(Es`kk$qRq5XFy=N1q*F!#Q&N|dKD*ujxb=g2?8 zOtAFsSZW0~1`As7)h~w6FJ(_AMefXA+V0)+4}_YUXRhCe1V`o`p$9$K#VNiD2>a=%@bc@v zv6-QhxZ1r}+tW{~lcPLMd?grIp5pY*+vk&YT7i~Gn+LzPy$`z2^-7FnmYUv5-#$3K z)W|dMdr4JqVaZOH=cxOuSUqyykYDq(O1y36ju4@XKR}Lb_5Z;oX-#wwPCD!1Hg&s% zJtXmFq4pZLWFVjUT?0v`@Ba&Z9{*}HS>al5Ldow|rE`^wLNb@`utiH=!8CW7uza+e7gKa4RRjg-wrzKy)$O@=Z4uRbj(H&QvlX7{!`trzcS9Qd%#&0Z zM0YFm{kwGH$pqz{KQ@Qm^@1&XH>+%9ObRO(5P)tL0YC8kjF-`R)E+YR6E%Y8Fu^fn z9sy-ca;WVD)5n&{J#bG0`|jDtyjaNVlumwID%6W{CT}<%nWlACHS5^o^|8k-fH-dU z?$UfBxo@#c-0d?(VQyH7T-TXuXDJVG zSJVPdMjw~hk3c>s`YI3I*Dc)_!j#Lm%pv7hoBcUEoY6S$xB!y9=#pgut}#UcOlgw^ z?7Yz9I{Ji+X-|78{q{>uHf34fT13YwaZF-*qo~fAhQ3Xx7z>f{iMC~(Q8y@PepTrw z+U#ST{>LGqop6$jqaoP6E|urjWQR}L^;4kY?pJ!VFt(_&LMxZr*a{3~=hyiwC+p@q zKZ))3(E_JKek)AJm`bLFAY{1~0mPjxZQ0LT6~)iZ6-N`-{p@|E*}peuY1n)t$D%*B`}v^4@+LYrfj_;GJQ2sj`?MucZvAwy>eTJ9*fv%M2w5`C@dVUicyEfOi z#3&rs6G=Avsr0jVp;0XIs9oH}L-g<-^q-}J;>;eh0t7m-d+&#-*2sOx6Uy5+CtL@Y zTF#74OW)+hCJk0=9U1AS$A)O!P4fe^+x9+Qjn}Ae3Il-899b1pqdYc$y>lww+osJz zO@)N#i&n!3k6`^iG4fKY!WfhMgivjKH33riPjlO&$&V_ZuN=~wN!5ZHr>AT`-v1!W zOA~x^XaAZ$;zf!otG`98`tLmdxlP*{j|EBahGqaQ3RtA&5Z-eQl$CO>Fn>7XQ4;(r z02J_6Gww`-6#l*nYh!LP>6NIBN}a$_r5b)!{;kViO4!RV>%L1% zzLrT_V1|GSDLum=FW$&=w}g)Ve?fIq&l&xdi7Ky^*ZL%(CX@1Zhnlvmq-2AriJ-Au z%2*;)miV?fA5z%~cw`c+pA~ei`xv0|x3Rw2w1_}C`R?u+h9^CeAfXa!R)FXe@sPny zO-V!a35ZUK9qCZZE$-*UPcI}U!gvLjfM*o@1CH~FBGdVV?Mw+TZ{vk9KngVO2ZVcS zD=0TIN8$^fAm2=W%C#vH+P+~MJE2`7<}!}$%kljsrY5f|`Cmkw@m}IYVz)c$NbB}H zofX=0avC(^rZh>T9=jocw>`F(?hom403eCc!7bGI`=A9s0P=Af7tOvZvxXRS2h7kO z#|O9ET}{fTD+B!yfnFO=^+|!8j}lr6PQ6NhFCB2d5@#jXzXhgWk!nEB4f^S`)EBns za8rKF&VsTRxwvH(hwr$^l+Go`i_+i>O^fBTyWN!f7lWsiuZ0~%YX&md@_?+%TKptlINf|&SK;&D zNzuuT7CC&!f7O%Mg?DNtKo%M6Rw~_Tke%PKT;-P=(lX?54Anat7EDei1u8MO|3-<3 zZT8qIjU*XbsQnIo8JDpE{SQU1>HlL4`1fRg%NLP2dx$?Zx#89bpWP(~+KL1Wss{Dl ztG6JD09Y+jSvk<-&5Ztaqjb-Ht=ve{W?0Yq&^+V!Nce1CXT%4Ixg`dsFT^w_N({x`%VlU&luWY>5ZY><3F-GXvvmQH{rYz# z#3}nQs`{~N-4VWtb(tynC>ekr;rVp_&^okXk36uY`+4$ZD;2Idc;&hBB+Brho&uz$ zK>!)t8;mZl@eQ<`n8bfDX6`8(=ePd$OwfCG#6meaA-qc)^p|3>yeqm!UIi|jJXxP9 z0Qz6OAika|kZM46&g?4!Z=2!_z69sYEa`rE@ku2n{TRYJDl=!=y11J&=-2IUwz&EI zHAv1;lo)B60M$_Cr;l3tZe(}byHI~~`)>5Rf)q!Kq%&otEt4cC+3Lq8X+tx?zlRjs zht>~nStL*fYc_`U6c%<6&S?t@H>xQjEQw#E_?K{vR1HZ;PkqX>XOsMc5Y-rn{j$ z66G`d$DGZ)eQ%=DRgba1D|%p`oiY;f?~_47xTsIQ)8XzSXqz-z2vCtvJ8@r4m4vHq z)V8LFRHK?9P5|_A|DzN2wO~yl%e7rD3VFgu&3RI&Ix7debyL5YPUe7$+6P=__?e|MaO%ddBdlaUg`S&hm6!&YX?M z6A@l|a|4O<4p~Q;5;aTxS>HZyYGR9?UrQ)Hv*Y8SGD0lhq4+zKUXrDKVlUTIst~fc%EZbUh{Y!Um(wlIoZduu#pFcmA+w&YH>5B#f5X(*aJ zmHcUe>1SIA4Af1q{~diwGN0}X%Gww%LHskW53o^{_y$3NmUL#e@YqMTJ zJ~cyaypSM<^`N%jsk(oE{mc)s*S9w$?IJ2&Yf-}>A$P)Uei`E>=98!jkx|Iy6zm$J z2>96AB7jq^59<4mshgieNikiE@>EUT(BdQyZx?NZwiW4NMNNOF+yP_vp6c_JgCLQ; z(Y=NBMRn;Z{gKwH)zV+7TcSjLvO6@cS|129mr)w7<%;>ee$Ya@<2M6sF&LMfly#h0 zOHr&>Vnqm%Ik|5e-gXv%?;=bER?m&Bx9qj421dZY_~ z!r-R!|CqXN#q^oN%{{*zEJqX#LGFECxJGB(R=$rX%*y&HWKuXrq`HK?H&(;j&*xKE zlDf}3%ZYggGwt2vfQK3r{3sC><_X!qFbx&K*XSR=L|yA!Q)T0z22&Y>L5@B5>z}`N zxVu?!=)l_5?xx$%`JZ=;qVuR`EcL_Jd+K0)nYVe@&cmE~I{#Sys~0O>CLxDQsKLj= zN)~{Wpctoao+{%_%aQ?miD_T9c2Vlzvim1lVucw=N1&qJkc^?XAGQ;<3b9GzGuYE1 za?c(yP9;qT{oVpyzO~_eQZ_fqD6jh2nx)N!)N9?anc%SN8gn%?I8%S@+fW}N(k6)P~44Yl)Y0VW%TW_7x+`*xP;LX*P9v_Lfd-eZyg)l>sO6T-(Zw}p?d&v zW@0LI$T1E>nT~V5r7@iDz(Sby{Zkh9-~#2FL1krU{8-|LZHECXz8%e@a6|uaF2_)4 z?luQfkzZ06eW!9cKJ^7u9TltX7-05N{A`)G9BFBY*{o6#dtC3+ll9fVSHLl;yGy-W z+4Fr*U*%nVfLFb*l&^p481b4%Z+S-A;@$cXw=>b#+9S_cEbcVzN#1mFVcT5^>@{M{ zJsXKqOrdTbgKl>O%dCw=3wUbAU~1G7{^s9vN3QwR(`T;~|06hYJIpLy zzFE!^=GR7eY^ZW>gCpB0H;tom!@LdQvenw|shs{2R>cM=ptW8uqGWQZV&h=I_I<$h==xb0!c|V|{{hz_r@?f8D{*W3peu0a-4KkANfdJBOj7n3^+H1?3yBJK}db z%jP? z)E@9omQ`Sny<8@{;~qO*7M*tGM5=zySbs}-LYE=(b27YL6S_qn6K^C`NXdp4tp{Ar zK8DMD#m)MAVv=>gt<_(9de$QCKhDBtx`I;zJL2nq^@!iLSHyD=|EA?#r|A(yD3bZr zmH~##XM6Q5g!fwdjOz~s>?Y|)*C|QymlAJmDSxp=jlFt(cJGLeM6%+V?{}l&m-hq{ zmP0SsD>1K5Q_}g$B-025@r;bc!}W`{`ej~Ah#yla!_Ze%vdVq?dlR#+Zaok^C7C<* zb`HzkTTif){UaS0v48p}N^O@U<|=c3-7LjW!IDN*>h+R^U@xRx857W)jSY)BId)F- zTJE|dBC2F49<%+s$jEK(8lXfMY(y4uhkiCQZ68_xSr1`X#+xx#gYvJqfcOR!iuCqx zTiebrBIdRgc#FTPipoe`yFRK%|4VYH@~FdukQn@omr}lCv<|xq2R+>F*V3Ln zzb2Zvc_H4)EZA3v-K2HDvvL`31g0P!g@^j$@|GHkHTgCPCT;f>RxC+R>R3}~xLtQx z^VA&2u3K;HBT6n|<3eWNU(W>1{tD;`Zn{>8Q@0nsW_WY%94nt7G43I8&B|{qV`V{x z(HlNm!o8)zzaN8h@KR0o3sX>LojW8qiruWP{MhK*b0F6zLx0X)lk#lTctde*>gTBc z)n2w@>Id>Q%b6i~;h?O!TqBujoY9$S;$vN$k^)NYjRIw+WKkE7K!bn!&v;wh(YN*? zMlyN61}a&2mW|KZ{G%7->Pm?3M~(NY%y4q4{29lKHKXnHS|xp)|5(7X|4-ey!j&Xh z@q2__JXVqwYsd865l?BR?MUQ_ci8xR$}U_3JZKlg2)ug2`NcPTYKuY*T2aa@ZEK(N z`CaTIwyI?n-mPxcMujU(D{IObR?Y9wd~GV$LT<7|cneF{Uvf>EC?BB!%jV6e#1%s0 zj_$sIo(MRV#n+{LfczZJ+y}j%tzTJ+vV9Cu-K#b@OI~8+7bYBl!cz{k)(LzKhh9$c zV$G^A6c;Q7A#?OC&aEwox|yPhMtx6E?x^-MnQ!@f4bQJ08a#ENSX9QArf>FSun=}} z(JTNa+S0?;1IOi8`tUCeTKW-=+4X(-FqpVeH!iweutKsDZMk;77Pq^fBs)7RQKZ9) zHX#0^S*Cer4L@^ZO2h~29gDqxWk2h1e()8IsqH(`q8p10?x$n1t^<2_g-UI2TwMnM z)Gudac_O!e&&cx0qk2}i1_(=9%9u!TI_uN6J^x(G&-i6!U#L}0IJSn8;O^zu`SEX( ztj=}8N1XZj$4jA*!S#Cb-L?DZgQA5a@^$f)23~;Y4Ki*wrfVNQm^m}}GOm(weo+?` zYy+_O>ZOE@yz~;axpU$7sc~PJ{(VCdKtI#~%x#m-D(Y`vN|EW>(u>T~91fis6{?W? zM+B7;ZS(()?8>E0$92Hv^QS&Uz1q84D1T_i{S?PtEGpSPYFH^g8s4GhdbWfaRS!YE zoc^%#Q&E-3_)FA4At2&es0MtBTrHtx=nztsSjRYSgHpy&Y(6!BuM4 z45`srF(NHe>(^VY+gmlFC02qUNfWf(+B-sBBNAJXU;aMN^F7aVo^#&wzVBxRR8B*u zSA7z&Rd9bfP1cfy^qAvvqN;1+;#$P!9IbNPVH7eUzCxO=PgHj8kxW#s1a)x6iIac) zOy^2AI`Wck*d`C0&c1x8shWQDK{=Iz`klEol;Dwe@?#_VQ&0+V0i%`0AWP+!FY>tz zmodV1u@*l>g{#?M;5ad{`qjeu{(=BZ&S56Ndz+I4GT@sa>ml|v{ZQ+L?Pan!x{s$% zc5Iw!BtpaJF8c??Om%Jde>M!$#^ya69owi4y7O7sNV0odY5HZAgEgEhd4<{G^rE}O z0|?s8GNGuzbf0q9yVx*~T|m1nQf;UPue#fO;Q}J;U1P)d+SDb8TJOJHY2Q z_#2hLZO^SK33(SZY{z1Sd%p#vu-9~96(4EYBqnOSncdct==8+(im$Rb&cIJYx_3() zJm_i*QWq!w=|G5_1{9B+DCAE`H9wtC+ebl@_x0U~OcN*F`7>n63OY=$c5VWpeUL`} zV$#~Ble()-$}+DFXW-hpa%kVAgStkhq4lYCb?2#xzSEwj11~oR5%PVBQiPCGj{Zy;R!3WT#k_T)?TFfiIbVk8R89Nv94_ z_O!G7SW?FQk{Z&@&$hb%7w2BJ5=SVb(oWmVK^^&Tu@U{oqnSN*YCHb8?#?oPb7Dl5 z`=8V}KCxQYDK?UIjBG6b>RbwUsNNXVGQy{%l)p30&!-+%g!TFrtAlIAe5)C$qLYzH zA7?-NwB*tL`zCNgWZr1z4jszjR22m6v*v1g!Gtzu`#7O!_f~WNO9R2yS@A(5QiL^o zb9~^m{9Rn!arXu|sGzrmr?$jhC9(qaU6voe7Fuub0$7>1zgmQ{v-Q(-Pl&&o;%~w| zk?%_{N1Ru2#6YA`-@>mB6Bo@@A`5HDl^K$!i0ywq({7>ymW+08u%@&>9lW^-fTW(o zKLX3)Gr^S?@f-2-YDUqrcZ(a@_q&dYFLj^zn%|ILI}Z)t<2#mHxWjt_?y3Gmex<5S zDdgr9QUtk0oiiKSGo`Aux-dz;6nT#Vp%Rt&{7?hg?htSuJ_d2)9NLIhQ}yAmxjJ24?HjEx>Gz> zc8|b(V^Yxv{9~}n33E4%Aq?)ba3yn}hW*TyTzqwHH2u0DV@g@RN>xyd6yg8d3WFTY zmGD!cQiHU6O{+~0^-$dh0btsQ-~u^@%U6(bZbG*8!ipsGVBl$%yNA3vRB4*{kw*|g ziPzC)zXACjTwU#^`C~fZkUyB7mk=FS&R|+ICWF z`Czd5+MJ-09%oFsd%j5R9KPWNs6naoAeI>N#Zoi=} z&Y@ZoFT6r)Lvd#+9d|+pyS0WAUyst}O<~Bo6`!pO3EG9}w*kLPWMA8x;bn-WRZ+TC zlrN<2xoQN1MFREHOI9xbGLBFgm|OXuFzVic1#BA3dbj~M50yNtU_|BfigU!q^=}J} zB`?E;!Tbb0m$27+6VeMpCCN0nJ^Cm|zqsf=VE~hmdjdOgccVTjNb}JDN4m}^u-_bD zs3X3z6whb0SS4nrLyF~i-kF-d3sh!3FRAdIytZ9=G`~I)>U~9Y;nAsx8dGqXtS`8# zz5Az+QP~0noe{H5?1A+29R(=8*4&9|@Cbq|)Mx5uew8Wa5vO)`q6_Uu^-?ZT*OJjc zN)|r0S=-BYZ7&6?J!{jgYHGhX(JY_6~W5J-2UOi`C`GW8R>=6Jf^bVrI|te(d}#3lSK1J%-lt7Olwf5K?kM z@PnYv!_Vh(>Gt6;9mK-@_MeEUg3dSD^`%h!5Ng~mFsi-1wc_~L)2)w*!GZfVj%WVb zreN%!yozK`a?qi|?6FepRtZQ`Q5;I?y;&DTfXHB~Hr4ebUlMBIs}{>q8q40Gz~r** z_tl35AR)xA^G5fl{9WRw@4aH~ob0Je#>6yz#lD88ogvn;(!Yb0(oVT9u0u{Zn$*r{ zg7odxH4vkJ;u75}G5xU^3g5_heZ$F5Y2)>=DY!2?pZc&yMa1p*_qCZd+m8OzET?pR zi;_gj+WZ4h&_H6xYxpv=!ow>n`y^Vs<>+7OSTHxs#kAEd6H)-e(&5{~I<(kD>DXs0 zaO22O$?>^~@4KG`;qeG~eMEnmhgXF0#oQH!5mqMqOY{UzJEzwZ&Dgdtl@4b;zFJEx z-B;F2XKYHUG%BZ!vGfs`u82dPI)bj0d|wPN(+vO9+s2O@|LYdw;7#b?0h}lWVen;q zE6`3k-IqFG4_C@1d4YR$5T$mbvpF`V!*6M;Jv#^mo1QmQxjqTb`s|K>>~9u53R3x5 zKwi_nv&eB@>X6UAi!PoL^@ZHKbM;tikA3apEAWyb;`i+i zvC6nn>2yPT;EybZtX+J;&4q@qCB^q1CPe^YmAyJDho*@Yz3SkR=(+>=3A41W&S={V z8eTO^^aVC&oK%+48>@_#uX>=gb5>1}t^3J89#Zz=OEkQEfODA9?!^_#UL2mcx^eEc zLK7E~$lR6DEeFNNau?bA@9^#v)4)mSREA{KLDEUXx%+ujq7Dc-$sYYvyI3 z_E65;%PH`=ZQNan6U=4xQf$;NFU7a*Wst$VCiSy%ioo&#sfxz$m+(w#F9-v9X?~aV zj43y4M0zDD4pBhw_T>0 zrRcTtLUXlSsn*{#XkhCO%sN)C_i`)tP}a%|T1g+|i^yB`mkjF8hfk-R_nZ(J-7r4~ zME66^*MYm=c>X@HF_*1~qb3cn2`1%kaGwqqd;T7X$hYR-Z1Ch~y^#D1d&$gRd-ECB6Vg}XUY<0k&Lu(; z81Gf7UuKM@#db`V%%7R6nB;aZ?LG-JDdq7-AK#PUCB9hmlTdcppURw99IHCA#*nB# zF#Bg}6OL;=WHmKVF8>asOHCGRXtD&agH|fz&g6T{cI`eP?f&;p;hB-wfX*h&cb)zU zGAFEkDoc12hkp*+AO@nd7<+J?WSoq}vXSIOver~yXt)=h*N~sR44(=O&#CA23DDxm z;uc>??P*|dEgat&Et#ueoMZhG3%0EV1E*nQYhM6!DIo2-0!R7xM)GkKA8yhMtO6VUkdu?+&#ir zZ`A=(v0!6ak?)MH-r)X~iftS9k8w!^aU8&d-K=gFaAIlQkmkEjvewP5^=Vbcq)hWw zVr&BQ719(?1yhcd@vv2-S!P!O;}*eO4@S#vmQTCt4qdu%{5_^oCu#8t{+GJB7*drG ze%@9Wo6RuAU_W(<>o^`tRrW``reEmjkFk6Y>&jXE$4<0627qK8-gNJwMpux* zy&|j2rZZ!^IxLtL1>BYDor%Ui4&If7PPuzM4XF%12WbBg7?M399=*?q58dhg6Yblo zK08THv|iSiJ?&7}MoN2F6l#udWP{Oq*(|M_iGJHD%WKQos^D`YPW~OPb}r+M5GM-s zJoThK-j8Sd1&9`@D0r06<2}5;Ya{PIUWOAz-A=ikc$FEagp5mER9Kc=-prP4^}790 z-9XP{ge1NXZk21XGl)z|{(!xM6e>YavryXKN5!qBtMD5Z^GAUn!|@Tj(UqmW5w-8t zn~}3{T>mb!$UG9chVt6#Rfp?zhFFyq7;R3`(*pqYT626P@WEGyKZh9QaloLfTSwEk z`y(O2n;U8AX5Pp6KXiA+^Zg-zG{7lpcF5)2*y0=B%j5`Gn4o#kFGQZ>s^8-uCX-7H&( zFj3oHf>D3HHxtEP$u|Wbe_M!8{d)A=$Tm75zAwTJDGz6-G5(g#4*~a<;1PG;n&fxI zY7^dS7xxjsv&#|jh@Y-7s!_>U^q~oCBTR%43RqoPh%i>$R)eV&er+`L8;J4>p9NXc z>&J&QK$hz0!>LP@FY~*dPP#viM4qJx^?a^oxmb?7m}m?4Z*RoQxk$&jC6mW5Cihv1wUk%QuY%7xT{f7dXr@AM z-4W_fYnC0Gw+gL&~-Fwdb5%6hW!4$Q|x#a}kfIN!&(?VJh{{z9Pt@$hF? z-Pxi8`R)iMZj6_7@QM`N4gJ+sOcpbf(XS}vYur&KVyn6j3{21+Eqv^n9sy(g^5*r` zn>f}zpI^;rQJh|2)W=^qrvY2TiCRgaUYMVE2Qzdm?G^P+&QYV~YyQcV3(6be2VOA#(1$E2GkGYNJ zx(gBXJh~$if-hK=VvFI*f@0^q(aa{r7-gqweH2hd3L4#6yV`y5c(h7Jh;K7)=Btm8 z+QvZ=R()!Leq4AsY7vy7QV$JS*GU;V{fn?|3(?s}sZ=m-46y>W!v|=vaM^o(v6#~1 zw3~G?*0EQnsFo}SZgy9f-#x39S(g`=w!Q&~_$Wu5Jp(zym z&8+G5ihHv6r7eg6|5rl3e5jq;l>ZCS)yzFhLO{#?cC=_4IhmoJhfy0cf1Y&D8FFPYD^2a8F1B>dau_-$DNSj~*_as$rC%&%D}8KA_#xBoKs^t9 znDRX~V@CxKWBKw2%P(gJX74ks|LGtsZSX;E&@B(TD}|(2GYyHF%t7_((+faIPsH^J zm&MGZ1zC4TizQ}+3-GurLf+VOHj}w!eO$xDRx3;vZ=0;pGF60D_yY&LXu!X-0?pafA&#jNo&@2UJBEvzw_kL-njjKW%RS-+=C!p z!i2w-U}bq<>Xr{Wr&_1I^^Fhc)p%u(55mJ;%ht$1KlA6t(#y*C1x-_%qsiE7rSm-_EMg+BPq? zAtS=WyZM?#fJ{Qid%sASru&85D*&Gq&HN%#u0KK>9A8mQWgdb9){-$lDpsDCC0|pP zsT|J~03a9Ez!NJe@hgI;m3e}mHcNl*a6x%>4=vr=GCs?RT~KFHjhj3hVg%Pl>Uqs@ zg*aD9*Ktzx@69@5VdOKY>vSPq0JGm8#GIwOsO?;%F%&b4)P~={KkF?hu^3)pKG>HO z-R^?g$(3iTM?(8eNWqjK=m+?T#OHI%Y@|$EKtsx06rOHYr#d!s&-%)LGY$D5<&~m< z7hy)uiR?v~5PH+j5Ms5gf2tYmx&~7(bqTJzw&UHi_B|$FecWqlGOh`Hz%Vg;CQ)n0 zNCbpQXzR+_E+Z}92Q8QcJ7JxQ^D18H5dE})R*9andH!=vofWr4>N%L^6C)7`0E-s+ z`yM`uuK+&nmC ztwRUZ{QRCYbFk!bqH8}*!@nWdM=R));nxlBJ8qNW!$`EiY4Wo>}h+*@?+g)0JK0uf2#^{@?$9I ze@*)JpQ{F5A}GgEyx1VfIqDjTS3%|NM2g)D)T>_>9HuNc*y8Z4dpLP6GxWckf(c;E ziKfRk;`F;F1T?vUg735aTVtL2YuKdi6h0BH33<&t>n`U#@6#vgE+g@sUKcV~g-pZt zzE0Z*B^=ehqKEBKkLvD-qURT`T++k#Mr)nU_8kp#JjgAk-eV)jp9SLf>9-DY&TWS% zI!cSERS-EKCCcRq!jM=k5-Byb>woH=js^Rd7#--d&rBH!1sTPyJfTc#(G7K>u(hea zZWxUcmxH&iQy78(9CXUQjSn(0Q@!u>M*@K2e3F}XF`3_p;0|Cy+SlYLEvzbevcB&* z`ZXgQL2C|S=(!uhr-D+1mu_DV=N#^r5Vg{;RCIVt2yQL4t+Otf8ALn|i~RF7Go$a_ zh%>56Dl=VZjL_Tdn6I(F=2+*wET35k55ICLQ{jQzY-8jB;Lc!;k%yvOd%v$pOUa5< z=H;m4Cwg)tE1X@ThdljaW(@3esYUwXFLUWk+2JsV>?mRreAAr-sl3W<*Slab77dik zq-kafZ?6tQoY;E6sdhO5$4BiXO@LE>@=T43{2FglOsl@z9*J@X~)ArgV9~*Tn|NH+*bB$BO+3^wkIPpCGn@XOpSf#!K3(8 zXEz61k%*o$B+a-&Y=0d3c`Bs$@^J2PZm4}k_w@61osK_kK4qx4b)g+*<6e9N1)5Ip zyw~V2OYl7EzU&KrUZDX8FS*ohDGLgT9CQ|R)GWUo(3Zs^e}c1uO=BUH(;Kbuum4?o z84wy5MbE=)0#MUdk7=Pjc#r0E@35Zd!`dO@H|#Z{i2N|=xm-9FC&t4eg2c{b*lWkF zf8#e*o!NA{ruKQDtguXD+uX3bCngoY5oL|KhezS$YLOWhQiYpnQIrYEA-Tw^)X{|>$|Nuv4?B7*0Q zFbLj{AwG~`qET%S1_ggj8zCrV)S>_)kHO>cGak#4=aob3TYmaSmTbJxo?`KNgz2Yf zT9vvSls4)XF_ug{Hg5%M`bmqF0wi3e>J}1Lh3pOsUKP9!T6g=ZIw0BNHyu)2BH6sy zM8=t< zvJd}NVURdkLd!4AQsV*8Cue5ChXWffUA+;s(lhHpM$}ic60Tm}ekx~uSmG?Mr7C7S z&^*Uqdvv6`@%LbgP0@7;_H&=4?^{~Kx@r>KQgdcEB&bBU;wBW$(fNEAax4KtWKnb? zpPo6E7ExvueGC8EjM2m1&^t3iv>LW~43v90;UT|gb*5Q2wB+K;J3!L@qqAFD6J1-G zVE*moH}IvzBqDgs&BHfg+OB|r<3vrC%Zjde$ImE-|6+6~>J%cD8B$iTn!HSL_vUD` zT4K)#RWE<_y_Zx$uL+7^D$iA&^gSM2G-}%KZ;Wz0Ezk^1d0dq8<6Nyu6X_5~OfKQS zrcNbs>UY<9Ua z2vxWKgW(5`Tk?1Wt3>gc+|(zeqwX7D>(PrCU5}mve()+*m8cwz@j5p~o@+m+;CMXc zc#p8txKccSVS*Afq=$XE2JMcJJ=Ad@g241GG8UXUEwa9YXp~$q7;6D4A<#y_7OQvL znjrO&Nnsvdcb5UDL1@O-MY91~z>=*4fyR;w$1}@_5imo9yrzrZcELLI;tXu-psm~{ zT^$M?L;kJiPaGogqRmU}pb}Za&<4*W@@!E{0593lXnfu7{cy0#fVqNfgLJBH~k-cp=9d5KjtkE zMLAC98@|`4YE%pmeK2}G@GHaX&uoEc*xHwQrkT3FMBxW>O6iS5ySI%+WR)b8UMA>m zFbu_D%m$YGkN+gY+sBOS6w62+b!_h7wf-nX_Q}At*9mAOWh?LqQU^rE2pUo?f(@@< z4#BSM8tY!xDRd}V*BX`eej}?-72TtL&i}C3eQUI7?7`M0RywTkp%4o}v%0Z}T{t}j z_kS}P1v0sZ#7 zi@H^?w)YT2N|KuJ3e`MQDQVoy(iKh!mkRVym_|CyAIa(%<=C>bPF_{o%&Li zsZNz@f+f{|rQW1C_j!BN8v!o2kp7}P>}~RpZv1qRq4~5dN7P>QW6KJIGL6Vls@7BD zh)dzuKS_Ou$TmF?`_2UO)Tn$*J#7C#<#K-xvYYZgWXTMRIR=V2+lf&>OXd4uGC)_G zYCiglQ)SGC#cY@NoCv}WhI(?A9$_?;NI0yCZbaP`?r=^H3qQP9Y1daB9ooMZ@TH=! zDVr9rCdbxWKY7(jb43SIoGFP!NJ}*}MupsNCYRpoMXK2|6OH$9$}IdC?GM}q)rcuU_guRH?IEfK4^I9TU-LJEWOU{`DAPx z6Vz3qDOZ$w@OU>OhJ0H<8hukPq}6K>9g|U*Kna%|8*;WM7*rYV&@NJ}mtONJNeh%gHF5W0Xd$&up z8+_oM690HOy3+`aTAfwqfFF*wdedH`tP#<4`|vsi%g4@l2?B?Mzs{;mHYo&NUe6IX zEe+4mz`ovZw8JbayYIf%$gwZ5N+Ms}8%p~q^)rNr;Ka}_Ehf@DaDro^4Tf(04Jpe) z=IJ>b06I}x-SB&KLK6AE><;;UqyOP@DOIsARS4H7mc)~3?E-bh?Bd81(G9IKoUbvZ zvUnYDmM>?}b$T9J)%o;7e@f8+R!hqIu^~ZaTaj?z+;HBYL>&n%icB{2`7hUOR+xb) z)7np`{wzCu9i3oY5` z$!~3$txvK#O!MJfmcP?m3=S8~dW0jqHy_iHxg{vNgzf4Q{#}OO+oW7O-o3@Ls}HkO zDhN^9HjFlJXEE#*sl)=&@5h7j9ky?04ClSW>eD(bVTH|vR0P~+YFj&7n+p%oWyKSAm{)KAGY!cTl_Ol9N8G>DUr_iHF~v>SR5@ovJ%=ZD`G zEHT@pokDsQ8V4k06AH?mOwg58293Z4LqQ2Z+A(N(E^)w0Wa77;pop0$ns>lTIhcIF zDyoF!*2)?PCfkohRO(cvB4p+51vtAhC(VY_^1Ei*s!470cj89zBynA;0fEXTuA8P=Zp5YC zLTf!aSF6}WGOpGOJj-+_qlq`5Kwbu1bBOrBvldq!U7c><2qqk)gXb~)QZ9k8f}US@ zM~6PWkAP8Bqlty{_YX>IrTiO?HMSSAHNKT9x%vuQbwlCxN)VmCvsbebSI9K3M25p?;w+)+7xAi@DKE z==NfEPKRafuO#AP@c{I1FGDkzCw;rtKeU^N1Z92tQc_2h`KDt7lbU~UxmM7U<@jXP z-xK}NH~-~IB7HO#8Mk_?EPG)=b53|Ov$aT6+Q}sBzs$1Z&Z5UV_-n9%YCd;tn?jL; zbyT>c>e|y?OVh8#^q~*c^G7x7>Y*;(m(kaCE{=dtXFnsZmEpHE5DkIj%OC88RK5^@ zf)7Fvf3HO8dcJ`a6dh-NO)$QgjOjRfcvYhC%{s1RdSSO2z{A06*r+zKl>%nm&1ygV zqv0vZI(jrt2J&Ogvv{c05S|;*F)s7P{&Pa=!B@n_v-kS8=+2wRrUIx(9r-V0^B#eF zb9UVtU1sOJ3W7*&FV+}iUZa_eHD7WBoSrB}WcIBsSo3PS6$DrBqIac0wo_jS&p(FG zqUE1U<;UYmXe6kzQ{IJ?xVyGxULqq>OOVb6ewC-vSkXaa)Noj*bd}Sx{%i$<>&{xF zH8bcqfV1zCQ8hO%fzKz#g2%DD#H)E=3-=3eVIpy@5Zf!ZGjH}ahsXIAW7CJXUT&nE zJ(P1_sN&_82ABzdA^mL}d|)|@h~tn0gAdXuRmJ@w!emoTVUA)-rUE8dBwC_?(HL?Z zzF;fys@j(?n6L$KuQxhV<-HO)DB2}xI4*yQ*GDdRChU>~gtU#NUaM82S_pJGebnF# z8LvF@bGiPsQ!C+}H*BTjAt0g5PPvyC0Q**FcoCMM75inJ%uB;k?PJIpfIUI zUwjmQBsR3UP1BD0md3zVdpExNcC`Gu zQ9JcL!cz0QL8DoHq%kU>Nx%Va7~>}4JxJ*Blb zu>wGV$Ns`KP$1B_?axcc_Mf-3be9;%6dMeq*7q*HfSritrhs=%&9uRTl8y2CF-J-g1bgd8npXmVj|X~n z@ChkS&-|~ee0CkQ84?2x9o&FvlnmJDyPHOv)a?fxEsWfEHh`Dr14%_)tLtl9W}g4@ zB=I%OU7FxoA!Vt%c14@7Jzt2TsE2H7+YRjkD&6w=!Cg_}Sa#uV+$VlycVasw!xB8K zuNI@`?+3yR(Plq`bf3hVmxlLL!Nadk>4%~0+;8jUK@QZOdI)0ajG!w+|kVH;8fmAGlix5ylgx$U?rz@^>H1UXi; zgjvE#ov^btA?bLgOzuK|q|@-fv%gzxHoa?nP03Fm{uFhMBPF3uwv>1XNPu_ILPsvxt_L-jC(+#J+n7apYiCT*02{mxX+ z@Q$_oI=!z+e|CMNCpO`)&OS#h>j#M^mY-Si_JZc(9=uMe)XHR6CY4^G2V`oYT*sj2 z_K@yECGyBaBaw)pgvA?e3$N~*RUs3fDsQ+K=zB841q#+~+kFkh1SQVJLE5IfcqBD-$MNaYSw$7A2aI2F$L4o8w1CJ~ zbJ71fFS|a~>P6Y_Z9mnrkys7uyugnD;KG#tAU)Ft-bs88pc=5=&yp#nDae(eG-(5H zJX{(Iz?yuA|7sbp{P5P-2hx90Uj*RM@-KW>NCq=IQcWFMp95gwj4A2Cz_u6|{-V?0 z^M^hoGdw5aOPwaJvQ7a|6eL}9ZA6%V9rzUCf;@fivUuyz>&=J*gq-p?U+o5JTlZCrdMC+#_zg%+j_Ak4$p94eFO%!OCu1LSzAr3) zS4dRn@r^V4q$~|Cd!M7X|DBokF`8$cfoL&6d}!FhC2i5q0$ob2+TWvKC(!dRU)8D? zIJRN|zTfYhI=fmkD)|bwU*GGPsoEU{Uh+R;n9wihn1k1g?opyv=ux_ta(TB8EW~p< zxf7;|HPYdaF6CV64;t8gB|4QUuyRjxCGpJy*6pD(TR|*mmpgv8R`8C+h}$-a5NY3PRije#JcgNX25~TYK+096<$Uh zRO2-@sV?ruYieR~*%Xevq0Tvl9f?c3kV66=58tEsw)&4){Vcml$nZ1ebbFVbrx=7>L%T#~wQVf!8LZ zSu}W+CXSqUZ(MKgkIkVuk4kpbHIoSFmu+i?DOn+I96$VO6^*uD7@SiHv%QuQFrG&^ zQ3(SkMqYy<4(l@)ua>kU!iya0GtP2aeCx0RGB;*UemZRCuX`B+E1AmaF=aA2K+@#> zY0=FfMRM}rI1hE}g`uchg<)5nGyYN`m;5XBeJ_VbJuTMv6vOL(I5wNzaPy*~?@d$p z(6$+WeUlw4u#SAY)>kLe*8+F>oBz%Y{KBtyM)rXxKYuX`SJ9Z+6z!n{?`tW335)UN zvLrwG7H^Ega@swJx!Y_mI5`laLN+hvP{!;z4-*wN?X^gEu*FH`XoI{56M-)egUSW( z=;95gaSw}46PtC?+`Y@<<>A!WkoaSIgPB;Z&adf$3#TFPOk8*31O?+rWj4sGl+3I!hswWh5)p-DX&ONT0-_2)aI)6`oB}NRu6oOPk z)ZtyW{pz|NQC71_O3?w>ne&kD17-BU^=5Amuiglb!3N15rr|=2YqOiz4hCD`F_pKZ z?~dwKJp!90Xt{2V&Wy}f|g*e>lom1m?4@XxGA2Xh8{3Z9RBF%3gE*3}#n z>v{x+`@2%~COWjlpv1WHN~hiy@V{&i-DvXj*M(G4j=Q!l($Z3UYnl>yHlbvrP23pi zOE=cuQg3q50OT{wiLmS1ZXgN75b}ddtB@c<72xryW~Q8#Rdp{!<^I$G9SiUEhP8`2fLaJ^LPO?70| z4&Db)vTix~br&C0vea&wg0VKyJ64zW+sJGVpv?7)js$e7AL~}tDicVF9<%qclEeL? zGsIpYmEnZxsOGYJDkn>KgQf$3pAS@v!_D{0YG2bg0%RJ(xmXS_MBM0VC+YgX8}o2F z6Si1M#C#g?qC2#?{eQ(V1##Vv(1E#vgGk;c!P%=E3b670WiibBxe1#+mClw{A02n% zR;+s^@#s!*=nKo6?gJ4kL9GgFo?Dmjm;2Pr$ZHAWt+1UzL#6au;PakbFrdY?`OO+| zCCv(8Ji)_9{Ij2J->*BTM^Vq7s-Q5F%-7NoQ%lL#k}*XaL*UX~{oEKN-L_#i_RY4R zwZLY|;M&gjOUL_ta{uB2``=Z$i|&8?A0MkVGUS0SoMB8yMHVx@d0?%JgR1A%#`GgQ zd9}lzAkx$|#&sN>EpYOGpDnrS<_riM1On&>WRujDIR+aH-nwGWjwCWRhq$pEy_TW4bL2 zwm^U+T`SW*2sM>t{i=TPLcjnaJUtuYA@78>OZ0ZO6p<#MnDo*Z)0@W2;hGMXzc06H z*Z62jGra`LTRRF5ZHo*HA6)32`EZG0dAK|3^ zP3{P$+SIRhE{xUWEPt0PN82)lG=Q^Fj8}Wq#tfk&jWhJ=*Za-{f1Q%_RVHaYlWR-K zy0l8meJ}zD0FB~Q=jH^vxawA(->ReveZ)z=ygHn-niQG9H9?6uKUSu4I0+{VKV{;q zIM@n2#8AGBxcrLB7#L!n{ulqRfPX&~Sw(C2rZOa?_x_FVxZQ@xbSTSWWT}gjc&bO( z{r;CwpxDc>0)jc3bG`f@f7VPle_-=_E(2#HD_F~m9#!;S%bAP@i0=%+{|qV~cqRp` zvTAc=$oD_zesw6{|K3zPx@0W8IGs%rXQ)cIn2Pbu7P9iQ$1MW^vu{B}hh7e!5BN6g zlTeVXz0Eo4z8#KDzb;UW{XLOzalv^K@!no#?5SNbjuxEYz)aE;o3Vd=)sLGnavH9_ zNGX%mDdHo-7j4X346s#MP~z48IG?t*ICpt8oV<@PSh*Nk9z(@+6tAw&I`%#gGE6DW zx{a2|{%s9QF3kD>9v00$c)fb%*~R->3~(n0Bq!Sw!dn)a{Nyv~&F>013rLy#qRT?+ z$Zx-#WS3eM z>&@IUmUo|uIDK9Wr5ivjm)9p?GT>>HO{iZRQzm=M54-%-Oymy>G>1ZLc$kDheag=A zH9mH)^Z>l1xnHFLzX^*4NwfP5AZ!ux$)SN!B{e>40VqAF>aDt6ABy(_Ajs+wtxkOg zR{*j%S58cCr#>1{-Aq z#+rS(Q67CKDr>V-yg?r|Xv`t$FrQbWP|CePSf;H(;QWOW$|rTNaZXH6gEZ*k&)<7WwX8tTY|I62Ab*%jlwD57e@vU z3k@_0NKHG%f*Pc3__87VrWSRtbvm6e09%M)x@>xHrak{n*tmrBbfES;|MSiyO>Obf zY5wN2O-A8mQ*nl-G%4zfPx9X~+nPsM0)vLP*#Tn@E1DNHM$`XRZ}!zk&4tPA6~0(f z9&Xc{yEi1%yCvCV9d zV|UHP(=K=l^W@f^ib%u>8gV^7_pqP#VcyuC{^3%sGSYx~)K60an*=xA;*pdJhr3vw z!;3Bbfqr}PDs9M3l&CKt1I^J*D);kzx(6a3xVP$+#*n$$Fo(T?*T?(+9iCGt^^YX zLDOhLSIW}P!5qDoUc6bAX`R#2^^hB6>L$A@ZmWLYi-eY9vsj&*(XBXC+Jh2QC8%Wo zIiXsyV6Cru(miKf)CG-hx%54*=(E#7E)KaW?2;=7Z7F>wdCaVZ7>@94H#g0B($XBj z!uU_%U$^#5RZpizi~qLWOUDQLy_*hNp>NwNQW3u0q%Y{9?nG8 z7N!3L@v|ztAB_G@9*8Jj5yFMpULASlJqOnZ+x7*<>tp9Bfe#C%xm$cRsnKf&DyUi` zoV2M6iOn0q3Y%&DxyJyH6)}CkafY{wZ;CKhU+Ma9?nPrCjfzv z{p@3Ut-_jlJ-r4LU&$C~Rg-O1WJCRWLIK2-OM6gKeAtQ*{<1n~++kVPK#YG zZV_Qs>M+ zG39`+(~f>X#&(`m3JA;HB$fcim&i0$-Aw)_7D7@S-YwnPHdM~p@iRgRwYG_Q5{HKj z{BEqCA_QSTjUj!{ADKdlQ#>P8Z|J^liwcLp5*>p@<&j^7^ulFk-a!e)4+}&l07H9A zs`uMx#_6>9BJiEcnoqrB3PNRv=JT7JT*Q`0%L;FS^jWoO71_g z?%j`Z|JbSGb@VNep+1mHR9par3$Ftx2aOgwz}Y{r^3qEodrb4od}Jkb<>8nv`^o;z zb41qLTGzo^V19}EJS%bZDft{lJ^H))|Gs)*>u+(@7p5vWz5I4uKgK6sNQ(IJfgj^i z3^C$jfL9HZwTc^SS2&JqUU5FAcislbpFLC#t_TWu_Z>>KGr>eB#R(HVdUw65GPv1W zkh0M3Zj4d@ImY( zhMe$qiKiCb!A77&9Vcrp)N2$>e1H73bR?pf@}vaz1zw+A%G<*GvE?p7hY2itK79Yq zM$zjjFWKXQ>C3^;k>m}s}z?bQF& zdnWHE_}*gJIo;Vkq0V#VN13Du7%P0dMTX=7T>EB@>7xbI>~(Sa zMAf8*^o8EI{rSIY3A?8Hvm4X$9==9&@=U2VD{}5-vf#vKXJ~qa6^Tt4l^j=G@0|}tKsis1-~CuNsAPe!v%)3Ie%5t*5!B8h9bR)IU4&ncVqV9 zV~TLE=d$bm1I5H!j5dXfSuL&8W-1rVF`ZkVQV(2CC5y?TH%Uo9Q|%SEt+^3H2VFJJ zi+Q-i_Ch}5KbxLf-5xq`X~K&7nA5u-b5+DSSVZdYo|pyPxxePTK~R+ojo|f@+tdD7 zjz#i8No||Vc~g$k@}vT{#QuHuC&=~}&tETh>H`i@1*x*+2DuSv_wHZeJd2r}>jvBm zAfRkv$bP?y`@Zt3GPfQhE! zYkbX|AJg@rFyRlW@g-jq4KH{~bJDynGg%RAmqxP}90LSj8%5awXb|6`&HH1zx1zkR zXOx5DGV;yO)ZawNKT?%F5y~x1nVNM8GWwED@{p+k^h8;dn%klALY3Es-$a|m}3H2Z>G9Lcraoyq(QqkwBzGfIl5q^p;Pn*uP-c98cFs>&TW7}Oc6 zt8BDsARw~S4XWIaO!s6AM0cEu+)c+FLml3Ujk#`PL>Yai^z8##eZR>YtyLEMI)>YE z7+=wyqWwi@AMbGaA>>{uC3bM8pQo`5bAou^h@}1f*)&6i+YQ?S&>MIsPxBTf{Pn(8 zz0NtJtcNM<+y}qWs#BhG?V{KxBbGVg3w*98VtR?Qu4MU!zI_$;J|Vfh7`EKbY&Z1* z1HJZZ_FyL$D;4B}vwT~Tjz_-r6ww5~i-V1oeayCw;xW=kZ2s@%zN6*&^DXb->PfRZZM@B7}i>Xh^_hsgy^;7b`K?LeU*&j1T;33)U9FB$nmdha=mr3t`W}})c zXZv3(-{%T;#`v`yw+wK`46=E!>}lZN6i9?zl)L($_1&%5zMF@UrV z9E$d&lhb09#Ij#wvlzdTvE3Kr8fp7O6t*qD1E=qzaEnYPE69@SC}b{|?;9<~;#J%a zhEFqG`c4$ySiy1R$5B{GX55IvmKd3b7lo%|Q4-;<{LD11yBAHI!e$iiz;7|C?8%&$AcL8M8_*|odnn`oAw`+bc29r;@nE|9TX zqR@9KuV2=S@yyCQ2>z7KMqx15uknws8@hA$R zr9Cx-G&Hm%E%9y-g(gvGE0U(tE-e*8(j+7y3Rg+vBSaxYp-7StQsMWyzrX%@K3><^ z=RULdeV^muL3NCs#Y>Nv?-DF{DF-wMW55pB%b5GhHt>?D2-Zi?*PzA0nIiwsA?PqQ zPl^aYzq+}+@h0{GN)@K`9Tb?9qR^cf&lH3kx%Z&_a>9*&gHdj2;l{CG=9~xN#1;(>l@B!#My_k5hE>Q%IkW%sl_8a2grAhAuK^ej zgQe*l?83$}^qx8Q-9UzVK?}rp7x9%Wkfmg#>#|6OI+^q04Q1#qSnDlKjm$j?2wwzd z9+GHu5W+Z&cELhDd*Qh!gArf|NU(1L8}@lnA=6IKK5n6XMC|dPN@yPa1p4$J!c9n$ zk~h`^FL)Z&y-?oAlH?2BeO{7|Vm=T6uYnxrB&ibYPL`zoV2Gm>xu8A;CL~CD8|H=Y zlBAAsw3fF~0`YX4Ns%|)y>>_uJE*Z;irV3x30?<#y`<<3$fGAkC2)@bk1+mWABCOU zQ;HTrSHIw;J>sb6C%kk3H1E=;&391l2imk9EPyru<*sYf0;g!Yogjr{TSHTh3Eg8E?F)4zX&?8`sggSjZiSjOzBx96M z+)SK;Fn`AEmZL+-cRUQ2H`2 z#eu%BtSD3lb0UXh(~qOiW0%zzgF~mlLo0JWUNpIZ-I_6Ukl9y5 z2ZG#)zZLP-A)Zczn;5pDTVPdDH2r8nyhvvk+^dAFX~$ypO95+=XSm3k;=mG7YnlUc zi&&F6ScmedBD`?76`3>nITcL{Tbb`TVrd%tjgf<~w7UHhCB?^*0CT=zTr4Sq6VPwr z9)bM7kzu~GizRpHs`asy0M?nu(lOB7HJ0vx1OBme0aV%+OP!!%Xf)+B=V9!PrgCul zXf)jcYeS;xN(*xjSS*FWAD6B@{lsozemt)I`(t`x@VO=wK2bkLZ^WZ(1V~h{9T8?=6HMJ#5}DEjw9X? z_?wS#Hn#R;iukn=?_+2#q`^W1+9wkXAytTI(u3L zt%!VH01Nlo(|7o*1`mK?U?}3t1$DpzP!J3ObHO5p@D~q00wX|Y*wetv&Eusv~5vp5LM8#moRcYFbb*aa=I7PW*++fL) zKrH%e^I}?!{bT=xIJv;?o4lC1pyjSCrXyfP?P96~YdhUY1^b4yxgI3E70=IY3tS_=@8Z@5=Ed)I`o8}5*eZDfEq7<->SIH+sP+KFPc7ol?`D6<= zfLp+-9r;uTPVCO751=pj4~&5QA=tb&hkiYxW@GhG;!D*yZ3vv%+lM~3(mra>q@3U+=fOwprXOpWa zbMJ39nZX|ND4Rq<4&+-EtPRbf_eg(YMGh@Rxg1n;CS~;{4^zqE0 zb6}4O$_@YA;8N%k(;RvYU4U>$p>2@jBnTuxmeL-ZRjlhtPpLb?7{p3no2a?*G-H zn_z*x4jl*kck9qzFcZ2LtQFCup$g1v>XNj6JNAk3{8Xp0#u-ebe&lAU;)M%M;5&TeKrY^##-zjorK61?B@@l zIR`PmjcQQN8SKY@X;5nk)|oy8N~cyl-;x!lX-o(EwgEvp zsE2yoAWjm@KD{)MGE$LFEH8b)`j|@?<60QXCnQXkW>_~03)3o)?M@19{DpbFHie2o zp79jwn#8)|T?*~`&Fsfg=<-jD|7@wWZyNDY3f+Zv{*gkl@F%=Djn2-%I8q`-Pf=e< zkECdbVF!yQgfOpsWKpjO%KwH%rlMG%46#TYoE~No2Waz|MXF%#7Z$CCKj&5!@d_i{ z13Y(x_Yh8^-^G2XY65SodeB_x#r$8UCBoca$aUT54 z*taE-8?>Pg)>-nHzt$#@{XLY+I)N55zu#IVkRHe(D?oLsD8G;Z^{b%22@24CaHxz$ zdzkuA6(%>-y93&rtt0cEo+z<1_isU~LTAQ_5-+rikwjx+E%QFGMB^P$1G*e+fc69R zmrFFhhkt#0iN=G>xtMkmjk`ZG-$hF_uGoln2~NY^1~i6F0|h|2VNGgf?g_HWBzInn zw;zv?19N`9nFAFWW8UBBKwKu6*DVETC)T4Spaa;JAV4cYA8;+0t0PORF@F|{Yf@JQ zbH2AG-2&4Nn9;I-%(~xWQdb1+GBSGABm#Ar)|aQ;1=e-FKtS@jePQH(!X-% z9%oH@2)aOj0hOTp%9;0j!Ad+|aQ0c)K~a#+Rg+FvVSPU-LGoVAx?Gk{#vwo02jpY@ zo@*gT*U-O1SaQ?`#>B8Fm>=UwEQ{>G@f1ng&U~L!vxe68GwbX%qzVe};GrH~q+`j~ z$c1%y!~SgAhWT7yOMphykskOIl-3p?8?Xd=C&&YR8)O5MK?~T+LDi6AlEJvgBO^fJ zU<|kkG!JJ{H6Qxf0Tx+-Hqbd>0~i8w|C4Sk#W>l!MUw7f9My1|hz=$}#!1|?wcNKlQj&@Y2MV=T}%}I+^U4ng5i!zw|s(y)*C(~|jXwetg z`~9_uFb;S8r$wuod&-VzQQBqfqY&;iIP^h_#IIuf9MPg1S5U6^T2yp}`OZs=oa)dX zz+IpR7z@T<*P=Oyr{t;@y+-^zNP}8fUZHC zU)Cl;?C)x0S5bQd{DHj<%zZxEBni9Cd$quX&%SAM69WVdvy# z&Ou<&6=*i-CE$cIi}V@yRV+#XLv&f>3A(^t82)|WzZjaU{s3*Q#Cj3#ywC#rEZPUg zK(A-w6S+)_?xX!nT9CE`#uL6I@_38>dq;#8u}}{10T>Uy0Of=Q=#I+&&ON8KOHdwV z2ij}QoVV^kt3Zb(4#Wwvfl?q3?3Q4Rq62w@+Lgi-YmWAFU6^vg{!n3Bfc8}fyBM@r zo-iqc+WUoRhdFZ|p)k#ad&6E~+5jyM-Ugd-T-~UGLXlGMY}*3gpUAgVb7n> ze2)wbjw7CjAP4NXKrS%>`ilDLt>eY|68$Vqh)gi9Yo`kl7Z{c-L_e@@@JJFOMQE3J zQ|g~adB9Fk$;X+d956rUNHm@j$9TtIO`9Z8UkewJr8e44wiunj_!$BwZ)E(lsFR0z zUtf%FL3e;PU~Q%ty$8p^d(1fe-=fCv@HY@I(Rfu5^|kvn`5<04sQ}s*hk60+!Ky_8 z^gR~)^%UVo_jt@ZdI8h{dz*FujY5Y(F9mZ!F3>|afRaHQod9|W>Lc6+P!;wHuz!94 z?LqiX&hh1`rE$0k?wvrvgX=tS$+ld?p?6321UIfDXehUKBv0U>d?# zz|H~IgKSj+6bgIuo&@4&-k-{@p>oV4x$`wi6RgXsAvth}LyJB!_ub9Wq8`v=gC-q1 z%iJrkNmXZ=-_tbdD9Ev1lWw17+HVc*0sHg$8+T(}I5w<76IdrseAb|AU?=P@jD4mi zEyO%it)NMkNM}q4@su<7foPHk!b^{7P%Qj&{L!E}rAT*LgQP%VCr!%0{3B-Li{Z_Vd-v#D( zCk@mg(*34Eda(CSXwVn<>xBRQ66SjZ4RVJ)zO9BN;J>P;hL(eJNGGn8`L0EaY@m6N zUKTSSqdezO9t)IjJ9Hq{%Ss5ZWUNWUXPNI_Fn@zp6E!pg;X0=@C=2Oi!aj=pRv_MA z&=K~iCzR6y`4K2XKL=-kRYNtj5aA3zYLEnzZ`AKxuMTuK z3sxh)mr?E#Jddy{=3Zn?I)Qw8fqv(hbG$St4gQM8HE0TK#&eNDeyX@GlQ-h`u-2r% z@F!=bN%9Ck0`f8UFIs4lMHRCS&?IfJ6Xh#A!~9OANw1M!8rZ?qH|nPl`Ikd|twcV1 zk*`Nc#|QZ>1vSvV6v~+Mlr*RS{@ajG55(t!{2fBNy`Vj)KSPs(;BOl7B_O`ueZuq_ z`)~gzlgp21k)Q=&>h?EWnA}C|V6R=SPtu*qMZJ1^u$$LxD81kPlA^cV?PP@gQ{>J2Rq>&4tHnRuR?b#s?v-TsIR4} zGzxpJf-1>?AqAh}$cTTbB1Xu|D42(FzB3Z2S z^-r^C7UN#TB0bRN42yJOuPA2G7ldy>I0@K&!2_T$*Z@`>hdUTw$f7y$ugb%sf;os+ zhDG*Z;d;z}SZ9QRMGTj+=ot1n@e5e=l5wBUqCe0LiY%%CJB3)J4SR(Mi&D9m^L1Gi z2;IZaqJv=WL*xtlt&)W-a)aiOVo?zMsaCMa1?l%-A7wm;`M(^CoVl6v`dQQrtppCk zUkBog1eG+ge#N?G9QIPUH{4~BCF0e`K2AoMIp2*%-(a8MX3?U#Shs*$U>NM|peiU2 z=E80cIwQXd@ZW!*McxSS0!D&1!7K{pMS1pPodL%0!G019gkB96!rc+Hfn61xfHntn zzv)uYGxRStU7FX0c|%E;CLc57ur9^I-u+9LyucnK3%ZTxotA1rc2Zc!q+8HF&_vLf z)_lQuC}2!t-?9FJe)|pW80l_B{8e+@=%owlVXhky=v?ba>n)l0P8~@GjJWPd(-vqq z*Bt2+D2#jwVx7+wz@oKabqI?tAfDzh7QF?f16ec|c5}F|02N`EVKn%UDHqDu2o6Da zffoB%bO;PXxUY;mcnstzm8C_@Inb~98h^Pn-=7uJJFM%lIwoyhwEN|&ND=E|hh?j% zryk`}T16xE%)W6I3Baxj%?6I>`cqvL);p{H=^v=??oX{?hp9h30u|xz8IAnGT?y2O zJp=Y}*e@~Xn&|tJDeNHu{-hd%b`N)cXa}$a?n=A;DG#~>;Rm53*e$4E9MAbLi;}>) z85Z;i9Dxo3&1YH=AJ)wd92Ue07J^f-_xwY9X52wnP=L*XmV@!o>p(e#zX5X0vLH#Y z7va8uUa+4QXU0B~3}JE6%E}T(OQ9He-=L`jxXCi`L9% z-dAGLU+6kp>{FqY!0pUB8Fq0n5L5!k?9o0ziweF*6@9d8Wnr2$Lw+;`8^4>P-TH4N zf3&->>l-N=IPIoIPcZ*QcxX`zXfe%4JLSDnh%0He#~0 z6#H`xSAKeg@irz{ywP&$2(d*gQ#o_rSfVmr1I5oPQ`%9ucPmp6$ZbgB}3;P=BE-x<~wnv#=qD&o!f)3f^d4_pPQHnS6RVYXUI>=X< zY~x@U#=o>!+TV`$b2ye98K%dQH&`_xOM!Uq(tl*>49LbQOL{RV=WJQB1v_tv(ltA@ z7fvyXLph5gRA}=t*B@i<@lqjn z*aL5?&=2VDb`_F?*1oJl@1Z*^Rj7rrgJ+rdP&`!VC>X&~p)QcyL4^`Q!)+?G3v{Sa zAwGmJoUcQYZFugcI`jtfdI{KdpSh1^F-=A??Qby+f>q}Qi5Km@!J9<`sP}1!07_!^ zVdsUY0Q<(F3qlkN_F9`z!Z^z5u0V^Jd)#B_8vCtd@UML?m6l;0*1uQ+Ybmr- za17+$Crwei@jPUOsA~PGM-Ory^bI1q&|dk|9_D za)Zuky5tFeL#K3U19ZtnT@nYo;jZ$OIiF6KuEV`LQ$xcRoDf=k1QZUTQfO7#5V8h+ zl|$$)*paxR@dVtv|LviL&~hRnlnr*nUso=3Uh5u`0&9QnAr&xYMhK1NAU|v&^bZVE z3!ygHD`Y}w6!e%ELJmxNf+4gDltcPqpfgtpB_CnVxkNbla~R)424I0$2noQR3$8!H zoUa=~JDA@K5Y7uaL@$J7@;;Hqnh>goZq^N<4$#mbgv!Bqoe=tUgxS}JP(S0oI)vuI zf5=P$DrU|@XBVImFcUfrbe=-{QD*)x%1_at$8Ubx3`)-xpjL2vjsQIYZDt72B``3@ zmlp2BJPrQZi}^0cjE4U)@7I~pb1=T_0G%qsJXCRj-hlDoymIDTzXNn1x)7`ez0Mq< zanR+FU}J^HC*t1fM!p`*`Co#Ki#?h1>fDG0t!V5<|G)whH+lsMo4L_-unJ6YM?GzJ zqe3tc{zhOgT<1ou;K&FskvRH4_zmm@pM!Pk+T?i)cCmcw#kg24oKK1hBP0wx4&5)3 zPyEd9rxN*e4SE{95BjR+($2*rRKiz4Uld2EAT5vjF`hclFQA#2mt5EjXd&3ImP?$A zncv$oh{ZKR72wY~BNVbHgBqcgwq?)&blUz5+6Ubonn7DZ)qo6|0lR8o20ej}_sbx4 z=<(edWC?0)%^)ezD?Ed=;2t=fNh16sBycL5>O_#gvTP~=HLA0z4XlDa3*;)wrU-Dl zDxET!d!el|NQ@KtbIhPWvqz}SD1(MUn~HQg0rxO44y-E3MqQx1TQX=2{wv%v=mhBO zl0h#(6Q>NCiG1X`W>7lx2;x(OmUGUa8t9=78MF{=wojyG&(Tj0^EEbMJQ`}!p&-mB z0(W$13)m|tK(kbtdp!9X4YAMi(&KB~$BS|0o(xSe_o`nPY|Pq({`=a6nl_^y^|{am zuxHeTE^R^o1B<|1xaY#2^vQ)fp?QW~sFAtvdBlbKKyj=mR$)ECr6NH)JkjozBq$1` zAXD1I+=F@L0I^phpEU=lw*v7%e*t@-+bfuJ6%Wu-xO2lU1o~b&K(k;UhdvGRz~2|N zbBC)3$N^dy36b<)I7KYk>SV$cs1zvj_qra%17BNI@= zI+te1j*ubv8UAcMa_IpV4(IfO7Y=Hl#uy??o4?U!Qgla(! zuodKv$|p~(X+;?1>MFv76RCGOyUI~tn`Ry#?fG)Y2MM|Jj zSr%o17L8f-0Pd={vPcBF;zkzPgH@-qC8V6$fsOEI`K01*uyRl zn!nE@Nz|Lia6WxU`RGF)&4bQeo=ZOvPxFsF3WV056r_~Z=m&oUX&*TLSCGuWh$%sG z0mZ?Upzu#Yk~Y9R_d}58f=b{I*tMqxNy~uw-cOL;tY*%s$NUJ6AzUVN&+>OcvVc3A zW;LCIj`=1?KlPb&diWg?z|>)fWY6Ce}MVm}j43er-lN3t=zn z6(l?6-e!?dDn5pJxq;f^l_}05&tcOo30ZiSNI#x5To#o z=>MP}sF*HB?jZNJVrs?yLN!2`YOpSi_ZOyP;KWo&{Q%Dbt0Uhp$&}d8u%0GfS`LtZK< zoB2Ian+|{zYqUw9IR|pJHmzWOA7yFNagc4DHk}21;64+qYvCsYCA5eC_-PR9eh$p@ z)0od4q=hKn5c9jd5D~M!loTR=&}NAc&4%4YMu_%-{a6n#Ze#9g45oFNSmzoBlPlN@ z27w{Q!K4BX7zERc!x&dAL1+h7FcHWBj)1k`qAZL*7Qs{ktz;fdE?LZZvB9*Av6}@` zKo)a9NHCdzb*8}-4LZYLCaAO_nEoQ%5SRcKl?XQqf)$`NlfIA+t!PI-5Y{0HFmvG| zT8rm7lz{zbD$12CN6KJkyc`LGO6@vynAxx1)1e~f{g%yAr0D~_Y%x9D$NXQ?gHpC) zoR#w+N3cWDgMz^^Sr5_z?2Hg7E>+ud709SDGLmgT1?Gh%>Qv0QxS8|nIAtzV&7=9 zN}T+hnR6fc8lBfM?-EfIFjtwCm+eA9U+`AH*NC_{Q|8FKzQxE1v z=@ioXis!X5g``1&jucwPA>>2pcM9G64S(Y)R6U9H#AFIpL94>u5$+m@p9}tLAMrLGpT=`|%-i^Qnz@gV zx3LZ^>Edmi{fGHpn746+u^X#3`ZM7W-UJ*_PNk1Is^AFok%KpQM2lasc%a?@@-Z|3&;Z?^EbAQx3#e ziTG-VQ|J+NEp!re$MRItX7Z<$ioH6XJJORveZ=2LAhg<+ooN^_->1?(n>haYT!{R`NJ@Vme`2IKrZ;x zVC?4E^Z@Y~%BIl{=>7rT#wf(s3wnV=U_LkiR)a|s=!b0BKYZeCbOL?BLtq;0eqaIe z7lY^Cp_4|zGqDeW{UYok;2Y-mA+QDPfx8RbGoimiw}qhHj-&tXNg+p2+$V*KnEQj= z(6t+DLc4(f5I*EU3i&_}fEJ(^?4QS(_g_*d z1KI;T_=7pGhPScv8{z>83_OYF^nOP8ba5{uy@|b;YI3<)~e9R4}U~mN7!Vvaj%zZgrp;Q9@ zY_|_kCDz{@7CIDqALE}wD0Ll2J2f>X>+cu`g+nQxxvxbalyX25tdoMkI?x#`_!UAu z`REt2p)?EOOrWsK3Sc-HLeIdepCR;>(Z54T5&ql2xnS-@2nFUd<75aqg5qE) zCL{0U+0U_F6e>7{N#-NrF14g*?^hLb!kI4^69Ee17L}SE~$gP zpcohe26Qv$>*|sd=mRE#VJmcLstfCCNnLsYj>zd!=VPpM!S|rAv@RWmy$$~Czz7*# ziU8w5H-<{Oqy~;JM*V_bD|P8M!X+U->SE?kT{;IU$?B3gsIRC?Rd9DWl|`Ge-_TFX zA}?k?lAlGYU}kz2*@FE^S(E}=WM+{G=#r8}1t42$76mZ-l$mX<;}+^h_4#D2=4npxos>u0v3WRKoign%ms}>ZC4f*BAhhB zdxLE*EIJPsy0Iu4y!l+J@e1}Q6GvF|MF8_JIAamg1%<()JQh{J?gKV}s^Al_pnye# z{AkDE1gHq|!akPIqGezms4u{r8^t0AuoLc;iS~$ISgLU?G?!vx|ZeK1582%&~qPc#%SP zne|ehIK?pcN`rpPebT$+=__*&Nq{_sq+=YB5TG3@7@tac8x0XoTu_Ln(0(kyw+76) zr$Y1u}yt%0<%BlWf2eayZ9$w>XE>Bf$`)9#*-Lv zA$o{?P!D(k%pB3BjTlGG+4ZOx<7m$(U3$d)E<8hz4nP~hse!#2#Uuenm=uv5_U}G?Np$2b+HZn5IiWp{ zsbW9!6zgiR3v^BsqyY3cHY*l=@YkztL7mX%DHi07@|C1oP?{9;{gwsh zE^xC2xiaBhEJ%Y1zsiCXC7JUyEvOePakHR23FaJX3p&TVzu;;?Cs z8&Sy@%!>xb^lKE)ca1SEg`O}nrWerhQ%2M>%6zwIOir+ma2wNtFU&dgMl}B$+ATQ# zb(oy>jp;VD7s983+<%N{4cH0$BXD5ah@3%j#9Iy)2pE$x)+M>H*CW1|F(c9#Lpww} zxQKR81b6oD%=sopv>m$Ys}U`Ld-JFf`GSTBw-xDj^cm42_<7SgVnE%X!cj;|6E2S`;~bQ+K4_P-fF~m81XeDo(j+g{DJtI zrHv^9x)$Y1LVh#BXJFEABeFp_apdzT@|lEk$c!=X>lx8^xDU-UrY>kz_+N{3xRL)l z=%J7B4~`?frwAvfYfKu5f9!`5S%TFIjOifUxsk3nG$H&h#Mcl1zu>>FSA@1&qI_RP zNB}fHRZZW}ucQY>hzojpRD@Vy%zy}Ov}FFDCPLC6^@-3b(Bifrox%E;!%dtnZNYf< zNRa%Xx#tU!8^+OwLp-F#oUb%rluE3a--$%2-3I-XN0cUQQ4e!PDIB`cOq9-BGxr9H zQWfkYuy29Adz~nKLbwuhQF;QhEfl5YHq5;rqI3x?5fG(BJ3L2zQ95bIJU>xd297Tf zrDXVbnJ0?2j`>PXlp4WmAyN7V#;+BnH%O<5OO&jcaMGgGhxj58?@`bT@d$zirlRx= z{yPv}3zS2AYiyYDQk2$NGv9@a(jKH^j`HO)?kLw@a0uzRgC&SR8tJ&8+#hwcW6aYwj7*u$2HQY*rh z7>m*|TjskVtaG?9-^TILs4VIkdx@G(vcjVv;h(^8new z0@%O6K44f(ubKCp*A~+QP+Z83DqXQ&TIfdG!RiHW6bf>1y3t(Fe2yE9yFl~1(JkmO z_;Ub9c-%-5^Z`{s6WG^+%^Ysz4F4nZ-RKSDj~DT{VgDxRMqSYT+-@`ms`9zfA0|Hd z_i0V;tW+z#Y#gnG;4p*Lu+7IQVpx*Y8d+yQoTY0^G$3|b51nWIUGAlEq|a$?qJ zHw9>)CfZ?x038BHmKKw;GU^Xp3#wu~Uq6j{<+CAKW#j|o22Fl1YTUO1<8PWZnJ&e8 zIKrA%g3gxKq@aLx+DdC$B#-r-kPUrPX3nR!pL%;BD^BvI|*8d*wAHAN!*4Uz)VnAnYnMph7!RJF&pv& z3lM)l!WWcS(-%gn{0^j_Y0Nokfn=SI_2JAQ3S{^*kVMm&eQqErfm|~XFZ|_#T4~JpFo7fu zHctoAIdJ?>ARS}eVgCfmu?0~t7zn#NSb+F5z#;hG3#yI;(s(M|;eR#aADNxw163;|$bKv4k4qA?3goVnATLmQGmGpOpufg1ruYL)zgSG}pg0%^ zj)9h-#VSW$mO`uO;^VtMa0nM*KGv|_j zPoP7c%=t12#L1lFK9oRH(BhOpufeo?2~-X0t83DlO4Og0Cb5Ik(96M0Xd%!i(U$nN z(B3m_DTO(Q{E#g*sw4h5TiUFFc#qqXA?)U{w)6n3I%7-yuup*PU7Y7u?tm?oGv}V)vZV>=v>02` zMSirAo-CLfZA)3O_cz(nGWhF_vL!WyFUqtfJ7`6?KV;&8{Ug|m{9gub%5BLHY%Z{+ zN%*TneD$CS@>7ZMX<&*5^BxD%1;s&LxToE;r40yYUSvxVOg^~<8?BKK9!_Dpg!xB$ zg8;om`(L4A=PU1r=mzYbQ$$@I+FZA zi`Unv5G-08NfFF>$=f2S7_5T*BJA->QKWtg;{doDYyd?WtsO;WH<xIk?}3yB8P@`u>chkI2t7xRNP1{ENY#IG6#(fHt6j zV-$shxeifu3v7UW6{wGJGwYf6!lUS76Vi*0qI__?D2nb7=3Q`-nD30Es240c6h+%X z;k~F2_*2{yMQyCM90!LHE|MbBZcxE4jf z!D*y(k(l$hqlgdg@wbpp6Z8IP6#aqb0$Z7Iuq!n(|6h!vSTGIotb)J(n{Wq(!=fk( zjJdp`(FXAaK8~Vz)HfSg2KIwnL6?_NG=n*B1MEQkH-j}`H<$~W_eRlv&=6W2{))i& z&<#tXNcJ{!j#U(CA%17GDEfF4^(YZVl1%wGM9~oHvk3Ofu!pRRB4bc#J@SS2Fk+5+ z1YJOJ*n41~53TeUW4ZUMbTW8bLc@71wdCokAq{NE$s34qv$qt8h8@Sy%$BRVGjXinEFC{ z-r2ysrxr;rXkQacqeu_s=3Wy;k;qq_K@=5&xrTU7U?$q}Ow^AmxE$nAKzR6XMm>5k z^$KkV?fmW<^?@UDQ8dbs6-AFwE<>9rdV+d$u!y1~&~2dFP3An+D9S@Ve85&P$uf#K zVUMtmqAB=KGL0fZ#1rTeMP0}zw@wssfkS#x)Qx;qpueU;b16nq2xy3O|G|GQ>MsZN zog^Ja3-H`D@Vu&_dxN5=9{$Ewqu(ODIm&$vbU}E-8_c4USO+hBJ9eQzhxP1t>5A7tjUT?sUcIhQ;-fxa^5qrbBuH&u)aZ?P@|M}}-@ z7FheF)wbQ(;8yC4&O+=fo6GQR`bkUALg z*@mvdy#)3)FcaadnfTw>P!z~DYC~UP=Ro@TAloM!+5>Wd+du(?d&v-59n{YkCp|Z; z56m$?twg`Kuq8IInPp2nV9YGR#umgowhr^bO6J}#%nxdKu3$IpHsD{d5F7^UHrUeQ zmCU)hwsZ;F!Pu6L!G9ZgP>uN=#g|yYq1bUS4Hr`t@Ob#HMBJvM@g?0h^z~)ST5{G@{n+}b4Vjs;XM9a|sYe7D+He;*)r)G?A(bNbOzc*O}udo?%dxF zlPBzfQEH8B+#@9X=P-3b`+Pr4`C!lZVNwFC;g1U}1VurQgBdi4cogAo2d(k$Fr7er z1+9lk6;wp{P}p-@+-VZ)?CwB!`UIMrxlSfm9TioeBbH3?jce(}^ zIJr{=IBw-m*&vs;A03E5f7J4$O<=dGA6-6x@z=@DgO)`}9qsOp|FY}}0(3!CkjX$to=?K=NlwRiCIX!v12_jW6a1M09rd)lpZ0TiZoHW1M*CYP$BbwxgR1F1ad=P0vn(c!HAhi59xET zi4qqmz%EM5!G83|4{tpm3WB9YeT|Ruk;;u}}DHLaz|tz<>#Dog5~vK@(a( z$(%QBLd(I4ArmV2jrc#BP&~-?#)PaUnE$t$kSa(UOvvd6a~`t^Eo0KZWkQudnS1q2 zs0G^Lx(Q7{_adKipwe1964GV9^U|U^=6laRQwBFZ$!y5i*fu&Kq~2tHzioH#krVs3>hgOC&H)e9WOb znGv!W%AvC$2lQRAFiWlR9asQ%f#V5sv?dkxW-di*eUKmKToBAVChekRhUaIfDNYW~ zc>d|dR6xwN8F`Zz3$4D)v6j1+gF>!&N8O8Js^H#h`5pijaP#9kl zg}uf6oFGnXnBUu!5-H^=^L>9J-2i>k1j!lmk2dCq$Cwx551G=RY0Q5}Uli$^&y%Hn zn0Io;B}sfc`a_5_g*Y(tt24!cNnXx03^s3crWDlEkb^Uw0Fyc$Xp2x z?MQdPm`x7!1NGHL4m1gOxlaysd_C4D8y)DB3Fh@-2QoLuI`Oju?SZ}5&6$+!QNN2F z>D>nSlX0YG&_%?NPJ?yOYgky9fYM;Uup>>wUUk)x%8?#2M{^KQ!*2%)hP^{euyHx! zF91bApIZ)eYaQI#9f=3-CGpPGjPweEoJrJyIiJ^=2B2MnooNQN%})o)g1>QBXEKJ} zqs@VGQI3HY2RZ{*lqxm0GVNlsGwnk?C`mg~BJx#dnD2=k=`8fPi!=End^Pgz z3|;N-K;EXvua5(r1bt8+PZ5uyxFbm*T%nR9v4Iw|9qH(#a3menXN0o@#XxtC;<@9wa3LLU#NUZ@!oY$5 z94Lv&7yNm{U)p6yT5XAXsB;=ypNCqUNt7^u)m*hY*nS3F>N6-z3XNYMx z@V^JF?QkF+aQvPF*@L}k2iov&?(RT$@I3m19q1MEo#g01btcR?nGRHme2#5*rhKOV zOgd0B@*noyfxa>A^P2;$TF;z&;y{K>JuP*lw|L&uijMRJ^g+AhMm{W%z7$h0X)g3@ zBijAA13gFhe#E1Q@Y+re6oT+$DbA#idQ?QcT7pSvuMuX<^KhWeaBoKc>_hufMSjOj znD?F>$rsuL?X?x@DM>m~9w>0ik#b;Qn428 z3-)*eXIcrit#+oRj5`Ebx4irX6Sp44nr<5(*cF zzuU4h^_HpSyiIeLdm*=JYH99`r72F_;zDj&nwgqA7i6xSxKRamu@+0ND29->F1pzi2V!uL+T|yM4E~J_=iFmw{{)AmT$cBBbOqv z^hoceU7?`NpHS?zR`Sj7=jkV(Y5hjH4vv?+bWs^K-w*mWH30oljf~0TWqe5rO?@QM zE57>s%f{2bJDHhim7O2d$_HHQKd$j%N%?kaofAH?WcgqF`;XVn0@ob8c$DAJ`27Bn zb7QxMHlFhC&S@-Q0<*oeOOV7=$bcghU^W&UhG&Cio|g(snMYr26UpL&Lc&1naGWX>4vK>X9+ z9h(2ch;QHfs>jBjDE|>qojv%b?d=kGyO-~H?l)W}==65>@N)b`$vxID?HBwuafex}t)Tb*@Wl7?>PqI) z0xvFxb7aXP}77Ss30pnt_a^WBt`F!Sk%;vMJFSqnF#LUf(} zGGU$)4hS1Hx_fgX+OY8ku~%~ZoN+YgQw-qjWn=n3UTeCP%K~LQGyD-RwAWJ>?|Z(q zZ{*=jzagcq-q*OFsVgA*zjNF3?ejM_?+<-__=d;wPra~z|10+8h-v3Z^to+3c4;__Ta|rM|VZnyJ4?SV3_~P2eZeB78-|opB z+cN0+_p$v7?}~GnnV|ctWrK#7>2=Z);L*VSLi@i4np+SniM#5uh?|{%)AWv90(T1! zhv&~A>Q7nNZ5Y_S%+Hs8|5iK%VPo|5crxM=PtXTV1aKO)ZgBsZ-j9a^4Ej$*{q6r4 zu+dcSe+A7=%3^_m?=s)g?nin4xB@V_bV}hxqHL3Z_rF?S4w5PIFTyLOPyfXJZ{zS^ zoqut3@DQ}=0r%eCbsYRli_)ewkDw_YFYUa$C-+git6D^h1zlU@6!qt4ekr4;8nPFw3{+ywh>Z+$Adb82f> zHLwC+BVeHHYI=UMV>ESXh0@(B)n)Q=FI$`N-;##MB;=Vq0qt$4 zLOL+h;CrNu|DJ!n#&(Tfo}YZ(lZ(d=X9u-=x_eZg4OhS8AfC{0bGxTt z{b9uYjXbS`KRo0UumJbl2k)T#anWnPJ^j}r+QkD->GF|?9I21TvQH;)}6?Y4a?VlsA2=j`89xifH_H;s%`u=MgCPunM@YK!y;-Ms8 z5x|P<^kocuU^t1yAl1y4#wq&#p|>1f4U$nAQFFeO2@$Nu6#45~%vb$G;YqWfdFln=1Bg6&qWP#{QDCZo zO_wRv9?SQ)2cjv$GW}0y2UwHiUg4}auVfN~=!oTP+Qx=NkFP+agJSqWEMt)3ubbaO zsf2oa!o&KW(!3YCpXfISW%=R#95MeYZB5F=_THxaUALvi>*(}FJaa?*txI-Ncl|pH zbnhjjj2ziOG;wu82(tweqbS<*>@+ASxt&)a;3 z7}3CSJ~C4-1s^`L%a~D^XPLbze-KPa4u4-jpN!N|f?8|M&qWf{-XP1zWhH@ zp?;U8J#(FUFty%K;I@_<4Q2u*eV}qOpiqx)@*r0Wk5K6JZ7AjNgCG45Iq}nA>-4>Z zpGl5vXQIKpqt{U^H`#M&?U_QQ%F^v*Rc6peNaO6SSi?NQXerO;57~Z@r!VYA3q!ki z(MS0V4+#>_rvSan3du7?nEmfp!K>6F~;+FhrbF=unY!pg-kkbRsPcf z=8tvJiHx~H+j0{;hq~zN?)aqG=deVF60O}O4lTtm>tIw>wu(};dXAaX zH$RA3F@Gc_4Pc)v$yz8zq4Y4$6)p|NR z`4~?+?fGTXuyuc4<;&|PxjBZ#LJ`L#5nw`m4JdI)z5a~%Mu{xMpl4(}Z-Lg}peIZx zeKESJYsnUsYXsw)+nQO*UeL#Y;Ek&@BI|w)y>J~IseQGq^3WO??u{E>TL#yVZWASkfgF1iwB+*AVWct*Qr&8A?HCp7L>=$1axPJ$qWmCE z`EGvMQ(LR#f=XWNPf!`Cnc-t0vYi=}!M|L$yv(MY&$#Ki z*y^QaSGr5d>)xDDID8FyRXmqECT9}pIeA55)}oePyh|ttN@ee~Y=Lflr*0-?|F>T7 z+{7Ebb0=k9PMtM8OD)O729H|V5jPca~yYrLBsF6g1ADofTFU7TvbHVa^2@VO8o(p;e7%J>sbq zOjY3Th!XVEuGrI0=8{eiU}5+kdOjoNgPc!TU3`nzzF`8`ktr#ZLfb3nDBkZ4eLu5b zfO&G-UYsN|4NBgewznPdIv8r*_9|r=R5Ck1S;r*o@XCi4wrDe2B1QE9ncDiX07TeL zeU*TI@F5}Ii3YIoRDznJ1Qtg8% zv#X=#ccrJ>N}m|xd6HbE9-^w>m^3b-gp?ct>b|tWt`E2m&TYHK*bgyj=y&#&DwA=@ zXEwmg5O?a6nS+ttlA5s%w!kB$whD2qTJv^TXy;sBBepTVRbV&F=inwyN0O20CV@2k z49&Zyo~iFb%R4g{y^Ri#klI#=!$3bzJs>Hu9!)>j$g14KNt@eXj0o`%$pzYYc&{Ae zWRl#+qJ;1|eN;~C#k}c}fP-SQAJldi%x4cx3Xl0t}aM0J_4zOG2LmU*;2HVwr2uFyE)@KWs`olUKQAV$)Bl& zwMD^I6q|=4193NW*qBb<1>t2aM&ya!qLDUjq1&Q{Ro5g$PYBPN8kCG{mQ(n<l!0#sVli0Y-j&sPUZG!kTSg#vXLOPOHNac@^+_{raT53u--ww9fgQ%C`^&A1mud?=~5Y$WU1{qlKMC zt9aY9$D2!$Vh(IkRcDTEH`XE>8{b?i8tt1gzJvm&gn*@@U0Myr^kYAubML;Jg=gF6LJavs1OguK5^x|jMd@;hMMvs=S940=kye* zo1c&#YYXV(rD0Uz(@O?|bRl)v>5_I6UoVIpG z)6PVFZXly1f^febcS{9zC8N#2#Xh*;&=+TF%fai%n1*eaZ~Pw||#{Ihx#!a&2F7jJ{TA^u8`1&mof z=HfD^-^365DG`Y&@UDz=upyhG{`Q*cDRJtXT&onv-O>sPDJzId%@x@iaP{bgBNoea zrm+Lsd?fAi20wb{r^tE7MF5+z{H#iaDPYArgw{ogt?Fi!tkmSgNeyydsFjbcG>?U_ zMYGNX9^wS$5W^2#G0lHR+H>!w;XNjKGb7fHd!$UUm~q+Rh(O?JmxEMs!^7EVAzzJ zoMsAT;1>r4`rNV=TEcf?3lFo3sM8stlV>WImXr7@g(6J5v2e~*o~0Q7+Q;wuWUb2G z>U;$EIXUYk;$&dVv_qj{`7NiY{R7IGR|%}l#HIyn@~=@P1agU5G#TTyq(X^{c@y_* zIZ(s#A|P^fvigquUQApTxVz$0jv0qPw9^}?XqJOJkm>0;)OJlmI2h^vop$;4QnFiH z0*O$k(n=e3VKZDRIZoOR$Vm(G(%jxnXdA88HG^k5!cNnc|dBxxXi}JpD$+5nW+Lj*-n#dlkdo{e1idGUiW>N^48rA4y{z7+5Nn3Z~mX-FzO$WW; zwV<`8uA0UokXbzDLQ-y+g3awKBd;>{>bu7@<#Wp+Ui3vj(ukAxt<0!|iS2m%FS_d$ zUP@6>#K?_pRl1U(Hy?E;S2n0cz2wYLD9*hEGJpOr`pcd-VZ8clXU4Bwpzmm?9Pf{~ zM6?eHs7PHvtey>NbA&J1{2SA$oDAL+tyI6N|6CmrFLt$_wTnM|^L>-x&_C(2XP+sn zcmaNIn1Na8@IP%@mwh@;r%*ak7wKQLK%(+-sTx3t*Mb}*+t;aY#xkY9rqZt0%6O1v zjNVu|`YAh>Pd2kdp~6SqgE^RwjR3SBUFeFCSSPjm@{J6qz3O>kOqbP*Sq3?t@X6=j_;_yG{Y?NZ|xWFJinx#6#5WDwq!X$&#geJamZjRcQ=|1qSuwk1sh0 zr~RUh%Q72Fe~zS0-dBo`LeuU`ZMDt@^T&Hf_l;9HoMg$Bi3uT%xq@1V>f#a(uq<^( z`mq$b8q67}Q91m^Ya1x?q&v)b{&+gi|1~7GJw0E5Cv^barRa!W^5X6XhJYxQfiC#8 zRVYwUg`;fl$Q_(tdyZ?J0)Ezv^qv8cSO5CiDj*5_9Z+vskNG3RDTJ|>1ryvJG;R`e znY!*>HS`W6T{ums1CmpI4qH4pD zN3*&aF7c%o>EqR^`rBrbq)x3HWBungU(l(Ijdf95P-^_fCU29-te2^oLC7^E0JJQVnP?^`i!n_Wd@RITh(S5H>E z!y0$Ik8(jA^FRzJJ&GS@4Lv^ zN7wa{y&Xn>9Fub0@CYWEjY<=l%O2gR=Jj1)xq7@4(t+wP9)C-g@YdR&@ET@sU~4~! zY|uR8VZoLEKE>n+mlAZ{Y>YV>z{z|%G$i?X(hH`*|sPDlEKLMG!m8k`=@1s)7uuTjvxnPyF7!{-dA=7f@$W-}A=@0(^XVuqmrY>!r&`q812k4~_E zii;sTvwh{LH4y7Kf&=fIO*wb`Lt{T9ll!=EfPfq#iz2gc0fn;YdGYdd{;$hu5yjVu zUuX8l(6h&LjTMl|=+CGekmAB>rjy|9D;*(fO8HY=8cnV=+sTs&X9ATHIoyUjkw7`C z;4;Ee9lha(Z_n*SiX4YBPg+4p#c&tuwzM?3a~ZHeamgXsN#?lLSd;0iAh+#mTS!5g znfcFNs@H2Yx2^Sln`VV`Le0yU#vw=%`hCXRB2Hw6A+7eIQv9*JE-W~&e1&OloOJ3o zY0ZG=6I?H9f@?cM^3+Gl5^8un{W&TCtlZm4iBV4GXzih?JnrGjs5G0Gj5PFZQEQNO zCfDi&3ixYIlvK&=I-4-X>}f^e2{x0A^F-tHvlHJPpR=$howBqCXBB8{i;#H(Wb^au z2p)>hAii7>r|b;ZK4f61v6qR1E=dOhHZ=X$-nH94Kbns?1-x)$9O2L{?{|Lt$4)-~ z4#({rC*f^!yx-HDIpvo6S)$EI$2gMnYpTqz79+CtDzK}(*77jiOf8efnZLvueH>BA z<|%IiM4VC|5dddiikSIWF__um;hZp4w?MH&<>>|(s<0b`xTE?HGubVP*^QZLNE-yv zf75XUt^;r*LTddHa@9-DDQdpgjE>tDeeunDzEM*X&#Gi!*j|M09AlJt*A&%KE)7!#1 z0{9QYq_Hi@{hrjY++}6BPL-^ol?8*5%3T>`h-ermy+4vB4=~$gQ+yp+;?Yw^j;S%_ zCIHaY0ivW!0DD&tZ0)GiRkWv|elp1fVG!|oNgKTDH26^|YLDdBddLStPx*|@+k4S+ zJ=!FHXCL3gJ*m9|eb!-gKXT@%vZao49a1?Kp;TBIxmmowvn-K{#;V{-uR!Y0Hy&}4 zx!z-RY%*sGa;n*}mxx~6?)*LabvWr_oxC1*$x<-snZf*~yb@3)QOP_bHX^Bv?EF67 zyEOKuNz|qJjq17iUmozoPafF%C5=`LnSb`t?rvq%#mFM)UnMS zOR11E=N3Z38sL*H*47M9BPcucFg(y`HTYFWz*vPxc**Y{HK0-W!F|tBc9=+aEFJez zlOZ$x^8ShgIP*ff3yyV?yI>RkQ6bc*;sNr2RLtlFee11CkGkgs2E?hMpAK3m=>ioT}4{33?X|_Epwas6CE6L(%Dy(x|jwb7-CHq*Kg}H|~M~yfbep zrX&=L$=I<{{2*jMmg0vS4C1#v)oHSU#DX+#tl%&PS4S@Lw1idJA;)yDQgZ!gg0`w+ zxMlM}{jMgl@A-}|PT%g{7aY=PL4C<5&AIQ+)kYXwul8Mv6Ch23l>0(wn2@bmANe z?1a$91RQ2{whUn$Vr4+##ET|YUl(I5SbQ2Hy%mx^_qgYKY^?>9EC9bb42$d_c8Tj7 z4nvR(X|p{86Tek7CZtyh{(~UiDcyKOHH}c4*gAH^UgG%nJCE6_@2#QBlpI> zK~8qfO67COdLGVoj`R#AEmuQ^`vzYoy)Eq83%l~-XWy9B-tSbFTTX>Ywy(cr7Wjw)ph?2G11CiK-3U++col{O(d4O zY6~I9LrTwsU6h~)?y7!i7h4(_Rq*f=^o{t%$yo}Fb~$EfVlHwg>&3&D#_v{|FQtDZ z7U5nWf8xp7vDb8YWTvaa8nfp}DJHUSJ9ve_Iq7@H6?Unc4wrK28>%a&LvFJM7?)y6Md+6ls_IEV+H1J(On@vqnBKt|+g0dU$RPKf0^O%-rF<{L|>mCF0 z7H@5^qIYu-)?Wu{L%`^Nd#r?*Jjh(l&2>kVmD;(wEVGnjIfILLhg@Ls^r}IV7d8B5 zXMxwme;?o4U5<~&$3WGiT5~w_Kg{vq$ppj<>vBs+;w6eARYLaU+)oV?`ArOTr?WXd z%9iWH=$kFXG=Wq5bn-UT4|_mURfkRzfP;e-c+#A!LGB-t_F?S9IxF${Y{45NU-||E zv+@E{S$}mUlhG`UR;1{roJre-dZ8xK8PuNp4|HhT`Zh`=8kGeL<1C3|I-})Xs9rrG z4oX#_%%!qOavikAKIzy$y!HM+T4*D6gU&;!OKW?hPXK;dvd8TS7?O==`9CuapY2ll z5>2WZ|IzLg7Qmab{6u*CSj73KMqn;l^XUEW=cVO(;*&8-v41Yh(`#Wf!OWjOuT80R z_^L>nxXy%9%Cxu*n|5n0YSjMyj>j4jma>0KiO;14SszAo70i1SBK(CrUxTi#Uzu8eMJy>usI>PKX;2ak+uMdr;pmkm z@qGz8H32jU za%W!EWqMYnc%ad^%x0ym5EBd0KShGepRCCf!54XmTNzvs^^&{Sos z4czfELo&&aNudsyPuuSygF^QTEqf`lMx44G*6Z z2!Sd1d$NSPzirMiT15Cp5uE~(HP&belK`=JE5+OhdLiN;SU5$KWA$7wu$%1)g+tch zN0lBsl_ie300D_$MMoI(ZaZeBGw*BqnRFF=w5!8ZW%wfTgEWvtT&o=bkXI=J9J=(PH2iE(P~G}#m{Suro?rOf)b ze&>zI!eAAZ6cuj-b5r~twiJB4in8zW(h&DZnXPA)-%MhUPJaGfW5_~H(Bnyn3m@Xx zHnYg`ewVwbA%*8U`OZsIc@~yKv(L@-D~JN9v2Nqp%zUk-#*QN0EX|v3l7rBr?u`vlU^^4cNK+H zD|mdT?x-6b>ZNepW37-9ABhmFN45wDja-{>44vEAG%+b#J04%x5dwK=rTcAHk31-W z_aGR^hWQZq;KBDnF>Gj|G&3C}`VlZ~qS5}f8}&zX{z zaY*W763ozGeji&tDVFOsT5V67#>xM87+_-4RRpYx_2o6TDXDbEg_)*ovHvP)x`#%R zyc9$zS8V(h?E+pVx_9+~Gsme;7zra;gF89df-LG*k~*mFbx5Gp#{R)B)^#};43!Y5 zJ))1bPX=zVpnY2>8@5japS4L~wWLdX%e=M-mC6pI7#uqNJgd4{)Mwk6(^hIc=$1$) z**hs#w5-5&Hy*uhTzOwG7`*A^?W2eSS+1qzU0GA@B+V(^oZSD`JEpWePKwSvAjNLV z5L>Wh+zPL~sD{$9vQvpXl)5(g{o840*}rZvbp(mI4o%uzkG;1urd|&d86KOyqaP+~ z_vp-E+lQNOa4OzbI)kxb{ra%Pli3H8pb7vaj+Kcwb-^Ls$~$9Fz4V)fVnWBTyy>#t zd%u>WrU;B!shgmxpftciVP_{+ap-6=28Ubfw-7dII-L*zy>qUto1@8u4t!&-&5$ym zLHHn$BfM!@$Vg_*e*gPqc;>(VOzhr1ysXtABzKIY)4zi z>_I)IoD3)H{r&>;(Fe7_sWc0T)%x;JWcMR^w6=U;OnFvEZIw_IcEo%QoH!KzN~Q7l z)2!6M;TLS4p+CK@kNU-dlX^*QR&6gE+tW1kce`$7E>Tcq??7s!_@yt5CJLC4C*4wj zW)w^j?|x9g?EG-X+tMiCdqaDumMB*_$LA+`oCj}SQUryN_O~r1)mW&3d8!A!fud|e zCX7WXg#Q{j|!5b0Q0xT6&lSJjucI)x{Og5-MDy_oA$k8QOV*y1F3n3r8J z1`?-6zKS|;336+!Un=N5kU74pB;updOr1ri!Rolhc@_H+{pv9Ty0S00cL>n;{U?jM z9zUSKHItCPShh&dYhTo*$Cmyv`D{6^&ZsPUv*8+9-?eQMeTU9UM;%Sw;Tm%DlkJXn z4i%F{AS(Ji@vi*>Zs;xKV3UU5Rtqp^+I1qwAaO~@hs%HJ%Rb{mrHvjuZomfDxD-o4 z;0J@#*7&U}p65F3Z}tz`=Er&O+@ITr=DvUhGt!1GVlTnkP2R71k4i7N31IW`Ea3GS z@R-(A*Pkg}1eKYIMpV5?rOl0Pc&BGGYqBs_Iz}Kf!>Ym|vYtL1*#50R#_7g1^sokV z+2++u%D(BNOMmT%E| zhVE+M+uR+zGw3nhd_YaqqjpKXBPlYka{l2&5fPtX2ktDEW;!c@uIhVDHi=I{p+@ND zED}s9ylojBoYm!0X%EGlX{V8X)WHYq<`&VG{l*Ory*9%;SD|CS`~F2TA7tr8XJvdN zg7W4Yq}vN=$T?}QnI3j~H?q=TQhBFNmK(*L-Flr`vva`ix&INAgXfmA$<-T>N$T^k z39zpY5EKvr`miz-z6{hzw?6h5nGv1oQ3LGF#5OElfS0FfY;DY{?WxK)*UD4z zk|VmM(I*i-W7&Oe4znc6(Ib}gLbt|yS>ID;`~)ZHapf!b!Cp+yY&c4DUw4@CPyHcF zG8QN&)Cw?hAhyQ$ui~=`^ih?cysr%Bao+9FXiGjPAS8ke1C*`(>yjj)merktvUad| zJ)mmEJjB9lQK?wfV5h;>K-~hx9=enbw<;WgN_>)%Yz75447|RtG&Prtn#a+U3^}^= z!jSRVzv#<8P^R;VK*#`51Et_zt!}RN(&Fobd(442#0{zd_aghNk{`!0w&8Jk<|f`K z=^#oI*HC^dd*TxeTp<1IX;dlc`!#k9AHo z8|g`kf=WiI9Z^ZfM3k4Ji&b|cyP^PE2W^U+xN2kWZ#;fY)w41m!Zh-sqava$WzFfO zk}oWeTrq168^%7Aul5h^%1^D}W{^OUD)4e(gs_$V1VtoR4>3{!#I3hyemB~BQzkiq@YeEIUjeZFd#OxiCoxjI_J!n_%;Y|sqQ#yFEvMohmKI%62ooVtM)xmJ(~hO%}CJM z1G%uW^awag1rr$Q<3l(|*j(r&s)sDo?c+Ok^y7OFiY$wA^}wxSMrDRvW@odn?LErp zVTGjLTOw)iz(;2@%Xd3(Apk8oEawVsVz`L{?r8Maj!05efGG3coO~1HB-ey5j$Gbd zl(^$0jL=+P^!OaUY_=p`qm@k&X|ohgzQYXjar+h>KD`I$#U86Qa4ebZQ3)aw?4Rt@pA9LL@b#@e*-uFmC_j_axQ!8vFhu} zuF>%+n*q$1plA+#jghZ#GR51xbmRURr&Tm^enA*nNW>iNO->|rF#t+)nZmxASR4BK z59Z0o+{%d!V>^ttn*sgREmU0rIdMvT)nWVcFXP^6JsqkzDPOB}%Lebg!w~NvLlKw5 z)HsBEG9R=?62_F7sNY|)Zc8#_F-R!L{OwM`D;)NU;HrIev4FiseC`qTTkk=JVchq1 zPU+kk;CZWDco^8bQ+ z_lfthGX)RpIKC6QN;r4OXMfJl^4r``28)!4MBdWN5nzUb=4933k93!!?tQ}NER>@g zE@vfjJ6QeRjT!4@S{_@j%G zU(D`CAROjbmq_)8j^i?upIB(GMBi+AEl%42GvmVs>U?aQ<3wylChX4q-zg#C#iKKg zyy#O#Iu>->F2YC0n)%Jh+2u0J2S(Z0KD`e(m9`etOkqgh;)LS1;_<+-bDtJ5ZG4Klv`$FKS*# zGg?Dk4M|U`K;@f$M%&|tL1NgwFtibh;&uElpGLE}B(d#_9BewmmBx6xdjA$V-7WQW zV8AJ`ftt0q`jSt@?4Sio~L+Q^f5c#*l&!H>soX7*-lYc4{I&( zgj6UKbd~w)l7|1w)%JxFCqHgghF7>x2nb*0yw}sd_my97%gcER?3f0xXhFK@KuH-F zM@D~cN9Ze3*@mvxhf+gH8z~Ox(HmPY-^`vKF~Zls7U;Frr$Ta}zlK&9;zOw5AxChJP(><#hNQE{52ZM!*%Qn}6gr&#gVVhuyQHb3FeGxhGo75(vRq|>2u;~M zwlWf{{H#+K>ywmLo@eg|mZntM7gyvMTh9)4DiWF=8$?p_T&w0Y5#nO!*OL4O81*|p z_fAR8xS0p4ORHt&C5nMO&@-1~vE!)%UiTV(4$?Kj<~1k_=Z(kF(n&J}#M74Ewuq5| zNxPx7xjH;qNNX{4HFCG1JUh-%N93F#BS2h9Ks9V|#?qYR>0bJ>eG%$DM!mnB`;@75_5yF!mR^I78f*oil>b(Jf=d}p)p zA*0V;23Jc(><%o=kpy^G+^$YN^8L(aWk!Vk%FJ4Z@OvJM6^4-XBdgW6vA3^%jfC&J z55v{^p~$(=PzHsLqcn$+`MxvSYQ9a=yNlin^PF}QXJ=ch#2yN9y}GNlEOKvnsO4a9;dK57&kkesiQce3`=KZaWhsDZ4+-V5KF(Ib z3sbZYBEP+Up2ePDLW12@11pBa{@V2e(GbjY0abB2f-{wqtU*wLdU&gN1@$ts{2j5pGmTjU>IJ zYd6Q!gXHL4w@A(A4RgMOmw?JmuPU6Av5P7E3lRHMSjoxvl1je}FY|LD%(66&BC5AI zGkcXl2t*S-Q0kB^loPV{V~GyQKK1z@ughU#?`gwqD_?T?Hu3eH&l#mPZR>-Vc*jWA z4jMsz$3l4}w>lR6AytV3MNvM{O);O-Pr5k^kS?p`$y+oW06cLDYOwyss*(BP#HV?A zZgW2BwZYy?Ynly?>R#_x)hag-btcaUSzSDryTBOnkL88<42)raU7~euKf{v?hPq*Y zj29uo^n5pcEn6vYsOj4BdDL4l4{bAyt>3KgBvg1PnJo!5-4$=OBM!p4x9`8x=1!F@ zi<(wN!f{vO;(#u78rm|eBr!wL(pZU?w&@TJt2P-|2VFC!d0f4k~nnH3`$9HhWvV z;`HSsRZv}CQFkJfspU$13W*PAckt{y;fnysdEs*Sd~Q<-OiubUeeDz9V}0%cxlxbZ z+#6!D`Oaaz7{BVs?zOJ(+!h_07ww~lVqRlHu{0iZk3O(gvGG_NaWC6D146C+uJmgw znS(jz)!=u!09y{;Jwm}kO$Eke2O6#Jo+p>3NQ;0%P_*ggzbGQr|( zrb6;5?wljB9wHmQvTkSZtD(XgZJ;5&i+N~fHc$I`q3q|xN{h}q@^m{Z=`fL6UINY!49lOxz# zueU+gvZf<91tLx*d0&m~>TbSe;F7d(aP#og*5;fOA^cvjmO{uIOT(qH<#bUvzXd#? zN>VhtsI6f=dz@{X99K?wGP$eN^di8mb!z{T`fr%@>L&u{l!lTYW8McY8fr768R z!v3GTW&BzNKDSj5I!Cx=KO|GEp6-in3Jcp>sR*CDwwgxHj@A(ic3g4OW!PocDo0p3 zefzzpP~~w_2`I7OaLLLkWY^PjH-|+h53!4nB0x)%as6AldXec~tas-36obh~5>dB*!>2y&A(@o4$GL?wH z^a(~>CO#$+xRvQ>FB*!5$t$XI41{=WYlV-LW0w>3#p!JaQkY`JJQMS}g>TENUJ{{& z^zqE!F^r=7E_){dq9PpOk+Fg2Jt9|2&Rd#9F+DC@NYhJ<^9sOIr0CIX$)NS$`0817 z<7rnK5$;`k0k{2v+L=r0T1EuB;OA#jGufcpwt;``pN{!X6iGAU6`t5n?g4`{H4o~{ zxbxW$tlC`N&}J+P_w9LX7UF&StFqkK)vy^=x& z6<|J)aYw<>#!a(jCu8Bo!kB(s^mArjB+F#G&ik%jqz7ru`=r)_aehL;+?1r{YJvrX z9aKPURJ>)xY(CE8ND0U4jvbjr0`L5Leg39_)31#&hDMPkhIR_E6+TY4vqf6bY;8Se$E#!X`}SjCV3H0VLL2&1Rm6GbT2$&P-8%QmX~BS}VWW)E8wy`nob0-7=H`WXVxp03j;i@j+aE#h(wMb4daGb;1o8}P zMFu_};{AG4lC|AEeD^eA^?76pbMbv;$?bt}}$7`%79R(;?#V2=&8sgdUw}q@D+;!TGpQ z>Lx^{yo(>7+w48Zlxhs5=+K}KBdxm}P9it5e%d(;U(*3utR*@M9(U)6xs3g05*HHS z=cP99#9&RQxFNysNmUgc6^)dKRZ2JiBwXj{b^FS?1uDZVSa<86k_S(2KUqVfj4ynN zLq6uG3fUKk78|$N1?aR`iQw&rYS>XAdip)w)3#Nfj>+>dy>R7(2$R)?@_yA6>rZEj zh}l;ub?XBX=`~wxTL{Wo2Y_$>t{7kMNIZZ-K1p7l1{P*8~u+jd{5p zs?7BSCSY_S`!}x$%(MOG``DP6r5pZRg+H{^g>=iE#<@&;)56v`*kH2l%+MxHrVs8T zIS@870o3lkmKydtb0@ksgYZxdc0L_SK!E&*K@Yw=*BCS{BKyiQ7x>?05-(tL{Ref9 zbKX3Bw12Sa1(Uv2um*824fMTC z64JVjR;?0MODi|6*`iu|4IZwtQBQ;GD_-1t@w_>TmNSrzp>uydZXw)7*v?i{pw!I! ziKw^U#cj1GN(>HXC*Qp2dTe^y_~H$5s?@-sH8LbwlFFG8;IVyRG{?pe z!*aSskn#)PUeA|W1@4r)2KvPriX9%k5n0N}PuafH;$f-_EsU9eTITItC6!XzE=_^^|d> zb{}kQRIbgH3GnY$0%~ruOWyrj%i5MKi?7Xy*k6GvVfMno&kp@bAmr3#OieTn> zaYWN^;KpB2<71J5;14oaJ*st6#L_URsnAR%!3$WjSd)R1$tl@%+w?FG(o|nDH zh%qXFOfhe5?Hq>2Z0dd3;0*ZU?5?yevRcb*edhsiDFy8>!~i^UuI;Gg36UpV!f3Sz zFLA-4(Y3yzCJv~yxqZSm>olUjvo>Bc?F_aqX?}?Nw`mK(Ui#R{boVJSDie%%L(a=h z6gH_MhY^n$4ECJnzmkuZ69|!a#cU@diM@q1Ve>XIXTd@#EiruzQ z8>htS$hhiliVXi@eFnt$!SKf?_HOOo6YTcVXYYe@T}JA<+CgJXl2)GA)g|<=<#C=t z>Ii978QtZhlnZ!ifg@!);;76bm2m;0bWT~W4<4w7Q%%SDEM8NsYJHP+=MB#S3){|QU zXxg_QpO7)4%d;Ov)3S{%;@n7*1 zG-jpiTFz9&LiQ_5t)K+|gaed8*2S>VMF02LawB@fZp{xBO{wdmOGTD4;L&qsO4;TufxA`?~{6PsoD5=D3jH^ zQiY4MV%yw1b3_~V@CMAyS*Lm(Mh(CYe(LY~2IG&U)TRIL(3R*SfYXOsRJ_5I{!40| z>dx{=k*8PA|7Znnf8vjYNVlE-EjcC3RR8zh4V=DcDOlnAsq6#`(wfMH==!ydm-1sb zZ8Oto>5%BI@W{%&^C<8BB&s%{=)gJtF1sZ#@^`c5JBF7_9pUUB)ZS_S><`uUb3J5J9ZA0;dI|4L zP~Bg(t7?I>?++}@`5@tkg&30uiMfgyQI;JD9CDxx;6Ds1DwqB zNa~1mnNLwN7Uy1YAK^UB?d6!A??1FXW5-iu8#RB0mbBdMve&Y)Y<<>$9CazW&~K0f zczat=aak4CwKA0=>6D5<4AH$02p8Cu+Z$l2IQ$#0YFANiBAJYTX2@$6py`21@=!ZiIsHHEWX^CJ$rxDRB< zC;#zVN@nMnQ#j9=Gx$@03-zdJQq#)YUT+ky3wj6Nv0ffA68ZDd9~b5}K0iUa3#LuE z)!bsm#$?{Xu<4a$lGX=N$O}}C!rSv^tC3#CSZH%Ns|}VakU93eIDs!w!;2*I&1lg6WSVvNh>6h$^spRx_<_Fe>r)A`=WKA;PpTp=;}vVwe4TcP*9-w=#MVGY#gQJ6wJhqC>yQ1 z7LsU$6jdj+DwJIZFLsw+m*umBy#12(vS5N+!~@FZ1L@Vldwsa8S9>xMi~$9^#Df7H z|NY4Q?f0~v35+2yN@d1nV>6iVtz&ZK^Ov}H6t`Ax%U&=!{mTt>Lp8d3IqA&(HVJ3N zajq}!dr?@ky580kJ(zvs#HK4Iob9$-wCy|tApgcq*Xv*D;=_&n^;u;u zN@Ac)`PgYbki0Jvjl_&;Z}4)z55VqsfSkYY%XUF19MF7B^J)+ znpt#LQ=&^-Jy>Q^jo*T>H#IaMq%ipFv?5FZeByf;?(m8uR9?LI+S-}^(dC-i@Ta$k zmUpnF)emH&I!aE8rpD~$$cKxy zKYUMJ5B8II!!GoG=+gwzczHnxDpV>3I+=FRC=d7^UO9wv_-+7k)N1(pF;U;P*6ugO zT4~#XFhs!T%UdSCgCbVlLIOQw8fq+>e|-ZU*>jcAA~Yzh4bfgWTOa_nkHZ&>-3FBH z7q-JYehb64lw2`XE^fg?;r&81vY)Ps}G)UNR_G=z>re6uB=4-_ylerl+@l!on5ONsMCEa zr}V%yPw6yMUo0|=v_c5qOcmbl>V_JkD=wMl8J91E>T@?<7fzW3ZrcwwF{qF_&g0q2 z51#@fm_?nV8&xQE0$P9bOzPK72(utl=?|>c0}!>a%k}9j0(&-47z;873Iy2NkyXHo z`eq{4?$r8LW&J4qoe`lvUHy7f@cMuni5>SKWmYLM_^5}MuwvWD+8Cp@jcavklJ}&> z?~MNLyetg2|F^JjPO?hCPfy(Qs95A8xdqW|LUi%zGx0xPF$E^xq6GcvPP9JS$MeA= zqdJ*y{FjI5sj(Y*r=<;NJ|||p`wvbxw#!lkfEWW&YSZ$XYN=&JzfqCZ5?mt=F0idEL;6mg(4Aq zFD#7}-E?!{`NT$y2chX>@n8B(&YR@(S`)>y2id=GPLOfa{D0Q?sm7{EGc(f?2ER0THvkcj9qt)_nY$ytSk0=) zJ9wPoQ$|S7Ei7k`*w@(W>ffi%xM^=3g57;ZG_!2&e}N$WcIYK?O3)lTsF$yw%na4*ps|W{}Fw+%rDy^_It=$ zvFzNB`kGxOnT_G8yyB2CB~8fm`gm z+-*PQL~bkbiRFBom=N{=(ASZlXPG}O6SHcGVBf8HB+_n*IS;*FKv?|IyJ3C7EvISj zLlRL+`Ye4i>>to<)v}Tz0EZ~;{oKz|vegW;dR(%Y)$rfE42+R1HS$4QSRTZdF#TJy zjKae4z%uyjXkJE0&H*47y^+xJsV$kRYxkWP(>9maWp8frm|(Qh*Ycj!3ZU$pHdHP4 zmlM%;wo=ipTN`<=mxoW)(yK<3JS=GLYR#TeF#Aq^|JHoayF+Maxwmi!F6r7XX&DuDEmST8f9G#e0 zPba%%rPo!PJ_%f!tOYa!B9})+1v$}ndh@}f6_Foi#dbAp&pGcu$@$a4A;WGtu`7j! zQnHY`d_wfXOo}(l&nCgB=y)3Jev)jJ7jdw=s4AIUTJ2bo1meFntY-LZcNXrB{I_?> zEYwZECq1l(ULOapoh~#fetB)3#$L)1@iC8qm}ow)u17t&x$!z0_{lVAVW>=PGk;zv z2qSg+XG2U}sgXEpf@`%EJ?&I~vH~+98uAnWBfQ{D9o1o6Z_#RIth+id3l^jQ0AJA} z9SAqsyY+WE&1rLWp~-ma=s!oDS7FDN>Fc)#-u-Y&dzG==ik)i{IQdeO3(El|JYBJW z65P38wZq_Vih3EZ@i~9o6xq^AUVN=?wSTrl028rFWwTe>gNzS@Tr(N)4+=qZQTNlH z-HzV!0c2wYHNDb42W}H(on@l`kjwqyS3}QjO!MED?hU-Ui#Y#Q5&@f{Jn4Bp>T2M4 zL4B|M%f9uVz4IN{`e(cTt45u0q*>>{_!xi0KX)u7{;0}2F+(7yy|nT9Ih3C>aO;k+ z`FfgueNC3ymDSGs1+I+O3iFHhdqxl#Z8VyF1H_tHc~cr{dyo7}d4S!W96#RHU8Q|C z9c|lQ`bzi|-^MJW2(JH*U!y#a>-WV>g?p~q<0@WsYyn9|zJ5rpT+f0y=GeZ%AuqzT zT0B;()gvQtk5)k};f}H23WN@Mn_`k!BOC7WD-sw!S+&%9x_=L@No;}cr5z{psQN07NU2lnQm4L>0aJob-`k{ua!d-5>k zN0CK0IoZ~Zerb9l6Y$UlB%X8{@M#XoKPG{)*HM28Z^u9d0gW!RJhiofII(w^eQ^O#q)E*DTnO zilb$Cc7T4d%f7lJrtb@VARz3{kJ9eE(GwVnvTfHz5gYt^E9N%0X0lCKD~p7kBRAlE zaIM5W<#A^KZ{j`Es@$S5uJ7iJ_C|PHaDj&=%@ee>KHiH$NswX}?=mWHvo5IDfpO3q z&c#2Gk)b4D?2}X_9+>;pSXXR2+wzTf8}?kcJ~S_?U!2fb##yO0Qg`WX)58_$gOR>~ zuwH;2y6rM~fOA!H1L<#_8RxSmZB&;J(yCY~L?)Zdt1i_2?*j(5QuacjZcQ;S;V(fU zWqRJmtI~&Mx*D#p9?yALRn;%XV;kc9ghPQ>?GtS;?9|*V`1VwDp;T8lq`BAz_nW7# zs%s4JaWE;DopCXZMF?pmEDiRsV-DUxG~2(^zFs>a8zbj6ejelRIa24ln*hkOh}O)- z#TAnQ8oJwJ!#(B$@%Y=YOA%(s*u+OFbRn78RkcMX1-pWv}5B#9?O&eXWeYi+ctxlGl zC>k9e{Q)MGDd^I3U5m({pQpDdW27~YuIvcLL(O9aWx^#`!GfZDwhljd%HN@3MY~0Hl zsV=b8H}i0eda%ZszSI+{0L)eCFe?GBZB|ZSq}ZFf@Tp2pZKKc6N$KQe?od@SlA zi?Ze>z(>OP5BJg*uJJ^R1BF67K-bF?zPvB@+DSGD-Wi3RKW8eI7tT*S86DlrITt|f zc5;=K4Q+?+ReiX9l0^yks!tNf-XO-;yN^z+76sQH{90nbzQeZgLqLJCs;|aeBm;I!FNoqMJ;L4`J&B8 z)#VpYp?2om26=j2nt)E_J(#p6N}MGGz5!PW`OIXz zeK7adR(sTA)MuB=u-O0r=yTy+8QKagSkhE(~dQPP>_t0^nt>xh%epw#o=`xH;RfpIs*HTJr7Iprc^&-D1yRnI<^w zVM>a8|FP@)J85E0S<;-Y2w;0#f(AMcvRU7p>s|3%CIF!4vRd`^_$nqoTvJL^>u!Z$ zb`QCz$Itb#ZpZ{^a<@2T%FMnplZhfvOmNDXk(zOnsF+=8BPa-Y0EeO&)znfgM%2r|7fi>djEZrUtY5axN0aPoak)oehpb)+Oq)rngSw5*`%n$4lPM|NEMnht~ zF%G+E)iY-+3nC+0yx5_g<8NsZzEpN$xuoI@@wRo>`&>nHb3|Axn>PL%KYK=%7zPdh z{>b+JBHc4ur)_`G>~=5y8(01p$bu8WJg-QYI4|!e2%6XoHKhGM&G+qUMB2aDCf;cV zcWWJ}nuuYdrHQ!YkZTeCTmT|Zi}B8DODgNl#Z@Ex4ts(x7akBE3uayoth;!Xq4cdi zaerH0S8xX7jfePtp&gUR#_)F`T?wH2h2bdIH%Cu|&BdSDe#0+pbM!0R3s?7#GEqmm z_m1Y@62%eUDx)n&u8H;ix3|tw;@eW=V(J-tZ)B0dZz%PRDi$LwzD*@M-(-imuxp)D zUG52p9w6zi+M@)WB{tpX5EBdG7ubPYd$7|b5M8(UWrhe6ikhCBY^HgjV&1a`#*?8q zoe)6DUpR%Q%Lwk4Nkt=UKfUIG=3~M!v8=)Y;*=f)9OflA*XwNyTPMnZuB;bRKTNkf zjo{SPQecjwtQWGvj{DA+0KZ(!*v4|zW0rqJYEDmk62cEVHBO%Qf!uHDD9~QnMlQ@L zD=QfY*|2^)xJm56`n40<1$Ua@o~aiZ0M(A%gg~0Pnxl!^yV4bYI!PWh->~#J)hVT$ z#TjGZ9l&2RU%$3C5xO2cT1Cp2GldKKF-5_lrnTT8b}0$a(!3CQV6eDxDG;JmEpv>A zoJ3+jRzEU^w{9wFoDGuZ6Z*6Mn|?mC-Z^)lKb-8?ftfzlA|v6Q(`u0&R&1VMvCf?e z!kf4U4LVsYd*{(t<9MU^(yB7}*i+t2)E4QujDws2G`B7!zcW#0TO^|k5?gv&PRhMx zO`T12Y$;QP;&OA0l)!yD#x99oTT}QE#_w&czio(eXekL#+)jdjM)-D={f0ghB{cP6 z2&YUdm(1K^Okos1(0=KJX}st6r_Vi;5Vi|woE_#@1`4O*B}+O^E8PI_EBg{f%|6 zT(q4L?lalE`v(cF zq!z;!U~Z!4hx)ot7ZG#H!^G0=zTcS*DtXCLM~^+151n_$-pgr&ED{DW^`ez~FeyNl zQDJ0#|2@z?&gajKxvhAMy#AApBf0vEE<}!;;t<_)I}*9aGCwt5?miu{lZa5E(hjDa zrt=N)ZkuOY#2i-B4blJhSOXJf*Q!h_d#e>vEGRHBDq(9~4#{xQh}-M0I3d}OB2L=0 zsc^amWT)E19k;FuX%E!%h+fd!{0e=T?Wu`6Pu-h~G>hNl2w_;3NfbgL&sf$pQI!pG z;DG*}nWp%j$@x{zd6oYS7^g^IP$_xaKBwtPBJWYB36ECh+pavYZrg0sW4;={H*Tsq zeQS9$TfsBjd$uN1`Cgjc>Q-#t0c`H5b1O&@Bsz6l0i8i@DIX#JcEXWuG>x_H{WA?> zC9(D5MXHqS;dyHPcG1}uYqlV7=^0yn09s(;e5Ez)aMcWHG%4Q^5SAVA{)9T{QYwnoHHwq_(9Wd{|*be`CaME|D74Hw)|8Ll=z zvuR`R7&Y0^ji38C3I__$tZV{y>0Ef`~D*5X&G zrgwsiE}G!Hh6&;Q)irW=ZzzzXX0h63mgSWb2d)THUe=Cv2PDV!tueSFGEFvm0f4+6 zAz-J2a-8{;0Yr&?u^lc4VuULC(v+bLVg>0naNeyPMd}SMvpVtrOi~*Fc2o^BVdPWHN0B@Ak3#+k| zZ(Rj4ruk&Df%bBIUOH`1Lor8dsC>;mki_mE}_-oy@5&pUVY< zA_E>_=hL~Y4AavF3)=xNQ6zxLtBVD|Zggz-Xn~9 zZBSI|!4CG7`HChx(kRhdM9(j7<~Am?zAj12eE4*15fl8e`M7wk}MtT#u^9!z}9Py8{zesW6U zj`gg$jTSYWZd54exiVQIw;b@b?xtgfI7>jHP@T-yc~C)8T|u^YP@ZU&@UHHqMH@;H z-*E&lvdAe@$M1^#(M$GP&U2_a>WGI01>&^OR<5Bhk7{@DTYI3yc$@FBOG>Xr^9eT} zwd{P|E~URP0mjBND#{M*MvkjF-^Q# zIJeq-`{%Gyg<13*L2#XEw^$GOa%8BpvWH!7wtSW`iN)>43`dp9G@ru5;>Vb9e@v~K zG_TYBL`Ho@FcRcKIKw_|3(P4FOmNyRbv}nsN6fWZzElFj5(}Dn;Xg$ur``LdtYES= zvgmF3oc^rC5IE4g&t^wn!N@}!#{rLEh`8xLn^hC+#PjuQXl6ke-PU${jk7G{BjN6N z{b}dPYKC7`=F_nnmoqAF&xoU^o3tXA9gx-2W0vDza_q~!DW)}R z?4L0znn-TpSFY-1&yWY|@eS<#uUzfSX{FeZP@YN3_~RN6eqhVrl4T_`T##FB0BZxW zRd=YT??m|Jb(-ydo~MjG+9BT?0Fk9p|b zx?Tz(A+wk+v8x;z2T}%k$hjzjZ0L|-Z=6^VG?(2g*0PE0e<|q`uJL|>8p>(*qjAgJ zDFP~h+N^uxWkEfMn}}A)l8_Z2)c4FTKr`~)i-u!L7~h^^t~$OAxuXM2VeDC72+37u zE)8A2ZtDMS?&dAm6D zYCbR{9Hy&Y6hC5IzLjr+RAqE8A6p%wzS0GF->QIU3%HXpTMuaq5Ee3M(kX~_V+<6 zP>Q1E6wD{u_dxc{RzYt2Hfhc1wqyXOf`jXQb8SRO;inaNh6I((14kyUh0D+*^WWqp zbJBe@Y-W6de7k-t6$QX{o4T-?q&;YSi{H?6j?#^K6l`!T*j3ahe^ECr2V~)c*ci>- zxN1>9;Cf)5qgKCVZj=HI(uoSCT$9EU6^)Yxzf4PcX$b1&L*tI0QTM)^dHt$q#)dyE^W!cNJ;r^?OvnkbYo6Y#Q7!+Qe_C4G= z%j~1U#YPj9QeI*`)2EBZ8w3}O-cEQf)RTj{Jm{7v|_!s;D)HZ^9%}2QKcFfkA41He_n#lMBs)@ z!@9>-T%(({^VOf!#zncL&p|Wi&2$UL7Dny?UgYOd#jrOV_4B3Gt;?KmXYQGXEzpd( z$6@x&nGbY$=a%`%)ub|=hkDT2B>xSw1#cdBMzEtA-Ln1tp`4~q8RZ;u!$m(hkms;| z@J>@TVB0t+oC5cDlYpWeGoUVMCX)?(j6}cFe#i9ER8?wT7E&TMkP@F$bVO%Yj!S#! z%|}Fvk+b$;h&QfVyD{@?U8kCIte+J;Qgc|c;`Sf1_1^|wTHyLsPI{N4aH4Oz*X+^D zzD*zrY6T#t$bd)90@>}Gd(cB#O`u<9_|@uZTX`d4MENHbUIEW#I?8z8 z7TC1?Fu1?Wf$?TF@8eZr?tippq1%Z9X1XgMDPwBz#5GJjHJqAuoq*-fr{5zfdgX9f zn|_6sqLxE_&K!_&5mx$!)n`F$QOFI5P0Jv`ukwWo_9cJzzwFPFTCp8{wsOULvMwLY z@K{^*r1|{m89h<1U2JAzp!;Xn>f;k!vpY&`^JDY1wO`Gh^7YZvXN;xVuDvSo(w)uO za#mb8Iu7G-8~ZI3{sgKSU5#F*DzbE-prz{ppQ`A*_=x za2l)d%epFWA|Fm`vn1%z1MNgw>i0?&1C49X2Mo@%1hifJ`G8i2sLET4lVI<}(d$aZ zN5Py)<0;qj+VD18Rzr__^W70wW%dQyR%}bzle7)a-O!5xRkY5HY|ZJL&fVKDjpg#{ zkOd*zOjuo=@Z8AEJzZ->dysa*!$@Y#K~Z_CUA(S%^4pEM5^j9`y7!&!z3H7JoH!qL zPmTT1aj#JPfu7fztG2T-6YEUZF;2jV2nNw38C7!-;U_JJ%fqP*54f>TV2ej8qplr> z&o??qN1`(|7QD-ScUN~1Wr)lYG^T$(T1mn6Wer~8O8bYvSC=LbU#Bf-hLDE|p>7LA zAwW`~8)%;LOv&kmLLMT@cGog+T1Bw;MS%JC^|UH^1(4WZg?GQRvnc~a#e`*ISylLv z88s%05pRr*HOFh)ApRJB<4M;Cu_+9g9SVhGTkpZF@6Hjj|6N4g1w+DF(L>iCrPXAedSr+fJ3hd6Y z-Yr|m+??$Bjj?PJhCkq}UZgw&m7t6(sEmJ~szc5}bEpNBJWcldh3F7$^&M8}i~}eL zWzi~^b`>p#wT3?E9qf1(MV$Q}*2eB5Nh@UUhkSZEb{jfwSN>9Qj!4OEuhx!Cf(cE- zgq?irRQ>7?#%dc1k<6V>|HYk$L`x2hVQrTWYFRZKQo6ei!?M>i^7!N>3G3Yig_z$Fy6eP$Y;VwHJ;#-A(#zLr zp**j6QEM+rjUa9Zka|IZn6^7c_-JILYa+g4cgnjO7Aur;7XcS&z3(0zy2r<&;r7L< zZKFztQ2ws{B7~40ZKVO%jtH2xsV83=j51h$`;Lj)UtUnawIi1Ly)00|ys51x!+~km zDBT2X!RJtxMXsI-tI`vLqgO5LOxL&8nsWT?9spwA44!}`)XSFAeHwiRKFP9ucVR5Q zgk9*PF4bmfele|zy%=?)@v8ku&m^M)exgZKVt^pDbQhGk zGm14LU=S=~hrzn_6SKWTMF;;dvQ$-)6&WN}YlE z>aanf{dP8mVy-h<_t20P|Gv)JH6u}PQHcHTUcFsiY>jK7cJk(YoqqEM1~)*Bd#Nbv zF&~N)yp9v$p(C-b=m!dHe$0B(e`T+R=1{!U-kAzt<2u^BNd!|7(-|00D}3Z1za{-N zb&bB@J{pr4(A_(cIXsrY^I4Th!`Y3X-MU}F zGPR#nfyJB&2pRqZNS!m^>6S^1PiRVbyj6N&p|Z92H{}*0=9TDa3BM{X?gUk%$|yC!8@_FGJte~F`*nW6sI(` z?w*Oeo&$ZuK%fSm#fo*nB3wme^0t)iY<*FRmdSb)6TCTb_B`5?9rJXfgM zU0=KHv|85oAhwB@CDwgA(21esnWHSC5wdREmS9Bh7u10sTJ09pq0sM`*VTM$Rxv-O zLBW+@diE<`)c9m9dMDhZaXv0~ZR*22ln@a}{ZL3RRZ*}bS47P=P~LwZDc7s6riB>$ zEh3B9(S6nLZ}o4@B!pI#-na#Wo$<^A^YUJ@fF}S+t&E^vA6bkT5x#X7>-pnavF+nX&oTG?BU3(0;ESkYG5<* zW#Nm{M57iH1O8a!1zf!l#TP`8ETtw|W1WimW4wF2w)~EUPfYihV@djf_7kwf${dW= zrP$W?LP-D1XE_$O`-vvUvb%mtePWmrvLDYpNaJ0#a7TJqv@|;S(flZ3!0K&D1!L&i zL{7m(m;~SXN&i=ur?M2q`mEBJ%6H`*b@dxKh85Ks96m{Q`n)V^bY+$Byf^K()5BpB zDBVEjZ<_vt>T#{IrV3;PZK*cUJ4W@|RQAmLKz^-nbPi5{$-mi*H=r%NTFUfSe<(Cs0O~AB;1BNwpQ_QQGP4_J%#q1 z6FD+;=KJykpTe)@ppg?snFVpW0S}fR+iwoF!nOPp4~y7M&nkD@*esj*efoqv+@$3U zWjMfex1<$AC7uVSky)le?b^{cG>h_=Wv%``OCtuNdd$)815&8;Vem~_)vSxf<_|i+ z(}qe7pk(YCRnacy>TT4{BF?u|>f1`WGX-DoXHjh8n?H-z%(tcuh%Je8?A4bl7)~kl z)NOcrc|MR1HAHRMFFgexLFJ=|5_!RIM3qs5{Ejea;R)2vi59b}6^&2Io9jn%Cp1gq z3qTkddg=LPvoJ`{eae}qn^g&55+v_n`RD`sz&zhZPeAKk zOp}td+bi+++rY?&KMp5ewf$F(sl?gsI~ymM&AAbCSAxNPSMu~g1IaaSHvG8zwA4xM z4ACY~16KH`#T`-SLzD|R2)uC^HY)Paf0pQHlcnSEZ8ks+;nM-M#kC0E#vq;%W&$p$ z<8}T{d)%Xes?P3oDO@)_&t+42k6rWIZbm4P_0I_%-z^?~mk=eMVb9CyM&Nawo`LNvY3XA`IZk6r%nYkS#t zBW+QehB664i29=^)o)eioaeswVvYKquhO+kTHN#zgU*DxpHGo$4qFZ5oW#%1VD@OI z+<$-CC?{#biF}keh}t|%_%Gh)rU18Yn|a~th>{1sm?YHffwqNs z?4@xj#f}&fWec;oT*OwsQNo!cdY?CkUv#Sf}$@@>U ziL;#7$n4dJQO=pO-_7`+6N`3u6EzEuSAiWenmD)2Yd1PElNuB5@3p(=-ItRBM1Swgs*}c1Cr4NrR#g@9JSxqF~XVnd>K$y!H zkxjitSR;Mix!u~K{|L8LaRGXQ{PtkVd-!2d_2%dgSL+!7F}PH zF{E7`Xg*9*1o6Eqwu>4@a!F<3wW;g3gWz=VYc1Ux<7mWtqPm2wCPcf{uOKxu=cAW{ z4j5lcQ>ZqdR9Mnt9Nrq6uYwj;4I?#<-lY&G+#n9%s$3kumO9Hv{Ge+AVP zF+I6SO}ZB67-J|4)G$ z-cz^I&7l9E2mZfw8fk+Hhi`9e_Rg4r^*NFQlgh1uNexG7Wq3J;d-f4*%g-d^{@TXT z^@Uey*q7*C7Os8WvE>L6-In+x!U5fy!MCk40@B*$x580jpiXdys6(;#u8**G-_V}D z*uv@~g=si{ISMOnP5dB#@^rbkLr88TVD`4>(B+*Qfq)OIGeZ|nt*OjJ#LmtBm#uhC zo7lmvTbR7MY8PY6W35CrwO?SLkf0=z;7_S^5LpHwP490?0f zcw)8So?>LP?p`s%*~K}!g62ByRvj~CO|Sp%ShkXcdadVg)vAfz9X$hewL$o9bjFLy zqEk-S8hC1NjVPL&*TH)n(6ck1@bj!Y`}CZImuXYbN-xL(j;0wn-)!3X=cF1^ z;H@9zNcI2OM-=-$nu-~xn;!q0N*DS))W|ibb3evMRzMGT$#AW6HOTgrZC)}UVZEc9 zItFjtpOvpYTG7~3Z;TVx18%oWPc1+bBGc;+Bujz{xYQzpk%NtGdzn?Du?BD9W>4)I ziL8kA8$PB&-@z9@v6rBqKK-EY$pr>vMU#!%pIK(Fc8C>(?;5vr9dxy437*ijJ29%Q zKYjzgw&)nyeu!HocVars!9&fyz{LjpMuS9|&_{%zf&2H4yrQ^?+t(2=|L40>`f0Qn z!-43+E}DO>Qi~~tII$ev12B7CcND_N`*4I|d#ZYD&9@;AnLQWb_{s$%`Im-bb>l~C zvCp#}uvvKukRQ`IT<14w!2J4IJ_r8R(_$!(x>Xam$R%>+oyji#9+jOW4l!S;scCWr zaJ6d1&Sfp0Q?A+Mb@OBYR-D9RAyBaAx{ zM}FO&j5c}(=La3`zGIO-iAL~cS~T^d=1u}cSwyo$9cL50NFtv6 zg9p1|XBXRGK20>zL=X6E|8>v%LzxsIFQ#~}HPnGmoR(|KFVc#}NL)Be+GGo&iD^UPpai-Tz7H49+7!>Wb{O7!4Tq3VC!$6(w2_``I@BD^6b-4B3YA zXVPI)y0Bl;2uID)rP2s0%@915*h{U99qt~m67r7>6HOW0v$ng+Zf-Xbx7qw$5^+eX zHUG%5wW-{TkRv-m3u}D(qrIxS4t=N-8Q9%BtK}V0`j+k|S}tX4_^2;xI&VMtrY2VL z{CDkMz{U9f05oeu9OB0syo(`oPqv7fVFN5RWxzr1<4*Iq&_b*;N!bUpIDibXG{oa( zgruc1%d+_bs-eoj6*fb|vd%VA%xV@Th+n3&QU}rU1USD2?k=hCb1^T{m0oJnrXGY! z+{mv5SSTpm=D&QmX-__(?AbQS&O3ZMJ*#=LkMJpb%l_+&=2PkWBY^MS>0U^mT93TF zDefhI#~PSpC+$mdsZ@S6bU$l^{p~iZEWmB}`~z84fY)kQ!B2TQ!nrJ7V-=Lv?><67 z;e~hI`Y$fm`|m2aQHAUda-LstxQVW-&>@cXak;pZXQ0aZ(G6u>Cc7C%cg19dU(ZjBWW*nli!kIP%Nv5iKFB@g|? zkvf~ZA005Ta~+slG4U^UzSN(Rw7TR?4E1wMZK+Rf;d@+N_&T2~lVhAv_aJ&N|IKWs zyCOdRlknl9wmx6tQ_I0zCLV~;t7!m7&>x>1&(WAgbiK@%YDznV4*JJsd9`(Y5*;lY zal6xpLnlf=qVu|#wTcgz(2cxQRT}v`VpTMDG;%IwTCD>FUfp%i@u4q<`*5qp++e6m z+I4V^sz2*AcGH(Wts!c!)D?AK&d}>O4$|4MKrYPZ-Vf!5>7Pv$|WU_#Cxi zGaSvStGG$2Wti=(Jw&2W*tFq^p{pxXh)wmD#)=}NyGQh;tb=6Il-AOVbhUI~7{wQ-8(MuXf zC3@l4zGNjy_E$#>Mix)EsS<>!V=L!mYx(8Sx#ROuVq5gdJ(+73bxG#l-w!sn7h3FHNj;Mi}Ow2d~@Tiq$0Ikg2j z2jL|CY?44ckD*@hSr_Kj`^O0F@h%IS@$KMFX#--yoL*?9YnWyR9$hZ3oH;iINqB}vu1Nss8z*!OVNtBN3Y0%MEkV!eq@ zXH4Z9g&FYLnz&D^w@&2=HlmmP3)0SwD6_N|UmCe1yQN4M%-lLB*6&+qOH{fp4_^$d z(6mkZw@{s~7h_!TMEt+w?!B-j{nZfK5qtxR+Jc8e_>?N)}vNyEM<^ZNPC?>Y)$K^>(OZ-1u6W>`x<3DdHl60BIQb`Kqo3;@Pd`54%e+4Gj~Nu ziM|7p{rR!|OSjUok?oJ(+Z{H)+`(>7=akyoCwye}GWNgPKL2{odw96a%*$_{^qYNj z&8M+bAHTj(JZ*zN$sOxzANt;)*(AHm1lQ712JII?!{ybg{3A$a8q$Do0S)+waLrUQ`t;MJF7)i;zK95tYGaAVQ0_MbR z*Llq@k3$2Qp(O|>Q6qI8lh$g~7+iLvR_}6oHSh=cq#XEQc%(t+mTJf3vFhyFaH}O; z1=(GZBH}UmH3l6i9Z6TKb&!zNX~Ig-dZXPYjoafQ6)w0u@M1ydH?jPCJvxI)6RES? zC}8&J92nbdwVSkVgGQ%!k+N&GMytOJ`GG=2daPcPR`0VAT2IOpWeA6$+pl$pM+;Cr zq~0}Jv(-uJ(-h^^>dD8nn;2rYdIS}Okz!09SFo50+)KWNR!4Y-aGld)0$igA%Mt7* zorm$|pu~ojfru2)>P$MlRqL}G9B!Gil5#s-MkOFoc8AX{6L!JF6C6j!anvcY1dT4J z;tJ(R&_~#UwJd}P#6l!jMr#;+Tc6#CkQB=D|NFZG9Xsy?!Ak7|^g91ppbrutpz~q3ht0BLJa1Z=ATz(Uh z?r8Xdb|iQ`9^jH+_#sVD7pcW2h&3!zkqS!BC}^-!L?j}40-_lNpF?YP`zw%sW3d`E zNV`dwhdze+b-Hle2*TkC#_@3IFq-VTXe}B3p= zN#0>_`J7%d=267$@M)dUXAN#2sdcx@?y^K{w6yZHRu={h_(eDZvQ0>%L#GvdZa3-T zCOY03T;V2<$w`K2!h*bGNm$rzc53}(pfze7fPsSKJayy#OWL48W8=g0 zQv-xe%t*!qob0s*hfzi_4_pLigwNzNDdTV;<_A6w2ozd}L*sCeK@P?rhtcD5voQ~u zWRUS0yc!IfJth-r$R3l$N~Ty32TBl9D5huwL=pK(S^}fXp|d(QK|x-cFzc*#G9i=t z70CSV)_KE8ueYlqvjcK$b$SDF4G}>Y52rgCbnBd?g7L3bZ?`&aEQ|t=mE^}xvc)j3 z)nRgx8nQVAixwp$j|s*i4ISsn2t#Invzb(Y90Tf?f?E2jU@R3#vSH#NuCDnvGsx{B z#js)CjHH=*O?ImT=WWK2A+F|$peMM9;1B??Uo92wWQsHgk&uK$GS&;E5gUEnb3Uit z1rq`zy`E?Vtsn%S;5Lzw+~m~h?PQ##85RpwZ11=}z zii_Y91S=`0j6ep6h$SEak{tODJsbx-`eSrOLNDOI96`k#Y2w1Q+TeI_6nZ(!Ex`pG z5_lRSlY9vzQ%2I5NT!^o08meoc9L&ERw5=sf-Gr@A|H#$Z}itHkn*}BwSv{+1WAA= zU=0N8mkQ-TKr%op(UR{>e*t0F=3x!{jpIS!l7?r{hygwx8Q2X14>;6- zQ}HUNGD&EXPO`EgLtPB%juP&$L6Cc+$LBQgnZoz-0KQja@Of}{G7Fd%tZKC081foY zy<{SHk(w4O`niLmI6bkZ5Q*06;NdMGW%1$q!3AGU^I+)^Ryyl+15} zS4IP((WNfOS3ICI_VOVmxO^V61cY{KfCerha)Jy9j3B1S0ISP^OHqkL@lT>*4N5wd z&+c+s{G@R>1hKJc9ab{&M+L@Ez+`f^IxQka#z|!&Dh7xy;W2SAl?gL2XjHPQcH?Kk z1u^LcBFzQ05Yke)4wft^DWK>?DjT|r-)f2^UCwSYxtWCJpoA49d5_QSg%Oj18maZM zd6*1~%6I`0pgHS;a{l{44OydTY4;GKNk=8q81zXMDv?yOKnAuTMrg=Nl)-MR(@ADH z3E)|z*TUzcsvU%Erf3{V*t_gR1k!kjxNnr&g%1P(yAGzH01mY2I3ox0RL=)bHsHCq z5~L~{Y&Nj05xAk9DYD@6JIO%n)Z+jSlOUZ1$g=?m`Gr=8Qzi~?1R&qe?2;&r*+u#g z4WS4wK58^kL6=Q29upZ(3_yt$4vm9+7$XZ#lC40zMBkLiP#~w|!T%hD) z3nf|W#ei^~-7AJg?HD&jdrVk4fwQriVIrU1VsaXyrBn<$BW9J%11=)mn91B}QIbAF z@+=-lQ3ooXv^rC`$?gUjCJ>|Q!(a^37)e7>fvC4*@?J0&e#}T62%bT>qGTu!z$6CD z6*yCYSm*Z9u-+#`V~8zW$QVeXlkXy9xZc!7F`4SQf)LE+g2-pu9dZ za#JA@*SREhSP_eDiH!?Je2`R)(*Ub;P+%~Ojs!s%;<}xOSTy-L8V7ks50ON<9Lp?9 z!+@c9F&SxSNz|x9*vBkdK1J?XzT2kt|O&oD)s`1hLk>9>jy-Nhb+Go ziDd;OT)=PyVi*xjQOT?I7(hYf@%lU_Y?>Nqvxr)7EF}THsdEUU#o<8b(K+N;3KTIK zgjI<+Vk@Kh9l|H$4`b8JNFhPA_O3qrt%S0d{tz! zd?KT!9Gj;F6%FxGfZ^ivw4kCPzACyZwkonuE9bD2?Vg7M*%xG_RIVgM9Jd}UPnK6u7VmTI^srt^70drD?j`g)lG zdqHIOG>{s$`e~vt{#aoIhp^jYa>M2pksSESS8(HTutb*>>TQ3~K30uh*6U94gmqCtfiBq8FCq*fr)j0XM?LE1|y4rCLm zTrrBU#{<$LND|>5m(v4(PZe}wNXeI=*ibG5wqCV++(YRppSV_;tElPtoDmYsjnOWkv67-Pi z)r0991&x#tCFvwU!=$G=tRf*ML@Bzdf~o1CdusVUYH+!1R#Th|aa$yiZ}ySORB-t| z^f3`W`5T;y=$3Y)7GGQ;2oBZ?hTgt*vHPPdQdKa#Ai++L5y z>e2@2jW|pbZ8Z@|#_OU1-0{cWgb_HktpcV4F%M~2e3Mt_C2y4|@jYw<&S^E6G=gY+ zKq*wEx#Xc)1T=~710tlHTwK7u^1e4|f=^g(SDJWB!ssBnw zIl}~v;rj0cTtVUgc!b;dfNft!aB?ax_mw27AY=%>Jo&Q0Kp7y5d$Z1G_o@U?GQ@zE zRc?E7z^B)WTr`kCu~CVLBOGbqpkBA(UmaOUczjMt>}Fz##%3j*N+ih4>TqivdNR73 zq1UkOY8lp>NIjWEoOVyTXo22EL$pQnVYa2@^uUY64giuKK}eoJ)YIzx7O*^va0yx_ zGt2u~6o!JTF&34noJ5qpPldwsDo9jS;m3FTP%WuqF%?ws2UIYSkrBN3Lx4c(hX+a6 zPrh@cm57A=45`2&c`M8?1ZA778ga7~?NnfUFB)tzBpCNn$(W6+GrGQk6@@2)Db9>! zFcNSJ2KV+UX)!rX9x^Y7lcfdh>X6|KVxXp6FlflvBBY>U8#v;a3eng;5QpII4w?#3 z?W|Ov&S+67hw((5j?AQ80El^_T>QSc^94FfDQPOy!Zxw^BHR^&Vv2iGB&L{CRhU#i z_FwT)of#H)-e~!=1aQJZiJ(Rm^0=5Yhsy|-mC)&Yg7k^8?9RpwPm7T1o#Zr zu&Os1Ei^?&+lioJ=K%psL={n-s6>^rVPRE5dV)@w3k4!(M*-qT2jd?8IWQr0L?e%q zusbJxD8*i#;#-m~ucx&Rnsu3?olRys@oiLG(PB%4K1|EWvslTYadT*to$4k`-bgZ( zkuf`f7bk-}Br%{x=|H3HN4qZQ9-ww4gd6vC;90BSb_pg0CaOlv!B9~98N4D#;8{Up z8%al(WAnMy34+UDrH?tIrEeq7AmJ{-E9Y3E#D`%M3j{Y6=5&b#~s0jSBMGeoP= zzz;B4E-}a%>*v!(?SDMdDH+4UpPe z*oc4#^=WnXg0{$VX>>t*L!rrR)I|er;b}P`ocp~xt0FN8l;e>vBoUA=ry!?>mbX0M z_EQTHi`Ql31%G)e)PBl02?`!L6YeJign3^s~Dq;$H%W3*^*h2}zP42p*(LV3Z3A~=?a*()Jz zWD5fT$;ja4)sYg#HV0*ZEgvOX)LqE{n${_?AX-rckIKoY;(&D{iVtK7VbT%t3`Jkk zQ567AZyW&96D^d$L>buNM0+d{u2Fj;$^QWe9r6R=;HW^FFJ0tgu|%9yqGUHNF2(iX zK|ox`218-{n#liwOdbi6Zm?8E3=V0iah{eomPK23b=G-IdWQ;BWL%*mm4LuBgQOUk zX>Q|CA{AK{+^G9fB+p~g3sj&Y%N&mb0@DnVVqlgfm?K%1m8nUa3AmH5wd{j+Q6b6QEIpWaKp9K^Bh)2y~fC0-}w9md>$m zuw~-Yqrw}FgJGJS20JB7noP1@YB?rnQZ{$wCK|>LT+gW)jK;x3wA&TmEbtV0M4Vg| zxW-1hGYJY>aR5={c9+XWh7funLJ(=XZUP#NM97cPw*z(t7jInuNl3&co+85SJUTXbG8 z6q{NhfCh%bK%;h-EV$Gd5u&sdQgfVWr?14Q!6O4vuw-GYz-J!zEyYu28lBIGTaFev z1d0F$Xjdcv*5)!r_oO)5WB?7d3}6Y-07`|4hAR{nO{%q8N?TzI7S>^Qqox;KMA373 z;_BCiptR^^B-fg4BtC*dP*f8vVvuOuv%Lb7>!nI7IIYYy+4sZtF!wZUvnmImiRI8^z^x?{_JyejzndP9-rHlht z3d^q|?OK$nC@qO*GKE5!^jO@bm#u3IE{{<*$PZ-EgBc#3Q=rFCY5x9y>J^F;oFSLZ z2^P|#Qi{VP&{ly!$hhT#Mor`)BDUQ8N-6sD8f`V zN4X3mX*yXD&;PP8i9okzxJk-N<$biGRiS7rp$2gb3ycY)3y0E?fT=%q$~Q6|zi^@v z10($(qVS93xE`k*wg5q0u?7sF#N#t4D&fg69%ToQg0ZOPGB{6&)VWd2=0R$y928aM z1V5G<33w8x9d!``%S0_j0&)7e0;_=SC*qnSF0O*XnxX=;(p@f-O@Rgg7%i{{xaP>i zxFza?F2dKJ)9ZotXh2rQC8Vm>;Ov>(6epYQt+H1Iu;ap6E&_0{t_nn5c337db&pq_ zcO0tN#HoIgam9%=4mJ#JK~S?f?l=9%TNEs6VWOx|t6W~Rdm zoSI`JjCiVyQF;X_D%XNn9*q;M_V7$Y@HCXQ95jlex@inrh`9N2CJq%LZp}cmkJfUd zGV1AIp&(Jv>cp_%)VYOlmzRAaH7qWiw0g2E5F`o-DLE$`2|=9|D+LoWHi#$|sTZUdfPU1YtPV*Ht!OGxN%S-qZSW>D zSU8%|`T)`ckB~4M^P$OV@~m)CLck~2&NWhtRVVg(XD{PYQeoGamj@Y`U%*kjJTst z)v~Pe-Rv78B}CE(s2-j46af@*iWIrbS#X;S52b*puGblC%+107A&S^obh!CTs!xH^ zvuxsVe4axFZX%U%5SxcMM4W%PtVV)GRCuITPhM!l@2vSR9`~e@!L~)wnkA0pg7BE7 zr&uf$`^2FT#dw|7#b!vYHV%dYrh_b;rl35JPOp_+F))=QJ^QM7j%~})ryweQh{lKh zp~jSHPz(o7@Y&#J@;mBj$&g@SmKzd>Zs}R62`N1-DYA4%KiIv>fXY8d9Jpw+K~1@3 z=MySgYcab6Ff<-h)(1qPMhCEes9+%iA<-{|)?uUdCW2VH!0(9Cw1|>QaY&Pm5b&X# zF3~8P9WViJ7+SB+qK2RgS{VvP8?-}HPaJ^ZWGj>6gWzsPK94F51*Awp`8<+0;Nl1(IpEVMtF$YC0fCV z2i1X2wiK3pO+b~%HAdz@ox!W&>Wd;;r_~sUau0&oA`{Tu!9$D5D7JbF+mDxG^NB&V z(6gIvyOnhmhs%#EqZl+Hba{1lIOsy3MlB^OcLdqWj?ic;gb!0Q2k5vK(!fz&B(N^X zbu8+S13@wnlQli0V|8hys1&6pX9|pb4a!3Z9>Y{=7d7ChOIa+Q=-@<7)ajz1Kv2e) zGpB&z87rJ+#GXN_L^)?kFBe!0xfjC$I}594DWCWPz0M9JzE&=XAbSBJ@6sEs(uqmb zX(58o)1%P_ja}zPO*S-Znv9e@-Sq_D2i&ki&4qFDL0f!|rQ)dO3W1&<_vq+nr}8T> z-~=(-wSZAt3BfLj2zY$3A;2MQ^4IV}05nX9$#P5LJ9Hj4T2l{4CVJpdI<;ppscCkM z5UUeCDQKn9AAHH!CAJ2=JBZT;?>|Ulfc-8EBY`nBRwtV1(aM1SfNuIgQPauk|}b>4sThv(BlL z+KL(_6NA$Tn`t13*iyGoc#v?NTGcN#II7}Tw1Gk1!cg<$!EVg(*~B;yemgZe2{U~CNY zxs|3T0E_c2gmE~50Dstpki1!n0w7Zm8TVkEgLX=|bhAw~nhRh!9Q4?U&*=jjKZl0> zXwkPP`T?RFwsej}dslgqq@)}D|G-d%o7iG&#AYXGxF#r;jDwi0p@&CANs)OzP=d_w zmjr@64mvr&2BwnLWq)yWgk)Rv%t0A?+_Wh}O#XyMEBh@YYyK!Y#Y04Kymz7JA8<`a zlM@F8+SdtTkCwz)=5`G{+F?}mDW{Q~+i`rS04H-C)+o|AWE$SWQR1jB_rrjWsfi&; z`yD!P*d}N&-|Vg6V-VcpNzx`d@PkQ|{5rv-0-TG`I#8-0FV%bS$3cC!(Szv@9eqDQ zpyQ@)=p3T6JgUU=(jrKc3;Nz;3nM&|M;nvhK_92BMWkrm_*okg>xWWh!&XfzQdwI+tp@YPSt=x3uZk1L+$`ZS$6=|;20Px_@9ZS`SopruPBBN_BTe9+2M zkZM*G2NCpLB3hKHXTspHhAkmPH5V1Uc>-MVDcMdJ>0u@t3hKD4sTfcY0oPS@pOj#3 zIY`-B5BU2<4#qZ8#WjZ6Nop{D;YbYo!7&yS7LY(O)sI1tIQ*#I!1MMjws-)S%B7SN zV@og+fZFX)ENS>>B*}>sBC`bxn_=w1JwFjqR6^Vs-6s?o9v2bk;UorF-q7y^ajB^; z8Eo)WqsAK!Mpr&JbG8V(`bd!Fh@PEg7S&t?0Nn#69k}#h27i=*-tMQaZ>R$vni6H| zfyd$rG?E=gC=ZK;h|UQ{gh=CY2bsiy3TaHpB61}PqiLZuOaQ0PfkF!9WS|6kxB&JA z#kWucV5a#A_j&PTG36OexOp!<%>(R=6~j?Q2P!Gj$LVGrOzT7%PtZ2BuB6utZN2oQ4F) z7L3iLMUS{JLUku~u_B22Z|<|Oa&ljtA!4n#t!}!PBCaJC2DJDokp;5^2E;QFkUt!i%~TCff3(c) z7hVlOor+39@ypWD-)v=$q=Ulrhi&Q7>jM~s8<%LcN&dq=m)LrsRk&Std*EqlL}7}c zPEvq^5fdp;tvg)?IEfEM5~zg2C$`g z9X_{6xCN8X=n_c{l_O=> z;jkI63CBAQe0rSI1yvkD54A_+DU&2`i+QH`rE3yQ2(l*E4Kzcembr~)0oqxZmNi-+ zbFCH!0h%3HQTjY$_cvNy^ia7>Vl!Z!JkkmJagXF#lEUZ&1bNIYiQ8lV5A?`oakx~# zB|AHcfzlWI{CKQJT==@McHk}u>WGMkye^*sx-P`m<1siWwb)JA=7sofTyWC&QmLa{ zFi>Mp*5^x0FzMLc?4p;KruZ1R_yDciA+eNi?-) zveBxAl?_y_fEResJYW}6VH}>Z0M|4Mk2O{Xbn9MENgajYQiPlHQM=0_$%8;%Vg z`wlu|k|4Ukg8hu33?+u9xWS%PgGehM3HF5Q0XKtbftbM(sB^6j@P%RzfP6A0Xe0wC z2%xa+_TX9xH?~v|0Mf3Ch*6saQ3z%vK8DL$4#4NBk8`?#BGarSWZHJ88WZ%AWT0+2T)ViBWInMO{7O1lEbm7?NbAVt?g zRNfZZ>{vQRVxNvf*zPV5i1jODv`#62HuE}qoKF>3$&%CMaXd^F2!rBUyvKw3?sGZB zD+^e3cIeKfg5!$LmL8}#G2>Ls7_j;@3)17b6p_+GDMzAc1LPu;ccB)F(Qp(^=CTP^ zq;MJ%T>{AUC$4!JiNY+?HBf}wKr@15j$e3iXuzUGQBCNGg9oV94;?L;^v18>AW03A z%|ua}kt_>No@UA_8K6owF-3L(7@eh2j8Z70%u1`BaH>N^Sx*U4=~?=4V$H!SgBIUG zAe??=jBQ_wQ+XuE5z0GQ4TYSe53S1%AES;bjT)K~I3 z!mh8dCvmz^=O8N;K!gfb7=@t~{gBvJsM<&oVml5PEwDmQbWzJNhS&Db9-GV*So0Iw1zi}p*}HD;NlV1 z#JHFOEdt%_WYX>it8{ zlqoPrs7h-U#LL3$(bBh6H9p8XUpH!+zF*8Zk6|J3iYZthiJzM8FrkcWkA|&CX#iv9 zU37^dMrRq7R=;%a0o`agGxhU>0~bQsJ>b$uHq8(rE!wOa#b0U}gZpNBI~t0MriFUu zm{U&#bb9)kJV1tdD!fZa6ksTm?XIMZ2AGV9i~yr0kr9wA8@;jNiyO7UBI~&A6xeO} zZU`H!O)A8xCe>^YkC6Bkyb(AV-iJrwSq>9 zZfROw3PVVwnbog2>WKOj%461h5@C>O=4Q|ZEB=~=z75tk;SN7G#~gj*zLK}&1hiwX#-)iS3cOcRTnMphT-k@V4&BHabITqNUd z20%7gkZzJ_x!4TBC58-X^i;h@XCU#&icM4|cuaDxtZ;#o90N59ESlcPL|n=OJqene zXoFywNh9ia^hV49%?zDVafc5J$u{_C7&{aOX$TrSQhK<&h0=84rKkHvGN7RNQAyta zgHU5_oqF{LeMoMNQxPwKp1-^y? zGxCU8&Bno838>w8^IZ7wJk2L3UXO)6oVk(I(T)ZF(j=R3>Oqq92E7LV(t|?OM9<82 zD?njGyM;tbJKHQO=RjV(k%hWXg?1vD{{f$_b?H`so$d{x`7M>Pq$jE1h+_>~?<#l4 zB!I5sa90~Os&puNob~3uT+7eYkVo6G$p30)pHPzrfjlR zBb3I;gQHPcRMeGHF+x!~^3gj|=rn~@C207tLp-WLw^s7O7xvEUl ztjRRB8kR^R%2Oqa>QxlP>l5ip8A7y!w5nHMTd#Jz+Vqku=8_J>@|FiXXUh5n@I+NA zkI}_3Wi!h%nZltLDbal&YH0zW+oy7n)qzaQQN>M7-u{;EuXyQk;Qtc}^PiwbRr);A z4801qAJUwTPvpx)v> z&-LWEMdfJ%Y!2zB~~5#{ECUVmV%FLD2i2a7HA?PyiNfgtlWPPctI z7{XYsJdOT|_{VTy;A8NB90m7Wn0F*qu07@4HOetBbK5t4vjE}sW(PDM4V zHWKxW=;M;~Zpj;s7>W8lVMn{=Cj*rgB2Tp_6=5p&p-Hj=j|7cWu$M9Kuo91ML9mQS zj*55ydqPM6FD7y1$0Bb^4;F6(@xetQQXH!9 z^y{qD^>`c+=x&^v$GR8u*Cf}k=uAlof!r(tWToJ;an*|Utz0ETBbDRQVU;aPrJ~~s zSJFZ#VFg4t6pb#?5QWFta1ex}uw9W#Oyv_=aDl7#ARzjjkv<~WdlX`JCfI@l<3uNYz!S&DO<35=y0Yy!S~ zTrC0z7-ch}qm1GU(4j{4QE=hcX`P_Cfj3N zYX6E?&;d=I!cqSdEH$<-#*&c2R7XfRrYIoqHR5yfo*9sOpVe;UXrl={9nwO1r6Bcs z>$FCNnel>TOjn?X_%!I1(P z1rTJ8o**dRG2r1r@m6WDz6ILNemy4i+>W-bc=ib2BAcTs7;arO4jZC7D!|w&BvZ79 z`fi8&05C&N=`k^YG3fXyk<#OIxy4`v6h)<1z{;lLV%Nni(7h%rm{Xj zm0b^DJ(3X%x1AN&{P5A)jpjsPz!12D^;q>LiK5;gXe9hn7)GBhIxBmsXmBA zL|!hDs8f<|Ec5!D;sEOmMA;+}2hNn!0bI7c3c#uN4AGz|Fj4ACBY;l=xLGLrVg_5Z z|KNfLf*@QXUExuDgAJ8VjBj;f-ru7$a~RAB2D^?lA2ayy1WObty6rzX zu<4~p+JqCk+eBu3lR*m`IS$pkJqAB{RxhJ4MWY@b=Pe~n+KEZ$z@m`8$QO|9R4`}2 zDuxgjgQ~OCJaPG<#wiW+HVIjc3Wn9laK#f!+jO}tKo_OC<&%*z%T5w0V5<96f$BEs z66GLvO=v(X`%flW{ke7ILxKG%8j>hjbeGdXZB_*Z3q557W5^q@f{Bc6z9_I=5FIZY zJkf4aXW=^704&-{4DZQ7CgAm z?BN&+K4qjU9iv6mt^)@js;D}=QjbSiG?ZAB5IX}$F?cI#>SPiXb*y}N1tj+l!Q@c9 z5-de+42X;nSy4o=WkDD&SddfzSaLBpabl&@^SCXc{&h8#C8H+ z(0G8=FhcML4p~|K)IlOg({rmbjeCh4t?1qaKo;K?g99-7`@G@Q!a|W}z1?Q8y2Is$ zi8&WkAj`cPwpjfXP`*)0lfoR0RR^{!0U%bmR;z}kop|xpe7&hKdf})N!}?QUiaJ!~ zRVK0CFb{sKN3;i1%SC>vtRQa3{MmV zbTJ-fO+o=-`iifMh|y}{Mrf8ZG8MZ6Ag;gCvY5Oey35maIIRhG&x0DK9Wm|-61WNy zf>e<3f36^mX$l;$RJi(y;PI7JN+DJXzW#WKRv(YB)rllm1XjEdSn)z&#S3w!ru-QE zb(qlc0*asIN)ew^h1u<3ZY)G=;Nr_bYh5sUw4pttsNjK3r9hOd0)wD%rXc{;1WPek zdcjf)mKH0M0#aUJjCF1jZvqw(b~cei;I;<^Kq`ggj`<7$fE@Je5%=P;)!IqwgfJlQ88%pxQV00Xqj;iQ^nyx+G)V^ z7mTPFxwvHvMRx;zjoOMVhA$Ou9)9Vx9|WgOJ4awK>M1~PanH1PlKTy z_Bc53%$kohJfJy2@kj4B8Tb~-CeaA~YjOzGiRh-%>XKX$ zTMZGi+bJA$*o6(?H(4g}c!W%{0Z%^oBMK+-aUVGb-34;_)fklpqD%%K%=8f|Qgjyr zsCbY_u<&V!6um51*}&A>T66+J0hdRtF3Cp^PqTX=I7GY`f`ho>IT*@e^q#hW^o`0P z4-Of*IjhVwHLQlPc`wGNRs-ic5!CFIw;Ryv5hD`%8W;XBD2nNBbH8_my zv!jhUK+LhF3WbP_v}h5b6hvcBfK`|dcF!lD29^ z2T;JukGhm&hmm2t@o01&i=UkZ#2{++pscd56ETbz0Kk?LTqy%5nW-lc9bS%uLFx+_ zRZcW)zy+^p_W&-Lb?nLsc4`3zSq*8Ow4xy(`9MHp4-SDX79hn9Xb5w$s8^s!=;aK7 z6&-!ZBPI`x2z|U@Sac+W1bU2ton<8Ou3R!+q9Fqy;#;*^nhNy`NLDm5i9zNZG1_3a z8e{-NBtIzq(`;1uYO;!0LQBgF}(QvKg;DkeCLS9S1*=B>{Bh9SNJP_!l;< znGZ1`T*oyLGI|-pVI=UQn|jcG z0XgWjLI8(!whmxkz39EEG7h5wM?y~(pzvmmpZ)5YS0X)0R`gcn*P}ZT>a9q`#DHLM ziXo@OGsr=SD>}v@)eA10cv3<6)FhE@NCv|62GZQfpD;q8+cF|L_`$Xf24FHv`$T_cB)ub!-8CQ)SnZSwH$|}!nXz?t7RI~0FywXF$fpk1+09yq zu^iXZ(1wnly41J{YIMQ*8t`et2&#`#Q0&$L5rd6&E-Z1y>j8206qDgWjl`8*7!e4o z3|N4&piVGoY&!8P+WbVhQMjKZS*jS{6NJLy%n3LO0Gu`pRoxWq8| zVLA&jRgOTR1HFVXX8}r71W20$QdtOUBZJRrwLHc>rF=pqiX0nwN|=c7sDh-P6H{ z;qzIE)DI$>lZNdyY_>yh0>fbO3^9kGgafAX3Wz7&;;kqgMq3#l$)|V*#dH;o%M*b| zrOQ?f_%X>M+$51uwG_}Z+f{lU9H|Sun$3>ohP4`PP{S+?^aTDqd+rYf?nF+`kmn|-6^>WFW-H6bsj76l&Igd$j`8)=bh$_;eQJgM% z9FGTKREyMx({4wk8=kDBph!jVq-g4|6^L8_C+8k@Js0EyH(t{Gzjg16|0g@c- zs9C)-LiGy@2ybbyTU;E%uApFdmcUsyE(NyMXKN`Lr^*i}chL#emg8LxPUVFs5`gAP zUg|uEdzy@tXqqG;%>FmVZiQ8i*)E+N;gQBpwEW3i>8>T>%Z-G5! zx(+fets4a%e1iP>};b26NC)D5VQx874**Z&5hWD`hn- zEgHN;xSejyK8%DC!CI9&5^i5}Dn^<}hdj!VM1h9JDKW97vPdG$#e-jQ3l_p`gBF75 z_tRz9;o&HJwVVt5G!Rf2WCVbHApU0>NM83BeT^!IP#IVU|rE`sg)U+FXl8PW6B$F|! zw*(GQaP3wkXhKB5>h$BT2%y}XUqvB2^j3y??Fq)_23X_lja~M-n zQDa^#k=Ee%DgZ3M)o5}dm!6HII$AN7lSs+X6~)*H>Uo4J*F}mhqgaZ_#xs!uQ)6O% zd*DrqNQykL#wfpuYqk966Z7ey9`A9>n{;maoX%jwi&4PQDm7`85N0jG-^i=x1>sO} zjES9ItJd!Dac?n^8izet(MMcB1b*?M=EcnsU9W%>S_9UJ-43%O63|Z26D1Hv3!|0}+ z1;xOHQ25RSHa0X2~?wXX&F+tmU&n z#sLuqh@?VyutdTmg(7LG+2=zi&GfQrhDy@}v>@p$l7l_Y4%tA9<6D7T*<}84h?(+v zt+ZWIh#BRv1B7l|Lu(@{u%!gWHPVa4Eyx<%Z?9sKC)cqxxZl;hK1AR;Y>~K5830@nivzY=wQQrZ$hv1@3nV5UP zz=(>8c@jhw4GIkX-8kTi4!j>3ME+nb36#85z_(Gx=UK``L=i7Y`l6gCf-t4n{H(H+ z@p+a6O0Hspy+O&8V7B#1L0I?;egi*di%EOaRz^|LeL5rPH9;&5{&D&&nx~c1mQ_OmK$sc`)rJN@ z5+DV_-~u)vbRLJl63vv;FJ3J|OW`np%OJ0+ATTx%!Oy{XMxzHJn(2usDF)9B1T_M* zN*tibH_(DFKh|WF3?*zaiCP~d*(!uXsLOOOIDQdqiby~a!$-$G$G^I0N!p2bobEvC3p zx7AMlf;i~4kMKhDa)ycGr-%BY13UNeP3XhgXJ-dIf{jISM^Z-N+@ zcwi?%#>8y9t@Ku4i9tPj!}>P}PD!>g3PDt>U`Vl7L#x0Y1~LO*It3mV%H%GJfQZ0+ zyDLE^vnjA3&(hDY#HjltBv~~$@aRtz*Wl$RxZ1*KwECe*#2JU<2&$*a%r1EO3Zin0 z*5mMM?QT8pAu1{)D9;?6!6! zV9dpU+(vN(#>Y@ugAy)~5f%L9d4iR1H z1|aB2R7TM+xkTXAjFy(sOaN4( zByk75h7h{DK!RkfBBGASKv7Bjz`=N;l*coIj>IaKnjz;P=&J+YsnJ`p8MB87g*HES z=D1U^TErM|pC*JIdWSTc>#el&`rP7MNrrrOJi|=|2CKXw;^B5eWP)@%`5A%RKT)O> zm`Ff0!RMyi!q}zJ$`73I$q~@ErO)92FJcVixZvvwZ}Xxa^K@3Q4&zg&DO->`fwNHAtVY3Z>+#^zfTY+kXIOyCPSmv}NLuQ^nO zl9nBTg=MJ(^2Ef*j76k8#e3rF$AL)jE()__Tog(yQQ+~J`rK7KsO-aRcaCoxV8p_9 z3%OF_U=L%mS?4TYwtV^WDyGJ1a91c>w!Be|a}CSu(=*IX7c5+{Ih~Zp&F5F{t^u(0 zNfjKa1{El)MJ0&U=2q7Z?t-dHAt++en>yScHN=l2UT?I<>&466oIVEzxdD@w7g03^ zDqMU}jzR}G$w#%!)!IBJGc&ybl%3#|pX6Uj#Tn%*>7EAqy$r%Y3{}eEq`wgXs%`D2 z6oY#PsX27C5)g}xOpC`&GwWh*2auBT3 z2VmR|t{%iUhWo&3)~%(l^h2-r(J&VT1t|+s7a`2^4gjdWhJeH8HAS(^7^T-bwKON; zCJ$JjyCno~{R=nQ-K@^ZFPt4={tPfd+~~r?qT=V|i_F4s(4EVUh~l1KcqC%X#7?jC z8RpYMRK8hUYWHEf_4k5D%EPE|*fFs>gWrlwinPy!Yn5JwFp zB&$ymz_BFCK`&C3VLB)V;&G0G!MI!<;cb~J5Ql%-BAM58D{JBkigG1}>XtN51iCT{ z0x_*R0vb^jLRM{&R+z2*^zbbaK?IG>sCC!`yiGvqv|aClL6sNA<6;>=8H4w^I<06} ziHl0vT?T{EZb4v|)S!)#1yr~`v`G`-G^`gC7A`+p%u>W+cj@825uZmuGYo3h=*Nqg z1r3Wu?N7jGDNk#|T`rr(Y?0E!Ef<_rh-Br_MUtLLzQ0o=Ih?}7YGS7KcApfscx2pz z?*XF_c7_NO(OT@$?r@m#;O0qqJ4@W?(yHmeQW_PG0-^fYj2s*dhGCGNJv8b3CXU8! zIi!i?saJn!zcz^phT#zH4c!L!x9oG(y%9kfOJA&0|O%B zfnbm>5D<5dz)>Kb33=FPFe+ebUczOMvwT88@~SOEVw5C4ki}kk+QRFjH;_p=JebZY;miP4$YNcSe}ULJdCW~s5$LN>-h~!S>cHWqpha>K!y-|)K+M$xkD%fd5y%i#h%1T$ zO;Ju=;mr*B=@fFmrbq*A~Fz3qZ2 zSd~2Ti&}Yc09U6+nc{UYV!25VHnGu6iOKDgv|ck9D!}npX_ixPVAu)HVe57H#1VlU z=H(5B3k8qJ(u$9R8B*0b1=U}NqCpEOUId69B9$z3JEnxt&PNGRLmk>d9X_qa?L#X9 z$uM2wphAT#aq-3;DS9wa)Q(92_a%U&=3x>Eqdj}A3@T#au|RbU@)&d{uUu1@OI)!? zr2M^sf?N2g_@+#XY9#OyTzWjji#Jiw&IQLjsQBp?H<#JSLyw#U(F#*h4h zQ|A`KU0%L=)GS4N0|LDJVY(jz;19)FLv%bsz|G z9K4mQh4nzMoo|D7{?XC(Y~J6d(8!DYJG>94~^i z6D%m3fQSe^Wf^X@OL4gKxD1s&MTt#ceQmbZ73mBpnRLsvvUF+~&n2)6+9-g=W(owN zz=WiT!2=M%hxa8aqDYXa<6>$cw&M&2C_bHCz3Z)&cD0o-ntGUZ%K8uBsX5rxB{z3! zkUHp4fz$`0Pe4x>T0P2T;ned3pmKZA+NjSJ2HMbps80yGu?Ki?lsA^=BFUeV3dEEL zeu>!I1%#ybV)Tfc|Fl)H$Mw;8w%r$iQg3-mT$Q59&)zC`6`+-O2>KNp)9M{)sSwmN z4wJ1}b71$E$?7AZB)e8|T_B#u!+cw10Ub{4(%bmZqq#_mXLXdSA!LCl9~2Z-uwWa- z!h9cBnT1I-H-b<|Q8RLy((u6`u7c5Q0*>PZZ{BK_iXo1XlnQu`&ml$l3^D}HVtW-A z-76UUefJ7Rz}uvh#106f0%hU78m#kEgs&Ec1g#Zi_f=uodsP@a7S0z}BIPgW&`B=8 zt#IrLEi|PSC^T}EzM1cL(-5Cx7vC?JXd$KLzL#dTKs<5NQ` zDpi`&ii$05NkS5mkd&shMP)5@qhd>ywWufoW?;q)!-N@QL$2&by-D4r4?J+ z(u7*t;uh_oSW(%P)%aOlQBhH;MMcHRTGa13=Y8(I&z%|S|KFFqnw~lDbDp2~`TgTO zHlCi7-q%?&NHT=tyv5?zfml=yeKy$RS$jODM}afI$9dB{p?M~6Sv&C?OQygfB->%z5;kdZBC0NBV5iSFMIZT6^=4GKTA@MGeE*vy8q$1)X z+?ap}KcjO0T*84*&bcakZfoyNrRz2~Monc!?d3f$s{SgcLjj}x z^9r_vrC;-c+>dz?yEjZhJKCcukd7q1pljpKco|8ayYGy*8x_{6!)%wr72zorQ-McB zV%W*RBJIvRKW5@`2Gj(oTs4I};b~5KqUYF-aG@p~L-6Y9yAQm0>%p~!^6F|*J)pEo zT!!q`iY+pP#!%P@phmIXlRzV*)lx!o^4`%$mOM#YsEq+!ENreGeBLX zjPqre140Fzy%3L3hI-UPI~yf}+7V5GMLCnEiAikr=9CHBaZH!Mk91s~%uY#CLwj>` zXEYS>d;H9h?q^FjAMa>5p%(aT)@0gD=9pLUSh`Ga0eVzYG5)$d64!kc8*ZX%9myoH zJ?6E7HakZoZkb_!0Ba1&+Di_~iX|5PErVbE-Qss62*WXQ7tPlh!6ubGVeqA}j&&7# zLZMeeQ*od3)m?zkzS@R;bQf4bB=uQje2`V`0myMD8>mo_d19) zw47H4Jg8hJP(YJvLQb4hbWF%hx|A~kVt(gFuvh~UFx=kSDlflDV~mK(L3MeXRd}S> z^oLN%L?LB-HlM{8l(2jif0~335G-|UQNdwOk!(Gg^ z4FkO zCM=MM`%Q0MUY<;Dw4*4xD^Xs0WrJ4K7efKO zeKME<+?*QR#*&14hr>;92 zD6y1AKsQ`%G!V2O73P7&aR-ze0PIW5ft>#*ja5Bhd zvvH1t>tdjzgWqyQ{@AnY05vyqJOiDvywj$KLQ1IDzZ-L3_gq1vV-wO!FiDFgO{zb331 zNfT!*4LGdBNGE6a4sOl&B67yTZMcQi(STi<-BS>5C*bY=4TPI5KKn^ByColsr${($E^M4f zkx#u+eU^vZ$A>#~yx-N95_9Wl7QO832*+}HH-y`D}9qlp_^;AeV90N$JKvA=1L_Os^ z#Hnfvr5kKw&~VgdJR<5?`7lx4u<&ZiJlF&2Fn}RWtP@o|1;2#=xP!?PTA2g}=J5ol z=`-UgUSxo9DNRm!s=(9mFy#3{Z7H9qE$tg|h6iw=p`$$yhum08$Ve-k<}AV1lw9W48JmA@=z69ViZo| z=y3LWxxD?wg}5Q0Z?}2HYMO!ulpgsO&bCswz1uRJG#7GRRG)x{T|r4Djn7*n4Ph5) zlh=r2(e{X4GQ^5>hZqgwmL8$tNJ&%7@n1HpJKLJXCU|OrORa?P!&AE%O09!VSrsEj z+&W;=0_Pc84Lc&Hr|DF>HFjdaJmYROcsYK^Y#<(t z%bP~rAe%s|4Ma{ho^ottF(CJi+mHF8!Beg_Z%wy{Jy>iDEWnoYQ{38^{+9Fd%*zPc z7V2ia{A!OnKU|x2F;^`!*cb`43hQQ_CnjPe&5W)Mc&79W-~)Ni5xH^q!nld&+ikH&k@kDhcG7M@uNt8AZOj2R0d#wMgEB&n)T8C^AEm<8^KRP`f*d zVU8KwzU>g^@* zlvI0%NVdZ90*O7=Vgxr^WgWxi<(FJYk+W(N6we%_85G{WhbxzS(jo(4N=!0=kwDxO zv?uJUCBJFzE-#*^m=}OB+R+|&UvTh%v2d`N8rxV5zd9q%LtDaoIcly0k}TomlgTe# zgO8{M?vvq0zF*5nLYx>w8hci$c-foQEe6J5P|V#$V2od@mY1Ix)w|*j~&GRiaG#A}(iYvc{@L5DMrcDII5~*yHq)Fl#C38Mxs=ah4f4g^-7(g_6%0% z8X7vqcE1;8%yxiWE+)Nev*zI~rx@ts@j=Yp}M! zUI&!4+C4H0WqZT8#_AMMS$CC(L~K7CM%R}ef&E(srS1|tVj9=^tdXHC2(>64YH{7N zd1zB9*x6*>wq*!w%;>-D42?CV1A%C%ZF8GhtnCIIL;7JfOR21*X79Y&f>d5^DRcC~ zvP5k+PmX`_6lcoEjOI($hwM~h@gr_OQzp2cTlQGD4g{NNdfj4M>yk56Cu0Hl-X`{v zoVkJxd4OQE-yKFc!xm&AHs70((XvIazu6H#gU}IbYorm74RblLf6I=L{??0kDJ%?$ z7=BXj1PuQ>jyu2YMo2T+tpzbQ>)aMIDuIcxQ#QvX*Q=?qb3i#U+0lek{B4a6j$PDe zm*`Ghnp_%HamsrOfv6+G;)ko?2pkvugaPzr*d(*YP+P!Jw5?4Uy_w+XpfX9K{QP)F z(CFN;g%Ofd8qLQ%i0vvSFY)LnXpA%m`Akk58@H6A+T6+34pl%O&h9Jh+ws^2QdsfCRrY+VSZ5QP&2y!iE*nT; zWqZBDD5Q=aOywvit4uayU#$6*7k!Z`T>*0td&%79jm<~*5M-p?EWsI7oKa>*u_@4w z%Jte9_GQ*d^V=i#wA|*c5Tk)lg;Sc{G*fUM73Z3-D|{9a48Dc@2E&J06mVAfu<@Ug z2)*GRZVa`hh-7cYe<~94+a*J83kFU)9($sj7D=rdUh4>_ylMs}gQaNjl-bkRth^#tNV>l}}S@I>j$`M0CPn!)bcF%w{^1B@gL()&9SH909Z#%Wu0t zfRPE4t+ zyUg_*NCxk5x4FF~Zg&idr(6RzBpK{YrU}`u%CQVMjJCq0WqMfBa$_|!gH#^N3b|d4 zS85nx&gAx4WO{Ld%bN2HX~vA;+YEn8%eKfQ+Ri}1tE1xvTP2n;QYm((GpMB6jNU3~ z8QsdE{0stn$)KUN(U0?hnYt(y>WN~-X}XKu8*gV8cD(X8JI(g9LXK4fBPjReo+om+ z`h(*|hF}XAgB)jMgT=aV*cjgEi~(D{sj!&+O$F6!-R82}C|65X4{SIPl>vb&yDfwV z&!8EzBhW^z4VPB7sEcyz*l+d7F&W{OFBItvqzH|DBd@?&_p*&~Q>Wjc#Q{jn-k?iS ziZ?cSA?LFiX>wWIvvS6TGS*TzEu9fOVlVa{?GNst{(uL!jo_%*3C005ynx&~pvEtd z5=u&5IJgJpv4kfG6L8;Qb>=*#stLHNt#;$?c0)Fl%42pQk2%?p6kJ7|7dZJhbeWMQ z5Il@)*K}c>`VArXqHZJMVzLA2KpDJsLd6)kvDNTKSjPvLjrI5dySq-rgq4UH!>P8$ zggjY;Z)OPm`d}K08_YsFRa&%7pgrE|)#5B{H=j}zUY{kD-*}Hsex|p64GoZ_9cW9{ zmz5}7JW7)Zn&y+CE60bV6xh7%0!L$qu&~}Fug3_l9jh}gF);3;n8o93?AAH+Z*rm% zb4{Ix0QuQYsr)kU6f&>ZcMXIOTFXU0?EOmNXbVMXx(EO#2~T=3BR_PcttOE(qF@a3 zS{`YdUmck}%MiA6jM$^@L1mWBHV#7JQ2dmcM%Qv+n{InM*LplYWJblpixaZ3F6jnK zA4M)Jx!LGNxL7pXk7&`jq_M;CyFHc?oL+D+Au%YFk^}bTaszDbXlzQ4TVs>n28o%e zWLS1HfQ2G#JW~x*=*a-%cT0qxHNo=LobXXIace z?5Y*xasG`xuQBa4tV!Tbfl~iYATRMCeMj*gMO+hnjx(LFVA&LM%nKDl|#)skK#JV_neybx;RUm^Z(5!OkOTFG4HH^ z;OjUnGtJ?U*bKHiYR2s59WsGBy(~}IbW8&W-f@l;7}Nfd?Z!-{=YVUfz~pti)vF@E zaem3pGI_fau}$x}Z5@}@Yw)JGX@CZ8q}(}_muNmzdZ^r<>EMo8L%cKM8Z`xjE87`#Y~`DWK_2n53e9thnH(t!r_NK@ zIP&ii$rdk83!5+|yXm-T-P9xC!!RCzkHUC0LeT(EuyFKXE0G*R_W0A$7!5X@Yz!ZR z`O>X~8JzOUWu!ADEa{&4R%_-{1CXTRC(6Qycnh{&?+Lm*&8bYObW<)b-IVEA*7jV$ zhzx}!ZKK1PW`MCZm`UUXaaj|PoY6dFCzZx_yw<{D+s4Onh*KiNbySX##=y6P0%5-i zz!!d<4(}~=(mX0ffa48Oo?Q7MGPY@ik(*u+Nc7 z@;f7Jh_JaM)D$qKe;ek~km6suKCfN#9NvJ`P(v^cGXa0Vfbif(yB!?f=0NP-*kGLP zQP@Jl=N)z9)T2&{a-P%$*|feH2bwa38=Fm}t=-RkQiogd1lH{_!+Q{_7>CQ!U;uWC zOem9>@18Ln^Wgk^O{ydn$e<&!Xw4kC*7VR#D5E&V`_?UDE7zpj0+CLjDXgjFhLOTb z6zw$z?8v2+j*MU0c9T)a^Jar}RxS;wlW*|Q#N4T|df_Y;>1f1h{;(I8!#BFL;YCx@ zCL6YLzthea2j=#WVK%DL7TZFY4yPc^6yx?b0~Cu6=@}(QZ_{Cz`;r9_(+f{6ZS}N& z4wUw(-L}d8a(rq-4F?6bmbg#uv4-=?uM9_Iac&E|0h_2EvD}+=4qVt0Jh|qDTXk-R zXFaq>l3Lp!Bt2DQ_83gxtb1fGY=1lQuV1j%i+b^GJB<+`(aG znCNi+;}|44fH}@f5p6Btm*ga8P@~fYuw*4>ib66o_NvGYWL}EoW8vWxp;~)%Uk&$) zam~&HVYcF60X~&1vk1OQXS#RFV=CmyAubIL>*f3bUeWK63lBzk8NgI4E{?z~&4xBg zq#G}1Jmq4oDSRwV-qL1%3@?jZ@hU`lMbb^GjJv2ByFT)vk9K~bZ0ipyhd$iYNqf)| zD7%{PMagCZbB8@#nTIPixhoGj9EMdmh84jb6BpuDH{B+1LGL`=qiw*roWob2!>2qK za7{cjDoo6ai4`V&)yE@%70`Gbb^_QEjo+&fa$Z~#Ae1U^Y-0jB*zeZc$fOzKW6!R1Ye|Uz=e5vm zA41BclrEDYkr7gRgx}vf?$v}5X@9eqYiQ-Blg-&s*Tct(;0?764Y3HGZ?er7ilk9n zUgSbtHnVv}&m-(0p`TaEV_aO!EC|RZh1a`STT??*oC=^kx!K_gj(7MQV#hjzB25*h zViG`OQ>;BKrpV$!Lw5_9QyEVW7MByen7%x!^Sl&Tyb1YJVYyt~5NVEZ_3DICx$LSGLd}wkLgX^kq&Fp8A-@>9g-A{fW~x~s zZ+&%?J777`shc6ErizLk3hvOwJ3?mc%}Q$DXm_3&j|AefSb<@(Exwgc_;Wb&!yY1d zr0MNnCUKe&Jq?CGV*b?@G|M_KUg>qP_VzG$i(7}4qLDc+YMsHW>s9%i3U(B{5p?p2 zMnX|B24YLxBY6zoO5a4xs?k^EqvLpdmA+HdhGZ+<;O#{{59owshoX3@4mCD$X6+Mi zwjOW5y8`&+usn8^t7=hR3wQBY20Ro~O9D=TM8o81q^O|`;q94p)G=e_k=d7CxG$v1 zVq?rBb$Un=uuFfNrZ0+TX{j-7$6+KL9B_R7&MP?b%!NMQV1G`$kgERp?O#|Ykg*iM zAwlJbrbyvaMmdw$q5TqJd0xSN*arhBwF}8vPs8|dfL|cdJ70XZ81D!>E;_J}kWnU; z|G1e*uC@|49exrdwsMU`fam2}jfndgj8~h-cOFCxxHt$J1-}^al7>#6&gC=)LoIRU z5Pd!&($Q)^A?G5R;m&!sHuD0io4@8`xpvU{ot&64bD~*a#cT7J@qnRBzhRKdg+lH4 zzfSkvm+VZ?ekPbc5$_NBGbnonX%77EdpibdPnR=@*sh=HFK3T0@c-_j!zxgC(n&)W}z1ij1ThEMV2*Y_zD=myPiFt24 zC3U9fINGAsEgf|bnyruR<0x?Kdjf5Cu+PN#yjK={5qMsg#$;U5OkI_7sN}X?yq~Ht8bd zq?j#3WpuVRU?Gzxa_MfJIxMfaZmA$0hpAvEE6tU@2Fv3dYK0q5G={?B1IuDt`kzt^ zjYs)BYB;mAr7wR&Ot>`7?SAiBY+i0@lsB~-W6ow;yT9RYsW`E5ldK56LWi5#;BA)MW|pW0Qxe0?_!GF~|KxK70#o8Vs9HX)ws3A&Al-?naR zOJLT61s>RWZq=#p4x9pIY!Xvq4!o@mCl%Rvmfz3k_<3zjrll<5Dc z$UcwwqstBsps)PMVkWT|f8c!~h-o6j=HFl-)`3!3JeS8T)^2P&?@lnfq|Hc9FKNF^Lz}PZZe9F7|9cs&&tGggpS3z6oITAHg{xDCsbaW zX2}V^UruuHCWML0_55}_Fs$G^Wra^w;2O3-4GoeO7ho2fwp=eT475EJ#5Sh@-}!9n zG2V65vk9WgW-0|0*4Z1AtpzE8_Er60G~^b2vFo9y90FdKd}tazH;Ty#lXLnyBS=V6 zd3i7~;5Tr#VK4Q;O#?L;p=LYpV9ZPQ=pB%9H#5pEdF&jE>kQ)Te&WZ9GoWz6r**haRCsGr6DEsdgW z`k}22e0nNXEdv;{ZSwO|rZDr*aH|0~H%1k0DaDp;lf!bMQqH!JjiAJywF94Y;gbd& zYjSb>cUz#XIZC}WKM`pHe9^;(5Q((F4d0qL3k?=OQCIMciJf>HA$KvmE#(8)K(v!| z0Z%;@#Hf=V4KZo$DljXBOYDSduPY68G-TVf^QQnb<8T1S7_vVdGxelD_Ir7iJGCg< zC?<ZcS1bo~KANNjzP< z9Zafn1|>Tge6<25lVU2-&z&xahT|=~_tBn$m==-^I3o!Ap9X+CHv&kP(ZcO2jqu~A zJZjBhXR^fG?bH>A`SWo3?Fh97;}N!@DG;~ke1l)?em2Q*XU651?sElb{2%wC%&DCp z=U0Ohj`Q5QkyH=96)M&OJeYlWfI;e>TU$LgiS0LBOzE@95Pvg89*GCRvPkA|GX|If z@~RUmM6*YN#S!cwcwNZ5#3`y?p66j6KwfIsP9r754Kx*V?tvi?Vq-}gIKW9!PtIggKKaT z7>`68N4i`@jAMYG_^ zt%Z&R<_TN*GJ(`X6X%l@ki~qB9nC@9HVI&u*&K1r=n98QS|G@xevBv_Z#Gq&_7Jy!+3)67#MG*zui!?$_y(cS} zYowl8jH}>*drUrvrE2H5eVNrsul)*p<4GgY^5LB{+IQ6TeXte*)x5RgQ!Em1zw!`- zQF$815jiU^^n-e6!Eof$6BFlI5AWCDUx>FiVS1rA9q8n92Gn%Bm>3ET_}xV5)lk?* z_h6b%Co|MjIbhl(W{CLyyq!xDjPm-5Biq9{=F{E_=Uw%Ry$9>0ydr>drZHykd9To(BNZMA4uE>2CIYoz4}%qAbbJeGI^KD>ECYDuA&O{6 z71B$7Yt#^)0CwndhS{wmvilH zJN_Z*oGF64>GJA(aeI-=PP*E>@n#VpDaEZH8!=Td_mJ0xW8nG3sLPXU*Rh|k#86KZ zj|X@qBOrl>+U3D*H?sr~w=ks6>kG~kIT}k_l#<7`>2iOFMhhQI~onfgou z1LQHY5x#cp=>i+#wD5f0V5v>^@o%Soqr66qFJp{}TrdTaWqAF`i^)z|*Up2zx9yom z+oSRbp9kdopSY}PqTW{`+|aSZWq)#eyYZB_nwS?_Gs)7OdGFln>$dv!Oyl`>X|#>b zag>dRF=)CO(5sSOiOm|Zw%>|KeLuqc;*=eiTXj#mJxBP^d^ldF=!0Ix-e@tih1=}D!MduN8kRIH6q{YeLbv}(Cz zM*9_K6Ey|HiU@-#n~MfyTV)XYL7YlGW6VGbOL-07B>7_3$T>(X_Kez{v&atS4MjF* zVnI2U%v)Ykj}4yZ#LhS+Wde~VbEgqv0wcgLP|D$2gAcd2nyj9I&?oD>&eBm_ax(xq zU%}5PyO6xR=dvw+c|XwzQ6CayB&x>xZN`*w>Tna628E5`6wrC7(1Y6UPd0e*5GNxQ zOi^}&*XgImSA+M0DVk}~N)xC9E(BZ?n?ky(YahfH!wl`|7~YXl2Fv@V86x-eyeroN zrd!YUAqKC`Rz7IM)4~>EWM@WkKDR2~Ct7HO)}GAsyG+ z=-`cQ_O@(THil&3!IlJLp=QC`k9jeyaE7AxHDy~UCeFS3oY7+IN{ou}F&`M6VwoJs zCMub4g4)bVd*x5~RPPXrO_7@WcbrkbQtvjq|X_Q?i~=iEZkMz1HFEKiI~ z%~({eb~)G27{R2+1F=JUUXKU*V({92C=phuJM7p0bXebhBG4?HVX#snY`-vQyw{R~ z%grgl_)<#vnB!?@M4lax7oz!0l#>Q({fy|_oK%gI5qYODW*AL&{4-eZ%g`!U3;La! z6QP({RBRe4>4K|G8yi2Z_SS?P$ zVja!8*69pgV{KUVHLPT$L*mvMw0I-p2o2VVW{ls*!cVpx#t|UIcEgL#e0~iXELTMx zRxTdcOsmPD=yxK0~7(j_j=@$!h!Sa~4(go6ismJrj! z@_BAk#q6Uy9<}M^ziUWPaQmi^ zjGOF>Y<8x~*@lqc!)7{RXUd;l%59X%%N=_Y;MT*V;4#(Y3CDa=)RdTSs~fOmd?XbV z9+tAa5qTB~HKZx|;!LOI1Q87bP;7KgWS3FCyvm4sXHc!1+XG^A{aL=EpqVhwr;gyE z#B_m!V!mu^r$i#nTT~pqUaRJrU1_?^ok`jS2op(g^fmMZrhGH!jHiu@_2g7gw?thF zl{ng{+oCD3w=|gkra*Ewgdfb+^Yu2am!a%ocq(jf0jA+>T`3)ur=6l|l0k%yl8(}j z>lH7Ymyc!Ku1u4;66w%z;Vu?2w;1$@sZ6Y65r2kbcd>{+?GXlf^o1Xdk2tI2V(Ap4 z7r4-Ed_JqhK!AV6^d4YL7QEg`UoR#vy715lvvQ869=^e4Mf`h58 z$b+7kuJ6*|H4=9boKmxM%0^=7Rb5|XQf_h$Cxd|qb{h>n&cGIzHOIM55_FcWJdI=8 z_3(#%hda~`Os#=B2SXxw%-9=UL3E-+{iYiZ&uQ4`gsY_sP9k-cO;KCBzcU<26{;O^ zFCbS*8Ic=%{6Lq8#eS9M09$C_eLcLutVmOPJ0GNI-~_NGtV}X~wb3gv3MO`bZNU~W zmK^iQq2$ered&Cve=Q!vxxZG-=q~T>?H8ZVi z$T4@N)$_^C_jL{4{?_kol))bCE8DzU*YyHARCX}ihu}$nAnI_K{Te2u9ZV0Ddm`tN zI8pSVUXL{!48SAShv*&NG4k$0(yW?nV}}__+05;fW9)`Euz>CGu!7CaQFEIaC1GJq zh&r6cunBq;VD-R(V8#YR2peO29&Q`SNI2AFpR9nj4_kmGRijWdDEqH$LBbo9U4YUh zcK0U>l3vW^?aX6FPQJF-H5)PHHxf_EK-#0Z&jq^R>fNyg4Xi01q6F z1CALn@uxzZKfF13A`S5XayITnI^-a*eAf_=*|*oNH;ehLDvm{OL=hFzmkOhlj{D;NcZ7il?~jlB7jQpqJi8fHYA18E|_4TsCpCAX$&^Q14- zOes1U^2dXz(u`mezxELEhZ-ZPl5j{4x^E?9dt0e!XC#J`>1lEGpj>U#LJuC>2JQvs3`jWi$FUvFDr1n3pmul&k}8cS{SN6)UcrBuQopN5dy;GhqO%uy#)afQ!WNzo!<8?>)EFzCP zf1o*&8xwxk2}O#B_Wrmd(|J!CZolD{j&J3YERd#xW?Jkyls73R%Ad_2Y7Oxobz7&A z0v6~EZg0|TL8cGwIO2P;;r4i%!2HaTr5H?VO))hyVZ06HNfmSSvw8!GuT2i%5a?LbA7y4OsknRDaA5VY;#ZKx9q8YVJ zxJ2jK9mL8r_-=rP7Y1s$Ph@hRNY_kP%MeDUV9l06V3`1#sD#0TB8dF$olW7COxsc_ zk78`$DiiL;AVnZ6AdMmWt-P2=fOa91#5pCC*`1W+G*PqJz{+NV9_$aE)aOKOVVsvt zoS~XD16UPetN|}DXA-$Zlb>sY*?vA{WW(-Q7)?l{>kHllYrf{{l(vy)G#Owg1H4{3 zu*YxY2WzS!CZj)cGDkXtOzPQI!e_7Wj^BSn#i{xyLLKpR*IS6TYB0R+whGVN z%DFL3hdE1Wcuvxk96cFmlnq6D*5H0q>U1;V+>m6#oe7PDw1pCU!^5_xaMGw5kas4$ zQbDn!ss=O~0+RfIDoUO5SGiPgT-O%C0 zoTmf;^0vajJWa5!HPDo{$s9xBd38*^WmH?=(>C1xD9{#ncXxM5TY@{Z#i6)6#YqYj z2=4AqOL6z&#R=}g-8E?5{O=F%dOjp;WhdEZ&YWwmnX~8YnTfJt%|7kd-7JtG?c9RsUTiRQJXU+0NAAd*8+Zc8vVYCf?%G z3cR%BA5}4Zs!T1**Bnvr<_(LwE;`aW9{tFT&M0~scSqHaFPm;G;~O1W7Le`>; zlU{ghP$E-LnOznz7diNcg}*(lGU&5zYKJ-g**EJI7>IxKb&b9~gMUoyd=91bxY7x< zIlA8JQ^9NFA!m#t*7Udz+fvT6);8nw0*k-l#0EBr+up6b6Fw9h_4U;p1nXXWSZbiF zV#CL>nhn9x=nlYWRYh;Ln5vTc&tKxr4%%Ul23vz)1Mb;eqVY+wK6AbdnAhI)4Gx-7 zcPk!xpYZ)23^eb6!LikFshM+l>u1rk?o3Pi*Q7%g8b8z!aaHLI1*M)tV{X0M1}m#y ztzlY49bz=S;x|(7ws5>pbBtMu3XLY~AN(mrR;Fto@q14bg*v(@P4T6h(R z(N~taJLWJ>Bi81;$7uaN)=J+J_BRG!iGu%9SDT#p`(Ja?2G+tR2@OZpPUE6bTrxcAoc-O(*8(5p#%Nv1BDHBamjg#fI4ED6*yUV3*}1q z#*j9iL`qTLSwPd4pg@igR(&lW4KXAz<95J>c21=OrBkZgtUg=(9&JNS*b_+JLvMiN$ZSJ`gCFiLK3kXd@1O17uSx%6pujF+Nc3z1Ob`-9@ zu=i*mFBe_ykWS8*PT+2F379QLnZGHG;+wIyXZ<;H0cqx(uK7y9ztOD5+@~H~bAs+G zRIq`YHSNJUi6_#Nn468)lG6`}Z}v84b*TQh%uo$gYteQ8GXxqNo^8r)`cw&2SG;4= z;|xof(%_8e8%13je;<`#L?(e(`H@}1O|8d41L(lz1FDXB$;%f6*>u{Q^(}v(Un*A|7PzSb<>pw!GD`)@n}H z!2-A8aO*KB8X$HtWBFKSkn1IFW!ZkNruev}(2JPK@U?yP{)$wI^P7AJ3f@jv!Hm%S zp3;I^)rq|gZB*6h8jZT}p3SdzF5JIK@&hUY-};f-C8F|myqSGpj_yA^LiC>9JR`~dCKR-UkrQFh7K zY=`HM?LAi2EWM-7|IHt~&F!?`LXje4S~7roa4$fqH#qv9z7(C7huKI9IXMoRdkSLp zN?-+g^RBH?r!b*(Tvd2tIa;z!OY*PNgpD|4$+e8(aejEv(hg!n>k@WgIJmF|f8shW zCmnU;3Dnf=Q_6a#i}O>9VgIA7md@YWQd7wAQ)ldkJjQQpd0@u7t^)5&Q0lKNt%Ss1 zA;E>=ne^_2`pcv-H&FNMf|Ymu84~yJOjsH@Q~O$e}bIBg1JGi~ZRohW_H-V5-2vkt@m?m$~3D zyH9~d{5H(9k#+SZ269|k{A0{as?V0}WGq{EH*~s%;M#$|<)JJ;Y|&e+37fzAVkEIX z5VDwAufapM{wi8d;G2Q`mr?H5!pAYbrYX6)l9~I}zJu~hG`}|954%E3w7U~)$z~_x z@V>_Rq*qg%?rg@T^(mqPM=p2^jqQ%N>-{nWpi@6Z8kz=AnBJy87Cy$IsGe|fIqd3D zmHzOpn(19e&nLH3q$8>^dfPkjM1MQn1pGNKc5PR%dZq{_feiMq$1jtaC96(s75$we zRd&y#AbOzSO5xAO)3f=ahDoEq(jDf4HTg33*eE*SM0=~gxPAS$g-rNoAW#69Ef*y| zM*7{?Y$lye?tdRv&m~qT#kD^ry7lwj!5LVOiVGWa8zV+UYlyKgb~6h?XDqe*Gx$jq zOrvU)`TaaG*jd!IKFhL*j#(Q2>r&Kb#D6q7^zb(3H$?&VOk5F;@$v`$L!}yqj zM8C1FUIXRC(RXTKC&w!gj5lQygV*9Sp$2Wx_JaNBA zrUiIP(n+;?iUBgMHho?|6|nQYiHaE6>(J&s|Fz~_Otvs^AMu=)?jQqzo3$zQnEd{DC$j^W0U1A4!K6-2<%!Tss=Izpdj%;O;o_RbB zZDrE#uSwl8-8)yw?KUFzk<|cW;%o@aXlM9Bp2i(As*ZefLN4Bp>X>?Oo%7($O+q!mIj-an>lO6a$o$4H z-6Td9h%5dCAJsBc$^nT*F^ zWD(5GwX{*Z$^44r8B<{~u9(79;=h0I_sP^o`BZ!k@?{#u{zT>3&Wh9L&X(H;)p*y_ zIa0t-SF@4X6D66sm8s#D?wbYzud`oIi(VdlXhP|8F$2WHw6ej1xlb_L-+zDQ)7)1y zggt7RBspRZm9+n{yDOohk zQvirt@YD0vpqo&NcZuNN_+sX3QD;TF>*9B~ZqCoDwC z*nP0I-^7<%ntnn-@)m6Lz4nW2(e?6bm(?aR_Lw4(-<9}UPnhvZq{uTd8+$D+xyCGu zi`VHAG?_2(v~^!T2&%<&Zwe4=NTrR~_PcwxMNm9sr0M0x7~&kqiBX@A|2L~Dyg7FmP4FAR6^L&_0xcq~ zJcdn1!5u_=he?j5m^P>@e)@gpn)T*Pyb68>wXrgV217lw*->M5HWu#Reb;}!koeTbS$R?OL@DEB3z z>YLmYQLsqtDL)MPj!)YaZ(&@vCtR*)Op4QI#-EhWE?=;PHRg(!+5VCeE`U=NBW9V? z?ft$qa`b7Ys`p#PgYI9ks`1uiF4&dCP*gnUfO%9g1Dn3BQe)Gv;pnuoj6-fliI^#r zCQ?=!hJ;f6P2tk2T{!~>+7KZUjUPpq+3{&d*)PX=iBe< zXRBKY(TRd!ErA+a{H-*jqJGKvog3%}fp506^-LAtd2x+#ZHF}G4H|8T3`=Wwj>pyr z)7e}j+Mni3vQ6(DL0Vk<4-0}n)RLS7a>6RAJ-snH+Yf-N(T4Jqmoe@_Z^W6FX9usm zd^1rVyjuqgsh!{UUp&-z-W0N)hW*_6B~N}9c0&$CGnLq8qxbvX|6v2`pqHsBo<4~H zHF|8!6+QnyIfi-K59$Tv-$Tc68f~u`SpI9=gC=nn=9h^mdj|;g1B|<_K9H;0@zayj z$uk})Q8^k1c;%Vm$hVuisrL8&v29+347m?9Vtr~eO_Y&v6Ax3i;*@bCN?3ixaF3Qi zS3*VpCs-VH0^^EKrpo@>NR7|sjny;9Q(XeH2rR$1jSKfmJ0nJ2TC93q z(SR0jR>YfP>vdO?U^(Yf`hVXx=71|zqc@{Rr4!t4{9&OgBm|P6B7b?DQ}5`#WkW`RAFpvW^@AMlQ~vwj93n{6 zdFlMqbLVTm(fyx%qjWJri3l~KYP`~V-&Oll@&|T>p@$^V;$Nj-&;$&toH&bXG-!^o z*s3%F!bRk9oY~k$I1jF!cS0F0)r6wZC7BWJ-uk9f7m6SOF}Mw8?>^H9QRNSwQZ64 zT@FBW>%Btx!c$@z(Ha9j7Q>tjRA48<(|s%5LdOL~vO*qNRp<*J)A)sX9b0W}ajy6| z)YcYhXV<=hWP`d0@wb4=vW8df2Nr$L>~e?NlcN0$8<_uX*Xs1FEo{k5ao6Ox_X*u?KwRb1p6qQUAYkC9RKuki>GqM# zEq3g8@nv&i+XtwaRNZmvL;|Ae}afE}_jb12~)d6qMjO zs#P!v|69GGdqMN&`5PLKCmNoNE$m6UwnWipRzFzfw;nUICYZ$C^D&wt4_nUBVziT% z^dyf>5=iB`V&|};q|+&gV@1W*_+vX;e?Fw1%e!Whf<&Qx_;ngl$F)M5aDe4=00PWitKd-)fQ4I##fX)&I+BU?>?Q%L1{f>bvT`L!{ z0K+`874&<&cG2DN?|Io_y=L`AVoTpZK8uz4zNz0!l zlx|T7##w|oQhiq@Z6p!&Vjqplp9>e;{C=mQZ{$}|?#4@UDBDh3V48K=G2BEN#Qh9N z(s`a~>uAI|aSJmPizzS+^@v~y%+ebt98-IXg}3y4iY;c?)={}JGj4r=#+!`0cKUg2 zqE8#$m?c^;x5q2t>lCLNsjUkI8)ajcm@@nwy5#=h8|Iej#nJgUsD=Ki7-X#_E?b%gAgXV#=;Sm94s2`=;+L>_Y-D^FK{|SQ$83y9o zb$x@BbXoOx*UE(6ccM3S@pJ{9B&lY`b1z$M@7Hr|2=a%0B*2+WuLF+&`HDY@rlGt3 z_r;YG&}_RyV<*4pbmz#r8&cLRBzJQ6(;++N2j-^3S9z~daw+sW8z>%`$A9>!YuH=m z_wD~NrF57DndfpEX)x!DS{G^KG4Sn2N<15gEOQ1Qpb4w&n^BSRI*p|dob=UUQL?av z1eVn>*o~_EOs-ISp<{4=$+u>Km;MnrkM$ZeW3R8mGBzfgU%)eY={i@rGp5MP#WXnl>?*0OH0uH4s}NxJb;B+*>2NtH0Fy zaNCkbc}GiL?!92{_Rlt=!}>p&H6cHhIy3RQk*J5_IoA;sfNQ|Yh9)6htvuf$1sZpT zthltRsJz8;RQJpTDY~74XUjYk^xh5#Md|*LD1Z}LFV9O)Xt)*DEBY_@2X$`2abo(- z1{x0S-P#mxwh5i_$(YkoEJ$UL%hQe{Mn zPP~(NJF#pi%q%x|-P0O8G?msZ;kBsE>&L!^YZGImjJuPftpE1DzZd;}Lr5DXJw?Kl zl0k#jC1{ZVWD2JZd5Q~qEyB;4ntRHtr|TH!XfnzEesA4(DTG8%oWZUWljgGzd9)2a zk%FnKwB{U|5ih=IdeAsn**XV~76cm;LnFhMPM@;W7J^Ij{DoG=u-i$WMZS#AI{R6M za}A4@yPYmI9`7wT7>L}QP!XS6ZLcGDnn>b&X5eZSM73VpDW|xIY0~@z6^)I&2|2R~ z{bGtH@IiN=VGl*E%NEXTnBf&<)x+-tX=L7c2*t4avHiiKOw4oiZ$<`%Wc&WP7NneH zI+Db!2O~FfBHpG8Ib5AXL}rz3USjM%q6V`9#E znz0|Tdrz~G{VRQ^@`mF-h0eX{joX+&?Iimh8)f4}^L5dIa zo4%WOWctZQMM+~AMdOdv#Us-R;I+%c9P%O7fw$NKL;D+}BOII%r$CBZ@(`VotfiN4 z+;Zo2<~@hJ&(+o}32sr&+m|=v8a+Fi66OvU;zR?#QQc#n*^K^)X4!7^!~m-g{1?4qdg7Hu z{ZcK^AsY4N4V5|NxL}KDlxc5w+8>(zS*&ql^B!+e$AP!0;;`!&3(B-t?n$oRk&0&< z^@=>G`{^Rop<5)xJJRqKk^BUD9fE^Vgm z+19t6=eUbydH&gPd4Q(&t`&0sxK^owQl?>KhIQPqUkyd~8sy&mNbO7+P>@*u823&` zTV959VU27~#Li`bchZ88(`ss%D40znG0V^1DO}9U(GV!DoXDNj>Su=ivvOhALZaWw zV{G1dvCcGj@cb_y{V~1o?l`Igfp8;B<$wBIiG1W>kx{|FEl*tLY2V!c)tS#RDv0w? z%qMW}&BQbOgG~N=^M~|}RiV)6Qta#H_PYu%=LO+cC=J7Tc;71X1Mhc*yUhO%eWUoC zU3$=b67;L+Tf1JQd_mcp5EO2R4?brU`R~!X?{ae6?9?O@lJ*)Sta^~m%s#u}wy!T2$qQy|*XVwtzi#96OhCg*>b#tiLC48h%iUfPBa1*& z7xJk8_nJw}BR~s-m$CMHaIRdYChJxZmL~uK^tCiYwMO5{M_Gt^%PUrXG%z!WD zzD!oAnKC-(ajnrYrrG0;TFq8v23vd{8m$sa#VcwtPwEHpSzOF+m9U{g^1L_DdItaD z9JFR%hq~M5b}Z)aJ!P+&ZK)$$NMo}lU#T*;zk2+bIK=Fel(PH>6W{sQ`KzhboIJE> z3`!E$6xDI4CSNqFod>ezkS@W#2u=Fu&qw3geL$%<+@lq01| z-VADox~$|RbC_*yiuZ3ESFkAa?10#=nZ@rcYl%fr0xWRD%UrzBcFJ>nv*ZIqL&U&c z{1^0q)&A&(3*j~JyQZtQzq)Z(|2D%vh*Q@aTz^)qKhgaYKNbRaH5UD{M!u&OFCe6? zOZ6E%{U+hje~OQ3lj_|bKSRJIzb?&n%5QAYG{l#{sb32?WpdtAb5G}uDc9Zns>;Rp zN6ZHbEISJL+sLnSe(BR1w%57*f|#&x(MeLtU$9v+qwpb*dY8Y^Gex5{Vf7(`>s;~r zJk81j&+DORO&^p*VpdrePVanwrChb+H~iR!L{;%TH|m>dC9=ttuV(3I{A#m3RzM-R zw2VHZq_0{awn_?;F*}YhxfQa3>C1Xx#FTW;h zp^Dmqg-cK&W6s_wG~BaLzI zYTVm7|MQ{i?X)z$gbOlI=(&^8zg}ezEpI+G+qONdkIVeIW_HYnY33~Ny1ca(3G>#3 zzrBj)l1%aN@p;p4xpRVvm1F*?E(TY9g}m3hcUB&}H53G1m6mcFH$mus>+o+qLl#S= zx*)#bIP<%|UP4{hlfHXNRex-3YX`Ik`1-URt%-Oe_o{Z2$Th0(8SP(!HZia|J+^}m zE|ve1;B|TKP90<@8zO=kW69fd;h>#>&aM}sdzw@=o}`w`f(awu4t=Yi>i(Ddvn-u^ z*S81V5f>IIt+@!x4Ud~rqr39D<c z6XQkZA>eAHkEUh4+d}Aqpl=Uh`si`}C0G4n%`G1edpswa4(Qusg~>eiIOeJomp`g* z>Oh*h<}J>94pf6De6}MFj_;cNk+}ko*B6!7lDL{<#2~TBO4x5ic&)#)Nfb4W3;#$M4f#x2d*j4u@Ea4`1IPrQ%E}{e@ z9EaUReg?sVGjwP1{8H{-x`numyLuix8_hhW@6^37xGgx4-W*A)V)i*9z*@_s|lrG_v6!aUV#~vZ!?0a$L1mf&;KD!pbNFL?^ zOE`-^(&-pqWVhSGdMh70agMX4FPkY~ow>WJIOP5>6IUfHSe-xM$%8a*!?4T5ZIjD< z3sZbpra>b9gOTI;_v^OE7ou!;>bg$j2Pt;9bAoHXwRMt%yOQpz0J4Mlhv(009&0)) zaL((~Y;FN~UEe&}6X(Ud&GKX#Mi6`%N9=|U0qvMxgn8Y6+T;Llw(_umHWX8N9(&df zgf>MU8af_#WQO{M<`J{0MuHtq=k|S%puJWa?oJ!=`E_{+4?O$Gycf4 z(0bVVyh4t9<_O7}2EWm_^ZUL#tX?oS7y^nVeR}g;Nt*7`DL*T(Ttd>xx3MjMy~Q-W zNFsgw&mD0_f0%3734y=gTm)cOWq{_%FU=ArcBPKtI#=Nd2RrRy*|(0tpa~+<%lw1` z+2A`w@^EDLJOSY1GHl1s-MjAE54t|T?={E7ovYjxiP@P1(lOe6m{;DIC4C~jH*r2^ z=nKOFCBeCOm?Ssdy`+xoX#!eE)CcdRI8Qi62pE{A3m>UHJHh>>`+ig|H+7fXIk(AD zS${a2Nq1teBS%)wf4>8moj>z*crQ7hQ}DDP*X7qA6{P(aZotLcn+NYUPc9qfUM6sz z??{gNcu1dUAT(93tB=Y&Io#msUbTRKFNQ-NrENd32h=b& z|KME4=X(RgXa9sM*ye+X+GV`Bj{8UapqGE>OPi-&K z>}On+Pr{pn28MU`Rqfsn4j7j*0~m}|SS=eQD<=F@m>+ZR={E`J?)*sbO{R7qOjP}K z+D7K9pNyQmIjTCnmwe}Y)t;&IU^1ak3Pd}x-4iQr7amTjBRsfWD<`{QXBbS=y=SgF zM=*|bHS#C&3!l5T3nTKpGwbvFSVKu8`|}aTSc)h5i(n)bJr#9V;di+pdYurSXZ_RV zXkAL}&Z9dzkO={JOIE-%6B28+w_YwSdvANL z3}#Qy5r8WtRFV2$Pm`!y1HLtvKC$t^@7uU@Duv;PvBr{ALU4vYoV3&MGk{|~4)*%M=kh&_^3tH}M|h2%cQK}~Q? ztj;ltkkV`Sd66Lp0cNc%pz-w)h=~YXYZHUnurmv;6r5Z1gh}pC*I#Pg<2Vrsq2b#m zD9ROtyKa(TbtYT~;81K3m{^=!_R;Xc9U{~h*4-gAg7EiKx%_aq7Z6U{jpYW6CufZp z$q9SXn~lypfV@i)%X*PmBgqacq~0DoZHi*y8G23Ne*iG-S~D0XF$V4+y_8(U_Lf%eQTBe#Hq;|TxtMC9e=jDB| z8!BBDb;g9CFox@iten_2K5M==%9EetXz2ugk+9cHL8Dgg_U+ zRW<1H+R}z6W0cH8c&hiBXvT8K^}OzP-t>c4v8p2B453ffeYpV-c%|)o*#*~ZJXjND!q#1qO92}=dT!!D0UTSX2W4#z}hQV&j1afFf zVFJ$Xy#_1@VoXplye>Lc99FpJcRxKcNTZs9z}!g2nY=r7dFG*)uIl}6^4$A$u#%Pu zfadP0rw$nUa9zyS$YUkJ~POa3&cdvrOUdz$wa)v^nWZ4niz|H{UG%cpks{4PF2elf{Sl*fVMB82%iIw z?C!AeT=*}FPVh$Y^o@v$_(gVR-tC`(9c2+?@$7)Q5fVw26KE_;V*g$j=DqUe@HPph z&m8zT6NxeGivSaE6}agsxYM=!8p z`^qcz?YzIwdUf;Cy~qTf!e%WgKCR7bRC^ps^4#BjpdTEoPNFh_nA#Ch>@+*47zGIJ z)O(4QYY+8&Nv$e^HK5Uyz*4$#rq1|+bMs*sNVm`>50coaSEm4ri+0>!VwC!^T$Y5< zTz+#lhOF%3-$1)7-P#(zIyeL8X*1L z2HAzQJJrSRF5#F+23)_(m=4H>J5L(!cG-Yb%**QTw7Ob81?=Rcs?M){<~73QNmE-> zawORS6Ybb;N*RI?FL!rcU5MxBvokOl@%RXXAzuEUAq4m(b1^5g{9&t8IP`rX!;9&S1UN-$9i@36&(lsZPyFeM}7hZ`^^$jcyykHdn z;1N|;6}zb@7-o}TBMsFnkOl6Ar{EjW>VNbI-^VN90NRIF;z=oa1ly#QoxQXryen7) z`ayQ_PgpY4Js>u8P|bpVAPXb~UlpH=rB$ImVIK|30K7W=r#gqr#i%cj9MCLi00skN z@uT^lU7Yy4H}D%Eo;TXQ;kW;r#%6oHK6-$bt_XX&&m31;rMPUVzyDPc!uTO7*EW zX*K|8^AvZnloEP4Ha@b)*>4ZS1HFP?AW1SehtZeAwuhi?)5;8_#I#eE2}Z#ajs@nRxk{{DB)sqZ42*2f^`Yis(BhZEqDqBztOogNn7%}N9)<5Y#r~x^WsWtTr>o;#m z7$5gdCQIT^hRAyYR+kgMBQN^H;wgbp6c~sHd6lwpD;)z9u-}yqDNG( zpPipukPQ`-t-ursp~3KRJXL(DkptRR1ws4oes1YD)X*>EI0Z*Yxm6251$w2w+HuF| zmgEIv_j#fJ6%YU;k!Qh0mvK{mGQ?ld0_1?CNOef*$s%>8TAypfr3phgs?QOOF_1Ir zs|c#q2bIYp;YS1ID?kAz0>dCVOyZwBcIc+z@avkTdHmB1K8HA%U6}NC6|4c$9DPxW4Mk zdi>bOE0zz(#=GG-p%?FY!KKXc#^dU^ytF_?f;|@ZhRZ1D50g03823j53yO00>7l$( zrs6FTVx}#m3ff3nmSjBi4#c6-1sozoOz03NTq^nuZS5pVI(-?BD5QlDAP-jxxh2S^ z6VF2qP==Ly9Pbuv>lJ7NNyLnSsbc=cdd{3mmH1;!t!njY`^-?c0zDipfQ(?+zKf0~ zf2@tHmu79;MM#0gJ0#jIf#sb#Nq@dc6?_3=fHji-Fza`@eXmW~*DMAVyB5Dg0{k)Q zf1uO9-ku#Q1V$#OuyTFTFR3@Q4Vh9ZHZ9itzh4<4;Vq@a68;db#-_?{q}BSzL)P|` z=VLi!4o|9}Uf(u)%C}fP`5_rCdHgp(Og(VoOGc@niEaFpSuvB6a`G(z6+F(~mFJ;( zkTCV7*j{Nq*@?BnAOz6R)hfO?(*FPdJ2Y7?`G1GV))X)IP&;U!s#DSlzjb{|s^l1Z z6td}@`c#|<&F))kTdYhOlHc_H3<;M-?BpoUY#7k;KTXH4>vt!;N!DrF#p*;iKdZ z50tV%re&V_Dtw%Pi+;(yyJ1MHAQ5R}*d`#E%eP2+Z9pO@7C)PboEd4bA3f4-aG+QP z&%gkkl{iZJ40(?vo7d2HNYY3Ij)af%flsi8Pmhm}b&X2>JC zfewj4CZuagA)sQ`mlZ^8V-1lb&FBa+&dAz{WPY@8Zv1F`BRV7{dLD)r$<_zi@EmnS zZmQQ;BHylAp_+4Gk^bC$awsE`E8Kx~FX@{T8@hzx6o7|}Tk@*{;h^85};#1)!H9OsLKKifyxkl;0O}#6|~|i^%47|P&*{h?Ze0MD_DF} z%5wMdk@ge9Gsn0Ee2$%GY=aCq2YA({?z2Ndw|hosYS{Q(#~_h=)q4fx*=OIJZi_yo4s6A+(bfaz*hM?p)nvTkCWCys*-gOWf^FTi)OdyTC^_(mvR)4lP zPJQ*=%ReIsY{h64W~~~<-!Yxhk$PY>w-PW3;16|4=g;+jB{|KojgUm@LK$cesr)5* zCJ22TubCTn0ZGEhLAa-n(m3}Edw3wkn+xmly3JTO=^Xp-s{8>t4KE=atpQRKHHQck z?=f>1mL&LZwtp-oao`J{T7cfyC)bjR8o7i&0J91ef{r~(`&$l$yJ4NUwH31Seu2p| z@MgrR0AcQs-p}5o`)v`y4%mlILQvwgdrpHWx(@>UQToMXeIAkd%u$^}qI(wd^#s9> z_{4D^P~tN;iX&(Qc$0Hy9)s|iqns8XF~|hS`^QxNh0PLe8*C17w2Hj=Wg<%lC6#W# zem^xSfDg{%Du-a*&jV+4Jcjb(esl4FXYea*al0}0E(MRDPZK^55vQ63_ed8`On`LZ z&w`tL4}zOwmzXOoxq**$6CaH0e{DDw7;+Pw(BE|e+yd)Ge#f$PksKjL1JQK^}bIq`9Ac|Nlw?K>V`}NgJ1TD6#Y|j(ZLuwCNmw+)q49l@FiJ>g|%NOnsRL$y>|H{F0uiy2=zT=@4fB zl+&~VhKA(*<&1j{KrzYB{4rd+IKPU z{5vZ>lwlk`s#PmX6U`YTrPIss6g;lZpsjl?`@FYsUA%L)f*qiB2m6*^y>X^?mLuVJcw@}Zcm-mVCIwq}CQe^Y!$4;*^uK6A(BlA1 z=yBsOC{fmWS5dh>oyp&s_C~J$T$ZmppKcVKE;>WKq@$2c<>VwwA<}<$YP0Uq{|wvz z2us(JVr%_+QyJ2hb97F{Ve-2Dj0ghm=jh(+_+2KUvXO)gvnqU&K`^C09yrdw`C0HQ zlSjLoTpOW-3A_rr)-w21dHi_9QT+J*QDjl}zWAqmHD7s?NciV2Y~SFj;I{C2I#^6+ z&WK{?>?7Jg`L!QU|2pG)Sni5NNWNR+RaD46pxNg)X<>lFoY@YIA9)@+f%D0;SsIv0t zjh*wXVS0sIB?WI-Z7bK%94H|dhO_}o!@j*=opCSMaC?j}x^u(5h!r0R0BDGU!MKM2o^w~$6f$F3=B_&4SD}^ z%lIV0|IX`6qJnz%rF`-P;y?Hj4{dulPaX)42tL^3wEwLzpgu?Pi;5N;)(JWDxpj@6 z*jhScx_RW2(sszsMm0u!U+*=MZ>jJ6c*1ippdhH`k!BNQvm=6SNs8USo=(X)g&ZS z9{|xORNG;`WKyb+guCvlo7jALk{v;XvTnR|(dJl!XD^bS!~FMV-8~^)3=@lV2Sxe$oA@jQ@ z;E6-}6=Fnb!`X!GvLEas@5RdqN^CjS|cbW~|MnKp)Xcu>d#H6KA zBKEvc$E}&C#&^V1;W3L-2E>WK#>&%rR~zK1Hisrn|AL`_u*Fh(nB2{pdVP zhIi^EOBB%_A<3JG=Xt8|nwkaexNr;K$mgqdSnqW&R%3B+TI_Ag}PN55bhwCy&6T@;X%o@OOdp z4Xb@FL6ox_2I=yOe_<`_*w?XVD|9DHixQe39a#7SvS-%F4j(*`Dzxjn=|A+IIAloQ zvWg>9Rpuyvr@0y1nBQ(K8wWVT+b3y|scNKpa*;T6^&#}l)a>(m7QGG?&udx;^iCP9 zrxFc(`rYK|;jHC{*MN%%U#6RAlj*vm(g#7f^veoW*%M!+X!cSqINzUo8Qt znIyWMVA+6Q&pI=u$zWNre^eh@Q_v^5XI>KAJjJ_qCoEtvUEDvry+O8 zrTHS4=~Vo%hS2n`8TM9!`)0-KthQWpt`$_UPB^!J_5jW(;9RTR`^|}p+nW>RvAwve zFJ26QlvBAj{4V+4HuQUk=+k{_da$p2H_0jnqWlas*N^7Vl4@F@B?a-i54`pIAAz-} z2l~+SqQJxR;4gnXfI!S8i9fD4{A!&9P_-lD1Cxog5wtH20Ugd#*L7qADaEt1H7J_(19e}x$4|;#vTC$GVC%k^&_0}uX1bENs zLwQf+PkCS6owVz7qd3;Zc+CP~wqjdVoSARuIoppRFuAq-sr_JyObc>Ayw-G}PGbQ? zFWZ3E;NRiYbY3^=uT1eaVq`^h7lOWRMEdm?KDoT=SOU9D{TVYE=CYQbsOR7&o z?1aXEI-%|-!;t-(1Ws)Yy54TwU!XXI#_mj%?B*HuWWI5@agUEwfxis>IsTC-LtJ9L zS)-L-@qcAt-*~6nip;u6lHFq1HspMUpDSY85BEm}`2DlBrxqo%!M2OCu~d5`z@XhyU!Wo=N;aK9-K?Np zT5J}7C9!`(MLOpaLul>`Sx?8-Kha*B%-(jQKd7$!ciDbyC}M%j4*CG8cj3SQ?6L?D zJL+X<^!-8%bBAcvu!obLaX+bqZG zxBucLKs!{7Z198Bk&az8ii_G{6vM~sInTJd)puGsQFM{|-Re|O=-z1sZkUxExGIHw zaWA`U;eN-k;pEnVw~*;)v3UedRv%`Or|qvJRj`xXhg0g3@?L#zWUSR0KrJDe#H+zL zfg1BWV<384Ew3H7tEmvu0)1oqM07YJ9V<)5swZ|}&A#-1`xE)bTPq#uqru<5*C5%R z;bQ0Bp6jboBs~2b(`M4x`$V-oY3b=&9{=~@;X#_8t7p2-b3?$n(vMd1U9&l+v;gm} z{)nfd+VvfJ$0l7xHYXHF{+0vNkD&yTAZodI zCZ^-z(X1;F1BMtAO7<0})s~&@;7}$MH*f|1@3P_;lh_iN2;xzR zr3fHGK{77UDX2Ws%k|7lJMR@lk~DoYyIMsF0+3C`5BrL2gC*E#?YV$WzjRx^AKl{= zo^d-YR$<*)Ov~LU#x?|zpYz7ZY0U8r$M5wUGZXl?(@SOm=OptAb=-h|@`Y9Y170C? zm&AosVi$}u(o>wL1AhD%4B`V6h3oqEP0b}v>JAI9A zExw?ghzp4W!Wy!hCt@G?w<)J=t*fEfJ}1fR^$7b-y5uoirw8!nB9AlNjg%HZ<1zNv z=S4uHz-mjAOjq!X={&jy(;7H4PK}5?D7p6QVIto~^ppR1tR3PMB)PV(PRJI3&t$U6 zQu7aCtbknKK4;>6y>+qx8TMVWef8R%kD80aGI;_F$5=AF=bkB1056~tUY7KG*1qK!_)W_Wjm zaC|3&q;FT&3qmF0u!SiqW;TLuHBc?k74+7{br|uL!okI4)A^=mkf*KFhEjICW?#}{ z&g@RJW)<-pP#MUSZ#E>uV2#BCpKd%nUR>|qW;XH7eJ=49J=y2_LFSW_%z3A-n)flY z5k;np0Y5qKeTAaHn`9wc-I|^}*2d8cnoy08!@#2oF#^ThOz;lAvgdVDWWPlX?VUPb z!Rr&i8#ryeb!Rq1`8dP%FiG3dgHHcGmc_RIo?Adm1y#eDsev<5yOFPD87V8CSMXa6 z9%{S!a%wgr&UVf>dDg;|5}ddqb)_D+NS%hB8q&u9!6rX7pxnE%mB{OCaRWbN?&h2Y zXBEF-X|X?V2Qxz!f(ND&4l&v8FBoP8hKP)eNU*Oml9qj}@*DqPcE3j8op-Ct!7XJj ziNym*e%*%YT$hDXG42S<%*3f_(dD=@=0qydDI4QS_@+#$3RRkW@%NSaaX}GpquTa; z<7X|lAW*pxmr(F^eAF2G0dG#u6jg;J2@-uaQUZr8_U9XdzNn`Htg~YG1162d-xybz z@>i>lWcF%Y@Ap=2WS>}=`j1_5*Jp4xaAp-1&Zz~EjaM~|d>JqKzg+khRj7<{Ly&m| zcgcTZycHmgV|HQSY?}|n?E@`ZF2R7Se7?e9*Iwn1&f*NKY(y1sQKXJ~7KE zWtU?fBiN%%==x}G2pARnS_R*`f)DC_GeGil_r~5!E~B2M!X%o}6>Ef5Wp>Q_CyUXm+D33NSn7W9o@@keEpN8s7EqQ8>>eIAq@$&}{)LKa1V&+0^Thvq_5Gc$xS=a(3Vl zx<+{>VhcSvs(TFjw6cVlw0pz%x`Dk>qam2x9RKtCBR15C?9Le5UY#-V$e4+wjP8Z% z9OONj+7!<0!k=AKC8xz6qoi$)5VSWc$g0*}6O9ZZ z`#y+1iqxR=3iRh}IgW4?b6pwAj;9jTA0U#Ix9+f=BdvZ{CZJ!>+upEfgI>VU)ZiG` z#c{?!{9OA0M(WG-2Bd&20dnXq2-Qk@ZR&+wUi%_yCs^?DH3jtm%RFV?l_szUsX=?u zJHVpL>)N1fk&f<8qIG)wDb|CL-gkF+1y*~Yh>9~gZ*f{Y!$Er46x0{pJJI7P}^ z@~%g_+J3YC;x6E~VP9Jn|J}!&wc|mz56}+s_R`~A)yL!N5 ztb%8+;KSL=U(s!*uzSAT9Wp>L%_R+W!Qn#!tE{C=P5#H1d$LOyhHa+(CQby-a9j$qWyB3D?qNu_Kjp%CH-ZX$xsZxN zs0wr_J0ZzBl3U42BA&EOTE~#b_$dSl=cl@>qg+s`*=(F zpTN7sM!{5JRy6-4VRr(>du8Kcw{~{4HO3tHnteNd?`CCP3Zk#!lXQ2d4C^b|w^41D zf;qvED)C++@k^vFCQ+J1o$zi!-I4&rbyhe>(dJuWa@GkLtW!@WQ z(a&&SoUXvSYnG&0I)vW0hyYG|$`nb6n!kP+>#+WLrf&1JoVaS#GhaTZ)%h31L5}Oh zSY-YE`B}B<^_}YIbfLq0bp39v&eKRU8}F0z<81*?%fT3f9`RZY8_ziLS`u4q!bK4* zcuGmA2GPbpZ@`;U%Q?@{z?#*pENPzXBhTnCeP9yg^CrdGzVo!+=OhhOE7u^9z%?p1 zW@M5VgtL?hZaW$$dml~VFGDT3C_p-*b$tLVn`F)hr6-JTr2tmaKwin0z{|Rwr`7y$ z^87%iW(Q=$hzVIY%0fzawDpNi<^rUrcv?qoHvepZ0otM6x(Y$3m618{+Z@JxWWkmS z&r)=mKCb47u6p1_L@Hw-5&9) zzEA^m03_;DF_;!;wDs+74@~?ci4)%AR-*mv5h*NFLXV=>cWGh{Rh&Upt?vL0${|Zn zHLX5L15IWpSU^)rwkhz#4sy7Kg$Pq<`|%fO#mXCcrLsF3k|BLPFzmC8)j)M%naRD_ zTmlp1EKA5YY5q)NSE^91q7of)4X?D(OL>|wg41R{EHy$`BChZSTqlU*))@I|g4)*F z>%{P{fJM`g1Sm9hI)4x2H5+_BgK>8I{1BFZp5Q*VQ`8r9!KRw1B()+|QtoQ9_F5R~ zsy-bc3FX*#SCps)Z-(ITg-mM3ODP}pm@M-6YA1A#EL9kff=tJnIX!8pz94)HH4HQ**!=uK3Q#}0}ns9fOq+RdmN-LIjNbSoJ(s*M^%hq zjwH%Wj}mvVN451G6s-qVNpgf-c_gPl6Pb3^v`7b-3VRP%e`q`17op@p)ZK`-NGBd} zNz{EX@5Hk$$V^BFrXufZrvRD~Jh;?DhZ(o`NPED~M7=N-QB|_aG)8lgeM2&2f0KkF z>=C#sw$$$IxQpAdAp%m2w(hZC+Ru0|NGFZ6z_aDK0Q~+9ZPge39l?>Hs6!%7pc;a6 zx)0T>$yn?)@CZst=s&prBJM6Ff)}D?&ubC4Iq-;|)f2)^ zMI?J=5BdskPF_Ej<4SdSxa1S?>w5&07RXmyGDV0CYkojaDzUTBU%E{jbhykGDxj z{hNA|IC^WZC_A~%aovpO#z%}qRd%o^f4Z@4W-j0bxu#JL7$Rs{^zjz!JtzpFs3Dce za`x}x=sG#vjUXb#Ng#OZjXA_BWEvIO%Q1W9(rt%#BFYp6t5+Yq!yg{urEkajqCAlY zc7pYsL?VL^ce6~lz`=LAg>BvAMw)O2E1v4*67v)7y68LEQ1sLgtW?%5{WNbv{5h{& z`PI37{X%n+tv-7Bk;LhLsLgt}Ias8HMb7qv&oSy__8$5(i7MvcN)3qAlsey-3QW{y zTQ$138yzN~1zd~nkgQ$VV7ik-fyi=BJH+N&-`kbP((jE1h_XflWHmXBw|_GdE~9br z9#e0)2I6uCWjOGHWQ+*lo52%%*-48CxqMG z;x}`s^%sf1es?jGD|Wpgd`Hd0XvwKOfZy1!<4kP!syQwq!54a(!N`33NHyrajv@6bA_U!S;(q>p5C11fS4LxBIn8=&jjO(nQr{YGO1i zLY~yV=t@yP?n$YAP|E#Z{XR=rvlcgkv(*=BYnzs^h&X_gR#V*wpTrYdEim*BqDX;# zmlrmmN_vPq{WSWuG%l}_j7jr=Yf<9(g##qCJTi~IL_dcjyW_Y+d;d$fkCMho=X%*5a(jL4w}yr|9;_ad`m zZ;3T#EyOoC47bTTiL#{6VmaZS3g1_Bw}U9@YFW(#i$5>XJW>iYioS;wlB8a|dZt(U zF!5P@#hSMAahB?bFurzH$lw#1%Yaw^-%hB#hZB)r@DW+<;aFV1J8}Hew}NW_>xlBL z4PO)Wc^5NN2c0K0k$>+XMw3wmZVw!X=r?8^oNixjhBd2ZU*BhL=>Oki9#^EsKhK8g zg2i%ttmur$Ok^}!umG5)OakI?U*GfV<@n6UImh>dkJ-SiI%DJ|IT8Rnc}vO+beDXs zgrzQ=MW({j=;v7zB>kfNt9;RbB~S8-L_hz~tLu1SXk!hC@j^WClW0hACE!Czq=~0d zDxMP{dnmA9if(MgzHU2Y1HpVCZhVK8>lTy9X2MM)66LAT)1~(^A?9MIB3o{|k_0I#kGs=J_I3HV;~)5Wg2}&>pZ zzy1FSW=xxH;gXJTk~W-puR0@X6uj?b+NU&X+0`oh8ne4ewcfYYq@r>C>A|q=mBbW$ zXaU9-l85F}-;{w4#=@IZ$GPV3QCJys1tyg`c zQ(OTxM3;4K_lV{${jpq?U2^+>7q{m`p|+woVdHF_QT89MxLu_!w0xj#PBb?D2=CS& z{vygN`8{vDYZjrO0}ps&L~yg^#{0g+VYD{-i+@iAI*Nu=ni$sEysJg&2pRm@p+$Au z=dT{2=n!Wn0^hqbUnr`>N9!H?l{cC84(g1N%tS))I%OQ|}WI`D|D5}Ek-M9!z zlZe7EF_Hn0H;zD0M7iAm=jw=agnpe`X8q zlzn~Irz7)hp`;hV~VW1Re7%cCR#GXeL#jErm~=H}V?lhEYH#T;xvzoZ`8MF-2WEkqfrrRT9D6xCp~{CwsS2Hj*vs1PGX&ia znPp6l4-$?N9we;xG*THYc9YNF z)KjfUrSCi>>Y^DDVBP8}b)7wIuHpH00O2Am{<)0@U?Rwoyw9OsQ z&l_ivsDyo{l@hV>AE@J3|R-E__`E|*SMtud$=QTwHr4)V*?h&b!@5cQ-^ z0o)$D2|opQ0^?u3r3A+tkIK8W+#C!SbYj!hclOM%Ol6? z9M9v&Qy8BvAZYkf7ePv5#Rz&6w~xJG=KcZPLm+&xwRYjWU45}p_i5h)-{y#c=qULf z_wleZ1dJnmRq{eS715`gLhjM*u$1`Ii;~UfC|fq^Ud&_W7)YvcXma1OI_=F(@d>Qr zM*Rx4|5KWT9?+sbz6wpWXKcD zE}7mm*1+JrjE7LQMXAX8#?sq9IMvxDSpv7nH30d(`BGHuIP$91qfMIfe&3-GAaXb5 z&YWfU_|H4M!Y#iJjG$f_>dCLs!Qa9l`9!Fd^e7IH?~l|n)py}Pz( zm5)i(;A2@OV?>fXSY$^SUTNHE(R#)ST9X*=PPC zb}?CV<7uS{f*l+pZKrLMeezy$}Ud|wxUimekXH$hZb zY8DT~S~mZ5B5w}`vZCHfC4caKp)`prXnp)ykfNTXYTF3p3Il!KV|V#X;WWg;Xu26~ zV6O$rMDzo{N_mPsu0LNXsQ?+KBgpDTP9vV8qF<_0ne zkro?UYmm$div)`TK7jZER9Rn6SxUIX@Kg_zK0;J29U2+#1GQ7Oh*VoXX(Cg!-{yYb z|Ky3Ln_s<=7QFW{-Uzb8JFNr@=Gl;63Uq1hW#9^ej zAO&#Z_qe?W`{z!c7n_|t6C*Ql9FYhu1`|v`Wui7?s@1=2ai+T_Y0HVHBg3TpaQ_30 z#aU!xHD!C4k#9?Kyym7EbZymv^NAJ^h~2)7s9~gFQ}6>|iV|0*W7tAay~-m&$Vf2M zpwo7Bz~O=VE8o+}DQA6mLBoOvbnNy({T7)Z#^G-F?4I*#(-=tmIqw^I4ED+NsE-k{Z8R&SRj0(4x9i&Yb80Un-7cYQ z39@%#(W+hC(U;{rqjNUdWn5A;S!LyjT$e!)7+2mPG8Ne_O=llUwq({rb|Js1@#{rC zP2dFEwtxgBk!k1!Nf*iq`9WoaBW6Nd)y24jdG(_jqN=^}fKYjm-b7{$S9b+`T*L^z zvhKq68F`w5d@T95d~y36-H$Q2Nl;24!DNa@B}p6}f__Hqp{V0`SHK}}OdEjnfC0v& zD*rZ+9p%bDu$T-`Kyw^FSbl`_(s<;jR}%v_<_*tg!T=_qU z3CfE}|M=TV0A28H)t@_Mql`B#^^$&*sUf50s=m{O=b4{TVLY@GVHB~Of~9#)>n-?u zLrd*8DT?rA3!W|8j~-x@1sS82G)k;H?#jv!N)>GTryV}w7IEA}^hPtOz&jE+M}YyE z6R=s2MRAMRCB~HOxhUMoBsa6Y?^3&dQ0o|S;RS#ThywJ*rme~?m??7m%ydYRoO;sa zC%6WDD=imlpA}mN$`WCcloNOc=9TIXurgFn;?_b#%28UmfB{nC)n4h{TwkQ-;-4(n zyhaJokkU*@7nvs?S!WLInci~vjIm`HjX*%}DI68LF<}?-B5@b;KJhVo%<`$gffKjj zF=15#676k5AGMKUrrRx&2iT#;d3vo*xg* zvsj54lsdz;RE76&hXNO(zs`ILaKdUxOhssc>GY`R_Ua5tGpG+p_1Nlh_&y%6eRR&A zb9CC=zG{ni8BY2FZVT-95;k+Jbv+z`&;v<{)h0@#S4p^mx1zlwfWUn24Y6*00B{~x z;HTr!p1cScB>$2Ewz|Y;$ObkZXQUqfInod7M+XnddM6FW7lyv%b%qQeZvC$`@bJ`# zWR(<2Y0o1in=pi`G!B1^2i~sIRax-(X)Tns%d!t&1ciXcVj9=oY@rq`Zs1*h|J|gb z;8W%7Kb>!l8UI_EFk%lSc3AOmGx-y_&|rD67hx??_!-25r@s>KWO9IyaA!h50@sSX zI&T@ccKbYlH^d*X6&QBh6}e`GT(c0F5_T+`P}HRL7SpJ$3A=7Li=BGOrHCbK$qGZ-$E?2<<8$;xA+hO*A@Y%@!*x=$%u5z zCM9?zFafM0x?>}l4JX)?-gR-?kM^{K0fs>J>a%+pZb{YZ`VQ4fx#+>03*3E!7SWAC zPk0M}RAgsn2`E9CRd^G@*VydAq=Q<&h))+gB#j~-D1A{gBGhNLa&PZ-xUI&;FY-3N zkLy#c>Qcz`2C8aZnrJO968iNYB)3O*3a;vssOKlSLf6LaX3;U}M6LWRTC}l1 z9?18Elgiv$QM#_p^@m$k%b5qW*|^Vj4~SodM%O-C9gykQJ|5cmBF=)M0kgge`sm%E zi3Sfn?RNWbL%AB}$0psszLU9vJ{?Tg`JZExwPU)ku8X)vr3z{Ap>exNcn9!3nYhWx z9~A#*6uFyk3*Rm2D;kQY`ETQgEC2k0D0({t*t37=>cTJjU~>hM-LYy@q5HWIpr}0PDN^?-Nmmc44*P|ZyL|t^qX7*;b0M$}Zh}}un=!=9~$itMF zOMJz}ryzNR$dX$B*cg|+7y%-E_Ih_(mK!DQQpkAOB*pI2A`g_yIO`P& za>z(}DK&0-icq0oR-(+2sCLQ+wihbQ=2c7kus^AiB~~TWtcwfYTYV6n7+g@Q0{h|? z%!Js=ETC{V^Ajc%BsfqDXrqMl3C-XoWE$A@Jl^91WL~AC^6!I-_uqx8^SxMc^l-Q? zdka%Wcn!ZxTx&Nbyk8%;;z9w&VlpIEz5o3T`CsScYB7-NE-halYy27{t68qYRk!Xg z2D}AxvY-h;!rnx9R2z3^T4^9u@5UE%K zW_^mQN$%!05dTsDVY3oE#5)q0nY=oAP%1IQ-Q;+$dngKqtP%52FVKE6G26oNNYJ)d zN8@S;6GWrs0>suo029Ou3Dq8k#qC6wBsO|zJM_RTADI@_vB3BWmjsEW@^cN6Gn+I? z6A{LeKjR=N%c(!750q-nMQt8ZgAx}h3k>}56KNvxcN}nAw?s4(zKD(~f#ps67ROv5 zxNCb6lpJr30WtuMJ{jZ?-9)v7ifD&5>z3+ox-Is3HS*`7&<(kt=o6(43&{2F%*M>n zy)1cJTi|S>a>(P4YuI~$-0j$fM5PhJ54mSv(Io}H9M2choEvJU7z_a@CyHHFpyDZtKq|3aJvh+%>M;hZy|k zqu<%?dWJUf84c0ph~pI_$h|>v7q+GB-W2WEM$)in_nLsIcvoDj(7#`Gwb&EaBysKick2%rj}M z7Wb$h$&f60c2s{R#{D$_hahn9#!y3}H!o_5jM{w`*Bvq%YRkA6dLKQRI;*}Omos=&L-DybB@ zX$N#={{p|!iPC(4|3zRSCIo(>DB7_i=-~vN#m|#A14YiW>H!0sna3g~ORt~ zMH#$%;kYn0h$_=tLO88*D&K>+hs*)(%8gH#mt$&EY*SE_>;w;T2Ctuzk0Vic?M*ElJV(~GPQ z)hkg!e^%ZaDo93D)fg=;wo&S3HlK?YkA&~m%Wpy+{~MhsqbGh?q{FjK3VPX3HF9qB zbeUGb^|=4Y;u%~EZ!$}|T$NY9w<5&iGaG1{9|g-b9p%o-Dk#3}o^WDTy9DE6tmnLv z72682JK+yJO*ifylpS>c@IYQqBFEhgJdT`nB}Qp%EU6h5n<;5xhMbv=GF+p}4RdmR zV}-o5di8Wt1AzI}1s+W;X~9zZTYX#9bmS#YLiPE+i;o9$|ZY z^@Cb{^`*OIeSGqL4aI&KC)^cq2IGwA#6s7NVABmN++k5q^?PuV{ZL@CyoiC9gO7%l zG_nq-`|?m(kUUdTdyuNs2dtXNTBQ;;<4nM-m^4YpYAe^*8MwNa3F7VQ)~4*>FFbD% zMx0o$lhDEm3)h&Cm17+-o_ynq5sPhtCY+-40>p=$ShqL|U4)#-kLnpJ)F;)M=kuKw z%?GNnii7}FR@Aa);4svc9V7(sCHwYMf`O9eOI05d6SaLziFM)5qs z=_l`E=DWQoM(&3r?^bP6T(6Z60gc~8!#0#0=9JK*yZMo3JVD7=S;=dx1~2mCEy4Fs z&{9d?Xo)>FN>>@Fh&b&{ck=TjU%uSJR3va3NX}v8bAh4I zFQA(zxDVWRy(gZ(eS-E{X`>5jmb`-kTa)X6ZOeUyCRWa(rB|zPm@f`F3D0CTjET^0 z&Qqk(L+Nn7L~BzJ`5kZOSsVu1*YLT2w&|enA-@F}fiH+p!uHIDcsOG2U0H42KLm^2 zJ!^5z0Cb@zxKy?;w->L?lUl z0CCMC{|eEcX$eQuuT=f6HA~*dALi_zeE!MXys|oLeEP(YLEd;F;b1tXDzlZJC?V$Fm>>3hT;vC87~qym^LGYbS!9C1_e{f;&Bc1m!`w=_e*)Gqk; zZKfM3ZJIls_S?gthgJ8};bVNY`jzCuyI1(bQaIBMyhGf4gdT!cCotelZ(urE+3OQj z3ut4)LM`dJ@bOgrAA>HzGlBfIb*eBU$8TO+ufv9&(c;e5kiNI0dO1~1pDt(Q?`YbX=8}0yMqd3XGiMvQgk)xS4wW4D=( zYudMy{}XoZCqJ}aa2>w@irOohYT6|M;15cC0+k3-8+cc??@mm$i^Sqq>2v|{FeQpJ znp@ywfTX1_`DIuc9C`l%jXPxLW!=R+#(V{FvU?oXFg;f4@Qip!##G&>>OdZospkF? zh+~st+`E2GZMhA-_RsS8Qf94*wi{&^)C}U>gx|X4);V>y2$BhsiNxUurIiQQ+Z}&D z2z7E;;LmzQ>|pgqING?kD}C1c<1zW>e#-E8D}|roldLoZI$~?W`I@RF!x6M?8u`uF zOYHW%8;C7>giKU{V^Y#zd%bV>VdgDOnKBPFmfBrc5x?_hMs%Bzp9?Jc5#7F$L+q6) zeRWF3mgwAvN~*X;NI{7{uDd3=J19HAg^q6;^AYrtcfR(~nPXkH%o(f${Dxq$2I)pn zM{Jf%YTB7_dW_I65(s?XmZhCSA|-ch*r20~XQ@<DHsjL|sMa9^4r)0@dW9&xyeN0EHVdBvSJ}F^=^p9(uZ!I|;xnd@ zkSe(KXUvTs+>nrgoC9_#3@zDV3)(*W0g`ZV_SUbmBY9FQ9)V#vV?^oX{uWuxfq5XM zUklNklY_s{QI^yVFuYSe3?|AmCr9Km zHIFuwX!U;dbwfOk-4-30y@*WN{9m0ur3bA57P)tXY!*!FouEkf_kdeZ@M^%0#JTZE ziZJZDRB`MFWWXY)W>z>VJ-B{xk-;jWjhz*N^aC?IjEGCcDY!XO7EJ`!MAR`fHat%o zCoWrOF5ury#HcOXY#Nx-Lh9A-%xq6PpJ!~{?uMn4LuyrZzdfl}zsxsJZZ-IQ7v5?x zeLP{-V2z8T=PqzMTr-dAx$~LOG!t})f8w&ibUp0QbU5zF?EawCNM8%b1hWFYHqpju zp0AGr{$|B3wNLSSFB!LP?!lK~)$ahlC?vo^n~&8E2ywxgksCF8Bs`3b0xU1{J#u@+ znO)S|tA07LuX$IJ^|*eKxF>C>N$k(OJKjcFTcwhIo2mayfNUpq7u01+A`i@ckC$f$ zuK+YL@5T)&Pl7TdPgEOVaGC-?t5)esAr&mX))ErdQZNnw2s3Ez)5aYVr4QKF8kfeT z3&~j`G}34xgp$R}8#Tl&`gbcymUBmhbB&=A{8nyW`&Ogg%cOkixpeI2xsKzNdK5EW zJg@iGN~VN`|dk z94!~uD9`sfm+48yvz;YfI6n7zP$iL^?R=Ag{g;d^9)0ylYN?W!M#r`s zr({HbYkI9b1ikqq9+!x;t*nd!{?`RGK%H%K2B z8gzt-oVywC9Gc7+&drbW0jtgg?U|@clbrlAR?|ojHo_ z4r%7D8{i5D8T!VJ8ex1!wFka5-E!|lUr1h;9%Y9uzRH#T!PtWL&i^pSgA?!D|IuPg0H%WT~tA7@Ivvku~(#$+qcxxl|b>^ES?bz6T-RRwu;coQAaHLiIE{X8R zdyu7?1J|*MBRj6S$&wq~zo*WD7ipTLzD%{BO|hXnml;xNsEw3&u97Qt^BwcMdd~I6 zen-#E@QK&q6L0_jQ?~g3m!qf8e%GJROH59umUb(D$*whd_@vb2iQz}nCnepPr6#Ei zYg!@!iPsyCtBVoaj9YWRBSG14>8k}}QC_jt&T3cU+saM5WPj3dn3?dAggW(SdYH{!zXrC1 z&uGLm`xfD3?c}0;i_-n(^NED0>4dX&pXEOn+G^lioj(`8G9j9I+7#nnJ5Bv>Ku;%j zb&y9hZ@(UXh; zgBVx+f|1)4{%rQPGvfK#f!F%;Q{UooZ?)^<7OG?H#m!^$zCOd^w|XzXespF$X5Frw zxPS;d_k3KsctHhRM2*HnjL1y2v4#C-AE)}Qgg8LG-?Eb!4`kTVNvY*q7 z+~9SCJfkF$dWj#;1NbZcB3;7Yc0!5`FHpN3@;zM=Sa3Q*yfuQnlb*EpRDb+|egQTW zeinRrCIe%bvr_#B`gQdmjLp$`KKb|Auh;{}_Rb$>>pc8>`e|L6?sSAgowLWQimuk|TEcaS>0p%I_Vz%wY!*QpULVg}x zz<$$*U=@+_jYAN+PpwtX?GycW53zf{|Cl<2WaxI6GcG_%-iWkk($LGWzff&l1FKj7 zr}VyAoCX#E>r^kX67GmwP11mEslO-j|3q{EDhTFN-6)raeu%TQ<(%LUs)X{g0(`Po zJQ9noxQ5C>?Jsg@yCtG0H1zv|u3#T1A-=6$s6#4=hKdG$T({4$Wnq}7cpF_zvyV)< zvdt(_b>h3`P~?$BhE@{X_{n_e=&N68{grb2&)3+fz~c*TOp=u*x71|&Tw2j5y*UQ5AnGAPUBZM3cx(rjA1rQ0*57sORD3b~}=*eP=|5wRA@D=u4mc>CmWeTr$+ zRO`j4?_ZI*o<^(}Y0tlDu^Ly7V*Q~j9zRHvyKO1$MG?NV>dyLH)h1ST(zmZMj|NX? zo_`q=j1%hACB~m6FFqa6^1nypmv!EhN-kb0slmiw2K{q(&0(2jaFLuTtt#)BYR)?k z?=898Thc2USVY+C^$vyv7%Y1|TiUU{ydz5JGYf_12a2^%H~6oDpCiT9*_8>;i)ife zyT`TL&^ddXgU(Iz^%jqXdi-JUeTNrZ+2&Ean|SS?BtY5v8Ele;dE~Lg2QN&v-D*Q# zP$pv<@G*nKvBgE)UQ(vsr-tg}8$!irsHpebQm46x1ZAmn+}BFrw`#_XzbppV3w|e( zS8v)S@SBGn?&vre3a&e`B@FHq^I@Gso zaHwz)jan8=J2{9OsUB+w>E8nA1>f_Vn&+7@QTC*W%nf`|LNYYBG6frZ8#){`@(lmu z{$w@7mB4bCgl)8w<`ll#-=PsUe3rf&Rnfd&@_jh^h_iMslDno0R~jey;9o}FnZv(p zf4B0!ZRnH82PcQkzq$d8)Xn#GvVLqSZ1?&%P-=fM*yjR$_jO8oaH>cr>?RK3BQ*7_ zK^<7%zO*jTJO;ImI{US(OKi6VNKS$8f&SgKWf=WgdvJ zNlry4suC8%11lk`TdeSv539O#f*zhsP+f7rP7=W#`be=)aHC%>?@=#isKwgnNkV z;v@%n3i-EolD%jjVbxs_OgtJ9@LF;W?4|t;;+OfDSZ?6CLc(JI3V{kDpq7!3@$b)SFFJ=uMXiLTWAs-!9tr~YbF!G$zy#}0O@ z;M~rA+@O&+R25o2;M2HdGt{1;Q#1f zCI%d?jfXa09uBW(wOhN5zjrwWS<@3S`-~);PJsog+2h!(^8p8E-R{4rE9lfR9P~E2 z>ix8;EE*6U=pZOK`9`BkbG^>En|m?^ax!Bh@Co5%Fpsw7Y+K-LWj?;`t52z9BFd6v zb(sIprUr#$ALANgM-}1%afk!rXQK=Cp?eYK*AjlTIO96(nwna)__8 zVV$EHyx~O6*pJsSPqpt7Mf*16!A}Tplk6$04={v1NUZ|LDMKy8s(ho4|HsgkfHVF7 z@lsM0-|?ctV~=}eCFs$9ld>VLWRvf@Q>#=F{3O< znJ2iWut*rRf99lpp~1@&NJ(&q6d$Su4EPsz8Z5;^2-H%AVS?3-6huL%hXHxLF{Fi6Fmc+iL=7&3H8Qr>u&|q-zri}dRnf|u%w~KWB+x> zZnnnc2pXeV>l}}+G1lx}RvV&gd%YvyyD%JZiMR)F1=R|$CyoJ*Sh`_mbym7UWMrGpYno3xPF}7J&HjJaXpqDJufY|E@S{YiJ-Ju z@01N=9*X>9-GDSKG+ft9O7C(fi9IWN_H>eFB~u`ZfX79h=1kujQk8AW)O%xL zlP0gN?EPQbPZ;aWWPx7rq_Qz4px{%}YVcKh^^|2P!Q?o|WMJrfyyk`we_3vfw>+%~ z8x;eczvqEgPQ_(}$;DuTK%2R5hKZ$@yq|BOK4-v_B)o_^m%cix!1X-B{@rBp596bePn*%Y}L&&L}#k==PWOg$VlHxRi2RGpf_&x?sTS$OO@tqu1+ zYu-6T67bUFPfxtjLDJ#1J5-Fz|AZkr8)`aRsc}QU%n(|Dtt)1m+?;lR`-?)zS<LQcQ4?EYtYfW}uj*-1KsM>D(YdHl9x@tc_ z{BeRs0h?sej?!L_DF3v*@N(91Kgd=8tsVR!KJ^kO)$SMZhr=+yG<~Z*AkA5Dl_OJV zJNwSB2u-)<6b$Bn-s;;U5`mc?kQ)oD57rf2MM>ajrkfM^Zrkl0vW91Bo4}P9<@rB% zj@YvAKe71>*u$|)Qdy#`98c4q@5kckx2SdFHe_heFS#*h)vNX^Cv(0Xrk5L1@SrCW~qxLh0s6nkMf>nbfb~^(- z$v&fZaMz|vj+D0hLF|J@OiFzLwy2FP)utWyWBn8LJUI@0o$y4fl9ux~G*Xmvf`CeBZtx2Mo1FDM zVUOTN;8OKO&e{4#07tDdEn0sb2X8op1s+x9Fo^Vl8GYp0CdbgaDb%sY%N>ItY z^2*{w=--HU8#?ub(`)Kh?}>7%DXk~%VV2+a$1a_kOt;T|Pjq@hcI~IG4o5b{yu%8v zq|oLie;Hrd*HXr{^#Px@R{@iJwQj9Qbv9o*YD6&Pba&a@?@lBOCNplv0QtLkpMi(5 zH@?rRS+^!ibm*AuH9l)Unu&QNOH4J4y#L7$%afMds+8{VBzSiY!;h_VWY9CN#&-sq zO4O++keJZi(sthHw(`~+(Jtz?stxXBLc>qn;mc`LjLVx+YN5OzZEB$;Dniq`iDI)U0RLC;SzuRxDPcHg2h$BQxFZ3*kYsMX(d zAwQing(5U)`y6e_Ib3NYJ!cs7Z0FN$%Jh-)iG@wT+cOx_E!H>7imCZ3tqP&qs7ER7 zpD|*ardhH5>=niw%YZIxp9t$lTKqaRF);l<e)dO-@>@D)nIP4kxN&&0QW>iqwd#$VP{ zRcD|2Youh_q6wdfWtiAT=h&6SabpOAjHBeR6lw24EwJEj%}8x9C1YEhf zCV6YKC7Ugn;ATG;7<9Bk;6=1+bNp9J>dW0kD_lr|*&GNxTl{I zxytIQqmV4~zmT*WvlY*(vPL7Hh>C0}0}-+2CYC18ZKqc5g+)s_;&9ryiWRc zyX2cYYHL_&fl0j%H125fB>K=pe|$z6c*KyS(S1ES!#tE|xbksDV)d^KP)~LN^2R6m zcPtcc`KcH9bF=}(m)Nodd>cDsvTG8ui|;E@6w26@YzC8cu2#T7zw~^UIVB?kuqp*M z8qy8Yej2}N=aY>`p^K&}ph_#%W#a%^R?kjG)Mw#pbKg+*dGpZKFzMM;Q)ygycYt7B zngu*Qa)3;5S-aQWR2=S4ywh{&z*B_Y&qtuYKeqD(lzZJqL}5{~Z5RW=U6;l(&8|}- zUYG+ho|o@Xyk*0jje6Xs6Hrdsy{R#h{5S_jhw%qkk}cUvBs8DRrW%$$JMrE zt6}aY=R2DzZa}mr&p$crOtF^01M#Quh`JQ?(+u;mn7?t!#;|h5e_$Np$2LUKXpgoA`^VW_gqcKsur#xF!B62H&p^kOI<06JB z#+h+9gH$;<3pSy23G2E%0xL#R6t8H1PaQ&iI|ifu+U&dio@j^NI|)CqdNLtFN!^;2 zb18E^pLk(?_=bAK*+_huG@q|b-GGwYBmtL}uYz1Nr{9L?d{2uaKCUO+mZy|8_7$&+ zML#&I)aHCRddEqcRcK9sK--#a@qNlg0|syHFy(v1#`tIp|CD8uGwD#ZJM!Fx;sTZB z7Kw~wB)2FjzIBuFDR095Y|;Y`SA?ut6RV-XRGR6p-X@_wwQI_sF8A;xXDY-`C4EYj z6LZ9}Q)K*d;Og2TL%>!SrQ^RwCI@Va|1ky! zjF(bUGES zeb^X9rfH*8+ku4O5zAcHXrs+&q*BwGAImgA3xDG zZb_c|4NU*z{JM{Oj%G=#>Ljcmhjlhn{aV+Cguy)hzoD0IY$!yR>6-P0K4i~|m0OsYo?nhmBN?x0QFS#syZ+Lb^uws-) z8;CubbN}1S*R;a^^|Jj~^CBqB{m+fina{mEKqS3arF$UzZ**Rk0X?xb_#l+iZ9Pu> zV1ey@p-P+RZPn3@y0X3AeNs_P0&$p{XZ&+iJHTG6n7`y_vdf6Hi##d*QR@5d1O>5R ziFp+9P29}&q2k0W3@F$1;72bw_1-GcyJs6<;dwVR_se4Na!>C$BGB@r-+wlX%_Frv ziU5N=x~!@lPd{Oqo3=nbYn*3#`n%im&7X>G)4 ztxuxmEK9<#5O*R^<`i7Vy~@k}o^e&e7#RJZD>`0n({NFp?s~~()j9CvKfi6+%|@Lh zV%s}on&eQ3r=H7<)>$c=2ZW`Wle|#rBcXryanKrX;@^|3c~;1jLdu2tD&tg9QM~N2 zIKcZe8N|PJT2~7JGk@i7;M6qO3Sdf6u4#KXRgCb?{Kw-C~t+y?YJQis?}@~ zDj_y6dY!AuB!1;Sl-Wn`@SGa&4a7}y|B-Lk4moTcCi&0W3g)K*WK6HP0EKRXtE=Vu z^R=cXF7e=6v}zj!|HBTH86P3BF{5MqfPnks(MkAwOHes`vql&^zk%&D{P5&hG_#ux z;Jth<7Y_xpC4s#dM(CMTRpKs=F}C1K&3QwK-U622V%w@BdBeO1B1rI{T@pZqx-M-x zA18w(iNa%gNpyu(U=l^e(r)g%6jNRylxXJQsFD(oW_alL$qPD+qTX!O%^D~1$9_0G z%&{u}%sCHyDoOCO62uPgc=Z+n0J-?8amPQDaotaE zrd7TLNYUsuF+eeEDaJ?XvT=ZA=lcRyHPL7cOlVFYVfQ{28z~;@ufs z>3>m@l<#6=+;6mUhF}!B`98UvO7FCrGtx^~HjaJGshrtGY&-%BC&@!**JiJ3_)J*l zmK2nKW|j=l$MUpC@}j@@g=$WE?jiF(-i^ z+l-+~-HwY)8-8eVYd`{@-kHlq?2ttNWAl4I#t`6T$nL>ut_gZR}|g z{>ez^%&eRVIV$b#nMJ=~ntTI{i@XW0x_MbBXJ<2KG~<_RC-5r{n(B2Mj&OJmZj_6y zbw+Pq(4gxrWQUcpcuCOq*_i%qJ9`2!A9o$j zHK=#P{t~jA*eK4&n6bFpQ9*$!euDr~!#9Ee^(m_X>=T7si5T+maPsMrt!tzSmx5wzinPHL~6}j@t zFgx2$&*Y!)z4Nbr;AgZKzd52=x2LVV*Fin;MWd}n=)fa(%~=O^mmfL>#!f&jFO->6 zJj&3)$jO5qu6^2e+h^0@LYHTs&wTApj~h#JK3d`}zB<2hkv8I8(p4H{?V7lDJsjOY(G z8-P7=4AYyu*-b}1l!=-gM1MP^v?f~+jFGkE2h~U8uB&;3zN73;@qtBczI7(Fu!G|> zVTp7bC#D(GEHYx>_hy+~KMjC7ihm5m1o(Cfl{Qqxf^3g_--QpdKW+zc`JE0#JJXLk zXbawr8lKf+OT;eV7GOwD=v_Ifm_-@QV=k!l7F0ke10#2>H2IcSVY=f*;`#y0U5UuGaST z8CxVOKN+CFtaYwy?`1Zmu6K(L=vlqV?x`~IhpZ5B7+)p9H|G;FAqMXx9bWlqM7V(twYsA4Y3s-U6vpR=?(1=4jl4C_U?7p42^ewKt7WY#` zuS4ZWo;ZzBNAa2e?JnjKrnD||Tb_AJK?CeT_~%D&U=yIF4ha0wnH5KF{cHh(1ALBl z%`tAgCJ_Ru+%bsDbO4LOEQhwUgc*CooTf8jggxvftCDV3k;6bv*ZXWrO%us^iInD7 zG}g-!pqD7m_ra~E5LxAND`hEa1M~-$fc{L_z+d&)nGePj8av`lxKJ)y}jJ? zm2}&SLY5O53Qh`beO1^Z)w}>9$AzBAiQQw&)LdO}`iCYa5ZP*RcrL?6Y5AK$;%u|b zoFe?CyD)@$4ZycS{lvrG#0hk%}q=UI%dSI)9?X*AC4ByPJ&;T;gu~2ENZl6 zh&wX870}Q{;SB;$!ow%OD>h12eD!>8`DAs{P)3`7Q~C>{j(z_g->Z>-&3Yhfdk`v8 z!Bd$qph)WsbQqST0PB*(k)CaqS)tc?!Xpf(<*))1vvk(X=+wmB&yqY=M9-eJ(R z=DOQY^C}@;O|UEcSj|#`kvKN^T;zxBEn6+0^{lTxj z$Y}W*gh+5F9pot?ug5;qjHFxpQ!cEapDgjd%@GDHv<;MD{uzVaDhSMX1}UOgLgNkJ zr@yp2X!dGDjotxA{O};!tZ+79T84QlXE+kqj`g+36;($IQ)}KI)Auf5I@9AydOTB> z(_kgvJ-1l48S3(8y8ZrSN8e}6wf}7u{am$(8@t*-|Lg)x7e;^S^4!S}$U5hZ^FAb) zOdNTR)w|sizj_smK4~usZa3BzliGOC`LK*B!i&-9T~8aF}*EO^0(>{1_!&j8B7 zi;gq&`hX*K{}hq7g@vN%a;lX3f7diPe(>#uy#dI?2RJmTE(;GH)uFH65@H! z=_-P@tF*idG6;k=Poh~LtevB>%SN1FCYiZ|&`5Hm-fVEUouB7^M?#QYZVggKtxytN z{1DJOxMUitdkA)Sevp(tST+))$r}iPQ|!#OJH+m=~gdRSi#pZE$}gz7n+T)7%zs z@V3TmoFOCCm%Jb9AZxlX9H04$Kap!b8+pxpfpgG}KMz43tISw+w#lO+1GS`(=2xbX zo{8{u!dxcz0k5W6!DQWScq-gP;5dC`ZLk`}3PwX=}VB#UHa*X-U=0wJ1 z%7=4<`MsOU@6OO-0?U3|#<^GT3ON zu#YvL9f`H|nA0-VvcH<0kDLGvR1E{Buf_8BZ75CdpQ+C>yim}SxjlLpVs^}=`hGQ@ zkM_njy)kvc50OsUkNSEJA1K}Gzgy#nOyZB%4dr~+l)0t%A#1L~GS^tVQs{ti>*cyr z-hqfaWc&lXp}xn1iVV`N98&0wl7~$u>31O>7h=U@o?4@=I)eeZJmfwn$AGZS)Ln% zp-XE-nZ5H+tBCYsPl~T$*ibQEDo&duzqAhY#Y5BEWwz zyr7N1IGcDjwsd9#2ytWYfjH)Ogq%p8{R24vy#|L)WtkVLphs^jig-O9fy6*!_b=uR zv4!|o6UTD$wVtG=a*;n#|i_qXGl!C*wij*rJRwW*^g0AT8U zmV4t%n5vaKC;sNLR_pJw<{SJC-g-k6Z z#dUpWi7o5GkA!iSk2zZcH#%6_dZ_T6tnQEdne9RUz>Y;uY^U&~^Y>4Eb@HlcCx7Vl zkcHG@u-yu0Kdx?{pyL#Gcx`OImP}LQrsh*ef9T*)rdLHPqVS#NF@X9&+=aOJ#&68- z3X3iC00Sl|c>b}iYP%ySbUJh;bcD2XaGkXle(R4!3bV>@m=r0_)jF3lI&|(4w{m(M+S=a^6+Ay+Ql_Ks%)P>_SyxabjCeja+iKg5`&1AX*0ws& zFKWumS=yeHdHmXhzZ>GebJ&=7G7_Im?&W7$siK--U80*Ctu!wB)BCdgNS2#MaG&@Cyf5AB zifz(@8^V4a2GD%eoOYOVAJ@?&xQ=j34v;xWg3k~;XVkxzoemr&2he+4M%SAI=E18nzFvnICYZ(Pn!fci!W> z(~-r4_>m{<$K3vZTruAw+TKc57*Q$E%qhK~cpPE9ey~C38Ne`+CMUZPv;0HXutv?; zJl(hDX07%<>4M@#hre^W&&^8SZ;c+&WzUXg>5gIzob}CB{Y?7&K5vhwIXwByI(Lzg zN!?#MnBo50C{gHRjVc}lM0}W7Z(*Q)_6eHK#0~B57u_ZPG-!`*uVwEAHmmMmQ~wJT z;ufr}ZrDLj83xr4zZLPiE>e57=6n72UDq@?Mxq(2Rv&D}&)0YZ?RoC^nPu2=%tRXy z)}W(~FFXHQtMvshTJp;j{AGpz!a)dJyG@e2*r59j(3B7+6><|5BS(@q{jeSiQ~*h6 z{EmSi=Lc0ip$aGN%gpIAT1aV1oEXU!t-&9{;)u6RPb~&plqM(A5RC&91LOVwc5);9 zK9d~QV{}g;eyLj*GpU4dHBPhMsws*+;(Qq0z$zYiHEw4GCIgdy2?JuAnWe>Ow(L_5h>FK*IT4v_eK^~HHgUL{JtYC`j9Bu;3 z5gih0P2K|D<{l4te|65!PmWo+P@}XQ^Iy&AK|yJbXap6FqlbtMawZ-owJ87VIQr#z zI@HJFQvfKeRc_+K*DoK!DnFhXuNc?LvrIr!35@rH9V3hg{H2WV9z&}5cc^yeXzI2& za8NdSCA1#b!)|DM6X&Z4lgD+$*|k~mZxRzjg!^0K#Zq6wZ?%!Fir=0Wf`p=x) zCt{huw&|SXBnnjF|Io3=jObrIK?3<5+3-ftoD44sFo$z#8i-*_F0kIgi}}J5os$7! zDqBJ{(<{F>VpQ_i&L1`1vGqS-!))4662n()jFk_Z%aL+qdJNBhYgF89_Z(WZ*LA}F zluZH@$NO!7q^0;j-VcXd$3Q?F=T!rTYO6yMQgNd`S9A8qb^5$lHO{7w0!$pLBi2cN zm0Y!Pxvzu>G5-1AwFZ%=qTbl%_d*h~Ykh0}2fkq6pZuxawr{^fayzJG{#&%<&awAr zh>CS1I)12%41*52CmXHPoq1WB!~=J_ zqGtP5Vzc&(ocSdATd5%C-zX7eMZSa;&ks;9Kq;PR-JTH|?m_p^`j^22;ezkEu77o4;g0qsEuw2;SZB%g`xpWQDL#-(dhw(O`>|Ut!!b zazz=eTtHvye{DAr;i>Pyr#F!|@|K&e&3->O@UY?MfX#uMVA11)*J(oz(R(117wlCi z8wPKaZ<4IBr1%kQ*39STf)w3|K5Iy!5;k$?Lz~pj&nL@gpXx?>R=!@-P}#$uh17G_zRHRYBmvCq1#*P@%= zD)u>yI?bQuY~P6+ed-8G7j&WXw8nz#qniRilb<8#y1HY6FOLY;5L2C)qp`0#ExV8H zY~}G#>qeYIpyXK&MdX5wPCEBOYZX%r7_w3CbOJ<$jHbX(kP2<0LI*W@?&y_MAXSgf z;8+h#wn&w>P1ivcV+|ztPVK?jdTmpWl>5uDre_n0Z zgrw#EVuE4^=S>627a&M`*Q=?Jn9&Pm-B+J{tSorLf0Ct@asy2GQTIGUFyyj=kxtrD z)lX$D?`IFI`<;!A@9v-H7Cf$dj=5FjjtjKAhHZ^IN_ng`cz-?C_9y0DwqMxHH=mD{ zduYNZ70l7V6q(E`7f61$_F1G~`rD14hb}(nJ-yHVY9EX$tI;yl>c3Ao@}KO8gwlXq z@l5uU3W~k8G&|m*SQ$O6RwxZxdqGF+o&jcWAzc_!ejRj#Nh;TY`5N=cERqoCkICWX zE8cLvP~7(HY^0BPWS~Z5cfQLq=evoaRkeYKXig$ex-1**W*W00w4%EFt!h+RM(m7; z`F6$h5*qoubH*&j=!ZmC-ZcaZ!qu&|6y=G)^5&a85=WDF?wewpl*~iQ~IoM z7-}4Dp+I_{E!wz~@wvaE8wLv%){mxN8bkE5|94g$rpdbJX5*n(m>$>tx91ST#$yv{ zuEH-E27E4Vb1S+-6+xC()e>Dhqp7PeTv|clN}PzClVFGu#Ko`wKFyisR5u!9t$){S zUrk+_JuX7#h8JmQd2 zVS6y!IZ|SEAo`N+N6pDZn;sMTP3>m}F^7m&v6-ESWTnBq;Rv@Bsp*j1HLc8x+d;A0 zq#XWka-k?G?-u}d@T4W!^C~rGZXvGC`A6- zSUhoG!g8#q`t)?p`N*pE@RfxJTy?)AJnSh0ibU!35gKydG)SH|dd7f@YMWUW3BL}9 ztm&+g9*__-Ia|_F8(Xy@HO{M)2M|QgnZ;__F5YpoT}Dk~)fs-}iE~=gQA`zKaY#+~ z9r>^iDsvBL@&Aq)5W%Li)f@H@G2XlE>19sPy%Js~<2g@iVrH3Nw|F4r!**lJ#37rK znT2On#(mahxR~R-jinF)dLg_D`g<_4isBdeMCyx*uVE`S$esFN8}&1F-Jm%)PAe`% zfL~SDDKDe0irB%QQ9S1_{{yv(eeb`!0hT`jaHZ$cnjo+#-%mrd7pDL1F&YeGdiFfw9U3jt z0w)S8BZ{Z+j|=YxHSokku%z(aBpUARx-R%8?!VNxsRVDW$jdS3z9a*hRleu<^#)yf z0gFv6pj5A&o?UBst*&L?FSp&cDRoz#lGtWaR44n3_a7)xB#zkWf=w07dh{ekXX$L$ zbt=OjWOhe{2-G*;70^qtD~r&+zWOQSnYifdC2_V33SB?8E8SE9u3!zB9|ZqQT=5jK z97k7OQDFVE^N zxG?h?cFSSo!M0KTN&7FfL7gEmOM^$v*;E$1GwrHl1K&cbXeF!QQuMiQ(+k2ZSPh^e z@p=NQ{788vYWj$|mq3fRr1q$A85U(3C{E;^k6JY!by*E1UZ@l&x>?Od7Ikc2} z#P%-&0$$b%O-zx$nzq~ooYg1*)#p_L|~RKU9W&<6nkAU{idDpHb+5mU@<<+ zzP?EW^B^Xb;}6A-;GWbM0UDI@F4q~!%qn8-y!tXq(|?B5vA7&+K+c&AWh{TlLFb+T zhj#lj&%WoBhB!xiimg(&AHDVEk-l(8JFj|6N+Y=hGk{*LSC)z@|e?h6H@EyD)F=*is)Wh%O=6exk2eK+c zcJ;3)zsAI=^CoQ==5v3uo)n|cS$itmAqIp$ZPjbq^Xk+Ol>nidP+vbEG~+^-9%TF} z(xd`ez4bS7Y@!0F950A?QWf74#C$p!8~D!z|BKH4P95-XCYw&KQhd>iamzp8M^=G~ zS(bjPkmXiKe2Z0Y>UShZ*W;CY-(#p6I0L)6FvJ&|Vv3i~^(hIPUl01ej3KwYU^ioO z2e{t$8}qHuMpv9Ep?{In*Fdh|L3z(aoKT1FyW`sV)0c z)s}=Xi;Y>)SU5xj1O#Go+s0o0p93q>8n62zK&uI#kkK--V3Ijmi+h+?*lD?~f82rG z6jb1;)8s&C%j|!^UAKnn)2r!Tg>9L>2F#Z=saivB<8Njd*^DajqkIpqN(KL;xzFzt z798rvSW8>_U1gg_^QoX@03Uw@w;Hqg97%wzn?^~2{}&RU068U`U%5R67S|M7LEGXE zfZplQpz^u$t9%_=Tx(ikl|yEP7H?ll=E~#utyc=@w{T*_b;06^gopbb`ndRDxbvx;QkF>mH?vLF6CC0bWSfp2J!M})TJ|DA98et&Rsh9^`=*L`~8G~1pNerSl`|) z$qS0PA~F|q)JpA5Y_ECVHMHoHa}9N^sr~D<%y#1h&xG_gveC&Qov#f!&B}jx?=t6F z#P@xIizSK`fRNS5(x;O)$onl>p~Un!drzkOiQ30? zDeE3K_cP@|!r26mc=m^pxDhlXRg`A?VE@ysm?IPCz6u-`t?qiYw5PR8C&VNm{-E$r zESo<8Q1;+;{J&^_n5|dSsBmZHcIGt#MfA#2797&3;l;D!EM@(Wb6ekb4c@Q2R zL$}{ZXak4yq~gSJg7fSY%tMST&Zliz*8j+a*4Kysimp|)|NQbfI^jV=nOL9raao5b3h5OoA z`G67Lr}odIBFio-PMl#$rQP9+k?sqdN?>KMgn|3G_LrkNm(H@JtnUa#20bq3wzmuS zE2LmCItYeqe;^957mR{VEIW%jpJYj`yyu8Vi7wD0>I)S0O%q+$+3T(sO5}fhk^emr zePwxi{ksl^E=JTEWC=_KewMsuput-7owrKZT0RC z{h2C4F5Cz1!^vZrZi-S2`2AtNY`=`u6!3(O5$rLazVm?;=HuVktn;3Gh(Aa4t6~O` zqT{g}63{j{m9)-yT9eEdpV?Am_HP-$nm1O03YbHGTW2l#eQ~|#FX-nBO51*4P2S$8 z@dnlr+i%~E7rZc<1_Lf9)47T_2nQU6!0A}&Zl{EBfJ+Fn0}dNtbjSiO>Z@@3?RP4U z=_U*Br56KhmQLDCZU4%|#?MJ~584wVrn-HaLND+bhSaXGh|#d7NYIM>(NeVCe5r3* z0-y3ZK8M?Gw9FBCfKg$n%2i8Mun3qEs;d}VA~G8Q`j$d^hM{{h-k#_e^?uNvyUI~t ze5Sg5W<`E7(oDnyzOKLVC!$|v*1%9&DBF#5M3B~X0=jE%C~fbhj_zG4(ELe9y!5O~Ur?Yc7)ej6>fhP9Wi4zvped7VN1d2&i>N4ZHx^-cZ5I|WukwmVPhLGGm$ zwT;8969&}lHF0X;2{CE-cGIqE_?!w0K39B;YM_HG6%gI21*HOqryi0xpR=T37tN{E zLm1R^WgZ#lExyxReR}XuyGjH7f~QSe(-#Xnm>#Taocf&bmY9Dc@`5O8BMs*gmYUr_ zmI$I^XnsdLn^AasO(v{WawNo9p=|&??@Xv@CRTL1L61k~-K-T}we_7nDAK{7M&svN z{QUl5Rxd1{f*ut-tfVkJ>LRGl-;|nbUzz5hQgLe$OLQ}tcos!h%_wCl%Yr0MWqBBi z{)nRUBGla)`(Mr#Tw#vAWwmI_pj$#nI={$pr+xS$1$6#{k41cJ$>7O=E!|US73dWf zdn9(xPVLn}d)m|O^oUW&VWth+B|?sWH>7L!nYGvb&8eTf+L?XCsANy)wRTUuDm7LA z2VOsG8{6XFG(BM2Go6mR=r&AgLm9@&c;RTf+0}P8T>v-1y@}KVz}raQeDM0=$oZ39 zrKV;4yTxex5}uiR{JvizYpxPqlU=8~#}ikm?nI2{4-6=&hNsxJaFU2DogFy_ zQ~o{~O?4hO=erV<)^eWX{Nb5~SLg%7M92?3R%X4lB!`_0P3gcX8-FigpEEm>d*-SS zst8w`2`S_2ZuoEu!>af4l9tK~QbTmd+$+YX z-x!}^4mv@|uD1moMZ6R17-L`o7i;wz6LU63rurt_^nWv*mEXTu24#i1O5tKJhF8-l z8}7ZYz6S#Jl2S10X@GHutW2b_^FTKvpyzwl=fvU&|LD+hSg0l#d7Q1MM>ct;&0~LO zNZ~s|DLb3W#sHYr>h$daybn(M>w_YeST+3yZ?*YwGw0OigV8MXLxkFPY8DNb8#k$4 z9P%^gnsSbp7G`P9ic-m%alz1Pkzt!2`wo?-F&;;-m=fgf7$bhA4!UhMoIU$`uxhsl zR26COxkL-1!CU#zlZWx)^%I6XV-JNTVaja397=PbLnfH+c530GYVi?!pp&6R zxU#IcQG-*cz?a}i_3%06;%tLI$nQts(7i_wyC}xg;2+Nq$T@a2Du3^T1J(gBp4!GcTr#A55w`5l*llFieXK?TqH6XM zJDFUoTW^Est~O&EOED`)#!Ek17R3UJwOvQ37XyEIu3hdr&wHu1t+g2!_$y>Mdm_T8_Xh z8OPZW9_M^X=BLeSvug+yxM|vCra`1f>+YFTm-z7cR=1I)P+8|q8&yjKkuu5UlZ2C( zv=_wn52zd!1rW#=$^D@nI`PU_W^h+2DY(sZ|NCv>6fsXZ;P9$I4G4~nECf!_$Lg0n zI4-BlEsmSnNDwtLCZkiL|9Naq%$nCM0zD+?>HyIh7;2MPQZtLHqU+GM4zAiKn12^@ zxc_JB%|WgN$B>h-h7K4>9*PHC2~h?70EjeL3g?!RYG}7=)_j+nw;X@~&=^GHlIBW7 zAZ*T$ael9bIF1yt{G}93qj!gPE2^M4IC-XHk4UaZxk6OmZD}X(m*)(@cnvd*VjmYU z3>a3pTc~X}VCd=cuHykIGIZaALICp*OFc|l_*$@H$LN#zWqLFUAtoixkqC(9e_4Q! zbKrT(O1$EBd3nRrU$=6;FAL=d!A5J_cb>-d^c);W-%Q>5(*C8rwH@)nM|G;ZbW{4S z{6_6%HCADD05}s0?!Yj-OGi&J=8jlAm_u4{AKH^`-BXWc7pTE%9OY5UTmmy^bGSMg7IvPJbscssG+*C~gtXjs5@>9A>*VUua>YbmySF;kf*Row)Um@O+ z9=VsMGj7fw99;iQ0{^|AP|=Y-S;hbcrQllc&SNczAJ}7X4c=hTFzN%Fal0cTr;~rs zE#I{1jP>!ynSU_uC7-!nmP>?F_A2zs=;xy`c7JWVbQ@J zzMXC}cX96LBLxBTX-zSP80bFW489%n_f~8Asu=G4rC(D(4$wmeUuv2RLg=*9;k&sD zsuR&z>Kyi=R+JoKXiE%HPAu19jpiWhzkp$<%fD zOTZZ5qyg_p*fuNB1Q0us6K@Tg3gO+Mm$!u)ke2A?b|Q)&{$t!LGfX>l4t%fZZ0JlQ!3ouZFkEC=oKwP(QX&&TBPP9p>`U<7f*-h_|Tjz>dnMCuDx0eG!9iG zpcc(d6#G**A4ypw#e2ps6k-2Q(Yc2+`Tu|X6Un!PP$;32R1WJTg_$HOrzD3Qwn{~b z<;>WYN>UE#Kq;F;IWt0z+mvI8IZsY=-W-RW&%gWk=dNqlwd;M~+x>p;^?W`bPfyid zwx1%kILB0TOs1dxFuK>YFXN71)G^es;l*;~UVeaZy-`Rb+3jZ3MV=3-pPxfV>8=j{ zhX~!mS1boUadvvB(`z`F)aW+mV+Wy{j$Tko`1L%kw>ny6PJrW;>ZgNZDxWC&r;^T&pSK zNC@DnCSxA@kNqoE6L%+FtbQTx37zL^KG=;(K>vT__qw|sRJn#3>V3{BOYPtC!p8p9 zHdCTno}M=eafk2}CDwo05-Bt56*_ND$k2EG5-Gr0mCqjs({m9Rn?;ktMRCa|%BO&A zLvlapv0+Fu`4^nvMs|`8^OFu%G(O-SJ7F$@4MZ>TuG{J`esJ@nml^_B7J%2fPWIWy z9)6WcM;%LXlA4d~RIXJ*&*DeREvx*U9yIt&U$p5$ju>9`hp2E}GM>O1KWqfxwHwyr zqQ|vk{sV)RwU3?3eA}yerM;4Vfwq=FQ;St^;NPBM7ldVf3xm4M)jZN*PmEQZKHyAH ztkXmdMDS}ak4HD9P2`Y&XE6??fOgnVX7#enzG?d=d%U)=sBR{iZ<|;@$84Vc%gNVU zD5BPxVuu;b2Q!Wq&%lX7y<~o2#!+0$kAbxyTljZPe9P*7wH?@m@@N!>?-;dV#~2jA zCf!-VG-GBy>>XS2U!@S!y1VNxD3K^UesL zTC_as16yYCH5U8^YD;ZJlx`R5?LcC$mgocPA5()rOFW3>X%a%!QL`sl6D+ljFrhSs zfh#XTr-8EO=z$6VBt-DuN_5E;1`QsiF^~F> zO)}~ov#;%UvKb&E&#VS9VkfK43_#Dl5YO+3R5#4*NxDF2KLwjdj!5|!r?VG=89MEL zcaZySfzfJ2ZW}FJ^8}X4F6{-&DrL;~@&*@gb8jNm#fKFx!e1|ZR_wsAF8fo{s$+~N zN*Am18JRyczs*8+m?Czg?wuiazQ8+b2rp=ehqRJmdpep)Kv&UXC8ORV%s@C-+1iIN zuNFM##mWL?Qo1AdW$emVo_9ipj=SlWdd&7-2bFM)o>ip%FAVu4R&daTS?AP-IVmqG z{m{FY6H7<{1D0Qf&9=~-+0Zn7&r`5&MviWh%j%9fPnosbr#}7F-)N~+HZ5ONa2Nx& zv-Q1mMXNhU1wCK1PbP+gBaeg>F{ToXK57@O>Yo_;U#W_}_Y?0Hna+44+wzSNf0wNd zdQz*WDySx%zKb6K23wHvU-zHdgdOPO+*ZFvgas!V_euMtTw_mwf9iGvpdsSY9+3@r*p6Ri_m*tdXrBl=Ec#n;CazWXKU4H&o8irpRvyMy?uL@8c=xEw3O zn2W0|ESuzi^U?;_q+G0kq=nbpsAq~xrqR1Z^|Ik23+u^Kii^>liebTtu&LYl6tMk- zUhN`+lA;}-nqAMoK+3T1u;<(#aMy~-X2 zd@rvB+fpeX!*yT7PI>>)4fQa$TVh`&$t+`NqjU2NU$;2ix_|Th_}TVGqC>g1Kw|>* zt{_a0b!~G8UkXR#$HZ@(1iWA)uxIoe+zO@TJDSIl?@)&D{z>r>(Z0sTjK%y3o~me5 zSzDD#0W*dOIR-8KJ%TslDQO#~j*x_I29M`e(mmt|9ex~Ws*43f-UT}Qxo|r?hI<;yvh|gMy_wKmNO+VzH`s=Hb zc8#TviQ#_y6D0PRY*KljCvGqP+5ORF_RZ$t+dB~}zEgS~2e8`DnufkxwtcA023bUG zp(A&kVZCBFUwO?xtKi)n30HtNN4~kLY8|4T$haDJijtLJbd8gvX>0V7DTlJW<#tPy zCdbvD*jQKT08JrQx62J$oWJ21Lu-{;;uUBmnsp>H0^-c__h~B6qZ8Ue*T~q@vm1G# z$|CO`8SjieBS)DUjx&L~Mh?)b7yJ&xR_LLn|lhq0Q@r zs0*zI!ZM$xCycUta)T)IIau}@(U{jqruxN-x+=$xS4b|Ngmxw7J=UH51Wlai|1aE4 z^U2yk*uUd*_7`ZmHC%VRs#&%N)p(*Yy>4k3Sim<8t4_7R15Py>s_T-z*?}& zzZMQQnb7*LTCb;XBk)B~>CNm(v!js6EtGDsS|f1DINN%B%^%eyd3{fBQiD}kuC^qA zo@+O}6#8x52040y1$&OUrin`TNy0PRTBn<~qA0rSuZ=FHvaSnP>vq@w>Uv4!pJD=) zJCg7W9ryix;i`R%(dHm*oW;PNP8nRYG9=Up`xWu z_$}h6y3wHf=3{qgHGy$3f{dU>c_42m)v&kED;r;H)uEfuIrB7__SHJryqpjihd}oR zo1tnZ9R*XXOn9R-f~G)YAECvn@J;E@jhf_;6FWNg0g4Pi#3Xtp=m>EkCOd$hh^K{x5&|z6NhCc5BRzOEJV&%{!9?dkdO-WYY3Etq9$U zo3|K_Ga8fimJGb{H* zB;-@<5OOf5Ry&&PKGKE6Tdv9_!KckomT0!@<~=baPBH1ss5o`@B@ldmpq&ewC5}|? ziHe4VKF^qq$#EYliGH6!)iQv())FeAgqXw5T68v}Sn#yyIHse0}?THOH_3f8xnxtYsI@3f6smZr|2o>La&4XwyDIfU$7u;oNLy5P4NP^K99M z&DEG4_9@1_ea5Z6ax-w3UA(AWkg5QDn$S$<2;ffH1B~T0p$S<)~r z*4S3W)`=J`b|BRSz2GTi44twt%>3bP*<`Fdkf4z$H?8RNk`kXW<<7m%|1db9g-ht! z@t5Fr>y*z6u;AW$OGY2=%0PbCBDLv@IS1-EKB0v31nqy3FP~-dtSQ51yC&f+LcL+f z=-zn8OF3okG11!0hcjiwZNO%_(K7fSB{a*u%r2ZfFc|?xeVCj|exGy>ZPNXC025HyX7ANF?i8;2_R5 z*%rrp~PF~LPr@vvQfRoFE77|wj z7qBADg?qM&!nYh6H466ErH{n1;5|TUqs9acMyE{S+AeCY+AX+A2cOUU^*q3jFfC3J zi%B$c`Gad;v|}BGL)hhT`&;y}JJ_N{i@3cPyaa&Jaz(|T&M6kOuwYTq+ElxCL*5?V z1C^13bEd@p<%g=MHgdxn@dZU9A4ad8yj)c+D1)N6O;HJcv4-dQ84DEypYp&0bajSg z>x58ccJKsk9&!WnE&(7Y)QMhsN4<>wh*o1AT~U>!U>a`o-9<&@Wyo|Sp!5jTR_7(T zdh6I9ex9Ad*K>sskDpdzGicqlZs`Gx-1*e>qnw%;!@HvKfPNa$;Cf}kJ{OQlFsaCu)k&ZP+P}%Uo`F$ySmx55Bi;C z#j*&ZSa8Q06(d@FRf}WaufC3*B`|T726Hj{l-n%K%_9H|wtDS}J8Jw8f#D5?Vfe01 zmh3EXbr&uDA`Rv(HF3oGOKM}_h||^G%ZT57bNaF4R>qQsRG9iAU3Iy2yBx3Q67Sb# zY_^Zy42+yO_YiSMqwcQcqf|9oRT;R{paOA6%Y)tOb?-KNoT+G6lP(BI+N z^Pe|fbzj1TYay1l{-Meu0GhzfY>~&4$+K|^)AZ~GwU|Y1j#UAkslk3IQSH<6P7?RD zRhuE@ba*Chh*ht`9@)$cgSq?(UpgFW*m)a(HbPtp6QTc{$T4qUvG@tX6PV$Y| zgF0IVEnJXHJzS|DZlGFL;*n9oFFoc1U0&^|j}!-Yj{SFi+-?r%d{hZlkF1Yum1DRq6U7~xb|8qXJq_bt>lO-0dzY(+60qKzDx_r@n!G{1j94rlKdm0$*V2n9(3CV?XU_3N@{XC&TI&@4AsN$|}rg_#r)5&&;e?4f?iq{j)LDw~PrpbG@14s5k^_t6gYUXv1yEj(w zFR4ej{$Z8648-TbhuBkU$qiKZKgQ0K-RT_8X(h?#wRB|bn z9)#vMDtNRqcFP*QViJzCO=OL(GfIB$AUaL4!CEF#vY;9Bl{c4`>fWDwFTRv;8;H1S zfdK95k)|9FJWUE%I7fRiyGRZ<=a)Es#R?AlGk*6@zpEtQth`)SRqvu2?9=NQgVW?q zUU^+7K5>QGeE}1r2f8kB$dKi|;=Mi;e~8c=JJ-+HDDeMzNGy9in5y2=D1}Uxa&Z3a z+@w5u#CeS_{rZNc+3*zB@Nx{#lj&BbGa1L?Qb#IYQX9@1&43dfn09c_uaoeA;+wnw z-Msm*73BSuP&HTnj%Rp!9|-z&(uL*oGZGU3To0w|+ZTCG| zNphvZcDYdvedh|zUKt;**hgd>6o!DCj$S9Vvf5#utw4HgfHa;M>o}w1o3yS!@*8i} zC>px-aAMz5e>kflWj35iZYpAwJuc}R03wpLFLlztoJbpt$Pz#psn>r1Ysh3=#U3mnNUshu}bo?lZyhLDr!;%$8af={M~`|fDneX*{` z(qKPo0lssK0y*?`^kS?8e|h!YDKzLhB^o4BGYga`5G0KRT1%?Yv_t7gdichf4 zN7-;$Be#t(kIHxFqAEw}ANGI$C~?zj@aX2;{dZ@QVyXq6RCz;62c^tGcT>0P8M#IG zTz*f7*jtxB=)Y5gR&=w9ykWE;7_O=a_#21)^b8Uos%CrL3hM==0N?smdS-N~S;?y9 zQPyCklP#$NV?3gAUqS!Wonf=M&FFfj&8GAIc9>4nM@iO~SNPVV)|;WG8^&%qq!86$ zy`BV0$QHiY(s~QxnAi){0v)*5nugzrf~l~w(pA{-s)_6)L)q(7n&R@KgvIrd z_lc1Y=?hpd`ML!aBOS7_oV`lE$nj3KkjVE+oAjbR2HKOW)h4$F)_)Q&s)r4!j`{+9 z2Cpxg1zk*~pWSqhkmcD;ToL+2PQyy0PjX6Xb3xIPJ1j!js`OyM@hcYNiaC1R|3!Dx z2g3)ST1b3fN0ab-P=5NeyJO!9k6^8^)WtSFgp>qhKLBfyZc&JGG1C!3=rN(6ZwzFlSJ}YQ-w& zC68>bXrpv3@?g^$v}Dwk*kPP%DAH|)4VI^q0X~tcBbZQwbDA&dnVIF@x=?Ui{GWop`}WVixc4@dG5Gr}Wa30OYeV!ZnoIS1B2tYv zONzVH>xOm8sx>w$KnKZ)hj7dy$;bGT^}OO8#C?Zf@%O6M4T$Rcs{R#VR37`xxiGrC zY$a?{Z3g4cG*%r;utUbCo_dN=Zs}ljY!jKg&p55R5-tbE#1%1))B2CHSDl&dXR?wW z@=9_va5ixIQ0wQ$ZG=TnZAvYnrvMvp#Bn*fcT!`o({gw3J(F1{ix>EHRoLD2e}J3- zc$qGG#V(1`Ex!bZj<3z0Pd&m{Jaa)K@`B0b*t!4mrh}G@&?d2Vr^Tka`L=s&INU+b zDGfTSNaQ_Z!R>qQw5qZEgFhJgXYi;Jo4f+{&?biq>e!NFn=@#eRHF4sh)-i|+O&_%5kb|V)btK{M(82X zQw4LnOULXm^*5R=;{yX(>6zxJ;P{6g1X~1#ofH$ueYk5-?Aj4}H~ggIf|l@c(`!l~ z{gl(D_EHpNa|4_PWj>E7BIQn4gqxRlz2cXQ4_rpeqG__5%AGm2YqrcV(f=k`Dq)-h zsOPBoHQ^ov*L~%NB5yFd$=FGJN>ZWqQTz?{%E2xw#VuDo^#?e89liWi*PMRx&USM5 zjtpy4%&`+JRVy`m&Eb9{e>&8z4sz~c;%G(~-42~`Z@WZyf1~yM&oe>W1y#XJ`2Ra< z!v(&ON=QhYbhekGW%-6Bt=h_2(T!=V_yQKzsT?l)D%dr;dX^h+3%V^axV9Fc++pAh zus|ZNv>p=n?0*fx-y111OJSGKPRXXia#K`(ZtA9ad&L!b0zSj{z|AD6WLUqDv2pUw z?a7OAY7P2#g-QCdmAEpeJFW-5mzYUG7Tm)5ONn0qdoa}g04(uJr-n=Vx~94wq9otY znZh}WseDd7b~d}fAPMiUj$FMxCphC1dwkWk;2)s4Z|)ZPVy2 zVSVwY<*(J@)Ni!cSKiaB_I5_&EPF!tgmI70Z94l)hN}H=FV6bp&Ew+B@#!0nfVt5G z*>D<3TJAd?2A;h$Uh$kdu8~p5>G9gP=pLK*e(e64|LuhM+}hWqRR8vKMj^HAsfjOc z^cv^&@D_tAk^`nuC5w71kH{ zQ-z5{jB4VsN{dOE3A9=WI1=PcmX`aRL8DtD2|Z<5F57BOGCZXbR2L zNUt8JuT;LL-q?{I0>0CFeaSNST~KeI_`NZWdBP7V)^>g=G3?S zRJ(P3=u`3B?GZRQDI)aPDxv?|msHI-Es0WZT;4iv=mqSjFO3qiQ>@-G<0SUrvcG?O zDDuB{bcv9}ZkT;p;5C!iq0uuNF6>Z&{oBr+h>=2s=)IxOY<^SfP`LwfQy}K;2Z!s; zL~dNMV#lQ|ng^DM2l%LiV?%=zHY6?>#9ezL*tWbn3b;n%n}g3X)K(PS+&$ zdNepnS<<2$2^{k*@MmU%j-3cMmnTXd%$Wx=?SA}(!!N>DZq8^%T@X-yHm%UJQ%0fI z7K}ry@t_M{Fe~h`ZadC#D&-9uVgEdG@HV3$$%&#in7C>;({(RLpK!38 zTia5k>j}dMf6U*M?GnfJT-_~r*MMf39&%o}n5UCbG;9B_@LsWkZw$!SeD{&$?|of^ zoNYj!RAPL15;SbfI3=1GyLTK{giPPaDm>XW7#;AKa<7SG7V)XU5d)M6!1v5<#g`5G zr+qXXEu2)0kynn#erp5XclVLx-cpRdv_OY`{)sqT_5cjzyrN;IyLRqZp~d4*#To6= z8AZ$G-((GEB?-0%u@#21O;i4~C(SQx*lbhr)C5b&vLv zF73Fn{A;6&OZdCJD+*e;AGK+{xvS8lJ?4NU4;=gFl(9t{``$zEF}-YD)Xevn4m8F8 z8K|i5@i3~mbSoa%aw6g;uXG(!hzpm>k}}h~jT@}Arx2|OlW~(*ACTu}sf-+F-rSdQ zY4q!)&8QvxE5nc88%LB==^FHlzL169rv=_{g7gN7no>vRb#ypDG%+A5Yz|f>iQ5tpx3R>32_-2MXV;;o+Sd)c ze4-7i$!BC4;eta?w9=8bIBj|_M6dT4Q!${SLRPd2F7>@fKV^ZW8@Z6Z>?{tiWh$mQ zAumsAK$JtQoW^V$CS?|C6E{}k=`=v~i*TXb!(MY2J9X0EG_RcHQMU0v3pzQL5Y`ym zcy?HziQxePX3;r*7DFJ!MgW<(s!xv5g7(;4y@S(U7L1mIjl3SjHV8BMs6(j?kUirxW;>vKCK6keqvYdZ+42~%GGAv^anHvFTs(z*U=xt<`(p7hWI{Qi4~LQVue-tz&z{ELBnJW%u2(r5rHr^d zaLFl$%sW#}f52y1I3P2?7qyfd*L8%Y?;(9hV}IhX5WSu_wU@+(782tw2w?Oa3Q1H; zlWW>aT-4tfjU`d>ldo{84Jq3(uV++I?2n=J|xLmP@f zh{oZfkFjkQaj<@>yCA!_p!c8CUQ#<~!%VD;2+8b0CyILA=T5$FQ|vH7h=ki9GZY;% z9}jg$t(VY43PMrg7QVbboOs{^H!;HZ%{fohaJU4}O8h%&ys6ASl^Wa%i`g%VNgbF)nG0uB z04-N#UC-N5T!h?6j=8_BIHI915{z+eCuJ^a~R!I>-Xi+nlDt_aT+{4 zfcLMrr7GuQX!h7bHpN`cbSZ}zs1;^2)8o6dW1H|yLK-LQYAj(OO)kr^vFKs+;RC|Q zZU-~o9+d>3x1rcsiQZi|nYC`9)RFimBBH(l)9ac{AUvFV=jW38d*9|*XnD%TTWK`+ zFs-me0NJWxbbutUX5_x?#J%H_pmw@^*lvpB{ZyM^_d9a)`snG5J0>2f5=|D<1op#w z0t8Poawkm-%As0`6uovB5JX!lVIe~0gX{ODmmudXlf;+2dSR6^qm43<9q^yfSwmAI zaIoaMEggy0V7({!kW$UkOIWAh-`c;df`D!}P(pn*o-ph^PD@(gY&X~gM2}QHs(Bo# zc&xwK=JgxKke-82ZDD?X+of~=pu0iup$da5UtTPj9A2b+I=t5UtaX67OFRs2^3F1; z`H_tiotz0kNkzk#H!qX$GWkz{MA^1Dyp)#=d;7|+5m1E};JSe6vmOA{SU&a_f%RZ> zak9p|Uw1Car)!93*BG^K)IO@UPjbxo;|K$HLCZBgzP%4OFj_^jf1-;A z58P(vv)9L6I~S+rDSFJVxWGH*azL^uB3`KrQO$K%dJm3_B^Y|FuNN+no3Q9=9IrvYtS8)AA6wh zq3zhBC^%1B1Tl(lvOiV9k8g4w!O2wg@W$?5GSWriNPiRLm2#gKGGf zY;VoYh1Y4J-btEWx->WtP6BuizR9l;eDZJ}DSWS}ME4ad|HxBHU*`^2$+W&d4lgAt z((m;O)(u;~N^AYl`AsJCvz&d4`wZ6bs+eE?4LRl64fpsd;K}#?T<*=NQ;>v^`$$7| zPZI(uGxqF`upNTMGll(f}&^aH8uA_>g;#=Oo0eIvyU5f>2Pp{ zM?oa+b*d7;cb}6>}8Z~eN`>Ph!ZZ3yTkzhdXh0##f z&<>V_;2#n1X|e*#!z}~|jgeJWnvw?D-T+=u{3wvbdmbd(F8cNifjK_@kZZiEakyvU z!rV4vbkrNM7+a|#+S|bJ8*N0{5Z2ZBji{Unw!SbEHtm%#r6&1d<%28bsWfcB=U#|y z(7{j=)||g=Ji%6+J;w#H9-5TRohx{p;9M;mc1w|lidz!j{dsjbJaMKe`(f+VHJIEP z%CQtLDMP6$sn;?Kw!OIeUG+b#nC#>B8kb`FCoA+2pU-5CsYEYB_0RXL#W(pL4kKTt zSt@NNUt$94s^HH;UuXSa+Q!E;IN%nnx#&+3u}$q517|5;t_<=8%~4v<*@YKFBDH?oETHvi&Bn)}$`Ns^2az zbcG=eF2ZWCbq%7qq53behtu`d>l^k~0Zu{Cxza`tr{oYaL8<+|}}eylM|n@G@xg+FN>v*HDu) zS;Y8g+DjceUS7h7x1>lS<{II)M7qLKXWcs#uklSllLo2{+<;lT`J2OEy9B4;X$}(! z6DvrB1yH+y-^!@by%6JH0@b72_C!Kh8PQMp8%O#w?E1A(yTG4h-HVZzc`b+uv^wu= zeuCEU^3AK{zKHe$UfPEy+xP7#Q-|1i!v+ga8YSle$9E(Uv9n=17{6wbLitg^;CN%(Kjsdeo$A{Yb0nlz1@2<#oDO!RK-GJ?Z`&nqeJYADmD0H zy$;Irk@N}fkl{5EsbBLN1-J51`P-g1t|iJrnhygNvSx4mS>ZiBdS zUHEu-*7iF_oQRk)zLdS^kHB6@xb*I5kKZ3$Gi7eimhuGH-fN`3Hr&$)8|l(ocUf+b z$hh}r;-+wZ^oi+OJMNOxf+u%geoHvz9QjGC7?EhJ@hzF_8*o^ABANRy+U1F4V!|Fd z)B#|sRKb+mty~LA`V+B&jIgzAOE|Fs>^PA=={RX#tD~J!H~Y8+Ez7zw{@h#an3d6} z4i7yYyp?_s=fl~RK%M-L3|qShI~ON3i0jE}Mqyt)^aRAL8!{c7uFfJ|ja6(ul|!>%)#XBER-mE1JL3N?hXBJmW5F z+gb?DMLSi$<>cr|r+N6s{pR1WTzzKl^ezK)mQNj%S~8E0%7DVK-|$7?Y(mus#KG(y zbe?AC2fXq%a$GF7BDL|ei_4D-E2JM4EV!iT$^m=tS?r01C6$ld6hoEY2kU!ZtJ4OX68 z5p~NeTikU}fk1OvI52fC0WAsajp7yNTL0Z0F z)y#O^QGUJS6FZo8Y+Nx~g6f?VxnHue<($}*8sbMa9~UPWIa@#?{>MLDOeHILeOvHa zR4N$^UtsHO=p%QFR?jjySH}qj&QUu>U8y_OB}+ZOo;E<AIH_o;*xsQI9bKI5=hl9eLp9*bj`-#(A7VH+bEVv2} zuI#q37v39tqmSC!5G>0tGvuZ{JP49rW!i;L;pW?1m-w+r>hW;!@Wv8wSwy&l^l0P< zPqY>Ml+m+^5~kpE$)SG%a`qdwy%{lbW-RzcGUo(T%z2Y~)jsuvz4jXrRkjnTR_Fg$ zuhmT#zY$-;|6S&jUh1#wMwkA6i(8;4nlYc1XGnC2iP%D05{Wy&)(=^uRH#Vg38Kga z81FG8C1+Bgc&GUAFl^tKPFaVJ3G- zNcJ0iC?2~DE$fl>5tO^3Y&n;(_YA`P4MK+6O3p)etM86rNL`eA%}#*nITPT>|M3H^ zx>Y$DT)?hgoB5yik4*ZEW{UTaQgx(OWhUdh&SC~cnfF{?;Ly>pWg2AMVVpR_eSdB{ zp+pMu9dK4h>Xj}a8?JDNPJKeH9qUZU8i{Q1Cy{{ZlPY`LLa7_0I7$mOvT$)st;~%z ziN9MT#;QlNd6i_MRQ)UCq>HwXYdjUZ9DTYYZ#sIF4JYItpIIyP>}DYSnzhZ}oiiWe zo{TyxmdDh3cH;Tm`kb_hC|g zftpks*bPHVyx+fo@Ws9~c%4%H@MpIYWHIMHx5cCdG$FNG7hi|3orxS;?G>A4CpYGl zeBLYRiJ9U|$PrI($*RW+P2cviWz$k2&%Ik(=33I9Vy`TU$FkpzEvljJ)_5kE?%u&W z6XuiIN~iJDS3j?zxxS_Pu)YXOq3V5VcEfDz2(V{eTM zu(t@VwTIy5iI{1<9K6#(3U_xHHs1^bEhAJ7^}c{gPWKM`^oknQ6Ndc~Yb&$Z&7sv9 zU{cga=m8KCbOM7>W1VYi75-^@j^4=lMD+o=L{_?gl-0#uC%55FI^FT<%pejxSMz41 zN^ro)ijYECGkMv#;jnNCX%exoaic|O#G)gd_@SkJ9}ccf$s)2;xVB7>Jh6`O7`+W! z3~m1@Jc&9Fv6_-w`L6AIvY z!3FZF>_ojb|8LtU^yC@tlW7V%nQwHZYfHc(x4h=T$p2RN$R45uA3(_}w$sy}P0K3W z%o}d2v;0I{xJWMC2-AEaYHt~StQCAtbSI%D@_jDEdqcczL%Vw||yw{VPrCohWLiTt!_ujIqJ}Y<{7`*+?`#p#G-L z0Y%h=*z1)|fS}q}P%C`&?l|3d~l$fyvYH?8zcpuo?L=1|mYv&ZM>!uUPfGji)grm3s^XOTD`6Z2#tK9L$vcyYZ=u#$ z8A>i(ZWd9MoY+F+SXgO9as%B8!f&7U}s4C6s*dG3PHG))ZJv%z5lCzwA`=v-fI*wYfd|fiE8H5@4{4 z+T2f34~?^W!ziTI4`P|dGUD5W@mCOhxW7>^l!S_-QO!lVriU6gOp0Z<;sN!{PRn{w|Ep=@(+f*w(MGqoByJ&Jw3tZ;N zlwJ4*$I4M=FThJ=CHf08IyGvq!^5F(mdhE_f`tLlHyVEDXGJrS#pc_QC$T}&A@?*k z2C9!0E)^hEW^byzFoGC&GW=ZU3a(^(o5YZ^v7(ji;@2bR8({LWXs+x{k!{Nd;?4Zqh0rXaJdGq_-A5};4co&u15ci3P3W=1bm>zw95b>?KG4x6d zH1{0rVcn}bL0;0cVEJHqSc2#;Yi`&DLx z%})?RkaFUAcpG-@9B*%fq52~6@)t#lqlHLnp6?oIwppe;-|*=GT;x^6_#xP+;%@;m z1iLo76>ppH-jqK}NGw5XFmg{O6W6kssq{hCz*8jEmpjD!xF$I_`#EMm(ZFe|j^i|Z zNTu}yFcjlsEPFN&qlUqIZqTVzs13aCUF-*f@{MI{Ny3F1qwux+Uru3f;i^-`ZCDj@ zFO?R!mJq~y8x;#v@>|jOLEq%d5OgsY67NVpXj2cg`k9{82mJDEuQ_=S!14YTDjrUz_VA5dlzzR zygA1`ODMG-UC6@@RO8kCGOK%KCh`{l9_7ojp&CUh5y|-Jjy*dhwz%XQawxmH-{qxJl{ZCC*YG z*7QGOS6P57_@CknZ6G=fPq$LcI7CKm4JPlecf-4@n<*252R&;Dbt%xU7|o8- zOC38107jrp3NJObb$I`4?bQxtw9nqKz`fC@HDv=W6ig%bqr&`6ADgdUNX(sV(zCSN zDJPm%=^aBziCzGm<+vr4oH0jhD1e8KQVw?gVlS@J8!&P%8z`_e0RW70`<%w(BLX`d z(Uh%RAC>Gby$g}1>jUO{Oi#NmlfxzxVfO}xiy2?iA5=%$`wAHY6+qLmH$ZO@U!|ec zR-@JUOMbnOv(gY#zrLW5fwhli%VB3X+NlRJKG`*nUBr|u&3+LhXS2!Z#vW4l>miG;oM3{rb&m&ho7zyu>rdVtB zXZHN>k!l40OyG_@l9COquc(uQd4)+Cc%yMneiUIET$82Xb3-N&_tfb8JJ!j_Vb5|| z*JXZ@4UV%?lXmJhap@7?7>iG5XvOJ1g`bx-jZy%-yE#Pb8jAo^w1TL_WO-x!ulds0 zU!nc5KbrIn8*CKfAT=LcyK3%}KwaE8k2Vw(G1BylzxmuLwMnXKuCq*7XndGf(ii4Z zR!;F09w+=qxOnRWjaqL>GV2D$rINR5Z$Y71}IoD{9NBWa2QtUFms9tVNDe>wZ+ zE&J?Cw-TD~#66QLJ0&rBLoC*qGI`KI-8Qo^ae05dNe(1hML7AHiO{-evG*CQI-YCj z#cU#nMahM9d%anvfvGV1e=NOwJd^+9 z|NkyYCA>;fjzv)kMRK-EQZKPeQVv^ZN~~cRw!M}lIVDMj&7lafL^*Dw98)$qOip8) zjE&i5w%O^s&+qoTZU0<8|0{)swM;`L(snxD@QSSY(;77u()|sNt_V%Dg0kM5ZU9)Y!Gy8YW9THzflPU?f|J zlF#*8n}7Q2zWxZVTe3q{Q;w$ckhAt5zxP5ywG#V~W&YQ*nEuDx2(@RfHx%Woeezu^ zoH9=AZfqu`7)y*4hmcqG&uxa&)mEG$!%WYeo13=Za$cRiW7LGag1SjONEV}pJlTpB zr>c8>S>z>Sm?SH{KurMUhOnQYPFfxObcV^2co=&ki}4bFM8TRLF2#KaD7WWb;I?3> z#8SY1venAU{pJ;|HMoK-X$Gt~?S%%`UbHzpVz(FUmL9}E68Yu^B5_#ynYgmX*JUB- z)G%?szY)R^jwki71Trwgr3`i-6tH@=ocH|I0U{CfDRWNe3{D$*b*p<(!Q8!6o;+>$ z*#3)1P9zrgGX-(X^~|)gSSFxo4KPGt4GFCC?-a%xzwdvP*f|PgyLZ>zQrJcmHY@8+ z6izU#9dg( z_cRx8XstzVQP-fjjM4ezoSXxH{S=9`LqR8k{;IB62cA!qxvgA2eA4Rc1|o~ye7PR0`T&;QGt+w#$uM6}=d)PfLiNP^?qu~T*(5O7LjZ@lzCV3zUhUYh=v z>@2iKkJ$baq)>l=Gxj) zEcZnnm3`AS1;_U~Ve*ymYuG_?2F294c`I_khBp!I$Q9L`h6K&1Jdqs=rTG19n5rVv zpWd|A^8o%DCPUG8w}EN*7buY$GDFI9%1^tF`LI3U_mqpe!<38ESqjcqXe_lKw0>yI zOFoL%>{u?H+1YgzI_@MeE-i7sjVw5mb6Olc=)9l!^FUMJUsUBlq&?4Dcx1{|IE|x& zy2@oBwgab>5RjAZ-<$L^q1#FAZ?jLsOh`;Vi1d{u{$$vE*EzCq zJev>r7Jpl5?}E-XpXJ=Usc6!cXgJU3jin}*dCVy`cU3FS;ip_Z6pXUv=XX*!RtqAcT8(gu#9o)&)9nu$d`b)$MVX97Uwnbw%e<*-=gMNn~eyH+kwFc7_f zPnkf=J9mlnT$^xT6x5G{)PyruE}wi5fU?C9(IUV!Ppq2Y=RUgI;5VNkgsnNhQ9d%~ zS=3ReqRz)v?WhR%uCVK2d%OVC5Hb`$Wv=%H6pUgUX@nog`E#`DGp^xyGlngo;PMCh z4H$**Qc6KZoGZmk>ne_SEi{-ETlBFcsFYh?k|c8A59yn_LqRW z-?PME@hr>HD7Y3B9Kys$;wuN+t7gpgrUP;203G`mDWYG?zXGT8x>8MdbW_(HBHuU6 zVCOOg3kse2gs0XmFnj>X!l(qyE*30^-(iN7mxMPR!{m8Vs)TRT0*dfiIDb~$d`?Gp z;uiS{{rdNXF@5||;kh0B;+k9d0LT+?2Z*;{`iyv9wh!FNsXq-Zu!EhHw2*UHCe~Aw z-uy+4F^j1pWGke`pH;aSj!t-|G49M7M({3Zajy_tK$E0j1hrt^wpG0GHb|#G6C#gy zrJBl~v>r#afDDZ*)kdo3EFVyD{v@wx`F{w{OpzCAU(E|_Q5y0|gkrao*dqG+**TUq z^DmK7B@v~fie!rIkg9|4x*A&dbVQ{jJc+}dEq1_8TAVga-|F#MzXKU}`>ev=yhE0G zv8Q1RTiGf7Vkb0kb#sNl!t`Q?AHb|bQh)1IqVe4aXMg4KWbO;1m-QvMnteM`)m@b{ z9Fa(~TMO5=u^qQ<^uV}krI5Da2Lg@X0eJMDDKt2^oDDs*c#-+VFayIYX{0| z7FdilJpZ4Y#+(uHKOdIze`<1rKR7ZEV$v{&k^?hdmbJ{$AQ@^-bM2%W_+CF@zel~= z&QcueXg&Pg*}|;6f^C;1g+Jejw4K#m(F@Njf#Z&hKKvVK*sBAST)oilCQ;t=M*flS z2{+E-bzi3y;UhZUE1}^kZ5upa`M#CW|z!brX|ADTk z<&B}qJjYS}Vv8MS>1+DEzSzH7TRwup*Y$RWZaOx3+Mvsu(ZV;A9&UXj{c~&Ymzou& zD#WX?+$+BotIi`haN!ZAq}3Mpg@m`^T3gN=hHkakA;G15(kknaZ*?xhn1{<682Q-sH^PaA@3qD$~j&7 zZFq3EIR31{SR)|=aw4!L+af-tIh9Cq=y3Z+DglkDC>P-QvRw!`df>}VY=eF?${udD zkYqLg-KV-^(KLeqgtcP7X(4t#6P;E(Aw8}0o$han)prFyF^OnzNYr^2x50^6g5T$b z3fV~vJU032J>ILxyGN+>7mr$e3c5~g+k!@~>#DwYqECxVT?syL$z-gLU<&c34q&nm zWctD!@yNNJgg#(oqLyt?5~G|QvQW38OA~5cRGX)M(v=lD)hpUvcFU7sRIYA(DQd>E z58NY`KLN`cYRZWfwh};xp~7>HWsHxI_a)9}AHZ3>KK_BVwbu3cf%p&CRY5CX>his zw;3&QzcSWR&Ey(B4(dL+0&$8<`jHU6d2umi5TeXp)XaH(QFs=0$1^r!y1#@^101{e zP^*sIc%9{e5?$qyO&?zWauxXF`02>?hIg3yhfBc&P_lBE2)MtGH4<^s4T~u8Mofsy z?y(?rVzf(iqzkfXk*pEJL^{hKo9{6$I9u@boQPs~FKI2}`MoVj&GW_h_=Sxa3)psr zl5U-)F*rbVF_bwb3-zb|Wp`M>rj9K}olH=6DxJ42THNlNpm)c%cJR2mBH(Um!$VCv z1>h-h)ol*3lG$!IhVIJX@4`J1_Y7N+<(7LeOCI_|T)UQ++)8j)+?`i9DEP!AC(yf* zd(Nz0ue+{F$IvbN+I3Ei+0E$@-$(@CUN6f0&$N-K=TQ+)j4S^Xjet2#Kl5l~8dAmI z^=qEiMd0NUjr+mjjk^FYc}3>P&D>eL#pahtjXWEx@5;n4K7Dohj)+<|f5kg5ShMSR?4(&)f;OJAeC38mWt!o8iKQ?jJ$Ox zi&)}~)ryU4s>cim7bori@rRkpn;?&^FUoX9W}y#TvI(1A5pS{hRH$XEHxAG+4?9Kc z$7e7W_2Y~bn!JHnHQ8bBp1k8X%D-&Jk2qh`@{RSiHx#y!sC6fma@*GdVwAq%Xscl} zZQIB%-mw^|a_|l-99AXRHrxe^H5S%{R8~H4tA56lV;dhl{+|CSt@!|AC+aup8|jO$ zuq#S`1;u)kviLRviGhc<{x>zD&a7T6avfU-sG2X<9GRO)>v061LQQ(5*9q?MX5nu{ zC2xK3AL*Ragp)MW&NGV^`X=A|)X&fRN4pZACGz}en~9l*68-qXI2C8uWITdBB3M2S z4Vl^tgmHdHz#&O;r{G6l2RU9Ky;WeI>mxV%6B;5+gs28erK z2-0Nd0IcNsK!yQzL2zbJg?f{C^Thb>(ISrhUVous%wa0a1%d0nHaH6iC8G9Nj~E~+ z400Z6o+}27_)3(U6)?bdPd-q8NbtBAJKeDLo3)_{uG)P$m>5nb4bK4o+6TuHZ7~?Y zu5tq4X@eBV)5WJ+c3(ACCk-=r}WlwVL=qRBOr>#N#p+n&XELhzv`QA3`mv zg=Ipu8THk#x&YyuHe+T{BGWRq?2_JLb()6xlu{7Oi z{0z)x-ZkEos_%Ta^hcWPU50_ZPYE_*>Wm-dPx6ZJ@HbM7@oKBrbFIUBm%8?kS_YPh z`^X#tkT~iILPdDYqCC>dYGGS zQi`N^J%uaP@QX^FAkvgKslPk#iMRf>xo?c(lKZ6roZyfd|AoWs_)2aA;{lVPWOHyG z$*aHghq*=7F{RCzg{H^cpJ(cgRPe8=c2VBu+egX-S7=I-uKZzQsS_lP`h>9ROr}Iy zuQo4vfL90^3sU^;xvr-P=g__T$)-mRlPx~^6alZ7o*=e$_|PII&lxCvr2XB;&jgjY zigv}T87Fa2iMKkeL>1k|Iaz~Caq9t<*b~4gi)b&4MY(xu`OG=yYI#qV_#VR*I0zCR zlUn`KYS>HtbEZZ1CL>!DdsP=(j9~8WYPhW{zV{~?yx8)A^lUXF`|e)j?XUmYrTu!x z=s=AOp2-bQyp|PcF0DTSn@CVatoqmH!4ainS(>dUCxxv|*^+$7UbScZW2rp&l+i+U zL&{p+?cOF5ZMWbx#9N-Y_r+e zfRe$r!( zDXZYm=Q09&i}Qz^c4&W?DtCC`+hI0lAvgA(Gp7Dskt?EEo1VQc+4QXBz_X$Q7LQ7p zDJ2Jfe6}3_|G$&MuMg7f#y?xJY%D&fT7G?C@y+?bk4Gg39+@0ao?~J2jMGHoC-O-w zXz<(`tR|{33M=tkl8n}VH0`E!Lnp4v0awl&ee1qOWW}+^eNNOYY+y8N?0~NpIJ}Zr zm}lkAeYsPfp39$%JOuw2`wZECq82&VZ(uQ3CwRd2!)CO~fy(KqtNb@tRuNWn$!eUSye;UtYqAOyFbTI6juGD2LGhdcfIptZogZJ za4KbT8P7_i;L^S9)mdd zc{jlBEf9^x&8b-nf4|hXP%77KF0coGd`oXJy29V{u`ApV9u^ElZXD4@c|Ufr*{G*L zq5cz;MVBssEf!U^D%X(DS69{MW5wUQ5?um}k&o97W@SSprMG4UGZR;6RZp{WS)b^& zwLDh`Liqj3KWALR*X!f-Z~PnXPVncZZT}Z=(&)SMa$s{>Vl4Y6=(QpRuLJ>tF(v>N z(#`U#RcYK z4HnDrm5Kx|XEH5umUQrV6dOD{{|-ir#kq+3g;MXCG+K9n{RUg=<<~ zw9FiYle1kI-lo|NS*Hm;MHBW1$6f#v{N18)C4HVJ|1T0Ey*O$yr6$plke8kx$Q*oD zGodSMY`e4#h%HeUy5k}MQgh+=2)bNzsnqcAbCx%`t>Y}7_E3#OKlm-eeOr9C3GJcr zJlV!S>xgRRJ6HI=)oRa*7?li3Nq3Qd;^D=UDxFT@fcAETgG$C4V4HLD{vNe|mmzMd z%}YDhwpqY>WYT5T9^K32sS9XXI@)=4z+2amA>%fu-OIXC=>n!rBX-|f#x_pu73#dX zzfwrKPBDenO;s_`VV?%$Ea82`OysNKqB&eUK@iXU%DM-^w->*!(YtZKWu5aM{UL`5 z=5xx8LkiMf;E(Wp@MUY1(6u%@FXHp9KftJqGnUovu$(zG+hWl8t+WxVIKKjdK# z?Aw=hgann{EX;t#(iYOKCHWbMc=m+gMiLl)AQLW(-c=W`N5+llDEm1HvB4PHBRTZ7S`%*EymC|;*Kkxbb3^?1&32I3 z>kYowe^}8*PfiVnS1N$dIV0xWamhZO-?=ds){KNu_`-NwW4uWwVCmsRMbvT&#*{h| zBl^C0e*)9(GpRmwjideyncaGY(*@>QEdMHG&KEMO6)=V#wIk~^T@ezj+21gAlOUdY zVujR7SmfL)Kk&UZ3&9|d;db3vkZyweYeCPrbphGFezDh9wgB95m3b~KJTo^j71ZnB z760(_6gdUM*QfE3?noN-16)?}Jk%j;IGrJ@c#=(bz+`QYYjOY_A;&?)2SmMyu6sw@IpZM)5(~aVrq}um z*-I3FSt;x8g)X>VH{f);?LwB`DJV!em`ZDm-w<JGH*=<6pw4{fUX)k zXY%K5#-cXr&H0984927%B&YPBB+Lc5%i~5Ma9TGj9Bl{|Drn-LuVP1&pc`ZM`q-M#Q3UuPc> z@RN+{AkTWBJelWBPPWg=>E^ZvF8fEa95StAkIKKq-l8OC?M3}(WOsp0tf;W^*08-pT%O$B zW1R1p$zjBY<{c1$v|xYcihbC1MZR@KX?N+}kRk`L@F%+e=MA^Z@!7!mUa&lf?R89U z%rKQd*FxE;heCq?2dMiG+F-d4g-%XS@$l?7Bir45+*`xEU+C~;XDKAm#s@U_L8#n} zT^T37gdb@=FNk%N-3#^!DsFRd);NDMj+o3_>z5<>@So$f!XvIe@{!!$Y`3S- zcR2}o!<@SV>L=A|s!>$HOp@_WLY{{uZfs`l=Dh<{{T0{MdmSUxNm>K!vE4qW2Il9k zfge~O0rSE8GD~zTO0TB`gp%0M(9!EeQH>ltU_K1?N!8M|VU=^t+_xFphmY9=PNiUaL9#P|5cz!6U& zslFT4mC4d&uPn7AJIM}k*=Kj&E&GxuC`7YXj!9%qTj9@Wy> zL$N+uS+04S$UhHqgpPv87NdzU?X%lS?03-OEF8|KTB ziqka9u$f6*?N1%+2n+M5p}*!v%6Ay2OkO@3W7us9zIduY#k`^s_~a}0JnCb4 zdLF;Ac?Uk|;NoogO;Xe$Xa_Kf3LA@)1E7E7;6}k$j$-&T|I(I&{{BnST7bc|Xr$9tSLv0_KL7bClCTz7^fLqTk&oHfp@*LjBd6yV@V9Jkn_jZ*A=#WOaZ;X>peRduiAYYk-Tx zjzIX3VZ% z^%DErOXkjy+v@%rGEZvM_hMc}A4 zQeW>pb0qdMh`P6?ICdxzk>|up&~5rE48__$e!lyqNh+>M0zVr zd#umR5Qix*o_yiQw@{ya?g5bOmK$QLxRM|NKWe`)IiMl_p7pk?u~VCT?^ttFh?iL% zdFgX)6cKJ-ALqBJY0d46n_w?xDg`lU&&($pT2t*ma6GICdCi*@)eF&At9`!@B?|zI zO8Ix75cM(T%HW2D3$)|-skTDN!h5*(?J1t;`DsOxsj?RI?VhYO`9<;)qR3QoB41e8 zCNUQ#e|=M%KLJ@!opk+Qi(Dl%Ytu^!_0i@?Y28LWdfcAKMKu%uIP!)OPc(0BzI`-f z%S+jpHqO@~z=M-GIeGJf7$ovYUd~DGVWoIqpz^y=jEC&w2I~N@4bks5ImI(Jba6sO zs#j>~yFv|!nfYz8E19~D%7PB|F>Qke=ARI4Ih3h}@KSLr~4x2iWNC+5HyWa~T zDF#51+EAAL0QTcaj#Chh5cX)oAHLKDs_H0=7q}im2|qa9JB?$4>t75JsGtHC0F(*;)*7B7ZllTBG_-D)^A51=@4ChY~Dl9X;D@D z*~$K6(xU@;U6i{;mZ?D=zPR!^-z@Y>J1P7WL9uP6Fw5t;(6!IVy(ZioDT(>LG-iip zg#&@)wLZ_+hcIP$`Mrgot2<>i@o8Khp*wLI>4~^a{GQna9`*u6zcWU;%kCplS%weu zjTE5aIW2OyN_{@^6k*xC>yI_r0diLQu8V6qr=Z$fj*iiRUBbEXr(Btlrn`WgHwnN(zDq) z!Vku?3~^m)sJ)@LOL1v-+PNL@uTJoO+Aed2+P13?M>Y*kAMH7Jj9`&?SpHdQQKLhB zYRYw;;YQPOY-Ioow6uY34txwb2>qeN37;E{!lVZc928Z%sJ6&2iGtsYSh@!kSuj26 z^!#Y`!BTLqjp&UHL%qMvhqsj$g*}I1kxp8L7jdV;@;^gL6}|k>hJvib=~LwsYMoXm z36e|YK_Tb;I(%by%btPTMV)N2z~AYP>@=<$G%gTvr`j4{Ln3(--InCC@nx|21p@I4 zD1)--11C(ks36PHU5X=1``m=CJ-Jg}2^>75^XSeN4f=rAc@wIN@4Tnv*g{np!54#T zy5b}TwFS`ZJ~7j`nR&f#lzclxfQjlp#@-i~;A31DgINQ8dIwhD7jC055&y%NWK<&U zFPSH6ozikSJ5{2!Hw3v0kNL1LXU6>etEZu}AmH7D#}%%BFLRvRh@6Ye&koTxnTgTm zzWhz%4xh2`mQT8qoelz*rOTv~PP1HqxWpH)yBYaaWlZwo8SBo94USg6W;f=G8&Ev* zVFcmmLyl}DHS3~R5@o+XrwouErhH$LM} z@dnKzWpnkZk)So7ln4N#BmiapL((@;XZ8cu`k_F6l~jhUt;?=*O=*SUHsdUiW@pn+n=D9N^-klLam6l!DQrcsYiC>3B3%9 z#cyE2B!$?tDAzpcqlnF7F(>6p0ua}@V$Z!)UQ7TF- zd%b#dYet-xaX05gq=};ZtoKVHdJFg;K8>-hjHmlad&lTr<_B8r7NwEQ{F7JFd}nGv zgAxe58*PPlRYr{J*5|BGP*qwGwH>4;0`_8&BG-Bw_?OrHAW#W@`OcTA)~%Cb8+i3p zhRbWR_A?*O8Mks~$uS=07=N!=FIo{+ndvm_By^IZDFYUXNpOt9jDKf2DU~Pgd7Je- z3-y@Lpe7F0T2nQ)b-RN-VpWK}ApCNTp;ou@UA#NS$t{T^HbA!PioB7<3xC==+T+{v zR{Fw=90)^+@Bb?NnYsv#V1*s`G4ToZqO^pNx}X?emh1>$+enS&#oDP&D;Y%MFGK___GT3#jhO#{V9(B4 zw*Eh`_5UYqyDQntKZLLIwt0Ts+Va(QneMDYm_N+;@#7v)X;NJ?d}igAFG?YuA;oCI z`$w6vo$wx5ftsNUYCGv7_vSAz%Qp>Z-!XD zrI~5Nj;m>d4CLM~sQCtA`K4!7$G<4>{7&(CLCS~UH|wSQ&uFaR7B{Zw-8bhFW&#+_ z5R;m>`L%h?9t>GrHYd;=8uTFroZuXZR@O7dtIpEqQsXgZ`;#hSz@B{F2=Qi01kBgIEwGbnW|LoufOe=Im@6mGN@Qm9IdKQ8l% zuLaxaw#+m!%jbSWIIZUvTHF{Ue7ZxyI-2EX?-!IeNm)KLrs zvyJ;=MCirJ%&*$i3+suP!VW*m8CN?OO`;Gw3_wQ7=}Hd+3_Y`+IMf zJu4qhOnke_9IV6wEu0nZgkzne6@YufY~6An)))T3pN}_0qMYe35!;ZTl3MRLKgY$v zx0B||%zOFMKm6w#yl6fMrX52Mgxx2Erdlz_8a^2(di_d@HS6Uk#o5;jf_d8USx67n zwJhzqYR&+WAmsYy790Q78j3d|A7n_4uLA_d0gCvcR!*_882b-+VelNUIeImUeGG{P zG_=`#$12V8!}tzg-u}gG>tU%x4^V?EP9PNHmjc-uh^j6>n%Shh@M?Lc4r?U#K0@Im zXut}n1Gt4M@E_k}p@~_yUcB1A_LXzbcn!1q!gzVk;6E$b<}rb7JuB~Azy&5uQ9=`Y z{L#P6)vScY{e$no)l(MV>{Ae*|4{+Boo*#id%;Ytg?4#)WqCn~u#&DcH^Unr6qKUEEA z*aNuTo<;v>jf#YER}2j0g+*TBcXH3j$=HRbsm`=j(}l_-?qvc1y@$9$>d ze9eN}n3b$)oQ9X*%C-P#BDlI1cislZ*p6VN zNo13DE!}yyV)A{DVAp|>S&XlFAN}O~e2*&76IZttF5I0nEa@#;452m1&a+>>{BCUJ zkL)+Y^+#p1oOPR-F6=ecRYTWr$Ks55nd+gqk8M8kWJVMHR2Lq^q*e9~KE)4#C^HXV~>3RS6dig`Em_$Ak!g1kMlDhlb z64$~4{wo|h#jsJohZ`~Pn|twWC-7BwstEwoq)<4&MSQmZ>j6X z+}DZz{7+h=Lss>!_dkA8@-`H=h1LMwFJ=DAXueV@ZrLIyA6g*VolbB%o$%{zuS*{O ziA%`a-ZaPaM(#IO*sQ0{^+v9J8|{qrKT(M%GX_-{RrR@v{-?RhJ>ZrD;z)?u(r?e{ z@mpk%tW)D(Ke#|VsKnfuu*A~-CI0*; z&sx&t6rwwFjGEkk$E=S}exX$?Nid6&^A2+T?heO`-@Hu$la1K7+^!LQVPr@;I2FWm z<;kepM1k5Dr0fLfvq}zpYCgoSCP@U9Z7CdA3FbM++$82S^kDCU{`Q1)14bL9>V-03 zHBQk^vTtI*J%}g7K>?UFmab_Kd;H9|thtsrf(>{;(&zyAL+KR!&z9FKBO7l&AS_jD zZp=a*h)1N9_y;p-Zoh8yBxt5!l`BgQ>7vy&UBB)kU58hz=vxDPBeg|~E>zgjXyuFs zj)uKsj$89o?ylcRug=ytkQr^lLzE_5z4D2HViMTST4$<#jDQn__rPPbRwmO z7yVu@rE1y}XOl-94fC(s4yu}kq%$A~>hBDzcX2GRyvJF{k7vA_RGelRbN z-joDg3T*?;1Y2dQC@UeC_STe~;awfvRQR&dmtsghs>XxSm%)%CD6!)NUHpyP;eTu$ z9I-x9_Ux-eE$8S3c6my{Xx(`;NNO*mDRv95refK-{APKa9`Cq)bbEB33ve}otWLTl zaLbQLY0Gr)P>|EIrL*q&v1q>Ffh6MRCU zo%RXvX%kX>GcO2LmDgr3-kmpghdgjcR1xG;czGfVyDFLYypvPeZAR1ITDf*L4LKLU z)<}NiS+;YbwqA9tbzKWgKU-@P+sO6XP{XzsLG>BQoA~c$c|jqQS#6xO?3A|B^qd5B znKuO1D@zYki>V9m@LO|O%mrQuSyUupu_l=dA;FQ@!SSU_ijb(@xs(Oa36f$xHyK=n z;%YKas|nstRP(sc0&pO7O?<9HALx6H#7?wW*mGxtrh(13V?(Kmk%mwD+M%uHb!^wX z#QrKE%`JXdGI|e%ZQc|T6!0%I_HGcb(LuD1jzj%hP-d+>xI9d9@Yg6Z-n}RD33fM@ zy=Rq1+z#o6)Q1SKmkWSjd}gOvs2k-{2+!A+eTib3N?p~8l%wWDD8x~_{IXAgzWi^B z?tNy_eNPX5Y%neRq%d|&ZZ@*>n3{WPe8gh}CvH2)YjVV?!Uy;I*4N*8TrvF*J9qO- zYRZn++Y<*v*%~`&4Mm~P*d+3R?`_Z%pMr1vHFNK54muX=s7vN*k5^YL6*W4 z1|Rpxj2+PFu;26Pr0C!mIyF269KRpAR&$1W!cjiFLO~iv3t{BH`s6C*5)9;=ERoxn zQV(8a5PiheNj?*&P<;`d*g2n-1-*f=(9>3fPeB|!Ss=_N{k+P&qPCa~WmF}&$c_Tr zK#ALVV&A9MHablc$D}V?YJFV_SJCq;Bxem*!;j1{uJ;Z0A;Z_to02Se>Ov@7x0bp zFHaextq?Dp>mm8y1Wy*3!fq?kY^Ksm(jp%(v9Z$9(Q?nk1q0j%dEBs>QswFn_UKI$0>Z*E=nC^ED@r4`74Ky z)V;=>6eG4LiLVkZ(IU66^NR%l2TW8=&uah%F>7yHHKpl60_*!2&EHdYXM;B){a7Rj zqYj}JN!Uv}C@w_qI)Fnd`WrPAy{#Dv<(=fexTcO^9pQCu)Z>W7x{`}%u?Yc$zKiZu zcn@sZa9o~33>dsDz@%1u^n{a>#pD}kp11;0#v>w9H@h|g7I&ux3ffi5c$0N1*|y{& z3oXo#SYOL!_l?h*p+@V&4Krj;=(TkwH3R>Gx$f&-A5op&Ha^iIvdI;#YNxN4hEi1Z z;2F9l*zH%%MZw7(EQhT!@{DhjQX!3b;Mt~SghqO7i|)-Hoqw@wSh-XY4jHHt7Y^h$ zl)iMeK%TmyQ?4T++$!VYAJbFqVJ?eF-M4Uz4JY%Z&B*o2)+w5c^mHgGb<|s5SytnU z+%9hqkN?wqh*;i+JANS@l2qA5a?c$rlm4-^0U&5Ak$zK@oV)SwJR+A-Ex9yIJUVJfI5j`+M`Vi@{i5Z$ zE8mei@G4^bAgYHSw~6bO${3`&_b5 zzn_3s3i`401)$0pZv^1Edlg&cRWt{eEkrs(UmotpA{?cU+AhOoC9uxRVo*k9Sw$qk z{y`B`5vqfXs(J&|_?4cA+wJ`4?wYnba8}GrS!Tgs!@;$w4qnHBxtv=EQIADISs$R8 z+dN%1h9fTz|0zvR39%4dH41U9bvffwo#pLEgAe1>JLil#pG#_=Q=}S_u=Q$D zACofijM6n+MG#e#P?-o+auP>1q)DIwqVnc&spA~GX74KTrlXuCz`>Y|Kc2>J{~+7j z2OUVZ7YfS11eW)5=bhkslFy&-1ynz+x}=@R%4A7W}QwZ|*+gHakj^w&M3X+))GPt8VZO638vZL(e z{dnwDwMZlDTdZp(?a%sPqKA0=TjGMzgne_*KLV7iFHb zMv{7uhkyB%aZLGEoZorX?1-f@$1&h53P)^_7oDJs=HlMQ8zSFIVN&3)q#ay8HPpG$6$j0}B6sJ+sz=c+u^1rA|K}|TW7+m5ke`}^7u@nh! zTLD*>wN@V}il{hd8BGuZ9YFp|W=UYR$l~D+QfuEanzFH%-SDu&ARMpPpn_N7I^8EVBk({UwlP{+0<{=Bu|Ek z#|JLCe~i6Bip&bEX-O6~&mwVAF3=VI(8RfK=P))t4F;6@K1+%!e~0vKS<|o(wmiO2 zhT3ntj0L2*INUvIG-3ayfpSWn17c!dY4w~O8e_z0tG`cDM5&I`EWS2 zPq@Lqdy*Ibl@4Vb!aVFl0RQAfz%ei5epr$KG@!eG>scb(+Qw(rP>FcEpUxu0GwjB+ zaWgo&-2!Fu9PvCZ2c=-8XYn-{u8<-K%C}Q&7XR03O$V;uwA4^LDAMGzXTYg{wie=?NuP3fZTN>NEFhZRpD4|1G2Y)Q@`Nvp7-5Mtzf*ruF`k(e-Z7+Yq>4tCyt`@Qzh z{=Dzquh;I+_j6s>`-&M4<71N>Tt=JmjZrNzN{4qBk*svdTK-h~K?~}zh3Mmh68}O_ zC+zaWdj+-fm^ihSU6)=P5TE0&$%bOTlv~7&_OPlTppE76A=`ZclgXIb%Ywzge51@X zY?l=&ylX(Vab!L*DsRHj) zTe;hnmDW{8a8ETeK*s63Zn_#28PTG~x5ATUeHgMN@5$50WS^s_jjCz)*-86IqUkWG z)z^-8Ej8kZwTA?LLIm7!L)l}&BMMOoo{k0hVR&2<&C{leE-zc$>M`p97lq(E9Ht(} zW9mZdR6AWr?E;iV!MDTijC25QQLu;)uFVKPJjp7bVZlfYoJh|)bE7S3dXZXIL@vWj;wacE2up9+_Rp!s6TFOW7heF z34zkWd#L>g%stA9AN-Ly>9gXZ!X$DN-Dz*}RXOvb5BYGjC>p&vzIw50SooW?7x+r}l zfFI464H~U)M*^MiJiPgE!*o37qwf5+owq1uq{8T(=a2~TUYMPd zlD8KcuT6jT*+(?EIRgfID=@r)ds}Wi6g2{!TZ<}v24}I}&CJmAVawA8LcojGL5X=z zITZYBS`bCvm>iz=tZOG!T)bR#fGKWSO{*aszG>YP)3@_aX6hN^bFFKx#tK-^1k^Lt z^;V;Jg@vd)Ben=#QlzbnV2d$H?=mJyJ-sITIDw9TpH(ft;&1`tw0?x&N?1 zTSQ{aDn7iDiS}iMQ+v?4--Y`F^K>&wbCU-`bToLNm8C5QS-sJF1(Mu?R+)Y3>ziDk zUa@;$K)*!hgLDSP$M)v0O|2eTWh(gQ#(8OJ>{rAM#eukHli3QXoN@D+wa^w%^GAta z4H!pq@O{R0GZ$*4AFqQF^|R4U{)u@(OJx(=9Utdq2U1i28k1v-&&zd5>SUc+{ZG7n z9v%yePl_ymGWeQ=a2oo7hBUNSLZdK{M0eL0GTnKyq1l*h{crnLP~AU#SX{&&AO4R6 z59)0g7w0R+YejQDPfQl}%+!t`ocvWEVG!I;? zBt{R;MknMO{|-I&DpbTdupCVwn@DevvxADj1bHH<3-}6W?=jw%NlN4%NczsL8U6T3 z)MEW|1AeKM?ky5nUj}f`hy$csTBy#GhwqDAVy$hpOD%9WY5$>_Qx)Txo+e=2%k%IA z9GhSqN#dEVwc;)qv4}gdmS@h{R`5>X?{HclaA7E2ZnK;@Gn=2*_EsVnAjoWUr3}91 zWNVl^Yn!_Bjr&^L3*&&(T2;(8E5=CY zSk%sq{!BYGgZClCDid|uxoSZ5=tPhiw8R}zSz1J~4mc(~d?L5ZCAsO-<2C>Ol#cL? z>#L;vPvoHvv<#rhwp*)3sDLx$yxjM?3}X~hgUf62Zy86!XRNY?)O6!TY%fG-L&ZA< z?WHIAl|9VJdx@FpGp?V=^a8DXJVA(-vOg@xF3QHIBEqTnC(vo1bv~5Izsv)jcdj%h z<8cY=8P=d|t}O#uMz^4B$4FG?mD?`Ez0vr$tRKQnuryHK35Js$=oog!DW&3&!*nca zp|lXu<{B&SAu@p)@%IQfP*3^=jgsq9t@w%HT`J%;!iSL9Z<6!Q+UTdSPqDt4$+gt& z#5Q${T6LT%R67H)c@cJV#N}{-@#c6?GOIjG+wjP<$j|m-2C*Xwn`ys<_695CbJU~m z=__-4f#I5qSqtNlU+t$JLoYUJWqJ})w41e?oYs9K9yNa6*J>?ihwXP{J(DtaDpM3U zFNWeN-Z=KfOdzP<6-tIy@b6}tWdg5dl2Y7zJhYJjoVv6uMO#8yV6NeE%BVu0i`M9FjKx~hwLW|qsb5E zSN>el{4K6bIlOZW49bWS_WKxil4 zALViqlJIXfu4P`DiD94mpd8wFYJ4%TgZ!;E>_0wbS|pFZt?gf#CuS0%mjlTg7Z!pyGT|JV%vnhU|dk@=TuI?FOU90Pxy zg2JZEx{_%RF@ck(pi=zehvLV$y_61Z=H3qpR;2%!x6j)z`pb#SvznaIu@BX_s0Sks z*4sP;)$N1)sK&U~uTkf&Nm@*GDUn-R&L`%l8g?T7yZ~ESJ55^I~vd?Cr`MKPa0T!kx{)vA|n|>JOdu@I4unsV?;Va_p3Ms=aXpEFUZgqyCicr=5N9+>=e1=UCp!e+2b^Je{E_= zZw3~RGP{+TqZsq`l2e}Hv#FF8x~6YyK!ynZWL$v+)ehr{%-tz1z8P)s1I>{cd0Y-c z#hzHq+vRyJMsjA@#br1gq3arbAXwf=Ry$@M3A3#lIBb(T^C$+Ka?E)?&F`(NN_G9>NGxHNA2Db_Q9nz3zd6I zxt~-OSGbQFz2fEpot}=L991kL@+9U=vnjvX3~$bIG20D%4W~Ik=@mW{E2M@WReyh& z8;Vq|OL`H?QyS?vXTn?tuaRR@Gc@WZ09#zM&@*G9b-f5^$@S#O$?>0A1Y2fqjrz7x z{2Mj00|7q*yg1X0+?bGKS4bW)pQa7XNi}l!<0tO2Qyb5K7q**7oaXT&kicUdC`bSl zlA5A3+yRQDe?|VX9B*ZN>nooh?E!~5FLrV$`1Z`l@3;OvwLs(_5R~94y{xxYL0bZ~ z$_O$Ga2VWP{I9SqeuCTS%9jf!OU>-77^|DewV=T)iu&pWvMo*pBGneC3%oPNCvttR zNiNK=K`HpRhm~(-Bc#RK-V*ZdBcVY9S9mp9!+&mh&e&GtT&o(_#h727)ZJ+JAkK)V zA!+UKO;5bp^Z?{$YTJWV#aoT`7nQZHwn}{gd@BW9tV$REca5in5TRLjX~A6UY8tE2 zYyPjb_9SHUMxsN3t$y^PU3PU z^F)F$+oWCU(Tkx-6GS9b61kIJiI8nGnq9}CQ!f2OW1Y8x(-E{k@ukfC)Zro6fH{+GS> z480YuY>6$Wb%8u+;39GT;e<{A?@kQbZi~=p3I$_iMdJ1qzu>ReHD!4ghUHs{Bkz{n z-co8q&qxI<54c5@_~haIsWZwWipO?=lBiLslJ48DY>CEo5UT|jQqmy+l2YJ|&rWSp6F?cXRm2;AOmt5UX|A zD=o3}{8RBh{^ZwNfMY~~rP%l;GV|nQP{9PkMY^5H)2FAKFFAL&(@Xybz@g?wk{eR3 zj!qY;a`0VA8fgW`Ht_m5Al$`V3c)-m5aD7a?lbXbPpdR>KjfDBX=`-ZxuPSK?7j-W zI$hF}`LV+M8?;0z&QVr86iZua4$(SguFiiMQ1uQ#Hl&OINKjds zyu{s*>xVoMX&ts2Bf8_Uh3H+doFUle$mWldyLa$8Ttgt?kZXwH`frb<{Lk%|=itKy>8xqD zErFm5_=8QKY`D`Ft`&Re>5!jePt(m9df0AZwG3tib=NtAL(@k1paJUxk-`dl*Lz zh4a$thDkSH!c>FWCGB#*2WGpQnUMjhgE<7#`OMosf9d7gkYOoVY2M(^RcY%~H3F() ziMc9bTUolo5a(H%F*MdmH2xFnc35i>M}4V3)}cpnf(8q&YJ=^k6@WXmdQIB4u76)E^Vm&5LdM2WX>1|w9<_LdB)Hq?OKfG^zyB75b@@DD59>;kloDz{^K|f$8 zoM}f2Z!CRp&n1^h497F6miKAI+Q?!fg)yQ+;RiTpsLRHux*j7De7g21&uVdS^ESKtA-H<>bhs}a7f`Gw}jz?RF_{l@=Kr`6Gq8Vyv>D;r2aq6HOR2$~wcWbUqmcysK%v5VlQvNL1ZCPLRueMn zpO6D~u4)fS_X}1WEXvijlifSw)?&Bng8$X^ES1M>*e$OtaI#NAws*}+_ftBkWKxdRqk`1Y5ZBV}hlE0G_ z(+@;e0J;L#{W|GJ9YLG})NoV^Tza3Eg0d6dG!Kp%x@;76KJ5BPMrg0I%%hD%0}-Mv zL&a7VvUfOA1b@Q-K9&Mk5Xejzk>A^hRF;MN**{c&$BQq@*d*J;-_ueKL(W7sTw~_K zw}&krt(#Ky2t6UDwY_b7U=**@rrErxMo5>R~y(T|xNhZqXqcJA9o%?zqNsg_~KFD{57tw)P%UrMSN50$F z)lTK=Gq$$KU7jwb+TEDw0~ZVYXESaSr+0chE--WApdU|HK3eJNV3Eb~E%pU0?_Txp zr7{Y;3ILL${`wXgYJ~X@F*$+8H zXb444Gd^mgNM2C>F3{~$S2y2 z)<`wk3;=yl`dZ_uy^%<7{UZeL%s_w8$Lptp52I>^pv0Ka_ zx)Xr>>72j$(2qvspN!o&OfJl>b%Z9v-_kz>vXfMC%O1Ym)`_%}lkHD+Nmaae+~itH ztiXqFlTJ(eoh0@)aRMba#J+Iv(I1|1DrD6@^$_Rrn7Eq@{}!0xdO1T2Ed&HFK=f2w z+QIu6^_S)f6>hSW2OXlErfTt{HuSU55Ib!cveZs~5_XsKWVRum(@nY~7F`CaM&BXQ zAH`C&ykKKeqw$I}UKp{nR#FJLB49ti6I3pdCg?~q`3KMA5uCh^xf!w9#5+?jJF#y_X z0Z|H@7x96R*zYmT=yZ)HI*{lZ2P@fZPD@~o34hKidu+priufV$2QaNVuEqRMkEFa} z1(@u;m=Gn1S~)j!MbxbEH?uJU+Xhp|BZCECoMsD5kPDNql zno}*;DSIY_j>r>Hlo(EoI_%)V0-8qk=%`IwF=PaZQEZtHoDU`D@a zg`po8vo7_)zdu>AG_{2Ubi;4$Y%x{vz{*=@Rd(J|)eju-t`qJ&C&A;=BU>6qw29Uz z$_V5qVaFw@AfmmIaRe9My2c>MdrVx8UR)UVlY^{Q^q}(4oVKG())Db_>#I_xbMNBq z&c{%t*eTXpn&+Wab{em2wE&zC$VzGLJ`L#_xNR4qC&3TVY9B+!-2%@^qCacw{)JxuIUDpc8t611=L5d`PCB|g6EO3Un#cpX|R{D zt7;%s@Gohv>jX`(!?Fh52XR3;t+rkyjWWtn1rG2}7^Z2rq1j8K2z1A4$Ir0Tg}*wz zN2Q%OWBXQsjH;s^6$zlr!JTo%9qcK~SH$m+P%R`zHsy=})cJ>{3{8=yVd)_1j?vBI zhH~k#cV{;DDa(Y^ocN- z-xLD#dKYDPDc60TX0C1-F}2woJC`cIEKwCFdt7N<)SEBQIleKPnsKs)uEz$d+p2q9 z6wV$Uj&+&13Qi<32mCU@j;)+j`3G6ac!S}Sr$ZCI1trOBl}g|g9jVLkctwqyTY7%s z)5(0osbK}rLF1!n-OL;r%86|ucw7;eL9+3j@>lN_yYeDdj>vx$b+vGmsJG=B)oEpx z)!<-#7!mTuN9d7=@xqW-<(cq@;oKti7In7$!yxVsUes<}oQoov@632=f-RKS?Aa2ila0=m-S^55Sl37S5YRL( z5%|^wFl(lMEMxUF>rks>x^r5&bDUZs>4favkDhn^s*j{bEoE68TvF zGUgw1>17wEO4&m`Ihq>7yC9G?R5cGJy*9QRv(P*Jamd(ip9gk(>yrHe9M(RiG(wTS zQ90aKIdP+B3>dkybt#}%zOj&0?ZNTZr(0Q$wbZ9=AU%cy0w(+-^TNNgw?Lh&;;dYs z#)ukXY*+juk3t#u?`y+5M#aUswV;^xZ$ z{;NwkYOldo!q9HY>5TgCP!Eay`b?K#tOV{AA5Cdx7ZoKiqa1qMJFzX?-UOzosi)mT zK8kWi5ei-jR$Sy78tb>~oV@?#zUPoJ)KRx;ZnVZ9;MNn-|(^7B~r>;uRyP>d0Wp+Ppzn?G};3JiRTh?Hy?w=t;pBMni6a#&UIb zWk(f9jhf+B&?+0P4a9$&R58<)?8BkLixO1iR#-XX$SO6zH+r=@BaR6VQ7~NA3sL4D z5BLn0A)*-DNDiPM+_}<+r=tGWoP;Z>a?Ms0dUU~OHi;*%c4mWArJT`Zeal_Yly26a z(L&qNzU*j)h)UxT1J*;rxwNPhz-L^rM_2te@s5;Sc50VmJyM-@J+5o5;@!6CsD{A% zHLod;U1te1m#l=jU(!|&NiG`HXn4qjR33auNWd7y?TITfIjQXb%Isv=s57r-8#`@- zS^5R_TRPiVtj2U7FjicIS+X>t=j#D)@q;FH3ymK0$E^gw;BYHtBKOC|W=45zjsOo& z2Nui3&A~!Kaw$2S_c-V^WmsdP9(NVqGSgXA=3h9yHKMHxcp^48_$jqSn?*WG8en#XSylmOZ{J@c>)w&#FF36K(aFb!nWJ&Ty~}Ohaqp zOy(!z(KF>qs#azhZ4DW+fo@9uwia24pMzh11Ljem3EY1@(2VTaNp z^}KSXSq@CyF&=zo7wq0cMkuu8y$qk&=SRl1r{la#`HGJA=t0>;X=j`~dUmfl?fRs~ z6BYY=4`sWa$bwcYp22%NqzY@+mDig+fejHmb|9~y>PS_4AT=4VYo)PQe1I0>VKFSH zw0JnBc(`j|IMnEqPR&1cG#D8uOJ|<@(#IM6CWDz&nDCKpg54o4abB1TciX&Glc&J( zS^YBV+ajS%=>ebXKr8z%OK}tUmw!>%j2N|g-x#n}Q6KAd_pW}10{MpWY-4}Bhh0>i zDkx=Z;gpWo^i!S7*6XJw0k@b_stKfql$O50V>*R~C&6yjuC1yMiq_rx&$C5Svq?w0 z*&_M`cmI2{ON703TUFS`4Yt_?#w4WNV#-dlKC@yyHc!H~a@2Nrn(bj83BF^U;<=E$ z=Im4+Zc`A03wsk@rJF+heuUMtu}?52+Zfl)``yq6iJdBV$R|Wv^g-!6sm$)_bHh)B zzEQ9a!zcRmWm3$$F%|h{sYq9j1W13UME#+(GKPHx$Hh%`NuD*9ClSjfqrnJ)Mm4%Hwsb7g!Q!U=pgua z$M5Lg9MLs62KQzwE$Ac;_Xr)LEGyX-ROzm`NDKRDnKPjGhz89KCbxW@=#Zbl{gKIV zVfg?AcJNz>vCYm-ln>MJvhaDp{Hic5rbK!SezfChzRq1*Kj@>{zNk%cx^Xq|J2R58 z-<+in1qL4YlCsoMu7l$@4auqVi z%(2>NXD5AXh=hasIDAokE?lb2WTL}3MS?B|DL~DiCs*~&;fKMLt>M&x6dBoYxTeG1hk^w)w zhoi)ysvXPSLDjWur4M5wsQm`v_ti13MPQg}gtzO6XS4~wqT*P_yni@f^o?UdKHBZ1 zN(t)b<&`Us?WZqB%`3<*dBse|$t!Ui(ZJeKqDBJP#=({$i;x2KCROIOhuBSKDKTB{Ma!lWMTfoM}fUu)sOY9SaF*S-F=Z4cDxFy~E+)8eC3 z%wi=EMe7ef<*NHtsNr8)!V3tLn;c`MNg#6L+ja|vM(8h8wR6|sPWXR%(AAGyNR(fT z79OT{BhI~G;hkmg$dl_wOUf)vhk4d@8ZBe#?nCMB|5=FGVJnw>Y#={vhR!%Ij@Sfy zzGhOHz{03^M)H zYt8ihjI`~>;!}}vOiM&6IBe(o`wX{EX=R%FI`Y@vSwvoPew17~<>WQBU=R9dy9dGy zVD{gCCpBcA``Le2a<8QvzI6@vt@M+Qxg7t8u^+%PG^@=q|NL4_d>G+=8d7mtB^-{f!LVtvw&VeESg9*#IExV@sDc?+s7m#<+f zS{j%ocqVEMEDpyb3??)37W?f&JQL9+R0?V3J+d&RBb|Fn^e7d4$9 z4mc3i%>B@6@28BG!L!vi2peZT{64k!fNBp}nHDNL_`kelq>mo+gdN1`4)o&{pyX=W z?`RX>%o`=3`0TvNeE)%7!olO?DZ{6D8Gq7#b1lmVFV*2$&7G#F z)nN~<1!erFo_t>?;hO)0e@Nf{!9q5%+P}RvYcX*_ThzJQTYv7rgSUX{uZ)rOOdQkZ z8V&Ep$UKjQ;6WeIdcwPljfQqu*dM)SKr$d6bq|}&>R%kzinD9u&cl|c8@#gIDNpa7 z1^rhsyY;R&>0pVps`}tonPCja++PRPSTAYRb*;_^-Z}c)LdFt!0x^2S=u&E&1C4b9 z4dHpvsmBlJ_YrfBI1<}CABek7DT!fn?fJn8MVM@P+vS#m9bLt#r z*a?WcBFVJm0)t&~Hqj$#Jb(J3DiNY!5Ktz;yb^yTvH^9ug6*IEbao#njS6;zWVouY zgR%%}WzsV>Lt(i3D@aqm@p9zrIkRD59FwaX=A;~K2l70EmcFzuL>)!_lJ=jX??N32 zD+?6=pazxAaE?YCNrlpc4=M?==eOQs-Cfq2xo~aFl>JGpF@F{Apmho6-S#8;POMak z)Tl1?fCJu8G~yLjEu0%gNwGcfr`F;m&wRf#+#Xr-t)6UHvMS#%HM|;CyQ*1p&$x$m z9lIy38E>p&9(yFDn4i|HEgLJhGGzcFUw4Xj{rh0mq|A#T$hnPcm1&Q~FEio-EfZtj>Nw;j^n7oW zsgyGA9L>FYzlC=}ji**-9%svZI$kWX<;;5h8<(}v@j3S1 zD&&Pha;tUIy`ia(CQp%-aiHIA_tH9<*E8zb9V#X8k<*gsALM4=!(qb9f^6ayt^MAJs5hI<>0kaK6Gh?3(OYp1PiUqT7+Oed2`S1?yXzwSayp?u>G$LU6UXJgh^gU7`AbjE4R*!a6JA5Ei*?X3$+(3ew^?31ZRkLjl(WwZ7Ax%m z_muO?N>Ps+vojMdXCb6G*!TQYxITYtSIaZ?;B(XI?iAuH2-}*hAUl+^^|p#u%(|QL zc9N5&r{=7=`&Jf9<_L4T$hH4`rNGJ7r3C=hO)ryVqWG31|ND{aZk$RN@M+8om;iMX z8o4>T{wlBVNSMUA(+~P&yHp37xc)R!0hi_T+R4B|dVjf?E67eh{M}kEmRs4SaXh0`tYbK5 z>8LXrD0sP1Jc=Lm$_XFjKxP^ASvinn+kcVzY^mI%As#xi0gQMBL^0>XprAUhwYNHkfU%jk zQ2*pJm;)Ad%_&aYS->KPg)MD{K~c^q3POmL@YnofU|6B-FKa9IIgrh-ajhB0a~8v4 zP|p$d^#LxH8+0Vl!2lZ4_=fart9T_>=QDBRw0Ir3Ge773u+}Xe=9a*Zv;`NmH-_|t z9G{zl7j6sbvw!RUD&{RHHD=}3WTo4%!AwzitRmCSt_dZ@!q98d8UVOvmh4GuH1ITY68p|fZi4#6E{HiWJ=zF zVfvqE1G>vN0qn$?yU^$!0Pb*JRFVL_`lPLvAy`~D%fB!q&#mCa9NNKvf?JWguVHYCI>CKCcA8~w7Rl!X$$?Z1)hc9OC2$ff!%gSGDvLhas35m#+^1`wQW9doFTRZtw`#D7Rtkuf{x zzE7;*OD+|>E@n3EGk?4ByKs$`+3w_C^acGX*)n7wz3)>BK58e-OICywxpEuo`4OlV zU9vz$P1!8KNnH~T>J>08C%7;Je3Ha?2nsIK?3wO!fJ!R&HEYLh?DB%;rJ@ARBgUwP zJL8WTekUch$+aSPUwpH}V(6|JR^fobyZ-RnWv}_wa`*B@J-y7FlTL_Ji&n`9qa4-| z{WB%Po>Mtor-AZhQmFaH3ws^v3tkTZzw=t&^eS81#%KY& z(A9FdIVDk;K?~*a3Wt6S)!;fe<>@Sj$CgD^u zm#?XZ>?ajsaG!MeTA&8dEJ3uL-d_eq+2R{qIb6Ub5q<$8DPE=qv4zqn$VTy}rN5xx zu}eCWbm3AAA`jOXAFsaG=@PjwjCgAzbVu7IUZy7Im2h*P>v@P#HNAdf}59y1nB^;z}>w913B+>-H81{+?D zk3b%{S5m{73)C~EPMkQ{6B(g+ zt_r`?0?{X~mjQ(mvZ+blDq)g;sV#jICaneWMw4RaS;BP}R`^MJiC-OI2OHgI%r6~L zN{xN4ftmk1aIVo8kn89!9{mem-$~x}R=6i#je-!fhAU8+TBXV@q#huf#;Z5wjN&eA@Gb)_q_f^#kdQ#a4;DvPFh534E!YLqD(On%#i`4R96 z%uyOAw0Jy?oi1iRo!yARGz5H@wpXry)HoL`Fy?JxnmCoWfv(0jy&0&xxCd_YFsuEZ z3O}wiOC#!IORp$1rUa!Mg!SpG<(to^Vz$v~4?TUriAGa5;IxPeiyPhqc4~R1YqCKR z^@VGn8{34}fi7Dh_)nZzK7t%~G;#8@uUZZl&|JcJ;mrL}auyp35f-F&r{%%N9|K&F zWwgP^KmyYm8Xnv9ijf9uy6(xS6z#_(W|n0$oz^teeN_Z~PG2Z%rDVgm9>*9uuCbRr z+4!;b`wt_E&6N2UwSuq@u}j!PPBWev_Jsg*M?UUHm89MxP-ezsX^1*;K6!(nFC6+- zQ6${GM^nbWHK|Ja6`^xiQBq+YV! z0~xQ~tBaUW^bncS^WnC%j^TB9GC>01Eb)Urv;ofj_h5*-&V1+464)7n9ko!gc#$9e21?ISdyk_O&7L(c?O6H{v(<~_dmarehJXBaIOP+My2xxg_t0ZV`1D%xKv;i>xnozUA*DIZ_+99< zl?JGu;zjz;Z76h<0zfdt5O<6_j51{{7mbu3sORku2D-~|WQvGTxO+hiAi2R^8!nX9 z-0S9V6xj`bx9ilo-{wAbY-Jzdz7Y=KHfwK02OIUYhMy1zdR%swleJoGxEza+!|Ob^La}lY;c&IL9nx>@`(hi8T(}tHYTV*J1A*+go*aR0KOYx&Jh(3C z!H`t@ymuqqSj_JFlKsoR%#ty_$dvNz0@&#K^rl|{CQ%;yvI0d-kcwaj+pWLqEW!7Oq_yBe4B2Hx6?2Rk4o8-4m24NI9-)DQHF7$v7OWG;y3bx|Xg(>yl(YAoF)qzE3)FYZJb=Q^YD%Y67w(A>) zgqF?Fk`3%4Q+OK5Sl19}w_-@f*gradOa0raQeVt^>0$`UnXMR3*Kju?HF~aTh^BY5 zYL}HoEk`bMB4qraNzh!Qr;aZG!u3NuAa6+5PVAuK_3me}1no#(&b~8|V zHZ8_pwzz5ai?FH6O|PAU43-$Vhkij@0Ql)L|Gm=(=gTOO!$n^Tj*yLNtSoysHA zZy(ysbhh^{IBwjUbaqQNZOD;?2kz>X-dE7>fDzBn)2_`nhRM`>$ZSvUOVYbePtgg% zqDV)uF4YYxi18G{>nxFRvTv}pKhJ?q<*;|bYru-7(NOZE0*{}TaAY4dMs^iiQJZ2% z(_Ym!%eBn3d-N>V`!UsGtqw^+TH^k8FRL{-n;D%d4W(YrSRe-6pWxI4UgqS7;M%HI zt?97)rINF}MG6ToY%n^ob zy)I_MPB-r9qJ_Vm?th2em^L6wPM<+Uwk#EqER{iaiaTQ~Je&7hb~&W@N1h1dhpc>f zVeqfjxr4`yaBS_9{901CRA9@Cg_|eE069~)+1;q7^PRrdQN8Vt~6RD z;@)Ucn!YyGw6jK0v*GE&jI8*HJ7V}z35fU90J^c%QkO;~5P za<8it^P)wRyYT{kcP)QUX!h5%>9`wbu~gj~-!Pc!tCNj7n<{n2I@i~aQyu-YHBsy{ zH@=a+FMK2mKAZ}i$Alfd@e4k9bs`*bJ{Uv!eT*3!xHlL){5j{8N)K1DniM1}@0f`= zQ3t)A4Fu7vF2ZjX#NhFdZ#;0s8=K2)M#c}6Jx7iZ(#fhfR-EZKrh}SP#A`0pqv*hS z-d*AmihsXNa9&xH8tiZQjgZ(K9!a>wkH?Tb{x3IXraDa{`0MuvJ14bbIFnt|Fd<22_Ce4^UBS+WbDI)bHSm(yJKo zKe&ziH$wi$(YePn`Tzg_^RC1@Nu`p6B&ozI$#Iqx?+)mMa@a%;Q5JIAY)i^HQfWC2 zmE<@=a+nD@GiP$x!W_4m9qfGg?fbj!#%=#>uIqKVUf1*Wd_5kIJF=mvD`uLV(o*)p zuP1N%%jS-i z^6S+nE1B7`?<8`;oEIaDCE2#LEnM;N1@gA6%S~4d>|L8%mOl}fgrv5`JYCW`?)O;BfsW8Rb&D<-8H!h*7 z`!~_)dzfCt7kR_7ic^+ldJ1;a>qbOJ0eqo-A^JwSN}4uwcKdAgYtG;BHOn_g(t!U? zC5Qhd)Ne(iKlO$`(AzK#`PEr9vayZUt(QOISYm!{80){cfq9aglxGWKf>t6+uCf5T z7fzk2Y%x_X#8K7Q!-O}`P-;m#-0eTddtbUNqnb^8#~ zAnSV;y0MDXtPYoZ)PdvdU-_#)S>1dM9}l_GEHLI(IFNfADkpT$Ec6;>5-$yiWoi+6 zK4ftA7}qE@;t>Fby^4|EC;4gWlAv#eV~=gileIn-p+?)K%AlaP%k>yXhU$Tp1CqB} zfLlhANSlw|HPM|u7LwZTQ^OGBUx+LR>0`)W>~~dM7MQ#P{{_g<4R%J1ec7)lRDu*U zgon%s6YXeHJknch!9$Y!F@p6wiWxB)^#Fua$J>!~1|zYa)5`X)UVZ<~N_1eEd7}+d zBP0$~z3z+how*Ua<&{TrjD_;}0(@h-*=}r_&a0AI<7F!z0vr7eP~gHse;1kryGW+L zM9G0R0Gm#rqbInvK%H2osmiQ!1N(XYjPhNry`yU{qo=hudX<%W7Q!L7Zk8Sp<+L2q zY1WBt>Xd=YFrV{rm% zTMx~rEf0euDuz`*W}^MhO~0^I_OuxY*QCuZTdU?N&myg!{gN9@RIJQvJkk{^Qk9Qt zF4_x9zeZL!{FkYjaXmIidQfH<^T6H?aoTu-mK%!zT>)Qqe}bMXS_+}I%djMpmc@-& zmlnc~)2gD|7NQyr`PFzE@RDQPA_ok3mM%izoj85CDr2F1Oe@A&umMGwzkCHYIL_kJWrP1Ps;RM93|*mQB@ z6Fz&sKD2B+sddjLXRJR!l=X;y^O>KKSl=xf;qsA_-*T-$OZA>^rCYv-r!0vxW+}`I zxaZ!{N@vfph9lBIXVLTd&hZCWL@u)~wdro%wnd3{J-9zvA^7fNg%D8GRwht=)O_QA zunPHvYA+p%L!f>L!?~l@(UWwzY5@3c>2-_8nB&Tyc*a8VUPrfmxb+j^lnd4t7m8uK z52}X4E);J*2)&v7?^LrIvdz~Cm7Vx`?UqRQ$F{|=-z&1%zion7(b=CGWi8eE9i-s(kLN1;4T?M9y9 zZn!zug(<|6%_slqarlS%b*oFj@i`Lgh{RlGnq^k{=+YGr;ofrhYs59h+)ulQ-NxBb zc7~UzvpLn~(nBd&wDTkxR9>%%(5ia7yfyVQe)GTiQ=lCU^Cxs=x#cllc&F&|jF-9{ zo0s&TWn@U=%DOsto?q8FY=ftD4w0zA>^cE2BYK(jkUiztk%#QLR(?r#)7?8+c}M16 z_$MYj=EH4K?V+EvNMQ8ZH6jT&%o+_O3e4?q|!4bs5oqC5J5P1D$(V89yk_%;?TdUU`$I1&6{= zaTa}7?~0gxJ!*H0cI`gB)9nx`Pc zTwQvdCs4dnVTYy3OsWxW5yV)0WxIVt@gDKbg=?Gg*}MnWAleU?wnm{b$GfXc;5|OfP;ysCZ#3*>i*4)P(S#@~ zO0sPCG;caumhkvI_%t{Hf^8XC^@=|5i9R$cD446eqZhQ*2YC86tCt{31Nc}yGxW<1 z+*vj%YQ>0=PHEiFswV!yR=064Op~%V=&F+^$Zq?AgD=5H67pIzy6jxuLMQ=eQLmzD zYZ**ffzeBFOAGCDnDh|S^yhY@wUNNMKc&uxb}b53@LdjBd8I#I0U58u>kqnjl29iw zsd&%DDQbSwa#B8vT#v7s*gPXxyk)b#4JS>{U<%-{-fR3BFPihz0waUjRB@qrTv#+} z8I@$ZS@bs>(-A~|#9P`I+;Cea29J}B0j~qyFg6wIW^6H`inz-vKKGgMTC?);!TABB z{Z{zf`upw~R{rOSyI6Wr97S!%xJV#JthO!+_(!Af$cN1e-_9*>!EO5RYF9Iu4Z(lM zGMFO2732A*&&~l9!I0vx8!DY?69sUv%K|IT)r54jv(97%yK3K|&Avd(j2JZ^EnoW6 zSW`r@AquQSEAm~N$mh6b<&Sm0l#7Lvof}44-X_dMa|gsF5X{QsWL{_O!`J+3Y*25> zg7X2?62UnHB~)bJ*%JRXX~7P_35D!+T+#0+T?w2&Mf08+Mr;5{-@-)dqAv0QagSyl@a zE8o|pXWv)utl&PSK0BQ1ZaY+=lkl1PA8*sHmA>Z$eMF;>oC?+@IL4Ki%4lNYeW&=j z)C%t*b@K!KXJ;9snrX9ZD$dy_C=*X_j@?UAxn0Oe;ECh zCtR+e^*OBx5rd5C1T6V6wP+yjM^5!MN^oM7-WmOyAbE>|(7B?4SI{5j!!WsV8I$B- zZ8}zVt3<#CV#D*&@MQkrxMHO${(s1|Euv|C=SRU0I-RU@GF10Ea$gM&CClMx{u^zvL8bO}!y-?XgA|;yMzfm5>D?Wd76fvifVmFan8aYt;Aj7iRWX9f|&pkp9 zaMxXyw%|(1!ENVu0c9EQ@Ssi|Rdsxl@Yh0d-hDy^Gm7ql<4;>X}!0^t{XN z)~e!b_OBqI*FU}1otRAzo;I}P%CG&p-@ck>ADwQNQWv;>svh}sdBp0xR^t=JE-ZZR z6z1K%%V4AAL_0`QQ-m6;n2Tikf&ZO7==$5zW2=UO%>?#N7&QMQ0drspG7U2ZY26HC z{ZDdO-ANLkoBZ}uQ8P4DNQTJavD;h5NfGH(^Bq#b zQt$N@i*2@gvIgZA?=5Xx7PhF!Uhl3|FnyS+@cWB&pQX=X+*1a}$kfI$(LPyWc4KIq zeagVIrf5z$vQjisqpUb8hhNWd%7S=O^h?PI!HWSWrsOf7QcC7K_p1-Cn-q9^l#-)x zMevL!sq2QJ=q+~;3)hN*_+~U|5jV8M=xYT?3J9#rg=XYkL?d^2y!C0WLH%mN(qBOs zx`O?XlYDIPbc|I8fblvDM7p%x9Gl9vQD)nqQOX(;Oz{8xlnP_awGO)%N+vFQC`pps zXLk$cw4De^1G}_I42$p_lxL@C`4k_O(G1E|O+8Gxdd!Yk$|(tp1|UyKE`d0zHDc)6 zh)L5m3B6IMMGlqz#cn{Bq6TXYnL~}~Pc*7r*JI;sE0%!T{0$3^M?b?8KUPMN1swGY zbkSHB3HU>ZyEN7IYD0flTM%Pz zl6CMzDtc?YHNKX>R@S zzp@lMEq$;7RzK3=*Z@&w2y5;0{>dNRba6WNw*Bel~+m^_$>u5Q^Xf(d-5j5gUtobdVT znJU+T(u%k-*G|(a5I(Tha+fU~Twbea9%{lcnMuZJ%lsl=xaA)Rt2<4*LmwVxoWF6@ zvEnN4R1S_<`Mbx9lxez)sr%|nA97|`%$>U zN4L_!aUegZ`z~mc8-kCMK_PVPUdW^1H z9?)FtMPluyRmJ<$BNH09pq;Y@gVZh~C16U9*$&X5--I_U1yxaBMfQ{BQ#X+ECOUNZ z%c$jq@^P3f(d+AY>}0^E=JvH>FZE~lFZCJ-tsLhM1^PW+5xBiJ|8cnsxl)vakC^)!H^VbeujXg`-;7WEz=%z2~m zqaAlK^ORipj9=3Pq+Aa&457G?Ni*@{66jwpN|Cl6&q1bvJ1$m1pJ?Rc)BhotppHx0 zk4RYYgQX^Cf>XdO3yL?F9w3p%AW2#!V9A$eqxvz|#Dr>30PPp9bW9qQXv8*oHg*OE zjybNKcd%pq&HS{q0Ley;nxCwsgR3wi8}~WX99L3GmDagZ4$z#o7;Oo=lR)7{X^%6~ zwbw^>yeHTwyyvRez2f1eCsyJRvV42nm$_f8)k)mhJkIwmJspKxpEMD+kWJYxsh$YqeQ5>_)^5ubtIl_fUSD-gnIa&D+Uq3;*C9?h`@h#UaO-sMX!1Bx=^1nM8bBMnsd?@8s; zx7fGY7tc2L{#^zrGo;CjDQSG<{!TIZ(F(F7DpF3sw_mxEeHZ+q-KFvN>xolSKyA@w zn@ROI&+c+%FkQD~_cquP)MJ~ZW&7H9!9OcxTjtF_*Ko&7UXl5?BdeK01zPh#=C~b0 zHF}>pN^x^}Cdu8mv`2VBq#6{jwcnqrVi9hwH&scRwUv51dSZE3=M|0((W9OFvzNQP zgDp7afR|)R{^pgb&D1wdn0L|1oVW-ZW|VBNvXV~ux0_N`p7)9z^@blfKR|a`U;rhJ zcs)b<|5#6X5i5W5QXpdR$|RU1etCQ{0Y)KLww`+J#)hU z-x#n_w8y7=(0#Mow?+xbz@JuiAeydx*<5|b)_iptN%7PFkY7BNgw?VB*xmQ^MRyg; zR3?wy#7rFCiKlszlMGh=520z3fM459t9#q9_Nj4kc{mA@z!5jG>`N8+VU` zM_bs}J9BQ1ZaSS7aC6bybMpZJor;#s$y$tDuB>0Y`NP=KB+@Fl!|=#1s2mcf`Zm7r z)ry(nr&-upj#$;k#rcw*ewAv~2%$uOhzq&exKLuuM8*7eQE?=U1%5-WSVlq%fG|bzh1mw%byAK}AWuS{om_2-H|^CJ{1MF7GfU;| z=p2!@M6SdzCJl1_=VA2Ely>EYOknOdv}X*H^Bf^;H_p0RV<)$yNX=8g!}l_mx=Skb z?$`m}CAO{J7C#*#8deH9mUqy}k%&7J{vI!O-6+HbAL4(D&- ziQCjBR<2QNv0gbam(QvmHn_VLZAd>weu*nV)*toDY1>1MuzLdtD9ocNAEhG|P+`go zAkG=irCWk&EhkFHadK|96R@*#s>SLT(>-VY7P0!sIle?7g3DVK)fn?;b>TFZE(v6&wiNbE1c_m{l;;}TO z?1PJS;~Q2TDOrA6gJ~Vg-S7r^;au7y0yE|i2A zMmnrW#sdAZ8gHC+zv~aOB}gE@)+5ysC-3q^J$=qQ9UEBF?8dsmuoi_$uSrgEzlo$V z_;#)KY=H`X%#3UgFW3q%5bn>FBr|R(f2ND&o9QIuEJM*1>6PXs(0ti>V^*`U$+us3 zYU`Fo_))v_y$i5w^A~2%f6rX#KM|9-mEC96Z>jtsp8>jK6zO)CtpJ8~zbKFRBDzji#XH-X^dcVf27M*UkOXkU?y0DI)lCCy z<~xv!Lz95IOY!BC|7vU{Ax|^5r$Lv1SiSST%TRg80ACzXZ3=aWu@gf)O~L)`^W`IR zzE|gm`VC=D$A@EPPjeYQ%jbKgueK4MED7<;CPv8p?RP@gQPE_JsA@4K-zHblr zGe*Ym!~f0ljY54AADU9c>Jl1aIyRRmS&QO@@ho2qprQVLr~*F26Wq@|Zsl%A|7y?&S(Mp!n39nk zA{2A-=$Vs)A-XE?;vw-y217)nyv8M@ka{PrRIc>r361?L?fo&?`Juzd2c&awe}# zSvItz0K3Oc!$h-4w(`L{{c@BR*Dca+1Ki0l~>c6vAKl=Nb=F~x*Q-rf@ z^KIe8W8?o^@$(|%ycNUe-DKyNMeLN3Ri2E-M5%^N{IQkJq>W&Sonz6ky@PfD&ifs7Mo7?IY26lUEny z%QDgb1F6U`TDEA7$Xa9=Zw6I|=Yt%faO{1G6clV33E6b>%*%)Gp9NI93@)nijMbJr z=HkoLF&JO|Y|>lDkK8uMo4UVfvNo$QYXY(-VsRosgO??_f^TzR+cAd)cd8HUM#dp8 z4M?w7FR4Cb9HC?&9IGu;&81#BI8^m6PWHri%sSo~ynI!o#<|o)5IpFLL0d$YJL|2y zjhzUY?QF@lTQTf)U3a;*Zy~D7RiYKT;>yQJZVtKfqkI0|3S1P>fV=9~7pfLO4-ABV zR2UGK@6H4C2V1Y?bl;f>5Z6Y1r53l}ikxyScO3j(R6sxf)Gl4qG}m;>u@lqy*g#lf zG~Tm(QoVPgCu%p)ue{0dBQTBgU2!A({LMb}E_U;wcXV->ew;v*< z<0B20Ezo6)%^L>=E^f8X1EgQQ8w+)x{hC9{oeik_c9iY$$7dnGD4iepT%nB_tqqKl zumrUs9_Plq^t3DQt%NC@-g8fa3S11!{vmbKr+lSdppH#oGdAyrFT3({ZwO~6X-)AW z-XWQ(Pq)H324|9l=)v(;e?rSY?0>e@Ec>d&6sHhbs3_je)An!6JtyT|)bZCg6^O$e z4VCep%|Y5r!_1$~$%?><%j`J0j%`o!zEBlY4h7%1yaML5QBO5svpn4b?v`j~*zI zfp+7!eNZsFqk?>F-&N$|HBrB#0g`{eO9}fz3u5o_#U|xWxJI;_VtC1f5%iGGQMyTj zdGeWc$!ngY)#cnP7s@kOR?=J4_nnFQ`-`-m5H9NF{R*mUNvK?gIsfLLrg;!bczLmq z!Bnkf#Tp^_NOR7oWbjK)(@*CL()g}h_|~AS@g>!>HSrPH3_^xUbE|1sbHfL2VZ<>0 zu3nAU-brtZL92tq(0E0yYfS$2#{AyKuIyEVCG_f(wc~mewIUJ9f-qS`h=t_d&|Z^O zjihzy$Eaz+$;~mInz&r#Rc@)ggIh6{(;8HRHhqT+5bg6|7iMuGr3}f3pEpP{92e4n z0F|`-l#~0Q0I$$0P9|D^h6q=$;P=*vO~{YoqpjYS{_6iSavF6AThw^dGT)K(z79XJD|gb6m~COXl^uWz8mgK2UCU`jhSB z;}*rDq)Y4LR{l|nu8P5VM$=zaSs zgZb)R;bIPcAgDH6Yn}QV=7opt71MxbWl9R>@EsECDv+g;dB`DIB2Iig=;?OGT}&e6 zPSm~TiH^|ldq@H>Vi)tZYFzEN%IwD7(&psWzS!jMJ5v`wSDb2Vk}luorJsFJ4^8xl z1OHllzz4;r5~Ub@+1lb%AAGw^hEi92+_1BDGHm7srUCkIFXF}~ZG)x00rZ7^JnW5vC-y?QNqsN<$sS>w}#}+0_8zUtOR{iP#^aL z;(?j+CB<~Y>0NUfa&J8)+YLwlYK(3*a!XkWb+qYn`P}NT1lm45Zoo6 zpBj}Atmdw=6eV4%%pv^_Oe8gbXsWGH>=h?JLfo^8xc6PVEJH!)q5g&iEIRbw*`A5IyslRgz{R=ktiIjrkF zZM=dt^URgyKoxoBHU+%}MrzRam_5v;MhFJOzT=DA#u=D`wux^3;K`fKjtdE4--A4^ z45rGyUF@=)X)fEvyrC(RtF44lRd?Zt`F8*cA39SPP)Di(PK_Dd3p*t zTvWc${AYC~s%N|##?8HoqApT+scwAp)X>HDJPUYkpBtfmqk4ImFu)q`7QWw9EqfP6 zYxd7AOK#VtkV7RNPLoC+am30`iu*l$^Q$x`6F<+F$PQqpX82r9R6gn9>D3)NkIl$o%m<%jF$QOzU9=xF&R9hYzABj(sXqfFU~$gp5n z)AjLUiZZWOa7BtePvmOzwgk#1ICBx%SoJyRDTvil^}^i9_^j5JEpAufh~159G0X;6 z1ys5*rRKRmHpthCU8V~yr;K-pJ@EvFsm*w%v?ao#DCSXk3)T^4MSL+qaDuTm6qbVy z0_)M!#ycxre#+t2%TwZ)&rbFJ7{NGPbfI6aU|(Hp$#|g|z1>V~wsxLv$(S@B@80~x z^I5tcZW1kaqAo`4_2Y#(DMK$!;QLL(aLKsKzPU4yT9g;hVB#G_+hxKI)kmsW!2OR@ z$`=Cp;gXBsFj?kkzQj&e;H!iHLFv$CLYEoxI7AnJQB~$oQcbs}W=I=Smtk=SN$aFJ zwB#Q=nGhCjax`A-naU~qbe((DMLc0Hk+Mu^&G@+qWfjLipbc4)@Ipu%e$-|K!uu+H z6L`M%sU&lvRd6);U4{CIrA+UK$$g;^q#~WJHP*^cit&=p5#@1}FMp)ZL z`Db;j8#%ZGc{w@9u|lUx#k}Mdy;AivHu9RGUi7w>jq-`lcu`XRAgN)FA)1ut7#YiLd*eeXt8xg z$@cnzL-Ps5nNLcPW%u|dq+h}gjVF(X1ex?Xm-Np>S|wx{Zn{rpcdSA7ha(wU{3ic&451#FcZZhmvJ>WP24uw9mV=Jfar zsI7ePL;M>kJOLIkd0Ath~H3Q{?qKY1TQ=;H@Fm*$iMg2S!{3A+-2{n;Fw8Z4e%m<}(oW2kNmWq<6=1 zW2UcfmYil*JWg&R1qgReG1O?XknWtXc2>}IVSW#o-3Vv6v2>9hkODM6DVQc|cqN5$ ze*pw>KW9n#T728`PSW0@%L@oD=`935Uw7z4Ds+{87r{=BP7Ds?+^Iu|%ak=he+eQT zoN+;!>7G*>pLOF#A-IANuCxq&p#&}mUTwx07H(Me7 z{7SmII10=Dj9UQ2q8cy)b?GchUEl+oIP;A3RFPXMeKglh#J5|p0hBrx{=g=}ml|nL z`J*R$2)){xv~F@UW#MnaCe!LZp=)yn-(7?Y8-=Z6J@SKd&d|4dG$_mZtBYYaS17Wg z{p2hZ$Sv5_f+_a|vcCNf`8#ICY?nKMo22}r!s?*K-wQagCwt)l``Rw+3QsnSIQ{G( zt^mqZ_%WF5)}0PN7M`5is&!&Oy3eC{rSDSBB>5Iv+pqESt)v6{!U22*1jjlrxY(nvVPl~9I9_tatBU#q4djMRCTiCJWz}v$ zX+vHXt*tm#B9dr5t4KBdR5xGLcJZuM_2y*%*k=gRV)GVk8Ah}~O~C36BZxLQIrVgP ze|Id=Zrf~FUXS$NN=FsjyCwhi^5w%_5vChZbvvS~j0Q*>V5}7C{ROPK61e2A=~&5X zjcQ-JLq-cGnRP>wxe@O-PgpO&H~*Q$GWNO*C%bRDlgn6dDD3q39SEGIa=EJme%g6= zguRNy-M;-D_}^T7fXu(q_Y3wbfLdd`fIW6YmJ_~PyXl5 zFK-_kNy5#?S9wQW?&sPKzB|!T1n-5_Bg38);tW!Ar#c5I(?7uL*I|20kl__*Aybk| z8H+GWFu^IpbsZ~~5jj`crFq9OsYU5^UsfDVe_IA!FGo{C$BcONXkVNqrU;|sC}4HD zG(FGjP)%rK&%-u};QgJ+0l3>D@NWS9dBsW#vccvzYZ%td;-3@E^zzOYW^!c~&)E@$1KLrGvHXqaafPF8T7>&54MeDZWwISNQg>g}t zqV34lx;0Za4HgF3A}l98DEbcJ)AZK+xFv?ji-t^{um}7^OCRKI%5MU@i02n}n6D-o zB&zjyFAu_XY_p!c0XLOd@DJkao#R z6z{4ky}McOGA4_HVu(xE=#crktfNhSCjhP7cw5_t(N3R_HsP&5nG$I>!oOB~?wf@9 z@?^69S0roM(GMxWs52sDujx61hbb1n6c?50bztF(YZogx0-Wm~V zTWY%P5WjavpNZ(TEg|#-hoY!sN$_~-{$vj<^C;QN&I=HF>>2G=I|;Eb$aKtcrhG_4;jUP2LW?@Vq~1b@0PED*DigrO*hq@F~JEt*Yvy zA+wK8r1|e(Ue3I6+a^pM7E=4^86WcNgm>Dm(M#3w(z!&raV z3Ow+yT}3?TDNv^WIT`{ql!BPISg4JWr1d=~q%Ls98l)nl2x>FnOyJ4s1`Qk3d6Q5U z;vxEO5pPe!;y{9>RvNMU=Y92^r-vGM&IG3t!(1*mLmL=D`_G1t#LHQf7ag;p`YM zHl0Y%Yd7!c9e+W*ski{H(*(M0YcRM3|Fw0`lMR^=a&GHrVyKR|7wW{(I;JISn-x(X zu&b3-B951gzp}5XyBd9$``CFwpdfl-H&~i-r6zyFMI*Uu;cnZ3DY4r|Hu2NaqVp1B z!FfvkM{Am89A5OKom8a+WQ7|;>+Vd{T6Fn6(~AnG9?j!ipvnriO;gHc`U1OXE-@jR z6npZjM~z+;DbRD?6nAQW`ou^;UK{d?MR*^fClS zBC_Du{Bih6QMfrhj3S2(Lwp#5_9p>vlMv|m1!y*mf&Qc%n6z5%b}5CiL68lB1| z)N<{YDZa;zw2!~sJ+j;D&?Tc*I&z&W7UznA%T!hv*l&P8z{e1Tn`>d^6iMjp1Y#D2 z0a5Nd63M}niM@rh7gRi|eeUzzQ;;nF?dZMyYCVHRsY>qE z!|?;pIErYd#Zw*c8~D$!YS7UK7H+{Wu)H^-=QE%E!>N9qGZ|r>-_>pv;UdEV$nU~Y=m}l0H+pa9 z&)!OxM_>G=HVr?|yt$r+k1n=Yua62dTdndz9_DNw>dAq)ctY29um$=jO`hp8m=#BH z>!*5@%n*`OJ^M2NwcKtS7bC+z6K4RdQzx{_jtneJ3}K`6UEp&R^c1W2t$Jm=`=XN> zZWvv9AhJGV1p}D&!VO)UzZvnFMX{xF4y|gre9gf`t1xov6GK96!?o&bRlm8qdejhJ zT)dW%ZRf=P%s9|<1$h~EyEc1bjIA^4P3)Xa0;5W^rFBCNLp0uglsu)h11({E2|p?2 zt{X13&3L3p$+Kn2!+C~_KtqsQfHci^!*8Wl`E)J8uSlB1P#2lOP&%~V2EXZo!j<~o zLCS}MG=O(r4>V*k>%-In;o_U9S=nG9pnc>WA~lahE7ePR_g-lR`2ydUAJ;4_&BU4+ zOwyic?$8V*os-#laJ1mq2o+60M^u=4Aa~k9HSLL zUYfp|E^3(%rb?qe!Vt+_0pxB+Jg;u=7QlbiZrNosCA(nWYb%>{c4IgCz!jiXK^UjI!A zLgEH^i_I}a?snQhleOh3l6wHw?>fn=X^G^8dwt`KH2yf6sW}EJup@>F$KNM+3a`_+ zsj+pihnsYA?WIO#v>-@QqFUq_Ivvp?!cV8*w&iW@G zPE_X1?_Qnm)KWm$0?@Jj?3s&pruJr(xtAMsFr6(<6Q;mtpY$?K4yN=M^U) zTpQu5+Ow$#s22980Q#*=EA{#HjYD}=v)^34Tfm-0FpI)F*B|zrgG&DN=9_1uKNF!w(u&Rt-^(d-r~cCp2>Bmvzyip) zNG;O%4>lLmt~cj7Zxnhae1{Rb3VQf^Un)g3)Ei0ot(?H^`j?H}xJ-SWlYr0AOSg*H zD_*rwlOAVPWrytG1B*QImCps4MSyCqT3gWqik;#Uu5tdrZD_@A>AL~2FWq}NH#xUE z^eVwr3s@YP39Q%$`Po+y+oL2JbvrJ8`RyL;<@_(LJKsux3obyy|^S+Gq_&M>qPH)rwT&$7Pv z`mtTFYJ)sRy#O@BB@eP8Rd=>JMJn`uIIgL zsCPp=d7wwN?sWAsWwpGI)EB-Q}$48?J7;q%#U{~ z&^RfE)ywd1Koxxq*Vk||>Q#6W%<*XWe1!k^1@$Q<)NpvG^gZ1i)SQe02fXv(?k5F) z7qT|EmDzYzj_+&sGThbmorkhm=n0Tnb{^8~EVqvg6^(SKA@c<9geHGB-y{AP9;$o< zxAeard(Dfuq@DBU=dK$;19r9JySH`|Ocij;`Ntd6^d8=BX1+O2bc|Bq-;ci#4C0>= zOn-cZig`TM3rd0&cz-hqyYUVPDC7SF+mN^CMC{udWxp=nbqmY8Om)ebs&LEP2b?Vx9wR@k z-D85ef}HuoGYY-1`IT^dpnCbQ%Ub<=<-Fb|H7hhSE!U1e$x8HgKD)5T@axR`k#~mq z?n`ntDxtUD0qH03`-D~Kg}ex}&7)`|`rDqY5*^b0-TwhXX&JXb!lbWj`BwqWt^IAK z8+GfasC|%Exzvy;?D_A*@6+nD7|D%ayVoOpCPuJt)lWd8wk~$&T1D8r6QWXAfEnb@ z+5gPX&HI?mqQk9-39}{HLwZ49XD;rC{Z9KRUpU70`;x^h)?8!)sZNph>y`?*p~W-{ z;HLBZ-KYASok6-l$&asVamPZfLfqcrGzajwZW%f>;DpJ&g{9Yk{@_#e)Z;?Sz~8w+ zpn4T)Nq}13YGW3adnS=98$Ku^%%0P5F?ouK2NgcVtGH zSKfdAUr{>!qmCZ0t$t=9JK{WY+WN5kGkio~)(kwY+c7{FICTvLKWaZ#kb7X;b{(pT z_(_l!yRaUt{|Neh;#Q2m%7k*RJtx}Fvs|4N#>>?MhgNIe z`}q5KIpszM%V+s3ct|Hm!}6NDKvNgLc6I^`S{Q_qsi}%vbeh-kj^f~sz@=c53dg^w zMU~NB*(B4p)xHTuF8;b!p<}}8!32HhPMktr$HkFuTlpve{SqSW;y0k=2y&WOQ+g`C zA9fbWRtmN3iLB_xED!L9bFlG{$Md3q_u{JM!sEi6fVsf;TCmxE?8HzY(f@nr&=(W4 z=J&XwcZm{rdI9K>q8tnDF2uWcB9SrpFF79vPzybTEW&8kESQAZ4z5rC zs=k_Mnk`toVhulBs{bk16_O=BDs-Q~vR-iD6@4swOR*Gvdv6Wir4;fam!Ug)9e2!s zg22}O;)kAxiVDea=d1-nAul`Z{-7pQr8mK5c)vA#){J&NR1Asoc_aL>*sd!)#BQmz zZUk?y_$~b#R)Y>jR5k<)g??L-& z<-wmbuYmM+RpAwwqO0D66{IBF`F#Oj+&xc*>wh?>Dc8G!5AqqbD)N{E?e+3a;+23nZ9B0hgHDRO5mIrGHe#bdk&%8mk=*^G(o0Tx6n-p=xS^}AA*?P6!J@Dz>_#uMXY6+;@*y9e3ocn+Dd)mlOqj9529QbbvdAfEjo($P$C zSlk_n;W=BT^x@URIr0a(aek~>j>j@z8Go5^c}P!xib!ICLQ0!H3XL?SkZbbW^v!SCqQgXz7f5Oq~s_^vjTDcp;&GdWTUlY|8VEU^xWeJ zSrOv~<7>&4j;I{i)|58rZFL;P@SdWXoa-i|MVajTknkYdB65CdPOq#;HuXrY3UL_6 zM}W`|?8gvWRk)6Wa#P6ntAUIux08u|5Qng)l=+FLJEh`Z-@r4n86Q-X~xh+L&vZSC$&a zy6)>xB3c~!QhR9)CugF}xQK9Y(8Qm<_1=2OkIoPwydwpOo{n-8;TAbf+TYO>5_t0D zOg8fuPAt(_8l&3?{#w1yn?_5>>+z6(S6AAcZE>wzPk{2QVZ@mCrNBrtyhX2j5Xl<@ zQ&>#eRe*p9SRt(w{W28EN=T}oonak55YzYdaL8*H_&(Zijq9+EDxL?G&0hH6;&|G9 z_lff%!(CvVqLdVZM^GC2vus4Ju_Gr?5CO?ivKzsU=XpeI36FO?g6R7Xg_~HKLz$*U zoy$zaMDAEzl1(&#mGf(kc|T?}xp9hvp$>jcwgX>tF`)?)k$X1NX<$+ zal2{8qpqHTPhcvkrssh#NnQfPQj^MdzK>5SI;uGFy68pAN?~8Tpx3@BMH3foMo&J$ zT1a2_0mtB9yX?-JlnG!Ng=VPCrhs}N-9R4_lm=~EeBavuGn3NUFsd@~@BH$0De!N` z=npVe=lF-{{GF96spy^j?!=cf0pQs?4=0{ zj@AhlY6mEIgc%-Get$q17vPU7>-b$9$A2FoAM7AvgkZeu-?2Zs3hq2bQ{n-QMok+) zp2e+B%WsX)dSF_j@TBCpG=-ltRhh$mZBj{k2)c;3)$;ThljQs~k-UgJZem#1iSIc+ zpV0`53Y)vI)L`B;BQdmsEAdD6h^|A6W|JI1noAU5yGw^VDwQNwNs_W6Nwe)PAt}41 za#w6cEW|=in{BsFlEV^i30p!cvYc|YIEP-u%%3cFm&7V3<6a^c3}D_6Dg(R zOp<{t8Dv)LP*o-R$H9x647F*nag=S7J!m&(Td1c=TFu?+1BwTVyk%#Z;uCyhv2IJ8 zlI&Y?==)RdI(CsoxcmKMwP(S`=<9}x={xt5_Xwj*szS--+4jk`6xzN>V@ ztW$jEYYQGLI@lUi^a~f!x3z}KPj(v??^&sSs)BKxENIgr_d3Zh;&8esFBWlilX9b$ zdmZMyW_@7q1#xQd>Q+65^6HYLZ>2+>fVi#q>^Vz(=1}-cb$|8^NxGpODehCL8d|=6 zmtAb*nX=JLSFBOuk7{7Z38V)}LZDs+CWI2pfnG5h!Sd{VUP*?bZ+{Lp%X zP7*X^rvi2C_Wk*~)jefykBt@^+{~F4Zc{LXwUTk;lx9CeyP{Wbl~(jtcodaQd3x6u zxq6FzmHC>~ul|xvB#qq~md!K3#75wT8|0zcn0sJ_>--8n6iTg|73h zL>~+G(b+zI#u;v_%AbR#Vgvu}!i)anwQG6SW^?7_?|j+^?V4;ec_%w;`g?bi;=+<8 zUj2sOQ0T4qp(weYj@m%G~<2SlynZXySiY#gKkF z&n7P{ZWz$g`XI8glTVXA;iUb;9g*)tT~%i|N96l!PSfh>y(|k@KGBG>YQ4k&J1AB| z1kixzK?af0!k6$%gh*YQ9~@q%XgMu^rQ1U54O%N@-g7^Us*Y6C?pwzOoFX(-hq*gQ zNzf^n;>he6Pah`e#?%ugq)Pr)8HAJ#yPbc!w6ozW@H4_Z2Et$8 zT0`<~{`P>jo@W9W@yp91r;Zht$@+)uQ^S;vD`kB{8LR*!5jYIdrcAnmrKioEFMfm) zz)ia(lMqu*5H5_B8bzxCNG6}KuVMjMA64q$i{fp+Piy>bw)`_SiXPl^1&0rBy;4I( zYu#<*_un?{wMa(es;Iqq$|;cW)AK4EzE|7zBeg)^A5rd>SF)%HA{ z>rmwhIo&2s&~saSJL)W2H6p%=GvIuJUzYpCm(82#xX_9ow{ik;Zt;5=}V5oLZ(RtDSv zZ*LKUC8rhXs(lzE`~|Xfn_^M5ZLx{;2F}~UfzjVG`RQ@}NU^@kT45lo?;5L06`o6% zZC4!7d>(=Gx$tWFhN&&{L%&1RB9ulmnXR`UWlf;$anY$e$@Ilr@A(ODyKKXhSB;;G zah|dr^bF3vDR7D7u>YAp!t&K!>qvDyxv~mc08`n{Jp1sxtVIt;l2xA)usFd(ni)0X zsvKHZwEHnH#aaAtUzQC1N)~`|h2Q{7B92~(2((|gZ6xxS{;Mn#Lj_+Xer8)s5N;mj zK%Yu&9bU4duC*TppUzMY9?+hmM6|d7tqDReSgxWj`C=Hf6_k!PGS((!C;NsUBvqym zFXA;|+2friDFrsEg17w_g%Fv*cfiTyFD~#WH@3gn0{v1i&4LFif3v1|aR>td%L?C6 zpa$TKH9j&2w%5gMef*6=p%{=Hl2L9bHXg!^zo(pfKqvV*eb%}2R8e+aK)pT%#j5dg zweja}cqFQ}r@2D@**jJH{m&Y#+Y2`DgJ9|JP_F&9-&5Tz0Q2OdfkuoEFn3$fO~w@R z>PB?HM#Z;+gV>%tH+P+{W>&)exj;*T#`!L+25L;0-PX1haT6CJY zMPxx(0^Fn8_laZJ4WjT zdmVEfpva7D{HAhPKnQ}S2Kkp-nL4i|dzLMbuYzCLro=@yb6^d*I;NXs6hz} z)kV8dV}dGy8=|TdbDSM4(^~B*2@_f+k3`ouw;e%8MR-&L+0Dx zh@J65_(Xz9zwn$wE;kWAj>LgLk)@Q&!#v)TU zuBlZbA_=l6m?7)Z-v2y~IRO0UdwWrV_}$Ggo1<2@n`F~x)$VrK-9k^|{zWLjt!(x< zW@1#YqMe!cj^(q5VZ|%hSMj2N&9nCHJwDbwez?zdFS(xf{H8pyF-?hCs<4AG6T`Ot zxI3#xV3ep?Da8IqxYc{|;CsPWb zQK=N#jmXBYOLgSmqXm!H&XT@P?r6?Ji@-&^2ZG*1kJh(UOl96I9P`qRNgBTy2FVA& zBu{PRYR<7LI!YjoYDW^U9I%M0YCk}RHPHV4ZL#G{JQ<{(B z&#Vgv^yo*R1#iwBCD}n+x!9>3@l zehcFltj%(`pyp+mYmptj>OY*1+uuN?^ro=#TqIcOGx5D0QgME&=dJ#DH>1G(#hZzrFR;R{^73y2({Bd4{L6LJ`Ms$x~pgG_=#fj=weY2up;iRNg z#HQc-MLXu>F^)i*4vj+k8^WXBl;c()(o}a?RW(}9UJotRGP3$s!jc)OAr{_+AI2B9 z4$Ze-8M?c4yf6RO&Wbi4wupQbVtKzER`G`Wt&Y@dDNY_)8VWa+{@ZUH<=d?%9qo}} zN2-h6#_KANhW0w6bR@POWmba;SyKi&G37-xb^el3=WrPil@k1g;6m$3n^$cNn$&yXe{|JvR=AlZM7-qfmBq&#hVk;}gH!#hAvE$k&2)llDDS0(6}_jcC`vNfeZ5f^S8{OLVU;8%961(nPA9 zZZb}Bl08XPPz^aD?Tn~yn>KY6Y5~4-T0$%$gjNOTpd*Fp*rv3sV&7s0)J@D#>s3Xx*>#?(A z%W-1PdyeQSh02Z>y{<5(ohcrnwgf+j@xe@FmbjKul)5Tsi}@Ik7v2vkc<1rZ*s>~J z!64OGhSaWmGc@7Ka1+Es@79c`H~Ty5PXx>0I!F4xx+Yi_+;TH z8}p^El>|V7?||O51`<>8o)Z=O$!ZLH&|-sX8+H-e^5kAAShLgMxkCJ``0k98N->x| zta~mV9etu531D`rT+V0m3aqQsS(XQ!a5LxFZU!tiRpU{SCf;Ck{5h;VLY`o~6CYFf zCnmwTm-IZ@1HYE8m7M>E7;=2th3gbz12B6yC+q6Z;GkjW;>5YcYxutICT?rhupX2k zf9)w>ecjsu{NSDiR6~N}R*iX{?RI9LXpTh2Ssol)ft`$X9*NW<|U#P3rXm{(dj`mpkJD@`J z9B~cTHQ31?@&B9_bW-?MZMamRmqc(@r)(+{9k1~J;w|&BsWO#0^oZ`D?e`BU8}uC% zp}|Y|65xZN6^yL#Z-#r(CW$`Od1~6)2GRAvRpY{EDKbYbnR)d$H(sd^263E{J%S^h z8T&Pa+@Q2G_(_szxYy#ltJ_s}rC5WbsEx~&IJ;6X3HFa8Cic)=fY&Q@_725~JA;o1 zuEhaeLP<3BY_oTL+5`v#)}P5=KQqS9ijVosb;98Jho&IhzIhMyN<)`0%CLg)1Tnf? z1DU!mKPH>($q}Cxyz7^laGhkB;+BjFjPYer9tAMfmrObc?n;}pdDOUA1v~4eh26C| zMbG-tg9XQCGV))+^ZfUm$QJoQUWa6RP`l#fv^DPp?=z;GV?hVi(6vdyh_ID~JnB!J z1@ubPRs^zE+xQsCqK^8v_{Uf{t68-=7D$WCSoc_Sn6u?#3R}b`bKzWBm(b?a{Dvh< z++Q+7z>bPeEnP-WObSW2ZI|?oo*===ni=gq|H^{6RaN=yq z_+<=^Vj^kFZ~=N-2yUC!)c*XhAd*l99J3PD-@P9Av;BLTK@6NaxU}?#S9s55Jn8bt zd!a?eQ7Ao4$-Q4ur;M=S_RK#ha zllEocX>-3NhNL>F?vJI}04GUofN!`Dh(YJLxmmpnt{NlHfpf=_q3JTx51?(b|4gWWc=w4GF*7C1Zypx|EksFlQ?gLlS-}Qf>mkOq%uw$R55BI@!(nQz=IUtCLP9=K3nP| zbzw-`3H1!T6F@`KDd}MiRyoLtr_2Q>6?)=s0DarjiV}#u|93#u2HBQ!F@UN;DNK~7 zpO+gbwRzfUN0}s3MZX^g_g1>%r=-=_EKHh6t=FjqszbOz=l<@pq~c~m)#9L>)I_-D z*0PVXW++%Bj6*~`KMVx1*5rqwmEZ!)u|+7K#88_xBc;Y%F-tV)hZ(;n_9>^Z-so)} zs~iGu)}|#ie8RWE4<3Cq@1#6>AA^4oReFl9_h{!__{i8BDCJZq|7cu~woVKu)RXyR zIDwTUFhNLFs-XN+^e&?pRo&y(oxD@lkEYL3O&6PLl8B`m93y<1pmE?7!}g09RO9w; zK2&%ZTp2#Bz=H+pXV#Ee1{GT9dWgUn&pI{VYd@-@m61&=0O)DlaK;4i5q;a?MS*cO z{@r|+X0E(7I)x5B)+ySrF^%%_dB>VGxG0g>HVjq){`kE-#)Z80Sh~}C7gl^(-a*$K zp`+&VVxDRCLrJHHk0Nzfb%GE>isRgY|#d8#)!OX7|n%cs}RjGjEUnU8sAVPX~L zGrY24`+T2sXJjL&{GDLcc4xC zXHxJ+o+D)!$i&SxaK&%R^6|A{2;B;Eay{5|HD9zzAiko*)oTz!n1x9}T#euDth~aN zKJ7;8)sA12gsO%cNst?Mn8=DAc)B{wEh>+7a_@rW?<-T!8M6%LM3$Bd$(Eh`cF^~+ z5Dkt%_cnCT=09~u?#&GAcQPb3zT~fo5kBJ%l1|yUyowME7R7M*50g?;VB34?g*WeG zqTcy$8B0R%AkZ;9{-#kWnWAblST;k9IY44sjIH>-GvS`Dd6)DE~G1eS)zGZU|luwF1Dy zrv=qCW*C32B}=(!88>xJek~$S&>Q|a&D^o(wmPviM!gk_u3d+$8cTao-ldFHv&9YE zT`jFL@m+aRh6bQ2RB?Lw(26VDSkkAO=sKa?jkT|Rir+Sdg?JGq?}RritGON_QR3Hv zT(YmRB;z{;9(T8=K4cU137xePwhvW&AQ8`Xx4?m?4S0Teb@MdGhWf z*|VUNVPMO^!TR;dvnS<5Gino#U{m_NY31&oxX*4il}%EeaRZrS>`CEyfAb`%A*gIv z>BAlO6tSv3?yz}bN2^}2?z2bhG5bV~f%5RX>NQHAeykb@DXUgNs8N%vsABGxq7jmm z`P)gM?0MCOh4A{xlX4Z+@D5v1^V;w(n+F8dyx;@WZL201u|?2s&XDq7Ib5COI(G-9 zICTcxr_qf7BP%Zm#uRgMQ#WHL;(cfmHaJe7G$7xLq27o(KI;iHgjD6<&tE#z>|gso zuu!m937uG60OxDddM$cdqDHD({cV!ZbrNR@{XX!9k&|q#`CkqT?o!uqc$|mv^!zmH z_UXkoou0t1jbhiRL(}_?WoM1=YLB_{ioVb^;N*U>s?7+88ACtI8%{r-$8+X)^+Q%u=QVvseCk#gVo@kY+PM_cV>%4>OF!7%{!br6aA zy3!f0?o@s~ND)-;#Sr`O`usq4^Ijr=`lSg6v&EjBol7f8giL8TfA}!)VUF`R*u?GC$m$HHSHd_`X+G>i;F}d(n&e-3Iqr@37B< z_Yi&z%k~?=PHFuP`!PIiH~ByH`0pd`Q&I>@TJIO}m7i3tNisByRrWurn8w8P=QyK|Ofi2DAAc+}3&{C*K+@+bk!BqDPa&$stD+ zh3#-JQFdLA8p27EK%)#rxDS#^Ec9m$2Y8mD+V_7&^JN+Ab0P-*X zc0#;=)0$;weqke_eh2yrf4{8uKKz~7`N!YD(U+8V&AF~i`D$f`z<4$-w*~T?QW(=? z3^)oEoWr%)EUuAqS<}w2eFqbH8*+`oFNlx4OLc;zzg!EsuMtU1ktzF@=34~l6(#xt zdqDX<;tch{P={Xh&sL{+Cr*dISoIRjXJaxw!HC8>C zh=5--ov#>6hNlnv(O}2Nf5Sd(xuut1pY@R3d>KQsj15y)xCE8ix3gx^DYr24fXe~1 zs@_lKYqBYBKW^x^Z{r%RAKW`H41WP{u8DruJFoSTB6#*CjpT@v9uixIZ4RroH9^ce zg=Fr76b>djT-}RfAbV-`4PUGRA4r##kXXuV!#f=5aY)JFiYUh+i5PZ92|GYgv`zDn z%7`gF=^>6*R*xT}%^hw^3%5>^78{q3^0}GGcR8w)9Fg~v;`!N%HEN>kYJu=ZJ4{y> zcXG!o>jYs5tYKwlu`B~^?;lEOqn}Yrtj8@ryG3qNya#Q-=)PFkh%6uFhN_3SDnLOg z52!xishPGQ+gm>(uy&nk&-r&am@m8N#)&WHwOfdM6KE7fK?0M4fVDkc8xZd!0hOD< zbB9OOFfFB)$8%bcQ!5O9QS#C#mvG_`q%G~oDE1VmjN2;%&z2RUcu6)siE)H@(2yVY zq4NLXUf_H0WP$f?7N~y5_oZEj_ zqf=bVJ`K1R6(%dOXe)?%hTcOJaC2y}22sgE2i603f97GzVetVWf^2R%W#}DVpPxl6_)Le4t_3j zF>-}?F*eg(R_vv%fjf&#MXw&SrfPN$HHjXQ{m8F8H1_xo2Mk+z68wWS-mG}rv$36x zwui&;OVCW|X@?%%Ghi1k8FK_ZnN-B03h=-uM{rFKk`2IHL0ekv#rSPixmwB{s{PI% zqHe>VFB5D8wc5Qh=Uk|zu>+eIvT%bz=wCqHxzGs4JB|A}=POqi7ebLAHMV|9!`yl< zf@j$&UY0I~_ge47z)4Yo&siD7c{!BCE37`}$?d5Ehx|#IsVfP)okYMi4X%g-ZNHa5LC{BTn$`gR*t& z)T!@pr8f`FAqI~#0ERUc@OjJUir_KK>2EtR273cr2m_%zsUqB)N|^F(Si3>JDkiOj}!tGMmhq+jK zkKT+i&5jmgyiX+${|tyA;JRqb%|WkuTWbkf&qZypNLE*})+%(_wtWzPxymG8=c-q} zFz3|-BOmfn$#xJ_$h`zO^T z*wVES`F=%aaB)aVM^+9knzplrN~^+7npy#ALHrrLQNs4J5q^H%#sC36=PXgjvQJs$ zt1c|l5`3p++1GmFu(~6Cabsl(vQ27T&Oq0wm}X=@D$~xmUt#kjLA1H?df=%whIA*k25N^yi1S5ai&6mR5s+73-aB1~+!1j{9RojAYwMa?8%vkoT_G zVoYSc@I_pJP_biO=7mJ#*=G;*_%OUKY?7v^1vj9OzxCz=G?EeNj-b?-$_RtkS=SL^ z?|4t7!}n)I4|bAA8yvOtFR083k4l&Ge?9DrN&GZ1>@_NeukD-4Nbhf!(Xb=MFRY%N znAIlu7notpc3cK0N_LROZh80#3f=ph5>8mDL(Nu0jo`8I(A|q6Eg%~Ha<#~|xfhh( zMImhhn-X}-U4~#)?%5hGP118_cyI>Aj0n;Nza>nJxa!7~^^dZHj^zAo%KJCi!oC}# zx4Bd29`wn1&Q0P4%BpTk!MV~d3O7^GGty`wai7`+At%V@n&L$RcJU$hTX=<)m0dV3 z^SiG}lC;w#e_#Wd8a(In%a5Ip@S1ukKVID|iQJBB@o>V8ln*C-xyS5+6AY-?39Np% zs`VRolES<1bhbc0y7LH^weC=wI`|8Sx^FXDV*TxJnT z&|_delUy9CAP6Z}YfB%T8Qh+F+qZk#?QfjVMowBxkA`jFfm`Jx%V~9c=kDJzUA}j$ z&xZgE?6WfP#jetB z!u)qP;q?qK4HlV-HChRk!_ZkcBz0wozZ{R?E{hRoobe9LW9*>w%iD(ngc*g&0~PLa z<6)gC)y&Xj%>Xb`tENtL%t~%B+x%%f>fJ|oxojbpTccRSGP*SuW&s~y`_h$|5D4$k zEH>RoP^skzllOF`Y3YijgfX_{0+-Zli?8Fx!)_ZJlFaejkg@*U`9PBLsXUryP7Os| z2l@~NeUWobZU2u3=P98$s~9|s#E$6B=W+gpPdk;uEs{qg;X%m0 zknkq*yWP^e@1E-CRyi}D34?`~U@9|3mc&d!cMOdaO)&n!q_7&&o)rdMAKX`1`X{>+*+Z_{FveLAS@;l!ft(83vEHxM4DYT}OEXR> zuln?n*tVk*;`Ax$?T~%5pEPrn4{m`}48>!C#PA_-@z^LCyj6yEaDmRg3&Xgx)%_rp zbGvVa>;g=aV+4qyq_~f^bu>A9n5|n7T9mJV3dPJHQUv<2@Tu|67D@7}F>%{)0yI_1 z%P${`ymRL=uJ3ldYxnILtt`6(uHAw2lwb3wG`HA^U2j~9+T@f@Yf5`d!szl1MQdR- zs9E=DgrVDyvE{zk!R`6(36Sg2w8`Z$4&=XEjt4vg11si>Lqz3cGCD=%S~Q6qMm_ux z)lDChsLsHq+~~>iu5JHQ3jXXNr2p0oRvS1@iFfl(C{hlu^2D`lmMd;ev_NSvbEca^m#~WnI<)0nrw#qw z)%YIrQ=N3c24J;Bs4?UvJQlRAc07ecccAvhj%Wq*EFy462vmfD>)xfLb=i?)aX zs?&HdD__y5Wr7f&=6_|=KT!-TR?)}>b;DNKjO|;&(VOHalqq4xP*ladwk@KJZ;(T~ z9@v-G+eP^T)Md2VC=;iqYbn;P7p(qPjN;zXV7hEC|JJU0o4zZeG+Q%__+6Y0wO8jULh zG-RD&`h!`gmusmUP=s?>j3#re)+L3v} zG+LT+Ky0dZ=i+Ar?D-x0I`7-4-%H_YdckdtmqG^c9xnTklt}_QHgqK{B)K@)9^LQzq|t4ztSL`KHRijyz9j+oHOvN zpf66Xbi`A|s8df1ur5%Q*V!@C@en8rX8-5GoK({PH>*~ehmY?+Fc)Y{o7pcY z+uBSn`dz&_d-<0*RDW@np~f`pty;M|qGx{g&TpL+BOphu@fY|n;Z;Gj z48b8oj>?Jb#XPF`0~7iGvY@G@bZ(@`6*Yrn?^c#I;9yWi2t$Rq2mDmrpd@Ao>&`Bv zB_Vod#zq?SG{aU^XEQ*Rw0%u0e<5SQxIc(|87<#x?Ep_-w~iFAbDpgvu71ow0nIhl z%Tcf!5r@HRyJj`u^|YRX#*=GkhjObOn*}uIDigzkcms<>7G=7#K@udSWLoh|rAK*0 z;==cqXZ7L3;eD#sN_27=1L~;wSu;T5=Z(xeKo8T&^InXu6AEOw9dIM zKaljE^O+dY=Z>IDIeBPnQs^pfm0p~-wsBU2dQh|1x*|}$b%m(R$f!Wuz?wv`+=jRu5`hzkRXt z&&>jkT?#l*ve(ntGZ%{s*crB@?x0|NE)F!G3^66^?yX@x&?+ zWOT>FYpvjVD_M|d&1_zYCYEX7(Dwhm58hygeWW$Iovp6J!8{a>_F19u!k$-jD#Xg&<#)vtxH<_eYraNmkt1Pg{N9+~k6h{aKs9q8cq@ z=7_^Dhw-FFBedFw7Ues1&GD>aGcp;%?)Y&IC_FaGOAN;8C%{9`pnttPCOS!|>;79a z%oF#sHbH)HiAlPOZVwVq>cgV!{xMU@4Y zrv;Oi=~x$;$^yOOMcS-9Rp-|ze4$Xi>+x5HhVfzc6mSv#||ul16)MZ?SjrQ z!Bm(|OIV*1=#?!VnIe;TxG>569ca>`5yVTYn7P&9&`J*B7ebihq9k2~hS?K6$IbD3 z%3In}@_mg}zH$R~=LG;%R^)2n;}8k7COCJ;@`u24e)P0?_ye#v^{VxQfe!RW%H$q) z{CSGspWv07Lmmo$7Ysbv#vqhC@d2m$11%pDd+>+_Dg)frt1d;qHt4iyxz_+b>O{5L z#Acl>3DpMj=q?yqervlAYKESY@$L|=4#qQ7hV=DA!etFQfvR*{(yH22RY*c&cjKQ; z)c<8XU!@niCM$mD9IpD(Ph`xYMt#Rjm?g<7M9EEK#uh4@Inr_W61rEICA2wnwzyx) zN_&+Rq@G+$_0LD*XA-lbP-WU2BcuD|`u1C7IcQ*6p&8a6wphl~o!AKVyx!{YBV+n{ z{)EG_XkkW`zG8=KW@gEqmt_le+MAcoTCzUB}T>ne|3C^uGnWG>`W zfHv^Ul%CrIdNy&v*2wTR%9`~;s$CiA#&djjh;GYkzHVBQXP+1Fr}M-{aTe|nXAp4- z(Hs5otqQ=#254seA88wYh%$I024^Bg{5Qg)sr zK`!6~Bb(%HD!Y6Ie*bg_hywwAe;avr&qtMOSDD*Rd#&;wI6`lB)A=3;P%pB2F>x7%nF0IwDdFJZ_W=zrJJ858=Bk-qc#3B=b3@uiP z`{Lai>^y{0uem8RjJui#0sd0hu~ItC5OX-}1b42Q8FmH5F5&LEN=wH%-wfqJ2uo%d zh1(NTW%tC8H>u)VO-`IFyxb!!(-^Be(QI0i-?0LeKo?6G4#nFA_?h3>S5M@??-?mm ziq@8~tPD*HGs}}6wJm|$gH{$V(N|VV__*&Gxb1>a9(BM$m;AQnRf9W}vj^JSq^L9Q zo!98m!@n>9UCwO5bw%7%{3jP9t0Q2O79MO6%`3_W7sE=rKdOsPf9pDX;dTdvf!`{P~;BK(7PPqu51m0qP#q|EZLs-AQ{J-qUil7%DYGFUkf0 z#FZ&gHlP>Yhqz3Z=60-Xdq%nrncLQEiq)j3Q1SltX#x=6iT!+TkuJ7bpZjd$sVA!=X|C>8EOOvr zKnoP(&rS{K4^TKE;>s@J@!|}b6DV{{ai~&TI8E*E!j@#!NU~n1&WUH$ z%Cj$NRJ~b;DBq&_marE3)7|acKm83vY6;rFCZsp76)$h}8DjdmCD>S}@!uAVG(IrY z6K9kIQ1O_C2SqSndJS7#0?jJMs8&7;5q;CnAKevg6GH1R(x|?M z{J)E)Zmd~2t0@$|W{M~6dBkW)(5Bfr`p5A`>xs;kET{4OZd;(qQ6GR{g>!)XAro9nT&6HC!%@)t0TME9r*0itZk0kK@ z1Q0}6`ubiUVsqhrN<8^KTv+}Vx-UrPtS5a8;zxacww8Ttw%~lPS9R|)rkcY$%ex?~ zX-AYOg8_%3i}#1TVE`fDAP=|VH8U?vCW+3W>$De`$qT)|$per!qjXk7c8C^tt-O(#~u|5`91 ze{7-7Nk!+;6X(z)dJ7WNMsNmqtl;q%1ptq?0pE%3(xJvgz4K z_0;vNL~q(vmZwJ|w~DCtT*)S^d5@ROqVhw_3Lz;0&8B*kokm~$Q?e!FgK^+%NQH@1 z>;q=Yiox!LM@%mcG9Z?@!$Bhd)-zpU4;%T^veIyy*A2IkV7K+^>D;IJoffw5Y6UX) zg2O?Ac#bdBsJKOF<*OkW(C-Zizo=zwEn_VfPp1}dljOC5g%LUvsdD1P0={cS?3UT* zHND7LY|p>C{O%MVFajE3;!C$(!10SeF7&gyP z^1*-@)5V@tIvx$Xl2FFI#tRK05~Ch!(PY*s@+n(iW8Nu&yP8~Z&@ee(@x0JL=6)du zh`B=hcI0rW81>~m~i16LL^RPNqZa?~~X*|@>{?`8V8-JlWivlZt zya9%4fbr2{AYSCAW!Y6dFU5%QfykVBVt<25!#Zt^GQU17`=9T8f1n^rjd6nnnN!J1R)}li+)&5bEc?tg7!BhC{vuM-RieKpV z7ey_BL)SW!3%?SV>|Lpq?F_B;*SP1b?G>I-ZrErSWdk%BcNHxTWJ~&p#zRT)CqVQN zRzOxmGu(PxZ3rit=&R=P_qSgXna`R1Gt&F(-`%uxv+nJv0e7?k)v`ShH2>vvmtS^#WgKxg$4Q{_D;tIpR%Zig1Tyi&ipJ zb&4|weM%G`lSC4BR#dk<1ZD$hOPh`XlzV19iJ#zI{oq=J*PHeCsxbqM8vLy_+-4qp z_Q2*pRDT^fs{DCA7BkXSkyf0%wpA%iP~Wj5spR!x{(r>`413*=Ng9W&8A$qFJ7co7 zR*l7n6rJxsW%Zm{2KjHo;$A9qqo$<1*bG9cc*G(uD~Wy?AkM_W=;}WxYXeTyW^yMb zJwNXZ4L&U|)H2k*2GzDY4EC8W4`c0TJqQTRbcBsQImx(|@ol#1g5idv*oe|{cdgsH zYln*$`qjH6_?jq8k2899fQ<37ps=ioBl*`vp)ja5E~DNqeSL6$<+ z^W!^Bw*OHgGzLfgZ+1=di9(J2z=iCSG~M>M26P-PDt9;y)JSY5$7hz?=qR3**IKF0 zjhcWpq2|HGEac3vQS{Hsq;0=P{~X|zA@gpNbd7U#NLLSdt}$-u80^}dJJU}WyM6~n zZIz_wf7BuV_;J1?h41VI$t5LXx$)(Lr7`LJe=WwNz##$a@x7StBUtHG`Tk=MYTLWB zvpPf4$vX`(gw20Ub>F=^fqYOO8SilMwD4(@7zDqn(ldL^FZ%=I==92~F3(@0`c2L3 z>NHa#bbYS=k9|! z8&|9p7VB{<#%9G(!^HLNDFyyNX~ml=ppc)Cf0X~5-Sz&vYwsmY?1ia)?iUozdkRUJ zsg1_aOO*J*&S#^mcQA-Equn-H++1cRuxs5PuA|hb=Be!qsKE&BiNfSMgXV1HNtxf$ z`KA0qFLw<_m4cNABj;qbsihSLhoQXtYDl)VXEUfA6|nv}sTb0|E^rBCrg?xOn+TPa zHuW}+xJ+CEwD`aI31Ti>nB16$zju<0!1$eH!4&9#(E6%5@tVI?x4kn7u=(mf>l=@T znovX4qOx9kAL}~w)N_OVADKUQ@Di{u*KFxK$VyfcTr4XWRuN0?Pn|Z8ht?q{AmRh- zYb0B4MR2)}s5XN^@2BVPTw>5#Z9dC4tV@+Ym2k*w$oVU{W~V@!Wr?gcp|&lJm(SZX z=ODJMK597L93V`Z3|}o+fcbMIwu`&b@|Zwqx)1R`)eE6NG)Oj> zKZC?yL64jeV$-K&pyfH%iJ+^pc=-VRRd{3Cgvng>aHCZ~R+ZADgTEJX-K?cmUb7*3 zHI1se4ezW4x>BwihFp~{$nRhb{!{LmRyP(C{{eFS=UW(TjZ)T*n7133Bk-;E%avMH zyz_JAzyy7uPZn0w5O2{3R%@HoQL8fdQ8YX-R{^g7Z}}01`QO4~&_V+B3{Us&0{g^A z=D$foMWQnd9uL?!cD<-KO&PLzOn2l*mRp(PJVt+vbXnq}7S;V-+i;$kJh77!lpk6f z-gFrcaFTYPuVKya*X{cAkM>Ns_k+fTL;0e8x@Xag-3x~HFXQ1Q+ZK)5av4XxDpoMd zU-i@~Y*CL)1b3UbCm27|mt(&vA@fRu^BiQjjTIASD60&MXD^PAWQ?apq;M+|S$TQd zE$M>LFy$Z{Mti2V`rjY?O<)Cj_Qdqsf!7wXtoT$8eB#hTQ;a7x>KMBH{(^T*wnIXv zP+@7_(mGHWI#`9XiSM*1VYEgWdTAouJnlV+PI_TKqnys- zMNlAk*tadQjw|@ zQ}Nw=yeq5`caSVY{quWN8nDpm$H!;$6Hc58^Z77V1zXN*j`=X%bC(BFoRBWR5YDx=OZXG1Q4#v)35py{Mb5ZzlklO%2S`q zqP@i$=0C-CdCWI2qAL&{1c-Mo7DeB_kYH80{$#@kvg?z#}>>PfUWhZ%Fqsv{ZaU@eR1eKV}Kx)f366P`~ zXwf<}aD3@9;F}?M9o}cLl1K6qy(J2@=T)#*s3B}FgEc>e2L!#N5<;~rNrDtvdIb;a zon;I|X@6g?yR51W@4k$oEf_*66LE@&jDHni1*wfBFC_&Q86rO;^Qr>3;rwz{lyPLP zXus}wM<>eA*1lW)BA5$9*7(>(fJ#+;?L%*_u`(dzUo1H}Nhm9j1pFR)l=8C`ZP=0U z=v2vlqOfJ&gd|BtA-AEzav};GtP(4Pvi}!5rC#feQA2b3tm3qG?*~O@NThzK9<{OK z=vl};va6>FYrf-01ki^cF~;reD*iwA{wu1f?t9}$Un?pqDoPblQ4tXkkX|ApAYDN~ zx->yr=z$OtX#!Frf+96EDbjl*8Rza?pPTO(Yve9_Bx~!fZOZBc*T*1XANNd37q6xPJ=?xK} zLu_Qr@qL=G{^6V~<`g=+RakI9uQ4a%W4WgjC9$DkBJPPK*;v1Po*lM=#13$j5B3`` zE`j>s261c-Cmg7vO~;~|#41kkto5(TEzovI9(5cobO>3nJQ23nW={?Z z#6{RN%AZ!b0i|rDDibrcz`+l9-O+$=!Qh6pcqTDy8K$u2_^xx&TU zaJ=ItuIRrsP)Gnb7EHi%q%2`0e>~<>Hv61z)Nj4m`IV^-`!I5ESQ*n0Xzbw2WGbg) zr!o?RA9{3XLW2a~V72ypePRrncB0#AnubKrha2mM?nbc~)V-h7OZ? z#%68X>Sbfnjqd84aPP&g&g>6bkUK;F*mzSs)|PJ2^qRv7D>@acI_Qx@oeIvj&ZF{w zgGPxehW!oCEVaq|zm64ygb(`LV&%H5_Ilba#gn^OKG1^8V-FJ@r$rl1GkMGYLbc?< zOD=>2*U{>-E{~4dPQlv0L#Rs_)X`>%>*Q|5KoPu{usyrfR(RreH20pH`FbQ6qohV|U-Hk>1OKyf_B{_p=j{ zN9^qJ^ExD8kx!ua04_x8WbuwGDeoAeAv#$O{}0Lfr?-SUgPDM8zzX=YkgLcjwxnY^ zFqSQeLS2`v9*!$pM+7ulf%09}Hh1oR)MKTYu zyIYftFAN#VIC5m)Rf?$#oh<+8L_w7lH{6x7(F1==*wV?d;Jvzk9q&oB2f&O*sMR)5b|7tJ z&48XlMk|JS{9?j9Ra9~0@Kw7hOuG0WBaSdFUYSPvt_X$k30&ZF+vq^;1yH3Ae$rD9 zUXi=`V5eE#0X(wiz2tY7!F>-mkJ7|0Cvho`>2c1=z4fRYoz;r@W!Z0%q_fDQ93%lY zISt;Z`=>MOad&lBhe>gxMohuKCLDA#3KNLRwb86+yfh4^ZSP{F|BuZeuY6)BZOmNY zm}Rg91GB9JZUu?f9AqB+iUu7nvhLD~XVNJ66EE8-To^2jx@6;Nv!nlx`*57pQ65UK zkg7cqy|&ii?>-LKBax%S_#JxR34D~9jy}nIzE+M7V=kUphn&cNBK#r!Z062A;<&F7 z{`|iLzQ7zK?Fu$t_Zxr67F4sIeig(V=xsbRL>^xz0GB*z87k?A5}H{B0?Rao&;ZjD ztBCd9s}*U;eR|B0MtNU;OR^rha3WU>uv-`rqA=mH{3dpF|4pYj)4Bf^pB|Do{iH53 zNVI??pa=K{Z-=f*bV@voqy-2{#nH73EKZn(?OVa}1lf&ulw|M|a+iL&{0})3KF!7^ z%N1)#3;qPjrboZaAknS?B=!I3&s_9Sp){GnKL)byQU>J{2>t9@Z0R+lnJ_|T_(Dix zA;9MbzIfYV!?Z)VByrm4BWS~Sym(kcK#`?&Pl*s>CkqsRpMFF9CE}T+=hw!p)+p~Q z8pCOFS8QGa&TB&e>@7=O1Sf{wIO~tsu+d%#Bj{kSmta9$`crS{MS6cjI9M(Db$LS) z_)PK`QdN+uN0t|4iPddNKU7aPD%h1Ci@QJKgFp4EB@IIg5H8xvfv!6TN!T@=+1Q-15L;>Ke#Hc(FE^-%gy{MNzt02kn^}miw2e;1xFID^ zvJ%eT1HWoyfqQjtcL9X=5F2;<2#2y*u+-#|w<9#1B-PzU9y^N1Zxw?;J>#zm=oxS28=Lp-6RN!0xVQQ?fp#lhIkb z^WV-nwmT}h8nYM+$ta!SkR;cAM^Kfle+6Q3`^do%c!xbGL~U#}?zUWi`p9kVR)$(- zVlbCKZ!7_)8EB@#-z_w* z1kO2$S7AbmFi)y_sJ4PqaESwjo*5DIo4rrL=GXm2zPu`bCh0QnYDIZ{9ba$=*>H7~ z*vht}akYE`t8tEw{5@$qKzy+x>6?Hb=soFsbK@{Zo2!2D#vxUEzj@707V+b&b!E6$ zhUE(|?Ln;l-sJJB)#{4(72;o%p}5^zONsy;C20^-E|_@>W#q9$Q75((63+Ldj;j=h zid)7?&KQ*wHE27{*Qx5VqE%G2$yw|6hA``tquL_-YM+M3ud|x zhSkhfCR>Ejmw8S+cww~P0*NX|_S<^YDp!{B6|wqZoXn~d?MZXmfpDwSn>!1e5q^0+ zXq{GCP>LzOZIJ_`r~HW-7zb^U#ee%@DCRDFa6z;S-RAbXG2T7l(`ldyUU=w`HqfwP?gp>zZ^d zu$^ZG)%>|3uU@h(>?B6d)QsV_WN4`$1+9PWZhG-;-a1*yMYX}IN#GFuLnFm48!b-! z-SO3pK(^I|h9AUg)R@P1SZ6U!l{hnRE$a~+vlF=TTHuJ4KiiU$`)>de>+MA!jC=*4 zvjXDznP(}-?8ofT@gWNv%193&t~Et<=Q92CVTW3$$o^&UI(|Bh%L@;@*}CsYC`!&? z@PH3_H;qrUe% zS&)+HP#UJN9w`Z8;Fr(7&^WJ4w-vOHO{cMX!Rg`90;mRgWn|PI`OcwSs$iqSVqf-< zm#NYEroai(cN`CE?9DVl4NbsP0x91QCv%?n)*y(twjyj+fe8s$9=0C3Zm5~OuN)G$ zu8@1}I$j)GgEG~a;!<|Z?XqN2#sMQUT&+{R-ie6YVVNEdDP#C_Yd43i53J%9TXtBd zzWkU{o47Qw4JDx;{*kL3bBr}$?R0nj2W*!=#IWA%_A6=PVSPKI-Q5`}mq}}jNJ3b? z1ba&C<~P!s-!aPy*@EfFHYo)BAW^Tn0%`9i)NDSG^6uU=7E|_p<}YLg-jT>F;H#eI*L3lIh3mVkOk{~UO-N2!ND*&>9R{6P2C z)$|2a5)LDTvN=x>)X2!gXf=xP@SbpI(ci7_1z&L)+ufC)$ge#Wuy+}kPh^PYjb-jw z`<0ZKT@~YihhT#4p)2bND4gRc)M?CmZzg7!B;Se|wO(xOe1LE1B2s7nvCf0rJ~cQb zzb`-8jv&t}ZgCm`0wh*>TFxRP#cZK#-wlUFenAI+C9zpn%Dwjb*$Dl=9YBr9Jf!t6 zd6)3U#=jHnWja>AQXFN!J6VGNd1*s+>*yc0H51$@o5d2RD?t>Lt>D*r+*e*Dxfb#G zK$fgAj*q+i^YFXu4O~@Plo4@g)5|z!H#jx)@y?KOf=VDO{w`UQAiksHqmmv}JXe3R znopIU5EhJlM0b|INB+FFel+~8iRi1vooR2qB$U8`@qI_{L)DT*8@ ztry#V;LqMuQtLtIHuH|!LYWhb$Nln1B|bfsEYYSNVbfbAM^K6Ekq)8JW*i+GIqDOu zD?_{#t1D5pcDG(YIlQ$ga>1*V4MwG=+rXdHk$PUhzwzU_@Um2i`aJ+9YZlpTtvnAu2R~b2DfSECe%UHw_*3eS=SCB#s`;K(k%YXq$MnLAl zmA0h<;NEv+Z=00-7Zvgi;tiW_{mFq&dB&}J9JhR+)}616FEPyNl|SKQYW6jNwSjoi zmd)alGzx0rV9#$wmhgEFfxd$zmUe{{76}Bh2K{311jx0wlrjYm^wJ!lEJ6z^Bq7>B z5NfwW;|H(eGU#IgNx9yjEplO2n4lrZs@n)H=xH-Z4;8qE%VXnYsnUa%Cdg}CJyG%g z)+pLgF9fd%%Ca$aEjy%Q4HkvggrHyeQ~jWWP545y@kHiEx9egYPU#>D5~1R-)_cQe zk#>uU?L>J1D6>Z-UP2RaRO-yd+sN3t+A=bo9zTl{}Z_WaFc!# zYQ})6*B(jxYs)-ng&K{s%c>d7#)7#kHyhhx#ZI)Ig882b-1&^~gcOZ#kA(L)n~|Oe z(~Kmbdg~=YBVFj|)?LBGI2DJZD9+~Egao}7T4|s7Vk#kO;)G;3_m9s} z6RvX8pwZTbLQ3F#c(z*?+Mjb)5$3|)Tds3Q%yBM9v+kEb+*~$GTx=@%V2*d89_WDU zV&FdCI328^!7hwSdj%f9Dz>Qjy3LklHf{P8GUp`P{(VJF_w)|Uh!k!%5})biF%pM? z`X_hv>7hwyg8+qcVczT9(>lr*l<9X)GAjKGYiX3Nlsu;ohGM&~op7(mUD@xNW zj7Mj9cXrg^K+bjlw%6KZnD zu)!av#vt(%u;=t{dn-%0ACwP6Q@Gl^)tHAeZ|vvw18*E0b1G*Z8l412<`?MCYmX$o zJA3T}ee~b+3vDD=Ct@~?`PX9%Iv01MYfcJxzy@u25p*r+OA0O@vUYQvMgMN=#xok1 z;uYn}PmH*mSwb0^*P^74ybUyQfUrYuryO|ZRzK$oX5Y+%o;f5(IB`p(`$a@@AhgDd zA?-1zL;m@UMUMC#D2*gr1f0PL?JEtOyXX(g5YbwqhR3k)Fj9Rlf^iQv`+g-2hzTlt zN^fNsk4=b-+Lx&rv?d&WlzlM0YTGxIhnf#nIZ3Z*^du3NJHh*>b}lp12|qOmo`UPG zceYvwwBW4S@W|eBb9L~n%Xo+Aro3yf!ImdfT}uGxd(=E?1b&37=V zjvD2Zw80(rd76~5Ab!meSSU2mz!17=x+bKg2E|F0F>rk&P>$AZdBOpv2yt{8JQXvH z;~X2X_Fp}`gcrr!>TX`XHHF?3iS-#ixog(HAOvGVCyM>_bswnVzQR#4WD6#snE4*D z8Wk*f_iLgvQBjail~e{kWoj=zs~T8Cs*_J@?1ATn-U*xoHXqsNG3Q-(X3y0V31?kS zGrKW$4otj^>lt(v4e%G^zJmeoQR@)QYP!642)Siwwii~w#n4m{m|TOk8AG@6Om>8; zOchpkAK?g?8&<=iX)O%Pg;5O9h~!Kq6JZBrE-HB#b|BvaZNs6T;N4Z2LAxb3P&G!m z&7uLa_M!hSa{%wDwmR232H?wewPSoN)8M2TQR-9ddA~5(b}-+WIW0CD`keS904%L; zN}&A8cQUXVa4Z2A+>qu?8>wUl26ZvlMy%$@h;{A zHD0Dhe?|vKV309acKdo}M+_J-%C__o-dQ!78U!S5gtv<9P9w|gmI0mA5Xd1f{9Il+ zZlqp|DI>#dMabS9IT~<#^ckCM2HOixtE6If894ktkqOukv7&tLUO`ZOuwZ`=x~W?k zqAk02-@O}5_djtwQ87LY8^wnng*1vv32eAJ`)3J`mk2y!C&(Dp5(O(f*6kP@r&YP;kYi`8*rGv6A`>dWRWU07`XGUO8Giiwvlg}M; zk<3OkjI8{X=@(bMcygm;o5q;rmSFn3Ql^>DiBRqn38P~lb^@vpySz-&ezki6?4$!E z%!4@$C}X-~heGO@e<02_1k#L9Z6t&`g8l$w$dK9?*J+k$L@yYtToqEwL@qSXJ-1On zoy@F4{rqbR1(SlEqsd?pyiLOkqZAi30WqcD6AGhPR`(&H2Ht9@;giW_rjzGl$3B-~ zndC-N{}oGS84b|sqvr0uIlG4Qvmx31AdkVwt?Mx0!WAn-cS$w+y00tSKd0cS|M$Q! zg%K#gi5@xMb0xSSKkyJv4zyQ6AB+H)t$T?z@)q5pfjW& zOhJ-oo1RrLE_Z}N+eMYAV5QJU`?^-39T*b*d9zvt`~M8469h>^S|Mq8^f@;=iC$7U z>J-dC-~;Kn38u9S(;EF9i-#>@dSOfC+yCF+1na~-V%9ndGOgE-$TsrHQFI(#F^Opk zs23fTUqs{a_2dOgJ$bj9`2T!|QBH;o!1@A{R8Fo%!w-K6Q^A@E{@>LY$+(sU-_{YT z$5QuR7X6DUVht64kowdGbbk(E9#60R3A|jskO8DvdQMtnPvff_5anzI@Zmt#wmhHqW>OKU&Ib zP~Sh1tNY_lqmkT{eV2j~5Nyq3H>;3S)x23X7>w9UdEmJGgXuAeFWM%o?bahmfhQxA z6lihntm^;9|Bo41hNrgZ3xXm)Iy^&T#QwBiMJZT@i^LVLU(H1n;-(+Jm@6!5gGN-# zuGctVo;m{kb7u6D3+Kmr2gf$)`hj&%WJBBv2DcQ=Wm3H;$pAFE>Pf@q)C3Z_>z99! z>%;}1U0E%VfV!A@&J5@?8Fi@o45n-xqLof&tW_=LtQWvwb6DL~Sn$rKY^?ht5dyC`!EC!Vx&BQot(fUmlTQO{b4l(IPRcCrY3_>DwPDr6N|?CqMIigGAEK-G&# z&6NFp)+5YYTdUi60Bh1{{Q5zdfzA^0j{7HFV$oNU={B-m6u*=EOzzvou|MaBxTdps z&*)9DH@*S8%e~M^zhQ2EeVB0nZ%TY85KrdmpZ=ZX;q^B~lSh98pB$gM(D83_@7vh& zH}VCyTHT0mbmLnDXTQ?(Xc>|7$CMZWef~lf`Jk-2;KM(IySL61KaLA&-{=ov_Ypa7 zjv1kZH@RVG4?3*R*120DeSVe{j_X?JWiFJwa2Bi{QWjxa6&&^7xTO~KU^d!Kx=tDL znfUKlQx3y<)Z_W$^J;VZy7j*`eOGwJ8}6F#yyutZStP5`bJ3%K^o;d~MD$Ool3~mF zKk7$iSA%h^IDC}hC9tt7;&;Q0qSrk~zuwYN4|aB{qR;Z!Vu#STYL$;>);T*42p!Qn z`zLND=Eb|6rTLa;?NeS(beNp>w<^)Dm_lXpbuai|^mf`MYzzMPvlaJ z+XVYoMu(Is_nFes6hl^@67lZ1g-}N7_u;K6L9;3HrHLtNA619bnGxT%Eam!kb*`zs z^@(uokaZVwkZwdB20hGFBfaj4sM%+FH!$pTSLio2atfmq^K=Y z*H?RXf~vxTov|(^yIU%bnyCM@Xfm#`}}Kt@#<@P`CJt+x7CF(+elJ_&@U%At&P0MxLTe|1eW4RJz_hT{4YB zeUp3&?ASg)wZFoZlu1)8-9MM!_?Ov?nGfbi-CgE`!L@-XPr~lP)2wJ%KleGLA(MamqfWQ!MT-$Z{O9{(Wo zJNoGk{ewzi^6En3IV6)n?N~IKPBm9tAOtp1{<)cK&0Ie!nk*?>(9^Ep>o+lad7WV8 zd3PraO0%v#NaF2MK*}m@4j_Cv0+)-{=wSIkwiU+8*~7i!dpI{5;uF6>N2Xf!C<`T+ zHdvu)(wLb4SY5~NcPQ#{v~-w_Cq%a+Kv?R=bj!DYr#5}J7gb>yfW`CNK7DBi%7-dl zxNO`vOq?Ka$n6lE{}r@$`|zr2vO-KtWOm1eSp#d?9XdUNK$Q@TkeFq)_sw*t+Ba~8 zE%`X?`cK@X?hsZr7h!hFv@P|(d6E6rlz&M;7asrW#ycJ09m?QzC=OZdI(WJSNzEXB+f(h zpGpK>!g`*XnpKVr&gsdp(pkJ=*<|4S zC~~kGO~N&c&+K-^@q?)6B#bZe5-hom)V>=uiK4z2RtH-E{pptN4BMJUoq^uf;D?<- z507p$28^0p%D+~pTJQQWFJqfs9|ry!4eF9!Q?5)?THRd;!PVO-^E;dHE=I8FMHdoC zrvc2u3g~fgN}9W|@niyH;VTTrK`JB@KB7CR;pv%$F`N5N z$}V;4IfR-ZHOD)})8d^$x4QrMfQmG%Ma#E_6eD-Vcs|O+hPXE*)}l!T93o#@7pD#~ z;}!H)%~@PImzC!2Kepkn*EV*6i>5jFC%VDv2~_Ffgb7mMyr!&h550j6dtE(VU=CO7 z69%0Zvi@qkxq5#n%O;63uhtvaotGBJSaXYQ z4Zsv`pib8pYZKsU85Kj_mX{Su?w3tmwPoA$>#_B)ghxp7`lNbodU7drJ+1q&qfjEW z`$fEQN|wbc!|{WgQ@HDM0O?8-LvHF6T1B?9Y|4c6>t$y-Un9re!CSQr>>-1hm!~!- zKb*A8IsW;*f6{(1`ELla&0J#bpl#aj5AG`|0Js(`!SHxRzaeel8vOFWxBPDD&pR@*ZlxXEc`QE4I-=MEf?W9(Km4)o*ZIyqzUV-u|Pg_WUpoqCt)2l(E=Pcf?1l}A$ z-DHS2$B_Q8L3pbH4uyl|Gl0L zr%~5P(UP@c+cThetcFVRt;1#F!xF6<{@#t%Fd*5kJk}%AA>8o%ayYhJ|N*r=6%t zSq!JfH%joE!(VA7_4|Y6K{YDLN21%5;i48)6#f(m;OCv3tbNp=-hBV}rPX61(5G=^ zRo$#8{#ti@y1+dq6Mv`qm>-i=(Rb8)Z}^S0!@1gv2z#3sr2_D?__phK#>^s#PHO%- z5NKl_0ij54j0CO0)DTN0<9jR2Y57(EAlrXtq7kVvs{$CmwfpIl?~yBwa8h@xc~-K2 zrPZyvS)nov4=29YnFmriQ7Sel>MIQ4YO*|(qj8QLgKnyff03rK**kZljk{$+=a42kWo>xFy!R>YrYD+rudZ0{udjhSn>( z8(!1tbyehHCDN)KrzglIEI}n=HGG=9)Q5=dX^bhS>$%>Jz&=%of>-Y$fS1-`h;ZPyN>66V-n$YQf@YQJi zKQ84VH?ix%0e8oHvfDz`V7iV5#4hHB7^TUiQVb( ztwG%*Zcf5$R?<4AK?Or3$H^B3lSjX{Lny8^W{;XaI5r&_lFo)D$^~YGrjE|1PnK|2 z`F;I`tQ||~Q88@3YkIQPsL&eYcS{qpWe+VgwF;5oJ!94Q<5e8D{W<(jSPe>zOCp9{yFe?=Ygdlg*q|0tC|tXj;^LVt<$xRvix>lwJ?3@ zH(`<30=@WnN;JBWj~>&cGoV>-jPZTjoL$ilx@H;dKyMT807?|M$icRQh~D z+U28atHK8ual|`9KF$uxAPxL&vF>U4vI=-N8qtHNpKElzIy;qgexzKZwX^aNZdqJ& zN2p}&CwO*Jo1+**o@1lvJ%UgzsjF5lj#8NM0;^2+5lr^moA`^4%ziolJddVbLUs9j zeIE-_;cK1Jp@KiJk{Gnp1#KO$yHON~L*%= zOIm{a<8_$dDA96Ts<3AGM%;-@?}!4EB3>kEAXSzl28Z#i6GZ(EPNf}OcOV+tzLK9cpC zT_Js&GGqsiRvYVP`!8Cz2{|Uy{UxS8?k*|B4aYpF(9l{)IkG87IvSBHSd0zI5*sREJ5_(DZjC#RK|(* zn0WD%TKvE_@-gWEZ)mjS|M*;{HyES)IBuQq-`?Qqu@6bm+~72EmkT(pbL-8wHf>S{ z997<;wNK+lTRgNk2OZu)Ld%i0vQjX&#*`_DKV(KYq2 z9RiWVT`F_mG)!;a#s2a6zNt4{eGR#J$gU*pqiUnOP`;-du<1rkD%?60mke$26b zrj5GJb?a_lipbeN@y|lt>;I|ILZ(jpl)O$l_`={q7aNWW9)tydnR4OjhYYNiC$5jR z!!z0jPF>-D!U<$F!iwdcJ9*kXqHJ%nEV;Z>{J{OsGMeTHBU{FYAM z@XPgz0mlWw%I9;B+ShNgdQOIH7W)49`b ze_Vn`&;ivc`;YsoSme^-+fA3Ey=T#YEFau=?5HZ?^LfU9H4o!D1{_JJIhW@7-ZV{T zS4YrpHnk^@1Paz7GKKpu^%}*`%4Ma@7Cn=B4GWF0Mxfci-P67441IRI_hBIVBR|s3 zV1+x?La8F8NGJM-%b`WQdX4{Btu7m-H2*ax{t@bd8&^9G(mxAL9{c+oD6CgHSWxO% z_Fm+>#Xx#Z{xL(U{nW7Dsbx6ZX8n!eSiW57j~lcC#;Jxa2b|Z>ZHM3h1GMxvF)PF0 zM>|;~2gREu=Zb7jdIn4@Y+Nd}&)ifnxm5sM&kwH`Ho<-TV$Av6r+Bsh>pf?(UVcKij|0v5b8LRIloz4INKpYs~8;g4Uj`vH-gL@8%F=a`CK zHkeRcND^;ZH;|Ne0?+akIE0t6Zoc5UR#LORO}#8EbqwI2UIQhz=FOVgzNj)bq)aLwQ~q7M@>*-;@Q#phgTxuYDSg{Wg3$_$ z$G3gJ7U^z=PnZibiu(vj3dU*X>AmR1Rc>4_eQMb6%XizfbiFCA_g5XG@%x^tS9$tq zAyn8?V(iY#w8qoLGmLHi9E6F_LX}8VbIj(&KTWXjY0lh}x8ALP_IUMC;lK0|(%HIu zOW4Ujx8heTc<+HDS6`UJ%EC^I5z4hbL31dU9K8FNZhNr}8Gk3LR-h^|4lc`U+4)!N zgr?iCzEr%hk(?&-+hULtLDyR;8WYVgZw`yQB=>F4Y$$)lW?=XIXRq|jv(EZ2!fr=G z+4Z$=dU1OQ5lp@+#s`eaef8v7jm~_8QQ(~pf6iaAt79mW^Aqq(Liq~yW^X6@!R_(j zgqVTzJ)_f)w}w-632W>^7b3$?YnAxC9>y%BQH(O3d6Op_QZJZ_xNAL_?zWEI)q*f% zWero2aoAHyuSL|TJq2qPJ%@+qaIf$^W|3uS*x@M5Zyhv0M@1A_OclF?zZ*sqKX9lt*l({+{=AWAfl4Z-Gc zX0E98jpGY|6eWJ~X6f?S-szH%9v-#TFx@*q@~;C zBi7anZg(twGnoocpWXuX#2B+Qv^a6?@!lzbV@_dr#Q-Msh|-;)2ATPl@Ay>KTdqnUHQ2=V&?nI;X96#1Xd_ZsNYAhxj* zSNVl=O3_Z7w=Se|J9!ZonxpF;m~-PFrf)>X{_K`X?baZi#t)xuZT*q$P80v;zDfcX zy4y^cfA)!!iX(E2@vL|h=T*~fVCW&+YfjB|um5bb$c9G3J)6EvMZvQ(yO*xpzdDZE zh{FOL#bB&QoLg|J#SHhe{1>6OB0(HBz)2BjL!r3pd+t}FyUn7Hf-N{(+TrE1iKh`2 zuNllR5StB*wz$H#!V3oQzY5`?Mk~$1?$KQ5Eb_6jZ9W^kMaE(N8fprH`y8XZ3`hX* zvCZf;UW1#LX4>*S1B?8|(4b$l&KVq=hV`bRzFM<-J!l~H+rX@MX8-P$f?Lg^LthW? z&BE2g%Vk~#J}l38HFW1|2qynV{_+NBRu9pN{6>wou>gNv^~`BprFt1twV#yakoEx^E`!8)G*F zow2+Eq#FyoTEhy2OZ8p{S_`$8tj*Y4s%<_lW6uUQ$Q z1eTh}cf}>^dOg%p@_EvWzsvc!l)dWi5Vf9UoUzHLCXo$)9Xsja=Q3TyHRR#Gjb0Q_ zdFigu5I?3!x4TO+$+vO+_+XZ*eRM1A=vdjK!KEgI%DJ*fPl87ZaLR<>3GTlhhKU%9)kEhMo#^4n+h^-av_HKs7v_YZqLhu1DWGWEb|({oCqtogsP zEWDN+zCy>!z;oKADd#Q`j-?t2%=+V&lPOq;*g$vJ*Jgz^Zqc{89-JF}68^~XcDJC{ zXTU0dBVvYqeHJL<;bo!+Cmnw;_em<&68CfEf% zw2)gvVtEWM=}R70mS`UsnCD|IEsVQp4Rmh}FDnE?S)RvJW8rOEElK0)>BHL>958*z z4*z~6x!1aWG=T=SX1>{15a?qv2EyY=123I)uliPg@=}+)_KEL4&>E4k&y*IG&(DjEk#!x$e>gGd(BQ(?98Pwsf zFzUuGHt{$s-q`|vUF!vhg{{Una(^mx_f3veArA6j9`|lF5ZOax4v<*_$nZp;s+l^#k(HXrGSCJ6NhMI+2chW#E}{#Z()rRkHV{HJGC0U98W z7W4fZS;|RE-sh25hn#KAGrx^T$D>`=Er26;r)MnemLbnfgr{DGn&lw-mlavkjnQg& zi*GCp$LT3nZMk@P-*}XQzP(S$7c-p;n2@WHmbwSB<}q|z4#|#^xV>^-{m6OWbBd$? zoF9a+y^tz}mj5ODYi1tvzbVYyP;CDB#^Nvis;58>nt>PcM&%2EfwEf8bm2>Ph?VYh#{PcJ~(ipdPSu z%Fcrd*nvwuMNO%|??rL90fDLa=1u&T#yzXTmu#2DGv-n3nD%os*IV%s_b$skAu3M( zRQ0t8=L3FjsYukDko5+C+TVPOWN`UtQ9cF4eAgLhYIqX!W+w3Ma6aE_f2he!W7UrB zV{9&!V*EGd)_B>CfR=B>5&j^)?~`%gOEhfy7PAhG!v)`l%BLS(0?X?Cm=i_IuQkJU zA{V>X6_X*L`@0LUiDr#snQO8CtnR%(v%g;rcqE+G=JolkK$K+MTcn0rPq^FbgU=Tq z3S`4avhzZvf7dRZ67NZG$^H7S8C0$=x?Vt^zGFK`jJRwEpISy4EslK#<|&&1&C&_3XJdbBS%oyAL5< zNdY>D$caGFU@--p3J<j|L@EXq^kiDi*d;B6!{$37CC$uu;=_6QPd$+PTiJ>{ zyK*%jCODBDgFqLVm?Oo(KgzZ;KE6N6;%wF3$sHx_*Yhg{9OAe3oA0M?G}owXU-?VQ zdp@77_mcEEO13yl-XQhV@yz=PwBRL`yWqGfPvH0e7XW)egujd1e=L~fvu4KEv5zLW ztaGIA(@(L6@n)gpk#z3^Pbn!|N3&>JSx;~C$ex8|TF+ZQIvzjmfb4xerTxhSRbBSWPu*Xy)&{@@HhWD>nn6uG&83j>2uL} z1U}||(VAlEx?(A%g13Qu1@g|lAMQ)(^e#AByi>iAr2TFez4O;Qt(fNIK9hLwr01&l z4x-^A=1cUxe|jfBbB+;_q&YppK*#^&@?OAM;$y-~$DK4j$&-4bZ?b~Wo9unNXrTnHt*3wm0oe83f`4bCIKGpWXggVV z_0Gg`r{MJs;zy1dL@W5CY?CI|u3uLzPdrL|bd<~M)qoFraaMbNQ91CfBVLyTzpVzw zCWqln(%9aPn|(@vU?Sc^_&z+$ux&i39q?ao)17dr-ZRKw`?S>@wt0C?@XH=O$_~`q zvacbVE$~o28jFYcn16meaMYuPk_+=xAv41rK)B-YX>SbjSc(ya54TkWnxB3HC&9-@ z@cTo)J+NKtuHMgWt4CMF68GpIysM6HNeH+WeoGCnIjw~ks8$)>NB(L>(&572j?>}s zO~R-9GOP!E!)JtOBfU3FW8ii(Al;w>m*!t_s0XN|N0oT_w^i>o9A8$Jabgo23%)3XSJ63W_7u7SAfpAZ1NS{Mi%}C zz(>c4|MC@!K5wOVYV}TzFQMNNb|&q~N!&(tE!WA^(s<7Nl4ARwjcB`F;WXrFpnV9Z zfbY4i<_fV#lDGUT>|Nx!r8DYQ>%%5^L=T;xJYoAh-US)4-obqtA#Zlk`E=WU>+sc> z1)Bt6YYw{1UoY1Aeejx8ce0#=pVsZq{MlyK=o3DNfP))PdxPs8Z2n~72(4#JiQwsR zpB(tTK-1m&@ir|Y#IOLpS|Q(~I86Tx?m3@cjqvhWY-MeH;DLIwe)%d+7?q z>NnG~u~+nS+cQ;}TTbh};oK{PZS1yh5S<~{tU|6Cz4zFAjlHqo+dd*LDbE8g-kf?n zCFFOCH`d^>7ELMSz8;VdgC<%_@8J)Ex%=9b)M}Kcc}6^iTo$g=TJ()p24!n*+8QB1ivM);Zv?p(DU*CcUNyJuYPS`UVU4i z8eEpd8RGgoey-*uJ{lNU3H-?U4|?_|Do@XjPL}iu)(U48`1@D&$RcC&qrKqT8Ld^GE*}NWC~LpZi)0`_uMh`|kwr z;G#X=Bg?sjY}2B9=5XIX1~~rvCcz8JfJbl|L6iH*(Vg_wiXlJ8KT)6iWgEYvdL{oH zNFAX56lt@9e(y$qdLRkDJAEwQlyh1%R_rU)DFuFhTef#-PJb$<7IMB0^n#Pl+E}V{ zsMyPKG5%N6|0ZYQ;Qx`lueGdB>Ui8T9*jr&nrl-3)nIU(ZNWx&Q=VJ{I{VP8Z2Z!z z+*T6uTEJDee7}7TVm5TK2Z!|z-VYof6n4jbfifQJB;FwW$siA(ruPz_>t$1QZr@Dj z-Ji7i@h0VicWLj4o`zmF)~qVw4%?>3tsP*|0@3Gs>hrq2 z^QtZMW#|GgIKGRQLz&t1UI`v#pdYwz9N~-#!lOR=jH33gfp3DplkL+*92MI)H*|Ks z<)iy}Pk}tYwqJrCQ*WdBxs8LI&VpVUGK`Vj=2yhT_#@p#|7*O%@oACy4#QovrvA0Q zAmQ6NHGO@5FwMToxFh-0j9B7-jeUuSu8CN0j!yLHM#L({C?EqYC}zB^UOm-uyb`AYJU7U%w*m7)ft55G>hrV+EB5%%V>9h5h0_ z3%yi1jp~g=J%1nxp2nd6FYS8MwxjS?(f_gZzC!jl_QE0GJ^Q=zma?82`ruv)E>^A1 z%e&ZucH(WDL`)XY8(8=Ka|O+zDC-&S0jyJS0p0PzM(dxceVp&BFk{veN-^T)B>ZKC zT-LE*pVuljA|~!s#3GVZ4zLAI`Jbd;{{D^`d%BK!wCXe}CMKKiJ!);^2y%1vCK zxCuV;*2nc-%>NX%`(&eKZl^Ow_l4v1m=#iEiTsejOZm_{L``e=`;dV@%v{6|Lq3W7 z4|B#Hcq{HATB9#<_yv#u8}_A(aWCGGXdqm>VOtmR2WK!(;A-we<>`Ky``CiUee`T` zKmHAJS4m&?fnFti^Wvy{i}wc~qWX<}!cJpVAMVx(weN7dO|*e~)g^6Kf!Ftz2w2-Z zyFYaR_?yOyyO~M77wV7X^*1v~N1xQjN3xAo)W%NSv0T=(iJdq7m+!)_6|z9HM(|8d zSSPdBa~{FP zc_Vuo&!c|MUtS%)&_nG44()yv=>7?IfO{beg}%b`6*t#mt}y7gIw$eNwXtR;8fm3^ zD?P&Q%)0PT`%*C%@D$xIgja0+#Sx;R4@9({id%=y25i241gEg^aVgcTk9go(TaTa! z-peO#yzzYdSP`oWHciK8NWUFF(a1y-W6U*I0)E!8QA#8kbHoylcD-sfcdf7#g0V^O z3;(q7ps7^YEPJd8cqV-~6m1<_Fx@41^N^5h7r<5_)XqHIZoECY+UVtQ0J}90(J(cf z?&dVR7jYI=j~Q(`t6RBV47NFFbDGm*+5B7eFgmyKWvn8wjCq=t5#C+KT>fROc(yp( z1=9Dr?)Yx*dpMrH(MCwNf%?wb@Kcj|q3}!n_Ihc9`f$a|V`{;lAb&_d-Z@puLx?w9 zRUI~A6AvAqQ)zk6j-%AMQsptXwq9An_qjsGl0@y$}`LAmz#Uf zQMt|?aR-*wukQm~63o!OHXHuC)zU|Gyd!=m_q!PLF44wVH?y5JPo9y4Z)Ee4%ad4d z#JG5Re2i$+If<6i80VSwcqeO7SM}+zdCx<*!zbfljS}+BjhNS9S;s2VGbuzk zfbdOOh`C0Gn2-K*`3b>u<;8ZK7V4As$_Lv9CCvGrw)1nx;j?Kj$Ok?-ZtDVtuCPw% z^#*l?f1~$yAGjA3znq_>wKS=}Y$^~ieeJA%9``3>T(sBluL1wX?UtyXLl2sE8Mhp- z9lK%wq&$H$xPRhr24$Gy9GKRx8x*16B>G{-K4Ei?-&5u9DO^^hSd~>JoVTnmmAr2d zuym){>7msNm3-r1dHlIgPpZ1gc?hp;VWU&5PmN%=P+XB0|EpV%7<7zt=gxy9b`woo}zD6Nw z!xb5f1=Pu!D=wpZu$j)Fkh8tzQc`tNo^RV*{Ov6zwfAC`(+pxSAfpMurntKFXT&d0 z%Hw>2u!-5p{zB^-In(&ec$e*z$w5T$7yc**J6oT^gU12^mCLC zzy`aMA%@(BNkZ2`JmUBQWov;Lf}1?V zB~&(gXDBJeztO2(jI#p%Gc;!%?bnO;H7?6r%h0|@8^*@G!s&9;*4y~<5Wg$EpGBrm z_Jcn1sE>Xg(+Bql@!LfI410ecpG#b6f6pcR)YAF{AL*2HQnjHuVLsKvX&x9qwSRzM zfXm6K-LD%;3bDo(k160X{H53{-0j+GhCM@^G57%GH{EV3L4u1WI%^VFqAX&Rq1;7h zdbsT4(C7jV6UG#whl{rqSerl;R?e^*zTvd|bgw#z_eCFbY2Q~Xs;MF7A;In#x>w5J zAFH)6#6IwG8hkx7=22U87SLC;Y_thkX$|*r>tqAxwj@i4UL8FymKd1$GSOo%OFQ{F zrDZ4s9gntwVGY3FZYm#R0#6{G+CXubug^en+}c!DZ9+FUaAuEHqQtq)h06U^mGQ8% zZogdNdTXE2c?7yO?A^fhFu@MBGkquV06VQ;)0*B4c%!okSuk+zVhQ{4=V@K^P0SY) z{?RpbPmUq_cJu{db0*zsjfjy%bM^5(UC(9`Ex3m7>-@ykGzR={)HXAZx~bn23Y)dd zAU~LuXdv2SI=u&68GA~2pMWpGOJP*NnC{<1^vN91e$|Li=8FSX*RxH${kc4*sP5_P zFYInL2mbfrWC`Lk{2X`dyu@ilw>40|W3NYl*CjlGSiMT$Y9LmvDmN$8?pQURgQsnf z@dic^t|$zlJnXoygZy?Qfi#b^r02~v;cvgr(9OCryHkGyjQb|gpm8_3CGpTPM!NE+#BBE!pC%gEavZ=X?U3spO+JJbWw6+ey z3&s0l*71qgTD^on!MEW~`egdGmO4Jh!>VXb470Vl=^9rA@1hxCil}S(NTjru($W?AifaZkUW1y=o>GI!cI%5w% zkGQl0zl06QJi3n-naECOlV5?fkMgW_|hlvBcFsizVve>xcP4 zMi6Ufl|--Ab+@xAv?hrAs0G_uRiK?s_R|_uUBtrU{`)lFxsv98>nF$K)7_;#|MlIG zJ*O#?dXD)#+}|EFKgtHEtXAE{_Xx6T#82xxbN8Un!vunj?Vw3CL6g8Pn&ZnR$bCB4 zqu2IY&DTb_JTcg_JB4!ijl141dsEMD=_7JoIqvfp8$Heg{zfO_)gp%Ewct^kS{eW5 zJ_8}~yJ;=|M(jtWX?=1_qld?ZqQ1FZ!bQ|B4 zl$TV{d=F&Yp<(Wqrx%I4-be3!(k~lvy0+$(a9^L!D~4n|p~<~+J`uh?wKsaL&|O~Z zDT3J=YUind@C`wG&>j8#EB&eFxvfd1sgs>u*qi!3(br`aiUs=DF zEZI`M+*E^&N!TAbl~|ACg4X2sN5m3O6C5{>fDE-c5vJejyUoyD6a77d=$%=_$F(5F zYc+gMRkhTbIx+uDtR1%(gpV|x-PFLqi2E)Ua(39dgNHdG;}BuLnlF(tnxxP3tJ6D$rC_s0oXs{6d{!i zUL57&HsUrPgjg7JONRVGQ3o-SP;V>hK$d!15tk($k-kGSWqB&g{qwgHk8iI#_S(iT zJls%TM$yUsDSJn2%R!0n~5p99YNWO@nV*UORvmtJj2o1m2n(Or9JZrlf7 z+R0ki^rwD?F-hLRtIR1!90Ip`H)6VNwC_vw={P@}eEQ;8B78CQ&$B>pO&xH}!kSJ+ z+rE;_w)axouBLUYpKzovfH*2Q@Oijrht2$PICtxqC$^4V1Rr{Wi-B*gOny`#&Or(B z`W}Lffp5J+zh6NguR%A^SR&;w)W>#ee;FUUko~!N?9FzzA+5}hsLTVCCD+m-kcZvk=UVOOR#C!ya$?CzWSIM%X(=T;`?YN@`G*vh0DTWJn_rI(Ls;JMeV zk{Esbz1&}?fcsFkB)k~6w|sESwMxO@nD3=AUx9Y19ed0bF0Zv^Bks&ECo%3)x@%Uf zrZW+P?{GV-pu1S3JI--IB#H4q{Q~4+o7uxJfIq$(^3{ZsXhq1MfCF9nvP2=xZ?^uI zK08i@EA%x}&8r}Mv7)R%i>Y}$#=~0JvL)1UErc7|%tE5c;q!BX$6JCwFwSwAHML8e zWB9&W6~_ge)M}H*s-yLqLubXOpT>B6s_1F#Sz7mkXp3pf zcMIqYei=ND<{^3>wqlJIco@jlMial;?7BROI8vH2hQ}qnkj|@0b{JPN z4i~b_N)2&Z+u7ef5jeDr`}l2URrDO|-`sn7a`d~9`5+EZJIjkNGClOJl73g1qHdq8 ztC@8F#lL1k?uRx|rb?En=oYl$+p?^O=zd51tESx-Xh|&~+Wn0z16fsb#g~%Jt`_2L z?=Zp7VeB^SVeHW37U*}Fr994CJ8uhZV$FM~ou}x2tVMhbdLQ*D=BW0QZ~LS4 zJnFX&g!6b@XW&Kf(wy(ZK4HI%E0Va!YYCTZB3=}D@C>Y{F^u#275XstEb&;5EcqsQ z(SbMaB>r-zRTa%+CGk~sC#^EUXX1XD6HoE`hIkkgcaATVN4)LJ)F+iCo>tfMSdEd# z{^wr3;?NuOd3x zN%Wt)K5Rh;`6ztB{d1ET8)7*8k;ZP@j373QJzn6Zf54A85MpJc;a3x4RlyLQix7jX z=z)I`e|T1&#bK3T3OZ^19M!@ZwEek`s}tUHG{q8Ih+cApg#69tk8!y-*UJV#`?r{& z3p%T7OvodB`ivyx31$4Ol@lzM3wc(&*#y%Gx+RE%EBrghT3| z)!Sg(coZ=ge1xmv-}|hxevmIzb$_zC=JF);YM>pDtAsmV-F@^8uFH2>>gh4g_hDR* z?B0D8_(YeoJKV|IZKdyn*Ljxk#OPOdr~DqFC&v91ouVV&XbXLZS&YtNf0CXPU)(Y}Vip^qp#xTBd=0A#5uM!h z1e+FIgH`{}!&dE+ zVR{~B)jwKcEu{Az`adrw-Yul(Skvkst+eLF!mNSXn-W{iZhw4*WpvYb3hgvAb?Zv2 zmikfAUV{F=zRJ=~`oCd?H6=#>zq!oXK=o8AZ*QEn*Pg0rwN2qKw>z3t@Q~4dTeC3mP-V7g=qgWGr{SZf}7V)u(ho}q^eQ!Qu)tX^8 zg`Pn+tvZJBn9}NNt1NZ=GQ#bv_|`6R6Y&w8u~k+D@ngM^_{YyO$+A%~U41EU_ch!J_oM^6oH;P`#~m*B_6<-guT(9BNB=W2+M2 zzlnZG6vS6i`7qD7v9$?phFK^WruuaDX-)IFeplswDOev5wK30#x;;kNInM~Wan9x$ z8|bbH({tdKTP^=oxAi-t(ORMvaGRT@l3sIavC{mj`&0H_yGMrM(=5+h$KZK$DdodL zqgzUSbjCdL%-PR8^z1_!&wcAS;p0#d@p4;4XPkI@FVU*z8Wt*zB|<%q^y!3O33r;V zc!=S-N7+EU=_979YJ+;VtzRp#e(9QHRV?;$nJ(F3Fs?h+}_fwbo4uoX6|22FkcUx zs~AtP{g)S5Pf?#^2%m!AXjW-XgFMGBuX$%IO==A@_LWg5H$Q^#(D^9Cfu- zN@agp6iQAZdg1MV4sgFD|5OoU0yYQ(mk>=#a4?0=S{?Ln1P{CaIly(GSN`8Xs$sm- ziW4n>b5$eb%?O)yy02*b*iZNi)r`BtTs^7UG_+P$I-xgZ^BFs|Czy}N6KuA2XpgYx z5wrA;vL63}vL1sz`rpcWZ2haJUdXv2*WRQG9C6pEnDvM0!atdK0PlPCLO#gjhJ8VK z*I`+A@A*P+SjA~8#ha&;Sq{C$Sq1uLrU$ZGE(6+ghLh{N5mygRpe6zlhsFAdpMEmXSLX=jF#-(U19F9%${ zU6%Vkm76L1I`qRg2kV$lw^eh2hj`q^K{+*aPCgy_r?`cfm>xR+KCCl+9-G)ZST{iX zJI$x^dazx0{0lT=7rXeyH;?)j3cD^f8cV>=W$WqUZb1Alz@G0{N(y$SaeA%<*K=E^ z1GX)2Fjnru`%pB=Y4K33JkQvWxS8g&m|&>?2lm zS>HeT+F!nlc;@I6@s@7dC1mrpXoKpaJ+yT@33o37<{h)1{3*b3~}&#<-lQvXn_RXXd3z9aJKE&7Vv z`h}m{3iB8TE)jQ}`?nl8=be=4mE#=s4!3!9i+2`yrM>68!}aQcLQzH&F*CW%C-C{g zqpx$=9S8dLQpMWp%;UEFXPhbI06hLKU%U3?9F!F{sUtA&Px@cywngxFUJ&SF3q1nf z7hEHJl0U5LPX*Kb9Q=0_@>mR9CQdYy?b86;C6?Hil6kNaO8vUs&QR-af~VKg&#|p* zHd@8H4930i%eWT-Vc#1(gZ4Z?b2~?#0U5&rJp8ODU$NsC@wgW#i#ko`h&p!uL_6-q z6|(#+8MC5dQ~{4wvE&?4kH-?%;A0@lUnI+4kySpFRlY)&pCHR$lvTbht9+#_UoFc| z$SNPrDqkhb50mAqv&wJCDzD4(1+x6Gtn#s}@-?#jzhXmiMAFM|%_?6j%YPUfiX#G< ze;&~j%G7HuBhbMBHzff#*C#=r?-qKS@pTUGpkLFqGm*cnlS!Qlx7`9Ps{V+{W9{84 z@_$T`?c1>UucrMXUYPJJdvl#^Z}vlb>+Go<9K^$;D&&nik>SL0=#EYm7<=UmxPtq5FPDseh~w zcF^}~AG|wfN?%{)?aLCCvs)9DGa`xO;K?8}R`dATg-+>7h1)GBfO{ZQ_?8?qVizoM z2pu-JmA~qx{u5XAA9dAl=!31Pv;ML5&OqyG$Txs1x@rDxRDOM_h)1;cE4cgDF*|n3 zUrp(g`YlQ`qubNY{7MYPO3N505ALC?nRQ@G#J z&UPjB4f@QBDk=D39_vx~-HmuDh?U}+Abk3O4&l#)y$(AjiaPGBxxLf%DRc7=&CTwkj^6L@8k(COpBj2Zjvr+G zI;Bv=%fC|icc>S}tT}WiB7fZeZ|_d|ln5hUEH%~l87b4F=JObZ25* zZ_`*p*9*Bv#W01BkNexu_+BRb`7Dj6N@*SRZ#gE%j=TF2qW3SSGEY+(jmmsX?@-33 zi4ZRc?;rm*;^ww8kDB=&JPO`-(EB=iUy=3x4%z<0-$tCgR;J7M^Q8V0@lLUJVR~Ol z?{7a};Wi7%r*(RPa@6KkF!m-{cYeL_Cv>IJM%$*nn&E?E$N&Dc7*rok@D9eHIzoFt zoA%v~0sj9||MIl@fH~j>#Fd;+c;&ZL?v=d3JX#}mTrgxCYv*Kwzd83aPK(W_$+;tT z7vgWZ$_hEWR*o(dF;h4`Y3IJe;MuDI?*Vb<@qEfe;J!?{<@Z$Yw64s1xrW-s`It=Y zDrt0%O}7-Loe5(w$A!RUuv?mf`tFEMC=ic8e6R^J#_lyGah--Df}&(0eMn`_O^SK{Y>3Cu7qPu^>M@GkN^79h^Y z0QIrKx>(5{F%df`WvK)*d- zL4FY8&n|`yz&e(0cdjb)6E6zeC~wEr!tcwJcKmh@1zIm*iya(_`vE>?P zKL%{gx`*h?_&SbTYC~(8qc&zO)OgYIrOXz$xUD zMEmKRS%~)Ot+F@x9pf@LAF<=wxi*X%^dqwKzfNk|H8_u|Z;Kq|+2^^&KF@Xe8Rz+3 zI?w;RdFVXbxLh5~5kO~1#$!BiMhVBc!LeTJu)I&+mh|6`H@_lfOtI2(z*E{Cu%xcQ zIwa{LJ0>G=eQdM11C%og`Sa*mB^h@BaM(erw{G*vG+eGYkr*G^$u+*#&6#l`?YX4K zi9DRfFaKv+pVMgnJkpo({o4LiU5TKrul!KR4G|9k_Eolw0CEb%Kfv7&eM2nR#XLOE zSqJm@mnGBV?fmYYeW?YP2>6t~1c_3_La5%*2YY|W(ScWjdKYsUVJ2cEL`?oWvA)k? zG}BpWP6nW}iHA-4^ts}z*x!jaIf8hC1Rp&#=8!>r+-XkU&&+X7tBmGarXz=Wn8&e! zJYwE*t!E*9W>$|JgfY#|Uo5|I$31&J(KP`<(*bAJ`NZ9$8LdhC9DvsO&eT`AJan>8 zoR6i*11;Zud#a#=Y+7+kRpFp*820`zZb5@Yhxs@R#itgOkK*xICE#NY+QCvSKVs*hj;6Lu}=W##tMLgb>h(`uHdDz2yg2-LP?Sw5~k=PUDg+Sa! zoTu>(gr9WOoef`)sfw&y#N+tQL;KaJi#U)@kf8jA`C+puk|lvvCu9Wj>YnOw^vN@qXpa-k>l@p-T1YXF}_sx%cabNzqdyv~E1&pVA^^3HO>M|Xa? zH&qTBD=ot8dVd@k7>}`jf;uvGKH9kAKOnz{UuYXIi`eiqXb?&GlLl_ABHK zp*_O>Xi_fm)4ThR+BkdP>{kbI_Cng%$&)=oy4-d#*a8&Y#QjqqAt=d9}qS(XzOw zDmLYo7X<5E8RaV^ZSL8W8K)PtD9ZO%6mveQmd5qFG@cr=$$vin>Gb?(twHMX-1L0* z7;XOHkB?{4^QT%fo1Xv8=NupQHy3}i^YNiIL_Z>aD&go6qP%~+?<85q&$Grjlggs* z+Y{X98GihVYmM49lF>ZW3Q{M7faP){Qf0~?=2mZQ2K^Nd|pFcv(32+5C;h%Y5mwT>&1_MKHl8Q9FmTbPH1-&y?jamiuj=%XA(c>v`_uL$dtA7~E7YgmnxI#o)GK zc=Y2#vi$V&tFp@5x`p9sXDYq?hOF}T8h9Vi5fhxsZ_O%i%iccOcnbRR3#{3nHfD~| z*2h4en5~b2TrsgRb6@Q>w(&$d4GefVxbbAz%b?NyX*4?3|9DKn;1~}|Ic9HGpDqbY z;PJE170&UFjYF^m+RPj;d^`~Epn>kN4-wac?&7C4C8ZMGWBVC+=>BSvF+c2Q6;yuI zxc<~8$XgMI8FTZ$)USS{_h^vl&2;%$ywH~+o0}qKcU!)(I~AJd<#M!9;F+t!NglIX zLB8;(k)I;*G0_Bm>TCbE`nhjoWQvHLfH)(d(GbhN*0vuqT81HpXr0o`9KKL;$+w4c z4}gA*JU6N*^6aRdK^ce9o@}h}@)#j5WekJ<|7_xK)ik-q=YgNabtl8mEgLh>kiCyf z>V{x8oj;kiG4l-B<&Tff%P6l&xzQCHbKgs$I$s97*=O#eELa(o&1aRj&)kHKUyMh~ zwFXtP&nvTdG`O^$DztfRnM{Qa@ab>`<<>Ofp+ z>rf-lb?UK9JYbJ$L)IK@J>nl9%gvX@vdY)l_y1!<>ukd%)_F>ikIx~RC9i(#uHC7& zOTE@8Y1iY+lG~x~N5!J9SJnkyne?LIZ8yleJ|34u#1`;<4*GJz=%SP8%Po%$(U+kj z&tP1_na{j=^waKBw3X{VjXsvCL;fr}A@W$J4%sf>d)CRa(u4Xv1P4Mz33!* zliO81mRmMkmqq(k%JzegeLh<5RPzr!_W5W7d;Se+{ed^GlKt7a7D8$fw~6b%mG*pA zqg8I0+%`_Nbu0u=GwzZ)nkmIx4!KCmwif)@%g6eI8p5H@E|H(&$wuob`d?SQmf5it zk-LW4`zd4{o~F&LuDX@`alog+*1;~gMabXQ{B9r5%V_Ij>lEcM>~U=Si%}t05`H9m z#;BG{UDxLev?sTe#S(~d?5S=sVe_b##u5cDg_DlZ?WU`AU0=cGtCOm>+$n&$r|c-KV!GQjw>%L`e-OAjYwjx(4N-#~o&&lqe&V=teKJmPWJ>x;l4Shwj5VA2^ zgE@TeYq?z2mI)PHw!RPXcU&~Df@{Lbg8Gep1w{=>r?Jc|y9D~TK;lm{A7fGlE4U_- zbQwFXrpYcg>?dMue;yck24h>;EMmy1&|@~uOv3;8G|ZpJXA@^!)7$xTN1(G$L0)4c z(pUW7gL4!yMgk$?l_Pz~!{tF7*I=B%-xX~yC=~jOfRv?zk3T4NV9?=@_#d>@%A#sf z#$Ath@Hs5|AJ`VPvY7ooO^1duUV1O=oLYH|r)9N7n^eaV&r*4ZZ#H}hf69HLVIL~- z+P_{v+_F~oqTQyE)+TiSFZA*?hknr|aP$lUcr__<#wy297Mf~o@csydxmJhkcrJrEGuJG}F zMEBIFYGHQ=e_51A?0l>dk7HgMI!)DE%Kj<+x{S2grtm}WzShHY)C2#Q@mMMciD&9$ zuBJ{l8SCigdVz$}6x)`ETp&%6gRWp?7s~kpo$MSc6RM9TnrOU;>+3dR+gviYudq*x zu=UgXQ^;9{_yc2P>?%X)VE4a`*iOR!3ps3We`jB+!iXfhCUy|~U!GhuDopR{;g2zb zj}x}HG{#Q&W5O@L9&sLsW`lfO-gBT0M=lgOcx^xOTz6AvSrNypb?3Mg$m^?Y(_GMk?L;rQ-EV7Qu|%YAU+M(* zH0`X7oi1o%*zcoE50%N6a$Br3^mJPai@98R$C;`H`J|u6h3??G{og9WR}i);)8g&y z_5OV_mti4?VZbl!pPQUTR%&%G0_x$=U=9%rbjs*nVyAV$$7^XR0 z5BcPHSEz$kDI3@ic-~?WOAtCF7tJwW#zE~)iLrl~<^b6`bTgh=T`bg0?S>jHy~%AM zXMz^HB8eQjlc?Pt#&z5$8!-p8;4pTsj9t9@ZJI|^tf^C3-(Niid)UslYx@#;#y*}W zqagYvk2%RG(Rt<%;G<|lG#&B<49e>J7)!+0FpI%Qe1 zKyNXvmox7d)DiO0=HxG^eEQvm=l9WE@m z!ejCMZxF7C3m?#{|9DLjF?|u^x0Y!6c~_TMjrSH>i1E930lr`CFZVZE3!fIxpyzZd zoBGRX9cw!ZE#zq_4-yZjv?t4BB6oFpl<3~y?@LVqzfx0ZmDBm_ztCYlh5NCE{?lFr zsk~ptF$owv4kg$5?$}mn&1`CCjlp&{H`dPPMcdi@5Wy9-7lh47Db*J-E)xs2cGiY| zyG6e*Q<=7IqTkZWM5#%kf`5_ispgs;TZ}?VQfh?rvulw-XKb zWINMW6Ajti&i=luH#LRIfzSMieh0a(J!XAKzuV|H(RtSU^t)T=FRT>(R;${R1nX8m z{XRs`iLS8Nu3oN>sc{z#+SPPxf=}4@wcRO?QOIfikT=ZZL0!-w-y$-8KtHKoPYA-$Nd;hsMg@%bKjgZ`V;=hPy;c8IrJZXlPA zSU32*q7B4bsiHO2X&tYpwyJuHt^H_=+IaC2sw?Uw(FWp_PN8~!*aA?UAJhB{dI$UY zXXtm4CT!f!z74e9X0~Cfm>>7OMg9btzu^@bzhS<_|A;$a>!J{Q!12jG9tRluheeaU zBHo>hW1`8}23Rk|H2C|!1b(A(PNH+2RL)7`R1r%VG576w5|PUs+#c)UaYHf{wDGse zLPva{xn&Y$|4g)a`xs5!xb8h0c zL2H>$izE?e_sh45x_{?%(ppZ-MbRGp?qdQ^HObg08GJ3xCzxNv@9xENj=1Yb)BJkV z<~L|FLUX#1))V_~$9I2dLXR~a@v}-h`VLL;Scv<_?I-l+K0C+Wc&Y>XXu)Q$u*lmw1W>?Zdu&Nq?%3@HBGqH380a31_gC@1DSv?sjgcsqDWx>FO3S z`jwdz-gD9O>^z2C&XR5eHYP7a-qN%7m6VIxQQBy)(%Z;kGq9!hWL|z-j{3Dmm&nZ~ z$8e%Z;2FfHg1^pve|VjrGrQiFQQdKk>UyYdg@kEMyE<8^6tYU?>ZIl`WV7g=)$}vi z$I^y_$MV)^o6z-&_}EmA+WM?^rptC*=YPI-e8$zuCYh5=*f$YBC1rkf)D~j?gf7an zzCQh0>x~KU+iB);J{{-GutW}35ic9Gu-!K793bui(n`v+AlDY`Uw`^Sm zWL$6QVyz&vm`ru-xfs;1Pr^*P%%VohENq!ay37JHk1?{}XqJq`ceeK=nMDHjf3kce z+um(rQBM6>p)9{7t9+GSoKt2q&?(9<$|~>AYTuS~{zaA#W|a?QmA7>ZeX{)Atn$IE z^0wc??`8R!S>;chmAO7OQl|MUS$>)4jv;@kbp47#cqCiDg0=WlN2b4&tuOKD#X0pWiH;#1 zYkK@wI)1{ZU_w`~~es-?=Ga$;R@9V^lA)Q@1TrSEg zZ|kqdbPVb2(%WB>Ro;;0PwU9k+1cgWvdT}k@BfZWn@3@kT^7g$mux99<;%me|gOi zjh&ABo=sb~^nJf{O>P>S(}P+24xBP+O(u=)38c}SRDL_~w>&d8%{f-q`DQlVbc%C- zx-5TNR{6bI>HpQa@9pd}GGCVe)#}`IV)hvi%JMr`=Z4|z`(uIJ>tC$?_hI-4 ztB3af^TP0BtB3Bb^m)x3lN)!nuO7O$(&y!>E;FIJ-p`bKKjr_2 zy+14M9PqujZ8LEmBpsJa)^Pgj9Jo9v>7u~NbWzdj9Jo9v?BLSN>(U-h&9xSY?OmPO zzPf)Td=JU}UwvN>Pg0%M2X|f+g zbF4L$Z^|0KjmtMi|9x6~MKsek?DOE9rP18<#;IuWrfBZ-x^5ZjX zILcnjdL2K|NeQsIGSlo{dv#pglO*bbgJ`O{r|&Qwg1PlI=BmhvgMZgg#5wsf0VHtIv>p~fBqt44L_Pg9;amD zg@P=+@SR69WtrLZE@+bUyBuS^>(MOxZb>h0)k|{H3%5L)TORjC=GK@EW1sUpT>5D4 zyR)}C_j#D~Xzuf~H>a=&yH?Mfa0ORuo6L@Xi1RHSzUN;$#USooliICAD2DcAy?_|3l5 zTpG(K^ZHW(`kp{*+=%?2^gWZl&!%tq1Dr+QMY@P1_Ru9SThkHqS?OSPzFoHM3b#Mp zHgZ?$jq7)%bl{ywU+QmITh_B3wsQ2@OP@nI_N>nK{pWd*6mQgBENuGD7qPkcn(+6( zVUuZ}T4?NgTAn!g*eX{GoiMk(qH!sXZukm%k&m+>D`diNHVp}Xa52b5ag%VC~+S!E|d`Xwl z%v|Op$+r4dqJ_Sae4FNK(q~GbkRfmP9-7+$n%6Y?e+csnoWb_S@m*9I1kA4>n4d=FY`uFt=n^r~qA|-`-OVjt*tpP`+> zyv-ebo@jF)_c;wUn-5G6Cr!OAnQw&6x#zdBnMPaE6>a1C*LiE(Se;(T{It*IU*46f zqqeSmqb=DGFJ!R!`VU%%hWHumh!ROo3q)A3w~Z~J58gZdyHbAR45raLMrB9HU2m=#&j#@r*RKW2qjH8+)6+J+wAH`e^i-MxT%UZHYYT z^ZNH3>AQ+PI(_imtZ8FM=+j8`XVND?pH(0ArfRAG8_tC- zV4K-+k;kf_GlzUi^Ved$q2!|0Huik9EdhVvg|ugF`+8F`8dLX_0$z3lJ^Lo%y+2j$ zN+Gt89ml!9w1d^q*>x*CN5+Wj&UeF~+A5#&$G&Ms3!9>G8^NOsv>D09>C%q8K5Qyf zFIL~d-=o}i!a;U!hc;IWtJT8ERrK98adiT5%GZ=M6RaBCwzP;~{-JAjS=0T!7HnF7 zIPwi{mkRpm#00ua;+-t6xi~I3pgS$tlq(k((s^9X?UhDxo6J@0fr+7{PYa9u!qs7R z%ijm+9#T^2_8XJ+Ftc%;|HV-~^XU`(pHV$~=+ob(^~@*y7rm^kN70I5o5^jghSB}` z!u;M;Tz6UV>2#*5iGQR!kK4RxBF-xEbIzo;aSy`2ba!R{pnXtHTApxUVX>9&mmeLU z8H1>EQg__8xq%Ib9c#5x)%VgW!Xyf6aZW5znkv>tvDq65h|s$*^rujuz0J`2k|9 zDLno^w+E`3?Bx4y+XaORN;sWZQ|cMCF?r{purKkY`7lfST5G#o$fRMjmq08zL)d&D z@fY#?;5$D-oK4Ui@Hx{aSay!psZ(dVTom=<^TFv_W9s1-xTp9s9g>82aOYDF;3fN9piLpehy35q>Yi_ zwA97vuTHk8=S^-WYsZ(g`))hUYkgb76YPDrmi#&+-ifcih{My?d@uLI5&ItIch<?USCm(6|Zm(#+=h>pI|RGg`RWYpv#19ilTLJoZc$et4(ReT8@}0>!U7@-8os< zu<#s6w1)Xu!+?l8+eY)b`W;#wl2ZQ3odOl8#vo%ZRGY-JZI9% zJoR40-Wf69EBbCZPvnE;@myuR?+d9N#Q7e$i0WQEgXeI9kI;2IH#g!dia6S^_x$s~ zfY(Ta8JE73Vcopc&zBIt>C56=MhRb?7VJ-L0DaTMbDSnO5Z*#w_c?^ye@LHcMwBVv zpz^oN{JUu}!?C93dOAN*{*Uo;>nJd=q;_C(<6ZmsE>G_2lc5xbB89{R(_=?h+9HzE0#|?-dg18&>Ud(+N z>!S6jlDW5El>2d}+z;@gu+4rBIVum2>WR`PJ?3QXKli0(UR=b_r0q+{VMxZ4`|T6E zj@tINOS}RXJ$OCN`drN2TSeml%3w1GQ*Wo_;| ze%?jharmvI+j_%(+utbG_!#lO-4pYzDYxZYr@?Nc$zz>Hv_R7W`VJDEWYM=t_uk9& z9dEQ2UPR^SE^jMUd0aw2oi~HVGEb*-*VJe=n(ZtQZ)bDi14(yb?JZubA=u9RP3`QQ z*LqX%p|bJiJgWPvId5^hZ`exLy&!DB3t;z6zn`71Sb@_V)&zpPz*vWM8ugcN#&|w> zkJ6gNcmcyc;(uz)2-Au8(c-O4GY|_#&?|`NQc0gG`oNy~Kc0G%+cQ^Tf2fV3@4w0Y zFCag$?cif~tJV)_T@E&(eY%sI1ir!<+(6}F2dwa%fXYV1{X#n>^c;B5DSd6e^U|BC zHiBEw6OeJJbU!^reZzKTzVyE_eq7cwKzn|C+R*tzZj%}vKJg;@i%D>%+O;eRDDpU&gJ6veuP$H$+CJbfGeWiHsqCrXGux~4m3{dVs@p05JD!aqvp zS$cQuJQs52Q5o>mZ^-xGq_T&oOnmN zh5r!B=LP4Q`AxfsUw<|6y?y&q;KO}R6?VPczY+1{;kR>w+Wc*Of9g*^105w~cqjB% z6Lu`8Ag%e}S`j|%^?0q*sQxC}OaEA}wRMV@)BJ-u=#@3>G#=LwdC8R#I{aj*-RQtT zYT-3S)^DgEoW;R-&%nEMR{WO|o{I~a#F5jz9RBfszrHhp`0_fzeZ?ESsq}cHz!8;1 zmm%JPZS(xW{(Tv=^^SK&^|hD^{AU;3Y$I5;-x#?mE4T?#LFN$A;6?x|3kr$$cg@ z#ff-rN7L7L|53fC_YeADEI+~ZXj@0W`${jx@GgO2<3r{2N*o6l6`seC=pCYVKhSFAseuMc~DqnGa=_`E-!{zhu4 zziZH+8$J{8mGI9lc`xJu@4vn)^|6%qA`WEHu>PaUU$mYrmkL^1!XVLMVfL#xb`8?BgZV>f z?Y4ZyD|}gK{e+)vEHQQeV61-b(;RPg{CQXqXve*5Y^9=px< zCCNw3^1ucLzuT{z{sxyZkD~H;H_C7&5tnU#mh7|PbRoxBDEIScMt{m)C&VDb99I7x zur?Pm^(S8*O}L%*p}rixQl-{m;=5hiVL?+8%?$d>QN6Km(s_7aZoNq~^q0o=r}oo6 zeOlaD#C%NGQ9%D$vtr1{HkX_tmM_L^%PGD#E>lji;NtFht~d#{t=`tN)RS~?(Dmo7 z$Q}0vW6btBz&QWW_UUmMmP%b;lkPpKKg3r)+Lk-UmTgnpP2;p}*$>JXTko`ezA@mU;db>LWkU$zu~h&r(9~ zBhp`=`0EkVqHDPgFyhjBj}Ot?z9sPPo|< zZ>9U4KKfdw2V1!>o6Bfn$amSGN4S5mKOSK-i8cT~%V|}qM^SIAF+!leg$dz60nc%b*5-vubC*b0hziLU=CPl6%pK>eR zfvpMK$5X6vC#$7bSuW%yFt>w4wv{!~Qv*Cb=QPEP4Pxc7WlE7r8;E>`i)VypTx z!87Q$<1U?<+*IdcYBXkTpl^?|EV*Txi_6er^sP57OLneuu_%4EZgR1i^tt84uGF-p zE-qs_2DqkqEQtSCLQR zuZvBlcBfF;PU_oz+4?@SG>=uI8?MBxymk}EFEaACliLZ$r^D(u)rSGASc4fp)IdXy5+Cl4x z*bWD!?DWFl2|QHib2H>IYeH=2tM~924Fvno)cJ<7Gv3;lD&V;kySN?#dBo$?&Os5k zDe+j%t6XkEd!PazR8kvrzp|U-Rmj#0iT3zE!e4g$h8?sQ*pJ}Hde1`In<|3$kA6|s z^WtUQ@snui2fRFPh^-q}f-&wFTaiUWW8I(LEp_5VtAJNSJYxsZdX8YE&!dNv9?6#? zM`Nf&oWDOG&Wv$zbe{ir|bWIIqwJ?+acb_WHgQ`rI^D z;r*Vjix?TmL5|#qs&X%E{k%TH{U43V=YCLI&&#twk9Frctlt~l4njRBb7fAW{`>_c zxc8H1&^i`y{ZP#M)AdQYo`|t)mh1H)o~QKfJh2Y{=X@pA7VP4BN1sXO_dK02p*3;REb8!BZ^thxchw}?@5k<3NdByuXNb>P1{ z7~-KEeU0!%T-^CCts(ir4GOpIa~a$C+Kuu%lTVKpvG5U}#*6sH^_%*JH-r<8%U1P$ zL@-w(;@-bD&k#5uUqzlqo)gUL16{CpH|K*+&>rUZg!@iN|8#s$D-y9`x@irsdUa1~ z3$=kevU4<`WI6Dty%SHk2Y>85qlJ+dOG6kbKmZ? z^()L=KeYR-QqA$IXMvaV9h(U5j>jdQ(ATlJi{`5GJcEf&UBvZ5`~~7G*r{21RS#1iig(B0Pr{&N_&F+oiHFI&5K%%}n$AK#63lCU)cuZnzq>XBWN zzjV8O#%98c?qSF$4w<{6_Oio=2DrQcbQkPPuHN6v{{u$3UCDkfJ4tlLH?tj+9XwwG z&y%3vljLiq$Ie5}gdG!{{Eol!yx!C%iPx0j)jdjHb zN!}SUFdyesG|<&eYQ2ogCj>R&7oK8 z|pS_#gXLOM4$Pu^I27+yBK1MAs)f9|LIKuAKUW?)~H-xJ@cmy3%L#Fp69hr z=Qcwo*BejNnveReM0{|o)^svYGtqnIU1mJKDp?b9GA%kMc2k4Kw9^o)~uZ70j8-}!-7(;JHQ zI6|>s`>1Tb-eMLS&k>A0!r}yH$X}ROy`Iy-ZyTLFf2=PQW_ZT`$HM0GH$u+c&LBVZ zX&YIU)Wzq~#7+m#udJj#pJJ8zN>)XmJav7aPTw{3AzIL!qOD}p=rf=G?xiE^tQ#AMx0sW7ZD8P;c&IJ;5Ae$R@3~y&2%V)31UK8x5OVkX2xeW;*BN*UHB zZcVf;@~sp(gsi2J_Qf|V!h}3KmZ+e$`slJw-X`)2bNW)o1)1VN6MqWi*gs@{H>!l>|DCn zS(kELh5TeQh!&j9^MHlR=-iEsCBhd%UM=t;;?eNfhcr*Oki|TMJt5%W?dQ{;oP+rG zL{qwn-a3QFiX;AXHMLRQ(FaEQUf0=$ym zY!ZEtz}?^oe08uLPaw=z5uOjJKB4a?TJV>j45XG)J4@;Li}ZU5{a!-9|C@equPC&j zM>(Bv&uMdeQyzzq!A;QmQ}ZQ`Q37jt+(x&QVU69DDZ_$nlE=2uMa;LUJP|l4~Z75I6LoxK@Q&f)Is|RfX zcG9>+ek0I|RoAGTMg@#6kU4sa-X}bqRS)ZodYZJ6$fy^HBvBW0{p3&kQhNg6y@fr3 z)C(pQV?Vn@*eH%r={NWh*feGLW9vSbs>PN{_?XA{O9}d)$~ql-%t>XPL`QPDHkEgK z(q-cOUghw~@Be(Bzo0!i_jMtIr@i-Xo$9mf9Dm4R>`Tk}H7LWD^$T&=@O^4euGNHG z_yoZ(VkJR$61hak^H)0@W~s~t=1Y_1#b>IVFGd_d(5c|TwiJjn+j)-A6T1wtURruQ zLhu#;L3lLO!S6HBEs&#d{(|6h{tdptm^*+k$bDAz3K&~e;o|oqU=4baXNjky#d^l2 zf)8#r^_{&b%EBo9ZUR;-g}A*IIccS&$sLqIc~Qrt?c!0FDt7xqQfeK z;bG9*O`(06T`6R52kU!N3necN9J)9p6UPRpeuWT?F6+G~P67BR)^Hf-c%qf{O(e1V=Ovz@G~KKMpy4l+On? zLv#kp3I35A#);=uddD!pvZAeKfMdX{hiGotb#BpGp$|(2D#4G<4>cbF zp8UgJ+Dm0w@;~?WrWPArJPzdirdHOdJZi56T;^ISror351( z`ZNYxnMP{>Tj2`5mF=OqK-S9T#xy77slvHl4m_oS-s)oIO=3?mKFojV>D4{^E312s zj1;+z@43@q%_H7nY!Tj==Mn4NM(eCfSuWycEy;IT^M@-^ zKSeYMcp>8zb`&;GkP}m1Ha@GDFbP{S-6*sgy)KSta9()6Nkg2Q@pr$Hq0dDA@uGdZ zjw<_LheY+2UmSCs4v@y%>tcT&g@km*`ZF3kZa&cQe<4WRX zY0q?R@J#bKZO3OrE)!v$vRwB2{@J@z($;S@KHN7Ho*-1Qq5BL_sLyaY_LAwt{##h7{UG@6wgZ7L;S*C{eW0Tr77#qPM zeU~VP|Mio9a$6Gl8sxUi;BlyNo15|@9aKeZ_E3$`fQmh9BK7QxahxJGgFK7GWC{rYU=XI{(wKkT-z+S5BYmhU%$*0~<~(o*19*cE+! zui&E}p*uYw+xjK71Ke66br7qzcgGhH>~8-l;n3&1bZ|T;yYA(&YO-~3 zX7kB87Es=(cJuP-dP%_Yf#%Pr^V@KaJEtDBw>c}uR+e7!*f{q|ddXije|j#T&+7BP znls~Nc_coVR_f+wJ3wxO>FRER>DXaW&S-v(4 zzK6=YGs>SP=TP+-@cmh9?E8XitbD;W{wVat*SIhA#n$-up)a<^zY2Y^HQpJ@)X9HV z+|baNp;&6j2?Sp2`LsS2dEWTBs}|?fC-=oA&(9A+;_PVukG2ZyveqOb@j++S9Bn+g zGHZMlqYC)=%rT-K_S3d)u&Dflxz;4jre&%0yXAO1%kLKB`&L$e$S;@PAI9}NxgO~6 zj(>AKW@qiWy&kTb!jskmFmh$+)6dn0QV|b-Y3)$nvV*ce_z7PS$~-4FemyiMFK3SG z@mc4@E`Q)0^`vu!{H$k&hVZ=|$Iqh-7se z(BAh+o@@L=pPqx%uKUrs`5AR_Zq9fpM-Ebc=A_?GnaCB*?F+MTBhE!3)pyC~iXH#e zFZ!}$)V?L@OeGDzp*MBSF0>8=g#A13Q^rp~UpybACgM9Juv+ z59Z)`vS2Vhuelwk)G6bXVw`t9DBv(1{*+*5U)bB*9?TslgwH*g8BZ8rbJlX8ENRKBw@PLRX%kNL{ z-V^c%+7!%48^)kkHs_(xdxju;{l`mdk^G@*+u1doTX%xudwg`2Xe=rT9DPg zz1F{eAa|_G#aZR6WcghWWR$trKhNBi#wa>t&EW|gmz<$wIZ5RS`$%g?zNo8>-m zT02cH1Z zSI>}NEatL(W)b%tfL>}QeAx+Jub8 z|He;WlJ;+aK_88r1mPdU6N^?M*rh!|I6t=VmZ{vI`Bg-rf2>l5i@AwMZGEA zF%%OB`sE+%kgLKs&G%vYJLI(d0ljk{uTG>thkt#Hp6gPly`1*EirPi)*xMiIO_jiB z)CeFik_Y=@j1zlvw%i-|QfwUGdvxZ^F+EN6sry}7PaA!X(8qtctY_0<;ZwI{hszqX zO~x%yVmwbG@*=+a;ZB0Fhq)i@EA-n#zX$iHwusAIxxEhjI&|Uh>`Jpg!5(98zx0yK zkr)*FL+AVO+tDuOf1dVnn}F*ArLzxqb9v2=_i;ZRRru(f6Bl;3Nm=p_CO``5fQQ!ZoE1joW>+&*qEgS#evh-w{h|6XC;$BDWE|-5uE`u0e2c%r)Et%iBacL$Wqv=C& z!#I5;^V_E9cAvg96Q4RH9kD^;;aFB3+$WQke!d*ze9XwlOLIPuo{O4bwR-7LJnK&z zYhKz|E0$))v$pr(gk00~82ISNvotfFwO!sdA@8IZ_$dGJ{kdcKYgy&(JMZ}YxnuZa z&C+A$+cDmb+@Cwg^MSKm8RhFF9eU{g-0>x=vc_Y`@$9`ncb@dR33(ZL&nL_B@%wYr z#gntzpCZd|zklc+%_TeJ`<*5`JZayNEByXUzWG%9?n>MDb@vbP&Hu0P)_Q+tJn7E^ zZ%gja5mOj)-U*pGwrzM@bbpTg)l`0NR(TuVg7@dhUrpr~W|g<$ZSMU;GNn)3-&$FI z=KZ;4O4<8cC(BQ}KU0s=G*aNKC28dkroo$$wU-eo1Br~x+wekGsZgR49*>}*xhxm{BS{2Ufi`%5Z>eaI)ZB4;RnISrp-LRjJFgM-BI5VJOJ^Vfv@!T%_A9)|kcy8y=eeCU7 z*SE>Jmg)Yr400!5G-5V5RoHSR8Z>dwf@a+EOR7t2kKBVkb4AkE4PV~P%opFlqE5wB zVSj1F&QrAcL<6i~74a2GkFkPPDOA>6!8DUUW0i6KjOp}wi)aq?op_PfzBHByS1YvM zv*6!;9%7k0lt99xtzc-6+G>3r_OrAm9-5agBx0hdv{qQB?exy}y9dm{_Ow#M9BkUL z--yxRF~$n`F?dcz4r73=5`rU5#$qW2oMCP{;xx>KPPv}w&uRyL>#=&ouHiQIgj-Sr z1LGa~?Pe&y$Wn*L5)Oi)Dxx(w+6UTGz7e((JG(MD1QklO3uH;#Rt-m7kAwKO?kHRj}j>p5-!Y}$nygm<| zKi;O~@zE~g3KYN>BNVe<-#oM)qp%(XM-}|P@Sgx&s`MP|!{cH_X{~6Di(nIG1POOL z&GPBrPK+|{Oje$U`QFLLALe6pn6T3*pmii#r1}J{p|fdu!X698VXwmvX&i5Jd$O-5 z?btM!U;igKSBe!Jt#Di8(0>sPNHi;tAxY=X-=pvtLofc+VO0?=e&}YebvyuDI)&)B zMr-Sge4d+8F&$QE4`LYRS#HqMA;l^s8o6?5iFGVW_W{odI+#~Iqq2SB( zya&%`C+y!&#NJTm%W`uPPUD*)rHS6fMH~6>ca-JavYZN-^xqyr8OV>(UV1wo-p<01 z@Rd}!J+G)gTfRsAg`paP^|(s-hhVqTEaYnte7R8A*#(|pe2oYXE9NHVd)?tI>~1y} zyQ#1@lL$4{G6Y~5;a%E61Ar=w2t zbq;s`Q5y!Z*EN6vI`V-1&p{or|wt z&R(av9D2Ts{ZD>>YT?D}SxmkM4njOd?W-;xceaPhZFdkqy@z;2T8ksY@~x$>uV?u( zb`baFqUTNYEIPW2uh-r^#IyCl@3x)&^SR!XM!5O})kFFJE?%D0=-mP;i}wD4Jobct zntQ`Z(FbAGkkt~U>NS?h8z5(;#b46s$ zjg}{Vms!H^(Z`vVC+38hnI3BU5t<9`Y+<|nIGd9GKE!#pM5`z(3uT>E!^M2i?h;uCHq9#4yBYEq#LF_^-y!UZu7@ov-PNfwaaWh0)td?tE~zut zF{iQ0tTUD|gWF17XW@V6y%Dw{9HD1CHka2y&(ThLyPi1WmncW+JK>7{52u4Q9;0KP zwP|OBt$JF-7m9U67-CMvCq*!K?r-)jRottc_8Mp+R@fCZmu)4H=(y2A`*eLUj_xg~3a>?ij!`VUH+EGS0Im*~+Jzd(({otwyKjR+4{o|)PAC@Vp zC5{NIl<~vzrJeCSj3dnlvy$p@{gEPc8u{_C>7zP;t8Wqv0M1LUi6jB%_Y!Q^$n%JG zTmk$Ny(?4~UDo;|THCqt?zqdU>N!HZJI#t3;dIcVufd)kb4H9OM?BK!Fr$6N@SBK- z$GXh$`S6o)=`BgnhIKAFBTa=?74i_%-N$1-Q`;5MR%XzBtkZWL-HYF(G3X(pk2sxB zL;EQ1N330qydT}0cBg9Py{z&)p5k7{d&Ib_F*h?EuuS!e@jo?#D*fgQI9gJ7Bm%Y72&nbV?Cie30JKeTTX4&#@bn}hPZo=Gtg%a z)FIjpYvEAvO?`*vnNA~Us(K66Yo)Re!}fWEkNQ{R^OL}_u+M~zJmy*>bA;RTYoYnQ z!tE0uXQ<;O`1{$wz|zfPChxZ#8{%1}foKJRCj}^ApZ-uz|ch30`QiT3{Wb za&@DG?svSbkC=bx4?cOvWLsm>$DxV**($Y<^Hu|YN$G>7<>yVqC}5)W3Vq3sz-yT5;&DcZB? zM7y0))Xp*Rfpj;1FJIyFs6&og|7LEF?&17vEOFDv1Ki)#CH>e?_k({8r0R(F_zTsa zEOFc9D>QB+4&KgL&Gp)e=9-q|Xc~w0uYsdBAE)?dClRx43eG(7Uo&akI5%p*muzUF zy(C_16kv+>R2%E!GGCuD<7J<5=bLr<8a6;UYCwP4nlvNUQ#K>^Yll+BbqTl&v46O~ zwhR~d*PUZ~Q_~c{bd*gV(+&IF5s)2L%;<*yJ&!rC+T}D=FZWFvuX z(I49%=5bqwuM~dV@cZ#oyM@%($C|=v5jq1$YxT!CeB^Qb*vaE&!;aoj*J9nWdN(iU z<#=r--=DIHG(Y{0q?hWrn_@k*j<4BurhWJdFR$v~O>*C2?>zVzcc6XnBx>xY(-^d_vj|49PkvqSOG+#>ET6|( znr&5lIaaFr8_E=a%P^Z?6*)#kJQ(PzoLXleaEy9JkLA>!>Z_r%RX}^HDJ_U0HbUmJ zNbvZDG^gKN!d4l2knr(WQk6!b6*{Yk`!1A>r1M-YV&SWWp(Kw-V|21H(_@L%V@8{+ z&RawH@lF$dt61MNi)O=jt8(y8FgiHhgJ(e*_Z|M2>Nzb*JLVgFDE$9?B{fCT<7Yac zTN80Gm0#{Vs(fio5B%&fF4S+DS;BQ~h%?csbh6;I-Knv25r;66oUDnsm580D7-0rI zQxHDt1WWLBEFpNADdPq>Xy2UtUJEn$=k0Zt55`jaG<(O&@%e-Hj*wY>_dB0%%VOIG zR*lcJM?&3&S#^DO{3EJA&6h9ic?>Rd=kPJ%mznXa=kM%}XUIEGk(W1n%%G#b^qt)L zTP|zP%F7E`^CjQOVOQ`4`>gv;ZXI)=F8`!HQAhurW3=ruDo!=VQ{(|gJN6h4$uT;= zlRMAtT#PYr@)-YqU#5)QmWeK?%g>OB+IpYVeV=Xv(NrbiBvO~3Q!n-V`!eO!Q|x@F zvV68)>R0y-^(mKSPq`Nj}7FZW^3D`}^Wdy{~6vJ}+N6A@ls(YnED^1E=|g4QaN{2)3kuT>R88`(V{r=)Fwoi{O&b?2#XLIdS`{LZNeW2QVQa*Lq zs5hTtpRiuJbbI%u?GtF4UlU(|yLzN=cd9|sHhlwqgYgJvDuq190QY65ck{m_d_e1< zlL!QoXHmZ!>b=%62hqgFkd1EMNa2qM|IhfH#n#swcBkMM3_sA2vMhP-ls&vYm$N%P zBL4Ro{i$N2NkjTN1|K|>bCkxc+otY;jS}NAJLq{K@y}IM2R`sT{y)`2*>x9En?!51 z&Dfp7xG~oX^TG}{RKPu z?0BP|#W`$=bNE>V&hq5+T|04aCd|%1%_DLU*SSvev-ks*KXz{>%r27U7oX+HC~w2K zd2c3evCD_D%G)r0;NDNCMY8Sp_uTvW`~^=n{~h;c-eI3L|7Y*by!StA{;_*A@BPo3 zf9Jiq_0y-Cf7`vE?&qhS>l?(4??~I0`~S@~`)1Z2eb$=Y_8I+s7XH8X-rTw9aku7* zZ9C)N?C-pLKmEShQ&TdyrnVi$xPPbosnPdE{IUW3hW5nF{-1F%)>}QQ}$33}eQjW8U{@ak%C&v1tdve$%Q=KhTHl4<_ z*S_nX-1qkOtnxMv=(s2My}c)^yp02v-}CA8RYdx6nQ7-aeGR^QPbLnueeI5A;V7HV z`Q|;jabUV1*TFQN_O^R+!*+L;-&ch!Kj##1V@$};$%|ce3b?Up`4ba|{I6{sIQ27N zo1Z6R=sabw+4y_D7*0C#p3jGKPn-hh7T=S3?|v-T{Mj7-p`f`P_vE(aRK}d_4}#d& zf4e(#KBwAKdykIZ{rTo&*U$E0I(+x1`}TQiPd<11vc_n~@vf-#&*;xShsREF4%gnDn;*#bkF;TG#of90xT&Tvr@ih2r~o&Z6XKkEKI7b`^X^#VkDE@uEBtA^#>`5OxHoBhHm`9o&ENG{Qzq_r$vn}3 z1;{l43+cY6GpYU`n{x9Ee2g-eGU_zSG5)40_ZoDkmB$(cWcl4qxp6UvgS7H<OgO0`{eSNIRE`R_sKn-c>6U8H$+{5Mu^x zO#g4;PwSL=ME8!@c|0&5@#KpFt;uOi8);n7{VbHS1GAz) zz?&lU%->u7CXWwg^Y@754xP&$y~HwI1w1Z3=7c!g=yw$Lhj>$V48HXII@1dBIgH!7 zh_6t+ZEHk4?uAmPf|%Nfb2M4$V*faQH_v&6IU_Du|HMM;cQ~W;yi)prxXjH*j-S7K za8BUE^$*K>4*j`oFkTmOv$UN~?U#z&EYNWs_<3foA;?>hZxXq!wyVX1xh7LRGS8$P zD;j!8nFq)v<11qQ+T{8PoYu*8=(OO6x4VSiZqaG|h-b!QWElAcJia*c)*lpkMXd#R zFY6Vg)w@;J3sD^&D_FuC>fCUOIPhn-3LH9f6t zQCiuH=sD&g@_x6oc^=_wjXJPPwf7fool9kHyL#*;)*12Lc2FIZ8F$)H+)Zx39OCws z+&&fYMVo8F$;S$mqs^{R@_Y1+xZS>{n6+NXH@QtM-3fZr@+5q^T(g#&(BBT++L|n( zGcj=ME~_N4i_6ukcsnA+Y~}RXM&44iCR7SGiPbbFH|G^{67W; zUZ@I&SY;r@5RaSd-)Rh$1QYXU9D}hXWt>^=Lxo&sgu|eZ$9kwEL|ixShp2C69^{n> zbuw2|C%gKCeW@y?(~fif+J0|=_0b4%_OLGI@cxviu)wO4cHDUOdwLcx%;T}70G}U@ z5P1>oyb8!;iFRtw7;5K@9PPZC)y^LW+wpMw#yLi+Pqybpd(+a|dm%@AKg(+Gb-O*~ z`oS?ROl#wZIojBg)y505jq9_Xz#(S_Bv&Ib7C0RO@rgwk=D-LIoes2)lQ3S$5FuN#>a9Xt&L!gHg3*p<8Il8 zhvwz<4z+V4t(~vrXy;2=?c65Y!P$Xb1bp|9bE|pr!%5`bg5BN=9wmi49lrs$yeyU5 zPS1VvxuQHa`20C~&hzADJ>TjPb`{9cFka@IZAORUw@wNl5K1IF6Oo>npK9oJ*~efIr=-CqrZb${iRM9 z{W;YQeX7!gcD?ECHs)xzH%Gg_%xd?bY_~vZF`a5#pRc=<)hMf(N11Ou?$AwVJf=F; z<$bVY@oih*S4e9}&+0wOt(Mb_sd!#&KR08|$Y+jRgpTM66S3cYT61z0av;%u+xx%Z zB`?7P>{#f2kA|5u7E8eA)D_*#?6KQ9LEtCy#B-ntxosl1{WED0Xtoy==KlB|iYWbjRZ zExKl`WECdj#IIy^@s-TbR^)-oD?x2Rh}Q-g>Nc@Tz?f*&M*C)(ax*Xh8Eh$^9>)V?qVUHZ*Dmo zg}96K4Y|z^*TfRF$epBzSpMoSB{jMO3#z*lm0F0^7;$Fjt{9-Y%b$l&4(!V+dA<|a z?>tyv$;Yo6GcFHbVqW$%eds>DyzD$PQBc3CFS^1-v_dBv(=6h>dW_}6=>8h!(mRKF z0?Xab0Kt&aqE#4e!zzsRbT_YORXXfe5qEq!^J&YOg80u(ZNrd@nC|O7kG`JUXHofK zRoePtRJM%D4s%vFp9cG`d?lt{0Q>B$^=QR)UXkQ^*dc3tK5ad= zUCq~{@D%GYV{koAPg{@EPq`k2v>p}O1_r3NS$Gzftm!)kR${)#n z-J3f2zE&dEAL4W9%aZw$pM3PkGIwNf&_8V>VkCnX1>b3xYqiTszO$0bA;0=?;Mw|z z%@Y@wGx)uH$n&P$WPL!qmmM2)>cB*z`*~cX*X-D&_A@pxa2R&?YN#!#8f{5#OB;`E zgB|<;oIqp0J2=l}E{>->_048pX|s9goN{*JVR7yco#SNiPpc$cQx zhUd553_3UQ+nQ2Y^C`j_m_H$z3}nA6yhcn@IG&XZ`MlKru&qeVfT5sg4?Ob ztQtSv$<*J0&MumJV^XL4--j^}uc~*qbK7t1JD;BcJLl_REBH*F`dAnjU(`om#=R?(8Bu zW)t5t_-puh&QsF@{B-!7W)0mn>G@_4Jv*3(6l+iSqJUG-OuDhrU8`?&t6JEhYb)JO zwI%-p?k}*B=VZZp_+l#u*W$=?nQNgC9;l$Z31{jM_K4oWPg2*w^MJOQ4<9}5>j6G} z2W(}%|H<#`pAk${g&yOv!j-t76Ftqb1pJ5w9-(`Qo|Vv^3_P;Og0E0XXpiNgXCBVe zE#tYav3^>fBK!rL0-&!-X}wF~JA+(g9guktU7~iw-uHU&jMd0F4Ij7DkV{3|i1xS) z&MABs4tr#-Mp_rHHVA@Ytx~s=J|Av!OvMZ_cZ?kn)^cP8*Al> zfkxfT@@YSPfv^b}!1`gH&OobKK>O{adpR!}OCXmI>?f*}wXA}lmq4N#=LPfg(-^mH z=+o)WbJ6{eTrjoxUA?ByBk~B1@M&vlZn4CCsymIwRKRomtfl+G!|?~+ouEBLxjf}z zQ`Np^+GTxI4srG!bewmD7yR62Ory{A(o&u~>!Wj=mRc?1wRomEEr&N|smMVvLdbyC@j||j zbuIm5z>dB5j8Y`#td-H6FE8Y=c1mH#O!qU-ll*|!(s>?6li$~Q!8=UYIK$s4J#XH@ z9}VTrBUs;93EHDRVk!hfd2}~V(?yPCJAYsFB9|p{mY0jp@mm+f}Xyw^gr-S@(J}bGyE+ZR57h4sSWviGc0_z2nzfY22;Mr?+zY%};0X z**N;1oA`KOU?b%5$agb^-eY`c|7Fl8SvgdYlSuf<76~zUXTh`x1b@3apix>pZgX|v|NFA75Vl~7?9wy8S=c-bB zp70&xyWvE|Cu+3Vgg1`n^OoeG^}9ji&E0 z^r@lGSo(~kPp!U_olT$d^f`w+1WSmI?Gql@@JOEphSbFI^AVm(Cj zy%tAa4Lw%A@XP`(mj?fKSKq#jT$g^Ob+GMY)Hd>fb`#uS|NGNrv$VFz!{G~v7?*D8 z=l6}-y{SW!T-Mv83am2?sXw89Xnm8q5n)%xdQ&GR7FbL3-6Af_)B=81v2SPc{ClQ_ ze1^Z=Je0qR?wJmPfv}wy^`^dF9(Nyfy;J5Cb#vKyd-A~H-jvT>!sGLY?|FmEL_f`@ zz}B4}Pt%X5>rU_ZMsD5Q$EUCjzWy7ZPgm>85ic0^uRKM6nk=8)-_*4JkS`bWZ64W@ z^rz*o_v=nJP3EtkBJhA5F+B?=6>^+ZDs!vadG_|4@3G=#1w5xq!+0l``Cs$~ z(PaJ!ybs0S!FXM5HG}TLrQL2KU)^P;u>|+6+B3u2R9z?X58<5oHy=T}inD#eMMf)#Ntx<-E=Vq#2%Ri%l%gU>ux8gWk$l0A25`8vR)A=YgMNeS|#j+!vYfzt+rscxaEt!*>a^ zH`Wb%gKxWEz7KZauTbAT=zEjfrVo)H*KQwvXvmZ3(xN=CoeN{}N9n)li}1{NF8@UT za(wSo|3a1>qBd3y?%)2=1(++3E7qh;cn^E7@qA@bPHP~~1n3Ru4wNAA;r@msXb?ddWQ);P?Pdf|1N^hQ{}S_T`l6|!57(uyOVHL z`kg!~WLh8m5P7xMGrzq@aUtV5GSO{~f(;7dmnAy-inV2CaeP^y%WO{4hk59uloDTN z&^Y6fJ}wgqg}L7>{ieMMGYey*`FGza_z}dN6)|2q_??Y=YO>CAba^X@?tJFQyHlQE zh~R+kYCXi|4Yhvc084#w>=*70%`!8Tsbr7x4^ zHn4nSMbc?}-F&*9?p@>?_y30b=M6~z+dV(tm%^O*d?dUUb6TQ{{bE9%_4{#GTZ)Tt zV0@8zyo_KX*3NLZH}=49pYSK0*EK$eiSxRR@ZthZ#)AaSvz*q8=taAIo~u0|&IQgq z?r?{YQSdXeNcIW8Oh5JMraqknBNzkv1AanZPJ$2g=hwQ}OzKY~8W;4g=5KAqI_4uD zhqjjM>t{cgdB5Ur1-)+TwlO|e`L;OXyEKJqoXx^MgXen#Pe5yk_!nxEGim2?eb$uY z)Yh>@G|oKpTLiDIe4JlN2%XuQVuz_3D@?=!!dQ_ra3qbjzz-iy5%+R9ALlxDu^gku zW%f6K?%;A3@FCcv=ZNMgp|i;I&LK{bh|Azbp4ym8;7W%cF)OJL7xjTTGMPKf&bxwn z`e>d_I}3Px3!Wp4%Y8O6z$(#daxVfF__x{+_%+2F(uUw*KlSC}aau&29o#i*REHT- z+uy?&=26)rCH*NSj{N8I6L!9IoV`5w&PzNec@3f&7MXdFqwzeG5@s%YssC{rJMk{5 zd>f9M#rP|+PuJ2p`;JrO+p*&yV4wW!nFBl<&Kk|7g797i(VU1EGY)HIU`%tszpr$q z{mxUaOPpcjZ1~^CWA%i)t1&*nx(|GDT*j(4#9jz^npduL;~iuPG2|XB7k;%d9>WXe zp+A0;%7ag(cSn8HKIj2gpp(urJ`Kr(GUuo5!#cP>*ADGZjg)l)4*CAjJZCm-<}tUn zyxc`NyqV`4DnYJVIy2a>YT_X^x0ml*o;-HB>!z`M9kvus!lmVqG1Bibs_vMi2;Sf8RpupBedeTmy~S|oszG}-Rn=!Ckqejp zo0`(e{cRE3N>RcgHPq7LjooRgy1#|Wga`+BP`Qw*T$QA9p@B;gzxC_M62gI%kQZxL zC86^`EDOj3Jk%a!aO1b)?&{<+A%_;G`#EGnc2E#kOvF%ecCRwM%FRSS%wMf(?dKC6 zSbwpMGXy;w*NvIsB<>lfDfDA+Bx8x<#Ol6FrG5->qCx&l?H6dOiMto^6!P`3f*4JZ zF(6+XbTe}_$TMg0`)tf`(D=;+)100ep=e)C+CKg6K-hEyT1_?JHr)Z@mjQ3rBfbLN z^E@t9gbiF8PL}B5B;>}BF@R3=@i^{2i73W}F5XHZV zja?^j!nhyMw}BWeH^V2M#|Lome6*dc0J0v)6zMEDB+l@Poap22_$B!=)(mi9xx@vW z50>Y-FCFjFoWV=;c}kug^00g)P3`-2FqQ)DanKrZk=s!r+7LJlFcdEx!sobS3v7HIAHwH?m+xYC z7x$;)PZd}VFA%-?B#+^5m2GRZYC?#cw3*AHfag8hW9(d7H^lE6rIaV1o$v= zWIj<_Yp%ooH7z%B7lHmjpKBvJXl>*Y^tMrd(DgKp5$!4>1`^=PYoy(;5x3Znd}()N z?}tWZifJ$M?HqRUEcxjyEh>z%+x|6hG_R~NG7uU!b03<7ulD~?h7(pdZ+k_H=@3fFPh)C#6RP{^-1{xa4C3R+`E|DmVXTl z^3kdmGVL?VV=vMEpd8NcYqSpo=e7`DZb=U28OGcU;eSvq@if|eG_6gH0qtN6+&_?b zNwkOZKl>MA>BOu*ell>B$HM@gBsloJ#P5hfvDNJzv;+8VQGaSniHO<#BVT_Cv>}i0 z84`F)_iyHMKj5yB7YG;`k%psHiKBIiqkmH-au60&*!f3$+3C15h*wxtxPk5Zmly|P zz~@PvYUkAat{h_-Kl|5-SWW>EzY{n!PiZytCElbv((A(g?~jFncX?h)nZFSCfk)Dl z(|)-7sGURi_)yN#1m{1R#NE?(e%jqLhvqd4wuuKb?w{ukEPEn|g&{`%p7*t?AQsc{~&n&aLlyN&nIh6bQdCa^i1e>RtLnOx> zTv>CtOU|K5&cT&q4*!ceP+x9EoK2TDG>^?`^FUv~SHMG|;XW=8Jo62~lZDPJKtAMh zx?jr)-wd;DJomf3C)q%kJ@-1-6M!ynL{6a@su+1(c z+%KP1Q5}@|+mBx#jD_n?vvHn$qO7NZK1zI6(vWd(aNi^L5Of$P+=3U(r?r8M^K4oh z#9#HqA)Cd04ZoNMqW>C`4t^Jed0ZykQ$9n`BXgJS&d7o5;_(J!iT>qcPyUbRs}}bV z#snM$oc23Tx5liuaL?KBEoq(;X|RoZrZL}Z9ry3!u#qS2yW0x|Yy-!lJ;czTBIN~u zjU)Vi2qfulskHOYPN6-9Jjj?LbOb)7gUe!!+7hBqVuLo_xCaq;(B)slHchTE5o@)G z=oOdN(eLB>ycW~O!MNW?3qA((sz&@zpMFPF(eDU32**O+qUMQv^h~KI)k&*-#Rfa->TAt%()7=z6i$7?iDik=yXxfh1g1x7d=3*;+MAE`wE9_ ztQ9Gb%_ToxQXu8WlE&^*Gv&vdDz?R^8Q#G;h`iKd9)MlEQ?&i8s7}1UglHGseZ*T@ zkde*=eQNCI_~;7S&pO0xrn~)8*kycOwSF2ToU8w~PgTk+T@RNz^_Y5({=x8X6RksM z#OX0w-4{~X34*TTIwR2hlfZ|7M>Gx`spEOk=aip~*mcyF*b{2c2$$V!d@#I;-os9Z zaMsG(={M0|-mlTO%UJ7Hr-hx=raMK?2w@$)kDddUeoxAc7K{HQs4R0_5a#`xT#mSw zsTYg?Z_ED<`Tvmpev0^ifc`Hk6zlwT+L!%2e&2p3*TUgbTHTPDH>LSbKt2T@2HSVx z`_Jr4scF6of!L6K6y@SqC|3Dp!q=ff1J4#qY@j+7JcoCT=+ilt*N8n${M?{E;Z%LC z%<8L=`r>*{Ti-XR<6O&r{9n7dKMs$Zj(BcF1ODL$`%M^>9RTwkMcpe<$)q#g9^p0Uw{xChiybSoa(%8nROcL+a9Pf`o->MDiTS3Dr8f=VP zSOf9-GYz3V+gGTCWCFW1+NxxLZ)=DGc;k7(^|ACfIfA>U)P@n74;omicB2*TENTqt;)ZS%l*Oo6)K(mRRo)7ZXIgFMQy}o8!vf< zZ2Fz8f?u)6-!VZv$CxXJZHt5cjb2Z@3$?%XE*D>yX?`!)cg-v>$jy)@N=+F(%qk4;F?iZyg%uud?%EA6;KEEGD8#mH#UHTnO zqxbV=yp+e^?@MWBCtEPV%k8t`=hNAMU9q!}@c$ZNZ`9Pz6qD#2#2?i=2}U}&?D-+D z@Ld7@%kRfe(Th$STbNTXs@$17?vz<`a*j?D`G4=o^u3-rO!(5hJ<)xVZ#QC>^xyGW z@h384CBSd-_jhFKdTswK&M&~G!{g)o9;3CnoYp%&Q{a<#ChbnO(HTaZKYotszHuYZ z&-eGG9NqxzSk6N%m@`!+Raxn?DwIf)=j_?un*xm%a)|ieij2#GbsVV+y(#xalX&d7 z>@Vu_5^p5#qu@htrd;)2aX-4k%uj9OPQSZ$_tE2Ch0_w{)b>N;_HY{u!UH4l9Ch)$ zuXayr6^$Lb`BLe}h4I6l2<1R;q1>^tdj|7z4e}eb*IT^43?D-1aiN#pKx?wW#%t7G z`h5wU3fc?ni@mhv+{pKEaNoYvk_(;uF4bgRhs=oyJo}N1e`v?;AJo%9KL>gbbBC;w z#{vN(fcAf*!Dyr!R-D*vyzIIOEnZTHQ#+@eURE#a$ z6gB}%Ja#Ir^?wo1QmovNC~k^XV;sJwubWp)0?pRS_PTw%-0&#`Q~bs8~SQMjDv%Y+AhPQSn9R#H`xpScTnEOKm~<>Yozo_K50UKhlD$GT|r z&DVu!FN_CqhriF)CIWj+Zkv-QW4=PZS?ZjfNFeuux~dN}D%R)I_WMTK@1_3_`#l0Y z3Sw2rJzgsJ*rm}Ncn*l6y~ZBzp*bmBXD-&d*pPDHqrjP&`|OhYOnZDG?eV045Zzjt zW^*$4VxLuQ5UkU9dW*e-=l1$hVqdU7hw68yKB{$D+ok@uRMM|bzc^ozQ&rMBVBFmH z2DEQHlH|UvCVkUbF=nhc#tge0j9KIF1&q$%V~_B-Q|`DOmz(wgWA7OndzHi^p^Fvk zp=y)kd7C~>Kg+d6;w;Cf5ua%^4)WVL+sRM%WYD~@sR~^w?l8!PD*1w+L&voIL-%lPT9#Xk3p^x+t&Rqc?!!XZDXCTJwT+ppf?)SiL8#;L`RM4ly zU#kRTrN4L!v{I`Hx%e?|Z`#EkxS&4;{0*C?$PWldI=a|mYM;{}dMIh%t8w_M(irw! zUdZhNBbX3w~!r zv`E|!@8|cYcF=D}m1zH`o_-$Vi{~aVLMDCsJdm?_XIY4&3L1;kdyt*z%_e>NJczC8 zCHh-$;qR3q#WHDbz{NZV{ZD&SXCR)kF5;0@mUgk@vj6qe-&S7{=T$ka^;7Aqdx5wo z<_r8j;t0`YzG6{lCDqwHPD$0u|F6}E`vUVaOuybxn+N-geEX5S^2H z>mOK~0LMWI*y=uX%}#5&zZd?rNysRm)6!fWZ2E#d!uN=t<9`+Xx9!BX5^OY#+!oIj z1C7UcOpAdwe{7M+WgzXbej7YF2AZB0m!N8tkJA-ACvsX`0`C7GJUIs1=cz0FZW^s$ z1T$$KJEj3>CBW~rF-3#=%o6iJu+ne!Rd1)~R?7UM?1V5jBTWDhLSR{`GbLV+m zH8FQAl9piZJa5M)=Fa8!onY>ml>RYAIb&&jBbYnZ;oPk9c8s1|gSq2iEXXQv$0D2^ z%pD74iC&O1Uh0*n*pEn7c{|V8)X&%t9zz0gfW{Q%+>i0W+%YFYS@W^?j5V%+2_D#(3zqPtSE5r8R_y|-*$2wmoGBT|G6zQ z=N-lg`UN-&ylp67=3x9@s@IQs<=B^Lw+-RZ!FdJc zz64I*7vr`ZIkAIsUjirZOHHnQ56X28oV+iUx%QpPpU5h2?~5o%{T)pAY^gOZfl6ttZD-%C!z=O+n7MO6zXT zj8~q$4tmYW>#*Y1+;?_WO;Jw#{=lud@9es)@;2<>ed{UWca6&|Z^QmqZ_RyYPswWE zhW#6F&3!-3%qnlg{x!FLKD>XbHNHglx9JpX963uFT;t!$H8y0ON3+Jb@DyuYBg==g z%E!(vJZX*5N2M(P-E6w3CifcqZXLpt>E#!nVvUtsGh^+aY7gx-{^*vWSo@#0hceS^naz@@-k=ZTzzTmLdFr_ll88FK@^?7lK4Z-g{CEF~oIy=9V0IlFG$uhVE1JG0&#|Z~1)q;Z%6?ky|q5xSxl%YCgrB zK05bg`VVuu@0Q%>aqB7Y!(F%hd-URsS+MhY=G1sg?mP{rnv?&QQ{-tl#hfPJl3QNB z;}qwy_Ld>K{G`~URG!l-X>-82JmVDWyyp~nuOw}q2jxh#&YQeNe4TAQE97An6LzN# zOe(aFU+LwtFfKPz!tDOuS5jWY`J%ENieff&?Mo@=#S#mpp2B78;`}f5f2+UmD0C^^ zQV;U6ls`GB&q}3(`>lKQ2otsf5w>6RShbKdHpLRtp4^?vQvwOdc6^~&`Lq76VKW1f zGT47iE-d2X3_1H#@IQe)J@h|_r{RJQE*Lp@VqoAf&zD8*ZBSLyrF3%n(I4t|a~T}; zKMqC2{yO-dd-yu~l;x~%V8FX$c)qn=>Z!Y>o*HEzdQq(Rp)@%;+=z?M8J?S#UCZ~)aIWorc zoB5@mRws?2?!4UkfVzAyx0iwM*h5c?xObk=OP=l`(eDV1&*p`xkNri0m#w@(=f%-dbjw}BJS^~*zr^z?H!bRMT$lJcd7o!-}MgK9vDM*OV;sXan_6( zLRMLkHTKKpUMeM`Ttn9TsdYkr+38lftnia3hVl?#3|fg8!!C!A%lWePT><2wEaq+d zb;b-#MHf!0FDRSo02f% zhx_%Us2>i#Cw@39ntL7p6zhi@g?I+#h#xKu)nA6_A!qX~SQfJx9_A*gyy@_&IeAb=Izr|9@=raQ8@R78~^^&G<*)O;T117=5Vr2@p+Kgn7&K2pWw_)^&L&3A5J9G zSaxE6;d<2HLLL2(JSst%Pd1F<`a?YzVnS!bCE5(H8GU$ zRNoqKq-KWZ<9uM`{wb_kcO#nC%}yK9h1z?pe;Xc-tV3-VVtzu5B4SviAT2ZGoSLbg z1z;XkAxzGq-&|=?zCDb-gEM;axf^}niLivv5Yx9BefDU|{{($TvJgRn7TJ|CTKWEC z^!;-5J*Oa@|hQ1AD(07CAw;bnl)NcXw+lc(M(z0+dU6qBE zGp#ZHrYc5`c(RwAm_@~9&0*`b(fws7s2D%a=aQyBZ9QA! zDCON$QZI|Cw`?v==ORpJ|822!T6E}yddqM<-|X0W7rxZ5x5}cPMeo$qJC5rO#;F%b zQQwqz%!%!odx}2M)yfcuX+yi|m z4ELiV5S!%p4~#|Y-$JB6k4;o_Dna~U0DT4@X}KNx?^bLUh^rk;S7}_3pxUX){$GZZ z-QD48R2S~lr~CUMHfsoCq-GWNMAY{Jx~cq0{_Do>S(mPk<7G4sZG4X}Ba3=}c?KHK znL;(@%Qi>V|KPVzR^DLlPnw9v0r6}n(nl#VZ6D(|kzah}&JAi0)_c zSP@+ba2K{CLmk&NG_FJW2NWOiYPjo;#{_$fL_~)gZyr?kLWC#%6UXkcXC{PZ<8^QC zM0Fj4dk$dd=VTvH{IXC6euueo7Ohpeb2RonwlUzX8z@I?jK5FVuk@LcrpCF#{TtWy zWB2gVjg|&nn>~sqIwpbqpBCj zZS~?@D~spRdt(po@zW^5ODl3Nxwlx%e!sbzamLq|JF4z%;EaN}^~2 z-=BA0d_SHMZnGI032uXV$uYP=pG6FfW^kJ%Nn;j+yAf}bOpb}f@O{}XHYVWjP`lii zj<@q^)Em>E+vCR>cGwd};tUDydn9RmU695X3~1btpEyF}X-wlLNgCI+(`S4}G_Gvt zpFMRl@8ke&gQ$F`Bz+z2^!b|+eSvoR>=yP>fa5)=9@?{>fwI8@tMU%NRmlMz3{|)D z^F^?EMo12f;`TWCA~>-KH%nqLNf3jvEC$&s1~6`TvmeF|c#t^>7^Dbd@YP&C2Ayag zu^7O7IyYAigHPs)$?1o4a+12Z_VZVy4=$fxw&dyHaQ+b-?Pkk zNc;f7OPgN_@OoSl@6~hpXaCNk*xWn7-yiGXT{JZoZ}5-)K$5;Y7`%<-p+RRndi0g+ zjAuC`-#K{vvn0nec`of+H5$*gI`S4Qj2#cqmuYhRIe7euCdW@~uP@r<#{X%Xn2tN% zM%y%I?5IO+d<j*9b zIG5b*ZRXaCBYCm!4W5MfKOI>tnjHJyAe6se5RlZ!xzGxL&&xTsX*0WDq z<#_z(R&)A{tY`n#Y7Rf5JGA&g{Wn_q_z}EW{9bG|ClA@U{ANM?9+kxJC$02;-)Iis zhs);)=;wcK<@>@%^22lVQ@ajdS)ESSDW4<`E~dXA#$i*@=olP8|2bRZ=a*G*bVhMh za(Zj*N_#84F6!}lH0Eq z=j0`rk+oin8T9vfK+Klt4#dtqcvGHWwkj_f(T?`d8q6LDnA1VIm@kV1@#mhA9DFB0 z+dD>b&=iPo?+{ys+%1JMc_e9^AxL9EK0_ zdgu{J%pPnpH{S_n|Jo9JPkWL@y$hFU366ogp}TLlh0a?NLQ|YRXx@5DJy_1nNbyRF~6ulQ-6xv?km5Bx?H@yQfr zCBmChimwp*8T>%?`xRgxk~T*sd239M{(_k)q1}l|p#ntzr0Z$=i!lA);?RG?@1yiD z8=a`oZ_&_yKc;^XhyIHxNfiA%F#XOr^pE5*g}lF6NeZ0>*(#lIMw*Cdz8cdxTc@4T z%pExqyXjoBn15-YnYK6ed_`nG(c4Vhn|i(?GT#n1(|3)C-t~;Na`i6EyLX%Uehwe5 z!`ig4mTzyCvp0jyV*aI#f;0ktYb9yCzgf)IxVKr%zjT-2n1IL4l4B}w7W3WAY8Lk| z6-v@LUXaF&W^wQI|5?!_<^x+IiNSn944N4X*!>J(k;?1=D+Mu_(#o7Sfe)|3(IoDd0XXVD)tnkzOCsKYHQ=Z8F5AR=by=J$g@&>FTj1&`1xltdU8_YkAIG3#K-9j#zuU+L4z?5 z1K#;Xj-PWMn1cbagKf-Q(VOq&9fr$|{If!KE)u>WH9&+mSE50(+3Uaa3_4)ElJ~cravRxw@CK4u_3-M+jmnswQfScYa8U| z*ZsK9ADG?$m+N4^Z?PhpJ*0h!ezAdv~hsV_od|T$QjxAH%KrZQtvt_=jr{5hg;`zCH zdhZgWQ#tzNRJ}PlA^WkT_2%S+@bN&sIXNLZ_}zMQa^k?{U$3X-gz!*_IpFa8g?c7F zUPnd<&!4KN^`D-M%qHGB)u#n$Yr>&4>1QtQRz!7lsc z#&p&vcHY+S6ZheMBuV3YKJj?4wVq*zDt(}dTL`uOX^MW#GiLs$Fc zY=Zl6e}g8+^L<>tkI}6bhm|Y4ci{3L=|4yd;B3$0; zi>~R~^&yD;!uL369S7^srMjr?r|n}o)5i?l$Jsi1O($bm$BcojS^ahNc_e9n6Vtv6 zmp@WRujz?yjh;sJatfkj_$yxHdg|zRuzYwO-FZVAMN>ImKi;XM&m&3sEzB4^n5Nh2 z=($bGYi%5@=x&1wc=Vs=1TOIwrqS4&0t>e727iVslGCU{k-=j0PZ>{5>K`+;t+mjid>&*)? zx38_^pQ~-sncJC?JpZOv>2+t4I%Gt8-*3!1A z5eBd0@(ux8c1vx1+mwxgg|YprR?Id9nSQudZhc>Y`|L1@#S&aTpo7IuN9_9VmW~xA<id&Oe=U(sN8C2=56d&TbJJm!s_kC7M+h__Jk>)==o-o5yT7#v8P z2H=*=__P4GAL-x#bCstP{>3X77ctK(Hh=29;`7Jt<)5=ad?@dJ(F~KaFagU#f#m$j z_0ngbMi`9t()Oi|yps<7xudcG{^C9j4&PMM<5Fay1IvOtRu(Q)%jx2QYO%A=-fFS4 z&x6%W93RNSZu-89EjxPOMT!5dmOJBnwOZ`#^Z9D=v(Jr^G_Db(ad|cW{)%24wc`Jm zr19I;VsSK$)$|(UzFIvW@#XW+A1bP8y%NCXJM#Ja(AyYUCGFpn&p&&Z#$Zg^@66}> zsV3=Qy!>hv<8}G5zK5%-9wUs0s%T%G5yqcX(L6W8_`@oi=SCRs ztK$1~6^uLh82`SCwkrrt8}j*QHm_FEYYCxg6H}g?**srG+oQ{I`CvZZANXXIoX+j4 z5_^N<0iE%0)6uz$tIWmMlGvmLRpxx!BsQ(JN=~m-R?+W?8;yTX6@90LotHb9H~_$* zh>i$hiXK z8p3VZFs6`OxwDcVkGc!?{eH+XsoKNj{?fuqTBopk@Dz-OjKx`25+k7x3dBsNmZOefc`^e-&~%=hX_a7@y}WXdP-KH&0gZ?Pa~W z^YaS1dGJ7m*g53l3Nf7sMApLu0&+PDJiRVL0QcalvSIctX_7D%j)NDFA0H)EHZI1gIE$N|OEj#!>9amQaDVUKoP6PFEk$pW{W z{nzAX-ZW(Pke8V~B;f6F^Unuulj%Jq!FskNjRgiY=1h*I@j5{ovotii3e!UNYpkKX z8+;+i(P>fi@#=6<=js9AapJ1rsn3?K9q`l4}%liO#@zMhn;UL@XWtf!k1>0_T(A?D44~hr2smVCf#nc6Nus9=>FM zF8otO>&5Kn!ZU734E5sNO>hpJ0e!pG9GvjEzN;sK_%vki=nCJ8X&-}VUxWXKT!AxY zq=q`sIHuxuz=qj8NquJx-i6zhMc#tz3PWxsG^SAScLyV%tvwjIeExK#W9Fu?#nJ+K zl9X{;@EdKzXq*L>P2o+C9g1B2_`yiisRNOlesfUC`;!iNh)_G94-XGLgWr-{oTTO% zf_4Un;4QgL;bWOSkq|0Fa#2C9(%^6N_UtTDa|V%|ghx`;d-z`FeYhU(y-$bwu) z{!{Rt-Sv=v6_q`cqUIM|lpR#^OG5dFaJd5f?j5{mw-eEjZs`w=fjm%AzZJKk_RwJG+aT{DL7;C2s}#(&>#q#aae zW2Q~HQ%>3e`s#2yM-19IgX(JE={vYneW$OlH2yn-Cos-HL$Y(DA`g(O@b?a!t1R_X6@W>o%@;r&EZ24ok?wS0Oyk^yo7x&Lt8 z98KN7Ws)(ebpx8Z9#psZ@29DJXjfu8>@AId_b*s9nmT(0ef)N*oV~KupwBy}MAv{2 z?sKzbpATO_pAVMG**%L(cDtE05l*;V~JXe6rZIZm0QcA~NtRI)E z*isv(q;lVQysnf!M<(UBFy%+q|5APo@ODjk?cL9$QvMqx$&PaiI4eS z)GuoT9WSACnxDlwQ_XD-I8d{2fbtK@CQLBS5VIAz~03F;$>EK{enws|)=}^$a z(BIP;WPMfj=nhnd=+O&EG0;`&9nehw~k1l2FFJQ?0Tx+iiL*(g89;~PTuqYITG_TG!f)jYS!nw*hW zB6GDR;(ETML{9%rFQNBL33#6c@5cdN?T)n2F-FeqB|7m6Q(|p>&__8Xa{H0w68b#A z42@s9_uDF?M}7~}KEdxXSNy$qC#uK#Qdheq@Bh2#b1NeZzRzH0guxv;nCW5A;EHd1tl?l# zrX#0-7x(_ZOK$GvyXcr$Bh1FTXrH|iW*H1mj4(@Z(RXcF%mVgIN=E`_7mNA#o-a;L zioxt-IR7u^>kbxU;@>(^%;(8QraZYvcDPthckIUf{n#W=b`;Zb)1-VLKb9x(cF0S` zblfy4zeR^9&lK}zWCv58*k&7wX&E8qSLMaN(+lTrYl`{vHfL%Y_npq=#e7|7VagMJ zEGnkwEs5{jGaB*> zF&UWwCJ7o;)VRgdv7(_X-A*fO@szIEqK9p99i7RMw!~6{E!Ai^XJgB;(ZhP!v+S01 zhl&La=|&TkT22LqSCGk`QX6-%MzhcJ-tUE(mlw=9f6U?XdGC9FJom?Ye>~5<#%CPK zGb~06?aR)vxOrE4{eAhaSVUK|G&%Fj^4F7 z+i(xgy35$^aX}Zp?B_n-nWp~l&eY~R@9s=(zH@SCYV)1povF=tewAkaf4MXD`OdRx z#`*XPc~mwU*U?84;+wFn(bg1eKONTYyyv^!Z&1WIp5{xgLi+!pZ+($7^nKt@M67<{G(UOx3y8c?FeV& zvey^yw&(Qly6Wv~#ohIbch+ZR#jI2wJchX#<-zj(Cgrt-!VXmAYT;WPS+VUT-~4D~ zisftl8{wDJM@%)-9N0yF&#lEgnChYpX}X=_4ww$9FMlG|=(#QQB8|TWWBCnonUec5 za?^Zqu7KY0(sLWl6*p42ye?l!oc9k#NG4pCS{j@O)FVF>dj|^59eED!$n){wMC>D)qdKtW$z|^H zWNBq^fmW9es3(*UW&bmN+?QhC=m^EbvdB!>H~Q`mM4q_5 zRv2h464uP}W-L%{$?u38I#{6@Q z|NW`yw)Oc_x7q!LKfSs3PyMOsSkn zFj0pp?>yU-9M4*HOr2#^RNou#6$C^|Kxr5O1wpzcMM_$vySuv?=>`>~yOHh~n4!BH z1{k_~7;1pI{QmdFy>HH1d!K#svz~L-diH+4UwdXW{kWu!hT%)sdZgI!bh>K)uxeS= zX%gf7{A4t>iKwa>ZyU~$SQVzE`7P zXzO>TgIhWG+ktwuRw04C*1oYBL&>EK|6^RPFF!=5Gu>`;TZeD8{L#W2$`=B zN;hpaRpaz;5g*FC*bPxf>n)n!WGQBl=Eqm?Sji;{->Y~5-5_(+P{r0dmz*FOf2&3(6=gd+&-yztsSV6^GZyFjGX)#G!fjDMe{!Nv7ARP5v!3PGN&OV`ho2|XU}V+z;& zCGm0HVY%n@OEP=Aiw(SR4y^0W#nFmV1IDfSgJ(`=+n~uyD|x>D`=jCxN-CHjzfxFL zE2|W_-n#s;!({Zd9YHGi%`vLI45nBD$gjbD?6>tJ8FA}s;&dM2-RC_aM!?Zp;%|%Q zo0Yd30QsWl>Q&C!C3X!ItBPJT>8oVB7(Mf@;49P_kOPC<(|P0{ z<@)h|W&=*^nJ4W%)#>euwl3`{3SPwTaG&$OfpgmTL)jq(f^0ea5lLjKPycYO zwW{vdwsn6pmFVtY-Q#r}F@DUilYZOu=MvmI{&#QA!_DXUn0?Ez+YgYN^-)&&Udv12<*uIp{o%7R5wLS8eZbL5!=e+dRKAsIaf(4o6MK-M^fWSLMk3 zPD%b+H-H0SNAznGEC<$05o&}r0x31-X~k$0e zXO=buGtPce>|PQ*oO^qbopPcb?B=TT7*Q=lJY_HY?K()j)sUa{Z?ZxYtEsm)9^=+{ ztyR@k!Chq6y)44CS74>harDZc>w)S-;HnpJcfy&Qy+(rEq=J|?@se;ZnzDQUGi@pl z2jdTUvHrkycEgP8%>g|dz)I%Bc)b}(`Y0)o#_%nXOp}8Ysei@1|hx*BiDgo zrjH-Sjfp<2on_RcF2fC@Z0=NN6B`dDAvXahR(?H;r90`a_4oeK7rXSH+o2n%ohSwS zkv>>4(Vx`1i@l@07FSok4PfD=%V!a_<%<1pDwOGh8@Of5e7>bs#zI4)cVaz)3YVxa z=34EGq7>Q1XXAADaj%@&@tfGm0{~t8q)}(1q|s;TO!u5kFM%0dyl>CFgN)six-xUJ z!@H7vH2ldw*H~pmbRWO9yiNHX9{dI@CZt+7yT!G{$6c!>tp{oGkMpFO+L*k8&TX+= zvAZW0A9{N98{~S>EM<~IYnkNbP2K#9o{WRA!;1aX_{(S*$PK?7vm3?U3U=8@%}~I@ zX>uDMN_?bgN&F;vRabrpF3q$dt?y+|Zv<)5O(2gGrp(2|q<#w9yWsCuLox_q$6pVV z@S&p z;cCuIG2A!l0-6$eU(5D(+k5LKVs6(NI2~kpxJq)B{KN9ZX{)g0_?4}l^5?-#7e!5M zSTpKJ}L> zExUcuN@6(uMg+cOq}g{oTDi}|{3Pcne!E`XaQ_`KWa#@ubYmx&AF`rUtfQt0Nx zR@-af@=Cwn@?&N>pm&@q3%|ng=(1|?%;z6BRn`Orz4UeBwJ zJkTh`r*}J;wijkrBZ}p(%g<~&Uq#yge(Y#`{RuN2tP!HAFoMqa(@Uhs&q%^Z)Fhx< zltZlMRVqP2Rgl&PEqDXns+@_sQG;mbzX*&DCEB)UH5ApH)f6Va9nzgwugfr9k6y2< z6PIC7hC_5r+_@k|?ma<9bw=VQ2qU-=qKBe`q=O=YH;75-h3)&f7Z&KYbaS{nFKij+ z(00&lY3E)&-P;EeG$DOjtq83bb~yJ^5eUGd_RYw zfj1{rPFapwp1xpQEm+;%q=cs6DJ(Lj#HOILM0uRN+j-%7N-`qL0vHMNgh#e?WEioT zU>LDgqnS96)1;(p(Jqiwe>KtV5H`|{c>DD5QIWTu%$@f=%pF%h)nAvrD8np!uYsX~ zt|4VdpvAgCV=`+bUTtIYyxOPwKPJ*oOd5d+j zR(n)qn#3Aq8pZacb>Ii_651w}f9;u6D90$rDG$~9q(!i5|HR=C1BWnr!0X&0M2k{O z?7o4}HW~4%JX4Et;iVR14SqGT5p_>%M=PNWX-%+^>6zy*E&c@oE&iHrqiLh?NW{<4 zV8m-7w8m#1AzD>W@29=zu7d?MQAK!|Z2!DGd*P=YjuCoKUM=fSsYtxR#%Fwzc9M-4 z)r2PbPhGJ@LeF>5g~X5EXkje;heQ4U;&}ES4k+5fiyG@il8&Ot(IKB#eDX&;TIdVb zCh%He4z^TA59vk%KdkZBy3cIUbl-W9ls^IBER?K%o$}-B1BDjl6O0PUIoV6w9;y$u zai+L3BieL_Z~L5jE;@ZWE}m$l{o*IBL8~VD4@asf2Y=1iRMG$85d1GvlJ?O*G3@-_ zM~ASCE&qtomeJLj#!Jhk8j?DrnkJRE$!6{GG!bze09~WA! zPc^R>NIr+rlRSt2{4Y9g|NrRt`TwG$5vx4mfNuTTS2NV@{2B_+bu<@7bJ8Il%7ae@x0H{>KDA@INMkFaBflG?vgr7-qNI!dkVi zs8^U)*QL7j888N%oclh2D%f~c#-ps)Z(I6&gppNAmBnm0GIe>Kd|I#uJm5fZib|Tk zM;$qCE;`g$z|VLgk;jV}6{9FmUxT>Mc~~Il73BMq z(Upe%ShYoR0tP6fm)FF8#RZkP#6E|-!Nre8k~ico)9&u5GI)As^^RUSt#G#RjUY2E z!B*3A5j@(HZNA7wR~@qaoq@Dha^qIA#lj%F6>Qr|hHSB{jL2l>A-%?8Ul*FAb;oup zDD}Pl(Q$&jZ4myovRa(jO(vrn=>-xn@TrPZz-~jIxV`&ONiGpis6lyE8>^yKk+bWb z)vxwvw!n0Q@n8JKpzVnsTW+bP`iEA-*;Sx9RBfdul3d0u`_7!1-JtGawZ(O*HI)3; z7}QMBQw-)LZt4*IWHvl{ShH>MdOY8-kNqR-D>I&W1R4`PQ#1|}%eW5V-1L@M@RYl{ zl9^4rJ9DK#sG<>d7DU=Pb^o@k<#(w(QC8FDt>fzJ^Urug@Bn>p%r@IzAEu${!cWST zmXky`wAyfxnzCJ+bcW;D?7`RJ(KsnxK?5kY@3*X8QWf?*w^`=!nFJt3(&3ngXuAEE zI&ak-=DkG<%j>N;g0RhAE&c|pUFb(;grH==)gR%gTNY|C=^*_aH}RpJOmX#F)-R%P zZ!v{MF+^R_rVe$<`eR6Z}KRR^~nC2@vfX_I`R zX_WN#!nZO{?&pgdlhC;<$y9dIZSw9?wZMv9T#o+-P(c~hRL;)1DeH@oSMh)1oWnRj zr+5ox&AZ2Zy_@`+v5FOe=SapA1xLGpVEL=|{WU&F;QIK;vCUa7DBy6AF0lG#=jng^ z=;p1rjqQwpq#5YJ8w;CPxgyHm(N^xIQ(_`r%hP~y2{7-srxUK}evHXb^)7G!S=&%* zifr_oM!LBqSd06&Pu-z^GSsgt1ZWaG`U<`U<2F6>R?R@F;{(=}9_`HDv%xAJ&*fDD z#P+y*eMElnG0y5kHX1s19Vy5%f3=2S{A!MYX`6C@2m z0tQ8%d3LkQ>`E7;d#&rNKVrGKLOLIUvX^2|y(-q4D=-`}%l!PMR)~~J);Ocs(fs|! zRBPiAF=o~fW%)44={=L6;QX&Aqs76Mj8Ds_2|@)6rpx2sfch4o9dOo^3+Bnn7QWd_ zPmGp$GnV!QvdQKkiT@x(lgp@_hv@u-JY>J0mN$^6d#>l;o!o#X&kwBi^M{)b3rtA+fw|*K)YF!vJC9SeB}Zf~5OMsbrA>QmtG{ z%&bT>8k|285D<5`Pkq$i&~H6AchX|_Ss1uIx#;VOJLj++^*aAj&O^bbpDKCS!71DlYTg)bK6c2 z4Z!Sw{t(}k3+Z)U{+E!BVJ&z(rd@K5M< z*9N{u$9>KD^_SGs(nfa`welLa*Kc`ebLtC8Y}ItE<=qqP-hG+))+G^QQBhy00sUxH zDz);>OD$JeJxa^cl8oPCUs+4 zU0((t>X5WTaz6aY`GA$+=FQ;&5$twmBi_94nWx&7+6`!FR{?Gcqm~~Z9PoI?c$qdi zCYn<>g%6j(=kFe&&7I(yUN5)p;tceiR43NUtFtAnq-Y*YA5YL{OCK6E~L3Dwb&Lce=SN?d7|dnpIaVW|Um9MeIF z!#e+uLv-hv4D=leJaa;R_D57{r>7VSK8;xF z=}sQoAC^enTuu#Xa{LerJstndtz*El2J{}A*98qfhI889M44VCR0&vI2lR5L-@ffX zDssI$FiaQBedMwI%1+Al40I-=Cm<3%_>z9!o#9fLmOkz4*-u{}eMqQoPUj zH={Mlww&UhLp;z#EEl3?BKh_N?0+786_b01Mr!uKOn=ZvOGNe}RvYGV_<6<>r60o2 z`^&w=XKduvLk}WVA$%zB1@C}EMk2}*mS4x6>@R)%$4!f(h0X#Is&?1=j{a_Mru1Zu z1KU;~lCra&1ayoYZ_q&)M~I!HC1WEpj2{@0PgVomCBV&hI8G_EK+ajf8wBi^8cMHa zG-b2y@Bn*!X@PmY2C;yt zIinHLr~lR)9rtu86PMh5(xbTWY5jK5f}P_y=rP_%_?t5)X*-_i3Y8z$ll(85kEq~e zmuKE;et1hzSs!=QQftDxUPAb$9{#cj!y;?+4pGXSPZdbx4jsyAQQH zo0R2#Yq{$$R(d;vuP`_Ca;_7agG{HaZ`eJJqd$HoQuyr)DB+?Q`EO>CexB^djrb@@ zfb8D_=o-4nfgOQv5fh+yYN`8ku@gH9L+cd27*HOs>OHII2gTqRzZ(A987);4%Uufo zQ54UB_xw>@a$HlFhK4Ux;hJ?;=i>^cw(ZCDhOlDlD|clIk|*QYOHulaFWTFQ1m3?$ zZ%GQaZW%jQ0`7mu6UaJB`m%uXy^{Yj;tdF|yZZT$B}hxZr;_q5ODv=qGV@qhK8|x} z4@%|@or>OS=&K{1C(Dsn<+{yysB9PUQ6}?&POl@EU4+|&4rp~A-cJ(G#McBqqIM$h z&oAHC2EO|wWRg~v7bK#qTn6N;qP0Rb0*73Z%{SZVSREu2lJtG(JjW0ZPg#GbnS zb^So63(UOTV^-G24Sut(Plh?x;H^A02m&DBfdy_DDHiL|9YWo?gzXllVC4UHwd0-nVuY zg?d%mC2fjI{y0m>G6qHK?FLKVX)aJ>Z{XEZ+JdgNV$xExGSv|Q*`auMOB^aIzNzlP z_{m%r8yZMAp=Bu0&)|xTaT$sh&bJa>cnE#(?%0wv%n<$em&M;h@j4!i>zNQkmrBL# zulqT)d(*2I59eQ1Ayk5>+4Utl9ny3h{Z_xg*hzkZQS)5AezPSm^3XV#+PT%(V0d)E=5l@=zTeIvLZ7SpFwO3R zSlu;9%dKL(i$X@I%ksT0OC;$QqmORD;G|lh&LV28_;En}$i?{>Fp)<>vl$2lK##z` z(7_zyntE~(gDRE*ZSBf2Sj(wn?(oKyi%=$2{s$vAej2fwb^?D42Q>x43-blWm*m`i zf?M^R=>hd{O_0gRm?_B#1sd(loCDFP=ni}ePA6%O;JDvhHtS|4`+sZnnMveTqE;XY=9A_~dpyisGd7OIn zr7Tbc4Q_0HJ)A-i{2w^$?3cRIiK4^QKFYu<}}F{_uehHJP@wZ3QG$2~}5#o%%2Dgs}bvgabU zGnwP|f(A`@YI)=9R+z^tB9gAJx~o;Kc%xJ-90UYI`rfw1OSI~;7F?!vgyWRgN=a!a zeQVcHqqZ5)rm19&`7YX}neON~@?qX)F7M9jH&vd?*S_a@o_sJ*wX-)Ln6iD70PPPVXY;HRp7BZQe3W$zQ#7?Ti#POeG3E`;?@0bN zu~-P*BP#GQc|k(DZewEj4I}_@tK=UsuFSJTvZU@JH{b9dZ)YhOW%NNy`MRWQ z)HEaMAQbC@oHXBVh!@JcTmeC&=iv#=0IOSLHBwQz9q;KVH(Q?W&6}hWxBLb$Hhzg zE2e<#ll;?U70Lj0A`{D$Te-}g-p8j3lQJLH(QRAKnRJE|O4k4-e_N-+54>s)+zkz3 zd+42olPUON)IWFuzA=ljdH6@^Y)c6uJdLl~^V?@mPI$H*Yj|LEZ=F?GE-r=T5xl`H z7wQIk9*M8p-I#SvlhQ)dKtKZUkS#OO@nf z4JCwJB9(Of#77V6tVv+%X%!Z^Y4V37bh2f~A>j!uMA1!QLN#<-`HhcJA0YBKfVoq;B}e1)t+*Z*9wo^-gMPt!ruE{8 zM=22=(WGz0vBqzAwr`0OuNU*AyXAxxe68t^6IAQz()jB?f1fVdRt5etEOJ?(W{R!h zEvEGdRzS?Okw~N!S~%i*Wq1JdC6DVW6G#PF>UV^Bq?N2~E@5inp*uw9I$y#oE>;)p z<5_04bU$X^6&0yaTaISfBO8wjbtoo<(}~nLA3J2^;dIC4zo%mk0rmywZM-%O zB_TrY%x+3{^pt87OzDNR76g1mjt(DM+b6st&Pr39`W{r*@EhWH%tX(^c1Cch04*FA zaC=KHhjWE+)EXL7MEkF+PhHM}*)sdM0QVP>O)tyMk+^5rew!QvF{J>}Fj93D9nJA) zp8Bu)*1y=9mKG?-e92NTZV;fF0Uia)$Np~Ow|e{%yz??-=1a&J;n1v(sQ;%v8m24H zgD3e(+C3a=4Rgoxlry5s84Vp$)+=X)DnNYQ;iT7frw6`%5??4b>hnA|m z-TTL_%)uHTTHv(6ce&qtKu6(tCI>O`_|o+CYTJXK{X4f+rK^=)h?eIhSQK5~49+d$LsG$Xl>0*qL;oO& zTtAIwwD=NNXI{iG!v}L0EB)*CPm2K=t4ziGM}>KoDSgZ#=7QQCq2*S*OXZXIZHoZk z@7@UiCj&LIxg1_gV-|Z8`g}^q4nCzLX!U51&>qVqW*){TQ$BOrO%Yb|=|FnsZjn2D zpLC_ee!h!QvQP81!WMN{`M5IJkc7j#h}hZDU%kz5DTI!Up%8(FB|c~Gk=%DX>H}WC zt`f@Rtg~}Hh4#qoh-hIy@fg>8%72H{)t~OXq<#Zu;c_{hyE#5RuY0-Hk<6V{V9}~^ zRNU}Pq?w~BJVe={lAB?S+0@!Ghr8Pw7Ht3i&T!Bz$8V-DpKVMckkt8miysOiTg;n; z4mf}Ks~X`Fl)-*AN!2ptO&({X&R*FQBx zKptssiR&$Qtmd$VEwRXzW+naCAyUnXe4PD<{8Bd0d!#@^;u5_S$#$<5u9b5Bxi?)T z8(YwQ$MK&mj&gd<>8x)^PQ?0iSokUE{lDS}r)+Sr!E48i!#||k)Nf3WBfell2Arfw z$N>}Hi*)*h#sq&q0_J{L?-NVQP7?Pdm#Ac4V>cG%(@U2X@)(Go(v9@KE7ciAyk#At zl=BKYhwQ>tiykwf65Cqu1^d;*T{#>QuLMp08Q=ee?IkO0!Ub)|S$)#P-it^bKYMa8 z(^K$DlHOGu$Z=|H`X*+<^}T*j#@_U>NYG9~;q#ievk!Y#a3vIbmF=wQhhH7`Jw|&s z1zYz*UES}kN-(aVk6ys{JzqNI3k>)~aeoboRlC+grnx|C;sZpg2|K`L^12!3TK)+h z>5e8k^i??%5np9_wxDqJHUqyc^6q}Y@>aWVwNi(}VeXPcSCcQpc&U35=VT95G#tS& zM*Q$QO?{)AK@!ztH9YF0BapF4OBVeReK%)v0I*}*64Phx|HB|=wu;G-qJcIQ|0d+b zy3^A$LI684x$oTQX_qNZnI~pn-$N&$MbR&^duWLKks6%!hHw-ASTuF&L?7s zoV9v3gf)e7Z)_vOEZ3F)?5EfFyve2mwsIzzvFVF5(uacU5107f4S!c_=4esO7^2O- zhbDq53RlEq9}FUP8kqNASwKyocSNqT11MW`Vr_nydk6yhuv_P_2k5z}WN@|OAYki6M>0myW z0M7>X)WTXan>qPVF=s8Z8iSHrK?(VeerV!s(|pi`!*@5by5=+kHEy7Ymf^XfP*fLO2QyIev~~{~+?9Oj;Yc znp3w%SdcT+cTKlehj-&g3|Hr5tmbj-BP$*i ztnI>F9HKHWH5COxw9CK7@e*8*Mg1GcW9PNmBQ4;3rJ{ouJ1X3#tRy9zCciszOJI3T zAqOJ1KWHRnZz`!hQ&V)$Bxb;*6_To* zWy#N)lDaH|1g%^I?$(;VQXE5dB8Dg(cB}~|9*dT;8iUwgLwMQBvCJ=-O2h;1+iG8c zu?$=$nkB;YHo14bd`#k2OyXD{?+hFB?M9H!W4O*y*jVWcrs+}(JL%3a|sW_ z?{3h$q|V+ad`N7W=`i?kE5dw7tC}Vc)`c6qj>B|0nB`H{$`(JiZq!msl-YH9cv$a2 zS}fx&{*rRJTfNF6!&^8!7ThJHd#dQGe+wzb9FtyQ2}SF^vfUpsESsB3t%u``!Mzv2 zfuE~pyjf_=fsdlWOTj{H8{7okpCx$NQHeZ%&qHhD=RKh#dT1~gs1t$#)F|OhRFD1$Ng6tT<@sNv45{(>E}e& z-;M3GXkB;oH!&H0o&^1BaU_iWh+oAk_cHt$Di`CSSvOXa#9F{MJjYbQ^epJ!tUl6e zUNxAZlzl)xk9Mup|6f)Nff&cRxW293`x}^0*Q7;s0cNRvEYY6LJ2_hy-l6*wZ+V`M zh5eXd??#J}nZ0FD!^aUbCoH;Po7paoA#Ea7-0u%OU~QX*H1=>F0?rNEJXY}@@b8zW z82*})%nmKAy4x}LmSG9D9JG9=ToHB!c)7Wb_p zbX`}y8|#Ieuw^CR^%Fd}1_EXn)~4%l#aL{9_0P6s2d(ZB;HTMm_h@fuPK0-z&TSi0N|W^( zx~3_6pXZ^rr!{r{!3>^c_w?dZnPdEK7g9q~w91I3n_(5re>sq!y?&^)GfMbzUW*4| zT(AKsk|am$*Gl?LqOhoPz^c45)E|lLEyE4el}VDzI)oR_hxCh^OO2d0FDbq6lnRG9XCeBSaBoP3%vH=rI-ieT4KMa zB3==xtXFxSGf8_nI1Gd^-6|#QAEGu$76#?)IR9JkJCWl8KJ~7ma_`@B9RApwvuv&T z;$<;s?d0xLo)xkV-#hb_^8`!54v?y^5}*H)#eeb2&ffE67!!M*-uPBnCMR$y(3fo= z0n>MGvWT9s^`5pm%|$G{(ays!tZ}|!u;z0<35_M$!SGe#8XYXWBQroUa*M7fPYBUv zV1RY})=9dCEd-G>#0G4hFAnmZZ799wb3w^g8vk(IcU-mnG2`ip-KQ3O_Jp%Y)_rqX zt=U5qQcqQIW_kVz8J>NMJHYt-OV`IrZ;cV}_?|HqgtNUi_Qu=)J0=Os&`eNtK#jPTluixdTP=lN$%(7T%X88w8+VZ!`nYDnd?h)}uD$Cx$;x-lG+9 z|MZyl65ko}bDT`ch<5CW-c+&y#}8jv8xWYXEQyNE#)^;#Xw!M|9sslJS-CD0W+Mqk z(&dGZNCcZyVP>+{L#9^^oz)ngi{>$wuVfZe*}m}zm+YjO8?(!3lb^-APsZI?(82=! zp5IXTWDX)@KAVwVI1YIid^mG^+kW!)7hKl8uat1HRq^VunBm)H z#i~`Uj=OKcssL~5nL;VQ9X0bbdH3fL`uXYGrq#14&xH{#YQd)r9#98x7={l$x9ta3 zBX^1B&2;iwYMY%G? zUUFed@GC#Wu%6qFzsB}#%uA; z0IIQOx{0Uf$$@uuRe$wLGb2iq2=Iz}Aoo%Tvns zKXRzM$z5s3-6gm#T_3c#Zdv0xogY?qt0M73eWmgwYMpKAgZh5+Fa<5%>YALuWodnUw?D=%01tyi6eH-;l{cQg|vaU;E;(7 z-P*G_9LRl+M1Aqy&22v`WZlC(UY}G()$*RaPeBkv$xd+~6Ko_+Zl%AKU^wGTePd4R zWhG)fRf_vKDI+A?vBcXckA%e#a07I=dN29M5>!n1ts$e+Rw%4z!}XXb)A-Y+Cj`j6 z>StRUJ6UuEjFDzd+ot1h~~6;j2`t zW2ROAa~M%vg$09Jcx*7#mgf$`5mD8(4OR6Vx@jBI_339uJlJx8Jk ziD>`oGZFftJT7rhaB-I{+;ulm-(56J-8_uDJJmur-sz|OT7mOk!hOuIYYuI8Q| zPt5+mYUI17_m|;p{%J#9D>?Pc)$2kD$r8mCS%XvUvfvLx#+zfu9V=NeJkr30m9054 z=rEzsd_8uyB1|z;uu?|a>zgZL-?rxFO?>+LCShbhtlgHx5AXVbMrR@O^Yw=s=HU22 z&Y}K!%V5qI=SgMdcWif2={xkEyLRX(KiL}2d_$QD^yJE4%>&(@mc|tw*=RFy4!ie zjT|31NXD-ngK$|7Xdj^xmdfSncC_eSA_}3WImUloa-q7f-0`l|3KmGtni5m|2ZeyB+bi{)Y+K^ZLDQcy##K(9r_F)Mf+~%) zQ`yHa>(mQ&&#@arjt6wRJl;P^;#>NA$8>gRc>>Z+7M|*B)<#Tl(*jmOIN)XQHl*R) zsWZ9B89p!~Nf{r(cS4gB8~(%OU2g22rpymY^0@oQFP`&P%lMjMj5V4N{Z_HcZ~H## z;tbt}M<7%aP`NE}YNl(op5UYXt3qnPa=J(2l!fY2Zl`u+{q;xI#rWPamvnF^;}NFS zDh}cGO8Ftcg8J=sbmY<~q10~K4Ad8CjPWdM36vu|dnhknd z{4t(VwLqu4Y$4`8V)Plzj{b(&?$nxl4Pe|qsdXKR-a>8Q%dnX&J>`|s$YlG+4}%oC z;!~^GJq%nXCt$Xhb}midXN8(q77O9JRlYB;!gEILH*2!xwsnUP{1TzA@iMAaB=A~^ z@yLyLcT0#69&Rc1Q84OM4~_~=yNGX(c!bkcr&i^fxzjkAod|CS z5yf?Ps!HDdaJBDBzMs9A&i2HY>frAyr#+b(;FCh3Ft;W2FYKS>t@TY{#oUsZ(=};h zC(z;XO}~I|mD6_AZjEE!8T&zju%LiKnNn4WN5P$Z8IsEYOa%2q7UxVwy3fWQa`xf! zp&;S99p9hvE}TorVSMIO^px98#Hz1&T0m;oa5L`Bn^N8=YgD)cwozGzpOQ@SiSkXy zw?_5LxNo~2mZrY`M(-HVt_D%K$B4jlbMNC#rE%!rL{fi^m-FR?%WR?hW3TZ}Mz;Jx zVEUv5*i4hF(5qsHh|679bVQ9$UkhmE%a3+0B-hW=%o!du9CN*u@0gY+z*}fnRQp zX*}LjyW0eUY++sN6t~6&XD%U%a{f9-lL@;^_?kK`VX#D(Cd^=Mk$<>5+stj}^!>9= z&vYh*_L!CHZ+ew-CZxL7|MEsC?5gj`m@`cQc`Lq*@8T#2Fd`Okw}O#nSWt)mI3W9U z(ClMnh?F5VPz+=zJWIwswnbTWc@}nLGp_X${I3B}4!p*``7ME55=%Q1VLIDQzd}hs zgd3w<*b1;8s&M)zR#Qp_y|&XPP^~xbA^Z$BTy36TQHL9VTmRke5cdE2BX+Jc35dZ0 z7_0R%{@jpLzm&5NOlL(R2Zk5OF&UGU!jAN-687Ey4PwDq?K$6tLstESKO7(f z@0fZAIN~mw-9**ZDW?-GSg;SB0>Pg!Q{uA;IADL#NBSSoM?4YF;OCjocYMd5!JQAE z!9^T@-ZmTmyu~kiI(bh5X3A;N8?OW!J+Cmh$OPEUBft>)fNEsN8$GoJId)Z%8$Fos zTsN%nZ>rGs33&}6WWmI%B%nmQ(Mxv$>KV%6XXid#9h4c!_w}lefFPa@J}m%2z9w~`}T(3 z5z&*tOm8;ci9JkOSujD_cmHTDbKurvuPYH+aYwtcc%g|zMJ=td8TtX#o4>HvH)7L@)p}m)|&I#DSBJgELm>J-I%y`YxtPIOMwA0 zY{Y&KzU`C${onjYyenD3lV~Rr$9t1c!%Yq;660^ZG{06S8p4^D8BZri+^9Djrkfxj zmQR_3L}!rcrfdZ8SHVte&+_K->7V4@a0ulC-7 zzDQ(;P3U;cv8X)oyFdA8TI_3@ha&2%%XbN>z+$4g;72`TIs{J5;{;s=J{yi z$!oaCPTQ}>w5ji;2j|}!bijILv1wiArYt+l1?PbJx$lNS_F>cGN81Pn3fN$`*X@XC z;82Q;^(@_}{0&iFy>_C7yK)$=cD6Ds3XP~vS#3}I67;`8~k*?KvOe)+l<2Dp1B+IxH)0-MM! zGNgSlnm#GRCTAx+0d3_pW-W#BsRzVY3Eg;x#gu6|@UHqhGS;VTjtqVA@@Em(=#TD5N2!O=+UUpJ+VV zx@OX<4Cax$YYT9xnj;c@@4-^9thymvrfhRXLYhKUx!}XEEW-8qT>_y`Ju7vq4X5yF)^shn5F8MpIu$tt|JqwHLxWqqI z7GL}@Ux@LY#JWn$VwV~DiugK;6{kPI_dJB zHhA^Vhda5a?+7C(A;+V=^)AAjQOil8L#xqA6q{qM&M5ntZ^<=U21Lg_HF^~5fb&}P zs9%n695pWHnq@B!os<0BaP#NSHNGMwsr%PQC(L++-9omR; zD0taKMI6L-&SPEqr2?~c>wCJ|p3&!f#hNS?U@VEcn9YK}Z48fLyUjH(`FI74!jN&P zMY}#BmauR;va#*m)HSS?KFwXg=EeSLAN}$KZwblSpyOg2mLFf1f_WLC3xz=jWyurd#cKywKl$u&P2aH_HjCa zg?ewlvgQXu5t)zT6)!EVx&jTkvWcUuMDYm;5*@TyCrXjgoDWIV8~FSy&7pUOlE-NG zFPTb0D-y%kz)VJZFW{_CW}8V0m-cwva1^S8d2@F-64cwj>W4>=E;)L|1ru5^kJ=-mqRtwkfrB!BQibK zFO9Oao&1VbXFs+I%#N(+drJsnK+aPnx8EHgvpmYy&!JZMa}-&-r2n|uL1o!di)FTW z;{|^?Jv@&bBNqL0g~xkBIY&V4?Q=ilnaYG^KmAFj0ETB#yH%6`EhPwk4jqt7!12BD zF6Z`uBy(&lwYLWT?fS37k7*SaYiLvtUlYFIQ!zB7kBH^bNjjHr9ACp z__;exoM&-TEOS#_Ae`HA9K2#7Vys8zH&i_kPGe_%zb*!D@kX3730r^Z{kk} z^~zAHzQN};PdUJRGC{`_XC=n3DqD@L@%x$n9%yFc^WKhGE_a`}*I1juZ}I*5)!TdH zUfcQJU4T7^Xn%KQz^%`vywEub%Hf303G)9&6~#)=sLnL zQ~9gjj-p?0h^!ami}is0`uNocSd3`U3&g@Gr}9pK56j}^mHi-t-9MlD6O~E)^TsU5 zecBkEo^f>p@y!d2o4nXfRA( z%uj9V5p6#BC(g5gcKqy@dlJ66a1PHWxT5Tg#Gdq*KlR2LW^4908zM8(+B7H?cNToq0Y(aY^{d^kRRPd_$CzuX^z)qdsrE+?|O9Lt)(WcH`3WNRMTlx zP?_rk3yf!_1=^?Mdd~<`pdTRefj__UPyCF4^)ruPHyw$^WjecJpJw`b#Jk^gduJTq za*y=FnrqJg%!Y_LPO=!M)wi9FOFJ_&^wM+F^n*!rae=_4qs3``=4d>nyX=|z`jqr@ zl5nQk0lNNdM`*bGX6 zT-MG&IM)&g+dzxg37F3|$Kp5A`r0M_KaD)JUw-eqd*X^4bc*i*N9cQoShxSTImUDr zVH<&Tk4W#LblB~;FXHjLMnmtN`A%46ym1rvyMVfTL|sP+-iLFWzm?nQ6Rzj{m1xXW zuSX^S6VQv-5u*!u1Nmm{MJVW)=zOW}=K;Nxt%s2O??bnGhm}HJYtFibd?q3mOkniSspWMvPIX?Ohc=((N zFLdhTXzU)o$&`IJLJnClS>$>%nf)%>Ut6?* z_2HxM@IGLj%ogSSl#SCWWA)AaT(gRvumfg(dVDJrK6%Pt*&3fM^zB!PI7(O#s#32t zscnXp*~QqHeHmiSF}n$s_)mGOkw-r>j#MGjahe`YldN5cnFStMmaR-~iM6}#V(LHP zdC0@t7w)JxrZQZiI>+r#=(`pY?0Nx%Jz&b_-g|}h4~^^Cyw}??|Mzr`-bXYhE0e8X zm!QAT-1V#~%31OEg}VEZsYtpAnJvtCxE9@t{Lr z@qKFV%w9jf7(>$^Gx!U{Ap6gYd*YRo78pmjy7fsB;Pn?px{GvBInbPT~7p z`o5mhBZXOsJoiyr1Z5|s-9u?dC~bXG+IJ}J1f{J>N~@+ck1bnoPD;C-(uyg~Kccr? zH&dFQ($qmb4KniCls1FXP8RmURV1|^vWk+i`@5h08=bT0{akvN4tqOVFLv=Y(GTw~ z5$`@?Y%lMA;_tM!ZcK`m7UuCOr67E<9y0!~4f5Se=F0&7Kux*ytb5(M|A7qV=Noq< zrmS~%dsq)n&(`Is+@8oKW04sokW8V zJ5QvQB&Bhg=7X>+TrCZ0Gv-DEFQ0m! z`JJJ?QO#>J(C$CI7>kD?ZzT8{0dMUGz9iCOJWF|8*jMQtHn7P5Tgu-o@~;#5Z3E<= zlajxbp0X%sC6)8ADCcN)0*Cu8r)Yq3%IN78<<(Pp_lWXJC5{h{0m?h*{qpk4>6tIe zy_d?Z6y>fG<)#f#?))<>*H6zvQT|OYa$XYU%NAaKe`PCQvFypnL(eG~KT+4ERM$vR z*R!Io^a1+Pp8NIctDn#XVRRl{rJK)ghF&YobeEcdktz#$rE&^(%1>RO*dP zxzpG|@SsmsGLySA8ujzv>|wg!fBWJT`&NDzSiZMXPVlJu=Ye0zhw-Flf6FB9};$z_r$w_~*G z&w^G>>4#Ru9@-s8d#|HBmE!x)Qu2Q+^3Uog|J#&*E9Jk0^33yceXt*-7+n9K}%Fv4Fv_A6;no3Tr*!HYKa-lw&vi*uX>GHRUTnvMKvJ4}6$f}J^SMwiG} zys7t&O_Em_dzqh8+OGm(OOf>W(4IUuXs_icwfl#Q5feFNxNJPHH`l^=j34<<_Gq(dl_?|cQSv{;b_V99dSRkqg<4gwh8AT-i|utQB1yRnr@}G zNP%T}-kdg8=9Po?$35cx3VOGT_i}naDf9PB=>3Fvzlh!~zNFQ0yr_?_sqc5D{;$58%u@jjZ~*Nb+!$kLJh!y=1K1hCFY{>2G}sD_ReWmv6Hx5N}x3|OBu_3azo1fiY8neGU z9QQK+7^_5V^dO^GOSNfJcQe^5_*wXO!M!f-g1=e6CvnHa?3jgZmPg`uTv?FsP&)3m zKC9cq{I0?$OO{81zc)>?`t|SD?@9P$MZ0&V+Y)1UbVDo--y`sIivQ{cE}vPI6#q_= z)Aez5R$WJJwtA?IC1Jg`vzGaDLYu)$S-gy1QSengSMH8(32%)L z5q*JAzZzeg;e|c0!elV~j_^{h0}LF+y?DOpmmBLew1@Fw7PmzB!u#bDS4=^1+>Wxn=LBF@ut&bbYV@z1v ziGC4IR#E@`$};YE!N>O{_zRM0OnY`%n0y5`dp`JWBz|=6g&y-v6UCXSq;rWe`?ot2 zwhZv!hVS(><~h{28u4FWbR==tCHtEV%-j3y-mBG^SIF=5S|1d;lgyWLt8tEPZyff> z@b^9A{5E42;}xG|Is?rUN2>7ulB;aZo8_w?WKpilLmY+DyNIU^LPu3)cgj- zV)2q(dXIm1bl6kWZz>x;%GQsyu`?ogP%q)^k^5;)+)v{Ro9)1ACTnz2zas?a2@roR zbJ-+d4^dgjYx9Sq$LU?BJO_z~-aD4_(168vz+!A&^xYNUejjBj3;n}?mEh49z?p4v z5Z;}v-5vM)o-{;kfw30;S-|c9Y&(awp#8KToe;Ry6n!J^$>8sc z=)Dj=e&h`HA8R~BX_fHt%6x4+k&r9@dh^zJmALbt+&->j2K`K*@W)MFjoMp@cxIC` z^a@%RH~no-9I~6q<9Iu9rwUq+cu38);H`+B5uJaM+B+7qAsU-vde%s%-k(8v&MD*Y zEHCr#w^XYW`5vV_=MwBJfQ>S8!qY_3!D@6pM!UW?Szj{xhzdT2)|JCsc$vRr+1D8XMXYDm6fF*ADhl> zc;O?2*-TIy-V5$#^JsqavVE(?I0}78pG~vPT%eX$uVDVc4gxmPYRnPihjL_fjZuho zUJW05wD+lq^RmW}R629OE``2(;D48%GCe(!HB5fdL1iJ|?!#}eJrR6$yO_7*&&T3B z)A&6o?m%y?5<2=4v#GaWzW|>TJ-CzMktvfjWAT)L*AZpCOJ!kCT*Lg3FHg+R(|_E` z_EXGH;s1F%R&C!9@zE3b9I*G@SK|*R?W>3fqwqTj@U2IazBO;;`*QO4BT3&6itkF& z_k&5_%QlT;y14K?Kk7g5^H!T|Ab>xUgO9>AMnNEzIDyT zaz_>6S%iN5`BQ)$mtE*(nf??YKY?ymYkIFgh2+?V(4S*=jL7R3dHub4p$CBcp>%Ge zRwUr|PRL|%X~O=|BW#C%n%>uc%dx977~OVU zU(sf!zou{mIf#m~{lzLUXX;9z{%ee%z&ELOvtv`-wnFe8`FuDP^l=1RnC+YfSo zLtg)6%`1Ej1t4QX{7{9{UT^a)eQd&{ zf-!M*~Fz~aKT&GpUDuvt&^9cWicz4QSOTf+N^p19Z4xEy|H!djw zZJ60^X`nKi6J^X2W!ykzWTS2WLpy?^jB+XiV=?#u^z2&MSpJUsX3mFvK*S5Khi;FZ z`9j0_+INlMX$iM)AI+V%?lhtAfl%50`{=wLeT;poHE=6u>u z^XXi|>>mg(AH)rQ{ z?%E$q*jmZEHbipFa-{=?X_FB0X0v-X+&`nf&DvXuyW-7GUe06G_CfvR^%V5Y``e_v z-b5c-`ni*?H-0**_f9(exwj)cBAe;JpsbZt4#p~9lwlY5+H@{1XuVS6HdOFgM|I}i zfjzC&$fy0feLS6SB)b7UH^j#(r248y@%g4P$d`o=q}xT^%#PER*HLEAV|U_;Szj~i zyH%&PRIn!8W)udwZ3^mhS3ePx+QWJVizT|kSmki4m@}L!2f=^6e}&=nhg1*Zb5Ogm zZ^1wE=5K;O32I*OUX;)2t5;<)HeRLP!P08#RWI~++Lx#?$n)A48208xS{b!PrT(mO zOL`v7N6(EfcWrp`K(`qOv+TfzNNHlc`_}>Zjey5^ugT40a;LIu1-+LKvb6>qOE1xR zi=fpmU#GDv@J51%b_kt9DtqxfhlRBTxbCF!gpZ#hu}4fJ9R0WH?-TT0%o2i1kVcn`>a zR$og}eH%r6<-h0r^}LY|g7vfdutyIOb)FD)PT6DE4@UUiIPN%6cR=y8de6^=eJdYF zIS^`a(mcVo>q5_dljnS<)k-}1aDGqSylE@5hdtXW_3_nrgyt)xZ-^A<=P{dDOIn!g zN>Q8cfG^+~G^RB6zx(!Hu2Ts+J32>|x_MvH(U&ylN0Pxm^=;56E?Y%RD8SATuwOh! zG%7;8;1mm6)APq>urpEPrF?8*uc1^ou``jZG#U0V(Fk9Yfw;DXa+6V_HffuGxhuM2 zepr90Zddfx=CGbEZS2aHe&1z2ol-0P9_=cja^~h`={|bG#;A;*rOizSc)UPOlTqE? zWK`1gs@ti(?bN0&YE!gAZxU@PKHtgChK&;1w1nA|ZT{sO(UQm#O;(l|Uf&Wr!!0ph z8uUgqTY9BSs$OnnOV4)U9Z%klrmkZ&C-CW9+PuUF)GVPoml)Ml-r2W9mv^~w@10zy z7x=MCjMK*FczojTCVkr?zCHIG_QeKm%{_bL;S00%x%566{+5a7F7-7Svj~UKR-^+5 zU5HU%vm;?^ql$8#d=BUQupT132M)q7HE{pOHN7}kL3F0MBb(70$fw_o2w!kg3yW6+ zoCH2THYmx)nrPHG< zavY06w$(_sXgi(*IV?`D*kN@&WkM`-_+#)H6@=fDdAI zolkQ#<<<;6EPL1*wu-*3l(!nN*{;msd(F0=zr}UC{NWs#=Kc2Lk9=HtnT54)ic+t&jaU{%T-V35 z>u3yo`lmwgak5;m?Yo})JfOU}JQiM?@#sPBM;82I>sfq$YVOTox}i9Ocmv$OYsLn? z=9b%Ss)fk~BzKzB5<5AO_*|hwg}bTZ-|UTFAyw+|ozH9%l{Vv8j)&c`p&ghj%=f>Re^~E(iC@+y)MDJ}vGC*gY4{-kU{zvp`1z%%^Ynpl9~R z3;ofk|S6Izr zV!HADuD>GYNK34uBm;iiRjz9sVD~M!=gQx{%=iZL>r!j5xag5u;;U+ne5ID?Ej{07 zvQyB3ZfE9nJx*-}4~+4}*uvk3N3D$^=H^MnUk5%ptqh-LN1B-pAbjM*k2_+&!@nc! zW{$?{jUwXLBxRZLc*#h0`0=ewK4TrqV+__#;PM&EH+RGvqHs(K+CVh<_KLvDz#z zH!QvfwT;{c>4LZZus2>bwbd}kweV(c^FN2mDf#o(gq`uRi__Wtfr*>&k%_Vc;y+}3 zrvKa?DjV-7sIJ!E@b;l?pZvb}eHOhh9Qmd(`8AKenaU|2MEC+8L>k0!y29$=w(Nvo z8|k};&TPP^z0by&&U4SjAp`9zrZu*LmE&{lcd_^?+RH4CULJ1i4|{pI zidcr;Lwy<-<$DEZ&#Ps4pSJ zl!EU7iM260^Y*=_?aAZxtH&K4Vi2-(u8p^K3$?Xur$sk;N_NKSVC~YqEXE)1f@vI8 z;$P`m`8}(Sn9rNf?<8JhOIIGzEY9<6=?Ye_FgV|{rVI8IjQ8=i=6Q0mnLLa6&c38R zx5O99OJlJ^LPpxHd*dF$#cvU>maxGUZCg%l`x*7=MfxT053`64s5D0}oxeY7_m4Lo zjJ!(wXce79!y9OCfBM-QTM_@KU_H^&di&i`#Iv>gTi6{Y;-b0)K4x%Q5rrKB^3xbU z1Gx2!7F04?687h^e3nR)75;5rdhNC7dTM)%N1-y;9yQ}A;;z4E>t41;<6gDg$@{SS z27Zn?QtCOm(S)`TD*__%}F4`9HZLq^YBS#dy)9^dInD^t>XAXg7`NO~+`xRrd97 zAeDxU6TABQH-KJ^OXBk1Cx>;$tA~5^tEddD@5n{_<9I(pPt%V6NY94I&PqBT&=Y(@ z`}e7jGr9d6?vSwu%{YGn^S2-e7QhcN?WYTjeEL;QTVSlYt#?g0{NY-h;VQ0NV2p!3 zH0?oH3&4NZ$V`3*Ix&;4iyGp+>HDA9d4R76tdAF(Eo?n_=v=V*fzIel5Abzit_gEJ zu(ePVGFpfBt_2_JqhD!r$e0lf8CT8N8?UggFqTyDwSfJh(2~h{WSR?n`{ee$3ElxZ zWO$nY+tVDn=???@%m;tj&hU|NCTARCRuf;a^YRRKmcW@0d>?qe3PGE|^G&AuEQ05I znCkS;vFbaAW$-bUxV#s0eZg6vLkk#v@)91)w`J@0iQK0<_-o)wp)Y9It;=JeNtQ7o z77M~61)|_(c+5N4O|39~nN75g))-J8;^Ki^wMWhQK^ z-xRjhm^;;$;^#ZXzgwsu|856teSP`OAK~VHEk~s#?4J)N`N7;_>$PR>&lmZBYvUhn zz4qMw`6Ayrs@E6!-$WaqvGw|{O!h^-mta$Ukt5G9Y`wlKli}4Ac&~t8c7|h+FUDYj z?Q|P>^Ujv}4->xU68-~4pAvo-X)JzphIN{E2;cvj<9@5H*Dk)laX;SAxK|7?jsuOm z{|x)&6@4mA8AqH&H^Y8T+(|@ePl3-J(;n6Dw=w!YH@q_*8RB7WRZ+hZ(ylMq&-6wa ztqX)}sm+UPX#GbnrZP;~k;3BRF+b|p-@7Bh$AOoRT;URHn8(OH>d0iia@f6CK-C|5 zCPwAA8dX#e+J!Zaw#|BKC*$8tnT}W57zxtvkjKGz--2QLyOZx5&sHo=~N__1R z(WmRK741QsRqBThdO_oWd73dbXnb&ir1ubgK|eO$7GdL2JTu789s$Gv4rv>^x5niW z4rbevmjjw>(fyHSN4@P~y-x!`e+aHnGWAPiKB_PLt6!JX2RJO~ki1Y3@K%Z2vk*Pp9XIW>wFi zC&tl5`DFTe?r$;*=~qO*zcK%{Awvm=jNOwu<7lTeB9rm9ereg!^>hx{A<_$z(#t7* zW*JW}NlKqW>9@o0TDa9HrM977hjd%?v-1{fomVV2Jia<@3q2$B+uXL;Xoh|2eT$7t zuaNZ8I~N;eBP4x;vO4O|&eWd|EQUQ|l-sA&QTk%Umy7}rLI161cQSjMS=oz?Srb|a zm#0M^rt&J=>Wz>8TCbIlr1ckR(yk@E{wS+ntDaDAR8m`K?5U@@32IgJ^ecRyf0X(- z{(^l>HVOa34^QCl@JnbP#NThB_tp9Qy%Ky|O{=kJ#6H%B@*Jz)BQ4}QeAV@Y^Yz-h zutB1FWa78V@3-pj()sm+AM9rEOy@^#FYYmN0H9pjTO(u)E?1JB|xf1W?5cdxC< z=6n0P-^Su2a86a24QSL~z3k}iL%|ca8u_%x;@(BbzgMpkc~<@wy5~|i&f7RMq$~W) zv?p^vi>FmcYo<`}yx=3Yhpplp3q(M3fY^-x-pWx){oQt)G$B&EymPq zxGZ`owJji76TY6V{)TDG+`x1io32b_vRHQSQr*CHwCU-s-ew?H_Zyad@j{F_Vw%F| zzj$Z5`gE?i?^=F8e($y1cPD78$xH4%KaI(7(5Bl))N8YI>W#Z5)N6C-`B-+n);O}> zXrkXg&f0Ir1#&kh`I7+6xsb+b7>z;EH8#ESk}O8Mz$0G^|83QXWB%WLfi3=^e_vqd zzCN%ou)PJH@fiVr4o6?AayK%bzwFvHHdfUaTlK>t_8st|oa%y|*|k5|Ve-_N$AA^ZeK96ARI+mMbt(Mz5iU4$#kx0?^t7& z3H>7ZYVFwiSo}IFckj(My?O}o>vV2r`=rvKJ(a&d?l^$vDd0U6k@uG+`WJ0}0@ z9kMY}G-PAs%XBhkPq3b*lW`dSe=J-_A=!sB;I>TQet*-F;_!Ga{lwMz3U%2nef2+1 zoaa1E{{wvXr_$G}r(5b<&z#Zer`4l_|Nolx>^;MJwx3}=a|fvB#gux20xr28z&)E( z&zI@;l#j~lquYa+No%G5uG<4xjK$%8^j(&wwDDk(t=~4*OMU%W0iMOdD6+A7(vr?k zfPYBp>(9!BKRVLg2i`0ENB=(9!BXYo#w;LUg^cS*z}9gChEH%^A%9myPX3DP!9+z}S{ZePa-q?XsWiIBjgvcV&Qn3^cahuh|d# z8TRATQ``E)UP$!g?EZ1&{{(z$zdb4NUIDKO_|$%Po_jiupxDZ}g+T zes2-&a-ShCqW^#Rnr&-KXbb?!R5v4bU#{062X4K=^hHasVeZWSObMr zrx|;DYJwsczi*#7_d z0KDb7{kQLy0s6nO#Bmzk2OeC1hW$6`(G{P6Jvuxg1#e2mx=zCz%*)xI_rHJDD5vvp zM-l()zu?WuAucvA^OE+jHAmHD!?SUszH84A&qfIN%Lck%9^**dbL!&k zFequ9lkYh}LsRdI(WkVOaUKYlO`7=WXWRPt82@kc0-4M|J{y34N|~1uF)z{2wtZ=g z@c%Z>`#$?>1>jIFwChVH=);_v) z=$G_q|NPoOeLC?;-~G*uG3*=SV7Oj>PVXLS(uUY4{mc0#pW`@L*`qoHu;()yMhQpY%V@mE%vBU4m|}{$$(0cWC|a5s!Y-mydAylja3H z&gfn}%J&pL*0m|)3|QnTpU@jm{BTmd>>qv2asJLHUrmm2>nHuMx6Nm}`qlHi;cK?< z@~_ywi37B+Tygh%K0Nztwl8mh`VJ1zzVtJ!uTre5RKD+%p8m(9DrFs-yvaX$`fp#V z9LT%}iuQcH_U-HGe~k>(zHL2y*T{cs-=BK6eQAts>|^GddPne1&-T-&FVnM~CFrF~ zv=M!KvZw!jtY(0IJvP8R%{!<6eXPFctLu~|7_B9&go|~z+c?cKX2Q5&go|vcK#n={?-hz-;Eex{?-k! z-{lT4f6u1CoA-Lor1^t?$x(y$cNhLHkNKJ$LGLy6elR0VugG_DAE)r247*~q@jC7o zs?ulIOGFGI*vAyYUN$>}=@h?9uzwM7u*ZTQ1Ly^Y(_Jj~#%tnRK6qW||H-XJr=8pE z{#ksp^BA)Q(4&0%TKK1HHJ-Y5H;d_gfS%A}giVe4H2nuu%WcM%Oi!P7*ZA#B$M2t0 zb|?J(n{mdF2Ypc_C+iQ|uS?t)g-5B=j!x-q&%ZF0D+SxFqm=KE zfNvDz13OBp$A-9F&`ouTSjOGCx*J2gvy#XVsDD7Rcp=R7&6!3UEIwiwh7JBueC zG$gssfZs50O$&?B{^L7Q*G-JCzLLffdZ?IdoG-@Q$=gvbbi-M>%*RBCm2F3PQXTWX zFH!k+D%&OE)~5O1WN|`Dr0KbmPqh(WZjpT<2kb{J!3COKUaGlj8dSIN;q=$Lb~9fB z$afz1&r)Fbtu<`YE$}%~V1=JZiR)3qo)7WGodPEp-3cGaK~`8BOZ39~s2QW3Yn z*2*naH>fxlTt;y4Bb!EjbV}2rP9^*laN>bW2{)kY2>+)vHa1_aYEiB-l5J3r+s1#e zF-&`t*!#WOEEYbE`U*F&j_Vea@-bZ`^Wcop!u>zw!2KYD}qF z$YPY%MCu&*9d!;*q}9l;el2#q`ZZ%t&1;UT$Loyhjyl7`;wLx37PX;;~q(%MY(C*2fXOYP#Z5%@kKA+EUc9o6N#O7m88 z9Rud$su?!AbS4jg&MwewQdP8;`Nvtoa0GUVEAJp&h^#fB5Bm`2L;4xv@Cpa*UpAuG z4*2MC1zU|<9-E@waz&#iOO2YF#wL@+VqL-f<9p>=ZDtO)V?TTa8N$rDQuBxfaSy{JS(LjA_V0}Wox(is@ z%Zc_(kABSTm2Uzc?k?wkiFKLvZ3T~8<>PglK9W$jrFoHc6!Q_d+$c$EAK-?Iw!xn> z{=cz(d!kM7%j%JqcUdIv>u|m7WWK<$-_Lw-cf1_Bq`d7c@9~0kc7FqyTa&(!CPvOgn<{>=@ySla9e@yjSruWX{-Oqq7_)G9#;|esW zmi8sqJE@K6ccIV+NBp)ex7c{hmie@XYy7%(4tSPLhEnaP{iVgY<%+AcTW*}J-I86; z{5-?g5Ms(zk8CljI*5KLP1No>qw4;8qk3k&@$JiY$E!xRG9CC^ZoE=EPVGc2HqdPC z)TuaPqrvXvDGQ%ZqPO`)v^TAB^u~uWVR}B_*Xs*HJYBEnb-E*lQU6*;7-a3!p-s|fDbRl?grtX>E#$-K(1mo?rGT(gAp$8vjCtTPVq4rQ( z#IlC+-yHoJeAoo@4Cp08CwVXRp?F0&TFm@Hw-_TLi-<<&8PA>%`tqh>dp;bUc`3Jh zKIg~b=xoe?O^Epxu{VcUd@@hC)A+$9I}&~$Z-srO?;yjqi?F{C>~)WD+wtNh;poL! zuY`}2pRwtKo}#ubOV>v~PJ9XT%emUf9uFJQCk$tMI6C^GYgPELZMNA|*rnQhkHs>^U2Q}(DmO~yQXiGHa5Q^&SWov=tF#U^N%@8G zIF;#A3IBb|Sea||(W)nc^-vY9W<1fY(Jopm8B(?SxT2{4_wcE>B{)Mv976cja#DMm zN46Q2gPdH)T?%P$m3A^40XyiX?+6=%tyD&})v2!&GQKyS-Wtbu=J(OJ%lI?qp8e@D_sKLGbA`Hm|}Cqef-+rA}(kgv)lsE$+Frwi=dOsuyU5fd=hig6W*P zhUxSdA|@`;u8oRaZ?#!e$Rn|TF`rB7nphU?AOEJhEkt`=zGX~59r<=nY%+FzkJd6` zgfz(QRc$?Y3~VQf4wOR->+%v@)(adH$B>Fv#MqtR(Va#BHa^e2vl(=gsBjYq`R~{rH=v2`IO1yrF z;bCOb8n)hGmjS=rGPAQs+{|~4^6GaDj||;dsX(=Ida<79#aYBJ-i&^7dAl3-^6(*I z*%Y=}UV`tK9}q9+*D_?{K_r{X;;#{1^$;&^3piA3*hcS?8#WsE59RBu4E&k2mf6Im z=kqk$pI$;5Ux!k`5Ef^9Df2O!L2&SQ`4Z6^#EUpV^tza}>1NI^5lx331Ik-M<(XyI z<-?{%>IOb~NAo`YF-PKhYQNkXj}Se^c?Iw-R1U<`@ne7f@4~8w7qK~t_d5YOYATB{R@qjoRR@j{S*#&eCL@c>A z@Mny5%HnKx=OON|nEN$b?RxkEJDYRF;RCM(zLoJ#!8OL*T)tKjzg8lC*h;tsAGgfs z49(+?kvz7@-PD#)j+?EmcVzC9CL+E8ms_bE*f60i)8{SCaltA|w+nd}@@x=!WSsjk z&cSA*?6FthUzY;++f=xkX5->VUVYy`g2xaraIRIBYHb8(4cw$LxB%e}e6j}`Y~V$R z))s))%Cvth93{nZmcu*z8P?PPUy*J!)M zcsYb$7pXaX!NW;yWwzaP9=YI(SKmkcfK`L~_Ul2w`e6eF|Kdvx)y8oM{5bKS+Buho zqwhV57{je>-;`0b6S;=AZflh(}f!Xo`txBiOOA+TpYpF7{bl*?3nJg$M=S7c-`J2Gbf8)dP{XzX{2 z_Tua~4`ma~SW)iJs9Z0tFYJY#MEgyi4&x>ZzgjH518gcqoNANa&3Tg3JJ8O$j(YB^ zN#VSU%TIJb#`@=XR5LDhvimL54_CnDWU_zUZJ{j0>-cl|8*$|V&QrNkcp&C?^D2Hu zSI**iO8kdbq=d8+=Ob=L$na(GcCk1r^#6I3*XswcUh#z*sQrt}2rf8SVz3od&ghHx zCt~ixCt#(hXQR)mSHRwn&R@lJE@kD)O-Dx%oq~O@R}E?QNC^H1qVQ{6LhXT1VLo*zriLBkj^GGuKjTzJ?9b({7zQ7_jf~1V4s$u9}Li3nRje8g#R^MXA5f!bk@9M!#y=y z_uqHukAAc*{$_QB&SYdY9L_G{007>U35N(S`8#9>E&&I5+I;an)fO#H&>6r%j`qMu z{H_k??f=CO@m(Kn>(}N@9`8)tN1M6?w|unijBKj<^Orp3qux7G@bQCh*`J7+`DOR? z1Njs#{U}98v>!V#=mU)XsDBw9{4J;6)8p=9_(x}^yE;(2vd*ww_K&{Yz6H9A$u@^* z-+%tq+qNcqCga^MwC?XV&rw)2HFxcf7hjl}IP;kP){mFknJfr&0JPr*e3M()d5OpE znF>4L!#N}Fiz@O=7GngmsoWfu;OY!}cp38vf^r5CowInRva)W1KR)6EyuN$1LAG0> zQ}JKAMPDT`czlZ9Fue7{o$nU6bdZs7&X*BWDYiTpidwZ|xZ}0hU5dV5IX`V61Mbrjm zfcaI#{1(ZGVZV&+cgUY(#ry_X8DnTZ3j>(nyR;nJP0>+oes9t{#r(oIV%}Xezuyhp zT!FCdgD-Y*S%F{8%?EEvxZi#uUkl(_Fuu+-W(ORF&G%i@*8u#RzKj_0H%HT$FMy>Q z&R@jGJyTJ=KThYJ?h=Bj-4cr*vhjKO8IUcbdR;rcdJIv2q{xc2fBP+Or)x(?gN!m@KDta3hcyYl zppoG4{ku=Zm`%P*$lO^BhD=TaWY7NY_1XOWnYZ?K?-K97q4(qBeI31fr7SMrq4zTJ z{tJ4q67Nsadr-WuqW5*;eL21F6z|LE{g`-vjNWAne{Z7qQt`fs-e-vS1@t~&yw}rv zSiA@6y;Hoa8T-4B5dVPjFnzgT+#F&|?7sAbOb9d$=d4*YzK621*w~DCg2(2AJT3qq zFn+F2SS`M%4GZi4esm}EOMv)oINKFb{*&T+HsweC*o#r`7gR6GGySqu|6*fg4*l$Q z-rkMW-Vp9P#%Aav2p2qQ>1-a=3$pbR@X@rE;7{P~D|egnuYAPE1023vpWm5CpPZC_ zvb{Immz4hRr1Zk1bjZC{ytK1Bcr>r0m455!w~>CG^ixG!7g1Zcr1AGrKRD1`k|nXW zzC-=ow<;Fz%+F%5-Y@YweR2KGqMqg--#(%m$9v0s^mK{jk zJK4p##^bQ)sOOJV&lI9no0DK%0;WvB{GMQnbJ|$h!8hJYzv?Rgg3z#heW)Z=_&l}owds3SU1zeYadxYSER8}yl zEJeV0(>TnJS0M&SoAFQ*Op$=`3z&OXabKc{S7?=5Vs_zY6L)4s(sXt|QX+UL>3Cj8 zHT@3Kuk@cZ|MWXSzuEuF>)1&@@Z6@168FE5GrEL~^70G0JQ6Yy>1-bRq+P^60=;|u z!_LHgof+$B_C-4w4J#9Oe`SIWl?}iP771Q(?|IffydZd)ZO40g!7sbVM&8tWY~N7&hUvXkKabDaX%Dmw%u+FBA1WbcSIiAL>8)=9zKJI@eLOkM2HK0Gr#G3Wim56=uw%z4*8JTp8g7VvL>*cVTL zAIw*P(rd^3X40I$@nP>72j!V^6^1K5jw|mZjS+N)U-|INY!L>+liz>%)$rt(AAU7F zS@Gdl!;{4yemS0)eheJKj{)%H=O2DGJh}fX;>mZuBA(p(74hVTuZSm;{s%lMO~MnI z`N@(Jca~4%o%S~`mG^z|4mo+c{eZde6+9}^!3(Y|Ibhyz78F}-Y%gBCqSue?MH3Ii zPuUK{OXyj7!GZX(5d<&K(xwR5N0MM6J92S71O0?EgUNuL#J2*D#iBzD*+s;^)mG@a zuWpY!ai)+Ojh;YT-ufxoxpel;MLS%s3|98+75wZ_O1v%nudrx8rwpw(b< zqCw!hT8%GW*&df7;poo6PNp|;XpB=Yq_IQHfI=?EVRALp0l(rUqMmQ9KzstJ`xoEh z_vW%cMB`yMqQrCHuD?RSO(r;MCp)9le05W~&{yd8usB2D86>xU!}hp~#n=gHW}27U zh4!Cd_x`I4nf{w+BFL_KdY}izeV#G?kjC(t37l6Nj`#t@JKg9zz<79^D{K61h6B17 z0WUkp@%yry7!U7cIs&}@$gFoEZVE)n_(8Ou?NhxG}v`64)-&zh)rx2SK1 znNRpTo}6@sY0czqv@;n+INFIkGC#+FH$%CMmv7q1##0i$=FGF^`n*k%L@Z}2vn-3# zDe!{ti1V$F+EqjIf%9$ExO8^DwKCnPIs>{#fS;0;)D9o_kG@OhXJYu`f?mb(OU!i? zwm`oO^8E@Icu8uLA8lK1EPHu7kAo!IX`ZoaF5zQf+Im3$=gzn^!_fp}vC8YsO1?ilr6C6dI>;`hFeLz2Gqp(AUe8`l?c2(Z~Pb&KdCl#QZ1Y zZ21>-F8DmJqx=e5vuR-_7lbc+lTIm0i(zq3(=B7e7br^og+=r$rZfi6aB>>;rT$li zO3S8VrGArrl!fVr-ge6lbFOoIh%Hx@u9wqU68`Eyt4oyz?PD5S#f;aDc(eX+?MO*l zyb3Xo;3Lo1U^I>8ID`A3^6YGeUszLVVr?KsxIGxonN9T3!Q*_gI0v~*CfA_arIj(n zfyBLciL!#p+@#=A7Axtx5nO@KZyRSmOS@@4;zMV_L`k!yvA!HHKGdrn{n`OQh|Ir$YgQjBMuM~JeWj{@8=^2!T za!{UG&QdBzA)MJxbtn6goic1wq~}!MGa&R-{Nnug@Qw?amL=frkta7U$u=eygv zzZa*LVhZ^tcCi z;7%TRXj~JeJ=UY=&=}l$ZItC3Lvz&>u;{L8k3M)RyQ9`~W>)CXx#aO+Z-ET>CHOf# z3;Jpz|2>p{2-9WYv;^yCu58th0JlpdeVQWT5zzczIV8&D_t<0eXDu=+hew${1aKKL zYT(ip-e`j6TWS_+FTNa$|DD#|pQ+7>ctiD^zsG!8+1*L4=JI*D?jMgg!1O$rz9a45 zlDH>@J|MT*lUCz9@hEv%|5(?9gwImOM~Hhz(9U+r%IFH__IK2N3+@r1vlFP%Cg<99 zIfvoR1?C<7p;M<4erF+XGt>7|I%u$q#_0nQZw2#Oah1$swWTNVpkB=1OPscW|50B) zkeJI|^5BkYi$yOVmd^MA;Bg7H;X>Q~L>yV*!z-WdOT>8qJm9w3_9w~-=M3&>v|064 zxqPlRkG8V%j?jFeuYYTa#kbJ+o#H#v4pLf$nD^*4(S%;#NrJ=oT`j%5EaEE+-k0QG z-%e!_9Rb{HN#(e%jh?0pSd>e+dhPfRe7|z)YXWV?$rh(REnK0uFS6^?nz`Tm(ZmC% zE0Z-#^<-KDv7eI&FV^FwI|Oph0_2%pqV~*Oqkn-BuPG z9qS8yTtt1`OJnf#Cn~EO^8Q%_;}p15+X5e@#2>)tD)DTk-=s10SLkyj?x)OY@=8Rj zzj5=9gzwc>DkDvlQA1_WIjMVorJLa>_D}eF9b0KX<-oYKR zWMgqvu!bK~ILC)LVPkE9lHGcd0DK z;5+|OPm7(>m^Zj%S0tyy<=Yf#r{_8(t|~r*&Cxs$Wtl=2By|9MjRfCt?DqWs90lrQHGW^}r6 z3gv+=iWJf&5r17x&np}(27q?CgVWdGp3a2+%J$5I-4Uxp_vZ0AFCXP#{4-=zn?P5I z9z9HRcTCi6>R?X6J+ObNwmv^ye;aX3d_~MB^lj63$B_mdvbRNilba|FxMgE!dc;i$ z>o?!Lo5ghoEMNe8J>aVQ!c_ncv;ew`BJEn1#_SiOcG}NRQ2Wt#^Z{*#OoGM1q;^}B ztF=?a?;~D3@db-5$~78`9Ulp|czod&qECw>IaVFGJCFA17EhLH_x~a$V*LyP&yc0o zs*qi^6pmEq)jVpr?2;Y~K5AGltJQuKIQ9OIt53bZ<(9uPU)b$RZSJJ>j){g}_?4<1bDwH)(U_0Dr0EFIqgxAeh--Hk+Vd=vVnFQjydXiK@0 z)+fD|(&th7&Xn|@QTlO8w~y?b{v%4CO>1yQO8R}2u2Q<1lKy>4$64Vd(U=ku%QOx5 zDTGt^?%Er-D+d#?DeP%!Y%VOyYr0jb(|HWIPUs=9m{R}tbjBS_F2sD6=YZaL*}Wgn zr$5eRLMFezF0d)Gis(`0n7(bAEZT&&?4te2B`wu>d>QCmDMofB=Z)#SQqWMz&m=hS zuOnF4Kot2K44l#I%2gW9n{zMQ9k` zs_B>is}i=Z|Li|#@=wo9p)#A(`FMffU-5V^ZJlT3bzN!SZ?@l^Pw=}0{E{Tt1U;_g za+L7Zz4I#t4ziej;Dy^SwCTlJY3zK!_60f@{N!;S+xeT+_qjGZlTE=!Pd%TtAcqa4UvOCDv9-R0Fiv?&QT$qS`-pTvr`-Jn2 zV+n2}@J6KX7wNEvOnZcnRRLlhd2IUR^EmFXy$E+~5Ag4Z=R8cvN)ZDre+ExyXQoWP zcOl<>0-pM7Lx0K%?!dBxag>ekBWXQ<@$kWTQBr%Jr}midxu5QfKmByy`Q3Qo;EoWr z>*X}QA6N@GUSBr7H|}P;J)MpB@W*+K2kd(lz$d~@oLgTeT!Y{EHjxK&b%gS~EO-W) z@}Yc`{kv&9;*g_YFZ=_w-JJUqzb)w~yKPg%fB9f$tGUs(zq{%igIV0WO9ju5c$XK@ zn0!l&)da-BzKzFe22W=fHiC%tTH0AmN5DATPEqBVqeYt6BE2f@*L?Ov6}$FOo^EWYa^8^b}^sY!trV}9UjZ9egn4xyWb zG0S=BV0?aHIs5h>CJ$*d9;E)7<@{ztjIGxjUgcxJ;y?HYcO0P~WS;BAI&aT%Cvbh- z`P`QZWMmmkM~KJA*(_jQY!*5&*yqQ(xsDR_Xnb`>vQ7)e^w2l?8fzc!=4ViRQ$pHI zsW%2SwW+cF8(hEqh>(dOZtCG_oQ`GEITthl`m9Sa_mGoUQ=QczmIl~@=^PgH0=ygI z){dP9Sx~ESzr3nDB4`8p`%~&K<`c5O>(Aq{ zR1n{m#oVOw_eyF^@HH-g&JIR*(GV2pQE)Q5YEW3~*vb*QM1@>ElvRTht4 zN#|Jbc{t1dh48||?66+$N+(<$B*tBy#OH5!QhA7-x6Z-qzk$k{VfE;*TY0YF@#DNzZng%JV=GF8_odMP*lE!_$7is0 zz4>x_(p>&p;&Bxv5kC$*17d(+Eg@D5i?4_{ay4On^Qg|~%X1|CB@ttBMoq}*FP>a! zHIK&uy`hceJcjd0|K0?@Tx_-L5o$*=4V-&_@7e?WtKZ=H?)Hngax?}zGx^wk@mMU8 z#$wH3&D^)CPfVBVCxmrVep5u}katRY_s`}*ZAQfAVP(Z1<7;It);5iun(JZXS44Pw zMA#D4%<|}Vf8Eg|)x=w$(-}WOFo-dX?}%R#qBNJcH?5M=9-*|tq_jDd_ESppC8ae} zTHf%^xIZav4W-GH7D!54PiYyHR-KdvemafPc3RquG!bKGG{!KOHHS3FsvsX*KwXpT0n*HY}O&MqHj6GC=dzS$TVJ zeT>r+#3VyI%W0f;B0dt0_3;2?$8E-C_X`?7en;HJWVfiN!7ycX@=rHKj$Jvpqlli( z^aEXyiaiNl{dYA7yDKIS?wIRv>aAll`|zLZ=-bXTr#`QwZ~8ANU3EJ3o|N=elrFoS z`t0-irZ1!PLzKQgCB2E#XM3D_*@V973n<-}>C~H2(u0(KlF~a<(tk?n$FiLIEG4T? z`dmt%WpU|+MSatMNa^dWE`3)@`fN(a`xlTYUCU|U8<&e1n%_ypg{`gFx#K7 zZi5Z;)fsH>u+u(gmFt=A*B9Ab=c~!?V)eZA?|lh5)D%aSUOvp3*a!apXe@p$yVq<@ z#O0jdkfk39R_KivW-+?Dh1#XmG#EC})nEh1b?_r<1DyeA&cj4c2W^Y4_<2}=Y1Fpp z%WEW^(bRB5zce*a!)0of^gKj(SK8cQeEYJ!>^|UEMElLQHm9_81GN>nf7Iq;vNX20 z&{*Zy95nMh6G_SQ>qq(B$itVs$zbvcrc1!!JK)w549Y}#4Jb=mVN9d(H^=X%|JfH; z(t68viZ%JzqcH~i52Ejo=RqC_`irOezvAbF|AZr(hh{Ok4ETT&CCKRBjEQe1_)(e0 zA(EcO+Vqo0d(RP_k8Fyl4woJn+ZSivx$hv8@7S;7^M9luE5Y*s7mB{v$9&l_9Flp= zC)Lf%pUK+Y%Itv-UgBVRX852(Qp?g%Zut}!lXajSFTT8!w}5GDnS6}Sz5Y#>ehxi-&4W9zmwU!#GhWSmSth@yj)e93>`tg&gO3a=d}`2h*H)|X z4{5(CBXd`Q7G+tOUlOc^3#q*kUpl)Z0*_j?UD9ulROpf6F1>SZi;;gGt*Kcp#@@;n z<2D+D+h}}tK4>>OJL`?kyY0p|L}ea!|7Nxm!nl3yB_j zF3V=|+s!+9oFzBgYzATp`-!%OEN*u1W}dgO7Vn$D&srO8c4kM2{P3Ny+2%Edoc9K! zr|q`MhIzkUx_DEhtDpM6H$eT*iu%h3sQ*S$|N4~rpQZZ$GoIIP)*Yt0Pl~$Db3W>x zGC~j@tW% zXs>ym^DH6$*>d_=6^b&@=H&L;?KUQtMVWLCU5s;`*>1K^$xGS3XchUb0+#A*0Uuzu zdyQw%2Kecv^=vP-GkfVlN%|2-sZB-wwCO+R_1`9m+LR;e$)+|<9-vL{o_Bhiuy!SC zQvOitb7uX0^%p7R4C1F`X{=vPg@S@a9g zuabT(XF&#ft1hXko<3M>!+6Y**6WESJmZm5TjTjm@7$iCo$ojGmH8E| zm3)Dlbv6X?{7`L`;WAFaEEVb2GdP3?;%=l>y0D7Gu_GR+Le?CeO4`?*d5#MVvc)9pqOuTgy!88aM=fe>-s+X{)4sjndv7J~ig4HZ=fCXb zG02&JpiT$o<=HGg4&S9V9u@C*H*vlm`F8%9&h%Rbca(Ve+4VbBZ*|Y1ckd`yg3mzz zFRys3JD4fXx2N`XZ^_QkPn_KsX7jzh^5Xi+w-R?<6;e8@_iBNISJIfkX1j*=a?k;$ zt44fey04CS56Fw5>q9s%bK6Lq+p}+@@~~zUZtseIUn0Yw2<>P6e7g{Lf2A~z{d~I! zcIuah^-pg-{oAGV4YcEhLwd-<@Ah%ejdCP^z47sq-nDgX_oj$l z*p_s@@>chuPJTCK+M%s0=CPN`OGQi?%J*&HG4=1;H0JLH-%98#nY`YiOFZnGS;ne! zJdCd>ywJnrV^LknW$a2Rqp!Y@OP`^H*?sBr#r&?c@e1BITY&2eO@OUTp<73cV$gKE zQm=h?bZ5NO!^hJp#uH<|%j4F&2o`V{j~AA}&K>9YuK5-`^@`Kx02~j(7h*@#F(6>jN0`LD$i`sC4b@an@#6(eXry@TJ!&m zU4uJHvpD?QJNI_a5bp=+9b?>dBd3Q_ZU$=?<`4GrmwvV{q5p+_-fqia{hYTX#&onW zzREaBpI}OG&B!74AHMAEnfm;_3w&c(i=lN3p+- zDdzl0v3iZ>iG*-x;C2NelY6Dh+rFBf&vxM*Pn-0MF0X$v^}nf0a)-Jk{}SfE4fGam zMEjmTx09{Ep2s+T;@-RGU;7gJ-4fBUgLg`7493&myBIn%BCafC{o>9z8h`n%g!~^k zaO~54i90FC`#<_uf zw6`#Rs@3=l6+7bjb`JmI zVs4|EtPdFW4(V8zW@B^`FwYUpt}!-!D(%^S2c4oaA{7Z4=`)82b}F?Au)kc~S5FCY zY~z#OHXtv`xrp+gOyg}>F4~anw^Gg<(osERd>>uO62fcXH}nS|IESyb+2>gF@z9I* zbG>NH>yaz$`Vi~^z7{6ip9y`Ai!E#oNkRvJ>2kST`ia3F{VkdcwBy0Wv4mcsg0G1hvXLHh4;24VDlqEtty||6@h=sI<1hNf2T6jM-d+xXf+m% zImGT6iU{|MME&{wv@^G#c7i{zNonVGi@8mJMf78{bb1>bsf~-Mjm31%A7Vl5A&$2S z?%B?;-t{TpkGYNH?=ratI$SxdV(@drBSoq7LT(W40v)zEHq_7VUq`l4GUBgk2YOB0r3t z*_iDdV9ef&_O&}R>pM8Wm>r1rKgQ|+IItty*Y3=OPmU85OY*({=V)KMGZVh1DC4y8 zgyH-n^g|1N67BVS z-8aTm|Fq!VX#eqFlgBODulUSp|8XI_=bj$p0Oj8l?LRI=VG6v7$Ja%BY13Z2gY6S{ zf3~mtkb}Qh(|a(Dzki$FOVj!LZS)R3`Momt_558b^9O>zgHO?eg4`z81B5~{ms(ulhGJx(!l@ERo56zaueg38>J@0u0E|Bg4Ixw`TcK^Nwp{a3#C%DknbO zCaviT1RCj#@@Q8V^>?SVP(z<926raPJ7{(4t;4eu^8uXe__Y5y`O8ahbr(N4qyw_- zqv?DO>x($v{9_^HvxM(w+4S#$-$xm~fQB+)hj5(W0oO?I8o|m*Avor>HPgldT(^|_bceV%4KEm<@Da==I@u#d(TyUXL_wI zN7uveqO?p4_-a|)fjP`KF5~^(W#SwFS?6Z>J*7S|pWnghPU+b$ z_z%W7R;gS+2;+sZ`vJy;_wyN*<}Wy+Z$GUId(XcZH|(Weg_i-lulZt};JeJ_JU#!v z7I4~sKh@J~Kfuq$u!m3!ow|+s^M_CNbsry}-@)#MV7t!zwMhkYGBfpzYL(&BdsNo% zpj-bZLFb<*8gaHnbN8h2+GwuJf;>%0dG=GDUoc(A5PXL-8}v))41e``Z!=u3vNSSZ z?vbQC+ZM!_j)+0{{ut$*Jc!#VA9~KJyJ-#PKSkr;OmiM+)Lhl!==VqMj?a61fnoJ^ z(!5M3zNnM=%RD}4HP<1=IUDhh>96HnI(*Iog zpL>pghp#z%^#aWsXwYE4=nc^RMr~dmI$KqRe|S56Td{!87yN^keh>Ffb9HavYVDI# zrwXbps|@tfLw!g8o}>QVg7c?8q-9B!`fk9CY%>anXR`fna8{#MGQ2ZBh0^4q={)9Q zW}{Yqf1|P8+Zp#!x|P~IW8zMuMC3V(@>J0GSLnM;-~A%}zU)TrPn3o>U>;@=EqME% z``CZH-}ujc<~?FTWmYDehr6jS_zoYKlA`JXU$eo^(>~6_h9Z2>GtP zvr(%QdH2zNYL^;RFOA3X@9vIYpFLOql==xfz+%E1;1TBZ{L!4Yd3|a8+)nfWdumnA zDg)n-kKD~e`%C$JOM~de)xZ5)LZ&L^ zao>2L6S2*2b_!@%M}A z9l8_G_U!B4Tb`Ul#RY}|z>1xVX zsI(eYL}$T&MrjU@HuTb+ip?)Z5@jj}n2jXlg^*`r-Q+7|yvJeJe}9!e61++C$9dbT*~u!!EtlqPIi-7XWR3)0pKkfl~xC2l`}6J&U=5 zbHeen(h_4opT-`zQ2kAg3r%?$dNfJ)e*4FLW$&$y3|8k84ZX7W1P+YoE%&=rZX}z} z(a!t%+-;|4YfV1W^WIAD_WSdhZ19r@4>LX*NM)<%>~M-_(t?zy6Wi$r@BP?6AH?{lK}yaW3NSv>CQ@cPC`h zk$c8>_#VjbXr$*l`jy$7tlc>@zmc(YW+-(t`6TuU*wf}fj>-H2FEeaG5l@5gqsYg7 zj=6mM6Y|L-=$>X|vN6N{cYQ;Q=_kx*ck|1b-HQEzHX|*Ja#k1-F%R%@X_anbew}?p zW4gv=>a7mD8l|}$#C(a>tAnJaS|#ePgbws-1G+=NO{Ck~>s8RO3f~efpe$i}zVKy& zxC<`&!PoM#n!_w#g|x)5`|H&T=ux{_9FNs=h<7?E+C3_Mis%XIo+L zepf~b7sjqE9j#)YsG#zGbMN8!zu{Zd$8{`G$6t1LGTn1oTBOZ9zK`))BV<*V&T%n3 zychm#2{703nAv<_N~L4*&p zf6rm^lk%+-`HDq8q8}DVQeNbPABbBiFKA1Vg4heI3}ypHa4n0s#!Cd9_Wk|ENYBsm zJH9N2`Ro$uG}(uS_}}ji5bvy?80ISMJl^eEj3Z_>unGcQOTD7Vz&K>1`iqp1BWn-j>Gh);JA0VElCs-w)1(K9es)UpG8U zA3^kn)8rOo59}ReZpWTKig+Y@Hd{}C1Iz^>Zu4Air*kZ&uQ`wV$=sO6{Kym>CH|;J zd^7Wm3B{N$(Joq_!+*1rodZEfHxuld6xg!}c4OM|1pfcFWOsbYYN88I#^T{Mv?pBr zrqL;An4p1f+^LNL72PvJ#<;csAiyQla2@uYqiQ@eJiwCm$~u76dL zZe=mo?hyU-3eJ6JqqycX7ygMGi%Y=hCD|(5Sem)$pga z8g`;lul$^unD`H4*b)jj{=EEYfI#hMD;R@-YUf0R`YyW;@2xkF#_W#*$;pM9m1&3o~)+nG(K zy#~HLL!i%0PiZpc1AGsB`LZ}H;pi{{TPSS%N(i@Bokegmv*9qpUAs(Q058Gk4`7R` zLk10uOYxg@T*MK4?bXBG#SQr#%?=lnLxN7e{OVy- zC+wN|R&K|Sc2?H+${c%=;GY-ph+}osW@UZ4E(w;!Ebwvp0E?ZcAT~jL%;l@ste)vK zR&@r>QixvxxbZpgKV91|4E!DiBfYvIYchC!6dT5HBQ885c;LRapvi50mXsgCLQ5&g_#Wh-@g zc3)kd*;dKfI}bM|&0A$w@4UTVm*juJ)eC=>fXChZ45uvtf4GkO$8MxF{C}&i?_Bm= z!|@ttj~|ZdjI&ruH1=U%C*zm%FYxF&iC7h&`;}}T89koUtR695+;_ZG@Gr~p7|tDq z$GKj`AU}_*#AMrz`D|UUyErk%`azsg*j&~dQ=^A@nZcLyt7y-e^>ep4f2exS{fJdS zyqeOW0srCaVb%?9J%`%<+*#l$SAsu{+GyMfXU3Kv<>T=$7W1vucrbq0^q0nXnX``_ zX5%o2;65N)06ik6KaDojFuOr_nb|g~zkux@a+wz%p(z$7@cWo^GF_q;MbftQ6 ze#ad8t#i8=&+Dw;am)4!{(C_ncdxgoqkP*qT>$4*v1NLTNdV(H*e(CP`yEJ#tUhC8k(s!&0 z=tgNG7K$Byp6HC(KD0Bg=Gd8T48E07+V3cBerB3}Y@%JiPw1+GMnNXCBeRqCdLf^X z!nM%(hhJy(X~%T>MmXeB>b15J%c!5V+T+=Egr7bpA1Ncez4ew(X2W?K;UDu$w(#Yy z_J_uIoM`HwS2geVF<+_o`9K8UFhp$k3%A(NRCAY4Uw0{xkV2i{~=y+XPE|&qD=R2TvHY^6Yx6!ep%QiN$cz zDM^RzmX$F{TA*eS{@EweJFOR+Z-EMV7h=A-tm%3%H=WTK$dHE%`9ucxh;&IGM(GcH zhsP5@Y*(}XTUos<#wGZq*WphE@`%e{>16VVo~vH&x&!n}$oC89jqj*hmfta(e#J#@ zee!lYJ7=4*rL;(eUQT%6l$LcNewFK}TbHYs(BAfRSG%$`dg37`voFhu(l|Zm)`!#h zWBS)g=Nj#1Uc+9bcOJj(Rys&k5v{YScy!^_$@$odS z%vR(nW{Xi@BrPKJ<_zURa^8ShzLrI-lkYJ}{L7L>ubpxz%W=@=&KH;(;wd%qq|n#GfUaIQRKB z!~Yu5TG&g|n0bgN^}tU=JFPML$6T6#eT-)&K{NspKQ$wVjnX( z#&T*0;>6X(;9CY`hkSd?JYu|P4}2ZG1LC`Oo^96$%Y02>+-OdZ zWw0v=GheL*=#PHt)aoNief?o{UmSbFa4IuBXJyRdyH2x>Tp6=UQ_*i`Q{%q;m#*nApP0V(Ij53onUv&={1a$U*`O zw#LhaETrT;xx-vfOJ>Dbtl`2LPIguDEuU&`?hvMAhb&PdARPswv7<#|xZif6qn z_%+bB=PPvIo=heyKny|9e#F#eeqRKw^H0lQbnbG7M^75F?se9BjWV1U_{L#8k*Y0RL%j&VEjNGuNfB*YTNS^CsUKE^K+zq%%6 zj6ZmU^YB<(@G+M`^J@>UWqXJ@mcZe7{%$7UlURJtHnx_7IZZ0jo7MjFGZ-Ilf4n7@ z-n>vP4siPS`SP9da_I@;?nf_1%3Je03X{$grhhElmCw7B$LDoX+4;_Qdi@{5o`(AU z=ASwf=N8i^hWURDl{>f0$>hmcAMCD}#uRrQCmnqMOLx4}U6RJ%)95|H>-xAHS`zwR zEY`P=$Nimr9*=G068cd?5B0+qJe;K4Z_3D^-yk^{zT(bC$WL^u z?AKragvX7RFLCy<4}x7z)%bT3_h7$0|DA-N{gTRe628JgD}O`ZDgi4kH?H{S)_#42 zf7uz=cee91S^v1Vd)M8(D>w}^;~39oanYtSy_20zC+p8r>i29KhqCLqY{cRT>l#wk94z*H(S&%M zO=+WDw6P~;4ouqZOlqUw>SDT%pgZ^dJQkl%|M5QO=dnaw)FMlI0_M9(=|^pDMso%o z-^cVK8U?-b401D?W9rD{{iA;!nJJxiUH01b2k3mhna=GGh&V-64%ZI-aXS7)OKWXOYp4A5_Kj0J^m*zk#^TT+a zh}nMf9FLwY&Y%_+TYV|J<9YA;-SLgEkEH+2N^8QW(&}%7wD7GVqh|OU>|PQ4r`?go zcz)D@{VWajNUg@iVQ<9eR<{|Yd0A|%eSwfs=v$x#d?91yc?+~kdKOCyH251Uqu(#R zopJbAm`rIhJ>hx?eH*FuH+)`SeyJa2BS+ZrztcRiJbe~fq^ z9?$HAj~6(Ye>NA}50}F4qCUCuNSvRYD%t*?&g2bijR=h^?$D5j?Lp9!q&#H;{$G$8 ziMt4#VOL#6_%TW7kI*^a=Cf&t!-4UYs#}f5g)V)3E#ceGtooZZL|b2^v1q5UjttgZ z&8v*|U(^3E;nqc2?9Rs79=6z|n|1#nJI#wL`5{Uijrlu0`rE*13-q>b z(ceVOhMKTNstM=higQ$Zf$;ZE=dqsYM-o0dnEtDjt4{_mB;pVP=0gD!q4SyP!|yWK zJ=2(>Po6hu45-e0n}f-5Jk{YGshaAPrZK;up2#6%zRSb>6l_NPCTcU|=_6r_H4@H& zu0s*|rCL6}j}YLB0T4 z4d&RTtYWcmzvZ7>c-8jO3oJGsp?yT@E* z4EyFOuJdu@%U$!&In{0If0R|o9n#kPj#UfCcLedgz|QTG5m#9FM26ik+5q3SIFB8_ z?TG15zrgO~>-K!=&!g~57Hl?7-bwr;{JBFvlh(l%(>PvQ5p$bxxnu}mYs@zXWazY} z2jdK0$;-u^7xLQKos8rz7j+D!I(`Jds7$^Sjt;pXUj={Gc(E&SW<(y3vK2Z}-6KW4 zQJPz}4yjEYqV34T=v$5O1H<(o3#vt3U;HcD zF~8WuVyJAM2z;2TH&GdH(mEl&+QR6K9M0*c@~*-7aM>KwNl0U{jc9*d5sN4514OXT z(fN5tKKC(?SU0Gr{bIiUW))djJWD;1%|(7ffgj#xzYl5E?*}vVE*qWQ#tDc3yh#|1;;<)pV7u_oDC+b z`ujbdagTbC-{}OG8tsv6>dPI``Es`YAg!A#%c%~ruiAm{)OU-|umAclW_%9G9T8*v zD;g8b^R}To;s?JtmGBP@95nF{cnAEm_y=hgrOrn9=U_G^a| zkHpQnEk+Dy$WASFF$;@-RjHp~`l?))$|B}qK8=6THyrvPvEPkQY+3WVOYxzahL(X-;dX zPibObg|8wX&1n(UyTxi{@}x`dLWjiF+aFw8JAHRcHg01IXk0k%Z&)tpU(7~mm6&CC=KKG5~Y_&%gs4y>h+f-;86HX3sZS?=8jH7DGTFZVSFP7C&oS}+#80_z z-G>GrNt_E6D~G>q^WN?`^uA^kw@Cr6Am-rNXC3M8q4bR@=_4q;$(E^?jqaO1l+tl` zSVQT$@YCp}w8De=9h>c$dQDMZ_)PjX*^#MtrldP5{ix7QfFFtrZal*7(lap^RQ{oJ zc==I)yCXeQPYve5;$h5Bw;LZ~2n+5_llYQyz~0PI9VeA%zQZ>C!!+<%PSKc2~L@twt1^RGRM`)&`Ff5&aHZtxKzj!hIXvepo- zTb1i%^p474XA&lFVR47*;XfmZr)f4WxZ>6K!5^%nJa%Cx3R?WGfJ+l_py`0M6Kt|A zibXv6yzn+N-@Y<$^KCa1t_|?*$Mg;59L(c(UErs19(o0JE6k27e+zv>8f>;U(>NX% zeZ{TdM5k?yY-uVwt1n&?9yhiKqv;tMWdXAk1Roc?gmaok}MJ}B^W zoXPRhOL&Po?c!_(K6o|C5%{~;;beTA`=|W8HH5_(PB^ba4M#fUyW1f8f&H zallx7S7|n1HPcVP8F$X5(31>ml0T&W1M!bg59O^AZTaUe`g2Y9*psDpTxi6dTp-%=fl z;$E+j>cG8$F8Y6)C_k6MujP9+&g#UlHhkg}&U4Zv^7X9(P#pVoi>N$)1or7!_cDFBFwmaTVWjK?@ zU?`g#?stfdF}I~SY{{60JWnJ4y2~)1;e_s8jl|20KLn;C#;{k??yJi)D{)xrYTm{Hi`JDV6%#` za>^Ff>9eV}=BL!!$szc?qxCk!LVM&`tg$Tuzn}|qJh(f03*nhbn;bN!b}3+S3)rq? zSpV*51;N4>YdW*to2EK^TNyrsPO~zudb#Vx6WhC=Ewr${nL3mhN37c&UvOOV!8cr< zmErPDVvfckj>T{b8*g3k^M4lblC+e?8uyQ|vUEet%LeuxcO!fa7O=D4T4T-KcBVgJ ztJ$GDYwA^r=FBdwFmMm%RPIu3zMy)gWqOqOh}Scz?JaDLoA|ZDK-!~>4so3!o4hPa zYt(Jd$&>W$14ciR<{SGJ_85VufB$%Uf;R#Frir}ZA!>-8**@OhjpzL|UfCixnYkzU zgd7@llF6#5oP54s+4=*X)Y^j@bdf;kpr7pEeidmyTB`l!mRS6dvYWM=`zK!uxjc&x zD{LR)|HS>ZBZKYdHrl_>p|O0$A|+%{pf{c=E^f;KdRrr6vEj@StCA;(l@k2|s!(RYTma=z=(%!;3s_U~9LSaXOcEa*M(V-Vrj z+tmJGuAR02Eip$OpYyWrW$|}8yhFqwa!?-Va37+!pnqt~*m?X8N*4PEAWu`6uJ&?^chChGz2&!+khWx1J-9{$gw|24LZ#Q$pgZ}K`e zaredentaax?!DU1&;RW1tcCd;gpTvB=|>VimB&mw(hVBX+rC!w3{oIxb2+C@87^9LBERl0!}yR>`%P0 z8{@y1*)~NzbdJuXb=-cdU5`jhKNt;N3-IpknE%`Lia{6TXLV9<_OVAqQ}e z`7We+lBoUgfrxV4f==a&Hla_JHMGAqg>|{vuPZ@6?IpnP%IGDG?zFP^(U^N0(+tA< zVUQ)!yPNf)mFlQ7AZwDExotb-5FdW)NIar68(j81jmhcJ{$j<-+VA((YdF9BmHPAg z&-tC>@AG&(J;c}XP#Nbl*>!-){P6wP^xc8=6j*Mc-B=e+t^?&Z=Q<$q@_+IWw^^|( zE%3bc6!L=b08m3HWsM z(v>KK^4kOTMlI#XI+Xma#z#zVi^`c#<<#^oCry--m0C^>FXz6Lav(SJnDbY|=kHZY z_X=4cbh@!W<@?`-?OwF7nrH;=AqVd{#pLMFcXM!A##pTPt3To~zkAsEqLO&b1&C$j z#xOtO5BAGI>rokTzV8Y_Nxz`P!^avt)G(|oCZB51 z9D_nJNope6yuk2KJqaF*)=s#d_MzGe-Q14~XS?({SGF0Yw4TO8*NEu4GtB83_z9bI zQ}l63ddAZZJj0s4U0;knKeEyQos-m6Y<@xOiiw7LB9E#??L>z=XpKUy8)-E_Ghxs8 z$jMV8t}*Vs)*AB|-mEl=!E;)sG5Zz|@!+#Xzq)=Li{HoOfJ==MqU$q>P9Y!m2bs#q zQ1~8!`e(DUo3(Hbbb;66OqZKaFlf_30dr?c{oI~+)oJyIMg2Re{u`6(pCsz%v_$I0 zQ!TWzew*#MM$`dXgnG_pGN84Fm&(0nQ18BndX9^FeoytlcW@!mE?;D+mR5tk6=%s3 z1M^-i_`ea*QKY>MZ5jSK=if@$ezzL?urU}&x zsW%KVeU~gW9*69FiCtgUk*5C$y86vw{f`lLe-pK{aae84rh3aqwHcvXGik1GjfO=V za3;k)%@1&{@UJwQuPaia>v;Br-Ej}W&!v2TgPy)ZX$sNkd|yZl(7rH2QS~Bv?v=O? z4N5l(>DT-s?@vXJL;n%h7K?`mxu8u?7d#7mg^r;9A;#LT|FSDy%QaKlaUaL&p8=nFQq1$aKZ-H9<|v0hcw`sDS09Zn{G-!(ryH`^m78|O!*p(KO}DE~ z<^!Zb`}05OEF&*B6bmow^&fFr`yh62cB>xtPu48W*9kw$E2%BDYOz$SmB_W)fo5+1 z0y_5h+#TF*4R#*%Ul#LzA>pPYNjI=~(fE$zBL1`KSG}kPx&g}#*iWpqrxE^4r}>f& zyC^NqSFg&5?T&jD*eJ8RwH9^<=wbSTG``;#=K$aGJc5@!QhlCG-{#6~#-ViHFYs+G z)Hg4Si%Y!7Kes333NB^2;c|1hG^I}UD0P}$US=#Lc(lPs--@ZMwCZ{lFto2|va*8R z+qvlZbArRY!EWIzoZZ>Z`eVdg=Vz@B9FUVSoX#5T_g!4HI=p zDk{=3si>&Nq@uE-vdzkhT6eQV9c55dG*m3NET_%NT-&8`(=DnY$tZEdva+(8nadSp z+|Bo{?YiZz-`De;b7$@hgF$@$`TlVq_ug|}=hy3;^E$6{&g;jaz1>GN_T(FN+@2fm zq&}0l94lnc=N#F|^vO!bn7Hjx7q>k+3HuaEgL5drx1X|`!Eyf}wah+8nK_N!f4)a? zCJM8rrOG9jalIpEPvceiq+F-)vzTi@OLU;q_17iJN7Itz?XGCw5V*gb_CRg$MU+MS z)@(;@kjYgW402c4hlN+(Pjv1X0W&wj$kHQD7XA^Qpg72>)lnQ^)Hvc7gAF2XeN0@I zW23T+;*#R%KUS<77guizvVBZ{DbEs?3&Z&j?3_Qpr+@OCM@J@xJ);xC z=|P8T_nch!sw~II>JHf$weGU;GyB^Cq`hlTPdU{7$mCqVC%#ThZ!%O@?1?V}q!Z;a z*+s~QkM60n1Uy}^Ct4;-m36cTcvaRhS>ScTp7^qn_854xfFHT1cNtmKOXt$ad%Ak| zBhG;`MVS}J*k;TpSfoi5X9*UOCQ-nj7Xx1u18)`ZKeorW{pgH=&l2!|Z;!~IYT z%izv9C4uXPiE)r9&Q(+#KdZrkHh*_7I9?Zn1I#%l;~SH|isNPf4{$KI7aX{I!NKep z9Q0O46$h2Q;GnD*9F)i4pf?<=I4J#pfP-_}PWP{Wp^|UntiH?+a1=>?N2pz{PXT;JgV^i z7vu5H#reza!Lo@*whn+2PY)*5!sw)0ONVZTW@ zpWKkn@$tYz+}`~R_%xz06Y;*o2lM`$^^mZq37hsVZd0Mw8rfrkC%(LMR|H0!pBj`S|g&@sllV=NwPt;|KQ%CFRL7&YGaNX_VGc9!ollX`hWV zcN0Ae)^y1>=OFZpndCcXb7+ppTPuTo&z}#3Ww4Kkx#;QS_OOwM>y};NJSq-mGuh$}3eWyi zN7#>fEBzPeTIAo_xo_lPs5P{W`G3S6u{Tga^I@|F1~R8#5X^cCOX7BP0(k^eFYIdI zKbQX9G5NMrnhM(M<*8xtODokVdTR%}e}rv8yS-*GWGd!5YJ!RM|F07#a*8RR+`-%* z&w}H7L;3XoB>Yean}4e8Q3tiJp>bS`Y2COMH$BJbIrR9rmMT0?jEmS+VEYr{Z#R?s zUxJR9DP~Uux}Evqdm+Tz1-xyTg~9EoJ>#chtbQeQ!;(IXvmc667VO8wmW4It-yih7 ztivBf%2I9MWDf4A85bH z!F_yTjYM7kO63AhwWVK@mB{J{JrUF~QB%jAAH?@>;2CZTuX$Y>9h>bRMAp2yrnImP zoTK}rZLC|8lfr9P_Ja{Qw7I|C?wf1m_j!oVptu7jJ}2Ih_p0`fa-h$O`@A>gz1`~x zo}CA2@^O5Z-2z!tyE&P~S%t0%_y6dX-7}KqWA;6ap4^$q{XpVu2C|x}k4&OnPv%p4 z`_LqLJGBw{{H>}h^fA%(3X$)1lom3IPRMvl)7Y8i%$PKOO7kAmb$<}@Nz3a++Dk=R zE)zFR#(E8yzZ1*`0W(R3sTA_ctZomox^0drXIB-sG29{2PRQi`s&&F&HPRf2N%NN~ zZezIaA)*y2JRM{gVB-zGaGrNQ-&xGd3T)mN&!ESa6XeJ0?qkKt`}XL@A^txeaa@-z8jao(Mq5{=h82(P8M zFRxFN-&(jdn7s(HH|rJH+0CML6m#1kRRs1IbN(b<=r^cx%(zE%`qn92wtR*RSwoBD z)v-HF>YG1O{j5}W7OkPk6LK(ZRU4TdQ5&tVZ>;SK*_}HS3&mL^UY?0~%0!kAx3`ac zaBuRIXe;S!|56IUf>u#M@G<_o>Dz?C06clRh1Vnnz!Aze!+I1|8O=t zgUhZxefs8``4% zs+fQ$ocj&qb}na*HnVmhonQD#DQkOr*Cfs;Sz6dM9h)4s`KDcy zGka<0oUzG0^f1}^Ut9n7qVCvs(%Adq{W$$iY3eZc;_T_adq3KbPHg`*2)ra}@N(e& z=>4nOuJxi_i5mMyNYn9td^~I$o!sMG5b&+<_sw6G#cu3zHVj)I+uo117p3wJ*}0}3 z_7I?Jv-$n_zM8yalY96oLj5+pAKzEgoEUoxn1iTK!~5}hnN2bItN8M~9~lS!G|q!O z6Cl34&@9h2OH983w5i%<=C)TM^Go}UnS`fK@FS2Trm+pZNnPc83X@5pcNRT^>9Nt1 zTUo2v>B*zVLXU|aD?Lu4hc56U<|^*j8n%>;l8k)Y@8@gwzUdnkdot&J?i2Swi8S`l zuXk(xe?sX&)D9i(=Ax1l&qWd%Z~8s!403v`akDGci)Wozg!h(w1m=NTi)5;BKL` zBSc!SCT$+2b&Is6F=@97xT`5G{3Ul5Y*acmX;q)}$n&Lio=2G`57=KiBH$<851yn^ zxhidUsD$2S^mfwwa(WlTo+-Uy*X|N}7t*_g-VSG88Zlh9|u~C_ryGPYAH0RQPo<5z8-E69t&ap4t zC&KQGS)#TUj!0*75&FO`;@dwj-b1jTvb@nognJ+SI@FXbcr@&tnXX-fa@fpyG}JSj z`V(~>hIO6li8`YU)Kkyv`D7#UH}$kPNzM(QSD5pXIPSi`kJl09!agYYwTdoDw)j>C zJN@9_xWClM`rc3&~Q>oSM5>`T?jL#T}jH-6IHp3cAZ^u1Z9XL~06|Az8rbi>K? zi=V`OIP8?79dA)P;J3V5{Qu=XjsJ167tdac`|yp*;Tt~bwv8Cl0vY6TgMq;p4^C!0 zZc&L|9zuNbOOzhAuZ+ZZp0>Ix%7lce;l2jfjDkRu~GUhitoA_DPRxs1^ zqrspi9!7_sPJzGFbqe^}JgPHf8zI*S`9_w%+bO$LFcw__4o47or^OdhdS>W$MN8N9k z985lv%gqiJJ~vUmR`37Nw|l!gqr(3G^)A#K*j#v>+EJHgWZ$oSyO-H+eTCi!t{TGp zMf{Pz9aj%&aak-3W()nhQqtJ>ivs?6dT$DG_}|m_G5RhwnB*L+|MWl8%)g)dmiz6f zJ|jT}pNR7V@a|tu<#M{PL7r&lHjOhai6W30z|If~c+)5!kgK-O<+0D*m;2Sy} z@dZxeb==CG=O)Oy;u2b0-OOhV()lk)kq;yqH$|R*t5+U$8_qKM*uCFi zCi>>&z8WDTMX)AKS@%-DphXQy32eSUIUBSGx?5Z?S?9Vo7&>tx=X;^k0lw4w+~9!uN4QGW#y3@8U%6za9TY-$u@te3k^+GnCU5&=dFU2#sq#KSkc3n#gRzGo5%! zUtDHpd>i)tNHhMFJt6Qev}Oct);*y^rzNueNT;wVdx{bF58?UB>?((S6;poj6O#39 z_^irYA|>(lUsI2w<{aiP3Ox0GNeX3UZd6QWi#!;9z_$^6Q<;49DAAcF;(v?zI-5U- z!mEgX67jj7B$?Td+>|62R@ErkjTG)KlPjvca<02ZDVmuiJ1N{*PT}4%xy(rK2I8}k zzOqa%chg?eRVL3Oc+{_=gy-wdO_D8?Z)FpWO>d1d(@T6^Lyh8UAi7TZ&ZcxFl{Lh- z65m1jLnf@;Rm1k=GnuVv%FkIQ&umR%d)YZzNwU;bqcl;uR?2S&)z?n>`KZ2ClusVz zGsjt@2#YPYOpB2+nM$Zg-Ho->? zt*xCt+JnG%55A$F23z6u?eS5bKCir<^4UR88$J8!IYiGfdQ8(OKWa+@)lGMgS8lY{ zC<#NovX|hz$b7yo64)Er;eU_dN$CrnVzlmG||&cPdhya=s8S}kJ{HkD0BS10-%`Wpi#r_m3+LY?F_oNKu$Ao=LqC+TtiRd^AzLu$_WUACWSlmU8*ddR0c z3C5|{b9*ZA2~iU?(Y)*=I)d{g_@p-o-}Fo$oW|ykE6wbz7xTS?-Fw1!TY7h=#KN>iN_ZuA`o9U8&qB&Q~RI_m}m$h1NNuJ*sWym(9$^(8bOJp`2Iv84|M{ zO#KaC?k>t-rOjBoTAY0Cg-+LP?5^QyWiGpqUd{ZabtS#e?ssp5-8)U%>ZRPaD~;Dd ziB;YVrU&VGnx(Oe`^f!BTjdH~0sE|!FZ|~*8_3qxiq*@HEB%@-CuzxQ^ayX)dkmkaLUws0pCk0SJFw`5B^Z{)#r zX(?aGIeeV|K9glXCen|%rzPF9Pe9^FZOQ-&QA{KnDqAq!f03v7gCN*DC8o`OvYN zfqZFNPV$3|R!JlPf zdbo^z<9gz6I)znEOp!OFrm;3wqprknR9^5+_%0rM8M}~U$Yy#j(D_&yoO?0PZ-OMf zk>w|z>WXB>=Vk3qWjZM3m8*hD(zZi8{Hub{Yn&;i5zSb_^t)g~UUKeJpyz0D?ow1g z&iuWBo>hlHYoX5woy+-&@2k8_P8QLgk4vbJtbUo<2;=J_(+U6nrJW(r>GHvnJfCpU zFpAo5=Q>VStA}WrM`@z=fe)-e{jEYL%F6Fkft#Z#e7yel?ygXsW216__8VVGd_BS1 z2%YT&Y2|m|0j?kQ4O_dA&Sv51X5G#0P;4H;=P>%ksp*sKVyc_ylLzAT$=~z83C)}s z8FxmiZ?-shFZpV_?~u{J#@u`=>tE;desX0bF(j^mZA6!% zH`#=^vKp0KR^!E%XxRj2w(nqN@Q z`TeNpLj$Pi9RsZA^nTQ{R8vpfYZ$Ldk@wO5Ff0Ru`;AIo7Rm(eSIb0M&{H`V3BsSlEWs!S4XKUzRf?g^%&y%z}IvKO@;pbD&OyU#2;0$C=+>lXr(@+8PAR zuPE(YO4Hg)nifr(b^&t(r73m5N2ZyAZJND(? z?#+SizO3MOpPL?Oe@@FUkqvs^7k|8{cvtTq(T~l(_<9M>2@&~O^G)=zvdI=bd zTKFuX!?Vd3N4B~jZE5UBTbA{+E%W=?mIr;&b1SQ#ZP8VE zfom3U))=@UF}P{%rS9pyw6!A!UX{Zz{6A>xKi=tETMxa{x3+%sPIO!Sy|i`TJN;{G z+dGlA_C@aDFy*7lJ#-4WhwZ(Tc{JbLL+$}-{_xJg=f#sT_-GoQ(qmpAZ9{MPpg9{m zFED348hjj1H8Xi9@L`^*DU1$d-!|k+em+(${744(N9^@i(>`f6{i}BR^N3!r`eJW* zuZ8%R<0l%fOAGHmP18RK?>})jG4G4L-NnapT8dI7c_{p`)Bk#to_)`u z?@|l@evrN$sr-Hr|Mz_nIV(Rxdw*ZLURJ0*um6hcR{JUMnHrdOf;lW;UM83`3C2e- zH)&ut6HJz5U@)5qW*EVE3FaCNjE7*H0_Le-as6J%7hk40SB-_tSj|!c#dOrhc(Ee9l?%*T?PhPG5BCA0b;*uS^Ch}qmp?G;zE zR`X@Z$eTQHKgqhppI~x;)Gt+dYOoq1@~wMt{`2 zWH<^?g?U#S5Ny_ z3R7|^F5Ak&+4({)?3~l1*82fbS7TDDTukF_3h|n-8H)N&rn=_Sn45K4lB@{%yF#ZY zc+-F3Z@fGJ+hKFkA~={qd09Un*J9c~t|ePBZRMN=mgP&d_VZ-&d>~k^N4bqD87}#N-1oc2&;l# z3WXI?Sf>bcK$iBOJDLA6W7E@$t%c^2V>*)^hK&`Uy*`*C-Rbu?d4dM(oqpI;(o1fC z8-?qwi~O0BYFPUK+tws0t@I!a>*=8;^yAZtnbK$eae2^SzmvhEoo+`x{V(>{(YvEb zr?k`KMH!TLsbgv|naaw1W?8VVNw0Y5+04pcgh2x@w_UjEr||_ zyMIYA#Zlu=YNGE2OM|77j>e=;nMLsy-wMB-#+OUdD`oWLF&|bICG#pz&`58q-Jn?L zd6vdQm67*#maswo`R9AP8^0Xa;-E2+mB`~hrZ6eV9A10uw|)}#!O}!?*`C4I6`U=+ z3IAw!M((1VCZ0zNz2Q8tE|q5KWu!$u33qlezrS!%4PL%C5CVfLv*qFrmj=|;WlKg(z;`ekJnH?mLVx@6< zoZ3By;Ezz52LyaV1FaVX55L%VxV>^B!I_(u`5~v1=v?YoQdb0h1V6|IIUbMltG{`I zGq3X~3-{0*nL%_!atCu=i#A2Kw&Q=1a)ipsrEp{A5{45a#r^Fc zL^CPRTPe>$DJz1OrWL_W1Z&CRb@EW2odjc-u9JV2&&x5o7As%E_jJRupnal_*{-oy zErp%LoYF;IVc9X8X6;%wlb^leey{xf@h!e~N6SolmtFj(uf5nJ|7n6(cHn%==a+p$ zEb_n8Yl6&1q~9yQ>Z=Lhj9|yRHOh$zHNj)_wm55o$LS5ZcGUBXTWW&)f;9^C;9$Gg zQ4`~aX;m&(o75W_aFZep_zrKx1IBYSgQ{wTUfnsqI$b%Tv^ThpULuZ z|6o9Ul;|1JPv{XqHt-NM{!Xc^f_nH^MgBrV`~PDdrKf4CbdmeuS(JXRNdGyd_voHb{;hkT(J$no%I0nmFnS@IJAv}4 z7x_S^=P+zJQrbg0<_}T!6f9NT^l0s(mS6Lxuacg*^gy0(|Lj(hf|(UbID5ou+{zZ`e)aO8RJmNyKeaq) zqPH3AeC3Bqid!eYch`r?JEQi54$?c@n$G%iDD~wAX?f6GrIV*pe`ek($+~W@?DJ2N z^&isPH$~Q&X^cqp9)f%KDYD^Auk5x{{P{Q^n<94xmMi(K%N19`a>X=gxiV+;a%KIw z%V}<|W4u5I&C7f$FW2Yca(e!Cj1MUBdlVCW7tz~7?_zpe={=L+ob+8u&usc`qH(#+ z(W=1Lda=W(loMSntnw(Y-qRX*{r_k_Q2wQ&JgC`+Glh?t2R41~-1`Xz|fA>*hC^-e2pD z)Q2>#i*1s85PBLk&$kgxF-o<;$B9QmpRS-f*eYw;dQ?Gh2)9V7TJAs79hGTsv$N;tWa+Ez?) zrx49T{4KOzZ>DyYQP?f%JZuQTKKJ8J=2HcCPyhViF4h*Tmkl((?z+{JIck+BGm*&* zuTv^@R2J2{X-FdDA-Zqx3RS`GUS)!!*0+K3H_|`wjWX6yxmh%i$54Gt(zOBDjQ$7p zdlSK}5%m~N^;ksput~pT_1H`GNTPb6t(AJ>->1Qzt(0SnQ-=?z4h_0S<@-l=g|4K! z%zVhBv|0;#I(*GM&{&z=qhW2UVwo}}G5f`Mm>`a~f zhNzo?_<;+lZut~uu<)>51Xo01MWViSqQ2P%n#b^U5U0M2MSVAm`o2K#26}IzH}0vc zXuQK;_O6W`+@@vCTZazgtih4Sc!vDbbX=~JcmZ{OS>LNs29K)=7SX$`(jBZIej%OK zvkZ(amr*I9G+XT(8O=eOKTz8?(Eseyc)JUwl3*gn9L?=|;uSiGwty%6p2oynn!9|? zZ9CN4ysHp<`J%7l@AogJHWvz*=f8@~yIjq@E51E?-W4g17B@Y!X20nxr1vIzA4}!@ zY2l1dy4`8~``dkcyZ5K1^8NolE-U*by*s}h%4B6fr|-Id4Q-i~XykaKxr_d2zlPt7 z!zSZtRJL*Wx-Qr=1OM(O*b@8VAmAWhq9YzM>vnFV%`TP8|0KLXu7%yR5G>#=mJsb)~$eE(EOluVC%swCT}j?QG>ca2$z zY~Etb+-Kb~=&m^7+kp9a)8#XJ_$z~uRbp~k z|7&M53y>d%ANy=O?7&W!)9iZ`$P2)48gx>c?R%K5SNL_a`w?@vko%T~J$8$=CTO&?M={Z(bGZFdu7!9^cbAFwg>Kx*I%<@R;bqX5Gy zwBE6p`hKy}K+g~{halt0e4F3LeVaQMr^xU_?tL_o+t+CF%NdKxWVcI_msXXrxegq1 zKj$l$oL<6@?c6VS6ZdC6ocbf>+4WtRXJ%(DJI9;*zjj8iL1XDrX8Aoq3uH@Z+|Hq~ zXB}ylt02=OY@*^!ZWj1RKZAiBxng$Ic5Sl$PFV_@8BUK15k*eztiEl zn0>u&XULdghAa&Gf0h2*g#V?s5+;`y@ohr;XDQLvVxtGN{EiNPcRPKn_vjdF8^&-u zN=Q>De7V~QPYVVGm=1K_gao-x*aSh`X%zRch$}nCAlErW9L=TEDXvPyStdotT|{wr zi@43B^-+0FrMTNEPAhYw*3nJlWR1WDXh^3%iP4blw|0eQQQY_rf2ed=l58DG`~&!1 zhl%zUk@jR#-l)grqU=rfb2E^AU!R2=u3VXJ&F~s~NtyA8+h40abM>B)o zfX;;Tg|!*I*=>cdO05l7 z*ukD$(6ZGcv31i%^kc_+VLm3?2ssp56KU=5ZnM~0w6@O5M@#ZDF&9+beCR_xn90Xd z?#M_y;)YY)JtEFoKyjM+FoNRlptw$|2kP(y>fmDMyKjIFp7W7k*zWQ^OY7ZWz=5A7*4SL|%Ku=FmYQNAS`1lly$0 z0h@L)b^KIQ$9FVkqAc)(u=$|cr-1Kg)d%x_A>;7s&y@Ldc=`SIXxj)s=V$tH4IWt? zHS#}*yDFS++gCpJ>P(#QKS5@_z$t(|z0H%NzC9rrY{hKh;*@wLeq8yrF#j zI>$!pcTiKmi?{d9Z?7GYJ1>CmHJi{mnZ4Z4_EJgAZ)cL+dTI*e6@W9G?ZA!^WbBh^ZLXxfkh)(3 zKLs9R&eeQxyJJZ}_*L)$ z2V&w5ToB3kOxQEEM)UebqD`Hb1-e1kd^aV@%UnY5j%W?eLDW48^2fR4b)pQ!so~=& z+$F;6&PfWF37GK|cbOipz}D!dT;lPJ|J3Y`{BK{B1w_ALFLElYAKEC(;HqgCK zeD9_2W8(X-^leMv-@EDiP$K_s1I*P-$6dxg>)G`*9vfW2n`j)Lp2~fdjQkJh#dkbF z;~f09v_x?+n-3{6$TMhDhquyUI4gQ&zcj+C= z{W!nlz8K2oV%NoxE&CEYzRp<^Opw-go%YkN(7&0^+~Z0PeUD~3Ax|mlxg%&u7Icwe z_fwox_;GHpu?1%ldVwGRhugu$nODA%_esu-uF%|?0JAj;z2O^~{`}+YZV-B~n<+o6 z9qXx#CMshC{l7r)kP-ZSouA3DefzFIbm?*K&t|5`*Ej<*aa^A@`&3&?`I~S0I_cd$ zjO&PiW);AnnthR9XRqmkJct|iP3()6|KJ>^RLA58aK;6?yUFSa;;stza6fu1z;s(o z#80Rvg3CKo4{_2wSa&{(_n`n|Z z4dUm~@LzWq^@}^1&lSi=RlV!)uAf@K){D82)m#(^Wm{6@H{tVsT|lMfTRe%pE!WS$ zxuw+Y!WrhfoYp5&{5BDPHN~sxN3FwNMe5!l$~(5(&*b;g*9Jm5<`-?Fa>t@TSf-_w z+P9gW!sa)9^#&t5|3tkCDD9sf?+8I>a5}-yN#*(fUt^?xTa$SC6R3RXDQ_Dl`j^`L zaYF=dpMV=haAxd-Mcu}WwourXV*5J%xIC%V%jAaT-Y7JtvbN2Mgl$3p z{7C=E1L?o<`Fq&iY1o(1(qM>`@vWu|(1S{mAGK=>-~iJeC!eE~&sI%7dt&N(m8Pz) z1YXz6V(R)4{cjazycVa7t)FJJm=YspY>O%5Y)u*YiM$L)Oc}4!Kk`8OC*zb+_gO~E zk ze~0zviu?A2EK+SJyHBe0E=rfAtFj@!&of$F^z5Jq=X5%g zm+5?Ua68cQw%2HG(VCrkM4YurE0i0Vz0#)?*G{uM>$Z&w_jNs8Ug0Z~2Rpom9gf{P z``Ls$2U}+h*x$4|%<>AHo7q<+n0zZ0$T@D?NqIv@*|9;vI)9NQojK>RWXQV62i?Ty z(;EKvS-S!z=Ow|V4YZy&(VFY^GXF5IpSLS;#J7>{MeSaXGIv6)05@ohQ;v$?ZOU@dKRbJ1F`PU zXlbUkrHJ03jp#46uU`6|_tE}|Mz+^re&=bwF&w^hVdv>pJ{N}2n8Fj3akA~PSbvc<<`&8&Wpa@+Un81^VrVb_cHelAa%Yn~1+W z^G*Nbft2Ms8RN_(-4cMT@Y~V|b-pP;SdeBnEpEr12w@>e5tG#<@q*q*>>&JTZ&(3~4se?6sG-%Xcig66m*H0Oo$ zbcSZ4IqgO1VVYwCoe@4g8{SV~bjHN!OhurC`osR9nbVo7XgX6T=!{WAXO7W)e_@PH z1}y=-d4=dqUWS?7MS!O0;X{@BzD&>+&={4rU>txxsWisOe33sv`1@ReT!GQ?9y@RU zLtcd5{O^@s=#9zbZ#W|%Om7@IbA;Zkh|rs6L2p2JeK&N4UO5tAex_sTO&jQqyN=PD zKleg!j&^3WY@o4VQ!-li50CI(Z8@g!97P+SH+F@#o}0kWIP5e&m@OzK=aI8DDS_=b zz;m`vgkO5MvcusE)KA%{R7{fOdIy*FVm?eK^MA~*t*0ii{fy*Tt-$XD&G$3sQk$P~ zlrWi*oYTRpuVn2qG`no%_?9zD*&{6SRr> zh`yfl;6|m&r)nXEJPawCJjf`FzAUY??^;V(b5+1oUki zjpG7#x4nk-E#{=jaVe8gF$fY);N`h&d_xr;Wxc`iG5I>MQh*&tRrK<{~yPx7qgx&`;=} zuPVAi<9_PdKYHq)-J*Xwh!6O4O#f^+meJAg zw!h73a6a4HZ&aRX3WO32 zU|;BdE3#%(pU7yLdxov0k)BQT*iTDmau2`>&UJVE6j_H5M`MDW_rCg5K-C@DqNYLk z7eDpn>kDJ@d`^=9i$HY0XQ3v~r!{#NYVvH2lV@p6o~tx@mTK~>)8tvI$@5Qf@-!Bu zvObc8?*J8tM@AUKID|cpeS#;9h0Dv0h66tpFTaY>(QtEUt<8up6U5-Fv(p)0BH33* zg?sYS+5I*fE1LZ4O4Hf7x+H9us^POkRG$FCpNR^uZ%b!mNs=~1g;(8_#$QCO*)YL}QV7g!;-d z#?MGiixkPbnAv-k+^cBsLu0qHR{7vh=$oe%_0GIO;3pQ3FYVWMvx zNt`!);Vpl7oTI^0G^4J_Fk8FKrOQl|7XKF~ZGdbApHb}Bw{J%s0 zRwK{vret1c?2{@q3ONaavjuph3rX9e1q#M^TQeYYh=+U}wM zBc=$f8?eb7)<)kL<3kq6q0_(a47DXk+KfAk-%z~Q97+2i{X0^4+Ejc~+T&Lwu)W>p z%oMiHtF{&`c298UE{(l3$-9X5x63!5$L)1>^8EnYdqd9V{5SV98;)W7Y%cF2Gr`ZL z@^D6sGU2E0dsC2|58}LqkIzOX+jGwLz0A(y-d%g6WJcH>Q5mmeXG|So5Aw-=)G>qV zXo^!uUrZf$^-{-FQOC_Obu?KxPCqgQyItbDoxV3%BK=WL_@0v*=~oy1H>O4Uri}h` z(VUGBzUhx@bE%|b^;|>kggm8MZ%Wf`*G2wM zq5me$eHmbfRDpxAU2_H>a zpECboqbU#Quh>NTqawZYI)1kRc=!U}M)2?l-e_-B+6y)+*`jR7sp8%&PtVhxMd=!? zjjRmhKm5wJ5ZWOLxxLfq|5nPkv9eLgGV(N#Hg#&~jGn*aOPXjvP zBW=Bi2fyy5`W(H2r(ZA9Z`P+WSv$a_QXa)3yga~Ya_&Ga10v$gD_$1UpiaZ-@!|2r?^a`?E5giay5i-z3b z48FGCyC5L^LDeeMR&zd$fjRm#R_|p3w~(hug}p{&WUOBzXc5lPwQ1H;U1M#WSYm9Q zU~O1aEr*`?sxwrPpo>}?95kmKiM$QZQXA%q?`P=SC%&JeZ&OmFE+b96t=^(!ZtL5* zmdWF%f<`)L28*rSR>UUoMlPaB;y>yC+Cwu9X^a*#T15D+x|Zvdt1wT*r1_El8)DMj zL21?}@w(wY@Yhs7zxc1BZ{oL{{W=AbC)f4uAH&FvuCgAP|oZT<$ z3;c449Wv~-%6)o?a3O_~C~fhZ5#0=rNOLB&@y%4|-FW3q?7dQH7@sV!6tcmPUk2at zucQFGpBzhhKyPLYy`igd#+&}IYzM}!ZLF=Oh@NtKteQK%Lxa-TTAC_#byraw{O_=R z2l2u1cLq5E7vU0qHYzG~av6LR4c-;9(VjjNG6Cl4kWpF=f1f(~e%H!d!;hY*bunNvs`g?7FyYUd=swLUwB{AJ0}EmLP0tR#P0tVTFZ{ zQOFJ3M4#EwUlfNrpnTt?B(@(mF`2P73hqj>X+JoN(i){}0y=+0DDtLpEtuo z?+l#h`&TMf-%17fKX&#BHU>}*vtvm6ESv=s-+lgKX8U(F^MkOsfbd7(i*;_l&b~MZ zp9=pZ+^BZ0xj)!X6o2uakO6u$)!wzR^__${N8ix%PDl7W?^>FJPY%QPquv@l{U_=8 zS=rR^{amdw3wt(|zFXHRzN?bhI0oOKFId!tI_RbAVWVIO;0jFE7uE26%EEF$56 z*G-$$`;4Snv2^s}FSgJhA)ztnhN)MS9_#=e>sEiSOP01oUg7qrP9w{HbZlL>a zwKpg=8H>Bvd-!5M?6w=Niy2N(pY^o2A4+@sEUQ7b(Y{6JSRBOJlsf(me($ro!;4=% zL}T%}$u)l64Mg{;Pp|6q2HesuvfJ-{Z71;WuUCo-Xul5Kp^d?iC2Lp6P4)9Q^fLTA zm%o=FXVMt(PjGJoHP2`HYW@sAz(!Y%BKawtp1^eGb1Jk+XW%mH-NBFz^V*5=E_FAHahgVO zRSODQ)bYUf`1hHa&VutHuGhr$4IV6$+pecQ{xs|tJZz5-eTGjCa~*~qSxNF^LUvT* zbGi!UvSok?KsU9=#` z==Ga_iRdm?=+are{nrq`MDR9)UItHT4F#j-dzszD<~z;@KPieo-?5K9JjKB1TN(5u z{u0^Gsy3Zqt6~<7QJnuiza)HSwi)oy$6LO`&-T`)5;HqPg56@H#C7f<-wB)YM^|=) z)UfjZqc*|+lEmXxA52qj*cr+evW7lA@3Z-Y6ZN}_%3)>W-j&_s2$|2Rg04;BG{;rM z*I4*ImY6S;slorjXH~Ixtxoc;l^mXR^sccATW&L{jMj-WWH6Lk_VpQ{ycs@3#!#7 z8;WZyw6!#xZEM*~PlvhLhc>rf%*Q^)`7m98Xoa5fiOzTYp=s%!;MY62Y_Vrd8k3{W zqj`WcftP>qhhX0TvU&_`w8ds3PGZIbHrA%Y;DbUT_ zLG^8=GS&}CVfHIrc(nt#YN1Gbj^0hM|(nVf=<@Owp}+CIgCnJouKs zuH^gBN0=_Pfyd!~RfJbj_yK(+{9O@#7ln7EM#7s#_$}Bo>ozLZ1^!U}e@}$G1$>-u zps?A**Z))zX={DPMrDI&>p9d`$o2wv|Ion9BA8YIGmc=Oj|-fAr-3OUn8N}lmtdS3 z+$NjOUK5tRtkB3_9-3ib?XQG=H^KqzW8FSl4kb$0253y4UxfKdb)WIS6QM`x{cn0( zC~Q8hr6tTRKHtA&rSLK*P3sEbo-0$#P3+m5U~f{ypP=~V|KsU!#xYfVr_=W{n(*5r zehzZ}D86x)avIfP4s2f1IDj9<6Vv6;q9i$VZf7v`Fr_Ct-#wVtXULQt5NpMsSNKEd zPkg^h-$m*CeCkgtP{+rW*yWGXhyC8Jw(~iX4LR+bIgTGU3Z2!_dU>^G4h|uh$3$H9B%Qok%t3YE zR%hh$k8f>SFKk6KJ@{|cU@hWN^(`6k9!5RWDsGTdyPfo$==*_sRg zX^YwY3ieO+&W%d0l%+T_B<7}G2 zU_3gL2ObU_)+%=&KN$8$54lp+w;p6QtG4@9c~ukoxRPMivk&#%JjvFQSIXsE;g<~O z6rN;s?|08B2!`+qJx%~;8jlh=b z%dg9DhoN17Wn+#uFmXgOr~+ zMt`L;r`cCWPYFG0*)w7PR#SF`rtDKSWjC62@>yaH?&zib6ixZN;*{S+s-2iK)3yHV5bFEnMlMV@!u zC#&U}VI!1j#7dtBi%rZ^6*?K**&B4y@)wDG3@+s{xk@g)*YZqznCm4(Pepr)F zDb=}(p1cv6EtV7`J4?g(dH!|2r^kH&uD*iH{2z5RC?;tTWMy)iAtTK0 zn)kB1X3&4HHG031=@^9lj}G-ddYT!uiTUgJy%lr60k*0J5l^m6j0HYVGcrE#8`vWi;iDkCdunRfSJgctoOmBoLv{)ahtAJ2gdZ+hUtSKLbxD5@!8y)X;fj;R~I(7B9 z?{G)r9de> zIf(M-x=$QL9kLvCLDT~{A4l~#>aGaVc)UD}C;M%FjBlKy<{LLE&A+BO@nD(kt!z}z zs_qKeU~d3&R+PV$z9D1C?)n72vSDi+KEG(pB~Td#CO^KGr2#*fhWjo1XNsQB-5d+S z*&UCwvozc@oSvcTal-!RXUa^0Pdm-OI>PCC!$#%*s`-83nd`Xj<~PudeA~q2*2?Wq zvAobPDIzbLljcT|&%>0*-db4$?2Z2r+S^r*8B=Nm)>VGn-8CKo*;bv zo819j1G{o&owQfc`P@N^qsEW)g!41c7Phv|p*QMaV7&9{TBEeGR$=mG^zYs~I7r`W zo6%1?=^=SD!NZqkKH3OdJro9=IPgpk>K}|3hkeOl3)QDyw@xXtE(sP4|5UkKw0S+H zXSzz1FYXt3-Zd<*)l{C{y;Mo1KHKmnl}r7!aHUV4>~3Q+e94k4fIE+;s0|X$f1TtG zo}lsa1Z(efoUNF3MDKOp#X+;zP3^srwbw#%=R-D{#wzH=aP~c&(NWNhE~?WhRHqCL zTsnORD7;*Ub!Jh}N#o}O;_DAk9diU+9=-Qtt~u5-nCwExxUN+Idri7Ki25~CnvW=r z)$tV7_t(I4g0WyDp`a$=1Neg0gdcJ6@SPNnGYq7M|8!dC3aH;l;{3M5LG{78ihVK8 zLB2HlUZXNmR<&&OSra5*O~SuezCG)7F~O~;`hfQ3I+iLg0pDpR#y?jOK7m8n5JEa# zG1hi>u%6&I65Okfy@73xJ@kAXfXw8t9VZUvQ6B4&$0QTujZ28OsNXv2LAiw11e9eX zxEvuXR2^aR-NXm>Hju9 zaUIIN)!0%*kBgpJ^tkEiq~|z2wn}45F+IrlyYztAe|mLBX^C>Fprf)T95Pu`MEKX5 za0`WBAi_V_gj*^6Y!MFK=3La9>+PGFA2h?q;rE7=T_o?2b7p{uEKR@4qL)=WOu#jCtUYY7^2#{1#E?5@`j- zm4W)mK>d=CDB^!F;!8F0)Mp8hUpLd(!CjM1*n++bbdBoqUpqes0`Geo)#W(f&p&A; zzO`A<{$p2mg>-`7J2KVE_G4@eT)C6U-b{A3vb$aE2|m}G z(}caq0P}mxWX@r)`4eU<5c^Yy^`hW|*6$A{(|U32#EB;@#3O;88-26=25AOp)raGW z2I!dGw`gnF~Q&oaTGj*Do9H#RFemB#| z&L5s(=h42&IP28O`SuOmhZXJZ)4X0LXJV=H2I`$Fl?7AVLh5{XNZv z8yOfc*D_ljKc;)-;Od6Y*V)$F(kE^ycBu!e>rfjt~xjN3{EP8dnZyBhQEGhCG{= z8Re0S%H;L;Z)D;1r}O;LwhIMqd0({c9Q+S&RPHU1*u5Fevl`r4TN5K?Ty`b*S9Y|a zQOR~arMRUbvffc+K)VxM20z9TzDLsgk%kiok-yHmOuk&y*%(vjv#*4&SJ=H?&+J}f z4(D|53e(cp2sbH&yFY=KbHZQ!;2`J`#`}&2U*HXwFJN)F6S%%18&mS*OFKf%JE`Ak z%oG-EPzexMPGwxO#OBAbPjbfd`bq%f{ILHC{ zoRn{pp4;PqEC9{T^!s;)5*plo+`IUUsmv$6!EvV_cR;55cdE7*1D(Vx%qD&;+0Jzg z9FD0$tUt%v`FJBfB7pTK%g*iH+$Q=Zi`i$C%=wOWG=2uj9}^$qa9|8h4Sp|ZP%`DC zr#vrSy_4A&F*xq_quyVfIPr!=xRs4Q13JZvwbU>TvaQTA&D|xq%wBX{>tDO zL1S(ZlM|7Wcssllr{>4=nvQgacc`3frkgoKwhYx9KDCw^Fvr*$ZRczBRq2a@#8)V# z^pw%_(++YUy|7AcGAc3=&+jMdBVEvR>3 zT?HQ~bvKPpW44R-i9GVCzV^SGn4TEM73!WxZLOmEV|<0%Agv5azDC7bxtg6{G|{)w^|)dlE>Ss8D^n+X)k-?8TUICY84`r7Hs*73!)!nH84vx=&v>gN@ZDsmv2~hP-bOqmv)8|C4{ak@*xtZCRqr>-UV9y_g&!-g`ri$}ABFX-_q#G+ zAHcD*D_MG1akBf>cVU|>VD&FnUYFhtm?)h1hfbq^E!*FwVSh{CY1r3l-rD_bn!3Nu zcKdZ!f8Zj*Lq^CePqomP&h`f0u)Z76+w}6bKx+WJbX8fX&{jyk=b&I6>>} zY1Y1`ug+1}1V`^Bvn=;UTc8M9RgJ%DoXg*s1o zZ+SLs1!lCe`x(r?sT)1PRQfkGEDK_7`{# zqIDV3^$!&2IN8|vgdXGv#KSD}TO1n{E&pe;>|x^@d{PR*FgrHZ4NSfOV==oBbA(`N z{9i>lD|CFt=09{-H=MdrnJw^cBwG16;k_5cQo5{kc@XwhBtMtQ#qv?>j{R%JE8uO*m93eR%YvAkbDr!8>L zxL>#aYrVWV>CyMDG7 zF+P-V1zyx9^pmhwXwND1PS~BSQ3kWKskOA`XR>=ioSXKx{$O3%C*oRjH!5328@|1~ zE3_kPqq0x@e?|Y;_x$R|6QNwu?p)q(^C1EAF~MB$-xJ+gCUO2x|I_Fn>o)va&o*vU z)IDtTbR&}q`i6LvEU~xBC7vWpT9N?VW4(3~d?VEj=ezk-x5tL;3E})&r9~Tt!p_Fy z?2O08&eGQ=WMNM)&B6H{?b%i<6DPlO5c!>Oc%QR67CjFe0EXej7wE2$PfSiXP*?)? zm1$=gf(9MI75Z5i*4$DPc$Gy#cK%OoIi1?lG-#vZ7VUeS!bT82ifDbsnQjj8Ls`~! z3jXWOdqUVV7FkyYiLYY%PLT6FCD|nJXxtM3kNAdXPv9|XKjRUtuHc4w)GpX}g^heu zgjcDia!wov&-nz)59w``57Hyg1>p0z-J>o0HR2oL@&RY$R#R24_ z=5e1U4@+_+kDDnEKjo3v03Ej*uy-?O(VhY}{uj=FS4LYWSG_O0sJ*2PE13+ese#I~ zuMA?ZIbw*3_NhyiYX%2GriP`8@O!f*kMbx>=6EcjGQd-8xWdToJkeM<6F%zUyPooI zCE95rc%z+o7zbo=hWibUOh1!z7kNyiJchD!>XnSAaZ;NWUfC|cJ#i1)4_DGZ_G@pS zy@&0K-!9w}FcAGTRW>RqRLAC>djhDlx<_t)kNT*Uo`ZV=-Q#J$TuEz|z)!O%^Asu* zcv?^R$tD_Vzsf|kW1W&~)-l;ZUA{gDJVW-ji`fG7D9MxtW2Bg1Dhf8z`n*?>n9hF< z?U5ln#eJ;-zMgo`|6bM=N+p`>HuEwUUf3c}cI=dmcKBjj%hxtqudbQAD2O!+d-fxg z26JO8>;`4v?99W)aF%^h@H>jjv#wKwFM0DJ(H5D)OK5II&c_~-OI$Uu<&sk>&Q@_B zQzm$DqBVmsZ(!?->)OFSJMHU|Ie%{)Uh7A`doJtZJ{@4AYFe!yX90RzSD1XWr`i#Y@lJRRt|CU69Gn@p3IXcE9)7{6P1%6n@wI>YunAp7dlO^h}i;s?cpz zURV^-Pd=6+?*A@}=qDEu%%(qubuqT&Svbs^%i!CSXs?hr89YB?$EQNTEF&14Z9#Ve zdV!~I(%9A#Fm8ewLok~R941WzvqQiQxOlxN_wR|y)J!vf}hf`RNuiJrrJ^jrkS zp2}hFyo}i@>wW_=DioIm*%$$T3+1Wi|1f>4^_fH8YW*MF#O5$jrY}Uf794P67Yci-Qh^y^{J7& z*B#Y?Zk+uzyVIDhYbNL6SRbV)zM(RW%crt^OeB1Vsz)577rfb*#`SjX8=}J33p*yU z`ofL&w7B}h4bHT<`of$1@%4q9T)pcBw>B8%^>YpKnuaoYTN=Hq%H+nk=uJ2~{;ZMd z3AYknq=q`>2*FBKOO(QTifU;hja2{2p^>~-QQnok!qIcntD#ql(Ct@i$vZNMc%Zxdt(RXU6dKg`%21t zzcz1SmkRgpn?>D+yzCF_iK#M72aKFvj{GsuotwaQo|#_QkKwlGw2JhvZ}+pYury7M z*uJ2#FgtCX}4 z@!-}7j*M5^T1pam9loSG*wZ68JNR-0XIYY7K5$BM7-tgUtp1$%I71%H{@>P~I78l$ zONC4-WK(st*MwgG=1zW&yWWu;WgE-_xf81Mf34v;nd73mpdQDpVLKE#v-D<055KZ< z`;#~ah7JSPrrR^Pov-(mh@Gzrd$X@n1q$6kZPH%ekIXO_>nrtk2{L%kc;3HOL_H-%RkBH;@}_`?)_Bry^`SA^e7;luS(_}iDr$7I_> zJpOjbQPbW*O5u2(4IR9fdEE6BH&~>dM&Ix0`1h6cJwb$DM&DnF?~Cc%pyzVK#JlGF zSNKIbpT55q;f3^lgODvAPv3_no|bsjoIkwK$-YO?_jD0HoW7Tc{Ndj$OMFAexJA?l zHrqSIH}R-BR|**1|FtG@+LQm9KXj`I$9(>HGcW5b>Ms@M#9RK*)^(ks=NdahXW!l# zveI*~t~2!flbxY)BRfM&sD7`U*BQEbcqiM3Ko`IC)yQ|j?UC=-?v8xl^rz0yvo)Qe zUFDsj-#m`?QaO5Iirna6Hm#U{9@OusfEh1f@XS~jJg0pEnY#G%VWxrw8m}cJ` z>bnMdHqbMhaJwT#wKK=(I?m|^ZRK+DMJ}DZE}orsYJaJy%X6Zx%uYLnUnatz7UABJ zln1rJe>T106H3IdqjdtN3sq0W}u>GbzY+OD{W9Yf`+Tb^T;52*={coZFFU9};xc{`TQ`E88Y_DZ928|$OV9uAQOk+xR&v&TAVTOM)9GtYtDqYlhVj4^Y6yl-upAoZZZzvWNURd~T7GE_foMx!tqq4Ld(GxA;SAiT1U;)EO$A z(#h8LTetX`o%fr!a69k!Q=b27N9z7O%oHuKHE790-Bt(xn z#%tWi$6VcooX=2sJlwZHcKmXIt5mg(jwCj|)j5nd9{6|I{}pmLy()w(VG zZ^rq@V~048lCj0#3XIEsOIxcOg>gkJ}RtQUO1oIx&O1jZ}E4R(s#aC!@9TlncvhC-Ew#7 z9n`nR#4x`mZ;9}H7+avb?|jv%>H@qmgZRY9p-Us`1HQdb!0r8tueE0CqdGHR%ib;N z3L$@{GxkzX-1!~NKGfwss?&yMc`;8s9q%eCS zFMfZJk2wi`rllN=6E!d7vxV{*1sPB(Ys(hix2J;-o0Ke<`1Fj9m(e~U?=+Ka9B+~z zr@SBM_R+e^VQauz)8(?#9?MzNRW^?HGxRQ{f50qCWjbbER>(fuljY4mFAGN)>=a18 zny$*6G}@olbU_|*$|RZjQ>ddcJdf(V4{|JmUnsqk)|fl_IL7%KbUts5;5rBMd3CoO z9;=wkzugkyv2i9L9p<_fNIzRM9xBgj_O(&oetM2yXp&v;>t%;T`?S-!o>A+y>GI>W zX5~$xx3f&{9F;6T?kkh`6CVV8U_F&wHHy_*^PL6qx3HxKo9fbAhi21QLY>FLrwNsP zmZ&r67}@|kCF3+>7-QxF=sb!rb)ErkGKHc3$g5aW|HD-ON++mUz;{jMIzhI-3F^48*>~(ht`nq| zeMK*2@6(iROf!Uap_+RsyG>JeO`NjrlbU^{lcLMc@1^WNYsxOCvQ=HEr+X>;B~95g z7WF%}SyuNxZ)8hLf(XBGN2jVk_lAkWa7I%k!r&ticb6*cwG^(+uYlU3mig<= zpq-B^W%ur4e5q<5S+!dOyh7Ir^I*Eb6Xq1wyP1g`Pq%9Dx{t~+igGSh@#=odWY@q? zpUU;4knfEIqozGdxHL|tu|#zeW~a9@?Aef&X*6TM$U+z`yu*#IU#aZ z`o<@?*B9}a|O)(7YW}sY2yBGLwM|M*(zY}ya>K+c>Ds&LoIV2eXDhx`*h@v z?~~u)+?2QZh8H=XyY|tZ_k6Z0TZ?G|KhIpayEBZ#4HjPRr5YU8Q-13GUE6OWc7)pm zY%#(9Zg*#oGOUt;)w|$mpxYtt3;^#S_$nQ*<7Jy8bFf0p-|e@^;rf(9w>6EIGvXrd zZ>K`!JN^g1dVcwaTBb?^KA=3*GDZ*{pwqI!k=e3i3SYN|it{p*F*DsLXJzs-a0g|& zh{+O#YkyC{$2Dx zRdQYTYYMM2aCTW5aQp;FG zZOBejLZ~b1`M1%Ld8YMq-eE}S!JojFq4gflpL7%%!e{tKCbM6|tOk5`2#iY zLl-KcxuPEOKmB1|{D2sDcO8w`qEz9!2<|AQ3-2i@pU#WZm@Ev=05+(6x0CbT7hcbG zo`wnEE=g3UwmAXD?|_cM-p%yu_b?g_S~pX(r`u;sV0*g4!w19uvtZZKZ{htnVG6gE zf;?ZC!+pCruiwLL8sIL$lFH#mP2p>*dM@CcOKatMnJsR5yOWc`d)@4RM(my=-_st6 zj2XZIrtF`Q{@GzlWcjB~iLBZFM~Ehxlfpi!2fY~a|F)m{sB}z<=qIoIJ7I4d^SaKG zD6hBieK*>Se9OL3n4K=|{@XV@vL1RZy!?v@E<=nz_+`3Wd=n1dSgkoz9@ege=0C55 zhEdu7e!w5v|Dw|4UUu7~ww9w*e@Sy^b47K8zIuq3LMC(6WlDH0DkR#DdK6GSvIy_! zzjA95>%-#FX{-;Kjf~-C^58NhO#3TDx{;I)d45`^Fx}|6BHTjZVgF%fj{n+6BXcVM zN=~CX1RlyR;o}f>9~}IU+3e^boT7Z#I!0c%G)37vUaOsFHi7F?!JnOz7WNq;aos0w zR|~Q>4%%xNcpaHuk=SGYJ@6q*U#_NwZ7iCPM^2o`X%+B?zE-04kfy66bQZplj?9b3 zHOl<3G=l3xBA?H`j^Mg^5XW_846fg}B7$p+k*90>n&b3Qfoq2df92~4u0d1BYVdq$ zzOCgD)w3y$j|;6$?k@hJ{i+r!7I)g^U_6^RQW>BA$CiLu+Wui}D2N3)E*#c$><=G&< z9};Z`%|IK`uFxaV_L?hQ&A!>L$es~CE^fbC33U)py7`YjDO)bU3GKa4WNu>!$ufKk1oX-eLuQkzJ>x@$+{fZv@$FTS0=nEisA7 z?5l0V`7i1|O|*~plB|8cMBb*Ws7=?3yE@nk%Mjo2m(@uyM^E8!!24OE{kT8R|Bu4# z0G+;PC)?|tM{P{d*h6hyXlt=crXJ(qqL^`Dp!{r_anP2;%gYnvpg}VZj#zt+gA~m; zI4aT(p|r?%_Z24}2S=oy;~+`k$s)#qiYFuGnQh|VM-D{B0ousUh-1b<;q+#olOD7m zw(gDzTV}WZ{Ug@j-s{p-f1Rr((dR~Ituh|=7TR?35l0dmBl}@*tc8ym*kv`~zJ}gR zSDEUV@Am}lR*zz-^2$3#vhm69F0uZ zp|H}UV4tsd?39Zr&&0zY(Oh1qTy^B5@ELkxGH-M10fogifBzAi@5dk`A>y_kP{LtY zQ}J${&gqqE)36Bq32Z6aRhxw?gN3l4eV{!wcTAF8N^=8e>nXmK%s-hydi9WAT1oqi zm0ZWe{;`rm{~ju{$?-|RXsuVWPT}+%_C|I%+5=|$9%UKTMeq1JEVI8k8T*NqOy+el z#nHMKDvV=0@gF5SLq&qt&eEBp*0ptyM$=m85It~dgx2mCc$jw}LTfvQ@Ugl%hSuJC zd4$#;73uEd_>+fS!D(%_nTKC@AVOBKgoC*N%1^~|F=_+dJ?RRy{SzVTims|9(2#AQ4VcVli#lI){-#pWyS zuW5dr=KnARTi`i@zp;qBqk0Rk7xr(^y#bwU`pZtS2Ee|uHzQfx2RxN~kn&ik{OOwy z*&h2nK9BN;orryc@A&Gg_E2+yiG_6u|5AT_ zWpBtT_>J==Y58H;Y?_q9?p`IPi|$sK%@MnY*#fc98*N!tu9r^(9dUfh!oio<)7sQF z+{D_q9X7*gUTvZA&284d$NV|ZEHugIVV_;Vb*fC(R%S!kCaqPH?X3#4VQ`F%fdfko(gF44+elB0@9mMP! zP}#LCZ`wBs+?CgIIVAY$(g}OtxFfU;GBX?<9ht~{tU+H1<8U9f>%+(23uOseBsHy3 zlQuUqrAOL*BJG<$lQwHuaeo&HGs4W2avW( zlNMvUuW7;CB7G&L$2hr#=>V=&xQ;vTTj<-DjWaUbGW$`m6H4i)i!{?j8o(k=tz)ukHC)V*kRQ={41Ej-AMfb9 z*&~zLzFZye;7w&p|NS~%-ULye$;pU_6th$nSeh9Vns z-s8=Tzd)JLJ%?`XJsRAz`VlPBxTt1!7Az)kLIF|TAB+wf;wI$ z$~*OEaBtM$eo723bq)>fp)wjr8N##&xJMrpih5c#_3RJ5%hi;LvW(0|4Xr(dAB(i| z5O9KZ1#1b)1-(0UfMq7dw$mP2KT(IxBNM~z{7TT+9~&cOR`sV$7caA$((|(~Zw73+ zFnhvSu_t=nlTA1O@fAo!sfxpjXlRpe{k|{V>C{T z_Q*H`PB6|?oXDb%f7amSm#lTqi!yUXnO0HetYN$#=H@4d$LM}h=K99SxHgF~iZYBY zZjT1z24m*%=p<%Go83_n%<{%)+BZwk72s351{4c?E@0=rWAwU_DCTT6wGVUFGb++=s2AFIX=C*I*+H}tX&N-^A=+}0 zy8buDUq3g*te;cW^?!i48z#!TpdYx)6luoy19u6H(R@d5cqkU_`p??kHnt$F%F`@b-tbJ=fd*wCgER z-kX!`s3V9vYPM|0jqtyhIeH*9V6e#3GKZ%5wf=yp^K_(5x< z_Zw=v3uEBj0zPSN{QX8T;435W9s&Q;n&^37BI+|ECjUAC|NWXcydJ^L8Xb+NdI2x5 ziLBkfWPW@i%DcWF^JAAtb9wAKDtr$1wvO&VI(Cli%>aD{Z1pL8jj^AREPp1}7^A?8 ziQa!$!+97Lu5^r&HjOr=f>dNArcT`&G*se7~x;8MO4P)zRk(>UwKEBSNo`<~mWvN2?=z z0P`Uz<~Bgav9T1I|M87hr_eRcGHAxE^M_*C9^v(AX_yBjF}rPTwQ zKfhbu|NTP!>NxuaDSBKc$BfH`F>UM1xO`~!z~WSv>W`J@g#ep zOJn-FFYP;jb(}Sg%IX}S8m6URig|~<`uNoYThmS#bYaW>S%sXo$J+SM9+1H%KtaS=lAMk;0sm$zo8d?FNXgwQu+Ue`23zH2EJIp zf7%eA-`gAm?-cMKG(`A4E&PTU_!0sCRzrl}i-JERKJ9#^A;RyeejK&uX`5qc0%+(a zk>>oEGPcE(q0-Ow4Uv7G7QQtGUgbgS8>08edY6XY68!!cS_t~Kupye?+b3wD|BUGU z&5fdrUpK_x57}dA=L`XVS3_iO{E~g%^`bmSKWN3}4Ush=ywCGR(?OFpnhsvr5JM+i z8ahFE$QvK&PrslOju>22i#^n#nEp}E7IGURd&48Y02f)JybJq*izE&H`a?JW^H|JT zOO*y6Rq^q0__64*6orqfp7`)T);Bs^D(LLK$2k6u{6ae0`dEbK^p(zT7isS4Bc1)j zW6^h7>YP2=3!U94;ID~+Ki&(ST`S-(iGereCHJ7SfM5Dpe41m4fmhEj<~|NHlB-9SjelHo;tgtS zyv<&|bV-7dWzVj=!?3rb4C7e+6~Imdl%X|ir_+3}x7o7MI>|T|9-by`uE-7QL2Y=C zf$Ibcqp#@p-nmSzN`oytpn;@(z4(HQVs>|6X*E*19e9>KbTRhun{O8@4ZcxSG$5vj zb5?kKC&oB+a^FL;a50VFElTo6@=}L(gHURr&A>9V~oruR&~&!*W^FaGI(=MlxzZ zenPxPg1nJ_sbArud{i2-Q_z!Tx4U~yJ<;)2Rt3nikKCJ%mmw~ zj~FWUFYmeKVV)SbnQfhI$kt((>c8kq3Qrn3oW)JaVAGXO%OnhXfK`GD5-m#4;F4bY zhyK}-RdRN!Q}2^>1(s2UJy7{hO7M&FmUksUFh~KaNKzal>1hKhkJM`dQJU`@BG#CK0nD%G*u(S;VYC0 zKgrfw>>`Txa_(If2#4iHNlS|K^%Lgt{>`JFD@(k~)KiH=liyD~uLT+264uA2h=x-ca@V`aO*k-MAqYcUeO9%$4 zyC2V9m5EIg3{~+pfzZh|MqY+jwU>|fD1`WE4n%l=V=nenhajpr{s(MCL zeTM~Z(+>}u+>!I#MH-u}MD_&~ubnn!r*rlY%IsbMMdA)){&%7Koeu$VZ*mATRmo3jj7w#>Wrr8p zrm~(9YC+QBW}kfyNZ9ilCFK3w=)Y=i;znDXpBtRbiSOuN`==h!0GLFg`g{)Ugj=kP zB^jdH4I?Aswk>;e1FAmCN>kd$*9KPxE9DWr@WJef!IQ4VZz)YrnGeS8grl;4knhgM z-hrE+GsLn%oZ)M6%_uL`D$zolF>xa>TOe>UJ1ac7w_L2_6unK$$3fLHrQ)TCQ#}h# z#}?FC6Bc2K1(qP^Duw1PZ%x@G)O9g zOq2%}tYYcDr6BZyJ%1qVAHHYc<&iF_7+p1!;Agq({m64``nHu?AW+qA^Zp}NTBTh-@H zKIWKHw}vs7ZF;7ys+gRz8ZUduEv{FxgU%vuu z#7)sPwXU+3ZOza$dcrh7X;nD{aVOP4}!p9>i&GxEoxPZ=H~+ z1`l`TP^yfHerJu`h~v#$I_TBEQDM#*PG4O-BM;V(Fgrm7Z#^M^3tS2s)xbxAWIx3_ zQw+)cbNqemu4oqhHphOR=2@E{tr=IK zno|Ms&$IIj!MU0O(vpOibRuIy43BmgCtjnPm#ndqt$U1@b31n;{cT*~adR4hmdi~d zxkb4GXQn-qtx`1e7?=r)+CD^(g6~k4e`F-00o_o~L8k(T*P&VqpVkoQCXr&cnKLhl z7S*BKMM_MvfC)RhCdH3+!r*Ws6>O}az+F-M`E)5VIx*J(1<6@7k$4U>h)hR84R6+g6QMz`4i&R5d^Hg1%pnp?L3i^y25Etj;vDB)*DdhAIC%&bsX9 zXX8#qB4vcRXN;UbFHk)xzu|c~aU$HT06*l)Mnjn>W^27?%xM}KQ|1tLv30U{rG)C`s+e_a}Aj)D>uwv2=T$)i?6os`*`o_#!5hSiDOkx1ao%8Bor3b8$G z$uaN&)6T8V>Oa)O9Z=L6gm!jZ0Hpk$g z^inJfLp0WiNIz%Lw2?Z?6zHXUPIj>i4r=~IVqtJ*3LY%5pDlsqRQ-AIX3(F?IsDXk zLZ+ETU#8CfB4wf3g!fa(|CY^ep#Q1Ak2I#~uG?pc&WE%@W?9ch76;|DMXffRh#hl{ zh($=w0+wQ`eO}NX zE6vx_$4)g(;0`X3tHEGdNkB;liEB4x-x0M)Zd&yF5oo?WAh(;QpcTRrE$l;Nw{wnh zN7T5ndNzGxud|(77;9??Sn?7AnxyDuOH8Fv_s`-kA@`o2#F1 z`yW2wBL47y?~gQFSRk9NCl49E+-kdwFj2s6a7-ZEpO0{#Kep?x4k2xa@uQ2@d!yxM z9#SSdb4WRq2|`Pl`$(;hhr!nXv&L%d(jTBrPSf++oI~$h1q(IwBz`N}^DJ1kn@4Z6 z<$|rqPHvXi`p3>ohyf=0GvC6?pE*sw9Mp_UxA2R=Om1&B@xt@aKBC`u=t+-0ga*Lc zmsiD0-Y|RV`tBEF1?dYMUc&OAPcR9Ahin)sOZS-nL)qy+_6m>ux6a@XVJ_*B?qlLr zTT1f-*OZRxNuf=r1#Kz8%N33<>w~9}vzTj3yGEljt@_WFDnb9J{69RO=tkz^vxsVD zDfgG?9fSKfPb3~34!b5hvN&yggUwdx;VgfPexIp`w2N?5iROA%ZgX~R-=)u4nU`|9 z2VW;%JlYcLjl^Gc;>|^}4W{lG{0p|gpIQBB%k`X55io1Q8T=SQP*PY=h>DfrCi zMLCfr*jq0R6~(-I__j`G&O>m_4@U5CN}mdWR0KRIJ0+t4&F;a}L$%5bG>{x0Mf<(3 zF8K0@>JhV@%Gr;)iQpB@X`L+c`$c9uayrvHZ>oR5Pz17!)Qg(G>Q>*{;^x;F<6wMNNXc>gMn|`b^HwmBqW%na}SR;Wel4y{WzHRiz{uX}9uS^h}%M zS1V7wBT?vNY+8WybrWF*ooz8`ch~e!O3%3!%j79a`fdl+#a4Pp{r-D?ZMZlBZKLm2 z&NOh5bAqt#&ySYrDYHYgZGch8MHh>5d=?88X0!e0#I9o=%i!$XE?Y&li|#<+*N^Z^ zfRo}}7RZwGwvEn8&h&@fMxaYs#x!I;!G0b`C^+JtXiZGmFD!0l&ip9=b2X!SJ$*SZ zy8SyBEcS=BVvCC8ND~_S;}33C`v(7&x6Wua({@69>w;Mse8`j`Q%#T!ed?wM*`;#h zsK(dr3HfR|%0-xd$)F>9FAz0rXFx6PSSR&zV3IEY*TbJ87=WMP>3uhY{`mVR)n9T2 zy>Yh&uZP>kD8e;P{(fVEzMfeuA`+5lsSoH+V{e51tuAk@B&aVzBq#H0+q$JR*Z zO!JG`GF5Nc?K!gpOlj8<1+0pQvn8jIIPFk>aqQTMXX$WdROvL^)hJ5V(MHG47Xw9h zVdha5v-L~h3>}rhfQAujFK7a<*q|MEUAT1p47}lVsR`e7D zMaZ5x?egB4M<@lk7^sp;|En6Fjq7f@hPYsl5A}^t-v+h5CRr`(gOb-S>NUJBj{R$k z?*Kmvuj#_1rS?jd=2z4TkQD_%E{@CkfsL_h1*fd~EOmZC^&*8WRsG<{uRJl?lgYh@ zmpA^F#C5}Ee4=F#?P@yy*5*M&I-aB|_$jfueZ!3s4dJ3Le1~uaMnkgGF>(wsM^%Iy zzyCrCjMQeEWe*2>iHca~Ob&o=G6pj^C4=N*b!+f;rLGA|kC1H+?w483NpE|(k0>d_ zg5Ka3t|L9));D|gjF3~AOsBb zkMAqy4A5mwFyzjZqIYW_?AFc7@tJbVXZi8`1-aCI;i_<9Mp;LIV?1V`S1s&3wF-t( zpZ^h-)L6X%pH-!zvWF#1S}~{Q(l@EYHKe=Chmpi`)T*!W$35FcO57+HH46YW&NH1nuW zvJ<|Q_N$s{2Hcs;e{eG0HHMWby|sF426_>4(@=a2;g03bRK1K`rAS@CRZ@q$zy#fG zIcQOw$zD1He6p(SIFEP}G*Q~-KiIVoo|sd8e7L6@)j&ZqAvUXmm-kL1FoW^O;azAY z&MrZRprR{rq-)gtsr!n$O5?Ity{~Po&!2qXr{lJcFI3`lL?*zwZ@G|n%5PdCC&=OYtxOxZIehq+I2k z-@qm9F>AAYeN05{NAxr6TP=h$)B z2u`xNybgSic6NmRW#BYre*SjcgEwsRiDAd%3Z={`7@=1k<%1OQ`!{K3ovY7zYkQxf-H@Rcrwo2d2I zyp1pY3LT4FEtGFz5tOe-4e#!LZF+I{-{`BOI=#gQdTho8O9@rFFFDJazU$<-d}7Zr zD5n%9TbIID3FV3GiVX>F+20gVMn<@&{h+{O=K;ajN0aK4d7HHT|J1AVm!yKsEQKsS zvkBlo3IcQ>zZ+RAlHeOGm?UJdbZf;GsivkXQ_2KjwCPk?SM`Bj8r}Cz??hv zvdVdG}6&6Xg=%v)c?E5G(~Mmc25R8j^~6deH)drR*S+;LyzmIb#~ZAak)mdy}ibw$|D zb@HiS(rZN5>Nui{P;Qy=ugg!eR_gI4#^UGtg>GcVZmPGsJXbH-luvcUBwSDhq++4FwYy%m2Au*>j-^*Zy1;I&jyKj?eu6LS6? zuAUxFL#&Qw?|aq8oQfs<#^pzWx4g-?JdoDVXZZ*GhI z5qRXk9a=c5Rx5Sl_4ekJT3@f3`ndhVCUw)tFUYGG;9+xiPhowa0`KF*kSJqrie%z( zt#EBK53TJudeeQK`p$D`XmvPj_ny_cHNAgU^vu?N7{i+e3&r~~l(XkKNmkkCxZS^; z=cg(@tAOqK)&~B6kjzT06tz6GR60dvcs#OwI9-rY#){!qyUfh8FaOE> zUND}HCa}R50hI#}KER4Qy_P*M?p_dr+(lK8V$D65m#q*Vi67;Q6QG%E6 zUQqYLs>^}s5#xixA)%SVB+J;4{cqg&AW!kaeRUV=5k?KzUN-iuGu2-~Dy1vHmuab{ z-ms$D*!m!h_h;gWc(I_vmT?F!sv_q~L7(6cW$P7kKK85_PF_FWpR zajPC=d11h}l-qxLsf|53vVHOAbaAo&1~6(?Im{X^5B3VA3TLX^r=L{vxkJ!;QRV z7BD@eT8GrX0cJni96}$Ln6ju%pith~ijVD-W5Rf*o#Pta*k()gfZAgjZ(5ng!Uw8e z_$+zXP~I;VwlNw^f1c^FA5$H!<9iMU4V-?R1RJA%%cXcbRFPUFS)8el&T4uxx~+9H z;kK_Qj>C9qjHQ=$J6l8=-XoB7W+fQx6;Z8smePfdnG%oYqJ3NI_ z_HdJ#hpN{lvgS%2@=%-FH#DFgVmY?iyS{j@;z?r6tzQpgQRm9w-x9WE=*ALYhjiEv z+QNCn=%!t@XS#6w=D|u6Y4X7*OE1dmxhHTC{(Rb{-d5hb#qNcSay&+dhQB?-^@Tqz zI`w$2wZT{bR{i4$LNrIhkIR1dXTb)SDhy=hD3|xP?!`9IRK@RzpFVp=r@LfdFLAEh zC;J=2L?bHhe*SWKUb9A8;bD<@$h6cY(fThz!h1qa(XJc=7g;b}pX}|vj)mV!C;P;v ze)aXai(t8gF2zK>1jYGxt#@X*dbh=3*g7Qc$|=+OH7E%IeCpU40o^Ra(vthiH59FLkMZafZaw zP%d7Y*L56{i`ks`9?}gkFU^x#KL0im0!FIcu|z6;f01#{R;?h5_S}0}vM^Tef&clf z0+)|dLZ?56)#C;C8%@2tYzO56^ zo_EWfUYjuafO4{KI&qOSWU8Xy$855=k(l z%o?2x+|lJ&t$&f&-+v;^$0fu`Z5ScxDw0ju34;kT>abhj;df3SpZc_PAgpBibIoHE zfdz@DYvs--HYa4h4>vKMqI0AnPEb(S9q*!KjPJkpu91DmHh$x#_;Tv6zo`Tw)3Q>( zOO`qCLY@| zUD&G{JEjn|TsvI-+d`5O{*n}UD7xS%BhWuHC3HsS25$R_2!y=KT?mSwery+S`jCp+ z{0`1hU9XC;tfnF4*&5OjfI8J!TWQfk&A8&p-)a zx3W$%yUjiG)w*%Wy&7hh7nivmAXU5hBu$089ocWhBwSZ}Wzklm&f$UA>2AAg#ZuM< z%0u8>Q2Um{PN=r6ryTR{o5jVxkgd(nH%Q-}cs-~N?a?i{emX)6?_a1ES^PIl-|E;_ z3w;VyT=9oE+9szS$nR`pBdT>8TFnjV4vgyT^*?#sHJy&T?APa4e9 z?%gha-MlDoqvlxTBh=3x1M0p&MAe>jUdK629eCFT>sQSY<)&gjSX!M5;HU`IdY?>* z(k_#YpBLVNWg!ZBvXqCIf2pXHiwxseGZ-Cv+_)x2N)(D0zhk@H024c(7;9n7xf4n* zj+my+p}3@_q`oQoiU^^@(+VP^DtN6+LgC{;U0LB157I-ToR_z(WoN*vO3EwWSGAe} zmEk$pmcd&-qr-2a%_cScYZT2)sy_RC5j`k98Zebm*jp%1s@S#h>{>nwW7z=~PsV6j z*o_tC?x?!H7ou)Q0DASf!CS!1kOgWXoxNL@@xZCA|5RN=G`Ok#*DcC5aUngcZdxKbf(DY@FZIG9Sj!5dVhsL#p93S ztHv|APg?`eKTQk9CKnUuLIr zv{k+V^~(B#U`DYGJaVfa57&B`LY-abMk!B&*oM21c3gUhqS%{4{f%{}Qc2VEhiy5> zp(>}+Us{J{sc3@>9WJDdE*TOh~zDni^8+u+;aN(Ss#bf(Uizz;w}Xt2f=JX3#wy>b;4-C6a* zbo6dnE5KW+t5;ygz?dutB73a8lZyq;S? zAaGg|?qW7XG}aZVLF+%)YmXhY7|mcS=!klZ6{)^$nMb&*!PwpCltfJV%O{`HoJD|e zd1MwvTQ>iN3m~(VpS^HzE$I`&vP%ozt8!3&-&Xi1=xUGvAE=mfe8HySP*}X4ZF^>B zIdyUADDurSM$=faPIgw#$gz8MPr4n(=c8p^%rTox6|FEG4HV&5zAtETp-Ah?{z5|U zV#ry6wE}e{{Pd@$Q}thj$E6G!4pZbaK6$IFIMu$^wbewbb9ds%x9dpN-7g9`nN>zC z;?^U#fPuS_KObu)AUh0Eff*pBj#>Z3c`g%~Abs9r>3gWn=$>m-nIr`Hkv8anUd1ag z&oj~5)`#IU^VqW&YW~-j$`EbPD~R!$qRuSjJK-cCdTMy3642-~%zD50`JPYa``w9s z?DQ8B!n8&wxI6BOo57>MVN;78U-w&g4UUU^|s55$EaqDxq>e}jvNCmS`{pBX$ zQkl0^_EMOU%3A6_I)$;Ek!}|5iywcTX<1A9#7`{(*64UYGJ@aspn1PDUB%I2srZHW zx8%**%WK;7i0R8rCUQ%c7HqI5Cd*`b7`tCsC`RWp@v-Lu-FYAvi1z%yM2yZQQJEQ5 z3di!NXiktQlqjBM*u zEwkUE(y~KN%01Jnrs<>7W@*#oA#G{1S=Pi5Dd?4J{paAdf6B*{U_~VcMQ%CQcNX$T zX{aPfg)6FM|8aAXK~qVrlO8Li&i_}fqn%;BQ2ysA@qKnWwjvJX`lR!_55eIz3l1x7 zyL0`Xhxum}eh`kWrp+Vzh)L3ZF!z?sKjZ(f53+Y{M|ER)lX*Y~t_I_gK^6l&_Q(l% zUIgw#q!`PP&8HdPI|FeW3+=nNkQxD%I+pG~j<5Fb2}&!8kUd>8-+7XwJ-(981|OM- zA8>Wa!WRzI)g)QYDFQn@J~20CE0b4$ShFlvjVb@JU3Z&ovdk z5n;KYLvc641^Iq_I2hmEyB0ob(V&MgB}YtVSjRS50cH|9_xpSoE{qlXEkS$Ljr}{{ zd!g6|d+jK-Q?&`ov2Mr>!?(3gngxpciid12o2@ayO)Q6yj~hGlJi<(N)*?(GN|E%j zsr%qnik7^Lf;vnE9`z+60?i`3B3lrT|K(}Jw0a-Jp-TuK+}lFSZhmh6elWN8Z>T`{ zowW5Y723t^jokI0Kd`+~TsxI7dhgLCCNHnlK4pZ{8?Vb6qaF&*|1)<_Ir|j3U)dTv zZ~1h$7cu{K_4y|qxik&}3%HM84Z|5U!e%a z#T!+&oR=(Zm>p4kTPH`hEv>}r0p5Rsru#R59F(;IGb!vP5Qo1+!t8>RcjlUcsbXq& zD&+NiICfDmumL7()}%5r3OmZlFl)H9Up@De6G!sZId)XS2<@OddCkoBc^sEJrbS% zdWuy1xCP8~LKiG0D`y;4tOU^1p{^EPfH;#?Ym`)=udqXK|JJD4^N=R_f>WmKy2CVP zR+qc$evm5&m$FUH2+WO+I%YZ7t4q$+&)d}FT<$5jX_efdas>Vbt)yolk(PRULalaQ z%Soq@Lh8FBozYD#zcYxk{PVQFP2S?7bLjX8oc`)RUnCpX*g=B7(stm|ougmAYJv)w zeUr7ZfXex}wqhed6CArQk@q(NkOUq63!=O2k z6IkaL(Dpb{S;3x3_E~}do$0sy>UiF4T;Ky@-RFcuXR|kfH)HWMRWWcjF4+(`YQ`#+ z{2w7JAUL|{R*t{AI&ei!Bo@0an=`!JEbv_Zi+G2>LGxW!+`9VJak^=&AV@~Zkk(1qo+~rf;#*6zGLf{o?AKqNTqP>N*z+cMNB0KR&#WE51QT)GzT z+;$zrH89~s!H0hc~;10%ss&=qiVjFL-E z1{KSF+5L-iOqrHoC}m9prwPFyJeE7ke>DXtx$HiOPyLYk*BAKpFINEeroH4(_7?k_7uU8J+19eOZ!+iLf=qBN)*6^DY>zLXInEZ??w_A(k z-I|+tBXHiz)llN3P@2u2{Sf|RhTCV~&&$!h=^dJ8)2+iA+g1Z8j>1U6Q>rRvl}~Db zEi~L5MXk5Il(~o_-+*yW5}({WmF*oVE4Ixq_DsysUjxveOij`go1Q2wc%KIm>k4%m zR96L6@Kr$thQpEv2dRXBiFaJUv#Fvj2QDhBU;7UXxI=ySrJ}^yLP)kPg~FRexGM_- zoQ$#=ufrK@JVPEIeenJOS9tD49P$O&ixr6jn);ammc&DA;G)fe^Luf(>Y9c(zRwai zw8MyUHdd6Ahl}}roo8F7a}`=YH_9hia{fCS8aaLrAihP^i_UVby+1Vf~;?4#~m@gNQSiV2N*Fw~rC{79_bb3*Y z&5{5j#L?h>7HM^Q6_GyEE-(9!0R{(dV>i-}_xt9HtJd7nf&)%L@7|>A*Ud_*|1aZyX4<6Y2_X)(v)^}F1MBDe16n6>|kWTUume2I?Fj& z(j|ISs*lvVb@XwToB zB2VhE1B%6I0~?$fyXM1*QA%D-+5tSnsG_tJ;#ZdOkUCG{4TGyd)1($-|F*KsVYLBh z+f$wAh1I7%b|$YSz6Pt`SsgQGnA6P_=i`CP0>j88f~|wgpX*K-&SsAK2+TFy}|D zOr;{%THBw4$)_yc$yKkKpH~Jw8F=HqHkjEuV=@#5>q&=OHD4Zammtpf240?}myH&1YJ+fuyj}-53gWos<+Wc%X zO_G<*_rv_~VC)}0n+IW=L+v7Cd`)rMDRj@7mZq$R$Kvla@WcjBKR*kxI0S^i1Y#*w zT^mn`vxk8%(9CMo@#g`==Vx4bKrsEWaW#UrU=pj(eekRx(8c<-MxE?xtuU>vLJHlf zSR6;S?d^-q=ImoPBYgzIACzPHPGT~SBI#kn`X6rl_&dha4>M(J5KId=MV~gcg`Aok zcN)trYs`;~BvyyVw!|}MFl;~4$}4hHcde&xbF3Op3HE;O^Qf@%ZIMti^Y5en$#DEv z=Xjsvd=BtpyL7hrCpTg==j_ElAG5U9KSJ)*(xrnp@~AHw49?tiOa#1Yb3kCGe|9ag zZ+`=37u~(u&dD!kih{4J@j(5>;4-V zaSVh?PUe*`#@Z-1xw0KB+(rO8NDC+{8oB-i#n@x&Q@8G%+%I!b7Fk&{vq5Yw);4K# zAp@p1;eifN6Gnb|yENLKb9dCxTvW$}W#Zs-+OD(g=gj1)sh~oJY_(DDb_Zg2$4G&D z$X%yLPE3rLanp_kF)X;$O9VZ`#cOdQY0YfbPaZEj zJctD`W;yRP>>vCN07|&k*9GfQMapB=Y_QOrV{b{|z@W4mLAa$(+td1ZTd*s^H}utM zA)8!^)l8G5IvoEBJ@!nD-VfRN+y1mI^vN%~r1Q%DL@P7l9P{47)f)d+nap4}n4HrhM_nuZ=`L&;ra#AyK6;%%Z^-&2T8)Ls8rx{^uWIfHmiyu46%|k;l>x01qL%zI+mG ziwMj)w<4V~2V#Af)Ugd)J4r`;b1ahLeGkr7&yn1Lxzt&k!|Pfd5&SqCU}Snz}{TWZCL}nl;V#^8~UxlUp9=7?4vKajqShba8c)k3_Q>y zcrDPisUlJ@yNP?68k#-OBY6c~+e68l(J1nUU^GIQOk`oKevof5r>#f}s>}yo6Rk&8 zQ13>v*b-4oW|`{@R`9TU{jk#J5Qk<7UaQGl_j%lpFTjm+s5rx$u%)+K2hTsAnN2mS zxoO~nnam2~rBGpP(q^kfPzc&~}b`oBngx*^+d|^quocmOzG?mX}3>{?X`$zHeNd zEnFhaV%<|yc~6W-I&CtcUxIG_|twCO)iOFF>o)KKF2B>wg=eTnZ{|#|E!2IQ!_L7sTB+S2m5K_ zvc8`-!0`fY_hWXy0C56NsBhI4pzSL$8V>GC<>CMM6kE?% zht819cwb1!_7npye~J{>Ro0vraH9ULm?!dRmam;|U!LzN@*ExZWfW5Z*cH^ay7-+~U( zWXtgz7q)(@FM3QR<7V0&0Xy&Te4BV!Z>vEZL8yhcb|0lPJm$EyZ^}X3PEXoW70rZq?``@q7gv~(Rq2L9dDnoPbu|>~5r#^K# zjR>;ewAC6s@u8WUBKw54w$}GbC7%dt17icvlQ)eIvHAW#QN1phY@Ql)HMwon+eTS1N0MqR81XmSgIebs1Mtgktd}@=_uDaxN ze@~tZbfXQy3JuIzkNq*NbR(!tz6&J6xvH&Lb|Ym22KlIzr`P=1g(!i7&Cg z>xOjy*()b$`8JIL&$#wOlCHNR-klo&pD``2&2L?aQ7hsxB^JJ(XsZ#f=s6MW0`ab_ zCkFsOy+E-d(98&`%O0SL0FjM_Td`8%->47vTsqO0{0w{d&E%tf;Y%X`1nJnKO$V{R zbZM!mV_LED_hgKpOB_con{gXgc3rahXHUew&*A)*{GRBkiB*;OI*XyGXY(aF zs)*N=J4A$e1aRl+SCQDqo?exs3&%ZkwP=!%x_Dn|_v}CRMaFwkb;DVB)1O-Ko;)dO z77*N8Xqi>d3t^=MyK>v2p^I!^;z+jqo}BX=CZ zmVGwEv_-s_9JN?>6cOM`$6z_2Pvmt|aaB2nT|0U3L7cD|)}g~H7fkb|g`iFe9@IRj zYxp-<8agLHrr4bx@kq@(e4ksH#PL*|@Y6P4fUn?~=T#iR;&|T8W1&Om_$&{VvczmH zH}`!`s}BruV1=?Qp+*;B&ssNgj;O4i)=yTW{g$8)d~yCbnM~tgb+I_hCq3!|%qONR z^4+aPNk&473XBvowohzKltE`sL7{g?KdwPxEiZlhd0MYGJ1f%LLVUwFsmmjt+CnV7 z?@rEc$i}+Tw79}ft3?kB7F>spc#emoVChSMJXWK@6=YaP-H}@hIBxHAgXDZ)u*%%( zs+C3{WpMr_R#MHg5-jhMuI;4#W6bQ*+=}cR@x>=sY4KcOeXk-bvQ##s$txHv4}ao* zuGdke9D95}yAf2h$fo8*i<^?28_rX*T_*@Bby)SETs3pe?ZO>e2qJYr0gqURLs3i- zlkc)!-2~lyHH-M?+Go@xp}~DvZpSs!ZO2wlae`1AF4kbzbGvG#rBJ=MxH9)4OTXri zO%w9l_f#;GecR`e9`Z{cH13t6V6@MvaXq;U@zMp#zh53S+f<<czcZTOx=Nt7vfs^ajiHdR~ZnhNnles#o#;% z#O5p;3Z)$oApH3vBY)1luBB;*r#Z4K_A_qrdDu%{ieYfnPlvcDT|Cgkhts1d%anRt zeU@c$RK-*#!*6W7==qa8s9|{_k7|b*RHC-5DI~y3VpS7>J@k$IaIG~r;Rm1Z46AcZ z@7b}_q40J~$`t2$@>t^W{U)QCGX;0GAv?FhxYHeK8-OsYfWDwWibK;jB(Gi2H-W-p z$c=}{g$&CdXQ_JGjUS4JQ-*Zsxbkq((Cjjl&vw1OdwpMiLx}9$EEB;G?a4n4P8aPv zOldQiDsrmEJB?Zei0xfbnnGS%%IYL{W!;QCY7m;D_6(A1uol5fZ^&(;0Qb+eImuU_P}M&c1TWBT4AA-RdRK@qI&Yx>AZpH>h>zOrWrhxqPGK*QOlisR1v z^|+bmz?xUt!<1%^-#`IQg|*p5S7nfq!x$;%Rr$u8S%AngHEC ztp6hTAjx$wWA+>^2PLduvfpHE6jZSw4OZp4p;s&ikMb#c8S zob3Srj^(o|*BWz%iI^P0l95d{3#n&Dbc-VkXU!>5a&Sxa_n(44j|CqwY#MWzMb;ES zRKBjaA6j$NK^lXP{j^Eg@3<>huit+7;_Ic$|NkJCsnx!~J#SdIjG!p~HPGKYyvuz1B%YJ)WHC{Pysv*3zi6QYkk!=0; zaB}pcM5j1|_~1esnw05T8jm=-aOmZ(L@X|D`vXMLNbLD3MF9dU^3A?{>Hl8;cLx6N z4E%p~2EMu-|9-rPwo<^cknY7gJysg#zo-%7f>tviaA6j3I@`&`d z4M17iH9u7H`C*fw%>V$od1g%kIUC9(s&|-#Dw-+3)dr10+;E9wL)ZCqne!=^2$QLZ z&8W^{ib-#l%y5qTC=Bq#Uhe2MvGs=uw;bF8YrpJ6Jf+x#rBpe|`Tdh5t%kk=MjGva zrYahv=i5QPk?X+5XTA;g{-xY9zkd7RyCR>oEP{_J*~tJqP(A3SSPo{0oxEP5VFw(_9Fxt@_psGVP!!daDPJ0}i4UMV&MA6wb`Cj&*1 z;@3(wy^B|a27f(8dJL9>@=5eU%oPI$o5zm^U!T_F?R4q_k?FS6zclMqklD6~k~I3l z*|jy3q64yX#-dk)&D_VK&3`^fL6i$}fx)NHL*KQUW8ypekkZ7ik}lzd!3Q1vklDxR zC)mPqUv6 z+6>}Wf_Ae?OU6Es67IlBp;nTkzS5u>1SQmpSvU6SIy3fJaH-pwYcW24K^9Ut%rW-) z+g`WxU=92wg^Tb>31*XGx>PzZz1fJco2`_Nk=gd=s@vJ3v7J{z+0DD(sl(08*11go zKWu#mP*XwouMJTVP!UmDR79jBy#^8KO-kqx5$R2&gdPP1q)P9-Cy)Trt5TH`q=e9s z8X$y7N$APL?|c6@@6EiKOzzz~xw~ig{C;O=cTdi#{)P`7vz^(Yv72Fx@-iE7mRTxz zXl-{j9Z~Uc4E%h?wZ-%REHV?@>|Jj`u3~S{T~3)I{q>eR@R*Yq>yPzRnNl08jYjWw zKWp*F$CG~U7jA7mP?@^^Ew&~QGFWZ4on_r8AdNz_{grHSUsJ0;nM~Yz1@dZ6vCDb~ z$r2rQm9fcT`}RI3J78YcpKtx0jI(91Tor}e8-KfWG6c4^EV5Po=ZTE9ZNglDLc-kC zUFSQ18{%w8&Z!VL*QzmIrb)}>D(=ZA<)-K|VF10j4Ug};PZs5m$<5!{X{5&3&r?Fm zZ1%iqQ@Jt~J?J0z>{;5A}@CCXa}3)H1N^=#on{lsnfbT=8h^k?LV|zrMpGTiFhUN&b(o5 zgsBTg&ggBaD{nR2J7qGyMSUwmK6Uakl)u{SUdpswYSOerYRYu_fT&^efCfHnA!T}- zO9S6NRP62VUvA-&I-M_=GX20UX<99?*!zfXZUXGscUC-J51@Nq7#Eh7GjWSyr&P>) z?-6dRnNazyk^xaQCj)itqos_q--K7mlo(E~QiCRw$9T3{6?vU8gEv}~X@^Gfx{Th0 zct+Bnr5iH*d+IIL%S7+dG0Y4i71{6&+%m82L-6xoU&i5ov$)n+lLK1XEbHLEbzB<) zVQNhx+w}tmiR#0xGp_m}us?sLWtJnPWu%)?u2Q-Khte`9v(o;~?%CPz-LvI(j#KY$ ziff-HT)OaQAr&j!@I{}$-*iJ91p9>(-v+sg)bzUe2|zNZd*te|-59(df2P5>`^;8J zI|jd!+wRi9w_Q!)BJtXf?oyCNQz_+=>QHfgUuOTeMC>ZZKK5G|5nFg4Cv(C!El>mSHnYjw_#c5 z(X)XGK5!1W<{$_Y%Ic(XV_GS2TYiXiCGv&=oJX&83I|H%bPU23Gz=O>c_FbSA>Apt`1}a=5ha5Ip>)<6E|Mlpd86zcswyhGi@4+~{aD zkvMF-4hbh;4tmxC_X5?9z#W2~oq;%`tv00Iz?TDBLCPAoSf`n=prB~f$Zh1nqih0$ zI5j%xqIt|XooTU@IGX>NsL2jgd$YY?M0UK2kLEiI#8$yA{KRM%?*(*tx+cGW-M+(A z;rRpo`RjW?F-a?6MeozW zN^Jd%)$kG4m0ylWTqq7BtX535_Q2GZ2e&xC)1*nCZj)1XgEhy@b&5^-{KUs8HpVl)9VF$^d35vf&_r0 z*6=XvQz-$s#sE8-$){BWkR}S4t~ogSGpLe`^QD}j+`}DMZ>Ra!M*Gfp$fFj%MxZ5u zLiC0xS@%v^(6VQ8d6sWZiX~`!&_Wu>5AQI|bqcT)v9c_6SA3JR!iwzW@28XPI2y-$ zV?$5;MYl7B0Ka|gI|E)VSIh1Faq7ixGm*C3Ru5%2KewF_2CXmcJ!yclOE~1*O*7km z!>hDxAXdBUH8W*d-|Ne;ec)(L>YP7wUt>&M!*LCre^|KA<1qAUF`VnMl3@+cJmXK| znv^HpoQ0OG$uS>Lt)all_a}U|KDS{P(#^8Lxh+oz6~*Xqvn^!Rn8Nd;(McE8$rK$XJGxTI>;CY-fu8 zpDJ>FT2Vw8w395om#=mZ7g*P!mV#4iBlEmu+YXSoe{fbnAp{a&WI`^GpBg;tAE3w_ zcjdfy&r7Ot#cfEW+49d+5)i1oe3(jdT}bEBPLo+U;7(k7Ac#L}9~^6Z(|LxPm9Vlz zxUUxZ4i))!75NT?Hk~C_Ja=)83i5drmtV+IC-_ zJ(Y5t+k}>fPzBNZG;Gg7b9)~Q69S>qIAmHC6xHh38L&hgGXd9a!_OQ~n#uOFw~RYH zF0$uBwz4H0=9|3;#3qa7ShD7i~C{l9IN=)2pdvo+?dw2Mp`rFedfwxL` zCXZy=k54)6bH?iqPUg}}wbCfxguTJ<2oDaZPg2YO}fuwoJStYb zQlD*>FKb~O^Te<#Hpwd${k(h@JPRH-r7ObcWXClvN{VY zz7OJBGKW3<oWGE$A?osR4b6GH2c_7QfI@u4yH^4LMpZ`v& z9a=!NV-#%RlW!RGectCb0=FV9sRArS)-TQKH6}8Mr9WL#f^=g&Wdq< zwmD|SGVu!vxTEqcbAnH2lR1yz#K)TvdtNW3Y*?Dzppq|V z&u3rMh7{^ZMJ-6%!F>edCiv?YZ`S^63e$K|DK=?MaEun*Atq7!sx)r}C$Xt$l(x)2 zs;+@aPN|rHH;CI=IQ+pQb^gM#+7?Wg2|QS_zngOf5Vf6*+2D$r)6tp=P>=7i;Z7y@ zpa<{_r=FT>n~dP+8{j__Z-;xR8}`5kbaM0!%NqJvvAnky+SHI;9sAFpoYDZgC|8w^ zj>SBi+Ia?UWVzktT@U4C;!};vV5qY_jpBe+NWz{#m8{BxcwcQqm#vJ-NVh za-8aJf^b7)+)Va}4wecCK}@DT%xYwJG^@4s4wl6N3`7wU0b!Yv=bk&R1x8^kNXNY} z7AH`nnywhk2+g!XdONp0hKDH=VeLF}1Zg>)I@t5%fWSr*q+b#??0sTs20B8$f=*&i zA}sS~W^Jrl9UY^WStIxB2V#p)mr@s>>Wjf1F;d{~_4B0-i~}3hjEIgeddSkVN#)+F z&0MoZFjI7C0RasxHxw&LV5!xCsrZW9=NcGCojVMoKSl<=I@wdf4@2#t22so)HNo&q zM|9=mmM*P&N4+kXa$EzLRw5tyIa3r=dJNLkY1}Cnw`oIolsFn7BmER{M*NNjHXY@} za;xOu@IDvJvVje_al>G{f#|b3m%prQ&C>+#EA&gUD~(kVgWpa*bZsoxv*3A~iYko^ z(3#QIax~^_MH1oKtL)=VMzoHvdjfB{_9s`qlpl95mqsJsk}H<=T>6d^krY{Bn&PA7XbChKApo<^J zX1NN33YqnGM#i*0Z@#ut(URDJS<;qG7M5lTqY>r{xvqMk%1!-|=VLKO|I~IGvSHh{ zsheY6k|~R>P&Qbqo^IdNyIpO%@Wm9|I#KEf%8dl7;q)sVH93dJjt$~=vnq(?wqgZ$ z7;1s%4Qh|Utu_#y-6rkzVI!y3}1E*pBFQ_|JoEBT^`%_ITuWD zoD8F5tT#S^|AUT20rC7t>KH$RO7*5!1g&%Z2%!D-{|#?a@j=O^Vf>Vz8|(@`q1sHcCP~naSiacc9YvESIcg31_gH?+8kAYXLp1&m9MRK8=mKT% zM7y^W7}O9MpmYMu7_U!;;8f7o=^rI35T390u{quhV z7)Afw0j5oar*Veg&vn!{Jbv`F>G5cVksJ?cT2;SfIvLJ0dd~k<#FufR^r&c=0wct~ zh})>%6kLks85Vr3mE&j#qKz-nP;!nCP5%#cP9FaU>IW(ro*?9=_p6Na@dP*oz_d(c zIJ6>Rx@|n0bE^7zrsHMm(~J(VbD3EqM5kbCwD6(>uiQ<;Rp>|%?04K_tqhp{b2B=z z>oas>=frASkRE?mc2%rwsUG0?Z^TdN#QrOK1HIV45r@!;arb-V^%kPFzWtV-Dh{I7zO zkM+puWSqqRri;RV=`vgNk1oEd|D_AraK^}jX9@D(_uEZojM#X#tp59ci|&jOzMtrS zUOETc+&Rtuu@x}#kFByWJp3Qq0b?XkYNS1y^dIYz`5(5jV@RMj=GWCa=kT{^nyw85 z!H*606VICfS@RrmyMT$$hHYKI|7_^wIaAJQKz&|L69dg(cZiAHsz&^GJ$K>DU0PMf1uj}O}Ed)a`_hM=1sIvIO{N7B(9sS|5!*?N|i zz|yLBM97)%`&`ytJgZ{48)%U=S%$0hJWG(oVN5pLE+o$VWGpFH9-Z{f2^%n$*R{Mzf76Q&b4dGloiALWpm zS;AroI%pna{q3wFw`k{2F?pw)xq-UZP8!$LEid4a!*aNAuSt73miMe-p~!t%jJz|) z+;BQbNn3EtGT8vgm$)nac|Pp01>27UPe>B|DAx188y^YHFU|%PLS>4>~#+0OBINsZ-|?~|qO7NwLX8)l=cy+-!4 z!~$qQ%=u#Q&^AWJpN^d}EJhe@90~k+cxV|TXF=}!*IU5ZvSEz=TW_{xi;W^_uv|}nx~z&N{S$|* zKskIDgQ4!F5u>A#wJq<}`ZSa3FnbaY-5QfT%FElq8`@{xy1$U;zEnxWNh9)Iv+5`LKQQ;jOvl5ES zfGGKwFh60_n_q-z`Ro4Z-ac?c?{*76!`NMCVVMxEvuev0TcZdE0}e-3+A<)zu-PEo z(Wnw;@|iaDek${rq~U=5s_tzb5GVWX4Sfw3;~2blE@v zHv7)It4l;5xsIKbH)92Ng4mtU-J7*e>)#}{TI@kWhW5%l#vjZQMXk(@IvDGgsjl5tMUa-)Emzv4UQrG|) zvl$2)7tr?RfmxrpU*OjV6GywJud$TiHw@n8Bt;OnQA!HW>cpEw<3bmB5U9@Nr1U_! zfF!7MB1U4$j7PI7IN!ZK*pMStpg?i+fN6~AY7m%^NdHnZag+R-@J-&S{CGT%S@$_$W6~gI zQ*V22I>+%t(_oe5c|cczG3hRws~uS3>hKoL>D$d(Htegy@fzkO&4$Q5q(uq;hsd1( zxBf$^%?YW13_jZmE#qB$nqCIR#Wa!r%e z{Al+x#^+%N3BVaSrbf+A{p9k2C*zI17>jaDp%U%cci|j^fpJ`$1#;Lv4e^5mvmuv{ zvnC*kft60y__#^g#9?bER)|bOqb1ok|Kj%_YwWs;58sk zIBIO!6wC0Vq(uuCsCR-S#5sypDVUvRVIFUm z{|%W=rokiPJS$+!iEk3m%41z#;Uo zY!Q38AW{e;nFrcsl@glv>S#fw&F71P6qpX<>Fb5hJZqOKjcnlUO2>4%Ru0p4$z`L- zMj&q7OSZV0eG9{{>~H%GekeUEG3qg|u+{~^1QZ)6uNM4a+I3~xXrywojDDPv8js?U zL0$jYfpuZz&(VWMb-lU1(@AZ#u-QW9mjTZTDN~htL^w=;@A({4C1GrLbsEVy4Ph+R zGk^zqcuIE2-0%V#z}h`T42lp6>6VopsyMU4K5jFwa!W?9zFC?A4pB`=ihA#imksnaTqUU4K{OdPvdk?=N#bY27O zDrhh0%Up$x!nX;yG^m3av>je2$fIUcR$uCs1>0H@^KL_^@jF&%#QB?aI9ZNVmrEuW zOnc$A=F88F(qSgF>(h)#C*1^?Q6swMjE|69iH)gH_E z=nietTsBB`0IFhS(D}`vTxQ^_4u1pVBv+#l9uv&3`)72KMr!@=eo!(@mk3jvJ8}*7>GxUDl}m9W-UiFn0*OEsoSgQ_`_@5UN3^vizB?l|a z-|tm3@UBc9UDS+zAIuJojMe4LhV{Ws(eSJ2vJcrM%ODq+KC$egSV6_BGlYRVk1i1o zJCbGxAu~WNn|gt;Q_nf1BdE|3RDWJ_d>sSZrSi+#%_=9t?j|E@l66e%Hl9aWl)UVa zQU;kc$0~_YRA=<7nKpc3{&f@OH5y)nFs&ZMhrWP%s5~)uD!Cq)Qz&iStDsUf)nnyRaL{RhBr=PQ!ZR`R+^mkPWlJ zx7}I9f+kGI z={jOZLu^-)H1Ljr0I{-K7SGI}D8GHPxzdGvo8#<>vg3Vhwey)&g`5f!9<*1#Ap$HL z)=UmsR@xr*YBS5-qxRbxtZS=3n=NPg8zhFy15FEmTMy+zT2BYEDJWF8OO8-`TIOF`otVrM9oM}gwY_goozGM4LUrEm z*6Zv82qx|eyF1%csgl@^^4&TYGW5g_ATgEhe{~~@DJ#>DwA4i}f0|2%+F#wvo%-ja zMk#G1<1*=w!@^SoqB2?MrH0n1zEc{HrxyAb1T#*NH_BV#t^w)nUJ+-*K)a>A(RRwv zum^d)jUXXMD02(S+3Rrk{w^Uq4BWj1bo-w}#Q*pDRF#>6d`0d4`2TwR9XdvtT#&d% zCb)5JF6@gP?hX*PZT`Pra};1OAMY=dFciIn3vXA9NX`$3qXyA^%f=y-|Et0POtagu zAenaX0@(r5gKrTRx7$?Fv1nWnY{yhPF3czk>}Bu2*rq;MNQVqxN6(as*Apu z=o!nllgaVEgA>Ib4kNrwDgJDR-oNDO@L9K2?yEZUl$zsTItwO$J<-W>ZfwWcPYp&E zjpcSLpK+EgqylMzXN!Z)JR=lL>iHdYB*EW*Gjeimj!ObUR>-9gzyCIqE{xP}8MjE2 zu6lSvOhEH)``bKxvXjM*IRcwQ{=j)9@RaXZtxWCR2|2$t7D3nfoc#mRn#KG)!^FF7 z$&=N~3+pF4r$#{-)&~5#ekDYpqV?|(D#W8XcS>~B?=YS%&SF1GCfDyMkDC13TgU9Z zradvKLZ#ue9N_H7#kkqmx&f!PJ(7w~G zVmLg%e+Z<%DeFP_BIgov(AMbYd%92=;_5O@K>TbjmyrPYObxFMf*Ji9BnYIu!Px_4 z0rRF0Cb5_?mQ?5*)kKXB`2!X>p9{PtIu;#j>EYg|01XT>(+HZT)(M49lJITgr&69M-`f4M%6GKo0>-uF`dbjvbV_#vwTx_DT2oOb7`DM(?OELt|Ta zrfmRsbHwT^p9NVFBg0!}Y8H61m(|H*R*$%Bi?=B=OuTdfGVa8r+694YACBadE7KEf@N6xCwyv)}TX4z~PlcG;+DJN%&Qv{boQhK~Ebo!qtjuv63F zVi6B+^2<5!ClJ2Xtna4FQP$;2bu6itJ1H%=)&`@y1fN|3bm45j(oXKI`w?a5Ce%a+!*Mf6hPTANwbA*#;G;t`g$>gZQUNSq{j zom<}TxVE&uoAqzF3behJXpFImvjHBiW)7nQoBYRy4xFRpoR?+f9el+JMk>$*83QQA z#);Hn4f?BivSkGAZ7qkkyY{qmjtSP6n0w5NK$Oi#NZY;EfFp;_!M?5_FC1K6{_h5c zvfsVk9@zzPme0eYF$np+xtur^fPYKg`gDUWW#>;RlKg8#C#c@TMPp~$BPSxj&B4Bo zP!rM~uu&VBV#j_<6hGj<>&83V=)7MiXtb7fR&(%Y7jocsxQ@QOpxH6u_2XOI=d1*e z{YYwx_j~UH`eANa$jNlU*l^2Ma!jDc!essFM>e&tQesZ)JL?lgv+b!<)UajHeinWE z>|N~93O%%OW2)3LvSqoNv!kg)%&)(7yL5XJJ0ws3vjiE1zIJgHZM(e;E6-J>1~RGR0VLufIo+oNnBhkiyLG)s$|B(RAg?4F|5& zb0UwF`=RY`AgH+cSs(Lm|4i*55B+Q`0_IeD+UU9_7Ef=|F-<gXT_H1iMlj^Kp{K4q7KCt`=^fpflA*G#LEn?$~Ui8F1WU? zB*-tc2uYPV*|;wPP#D@b%_z$-Tem@Vuxl`PW0rz*Ra z9nBpzLCXcM+X`V>Kv2uGHu77y5#r`)P<;!*QQ*q53@EFKYHZ#Zf~(c&Id!L zxMTRo4!$)D>#w!@l7;lf8wJHv=0^{B zVyE43J-*lHm}Wb6NO=%K8~5&C1hvlK`Eg0w0wFr+uy9+%6l=~Bggh8ILr^R{`=bCT z;w&nI!mp^GMrz z!kmeI8wU-=r?(!2D+QW)8y=48gv6Qu&EN6WS`Dsi!?sEhwgcxgJ#Z;n=cyk+A~W=D z4nHyyE zMh|Q&Bt>GYW!0`}BZNZl5534}H(E*C)!5?y9s+?Jy!g-epHF|-%`YjiKxmk+Z8K;6 zk(Uzj=oQ`@^l)xlIQFQl(?@#|njKTO=0NCd<>bi~b5~sJy`nt$T@2r&w0K#rOjvmh zWbdi}(I@|vfC-!xq!kStr!0b8q~$%mD*<+YTO9Rdr}aHm#ckakFL6mc{dp|r|7+kn zFDL1tyH0~C8^=-8j8!+jE{=niL*n@l5BTUaZcx>e=LG64k9p;5byuQrUq8My^;p`! zmM8N0;ltNAO1aZMrNE9axyp@S3Zu0F?|-roNSy`rLux^K@5~6SG_QEivIR?IzC8Vpa{SJ>8|O5nUeOxkv$q>oZr>oWfWc zQ!TvjZtJPq-_Zc+J!59LxS|!el=Sk~grxp#=%pK*KkLyGi{EC`zFh8FrM~bh6|dvs zRB3;}(DV0_Li|d5-StZVRj#d$0(!H*5pFd8&2si)#_0j=KC3eW7b`z(^>h1L=wF}n zOo&Ms5Pp1X4Rxr8gV(Zh$hXKrK&0F5Ubk?mo8t3oD#uY!<1k*Qd6CNB?mZYVAj5k?o zs8EesR{zDG-v0Wg<4F8K|APb{-IZGmrEUxbxrujlCtCD7j9p7^V>(Jdd|WJT{qB*6 z^R6rm6nU=(j_><%A;Q-h+E%#ux?Jr~5^8tqb{yYGjIzQn^v>Ne6F%$So->b7WT*cF z`J2yt0FS%e3771kajz~}9ptkL4Tt9gk&efPI3Znd=Bk-?OWUED8SeL0-bzIYjaxQP zJ;YHSG|xJC6fb(RaEw7juc~MJACGw`J!Ns}?H$VNE_r?rZX4R=k&xE3uD2^_@J`nJ zP7xs{g)uCDX9X5)69;Ij!e=4U+pvOFtApPs3<@pDE4*fn94Q14SUzC%OD*n~+@Qy1x z+-{YP*?b+~f)Lr#{tUn?)pW?%kJV4gJG=~Br%3wd+GHOa-^eGuiVF3J!bw57W)r=Z z^~%pcAL!R-1

JS%QaGj*1T*5^n7)0f+vsx_lTUt|xXTx5u88rm_z0UAuiiW6p9K zRhddRpgZNo3-}_CTK`TGINW726!@G!J5ZitBb}GxdbQ&F`(PVByV21ge|75ceU8yW zS3xB`+c-hu%iN@ghLnio0ffx_%69Aba@2~&yBBK7v+up#X7@B{>9QVo(Mc;t#zstr z#x7}I?A-u+Er*4kS#t1-ADsP0?pnB`ZmlQoO$$k?yz5c6;Cl;EXG z77@WLllaRm6q$J%&6+)F^uvZ%j#!lIBkrrprQ6Sm9U4cK?KE~ZkmI8;ow}d&-rS~r z61ce7>lQ41OY~9${Q4;u6Og(r_Q_QiM()q=t*yd-$e=>kG%Hd|#2HeeKc%P4P2OwW z^Oi45QpktByAC&R{n8@hd^hx8R<_pMZ8YVt+Tw; zikhXMz0LSZEqeqjH}3iF7BcGw9oPh9Cc2oyY^V z)>F+Hv8hxz;1^C8x-06q9WOL*HNq~g+Q6(>_kIcY*~#(N&}VtLb-bQ9Q094YbRSti zbus+nu$b4Ny5NvmPIY5t1&rf?!@G`d!&V!7o3+4^qBdi3*hZNb@-{)R3g-=apCBYGT#mOrImxB;*G zWAN_dn2e@{{K(Dg8gomTH)+Jm!K;>j#kV8`Ui@0R7g^iXu~?FSQy%)nem;L+?0|Pj zO~)JdM2usH_j9TV&d6IY=*#QWGhk1!i19~%mZLAu;u*>bX_gg9TdeYqH=MtO+q%7c z^cCaIq>5=t;0$24f53c+^9f;jC%pvW!NJ#OF>*^ItRM66Y&wM4@(4JMT^E15)89m`*$exqll~wRBdJRadGK>hG_YCo8$%2%DWLI_xKT{ zZXec!F3WdxxtDX0q0*da=7?^OydyFht~2pUHthG36^)Gl;N?%%)ub^Kl_W6<^&P*> z%ulnL%(Du=-Fs&0`2_Q%6&GD18(D5lT$zzpB>Z?#RwPusDhNked`Z{;`t9-DjKk<( z`QkhMH!T~-jMOh(_)ZU?(fZ7{&ITVg&zcc_KkI32Sm?M$!7=}Wv7ZA|C9I#3fZW;lLTYT^3q4_7mA{w3PaWaatW zlrN4Ix1`45BfgaY_kD&@TmtEXqx(B&?K_y4P^PhV-zRT$&ieY@`=S*}A1#dqr{3W< z2CFymuq%7U_dJYUHII3$-S_sVl04x?pqSzAn?@^6)w`x;kBm0b0zIlQ5Pha>-m6X# z?}KR_9%arTl76)O)V@8KLY7wAiO&I^h437m?YiEJ4AHJ->1D>gEHtM;i zVhiiNLx)tneKAmzGyBR%1ui!Uw2#^kEW>ZiAN5`6-TblIHe9>uEU&tdzMrnC+>+E) zY}UKKKlbll3OLH780l~9ZNM+ca>;r;xu8T&CAq^dOQi<8tL9#JlCjx(z;-kKk4H7E zI6nR9?8i85KPSJX4(3`BZ_N^(t5-`9n<5P-xQc^YOV0q;^{$C*aOGNEOuogk7U0W& z`S97Ul;zIpZgilBLncbm(C% z*UJdBRQR>#H;-Ph;{%4uF^y~EO0FM@zIHvjk$vGv&WDM?xa-rMRJG1>f~J13sy&0Q zfPe7oHPVmi0zaeg^^yvRO-7Ycs-~=qfsxOJVBJl6oy1G}QcBvL3Xa_y&S}#{&%+@x zYjjtHe`s8#zQY~k5yKMxih;-Y-je6rWTxA3+KlENWjp?iULF}g^iLMc6xOn4&vSeS zKYqr1@5#*s+B~-oTjtf*t`I^|3|8=FT;T^l7nx5T16g-^UCQ=C>Qq@>Zp+G7FBv+R zzq0ufdR;u&5pluhTh;)?+-J-1{^NO{zoE33lBB+dF4{+k4m3S4m0#y!`W>I+()tXca3vic*0>A@ zxSd{g@`r7{4z_G{cUHM;6o#v^wyjZw;+s4DpN9MuaI2E5!gZ41R&%>gRJZQSK1T|c z3%xJiZkGIHmWRP@;+dEBf3JU|-L+bLw8Lw2Q-8$k;x&5P>c`|4IN zS}_|g`HrQ$#*b`jIzVid!FE-@(@%rGrmHt9d;dB;9(2F{tU*My zEU4&G!CPrNe$@eXm2atI$#=|pt?up->8+;TjLG|^*!d^n5-uukQ1)9cRC4E$KUIoW{{{t_G1WM4a@X|4+~wbiTk|MljUNr=`(e0@$@ zS5dIzymb|BJ!m=KjSQA7mb;lL^YGm0-Hm*d^;I`j2o}+iFE!JBE!K^p?1N-psH&BE zLi|kNsM`kB`Uf-RA;&t2kBd3wAo-yS=~Sz^(X0`}Twm?JG0}awoupc**$ujG5taGK zD(7+IF8xtK!S0v+PpSes%QvUq*3k@^+%&0K{=P1f8c;`hAmbzTZfWb+HSniu&kPp3 z3;9>TwyFs~G&1l5zl`hkSSzbaLsZZKFO@#T77S?cvNTzmomkvlyXU_AxILzK27W_T zN2ttUcc-Ahl>2q+^7nhyApzGPwnmX9o7$OQ^)7{XQP$ewC~+wq%l2!bWh<2UPm^eb;a@${=^YRTV{TGez5(=(wExWW}UF#;)t! zbZXtAxzDq})Uf9d5Gj4lL`XYQ!tGUK5~u-G%D!1$bhYAaF3-=xg};XLhpdf&2uxQh zW5gzsH0{|?4SV+JE5NgG5q;Wi9z;ozgZ1XCM~07pyKNZ%%g05ud9>UtcB*gL%<-(E zY>k<&sH3sid$+#s`*I2l75!D30lyN`+-dM{vg2goWsHj+79KZ1D(ZC3|Jty;aZ|oU z{#M|f8Hc1$Dv1X(ig1cIf(7gRY1Qm6vWd@i;x0E;ba>xSpGjehU_b+`6hsx%`K<%i zeP#1dM?E|DOAMUBDujxY$2@_iU^iSOTx{h0Z#kSg0yDzFSMJ$PS%3YzqCsfRqg&Lx zp!YP;Nx@QpdEJ(o+ktAI>ZN*S?vvQ)glNULoJHWe>j%5}!aQ}Y3m+R)(t>Mzsf$dn zY+rjg_-jbEjB8R!nY|LczW#8$x0<9qG)9UDjpktB2`t+PFO&~HNt)XIQ(4tTjvp?c z#;5&o3P_(GzcXJ~(C3!jo7Wncd@&Bd`C;}igTqX+MYdc%W!was=k0u2-(i%obg*7v?cw=5tE6hto4&Etp51}YP~f*DPUl$kJh52s&vinP;I0Na1}A$ zDHmh4VlliXK|zLl@fN&9X$MAq8wgd0z1JQ5UOqS^ZgqD6JnQt7^4Uh6kKe>{xc!eI z+M7_KE+M}qe>ThY^+^Or6JQZPQ zkN(=A^j>`R*;h#+h-?4Bjrn&-U`DKI`m|`=Htdh0gOjnL_YG>>7FCN6+)T{L&PD}~ ze9#Lt(U4cgG*rJG!OD(v8GRU9C~CdhN+tqz&A4s3t3~NEuauYo2Y^uTKc_Dr(O7X- zXA`E3>7p|99LM-uj7T~-j=6UA=&9BE9Wl~`Mf`c(Q>W>B;o@+K*#qmPC)9Nq$6L3v zBu}Ft3V`3h#Q4Wm1wA2AtBYHtGSqr?Nh*x*LH3Uz29@r|tb{`Pq0l2M(h`ls zSCkX-K#{DG#dOzrL?;se(@e|#bKkN-jfoX6I8jGdbE)bHR|r0qm_cn%=P3Qwe4))5 z-~XsvYNqcR6Idh<+#2O$1=&5ca?u-OCAPTOVA~>?Dn~Tz9r_9;3AMsZ{1dK&ZF{r>Vu@N_adS?(+^)&6*zI?%jzV# zflw>mea|AtgbfaM`Gjtf($>C!+fEmtbI&g?#<|E4wclEi_cC5F;ku9VBH+VB+qpl1 zkDE8^nKm|Wn?Kw))5X@`O^FK~iDFT+T74@Ccyq?<)b`6nJwd2zSHkhbUGr-ruM}Q# zcpk7Ejn6;En7HdGZVpJb@9^Etha5Jd=})hsudkIY-oGw;$cW(B5uF;01qSB)z6`Hz zOS-V&Y#>gKc#%+SW9giCPxL4cFYu-g+lWj{S{dZn$rM(4t@F=i_wOW!~30Lt^vph##&NA`!GzcDXB{x4!#B ztpoRx>1oxpR|K1&zj``fbcN#0k+7;+0--;M%D_ zDdHaCoW_-wDv+iKJVGSr_a*l8ns))&jF(wrE)WNaEf3TM&s|Ya+m=B~B(Zv{;BD!A z6B#B>Ox7Q zc#HUX2^PBT=LmwCI#F-hAQ?4emG<$wHNI^RFkf`JYBO{H)HSwdN(}!dZ2-_qPW3e(MJQw z$v1<~R$ZQ*AFI9AmEFLrU+#AVN3wh^GB8TL88DW2Ax^pQwd^pT>tVHdz{eK~s*i*8 z)>Ti+aQw;oOnrs{Zi$R91=XLg{WMqVj)?oT`gbZd%8K?*jLvpLU@ovGksl{o#|M_d z4n05FMHQnFns0V*Xw_!#XD7lPvQ$bN%s;+Out*Zv1sdzD$?Y%F%&BuCW?k2%@ZRC< zcvDr5fT`^-l*crT)od4oo3wG2kKqduU%%{32+Ftx-wmeyRy-e)kT7iP-V9lcO(}IaSrf=T&rGX07tdABADbIRV zC%J7tPYSby?>=tvV-V5$F8r9kDT1%&2aKPU`uG z{;8jDu``Z*4c%ILap@i6`!Q$dv+yQTnUZ<7J$hw(T}7**W6}; z^*(4)zcLf0L1LTncrbh2Lvgbu>P@3p$6?H{P(-1_*K20^LQPWJ?2E2^UF`F3%b1nl=16DmbTgL7TNf{$rF3Ih`6cM zP?^)(p0>W}RF3h^IBgWToH^XCu zNwuqbu-f9xlt|sm(X#&qBS7505!PFJ<5bjYW4;vwvWcK4GEW6O;>*rJVmpUBv>jsZwCEAj{A`NS{MnhMTu3M!T+Pe$jDFMAj5Am&9IsMFIZj?lqgg#oqjj=y zpvt$EqHa1=;}Ch#<3u%%;)8Li;8$KgA;!`gAd;>ILcO!ag96S22kt4!0Jb%DhgjR+ zhL9ou=Kr8UR%h4tJZl%{il{GA-}K|5owDujhnauZv_Y%C?@?XmXmtiU4Y_*fZxeRYev?_{1KZpVX6+9rh+4 z@6i0^msT%T>$!*yD14pPDAy`Uck))5J30B~*fzo?_}PzCkD;B^K1VE_*c3ZmZ)DNg zE$|@N_T4U!XN}8H)DShci}Yl+$XGuh2tC@scO_@vF!e^?)>it~NNq6I4uyA#bInhR zHP?|;E_+;8=%9dWRtjUhqNCdMMdohyd95TFVF0WZxo%l%5Srs-2tFK_a+Q&p>~dn; ziti=Vk%d$zVdwZfTEk?0j0nnUzq4TTyL`@8YcD`7$8+7CT~3Wr|73R`haN{`G#?*Mmn2G zL|nr)R1Cj3sFZZZe$_$>qsgi8wN^WXwr1scS&X)QRJ>|N0A4lC0b%Yu=$14;{-$`q z5TzUBJ+h#M=vE!q%WX#G!Y(+WyUsXjXf|(89QG&V-KC60-es)nG3tZWB`WhM26vvT zK(D5^_Hiz5y34Rtp%Scg!OkN>7p`uc+y@;|nZp{bcNt5Q>=2Us*{b0Gt z09T8n*OZpFHw#&BO9$T)bn&=)LVa<$F~SdkVL=Ft(6}FTM6Vq>^%dj?p;zGx5X+t2 zigTGU-3%j2u1_MySTTj59^nKpEgm|3b^Yn=Qzi{|oB9(DKOg+@s13o9Jj7uSc}#bI z;WiVC`g>x=nWc%v8ceWxX74N7PTDO7VF^rFUsWln2Z5G*1iO-_7_e7pdt6dn^I9YGstxZjp7&Z}UC+srop#%ZyU8T?(FNwEBARI3RL$D!@Kfq|3aT~l#9As*W zmwqMfMIWE#UU6p~t^3X|ZV3>BQ^L4`O{0Z;G!F}MtfhYfE>K1a(b_qCrjXEkI&#Y~ zbFybK>lBzl?Ef*G2=s&JkeO5E;3k$fAEu-Ne-cTXi=FMc>mfLB;0raBfK2{X%dZ!# z7GBwXZ^OrDvS14+nmHOhKGc7Xl9Px|lkeHFEX<*6FCr0_Ri41mQ&RD%_~!p^X?du} zjA9h&B|EI24I<^=-B9W9)%FPRie7$(_ z0OPR}aM~+yWno5Z*XfUirAZ8{6R+Sv4RvH#mjk2T!&xH6#XOlOU*=RZ2a*($^M*ZT zOGWGO_3+ITtP#Pm_g(8e$VQZ(ix-vk;nbK$hK#k$av(5MDNa5yW34EL1obv}Ghz1n zXcOP5D$+tPNx1v0sStWO@~6g*a0kVxr@gbZAQXAQi^xM28)8^9oaRzzJ*OT7$^%pU z8j%31zC{vlp2=5BvQl5iX4YQZ=6SU3?Nm=B##1`_L;EM!`(kkvgY{uPIq5bW?q4a- zzqLIXo-ck|Qzamf$DTT$B82D}(h3f0IQ%x(L77cljI3f)UEer@7W1A)AXaq*_GZKu zD}>`C;H=7i$_g@d2QQoLLQ`EMmVWH^ZKElEDd4fAneU=cN7~w0eyS(Pvp}23Vl7z~ z_1XP_5DTGM-TB^8K#*nnJGAj9?xKGx&W`b_Ul7F@tN2{M#OkcFCvtdt+rAx+Kj=%1 zpg23qO(AbbWf%scg8m{$FuGB~`Ho@BENoh{<3#qZ++q_ijljD-N~>Y&l$Oq6y&)uJ zwhN!NR{&FvSTgPl(N@i>`dA%dMW$4ofKF`M^2s5r%S&Ytl;aiY6lFUXf`TVOVfXS>8q)KX@ggqhH1sb z4R)5k#25nXM{``Pv8=F=55vF1v zn}5Nvg)X~g_T?^#v#3KEsP{JZ!YMpMkZ4d{GFbQOzwr)_9$Gsw;%8UuZw@PJ=}jxMHHhC6E{=u`m+p z=t`^i-fNEA;Mz1@e()800;DsW8AiSv4{87WlAyD|%kx5)bCcUvRWd-I^3g+Gp5Q$=%3DW8+bpF_?iR@MN|bgZC~=X%RY? z>&ri8_;i*WZW*<>$OXrN%#dgL(!UXfe$V+bo?yjjC)CG2PXP&LX08@n)=!O&XXl!~ z?uw1FL)GuX1H0ee&!tzHH2d zF^me_v_-#(|KxpqEW;=BHVQR&16vtPLF8PLX|nc67&#M?H)ttOZHI1_#>Lu6qd_>G zoC1^=?M`&f(gIu*yOgHVjK>ldLGO*9{pjKXDEuX(Pj-FsWH0)ss+X$XpHn?k^1yjm zh7E=#8qOov`&bH~nsT=)vO>2LR?&)C6Q?7VkHiPOf{8g1Z>v4ZBJ5uZUaw%2;o_92*gspmX(KaXZ|d)^vU0(zZiwoaQY)mc$uIKT{mfqX50JQ z`!UyPjOxwgI=pt)Cqr77SICE2)pou(=ny#j2JYeSdSE3(=v@|iqEsIG8|myqQFNjT&*bf1b% z??%0d$m{m>g8)?W7VRyFBXcWHO{H?}_zN-d*99*om7&D!30&uxTEH=1D0zkGUZAX1 z`dd4FA$w8RIc`AYZz%y0q|TMpbuO)Xh|Stp(W;ZDGeE+KXQOz+97b>GL>$QZ(e}P9 zaX8Mhjp+32eQ;VP+{reAoLcgjQOAKcF^-5EMHJtbDZMW36S|$~|IDqAQR_YvEmpC}q>2AlOWK&?%mT13=TPlor7#(vEnXkBACMYI~q>V45 zjV!4Mh{sq?M3j1eqEv=Nc-XXWF}jz@pxiWoyjot zw@)@!i0uO)R`RXhH;CAXTtw#%@ATE*Tno!?nt<-57Se(4aab4mt7LwB>|An-0X~0w zo>V)f!RFo%LA&y6j2Xp-UAZZ(k{1T&r@`Vu_bsA1@EHt4FQoeGy*9ZU6sBlvI1 zYU36W7Y}H>3Oy{BXFrItme7DFeDnXNGO?uq60;7j2x7x?CSos{46`Cf6tSM6CLru> zBhf3}L0}p)K@zEzebXd#Wz(37uOx~|4#3Q`i=tonYK-?naEVx3UxTWHaf(Nc`HR1H zr3O_{$S0z^hBiJ~{7Cr1$lavt)u}|zx)z8J=KvLzuz6dKtaOS?V{ z42Q6J?OVtOcQVLwK%B6{4TL_bP&wI{jhg|{%o6GSp(;d{>Z6EAmbl0(@ObM6(T^DDUZnPnO%TquVK}1?FAX z`H)iV@BboXowETTa0U+`mo5&ubD}R!9}Zp@T{!L%HWUrZ)*3B**f3iqq*__!N^mLM zEV&O0MN;q5;*ANd52on0XscX<1qUmb9d9idcf(jikw&#>+F6%F`;|LTUNF8t zQR#Lkc~3D49AF^+*h3(0PtQikwObYptH5hBZWJ9~4_=UAiwV9}BQ ztb352-rlI~VjrS>Pl3T4c;A55{x4{pnO{8z8ljk8f`o z;5Pv1$=k&Bm(#B4jW^-kIa_+2$AC$l$6n>XbC3ev8$qA%uUfwp5(4K2&|rI9=Z;Y= z-jO&getZ&NC+Qmp2>F_XWGc6JI_;wcS5Cbx8nNQoK+cWZfWjs#njtI?ZcKydw2ZJ` zvu5fmsDV-lovPmIM)1_>#_YNd9lG-^C=r=nbFo7#d^1hOj zix(e%RkyIQFlasn;zplWgjBP^Kz!{5X$DO(X<#C}fnHg#2p&bLnNITicw=Q@T$+1f{qv%f>xES;O|q}D5e>* z4WU6r$+ugMjd%jhgfzKF!Gcd*z}`x(2njl<8xarQlRv2hlF%Penx22m6-}^&1(waJ z16ISr77ZtgH{DO?CgEsUGn7i$)u5X*n`1oG`aC&u&BH0!iwk?5aI z2f_J*MCksq*`)9-h)FA1384WV5eR5Ol*DqlA}AB%t@t6dlW}a#Cn6Ou10w0}VdK3*2`z?`Y<>x)?m`2 z8bj1TOct}ig70Aoq&5SNY%^s*9Os9?(iqha^h7a<+;6mEW;b5#`jQ7o>_w`bDuuA6 znDjBYsv}N=8Tb1ISCF%5pfcSSS5h#Yt+R*}sC&8QJ zR-8~sstu{;zx=z&bTe8XNkPO)CvVv1+KDSX zas6J^eZ*<&O5nU65Zk)@t7ZTCS2YRIu=+4A#fZ3aDjk&IPZL~xEz1hYm^Hc;8^AVO z3bx)$Z>(&p*}=TSyXqAHwu`!7sb?q^Lz}tG9bsSymrZc7=7A}1oo%_g{Fh-OX=`w6 z%{y#xdM3Py8TAz`GZA%_rC<~UwoG&(k!Nfa+M2!HZt7uH)E04fa;+$<;K8_3&pOUE zbtl#h%Je6xAP@n_!ocr89NQKL;4CK%zOM;6HL6d_9A6A6;IVptm8*t)6+0iq~9BvkQ}C zBx(|(1!Q%8UJkZCtWiH1bg>9%DTL7yhBlG*e3=@kM$U@&;~E&< zJ}WS9Seh+ehxIbSHJ}D@Jh;QdjB>(U@3X!ZrahuGgR7Ot=mMDeC4IeCTi~K}NZ$-E zonPd zJ12T^VYrpmjpMS`R=ZcHKGnmb;$ABB1r~%pgcEz*=cdS(-l=9)bB6Pe4x-(B@8bNR zYd00P`5EB=6k5Ct5ApuEn|IY0Qjj-}iq?Z~Ba2;16Gz0vi6~)mI7PS>*26=+?l#^h zslRwaQE(oANbYbNjGh)DkHNSIN%HBjlz;E8`*KOL=9UPUV?&y0o+}{ckZ`{Z^fkiS zR+LE>j8dg9zhtlc4t8sB5}JL z2KM>%kd=joA{>%gwrMxJ`qVabu`@s$$)`cgOYYTmHc0F71+xmPK&%;^YJ0eU$u&ZH zcmJ9Ql-JBFBN=Y3-1~Ilp%K?KV0+;JOTh}-6lfZ@2d>(#tIt?#GKiuBvd>q0E z!*(UkaugqBiA9v5-V!J{p%04R6RYzxNjTB;z6HE5V)72`cqMCtQUrbgJIV$&2@%0K zVDn+cGvbQNXuWUt1C{4`j<7U5d^>0q+6;^F7(txkoJ&Us-ys|dX&CRrqpbhn4n;M& z^x{p9O7);ZgqMp~Jd#)v@db<{Pd4}4HPz74uLAGI)w-VmvL)jTDMn7XaZn-`pr3(0 z;xsby0lcH3KVi0RJ0D!?+xYj!HOhFjR1!+5;`Kn(f>*KYtQbdH^dUBfKD$4VV_Nr@ z5*5G28cqe)>f5iWr3nM>POqG0Ety2~`$yr)mW%j?z-$5@@gZuEtJWW{-$#sLSqnST zx=;ys&(FY$b++@A;ktxnfe0})^^Mq{ltfi?(+1ITpBX+Fqde`-G#pqbI zktah5@w`#ljOz9c>)LF(_J{n;O^3Mb=&u5v35=*7H|D0^LOIfYRG%LXx6vlQ#L5=z zvj>Oo>B4iuiS(i&(!4c*NmP@AzKa9uERmq?0=&@dcb{|VLDKCdf=}5aHW|yLSc0e~ zZRig^lt3)`!tiowKQ;Sw?+HT)ZhhGXF)|bjhFP8!`c;xgC$zR&mjM`I|ECeSo*J=M zqVkw{;+~l;3UB;DQZxhK#>GfOFz@}qM2hX-z{ z7`B0cT=tw#(=1rXUm5MwBxh_Cjc383kf+)Jd=oP`_E@1GwQ-LlsR-1C!SVTr8@`f& zrr*hE9X_5X0vwXxZ@k(VGW1f><5$*T$Y+WyPdd9)uH__D4yzMvCA#7YRDj zPKga|K8feqDCBn(8s*GAU=-T1aTh_xLVt=ACtKJdP+ZZQ_5RGEH^N1oy2>p)o-A++ z`GNQK(#1t5`uugNT*Vo3NWiHF921&x4?ZSbra4Nzswnbj%JV?f)s+CRrn2B}`_Qm= zH|&P*nQ#o2E$oaWItP4qleVka(4Cl?^L=HQbSn=YB0kdDbp1$PyV? zdsh^&kUte{X!R5Zv#wx>No{1{=ZIn4-^^`RrSDdCU!ql>bV6TB%L!5@T2rf_>5(PN zM06k(vDYuXmTdotUPpUD9Gq(9aTNS>if98@RCGG`#`K|p79N0?r7z|}A0hV|N`3mQ zI_vA{Jf7vz`T7)ovwe}_YTYdyasy6w9plDaxww z@#^Jassk!VH5`MlExcTxl)Xb7;We8oWF#~`Xq@5>>6vw1&{;SX`q;Yn z62^uNbk?pBFv!vXqZ9;O(F0~>!DFiuv&5Hc2xzF>R2B?Q*XDA=6X*_sA6~O*W_^K1 zdb6*%-akx?U;Bd$=FSN@wE4M>>Zh#X3?u!_+*nyx`#|Yoc ztHNefy1;%0W9>e<&t5GK$tb*R@@zuTkW8YA4;Wn5^?vP?b{gGi$`os1jrD10g8jW!ZFssM`pAWUQM-e=-*cWItJal>sLT!m-<1qb1jj{IE+^*?g zAOud#g*WHWeJiGrC|+LJ;1ayu*XwOgHHx0dcB{T#m$}I@K_vcw#bVWlZ<+8$Uw!_3 z2L*Kc4ZSo>hU^*Lwtb7J0js_d9u$=sw$hZKvCSK*4JsjoEOe-cb6~E8SU&qYXpeVE z&SLBF4tQ9NaD+UHBnvy19|MCLNe@M3Z+ z)|QnyW*bIiLwV2QjZtSA$~2}vt|5hj=Eq8}lglQ%6)I_8{$-riZJ-v4f22{V=U~Vt zCQyz_y^s<8#W(*4>%?z_4& zMrPQ64KBl&X*6_-H#P@`Q=zR*7J1QLa-y$aEOC`UNco{u551yXYq}a&JvF6ESv|_d z5}SR%cAm!1C=hES2fiSh&u5){`)n^yXI<0LG?MqLnd|RfCgjG%ChNy@MNt5F zSxE5?Y@S%8>=TI9&+JJKI8VMyt;dveb>|?{^U_~y2gKXvGsHyvfDcP z=Fn$?jy2TYjZwk|zy~IS&DE=3Nf8L~jzk0(j~4SG*L+aHZvWWt9PnK1&Wc zJ)8iOdL)UUe)5EboO6pd(I$tTn306997=M^ppI~PEc4-Og^m8bwf)>W4dKV_eLjl=U9VM=;v)VcoEZZr`W&_*pqkD(#DTF} zCo(==QznL973$r!;^2Eh`PgkSX@$Ep3AiO1kx@XVSD+7(pNM{nBapa)Yp2#%^HA6a zYY7Z#12D!!lU_PfGtXye!I88#A5f~Pf65vkqYFbo(X&?SjB$y_7ZSIYP1LK1 zU#mY8VX0ur1~Zh~n)Qn2Du|!jca1<{A4Xsxz{Wi8vbwK9{;*{~8cU7PsLe8NML!?k zbl<6Dtb}>37lgnbbh>4sNOE5ijm9#2)klp%x}wy0MR4=wI8=~Y1uQd)no zoaL2VAZw`V&L08$?l6AH&0y=5W!-(o`%cUr6I2B752T%5-B}w`^YHW63$1&MZ5QZggl(3Rl<9jI0Dh_Xb ztr^3USvFopp9$EAM2mI2l1m@0L6Lq@GL=&6>r$a_R_}lkeUJx8ruMylr3ywSl05&i zWC%8-26m2$%57g1yj8Wb~bWpH9`~dMlz&(sD2uG$_2`ZlX|g+ z=m0YGIN3+_S~Zs(57zMle5g_?@H#XjgZy+s6%MTr_*(JaGq2j+RXswAPWT*UoU z217q^;4!X~Ma@92y**k=2ZF6=(ReMpT)e@is#2Tgly!2{P=(YD(b*dsP8M;zYdPMr z_9FBm8F&u~flEY1a`{@$s)k_@9ek?OMfc$rM4dS;oIu`# zQ+idnLs?F=;H%J&ctkVN*S-+C#~lmjoY-qbMDu(qLt)1OQ{v3;@i--o!Ecf|fQrv&gXf6xh=Wn*pxRtLlYwEZ5wZS+s>N-$6R~&HsVt%fmoxG!Z~7E+Zff zYw;kO2{OQ@4p6{hC6W<(jX4qV2Rh)L`Pkvg6KbG~XGx*_Jo8~N;;3QANGk9n2kh~b zjjsuK5`155@ZI3-dRpT$&K_WEk{DtI#BHG}luM$d0*xa*UWy}=Yj&d15vZbH)=pt& zO1#1lJy_yFk6+~;yW z0IbAZE8fFmxi7*5`eKN2u}+RWTO*!A;sTS59yp8issfwnVLzIXOdOV2wl0t)=><6D zE8Y^Sz<36l1Ct_ZmO&y0&e(eTRbm#}h`DAuB`-c#8X|z(d5nb18}~71;b|!csl?Cr z2?APgW}-B->Sk$lVNUtD3zQR_oyJ)pfu( z*DJ00q5}{$)yCRg(?qRu)))pof0cLTspa|V;ZR+~|0wng=?&WZF7SF4&~vBH0!kDcecYr#t-|b#ekm;dW;8 z@$tOD*W;?4>+sq%+3FHefBj-^#N-M4%fMr&h{Aoz`@RQz9HFmXI@34#rz&?tU< zB|38=Q~I+Remm1=k+w6`J9g+?YD(E=(|xbDTc2|Q{H=LBTDOFN_o&X2Np zdaA0wjhwvCBr><#c9ga2y+IvdC5gKelC$lNkD*{j;aGqA2#u4FSwO%U$M`eje4(0Z;Zljo<23-!jYL9jOBt&S`c>V%HMuFDuh86X;i#n1Ue zvh+UqCu7kD$ko3KA{8PIygw?8U><`C-#3hl3`&KF(&7n-RrE%S3!g}gStG-V=8AZm zYkroKQ>{yp_vu|_J}@Lz5sYAK@yA1+!WQh>0;2}Ds*04fN*C@I<#^*M6+K4CCF7*Q zrI_KM?|gkC%Zeu9Ti3ZK+PG6*cBmLFw?~a@w)lsSG;5H`G%-zfec1C6tEJH0t$RAN zt4V>}u9kmi&>(hrQU6xZ>HS5+Z6huAf1Lk6+q`LP#i9J9?^bK;eJKl`lQvrm_+tDS zFYwXoWoPQin@kama{p@tx)yRvF}g9^HQH*PB`TZMf^?Br~nY}l&AI-+r8`=nn}gTE%jvrMAKtHJxitlL00Mb{V;^HgkqR&W_7%Cat%%ln@`YPOD`DhozI*8Tlij^F)?dsN&Lg)>CGK081V%n>- z)AP`5E79%UPt@EYB5zlY$nHV?J7kQm;mJDQq`uC_vbgbcIhTI{B1G72x0uRvJ6o`m zDvKJn`skw-V>~2*_$D{Q5D4QAz1E$=opQVjNxqW6XByiV#?&p(>>kj*1@g`?JPi-z ziP~}bb#?E^@f{>mkU_Qm#nf_nx|BsVZX<}bD_sK|aQ5PaHMlh!m=XM*#Z7Yrfy}g; z)1;BqDFak;W<$s20puiA=v&jGZ9aU@sNyo5d-R^ZggB=KR0k{w--9YsXwA-M<8D_y zxI)Yz1A&|kjF>S2FH8@Tn?01LB&Wjcjm}|_SS@d*Go<#I>`3UNT~0Hmkh}>xNbQzW z%RaaSd}l*B`{S7stnhkg7Zgx5kQ|!qGPUH?AwPh+c>BhHF|U z=qhZq?t_7hw;X$isTI1>t1lQ8V?x3jwl=mc!abCrpN0iyUMqzUB2{gm`>?6Hz=Uy^ zn&HQ^;HoQ_xsH5=1oll?wB97@KgN;94f22Rx?oN$PA?%9J{=Rw%2YjjJlM`84)vzt z2MZKjx4^m%Bq&SQbz-DCQBhFxwm75Al>@%rZfQt)OmuW`n47BNdw2`_?zEN(UtYL8{p?>1=Ag!UjIpf>fR zrp^cO-aJ+%7~ltoP$F$WokPlGH^b1P1bsw+8(OglKpyDC(C977$S049+o#zFVd51| zc4s2P>f(WhiDI`6QzYs`!luoAyFMNn@viF#%zj2Jk!zlq0MrDyO4{6%IKgkMVcxNn zlO!RK)-rP|wGW@fmC zg)>>p$Ia%#7U>sO)h|aSJ6iz^vLRUT$|LBOE0`c%lDde6y@iLdlZR`2+8kFx!@hUq z;ytG@sxkLApVSX}JFp>P*+Mc5_uCW!q6mzY*#K_b_g6 zWshdoy`y7UU|AFq=ldmi_nb9R(AX!7Vy{05_AWNv+Ep#KXALhX-+D(s+`ZD~%cYB_ zgdwjR;TQNMh*r^b1E%cQ!J^rqN*X%-5CLPG_1X?kX|gLfx)NC*;AU`pQ;ub`v7A)P zQabC1KrXW2t@_7AIg-XK>dIJgsOo+hJ3c(^{xUVC9E!@?D3+a$!*<>hQ7V^0l7jIn z#P^|j<~%wLfO52^Vxliv(QHNP2TeXgA`Gmuqu32|0AnY-IwQGyQ4p%nK}JYaG{>_&h$M8hwqXv-HU$HT@9x>iM+ zXC$Z3=NUAmK7z^str+($4vZ+h?tS;!g4}vdojOQ<@eCO8i4fG< z;R=GG?HOp{hX*k3Rx)zsVt5+rNEhC`1RbUY=w5e6lp_}yfn>u#(l)zW6BD`DzH);5 zDr_$eCGlV3nD%@M@j0A+P)zD}k!c-+hcP}hL6%*^=ViT0rog*9>IkkCD=6>aiwvSr(Vt-XvscplfYB-$Y3B2vhcVqw-D-0bt8l-YNJ=`kaEsSmyLwPqP3VJc<0E2g2k|-MW+y8Ula~=PqlAw zyi3d=Bnhvh(;BowWcerpBJ;$9-o1&6)#4qcgld+rZ6&=Zv!Qe@o`FPTd=3k05k>Ch z3(BYB)X3uX*5;4S63a-ppJF?whygLHB|Mf?6u!1PXS zba|0wWlx)Merr5;J!=%o2iehxI+)qqcE`I z=Z6s2W@?GkySTY(#)aK2j;M`=WB&cBC!j28gXhkV1(4&lI>0t;P^Ae`GsuJGxNu7*;8s~Q!c(oJYF)RXJ#(Wd5T zR)4S?aYKEc;+XzY@22S3?P9sAYW977*y33F(};NBTqi${LU;!U zZDQH`$&x#c@W2WdWN;j!I=CHrE*Sj;6|7a@AzX8m5A=F0Gb9w>{9oavIdWFz1o7le z6AM>n+qvuT%z81i&E&2LIKYX^Yn#^=_4+9FT~8jMdq%pj4;}oh5^Ne4gCj%Rmwemt zdZd&rd&&JX#W6>e!qdvJv_Sj^VtOILH~0vcXK=|f(bNlgn>?^v+EAjktk~sqOrJLV zH3yhI*6w`hBlZVK<j--tenO62oIJN#mV1DSU4KLNRKGk^M+0bp53TKVtAgdTpMp zPV>NWlj$}vfR%f6R+|QoVG~QmJsO%`9el$8*ygPI>rCfURoevSP!p2I+X>(ZV{_&{ z79bKGJ6~`VP7Ji}&Ps~tlsez< zqEjrCy&`*1?Q+;Y)H|cOE|A5|7`3`f6UO&!)Mm@1cUh*G^@9iy49WI{`dwH|H9R>W zkJbaI7|^3rn!1Hu;l=o;{UU^}zVM-&)HOE+0V?j-$q7EKw33fChry5wxNHWr2p-T{y+tz(Lf6)#E= zvlJiA;MkyF{Kf_Kp)U_Mj>YXe z;`Ie~zd9Tv3kv6oQ>sXj&?Q1Riv`ZbJk+EuBK~^^m|Kj)n93zTh-y;Q|33G z*kwy#>8Yc{hax*dQ}j~CtRsB zn9(qHO2f(Y`JIJojVn6IE;%x;6^_b=X|qM%ty)(zwoC{;W@oj9=S z*((!)O~xMVvK%zjz2@*^W9MzROkbP1vUG_AQBbszU)LPuqWw}U;(j9_1At$EGA z8JAC5{YC=~UL$z_FC+KsvrY?Ks1wTS20Op@MkL8SasWoRo6fC**=4 z!7M>=s823Z)=*pqv-?fJ9nsTDjz0-{`)YykmXLcmbUyy9GDs)hbkWdK93%#&(Uy}G zr)X7>rL~7Q(`e!QB?iE5Xe=Hv5H;q8R@5+6qeZ3L;ecZsDko@!WcrFofmbvB(}L-o zhp!C=@k-6-F}~@*A*31CwfHNe zW+v)V^(lpGc*jJ(sM)mp2{%!8-ee+kGuDSZHar>~+qUb}K)u(4pC08w^g zaVFmzI15~dE+ygb7VFe{OQ0Y2(gR41g*Z3jW=!O;IC-7X234G=Tykf}v;aJi^Ql1h ztRgxb{)$euA7`8?UC8!GrGIGqb*2@!hJAz{1Px`-$n^Z#*EkP)W}^%lYfkReqV}vz zvn>I^3g{)Wb7k)vE+AEgKCR1hxJJwr<-_;VX_hELnoMxE+pe@yb*cR(BY9b)$a7=5iuj|G&_h7hz zr*PJoJc=sG`7{CTjmmp~EoUa(8@6^lCf=-o60Kh0_7NWL9hM%c&kk5fF5RwKk5gSA z)(192RCn9%@!CM5vcpgQuH^lzrw*AybS?Jzl3O$&NemT5*~eFqBBVH5dj2)k@iboU+6;@ST=!tImxtE zHor9T1=Ji=eP>itUC=JQh*Fgzp^1VZRS-f~5s?-YP*kKSVx%V^9TJKPNEM_>NK{Y+ zDJoq`K#(FO3PR`!1PDF!5Ylem@80jnUF)o@oU=~$*^`-P_Ooa2GxKCMybf#09rzyo zCb8|wb%#4{$Jg$+u zUSZLGKTAG^=$kT;>kKKy!V7nk`fo6ft^6YfJXdCKW>pmI`}oRERIM{K&`m|S{=~Lp z!If&+_;ZqXN2%Xjo5~J)b2A_qmWha7Z^P->3kE8;Ph6?wOrt zy3^Cx_X1HmGz9TIFUO9(6*YsVab8&XF!~+ZM$Yf+IQ4WyBVXR zONiF~e-EZR=c-V39K6Qt@SFW%96G*Y{kX@`G2X9KHF)G5D)GBJl_hV4#cW&$&GE1h4(xkGT|Id3Ep;`CU+*&xL4b( ze`AFCy!8frqKZC006*jyuL)-&n4e@A!ERgkvS340_--0YG}Sz27Sob`6nNry*p)-i z2*&^G;s17(^-k4y+^e^f4VagVe8vZg7_1L&Gx`ta&QzwfwoPKfkEGxg%>EkpVba8& z3k9Rd_mdPAbn6>sq<|MhF~gYN)%qO^2kW+F!FVc6<-V75!z=YQ4>1Nm(_n4QYz`F1 zqAiqA?1&H(X~%SK=b)^CU%h&D?2#E_k(Z&ly&=J%U4dyb<=Qtfa;xx^Tk*I@9T@Vt z#ri4c92vJ6d<>>BHF|~Os`ix5YpBS)3}zS^9z~+D6ZCXJR+5cPW}M*L8T6O}Jsl)= z?~wFN5?yRwMisMX7aD<2bEizw*V-=p_p!$0lv#tnBQRu&vdosBGdYV8aIKe%%y%R^ z=H*hN+%ip!M!Y0HZl7%SunT37$y}OXYOUL;+ivXHoCGQnX-DB40DW;3WB2kMt8F*(Pf!RZM3gv1yQsfXWl455i zjAh?~=OPABjp#-6$MSpdfVI*lU43n>F`ZCa#Nm7mZ1HD5O}~k8^9jTKtIfW-K>PH> z7TFjhhIf-?ZwyRj0}@Sx^{%mEdV|JF1JVR03cz1nUtI?45YxLrf zk4F`W2WmJ!%16H(Muh((Q}D9b6=gV3Dv!waR2}*hWYF=oUq3Gd2I|5lsRe7BM+P-LKjjv_L5Bd zgMBo&vNu2d*)W{Ch}<@d}WF$OAdVK;pyS)w?+LP zhs-5)8y%yQW^xobEzorA_BPI!cL^6@c`-_QtDkIbkf_Io?z%Zj+;N}2L)DKU5RJPu z!!BYd?z8FM@MwDyFAV?R!H|pnp7|T~`+B4c+g;q>7f)#nYE1|R4TCetlW`QyhT?0O zUqAN}zYn5)N>`%jaco)sl5DLSp0Ah^%-{IkZo$vqWie2krI$E<62jm-5Rm5Eel6m-&sjM4wDGtx|$ zCP>_br~jPaj{7`6v((KG{MlVcj$B=obaAz9~H|eFu@pi zz&kkUJ!Pa@FghoM8*QTpL0hngJFh$?R@jL zxG2Tf`S$T-o;Qg!Lp@wL<8$#_u@ir)CV6P?ZN$qTO{jDxv=Ar%MSi;hLr3+*Yps)g zv$q<=cFlh7`nKdsIOd2s(0pa7El*>wZ;}YT4I#0Sgko3wQ=TFO1cs0Jl^N3AzgQTs?v}R)* ztfBD`wN2yj(!QnQ^$nfQ!#Ia&yGJ8Z5*eK|<^^OeSdcmo--7Mwe>;#4?=NN_@%kG( z_T9bdU7Hx>_Nkmxy1L9CIOR)!V~=*+4ep{gt{h>;PwZgAkvY6=oe5-jd`EdqdL6uP zcMbUE)%o9LpJ^fJ;YlRDZH2rmv{OXiLeEnskBr^Z;JOqy>oRWh}9bNbkI>D}SgT{T%*xNnZnO$*K4SjsNZzZfa>F zurW~mz?-Ro**zNtPgLH;Ek>kU{Kd_w9Hy6l8^Os9DIpE4#nEVScp=r<_;L!oXLs#w zXnpX}l!^G-Jc=m0XOzk^diM=&?eBDIE5SiGmb~lU${R=XL}D<;yD9%89)bbO-_JwE z_)(}}?V+I0`4#>KfH;Jq+`Qp^pWls1F+A@Odd>=3hEdT4( zE8g{aQaG%xXR>Q-V1gEC7`hLZO(Ko&R)=3><`VS}Xro7zMGE%mV zU$)qu7r&}k`8eidZlsQ_DR?+1CvIO zNyT3C?yTo*^De`dL+M+P0Xmo&LyjVckw`OPq?in&-_-LG-;DQ1XI1U}i{9EfN5^Tu zo(oc~wO2J>asRx1cCx1ix7La&Zo@o&YwhpeI{Nx2%W<(QFKykqY;!C$`V- zmA5urr-zoV?SxcXMXJQ$;Px?V8w=rvu%-ru>?)9fJhMOPOn=$d07nQ#lz8f8Q5E^n}Wm1#q;3Ie7S5p!ZV;2;Y^!R3x?iRW= zt56A{=!xh3oWi|!F^EQL`m^h{T%fUiN%!)}3nsf>vxChM`lO|qmclR`Kp9Ec$Wl52 zRxOL|U!3=QHKbC4&MVuKe*Ubx_Uc7vyX=AD6FYsB<4w8%9)#PXaC&h z0zEJnKYqSir^NT-3JA0-k@5Oi(q|oMFtuz&U)gFzuI{y4l=RB|iR+K}rsSnE=liE_ zxDQ=!si@vRyRE39PI4PnA`Iry>LZKK2C`@CKek`^TlZp*Io{8>i%fhZbUsJt=^Gus z#bwHie^-xHKUK^Y=HM6DKiwp1=+=?Qd#7)IXR%&H=&|UER6p;N9qXH)L{}bezB%q* zM~q$S_PFOQz0KOa*=X;Le-c)O9&TG1lQF6%{W(7p4R*=0Q+LLTxW2nSiz&)#(~Vf5 zpQ9I9dR9*Jlq~XmS)_m5qh>a%)`gJ1Bn*!Ag@}+{ur_<+^%2C%2LG9FO*a>R*}rZ` za{}0IC6SJ7ZKKx5BX{pql7wHbb~vK&E2-PWI`uo=Se-Q@w+cBJmVL)eGjn}rbp6ZN z-O3+A4I;!jy`0wX+&Y9s-_%#HiH8>#<55hG?gCR&+sq{xQixQBE2_hYodd5D&_$IHE=XEQ264|qK}l|CduIdm#UBrMufm$w?@ zq((b**>pZR%cWv&$=Hg8cZXoV`= z@6d|BRGND-6sm>N>fAG+BxRYioWsGj2~MG5!kRw=Zcs%^ns}W2!}mvMb>gZO7RSy- ztlxk9!RU2Ql|^^_j`7OtaT9JqSOKca~+iJ9We&PAn^2m-} z3N4sdij^;!-gphJIjpL1;@3`H(k!5E<)dI0-68Qe;L=~^rYU=oAD_K}V^^Ne;-4@k zV*;OL&SGyd1_edUk>2NLOb~Z`;Lm`h^Gi`uHBWX$!>fJ6DFd<%G?=jak#LXkD6Y#TMyx{H{AFnzCL$ zXH*|BbH~9)v$CQA*Yc&iEud&-Wx7!hPMAD#pl)Qdv4-%izNIvNJIo{0-(XFzoj&R( z_)uoQj6Lk~?nY|Nc+FKB-P7Jp%;p*#8B#n$EGd_g!P;Hm!nH076Tb_T2*MrY9dGKB+h-7VZYGZ>ZKlJ-MgY53{I!3xVC7sVdNO>f>CD$U_?0v%5R zm*~0bHEY>%M(Mr3OZi#pDTh&>xX>R2nrrfpC$yj9LCrbjJV1j-YdvcRed~wn@v9c9 z#&@<39Tqx--xxg1Z@e+x^pw{2n0DDla+Vl&Y27NKcjN8hgSS`*O_G>zjDwur8eia4 zn7L*S=9Ivt9qW@jJRYfeSb#Mo75u(7*kMfuB~gqp9!35H+kEDhIrl(v9_p_9*+pMls(?S25;BXJvA7vZUGTRB1l2&3x$d;B!#r zpOnm(_OBT$>qPJ7Rl$l`M;GGE)Ym82N#C(>!GEZk{a$<^@lN8}P}?!YzJBl*bB4j6 z_wt4fhJHX^!`f6#r63U>iti@&=F0nGWw$Qpw1Qnzma>CCcfRz+T+xIe0yRSJGWSR4 zkS2A!cSzM!w--&6RUwY3p?hZ0nx<8-K>9tb!eR5o8l+Avr4 z*uxAWHIW_c@V#kH$?QTnUWRdiAAoR|ASK#QN;?{4{9y;^70Dyo0WB?_j@Rwd}dwGYq0j7u-Dt~!svYa3lDe%`GvH1R^C{S@Mz`` z^A;bAKo^aN0SdZ9@PxY9LgD%OiK&&0^TZUF=!srZrI9GHn3A5Dy{mJU;$_=rnWXuO zWTTF!8B$_wS-X|XP9@VmUu_GId5aqQhwJVNE(n(u3;RaN=p}gdRtwJyY!M&rnAlQ+ zl+Xozf#7*p+m^&+vd;DuB^V;v-t=rnur1X~Yr~$AyMjy1p}Kc9%OYKwyqH~vW&mgt z?mazIF~dw71f!WJe%`qBO*JKTT`%$TarXj?P`BO;sP_sD{#(vgj6gGNxRazQK2Oc3 zsb8HQ=tK8Eh6~|cexils2n*ml0G(cfOCuM2hjFQArgy=n8e{c4B|yn+Mn0t`y|Vh= z;!&X6*+5O)ohJbC-b$fG#6fdga*rZ2aOnhbGL6sQpalz;L~(&%d&QBp-Z^ZeD93fZhxr+^3wq1w%B)V47po znfQ>|yy�=XChZ7`|%#oF!S<|F&3q|_kK>twb_)A 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

  • ym&JT+%-Odg>ZXodrEcNi}vZHc-~DhBEKeW(Iy+ zzmu-4zcW|j3Xq`yap;hFx*g-q7LJQq=6LbcQYY2X+WdeoRXTSY`}qd@T7_`4w!3W^ z))dHV^&0c2rbx`)53QZOisJUsnbU34J_776++{8T4yt0mt@Yj>FXM}V%@u;pE9U`f z0W*Kx?w<6pacCXA% zF$QtSL?zj&B?+8BsScCx>?Ky)?>qLrxC>Hcu-I!F$Fz2_th0!jGYpOQ&D|(pKyxS~ z+cuud`$y-($$7++zaiNqF3kGu@^$o416|;HSj&(9LUU(O=A4Q2M z)^!-I5gkkIGM3vEhbePAZ=$A5mzN@-_+;%N`2=ed9vta`wZaD8Gw1?wr}EV?3QHW5 zcYM!X`K1!h&!5%b4oo}cbM|~Z6@#}_POjZAY5^n_FUJ!Ek+(<`ddR1W+=AZ)8wK~p z6+4Gquc1t1O=Hw&l!6DY`r?j?YM0ccGNg?-$!Uo5BNthRnyDosuJ6Qgrw~Svm;L|D z;+Pt@_3LZv8gFeo`y7Ay?7kSjaj#1r`tX9GFLmLeUUZ5EVFob}!@KGt+x!8vp*nqXq!lJQXe?_VOHe@q= z?2S&NKAZckp03w8<6*DD2dvX#*ZXfO7}K?Z`-Xo+g&rZrId6)xFnY=js`Mchs$ z`z69UmWLz*9Y75PO=^x}$6EwKjVA?}eq4>eBBqJSwBmp_k2~b|p_jegOvNg+(1d(- ziw0xJ+movbc@YL`B5UVUZr)q$-bz8`r5aV)~-PctfNZ@7`HJYD7K~=Y=SOX zERt5qDq_S|?fyP5bZY_&{B?s(2!BPZr_*saEnePTL|Wti-RfeW-?WS8mff1_KKri+ zG{^B1)@ys|KM^d1O1E{wCa<~Z3uOz}Y$G^Lb@OzfH5;G#{=)|&9e}w@!UHp)c*)wz z+WK>Ksk!C;=2*={2TU{}y_zl8ftGu+lbaPp`EMcE%Jzg-%m5r%IRM+G$hgb<;B%$N zQx?H2QJ=c}F(mj%qGa;I5sp7CF(lqZzDx29Z$~IdAM`tG9Tx0u1fxB>uk+587Qo9! zDZU?phh9^2XG;Vz4M|QrT15v&6fka z2|O}Qz{L(v%zcaVElW}Jjkg|R-iC7-2qKs1Rz%1X zL~>lGZ?*z+YdSL$j`Z8;9do!f%EyjQI(M@=(Y%QZe{Fo&XzkR^Y~dUZ0_(SZ;{4Nz zYln_`4mo1`htstFq#oJk`sZv@hG5+RdLI2U@4XHIG^~WDD^&aLv_^4$BMA&S&dpXt zTvff#@SdDkz{gb&0bQfjhd&S&w)(3EsdgI&r)35uaW*twe>vzcty~R(omQiIn<_!`FcDQ}6oAnq29V50JM}5{yI5~}gY!|30dJSF zysBbN$51ylrSwr2AWLiHJ>8KIs9PDE8ibn_i`CT_0CK4TQAs4Q6M z_C{<*YHoo_`Y*j9mTL#%bc&^wy=B8G+2>abi&id;D!CnbmwX!*6&~%ZOu)yd^WC>@ zy*90G?E88lc}50dCMn^8V}_xoriGHGosr=yRhDUvlj7CWw;pS1vEpgtjm|9?jQ1$} z>Sgj@_FWEdQ`6SJ(r7sqOWh8nTf3y*_Qqpr zSzJ=MoljTQVDmwUIb+RF?6Lhslmchss;XV6v({6M!+o|b%BM~8ZwoIl;m_Z1NUkMC z;$))|S?Jc|fV{Kh!uBXRl&}zvE6Hj8h$7aK%6jQ)j^;RNfrn-Bqt)91%bJ|*o>u<` z|4cL}PE5r4LHGPiKBLm&d2s}7eYrFyXX9wiRgC&a!^WI!r{oFKi4TUYIbFo*OOkh~ z2HPLO7E5CvSy|ndr&7<&oP|eOR+qo?kA4zuk3SPuY?SqKdoX4ft^M|^o%4I3iRQ-` zxe`05-6Ukq@iz3;p#3(}3hkD{-c;y#{h zcaMEMao_cgstH4BBmDEGO2v9TUgzdf!Ru(3Qq3yj)Lv4RkWPt8!6BbtBrXi9dy$X> z4~L!l83#g9rg1pePBFY-K@SZZfvcQ;a*8#)d*Y9 zpJ`6lFeml<6Rd$A(_`Gy;*5{nY0G(mu{9|6`$^k0vB!ypvgFI(hZ>p4h-ztknlsN- zjtMF&hi!4p%3R8_dBYPTV;nCeJO8&SDB2XCK^nGe=(0$=&$iYQP8B4D{|{GR85CC& ztc?YNdvFWx?y>=b!vcZe?gV#VLU1R6;O-JUxO;GSS=?c9XZPd1U)?{qYOA`Z=gdsc z**RTDo_Ts|;fz^;1zh{j=nkwSB)f{Ys$MB48?fZQfceY!Tg48c(rP8*}VV zmx%S!*iLe#Q11P&3^M)O!2pKjb^cV6dnslJt2szANC6nKG<3}LC(_Ok1kO>%7T}ke zt;a2Nj$_Qjj=@eRx4wwdqp37cOb3E#_B&-a5j#sGPmvSCDrIIpKfwpkGM+{&0yfv! z$||B09U+2ZL9V~MX!&mt#`U@9n293x$LYOegNe+@<5WxRj{1X*d$o_`zJf~0KUr_j z|1O{Rh*Ov9>oD25b)m6mv8Z;MkgX0;0`UtdmGN0A74enMf%u~pGySKrwq_H^U%e=X zuNTYQ4P?@Fu1(UH(gN&N9UBHNojZc^_BJe3JMwtdwj07Xrk13O@NFrU`-)41f2`nw zm35@$X~^T%PLv`xCcLFEX>!yip7)oI{?Vn2vv$QjasRnebh^z@>Tqf`3r}oy=T=KO zH^E;gyEXfFUwQ3^d8Dup6E!;f$r08*L(PDfsy?B~hfGwPWWNZ&SJ zJr{1V{Gt(P*s7D6&S8a*CcCoR@Rvet`cjk#JMPOWD}=}UvM%{dADjob*MT7?cOgL0 zE}eHk{M9%=qg+>7TkxEqCwudq$VGAL zZPj@WR)(T)OXlQ&M%grfK*Ewj z^he8)r1i%#?oM%jkJYE`j1hA%)$UUMHoD+Zv#<*qQj!iNm4kR>? zR7AqZc7kVDw)gzC)%~()E>d*~Og16yscGE#0)qS8S7DfOy4-@Oj8@XHr}Z#;Y}61{IAgv*GX;Za#=m^ot671o zQ_A-->%h*+JeNy?M<4On$ymPQ?GW2uchetlESfZHOv(hs?}d9UNK0r&N@EDV%bsX% zeb}-x&E(QfrQb!>O*f7~=boSxQ>MU`^a3$LO&NgS!2#=TD3S}&2I65*aHclL~z^t75w&T$0BbM1~aPD=vOY(=N&lmh+%JGtX@`UF039_7pCG(u6DHQ z!7U*KIWv}GQxU68ej&8#fs+g0vHodq#JC=|c3h|4S|O~V9i+^NWg%3j!Qs?k4QG~( zA1y+dB|8{neQ84I);r{x(bvur`#Y81WE|ZH1`*LUIML4B96hVG#3|c6?TAXw!d2bB zb)o`$L@zlELIVf7w!X3Tb?vM_U>gM6T~f9aEpGX)eJ69l-w40oL2M?W>JQwO)`^4l zhF{|T>6W_$KM-qe?=-*5>8^aBbL=Z|7L|yd+^p9L6?JBm2yeUaS&QW~;qQ##+#1yh zuHLL@Mv>v$w0jUa9}sk=>WqB8WcMcn_vrZ(f&1=ju>jrJm$ZL|5FfZfKTvAn0RxjY zxPT$f3nj6T@Jm*)A99y=FUVa3<_{F0c)+I13$E&>YJ^Qc1K*Yc-wv}_ES}zlby6)! zU=OeN2ZzfpRU1)6&0fbX`Vj;_(Vr-dE0#YDJzH|q>w0FhCQueK|6TPaCXpO737%@# zE#_x z2JZhF&4)cKTa-vklug&gxZ>ylBjY!UWK4WyejGHkrn>DV8&7D}RG_nvHYMjzFL4`K z=>IJ**p@W&@~C869_f%NTTq$ROZ%!#cD%A8wTK1|z+5$}K%8o>J-PU`17@0h)v79j z5FnlKI_TOtEW+*hi z9Xc4hDuZvmq3ih_{6Y;42bDZ_tMv{S6P6kHgQ8o1@c+J0I;c;7K@pE7)AXC)kO8AM z6|Ihky8g|%?R;0IwOVtpu!kpG18K{&0=y&tc(d<{Sd#X_W%`DsAGBqFMb-QmH9p`= zq@w9}el!B|KC1T;a|8z0d>`#XzFpVW^7)nJACl#to+y@86F<5%mhSW^AYO}QO9fcp zROCMz|FZ!+X}bU=2FNl5M$alkDgIM3-V|}b2Zq4#HwAIghyD6p$w8eTy8&Zj*XY}z zKTj;K?uEv88JmF&fjMu-;OAlA>r<30=X6jvJz|Dn3yo)M3S0%4G(r<*#}-ulsZw8P zfxIn|5X8hqxAb9E*DPhw_gQ7f{pZ15s{ahQPcDy=Z%6ds2gRNt134LV9wfLPOERsl zavt9l>r5-xG^glcGU4&v@pcGZ??I;3&nxs&h@v?J`21r4+Z1aHBQIe`smhu;o}WQ~ zaBuAHdL`0S+lBCdf4>3xwv>Man=z-!#85j!KK;m^O2kn)R5_F;mM4~KPEP;~8;w-*GE_gPgKwIPet&yP}?i7iUzZg#SxC{GrVL z=irB$04oFrA^Wu%lq9B`ZD$Df)d4 z>a7p`sG-S3DvQ5lSM~c~bfkKoY^0i|u%e|v?DrvVqu3WvgE^3yYJY^g>W%oHx2SAK z)r(pAD&a>V4ztvZ(#97-W;HX{CWdiaL1rD-6ft^E1;$7D&R;qGepz9~lwX<)e@oHF z5>P)j{d-l`E5H7RP@kb|zL35?PHClDpQ3AhCvZ|4nxbHRCGeQOrb5Y}nixMkUdU~$ zVsd47rOEe@8ZaLBOk^^Xc_%mx&AhWgB{7cwvQly@^qKKzHYR1cO?IUh%A#dYj4C3T!Lx03&v36u zV!HkPq)-kkD7<@ttnXS*>$bD+21bVu%t}FV9a0qpz)tGV2By5g1WC% z-`pR&G%n*OJdXzG*SRsox!y~2A>1BTzPN(%V8k)!FN*=UO#y8WL(X$%Oy9WRUTeR; zG+iDsLBGP9ZjXeZhET{Km;*1TR{lIp#C{bfUS{bBy_X_YDxsZThQX^8YTp8W!D1a{ zW7X~41$~LdV~u39rdLbtTmdDpfSArfw}GxvSl0%uZ&=zT3JmEU7J8RrjupQgdUfX7 zZ28lGj`KIssN3E<*B}fPRsvYK4%!}42rRw$JegXFYYzseB&bBa7ib)vGXUQ1yADJROYa-2 zdH_rw1jY<*`4`V?#tbR_ZqaJmv`j*6zm)aK&*T8p#V0Zj@9f#_al0n_qr_tG!*H*3 zgjFUIs(;E2FAgt`rd|Ce4rXPVP`a=Z)(8G({71V-wma<_#lsk#17n8jlJj;U5w~%7 z5eLWg3~n-<32(z#>^Y$h(0hlvCveH|9&F;V>sGmy?licM09OBy!z?-o7{wWb&F)GG zt7g-$ZU-{m4H{gzVbwk4&~W}N8D)dw{}%QWfHh^oIwrSZ1nzq@^68+f&X$$H1UK$L6}Z%y=3?o5{Bv&+ELWiY-$h7q_$r>?5Ms z(SAh|{$iuoz>FmfZeDun)AG(_Soxvf=2MiLLYCxuy)0*OW)jWabDwHMj7Up!1VzV zGu>*8S{|uNGVMj`^N-fMs{e2*hOGaJq3g?BYFm0u;6++pWGp=q%gr}P#52Y~ULGB< zm#S9BO$~@P(htPqm%p}ZX{}DnQ1L}@M8CKwff_fuyARFuctv2~U~?j$0^LJ%>{Y#YyBr6{tim+nec=^(RduOCj1+R$&!CnJU~W63k{cDWY5 zm8r;h4mpsPjdN@i|7uc5EpJqydqoXNoGWh45azj2gWA%#_1 zJEfihG=6nHY+knxehOSeM8#dRRu7@fg_h{Um0lC2`m5ya2+U?a49dj4l*>3k%x}}= zrLTe-cSKX{zxWrsK^jecc_xFiW$%pT&kmWX#fL=8P$pza(N?B46n(cRJb|j@N4oQI z*&c-@PuhpfkRRE}u)witGU7j1!k>BPZ0sErBVgEm+K3;tJ&LVO+tP}=<(43-R)&%q(91PYL?p*5qj89*Kw>5q%ZJF6z1pW z7r97X_>|6!NYwp4FJ@o2Y}3Cu2GH6b-Cso1e`y1K5yJ_wA`<`O$vjv+@yGb zyfYzz1$F+DMgpeCX>M$*lpsf_xWCartK33ea`*xdn3B6>rB4iY0|HXrt3ZfBHf zgDURa25CNPdlXj3C1}Drj>0g}onjEn{#je-)qP-}Fmj!m$y{rD$^jk#nO@53;hqhsy`4B8EorU2|J;C&`lw?QNgu{736Sq)O@6zm9i?x- zPojgSi-FBRUaFD;s(ff`Sg1&EZ(YsdS6ci%a03&ps$n9H)#!(6>z&5H)HdF1;z{Z~ z7s~akM9XQU7(~9#j-XM-6ynRVT=jLSz;M_zvA2==w3CW{)iZP*+Gnv^QNxb5dTn1v z5lOeYht{@}X3?f*Dkz?1pTc~)QS!?nyf<6Zpi9TPj^fJ_Jz5(?Vc=G4=|kxHUC8!5 z%W3ycT#^S9%E}I=U6_WWopk4@MBR|uIxAdOO%xDGg#LQURw)>W?*5TQq+_b=4R~ct z>h7D1uQ7cTKEV+z!hNV*e%PPOYpP~VDv~^_aS|gvtH&M|$3l`ZRO!M2KXTKq?T^oki3AWeSye4pq8D@4v|?1dC)%T~-|ONtWzuI%IurD|g@>DIdS` zoc|boc7V0;5EZ;^V&dIb{Q@S1RzpJ);=mDgjgh$7%$1*2+72btCf3upMO9iOjn?KB%})xy@|}VD{R2GJCLGImo?M)N$i)|JLqWt- zRGH&Mk(YS)IpcwWFh4AZ}~bLm-c$&x~*y| zCbka9;x4amqt0k+Dx5L8mW*msoUo(L9BSHzoUubXs2cADu@*S&AvM7&edl=3UYOC( zH1=Q#M{G3EVE{^Wtk6fQWOsQnm>Hyl^z}h@O+5q?5ba7$@ zNTI554CQ5Z!a!ZU%rG7}EC1*?i$dg6++wc5unqmofp3?ivl!*E^|5n8pa|O7$N2(Z zn{6<*_&gv2g8Sx_1F^`v&Kxt|w~!tZ)rH3qT^MHIaON3x0cyDRasO$naU2BQekw#d`n`nRIpfNhfee5lF`gKaWH58u*f!4z zy9EqUf{DOdTH^tY=viZpB9F_z$zL{hgEhXNc{Jry__B80@wLrwnn`@16^9Wh75ebm zWS49dwXYFBkxU$nQGRIg5Xfl?xrlk&b%|Jm82TNR7{y7=Ih#zj#z14HX2KkX+q$9@<_7!nE+WuKvYs7vBNg-{2`RaYAg$icz*l@KMHMkffZ4a(Jd*3sv^Sd1Tc=WlW z@1Kk~TTN_W;A(s9Vi|&0o}sJY@#p(X2*sdQYieLYG=Fld&IK`%+n+GQbF&>wj%2qe zrQ4Q@aG<}{6vk!AM};|xLkgrV7_t$H5hC;xxCJht+mRQr2taU0kjPxK?B44p{J?^) zTnvHN4+5C`;ogAzpC~pBH&eQ~YE-pK8lrbLu-1N-N~b=gZr!j?0IaTR2hdes3>Il& z#_v*(@+JmU;o`=2e&1pJA^X{`1T}X#OHTMuwYntJ&X)eE6*~fc{gddFyI|Mg4u5_} z(vg|?2cn8XyFkmjNi5@_UTw4-l`YngYQ?S5plaEz0yhJ!=S=#SUh>d+a9Zy(7HG#gqUJeT?X9$}s#6#gzr zO|kdf=S!g)%TNY{p*VRi4Cr z&!K&A@%!YtkMDrF_ut|~;`d2&eGq_!_vOg(``EcH2wG}>HfbX9E9HE0pKu$#zO6*# zZnBT@oHLu#V(@&7-9Nj{Fe%5eKe@qAHR&#silq~6QcQoX`5b(&u}R;p=%5jM|H!dv z4L5G;lY;z~Vqg?*oX)=qIi4p#GpT6xZQ*tyjnhlQ%52^`Y{zSpA*nMAzORN0P*SZ| zgiQTI>FADTfP!QF_`EscU{be8A^=Py>{T5)>{NLtiT(4 z2DWGYWKSplrLz;n)La*S<{Pp|B}cjC;WUZ3aQJ>R;QOMe1CZzh>+){AaCKmXW9uv< z8`7-9K7~c~#@}y7l;PZ>BRqxPf8He9b>DUi(?z71c5u4#HDDuDW^QE7Arn>|RuvQc zrWZ03Ua5XuK|J(0H-8}@FX2Cnty{431}p#0k&9`AbR0z54WEQa{|Sq0KFSk=>-{Oh z$4{&{$OzxDOA$^#;U-|722PPuyhHwOl#6czFNJ+|l6`%)dnYe=E*IImh-%!@yNH}4 zy=50RS#lA&h0f%Uc@at=0q|!>Gsg7KLdzlQGzzUo>x2)jM(9)zokRwMLaUKFPgg9A z;r(UMj0OBXL!C(PYZbRLLf(3a?IBWoFuMpP?1X>NBa}ck{=9V(iRDp+#S!G+j%?k{eBBLyoqGk_YXaMAE*m@SxiUgVU_sa*+z?dBwpYV}$c0Ka}Jy1F@U^<8EvH6fw=@3

    LJv>- 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

    tAx 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 literal 0 HcmV?d00001 diff --git a/kernel_headers/asm-generic/..install.cmd b/kernel_headers/asm-generic/..install.cmd new file mode 100644 index 0000000..fd80e86 --- /dev/null +++ b/kernel_headers/asm-generic/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm-generic/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm-generic /android/kernels/moto/surnia/kernel-msm/include/uapi/asm-generic auxvec.h bitsperlong.h errno-base.h errno.h fcntl.h int-l64.h int-ll64.h ioctl.h ioctls.h ipcbuf.h kvm_para.h mman-common.h mman.h msgbuf.h param.h poll.h posix_types.h resource.h sembuf.h setup.h shmbuf.h shmparam.h siginfo.h signal-defs.h signal.h socket.h sockios.h stat.h statfs.h swab.h termbits.h termios.h types.h ucontext.h unistd.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm-generic /android/kernels/moto/surnia/kernel-msm/include/asm-generic ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm-generic /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/asm-generic ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm-generic/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm-generic/.install diff --git a/kernel_headers/asm-generic/.install b/kernel_headers/asm-generic/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/asm-generic/auxvec.h b/kernel_headers/asm-generic/auxvec.h new file mode 100644 index 0000000..b99573b --- /dev/null +++ b/kernel_headers/asm-generic/auxvec.h @@ -0,0 +1,8 @@ +#ifndef __ASM_GENERIC_AUXVEC_H +#define __ASM_GENERIC_AUXVEC_H +/* + * Not all architectures need their own auxvec.h, the most + * common definitions are already in linux/auxvec.h. + */ + +#endif /* __ASM_GENERIC_AUXVEC_H */ diff --git a/kernel_headers/asm-generic/bitsperlong.h b/kernel_headers/asm-generic/bitsperlong.h new file mode 100644 index 0000000..f832c3c --- /dev/null +++ b/kernel_headers/asm-generic/bitsperlong.h @@ -0,0 +1,15 @@ +#ifndef __ASM_GENERIC_BITS_PER_LONG +#define __ASM_GENERIC_BITS_PER_LONG + +/* + * There seems to be no way of detecting this automatically from user + * space, so 64 bit architectures should override this in their + * bitsperlong.h. In particular, an architecture that supports + * both 32 and 64 bit user space must not rely on CONFIG_64BIT + * to decide it, but rather check a compiler provided macro. + */ +#ifndef __BITS_PER_LONG +#define __BITS_PER_LONG 32 +#endif + +#endif /* __ASM_GENERIC_BITS_PER_LONG */ diff --git a/kernel_headers/asm-generic/errno-base.h b/kernel_headers/asm-generic/errno-base.h new file mode 100644 index 0000000..6511597 --- /dev/null +++ b/kernel_headers/asm-generic/errno-base.h @@ -0,0 +1,39 @@ +#ifndef _ASM_GENERIC_ERRNO_BASE_H +#define _ASM_GENERIC_ERRNO_BASE_H + +#define EPERM 1 /* Operation not permitted */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Interrupted system call */ +#define EIO 5 /* I/O error */ +#define ENXIO 6 /* No such device or address */ +#define E2BIG 7 /* Argument list too long */ +#define ENOEXEC 8 /* Exec format error */ +#define EBADF 9 /* Bad file number */ +#define ECHILD 10 /* No child processes */ +#define EAGAIN 11 /* Try again */ +#define ENOMEM 12 /* Out of memory */ +#define EACCES 13 /* Permission denied */ +#define EFAULT 14 /* Bad address */ +#define ENOTBLK 15 /* Block device required */ +#define EBUSY 16 /* Device or resource busy */ +#define EEXIST 17 /* File exists */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory */ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* File table overflow */ +#define EMFILE 24 /* Too many open files */ +#define ENOTTY 25 /* Not a typewriter */ +#define ETXTBSY 26 /* Text file busy */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read-only file system */ +#define EMLINK 31 /* Too many links */ +#define EPIPE 32 /* Broken pipe */ +#define EDOM 33 /* Math argument out of domain of func */ +#define ERANGE 34 /* Math result not representable */ + +#endif diff --git a/kernel_headers/asm-generic/errno.h b/kernel_headers/asm-generic/errno.h new file mode 100644 index 0000000..a1331ce --- /dev/null +++ b/kernel_headers/asm-generic/errno.h @@ -0,0 +1,113 @@ +#ifndef _ASM_GENERIC_ERRNO_H +#define _ASM_GENERIC_ERRNO_H + +#include + +#define EDEADLK 35 /* Resource deadlock would occur */ +#define ENAMETOOLONG 36 /* File name too long */ +#define ENOLCK 37 /* No record locks available */ +#define ENOSYS 38 /* Function not implemented */ +#define ENOTEMPTY 39 /* Directory not empty */ +#define ELOOP 40 /* Too many symbolic links encountered */ +#define EWOULDBLOCK EAGAIN /* Operation would block */ +#define ENOMSG 42 /* No message of desired type */ +#define EIDRM 43 /* Identifier removed */ +#define ECHRNG 44 /* Channel number out of range */ +#define EL2NSYNC 45 /* Level 2 not synchronized */ +#define EL3HLT 46 /* Level 3 halted */ +#define EL3RST 47 /* Level 3 reset */ +#define ELNRNG 48 /* Link number out of range */ +#define EUNATCH 49 /* Protocol driver not attached */ +#define ENOCSI 50 /* No CSI structure available */ +#define EL2HLT 51 /* Level 2 halted */ +#define EBADE 52 /* Invalid exchange */ +#define EBADR 53 /* Invalid request descriptor */ +#define EXFULL 54 /* Exchange full */ +#define ENOANO 55 /* No anode */ +#define EBADRQC 56 /* Invalid request code */ +#define EBADSLT 57 /* Invalid slot */ + +#define EDEADLOCK EDEADLK + +#define EBFONT 59 /* Bad font file format */ +#define ENOSTR 60 /* Device not a stream */ +#define ENODATA 61 /* No data available */ +#define ETIME 62 /* Timer expired */ +#define ENOSR 63 /* Out of streams resources */ +#define ENONET 64 /* Machine is not on the network */ +#define ENOPKG 65 /* Package not installed */ +#define EREMOTE 66 /* Object is remote */ +#define ENOLINK 67 /* Link has been severed */ +#define EADV 68 /* Advertise error */ +#define ESRMNT 69 /* Srmount error */ +#define ECOMM 70 /* Communication error on send */ +#define EPROTO 71 /* Protocol error */ +#define EMULTIHOP 72 /* Multihop attempted */ +#define EDOTDOT 73 /* RFS specific error */ +#define EBADMSG 74 /* Not a data message */ +#define EOVERFLOW 75 /* Value too large for defined data type */ +#define ENOTUNIQ 76 /* Name not unique on network */ +#define EBADFD 77 /* File descriptor in bad state */ +#define EREMCHG 78 /* Remote address changed */ +#define ELIBACC 79 /* Can not access a needed shared library */ +#define ELIBBAD 80 /* Accessing a corrupted shared library */ +#define ELIBSCN 81 /* .lib section in a.out corrupted */ +#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ +#define ELIBEXEC 83 /* Cannot exec a shared library directly */ +#define EILSEQ 84 /* Illegal byte sequence */ +#define ERESTART 85 /* Interrupted system call should be restarted */ +#define ESTRPIPE 86 /* Streams pipe error */ +#define EUSERS 87 /* Too many users */ +#define ENOTSOCK 88 /* Socket operation on non-socket */ +#define EDESTADDRREQ 89 /* Destination address required */ +#define EMSGSIZE 90 /* Message too long */ +#define EPROTOTYPE 91 /* Protocol wrong type for socket */ +#define ENOPROTOOPT 92 /* Protocol not available */ +#define EPROTONOSUPPORT 93 /* Protocol not supported */ +#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ +#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ +#define EPFNOSUPPORT 96 /* Protocol family not supported */ +#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ +#define EADDRINUSE 98 /* Address already in use */ +#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ +#define ENETDOWN 100 /* Network is down */ +#define ENETUNREACH 101 /* Network is unreachable */ +#define ENETRESET 102 /* Network dropped connection because of reset */ +#define ECONNABORTED 103 /* Software caused connection abort */ +#define ECONNRESET 104 /* Connection reset by peer */ +#define ENOBUFS 105 /* No buffer space available */ +#define EISCONN 106 /* Transport endpoint is already connected */ +#define ENOTCONN 107 /* Transport endpoint is not connected */ +#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ +#define ETOOMANYREFS 109 /* Too many references: cannot splice */ +#define ETIMEDOUT 110 /* Connection timed out */ +#define ECONNREFUSED 111 /* Connection refused */ +#define EHOSTDOWN 112 /* Host is down */ +#define EHOSTUNREACH 113 /* No route to host */ +#define EALREADY 114 /* Operation already in progress */ +#define EINPROGRESS 115 /* Operation now in progress */ +#define ESTALE 116 /* Stale NFS file handle */ +#define EUCLEAN 117 /* Structure needs cleaning */ +#define ENOTNAM 118 /* Not a XENIX named type file */ +#define ENAVAIL 119 /* No XENIX semaphores available */ +#define EISNAM 120 /* Is a named type file */ +#define EREMOTEIO 121 /* Remote I/O error */ +#define EDQUOT 122 /* Quota exceeded */ + +#define ENOMEDIUM 123 /* No medium found */ +#define EMEDIUMTYPE 124 /* Wrong medium type */ +#define ECANCELED 125 /* Operation Canceled */ +#define ENOKEY 126 /* Required key not available */ +#define EKEYEXPIRED 127 /* Key has expired */ +#define EKEYREVOKED 128 /* Key has been revoked */ +#define EKEYREJECTED 129 /* Key was rejected by service */ + +/* for robust mutexes */ +#define EOWNERDEAD 130 /* Owner died */ +#define ENOTRECOVERABLE 131 /* State not recoverable */ + +#define ERFKILL 132 /* Operation not possible due to RF-kill */ + +#define EHWPOISON 133 /* Memory page has hardware error */ + +#endif diff --git a/kernel_headers/asm-generic/fcntl.h b/kernel_headers/asm-generic/fcntl.h new file mode 100644 index 0000000..a48937d --- /dev/null +++ b/kernel_headers/asm-generic/fcntl.h @@ -0,0 +1,199 @@ +#ifndef _ASM_GENERIC_FCNTL_H +#define _ASM_GENERIC_FCNTL_H + +#include + +/* + * FMODE_EXEC is 0x20 + * FMODE_NONOTIFY is 0x1000000 + * These cannot be used by userspace O_* until internal and external open + * flags are split. + * -Eric Paris + */ + +/* + * When introducing new O_* bits, please check its uniqueness in fcntl_init(). + */ + +#define O_ACCMODE 00000003 +#define O_RDONLY 00000000 +#define O_WRONLY 00000001 +#define O_RDWR 00000002 +#ifndef O_CREAT +#define O_CREAT 00000100 /* not fcntl */ +#endif +#ifndef O_EXCL +#define O_EXCL 00000200 /* not fcntl */ +#endif +#ifndef O_NOCTTY +#define O_NOCTTY 00000400 /* not fcntl */ +#endif +#ifndef O_TRUNC +#define O_TRUNC 00001000 /* not fcntl */ +#endif +#ifndef O_APPEND +#define O_APPEND 00002000 +#endif +#ifndef O_NONBLOCK +#define O_NONBLOCK 00004000 +#endif +#ifndef O_DSYNC +#define O_DSYNC 00010000 /* used to be O_SYNC, see below */ +#endif +#ifndef FASYNC +#define FASYNC 00020000 /* fcntl, for BSD compatibility */ +#endif +#ifndef O_DIRECT +#define O_DIRECT 00040000 /* direct disk access hint */ +#endif +#ifndef O_LARGEFILE +#define O_LARGEFILE 00100000 +#endif +#ifndef O_DIRECTORY +#define O_DIRECTORY 00200000 /* must be a directory */ +#endif +#ifndef O_NOFOLLOW +#define O_NOFOLLOW 00400000 /* don't follow links */ +#endif +#ifndef O_NOATIME +#define O_NOATIME 01000000 +#endif +#ifndef O_CLOEXEC +#define O_CLOEXEC 02000000 /* set close_on_exec */ +#endif + +/* + * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using + * the O_SYNC flag. We continue to use the existing numerical value + * for O_DSYNC semantics now, but using the correct symbolic name for it. + * This new value is used to request true Posix O_SYNC semantics. It is + * defined in this strange way to make sure applications compiled against + * new headers get at least O_DSYNC semantics on older kernels. + * + * This has the nice side-effect that we can simply test for O_DSYNC + * wherever we do not care if O_DSYNC or O_SYNC is used. + * + * Note: __O_SYNC must never be used directly. + */ +#ifndef O_SYNC +#define __O_SYNC 04000000 +#define O_SYNC (__O_SYNC|O_DSYNC) +#endif + +#ifndef O_PATH +#define O_PATH 010000000 +#endif + +#ifndef O_NDELAY +#define O_NDELAY O_NONBLOCK +#endif + +#define F_DUPFD 0 /* dup */ +#define F_GETFD 1 /* get close_on_exec */ +#define F_SETFD 2 /* set/clear close_on_exec */ +#define F_GETFL 3 /* get file->f_flags */ +#define F_SETFL 4 /* set file->f_flags */ +#ifndef F_GETLK +#define F_GETLK 5 +#define F_SETLK 6 +#define F_SETLKW 7 +#endif +#ifndef F_SETOWN +#define F_SETOWN 8 /* for sockets. */ +#define F_GETOWN 9 /* for sockets. */ +#endif +#ifndef F_SETSIG +#define F_SETSIG 10 /* for sockets. */ +#define F_GETSIG 11 /* for sockets. */ +#endif + +#ifndef CONFIG_64BIT +#ifndef F_GETLK64 +#define F_GETLK64 12 /* using 'struct flock64' */ +#define F_SETLK64 13 +#define F_SETLKW64 14 +#endif +#endif + +#ifndef F_SETOWN_EX +#define F_SETOWN_EX 15 +#define F_GETOWN_EX 16 +#endif + +#ifndef F_GETOWNER_UIDS +#define F_GETOWNER_UIDS 17 +#endif + +#define F_OWNER_TID 0 +#define F_OWNER_PID 1 +#define F_OWNER_PGRP 2 + +struct f_owner_ex { + int type; + __kernel_pid_t pid; +}; + +/* for F_[GET|SET]FL */ +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ + +/* for posix fcntl() and lockf() */ +#ifndef F_RDLCK +#define F_RDLCK 0 +#define F_WRLCK 1 +#define F_UNLCK 2 +#endif + +/* for old implementation of bsd flock () */ +#ifndef F_EXLCK +#define F_EXLCK 4 /* or 3 */ +#define F_SHLCK 8 /* or 4 */ +#endif + +/* operations for bsd flock(), also used by the kernel implementation */ +#define LOCK_SH 1 /* shared lock */ +#define LOCK_EX 2 /* exclusive lock */ +#define LOCK_NB 4 /* or'd with one of the above to prevent + blocking */ +#define LOCK_UN 8 /* remove lock */ + +#define LOCK_MAND 32 /* This is a mandatory flock ... */ +#define LOCK_READ 64 /* which allows concurrent read operations */ +#define LOCK_WRITE 128 /* which allows concurrent write operations */ +#define LOCK_RW 192 /* which allows concurrent read & write ops */ + +#define F_LINUX_SPECIFIC_BASE 1024 + +#ifndef HAVE_ARCH_STRUCT_FLOCK +#ifndef __ARCH_FLOCK_PAD +#define __ARCH_FLOCK_PAD +#endif + +struct flock { + short l_type; + short l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; + __ARCH_FLOCK_PAD +}; +#endif + +#ifndef CONFIG_64BIT + +#ifndef HAVE_ARCH_STRUCT_FLOCK64 +#ifndef __ARCH_FLOCK64_PAD +#define __ARCH_FLOCK64_PAD +#endif + +struct flock64 { + short l_type; + short l_whence; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; + __ARCH_FLOCK64_PAD +}; +#endif +#endif /* !CONFIG_64BIT */ + +#endif /* _ASM_GENERIC_FCNTL_H */ diff --git a/kernel_headers/asm-generic/int-l64.h b/kernel_headers/asm-generic/int-l64.h new file mode 100644 index 0000000..e271ae2 --- /dev/null +++ b/kernel_headers/asm-generic/int-l64.h @@ -0,0 +1,34 @@ +/* + * asm-generic/int-l64.h + * + * Integer declarations for architectures which use "long" + * for 64-bit types. + */ + +#ifndef _ASM_GENERIC_INT_L64_H +#define _ASM_GENERIC_INT_L64_H + +#include + +#ifndef __ASSEMBLY__ +/* + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the + * header files exported to user space + */ + +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + +typedef __signed__ long __s64; +typedef unsigned long __u64; + +#endif /* __ASSEMBLY__ */ + + +#endif /* _ASM_GENERIC_INT_L64_H */ diff --git a/kernel_headers/asm-generic/int-ll64.h b/kernel_headers/asm-generic/int-ll64.h new file mode 100644 index 0000000..0ede047 --- /dev/null +++ b/kernel_headers/asm-generic/int-ll64.h @@ -0,0 +1,39 @@ +/* + * asm-generic/int-ll64.h + * + * Integer declarations for architectures which use "long long" + * for 64-bit types. + */ + +#ifndef _ASM_GENERIC_INT_LL64_H +#define _ASM_GENERIC_INT_LL64_H + +#include + +#ifndef __ASSEMBLY__ +/* + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the + * header files exported to user space + */ + +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + +#ifdef __GNUC__ +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; +#else +typedef __signed__ long long __s64; +typedef unsigned long long __u64; +#endif + +#endif /* __ASSEMBLY__ */ + + +#endif /* _ASM_GENERIC_INT_LL64_H */ diff --git a/kernel_headers/asm-generic/ioctl.h b/kernel_headers/asm-generic/ioctl.h new file mode 100644 index 0000000..0da2c7d --- /dev/null +++ b/kernel_headers/asm-generic/ioctl.h @@ -0,0 +1,96 @@ +#ifndef _ASM_GENERIC_IOCTL_H +#define _ASM_GENERIC_IOCTL_H + +/* ioctl command encoding: 32 bits total, command in lower 16 bits, + * size of the parameter structure in the lower 14 bits of the + * upper 16 bits. + * Encoding the size of the parameter structure in the ioctl request + * is useful for catching programs compiled with old versions + * and to avoid overwriting user space outside the user buffer area. + * The highest 2 bits are reserved for indicating the ``access mode''. + * NOTE: This limits the max parameter size to 16kB -1 ! + */ + +/* + * The following is for compatibility across the various Linux + * platforms. The generic ioctl numbering scheme doesn't really enforce + * a type field. De facto, however, the top 8 bits of the lower 16 + * bits are indeed used as a type field, so we might just as well make + * this explicit here. Please be sure to use the decoding macros + * below from now on. + */ +#define _IOC_NRBITS 8 +#define _IOC_TYPEBITS 8 + +/* + * Let any architecture override either of the following before + * including this file. + */ + +#ifndef _IOC_SIZEBITS +# define _IOC_SIZEBITS 14 +#endif + +#ifndef _IOC_DIRBITS +# define _IOC_DIRBITS 2 +#endif + +#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) +#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) +#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1) +#define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1) + +#define _IOC_NRSHIFT 0 +#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS) +#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS) +#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) + +/* + * Direction bits, which any architecture can choose to override + * before including this file. + */ + +#ifndef _IOC_NONE +# define _IOC_NONE 0U +#endif + +#ifndef _IOC_WRITE +# define _IOC_WRITE 1U +#endif + +#ifndef _IOC_READ +# define _IOC_READ 2U +#endif + +#define _IOC(dir,type,nr,size) \ + (((dir) << _IOC_DIRSHIFT) | \ + ((type) << _IOC_TYPESHIFT) | \ + ((nr) << _IOC_NRSHIFT) | \ + ((size) << _IOC_SIZESHIFT)) + +#define _IOC_TYPECHECK(t) (sizeof(t)) + +/* used to create numbers */ +#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0) +#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) +#define _IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size)) +#define _IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) + +/* used to decode ioctl numbers.. */ +#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) +#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) +#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) +#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK) + +/* ...and for the drivers/sound files... */ + +#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) +#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT) +#define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT) +#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT) +#define IOCSIZE_SHIFT (_IOC_SIZESHIFT) + +#endif /* _ASM_GENERIC_IOCTL_H */ diff --git a/kernel_headers/asm-generic/ioctls.h b/kernel_headers/asm-generic/ioctls.h new file mode 100644 index 0000000..6404e69 --- /dev/null +++ b/kernel_headers/asm-generic/ioctls.h @@ -0,0 +1,120 @@ +#ifndef __ASM_GENERIC_IOCTLS_H +#define __ASM_GENERIC_IOCTLS_H + +#include + +/* + * These are the most common definitions for tty ioctl numbers. + * Most of them do not use the recommended _IOC(), but there is + * probably some source code out there hardcoding the number, + * so we might as well use them for all new platforms. + * + * The architectures that use different values here typically + * try to be compatible with some Unix variants for the same + * architecture. + */ + +/* 0x54 is just a magic number to make these relatively unique ('T') */ + +#define TCGETS 0x5401 +#define TCSETS 0x5402 +#define TCSETSW 0x5403 +#define TCSETSF 0x5404 +#define TCGETA 0x5405 +#define TCSETA 0x5406 +#define TCSETAW 0x5407 +#define TCSETAF 0x5408 +#define TCSBRK 0x5409 +#define TCXONC 0x540A +#define TCFLSH 0x540B +#define TIOCEXCL 0x540C +#define TIOCNXCL 0x540D +#define TIOCSCTTY 0x540E +#define TIOCGPGRP 0x540F +#define TIOCSPGRP 0x5410 +#define TIOCOUTQ 0x5411 +#define TIOCSTI 0x5412 +#define TIOCGWINSZ 0x5413 +#define TIOCSWINSZ 0x5414 +#define TIOCMGET 0x5415 +#define TIOCMBIS 0x5416 +#define TIOCMBIC 0x5417 +#define TIOCMSET 0x5418 +#define TIOCGSOFTCAR 0x5419 +#define TIOCSSOFTCAR 0x541A +#define FIONREAD 0x541B +#define TIOCINQ FIONREAD +#define TIOCLINUX 0x541C +#define TIOCCONS 0x541D +#define TIOCGSERIAL 0x541E +#define TIOCSSERIAL 0x541F +#define TIOCPKT 0x5420 +#define FIONBIO 0x5421 +#define TIOCNOTTY 0x5422 +#define TIOCSETD 0x5423 +#define TIOCGETD 0x5424 +#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ +#define TIOCSBRK 0x5427 /* BSD compatibility */ +#define TIOCCBRK 0x5428 /* BSD compatibility */ +#define TIOCGSID 0x5429 /* Return the session ID of FD */ +#define TCGETS2 _IOR('T', 0x2A, struct termios2) +#define TCSETS2 _IOW('T', 0x2B, struct termios2) +#define TCSETSW2 _IOW('T', 0x2C, struct termios2) +#define TCSETSF2 _IOW('T', 0x2D, struct termios2) +#define TIOCGRS485 0x542E +#ifndef TIOCSRS485 +#define TIOCSRS485 0x542F +#endif +#define TIOCGPTN _IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ +#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */ +#define TIOCGDEV _IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */ +#define TCGETX 0x5432 /* SYS5 TCGETX compatibility */ +#define TCSETX 0x5433 +#define TCSETXF 0x5434 +#define TCSETXW 0x5435 +#define TIOCSIG _IOW('T', 0x36, int) /* pty: generate signal */ +#define TIOCVHANGUP 0x5437 +#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */ +#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */ +#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */ +#define TIOCPMGET 0x5441 /* PM get */ +#define TIOCPMPUT 0x5442 /* PM put */ +#define TIOCPMACT 0x5443 /* PM is active */ + +#define FIONCLEX 0x5450 +#define FIOCLEX 0x5451 +#define FIOASYNC 0x5452 +#define TIOCSERCONFIG 0x5453 +#define TIOCSERGWILD 0x5454 +#define TIOCSERSWILD 0x5455 +#define TIOCGLCKTRMIOS 0x5456 +#define TIOCSLCKTRMIOS 0x5457 +#define TIOCSERGSTRUCT 0x5458 /* For debugging only */ +#define TIOCSERGETLSR 0x5459 /* Get line status register */ +#define TIOCSERGETMULTI 0x545A /* Get multiport config */ +#define TIOCSERSETMULTI 0x545B /* Set multiport config */ + +#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */ +#define TIOCGICOUNT 0x545D /* read serial port __inline__ interrupt counts */ + +/* + * Some arches already define FIOQSIZE due to a historical + * conflict with a Hayes modem-specific ioctl value. + */ +#ifndef FIOQSIZE +# define FIOQSIZE 0x5460 +#endif + +/* Used for packet mode */ +#define TIOCPKT_DATA 0 +#define TIOCPKT_FLUSHREAD 1 +#define TIOCPKT_FLUSHWRITE 2 +#define TIOCPKT_STOP 4 +#define TIOCPKT_START 8 +#define TIOCPKT_NOSTOP 16 +#define TIOCPKT_DOSTOP 32 +#define TIOCPKT_IOCTL 64 + +#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ + +#endif /* __ASM_GENERIC_IOCTLS_H */ diff --git a/kernel_headers/asm-generic/ipcbuf.h b/kernel_headers/asm-generic/ipcbuf.h new file mode 100644 index 0000000..76982b2 --- /dev/null +++ b/kernel_headers/asm-generic/ipcbuf.h @@ -0,0 +1,34 @@ +#ifndef __ASM_GENERIC_IPCBUF_H +#define __ASM_GENERIC_IPCBUF_H + +/* + * The generic ipc64_perm structure: + * Note extra padding because this structure is passed back and forth + * between kernel and user space. + * + * ipc64_perm was originally meant to be architecture specific, but + * everyone just ended up making identical copies without specific + * optimizations, so we may just as well all use the same one. + * + * Pad space is left for: + * - 32-bit mode_t on architectures that only had 16 bit + * - 32-bit seq + * - 2 miscellaneous 32-bit values + */ + +struct ipc64_perm { + __kernel_key_t key; + __kernel_uid32_t uid; + __kernel_gid32_t gid; + __kernel_uid32_t cuid; + __kernel_gid32_t cgid; + __kernel_mode_t mode; + /* pad if mode_t is u16: */ + unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; + unsigned short seq; + unsigned short __pad2; + unsigned long __unused1; + unsigned long __unused2; +}; + +#endif /* __ASM_GENERIC_IPCBUF_H */ diff --git a/kernel_headers/asm-generic/kvm_para.h b/kernel_headers/asm-generic/kvm_para.h new file mode 100644 index 0000000..486f0af --- /dev/null +++ b/kernel_headers/asm-generic/kvm_para.h @@ -0,0 +1,4 @@ +/* + * There isn't anything here, but the file must not be empty or patch + * will delete it. + */ diff --git a/kernel_headers/asm-generic/mman-common.h b/kernel_headers/asm-generic/mman-common.h new file mode 100644 index 0000000..4164529 --- /dev/null +++ b/kernel_headers/asm-generic/mman-common.h @@ -0,0 +1,69 @@ +#ifndef __ASM_GENERIC_MMAN_COMMON_H +#define __ASM_GENERIC_MMAN_COMMON_H + +/* + Author: Michael S. Tsirkin , Mellanox Technologies Ltd. + Based on: asm-xxx/mman.h +*/ + +#define PROT_READ 0x1 /* page can be read */ +#define PROT_WRITE 0x2 /* page can be written */ +#define PROT_EXEC 0x4 /* page can be executed */ +#define PROT_SEM 0x8 /* page may be used for atomic ops */ +#define PROT_NONE 0x0 /* page can not be accessed */ +#define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */ +#define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */ + +#define MAP_SHARED 0x01 /* Share changes */ +#define MAP_PRIVATE 0x02 /* Changes are private */ +#define MAP_TYPE 0x0f /* Mask for type of mapping */ +#define MAP_FIXED 0x10 /* Interpret addr exactly */ +#define MAP_ANONYMOUS 0x20 /* don't use a file */ +#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ +#else +# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ +#endif + +#define MS_ASYNC 1 /* sync memory asynchronously */ +#define MS_INVALIDATE 2 /* invalidate the caches */ +#define MS_SYNC 4 /* synchronous memory sync */ + +#define MADV_NORMAL 0 /* no further special treatment */ +#define MADV_RANDOM 1 /* expect random page references */ +#define MADV_SEQUENTIAL 2 /* expect sequential page references */ +#define MADV_WILLNEED 3 /* will need these pages */ +#define MADV_DONTNEED 4 /* don't need these pages */ + +/* common parameters: try to keep these consistent across architectures */ +#define MADV_REMOVE 9 /* remove these pages & resources */ +#define MADV_DONTFORK 10 /* don't inherit across fork */ +#define MADV_DOFORK 11 /* do inherit across fork */ +#define MADV_HWPOISON 100 /* poison a page for testing */ +#define MADV_SOFT_OFFLINE 101 /* soft offline page for testing */ + +#define MADV_MERGEABLE 12 /* KSM may merge identical pages */ +#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */ + +#define MADV_HUGEPAGE 14 /* Worth backing with hugepages */ +#define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */ + +#define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, + overrides the coredump filter bits */ +#define MADV_DODUMP 17 /* Clear the MADV_NODUMP flag */ + +/* compatibility flags */ +#define MAP_FILE 0 + +/* + * When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. + * This gives us 6 bits, which is enough until someone invents 128 bit address + * spaces. + * + * Assume these are all power of twos. + * When 0 use the default page size. + */ +#define MAP_HUGE_SHIFT 26 +#define MAP_HUGE_MASK 0x3f + +#endif /* __ASM_GENERIC_MMAN_COMMON_H */ diff --git a/kernel_headers/asm-generic/mman.h b/kernel_headers/asm-generic/mman.h new file mode 100644 index 0000000..e9fe6fd --- /dev/null +++ b/kernel_headers/asm-generic/mman.h @@ -0,0 +1,21 @@ +#ifndef __ASM_GENERIC_MMAN_H +#define __ASM_GENERIC_MMAN_H + +#include + +#define MAP_GROWSDOWN 0x0100 /* stack-like segment */ +#define MAP_DENYWRITE 0x0800 /* ETXTBSY */ +#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */ +#define MAP_LOCKED 0x2000 /* pages are locked */ +#define MAP_NORESERVE 0x4000 /* don't check for reservations */ +#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */ +#define MAP_NONBLOCK 0x10000 /* do not block on IO */ +#define MAP_STACK 0x20000 /* give out an address that is best suited for process/thread stacks */ +#define MAP_HUGETLB 0x40000 /* create a huge page mapping */ + +/* Bits [26:31] are reserved, see mman-common.h for MAP_HUGETLB usage */ + +#define MCL_CURRENT 1 /* lock all current mappings */ +#define MCL_FUTURE 2 /* lock all future mappings */ + +#endif /* __ASM_GENERIC_MMAN_H */ diff --git a/kernel_headers/asm-generic/msgbuf.h b/kernel_headers/asm-generic/msgbuf.h new file mode 100644 index 0000000..aec850d --- /dev/null +++ b/kernel_headers/asm-generic/msgbuf.h @@ -0,0 +1,47 @@ +#ifndef __ASM_GENERIC_MSGBUF_H +#define __ASM_GENERIC_MSGBUF_H + +#include +/* + * generic msqid64_ds structure. + * + * Note extra padding because this structure is passed back and forth + * between kernel and user space. + * + * msqid64_ds was originally meant to be architecture specific, but + * everyone just ended up making identical copies without specific + * optimizations, so we may just as well all use the same one. + * + * 64 bit architectures typically define a 64 bit __kernel_time_t, + * so they do not need the first three padding words. + * On big-endian systems, the padding is in the wrong place. + * + * Pad space is left for: + * - 64-bit time_t to solve y2038 problem + * - 2 miscellaneous 32-bit values + */ + +struct msqid64_ds { + struct ipc64_perm msg_perm; + __kernel_time_t msg_stime; /* last msgsnd time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused1; +#endif + __kernel_time_t msg_rtime; /* last msgrcv time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused2; +#endif + __kernel_time_t msg_ctime; /* last change time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused3; +#endif + unsigned long msg_cbytes; /* current number of bytes on queue */ + unsigned long msg_qnum; /* number of messages in queue */ + unsigned long msg_qbytes; /* max number of bytes on queue */ + __kernel_pid_t msg_lspid; /* pid of last msgsnd */ + __kernel_pid_t msg_lrpid; /* last receive pid */ + unsigned long __unused4; + unsigned long __unused5; +}; + +#endif /* __ASM_GENERIC_MSGBUF_H */ diff --git a/kernel_headers/asm-generic/param.h b/kernel_headers/asm-generic/param.h new file mode 100644 index 0000000..bd69ff3 --- /dev/null +++ b/kernel_headers/asm-generic/param.h @@ -0,0 +1,19 @@ +#ifndef __ASM_GENERIC_PARAM_H +#define __ASM_GENERIC_PARAM_H + +#ifndef HZ +#define HZ 100 +#endif + +#ifndef EXEC_PAGESIZE +#define EXEC_PAGESIZE 4096 +#endif + +#ifndef NOGROUP +#define NOGROUP (-1) +#endif + +#define MAXHOSTNAMELEN 64 /* max length of hostname */ + + +#endif /* __ASM_GENERIC_PARAM_H */ diff --git a/kernel_headers/asm-generic/poll.h b/kernel_headers/asm-generic/poll.h new file mode 100644 index 0000000..9ce7f44 --- /dev/null +++ b/kernel_headers/asm-generic/poll.h @@ -0,0 +1,39 @@ +#ifndef __ASM_GENERIC_POLL_H +#define __ASM_GENERIC_POLL_H + +/* These are specified by iBCS2 */ +#define POLLIN 0x0001 +#define POLLPRI 0x0002 +#define POLLOUT 0x0004 +#define POLLERR 0x0008 +#define POLLHUP 0x0010 +#define POLLNVAL 0x0020 + +/* The rest seem to be more-or-less nonstandard. Check them! */ +#define POLLRDNORM 0x0040 +#define POLLRDBAND 0x0080 +#ifndef POLLWRNORM +#define POLLWRNORM 0x0100 +#endif +#ifndef POLLWRBAND +#define POLLWRBAND 0x0200 +#endif +#ifndef POLLMSG +#define POLLMSG 0x0400 +#endif +#ifndef POLLREMOVE +#define POLLREMOVE 0x1000 +#endif +#ifndef POLLRDHUP +#define POLLRDHUP 0x2000 +#endif + +#define POLLFREE 0x4000 /* currently only for epoll */ + +struct pollfd { + int fd; + short events; + short revents; +}; + +#endif /* __ASM_GENERIC_POLL_H */ diff --git a/kernel_headers/asm-generic/posix_types.h b/kernel_headers/asm-generic/posix_types.h new file mode 100644 index 0000000..fe74fcc --- /dev/null +++ b/kernel_headers/asm-generic/posix_types.h @@ -0,0 +1,96 @@ +#ifndef __ASM_GENERIC_POSIX_TYPES_H +#define __ASM_GENERIC_POSIX_TYPES_H + +#include +/* + * This file is generally used by user-level software, so you need to + * be a little careful about namespace pollution etc. + * + * First the types that are often defined in different ways across + * architectures, so that you can override them. + */ + +#ifndef __kernel_long_t +typedef long __kernel_long_t; +typedef unsigned long __kernel_ulong_t; +#endif + +#ifndef __kernel_ino_t +typedef __kernel_ulong_t __kernel_ino_t; +#endif + +#ifndef __kernel_mode_t +typedef unsigned int __kernel_mode_t; +#endif + +#ifndef __kernel_pid_t +typedef int __kernel_pid_t; +#endif + +#ifndef __kernel_ipc_pid_t +typedef int __kernel_ipc_pid_t; +#endif + +#ifndef __kernel_uid_t +typedef unsigned int __kernel_uid_t; +typedef unsigned int __kernel_gid_t; +#endif + +#ifndef __kernel_suseconds_t +typedef __kernel_long_t __kernel_suseconds_t; +#endif + +#ifndef __kernel_daddr_t +typedef int __kernel_daddr_t; +#endif + +#ifndef __kernel_uid32_t +typedef unsigned int __kernel_uid32_t; +typedef unsigned int __kernel_gid32_t; +#endif + +#ifndef __kernel_old_uid_t +typedef __kernel_uid_t __kernel_old_uid_t; +typedef __kernel_gid_t __kernel_old_gid_t; +#endif + +#ifndef __kernel_old_dev_t +typedef unsigned int __kernel_old_dev_t; +#endif + +/* + * Most 32 bit architectures use "unsigned int" size_t, + * and all 64 bit architectures use "unsigned long" size_t. + */ +#ifndef __kernel_size_t +#if __BITS_PER_LONG != 64 +typedef unsigned int __kernel_size_t; +typedef int __kernel_ssize_t; +typedef int __kernel_ptrdiff_t; +#else +typedef __kernel_ulong_t __kernel_size_t; +typedef __kernel_long_t __kernel_ssize_t; +typedef __kernel_long_t __kernel_ptrdiff_t; +#endif +#endif + +#ifndef __kernel_fsid_t +typedef struct { + int val[2]; +} __kernel_fsid_t; +#endif + +/* + * anything below here should be completely generic + */ +typedef __kernel_long_t __kernel_off_t; +typedef long long __kernel_loff_t; +typedef __kernel_long_t __kernel_time_t; +typedef __kernel_long_t __kernel_clock_t; +typedef int __kernel_timer_t; +typedef int __kernel_clockid_t; +typedef char * __kernel_caddr_t; +typedef unsigned short __kernel_uid16_t; +typedef unsigned short __kernel_gid16_t; + +#endif /* __ASM_GENERIC_POSIX_TYPES_H */ diff --git a/kernel_headers/asm-generic/resource.h b/kernel_headers/asm-generic/resource.h new file mode 100644 index 0000000..1bd7dd4 --- /dev/null +++ b/kernel_headers/asm-generic/resource.h @@ -0,0 +1,68 @@ +#ifndef _ASM_GENERIC_RESOURCE_H +#define _ASM_GENERIC_RESOURCE_H + +/* + * Resource limit IDs + * + * ( Compatibility detail: there are architectures that have + * a different rlimit ID order in the 5-9 range and want + * to keep that order for binary compatibility. The reasons + * are historic and all new rlimits are identical across all + * arches. If an arch has such special order for some rlimits + * then it defines them prior including asm-generic/resource.h. ) + */ + +#define RLIMIT_CPU 0 /* CPU time in sec */ +#define RLIMIT_FSIZE 1 /* Maximum filesize */ +#define RLIMIT_DATA 2 /* max data size */ +#define RLIMIT_STACK 3 /* max stack size */ +#define RLIMIT_CORE 4 /* max core file size */ + +#ifndef RLIMIT_RSS +# define RLIMIT_RSS 5 /* max resident set size */ +#endif + +#ifndef RLIMIT_NPROC +# define RLIMIT_NPROC 6 /* max number of processes */ +#endif + +#ifndef RLIMIT_NOFILE +# define RLIMIT_NOFILE 7 /* max number of open files */ +#endif + +#ifndef RLIMIT_MEMLOCK +# define RLIMIT_MEMLOCK 8 /* max locked-in-memory address space */ +#endif + +#ifndef RLIMIT_AS +# define RLIMIT_AS 9 /* address space limit */ +#endif + +#define RLIMIT_LOCKS 10 /* maximum file locks held */ +#define RLIMIT_SIGPENDING 11 /* max number of pending signals */ +#define RLIMIT_MSGQUEUE 12 /* maximum bytes in POSIX mqueues */ +#define RLIMIT_NICE 13 /* max nice prio allowed to raise to + 0-39 for nice level 19 .. -20 */ +#define RLIMIT_RTPRIO 14 /* maximum realtime priority */ +#define RLIMIT_RTTIME 15 /* timeout for RT tasks in us */ +#define RLIM_NLIMITS 16 + +/* + * SuS says limits have to be unsigned. + * Which makes a ton more sense anyway. + * + * Some architectures override this (for compatibility reasons): + */ +#ifndef RLIM_INFINITY +# define RLIM_INFINITY (~0UL) +#endif + +/* + * RLIMIT_STACK default maximum - some architectures override it: + */ +#ifndef _STK_LIM_MAX +# define _STK_LIM_MAX RLIM_INFINITY +#endif + + +#endif /* _ASM_GENERIC_RESOURCE_H */ diff --git a/kernel_headers/asm-generic/sembuf.h b/kernel_headers/asm-generic/sembuf.h new file mode 100644 index 0000000..4cb2c13 --- /dev/null +++ b/kernel_headers/asm-generic/sembuf.h @@ -0,0 +1,38 @@ +#ifndef __ASM_GENERIC_SEMBUF_H +#define __ASM_GENERIC_SEMBUF_H + +#include + +/* + * The semid64_ds structure for x86 architecture. + * Note extra padding because this structure is passed back and forth + * between kernel and user space. + * + * semid64_ds was originally meant to be architecture specific, but + * everyone just ended up making identical copies without specific + * optimizations, so we may just as well all use the same one. + * + * 64 bit architectures typically define a 64 bit __kernel_time_t, + * so they do not need the first two padding words. + * On big-endian systems, the padding is in the wrong place. + * + * Pad space is left for: + * - 64-bit time_t to solve y2038 problem + * - 2 miscellaneous 32-bit values + */ +struct semid64_ds { + struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ + __kernel_time_t sem_otime; /* last semop time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused1; +#endif + __kernel_time_t sem_ctime; /* last change time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused2; +#endif + unsigned long sem_nsems; /* no. of semaphores in array */ + unsigned long __unused3; + unsigned long __unused4; +}; + +#endif /* __ASM_GENERIC_SEMBUF_H */ diff --git a/kernel_headers/asm-generic/setup.h b/kernel_headers/asm-generic/setup.h new file mode 100644 index 0000000..6fc26a5 --- /dev/null +++ b/kernel_headers/asm-generic/setup.h @@ -0,0 +1,6 @@ +#ifndef __ASM_GENERIC_SETUP_H +#define __ASM_GENERIC_SETUP_H + +#define COMMAND_LINE_SIZE 512 + +#endif /* __ASM_GENERIC_SETUP_H */ diff --git a/kernel_headers/asm-generic/shmbuf.h b/kernel_headers/asm-generic/shmbuf.h new file mode 100644 index 0000000..5768fa6 --- /dev/null +++ b/kernel_headers/asm-generic/shmbuf.h @@ -0,0 +1,59 @@ +#ifndef __ASM_GENERIC_SHMBUF_H +#define __ASM_GENERIC_SHMBUF_H + +#include + +/* + * The shmid64_ds structure for x86 architecture. + * Note extra padding because this structure is passed back and forth + * between kernel and user space. + * + * shmid64_ds was originally meant to be architecture specific, but + * everyone just ended up making identical copies without specific + * optimizations, so we may just as well all use the same one. + * + * 64 bit architectures typically define a 64 bit __kernel_time_t, + * so they do not need the first two padding words. + * On big-endian systems, the padding is in the wrong place. + * + * + * Pad space is left for: + * - 64-bit time_t to solve y2038 problem + * - 2 miscellaneous 32-bit values + */ + +struct shmid64_ds { + struct ipc64_perm shm_perm; /* operation perms */ + size_t shm_segsz; /* size of segment (bytes) */ + __kernel_time_t shm_atime; /* last attach time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused1; +#endif + __kernel_time_t shm_dtime; /* last detach time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused2; +#endif + __kernel_time_t shm_ctime; /* last change time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused3; +#endif + __kernel_pid_t shm_cpid; /* pid of creator */ + __kernel_pid_t shm_lpid; /* pid of last operator */ + unsigned long shm_nattch; /* no. of current attaches */ + unsigned long __unused4; + unsigned long __unused5; +}; + +struct shminfo64 { + unsigned long shmmax; + unsigned long shmmin; + unsigned long shmmni; + unsigned long shmseg; + unsigned long shmall; + unsigned long __unused1; + unsigned long __unused2; + unsigned long __unused3; + unsigned long __unused4; +}; + +#endif /* __ASM_GENERIC_SHMBUF_H */ diff --git a/kernel_headers/asm-generic/shmparam.h b/kernel_headers/asm-generic/shmparam.h new file mode 100644 index 0000000..51a3852 --- /dev/null +++ b/kernel_headers/asm-generic/shmparam.h @@ -0,0 +1,6 @@ +#ifndef __ASM_GENERIC_SHMPARAM_H +#define __ASM_GENERIC_SHMPARAM_H + +#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ + +#endif /* _ASM_GENERIC_SHMPARAM_H */ diff --git a/kernel_headers/asm-generic/siginfo.h b/kernel_headers/asm-generic/siginfo.h new file mode 100644 index 0000000..62819ef --- /dev/null +++ b/kernel_headers/asm-generic/siginfo.h @@ -0,0 +1,296 @@ +#ifndef _ASM_GENERIC_SIGINFO_H +#define _ASM_GENERIC_SIGINFO_H + + +#include + +typedef union sigval { + int sival_int; + void *sival_ptr; +} sigval_t; + +/* + * This is the size (including padding) of the part of the + * struct siginfo that is before the union. + */ +#ifndef __ARCH_SI_PREAMBLE_SIZE +#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int)) +#endif + +#define SI_MAX_SIZE 128 +#ifndef SI_PAD_SIZE +#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int)) +#endif + +#ifndef __ARCH_SI_UID_T +#define __ARCH_SI_UID_T __kernel_uid32_t +#endif + +/* + * The default "si_band" type is "long", as specified by POSIX. + * However, some architectures want to override this to "int" + * for historical compatibility reasons, so we allow that. + */ +#ifndef __ARCH_SI_BAND_T +#define __ARCH_SI_BAND_T long +#endif + +#ifndef __ARCH_SI_CLOCK_T +#define __ARCH_SI_CLOCK_T __kernel_clock_t +#endif + +#ifndef __ARCH_SI_ATTRIBUTES +#define __ARCH_SI_ATTRIBUTES +#endif + +#ifndef HAVE_ARCH_SIGINFO_T + +typedef struct siginfo { + int si_signo; + int si_errno; + int si_code; + + union { + int _pad[SI_PAD_SIZE]; + + /* kill() */ + struct { + __kernel_pid_t _pid; /* sender's pid */ + __ARCH_SI_UID_T _uid; /* sender's uid */ + } _kill; + + /* POSIX.1b timers */ + struct { + __kernel_timer_t _tid; /* timer id */ + int _overrun; /* overrun count */ + char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; + sigval_t _sigval; /* same as below */ + int _sys_private; /* not to be passed to user */ + } _timer; + + /* POSIX.1b signals */ + struct { + __kernel_pid_t _pid; /* sender's pid */ + __ARCH_SI_UID_T _uid; /* sender's uid */ + sigval_t _sigval; + } _rt; + + /* SIGCHLD */ + struct { + __kernel_pid_t _pid; /* which child */ + __ARCH_SI_UID_T _uid; /* sender's uid */ + int _status; /* exit code */ + __ARCH_SI_CLOCK_T _utime; + __ARCH_SI_CLOCK_T _stime; + } _sigchld; + + /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ + struct { + void *_addr; /* faulting insn/memory ref. */ +#ifdef __ARCH_SI_TRAPNO + int _trapno; /* TRAP # which caused the signal */ +#endif + short _addr_lsb; /* LSB of the reported address */ + } _sigfault; + + /* SIGPOLL */ + struct { + __ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */ + int _fd; + } _sigpoll; + + /* SIGSYS */ + struct { + void *_call_addr; /* calling user insn */ + int _syscall; /* triggering system call number */ + unsigned int _arch; /* AUDIT_ARCH_* of syscall */ + } _sigsys; + } _sifields; +} __ARCH_SI_ATTRIBUTES siginfo_t; + +/* If the arch shares siginfo, then it has SIGSYS. */ +#define __ARCH_SIGSYS +#endif + +/* + * How these fields are to be accessed. + */ +#define si_pid _sifields._kill._pid +#define si_uid _sifields._kill._uid +#define si_tid _sifields._timer._tid +#define si_overrun _sifields._timer._overrun +#define si_sys_private _sifields._timer._sys_private +#define si_status _sifields._sigchld._status +#define si_utime _sifields._sigchld._utime +#define si_stime _sifields._sigchld._stime +#define si_value _sifields._rt._sigval +#define si_int _sifields._rt._sigval.sival_int +#define si_ptr _sifields._rt._sigval.sival_ptr +#define si_addr _sifields._sigfault._addr +#ifdef __ARCH_SI_TRAPNO +#define si_trapno _sifields._sigfault._trapno +#endif +#define si_addr_lsb _sifields._sigfault._addr_lsb +#define si_band _sifields._sigpoll._band +#define si_fd _sifields._sigpoll._fd +#ifdef __ARCH_SIGSYS +#define si_call_addr _sifields._sigsys._call_addr +#define si_syscall _sifields._sigsys._syscall +#define si_arch _sifields._sigsys._arch +#endif + +#define __SI_KILL 0 +#define __SI_TIMER 0 +#define __SI_POLL 0 +#define __SI_FAULT 0 +#define __SI_CHLD 0 +#define __SI_RT 0 +#define __SI_MESGQ 0 +#define __SI_SYS 0 +#define __SI_CODE(T,N) (N) + +/* + * si_code values + * Digital reserves positive values for kernel-generated signals. + */ +#define SI_USER 0 /* sent by kill, sigsend, raise */ +#define SI_KERNEL 0x80 /* sent by the kernel from somewhere */ +#define SI_QUEUE -1 /* sent by sigqueue */ +#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */ +#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */ +#define SI_ASYNCIO -4 /* sent by AIO completion */ +#define SI_SIGIO -5 /* sent by queued SIGIO */ +#define SI_TKILL -6 /* sent by tkill system call */ +#define SI_DETHREAD -7 /* sent by execve() killing subsidiary threads */ + +#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0) +#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0) + +/* + * SIGILL si_codes + */ +#define ILL_ILLOPC (__SI_FAULT|1) /* illegal opcode */ +#define ILL_ILLOPN (__SI_FAULT|2) /* illegal operand */ +#define ILL_ILLADR (__SI_FAULT|3) /* illegal addressing mode */ +#define ILL_ILLTRP (__SI_FAULT|4) /* illegal trap */ +#define ILL_PRVOPC (__SI_FAULT|5) /* privileged opcode */ +#define ILL_PRVREG (__SI_FAULT|6) /* privileged register */ +#define ILL_COPROC (__SI_FAULT|7) /* coprocessor error */ +#define ILL_BADSTK (__SI_FAULT|8) /* internal stack error */ +#define NSIGILL 8 + +/* + * SIGFPE si_codes + */ +#define FPE_INTDIV (__SI_FAULT|1) /* integer divide by zero */ +#define FPE_INTOVF (__SI_FAULT|2) /* integer overflow */ +#define FPE_FLTDIV (__SI_FAULT|3) /* floating point divide by zero */ +#define FPE_FLTOVF (__SI_FAULT|4) /* floating point overflow */ +#define FPE_FLTUND (__SI_FAULT|5) /* floating point underflow */ +#define FPE_FLTRES (__SI_FAULT|6) /* floating point inexact result */ +#define FPE_FLTINV (__SI_FAULT|7) /* floating point invalid operation */ +#define FPE_FLTSUB (__SI_FAULT|8) /* subscript out of range */ +#define NSIGFPE 8 + +/* + * SIGSEGV si_codes + */ +#define SEGV_MAPERR (__SI_FAULT|1) /* address not mapped to object */ +#define SEGV_ACCERR (__SI_FAULT|2) /* invalid permissions for mapped object */ +#define NSIGSEGV 2 + +/* + * SIGBUS si_codes + */ +#define BUS_ADRALN (__SI_FAULT|1) /* invalid address alignment */ +#define BUS_ADRERR (__SI_FAULT|2) /* non-existent physical address */ +#define BUS_OBJERR (__SI_FAULT|3) /* object specific hardware error */ +/* hardware memory error consumed on a machine check: action required */ +#define BUS_MCEERR_AR (__SI_FAULT|4) +/* hardware memory error detected in process but not consumed: action optional*/ +#define BUS_MCEERR_AO (__SI_FAULT|5) +#define NSIGBUS 5 + +/* + * SIGTRAP si_codes + */ +#define TRAP_BRKPT (__SI_FAULT|1) /* process breakpoint */ +#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */ +#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */ +#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */ +#define NSIGTRAP 4 + +/* + * SIGCHLD si_codes + */ +#define CLD_EXITED (__SI_CHLD|1) /* child has exited */ +#define CLD_KILLED (__SI_CHLD|2) /* child was killed */ +#define CLD_DUMPED (__SI_CHLD|3) /* child terminated abnormally */ +#define CLD_TRAPPED (__SI_CHLD|4) /* traced child has trapped */ +#define CLD_STOPPED (__SI_CHLD|5) /* child has stopped */ +#define CLD_CONTINUED (__SI_CHLD|6) /* stopped child has continued */ +#define NSIGCHLD 6 + +/* + * SIGPOLL si_codes + */ +#define POLL_IN (__SI_POLL|1) /* data input available */ +#define POLL_OUT (__SI_POLL|2) /* output buffers available */ +#define POLL_MSG (__SI_POLL|3) /* input message available */ +#define POLL_ERR (__SI_POLL|4) /* i/o error */ +#define POLL_PRI (__SI_POLL|5) /* high priority input available */ +#define POLL_HUP (__SI_POLL|6) /* device disconnected */ +#define NSIGPOLL 6 + +/* + * SIGSYS si_codes + */ +#define SYS_SECCOMP (__SI_SYS|1) /* seccomp triggered */ +#define NSIGSYS 1 + +/* + * sigevent definitions + * + * It seems likely that SIGEV_THREAD will have to be handled from + * userspace, libpthread transmuting it to SIGEV_SIGNAL, which the + * thread manager then catches and does the appropriate nonsense. + * However, everything is written out here so as to not get lost. + */ +#define SIGEV_SIGNAL 0 /* notify via signal */ +#define SIGEV_NONE 1 /* other notification: meaningless */ +#define SIGEV_THREAD 2 /* deliver via thread creation */ +#define SIGEV_THREAD_ID 4 /* deliver to thread */ + +/* + * This works because the alignment is ok on all current architectures + * but we leave open this being overridden in the future + */ +#ifndef __ARCH_SIGEV_PREAMBLE_SIZE +#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t)) +#endif + +#define SIGEV_MAX_SIZE 64 +#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) \ + / sizeof(int)) + +typedef struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[SIGEV_PAD_SIZE]; + int _tid; + + struct { + void (*_function)(sigval_t); + void *_attribute; /* really pthread_attr_t */ + } _sigev_thread; + } _sigev_un; +} sigevent_t; + +#define sigev_notify_function _sigev_un._sigev_thread._function +#define sigev_notify_attributes _sigev_un._sigev_thread._attribute +#define sigev_notify_thread_id _sigev_un._tid + + +#endif /* _ASM_GENERIC_SIGINFO_H */ diff --git a/kernel_headers/asm-generic/signal-defs.h b/kernel_headers/asm-generic/signal-defs.h new file mode 100644 index 0000000..04cfb6d --- /dev/null +++ b/kernel_headers/asm-generic/signal-defs.h @@ -0,0 +1,28 @@ +#ifndef __ASM_GENERIC_SIGNAL_DEFS_H +#define __ASM_GENERIC_SIGNAL_DEFS_H + + + +#ifndef SIG_BLOCK +#define SIG_BLOCK 0 /* for blocking signals */ +#endif +#ifndef SIG_UNBLOCK +#define SIG_UNBLOCK 1 /* for unblocking signals */ +#endif +#ifndef SIG_SETMASK +#define SIG_SETMASK 2 /* for setting the signal mask */ +#endif + +#ifndef __ASSEMBLY__ +typedef void __signalfn_t(int); +typedef __signalfn_t *__sighandler_t; + +typedef void __restorefn_t(void); +typedef __restorefn_t *__sigrestore_t; + +#define SIG_DFL ((__sighandler_t)0) /* default signal handling */ +#define SIG_IGN ((__sighandler_t)1) /* ignore signal */ +#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */ +#endif + +#endif /* __ASM_GENERIC_SIGNAL_DEFS_H */ diff --git a/kernel_headers/asm-generic/signal.h b/kernel_headers/asm-generic/signal.h new file mode 100644 index 0000000..34d2c5f --- /dev/null +++ b/kernel_headers/asm-generic/signal.h @@ -0,0 +1,117 @@ +#ifndef __ASM_GENERIC_SIGNAL_H +#define __ASM_GENERIC_SIGNAL_H + +#include + +#define _NSIG 64 +#define _NSIG_BPW __BITS_PER_LONG +#define _NSIG_WORDS (_NSIG / _NSIG_BPW) + +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT 6 +#define SIGBUS 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGUSR1 10 +#define SIGSEGV 11 +#define SIGUSR2 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGSTKFLT 16 +#define SIGCHLD 17 +#define SIGCONT 18 +#define SIGSTOP 19 +#define SIGTSTP 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGURG 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGIO 29 +#define SIGPOLL SIGIO +/* +#define SIGLOST 29 +*/ +#define SIGPWR 30 +#define SIGSYS 31 +#define SIGUNUSED 31 + +/* These should not be considered constants from userland. */ +#define SIGRTMIN 32 +#ifndef SIGRTMAX +#define SIGRTMAX _NSIG +#endif + +/* + * SA_FLAGS values: + * + * SA_ONSTACK indicates that a registered stack_t will be used. + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_RESETHAND clears the handler when the signal is delivered. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_NODEFER prevents the current signal from being masked in the handler. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ +#define SA_NOCLDSTOP 0x00000001 +#define SA_NOCLDWAIT 0x00000002 +#define SA_SIGINFO 0x00000004 +#define SA_ONSTACK 0x08000000 +#define SA_RESTART 0x10000000 +#define SA_NODEFER 0x40000000 +#define SA_RESETHAND 0x80000000 + +#define SA_NOMASK SA_NODEFER +#define SA_ONESHOT SA_RESETHAND + +/* + * New architectures should not define the obsolete + * SA_RESTORER 0x04000000 + */ + +#define MINSIGSTKSZ 2048 +#define SIGSTKSZ 8192 + +#ifndef __ASSEMBLY__ +typedef struct { + unsigned long sig[_NSIG_WORDS]; +} sigset_t; + +/* not actually used, but required for linux/syscalls.h */ +typedef unsigned long old_sigset_t; + +#include + +#ifdef SA_RESTORER +#define __ARCH_HAS_SA_RESTORER +#endif + +struct sigaction { + __sighandler_t sa_handler; + unsigned long sa_flags; +#ifdef SA_RESTORER + __sigrestore_t sa_restorer; +#endif + sigset_t sa_mask; /* mask last for extensibility */ +}; + +typedef struct sigaltstack { + void *ss_sp; + int ss_flags; + size_t ss_size; +} stack_t; + +#endif /* __ASSEMBLY__ */ + +#endif /* __ASM_GENERIC_SIGNAL_H */ diff --git a/kernel_headers/asm-generic/socket.h b/kernel_headers/asm-generic/socket.h new file mode 100644 index 0000000..c5d2e3a --- /dev/null +++ b/kernel_headers/asm-generic/socket.h @@ -0,0 +1,79 @@ +#ifndef __ASM_GENERIC_SOCKET_H +#define __ASM_GENERIC_SOCKET_H + +#include + +/* For setsockopt(2) */ +#define SOL_SOCKET 1 + +#define SO_DEBUG 1 +#define SO_REUSEADDR 2 +#define SO_TYPE 3 +#define SO_ERROR 4 +#define SO_DONTROUTE 5 +#define SO_BROADCAST 6 +#define SO_SNDBUF 7 +#define SO_RCVBUF 8 +#define SO_SNDBUFFORCE 32 +#define SO_RCVBUFFORCE 33 +#define SO_KEEPALIVE 9 +#define SO_OOBINLINE 10 +#define SO_NO_CHECK 11 +#define SO_PRIORITY 12 +#define SO_LINGER 13 +#define SO_BSDCOMPAT 14 +#define SO_REUSEPORT 15 +#ifndef SO_PASSCRED /* powerpc only differs in these */ +#define SO_PASSCRED 16 +#define SO_PEERCRED 17 +#define SO_RCVLOWAT 18 +#define SO_SNDLOWAT 19 +#define SO_RCVTIMEO 20 +#define SO_SNDTIMEO 21 +#endif + +/* Security levels - as per NRL IPv6 - don't actually do anything */ +#define SO_SECURITY_AUTHENTICATION 22 +#define SO_SECURITY_ENCRYPTION_TRANSPORT 23 +#define SO_SECURITY_ENCRYPTION_NETWORK 24 + +#define SO_BINDTODEVICE 25 + +/* Socket filtering */ +#define SO_ATTACH_FILTER 26 +#define SO_DETACH_FILTER 27 +#define SO_GET_FILTER SO_ATTACH_FILTER + +#define SO_PEERNAME 28 +#define SO_TIMESTAMP 29 +#define SCM_TIMESTAMP SO_TIMESTAMP + +#define SO_ACCEPTCONN 30 + +#define SO_PEERSEC 31 +#define SO_PASSSEC 34 +#define SO_TIMESTAMPNS 35 +#define SCM_TIMESTAMPNS SO_TIMESTAMPNS + +#define SO_MARK 36 + +#define SO_TIMESTAMPING 37 +#define SCM_TIMESTAMPING SO_TIMESTAMPING + +#define SO_PROTOCOL 38 +#define SO_DOMAIN 39 + +#define SO_RXQ_OVFL 40 + +#define SO_WIFI_STATUS 41 +#define SCM_WIFI_STATUS SO_WIFI_STATUS +#define SO_PEEK_OFF 42 + +/* Instruct lower device to use last 4-bytes of skb data as FCS */ +#define SO_NOFCS 43 + +#define SO_LOCK_FILTER 44 + +#define SO_SELECT_ERR_QUEUE 45 + +#endif /* __ASM_GENERIC_SOCKET_H */ diff --git a/kernel_headers/asm-generic/sockios.h b/kernel_headers/asm-generic/sockios.h new file mode 100644 index 0000000..9a61a36 --- /dev/null +++ b/kernel_headers/asm-generic/sockios.h @@ -0,0 +1,13 @@ +#ifndef __ASM_GENERIC_SOCKIOS_H +#define __ASM_GENERIC_SOCKIOS_H + +/* Socket-level I/O control calls. */ +#define FIOSETOWN 0x8901 +#define SIOCSPGRP 0x8902 +#define FIOGETOWN 0x8903 +#define SIOCGPGRP 0x8904 +#define SIOCATMARK 0x8905 +#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ +#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ + +#endif /* __ASM_GENERIC_SOCKIOS_H */ diff --git a/kernel_headers/asm-generic/stat.h b/kernel_headers/asm-generic/stat.h new file mode 100644 index 0000000..bd8cad2 --- /dev/null +++ b/kernel_headers/asm-generic/stat.h @@ -0,0 +1,72 @@ +#ifndef __ASM_GENERIC_STAT_H +#define __ASM_GENERIC_STAT_H + +/* + * Everybody gets this wrong and has to stick with it for all + * eternity. Hopefully, this version gets used by new architectures + * so they don't fall into the same traps. + * + * stat64 is copied from powerpc64, with explicit padding added. + * stat is the same structure layout on 64-bit, without the 'long long' + * types. + * + * By convention, 64 bit architectures use the stat interface, while + * 32 bit architectures use the stat64 interface. Note that we don't + * provide an __old_kernel_stat here, which new architecture should + * not have to start with. + */ + +#include + +#define STAT_HAVE_NSEC 1 + +struct stat { + unsigned long st_dev; /* Device. */ + unsigned long st_ino; /* File serial number. */ + unsigned int st_mode; /* File mode. */ + unsigned int st_nlink; /* Link count. */ + unsigned int st_uid; /* User ID of the file's owner. */ + unsigned int st_gid; /* Group ID of the file's group. */ + unsigned long st_rdev; /* Device number, if device. */ + unsigned long __pad1; + long st_size; /* Size of file, in bytes. */ + int st_blksize; /* Optimal block size for I/O. */ + int __pad2; + long st_blocks; /* Number 512-byte blocks allocated. */ + long st_atime; /* Time of last access. */ + unsigned long st_atime_nsec; + long st_mtime; /* Time of last modification. */ + unsigned long st_mtime_nsec; + long st_ctime; /* Time of last status change. */ + unsigned long st_ctime_nsec; + unsigned int __unused4; + unsigned int __unused5; +}; + +/* This matches struct stat64 in glibc2.1. Only used for 32 bit. */ +#if __BITS_PER_LONG != 64 || defined(__ARCH_WANT_STAT64) +struct stat64 { + unsigned long long st_dev; /* Device. */ + unsigned long long st_ino; /* File serial number. */ + unsigned int st_mode; /* File mode. */ + unsigned int st_nlink; /* Link count. */ + unsigned int st_uid; /* User ID of the file's owner. */ + unsigned int st_gid; /* Group ID of the file's group. */ + unsigned long long st_rdev; /* Device number, if device. */ + unsigned long long __pad1; + long long st_size; /* Size of file, in bytes. */ + int st_blksize; /* Optimal block size for I/O. */ + int __pad2; + long long st_blocks; /* Number 512-byte blocks allocated. */ + int st_atime; /* Time of last access. */ + unsigned int st_atime_nsec; + int st_mtime; /* Time of last modification. */ + unsigned int st_mtime_nsec; + int st_ctime; /* Time of last status change. */ + unsigned int st_ctime_nsec; + unsigned int __unused4; + unsigned int __unused5; +}; +#endif + +#endif /* __ASM_GENERIC_STAT_H */ diff --git a/kernel_headers/asm-generic/statfs.h b/kernel_headers/asm-generic/statfs.h new file mode 100644 index 0000000..5241f16 --- /dev/null +++ b/kernel_headers/asm-generic/statfs.h @@ -0,0 +1,83 @@ +#ifndef _GENERIC_STATFS_H +#define _GENERIC_STATFS_H + +#include + + +/* + * Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'. + * Yes, they differ in signedness as well as size. + * Special cases can override it for themselves -- except for S390x, which + * is just a little too special for us. And MIPS, which I'm not touching + * with a 10' pole. + */ +#ifndef __statfs_word +#if __BITS_PER_LONG == 64 +#define __statfs_word long +#else +#define __statfs_word __u32 +#endif +#endif + +struct statfs { + __statfs_word f_type; + __statfs_word f_bsize; + __statfs_word f_blocks; + __statfs_word f_bfree; + __statfs_word f_bavail; + __statfs_word f_files; + __statfs_word f_ffree; + __kernel_fsid_t f_fsid; + __statfs_word f_namelen; + __statfs_word f_frsize; + __statfs_word f_flags; + __statfs_word f_spare[4]; +}; + +/* + * ARM needs to avoid the 32-bit padding at the end, for consistency + * between EABI and OABI + */ +#ifndef ARCH_PACK_STATFS64 +#define ARCH_PACK_STATFS64 +#endif + +struct statfs64 { + __statfs_word f_type; + __statfs_word f_bsize; + __u64 f_blocks; + __u64 f_bfree; + __u64 f_bavail; + __u64 f_files; + __u64 f_ffree; + __kernel_fsid_t f_fsid; + __statfs_word f_namelen; + __statfs_word f_frsize; + __statfs_word f_flags; + __statfs_word f_spare[4]; +} ARCH_PACK_STATFS64; + +/* + * IA64 and x86_64 need to avoid the 32-bit padding at the end, + * to be compatible with the i386 ABI + */ +#ifndef ARCH_PACK_COMPAT_STATFS64 +#define ARCH_PACK_COMPAT_STATFS64 +#endif + +struct compat_statfs64 { + __u32 f_type; + __u32 f_bsize; + __u64 f_blocks; + __u64 f_bfree; + __u64 f_bavail; + __u64 f_files; + __u64 f_ffree; + __kernel_fsid_t f_fsid; + __u32 f_namelen; + __u32 f_frsize; + __u32 f_flags; + __u32 f_spare[4]; +} ARCH_PACK_COMPAT_STATFS64; + +#endif /* _GENERIC_STATFS_H */ diff --git a/kernel_headers/asm-generic/swab.h b/kernel_headers/asm-generic/swab.h new file mode 100644 index 0000000..a8e9029 --- /dev/null +++ b/kernel_headers/asm-generic/swab.h @@ -0,0 +1,18 @@ +#ifndef _ASM_GENERIC_SWAB_H +#define _ASM_GENERIC_SWAB_H + +#include + +/* + * 32 bit architectures typically (but not always) want to + * set __SWAB_64_THRU_32__. In user space, this is only + * valid if the compiler supports 64 bit data types. + */ + +#if __BITS_PER_LONG == 32 +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) +#define __SWAB_64_THRU_32__ +#endif +#endif + +#endif /* _ASM_GENERIC_SWAB_H */ diff --git a/kernel_headers/asm-generic/termbits.h b/kernel_headers/asm-generic/termbits.h new file mode 100644 index 0000000..232b478 --- /dev/null +++ b/kernel_headers/asm-generic/termbits.h @@ -0,0 +1,199 @@ +#ifndef __ASM_GENERIC_TERMBITS_H +#define __ASM_GENERIC_TERMBITS_H + +#include + +typedef unsigned char cc_t; +typedef unsigned int speed_t; +typedef unsigned int tcflag_t; + +#define NCCS 19 +struct termios { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline */ + cc_t c_cc[NCCS]; /* control characters */ +}; + +struct termios2 { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline */ + cc_t c_cc[NCCS]; /* control characters */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* output speed */ +}; + +struct ktermios { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline */ + cc_t c_cc[NCCS]; /* control characters */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* output speed */ +}; + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VTIME 5 +#define VMIN 6 +#define VSWTC 7 +#define VSTART 8 +#define VSTOP 9 +#define VSUSP 10 +#define VEOL 11 +#define VREPRINT 12 +#define VDISCARD 13 +#define VWERASE 14 +#define VLNEXT 15 +#define VEOL2 16 + +/* c_iflag bits */ +#define IGNBRK 0000001 +#define BRKINT 0000002 +#define IGNPAR 0000004 +#define PARMRK 0000010 +#define INPCK 0000020 +#define ISTRIP 0000040 +#define INLCR 0000100 +#define IGNCR 0000200 +#define ICRNL 0000400 +#define IUCLC 0001000 +#define IXON 0002000 +#define IXANY 0004000 +#define IXOFF 0010000 +#define IMAXBEL 0020000 +#define IUTF8 0040000 + +/* c_oflag bits */ +#define OPOST 0000001 +#define OLCUC 0000002 +#define ONLCR 0000004 +#define OCRNL 0000010 +#define ONOCR 0000020 +#define ONLRET 0000040 +#define OFILL 0000100 +#define OFDEL 0000200 +#define NLDLY 0000400 +#define NL0 0000000 +#define NL1 0000400 +#define CRDLY 0003000 +#define CR0 0000000 +#define CR1 0001000 +#define CR2 0002000 +#define CR3 0003000 +#define TABDLY 0014000 +#define TAB0 0000000 +#define TAB1 0004000 +#define TAB2 0010000 +#define TAB3 0014000 +#define XTABS 0014000 +#define BSDLY 0020000 +#define BS0 0000000 +#define BS1 0020000 +#define VTDLY 0040000 +#define VT0 0000000 +#define VT1 0040000 +#define FFDLY 0100000 +#define FF0 0000000 +#define FF1 0100000 + +/* c_cflag bit meaning */ +#define CBAUD 0010017 +#define B0 0000000 /* hang up */ +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define B19200 0000016 +#define B38400 0000017 +#define EXTA B19200 +#define EXTB B38400 +#define CSIZE 0000060 +#define CS5 0000000 +#define CS6 0000020 +#define CS7 0000040 +#define CS8 0000060 +#define CSTOPB 0000100 +#define CREAD 0000200 +#define PARENB 0000400 +#define PARODD 0001000 +#define HUPCL 0002000 +#define CLOCAL 0004000 +#define CBAUDEX 0010000 +#define BOTHER 0010000 +#define B57600 0010001 +#define B115200 0010002 +#define B230400 0010003 +#define B460800 0010004 +#define B500000 0010005 +#define B576000 0010006 +#define B921600 0010007 +#define B1000000 0010010 +#define B1152000 0010011 +#define B1500000 0010012 +#define B2000000 0010013 +#define B2500000 0010014 +#define B3000000 0010015 +#define B3500000 0010016 +#define B4000000 0010017 +#define CIBAUD 002003600000 /* input baud rate */ +#define CMSPAR 010000000000 /* mark or space (stick) parity */ +#define CRTSCTS 020000000000 /* flow control */ + +#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ + +/* c_lflag bits */ +#define ISIG 0000001 +#define ICANON 0000002 +#define XCASE 0000004 +#define ECHO 0000010 +#define ECHOE 0000020 +#define ECHOK 0000040 +#define ECHONL 0000100 +#define NOFLSH 0000200 +#define TOSTOP 0000400 +#define ECHOCTL 0001000 +#define ECHOPRT 0002000 +#define ECHOKE 0004000 +#define FLUSHO 0010000 +#define PENDIN 0040000 +#define IEXTEN 0100000 +#define EXTPROC 0200000 + +/* tcflow() and TCXONC use these */ +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + +/* tcflush() and TCFLSH use these */ +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* tcsetattr uses these */ +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 + +#endif /* __ASM_GENERIC_TERMBITS_H */ diff --git a/kernel_headers/asm-generic/termios.h b/kernel_headers/asm-generic/termios.h new file mode 100644 index 0000000..1c1166a --- /dev/null +++ b/kernel_headers/asm-generic/termios.h @@ -0,0 +1,50 @@ +#ifndef _ASM_GENERIC_TERMIOS_H +#define _ASM_GENERIC_TERMIOS_H +/* + * Most architectures have straight copies of the x86 code, with + * varying levels of bug fixes on top. Usually it's a good idea + * to use this generic version instead, but be careful to avoid + * ABI changes. + * New architectures should not provide their own version. + */ + +#include +#include + +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +#define NCC 8 +struct termio { + unsigned short c_iflag; /* input mode flags */ + unsigned short c_oflag; /* output mode flags */ + unsigned short c_cflag; /* control mode flags */ + unsigned short c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +/* modem lines */ +#define TIOCM_LE 0x001 +#define TIOCM_DTR 0x002 +#define TIOCM_RTS 0x004 +#define TIOCM_ST 0x008 +#define TIOCM_SR 0x010 +#define TIOCM_CTS 0x020 +#define TIOCM_CAR 0x040 +#define TIOCM_RNG 0x080 +#define TIOCM_DSR 0x100 +#define TIOCM_CD TIOCM_CAR +#define TIOCM_RI TIOCM_RNG +#define TIOCM_OUT1 0x2000 +#define TIOCM_OUT2 0x4000 +#define TIOCM_LOOP 0x8000 + +/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ + + +#endif /* _ASM_GENERIC_TERMIOS_H */ diff --git a/kernel_headers/asm-generic/types.h b/kernel_headers/asm-generic/types.h new file mode 100644 index 0000000..bd39806 --- /dev/null +++ b/kernel_headers/asm-generic/types.h @@ -0,0 +1,9 @@ +#ifndef _ASM_GENERIC_TYPES_H +#define _ASM_GENERIC_TYPES_H +/* + * int-ll64 is used practically everywhere now, + * so use it as a reasonable default. + */ +#include + +#endif /* _ASM_GENERIC_TYPES_H */ diff --git a/kernel_headers/asm-generic/ucontext.h b/kernel_headers/asm-generic/ucontext.h new file mode 100644 index 0000000..ad77343 --- /dev/null +++ b/kernel_headers/asm-generic/ucontext.h @@ -0,0 +1,12 @@ +#ifndef __ASM_GENERIC_UCONTEXT_H +#define __ASM_GENERIC_UCONTEXT_H + +struct ucontext { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + struct sigcontext uc_mcontext; + sigset_t uc_sigmask; /* mask last for extensibility */ +}; + +#endif /* __ASM_GENERIC_UCONTEXT_H */ diff --git a/kernel_headers/asm-generic/unistd.h b/kernel_headers/asm-generic/unistd.h new file mode 100644 index 0000000..a00b3a3 --- /dev/null +++ b/kernel_headers/asm-generic/unistd.h @@ -0,0 +1,905 @@ +#include + +/* + * This file contains the system call numbers, based on the + * layout of the x86-64 architecture, which embeds the + * pointer to the syscall in the table. + * + * As a basic principle, no duplication of functionality + * should be added, e.g. we don't use lseek when llseek + * is present. New architectures should use this file + * and implement the less feature-full calls in user space. + */ + +#ifndef __SYSCALL +#define __SYSCALL(x, y) +#endif + +#if __BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT) +#define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _32) +#else +#define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _64) +#endif + +#ifdef __SYSCALL_COMPAT +#define __SC_COMP(_nr, _sys, _comp) __SYSCALL(_nr, _comp) +#define __SC_COMP_3264(_nr, _32, _64, _comp) __SYSCALL(_nr, _comp) +#else +#define __SC_COMP(_nr, _sys, _comp) __SYSCALL(_nr, _sys) +#define __SC_COMP_3264(_nr, _32, _64, _comp) __SC_3264(_nr, _32, _64) +#endif + +#define __NR_io_setup 0 +__SC_COMP(__NR_io_setup, sys_io_setup, compat_sys_io_setup) +#define __NR_io_destroy 1 +__SYSCALL(__NR_io_destroy, sys_io_destroy) +#define __NR_io_submit 2 +__SC_COMP(__NR_io_submit, sys_io_submit, compat_sys_io_submit) +#define __NR_io_cancel 3 +__SYSCALL(__NR_io_cancel, sys_io_cancel) +#define __NR_io_getevents 4 +__SC_COMP(__NR_io_getevents, sys_io_getevents, compat_sys_io_getevents) + +/* fs/xattr.c */ +#define __NR_setxattr 5 +__SYSCALL(__NR_setxattr, sys_setxattr) +#define __NR_lsetxattr 6 +__SYSCALL(__NR_lsetxattr, sys_lsetxattr) +#define __NR_fsetxattr 7 +__SYSCALL(__NR_fsetxattr, sys_fsetxattr) +#define __NR_getxattr 8 +__SYSCALL(__NR_getxattr, sys_getxattr) +#define __NR_lgetxattr 9 +__SYSCALL(__NR_lgetxattr, sys_lgetxattr) +#define __NR_fgetxattr 10 +__SYSCALL(__NR_fgetxattr, sys_fgetxattr) +#define __NR_listxattr 11 +__SYSCALL(__NR_listxattr, sys_listxattr) +#define __NR_llistxattr 12 +__SYSCALL(__NR_llistxattr, sys_llistxattr) +#define __NR_flistxattr 13 +__SYSCALL(__NR_flistxattr, sys_flistxattr) +#define __NR_removexattr 14 +__SYSCALL(__NR_removexattr, sys_removexattr) +#define __NR_lremovexattr 15 +__SYSCALL(__NR_lremovexattr, sys_lremovexattr) +#define __NR_fremovexattr 16 +__SYSCALL(__NR_fremovexattr, sys_fremovexattr) + +/* fs/dcache.c */ +#define __NR_getcwd 17 +__SYSCALL(__NR_getcwd, sys_getcwd) + +/* fs/cookies.c */ +#define __NR_lookup_dcookie 18 +__SC_COMP(__NR_lookup_dcookie, sys_lookup_dcookie, compat_sys_lookup_dcookie) + +/* fs/eventfd.c */ +#define __NR_eventfd2 19 +__SYSCALL(__NR_eventfd2, sys_eventfd2) + +/* fs/eventpoll.c */ +#define __NR_epoll_create1 20 +__SYSCALL(__NR_epoll_create1, sys_epoll_create1) +#define __NR_epoll_ctl 21 +__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl) +#define __NR_epoll_pwait 22 +__SC_COMP(__NR_epoll_pwait, sys_epoll_pwait, compat_sys_epoll_pwait) + +/* fs/fcntl.c */ +#define __NR_dup 23 +__SYSCALL(__NR_dup, sys_dup) +#define __NR_dup3 24 +__SYSCALL(__NR_dup3, sys_dup3) +#define __NR3264_fcntl 25 +__SC_COMP_3264(__NR3264_fcntl, sys_fcntl64, sys_fcntl, compat_sys_fcntl64) + +/* fs/inotify_user.c */ +#define __NR_inotify_init1 26 +__SYSCALL(__NR_inotify_init1, sys_inotify_init1) +#define __NR_inotify_add_watch 27 +__SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch) +#define __NR_inotify_rm_watch 28 +__SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch) + +/* fs/ioctl.c */ +#define __NR_ioctl 29 +__SC_COMP(__NR_ioctl, sys_ioctl, compat_sys_ioctl) + +/* fs/ioprio.c */ +#define __NR_ioprio_set 30 +__SYSCALL(__NR_ioprio_set, sys_ioprio_set) +#define __NR_ioprio_get 31 +__SYSCALL(__NR_ioprio_get, sys_ioprio_get) + +/* fs/locks.c */ +#define __NR_flock 32 +__SYSCALL(__NR_flock, sys_flock) + +/* fs/namei.c */ +#define __NR_mknodat 33 +__SYSCALL(__NR_mknodat, sys_mknodat) +#define __NR_mkdirat 34 +__SYSCALL(__NR_mkdirat, sys_mkdirat) +#define __NR_unlinkat 35 +__SYSCALL(__NR_unlinkat, sys_unlinkat) +#define __NR_symlinkat 36 +__SYSCALL(__NR_symlinkat, sys_symlinkat) +#define __NR_linkat 37 +__SYSCALL(__NR_linkat, sys_linkat) +#define __NR_renameat 38 +__SYSCALL(__NR_renameat, sys_renameat) + +/* fs/namespace.c */ +#define __NR_umount2 39 +__SYSCALL(__NR_umount2, sys_umount) +#define __NR_mount 40 +__SC_COMP(__NR_mount, sys_mount, compat_sys_mount) +#define __NR_pivot_root 41 +__SYSCALL(__NR_pivot_root, sys_pivot_root) + +/* fs/nfsctl.c */ +#define __NR_nfsservctl 42 +__SYSCALL(__NR_nfsservctl, sys_ni_syscall) + +/* fs/open.c */ +#define __NR3264_statfs 43 +__SC_COMP_3264(__NR3264_statfs, sys_statfs64, sys_statfs, \ + compat_sys_statfs64) +#define __NR3264_fstatfs 44 +__SC_COMP_3264(__NR3264_fstatfs, sys_fstatfs64, sys_fstatfs, \ + compat_sys_fstatfs64) +#define __NR3264_truncate 45 +__SC_COMP_3264(__NR3264_truncate, sys_truncate64, sys_truncate, \ + compat_sys_truncate64) +#define __NR3264_ftruncate 46 +__SC_COMP_3264(__NR3264_ftruncate, sys_ftruncate64, sys_ftruncate, \ + compat_sys_ftruncate64) + +#define __NR_fallocate 47 +__SC_COMP(__NR_fallocate, sys_fallocate, compat_sys_fallocate) +#define __NR_faccessat 48 +__SYSCALL(__NR_faccessat, sys_faccessat) +#define __NR_chdir 49 +__SYSCALL(__NR_chdir, sys_chdir) +#define __NR_fchdir 50 +__SYSCALL(__NR_fchdir, sys_fchdir) +#define __NR_chroot 51 +__SYSCALL(__NR_chroot, sys_chroot) +#define __NR_fchmod 52 +__SYSCALL(__NR_fchmod, sys_fchmod) +#define __NR_fchmodat 53 +__SYSCALL(__NR_fchmodat, sys_fchmodat) +#define __NR_fchownat 54 +__SYSCALL(__NR_fchownat, sys_fchownat) +#define __NR_fchown 55 +__SYSCALL(__NR_fchown, sys_fchown) +#define __NR_openat 56 +__SC_COMP(__NR_openat, sys_openat, compat_sys_openat) +#define __NR_close 57 +__SYSCALL(__NR_close, sys_close) +#define __NR_vhangup 58 +__SYSCALL(__NR_vhangup, sys_vhangup) + +/* fs/pipe.c */ +#define __NR_pipe2 59 +__SYSCALL(__NR_pipe2, sys_pipe2) + +/* fs/quota.c */ +#define __NR_quotactl 60 +__SYSCALL(__NR_quotactl, sys_quotactl) + +/* fs/readdir.c */ +#define __NR_getdents64 61 +#define __ARCH_WANT_COMPAT_SYS_GETDENTS64 +__SC_COMP(__NR_getdents64, sys_getdents64, compat_sys_getdents64) + +/* fs/read_write.c */ +#define __NR3264_lseek 62 +__SC_3264(__NR3264_lseek, sys_llseek, sys_lseek) +#define __NR_read 63 +__SYSCALL(__NR_read, sys_read) +#define __NR_write 64 +__SYSCALL(__NR_write, sys_write) +#define __NR_readv 65 +__SC_COMP(__NR_readv, sys_readv, compat_sys_readv) +#define __NR_writev 66 +__SC_COMP(__NR_writev, sys_writev, compat_sys_writev) +#define __NR_pread64 67 +__SC_COMP(__NR_pread64, sys_pread64, compat_sys_pread64) +#define __NR_pwrite64 68 +__SC_COMP(__NR_pwrite64, sys_pwrite64, compat_sys_pwrite64) +#define __NR_preadv 69 +__SC_COMP(__NR_preadv, sys_preadv, compat_sys_preadv) +#define __NR_pwritev 70 +__SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev) + +/* fs/sendfile.c */ +#define __NR3264_sendfile 71 +__SYSCALL(__NR3264_sendfile, sys_sendfile64) + +/* fs/select.c */ +#define __NR_pselect6 72 +__SC_COMP(__NR_pselect6, sys_pselect6, compat_sys_pselect6) +#define __NR_ppoll 73 +__SC_COMP(__NR_ppoll, sys_ppoll, compat_sys_ppoll) + +/* fs/signalfd.c */ +#define __NR_signalfd4 74 +__SC_COMP(__NR_signalfd4, sys_signalfd4, compat_sys_signalfd4) + +/* fs/splice.c */ +#define __NR_vmsplice 75 +__SC_COMP(__NR_vmsplice, sys_vmsplice, compat_sys_vmsplice) +#define __NR_splice 76 +__SYSCALL(__NR_splice, sys_splice) +#define __NR_tee 77 +__SYSCALL(__NR_tee, sys_tee) + +/* fs/stat.c */ +#define __NR_readlinkat 78 +__SYSCALL(__NR_readlinkat, sys_readlinkat) +#define __NR3264_fstatat 79 +__SC_3264(__NR3264_fstatat, sys_fstatat64, sys_newfstatat) +#define __NR3264_fstat 80 +__SC_3264(__NR3264_fstat, sys_fstat64, sys_newfstat) + +/* fs/sync.c */ +#define __NR_sync 81 +__SYSCALL(__NR_sync, sys_sync) +#define __NR_fsync 82 +__SYSCALL(__NR_fsync, sys_fsync) +#define __NR_fdatasync 83 +__SYSCALL(__NR_fdatasync, sys_fdatasync) +#ifdef __ARCH_WANT_SYNC_FILE_RANGE2 +#define __NR_sync_file_range2 84 +__SC_COMP(__NR_sync_file_range2, sys_sync_file_range2, \ + compat_sys_sync_file_range2) +#else +#define __NR_sync_file_range 84 +__SC_COMP(__NR_sync_file_range, sys_sync_file_range, \ + compat_sys_sync_file_range) +#endif + +/* fs/timerfd.c */ +#define __NR_timerfd_create 85 +__SYSCALL(__NR_timerfd_create, sys_timerfd_create) +#define __NR_timerfd_settime 86 +__SC_COMP(__NR_timerfd_settime, sys_timerfd_settime, \ + compat_sys_timerfd_settime) +#define __NR_timerfd_gettime 87 +__SC_COMP(__NR_timerfd_gettime, sys_timerfd_gettime, \ + compat_sys_timerfd_gettime) + +/* fs/utimes.c */ +#define __NR_utimensat 88 +__SC_COMP(__NR_utimensat, sys_utimensat, compat_sys_utimensat) + +/* kernel/acct.c */ +#define __NR_acct 89 +__SYSCALL(__NR_acct, sys_acct) + +/* kernel/capability.c */ +#define __NR_capget 90 +__SYSCALL(__NR_capget, sys_capget) +#define __NR_capset 91 +__SYSCALL(__NR_capset, sys_capset) + +/* kernel/exec_domain.c */ +#define __NR_personality 92 +__SYSCALL(__NR_personality, sys_personality) + +/* kernel/exit.c */ +#define __NR_exit 93 +__SYSCALL(__NR_exit, sys_exit) +#define __NR_exit_group 94 +__SYSCALL(__NR_exit_group, sys_exit_group) +#define __NR_waitid 95 +__SC_COMP(__NR_waitid, sys_waitid, compat_sys_waitid) + +/* kernel/fork.c */ +#define __NR_set_tid_address 96 +__SYSCALL(__NR_set_tid_address, sys_set_tid_address) +#define __NR_unshare 97 +__SYSCALL(__NR_unshare, sys_unshare) + +/* kernel/futex.c */ +#define __NR_futex 98 +__SC_COMP(__NR_futex, sys_futex, compat_sys_futex) +#define __NR_set_robust_list 99 +__SC_COMP(__NR_set_robust_list, sys_set_robust_list, \ + compat_sys_set_robust_list) +#define __NR_get_robust_list 100 +__SC_COMP(__NR_get_robust_list, sys_get_robust_list, \ + compat_sys_get_robust_list) + +/* kernel/hrtimer.c */ +#define __NR_nanosleep 101 +__SC_COMP(__NR_nanosleep, sys_nanosleep, compat_sys_nanosleep) + +/* kernel/itimer.c */ +#define __NR_getitimer 102 +__SC_COMP(__NR_getitimer, sys_getitimer, compat_sys_getitimer) +#define __NR_setitimer 103 +__SC_COMP(__NR_setitimer, sys_setitimer, compat_sys_setitimer) + +/* kernel/kexec.c */ +#define __NR_kexec_load 104 +__SC_COMP(__NR_kexec_load, sys_kexec_load, compat_sys_kexec_load) + +/* kernel/module.c */ +#define __NR_init_module 105 +__SYSCALL(__NR_init_module, sys_init_module) +#define __NR_delete_module 106 +__SYSCALL(__NR_delete_module, sys_delete_module) + +/* kernel/posix-timers.c */ +#define __NR_timer_create 107 +__SC_COMP(__NR_timer_create, sys_timer_create, compat_sys_timer_create) +#define __NR_timer_gettime 108 +__SC_COMP(__NR_timer_gettime, sys_timer_gettime, compat_sys_timer_gettime) +#define __NR_timer_getoverrun 109 +__SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun) +#define __NR_timer_settime 110 +__SC_COMP(__NR_timer_settime, sys_timer_settime, compat_sys_timer_settime) +#define __NR_timer_delete 111 +__SYSCALL(__NR_timer_delete, sys_timer_delete) +#define __NR_clock_settime 112 +__SC_COMP(__NR_clock_settime, sys_clock_settime, compat_sys_clock_settime) +#define __NR_clock_gettime 113 +__SC_COMP(__NR_clock_gettime, sys_clock_gettime, compat_sys_clock_gettime) +#define __NR_clock_getres 114 +__SC_COMP(__NR_clock_getres, sys_clock_getres, compat_sys_clock_getres) +#define __NR_clock_nanosleep 115 +__SC_COMP(__NR_clock_nanosleep, sys_clock_nanosleep, \ + compat_sys_clock_nanosleep) + +/* kernel/printk.c */ +#define __NR_syslog 116 +__SYSCALL(__NR_syslog, sys_syslog) + +/* kernel/ptrace.c */ +#define __NR_ptrace 117 +__SYSCALL(__NR_ptrace, sys_ptrace) + +/* kernel/sched.c */ +#define __NR_sched_setparam 118 +__SYSCALL(__NR_sched_setparam, sys_sched_setparam) +#define __NR_sched_setscheduler 119 +__SYSCALL(__NR_sched_setscheduler, sys_sched_setscheduler) +#define __NR_sched_getscheduler 120 +__SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler) +#define __NR_sched_getparam 121 +__SYSCALL(__NR_sched_getparam, sys_sched_getparam) +#define __NR_sched_setaffinity 122 +__SC_COMP(__NR_sched_setaffinity, sys_sched_setaffinity, \ + compat_sys_sched_setaffinity) +#define __NR_sched_getaffinity 123 +__SC_COMP(__NR_sched_getaffinity, sys_sched_getaffinity, \ + compat_sys_sched_getaffinity) +#define __NR_sched_yield 124 +__SYSCALL(__NR_sched_yield, sys_sched_yield) +#define __NR_sched_get_priority_max 125 +__SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max) +#define __NR_sched_get_priority_min 126 +__SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min) +#define __NR_sched_rr_get_interval 127 +__SC_COMP(__NR_sched_rr_get_interval, sys_sched_rr_get_interval, \ + compat_sys_sched_rr_get_interval) + +/* kernel/signal.c */ +#define __NR_restart_syscall 128 +__SYSCALL(__NR_restart_syscall, sys_restart_syscall) +#define __NR_kill 129 +__SYSCALL(__NR_kill, sys_kill) +#define __NR_tkill 130 +__SYSCALL(__NR_tkill, sys_tkill) +#define __NR_tgkill 131 +__SYSCALL(__NR_tgkill, sys_tgkill) +#define __NR_sigaltstack 132 +__SC_COMP(__NR_sigaltstack, sys_sigaltstack, compat_sys_sigaltstack) +#define __NR_rt_sigsuspend 133 +__SC_COMP(__NR_rt_sigsuspend, sys_rt_sigsuspend, compat_sys_rt_sigsuspend) +#define __NR_rt_sigaction 134 +__SC_COMP(__NR_rt_sigaction, sys_rt_sigaction, compat_sys_rt_sigaction) +#define __NR_rt_sigprocmask 135 +__SC_COMP(__NR_rt_sigprocmask, sys_rt_sigprocmask, compat_sys_rt_sigprocmask) +#define __NR_rt_sigpending 136 +__SC_COMP(__NR_rt_sigpending, sys_rt_sigpending, compat_sys_rt_sigpending) +#define __NR_rt_sigtimedwait 137 +__SC_COMP(__NR_rt_sigtimedwait, sys_rt_sigtimedwait, \ + compat_sys_rt_sigtimedwait) +#define __NR_rt_sigqueueinfo 138 +__SC_COMP(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, \ + compat_sys_rt_sigqueueinfo) +#define __NR_rt_sigreturn 139 +__SC_COMP(__NR_rt_sigreturn, sys_rt_sigreturn, compat_sys_rt_sigreturn) + +/* kernel/sys.c */ +#define __NR_setpriority 140 +__SYSCALL(__NR_setpriority, sys_setpriority) +#define __NR_getpriority 141 +__SYSCALL(__NR_getpriority, sys_getpriority) +#define __NR_reboot 142 +__SYSCALL(__NR_reboot, sys_reboot) +#define __NR_setregid 143 +__SYSCALL(__NR_setregid, sys_setregid) +#define __NR_setgid 144 +__SYSCALL(__NR_setgid, sys_setgid) +#define __NR_setreuid 145 +__SYSCALL(__NR_setreuid, sys_setreuid) +#define __NR_setuid 146 +__SYSCALL(__NR_setuid, sys_setuid) +#define __NR_setresuid 147 +__SYSCALL(__NR_setresuid, sys_setresuid) +#define __NR_getresuid 148 +__SYSCALL(__NR_getresuid, sys_getresuid) +#define __NR_setresgid 149 +__SYSCALL(__NR_setresgid, sys_setresgid) +#define __NR_getresgid 150 +__SYSCALL(__NR_getresgid, sys_getresgid) +#define __NR_setfsuid 151 +__SYSCALL(__NR_setfsuid, sys_setfsuid) +#define __NR_setfsgid 152 +__SYSCALL(__NR_setfsgid, sys_setfsgid) +#define __NR_times 153 +__SC_COMP(__NR_times, sys_times, compat_sys_times) +#define __NR_setpgid 154 +__SYSCALL(__NR_setpgid, sys_setpgid) +#define __NR_getpgid 155 +__SYSCALL(__NR_getpgid, sys_getpgid) +#define __NR_getsid 156 +__SYSCALL(__NR_getsid, sys_getsid) +#define __NR_setsid 157 +__SYSCALL(__NR_setsid, sys_setsid) +#define __NR_getgroups 158 +__SYSCALL(__NR_getgroups, sys_getgroups) +#define __NR_setgroups 159 +__SYSCALL(__NR_setgroups, sys_setgroups) +#define __NR_uname 160 +__SYSCALL(__NR_uname, sys_newuname) +#define __NR_sethostname 161 +__SYSCALL(__NR_sethostname, sys_sethostname) +#define __NR_setdomainname 162 +__SYSCALL(__NR_setdomainname, sys_setdomainname) +#define __NR_getrlimit 163 +__SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit) +#define __NR_setrlimit 164 +__SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit) +#define __NR_getrusage 165 +__SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage) +#define __NR_umask 166 +__SYSCALL(__NR_umask, sys_umask) +#define __NR_prctl 167 +__SYSCALL(__NR_prctl, sys_prctl) +#define __NR_getcpu 168 +__SYSCALL(__NR_getcpu, sys_getcpu) + +/* kernel/time.c */ +#define __NR_gettimeofday 169 +__SC_COMP(__NR_gettimeofday, sys_gettimeofday, compat_sys_gettimeofday) +#define __NR_settimeofday 170 +__SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday) +#define __NR_adjtimex 171 +__SC_COMP(__NR_adjtimex, sys_adjtimex, compat_sys_adjtimex) + +/* kernel/timer.c */ +#define __NR_getpid 172 +__SYSCALL(__NR_getpid, sys_getpid) +#define __NR_getppid 173 +__SYSCALL(__NR_getppid, sys_getppid) +#define __NR_getuid 174 +__SYSCALL(__NR_getuid, sys_getuid) +#define __NR_geteuid 175 +__SYSCALL(__NR_geteuid, sys_geteuid) +#define __NR_getgid 176 +__SYSCALL(__NR_getgid, sys_getgid) +#define __NR_getegid 177 +__SYSCALL(__NR_getegid, sys_getegid) +#define __NR_gettid 178 +__SYSCALL(__NR_gettid, sys_gettid) +#define __NR_sysinfo 179 +__SC_COMP(__NR_sysinfo, sys_sysinfo, compat_sys_sysinfo) + +/* ipc/mqueue.c */ +#define __NR_mq_open 180 +__SC_COMP(__NR_mq_open, sys_mq_open, compat_sys_mq_open) +#define __NR_mq_unlink 181 +__SYSCALL(__NR_mq_unlink, sys_mq_unlink) +#define __NR_mq_timedsend 182 +__SC_COMP(__NR_mq_timedsend, sys_mq_timedsend, compat_sys_mq_timedsend) +#define __NR_mq_timedreceive 183 +__SC_COMP(__NR_mq_timedreceive, sys_mq_timedreceive, \ + compat_sys_mq_timedreceive) +#define __NR_mq_notify 184 +__SC_COMP(__NR_mq_notify, sys_mq_notify, compat_sys_mq_notify) +#define __NR_mq_getsetattr 185 +__SC_COMP(__NR_mq_getsetattr, sys_mq_getsetattr, compat_sys_mq_getsetattr) + +/* ipc/msg.c */ +#define __NR_msgget 186 +__SYSCALL(__NR_msgget, sys_msgget) +#define __NR_msgctl 187 +__SC_COMP(__NR_msgctl, sys_msgctl, compat_sys_msgctl) +#define __NR_msgrcv 188 +__SC_COMP(__NR_msgrcv, sys_msgrcv, compat_sys_msgrcv) +#define __NR_msgsnd 189 +__SC_COMP(__NR_msgsnd, sys_msgsnd, compat_sys_msgsnd) + +/* ipc/sem.c */ +#define __NR_semget 190 +__SYSCALL(__NR_semget, sys_semget) +#define __NR_semctl 191 +__SC_COMP(__NR_semctl, sys_semctl, compat_sys_semctl) +#define __NR_semtimedop 192 +__SC_COMP(__NR_semtimedop, sys_semtimedop, compat_sys_semtimedop) +#define __NR_semop 193 +__SYSCALL(__NR_semop, sys_semop) + +/* ipc/shm.c */ +#define __NR_shmget 194 +__SYSCALL(__NR_shmget, sys_shmget) +#define __NR_shmctl 195 +__SC_COMP(__NR_shmctl, sys_shmctl, compat_sys_shmctl) +#define __NR_shmat 196 +__SC_COMP(__NR_shmat, sys_shmat, compat_sys_shmat) +#define __NR_shmdt 197 +__SYSCALL(__NR_shmdt, sys_shmdt) + +/* net/socket.c */ +#define __NR_socket 198 +__SYSCALL(__NR_socket, sys_socket) +#define __NR_socketpair 199 +__SYSCALL(__NR_socketpair, sys_socketpair) +#define __NR_bind 200 +__SYSCALL(__NR_bind, sys_bind) +#define __NR_listen 201 +__SYSCALL(__NR_listen, sys_listen) +#define __NR_accept 202 +__SYSCALL(__NR_accept, sys_accept) +#define __NR_connect 203 +__SYSCALL(__NR_connect, sys_connect) +#define __NR_getsockname 204 +__SYSCALL(__NR_getsockname, sys_getsockname) +#define __NR_getpeername 205 +__SYSCALL(__NR_getpeername, sys_getpeername) +#define __NR_sendto 206 +__SYSCALL(__NR_sendto, sys_sendto) +#define __NR_recvfrom 207 +__SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom) +#define __NR_setsockopt 208 +__SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt) +#define __NR_getsockopt 209 +__SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt) +#define __NR_shutdown 210 +__SYSCALL(__NR_shutdown, sys_shutdown) +#define __NR_sendmsg 211 +__SC_COMP(__NR_sendmsg, sys_sendmsg, compat_sys_sendmsg) +#define __NR_recvmsg 212 +__SC_COMP(__NR_recvmsg, sys_recvmsg, compat_sys_recvmsg) + +/* mm/filemap.c */ +#define __NR_readahead 213 +__SC_COMP(__NR_readahead, sys_readahead, compat_sys_readahead) + +/* mm/nommu.c, also with MMU */ +#define __NR_brk 214 +__SYSCALL(__NR_brk, sys_brk) +#define __NR_munmap 215 +__SYSCALL(__NR_munmap, sys_munmap) +#define __NR_mremap 216 +__SYSCALL(__NR_mremap, sys_mremap) + +/* security/keys/keyctl.c */ +#define __NR_add_key 217 +__SYSCALL(__NR_add_key, sys_add_key) +#define __NR_request_key 218 +__SYSCALL(__NR_request_key, sys_request_key) +#define __NR_keyctl 219 +__SC_COMP(__NR_keyctl, sys_keyctl, compat_sys_keyctl) + +/* arch/example/kernel/sys_example.c */ +#define __NR_clone 220 +__SYSCALL(__NR_clone, sys_clone) +#define __NR_execve 221 +__SC_COMP(__NR_execve, sys_execve, compat_sys_execve) + +#define __NR3264_mmap 222 +__SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap) +/* mm/fadvise.c */ +#define __NR3264_fadvise64 223 +__SC_COMP(__NR3264_fadvise64, sys_fadvise64_64, compat_sys_fadvise64_64) + +/* mm/, CONFIG_MMU only */ +#ifndef __ARCH_NOMMU +#define __NR_swapon 224 +__SYSCALL(__NR_swapon, sys_swapon) +#define __NR_swapoff 225 +__SYSCALL(__NR_swapoff, sys_swapoff) +#define __NR_mprotect 226 +__SYSCALL(__NR_mprotect, sys_mprotect) +#define __NR_msync 227 +__SYSCALL(__NR_msync, sys_msync) +#define __NR_mlock 228 +__SYSCALL(__NR_mlock, sys_mlock) +#define __NR_munlock 229 +__SYSCALL(__NR_munlock, sys_munlock) +#define __NR_mlockall 230 +__SYSCALL(__NR_mlockall, sys_mlockall) +#define __NR_munlockall 231 +__SYSCALL(__NR_munlockall, sys_munlockall) +#define __NR_mincore 232 +__SYSCALL(__NR_mincore, sys_mincore) +#define __NR_madvise 233 +__SYSCALL(__NR_madvise, sys_madvise) +#define __NR_remap_file_pages 234 +__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages) +#define __NR_mbind 235 +__SC_COMP(__NR_mbind, sys_mbind, compat_sys_mbind) +#define __NR_get_mempolicy 236 +__SC_COMP(__NR_get_mempolicy, sys_get_mempolicy, compat_sys_get_mempolicy) +#define __NR_set_mempolicy 237 +__SC_COMP(__NR_set_mempolicy, sys_set_mempolicy, compat_sys_set_mempolicy) +#define __NR_migrate_pages 238 +__SC_COMP(__NR_migrate_pages, sys_migrate_pages, compat_sys_migrate_pages) +#define __NR_move_pages 239 +__SC_COMP(__NR_move_pages, sys_move_pages, compat_sys_move_pages) +#endif + +#define __NR_rt_tgsigqueueinfo 240 +__SC_COMP(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, \ + compat_sys_rt_tgsigqueueinfo) +#define __NR_perf_event_open 241 +__SYSCALL(__NR_perf_event_open, sys_perf_event_open) +#define __NR_accept4 242 +__SYSCALL(__NR_accept4, sys_accept4) +#define __NR_recvmmsg 243 +__SC_COMP(__NR_recvmmsg, sys_recvmmsg, compat_sys_recvmmsg) + +/* + * Architectures may provide up to 16 syscalls of their own + * starting with this value. + */ +#define __NR_arch_specific_syscall 244 + +#define __NR_wait4 260 +__SC_COMP(__NR_wait4, sys_wait4, compat_sys_wait4) +#define __NR_prlimit64 261 +__SYSCALL(__NR_prlimit64, sys_prlimit64) +#define __NR_fanotify_init 262 +__SYSCALL(__NR_fanotify_init, sys_fanotify_init) +#define __NR_fanotify_mark 263 +__SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) +#define __NR_name_to_handle_at 264 +__SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) +#define __NR_open_by_handle_at 265 +__SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \ + compat_sys_open_by_handle_at) +#define __NR_clock_adjtime 266 +__SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime) +#define __NR_syncfs 267 +__SYSCALL(__NR_syncfs, sys_syncfs) +#define __NR_setns 268 +__SYSCALL(__NR_setns, sys_setns) +#define __NR_sendmmsg 269 +__SC_COMP(__NR_sendmmsg, sys_sendmmsg, compat_sys_sendmmsg) +#define __NR_process_vm_readv 270 +__SC_COMP(__NR_process_vm_readv, sys_process_vm_readv, \ + compat_sys_process_vm_readv) +#define __NR_process_vm_writev 271 +__SC_COMP(__NR_process_vm_writev, sys_process_vm_writev, \ + compat_sys_process_vm_writev) +#define __NR_kcmp 272 +__SYSCALL(__NR_kcmp, sys_kcmp) +#define __NR_finit_module 273 +__SYSCALL(__NR_finit_module, sys_finit_module) + +#undef __NR_syscalls +#define __NR_syscalls 274 + +/* + * All syscalls below here should go away really, + * these are provided for both review and as a porting + * help for the C library version. +* + * Last chance: are any of these important enough to + * enable by default? + */ +#ifdef __ARCH_WANT_SYSCALL_NO_AT +#define __NR_open 1024 +__SYSCALL(__NR_open, sys_open) +#define __NR_link 1025 +__SYSCALL(__NR_link, sys_link) +#define __NR_unlink 1026 +__SYSCALL(__NR_unlink, sys_unlink) +#define __NR_mknod 1027 +__SYSCALL(__NR_mknod, sys_mknod) +#define __NR_chmod 1028 +__SYSCALL(__NR_chmod, sys_chmod) +#define __NR_chown 1029 +__SYSCALL(__NR_chown, sys_chown) +#define __NR_mkdir 1030 +__SYSCALL(__NR_mkdir, sys_mkdir) +#define __NR_rmdir 1031 +__SYSCALL(__NR_rmdir, sys_rmdir) +#define __NR_lchown 1032 +__SYSCALL(__NR_lchown, sys_lchown) +#define __NR_access 1033 +__SYSCALL(__NR_access, sys_access) +#define __NR_rename 1034 +__SYSCALL(__NR_rename, sys_rename) +#define __NR_readlink 1035 +__SYSCALL(__NR_readlink, sys_readlink) +#define __NR_symlink 1036 +__SYSCALL(__NR_symlink, sys_symlink) +#define __NR_utimes 1037 +__SYSCALL(__NR_utimes, sys_utimes) +#define __NR3264_stat 1038 +__SC_3264(__NR3264_stat, sys_stat64, sys_newstat) +#define __NR3264_lstat 1039 +__SC_3264(__NR3264_lstat, sys_lstat64, sys_newlstat) + +#undef __NR_syscalls +#define __NR_syscalls (__NR3264_lstat+1) +#endif /* __ARCH_WANT_SYSCALL_NO_AT */ + +#ifdef __ARCH_WANT_SYSCALL_NO_FLAGS +#define __NR_pipe 1040 +__SYSCALL(__NR_pipe, sys_pipe) +#define __NR_dup2 1041 +__SYSCALL(__NR_dup2, sys_dup2) +#define __NR_epoll_create 1042 +__SYSCALL(__NR_epoll_create, sys_epoll_create) +#define __NR_inotify_init 1043 +__SYSCALL(__NR_inotify_init, sys_inotify_init) +#define __NR_eventfd 1044 +__SYSCALL(__NR_eventfd, sys_eventfd) +#define __NR_signalfd 1045 +__SYSCALL(__NR_signalfd, sys_signalfd) + +#undef __NR_syscalls +#define __NR_syscalls (__NR_signalfd+1) +#endif /* __ARCH_WANT_SYSCALL_NO_FLAGS */ + +#if (__BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)) && \ + defined(__ARCH_WANT_SYSCALL_OFF_T) +#define __NR_sendfile 1046 +__SYSCALL(__NR_sendfile, sys_sendfile) +#define __NR_ftruncate 1047 +__SYSCALL(__NR_ftruncate, sys_ftruncate) +#define __NR_truncate 1048 +__SYSCALL(__NR_truncate, sys_truncate) +#define __NR_stat 1049 +__SYSCALL(__NR_stat, sys_newstat) +#define __NR_lstat 1050 +__SYSCALL(__NR_lstat, sys_newlstat) +#define __NR_fstat 1051 +__SYSCALL(__NR_fstat, sys_newfstat) +#define __NR_fcntl 1052 +__SYSCALL(__NR_fcntl, sys_fcntl) +#define __NR_fadvise64 1053 +#define __ARCH_WANT_SYS_FADVISE64 +__SYSCALL(__NR_fadvise64, sys_fadvise64) +#define __NR_newfstatat 1054 +#define __ARCH_WANT_SYS_NEWFSTATAT +__SYSCALL(__NR_newfstatat, sys_newfstatat) +#define __NR_fstatfs 1055 +__SYSCALL(__NR_fstatfs, sys_fstatfs) +#define __NR_statfs 1056 +__SYSCALL(__NR_statfs, sys_statfs) +#define __NR_lseek 1057 +__SYSCALL(__NR_lseek, sys_lseek) +#define __NR_mmap 1058 +__SYSCALL(__NR_mmap, sys_mmap) + +#undef __NR_syscalls +#define __NR_syscalls (__NR_mmap+1) +#endif /* 32 bit off_t syscalls */ + +#ifdef __ARCH_WANT_SYSCALL_DEPRECATED +#define __NR_alarm 1059 +#define __ARCH_WANT_SYS_ALARM +__SYSCALL(__NR_alarm, sys_alarm) +#define __NR_getpgrp 1060 +#define __ARCH_WANT_SYS_GETPGRP +__SYSCALL(__NR_getpgrp, sys_getpgrp) +#define __NR_pause 1061 +#define __ARCH_WANT_SYS_PAUSE +__SYSCALL(__NR_pause, sys_pause) +#define __NR_time 1062 +#define __ARCH_WANT_SYS_TIME +#define __ARCH_WANT_COMPAT_SYS_TIME +__SYSCALL(__NR_time, sys_time) +#define __NR_utime 1063 +#define __ARCH_WANT_SYS_UTIME +__SYSCALL(__NR_utime, sys_utime) + +#define __NR_creat 1064 +__SYSCALL(__NR_creat, sys_creat) +#define __NR_getdents 1065 +#define __ARCH_WANT_SYS_GETDENTS +__SYSCALL(__NR_getdents, sys_getdents) +#define __NR_futimesat 1066 +__SYSCALL(__NR_futimesat, sys_futimesat) +#define __NR_select 1067 +#define __ARCH_WANT_SYS_SELECT +__SYSCALL(__NR_select, sys_select) +#define __NR_poll 1068 +__SYSCALL(__NR_poll, sys_poll) +#define __NR_epoll_wait 1069 +__SYSCALL(__NR_epoll_wait, sys_epoll_wait) +#define __NR_ustat 1070 +__SYSCALL(__NR_ustat, sys_ustat) +#define __NR_vfork 1071 +__SYSCALL(__NR_vfork, sys_vfork) +#define __NR_oldwait4 1072 +__SYSCALL(__NR_oldwait4, sys_wait4) +#define __NR_recv 1073 +__SYSCALL(__NR_recv, sys_recv) +#define __NR_send 1074 +__SYSCALL(__NR_send, sys_send) +#define __NR_bdflush 1075 +__SYSCALL(__NR_bdflush, sys_bdflush) +#define __NR_umount 1076 +__SYSCALL(__NR_umount, sys_oldumount) +#define __ARCH_WANT_SYS_OLDUMOUNT +#define __NR_uselib 1077 +__SYSCALL(__NR_uselib, sys_uselib) +#define __NR__sysctl 1078 +__SYSCALL(__NR__sysctl, sys_sysctl) + +#define __NR_fork 1079 +#ifdef CONFIG_MMU +__SYSCALL(__NR_fork, sys_fork) +#else +__SYSCALL(__NR_fork, sys_ni_syscall) +#endif /* CONFIG_MMU */ + +#undef __NR_syscalls +#define __NR_syscalls (__NR_fork+1) + +#endif /* __ARCH_WANT_SYSCALL_DEPRECATED */ + +/* + * 32 bit systems traditionally used different + * syscalls for off_t and loff_t arguments, while + * 64 bit systems only need the off_t version. + * For new 32 bit platforms, there is no need to + * implement the old 32 bit off_t syscalls, so + * they take different names. + * Here we map the numbers so that both versions + * use the same syscall table layout. + */ +#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT) +#define __NR_fcntl __NR3264_fcntl +#define __NR_statfs __NR3264_statfs +#define __NR_fstatfs __NR3264_fstatfs +#define __NR_truncate __NR3264_truncate +#define __NR_ftruncate __NR3264_ftruncate +#define __NR_lseek __NR3264_lseek +#define __NR_sendfile __NR3264_sendfile +#define __NR_newfstatat __NR3264_fstatat +#define __NR_fstat __NR3264_fstat +#define __NR_mmap __NR3264_mmap +#define __NR_fadvise64 __NR3264_fadvise64 +#ifdef __NR3264_stat +#define __NR_stat __NR3264_stat +#define __NR_lstat __NR3264_lstat +#endif +#else +#define __NR_fcntl64 __NR3264_fcntl +#define __NR_statfs64 __NR3264_statfs +#define __NR_fstatfs64 __NR3264_fstatfs +#define __NR_truncate64 __NR3264_truncate +#define __NR_ftruncate64 __NR3264_ftruncate +#define __NR_llseek __NR3264_lseek +#define __NR_sendfile64 __NR3264_sendfile +#define __NR_fstatat64 __NR3264_fstatat +#define __NR_fstat64 __NR3264_fstat +#define __NR_mmap2 __NR3264_mmap +#define __NR_fadvise64_64 __NR3264_fadvise64 +#ifdef __NR3264_stat +#define __NR_stat64 __NR3264_stat +#define __NR_lstat64 __NR3264_lstat +#endif +#endif diff --git a/kernel_headers/asm/..install.cmd b/kernel_headers/asm/..install.cmd new file mode 100644 index 0000000..8df6925 --- /dev/null +++ b/kernel_headers/asm/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm /android/kernels/moto/surnia/kernel-msm/arch/arm/include/uapi/asm byteorder.h fcntl.h hwcap.h ioctls.h kvm.h kvm_para.h mman.h posix_types.h ptrace.h setup.h sigcontext.h signal.h stat.h statfs.h swab.h unistd.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm /android/kernels/moto/surnia/kernel-msm/arch/arm/include/asm ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/arch/arm/include/generated/uapi/asm ; for F in auxvec.h bitsperlong.h errno.h ioctl.h ipcbuf.h msgbuf.h param.h poll.h resource.h sembuf.h shmbuf.h siginfo.h socket.h sockios.h termbits.h termios.h types.h; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/asm/.install diff --git a/kernel_headers/asm/.install b/kernel_headers/asm/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/asm/auxvec.h b/kernel_headers/asm/auxvec.h new file mode 100644 index 0000000..41fa68b --- /dev/null +++ b/kernel_headers/asm/auxvec.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/bitsperlong.h b/kernel_headers/asm/bitsperlong.h new file mode 100644 index 0000000..6dc0bb0 --- /dev/null +++ b/kernel_headers/asm/bitsperlong.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/byteorder.h b/kernel_headers/asm/byteorder.h new file mode 100644 index 0000000..7737974 --- /dev/null +++ b/kernel_headers/asm/byteorder.h @@ -0,0 +1,25 @@ +/* + * arch/arm/include/asm/byteorder.h + * + * ARM Endian-ness. In little endian mode, the data bus is connected such + * that byte accesses appear as: + * 0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31 + * and word accesses (data or instruction) appear as: + * d0...d31 + * + * When in big endian mode, byte accesses appear as: + * 0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7 + * and word accesses (data or instruction) appear as: + * d0...d31 + */ +#ifndef __ASM_ARM_BYTEORDER_H +#define __ASM_ARM_BYTEORDER_H + +#ifdef __ARMEB__ +#include +#else +#include +#endif + +#endif + diff --git a/kernel_headers/asm/errno.h b/kernel_headers/asm/errno.h new file mode 100644 index 0000000..4c82b50 --- /dev/null +++ b/kernel_headers/asm/errno.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/fcntl.h b/kernel_headers/asm/fcntl.h new file mode 100644 index 0000000..a80b660 --- /dev/null +++ b/kernel_headers/asm/fcntl.h @@ -0,0 +1,11 @@ +#ifndef _ARM_FCNTL_H +#define _ARM_FCNTL_H + +#define O_DIRECTORY 040000 /* must be a directory */ +#define O_NOFOLLOW 0100000 /* don't follow links */ +#define O_DIRECT 0200000 /* direct disk access hint - currently ignored */ +#define O_LARGEFILE 0400000 + +#include + +#endif diff --git a/kernel_headers/asm/hwcap.h b/kernel_headers/asm/hwcap.h new file mode 100644 index 0000000..6730bb8 --- /dev/null +++ b/kernel_headers/asm/hwcap.h @@ -0,0 +1,31 @@ +#ifndef __ASMARM_HWCAP_H +#define __ASMARM_HWCAP_H + +/* + * HWCAP flags - for elf_hwcap (in kernel) and AT_HWCAP + */ +#define HWCAP_SWP (1 << 0) +#define HWCAP_HALF (1 << 1) +#define HWCAP_THUMB (1 << 2) +#define HWCAP_26BIT (1 << 3) /* Play it safe */ +#define HWCAP_FAST_MULT (1 << 4) +#define HWCAP_FPA (1 << 5) +#define HWCAP_VFP (1 << 6) +#define HWCAP_EDSP (1 << 7) +#define HWCAP_JAVA (1 << 8) +#define HWCAP_IWMMXT (1 << 9) +#define HWCAP_CRUNCH (1 << 10) +#define HWCAP_THUMBEE (1 << 11) +#define HWCAP_NEON (1 << 12) +#define HWCAP_VFPv3 (1 << 13) +#define HWCAP_VFPv3D16 (1 << 14) /* also set for VFPv4-D16 */ +#define HWCAP_TLS (1 << 15) +#define HWCAP_VFPv4 (1 << 16) +#define HWCAP_IDIVA (1 << 17) +#define HWCAP_IDIVT (1 << 18) +#define HWCAP_VFPD32 (1 << 19) /* set if VFP has 32 regs (not 16) */ +#define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT) +#define HWCAP_LPAE (1 << 20) +#define HWCAP_EVTSTRM (1 << 21) + +#endif /* __ASMARM_HWCAP_H */ diff --git a/kernel_headers/asm/ioctl.h b/kernel_headers/asm/ioctl.h new file mode 100644 index 0000000..b279fe0 --- /dev/null +++ b/kernel_headers/asm/ioctl.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/ioctls.h b/kernel_headers/asm/ioctls.h new file mode 100644 index 0000000..9c96298 --- /dev/null +++ b/kernel_headers/asm/ioctls.h @@ -0,0 +1,8 @@ +#ifndef __ASM_ARM_IOCTLS_H +#define __ASM_ARM_IOCTLS_H + +#define FIOQSIZE 0x545E + +#include + +#endif diff --git a/kernel_headers/asm/ipcbuf.h b/kernel_headers/asm/ipcbuf.h new file mode 100644 index 0000000..84c7e51 --- /dev/null +++ b/kernel_headers/asm/ipcbuf.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/kvm.h b/kernel_headers/asm/kvm.h new file mode 100644 index 0000000..5cbf5c0 --- /dev/null +++ b/kernel_headers/asm/kvm.h @@ -0,0 +1,202 @@ +/* + * Copyright (C) 2012 - Virtual Open Systems and Columbia University + * Author: Christoffer Dall + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __ARM_KVM_H__ +#define __ARM_KVM_H__ + +#include +#include +#include + +#define __KVM_HAVE_GUEST_DEBUG +#define __KVM_HAVE_IRQ_LINE + +#define KVM_REG_SIZE(id) \ + (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) + +/* Valid for svc_regs, abt_regs, und_regs, irq_regs in struct kvm_regs */ +#define KVM_ARM_SVC_sp svc_regs[0] +#define KVM_ARM_SVC_lr svc_regs[1] +#define KVM_ARM_SVC_spsr svc_regs[2] +#define KVM_ARM_ABT_sp abt_regs[0] +#define KVM_ARM_ABT_lr abt_regs[1] +#define KVM_ARM_ABT_spsr abt_regs[2] +#define KVM_ARM_UND_sp und_regs[0] +#define KVM_ARM_UND_lr und_regs[1] +#define KVM_ARM_UND_spsr und_regs[2] +#define KVM_ARM_IRQ_sp irq_regs[0] +#define KVM_ARM_IRQ_lr irq_regs[1] +#define KVM_ARM_IRQ_spsr irq_regs[2] + +/* Valid only for fiq_regs in struct kvm_regs */ +#define KVM_ARM_FIQ_r8 fiq_regs[0] +#define KVM_ARM_FIQ_r9 fiq_regs[1] +#define KVM_ARM_FIQ_r10 fiq_regs[2] +#define KVM_ARM_FIQ_fp fiq_regs[3] +#define KVM_ARM_FIQ_ip fiq_regs[4] +#define KVM_ARM_FIQ_sp fiq_regs[5] +#define KVM_ARM_FIQ_lr fiq_regs[6] +#define KVM_ARM_FIQ_spsr fiq_regs[7] + +struct kvm_regs { + struct pt_regs usr_regs; /* R0_usr - R14_usr, PC, CPSR */ + unsigned long svc_regs[3]; /* SP_svc, LR_svc, SPSR_svc */ + unsigned long abt_regs[3]; /* SP_abt, LR_abt, SPSR_abt */ + unsigned long und_regs[3]; /* SP_und, LR_und, SPSR_und */ + unsigned long irq_regs[3]; /* SP_irq, LR_irq, SPSR_irq */ + unsigned long fiq_regs[8]; /* R8_fiq - R14_fiq, SPSR_fiq */ +}; + +/* Supported Processor Types */ +#define KVM_ARM_TARGET_CORTEX_A15 0 +#define KVM_ARM_NUM_TARGETS 1 + +/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */ +#define KVM_ARM_DEVICE_TYPE_SHIFT 0 +#define KVM_ARM_DEVICE_TYPE_MASK (0xffff << KVM_ARM_DEVICE_TYPE_SHIFT) +#define KVM_ARM_DEVICE_ID_SHIFT 16 +#define KVM_ARM_DEVICE_ID_MASK (0xffff << KVM_ARM_DEVICE_ID_SHIFT) + +/* Supported device IDs */ +#define KVM_ARM_DEVICE_VGIC_V2 0 + +/* Supported VGIC address types */ +#define KVM_VGIC_V2_ADDR_TYPE_DIST 0 +#define KVM_VGIC_V2_ADDR_TYPE_CPU 1 + +#define KVM_VGIC_V2_DIST_SIZE 0x1000 +#define KVM_VGIC_V2_CPU_SIZE 0x2000 + +#define KVM_ARM_VCPU_POWER_OFF 0 /* CPU is started in OFF state */ +#define KVM_ARM_VCPU_PSCI_0_2 1 /* CPU uses PSCI v0.2 */ + +struct kvm_vcpu_init { + __u32 target; + __u32 features[7]; +}; + +struct kvm_sregs { +}; + +struct kvm_fpu { +}; + +struct kvm_guest_debug_arch { +}; + +struct kvm_debug_exit_arch { +}; + +struct kvm_sync_regs { +}; + +struct kvm_arch_memory_slot { +}; + +/* If you need to interpret the index values, here is the key: */ +#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 +#define KVM_REG_ARM_COPROC_SHIFT 16 +#define KVM_REG_ARM_32_OPC2_MASK 0x0000000000000007 +#define KVM_REG_ARM_32_OPC2_SHIFT 0 +#define KVM_REG_ARM_OPC1_MASK 0x0000000000000078 +#define KVM_REG_ARM_OPC1_SHIFT 3 +#define KVM_REG_ARM_CRM_MASK 0x0000000000000780 +#define KVM_REG_ARM_CRM_SHIFT 7 +#define KVM_REG_ARM_32_CRN_MASK 0x0000000000007800 +#define KVM_REG_ARM_32_CRN_SHIFT 11 + +#define ARM_CP15_REG_SHIFT_MASK(x,n) \ + (((x) << KVM_REG_ARM_ ## n ## _SHIFT) & KVM_REG_ARM_ ## n ## _MASK) + +#define __ARM_CP15_REG(op1,crn,crm,op2) \ + (KVM_REG_ARM | (15 << KVM_REG_ARM_COPROC_SHIFT) | \ + ARM_CP15_REG_SHIFT_MASK(op1, OPC1) | \ + ARM_CP15_REG_SHIFT_MASK(crn, 32_CRN) | \ + ARM_CP15_REG_SHIFT_MASK(crm, CRM) | \ + ARM_CP15_REG_SHIFT_MASK(op2, 32_OPC2)) + +#define ARM_CP15_REG32(...) (__ARM_CP15_REG(__VA_ARGS__) | KVM_REG_SIZE_U32) + +#define __ARM_CP15_REG64(op1,crm) \ + (__ARM_CP15_REG(op1, 0, crm, 0) | KVM_REG_SIZE_U64) +#define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__) + +#define KVM_REG_ARM_TIMER_CTL ARM_CP15_REG32(0, 14, 3, 1) +#define KVM_REG_ARM_TIMER_CNT ARM_CP15_REG64(1, 14) +#define KVM_REG_ARM_TIMER_CVAL ARM_CP15_REG64(3, 14) + +/* Normal registers are mapped as coprocessor 16. */ +#define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_CORE_REG(name) (offsetof(struct kvm_regs, name) / 4) + +/* Some registers need more space to represent values. */ +#define KVM_REG_ARM_DEMUX (0x0011 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_DEMUX_ID_MASK 0x000000000000FF00 +#define KVM_REG_ARM_DEMUX_ID_SHIFT 8 +#define KVM_REG_ARM_DEMUX_ID_CCSIDR (0x00 << KVM_REG_ARM_DEMUX_ID_SHIFT) +#define KVM_REG_ARM_DEMUX_VAL_MASK 0x00000000000000FF +#define KVM_REG_ARM_DEMUX_VAL_SHIFT 0 + +/* VFP registers: we could overload CP10 like ARM does, but that's ugly. */ +#define KVM_REG_ARM_VFP (0x0012 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_VFP_MASK 0x000000000000FFFF +#define KVM_REG_ARM_VFP_BASE_REG 0x0 +#define KVM_REG_ARM_VFP_FPSID 0x1000 +#define KVM_REG_ARM_VFP_FPSCR 0x1001 +#define KVM_REG_ARM_VFP_MVFR1 0x1006 +#define KVM_REG_ARM_VFP_MVFR0 0x1007 +#define KVM_REG_ARM_VFP_FPEXC 0x1008 +#define KVM_REG_ARM_VFP_FPINST 0x1009 +#define KVM_REG_ARM_VFP_FPINST2 0x100A + + +/* KVM_IRQ_LINE irq field index values */ +#define KVM_ARM_IRQ_TYPE_SHIFT 24 +#define KVM_ARM_IRQ_TYPE_MASK 0xff +#define KVM_ARM_IRQ_VCPU_SHIFT 16 +#define KVM_ARM_IRQ_VCPU_MASK 0xff +#define KVM_ARM_IRQ_NUM_SHIFT 0 +#define KVM_ARM_IRQ_NUM_MASK 0xffff + +/* irq_type field */ +#define KVM_ARM_IRQ_TYPE_CPU 0 +#define KVM_ARM_IRQ_TYPE_SPI 1 +#define KVM_ARM_IRQ_TYPE_PPI 2 + +/* out-of-kernel GIC cpu interrupt injection irq_number field */ +#define KVM_ARM_IRQ_CPU_IRQ 0 +#define KVM_ARM_IRQ_CPU_FIQ 1 + +/* Highest supported SPI, from VGIC_NR_IRQS */ +#define KVM_ARM_IRQ_GIC_MAX 127 + +/* PSCI interface */ +#define KVM_PSCI_FN_BASE 0x95c1ba5e +#define KVM_PSCI_FN(n) (KVM_PSCI_FN_BASE + (n)) + +#define KVM_PSCI_FN_CPU_SUSPEND KVM_PSCI_FN(0) +#define KVM_PSCI_FN_CPU_OFF KVM_PSCI_FN(1) +#define KVM_PSCI_FN_CPU_ON KVM_PSCI_FN(2) +#define KVM_PSCI_FN_MIGRATE KVM_PSCI_FN(3) + +#define KVM_PSCI_RET_SUCCESS PSCI_RET_SUCCESS +#define KVM_PSCI_RET_NI PSCI_RET_NOT_SUPPORTED +#define KVM_PSCI_RET_INVAL PSCI_RET_INVALID_PARAMS +#define KVM_PSCI_RET_DENIED PSCI_RET_DENIED + +#endif /* __ARM_KVM_H__ */ diff --git a/kernel_headers/asm/kvm_para.h b/kernel_headers/asm/kvm_para.h new file mode 100644 index 0000000..14fab8f --- /dev/null +++ b/kernel_headers/asm/kvm_para.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/mman.h b/kernel_headers/asm/mman.h new file mode 100644 index 0000000..41f99c5 --- /dev/null +++ b/kernel_headers/asm/mman.h @@ -0,0 +1,4 @@ +#include + +#define arch_mmap_check(addr, len, flags) \ + (((flags) & MAP_FIXED && (addr) < FIRST_USER_ADDRESS) ? -EINVAL : 0) diff --git a/kernel_headers/asm/msgbuf.h b/kernel_headers/asm/msgbuf.h new file mode 100644 index 0000000..809134c --- /dev/null +++ b/kernel_headers/asm/msgbuf.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/param.h b/kernel_headers/asm/param.h new file mode 100644 index 0000000..965d454 --- /dev/null +++ b/kernel_headers/asm/param.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/poll.h b/kernel_headers/asm/poll.h new file mode 100644 index 0000000..c98509d --- /dev/null +++ b/kernel_headers/asm/poll.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/posix_types.h b/kernel_headers/asm/posix_types.h new file mode 100644 index 0000000..1db85c9 --- /dev/null +++ b/kernel_headers/asm/posix_types.h @@ -0,0 +1,40 @@ +/* + * arch/arm/include/asm/posix_types.h + * + * Copyright (C) 1996-1998 Russell King. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Changelog: + * 27-06-1996 RMK Created + */ +#ifndef __ARCH_ARM_POSIX_TYPES_H +#define __ARCH_ARM_POSIX_TYPES_H + +/* + * This file is generally used by user-level software, so you need to + * be a little careful about namespace pollution etc. Also, we cannot + * assume GCC is being used. + */ + +typedef unsigned short __kernel_mode_t; +#define __kernel_mode_t __kernel_mode_t + +typedef unsigned short __kernel_nlink_t; +#define __kernel_nlink_t __kernel_nlink_t + +typedef unsigned short __kernel_ipc_pid_t; +#define __kernel_ipc_pid_t __kernel_ipc_pid_t + +typedef unsigned short __kernel_uid_t; +typedef unsigned short __kernel_gid_t; +#define __kernel_uid_t __kernel_uid_t + +typedef unsigned short __kernel_old_dev_t; +#define __kernel_old_dev_t __kernel_old_dev_t + +#include + +#endif diff --git a/kernel_headers/asm/ptrace.h b/kernel_headers/asm/ptrace.h new file mode 100644 index 0000000..32b6e66 --- /dev/null +++ b/kernel_headers/asm/ptrace.h @@ -0,0 +1,136 @@ +/* + * arch/arm/include/asm/ptrace.h + * + * Copyright (C) 1996-2003 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef __ASM_ARM_PTRACE_H +#define __ASM_ARM_PTRACE_H + +#include + +#define PTRACE_GETREGS 12 +#define PTRACE_SETREGS 13 +#define PTRACE_GETFPREGS 14 +#define PTRACE_SETFPREGS 15 +/* PTRACE_ATTACH is 16 */ +/* PTRACE_DETACH is 17 */ +#define PTRACE_GETWMMXREGS 18 +#define PTRACE_SETWMMXREGS 19 +/* 20 is unused */ +#define PTRACE_OLDSETOPTIONS 21 +#define PTRACE_GET_THREAD_AREA 22 +#define PTRACE_SET_SYSCALL 23 +/* PTRACE_SYSCALL is 24 */ +#define PTRACE_GETCRUNCHREGS 25 +#define PTRACE_SETCRUNCHREGS 26 +#define PTRACE_GETVFPREGS 27 +#define PTRACE_SETVFPREGS 28 +#define PTRACE_GETHBPREGS 29 +#define PTRACE_SETHBPREGS 30 + +/* + * PSR bits + */ +#define USR26_MODE 0x00000000 +#define FIQ26_MODE 0x00000001 +#define IRQ26_MODE 0x00000002 +#define SVC26_MODE 0x00000003 +#define USR_MODE 0x00000010 +#define FIQ_MODE 0x00000011 +#define IRQ_MODE 0x00000012 +#define SVC_MODE 0x00000013 +#define ABT_MODE 0x00000017 +#define HYP_MODE 0x0000001a +#define UND_MODE 0x0000001b +#define SYSTEM_MODE 0x0000001f +#define MODE32_BIT 0x00000010 +#define MODE_MASK 0x0000001f +#define PSR_T_BIT 0x00000020 +#define PSR_F_BIT 0x00000040 +#define PSR_I_BIT 0x00000080 +#define PSR_A_BIT 0x00000100 +#define PSR_E_BIT 0x00000200 +#define PSR_J_BIT 0x01000000 +#define PSR_Q_BIT 0x08000000 +#define PSR_V_BIT 0x10000000 +#define PSR_C_BIT 0x20000000 +#define PSR_Z_BIT 0x40000000 +#define PSR_N_BIT 0x80000000 + +/* + * Groups of PSR bits + */ +#define PSR_f 0xff000000 /* Flags */ +#define PSR_s 0x00ff0000 /* Status */ +#define PSR_x 0x0000ff00 /* Extension */ +#define PSR_c 0x000000ff /* Control */ + +/* + * ARMv7 groups of PSR bits + */ +#define APSR_MASK 0xf80f0000 /* N, Z, C, V, Q and GE flags */ +#define PSR_ISET_MASK 0x01000010 /* ISA state (J, T) mask */ +#define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */ +#define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */ + +/* + * Default endianness state + */ +#ifdef CONFIG_CPU_ENDIAN_BE8 +#define PSR_ENDSTATE PSR_E_BIT +#else +#define PSR_ENDSTATE 0 +#endif + +/* + * These are 'magic' values for PTRACE_PEEKUSR that return info about where a + * process is located in memory. + */ +#define PT_TEXT_ADDR 0x10000 +#define PT_DATA_ADDR 0x10004 +#define PT_TEXT_END_ADDR 0x10008 + +#ifndef __ASSEMBLY__ + +/* + * This struct defines the way the registers are stored on the + * stack during a system call. Note that sizeof(struct pt_regs) + * has to be a multiple of 8. + */ +struct pt_regs { + long uregs[18]; +}; + +#define ARM_cpsr uregs[16] +#define ARM_pc uregs[15] +#define ARM_lr uregs[14] +#define ARM_sp uregs[13] +#define ARM_ip uregs[12] +#define ARM_fp uregs[11] +#define ARM_r10 uregs[10] +#define ARM_r9 uregs[9] +#define ARM_r8 uregs[8] +#define ARM_r7 uregs[7] +#define ARM_r6 uregs[6] +#define ARM_r5 uregs[5] +#define ARM_r4 uregs[4] +#define ARM_r3 uregs[3] +#define ARM_r2 uregs[2] +#define ARM_r1 uregs[1] +#define ARM_r0 uregs[0] +#define ARM_ORIG_r0 uregs[17] + +/* + * The size of the user-visible VFP state as seen by PTRACE_GET/SETVFPREGS + * and core dumps. + */ +#define ARM_VFPREGS_SIZE ( 32 * 8 /*fpregs*/ + 4 /*fpscr*/ ) + + +#endif /* __ASSEMBLY__ */ + +#endif /* __ASM_ARM_PTRACE_H */ diff --git a/kernel_headers/asm/resource.h b/kernel_headers/asm/resource.h new file mode 100644 index 0000000..04bc4db --- /dev/null +++ b/kernel_headers/asm/resource.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/sembuf.h b/kernel_headers/asm/sembuf.h new file mode 100644 index 0000000..7673b83 --- /dev/null +++ b/kernel_headers/asm/sembuf.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/setup.h b/kernel_headers/asm/setup.h new file mode 100644 index 0000000..734ff39 --- /dev/null +++ b/kernel_headers/asm/setup.h @@ -0,0 +1,187 @@ +/* + * linux/include/asm/setup.h + * + * Copyright (C) 1997-1999 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Structure passed to kernel to tell it about the + * hardware it's running on. See Documentation/arm/Setup + * for more info. + */ +#ifndef __ASMARM_SETUP_H +#define __ASMARM_SETUP_H + +#include + +#define COMMAND_LINE_SIZE 1024 + +/* The list ends with an ATAG_NONE node. */ +#define ATAG_NONE 0x00000000 + +struct tag_header { + __u32 size; + __u32 tag; +}; + +/* The list must start with an ATAG_CORE node */ +#define ATAG_CORE 0x54410001 + +struct tag_core { + __u32 flags; /* bit 0 = read-only */ + __u32 pagesize; + __u32 rootdev; +}; + +/* it is allowed to have multiple ATAG_MEM nodes */ +#define ATAG_MEM 0x54410002 + +struct tag_mem32 { + __u32 size; + __u32 start; /* physical start address */ +}; + +/* VGA text type displays */ +#define ATAG_VIDEOTEXT 0x54410003 + +struct tag_videotext { + __u8 x; + __u8 y; + __u16 video_page; + __u8 video_mode; + __u8 video_cols; + __u16 video_ega_bx; + __u8 video_lines; + __u8 video_isvga; + __u16 video_points; +}; + +/* describes how the ramdisk will be used in kernel */ +#define ATAG_RAMDISK 0x54410004 + +struct tag_ramdisk { + __u32 flags; /* bit 0 = load, bit 1 = prompt */ + __u32 size; /* decompressed ramdisk size in _kilo_ bytes */ + __u32 start; /* starting block of floppy-based RAM disk image */ +}; + +/* describes where the compressed ramdisk image lives (virtual address) */ +/* + * this one accidentally used virtual addresses - as such, + * it's deprecated. + */ +#define ATAG_INITRD 0x54410005 + +/* describes where the compressed ramdisk image lives (physical address) */ +#define ATAG_INITRD2 0x54420005 + +struct tag_initrd { + __u32 start; /* physical start address */ + __u32 size; /* size of compressed ramdisk image in bytes */ +}; + +/* board serial number. "64 bits should be enough for everybody" */ +#define ATAG_SERIAL 0x54410006 + +struct tag_serialnr { + __u32 low; + __u32 high; +}; + +/* board revision */ +#define ATAG_REVISION 0x54410007 + +struct tag_revision { + __u32 rev; +}; + +/* initial values for vesafb-type framebuffers. see struct screen_info + * in include/linux/tty.h + */ +#define ATAG_VIDEOLFB 0x54410008 + +struct tag_videolfb { + __u16 lfb_width; + __u16 lfb_height; + __u16 lfb_depth; + __u16 lfb_linelength; + __u32 lfb_base; + __u32 lfb_size; + __u8 red_size; + __u8 red_pos; + __u8 green_size; + __u8 green_pos; + __u8 blue_size; + __u8 blue_pos; + __u8 rsvd_size; + __u8 rsvd_pos; +}; + +/* command line: \0 terminated string */ +#define ATAG_CMDLINE 0x54410009 + +struct tag_cmdline { + char cmdline[1]; /* this is the minimum size */ +}; + +/* acorn RiscPC specific information */ +#define ATAG_ACORN 0x41000101 + +struct tag_acorn { + __u32 memc_control_reg; + __u32 vram_pages; + __u8 sounddefault; + __u8 adfsdrives; +}; + +/* footbridge memory clock, see arch/arm/mach-footbridge/arch.c */ +#define ATAG_MEMCLK 0x41000402 + +struct tag_memclk { + __u32 fmemclk; +}; + +struct tag { + struct tag_header hdr; + union { + struct tag_core core; + struct tag_mem32 mem; + struct tag_videotext videotext; + struct tag_ramdisk ramdisk; + struct tag_initrd initrd; + struct tag_serialnr serialnr; + struct tag_revision revision; + struct tag_videolfb videolfb; + struct tag_cmdline cmdline; + + /* + * Acorn specific + */ + struct tag_acorn acorn; + + /* + * DC21285 specific + */ + struct tag_memclk memclk; + } u; +}; + +struct tagtable { + __u32 tag; + int (*parse)(const struct tag *); +}; + +#define tag_member_present(tag,member) \ + ((unsigned long)(&((struct tag *)0L)->member + 1) \ + <= (tag)->hdr.size * 4) + +#define tag_next(t) ((struct tag *)((__u32 *)(t) + (t)->hdr.size)) +#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2) + +#define for_each_tag(t,base) \ + for (t = base; t->hdr.size; t = tag_next(t)) + + +#endif /* __ASMARM_SETUP_H */ diff --git a/kernel_headers/asm/shmbuf.h b/kernel_headers/asm/shmbuf.h new file mode 100644 index 0000000..83c05fc --- /dev/null +++ b/kernel_headers/asm/shmbuf.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/sigcontext.h b/kernel_headers/asm/sigcontext.h new file mode 100644 index 0000000..fc0b80b --- /dev/null +++ b/kernel_headers/asm/sigcontext.h @@ -0,0 +1,34 @@ +#ifndef _ASMARM_SIGCONTEXT_H +#define _ASMARM_SIGCONTEXT_H + +/* + * Signal context structure - contains all info to do with the state + * before the signal handler was invoked. Note: only add new entries + * to the end of the structure. + */ +struct sigcontext { + unsigned long trap_no; + unsigned long error_code; + unsigned long oldmask; + unsigned long arm_r0; + unsigned long arm_r1; + unsigned long arm_r2; + unsigned long arm_r3; + unsigned long arm_r4; + unsigned long arm_r5; + unsigned long arm_r6; + unsigned long arm_r7; + unsigned long arm_r8; + unsigned long arm_r9; + unsigned long arm_r10; + unsigned long arm_fp; + unsigned long arm_ip; + unsigned long arm_sp; + unsigned long arm_lr; + unsigned long arm_pc; + unsigned long arm_cpsr; + unsigned long fault_address; +}; + + +#endif diff --git a/kernel_headers/asm/siginfo.h b/kernel_headers/asm/siginfo.h new file mode 100644 index 0000000..0815d29 --- /dev/null +++ b/kernel_headers/asm/siginfo.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/signal.h b/kernel_headers/asm/signal.h new file mode 100644 index 0000000..93a5c18 --- /dev/null +++ b/kernel_headers/asm/signal.h @@ -0,0 +1,116 @@ +#ifndef _ASMARM_SIGNAL_H +#define _ASMARM_SIGNAL_H + +#include + +/* Avoid too many header ordering problems. */ +struct siginfo; + +/* Here we must cater to libcs that poke about in kernel headers. */ + +#define NSIG 32 +typedef unsigned long sigset_t; + + +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT 6 +#define SIGBUS 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGUSR1 10 +#define SIGSEGV 11 +#define SIGUSR2 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGSTKFLT 16 +#define SIGCHLD 17 +#define SIGCONT 18 +#define SIGSTOP 19 +#define SIGTSTP 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGURG 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGIO 29 +#define SIGPOLL SIGIO +/* +#define SIGLOST 29 +*/ +#define SIGPWR 30 +#define SIGSYS 31 +#define SIGUNUSED 31 + +/* These should not be considered constants from userland. */ +#define SIGRTMIN 32 +#define SIGRTMAX _NSIG + +#define SIGSWI 32 + +/* + * SA_FLAGS values: + * + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_SIGINFO deliver the signal with SIGINFO structs + * SA_THIRTYTWO delivers the signal in 32-bit mode, even if the task + * is running in 26-bit. + * SA_ONSTACK allows alternate signal stacks (see sigaltstack(2)). + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NODEFER prevents the current signal from being masked in the handler. + * SA_RESETHAND clears the handler when the signal is delivered. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ +#define SA_NOCLDSTOP 0x00000001 +#define SA_NOCLDWAIT 0x00000002 +#define SA_SIGINFO 0x00000004 +#define SA_THIRTYTWO 0x02000000 +#define SA_RESTORER 0x04000000 +#define SA_ONSTACK 0x08000000 +#define SA_RESTART 0x10000000 +#define SA_NODEFER 0x40000000 +#define SA_RESETHAND 0x80000000 + +#define SA_NOMASK SA_NODEFER +#define SA_ONESHOT SA_RESETHAND + +#define MINSIGSTKSZ 2048 +#define SIGSTKSZ 8192 + +#include + +/* Here we must cater to libcs that poke about in kernel headers. */ + +struct sigaction { + union { + __sighandler_t _sa_handler; + void (*_sa_sigaction)(int, struct siginfo *, void *); + } _u; + sigset_t sa_mask; + unsigned long sa_flags; + void (*sa_restorer)(void); +}; + +#define sa_handler _u._sa_handler +#define sa_sigaction _u._sa_sigaction + + +typedef struct sigaltstack { + void *ss_sp; + int ss_flags; + size_t ss_size; +} stack_t; + + +#endif /* _ASMARM_SIGNAL_H */ diff --git a/kernel_headers/asm/socket.h b/kernel_headers/asm/socket.h new file mode 100644 index 0000000..6b71384 --- /dev/null +++ b/kernel_headers/asm/socket.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/sockios.h b/kernel_headers/asm/sockios.h new file mode 100644 index 0000000..def6d47 --- /dev/null +++ b/kernel_headers/asm/sockios.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/stat.h b/kernel_headers/asm/stat.h new file mode 100644 index 0000000..42c0c13 --- /dev/null +++ b/kernel_headers/asm/stat.h @@ -0,0 +1,87 @@ +#ifndef _ASMARM_STAT_H +#define _ASMARM_STAT_H + +struct __old_kernel_stat { + unsigned short st_dev; + unsigned short st_ino; + unsigned short st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; + unsigned short st_rdev; + unsigned long st_size; + unsigned long st_atime; + unsigned long st_mtime; + unsigned long st_ctime; +}; + +#define STAT_HAVE_NSEC + +struct stat { +#if defined(__ARMEB__) + unsigned short st_dev; + unsigned short __pad1; +#else + unsigned long st_dev; +#endif + unsigned long st_ino; + unsigned short st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; +#if defined(__ARMEB__) + unsigned short st_rdev; + unsigned short __pad2; +#else + unsigned long st_rdev; +#endif + unsigned long st_size; + unsigned long st_blksize; + unsigned long st_blocks; + unsigned long st_atime; + unsigned long st_atime_nsec; + unsigned long st_mtime; + unsigned long st_mtime_nsec; + unsigned long st_ctime; + unsigned long st_ctime_nsec; + unsigned long __unused4; + unsigned long __unused5; +}; + +/* This matches struct stat64 in glibc2.1, hence the absolutely + * insane amounts of padding around dev_t's. + * Note: The kernel zero's the padded region because glibc might read them + * in the hope that the kernel has stretched to using larger sizes. + */ +struct stat64 { + unsigned long long st_dev; + unsigned char __pad0[4]; + +#define STAT64_HAS_BROKEN_ST_INO 1 + unsigned long __st_ino; + unsigned int st_mode; + unsigned int st_nlink; + + unsigned long st_uid; + unsigned long st_gid; + + unsigned long long st_rdev; + unsigned char __pad3[4]; + + long long st_size; + unsigned long st_blksize; + unsigned long long st_blocks; /* Number 512-byte blocks allocated. */ + + unsigned long st_atime; + unsigned long st_atime_nsec; + + unsigned long st_mtime; + unsigned long st_mtime_nsec; + + unsigned long st_ctime; + unsigned long st_ctime_nsec; + + unsigned long long st_ino; +}; + +#endif diff --git a/kernel_headers/asm/statfs.h b/kernel_headers/asm/statfs.h new file mode 100644 index 0000000..079447c --- /dev/null +++ b/kernel_headers/asm/statfs.h @@ -0,0 +1,12 @@ +#ifndef _ASMARM_STATFS_H +#define _ASMARM_STATFS_H + +/* + * With EABI there is 4 bytes of padding added to this structure. + * Let's pack it so the padding goes away to simplify dual ABI support. + * Note that user space does NOT have to pack this structure. + */ +#define ARCH_PACK_STATFS64 __attribute__((packed,aligned(4))) + +#include +#endif diff --git a/kernel_headers/asm/swab.h b/kernel_headers/asm/swab.h new file mode 100644 index 0000000..5f621bf --- /dev/null +++ b/kernel_headers/asm/swab.h @@ -0,0 +1,51 @@ +/* + * arch/arm/include/asm/byteorder.h + * + * ARM Endian-ness. In little endian mode, the data bus is connected such + * that byte accesses appear as: + * 0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31 + * and word accesses (data or instruction) appear as: + * d0...d31 + * + * When in big endian mode, byte accesses appear as: + * 0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7 + * and word accesses (data or instruction) appear as: + * d0...d31 + */ +#ifndef __ASM_ARM_SWAB_H +#define __ASM_ARM_SWAB_H + + +#include + +#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) +# define __SWAB_64_THRU_32__ +#endif + + +static __inline__ __u32 __arch_swab32(__u32 x) +{ + __u32 t; + +#ifndef __thumb__ + if (!__builtin_constant_p(x)) { + /* + * The compiler needs a bit of a hint here to always do the + * right thing and not screw it up to different degrees + * depending on the gcc version. + */ + __asm__ ("eor\t%0, %1, %1, ror #16" : "=r" (t) : "r" (x)); + } else +#endif + t = x ^ ((x << 16) | (x >> 16)); /* eor r1,r0,r0,ror #16 */ + + x = (x << 24) | (x >> 8); /* mov r0,r0,ror #8 */ + t &= ~0x00FF0000; /* bic r1,r1,#0x00FF0000 */ + x ^= (t >> 8); /* eor r0,r0,r1,lsr #8 */ + + return x; +} +#define __arch_swab32 __arch_swab32 + + +#endif /* __ASM_ARM_SWAB_H */ diff --git a/kernel_headers/asm/termbits.h b/kernel_headers/asm/termbits.h new file mode 100644 index 0000000..3935b10 --- /dev/null +++ b/kernel_headers/asm/termbits.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/termios.h b/kernel_headers/asm/termios.h new file mode 100644 index 0000000..280d78a --- /dev/null +++ b/kernel_headers/asm/termios.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/types.h b/kernel_headers/asm/types.h new file mode 100644 index 0000000..b9e79bc --- /dev/null +++ b/kernel_headers/asm/types.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/asm/unistd.h b/kernel_headers/asm/unistd.h new file mode 100644 index 0000000..bbc791a --- /dev/null +++ b/kernel_headers/asm/unistd.h @@ -0,0 +1,451 @@ +/* + * arch/arm/include/asm/unistd.h + * + * Copyright (C) 2001-2005 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Please forward _all_ changes to this file to rmk@arm.linux.org.uk, + * no matter what the change is. Thanks! + */ +#ifndef __ASM_ARM_UNISTD_H +#define __ASM_ARM_UNISTD_H + +#define __NR_OABI_SYSCALL_BASE 0x900000 + +#if defined(__thumb__) || defined(__ARM_EABI__) +#define __NR_SYSCALL_BASE 0 +#else +#define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE +#endif + +/* + * This file contains the system call numbers. + */ + +#define __NR_restart_syscall (__NR_SYSCALL_BASE+ 0) +#define __NR_exit (__NR_SYSCALL_BASE+ 1) +#define __NR_fork (__NR_SYSCALL_BASE+ 2) +#define __NR_read (__NR_SYSCALL_BASE+ 3) +#define __NR_write (__NR_SYSCALL_BASE+ 4) +#define __NR_open (__NR_SYSCALL_BASE+ 5) +#define __NR_close (__NR_SYSCALL_BASE+ 6) + /* 7 was sys_waitpid */ +#define __NR_creat (__NR_SYSCALL_BASE+ 8) +#define __NR_link (__NR_SYSCALL_BASE+ 9) +#define __NR_unlink (__NR_SYSCALL_BASE+ 10) +#define __NR_execve (__NR_SYSCALL_BASE+ 11) +#define __NR_chdir (__NR_SYSCALL_BASE+ 12) +#define __NR_time (__NR_SYSCALL_BASE+ 13) +#define __NR_mknod (__NR_SYSCALL_BASE+ 14) +#define __NR_chmod (__NR_SYSCALL_BASE+ 15) +#define __NR_lchown (__NR_SYSCALL_BASE+ 16) + /* 17 was sys_break */ + /* 18 was sys_stat */ +#define __NR_lseek (__NR_SYSCALL_BASE+ 19) +#define __NR_getpid (__NR_SYSCALL_BASE+ 20) +#define __NR_mount (__NR_SYSCALL_BASE+ 21) +#define __NR_umount (__NR_SYSCALL_BASE+ 22) +#define __NR_setuid (__NR_SYSCALL_BASE+ 23) +#define __NR_getuid (__NR_SYSCALL_BASE+ 24) +#define __NR_stime (__NR_SYSCALL_BASE+ 25) +#define __NR_ptrace (__NR_SYSCALL_BASE+ 26) +#define __NR_alarm (__NR_SYSCALL_BASE+ 27) + /* 28 was sys_fstat */ +#define __NR_pause (__NR_SYSCALL_BASE+ 29) +#define __NR_utime (__NR_SYSCALL_BASE+ 30) + /* 31 was sys_stty */ + /* 32 was sys_gtty */ +#define __NR_access (__NR_SYSCALL_BASE+ 33) +#define __NR_nice (__NR_SYSCALL_BASE+ 34) + /* 35 was sys_ftime */ +#define __NR_sync (__NR_SYSCALL_BASE+ 36) +#define __NR_kill (__NR_SYSCALL_BASE+ 37) +#define __NR_rename (__NR_SYSCALL_BASE+ 38) +#define __NR_mkdir (__NR_SYSCALL_BASE+ 39) +#define __NR_rmdir (__NR_SYSCALL_BASE+ 40) +#define __NR_dup (__NR_SYSCALL_BASE+ 41) +#define __NR_pipe (__NR_SYSCALL_BASE+ 42) +#define __NR_times (__NR_SYSCALL_BASE+ 43) + /* 44 was sys_prof */ +#define __NR_brk (__NR_SYSCALL_BASE+ 45) +#define __NR_setgid (__NR_SYSCALL_BASE+ 46) +#define __NR_getgid (__NR_SYSCALL_BASE+ 47) + /* 48 was sys_signal */ +#define __NR_geteuid (__NR_SYSCALL_BASE+ 49) +#define __NR_getegid (__NR_SYSCALL_BASE+ 50) +#define __NR_acct (__NR_SYSCALL_BASE+ 51) +#define __NR_umount2 (__NR_SYSCALL_BASE+ 52) + /* 53 was sys_lock */ +#define __NR_ioctl (__NR_SYSCALL_BASE+ 54) +#define __NR_fcntl (__NR_SYSCALL_BASE+ 55) + /* 56 was sys_mpx */ +#define __NR_setpgid (__NR_SYSCALL_BASE+ 57) + /* 58 was sys_ulimit */ + /* 59 was sys_olduname */ +#define __NR_umask (__NR_SYSCALL_BASE+ 60) +#define __NR_chroot (__NR_SYSCALL_BASE+ 61) +#define __NR_ustat (__NR_SYSCALL_BASE+ 62) +#define __NR_dup2 (__NR_SYSCALL_BASE+ 63) +#define __NR_getppid (__NR_SYSCALL_BASE+ 64) +#define __NR_getpgrp (__NR_SYSCALL_BASE+ 65) +#define __NR_setsid (__NR_SYSCALL_BASE+ 66) +#define __NR_sigaction (__NR_SYSCALL_BASE+ 67) + /* 68 was sys_sgetmask */ + /* 69 was sys_ssetmask */ +#define __NR_setreuid (__NR_SYSCALL_BASE+ 70) +#define __NR_setregid (__NR_SYSCALL_BASE+ 71) +#define __NR_sigsuspend (__NR_SYSCALL_BASE+ 72) +#define __NR_sigpending (__NR_SYSCALL_BASE+ 73) +#define __NR_sethostname (__NR_SYSCALL_BASE+ 74) +#define __NR_setrlimit (__NR_SYSCALL_BASE+ 75) +#define __NR_getrlimit (__NR_SYSCALL_BASE+ 76) /* Back compat 2GB limited rlimit */ +#define __NR_getrusage (__NR_SYSCALL_BASE+ 77) +#define __NR_gettimeofday (__NR_SYSCALL_BASE+ 78) +#define __NR_settimeofday (__NR_SYSCALL_BASE+ 79) +#define __NR_getgroups (__NR_SYSCALL_BASE+ 80) +#define __NR_setgroups (__NR_SYSCALL_BASE+ 81) +#define __NR_select (__NR_SYSCALL_BASE+ 82) +#define __NR_symlink (__NR_SYSCALL_BASE+ 83) + /* 84 was sys_lstat */ +#define __NR_readlink (__NR_SYSCALL_BASE+ 85) +#define __NR_uselib (__NR_SYSCALL_BASE+ 86) +#define __NR_swapon (__NR_SYSCALL_BASE+ 87) +#define __NR_reboot (__NR_SYSCALL_BASE+ 88) +#define __NR_readdir (__NR_SYSCALL_BASE+ 89) +#define __NR_mmap (__NR_SYSCALL_BASE+ 90) +#define __NR_munmap (__NR_SYSCALL_BASE+ 91) +#define __NR_truncate (__NR_SYSCALL_BASE+ 92) +#define __NR_ftruncate (__NR_SYSCALL_BASE+ 93) +#define __NR_fchmod (__NR_SYSCALL_BASE+ 94) +#define __NR_fchown (__NR_SYSCALL_BASE+ 95) +#define __NR_getpriority (__NR_SYSCALL_BASE+ 96) +#define __NR_setpriority (__NR_SYSCALL_BASE+ 97) + /* 98 was sys_profil */ +#define __NR_statfs (__NR_SYSCALL_BASE+ 99) +#define __NR_fstatfs (__NR_SYSCALL_BASE+100) + /* 101 was sys_ioperm */ +#define __NR_socketcall (__NR_SYSCALL_BASE+102) +#define __NR_syslog (__NR_SYSCALL_BASE+103) +#define __NR_setitimer (__NR_SYSCALL_BASE+104) +#define __NR_getitimer (__NR_SYSCALL_BASE+105) +#define __NR_stat (__NR_SYSCALL_BASE+106) +#define __NR_lstat (__NR_SYSCALL_BASE+107) +#define __NR_fstat (__NR_SYSCALL_BASE+108) + /* 109 was sys_uname */ + /* 110 was sys_iopl */ +#define __NR_vhangup (__NR_SYSCALL_BASE+111) + /* 112 was sys_idle */ +#define __NR_syscall (__NR_SYSCALL_BASE+113) /* syscall to call a syscall! */ +#define __NR_wait4 (__NR_SYSCALL_BASE+114) +#define __NR_swapoff (__NR_SYSCALL_BASE+115) +#define __NR_sysinfo (__NR_SYSCALL_BASE+116) +#define __NR_ipc (__NR_SYSCALL_BASE+117) +#define __NR_fsync (__NR_SYSCALL_BASE+118) +#define __NR_sigreturn (__NR_SYSCALL_BASE+119) +#define __NR_clone (__NR_SYSCALL_BASE+120) +#define __NR_setdomainname (__NR_SYSCALL_BASE+121) +#define __NR_uname (__NR_SYSCALL_BASE+122) + /* 123 was sys_modify_ldt */ +#define __NR_adjtimex (__NR_SYSCALL_BASE+124) +#define __NR_mprotect (__NR_SYSCALL_BASE+125) +#define __NR_sigprocmask (__NR_SYSCALL_BASE+126) + /* 127 was sys_create_module */ +#define __NR_init_module (__NR_SYSCALL_BASE+128) +#define __NR_delete_module (__NR_SYSCALL_BASE+129) + /* 130 was sys_get_kernel_syms */ +#define __NR_quotactl (__NR_SYSCALL_BASE+131) +#define __NR_getpgid (__NR_SYSCALL_BASE+132) +#define __NR_fchdir (__NR_SYSCALL_BASE+133) +#define __NR_bdflush (__NR_SYSCALL_BASE+134) +#define __NR_sysfs (__NR_SYSCALL_BASE+135) +#define __NR_personality (__NR_SYSCALL_BASE+136) + /* 137 was sys_afs_syscall */ +#define __NR_setfsuid (__NR_SYSCALL_BASE+138) +#define __NR_setfsgid (__NR_SYSCALL_BASE+139) +#define __NR__llseek (__NR_SYSCALL_BASE+140) +#define __NR_getdents (__NR_SYSCALL_BASE+141) +#define __NR__newselect (__NR_SYSCALL_BASE+142) +#define __NR_flock (__NR_SYSCALL_BASE+143) +#define __NR_msync (__NR_SYSCALL_BASE+144) +#define __NR_readv (__NR_SYSCALL_BASE+145) +#define __NR_writev (__NR_SYSCALL_BASE+146) +#define __NR_getsid (__NR_SYSCALL_BASE+147) +#define __NR_fdatasync (__NR_SYSCALL_BASE+148) +#define __NR__sysctl (__NR_SYSCALL_BASE+149) +#define __NR_mlock (__NR_SYSCALL_BASE+150) +#define __NR_munlock (__NR_SYSCALL_BASE+151) +#define __NR_mlockall (__NR_SYSCALL_BASE+152) +#define __NR_munlockall (__NR_SYSCALL_BASE+153) +#define __NR_sched_setparam (__NR_SYSCALL_BASE+154) +#define __NR_sched_getparam (__NR_SYSCALL_BASE+155) +#define __NR_sched_setscheduler (__NR_SYSCALL_BASE+156) +#define __NR_sched_getscheduler (__NR_SYSCALL_BASE+157) +#define __NR_sched_yield (__NR_SYSCALL_BASE+158) +#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE+159) +#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE+160) +#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE+161) +#define __NR_nanosleep (__NR_SYSCALL_BASE+162) +#define __NR_mremap (__NR_SYSCALL_BASE+163) +#define __NR_setresuid (__NR_SYSCALL_BASE+164) +#define __NR_getresuid (__NR_SYSCALL_BASE+165) + /* 166 was sys_vm86 */ + /* 167 was sys_query_module */ +#define __NR_poll (__NR_SYSCALL_BASE+168) +#define __NR_nfsservctl (__NR_SYSCALL_BASE+169) +#define __NR_setresgid (__NR_SYSCALL_BASE+170) +#define __NR_getresgid (__NR_SYSCALL_BASE+171) +#define __NR_prctl (__NR_SYSCALL_BASE+172) +#define __NR_rt_sigreturn (__NR_SYSCALL_BASE+173) +#define __NR_rt_sigaction (__NR_SYSCALL_BASE+174) +#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE+175) +#define __NR_rt_sigpending (__NR_SYSCALL_BASE+176) +#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE+177) +#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE+178) +#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE+179) +#define __NR_pread64 (__NR_SYSCALL_BASE+180) +#define __NR_pwrite64 (__NR_SYSCALL_BASE+181) +#define __NR_chown (__NR_SYSCALL_BASE+182) +#define __NR_getcwd (__NR_SYSCALL_BASE+183) +#define __NR_capget (__NR_SYSCALL_BASE+184) +#define __NR_capset (__NR_SYSCALL_BASE+185) +#define __NR_sigaltstack (__NR_SYSCALL_BASE+186) +#define __NR_sendfile (__NR_SYSCALL_BASE+187) + /* 188 reserved */ + /* 189 reserved */ +#define __NR_vfork (__NR_SYSCALL_BASE+190) +#define __NR_ugetrlimit (__NR_SYSCALL_BASE+191) /* SuS compliant getrlimit */ +#define __NR_mmap2 (__NR_SYSCALL_BASE+192) +#define __NR_truncate64 (__NR_SYSCALL_BASE+193) +#define __NR_ftruncate64 (__NR_SYSCALL_BASE+194) +#define __NR_stat64 (__NR_SYSCALL_BASE+195) +#define __NR_lstat64 (__NR_SYSCALL_BASE+196) +#define __NR_fstat64 (__NR_SYSCALL_BASE+197) +#define __NR_lchown32 (__NR_SYSCALL_BASE+198) +#define __NR_getuid32 (__NR_SYSCALL_BASE+199) +#define __NR_getgid32 (__NR_SYSCALL_BASE+200) +#define __NR_geteuid32 (__NR_SYSCALL_BASE+201) +#define __NR_getegid32 (__NR_SYSCALL_BASE+202) +#define __NR_setreuid32 (__NR_SYSCALL_BASE+203) +#define __NR_setregid32 (__NR_SYSCALL_BASE+204) +#define __NR_getgroups32 (__NR_SYSCALL_BASE+205) +#define __NR_setgroups32 (__NR_SYSCALL_BASE+206) +#define __NR_fchown32 (__NR_SYSCALL_BASE+207) +#define __NR_setresuid32 (__NR_SYSCALL_BASE+208) +#define __NR_getresuid32 (__NR_SYSCALL_BASE+209) +#define __NR_setresgid32 (__NR_SYSCALL_BASE+210) +#define __NR_getresgid32 (__NR_SYSCALL_BASE+211) +#define __NR_chown32 (__NR_SYSCALL_BASE+212) +#define __NR_setuid32 (__NR_SYSCALL_BASE+213) +#define __NR_setgid32 (__NR_SYSCALL_BASE+214) +#define __NR_setfsuid32 (__NR_SYSCALL_BASE+215) +#define __NR_setfsgid32 (__NR_SYSCALL_BASE+216) +#define __NR_getdents64 (__NR_SYSCALL_BASE+217) +#define __NR_pivot_root (__NR_SYSCALL_BASE+218) +#define __NR_mincore (__NR_SYSCALL_BASE+219) +#define __NR_madvise (__NR_SYSCALL_BASE+220) +#define __NR_fcntl64 (__NR_SYSCALL_BASE+221) + /* 222 for tux */ + /* 223 is unused */ +#define __NR_gettid (__NR_SYSCALL_BASE+224) +#define __NR_readahead (__NR_SYSCALL_BASE+225) +#define __NR_setxattr (__NR_SYSCALL_BASE+226) +#define __NR_lsetxattr (__NR_SYSCALL_BASE+227) +#define __NR_fsetxattr (__NR_SYSCALL_BASE+228) +#define __NR_getxattr (__NR_SYSCALL_BASE+229) +#define __NR_lgetxattr (__NR_SYSCALL_BASE+230) +#define __NR_fgetxattr (__NR_SYSCALL_BASE+231) +#define __NR_listxattr (__NR_SYSCALL_BASE+232) +#define __NR_llistxattr (__NR_SYSCALL_BASE+233) +#define __NR_flistxattr (__NR_SYSCALL_BASE+234) +#define __NR_removexattr (__NR_SYSCALL_BASE+235) +#define __NR_lremovexattr (__NR_SYSCALL_BASE+236) +#define __NR_fremovexattr (__NR_SYSCALL_BASE+237) +#define __NR_tkill (__NR_SYSCALL_BASE+238) +#define __NR_sendfile64 (__NR_SYSCALL_BASE+239) +#define __NR_futex (__NR_SYSCALL_BASE+240) +#define __NR_sched_setaffinity (__NR_SYSCALL_BASE+241) +#define __NR_sched_getaffinity (__NR_SYSCALL_BASE+242) +#define __NR_io_setup (__NR_SYSCALL_BASE+243) +#define __NR_io_destroy (__NR_SYSCALL_BASE+244) +#define __NR_io_getevents (__NR_SYSCALL_BASE+245) +#define __NR_io_submit (__NR_SYSCALL_BASE+246) +#define __NR_io_cancel (__NR_SYSCALL_BASE+247) +#define __NR_exit_group (__NR_SYSCALL_BASE+248) +#define __NR_lookup_dcookie (__NR_SYSCALL_BASE+249) +#define __NR_epoll_create (__NR_SYSCALL_BASE+250) +#define __NR_epoll_ctl (__NR_SYSCALL_BASE+251) +#define __NR_epoll_wait (__NR_SYSCALL_BASE+252) +#define __NR_remap_file_pages (__NR_SYSCALL_BASE+253) + /* 254 for set_thread_area */ + /* 255 for get_thread_area */ +#define __NR_set_tid_address (__NR_SYSCALL_BASE+256) +#define __NR_timer_create (__NR_SYSCALL_BASE+257) +#define __NR_timer_settime (__NR_SYSCALL_BASE+258) +#define __NR_timer_gettime (__NR_SYSCALL_BASE+259) +#define __NR_timer_getoverrun (__NR_SYSCALL_BASE+260) +#define __NR_timer_delete (__NR_SYSCALL_BASE+261) +#define __NR_clock_settime (__NR_SYSCALL_BASE+262) +#define __NR_clock_gettime (__NR_SYSCALL_BASE+263) +#define __NR_clock_getres (__NR_SYSCALL_BASE+264) +#define __NR_clock_nanosleep (__NR_SYSCALL_BASE+265) +#define __NR_statfs64 (__NR_SYSCALL_BASE+266) +#define __NR_fstatfs64 (__NR_SYSCALL_BASE+267) +#define __NR_tgkill (__NR_SYSCALL_BASE+268) +#define __NR_utimes (__NR_SYSCALL_BASE+269) +#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE+270) +#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE+271) +#define __NR_pciconfig_read (__NR_SYSCALL_BASE+272) +#define __NR_pciconfig_write (__NR_SYSCALL_BASE+273) +#define __NR_mq_open (__NR_SYSCALL_BASE+274) +#define __NR_mq_unlink (__NR_SYSCALL_BASE+275) +#define __NR_mq_timedsend (__NR_SYSCALL_BASE+276) +#define __NR_mq_timedreceive (__NR_SYSCALL_BASE+277) +#define __NR_mq_notify (__NR_SYSCALL_BASE+278) +#define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279) +#define __NR_waitid (__NR_SYSCALL_BASE+280) +#define __NR_socket (__NR_SYSCALL_BASE+281) +#define __NR_bind (__NR_SYSCALL_BASE+282) +#define __NR_connect (__NR_SYSCALL_BASE+283) +#define __NR_listen (__NR_SYSCALL_BASE+284) +#define __NR_accept (__NR_SYSCALL_BASE+285) +#define __NR_getsockname (__NR_SYSCALL_BASE+286) +#define __NR_getpeername (__NR_SYSCALL_BASE+287) +#define __NR_socketpair (__NR_SYSCALL_BASE+288) +#define __NR_send (__NR_SYSCALL_BASE+289) +#define __NR_sendto (__NR_SYSCALL_BASE+290) +#define __NR_recv (__NR_SYSCALL_BASE+291) +#define __NR_recvfrom (__NR_SYSCALL_BASE+292) +#define __NR_shutdown (__NR_SYSCALL_BASE+293) +#define __NR_setsockopt (__NR_SYSCALL_BASE+294) +#define __NR_getsockopt (__NR_SYSCALL_BASE+295) +#define __NR_sendmsg (__NR_SYSCALL_BASE+296) +#define __NR_recvmsg (__NR_SYSCALL_BASE+297) +#define __NR_semop (__NR_SYSCALL_BASE+298) +#define __NR_semget (__NR_SYSCALL_BASE+299) +#define __NR_semctl (__NR_SYSCALL_BASE+300) +#define __NR_msgsnd (__NR_SYSCALL_BASE+301) +#define __NR_msgrcv (__NR_SYSCALL_BASE+302) +#define __NR_msgget (__NR_SYSCALL_BASE+303) +#define __NR_msgctl (__NR_SYSCALL_BASE+304) +#define __NR_shmat (__NR_SYSCALL_BASE+305) +#define __NR_shmdt (__NR_SYSCALL_BASE+306) +#define __NR_shmget (__NR_SYSCALL_BASE+307) +#define __NR_shmctl (__NR_SYSCALL_BASE+308) +#define __NR_add_key (__NR_SYSCALL_BASE+309) +#define __NR_request_key (__NR_SYSCALL_BASE+310) +#define __NR_keyctl (__NR_SYSCALL_BASE+311) +#define __NR_semtimedop (__NR_SYSCALL_BASE+312) +#define __NR_vserver (__NR_SYSCALL_BASE+313) +#define __NR_ioprio_set (__NR_SYSCALL_BASE+314) +#define __NR_ioprio_get (__NR_SYSCALL_BASE+315) +#define __NR_inotify_init (__NR_SYSCALL_BASE+316) +#define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317) +#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318) +#define __NR_mbind (__NR_SYSCALL_BASE+319) +#define __NR_get_mempolicy (__NR_SYSCALL_BASE+320) +#define __NR_set_mempolicy (__NR_SYSCALL_BASE+321) +#define __NR_openat (__NR_SYSCALL_BASE+322) +#define __NR_mkdirat (__NR_SYSCALL_BASE+323) +#define __NR_mknodat (__NR_SYSCALL_BASE+324) +#define __NR_fchownat (__NR_SYSCALL_BASE+325) +#define __NR_futimesat (__NR_SYSCALL_BASE+326) +#define __NR_fstatat64 (__NR_SYSCALL_BASE+327) +#define __NR_unlinkat (__NR_SYSCALL_BASE+328) +#define __NR_renameat (__NR_SYSCALL_BASE+329) +#define __NR_linkat (__NR_SYSCALL_BASE+330) +#define __NR_symlinkat (__NR_SYSCALL_BASE+331) +#define __NR_readlinkat (__NR_SYSCALL_BASE+332) +#define __NR_fchmodat (__NR_SYSCALL_BASE+333) +#define __NR_faccessat (__NR_SYSCALL_BASE+334) +#define __NR_pselect6 (__NR_SYSCALL_BASE+335) +#define __NR_ppoll (__NR_SYSCALL_BASE+336) +#define __NR_unshare (__NR_SYSCALL_BASE+337) +#define __NR_set_robust_list (__NR_SYSCALL_BASE+338) +#define __NR_get_robust_list (__NR_SYSCALL_BASE+339) +#define __NR_splice (__NR_SYSCALL_BASE+340) +#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE+341) +#define __NR_sync_file_range2 __NR_arm_sync_file_range +#define __NR_tee (__NR_SYSCALL_BASE+342) +#define __NR_vmsplice (__NR_SYSCALL_BASE+343) +#define __NR_move_pages (__NR_SYSCALL_BASE+344) +#define __NR_getcpu (__NR_SYSCALL_BASE+345) +#define __NR_epoll_pwait (__NR_SYSCALL_BASE+346) +#define __NR_kexec_load (__NR_SYSCALL_BASE+347) +#define __NR_utimensat (__NR_SYSCALL_BASE+348) +#define __NR_signalfd (__NR_SYSCALL_BASE+349) +#define __NR_timerfd_create (__NR_SYSCALL_BASE+350) +#define __NR_eventfd (__NR_SYSCALL_BASE+351) +#define __NR_fallocate (__NR_SYSCALL_BASE+352) +#define __NR_timerfd_settime (__NR_SYSCALL_BASE+353) +#define __NR_timerfd_gettime (__NR_SYSCALL_BASE+354) +#define __NR_signalfd4 (__NR_SYSCALL_BASE+355) +#define __NR_eventfd2 (__NR_SYSCALL_BASE+356) +#define __NR_epoll_create1 (__NR_SYSCALL_BASE+357) +#define __NR_dup3 (__NR_SYSCALL_BASE+358) +#define __NR_pipe2 (__NR_SYSCALL_BASE+359) +#define __NR_inotify_init1 (__NR_SYSCALL_BASE+360) +#define __NR_preadv (__NR_SYSCALL_BASE+361) +#define __NR_pwritev (__NR_SYSCALL_BASE+362) +#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363) +#define __NR_perf_event_open (__NR_SYSCALL_BASE+364) +#define __NR_recvmmsg (__NR_SYSCALL_BASE+365) +#define __NR_accept4 (__NR_SYSCALL_BASE+366) +#define __NR_fanotify_init (__NR_SYSCALL_BASE+367) +#define __NR_fanotify_mark (__NR_SYSCALL_BASE+368) +#define __NR_prlimit64 (__NR_SYSCALL_BASE+369) +#define __NR_name_to_handle_at (__NR_SYSCALL_BASE+370) +#define __NR_open_by_handle_at (__NR_SYSCALL_BASE+371) +#define __NR_clock_adjtime (__NR_SYSCALL_BASE+372) +#define __NR_syncfs (__NR_SYSCALL_BASE+373) +#define __NR_sendmmsg (__NR_SYSCALL_BASE+374) +#define __NR_setns (__NR_SYSCALL_BASE+375) +#define __NR_process_vm_readv (__NR_SYSCALL_BASE+376) +#define __NR_process_vm_writev (__NR_SYSCALL_BASE+377) +#define __NR_kcmp (__NR_SYSCALL_BASE+378) +#define __NR_finit_module (__NR_SYSCALL_BASE+379) +#define __NR_sched_setattr (__NR_SYSCALL_BASE+380) +#define __NR_sched_getattr (__NR_SYSCALL_BASE+381) + +/* + * This may need to be greater than __NR_last_syscall+1 in order to + * account for the padding in the syscall table + */ + +/* + * The following SWIs are ARM private. + */ +#define __ARM_NR_BASE (__NR_SYSCALL_BASE+0x0f0000) +#define __ARM_NR_breakpoint (__ARM_NR_BASE+1) +#define __ARM_NR_cacheflush (__ARM_NR_BASE+2) +#define __ARM_NR_usr26 (__ARM_NR_BASE+3) +#define __ARM_NR_usr32 (__ARM_NR_BASE+4) +#define __ARM_NR_set_tls (__ARM_NR_BASE+5) + +/* + * *NOTE*: This is a ghost syscall private to the kernel. Only the + * __kuser_cmpxchg code in entry-armv.S should be aware of its + * existence. Don't ever use this from user code. + */ + +/* + * The following syscalls are obsolete and no longer available for EABI. + */ +#if defined(__ARM_EABI__) +#undef __NR_time +#undef __NR_umount +#undef __NR_stime +#undef __NR_alarm +#undef __NR_utime +#undef __NR_getrlimit +#undef __NR_select +#undef __NR_readdir +#undef __NR_mmap +#undef __NR_socketcall +#undef __NR_syscall +#undef __NR_ipc +#endif + +#endif /* __ASM_ARM_UNISTD_H */ diff --git a/kernel_headers/drm/..install.cmd b/kernel_headers/drm/..install.cmd new file mode 100644 index 0000000..154adf1 --- /dev/null +++ b/kernel_headers/drm/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/drm/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/drm /android/kernels/moto/surnia/kernel-msm/include/uapi/drm drm.h drm_fourcc.h drm_mode.h drm_sarea.h exynos_drm.h i810_drm.h i915_drm.h mga_drm.h nouveau_drm.h qxl_drm.h r128_drm.h radeon_drm.h savage_drm.h sis_drm.h tegra_drm.h via_drm.h vmwgfx_drm.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/drm /android/kernels/moto/surnia/kernel-msm/include/drm kgsl_drm.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/drm /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/drm ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/drm/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/drm/.install diff --git a/kernel_headers/drm/.install b/kernel_headers/drm/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/drm/drm.h b/kernel_headers/drm/drm.h new file mode 100644 index 0000000..5d22a0b --- /dev/null +++ b/kernel_headers/drm/drm.h @@ -0,0 +1,829 @@ +/** + * \file drm.h + * Header for the Direct Rendering Manager + * + * \author Rickard E. (Rik) Faith + * + * \par Acknowledgments: + * Dec 1999, Richard Henderson , move to generic \c cmpxchg. + */ + +/* + * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _DRM_H_ +#define _DRM_H_ + +#if defined(__KERNEL__) || defined(_LINUX) || defined(__linux__) + +#include +#include +typedef unsigned int drm_handle_t; + +#else /* One of the BSDs */ + +#include +#include +typedef int8_t __s8; +typedef uint8_t __u8; +typedef int16_t __s16; +typedef uint16_t __u16; +typedef int32_t __s32; +typedef uint32_t __u32; +typedef int64_t __s64; +typedef uint64_t __u64; +typedef unsigned long drm_handle_t; + +#endif + +#define DRM_NAME "drm" /**< Name in kernel, /dev, and /proc */ +#define DRM_MIN_ORDER 5 /**< At least 2^5 bytes = 32 bytes */ +#define DRM_MAX_ORDER 22 /**< Up to 2^22 bytes = 4MB */ +#define DRM_RAM_PERCENT 10 /**< How much system ram can we lock? */ + +#define _DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */ +#define _DRM_LOCK_CONT 0x40000000U /**< Hardware lock is contended */ +#define _DRM_LOCK_IS_HELD(lock) ((lock) & _DRM_LOCK_HELD) +#define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT) +#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT)) + +typedef unsigned int drm_context_t; +typedef unsigned int drm_drawable_t; +typedef unsigned int drm_magic_t; + +/** + * Cliprect. + * + * \warning: If you change this structure, make sure you change + * XF86DRIClipRectRec in the server as well + * + * \note KW: Actually it's illegal to change either for + * backwards-compatibility reasons. + */ +struct drm_clip_rect { + unsigned short x1; + unsigned short y1; + unsigned short x2; + unsigned short y2; +}; + +/** + * Drawable information. + */ +struct drm_drawable_info { + unsigned int num_rects; + struct drm_clip_rect *rects; +}; + +/** + * Texture region, + */ +struct drm_tex_region { + unsigned char next; + unsigned char prev; + unsigned char in_use; + unsigned char padding; + unsigned int age; +}; + +/** + * Hardware lock. + * + * The lock structure is a simple cache-line aligned integer. To avoid + * processor bus contention on a multiprocessor system, there should not be any + * other data stored in the same cache line. + */ +struct drm_hw_lock { + __volatile__ unsigned int lock; /**< lock variable */ + char padding[60]; /**< Pad to cache line */ +}; + +/** + * DRM_IOCTL_VERSION ioctl argument type. + * + * \sa drmGetVersion(). + */ +struct drm_version { + int version_major; /**< Major version */ + int version_minor; /**< Minor version */ + int version_patchlevel; /**< Patch level */ + size_t name_len; /**< Length of name buffer */ + char *name; /**< Name of driver */ + size_t date_len; /**< Length of date buffer */ + char *date; /**< User-space buffer to hold date */ + size_t desc_len; /**< Length of desc buffer */ + char *desc; /**< User-space buffer to hold desc */ +}; + +/** + * DRM_IOCTL_GET_UNIQUE ioctl argument type. + * + * \sa drmGetBusid() and drmSetBusId(). + */ +struct drm_unique { + size_t unique_len; /**< Length of unique */ + char *unique; /**< Unique name for driver instantiation */ +}; + +struct drm_list { + int count; /**< Length of user-space structures */ + struct drm_version *version; +}; + +struct drm_block { + int unused; +}; + +/** + * DRM_IOCTL_CONTROL ioctl argument type. + * + * \sa drmCtlInstHandler() and drmCtlUninstHandler(). + */ +struct drm_control { + enum { + DRM_ADD_COMMAND, + DRM_RM_COMMAND, + DRM_INST_HANDLER, + DRM_UNINST_HANDLER + } func; + int irq; +}; + +/** + * Type of memory to map. + */ +enum drm_map_type { + _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */ + _DRM_REGISTERS = 1, /**< no caching, no core dump */ + _DRM_SHM = 2, /**< shared, cached */ + _DRM_AGP = 3, /**< AGP/GART */ + _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ + _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ + _DRM_GEM = 6, /**< GEM object */ +}; + +/** + * Memory mapping flags. + */ +enum drm_map_flags { + _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */ + _DRM_READ_ONLY = 0x02, + _DRM_LOCKED = 0x04, /**< shared, cached, locked */ + _DRM_KERNEL = 0x08, /**< kernel requires access */ + _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */ + _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */ + _DRM_REMOVABLE = 0x40, /**< Removable mapping */ + _DRM_DRIVER = 0x80 /**< Managed by driver */ +}; + +struct drm_ctx_priv_map { + unsigned int ctx_id; /**< Context requesting private mapping */ + void *handle; /**< Handle of map */ +}; + +/** + * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls + * argument type. + * + * \sa drmAddMap(). + */ +struct drm_map { + unsigned long offset; /**< Requested physical address (0 for SAREA)*/ + unsigned long size; /**< Requested physical size (bytes) */ + enum drm_map_type type; /**< Type of memory to map */ + enum drm_map_flags flags; /**< Flags */ + void *handle; /**< User-space: "Handle" to pass to mmap() */ + /**< Kernel-space: kernel-virtual address */ + int mtrr; /**< MTRR slot used */ + /* Private data */ +}; + +/** + * DRM_IOCTL_GET_CLIENT ioctl argument type. + */ +struct drm_client { + int idx; /**< Which client desired? */ + int auth; /**< Is client authenticated? */ + unsigned long pid; /**< Process ID */ + unsigned long uid; /**< User ID */ + unsigned long magic; /**< Magic */ + unsigned long iocs; /**< Ioctl count */ +}; + +enum drm_stat_type { + _DRM_STAT_LOCK, + _DRM_STAT_OPENS, + _DRM_STAT_CLOSES, + _DRM_STAT_IOCTLS, + _DRM_STAT_LOCKS, + _DRM_STAT_UNLOCKS, + _DRM_STAT_VALUE, /**< Generic value */ + _DRM_STAT_BYTE, /**< Generic byte counter (1024bytes/K) */ + _DRM_STAT_COUNT, /**< Generic non-byte counter (1000/k) */ + + _DRM_STAT_IRQ, /**< IRQ */ + _DRM_STAT_PRIMARY, /**< Primary DMA bytes */ + _DRM_STAT_SECONDARY, /**< Secondary DMA bytes */ + _DRM_STAT_DMA, /**< DMA */ + _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */ + _DRM_STAT_MISSED /**< Missed DMA opportunity */ + /* Add to the *END* of the list */ +}; + +/** + * DRM_IOCTL_GET_STATS ioctl argument type. + */ +struct drm_stats { + unsigned long count; + struct { + unsigned long value; + enum drm_stat_type type; + } data[15]; +}; + +/** + * Hardware locking flags. + */ +enum drm_lock_flags { + _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */ + _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */ + _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */ + _DRM_LOCK_FLUSH_ALL = 0x08, /**< Flush all DMA queues first */ + /* These *HALT* flags aren't supported yet + -- they will be used to support the + full-screen DGA-like mode. */ + _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */ + _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */ +}; + +/** + * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type. + * + * \sa drmGetLock() and drmUnlock(). + */ +struct drm_lock { + int context; + enum drm_lock_flags flags; +}; + +/** + * DMA flags + * + * \warning + * These values \e must match xf86drm.h. + * + * \sa drm_dma. + */ +enum drm_dma_flags { + /* Flags for DMA buffer dispatch */ + _DRM_DMA_BLOCK = 0x01, /**< + * Block until buffer dispatched. + * + * \note The buffer may not yet have + * been processed by the hardware -- + * getting a hardware lock with the + * hardware quiescent will ensure + * that the buffer has been + * processed. + */ + _DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */ + _DRM_DMA_PRIORITY = 0x04, /**< High priority dispatch */ + + /* Flags for DMA buffer request */ + _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */ + _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */ + _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */ +}; + +/** + * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type. + * + * \sa drmAddBufs(). + */ +struct drm_buf_desc { + int count; /**< Number of buffers of this size */ + int size; /**< Size in bytes */ + int low_mark; /**< Low water mark */ + int high_mark; /**< High water mark */ + enum { + _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */ + _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */ + _DRM_SG_BUFFER = 0x04, /**< Scatter/gather memory buffer */ + _DRM_FB_BUFFER = 0x08, /**< Buffer is in frame buffer */ + _DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */ + } flags; + unsigned long agp_start; /**< + * Start address of where the AGP buffers are + * in the AGP aperture + */ +}; + +/** + * DRM_IOCTL_INFO_BUFS ioctl argument type. + */ +struct drm_buf_info { + int count; /**< Entries in list */ + struct drm_buf_desc *list; +}; + +/** + * DRM_IOCTL_FREE_BUFS ioctl argument type. + */ +struct drm_buf_free { + int count; + int *list; +}; + +/** + * Buffer information + * + * \sa drm_buf_map. + */ +struct drm_buf_pub { + int idx; /**< Index into the master buffer list */ + int total; /**< Buffer size */ + int used; /**< Amount of buffer in use (for DMA) */ + void *address; /**< Address of buffer */ +}; + +/** + * DRM_IOCTL_MAP_BUFS ioctl argument type. + */ +struct drm_buf_map { + int count; /**< Length of the buffer list */ + void *virtual; /**< Mmap'd area in user-virtual */ + struct drm_buf_pub *list; /**< Buffer information */ +}; + +/** + * DRM_IOCTL_DMA ioctl argument type. + * + * Indices here refer to the offset into the buffer list in drm_buf_get. + * + * \sa drmDMA(). + */ +struct drm_dma { + int context; /**< Context handle */ + int send_count; /**< Number of buffers to send */ + int *send_indices; /**< List of handles to buffers */ + int *send_sizes; /**< Lengths of data to send */ + enum drm_dma_flags flags; /**< Flags */ + int request_count; /**< Number of buffers requested */ + int request_size; /**< Desired size for buffers */ + int *request_indices; /**< Buffer information */ + int *request_sizes; + int granted_count; /**< Number of buffers granted */ +}; + +enum drm_ctx_flags { + _DRM_CONTEXT_PRESERVED = 0x01, + _DRM_CONTEXT_2DONLY = 0x02 +}; + +/** + * DRM_IOCTL_ADD_CTX ioctl argument type. + * + * \sa drmCreateContext() and drmDestroyContext(). + */ +struct drm_ctx { + drm_context_t handle; + enum drm_ctx_flags flags; +}; + +/** + * DRM_IOCTL_RES_CTX ioctl argument type. + */ +struct drm_ctx_res { + int count; + struct drm_ctx *contexts; +}; + +/** + * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type. + */ +struct drm_draw { + drm_drawable_t handle; +}; + +/** + * DRM_IOCTL_UPDATE_DRAW ioctl argument type. + */ +typedef enum { + DRM_DRAWABLE_CLIPRECTS, +} drm_drawable_info_type_t; + +struct drm_update_draw { + drm_drawable_t handle; + unsigned int type; + unsigned int num; + unsigned long long data; +}; + +/** + * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. + */ +struct drm_auth { + drm_magic_t magic; +}; + +/** + * DRM_IOCTL_IRQ_BUSID ioctl argument type. + * + * \sa drmGetInterruptFromBusID(). + */ +struct drm_irq_busid { + int irq; /**< IRQ number */ + int busnum; /**< bus number */ + int devnum; /**< device number */ + int funcnum; /**< function number */ +}; + +enum drm_vblank_seq_type { + _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */ + _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */ + /* bits 1-6 are reserved for high crtcs */ + _DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e, + _DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */ + _DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */ + _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */ + _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */ + _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking, unsupported */ +}; +#define _DRM_VBLANK_HIGH_CRTC_SHIFT 1 + +#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) +#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | \ + _DRM_VBLANK_SECONDARY | _DRM_VBLANK_NEXTONMISS) + +struct drm_wait_vblank_request { + enum drm_vblank_seq_type type; + unsigned int sequence; + unsigned long signal; +}; + +struct drm_wait_vblank_reply { + enum drm_vblank_seq_type type; + unsigned int sequence; + long tval_sec; + long tval_usec; +}; + +/** + * DRM_IOCTL_WAIT_VBLANK ioctl argument type. + * + * \sa drmWaitVBlank(). + */ +union drm_wait_vblank { + struct drm_wait_vblank_request request; + struct drm_wait_vblank_reply reply; +}; + +#define _DRM_PRE_MODESET 1 +#define _DRM_POST_MODESET 2 + +/** + * DRM_IOCTL_MODESET_CTL ioctl argument type + * + * \sa drmModesetCtl(). + */ +struct drm_modeset_ctl { + __u32 crtc; + __u32 cmd; +}; + +/** + * DRM_IOCTL_AGP_ENABLE ioctl argument type. + * + * \sa drmAgpEnable(). + */ +struct drm_agp_mode { + unsigned long mode; /**< AGP mode */ +}; + +/** + * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type. + * + * \sa drmAgpAlloc() and drmAgpFree(). + */ +struct drm_agp_buffer { + unsigned long size; /**< In bytes -- will round to page boundary */ + unsigned long handle; /**< Used for binding / unbinding */ + unsigned long type; /**< Type of memory to allocate */ + unsigned long physical; /**< Physical used by i810 */ +}; + +/** + * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type. + * + * \sa drmAgpBind() and drmAgpUnbind(). + */ +struct drm_agp_binding { + unsigned long handle; /**< From drm_agp_buffer */ + unsigned long offset; /**< In bytes -- will round to page boundary */ +}; + +/** + * DRM_IOCTL_AGP_INFO ioctl argument type. + * + * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(), + * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(), + * drmAgpVendorId() and drmAgpDeviceId(). + */ +struct drm_agp_info { + int agp_version_major; + int agp_version_minor; + unsigned long mode; + unsigned long aperture_base; /* physical address */ + unsigned long aperture_size; /* bytes */ + unsigned long memory_allowed; /* bytes */ + unsigned long memory_used; + + /* PCI information */ + unsigned short id_vendor; + unsigned short id_device; +}; + +/** + * DRM_IOCTL_SG_ALLOC ioctl argument type. + */ +struct drm_scatter_gather { + unsigned long size; /**< In bytes -- will round to page boundary */ + unsigned long handle; /**< Used for mapping / unmapping */ +}; + +/** + * DRM_IOCTL_SET_VERSION ioctl argument type. + */ +struct drm_set_version { + int drm_di_major; + int drm_di_minor; + int drm_dd_major; + int drm_dd_minor; +}; + +/** DRM_IOCTL_GEM_CLOSE ioctl argument type */ +struct drm_gem_close { + /** Handle of the object to be closed. */ + __u32 handle; + __u32 pad; +}; + +/** DRM_IOCTL_GEM_FLINK ioctl argument type */ +struct drm_gem_flink { + /** Handle for the object being named */ + __u32 handle; + + /** Returned global name */ + __u32 name; +}; + +/** DRM_IOCTL_GEM_OPEN ioctl argument type */ +struct drm_gem_open { + /** Name of object being opened */ + __u32 name; + + /** Returned handle for the object */ + __u32 handle; + + /** Returned size of the object */ + __u64 size; +}; + +/** DRM_IOCTL_GET_CAP ioctl argument type */ +struct drm_get_cap { + __u64 capability; + __u64 value; +}; + +#define DRM_CLOEXEC O_CLOEXEC +struct drm_prime_handle { + __u32 handle; + + /** Flags.. only applicable for handle->fd */ + __u32 flags; + + /** Returned dmabuf file descriptor */ + __s32 fd; +}; + +#include + +#define DRM_IOCTL_BASE 'd' +#define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr) +#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type) +#define DRM_IOW(nr,type) _IOW(DRM_IOCTL_BASE,nr,type) +#define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type) + +#define DRM_IOCTL_VERSION DRM_IOWR(0x00, struct drm_version) +#define DRM_IOCTL_GET_UNIQUE DRM_IOWR(0x01, struct drm_unique) +#define DRM_IOCTL_GET_MAGIC DRM_IOR( 0x02, struct drm_auth) +#define DRM_IOCTL_IRQ_BUSID DRM_IOWR(0x03, struct drm_irq_busid) +#define DRM_IOCTL_GET_MAP DRM_IOWR(0x04, struct drm_map) +#define DRM_IOCTL_GET_CLIENT DRM_IOWR(0x05, struct drm_client) +#define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, struct drm_stats) +#define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version) +#define DRM_IOCTL_MODESET_CTL DRM_IOW(0x08, struct drm_modeset_ctl) +#define DRM_IOCTL_GEM_CLOSE DRM_IOW (0x09, struct drm_gem_close) +#define DRM_IOCTL_GEM_FLINK DRM_IOWR(0x0a, struct drm_gem_flink) +#define DRM_IOCTL_GEM_OPEN DRM_IOWR(0x0b, struct drm_gem_open) +#define DRM_IOCTL_GET_CAP DRM_IOWR(0x0c, struct drm_get_cap) + +#define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, struct drm_unique) +#define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, struct drm_auth) +#define DRM_IOCTL_BLOCK DRM_IOWR(0x12, struct drm_block) +#define DRM_IOCTL_UNBLOCK DRM_IOWR(0x13, struct drm_block) +#define DRM_IOCTL_CONTROL DRM_IOW( 0x14, struct drm_control) +#define DRM_IOCTL_ADD_MAP DRM_IOWR(0x15, struct drm_map) +#define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, struct drm_buf_desc) +#define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, struct drm_buf_desc) +#define DRM_IOCTL_INFO_BUFS DRM_IOWR(0x18, struct drm_buf_info) +#define DRM_IOCTL_MAP_BUFS DRM_IOWR(0x19, struct drm_buf_map) +#define DRM_IOCTL_FREE_BUFS DRM_IOW( 0x1a, struct drm_buf_free) + +#define DRM_IOCTL_RM_MAP DRM_IOW( 0x1b, struct drm_map) + +#define DRM_IOCTL_SET_SAREA_CTX DRM_IOW( 0x1c, struct drm_ctx_priv_map) +#define DRM_IOCTL_GET_SAREA_CTX DRM_IOWR(0x1d, struct drm_ctx_priv_map) + +#define DRM_IOCTL_SET_MASTER DRM_IO(0x1e) +#define DRM_IOCTL_DROP_MASTER DRM_IO(0x1f) + +#define DRM_IOCTL_ADD_CTX DRM_IOWR(0x20, struct drm_ctx) +#define DRM_IOCTL_RM_CTX DRM_IOWR(0x21, struct drm_ctx) +#define DRM_IOCTL_MOD_CTX DRM_IOW( 0x22, struct drm_ctx) +#define DRM_IOCTL_GET_CTX DRM_IOWR(0x23, struct drm_ctx) +#define DRM_IOCTL_SWITCH_CTX DRM_IOW( 0x24, struct drm_ctx) +#define DRM_IOCTL_NEW_CTX DRM_IOW( 0x25, struct drm_ctx) +#define DRM_IOCTL_RES_CTX DRM_IOWR(0x26, struct drm_ctx_res) +#define DRM_IOCTL_ADD_DRAW DRM_IOWR(0x27, struct drm_draw) +#define DRM_IOCTL_RM_DRAW DRM_IOWR(0x28, struct drm_draw) +#define DRM_IOCTL_DMA DRM_IOWR(0x29, struct drm_dma) +#define DRM_IOCTL_LOCK DRM_IOW( 0x2a, struct drm_lock) +#define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, struct drm_lock) +#define DRM_IOCTL_FINISH DRM_IOW( 0x2c, struct drm_lock) + +#define DRM_IOCTL_PRIME_HANDLE_TO_FD DRM_IOWR(0x2d, struct drm_prime_handle) +#define DRM_IOCTL_PRIME_FD_TO_HANDLE DRM_IOWR(0x2e, struct drm_prime_handle) + +#define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30) +#define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31) +#define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, struct drm_agp_mode) +#define DRM_IOCTL_AGP_INFO DRM_IOR( 0x33, struct drm_agp_info) +#define DRM_IOCTL_AGP_ALLOC DRM_IOWR(0x34, struct drm_agp_buffer) +#define DRM_IOCTL_AGP_FREE DRM_IOW( 0x35, struct drm_agp_buffer) +#define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding) +#define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding) + +#define DRM_IOCTL_SG_ALLOC DRM_IOWR(0x38, struct drm_scatter_gather) +#define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather) + +#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank) + +#define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw) + +#define DRM_IOCTL_MODE_GETRESOURCES DRM_IOWR(0xA0, struct drm_mode_card_res) +#define DRM_IOCTL_MODE_GETCRTC DRM_IOWR(0xA1, struct drm_mode_crtc) +#define DRM_IOCTL_MODE_SETCRTC DRM_IOWR(0xA2, struct drm_mode_crtc) +#define DRM_IOCTL_MODE_CURSOR DRM_IOWR(0xA3, struct drm_mode_cursor) +#define DRM_IOCTL_MODE_GETGAMMA DRM_IOWR(0xA4, struct drm_mode_crtc_lut) +#define DRM_IOCTL_MODE_SETGAMMA DRM_IOWR(0xA5, struct drm_mode_crtc_lut) +#define DRM_IOCTL_MODE_GETENCODER DRM_IOWR(0xA6, struct drm_mode_get_encoder) +#define DRM_IOCTL_MODE_GETCONNECTOR DRM_IOWR(0xA7, struct drm_mode_get_connector) +#define DRM_IOCTL_MODE_ATTACHMODE DRM_IOWR(0xA8, struct drm_mode_mode_cmd) /* deprecated (never worked) */ +#define DRM_IOCTL_MODE_DETACHMODE DRM_IOWR(0xA9, struct drm_mode_mode_cmd) /* deprecated (never worked) */ + +#define DRM_IOCTL_MODE_GETPROPERTY DRM_IOWR(0xAA, struct drm_mode_get_property) +#define DRM_IOCTL_MODE_SETPROPERTY DRM_IOWR(0xAB, struct drm_mode_connector_set_property) +#define DRM_IOCTL_MODE_GETPROPBLOB DRM_IOWR(0xAC, struct drm_mode_get_blob) +#define DRM_IOCTL_MODE_GETFB DRM_IOWR(0xAD, struct drm_mode_fb_cmd) +#define DRM_IOCTL_MODE_ADDFB DRM_IOWR(0xAE, struct drm_mode_fb_cmd) +#define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xAF, unsigned int) +#define DRM_IOCTL_MODE_PAGE_FLIP DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip) +#define DRM_IOCTL_MODE_DIRTYFB DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd) + +#define DRM_IOCTL_MODE_CREATE_DUMB DRM_IOWR(0xB2, struct drm_mode_create_dumb) +#define DRM_IOCTL_MODE_MAP_DUMB DRM_IOWR(0xB3, struct drm_mode_map_dumb) +#define DRM_IOCTL_MODE_DESTROY_DUMB DRM_IOWR(0xB4, struct drm_mode_destroy_dumb) +#define DRM_IOCTL_MODE_GETPLANERESOURCES DRM_IOWR(0xB5, struct drm_mode_get_plane_res) +#define DRM_IOCTL_MODE_GETPLANE DRM_IOWR(0xB6, struct drm_mode_get_plane) +#define DRM_IOCTL_MODE_SETPLANE DRM_IOWR(0xB7, struct drm_mode_set_plane) +#define DRM_IOCTL_MODE_ADDFB2 DRM_IOWR(0xB8, struct drm_mode_fb_cmd2) +#define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties) +#define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property) + +/** + * Device specific ioctls should only be in their respective headers + * The device specific ioctl range is from 0x40 to 0x99. + * Generic IOCTLS restart at 0xA0. + * + * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and + * drmCommandReadWrite(). + */ +#define DRM_COMMAND_BASE 0x40 +#define DRM_COMMAND_END 0xA0 + +/** + * Header for events written back to userspace on the drm fd. The + * type defines the type of event, the length specifies the total + * length of the event (including the header), and user_data is + * typically a 64 bit value passed with the ioctl that triggered the + * event. A read on the drm fd will always only return complete + * events, that is, if for example the read buffer is 100 bytes, and + * there are two 64 byte events pending, only one will be returned. + * + * Event types 0 - 0x7fffffff are generic drm events, 0x80000000 and + * up are chipset specific. + */ +struct drm_event { + __u32 type; + __u32 length; +}; + +#define DRM_EVENT_VBLANK 0x01 +#define DRM_EVENT_FLIP_COMPLETE 0x02 + +struct drm_event_vblank { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 sequence; + __u32 reserved; +}; + +#define DRM_CAP_DUMB_BUFFER 0x1 +#define DRM_CAP_VBLANK_HIGH_CRTC 0x2 +#define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 +#define DRM_CAP_DUMB_PREFER_SHADOW 0x4 +#define DRM_CAP_PRIME 0x5 +#define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 + +#define DRM_PRIME_CAP_IMPORT 0x1 +#define DRM_PRIME_CAP_EXPORT 0x2 + +/* typedef area */ +typedef struct drm_clip_rect drm_clip_rect_t; +typedef struct drm_drawable_info drm_drawable_info_t; +typedef struct drm_tex_region drm_tex_region_t; +typedef struct drm_hw_lock drm_hw_lock_t; +typedef struct drm_version drm_version_t; +typedef struct drm_unique drm_unique_t; +typedef struct drm_list drm_list_t; +typedef struct drm_block drm_block_t; +typedef struct drm_control drm_control_t; +typedef enum drm_map_type drm_map_type_t; +typedef enum drm_map_flags drm_map_flags_t; +typedef struct drm_ctx_priv_map drm_ctx_priv_map_t; +typedef struct drm_map drm_map_t; +typedef struct drm_client drm_client_t; +typedef enum drm_stat_type drm_stat_type_t; +typedef struct drm_stats drm_stats_t; +typedef enum drm_lock_flags drm_lock_flags_t; +typedef struct drm_lock drm_lock_t; +typedef enum drm_dma_flags drm_dma_flags_t; +typedef struct drm_buf_desc drm_buf_desc_t; +typedef struct drm_buf_info drm_buf_info_t; +typedef struct drm_buf_free drm_buf_free_t; +typedef struct drm_buf_pub drm_buf_pub_t; +typedef struct drm_buf_map drm_buf_map_t; +typedef struct drm_dma drm_dma_t; +typedef union drm_wait_vblank drm_wait_vblank_t; +typedef struct drm_agp_mode drm_agp_mode_t; +typedef enum drm_ctx_flags drm_ctx_flags_t; +typedef struct drm_ctx drm_ctx_t; +typedef struct drm_ctx_res drm_ctx_res_t; +typedef struct drm_draw drm_draw_t; +typedef struct drm_update_draw drm_update_draw_t; +typedef struct drm_auth drm_auth_t; +typedef struct drm_irq_busid drm_irq_busid_t; +typedef enum drm_vblank_seq_type drm_vblank_seq_type_t; + +typedef struct drm_agp_buffer drm_agp_buffer_t; +typedef struct drm_agp_binding drm_agp_binding_t; +typedef struct drm_agp_info drm_agp_info_t; +typedef struct drm_scatter_gather drm_scatter_gather_t; +typedef struct drm_set_version drm_set_version_t; + +#endif diff --git a/kernel_headers/drm/drm_fourcc.h b/kernel_headers/drm/drm_fourcc.h new file mode 100644 index 0000000..646ae5f --- /dev/null +++ b/kernel_headers/drm/drm_fourcc.h @@ -0,0 +1,135 @@ +/* + * Copyright 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DRM_FOURCC_H +#define DRM_FOURCC_H + +#include + +#define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \ + ((__u32)(c) << 16) | ((__u32)(d) << 24)) + +#define DRM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */ + +/* color index */ +#define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ') /* [7:0] C */ + +/* 8 bpp RGB */ +#define DRM_FORMAT_RGB332 fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */ +#define DRM_FORMAT_BGR233 fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */ + +/* 16 bpp RGB */ +#define DRM_FORMAT_XRGB4444 fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */ +#define DRM_FORMAT_XBGR4444 fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */ +#define DRM_FORMAT_RGBX4444 fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */ +#define DRM_FORMAT_BGRX4444 fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */ + +#define DRM_FORMAT_ARGB4444 fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */ +#define DRM_FORMAT_ABGR4444 fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */ +#define DRM_FORMAT_RGBA4444 fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */ +#define DRM_FORMAT_BGRA4444 fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */ + +#define DRM_FORMAT_XRGB1555 fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */ +#define DRM_FORMAT_XBGR1555 fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */ +#define DRM_FORMAT_RGBX5551 fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */ +#define DRM_FORMAT_BGRX5551 fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */ + +#define DRM_FORMAT_ARGB1555 fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */ +#define DRM_FORMAT_ABGR1555 fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */ +#define DRM_FORMAT_RGBA5551 fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */ +#define DRM_FORMAT_BGRA5551 fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */ + +#define DRM_FORMAT_RGB565 fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */ +#define DRM_FORMAT_BGR565 fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */ + +/* 24 bpp RGB */ +#define DRM_FORMAT_RGB888 fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */ +#define DRM_FORMAT_BGR888 fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */ + +/* 32 bpp RGB */ +#define DRM_FORMAT_XRGB8888 fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */ +#define DRM_FORMAT_XBGR8888 fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */ +#define DRM_FORMAT_RGBX8888 fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */ +#define DRM_FORMAT_BGRX8888 fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */ + +#define DRM_FORMAT_ARGB8888 fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */ +#define DRM_FORMAT_ABGR8888 fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */ +#define DRM_FORMAT_RGBA8888 fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */ +#define DRM_FORMAT_BGRA8888 fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */ + +#define DRM_FORMAT_XRGB2101010 fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */ +#define DRM_FORMAT_XBGR2101010 fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */ +#define DRM_FORMAT_RGBX1010102 fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */ +#define DRM_FORMAT_BGRX1010102 fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */ + +#define DRM_FORMAT_ARGB2101010 fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */ +#define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */ +#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */ +#define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */ + +/* packed YCbCr */ +#define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */ +#define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */ +#define DRM_FORMAT_UYVY fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */ +#define DRM_FORMAT_VYUY fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */ + +#define DRM_FORMAT_AYUV fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */ + +/* + * 2 plane YCbCr + * index 0 = Y plane, [7:0] Y + * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian + * or + * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian + */ +#define DRM_FORMAT_NV12 fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */ +#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */ +#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */ +#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ +#define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */ +#define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */ + +/* special NV12 tiled format */ +#define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */ + +/* + * 3 plane YCbCr + * index 0: Y plane, [7:0] Y + * index 1: Cb plane, [7:0] Cb + * index 2: Cr plane, [7:0] Cr + * or + * index 1: Cr plane, [7:0] Cr + * index 2: Cb plane, [7:0] Cb + */ +#define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */ +#define DRM_FORMAT_YVU410 fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */ +#define DRM_FORMAT_YUV411 fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */ +#define DRM_FORMAT_YVU411 fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */ +#define DRM_FORMAT_YUV420 fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */ +#define DRM_FORMAT_YVU420 fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */ +#define DRM_FORMAT_YUV422 fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */ +#define DRM_FORMAT_YVU422 fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */ +#define DRM_FORMAT_YUV444 fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */ +#define DRM_FORMAT_YVU444 fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */ + +#endif /* DRM_FOURCC_H */ diff --git a/kernel_headers/drm/drm_mode.h b/kernel_headers/drm/drm_mode.h new file mode 100644 index 0000000..cc2e00e --- /dev/null +++ b/kernel_headers/drm/drm_mode.h @@ -0,0 +1,465 @@ +/* + * Copyright (c) 2007 Dave Airlie + * Copyright (c) 2007 Jakob Bornecrantz + * Copyright (c) 2008 Red Hat Inc. + * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA + * Copyright (c) 2007-2008 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef _DRM_MODE_H +#define _DRM_MODE_H + +#include + +#define DRM_DISPLAY_INFO_LEN 32 +#define DRM_CONNECTOR_NAME_LEN 32 +#define DRM_DISPLAY_MODE_LEN 32 +#define DRM_PROP_NAME_LEN 32 + +#define DRM_MODE_TYPE_BUILTIN (1<<0) +#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN) +#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN) +#define DRM_MODE_TYPE_PREFERRED (1<<3) +#define DRM_MODE_TYPE_DEFAULT (1<<4) +#define DRM_MODE_TYPE_USERDEF (1<<5) +#define DRM_MODE_TYPE_DRIVER (1<<6) + +/* Video mode flags */ +/* bit compatible with the xorg definitions. */ +#define DRM_MODE_FLAG_PHSYNC (1<<0) +#define DRM_MODE_FLAG_NHSYNC (1<<1) +#define DRM_MODE_FLAG_PVSYNC (1<<2) +#define DRM_MODE_FLAG_NVSYNC (1<<3) +#define DRM_MODE_FLAG_INTERLACE (1<<4) +#define DRM_MODE_FLAG_DBLSCAN (1<<5) +#define DRM_MODE_FLAG_CSYNC (1<<6) +#define DRM_MODE_FLAG_PCSYNC (1<<7) +#define DRM_MODE_FLAG_NCSYNC (1<<8) +#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ +#define DRM_MODE_FLAG_BCAST (1<<10) +#define DRM_MODE_FLAG_PIXMUX (1<<11) +#define DRM_MODE_FLAG_DBLCLK (1<<12) +#define DRM_MODE_FLAG_CLKDIV2 (1<<13) + +/* DPMS flags */ +/* bit compatible with the xorg definitions. */ +#define DRM_MODE_DPMS_ON 0 +#define DRM_MODE_DPMS_STANDBY 1 +#define DRM_MODE_DPMS_SUSPEND 2 +#define DRM_MODE_DPMS_OFF 3 + +/* Scaling mode options */ +#define DRM_MODE_SCALE_NONE 0 /* Unmodified timing (display or + software can still scale) */ +#define DRM_MODE_SCALE_FULLSCREEN 1 /* Full screen, ignore aspect */ +#define DRM_MODE_SCALE_CENTER 2 /* Centered, no scaling */ +#define DRM_MODE_SCALE_ASPECT 3 /* Full screen, preserve aspect */ + +/* Dithering mode options */ +#define DRM_MODE_DITHERING_OFF 0 +#define DRM_MODE_DITHERING_ON 1 +#define DRM_MODE_DITHERING_AUTO 2 + +/* Dirty info options */ +#define DRM_MODE_DIRTY_OFF 0 +#define DRM_MODE_DIRTY_ON 1 +#define DRM_MODE_DIRTY_ANNOTATE 2 + +struct drm_mode_modeinfo { + __u32 clock; + __u16 hdisplay, hsync_start, hsync_end, htotal, hskew; + __u16 vdisplay, vsync_start, vsync_end, vtotal, vscan; + + __u32 vrefresh; + + __u32 flags; + __u32 type; + char name[DRM_DISPLAY_MODE_LEN]; +}; + +struct drm_mode_card_res { + __u64 fb_id_ptr; + __u64 crtc_id_ptr; + __u64 connector_id_ptr; + __u64 encoder_id_ptr; + __u32 count_fbs; + __u32 count_crtcs; + __u32 count_connectors; + __u32 count_encoders; + __u32 min_width, max_width; + __u32 min_height, max_height; +}; + +struct drm_mode_crtc { + __u64 set_connectors_ptr; + __u32 count_connectors; + + __u32 crtc_id; /**< Id */ + __u32 fb_id; /**< Id of framebuffer */ + + __u32 x, y; /**< Position on the frameuffer */ + + __u32 gamma_size; + __u32 mode_valid; + struct drm_mode_modeinfo mode; +}; + +#define DRM_MODE_PRESENT_TOP_FIELD (1<<0) +#define DRM_MODE_PRESENT_BOTTOM_FIELD (1<<1) + +/* Planes blend with or override other bits on the CRTC */ +struct drm_mode_set_plane { + __u32 plane_id; + __u32 crtc_id; + __u32 fb_id; /* fb object contains surface format type */ + __u32 flags; /* see above flags */ + + /* Signed dest location allows it to be partially off screen */ + __s32 crtc_x, crtc_y; + __u32 crtc_w, crtc_h; + + /* Source values are 16.16 fixed point */ + __u32 src_x, src_y; + __u32 src_h, src_w; +}; + +struct drm_mode_get_plane { + __u32 plane_id; + + __u32 crtc_id; + __u32 fb_id; + + __u32 possible_crtcs; + __u32 gamma_size; + + __u32 count_format_types; + __u64 format_type_ptr; +}; + +struct drm_mode_get_plane_res { + __u64 plane_id_ptr; + __u32 count_planes; +}; + +#define DRM_MODE_ENCODER_NONE 0 +#define DRM_MODE_ENCODER_DAC 1 +#define DRM_MODE_ENCODER_TMDS 2 +#define DRM_MODE_ENCODER_LVDS 3 +#define DRM_MODE_ENCODER_TVDAC 4 +#define DRM_MODE_ENCODER_VIRTUAL 5 + +struct drm_mode_get_encoder { + __u32 encoder_id; + __u32 encoder_type; + + __u32 crtc_id; /**< Id of crtc */ + + __u32 possible_crtcs; + __u32 possible_clones; +}; + +/* This is for connectors with multiple signal types. */ +/* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */ +#define DRM_MODE_SUBCONNECTOR_Automatic 0 +#define DRM_MODE_SUBCONNECTOR_Unknown 0 +#define DRM_MODE_SUBCONNECTOR_DVID 3 +#define DRM_MODE_SUBCONNECTOR_DVIA 4 +#define DRM_MODE_SUBCONNECTOR_Composite 5 +#define DRM_MODE_SUBCONNECTOR_SVIDEO 6 +#define DRM_MODE_SUBCONNECTOR_Component 8 +#define DRM_MODE_SUBCONNECTOR_SCART 9 + +#define DRM_MODE_CONNECTOR_Unknown 0 +#define DRM_MODE_CONNECTOR_VGA 1 +#define DRM_MODE_CONNECTOR_DVII 2 +#define DRM_MODE_CONNECTOR_DVID 3 +#define DRM_MODE_CONNECTOR_DVIA 4 +#define DRM_MODE_CONNECTOR_Composite 5 +#define DRM_MODE_CONNECTOR_SVIDEO 6 +#define DRM_MODE_CONNECTOR_LVDS 7 +#define DRM_MODE_CONNECTOR_Component 8 +#define DRM_MODE_CONNECTOR_9PinDIN 9 +#define DRM_MODE_CONNECTOR_DisplayPort 10 +#define DRM_MODE_CONNECTOR_HDMIA 11 +#define DRM_MODE_CONNECTOR_HDMIB 12 +#define DRM_MODE_CONNECTOR_TV 13 +#define DRM_MODE_CONNECTOR_eDP 14 +#define DRM_MODE_CONNECTOR_VIRTUAL 15 + +struct drm_mode_get_connector { + + __u64 encoders_ptr; + __u64 modes_ptr; + __u64 props_ptr; + __u64 prop_values_ptr; + + __u32 count_modes; + __u32 count_props; + __u32 count_encoders; + + __u32 encoder_id; /**< Current Encoder */ + __u32 connector_id; /**< Id */ + __u32 connector_type; + __u32 connector_type_id; + + __u32 connection; + __u32 mm_width, mm_height; /**< HxW in millimeters */ + __u32 subpixel; + + __u32 pad; +}; + +#define DRM_MODE_PROP_PENDING (1<<0) +#define DRM_MODE_PROP_RANGE (1<<1) +#define DRM_MODE_PROP_IMMUTABLE (1<<2) +#define DRM_MODE_PROP_ENUM (1<<3) /* enumerated type with text strings */ +#define DRM_MODE_PROP_BLOB (1<<4) +#define DRM_MODE_PROP_BITMASK (1<<5) /* bitmask of enumerated types */ + +struct drm_mode_property_enum { + __u64 value; + char name[DRM_PROP_NAME_LEN]; +}; + +struct drm_mode_get_property { + __u64 values_ptr; /* values and blob lengths */ + __u64 enum_blob_ptr; /* enum and blob id ptrs */ + + __u32 prop_id; + __u32 flags; + char name[DRM_PROP_NAME_LEN]; + + __u32 count_values; + __u32 count_enum_blobs; +}; + +struct drm_mode_connector_set_property { + __u64 value; + __u32 prop_id; + __u32 connector_id; +}; + +struct drm_mode_obj_get_properties { + __u64 props_ptr; + __u64 prop_values_ptr; + __u32 count_props; + __u32 obj_id; + __u32 obj_type; +}; + +struct drm_mode_obj_set_property { + __u64 value; + __u32 prop_id; + __u32 obj_id; + __u32 obj_type; +}; + +struct drm_mode_get_blob { + __u32 blob_id; + __u32 length; + __u64 data; +}; + +struct drm_mode_fb_cmd { + __u32 fb_id; + __u32 width, height; + __u32 pitch; + __u32 bpp; + __u32 depth; + /* driver specific handle */ + __u32 handle; +}; + +#define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */ + +struct drm_mode_fb_cmd2 { + __u32 fb_id; + __u32 width, height; + __u32 pixel_format; /* fourcc code from drm_fourcc.h */ + __u32 flags; /* see above flags */ + + /* + * In case of planar formats, this ioctl allows up to 4 + * buffer objects with offets and pitches per plane. + * The pitch and offset order is dictated by the fourcc, + * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: + * + * YUV 4:2:0 image with a plane of 8 bit Y samples + * followed by an interleaved U/V plane containing + * 8 bit 2x2 subsampled colour difference samples. + * + * So it would consist of Y as offset[0] and UV as + * offeset[1]. Note that offset[0] will generally + * be 0. + */ + __u32 handles[4]; + __u32 pitches[4]; /* pitch for each plane */ + __u32 offsets[4]; /* offset of each plane */ +}; + +#define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01 +#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02 +#define DRM_MODE_FB_DIRTY_FLAGS 0x03 + +#define DRM_MODE_FB_DIRTY_MAX_CLIPS 256 + +/* + * Mark a region of a framebuffer as dirty. + * + * Some hardware does not automatically update display contents + * as a hardware or software draw to a framebuffer. This ioctl + * allows userspace to tell the kernel and the hardware what + * regions of the framebuffer have changed. + * + * The kernel or hardware is free to update more then just the + * region specified by the clip rects. The kernel or hardware + * may also delay and/or coalesce several calls to dirty into a + * single update. + * + * Userspace may annotate the updates, the annotates are a + * promise made by the caller that the change is either a copy + * of pixels or a fill of a single color in the region specified. + * + * If the DRM_MODE_FB_DIRTY_ANNOTATE_COPY flag is given then + * the number of updated regions are half of num_clips given, + * where the clip rects are paired in src and dst. The width and + * height of each one of the pairs must match. + * + * If the DRM_MODE_FB_DIRTY_ANNOTATE_FILL flag is given the caller + * promises that the region specified of the clip rects is filled + * completely with a single color as given in the color argument. + */ + +struct drm_mode_fb_dirty_cmd { + __u32 fb_id; + __u32 flags; + __u32 color; + __u32 num_clips; + __u64 clips_ptr; +}; + +struct drm_mode_mode_cmd { + __u32 connector_id; + struct drm_mode_modeinfo mode; +}; + +#define DRM_MODE_CURSOR_BO 0x01 +#define DRM_MODE_CURSOR_MOVE 0x02 +#define DRM_MODE_CURSOR_FLAGS 0x03 + +/* + * depending on the value in flags different members are used. + * + * CURSOR_BO uses + * crtc_id + * width + * height + * handle - if 0 turns the cursor off + * + * CURSOR_MOVE uses + * crtc_id + * x + * y + */ +struct drm_mode_cursor { + __u32 flags; + __u32 crtc_id; + __s32 x; + __s32 y; + __u32 width; + __u32 height; + /* driver specific handle */ + __u32 handle; +}; + +struct drm_mode_crtc_lut { + __u32 crtc_id; + __u32 gamma_size; + + /* pointers to arrays */ + __u64 red; + __u64 green; + __u64 blue; +}; + +#define DRM_MODE_PAGE_FLIP_EVENT 0x01 +#define DRM_MODE_PAGE_FLIP_FLAGS DRM_MODE_PAGE_FLIP_EVENT + +/* + * Request a page flip on the specified crtc. + * + * This ioctl will ask KMS to schedule a page flip for the specified + * crtc. Once any pending rendering targeting the specified fb (as of + * ioctl time) has completed, the crtc will be reprogrammed to display + * that fb after the next vertical refresh. The ioctl returns + * immediately, but subsequent rendering to the current fb will block + * in the execbuffer ioctl until the page flip happens. If a page + * flip is already pending as the ioctl is called, EBUSY will be + * returned. + * + * The ioctl supports one flag, DRM_MODE_PAGE_FLIP_EVENT, which will + * request that drm sends back a vblank event (see drm.h: struct + * drm_event_vblank) when the page flip is done. The user_data field + * passed in with this ioctl will be returned as the user_data field + * in the vblank event struct. + * + * The reserved field must be zero until we figure out something + * clever to use it for. + */ + +struct drm_mode_crtc_page_flip { + __u32 crtc_id; + __u32 fb_id; + __u32 flags; + __u32 reserved; + __u64 user_data; +}; + +/* create a dumb scanout buffer */ +struct drm_mode_create_dumb { + uint32_t height; + uint32_t width; + uint32_t bpp; + uint32_t flags; + /* handle, pitch, size will be returned */ + uint32_t handle; + uint32_t pitch; + uint64_t size; +}; + +/* set up for mmap of a dumb scanout buffer */ +struct drm_mode_map_dumb { + /** Handle for the object being mapped. */ + __u32 handle; + __u32 pad; + /** + * Fake offset to use for subsequent mmap call + * + * This is a fixed-size type for 32/64 compatibility. + */ + __u64 offset; +}; + +struct drm_mode_destroy_dumb { + uint32_t handle; +}; + +#endif diff --git a/kernel_headers/drm/drm_sarea.h b/kernel_headers/drm/drm_sarea.h new file mode 100644 index 0000000..8e7aa2c --- /dev/null +++ b/kernel_headers/drm/drm_sarea.h @@ -0,0 +1,84 @@ +/** + * \file drm_sarea.h + * \brief SAREA definitions + * + * \author Michel Dänzer + */ + +/* + * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _DRM_SAREA_H_ +#define _DRM_SAREA_H_ + +#include + +/* SAREA area needs to be at least a page */ +#if defined(__alpha__) +#define SAREA_MAX 0x2000U +#elif defined(__mips__) +#define SAREA_MAX 0x4000U +#elif defined(__ia64__) +#define SAREA_MAX 0x10000U /* 64kB */ +#else +/* Intel 830M driver needs at least 8k SAREA */ +#define SAREA_MAX 0x2000U +#endif + +/** Maximum number of drawables in the SAREA */ +#define SAREA_MAX_DRAWABLES 256 + +#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 + +/** SAREA drawable */ +struct drm_sarea_drawable { + unsigned int stamp; + unsigned int flags; +}; + +/** SAREA frame */ +struct drm_sarea_frame { + unsigned int x; + unsigned int y; + unsigned int width; + unsigned int height; + unsigned int fullscreen; +}; + +/** SAREA */ +struct drm_sarea { + /** first thing is always the DRM locking structure */ + struct drm_hw_lock lock; + /** \todo Use readers/writer lock for drm_sarea::drawable_lock */ + struct drm_hw_lock drawable_lock; + struct drm_sarea_drawable drawableTable[SAREA_MAX_DRAWABLES]; /**< drawables */ + struct drm_sarea_frame frame; /**< frame */ + drm_context_t dummy_context; +}; + +typedef struct drm_sarea_drawable drm_sarea_drawable_t; +typedef struct drm_sarea_frame drm_sarea_frame_t; +typedef struct drm_sarea drm_sarea_t; + +#endif /* _DRM_SAREA_H_ */ diff --git a/kernel_headers/drm/exynos_drm.h b/kernel_headers/drm/exynos_drm.h new file mode 100644 index 0000000..14b6c3a --- /dev/null +++ b/kernel_headers/drm/exynos_drm.h @@ -0,0 +1,390 @@ +/* exynos_drm.h + * + * Copyright (c) 2011 Samsung Electronics Co., Ltd. + * Authors: + * Inki Dae + * Joonyoung Shim + * Seung-Woo Kim + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#ifndef _EXYNOS_DRM_H_ +#define _EXYNOS_DRM_H_ + +#include + +/** + * User-desired buffer creation information structure. + * + * @size: user-desired memory allocation size. + * - this size value would be page-aligned internally. + * @flags: user request for setting memory type or cache attributes. + * @handle: returned a handle to created gem object. + * - this handle will be set by gem module of kernel side. + */ +struct drm_exynos_gem_create { + uint64_t size; + unsigned int flags; + unsigned int handle; +}; + +/** + * A structure for getting buffer offset. + * + * @handle: a pointer to gem object created. + * @pad: just padding to be 64-bit aligned. + * @offset: relatived offset value of the memory region allocated. + * - this value should be set by user. + */ +struct drm_exynos_gem_map_off { + unsigned int handle; + unsigned int pad; + uint64_t offset; +}; + +/** + * A structure for mapping buffer. + * + * @handle: a handle to gem object created. + * @pad: just padding to be 64-bit aligned. + * @size: memory size to be mapped. + * @mapped: having user virtual address mmaped. + * - this variable would be filled by exynos gem module + * of kernel side with user virtual address which is allocated + * by do_mmap(). + */ +struct drm_exynos_gem_mmap { + unsigned int handle; + unsigned int pad; + uint64_t size; + uint64_t mapped; +}; + +/** + * A structure to gem information. + * + * @handle: a handle to gem object created. + * @flags: flag value including memory type and cache attribute and + * this value would be set by driver. + * @size: size to memory region allocated by gem and this size would + * be set by driver. + */ +struct drm_exynos_gem_info { + unsigned int handle; + unsigned int flags; + uint64_t size; +}; + +/** + * A structure for user connection request of virtual display. + * + * @connection: indicate whether doing connetion or not by user. + * @extensions: if this value is 1 then the vidi driver would need additional + * 128bytes edid data. + * @edid: the edid data pointer from user side. + */ +struct drm_exynos_vidi_connection { + unsigned int connection; + unsigned int extensions; + uint64_t edid; +}; + +/* memory type definitions. */ +enum e_drm_exynos_gem_mem_type { + /* Physically Continuous memory and used as default. */ + EXYNOS_BO_CONTIG = 0 << 0, + /* Physically Non-Continuous memory. */ + EXYNOS_BO_NONCONTIG = 1 << 0, + /* non-cachable mapping and used as default. */ + EXYNOS_BO_NONCACHABLE = 0 << 1, + /* cachable mapping. */ + EXYNOS_BO_CACHABLE = 1 << 1, + /* write-combine mapping. */ + EXYNOS_BO_WC = 1 << 2, + EXYNOS_BO_MASK = EXYNOS_BO_NONCONTIG | EXYNOS_BO_CACHABLE | + EXYNOS_BO_WC +}; + +struct drm_exynos_g2d_get_ver { + __u32 major; + __u32 minor; +}; + +struct drm_exynos_g2d_cmd { + __u32 offset; + __u32 data; +}; + +enum drm_exynos_g2d_buf_type { + G2D_BUF_USERPTR = 1 << 31, +}; + +enum drm_exynos_g2d_event_type { + G2D_EVENT_NOT, + G2D_EVENT_NONSTOP, + G2D_EVENT_STOP, /* not yet */ +}; + +struct drm_exynos_g2d_userptr { + unsigned long userptr; + unsigned long size; +}; + +struct drm_exynos_g2d_set_cmdlist { + __u64 cmd; + __u64 cmd_buf; + __u32 cmd_nr; + __u32 cmd_buf_nr; + + /* for g2d event */ + __u64 event_type; + __u64 user_data; +}; + +struct drm_exynos_g2d_exec { + __u64 async; +}; + +enum drm_exynos_ops_id { + EXYNOS_DRM_OPS_SRC, + EXYNOS_DRM_OPS_DST, + EXYNOS_DRM_OPS_MAX, +}; + +struct drm_exynos_sz { + __u32 hsize; + __u32 vsize; +}; + +struct drm_exynos_pos { + __u32 x; + __u32 y; + __u32 w; + __u32 h; +}; + +enum drm_exynos_flip { + EXYNOS_DRM_FLIP_NONE = (0 << 0), + EXYNOS_DRM_FLIP_VERTICAL = (1 << 0), + EXYNOS_DRM_FLIP_HORIZONTAL = (1 << 1), + EXYNOS_DRM_FLIP_BOTH = EXYNOS_DRM_FLIP_VERTICAL | + EXYNOS_DRM_FLIP_HORIZONTAL, +}; + +enum drm_exynos_degree { + EXYNOS_DRM_DEGREE_0, + EXYNOS_DRM_DEGREE_90, + EXYNOS_DRM_DEGREE_180, + EXYNOS_DRM_DEGREE_270, +}; + +enum drm_exynos_planer { + EXYNOS_DRM_PLANAR_Y, + EXYNOS_DRM_PLANAR_CB, + EXYNOS_DRM_PLANAR_CR, + EXYNOS_DRM_PLANAR_MAX, +}; + +/** + * A structure for ipp supported property list. + * + * @version: version of this structure. + * @ipp_id: id of ipp driver. + * @count: count of ipp driver. + * @writeback: flag of writeback supporting. + * @flip: flag of flip supporting. + * @degree: flag of degree information. + * @csc: flag of csc supporting. + * @crop: flag of crop supporting. + * @scale: flag of scale supporting. + * @refresh_min: min hz of refresh. + * @refresh_max: max hz of refresh. + * @crop_min: crop min resolution. + * @crop_max: crop max resolution. + * @scale_min: scale min resolution. + * @scale_max: scale max resolution. + */ +struct drm_exynos_ipp_prop_list { + __u32 version; + __u32 ipp_id; + __u32 count; + __u32 writeback; + __u32 flip; + __u32 degree; + __u32 csc; + __u32 crop; + __u32 scale; + __u32 refresh_min; + __u32 refresh_max; + __u32 reserved; + struct drm_exynos_sz crop_min; + struct drm_exynos_sz crop_max; + struct drm_exynos_sz scale_min; + struct drm_exynos_sz scale_max; +}; + +/** + * A structure for ipp config. + * + * @ops_id: property of operation directions. + * @flip: property of mirror, flip. + * @degree: property of rotation degree. + * @fmt: property of image format. + * @sz: property of image size. + * @pos: property of image position(src-cropped,dst-scaler). + */ +struct drm_exynos_ipp_config { + enum drm_exynos_ops_id ops_id; + enum drm_exynos_flip flip; + enum drm_exynos_degree degree; + __u32 fmt; + struct drm_exynos_sz sz; + struct drm_exynos_pos pos; +}; + +enum drm_exynos_ipp_cmd { + IPP_CMD_NONE, + IPP_CMD_M2M, + IPP_CMD_WB, + IPP_CMD_OUTPUT, + IPP_CMD_MAX, +}; + +/** + * A structure for ipp property. + * + * @config: source, destination config. + * @cmd: definition of command. + * @ipp_id: id of ipp driver. + * @prop_id: id of property. + * @refresh_rate: refresh rate. + */ +struct drm_exynos_ipp_property { + struct drm_exynos_ipp_config config[EXYNOS_DRM_OPS_MAX]; + enum drm_exynos_ipp_cmd cmd; + __u32 ipp_id; + __u32 prop_id; + __u32 refresh_rate; +}; + +enum drm_exynos_ipp_buf_type { + IPP_BUF_ENQUEUE, + IPP_BUF_DEQUEUE, +}; + +/** + * A structure for ipp buffer operations. + * + * @ops_id: operation directions. + * @buf_type: definition of buffer. + * @prop_id: id of property. + * @buf_id: id of buffer. + * @handle: Y, Cb, Cr each planar handle. + * @user_data: user data. + */ +struct drm_exynos_ipp_queue_buf { + enum drm_exynos_ops_id ops_id; + enum drm_exynos_ipp_buf_type buf_type; + __u32 prop_id; + __u32 buf_id; + __u32 handle[EXYNOS_DRM_PLANAR_MAX]; + __u32 reserved; + __u64 user_data; +}; + +enum drm_exynos_ipp_ctrl { + IPP_CTRL_PLAY, + IPP_CTRL_STOP, + IPP_CTRL_PAUSE, + IPP_CTRL_RESUME, + IPP_CTRL_MAX, +}; + +/** + * A structure for ipp start/stop operations. + * + * @prop_id: id of property. + * @ctrl: definition of control. + */ +struct drm_exynos_ipp_cmd_ctrl { + __u32 prop_id; + enum drm_exynos_ipp_ctrl ctrl; +}; + +#define DRM_EXYNOS_GEM_CREATE 0x00 +#define DRM_EXYNOS_GEM_MAP_OFFSET 0x01 +#define DRM_EXYNOS_GEM_MMAP 0x02 +/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */ +#define DRM_EXYNOS_GEM_GET 0x04 +#define DRM_EXYNOS_VIDI_CONNECTION 0x07 + +/* G2D */ +#define DRM_EXYNOS_G2D_GET_VER 0x20 +#define DRM_EXYNOS_G2D_SET_CMDLIST 0x21 +#define DRM_EXYNOS_G2D_EXEC 0x22 + +/* IPP - Image Post Processing */ +#define DRM_EXYNOS_IPP_GET_PROPERTY 0x30 +#define DRM_EXYNOS_IPP_SET_PROPERTY 0x31 +#define DRM_EXYNOS_IPP_QUEUE_BUF 0x32 +#define DRM_EXYNOS_IPP_CMD_CTRL 0x33 + +#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create) + +#define DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_GEM_MAP_OFFSET, struct drm_exynos_gem_map_off) + +#define DRM_IOCTL_EXYNOS_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_GEM_MMAP, struct drm_exynos_gem_mmap) + +#define DRM_IOCTL_EXYNOS_GEM_GET DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_GEM_GET, struct drm_exynos_gem_info) + +#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection) + +#define DRM_IOCTL_EXYNOS_G2D_GET_VER DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver) +#define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist) +#define DRM_IOCTL_EXYNOS_G2D_EXEC DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec) + +#define DRM_IOCTL_EXYNOS_IPP_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_IPP_GET_PROPERTY, struct drm_exynos_ipp_prop_list) +#define DRM_IOCTL_EXYNOS_IPP_SET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_IPP_SET_PROPERTY, struct drm_exynos_ipp_property) +#define DRM_IOCTL_EXYNOS_IPP_QUEUE_BUF DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_IPP_QUEUE_BUF, struct drm_exynos_ipp_queue_buf) +#define DRM_IOCTL_EXYNOS_IPP_CMD_CTRL DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_EXYNOS_IPP_CMD_CTRL, struct drm_exynos_ipp_cmd_ctrl) + +/* EXYNOS specific events */ +#define DRM_EXYNOS_G2D_EVENT 0x80000000 +#define DRM_EXYNOS_IPP_EVENT 0x80000001 + +struct drm_exynos_g2d_event { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 cmdlist_no; + __u32 reserved; +}; + +struct drm_exynos_ipp_event { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 prop_id; + __u32 reserved; + __u32 buf_id[EXYNOS_DRM_OPS_MAX]; +}; + +#endif /* _EXYNOS_DRM_H_ */ diff --git a/kernel_headers/drm/i810_drm.h b/kernel_headers/drm/i810_drm.h new file mode 100644 index 0000000..7a10bb6 --- /dev/null +++ b/kernel_headers/drm/i810_drm.h @@ -0,0 +1,281 @@ +#ifndef _I810_DRM_H_ +#define _I810_DRM_H_ + +/* WARNING: These defines must be the same as what the Xserver uses. + * if you change them, you must change the defines in the Xserver. + */ + +#ifndef _I810_DEFINES_ +#define _I810_DEFINES_ + +#define I810_DMA_BUF_ORDER 12 +#define I810_DMA_BUF_SZ (1< + +/* Please note that modifications to all structs defined here are + * subject to backwards-compatibility constraints. + */ + + +/* Each region is a minimum of 16k, and there are at most 255 of them. + */ +#define I915_NR_TEX_REGIONS 255 /* table size 2k - maximum due to use + * of chars for next/prev indices */ +#define I915_LOG_MIN_TEX_REGION_SIZE 14 + +typedef struct _drm_i915_init { + enum { + I915_INIT_DMA = 0x01, + I915_CLEANUP_DMA = 0x02, + I915_RESUME_DMA = 0x03 + } func; + unsigned int mmio_offset; + int sarea_priv_offset; + unsigned int ring_start; + unsigned int ring_end; + unsigned int ring_size; + unsigned int front_offset; + unsigned int back_offset; + unsigned int depth_offset; + unsigned int w; + unsigned int h; + unsigned int pitch; + unsigned int pitch_bits; + unsigned int back_pitch; + unsigned int depth_pitch; + unsigned int cpp; + unsigned int chipset; +} drm_i915_init_t; + +typedef struct _drm_i915_sarea { + struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1]; + int last_upload; /* last time texture was uploaded */ + int last_enqueue; /* last time a buffer was enqueued */ + int last_dispatch; /* age of the most recently dispatched buffer */ + int ctxOwner; /* last context to upload state */ + int texAge; + int pf_enabled; /* is pageflipping allowed? */ + int pf_active; + int pf_current_page; /* which buffer is being displayed? */ + int perf_boxes; /* performance boxes to be displayed */ + int width, height; /* screen size in pixels */ + + drm_handle_t front_handle; + int front_offset; + int front_size; + + drm_handle_t back_handle; + int back_offset; + int back_size; + + drm_handle_t depth_handle; + int depth_offset; + int depth_size; + + drm_handle_t tex_handle; + int tex_offset; + int tex_size; + int log_tex_granularity; + int pitch; + int rotation; /* 0, 90, 180 or 270 */ + int rotated_offset; + int rotated_size; + int rotated_pitch; + int virtualX, virtualY; + + unsigned int front_tiled; + unsigned int back_tiled; + unsigned int depth_tiled; + unsigned int rotated_tiled; + unsigned int rotated2_tiled; + + int pipeA_x; + int pipeA_y; + int pipeA_w; + int pipeA_h; + int pipeB_x; + int pipeB_y; + int pipeB_w; + int pipeB_h; + + /* fill out some space for old userspace triple buffer */ + drm_handle_t unused_handle; + __u32 unused1, unused2, unused3; + + /* buffer object handles for static buffers. May change + * over the lifetime of the client. + */ + __u32 front_bo_handle; + __u32 back_bo_handle; + __u32 unused_bo_handle; + __u32 depth_bo_handle; + +} drm_i915_sarea_t; + +/* due to userspace building against these headers we need some compat here */ +#define planeA_x pipeA_x +#define planeA_y pipeA_y +#define planeA_w pipeA_w +#define planeA_h pipeA_h +#define planeB_x pipeB_x +#define planeB_y pipeB_y +#define planeB_w pipeB_w +#define planeB_h pipeB_h + +/* Flags for perf_boxes + */ +#define I915_BOX_RING_EMPTY 0x1 +#define I915_BOX_FLIP 0x2 +#define I915_BOX_WAIT 0x4 +#define I915_BOX_TEXTURE_LOAD 0x8 +#define I915_BOX_LOST_CONTEXT 0x10 + +/* I915 specific ioctls + * The device specific ioctl range is 0x40 to 0x79. + */ +#define DRM_I915_INIT 0x00 +#define DRM_I915_FLUSH 0x01 +#define DRM_I915_FLIP 0x02 +#define DRM_I915_BATCHBUFFER 0x03 +#define DRM_I915_IRQ_EMIT 0x04 +#define DRM_I915_IRQ_WAIT 0x05 +#define DRM_I915_GETPARAM 0x06 +#define DRM_I915_SETPARAM 0x07 +#define DRM_I915_ALLOC 0x08 +#define DRM_I915_FREE 0x09 +#define DRM_I915_INIT_HEAP 0x0a +#define DRM_I915_CMDBUFFER 0x0b +#define DRM_I915_DESTROY_HEAP 0x0c +#define DRM_I915_SET_VBLANK_PIPE 0x0d +#define DRM_I915_GET_VBLANK_PIPE 0x0e +#define DRM_I915_VBLANK_SWAP 0x0f +#define DRM_I915_HWS_ADDR 0x11 +#define DRM_I915_GEM_INIT 0x13 +#define DRM_I915_GEM_EXECBUFFER 0x14 +#define DRM_I915_GEM_PIN 0x15 +#define DRM_I915_GEM_UNPIN 0x16 +#define DRM_I915_GEM_BUSY 0x17 +#define DRM_I915_GEM_THROTTLE 0x18 +#define DRM_I915_GEM_ENTERVT 0x19 +#define DRM_I915_GEM_LEAVEVT 0x1a +#define DRM_I915_GEM_CREATE 0x1b +#define DRM_I915_GEM_PREAD 0x1c +#define DRM_I915_GEM_PWRITE 0x1d +#define DRM_I915_GEM_MMAP 0x1e +#define DRM_I915_GEM_SET_DOMAIN 0x1f +#define DRM_I915_GEM_SW_FINISH 0x20 +#define DRM_I915_GEM_SET_TILING 0x21 +#define DRM_I915_GEM_GET_TILING 0x22 +#define DRM_I915_GEM_GET_APERTURE 0x23 +#define DRM_I915_GEM_MMAP_GTT 0x24 +#define DRM_I915_GET_PIPE_FROM_CRTC_ID 0x25 +#define DRM_I915_GEM_MADVISE 0x26 +#define DRM_I915_OVERLAY_PUT_IMAGE 0x27 +#define DRM_I915_OVERLAY_ATTRS 0x28 +#define DRM_I915_GEM_EXECBUFFER2 0x29 +#define DRM_I915_GET_SPRITE_COLORKEY 0x2a +#define DRM_I915_SET_SPRITE_COLORKEY 0x2b +#define DRM_I915_GEM_WAIT 0x2c +#define DRM_I915_GEM_CONTEXT_CREATE 0x2d +#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e +#define DRM_I915_GEM_SET_CACHING 0x2f +#define DRM_I915_GEM_GET_CACHING 0x30 +#define DRM_I915_REG_READ 0x31 + +#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) +#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) +#define DRM_IOCTL_I915_FLIP DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLIP) +#define DRM_IOCTL_I915_BATCHBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t) +#define DRM_IOCTL_I915_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t) +#define DRM_IOCTL_I915_IRQ_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t) +#define DRM_IOCTL_I915_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GETPARAM, drm_i915_getparam_t) +#define DRM_IOCTL_I915_SETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SETPARAM, drm_i915_setparam_t) +#define DRM_IOCTL_I915_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_ALLOC, drm_i915_mem_alloc_t) +#define DRM_IOCTL_I915_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_FREE, drm_i915_mem_free_t) +#define DRM_IOCTL_I915_INIT_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT_HEAP, drm_i915_mem_init_heap_t) +#define DRM_IOCTL_I915_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_I915_CMDBUFFER, drm_i915_cmdbuffer_t) +#define DRM_IOCTL_I915_DESTROY_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_I915_DESTROY_HEAP, drm_i915_mem_destroy_heap_t) +#define DRM_IOCTL_I915_SET_VBLANK_PIPE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t) +#define DRM_IOCTL_I915_GET_VBLANK_PIPE DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t) +#define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t) +#define DRM_IOCTL_I915_HWS_ADDR DRM_IOW(DRM_COMMAND_BASE + DRM_I915_HWS_ADDR, struct drm_i915_gem_init) +#define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init) +#define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer) +#define DRM_IOCTL_I915_GEM_EXECBUFFER2 DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2) +#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin) +#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin) +#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy) +#define DRM_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_SET_CACHING, struct drm_i915_gem_caching) +#define DRM_IOCTL_I915_GEM_GET_CACHING DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_GET_CACHING, struct drm_i915_gem_caching) +#define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE) +#define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT) +#define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT) +#define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create) +#define DRM_IOCTL_I915_GEM_PREAD DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread) +#define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite) +#define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap) +#define DRM_IOCTL_I915_GEM_MMAP_GTT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt) +#define DRM_IOCTL_I915_GEM_SET_DOMAIN DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain) +#define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish) +#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) +#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling) +#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) +#define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_i915_get_pipe_from_crtc_id) +#define DRM_IOCTL_I915_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MADVISE, struct drm_i915_gem_madvise) +#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_OVERLAY_PUT_IMAGE, struct drm_intel_overlay_put_image) +#define DRM_IOCTL_I915_OVERLAY_ATTRS DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_OVERLAY_ATTRS, struct drm_intel_overlay_attrs) +#define DRM_IOCTL_I915_SET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey) +#define DRM_IOCTL_I915_GET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey) +#define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait) +#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create) +#define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy) +#define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) + +/* Allow drivers to submit batchbuffers directly to hardware, relying + * on the security mechanisms provided by hardware. + */ +typedef struct drm_i915_batchbuffer { + int start; /* agp offset */ + int used; /* nr bytes in use */ + int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ + int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ + int num_cliprects; /* mulitpass with multiple cliprects? */ + struct drm_clip_rect *cliprects; /* pointer to userspace cliprects */ +} drm_i915_batchbuffer_t; + +/* As above, but pass a pointer to userspace buffer which can be + * validated by the kernel prior to sending to hardware. + */ +typedef struct _drm_i915_cmdbuffer { + char *buf; /* pointer to userspace command buffer */ + int sz; /* nr bytes in buf */ + int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ + int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ + int num_cliprects; /* mulitpass with multiple cliprects? */ + struct drm_clip_rect *cliprects; /* pointer to userspace cliprects */ +} drm_i915_cmdbuffer_t; + +/* Userspace can request & wait on irq's: + */ +typedef struct drm_i915_irq_emit { + int *irq_seq; +} drm_i915_irq_emit_t; + +typedef struct drm_i915_irq_wait { + int irq_seq; +} drm_i915_irq_wait_t; + +/* Ioctl to query kernel params: + */ +#define I915_PARAM_IRQ_ACTIVE 1 +#define I915_PARAM_ALLOW_BATCHBUFFER 2 +#define I915_PARAM_LAST_DISPATCH 3 +#define I915_PARAM_CHIPSET_ID 4 +#define I915_PARAM_HAS_GEM 5 +#define I915_PARAM_NUM_FENCES_AVAIL 6 +#define I915_PARAM_HAS_OVERLAY 7 +#define I915_PARAM_HAS_PAGEFLIPPING 8 +#define I915_PARAM_HAS_EXECBUF2 9 +#define I915_PARAM_HAS_BSD 10 +#define I915_PARAM_HAS_BLT 11 +#define I915_PARAM_HAS_RELAXED_FENCING 12 +#define I915_PARAM_HAS_COHERENT_RINGS 13 +#define I915_PARAM_HAS_EXEC_CONSTANTS 14 +#define I915_PARAM_HAS_RELAXED_DELTA 15 +#define I915_PARAM_HAS_GEN7_SOL_RESET 16 +#define I915_PARAM_HAS_LLC 17 +#define I915_PARAM_HAS_ALIASING_PPGTT 18 +#define I915_PARAM_HAS_WAIT_TIMEOUT 19 +#define I915_PARAM_HAS_SEMAPHORES 20 +#define I915_PARAM_HAS_PRIME_VMAP_FLUSH 21 +#define I915_PARAM_RSVD_FOR_FUTURE_USE 22 +#define I915_PARAM_HAS_SECURE_BATCHES 23 +#define I915_PARAM_HAS_PINNED_BATCHES 24 +#define I915_PARAM_HAS_EXEC_NO_RELOC 25 +#define I915_PARAM_HAS_EXEC_HANDLE_LUT 26 + +typedef struct drm_i915_getparam { + int param; + int *value; +} drm_i915_getparam_t; + +/* Ioctl to set kernel params: + */ +#define I915_SETPARAM_USE_MI_BATCHBUFFER_START 1 +#define I915_SETPARAM_TEX_LRU_LOG_GRANULARITY 2 +#define I915_SETPARAM_ALLOW_BATCHBUFFER 3 +#define I915_SETPARAM_NUM_USED_FENCES 4 + +typedef struct drm_i915_setparam { + int param; + int value; +} drm_i915_setparam_t; + +/* A memory manager for regions of shared memory: + */ +#define I915_MEM_REGION_AGP 1 + +typedef struct drm_i915_mem_alloc { + int region; + int alignment; + int size; + int *region_offset; /* offset from start of fb or agp */ +} drm_i915_mem_alloc_t; + +typedef struct drm_i915_mem_free { + int region; + int region_offset; +} drm_i915_mem_free_t; + +typedef struct drm_i915_mem_init_heap { + int region; + int size; + int start; +} drm_i915_mem_init_heap_t; + +/* Allow memory manager to be torn down and re-initialized (eg on + * rotate): + */ +typedef struct drm_i915_mem_destroy_heap { + int region; +} drm_i915_mem_destroy_heap_t; + +/* Allow X server to configure which pipes to monitor for vblank signals + */ +#define DRM_I915_VBLANK_PIPE_A 1 +#define DRM_I915_VBLANK_PIPE_B 2 + +typedef struct drm_i915_vblank_pipe { + int pipe; +} drm_i915_vblank_pipe_t; + +/* Schedule buffer swap at given vertical blank: + */ +typedef struct drm_i915_vblank_swap { + drm_drawable_t drawable; + enum drm_vblank_seq_type seqtype; + unsigned int sequence; +} drm_i915_vblank_swap_t; + +typedef struct drm_i915_hws_addr { + __u64 addr; +} drm_i915_hws_addr_t; + +struct drm_i915_gem_init { + /** + * Beginning offset in the GTT to be managed by the DRM memory + * manager. + */ + __u64 gtt_start; + /** + * Ending offset in the GTT to be managed by the DRM memory + * manager. + */ + __u64 gtt_end; +}; + +struct drm_i915_gem_create { + /** + * Requested size for the object. + * + * The (page-aligned) allocated size for the object will be returned. + */ + __u64 size; + /** + * Returned handle for the object. + * + * Object handles are nonzero. + */ + __u32 handle; + __u32 pad; +}; + +struct drm_i915_gem_pread { + /** Handle for the object being read. */ + __u32 handle; + __u32 pad; + /** Offset into the object to read from */ + __u64 offset; + /** Length of data to read */ + __u64 size; + /** + * Pointer to write the data into. + * + * This is a fixed-size type for 32/64 compatibility. + */ + __u64 data_ptr; +}; + +struct drm_i915_gem_pwrite { + /** Handle for the object being written to. */ + __u32 handle; + __u32 pad; + /** Offset into the object to write to */ + __u64 offset; + /** Length of data to write */ + __u64 size; + /** + * Pointer to read the data from. + * + * This is a fixed-size type for 32/64 compatibility. + */ + __u64 data_ptr; +}; + +struct drm_i915_gem_mmap { + /** Handle for the object being mapped. */ + __u32 handle; + __u32 pad; + /** Offset in the object to map. */ + __u64 offset; + /** + * Length of data to map. + * + * The value will be page-aligned. + */ + __u64 size; + /** + * Returned pointer the data was mapped at. + * + * This is a fixed-size type for 32/64 compatibility. + */ + __u64 addr_ptr; +}; + +struct drm_i915_gem_mmap_gtt { + /** Handle for the object being mapped. */ + __u32 handle; + __u32 pad; + /** + * Fake offset to use for subsequent mmap call + * + * This is a fixed-size type for 32/64 compatibility. + */ + __u64 offset; +}; + +struct drm_i915_gem_set_domain { + /** Handle for the object */ + __u32 handle; + + /** New read domains */ + __u32 read_domains; + + /** New write domain */ + __u32 write_domain; +}; + +struct drm_i915_gem_sw_finish { + /** Handle for the object */ + __u32 handle; +}; + +struct drm_i915_gem_relocation_entry { + /** + * Handle of the buffer being pointed to by this relocation entry. + * + * It's appealing to make this be an index into the mm_validate_entry + * list to refer to the buffer, but this allows the driver to create + * a relocation list for state buffers and not re-write it per + * exec using the buffer. + */ + __u32 target_handle; + + /** + * Value to be added to the offset of the target buffer to make up + * the relocation entry. + */ + __u32 delta; + + /** Offset in the buffer the relocation entry will be written into */ + __u64 offset; + + /** + * Offset value of the target buffer that the relocation entry was last + * written as. + * + * If the buffer has the same offset as last time, we can skip syncing + * and writing the relocation. This value is written back out by + * the execbuffer ioctl when the relocation is written. + */ + __u64 presumed_offset; + + /** + * Target memory domains read by this operation. + */ + __u32 read_domains; + + /** + * Target memory domains written by this operation. + * + * Note that only one domain may be written by the whole + * execbuffer operation, so that where there are conflicts, + * the application will get -EINVAL back. + */ + __u32 write_domain; +}; + +/** @{ + * Intel memory domains + * + * Most of these just align with the various caches in + * the system and are used to flush and invalidate as + * objects end up cached in different domains. + */ +/** CPU cache */ +#define I915_GEM_DOMAIN_CPU 0x00000001 +/** Render cache, used by 2D and 3D drawing */ +#define I915_GEM_DOMAIN_RENDER 0x00000002 +/** Sampler cache, used by texture engine */ +#define I915_GEM_DOMAIN_SAMPLER 0x00000004 +/** Command queue, used to load batch buffers */ +#define I915_GEM_DOMAIN_COMMAND 0x00000008 +/** Instruction cache, used by shader programs */ +#define I915_GEM_DOMAIN_INSTRUCTION 0x00000010 +/** Vertex address cache */ +#define I915_GEM_DOMAIN_VERTEX 0x00000020 +/** GTT domain - aperture and scanout */ +#define I915_GEM_DOMAIN_GTT 0x00000040 +/** @} */ + +struct drm_i915_gem_exec_object { + /** + * User's handle for a buffer to be bound into the GTT for this + * operation. + */ + __u32 handle; + + /** Number of relocations to be performed on this buffer */ + __u32 relocation_count; + /** + * Pointer to array of struct drm_i915_gem_relocation_entry containing + * the relocations to be performed in this buffer. + */ + __u64 relocs_ptr; + + /** Required alignment in graphics aperture */ + __u64 alignment; + + /** + * Returned value of the updated offset of the object, for future + * presumed_offset writes. + */ + __u64 offset; +}; + +struct drm_i915_gem_execbuffer { + /** + * List of buffers to be validated with their relocations to be + * performend on them. + * + * This is a pointer to an array of struct drm_i915_gem_validate_entry. + * + * These buffers must be listed in an order such that all relocations + * a buffer is performing refer to buffers that have already appeared + * in the validate list. + */ + __u64 buffers_ptr; + __u32 buffer_count; + + /** Offset in the batchbuffer to start execution from. */ + __u32 batch_start_offset; + /** Bytes used in batchbuffer from batch_start_offset */ + __u32 batch_len; + __u32 DR1; + __u32 DR4; + __u32 num_cliprects; + /** This is a struct drm_clip_rect *cliprects */ + __u64 cliprects_ptr; +}; + +struct drm_i915_gem_exec_object2 { + /** + * User's handle for a buffer to be bound into the GTT for this + * operation. + */ + __u32 handle; + + /** Number of relocations to be performed on this buffer */ + __u32 relocation_count; + /** + * Pointer to array of struct drm_i915_gem_relocation_entry containing + * the relocations to be performed in this buffer. + */ + __u64 relocs_ptr; + + /** Required alignment in graphics aperture */ + __u64 alignment; + + /** + * Returned value of the updated offset of the object, for future + * presumed_offset writes. + */ + __u64 offset; + +#define EXEC_OBJECT_NEEDS_FENCE (1<<0) +#define EXEC_OBJECT_NEEDS_GTT (1<<1) +#define EXEC_OBJECT_WRITE (1<<2) +#define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_WRITE<<1) + __u64 flags; + + __u64 rsvd1; + __u64 rsvd2; +}; + +struct drm_i915_gem_execbuffer2 { + /** + * List of gem_exec_object2 structs + */ + __u64 buffers_ptr; + __u32 buffer_count; + + /** Offset in the batchbuffer to start execution from. */ + __u32 batch_start_offset; + /** Bytes used in batchbuffer from batch_start_offset */ + __u32 batch_len; + __u32 DR1; + __u32 DR4; + __u32 num_cliprects; + /** This is a struct drm_clip_rect *cliprects */ + __u64 cliprects_ptr; +#define I915_EXEC_RING_MASK (7<<0) +#define I915_EXEC_DEFAULT (0<<0) +#define I915_EXEC_RENDER (1<<0) +#define I915_EXEC_BSD (2<<0) +#define I915_EXEC_BLT (3<<0) + +/* Used for switching the constants addressing mode on gen4+ RENDER ring. + * Gen6+ only supports relative addressing to dynamic state (default) and + * absolute addressing. + * + * These flags are ignored for the BSD and BLT rings. + */ +#define I915_EXEC_CONSTANTS_MASK (3<<6) +#define I915_EXEC_CONSTANTS_REL_GENERAL (0<<6) /* default */ +#define I915_EXEC_CONSTANTS_ABSOLUTE (1<<6) +#define I915_EXEC_CONSTANTS_REL_SURFACE (2<<6) /* gen4/5 only */ + __u64 flags; + __u64 rsvd1; /* now used for context info */ + __u64 rsvd2; +}; + +/** Resets the SO write offset registers for transform feedback on gen7. */ +#define I915_EXEC_GEN7_SOL_RESET (1<<8) + +/** Request a privileged ("secure") batch buffer. Note only available for + * DRM_ROOT_ONLY | DRM_MASTER processes. + */ +#define I915_EXEC_SECURE (1<<9) + +/** Inform the kernel that the batch is and will always be pinned. This + * negates the requirement for a workaround to be performed to avoid + * an incoherent CS (such as can be found on 830/845). If this flag is + * not passed, the kernel will endeavour to make sure the batch is + * coherent with the CS before execution. If this flag is passed, + * userspace assumes the responsibility for ensuring the same. + */ +#define I915_EXEC_IS_PINNED (1<<10) + +/** Provide a hint to the kernel that the command stream and auxilliary + * state buffers already holds the correct presumed addresses and so the + * relocation process may be skipped if no buffers need to be moved in + * preparation for the execbuffer. + */ +#define I915_EXEC_NO_RELOC (1<<11) + +/** Use the reloc.handle as an index into the exec object array rather + * than as the per-file handle. + */ +#define I915_EXEC_HANDLE_LUT (1<<12) + +#define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1) + +#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) +#define i915_execbuffer2_set_context_id(eb2, context) \ + (eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK +#define i915_execbuffer2_get_context_id(eb2) \ + ((eb2).rsvd1 & I915_EXEC_CONTEXT_ID_MASK) + +struct drm_i915_gem_pin { + /** Handle of the buffer to be pinned. */ + __u32 handle; + __u32 pad; + + /** alignment required within the aperture */ + __u64 alignment; + + /** Returned GTT offset of the buffer. */ + __u64 offset; +}; + +struct drm_i915_gem_unpin { + /** Handle of the buffer to be unpinned. */ + __u32 handle; + __u32 pad; +}; + +struct drm_i915_gem_busy { + /** Handle of the buffer to check for busy */ + __u32 handle; + + /** Return busy status (1 if busy, 0 if idle). + * The high word is used to indicate on which rings the object + * currently resides: + * 16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc) + */ + __u32 busy; +}; + +#define I915_CACHING_NONE 0 +#define I915_CACHING_CACHED 1 + +struct drm_i915_gem_caching { + /** + * Handle of the buffer to set/get the caching level of. */ + __u32 handle; + + /** + * Cacheing level to apply or return value + * + * bits0-15 are for generic caching control (i.e. the above defined + * values). bits16-31 are reserved for platform-specific variations + * (e.g. l3$ caching on gen7). */ + __u32 caching; +}; + +#define I915_TILING_NONE 0 +#define I915_TILING_X 1 +#define I915_TILING_Y 2 + +#define I915_BIT_6_SWIZZLE_NONE 0 +#define I915_BIT_6_SWIZZLE_9 1 +#define I915_BIT_6_SWIZZLE_9_10 2 +#define I915_BIT_6_SWIZZLE_9_11 3 +#define I915_BIT_6_SWIZZLE_9_10_11 4 +/* Not seen by userland */ +#define I915_BIT_6_SWIZZLE_UNKNOWN 5 +/* Seen by userland. */ +#define I915_BIT_6_SWIZZLE_9_17 6 +#define I915_BIT_6_SWIZZLE_9_10_17 7 + +struct drm_i915_gem_set_tiling { + /** Handle of the buffer to have its tiling state updated */ + __u32 handle; + + /** + * Tiling mode for the object (I915_TILING_NONE, I915_TILING_X, + * I915_TILING_Y). + * + * This value is to be set on request, and will be updated by the + * kernel on successful return with the actual chosen tiling layout. + * + * The tiling mode may be demoted to I915_TILING_NONE when the system + * has bit 6 swizzling that can't be managed correctly by GEM. + * + * Buffer contents become undefined when changing tiling_mode. + */ + __u32 tiling_mode; + + /** + * Stride in bytes for the object when in I915_TILING_X or + * I915_TILING_Y. + */ + __u32 stride; + + /** + * Returned address bit 6 swizzling required for CPU access through + * mmap mapping. + */ + __u32 swizzle_mode; +}; + +struct drm_i915_gem_get_tiling { + /** Handle of the buffer to get tiling state for. */ + __u32 handle; + + /** + * Current tiling mode for the object (I915_TILING_NONE, I915_TILING_X, + * I915_TILING_Y). + */ + __u32 tiling_mode; + + /** + * Returned address bit 6 swizzling required for CPU access through + * mmap mapping. + */ + __u32 swizzle_mode; +}; + +struct drm_i915_gem_get_aperture { + /** Total size of the aperture used by i915_gem_execbuffer, in bytes */ + __u64 aper_size; + + /** + * Available space in the aperture used by i915_gem_execbuffer, in + * bytes + */ + __u64 aper_available_size; +}; + +struct drm_i915_get_pipe_from_crtc_id { + /** ID of CRTC being requested **/ + __u32 crtc_id; + + /** pipe of requested CRTC **/ + __u32 pipe; +}; + +#define I915_MADV_WILLNEED 0 +#define I915_MADV_DONTNEED 1 +#define __I915_MADV_PURGED 2 /* internal state */ + +struct drm_i915_gem_madvise { + /** Handle of the buffer to change the backing store advice */ + __u32 handle; + + /* Advice: either the buffer will be needed again in the near future, + * or wont be and could be discarded under memory pressure. + */ + __u32 madv; + + /** Whether the backing store still exists. */ + __u32 retained; +}; + +/* flags */ +#define I915_OVERLAY_TYPE_MASK 0xff +#define I915_OVERLAY_YUV_PLANAR 0x01 +#define I915_OVERLAY_YUV_PACKED 0x02 +#define I915_OVERLAY_RGB 0x03 + +#define I915_OVERLAY_DEPTH_MASK 0xff00 +#define I915_OVERLAY_RGB24 0x1000 +#define I915_OVERLAY_RGB16 0x2000 +#define I915_OVERLAY_RGB15 0x3000 +#define I915_OVERLAY_YUV422 0x0100 +#define I915_OVERLAY_YUV411 0x0200 +#define I915_OVERLAY_YUV420 0x0300 +#define I915_OVERLAY_YUV410 0x0400 + +#define I915_OVERLAY_SWAP_MASK 0xff0000 +#define I915_OVERLAY_NO_SWAP 0x000000 +#define I915_OVERLAY_UV_SWAP 0x010000 +#define I915_OVERLAY_Y_SWAP 0x020000 +#define I915_OVERLAY_Y_AND_UV_SWAP 0x030000 + +#define I915_OVERLAY_FLAGS_MASK 0xff000000 +#define I915_OVERLAY_ENABLE 0x01000000 + +struct drm_intel_overlay_put_image { + /* various flags and src format description */ + __u32 flags; + /* source picture description */ + __u32 bo_handle; + /* stride values and offsets are in bytes, buffer relative */ + __u16 stride_Y; /* stride for packed formats */ + __u16 stride_UV; + __u32 offset_Y; /* offset for packet formats */ + __u32 offset_U; + __u32 offset_V; + /* in pixels */ + __u16 src_width; + __u16 src_height; + /* to compensate the scaling factors for partially covered surfaces */ + __u16 src_scan_width; + __u16 src_scan_height; + /* output crtc description */ + __u32 crtc_id; + __u16 dst_x; + __u16 dst_y; + __u16 dst_width; + __u16 dst_height; +}; + +/* flags */ +#define I915_OVERLAY_UPDATE_ATTRS (1<<0) +#define I915_OVERLAY_UPDATE_GAMMA (1<<1) +struct drm_intel_overlay_attrs { + __u32 flags; + __u32 color_key; + __s32 brightness; + __u32 contrast; + __u32 saturation; + __u32 gamma0; + __u32 gamma1; + __u32 gamma2; + __u32 gamma3; + __u32 gamma4; + __u32 gamma5; +}; + +/* + * Intel sprite handling + * + * Color keying works with a min/mask/max tuple. Both source and destination + * color keying is allowed. + * + * Source keying: + * Sprite pixels within the min & max values, masked against the color channels + * specified in the mask field, will be transparent. All other pixels will + * be displayed on top of the primary plane. For RGB surfaces, only the min + * and mask fields will be used; ranged compares are not allowed. + * + * Destination keying: + * Primary plane pixels that match the min value, masked against the color + * channels specified in the mask field, will be replaced by corresponding + * pixels from the sprite plane. + * + * Note that source & destination keying are exclusive; only one can be + * active on a given plane. + */ + +#define I915_SET_COLORKEY_NONE (1<<0) /* disable color key matching */ +#define I915_SET_COLORKEY_DESTINATION (1<<1) +#define I915_SET_COLORKEY_SOURCE (1<<2) +struct drm_intel_sprite_colorkey { + __u32 plane_id; + __u32 min_value; + __u32 channel_mask; + __u32 max_value; + __u32 flags; +}; + +struct drm_i915_gem_wait { + /** Handle of BO we shall wait on */ + __u32 bo_handle; + __u32 flags; + /** Number of nanoseconds to wait, Returns time remaining. */ + __s64 timeout_ns; +}; + +struct drm_i915_gem_context_create { + /* output: id of new context*/ + __u32 ctx_id; + __u32 pad; +}; + +struct drm_i915_gem_context_destroy { + __u32 ctx_id; + __u32 pad; +}; + +struct drm_i915_reg_read { + __u64 offset; + __u64 val; /* Return value */ +}; +#endif /* _I915_DRM_H_ */ diff --git a/kernel_headers/drm/kgsl_drm.h b/kernel_headers/drm/kgsl_drm.h new file mode 100644 index 0000000..3d8a4b7 --- /dev/null +++ b/kernel_headers/drm/kgsl_drm.h @@ -0,0 +1,233 @@ +#ifndef _KGSL_DRM_H_ +#define _KGSL_DRM_H_ + +#include "drm.h" + +#define DRM_KGSL_GEM_CREATE 0x00 +#define DRM_KGSL_GEM_PREP 0x01 +#define DRM_KGSL_GEM_SETMEMTYPE 0x02 +#define DRM_KGSL_GEM_GETMEMTYPE 0x03 +#define DRM_KGSL_GEM_MMAP 0x04 +#define DRM_KGSL_GEM_ALLOC 0x05 +#define DRM_KGSL_GEM_BIND_GPU 0x06 +#define DRM_KGSL_GEM_UNBIND_GPU 0x07 + +#define DRM_KGSL_GEM_GET_BUFINFO 0x08 +#define DRM_KGSL_GEM_SET_BUFCOUNT 0x09 +#define DRM_KGSL_GEM_SET_ACTIVE 0x0A +/* + * Do not use ioctl code 0x0B, 0x0C and 0x0D + * to maintain backward compatibility + */ +#define DRM_KGSL_GEM_CREATE_FD 0x0E +#define DRM_KGSL_GEM_GET_ION_FD 0x0F +#define DRM_KGSL_GEM_CREATE_FROM_ION 0x10 +#define DRM_KGSL_GEM_SET_GLOCK_HANDLES_INFO 0x11 +#define DRM_KGSL_GEM_GET_GLOCK_HANDLES_INFO 0x12 +#define DRM_KGSL_GEM_GET_BUFCOUNT 0x13 +#define DRM_KGSL_GEM_SET_USERDATA 0x14 +#define DRM_KGSL_GEM_GET_USERDATA 0x15 +#define DRM_KGSL_GEM_CACHE_OPS 0x16 + + +#define DRM_IOCTL_KGSL_GEM_CREATE \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE, struct drm_kgsl_gem_create) + +#define DRM_IOCTL_KGSL_GEM_PREP \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_PREP, struct drm_kgsl_gem_prep) + +#define DRM_IOCTL_KGSL_GEM_SETMEMTYPE \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SETMEMTYPE, \ +struct drm_kgsl_gem_memtype) + +#define DRM_IOCTL_KGSL_GEM_GETMEMTYPE \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GETMEMTYPE, \ +struct drm_kgsl_gem_memtype) + +#define DRM_IOCTL_KGSL_GEM_MMAP \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_MMAP, struct drm_kgsl_gem_mmap) + +#define DRM_IOCTL_KGSL_GEM_ALLOC \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_ALLOC, struct drm_kgsl_gem_alloc) + +#define DRM_IOCTL_KGSL_GEM_BIND_GPU \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_BIND_GPU, struct drm_kgsl_gem_bind_gpu) + +#define DRM_IOCTL_KGSL_GEM_UNBIND_GPU \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNBIND_GPU, \ +struct drm_kgsl_gem_bind_gpu) + +#define DRM_IOCTL_KGSL_GEM_GET_BUFINFO \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_BUFINFO, \ + struct drm_kgsl_gem_bufinfo) + +#define DRM_IOCTL_KGSL_GEM_SET_BUFCOUNT \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_BUFCOUNT, \ + struct drm_kgsl_gem_bufcount) + +#define DRM_IOCTL_KGSL_GEM_GET_BUFCOUNT \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_BUFCOUNT, \ + struct drm_kgsl_gem_bufcount) + +#define DRM_IOCTL_KGSL_GEM_SET_ACTIVE \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_ACTIVE, \ + struct drm_kgsl_gem_active) + +#define DRM_IOCTL_KGSL_GEM_CREATE_FD \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE_FD, \ +struct drm_kgsl_gem_create_fd) + +#define DRM_IOCTL_KGSL_GEM_GET_ION_FD \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_ION_FD, \ +struct drm_kgsl_gem_get_ion_fd) + +#define DRM_IOCTL_KGSL_GEM_CREATE_FROM_ION \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE_FROM_ION, \ +struct drm_kgsl_gem_create_from_ion) + +#define DRM_IOCTL_KGSL_GEM_SET_GLOCK_HANDLES_INFO \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_GLOCK_HANDLES_INFO, \ +struct drm_kgsl_gem_glockinfo) + +#define DRM_IOCTL_KGSL_GEM_GET_GLOCK_HANDLES_INFO \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_GLOCK_HANDLES_INFO, \ +struct drm_kgsl_gem_glockinfo) + +#define DRM_IOCTL_KGSL_GEM_SET_USERDATA \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_USERDATA, \ +struct drm_kgsl_gem_userdata) + +#define DRM_IOCTL_KGSL_GEM_GET_USERDATA \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_USERDATA, \ +struct drm_kgsl_gem_userdata) + +#define DRM_IOCTL_KGSL_GEM_CACHE_OPS \ +DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CACHE_OPS, \ +struct drm_kgsl_gem_cache_ops) + + +/* Maximum number of sub buffers per GEM object */ +#define DRM_KGSL_GEM_MAX_BUFFERS 3 + +/* Memory types - these define the source and caching policies + of the GEM memory chunk */ + +/* Legacy definitions left for compatability */ + +#define DRM_KGSL_GEM_TYPE_EBI 0 +#define DRM_KGSL_GEM_TYPE_SMI 1 +#define DRM_KGSL_GEM_TYPE_KMEM 2 +#define DRM_KGSL_GEM_TYPE_KMEM_NOCACHE 3 +#define DRM_KGSL_GEM_TYPE_MEM_SECURE 4 +#define DRM_KGSL_GEM_TYPE_MEM_MASK 0xF + +/* Contiguous memory (PMEM) */ +#define DRM_KGSL_GEM_TYPE_PMEM 0x000100 + +/* PMEM memory types */ +#define DRM_KGSL_GEM_PMEM_EBI 0x001000 +#define DRM_KGSL_GEM_PMEM_SMI 0x002000 + +/* Standard paged memory */ +#define DRM_KGSL_GEM_TYPE_MEM 0x010000 + +/* Secure memory */ + +/* Caching controls */ +#define DRM_KGSL_GEM_CACHE_NONE 0x000000 +#define DRM_KGSL_GEM_CLEAN_CACHES 0x100000 +#define DRM_KGSL_GEM_INV_CACHES 0x200000 +#define DRM_KGSL_GEM_CLEAN_INV_CACHES 0x400000 +#define DRM_KGSL_GEM_CACHE_MASK 0xF00000 + + + + +/* FD based objects */ +#define DRM_KGSL_GEM_TYPE_FD_FBMEM 0x1000000 +#define DRM_KGSL_GEM_TYPE_FD_MASK 0xF000000 + +struct drm_kgsl_gem_create { + uint32_t size; + uint32_t handle; +}; + +struct drm_kgsl_gem_prep { + uint32_t handle; + uint32_t phys; + uint64_t offset; +}; + +struct drm_kgsl_gem_memtype { + uint32_t handle; + uint32_t type; +}; + +struct drm_kgsl_gem_mmap { + uint32_t handle; + uint32_t size; + uint32_t hostptr; + uint64_t offset; +}; + +struct drm_kgsl_gem_alloc { + uint32_t handle; + uint64_t offset; +}; + +struct drm_kgsl_gem_bind_gpu { + uint32_t handle; + uint32_t gpuptr; +}; + +struct drm_kgsl_gem_bufinfo { + uint32_t handle; + uint32_t count; + uint32_t active; + uint32_t offset[DRM_KGSL_GEM_MAX_BUFFERS]; + uint32_t gpuaddr[DRM_KGSL_GEM_MAX_BUFFERS]; +}; + +struct drm_kgsl_gem_glockinfo { + uint32_t handle; + int glockhandle[DRM_KGSL_GEM_MAX_BUFFERS]; +}; + +struct drm_kgsl_gem_bufcount { + uint32_t handle; + uint32_t bufcount; +}; + +struct drm_kgsl_gem_active { + uint32_t handle; + uint32_t active; +}; + +struct drm_kgsl_gem_create_fd { + uint32_t fd; + uint32_t handle; +}; + +struct drm_kgsl_gem_get_ion_fd { + uint32_t ion_fd; + uint32_t handle; +}; + +struct drm_kgsl_gem_create_from_ion { + uint32_t ion_fd; + uint32_t handle; +}; + +struct drm_kgsl_gem_userdata { + uint32_t priv_data; + uint32_t handle; +}; + +struct drm_kgsl_gem_cache_ops { + uint32_t flags; + uint32_t handle; + void *vaddr; + uint32_t length; +}; + +#endif diff --git a/kernel_headers/drm/mga_drm.h b/kernel_headers/drm/mga_drm.h new file mode 100644 index 0000000..ac95c62 --- /dev/null +++ b/kernel_headers/drm/mga_drm.h @@ -0,0 +1,419 @@ +/* mga_drm.h -- Public header for the Matrox g200/g400 driver -*- linux-c -*- + * Created: Tue Jan 25 01:50:01 1999 by jhartmann@precisioninsight.com + * + * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + * Jeff Hartmann + * Keith Whitwell + * + * Rewritten by: + * Gareth Hughes + */ + +#ifndef __MGA_DRM_H__ +#define __MGA_DRM_H__ + +#include + +/* WARNING: If you change any of these defines, make sure to change the + * defines in the Xserver file (mga_sarea.h) + */ + +#ifndef __MGA_SAREA_DEFINES__ +#define __MGA_SAREA_DEFINES__ + +/* WARP pipe flags + */ +#define MGA_F 0x1 /* fog */ +#define MGA_A 0x2 /* alpha */ +#define MGA_S 0x4 /* specular */ +#define MGA_T2 0x8 /* multitexture */ + +#define MGA_WARP_TGZ 0 +#define MGA_WARP_TGZF (MGA_F) +#define MGA_WARP_TGZA (MGA_A) +#define MGA_WARP_TGZAF (MGA_F|MGA_A) +#define MGA_WARP_TGZS (MGA_S) +#define MGA_WARP_TGZSF (MGA_S|MGA_F) +#define MGA_WARP_TGZSA (MGA_S|MGA_A) +#define MGA_WARP_TGZSAF (MGA_S|MGA_F|MGA_A) +#define MGA_WARP_T2GZ (MGA_T2) +#define MGA_WARP_T2GZF (MGA_T2|MGA_F) +#define MGA_WARP_T2GZA (MGA_T2|MGA_A) +#define MGA_WARP_T2GZAF (MGA_T2|MGA_A|MGA_F) +#define MGA_WARP_T2GZS (MGA_T2|MGA_S) +#define MGA_WARP_T2GZSF (MGA_T2|MGA_S|MGA_F) +#define MGA_WARP_T2GZSA (MGA_T2|MGA_S|MGA_A) +#define MGA_WARP_T2GZSAF (MGA_T2|MGA_S|MGA_F|MGA_A) + +#define MGA_MAX_G200_PIPES 8 /* no multitex */ +#define MGA_MAX_G400_PIPES 16 +#define MGA_MAX_WARP_PIPES MGA_MAX_G400_PIPES +#define MGA_WARP_UCODE_SIZE 32768 /* in bytes */ + +#define MGA_CARD_TYPE_G200 1 +#define MGA_CARD_TYPE_G400 2 +#define MGA_CARD_TYPE_G450 3 /* not currently used */ +#define MGA_CARD_TYPE_G550 4 + +#define MGA_FRONT 0x1 +#define MGA_BACK 0x2 +#define MGA_DEPTH 0x4 + +/* What needs to be changed for the current vertex dma buffer? + */ +#define MGA_UPLOAD_CONTEXT 0x1 +#define MGA_UPLOAD_TEX0 0x2 +#define MGA_UPLOAD_TEX1 0x4 +#define MGA_UPLOAD_PIPE 0x8 +#define MGA_UPLOAD_TEX0IMAGE 0x10 /* handled client-side */ +#define MGA_UPLOAD_TEX1IMAGE 0x20 /* handled client-side */ +#define MGA_UPLOAD_2D 0x40 +#define MGA_WAIT_AGE 0x80 /* handled client-side */ +#define MGA_UPLOAD_CLIPRECTS 0x100 /* handled client-side */ +#if 0 +#define MGA_DMA_FLUSH 0x200 /* set when someone gets the lock + quiescent */ +#endif + +/* 32 buffers of 64k each, total 2 meg. + */ +#define MGA_BUFFER_SIZE (1 << 16) +#define MGA_NUM_BUFFERS 128 + +/* Keep these small for testing. + */ +#define MGA_NR_SAREA_CLIPRECTS 8 + +/* 2 heaps (1 for card, 1 for agp), each divided into up to 128 + * regions, subject to a minimum region size of (1<<16) == 64k. + * + * Clients may subdivide regions internally, but when sharing between + * clients, the region size is the minimum granularity. + */ + +#define MGA_CARD_HEAP 0 +#define MGA_AGP_HEAP 1 +#define MGA_NR_TEX_HEAPS 2 +#define MGA_NR_TEX_REGIONS 16 +#define MGA_LOG_MIN_TEX_REGION_SIZE 16 + +#define DRM_MGA_IDLE_RETRY 2048 + +#endif /* __MGA_SAREA_DEFINES__ */ + +/* Setup registers for 3D context + */ +typedef struct { + unsigned int dstorg; + unsigned int maccess; + unsigned int plnwt; + unsigned int dwgctl; + unsigned int alphactrl; + unsigned int fogcolor; + unsigned int wflag; + unsigned int tdualstage0; + unsigned int tdualstage1; + unsigned int fcol; + unsigned int stencil; + unsigned int stencilctl; +} drm_mga_context_regs_t; + +/* Setup registers for 2D, X server + */ +typedef struct { + unsigned int pitch; +} drm_mga_server_regs_t; + +/* Setup registers for each texture unit + */ +typedef struct { + unsigned int texctl; + unsigned int texctl2; + unsigned int texfilter; + unsigned int texbordercol; + unsigned int texorg; + unsigned int texwidth; + unsigned int texheight; + unsigned int texorg1; + unsigned int texorg2; + unsigned int texorg3; + unsigned int texorg4; +} drm_mga_texture_regs_t; + +/* General aging mechanism + */ +typedef struct { + unsigned int head; /* Position of head pointer */ + unsigned int wrap; /* Primary DMA wrap count */ +} drm_mga_age_t; + +typedef struct _drm_mga_sarea { + /* The channel for communication of state information to the kernel + * on firing a vertex dma buffer. + */ + drm_mga_context_regs_t context_state; + drm_mga_server_regs_t server_state; + drm_mga_texture_regs_t tex_state[2]; + unsigned int warp_pipe; + unsigned int dirty; + unsigned int vertsize; + + /* The current cliprects, or a subset thereof. + */ + struct drm_clip_rect boxes[MGA_NR_SAREA_CLIPRECTS]; + unsigned int nbox; + + /* Information about the most recently used 3d drawable. The + * client fills in the req_* fields, the server fills in the + * exported_ fields and puts the cliprects into boxes, above. + * + * The client clears the exported_drawable field before + * clobbering the boxes data. + */ + unsigned int req_drawable; /* the X drawable id */ + unsigned int req_draw_buffer; /* MGA_FRONT or MGA_BACK */ + + unsigned int exported_drawable; + unsigned int exported_index; + unsigned int exported_stamp; + unsigned int exported_buffers; + unsigned int exported_nfront; + unsigned int exported_nback; + int exported_back_x, exported_front_x, exported_w; + int exported_back_y, exported_front_y, exported_h; + struct drm_clip_rect exported_boxes[MGA_NR_SAREA_CLIPRECTS]; + + /* Counters for aging textures and for client-side throttling. + */ + unsigned int status[4]; + unsigned int last_wrap; + + drm_mga_age_t last_frame; + unsigned int last_enqueue; /* last time a buffer was enqueued */ + unsigned int last_dispatch; /* age of the most recently dispatched buffer */ + unsigned int last_quiescent; /* */ + + /* LRU lists for texture memory in agp space and on the card. + */ + struct drm_tex_region texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1]; + unsigned int texAge[MGA_NR_TEX_HEAPS]; + + /* Mechanism to validate card state. + */ + int ctxOwner; +} drm_mga_sarea_t; + +/* MGA specific ioctls + * The device specific ioctl range is 0x40 to 0x79. + */ +#define DRM_MGA_INIT 0x00 +#define DRM_MGA_FLUSH 0x01 +#define DRM_MGA_RESET 0x02 +#define DRM_MGA_SWAP 0x03 +#define DRM_MGA_CLEAR 0x04 +#define DRM_MGA_VERTEX 0x05 +#define DRM_MGA_INDICES 0x06 +#define DRM_MGA_ILOAD 0x07 +#define DRM_MGA_BLIT 0x08 +#define DRM_MGA_GETPARAM 0x09 + +/* 3.2: + * ioctls for operating on fences. + */ +#define DRM_MGA_SET_FENCE 0x0a +#define DRM_MGA_WAIT_FENCE 0x0b +#define DRM_MGA_DMA_BOOTSTRAP 0x0c + +#define DRM_IOCTL_MGA_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INIT, drm_mga_init_t) +#define DRM_IOCTL_MGA_FLUSH DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_FLUSH, struct drm_lock) +#define DRM_IOCTL_MGA_RESET DRM_IO( DRM_COMMAND_BASE + DRM_MGA_RESET) +#define DRM_IOCTL_MGA_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_MGA_SWAP) +#define DRM_IOCTL_MGA_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_CLEAR, drm_mga_clear_t) +#define DRM_IOCTL_MGA_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_VERTEX, drm_mga_vertex_t) +#define DRM_IOCTL_MGA_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INDICES, drm_mga_indices_t) +#define DRM_IOCTL_MGA_ILOAD DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_ILOAD, drm_mga_iload_t) +#define DRM_IOCTL_MGA_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_BLIT, drm_mga_blit_t) +#define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_GETPARAM, drm_mga_getparam_t) +#define DRM_IOCTL_MGA_SET_FENCE DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_SET_FENCE, __u32) +#define DRM_IOCTL_MGA_WAIT_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_WAIT_FENCE, __u32) +#define DRM_IOCTL_MGA_DMA_BOOTSTRAP DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_DMA_BOOTSTRAP, drm_mga_dma_bootstrap_t) + +typedef struct _drm_mga_warp_index { + int installed; + unsigned long phys_addr; + int size; +} drm_mga_warp_index_t; + +typedef struct drm_mga_init { + enum { + MGA_INIT_DMA = 0x01, + MGA_CLEANUP_DMA = 0x02 + } func; + + unsigned long sarea_priv_offset; + + int chipset; + int sgram; + + unsigned int maccess; + + unsigned int fb_cpp; + unsigned int front_offset, front_pitch; + unsigned int back_offset, back_pitch; + + unsigned int depth_cpp; + unsigned int depth_offset, depth_pitch; + + unsigned int texture_offset[MGA_NR_TEX_HEAPS]; + unsigned int texture_size[MGA_NR_TEX_HEAPS]; + + unsigned long fb_offset; + unsigned long mmio_offset; + unsigned long status_offset; + unsigned long warp_offset; + unsigned long primary_offset; + unsigned long buffers_offset; +} drm_mga_init_t; + +typedef struct drm_mga_dma_bootstrap { + /** + * \name AGP texture region + * + * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, these fields will + * be filled in with the actual AGP texture settings. + * + * \warning + * If these fields are non-zero, but dma_mga_dma_bootstrap::agp_mode + * is zero, it means that PCI memory (most likely through the use of + * an IOMMU) is being used for "AGP" textures. + */ + /*@{ */ + unsigned long texture_handle; /**< Handle used to map AGP textures. */ + __u32 texture_size; /**< Size of the AGP texture region. */ + /*@} */ + + /** + * Requested size of the primary DMA region. + * + * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be + * filled in with the actual AGP mode. If AGP was not available + */ + __u32 primary_size; + + /** + * Requested number of secondary DMA buffers. + * + * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be + * filled in with the actual number of secondary DMA buffers + * allocated. Particularly when PCI DMA is used, this may be + * (subtantially) less than the number requested. + */ + __u32 secondary_bin_count; + + /** + * Requested size of each secondary DMA buffer. + * + * While the kernel \b is free to reduce + * dma_mga_dma_bootstrap::secondary_bin_count, it is \b not allowed + * to reduce dma_mga_dma_bootstrap::secondary_bin_size. + */ + __u32 secondary_bin_size; + + /** + * Bit-wise mask of AGPSTAT2_* values. Currently only \c AGPSTAT2_1X, + * \c AGPSTAT2_2X, and \c AGPSTAT2_4X are supported. If this value is + * zero, it means that PCI DMA should be used, even if AGP is + * possible. + * + * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be + * filled in with the actual AGP mode. If AGP was not available + * (i.e., PCI DMA was used), this value will be zero. + */ + __u32 agp_mode; + + /** + * Desired AGP GART size, measured in megabytes. + */ + __u8 agp_size; +} drm_mga_dma_bootstrap_t; + +typedef struct drm_mga_clear { + unsigned int flags; + unsigned int clear_color; + unsigned int clear_depth; + unsigned int color_mask; + unsigned int depth_mask; +} drm_mga_clear_t; + +typedef struct drm_mga_vertex { + int idx; /* buffer to queue */ + int used; /* bytes in use */ + int discard; /* client finished with buffer? */ +} drm_mga_vertex_t; + +typedef struct drm_mga_indices { + int idx; /* buffer to queue */ + unsigned int start; + unsigned int end; + int discard; /* client finished with buffer? */ +} drm_mga_indices_t; + +typedef struct drm_mga_iload { + int idx; + unsigned int dstorg; + unsigned int length; +} drm_mga_iload_t; + +typedef struct _drm_mga_blit { + unsigned int planemask; + unsigned int srcorg; + unsigned int dstorg; + int src_pitch, dst_pitch; + int delta_sx, delta_sy; + int delta_dx, delta_dy; + int height, ydir; /* flip image vertically */ + int source_pitch, dest_pitch; +} drm_mga_blit_t; + +/* 3.1: An ioctl to get parameters that aren't available to the 3d + * client any other way. + */ +#define MGA_PARAM_IRQ_NR 1 + +/* 3.2: Query the actual card type. The DDX only distinguishes between + * G200 chips and non-G200 chips, which it calls G400. It turns out that + * there are some very sublte differences between the G4x0 chips and the G550 + * chips. Using this parameter query, a client-side driver can detect the + * difference between a G4x0 and a G550. + */ +#define MGA_PARAM_CARD_TYPE 2 + +typedef struct drm_mga_getparam { + int param; + void *value; +} drm_mga_getparam_t; + +#endif diff --git a/kernel_headers/drm/nouveau_drm.h b/kernel_headers/drm/nouveau_drm.h new file mode 100644 index 0000000..2a5769f --- /dev/null +++ b/kernel_headers/drm/nouveau_drm.h @@ -0,0 +1,138 @@ +/* + * Copyright 2005 Stephane Marchesin. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef __NOUVEAU_DRM_H__ +#define __NOUVEAU_DRM_H__ + +#define NOUVEAU_GEM_DOMAIN_CPU (1 << 0) +#define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1) +#define NOUVEAU_GEM_DOMAIN_GART (1 << 2) +#define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3) + +#define NOUVEAU_GEM_TILE_COMP 0x00030000 /* nv50-only */ +#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00 +#define NOUVEAU_GEM_TILE_16BPP 0x00000001 +#define NOUVEAU_GEM_TILE_32BPP 0x00000002 +#define NOUVEAU_GEM_TILE_ZETA 0x00000004 +#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008 + +struct drm_nouveau_gem_info { + uint32_t handle; + uint32_t domain; + uint64_t size; + uint64_t offset; + uint64_t map_handle; + uint32_t tile_mode; + uint32_t tile_flags; +}; + +struct drm_nouveau_gem_new { + struct drm_nouveau_gem_info info; + uint32_t channel_hint; + uint32_t align; +}; + +#define NOUVEAU_GEM_MAX_BUFFERS 1024 +struct drm_nouveau_gem_pushbuf_bo_presumed { + uint32_t valid; + uint32_t domain; + uint64_t offset; +}; + +struct drm_nouveau_gem_pushbuf_bo { + uint64_t user_priv; + uint32_t handle; + uint32_t read_domains; + uint32_t write_domains; + uint32_t valid_domains; + struct drm_nouveau_gem_pushbuf_bo_presumed presumed; +}; + +#define NOUVEAU_GEM_RELOC_LOW (1 << 0) +#define NOUVEAU_GEM_RELOC_HIGH (1 << 1) +#define NOUVEAU_GEM_RELOC_OR (1 << 2) +#define NOUVEAU_GEM_MAX_RELOCS 1024 +struct drm_nouveau_gem_pushbuf_reloc { + uint32_t reloc_bo_index; + uint32_t reloc_bo_offset; + uint32_t bo_index; + uint32_t flags; + uint32_t data; + uint32_t vor; + uint32_t tor; +}; + +#define NOUVEAU_GEM_MAX_PUSH 512 +struct drm_nouveau_gem_pushbuf_push { + uint32_t bo_index; + uint32_t pad; + uint64_t offset; + uint64_t length; +}; + +struct drm_nouveau_gem_pushbuf { + uint32_t channel; + uint32_t nr_buffers; + uint64_t buffers; + uint32_t nr_relocs; + uint32_t nr_push; + uint64_t relocs; + uint64_t push; + uint32_t suffix0; + uint32_t suffix1; + uint64_t vram_available; + uint64_t gart_available; +}; + +#define NOUVEAU_GEM_CPU_PREP_NOWAIT 0x00000001 +#define NOUVEAU_GEM_CPU_PREP_WRITE 0x00000004 +struct drm_nouveau_gem_cpu_prep { + uint32_t handle; + uint32_t flags; +}; + +struct drm_nouveau_gem_cpu_fini { + uint32_t handle; +}; + +#define DRM_NOUVEAU_GETPARAM 0x00 /* deprecated */ +#define DRM_NOUVEAU_SETPARAM 0x01 /* deprecated */ +#define DRM_NOUVEAU_CHANNEL_ALLOC 0x02 /* deprecated */ +#define DRM_NOUVEAU_CHANNEL_FREE 0x03 /* deprecated */ +#define DRM_NOUVEAU_GROBJ_ALLOC 0x04 /* deprecated */ +#define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC 0x05 /* deprecated */ +#define DRM_NOUVEAU_GPUOBJ_FREE 0x06 /* deprecated */ +#define DRM_NOUVEAU_GEM_NEW 0x40 +#define DRM_NOUVEAU_GEM_PUSHBUF 0x41 +#define DRM_NOUVEAU_GEM_CPU_PREP 0x42 +#define DRM_NOUVEAU_GEM_CPU_FINI 0x43 +#define DRM_NOUVEAU_GEM_INFO 0x44 + +#define DRM_IOCTL_NOUVEAU_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_NEW, struct drm_nouveau_gem_new) +#define DRM_IOCTL_NOUVEAU_GEM_PUSHBUF DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_PUSHBUF, struct drm_nouveau_gem_pushbuf) +#define DRM_IOCTL_NOUVEAU_GEM_CPU_PREP DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_PREP, struct drm_nouveau_gem_cpu_prep) +#define DRM_IOCTL_NOUVEAU_GEM_CPU_FINI DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_FINI, struct drm_nouveau_gem_cpu_fini) +#define DRM_IOCTL_NOUVEAU_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_INFO, struct drm_nouveau_gem_info) + +#endif /* __NOUVEAU_DRM_H__ */ diff --git a/kernel_headers/drm/qxl_drm.h b/kernel_headers/drm/qxl_drm.h new file mode 100644 index 0000000..5d7de70 --- /dev/null +++ b/kernel_headers/drm/qxl_drm.h @@ -0,0 +1,152 @@ +/* + * Copyright 2013 Red Hat + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef QXL_DRM_H +#define QXL_DRM_H + +#include +#include "drm/drm.h" + +/* Please note that modifications to all structs defined here are + * subject to backwards-compatibility constraints. + * + * Do not use pointers, use uint64_t instead for 32 bit / 64 bit user/kernel + * compatibility Keep fields aligned to their size + */ + +#define QXL_GEM_DOMAIN_CPU 0 +#define QXL_GEM_DOMAIN_VRAM 1 +#define QXL_GEM_DOMAIN_SURFACE 2 + +#define DRM_QXL_ALLOC 0x00 +#define DRM_QXL_MAP 0x01 +#define DRM_QXL_EXECBUFFER 0x02 +#define DRM_QXL_UPDATE_AREA 0x03 +#define DRM_QXL_GETPARAM 0x04 +#define DRM_QXL_CLIENTCAP 0x05 + +#define DRM_QXL_ALLOC_SURF 0x06 + +struct drm_qxl_alloc { + uint32_t size; + uint32_t handle; /* 0 is an invalid handle */ +}; + +struct drm_qxl_map { + uint64_t offset; /* use for mmap system call */ + uint32_t handle; + uint32_t pad; +}; + +/* + * dest is the bo we are writing the relocation into + * src is bo we are relocating. + * *(dest_handle.base_addr + dest_offset) = physical_address(src_handle.addr + + * src_offset) + */ +#define QXL_RELOC_TYPE_BO 1 +#define QXL_RELOC_TYPE_SURF 2 + +struct drm_qxl_reloc { + uint64_t src_offset; /* offset into src_handle or src buffer */ + uint64_t dst_offset; /* offset in dest handle */ + uint32_t src_handle; /* dest handle to compute address from */ + uint32_t dst_handle; /* 0 if to command buffer */ + uint32_t reloc_type; + uint32_t pad; +}; + +struct drm_qxl_command { + uint64_t command; /* void* */ + uint64_t relocs; /* struct drm_qxl_reloc* */ + uint32_t type; + uint32_t command_size; + uint32_t relocs_num; + uint32_t pad; +}; + +/* XXX: call it drm_qxl_commands? */ +struct drm_qxl_execbuffer { + uint32_t flags; /* for future use */ + uint32_t commands_num; + uint64_t commands; /* struct drm_qxl_command* */ +}; + +struct drm_qxl_update_area { + uint32_t handle; + uint32_t top; + uint32_t left; + uint32_t bottom; + uint32_t right; + uint32_t pad; +}; + +#define QXL_PARAM_NUM_SURFACES 1 /* rom->n_surfaces */ +#define QXL_PARAM_MAX_RELOCS 2 +struct drm_qxl_getparam { + uint64_t param; + uint64_t value; +}; + +/* these are one bit values */ +struct drm_qxl_clientcap { + uint32_t index; + uint32_t pad; +}; + +struct drm_qxl_alloc_surf { + uint32_t format; + uint32_t width; + uint32_t height; + int32_t stride; + uint32_t handle; + uint32_t pad; +}; + +#define DRM_IOCTL_QXL_ALLOC \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC, struct drm_qxl_alloc) + +#define DRM_IOCTL_QXL_MAP \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_MAP, struct drm_qxl_map) + +#define DRM_IOCTL_QXL_EXECBUFFER \ + DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_EXECBUFFER,\ + struct drm_qxl_execbuffer) + +#define DRM_IOCTL_QXL_UPDATE_AREA \ + DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_UPDATE_AREA,\ + struct drm_qxl_update_area) + +#define DRM_IOCTL_QXL_GETPARAM \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_GETPARAM,\ + struct drm_qxl_getparam) + +#define DRM_IOCTL_QXL_CLIENTCAP \ + DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_CLIENTCAP,\ + struct drm_qxl_clientcap) + +#define DRM_IOCTL_QXL_ALLOC_SURF \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC_SURF,\ + struct drm_qxl_alloc_surf) + +#endif diff --git a/kernel_headers/drm/r128_drm.h b/kernel_headers/drm/r128_drm.h new file mode 100644 index 0000000..ede78ff --- /dev/null +++ b/kernel_headers/drm/r128_drm.h @@ -0,0 +1,326 @@ +/* r128_drm.h -- Public header for the r128 driver -*- linux-c -*- + * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com + */ +/* + * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Authors: + * Gareth Hughes + * Kevin E. Martin + */ + +#ifndef __R128_DRM_H__ +#define __R128_DRM_H__ + +/* WARNING: If you change any of these defines, make sure to change the + * defines in the X server file (r128_sarea.h) + */ +#ifndef __R128_SAREA_DEFINES__ +#define __R128_SAREA_DEFINES__ + +/* What needs to be changed for the current vertex buffer? + */ +#define R128_UPLOAD_CONTEXT 0x001 +#define R128_UPLOAD_SETUP 0x002 +#define R128_UPLOAD_TEX0 0x004 +#define R128_UPLOAD_TEX1 0x008 +#define R128_UPLOAD_TEX0IMAGES 0x010 +#define R128_UPLOAD_TEX1IMAGES 0x020 +#define R128_UPLOAD_CORE 0x040 +#define R128_UPLOAD_MASKS 0x080 +#define R128_UPLOAD_WINDOW 0x100 +#define R128_UPLOAD_CLIPRECTS 0x200 /* handled client-side */ +#define R128_REQUIRE_QUIESCENCE 0x400 +#define R128_UPLOAD_ALL 0x7ff + +#define R128_FRONT 0x1 +#define R128_BACK 0x2 +#define R128_DEPTH 0x4 + +/* Primitive types + */ +#define R128_POINTS 0x1 +#define R128_LINES 0x2 +#define R128_LINE_STRIP 0x3 +#define R128_TRIANGLES 0x4 +#define R128_TRIANGLE_FAN 0x5 +#define R128_TRIANGLE_STRIP 0x6 + +/* Vertex/indirect buffer size + */ +#define R128_BUFFER_SIZE 16384 + +/* Byte offsets for indirect buffer data + */ +#define R128_INDEX_PRIM_OFFSET 20 +#define R128_HOSTDATA_BLIT_OFFSET 32 + +/* Keep these small for testing. + */ +#define R128_NR_SAREA_CLIPRECTS 12 + +/* There are 2 heaps (local/AGP). Each region within a heap is a + * minimum of 64k, and there are at most 64 of them per heap. + */ +#define R128_LOCAL_TEX_HEAP 0 +#define R128_AGP_TEX_HEAP 1 +#define R128_NR_TEX_HEAPS 2 +#define R128_NR_TEX_REGIONS 64 +#define R128_LOG_TEX_GRANULARITY 16 + +#define R128_NR_CONTEXT_REGS 12 + +#define R128_MAX_TEXTURE_LEVELS 11 +#define R128_MAX_TEXTURE_UNITS 2 + +#endif /* __R128_SAREA_DEFINES__ */ + +typedef struct { + /* Context state - can be written in one large chunk */ + unsigned int dst_pitch_offset_c; + unsigned int dp_gui_master_cntl_c; + unsigned int sc_top_left_c; + unsigned int sc_bottom_right_c; + unsigned int z_offset_c; + unsigned int z_pitch_c; + unsigned int z_sten_cntl_c; + unsigned int tex_cntl_c; + unsigned int misc_3d_state_cntl_reg; + unsigned int texture_clr_cmp_clr_c; + unsigned int texture_clr_cmp_msk_c; + unsigned int fog_color_c; + + /* Texture state */ + unsigned int tex_size_pitch_c; + unsigned int constant_color_c; + + /* Setup state */ + unsigned int pm4_vc_fpu_setup; + unsigned int setup_cntl; + + /* Mask state */ + unsigned int dp_write_mask; + unsigned int sten_ref_mask_c; + unsigned int plane_3d_mask_c; + + /* Window state */ + unsigned int window_xy_offset; + + /* Core state */ + unsigned int scale_3d_cntl; +} drm_r128_context_regs_t; + +/* Setup registers for each texture unit + */ +typedef struct { + unsigned int tex_cntl; + unsigned int tex_combine_cntl; + unsigned int tex_size_pitch; + unsigned int tex_offset[R128_MAX_TEXTURE_LEVELS]; + unsigned int tex_border_color; +} drm_r128_texture_regs_t; + +typedef struct drm_r128_sarea { + /* The channel for communication of state information to the kernel + * on firing a vertex buffer. + */ + drm_r128_context_regs_t context_state; + drm_r128_texture_regs_t tex_state[R128_MAX_TEXTURE_UNITS]; + unsigned int dirty; + unsigned int vertsize; + unsigned int vc_format; + + /* The current cliprects, or a subset thereof. + */ + struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS]; + unsigned int nbox; + + /* Counters for client-side throttling of rendering clients. + */ + unsigned int last_frame; + unsigned int last_dispatch; + + struct drm_tex_region tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1]; + unsigned int tex_age[R128_NR_TEX_HEAPS]; + int ctx_owner; + int pfAllowPageFlip; /* number of 3d windows (0,1,2 or more) */ + int pfCurrentPage; /* which buffer is being displayed? */ +} drm_r128_sarea_t; + +/* WARNING: If you change any of these defines, make sure to change the + * defines in the Xserver file (xf86drmR128.h) + */ + +/* Rage 128 specific ioctls + * The device specific ioctl range is 0x40 to 0x79. + */ +#define DRM_R128_INIT 0x00 +#define DRM_R128_CCE_START 0x01 +#define DRM_R128_CCE_STOP 0x02 +#define DRM_R128_CCE_RESET 0x03 +#define DRM_R128_CCE_IDLE 0x04 +/* 0x05 not used */ +#define DRM_R128_RESET 0x06 +#define DRM_R128_SWAP 0x07 +#define DRM_R128_CLEAR 0x08 +#define DRM_R128_VERTEX 0x09 +#define DRM_R128_INDICES 0x0a +#define DRM_R128_BLIT 0x0b +#define DRM_R128_DEPTH 0x0c +#define DRM_R128_STIPPLE 0x0d +/* 0x0e not used */ +#define DRM_R128_INDIRECT 0x0f +#define DRM_R128_FULLSCREEN 0x10 +#define DRM_R128_CLEAR2 0x11 +#define DRM_R128_GETPARAM 0x12 +#define DRM_R128_FLIP 0x13 + +#define DRM_IOCTL_R128_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INIT, drm_r128_init_t) +#define DRM_IOCTL_R128_CCE_START DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_START) +#define DRM_IOCTL_R128_CCE_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CCE_STOP, drm_r128_cce_stop_t) +#define DRM_IOCTL_R128_CCE_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_RESET) +#define DRM_IOCTL_R128_CCE_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_IDLE) +/* 0x05 not used */ +#define DRM_IOCTL_R128_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_RESET) +#define DRM_IOCTL_R128_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_R128_SWAP) +#define DRM_IOCTL_R128_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR, drm_r128_clear_t) +#define DRM_IOCTL_R128_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_R128_VERTEX, drm_r128_vertex_t) +#define DRM_IOCTL_R128_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INDICES, drm_r128_indices_t) +#define DRM_IOCTL_R128_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_BLIT, drm_r128_blit_t) +#define DRM_IOCTL_R128_DEPTH DRM_IOW( DRM_COMMAND_BASE + DRM_R128_DEPTH, drm_r128_depth_t) +#define DRM_IOCTL_R128_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_R128_STIPPLE, drm_r128_stipple_t) +/* 0x0e not used */ +#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_INDIRECT, drm_r128_indirect_t) +#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_R128_FULLSCREEN, drm_r128_fullscreen_t) +#define DRM_IOCTL_R128_CLEAR2 DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR2, drm_r128_clear2_t) +#define DRM_IOCTL_R128_GETPARAM DRM_IOWR( DRM_COMMAND_BASE + DRM_R128_GETPARAM, drm_r128_getparam_t) +#define DRM_IOCTL_R128_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_R128_FLIP) + +typedef struct drm_r128_init { + enum { + R128_INIT_CCE = 0x01, + R128_CLEANUP_CCE = 0x02 + } func; + unsigned long sarea_priv_offset; + int is_pci; + int cce_mode; + int cce_secure; + int ring_size; + int usec_timeout; + + unsigned int fb_bpp; + unsigned int front_offset, front_pitch; + unsigned int back_offset, back_pitch; + unsigned int depth_bpp; + unsigned int depth_offset, depth_pitch; + unsigned int span_offset; + + unsigned long fb_offset; + unsigned long mmio_offset; + unsigned long ring_offset; + unsigned long ring_rptr_offset; + unsigned long buffers_offset; + unsigned long agp_textures_offset; +} drm_r128_init_t; + +typedef struct drm_r128_cce_stop { + int flush; + int idle; +} drm_r128_cce_stop_t; + +typedef struct drm_r128_clear { + unsigned int flags; + unsigned int clear_color; + unsigned int clear_depth; + unsigned int color_mask; + unsigned int depth_mask; +} drm_r128_clear_t; + +typedef struct drm_r128_vertex { + int prim; + int idx; /* Index of vertex buffer */ + int count; /* Number of vertices in buffer */ + int discard; /* Client finished with buffer? */ +} drm_r128_vertex_t; + +typedef struct drm_r128_indices { + int prim; + int idx; + int start; + int end; + int discard; /* Client finished with buffer? */ +} drm_r128_indices_t; + +typedef struct drm_r128_blit { + int idx; + int pitch; + int offset; + int format; + unsigned short x, y; + unsigned short width, height; +} drm_r128_blit_t; + +typedef struct drm_r128_depth { + enum { + R128_WRITE_SPAN = 0x01, + R128_WRITE_PIXELS = 0x02, + R128_READ_SPAN = 0x03, + R128_READ_PIXELS = 0x04 + } func; + int n; + int *x; + int *y; + unsigned int *buffer; + unsigned char *mask; +} drm_r128_depth_t; + +typedef struct drm_r128_stipple { + unsigned int *mask; +} drm_r128_stipple_t; + +typedef struct drm_r128_indirect { + int idx; + int start; + int end; + int discard; +} drm_r128_indirect_t; + +typedef struct drm_r128_fullscreen { + enum { + R128_INIT_FULLSCREEN = 0x01, + R128_CLEANUP_FULLSCREEN = 0x02 + } func; +} drm_r128_fullscreen_t; + +/* 2.3: An ioctl to get parameters that aren't available to the 3d + * client any other way. + */ +#define R128_PARAM_IRQ_NR 1 + +typedef struct drm_r128_getparam { + int param; + void *value; +} drm_r128_getparam_t; + +#endif diff --git a/kernel_headers/drm/radeon_drm.h b/kernel_headers/drm/radeon_drm.h new file mode 100644 index 0000000..9f75812 --- /dev/null +++ b/kernel_headers/drm/radeon_drm.h @@ -0,0 +1,1010 @@ +/* radeon_drm.h -- Public header for the radeon driver -*- linux-c -*- + * + * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc., Fremont, California. + * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Authors: + * Kevin E. Martin + * Gareth Hughes + * Keith Whitwell + */ + +#ifndef __RADEON_DRM_H__ +#define __RADEON_DRM_H__ + +#include + +/* WARNING: If you change any of these defines, make sure to change the + * defines in the X server file (radeon_sarea.h) + */ +#ifndef __RADEON_SAREA_DEFINES__ +#define __RADEON_SAREA_DEFINES__ + +/* Old style state flags, required for sarea interface (1.1 and 1.2 + * clears) and 1.2 drm_vertex2 ioctl. + */ +#define RADEON_UPLOAD_CONTEXT 0x00000001 +#define RADEON_UPLOAD_VERTFMT 0x00000002 +#define RADEON_UPLOAD_LINE 0x00000004 +#define RADEON_UPLOAD_BUMPMAP 0x00000008 +#define RADEON_UPLOAD_MASKS 0x00000010 +#define RADEON_UPLOAD_VIEWPORT 0x00000020 +#define RADEON_UPLOAD_SETUP 0x00000040 +#define RADEON_UPLOAD_TCL 0x00000080 +#define RADEON_UPLOAD_MISC 0x00000100 +#define RADEON_UPLOAD_TEX0 0x00000200 +#define RADEON_UPLOAD_TEX1 0x00000400 +#define RADEON_UPLOAD_TEX2 0x00000800 +#define RADEON_UPLOAD_TEX0IMAGES 0x00001000 +#define RADEON_UPLOAD_TEX1IMAGES 0x00002000 +#define RADEON_UPLOAD_TEX2IMAGES 0x00004000 +#define RADEON_UPLOAD_CLIPRECTS 0x00008000 /* handled client-side */ +#define RADEON_REQUIRE_QUIESCENCE 0x00010000 +#define RADEON_UPLOAD_ZBIAS 0x00020000 /* version 1.2 and newer */ +#define RADEON_UPLOAD_ALL 0x003effff +#define RADEON_UPLOAD_CONTEXT_ALL 0x003e01ff + +/* New style per-packet identifiers for use in cmd_buffer ioctl with + * the RADEON_EMIT_PACKET command. Comments relate new packets to old + * state bits and the packet size: + */ +#define RADEON_EMIT_PP_MISC 0 /* context/7 */ +#define RADEON_EMIT_PP_CNTL 1 /* context/3 */ +#define RADEON_EMIT_RB3D_COLORPITCH 2 /* context/1 */ +#define RADEON_EMIT_RE_LINE_PATTERN 3 /* line/2 */ +#define RADEON_EMIT_SE_LINE_WIDTH 4 /* line/1 */ +#define RADEON_EMIT_PP_LUM_MATRIX 5 /* bumpmap/1 */ +#define RADEON_EMIT_PP_ROT_MATRIX_0 6 /* bumpmap/2 */ +#define RADEON_EMIT_RB3D_STENCILREFMASK 7 /* masks/3 */ +#define RADEON_EMIT_SE_VPORT_XSCALE 8 /* viewport/6 */ +#define RADEON_EMIT_SE_CNTL 9 /* setup/2 */ +#define RADEON_EMIT_SE_CNTL_STATUS 10 /* setup/1 */ +#define RADEON_EMIT_RE_MISC 11 /* misc/1 */ +#define RADEON_EMIT_PP_TXFILTER_0 12 /* tex0/6 */ +#define RADEON_EMIT_PP_BORDER_COLOR_0 13 /* tex0/1 */ +#define RADEON_EMIT_PP_TXFILTER_1 14 /* tex1/6 */ +#define RADEON_EMIT_PP_BORDER_COLOR_1 15 /* tex1/1 */ +#define RADEON_EMIT_PP_TXFILTER_2 16 /* tex2/6 */ +#define RADEON_EMIT_PP_BORDER_COLOR_2 17 /* tex2/1 */ +#define RADEON_EMIT_SE_ZBIAS_FACTOR 18 /* zbias/2 */ +#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT 19 /* tcl/11 */ +#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED 20 /* material/17 */ +#define R200_EMIT_PP_TXCBLEND_0 21 /* tex0/4 */ +#define R200_EMIT_PP_TXCBLEND_1 22 /* tex1/4 */ +#define R200_EMIT_PP_TXCBLEND_2 23 /* tex2/4 */ +#define R200_EMIT_PP_TXCBLEND_3 24 /* tex3/4 */ +#define R200_EMIT_PP_TXCBLEND_4 25 /* tex4/4 */ +#define R200_EMIT_PP_TXCBLEND_5 26 /* tex5/4 */ +#define R200_EMIT_PP_TXCBLEND_6 27 /* /4 */ +#define R200_EMIT_PP_TXCBLEND_7 28 /* /4 */ +#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0 29 /* tcl/7 */ +#define R200_EMIT_TFACTOR_0 30 /* tf/7 */ +#define R200_EMIT_VTX_FMT_0 31 /* vtx/5 */ +#define R200_EMIT_VAP_CTL 32 /* vap/1 */ +#define R200_EMIT_MATRIX_SELECT_0 33 /* msl/5 */ +#define R200_EMIT_TEX_PROC_CTL_2 34 /* tcg/5 */ +#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL 35 /* tcl/1 */ +#define R200_EMIT_PP_TXFILTER_0 36 /* tex0/6 */ +#define R200_EMIT_PP_TXFILTER_1 37 /* tex1/6 */ +#define R200_EMIT_PP_TXFILTER_2 38 /* tex2/6 */ +#define R200_EMIT_PP_TXFILTER_3 39 /* tex3/6 */ +#define R200_EMIT_PP_TXFILTER_4 40 /* tex4/6 */ +#define R200_EMIT_PP_TXFILTER_5 41 /* tex5/6 */ +#define R200_EMIT_PP_TXOFFSET_0 42 /* tex0/1 */ +#define R200_EMIT_PP_TXOFFSET_1 43 /* tex1/1 */ +#define R200_EMIT_PP_TXOFFSET_2 44 /* tex2/1 */ +#define R200_EMIT_PP_TXOFFSET_3 45 /* tex3/1 */ +#define R200_EMIT_PP_TXOFFSET_4 46 /* tex4/1 */ +#define R200_EMIT_PP_TXOFFSET_5 47 /* tex5/1 */ +#define R200_EMIT_VTE_CNTL 48 /* vte/1 */ +#define R200_EMIT_OUTPUT_VTX_COMP_SEL 49 /* vtx/1 */ +#define R200_EMIT_PP_TAM_DEBUG3 50 /* tam/1 */ +#define R200_EMIT_PP_CNTL_X 51 /* cst/1 */ +#define R200_EMIT_RB3D_DEPTHXY_OFFSET 52 /* cst/1 */ +#define R200_EMIT_RE_AUX_SCISSOR_CNTL 53 /* cst/1 */ +#define R200_EMIT_RE_SCISSOR_TL_0 54 /* cst/2 */ +#define R200_EMIT_RE_SCISSOR_TL_1 55 /* cst/2 */ +#define R200_EMIT_RE_SCISSOR_TL_2 56 /* cst/2 */ +#define R200_EMIT_SE_VAP_CNTL_STATUS 57 /* cst/1 */ +#define R200_EMIT_SE_VTX_STATE_CNTL 58 /* cst/1 */ +#define R200_EMIT_RE_POINTSIZE 59 /* cst/1 */ +#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0 60 /* cst/4 */ +#define R200_EMIT_PP_CUBIC_FACES_0 61 +#define R200_EMIT_PP_CUBIC_OFFSETS_0 62 +#define R200_EMIT_PP_CUBIC_FACES_1 63 +#define R200_EMIT_PP_CUBIC_OFFSETS_1 64 +#define R200_EMIT_PP_CUBIC_FACES_2 65 +#define R200_EMIT_PP_CUBIC_OFFSETS_2 66 +#define R200_EMIT_PP_CUBIC_FACES_3 67 +#define R200_EMIT_PP_CUBIC_OFFSETS_3 68 +#define R200_EMIT_PP_CUBIC_FACES_4 69 +#define R200_EMIT_PP_CUBIC_OFFSETS_4 70 +#define R200_EMIT_PP_CUBIC_FACES_5 71 +#define R200_EMIT_PP_CUBIC_OFFSETS_5 72 +#define RADEON_EMIT_PP_TEX_SIZE_0 73 +#define RADEON_EMIT_PP_TEX_SIZE_1 74 +#define RADEON_EMIT_PP_TEX_SIZE_2 75 +#define R200_EMIT_RB3D_BLENDCOLOR 76 +#define R200_EMIT_TCL_POINT_SPRITE_CNTL 77 +#define RADEON_EMIT_PP_CUBIC_FACES_0 78 +#define RADEON_EMIT_PP_CUBIC_OFFSETS_T0 79 +#define RADEON_EMIT_PP_CUBIC_FACES_1 80 +#define RADEON_EMIT_PP_CUBIC_OFFSETS_T1 81 +#define RADEON_EMIT_PP_CUBIC_FACES_2 82 +#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2 83 +#define R200_EMIT_PP_TRI_PERF_CNTL 84 +#define R200_EMIT_PP_AFS_0 85 +#define R200_EMIT_PP_AFS_1 86 +#define R200_EMIT_ATF_TFACTOR 87 +#define R200_EMIT_PP_TXCTLALL_0 88 +#define R200_EMIT_PP_TXCTLALL_1 89 +#define R200_EMIT_PP_TXCTLALL_2 90 +#define R200_EMIT_PP_TXCTLALL_3 91 +#define R200_EMIT_PP_TXCTLALL_4 92 +#define R200_EMIT_PP_TXCTLALL_5 93 +#define R200_EMIT_VAP_PVS_CNTL 94 +#define RADEON_MAX_STATE_PACKETS 95 + +/* Commands understood by cmd_buffer ioctl. More can be added but + * obviously these can't be removed or changed: + */ +#define RADEON_CMD_PACKET 1 /* emit one of the register packets above */ +#define RADEON_CMD_SCALARS 2 /* emit scalar data */ +#define RADEON_CMD_VECTORS 3 /* emit vector data */ +#define RADEON_CMD_DMA_DISCARD 4 /* discard current dma buf */ +#define RADEON_CMD_PACKET3 5 /* emit hw packet */ +#define RADEON_CMD_PACKET3_CLIP 6 /* emit hw packet wrapped in cliprects */ +#define RADEON_CMD_SCALARS2 7 /* r200 stopgap */ +#define RADEON_CMD_WAIT 8 /* emit hw wait commands -- note: + * doesn't make the cpu wait, just + * the graphics hardware */ +#define RADEON_CMD_VECLINEAR 9 /* another r200 stopgap */ + +typedef union { + int i; + struct { + unsigned char cmd_type, pad0, pad1, pad2; + } header; + struct { + unsigned char cmd_type, packet_id, pad0, pad1; + } packet; + struct { + unsigned char cmd_type, offset, stride, count; + } scalars; + struct { + unsigned char cmd_type, offset, stride, count; + } vectors; + struct { + unsigned char cmd_type, addr_lo, addr_hi, count; + } veclinear; + struct { + unsigned char cmd_type, buf_idx, pad0, pad1; + } dma; + struct { + unsigned char cmd_type, flags, pad0, pad1; + } wait; +} drm_radeon_cmd_header_t; + +#define RADEON_WAIT_2D 0x1 +#define RADEON_WAIT_3D 0x2 + +/* Allowed parameters for R300_CMD_PACKET3 + */ +#define R300_CMD_PACKET3_CLEAR 0 +#define R300_CMD_PACKET3_RAW 1 + +/* Commands understood by cmd_buffer ioctl for R300. + * The interface has not been stabilized, so some of these may be removed + * and eventually reordered before stabilization. + */ +#define R300_CMD_PACKET0 1 +#define R300_CMD_VPU 2 /* emit vertex program upload */ +#define R300_CMD_PACKET3 3 /* emit a packet3 */ +#define R300_CMD_END3D 4 /* emit sequence ending 3d rendering */ +#define R300_CMD_CP_DELAY 5 +#define R300_CMD_DMA_DISCARD 6 +#define R300_CMD_WAIT 7 +# define R300_WAIT_2D 0x1 +# define R300_WAIT_3D 0x2 +/* these two defines are DOING IT WRONG - however + * we have userspace which relies on using these. + * The wait interface is backwards compat new + * code should use the NEW_WAIT defines below + * THESE ARE NOT BIT FIELDS + */ +# define R300_WAIT_2D_CLEAN 0x3 +# define R300_WAIT_3D_CLEAN 0x4 + +# define R300_NEW_WAIT_2D_3D 0x3 +# define R300_NEW_WAIT_2D_2D_CLEAN 0x4 +# define R300_NEW_WAIT_3D_3D_CLEAN 0x6 +# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8 + +#define R300_CMD_SCRATCH 8 +#define R300_CMD_R500FP 9 + +typedef union { + unsigned int u; + struct { + unsigned char cmd_type, pad0, pad1, pad2; + } header; + struct { + unsigned char cmd_type, count, reglo, reghi; + } packet0; + struct { + unsigned char cmd_type, count, adrlo, adrhi; + } vpu; + struct { + unsigned char cmd_type, packet, pad0, pad1; + } packet3; + struct { + unsigned char cmd_type, packet; + unsigned short count; /* amount of packet2 to emit */ + } delay; + struct { + unsigned char cmd_type, buf_idx, pad0, pad1; + } dma; + struct { + unsigned char cmd_type, flags, pad0, pad1; + } wait; + struct { + unsigned char cmd_type, reg, n_bufs, flags; + } scratch; + struct { + unsigned char cmd_type, count, adrlo, adrhi_flags; + } r500fp; +} drm_r300_cmd_header_t; + +#define RADEON_FRONT 0x1 +#define RADEON_BACK 0x2 +#define RADEON_DEPTH 0x4 +#define RADEON_STENCIL 0x8 +#define RADEON_CLEAR_FASTZ 0x80000000 +#define RADEON_USE_HIERZ 0x40000000 +#define RADEON_USE_COMP_ZBUF 0x20000000 + +#define R500FP_CONSTANT_TYPE (1 << 1) +#define R500FP_CONSTANT_CLAMP (1 << 2) + +/* Primitive types + */ +#define RADEON_POINTS 0x1 +#define RADEON_LINES 0x2 +#define RADEON_LINE_STRIP 0x3 +#define RADEON_TRIANGLES 0x4 +#define RADEON_TRIANGLE_FAN 0x5 +#define RADEON_TRIANGLE_STRIP 0x6 + +/* Vertex/indirect buffer size + */ +#define RADEON_BUFFER_SIZE 65536 + +/* Byte offsets for indirect buffer data + */ +#define RADEON_INDEX_PRIM_OFFSET 20 + +#define RADEON_SCRATCH_REG_OFFSET 32 + +#define R600_SCRATCH_REG_OFFSET 256 + +#define RADEON_NR_SAREA_CLIPRECTS 12 + +/* There are 2 heaps (local/GART). Each region within a heap is a + * minimum of 64k, and there are at most 64 of them per heap. + */ +#define RADEON_LOCAL_TEX_HEAP 0 +#define RADEON_GART_TEX_HEAP 1 +#define RADEON_NR_TEX_HEAPS 2 +#define RADEON_NR_TEX_REGIONS 64 +#define RADEON_LOG_TEX_GRANULARITY 16 + +#define RADEON_MAX_TEXTURE_LEVELS 12 +#define RADEON_MAX_TEXTURE_UNITS 3 + +#define RADEON_MAX_SURFACES 8 + +/* Blits have strict offset rules. All blit offset must be aligned on + * a 1K-byte boundary. + */ +#define RADEON_OFFSET_SHIFT 10 +#define RADEON_OFFSET_ALIGN (1 << RADEON_OFFSET_SHIFT) +#define RADEON_OFFSET_MASK (RADEON_OFFSET_ALIGN - 1) + +#endif /* __RADEON_SAREA_DEFINES__ */ + +typedef struct { + unsigned int red; + unsigned int green; + unsigned int blue; + unsigned int alpha; +} radeon_color_regs_t; + +typedef struct { + /* Context state */ + unsigned int pp_misc; /* 0x1c14 */ + unsigned int pp_fog_color; + unsigned int re_solid_color; + unsigned int rb3d_blendcntl; + unsigned int rb3d_depthoffset; + unsigned int rb3d_depthpitch; + unsigned int rb3d_zstencilcntl; + + unsigned int pp_cntl; /* 0x1c38 */ + unsigned int rb3d_cntl; + unsigned int rb3d_coloroffset; + unsigned int re_width_height; + unsigned int rb3d_colorpitch; + unsigned int se_cntl; + + /* Vertex format state */ + unsigned int se_coord_fmt; /* 0x1c50 */ + + /* Line state */ + unsigned int re_line_pattern; /* 0x1cd0 */ + unsigned int re_line_state; + + unsigned int se_line_width; /* 0x1db8 */ + + /* Bumpmap state */ + unsigned int pp_lum_matrix; /* 0x1d00 */ + + unsigned int pp_rot_matrix_0; /* 0x1d58 */ + unsigned int pp_rot_matrix_1; + + /* Mask state */ + unsigned int rb3d_stencilrefmask; /* 0x1d7c */ + unsigned int rb3d_ropcntl; + unsigned int rb3d_planemask; + + /* Viewport state */ + unsigned int se_vport_xscale; /* 0x1d98 */ + unsigned int se_vport_xoffset; + unsigned int se_vport_yscale; + unsigned int se_vport_yoffset; + unsigned int se_vport_zscale; + unsigned int se_vport_zoffset; + + /* Setup state */ + unsigned int se_cntl_status; /* 0x2140 */ + + /* Misc state */ + unsigned int re_top_left; /* 0x26c0 */ + unsigned int re_misc; +} drm_radeon_context_regs_t; + +typedef struct { + /* Zbias state */ + unsigned int se_zbias_factor; /* 0x1dac */ + unsigned int se_zbias_constant; +} drm_radeon_context2_regs_t; + +/* Setup registers for each texture unit + */ +typedef struct { + unsigned int pp_txfilter; + unsigned int pp_txformat; + unsigned int pp_txoffset; + unsigned int pp_txcblend; + unsigned int pp_txablend; + unsigned int pp_tfactor; + unsigned int pp_border_color; +} drm_radeon_texture_regs_t; + +typedef struct { + unsigned int start; + unsigned int finish; + unsigned int prim:8; + unsigned int stateidx:8; + unsigned int numverts:16; /* overloaded as offset/64 for elt prims */ + unsigned int vc_format; /* vertex format */ +} drm_radeon_prim_t; + +typedef struct { + drm_radeon_context_regs_t context; + drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS]; + drm_radeon_context2_regs_t context2; + unsigned int dirty; +} drm_radeon_state_t; + +typedef struct { + /* The channel for communication of state information to the + * kernel on firing a vertex buffer with either of the + * obsoleted vertex/index ioctls. + */ + drm_radeon_context_regs_t context_state; + drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS]; + unsigned int dirty; + unsigned int vertsize; + unsigned int vc_format; + + /* The current cliprects, or a subset thereof. + */ + struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS]; + unsigned int nbox; + + /* Counters for client-side throttling of rendering clients. + */ + unsigned int last_frame; + unsigned int last_dispatch; + unsigned int last_clear; + + struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS + + 1]; + unsigned int tex_age[RADEON_NR_TEX_HEAPS]; + int ctx_owner; + int pfState; /* number of 3d windows (0,1,2ormore) */ + int pfCurrentPage; /* which buffer is being displayed? */ + int crtc2_base; /* CRTC2 frame offset */ + int tiling_enabled; /* set by drm, read by 2d + 3d clients */ +} drm_radeon_sarea_t; + +/* WARNING: If you change any of these defines, make sure to change the + * defines in the Xserver file (xf86drmRadeon.h) + * + * KW: actually it's illegal to change any of this (backwards compatibility). + */ + +/* Radeon specific ioctls + * The device specific ioctl range is 0x40 to 0x79. + */ +#define DRM_RADEON_CP_INIT 0x00 +#define DRM_RADEON_CP_START 0x01 +#define DRM_RADEON_CP_STOP 0x02 +#define DRM_RADEON_CP_RESET 0x03 +#define DRM_RADEON_CP_IDLE 0x04 +#define DRM_RADEON_RESET 0x05 +#define DRM_RADEON_FULLSCREEN 0x06 +#define DRM_RADEON_SWAP 0x07 +#define DRM_RADEON_CLEAR 0x08 +#define DRM_RADEON_VERTEX 0x09 +#define DRM_RADEON_INDICES 0x0A +#define DRM_RADEON_NOT_USED +#define DRM_RADEON_STIPPLE 0x0C +#define DRM_RADEON_INDIRECT 0x0D +#define DRM_RADEON_TEXTURE 0x0E +#define DRM_RADEON_VERTEX2 0x0F +#define DRM_RADEON_CMDBUF 0x10 +#define DRM_RADEON_GETPARAM 0x11 +#define DRM_RADEON_FLIP 0x12 +#define DRM_RADEON_ALLOC 0x13 +#define DRM_RADEON_FREE 0x14 +#define DRM_RADEON_INIT_HEAP 0x15 +#define DRM_RADEON_IRQ_EMIT 0x16 +#define DRM_RADEON_IRQ_WAIT 0x17 +#define DRM_RADEON_CP_RESUME 0x18 +#define DRM_RADEON_SETPARAM 0x19 +#define DRM_RADEON_SURF_ALLOC 0x1a +#define DRM_RADEON_SURF_FREE 0x1b +/* KMS ioctl */ +#define DRM_RADEON_GEM_INFO 0x1c +#define DRM_RADEON_GEM_CREATE 0x1d +#define DRM_RADEON_GEM_MMAP 0x1e +#define DRM_RADEON_GEM_PREAD 0x21 +#define DRM_RADEON_GEM_PWRITE 0x22 +#define DRM_RADEON_GEM_SET_DOMAIN 0x23 +#define DRM_RADEON_GEM_WAIT_IDLE 0x24 +#define DRM_RADEON_CS 0x26 +#define DRM_RADEON_INFO 0x27 +#define DRM_RADEON_GEM_SET_TILING 0x28 +#define DRM_RADEON_GEM_GET_TILING 0x29 +#define DRM_RADEON_GEM_BUSY 0x2a +#define DRM_RADEON_GEM_VA 0x2b + +#define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) +#define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START) +#define DRM_IOCTL_RADEON_CP_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t) +#define DRM_IOCTL_RADEON_CP_RESET DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_RESET) +#define DRM_IOCTL_RADEON_CP_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE) +#define DRM_IOCTL_RADEON_RESET DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_RESET) +#define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t) +#define DRM_IOCTL_RADEON_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_SWAP) +#define DRM_IOCTL_RADEON_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t) +#define DRM_IOCTL_RADEON_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t) +#define DRM_IOCTL_RADEON_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t) +#define DRM_IOCTL_RADEON_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t) +#define DRM_IOCTL_RADEON_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t) +#define DRM_IOCTL_RADEON_TEXTURE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t) +#define DRM_IOCTL_RADEON_VERTEX2 DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t) +#define DRM_IOCTL_RADEON_CMDBUF DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t) +#define DRM_IOCTL_RADEON_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t) +#define DRM_IOCTL_RADEON_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_FLIP) +#define DRM_IOCTL_RADEON_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t) +#define DRM_IOCTL_RADEON_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t) +#define DRM_IOCTL_RADEON_INIT_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t) +#define DRM_IOCTL_RADEON_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t) +#define DRM_IOCTL_RADEON_IRQ_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t) +#define DRM_IOCTL_RADEON_CP_RESUME DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME) +#define DRM_IOCTL_RADEON_SETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t) +#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t) +#define DRM_IOCTL_RADEON_SURF_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t) +/* KMS */ +#define DRM_IOCTL_RADEON_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INFO, struct drm_radeon_gem_info) +#define DRM_IOCTL_RADEON_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_CREATE, struct drm_radeon_gem_create) +#define DRM_IOCTL_RADEON_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_MMAP, struct drm_radeon_gem_mmap) +#define DRM_IOCTL_RADEON_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PREAD, struct drm_radeon_gem_pread) +#define DRM_IOCTL_RADEON_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PWRITE, struct drm_radeon_gem_pwrite) +#define DRM_IOCTL_RADEON_GEM_SET_DOMAIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain) +#define DRM_IOCTL_RADEON_GEM_WAIT_IDLE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_IDLE, struct drm_radeon_gem_wait_idle) +#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs) +#define DRM_IOCTL_RADEON_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INFO, struct drm_radeon_info) +#define DRM_IOCTL_RADEON_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_TILING, struct drm_radeon_gem_set_tiling) +#define DRM_IOCTL_RADEON_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling) +#define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy) +#define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va) + +typedef struct drm_radeon_init { + enum { + RADEON_INIT_CP = 0x01, + RADEON_CLEANUP_CP = 0x02, + RADEON_INIT_R200_CP = 0x03, + RADEON_INIT_R300_CP = 0x04, + RADEON_INIT_R600_CP = 0x05 + } func; + unsigned long sarea_priv_offset; + int is_pci; + int cp_mode; + int gart_size; + int ring_size; + int usec_timeout; + + unsigned int fb_bpp; + unsigned int front_offset, front_pitch; + unsigned int back_offset, back_pitch; + unsigned int depth_bpp; + unsigned int depth_offset, depth_pitch; + + unsigned long fb_offset; + unsigned long mmio_offset; + unsigned long ring_offset; + unsigned long ring_rptr_offset; + unsigned long buffers_offset; + unsigned long gart_textures_offset; +} drm_radeon_init_t; + +typedef struct drm_radeon_cp_stop { + int flush; + int idle; +} drm_radeon_cp_stop_t; + +typedef struct drm_radeon_fullscreen { + enum { + RADEON_INIT_FULLSCREEN = 0x01, + RADEON_CLEANUP_FULLSCREEN = 0x02 + } func; +} drm_radeon_fullscreen_t; + +#define CLEAR_X1 0 +#define CLEAR_Y1 1 +#define CLEAR_X2 2 +#define CLEAR_Y2 3 +#define CLEAR_DEPTH 4 + +typedef union drm_radeon_clear_rect { + float f[5]; + unsigned int ui[5]; +} drm_radeon_clear_rect_t; + +typedef struct drm_radeon_clear { + unsigned int flags; + unsigned int clear_color; + unsigned int clear_depth; + unsigned int color_mask; + unsigned int depth_mask; /* misnamed field: should be stencil */ + drm_radeon_clear_rect_t *depth_boxes; +} drm_radeon_clear_t; + +typedef struct drm_radeon_vertex { + int prim; + int idx; /* Index of vertex buffer */ + int count; /* Number of vertices in buffer */ + int discard; /* Client finished with buffer? */ +} drm_radeon_vertex_t; + +typedef struct drm_radeon_indices { + int prim; + int idx; + int start; + int end; + int discard; /* Client finished with buffer? */ +} drm_radeon_indices_t; + +/* v1.2 - obsoletes drm_radeon_vertex and drm_radeon_indices + * - allows multiple primitives and state changes in a single ioctl + * - supports driver change to emit native primitives + */ +typedef struct drm_radeon_vertex2 { + int idx; /* Index of vertex buffer */ + int discard; /* Client finished with buffer? */ + int nr_states; + drm_radeon_state_t *state; + int nr_prims; + drm_radeon_prim_t *prim; +} drm_radeon_vertex2_t; + +/* v1.3 - obsoletes drm_radeon_vertex2 + * - allows arbitrarily large cliprect list + * - allows updating of tcl packet, vector and scalar state + * - allows memory-efficient description of state updates + * - allows state to be emitted without a primitive + * (for clears, ctx switches) + * - allows more than one dma buffer to be referenced per ioctl + * - supports tcl driver + * - may be extended in future versions with new cmd types, packets + */ +typedef struct drm_radeon_cmd_buffer { + int bufsz; + char *buf; + int nbox; + struct drm_clip_rect *boxes; +} drm_radeon_cmd_buffer_t; + +typedef struct drm_radeon_tex_image { + unsigned int x, y; /* Blit coordinates */ + unsigned int width, height; + const void *data; +} drm_radeon_tex_image_t; + +typedef struct drm_radeon_texture { + unsigned int offset; + int pitch; + int format; + int width; /* Texture image coordinates */ + int height; + drm_radeon_tex_image_t *image; +} drm_radeon_texture_t; + +typedef struct drm_radeon_stipple { + unsigned int *mask; +} drm_radeon_stipple_t; + +typedef struct drm_radeon_indirect { + int idx; + int start; + int end; + int discard; +} drm_radeon_indirect_t; + +/* enum for card type parameters */ +#define RADEON_CARD_PCI 0 +#define RADEON_CARD_AGP 1 +#define RADEON_CARD_PCIE 2 + +/* 1.3: An ioctl to get parameters that aren't available to the 3d + * client any other way. + */ +#define RADEON_PARAM_GART_BUFFER_OFFSET 1 /* card offset of 1st GART buffer */ +#define RADEON_PARAM_LAST_FRAME 2 +#define RADEON_PARAM_LAST_DISPATCH 3 +#define RADEON_PARAM_LAST_CLEAR 4 +/* Added with DRM version 1.6. */ +#define RADEON_PARAM_IRQ_NR 5 +#define RADEON_PARAM_GART_BASE 6 /* card offset of GART base */ +/* Added with DRM version 1.8. */ +#define RADEON_PARAM_REGISTER_HANDLE 7 /* for drmMap() */ +#define RADEON_PARAM_STATUS_HANDLE 8 +#define RADEON_PARAM_SAREA_HANDLE 9 +#define RADEON_PARAM_GART_TEX_HANDLE 10 +#define RADEON_PARAM_SCRATCH_OFFSET 11 +#define RADEON_PARAM_CARD_TYPE 12 +#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */ +#define RADEON_PARAM_FB_LOCATION 14 /* FB location */ +#define RADEON_PARAM_NUM_GB_PIPES 15 /* num GB pipes */ +#define RADEON_PARAM_DEVICE_ID 16 +#define RADEON_PARAM_NUM_Z_PIPES 17 /* num Z pipes */ + +typedef struct drm_radeon_getparam { + int param; + void *value; +} drm_radeon_getparam_t; + +/* 1.6: Set up a memory manager for regions of shared memory: + */ +#define RADEON_MEM_REGION_GART 1 +#define RADEON_MEM_REGION_FB 2 + +typedef struct drm_radeon_mem_alloc { + int region; + int alignment; + int size; + int *region_offset; /* offset from start of fb or GART */ +} drm_radeon_mem_alloc_t; + +typedef struct drm_radeon_mem_free { + int region; + int region_offset; +} drm_radeon_mem_free_t; + +typedef struct drm_radeon_mem_init_heap { + int region; + int size; + int start; +} drm_radeon_mem_init_heap_t; + +/* 1.6: Userspace can request & wait on irq's: + */ +typedef struct drm_radeon_irq_emit { + int *irq_seq; +} drm_radeon_irq_emit_t; + +typedef struct drm_radeon_irq_wait { + int irq_seq; +} drm_radeon_irq_wait_t; + +/* 1.10: Clients tell the DRM where they think the framebuffer is located in + * the card's address space, via a new generic ioctl to set parameters + */ + +typedef struct drm_radeon_setparam { + unsigned int param; + __s64 value; +} drm_radeon_setparam_t; + +#define RADEON_SETPARAM_FB_LOCATION 1 /* determined framebuffer location */ +#define RADEON_SETPARAM_SWITCH_TILING 2 /* enable/disable color tiling */ +#define RADEON_SETPARAM_PCIGART_LOCATION 3 /* PCI Gart Location */ +#define RADEON_SETPARAM_NEW_MEMMAP 4 /* Use new memory map */ +#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 /* PCI GART Table Size */ +#define RADEON_SETPARAM_VBLANK_CRTC 6 /* VBLANK CRTC */ +/* 1.14: Clients can allocate/free a surface + */ +typedef struct drm_radeon_surface_alloc { + unsigned int address; + unsigned int size; + unsigned int flags; +} drm_radeon_surface_alloc_t; + +typedef struct drm_radeon_surface_free { + unsigned int address; +} drm_radeon_surface_free_t; + +#define DRM_RADEON_VBLANK_CRTC1 1 +#define DRM_RADEON_VBLANK_CRTC2 2 + +/* + * Kernel modesetting world below. + */ +#define RADEON_GEM_DOMAIN_CPU 0x1 +#define RADEON_GEM_DOMAIN_GTT 0x2 +#define RADEON_GEM_DOMAIN_VRAM 0x4 + +struct drm_radeon_gem_info { + uint64_t gart_size; + uint64_t vram_size; + uint64_t vram_visible; +}; + +#define RADEON_GEM_NO_BACKING_STORE 1 + +struct drm_radeon_gem_create { + uint64_t size; + uint64_t alignment; + uint32_t handle; + uint32_t initial_domain; + uint32_t flags; +}; + +#define RADEON_TILING_MACRO 0x1 +#define RADEON_TILING_MICRO 0x2 +#define RADEON_TILING_SWAP_16BIT 0x4 +#define RADEON_TILING_SWAP_32BIT 0x8 +/* this object requires a surface when mapped - i.e. front buffer */ +#define RADEON_TILING_SURFACE 0x10 +#define RADEON_TILING_MICRO_SQUARE 0x20 +#define RADEON_TILING_EG_BANKW_SHIFT 8 +#define RADEON_TILING_EG_BANKW_MASK 0xf +#define RADEON_TILING_EG_BANKH_SHIFT 12 +#define RADEON_TILING_EG_BANKH_MASK 0xf +#define RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16 +#define RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK 0xf +#define RADEON_TILING_EG_TILE_SPLIT_SHIFT 24 +#define RADEON_TILING_EG_TILE_SPLIT_MASK 0xf +#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28 +#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf + +struct drm_radeon_gem_set_tiling { + uint32_t handle; + uint32_t tiling_flags; + uint32_t pitch; +}; + +struct drm_radeon_gem_get_tiling { + uint32_t handle; + uint32_t tiling_flags; + uint32_t pitch; +}; + +struct drm_radeon_gem_mmap { + uint32_t handle; + uint32_t pad; + uint64_t offset; + uint64_t size; + uint64_t addr_ptr; +}; + +struct drm_radeon_gem_set_domain { + uint32_t handle; + uint32_t read_domains; + uint32_t write_domain; +}; + +struct drm_radeon_gem_wait_idle { + uint32_t handle; + uint32_t pad; +}; + +struct drm_radeon_gem_busy { + uint32_t handle; + uint32_t domain; +}; + +struct drm_radeon_gem_pread { + /** Handle for the object being read. */ + uint32_t handle; + uint32_t pad; + /** Offset into the object to read from */ + uint64_t offset; + /** Length of data to read */ + uint64_t size; + /** Pointer to write the data into. */ + /* void *, but pointers are not 32/64 compatible */ + uint64_t data_ptr; +}; + +struct drm_radeon_gem_pwrite { + /** Handle for the object being written to. */ + uint32_t handle; + uint32_t pad; + /** Offset into the object to write to */ + uint64_t offset; + /** Length of data to write */ + uint64_t size; + /** Pointer to read the data from. */ + /* void *, but pointers are not 32/64 compatible */ + uint64_t data_ptr; +}; + +#define RADEON_VA_MAP 1 +#define RADEON_VA_UNMAP 2 + +#define RADEON_VA_RESULT_OK 0 +#define RADEON_VA_RESULT_ERROR 1 +#define RADEON_VA_RESULT_VA_EXIST 2 + +#define RADEON_VM_PAGE_VALID (1 << 0) +#define RADEON_VM_PAGE_READABLE (1 << 1) +#define RADEON_VM_PAGE_WRITEABLE (1 << 2) +#define RADEON_VM_PAGE_SYSTEM (1 << 3) +#define RADEON_VM_PAGE_SNOOPED (1 << 4) + +struct drm_radeon_gem_va { + uint32_t handle; + uint32_t operation; + uint32_t vm_id; + uint32_t flags; + uint64_t offset; +}; + +#define RADEON_CHUNK_ID_RELOCS 0x01 +#define RADEON_CHUNK_ID_IB 0x02 +#define RADEON_CHUNK_ID_FLAGS 0x03 +#define RADEON_CHUNK_ID_CONST_IB 0x04 + +/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags: */ +#define RADEON_CS_KEEP_TILING_FLAGS 0x01 +#define RADEON_CS_USE_VM 0x02 +#define RADEON_CS_END_OF_FRAME 0x04 /* a hint from userspace which CS is the last one */ +/* The second dword of RADEON_CHUNK_ID_FLAGS is a uint32 that sets the ring type */ +#define RADEON_CS_RING_GFX 0 +#define RADEON_CS_RING_COMPUTE 1 +#define RADEON_CS_RING_DMA 2 +#define RADEON_CS_RING_UVD 3 +/* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the priority */ +/* 0 = normal, + = higher priority, - = lower priority */ + +struct drm_radeon_cs_chunk { + uint32_t chunk_id; + uint32_t length_dw; + uint64_t chunk_data; +}; + +/* drm_radeon_cs_reloc.flags */ + +struct drm_radeon_cs_reloc { + uint32_t handle; + uint32_t read_domains; + uint32_t write_domain; + uint32_t flags; +}; + +struct drm_radeon_cs { + uint32_t num_chunks; + uint32_t cs_id; + /* this points to uint64_t * which point to cs chunks */ + uint64_t chunks; + /* updates to the limits after this CS ioctl */ + uint64_t gart_limit; + uint64_t vram_limit; +}; + +#define RADEON_INFO_DEVICE_ID 0x00 +#define RADEON_INFO_NUM_GB_PIPES 0x01 +#define RADEON_INFO_NUM_Z_PIPES 0x02 +#define RADEON_INFO_ACCEL_WORKING 0x03 +#define RADEON_INFO_CRTC_FROM_ID 0x04 +#define RADEON_INFO_ACCEL_WORKING2 0x05 +#define RADEON_INFO_TILING_CONFIG 0x06 +#define RADEON_INFO_WANT_HYPERZ 0x07 +#define RADEON_INFO_WANT_CMASK 0x08 /* get access to CMASK on r300 */ +#define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */ +#define RADEON_INFO_NUM_BACKENDS 0x0a /* DB/backends for r600+ - need for OQ */ +#define RADEON_INFO_NUM_TILE_PIPES 0x0b /* tile pipes for r600+ */ +#define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */ +#define RADEON_INFO_BACKEND_MAP 0x0d /* pipe to backend map, needed by mesa */ +/* virtual address start, va < start are reserved by the kernel */ +#define RADEON_INFO_VA_START 0x0e +/* maximum size of ib using the virtual memory cs */ +#define RADEON_INFO_IB_VM_MAX_SIZE 0x0f +/* max pipes - needed for compute shaders */ +#define RADEON_INFO_MAX_PIPES 0x10 +/* timestamp for GL_ARB_timer_query (OpenGL), returns the current GPU clock */ +#define RADEON_INFO_TIMESTAMP 0x11 +/* max shader engines (SE) - needed for geometry shaders, etc. */ +#define RADEON_INFO_MAX_SE 0x12 +/* max SH per SE */ +#define RADEON_INFO_MAX_SH_PER_SE 0x13 +/* fast fb access is enabled */ +#define RADEON_INFO_FASTFB_WORKING 0x14 +/* query if a RADEON_CS_RING_* submission is supported */ +#define RADEON_INFO_RING_WORKING 0x15 +/* SI tile mode array */ +#define RADEON_INFO_SI_TILE_MODE_ARRAY 0x16 +/* query if CP DMA is supported on the compute ring */ +#define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17 + + +struct drm_radeon_info { + uint32_t request; + uint32_t pad; + uint64_t value; +}; + +/* Those correspond to the tile index to use, this is to explicitly state + * the API that is implicitly defined by the tile mode array. + */ +#define SI_TILE_MODE_COLOR_LINEAR_ALIGNED 8 +#define SI_TILE_MODE_COLOR_1D 13 +#define SI_TILE_MODE_COLOR_1D_SCANOUT 9 +#define SI_TILE_MODE_COLOR_2D_8BPP 14 +#define SI_TILE_MODE_COLOR_2D_16BPP 15 +#define SI_TILE_MODE_COLOR_2D_32BPP 16 +#define SI_TILE_MODE_COLOR_2D_64BPP 17 +#define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP 11 +#define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP 12 +#define SI_TILE_MODE_DEPTH_STENCIL_1D 4 +#define SI_TILE_MODE_DEPTH_STENCIL_2D 0 +#define SI_TILE_MODE_DEPTH_STENCIL_2D_2AA 3 +#define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA 3 +#define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA 2 + +#endif diff --git a/kernel_headers/drm/savage_drm.h b/kernel_headers/drm/savage_drm.h new file mode 100644 index 0000000..a1df939 --- /dev/null +++ b/kernel_headers/drm/savage_drm.h @@ -0,0 +1,210 @@ +/* savage_drm.h -- Public header for the savage driver + * + * Copyright 2004 Felix Kuehling + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sub license, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL FELIX KUEHLING BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef __SAVAGE_DRM_H__ +#define __SAVAGE_DRM_H__ + +#ifndef __SAVAGE_SAREA_DEFINES__ +#define __SAVAGE_SAREA_DEFINES__ + +/* 2 heaps (1 for card, 1 for agp), each divided into up to 128 + * regions, subject to a minimum region size of (1<<16) == 64k. + * + * Clients may subdivide regions internally, but when sharing between + * clients, the region size is the minimum granularity. + */ + +#define SAVAGE_CARD_HEAP 0 +#define SAVAGE_AGP_HEAP 1 +#define SAVAGE_NR_TEX_HEAPS 2 +#define SAVAGE_NR_TEX_REGIONS 16 +#define SAVAGE_LOG_MIN_TEX_REGION_SIZE 16 + +#endif /* __SAVAGE_SAREA_DEFINES__ */ + +typedef struct _drm_savage_sarea { + /* LRU lists for texture memory in agp space and on the card. + */ + struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS + + 1]; + unsigned int texAge[SAVAGE_NR_TEX_HEAPS]; + + /* Mechanism to validate card state. + */ + int ctxOwner; +} drm_savage_sarea_t, *drm_savage_sarea_ptr; + +/* Savage-specific ioctls + */ +#define DRM_SAVAGE_BCI_INIT 0x00 +#define DRM_SAVAGE_BCI_CMDBUF 0x01 +#define DRM_SAVAGE_BCI_EVENT_EMIT 0x02 +#define DRM_SAVAGE_BCI_EVENT_WAIT 0x03 + +#define DRM_IOCTL_SAVAGE_BCI_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_INIT, drm_savage_init_t) +#define DRM_IOCTL_SAVAGE_BCI_CMDBUF DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_CMDBUF, drm_savage_cmdbuf_t) +#define DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_EMIT, drm_savage_event_emit_t) +#define DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_WAIT, drm_savage_event_wait_t) + +#define SAVAGE_DMA_PCI 1 +#define SAVAGE_DMA_AGP 3 +typedef struct drm_savage_init { + enum { + SAVAGE_INIT_BCI = 1, + SAVAGE_CLEANUP_BCI = 2 + } func; + unsigned int sarea_priv_offset; + + /* some parameters */ + unsigned int cob_size; + unsigned int bci_threshold_lo, bci_threshold_hi; + unsigned int dma_type; + + /* frame buffer layout */ + unsigned int fb_bpp; + unsigned int front_offset, front_pitch; + unsigned int back_offset, back_pitch; + unsigned int depth_bpp; + unsigned int depth_offset, depth_pitch; + + /* local textures */ + unsigned int texture_offset; + unsigned int texture_size; + + /* physical locations of non-permanent maps */ + unsigned long status_offset; + unsigned long buffers_offset; + unsigned long agp_textures_offset; + unsigned long cmd_dma_offset; +} drm_savage_init_t; + +typedef union drm_savage_cmd_header drm_savage_cmd_header_t; +typedef struct drm_savage_cmdbuf { + /* command buffer in client's address space */ + drm_savage_cmd_header_t *cmd_addr; + unsigned int size; /* size of the command buffer in 64bit units */ + + unsigned int dma_idx; /* DMA buffer index to use */ + int discard; /* discard DMA buffer when done */ + /* vertex buffer in client's address space */ + unsigned int *vb_addr; + unsigned int vb_size; /* size of client vertex buffer in bytes */ + unsigned int vb_stride; /* stride of vertices in 32bit words */ + /* boxes in client's address space */ + struct drm_clip_rect *box_addr; + unsigned int nbox; /* number of clipping boxes */ +} drm_savage_cmdbuf_t; + +#define SAVAGE_WAIT_2D 0x1 /* wait for 2D idle before updating event tag */ +#define SAVAGE_WAIT_3D 0x2 /* wait for 3D idle before updating event tag */ +#define SAVAGE_WAIT_IRQ 0x4 /* emit or wait for IRQ, not implemented yet */ +typedef struct drm_savage_event { + unsigned int count; + unsigned int flags; +} drm_savage_event_emit_t, drm_savage_event_wait_t; + +/* Commands for the cmdbuf ioctl + */ +#define SAVAGE_CMD_STATE 0 /* a range of state registers */ +#define SAVAGE_CMD_DMA_PRIM 1 /* vertices from DMA buffer */ +#define SAVAGE_CMD_VB_PRIM 2 /* vertices from client vertex buffer */ +#define SAVAGE_CMD_DMA_IDX 3 /* indexed vertices from DMA buffer */ +#define SAVAGE_CMD_VB_IDX 4 /* indexed vertices client vertex buffer */ +#define SAVAGE_CMD_CLEAR 5 /* clear buffers */ +#define SAVAGE_CMD_SWAP 6 /* swap buffers */ + +/* Primitive types +*/ +#define SAVAGE_PRIM_TRILIST 0 /* triangle list */ +#define SAVAGE_PRIM_TRISTRIP 1 /* triangle strip */ +#define SAVAGE_PRIM_TRIFAN 2 /* triangle fan */ +#define SAVAGE_PRIM_TRILIST_201 3 /* reorder verts for correct flat + * shading on s3d */ + +/* Skip flags (vertex format) + */ +#define SAVAGE_SKIP_Z 0x01 +#define SAVAGE_SKIP_W 0x02 +#define SAVAGE_SKIP_C0 0x04 +#define SAVAGE_SKIP_C1 0x08 +#define SAVAGE_SKIP_S0 0x10 +#define SAVAGE_SKIP_T0 0x20 +#define SAVAGE_SKIP_ST0 0x30 +#define SAVAGE_SKIP_S1 0x40 +#define SAVAGE_SKIP_T1 0x80 +#define SAVAGE_SKIP_ST1 0xc0 +#define SAVAGE_SKIP_ALL_S3D 0x3f +#define SAVAGE_SKIP_ALL_S4 0xff + +/* Buffer names for clear command + */ +#define SAVAGE_FRONT 0x1 +#define SAVAGE_BACK 0x2 +#define SAVAGE_DEPTH 0x4 + +/* 64-bit command header + */ +union drm_savage_cmd_header { + struct { + unsigned char cmd; /* command */ + unsigned char pad0; + unsigned short pad1; + unsigned short pad2; + unsigned short pad3; + } cmd; /* generic */ + struct { + unsigned char cmd; + unsigned char global; /* need idle engine? */ + unsigned short count; /* number of consecutive registers */ + unsigned short start; /* first register */ + unsigned short pad3; + } state; /* SAVAGE_CMD_STATE */ + struct { + unsigned char cmd; + unsigned char prim; /* primitive type */ + unsigned short skip; /* vertex format (skip flags) */ + unsigned short count; /* number of vertices */ + unsigned short start; /* first vertex in DMA/vertex buffer */ + } prim; /* SAVAGE_CMD_DMA_PRIM, SAVAGE_CMD_VB_PRIM */ + struct { + unsigned char cmd; + unsigned char prim; + unsigned short skip; + unsigned short count; /* number of indices that follow */ + unsigned short pad3; + } idx; /* SAVAGE_CMD_DMA_IDX, SAVAGE_CMD_VB_IDX */ + struct { + unsigned char cmd; + unsigned char pad0; + unsigned short pad1; + unsigned int flags; + } clear0; /* SAVAGE_CMD_CLEAR */ + struct { + unsigned int mask; + unsigned int value; + } clear1; /* SAVAGE_CMD_CLEAR data */ +}; + +#endif diff --git a/kernel_headers/drm/sis_drm.h b/kernel_headers/drm/sis_drm.h new file mode 100644 index 0000000..df37632 --- /dev/null +++ b/kernel_headers/drm/sis_drm.h @@ -0,0 +1,71 @@ +/* sis_drv.h -- Private header for sis driver -*- linux-c -*- */ +/* + * Copyright 2005 Eric Anholt + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef __SIS_DRM_H__ +#define __SIS_DRM_H__ + +/* SiS specific ioctls */ +#define NOT_USED_0_3 +#define DRM_SIS_FB_ALLOC 0x04 +#define DRM_SIS_FB_FREE 0x05 +#define NOT_USED_6_12 +#define DRM_SIS_AGP_INIT 0x13 +#define DRM_SIS_AGP_ALLOC 0x14 +#define DRM_SIS_AGP_FREE 0x15 +#define DRM_SIS_FB_INIT 0x16 + +#define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_FB_ALLOC, drm_sis_mem_t) +#define DRM_IOCTL_SIS_FB_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_FREE, drm_sis_mem_t) +#define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_INIT, drm_sis_agp_t) +#define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_ALLOC, drm_sis_mem_t) +#define DRM_IOCTL_SIS_AGP_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_AGP_FREE, drm_sis_mem_t) +#define DRM_IOCTL_SIS_FB_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_INIT, drm_sis_fb_t) +/* +#define DRM_IOCTL_SIS_FLIP DRM_IOW( 0x48, drm_sis_flip_t) +#define DRM_IOCTL_SIS_FLIP_INIT DRM_IO( 0x49) +#define DRM_IOCTL_SIS_FLIP_FINAL DRM_IO( 0x50) +*/ + +typedef struct { + int context; + unsigned long offset; + unsigned long size; + unsigned long free; +} drm_sis_mem_t; + +typedef struct { + unsigned long offset, size; +} drm_sis_agp_t; + +typedef struct { + unsigned long offset, size; +} drm_sis_fb_t; + +struct sis_file_private { + struct list_head obj_list; +}; + +#endif /* __SIS_DRM_H__ */ diff --git a/kernel_headers/drm/tegra_drm.h b/kernel_headers/drm/tegra_drm.h new file mode 100644 index 0000000..7ef23ca --- /dev/null +++ b/kernel_headers/drm/tegra_drm.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _TEGRA_DRM_H_ +#define _TEGRA_DRM_H_ + +struct drm_tegra_gem_create { + __u64 size; + __u32 flags; + __u32 handle; +}; + +struct drm_tegra_gem_mmap { + __u32 handle; + __u32 offset; +}; + +struct drm_tegra_syncpt_read { + __u32 id; + __u32 value; +}; + +struct drm_tegra_syncpt_incr { + __u32 id; + __u32 pad; +}; + +struct drm_tegra_syncpt_wait { + __u32 id; + __u32 thresh; + __u32 timeout; + __u32 value; +}; + +#define DRM_TEGRA_NO_TIMEOUT (0xffffffff) + +struct drm_tegra_open_channel { + __u32 client; + __u32 pad; + __u64 context; +}; + +struct drm_tegra_close_channel { + __u64 context; +}; + +struct drm_tegra_get_syncpt { + __u64 context; + __u32 index; + __u32 id; +}; + +struct drm_tegra_syncpt { + __u32 id; + __u32 incrs; +}; + +struct drm_tegra_cmdbuf { + __u32 handle; + __u32 offset; + __u32 words; + __u32 pad; +}; + +struct drm_tegra_reloc { + struct { + __u32 handle; + __u32 offset; + } cmdbuf; + struct { + __u32 handle; + __u32 offset; + } target; + __u32 shift; + __u32 pad; +}; + +struct drm_tegra_waitchk { + __u32 handle; + __u32 offset; + __u32 syncpt; + __u32 thresh; +}; + +struct drm_tegra_submit { + __u64 context; + __u32 num_syncpts; + __u32 num_cmdbufs; + __u32 num_relocs; + __u32 num_waitchks; + __u32 waitchk_mask; + __u32 timeout; + __u64 syncpts; + __u64 cmdbufs; + __u64 relocs; + __u64 waitchks; + __u32 fence; /* Return value */ + + __u32 reserved[5]; /* future expansion */ +}; + +#define DRM_TEGRA_GEM_CREATE 0x00 +#define DRM_TEGRA_GEM_MMAP 0x01 +#define DRM_TEGRA_SYNCPT_READ 0x02 +#define DRM_TEGRA_SYNCPT_INCR 0x03 +#define DRM_TEGRA_SYNCPT_WAIT 0x04 +#define DRM_TEGRA_OPEN_CHANNEL 0x05 +#define DRM_TEGRA_CLOSE_CHANNEL 0x06 +#define DRM_TEGRA_GET_SYNCPT 0x07 +#define DRM_TEGRA_SUBMIT 0x08 + +#define DRM_IOCTL_TEGRA_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_CREATE, struct drm_tegra_gem_create) +#define DRM_IOCTL_TEGRA_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_MMAP, struct drm_tegra_gem_mmap) +#define DRM_IOCTL_TEGRA_SYNCPT_READ DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_READ, struct drm_tegra_syncpt_read) +#define DRM_IOCTL_TEGRA_SYNCPT_INCR DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_INCR, struct drm_tegra_syncpt_incr) +#define DRM_IOCTL_TEGRA_SYNCPT_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_WAIT, struct drm_tegra_syncpt_wait) +#define DRM_IOCTL_TEGRA_OPEN_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_OPEN_CHANNEL, struct drm_tegra_open_channel) +#define DRM_IOCTL_TEGRA_CLOSE_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_CLOSE_CHANNEL, struct drm_tegra_open_channel) +#define DRM_IOCTL_TEGRA_GET_SYNCPT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT, struct drm_tegra_get_syncpt) +#define DRM_IOCTL_TEGRA_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SUBMIT, struct drm_tegra_submit) + +#endif diff --git a/kernel_headers/drm/via_drm.h b/kernel_headers/drm/via_drm.h new file mode 100644 index 0000000..ece3e9f --- /dev/null +++ b/kernel_headers/drm/via_drm.h @@ -0,0 +1,279 @@ +/* + * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. + * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sub license, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ +#ifndef _VIA_DRM_H_ +#define _VIA_DRM_H_ + +#include + +/* WARNING: These defines must be the same as what the Xserver uses. + * if you change them, you must change the defines in the Xserver. + */ + +#ifndef _VIA_DEFINES_ +#define _VIA_DEFINES_ + +#include "via_drmclient.h" + +#define VIA_NR_SAREA_CLIPRECTS 8 +#define VIA_NR_XVMC_PORTS 10 +#define VIA_NR_XVMC_LOCKS 5 +#define VIA_MAX_CACHELINE_SIZE 64 +#define XVMCLOCKPTR(saPriv,lockNo) \ + ((__volatile__ struct drm_hw_lock *)(((((unsigned long) (saPriv)->XvMCLockArea) + \ + (VIA_MAX_CACHELINE_SIZE - 1)) & \ + ~(VIA_MAX_CACHELINE_SIZE - 1)) + \ + VIA_MAX_CACHELINE_SIZE*(lockNo))) + +/* Each region is a minimum of 64k, and there are at most 64 of them. + */ +#define VIA_NR_TEX_REGIONS 64 +#define VIA_LOG_MIN_TEX_REGION_SIZE 16 +#endif + +#define VIA_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */ +#define VIA_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */ +#define VIA_UPLOAD_CTX 0x4 +#define VIA_UPLOAD_BUFFERS 0x8 +#define VIA_UPLOAD_TEX0 0x10 +#define VIA_UPLOAD_TEX1 0x20 +#define VIA_UPLOAD_CLIPRECTS 0x40 +#define VIA_UPLOAD_ALL 0xff + +/* VIA specific ioctls */ +#define DRM_VIA_ALLOCMEM 0x00 +#define DRM_VIA_FREEMEM 0x01 +#define DRM_VIA_AGP_INIT 0x02 +#define DRM_VIA_FB_INIT 0x03 +#define DRM_VIA_MAP_INIT 0x04 +#define DRM_VIA_DEC_FUTEX 0x05 +#define NOT_USED +#define DRM_VIA_DMA_INIT 0x07 +#define DRM_VIA_CMDBUFFER 0x08 +#define DRM_VIA_FLUSH 0x09 +#define DRM_VIA_PCICMD 0x0a +#define DRM_VIA_CMDBUF_SIZE 0x0b +#define NOT_USED +#define DRM_VIA_WAIT_IRQ 0x0d +#define DRM_VIA_DMA_BLIT 0x0e +#define DRM_VIA_BLIT_SYNC 0x0f + +#define DRM_IOCTL_VIA_ALLOCMEM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_ALLOCMEM, drm_via_mem_t) +#define DRM_IOCTL_VIA_FREEMEM DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_FREEMEM, drm_via_mem_t) +#define DRM_IOCTL_VIA_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_AGP_INIT, drm_via_agp_t) +#define DRM_IOCTL_VIA_FB_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_FB_INIT, drm_via_fb_t) +#define DRM_IOCTL_VIA_MAP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_MAP_INIT, drm_via_init_t) +#define DRM_IOCTL_VIA_DEC_FUTEX DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_DEC_FUTEX, drm_via_futex_t) +#define DRM_IOCTL_VIA_DMA_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_DMA_INIT, drm_via_dma_init_t) +#define DRM_IOCTL_VIA_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_CMDBUFFER, drm_via_cmdbuffer_t) +#define DRM_IOCTL_VIA_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_VIA_FLUSH) +#define DRM_IOCTL_VIA_PCICMD DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_PCICMD, drm_via_cmdbuffer_t) +#define DRM_IOCTL_VIA_CMDBUF_SIZE DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_CMDBUF_SIZE, \ + drm_via_cmdbuf_size_t) +#define DRM_IOCTL_VIA_WAIT_IRQ DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_WAIT_IRQ, drm_via_irqwait_t) +#define DRM_IOCTL_VIA_DMA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_DMA_BLIT, drm_via_dmablit_t) +#define DRM_IOCTL_VIA_BLIT_SYNC DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_BLIT_SYNC, drm_via_blitsync_t) + +/* Indices into buf.Setup where various bits of state are mirrored per + * context and per buffer. These can be fired at the card as a unit, + * or in a piecewise fashion as required. + */ + +#define VIA_TEX_SETUP_SIZE 8 + +/* Flags for clear ioctl + */ +#define VIA_FRONT 0x1 +#define VIA_BACK 0x2 +#define VIA_DEPTH 0x4 +#define VIA_STENCIL 0x8 +#define VIA_MEM_VIDEO 0 /* matches drm constant */ +#define VIA_MEM_AGP 1 /* matches drm constant */ +#define VIA_MEM_SYSTEM 2 +#define VIA_MEM_MIXED 3 +#define VIA_MEM_UNKNOWN 4 + +typedef struct { + __u32 offset; + __u32 size; +} drm_via_agp_t; + +typedef struct { + __u32 offset; + __u32 size; +} drm_via_fb_t; + +typedef struct { + __u32 context; + __u32 type; + __u32 size; + unsigned long index; + unsigned long offset; +} drm_via_mem_t; + +typedef struct _drm_via_init { + enum { + VIA_INIT_MAP = 0x01, + VIA_CLEANUP_MAP = 0x02 + } func; + + unsigned long sarea_priv_offset; + unsigned long fb_offset; + unsigned long mmio_offset; + unsigned long agpAddr; +} drm_via_init_t; + +typedef struct _drm_via_futex { + enum { + VIA_FUTEX_WAIT = 0x00, + VIA_FUTEX_WAKE = 0X01 + } func; + __u32 ms; + __u32 lock; + __u32 val; +} drm_via_futex_t; + +typedef struct _drm_via_dma_init { + enum { + VIA_INIT_DMA = 0x01, + VIA_CLEANUP_DMA = 0x02, + VIA_DMA_INITIALIZED = 0x03 + } func; + + unsigned long offset; + unsigned long size; + unsigned long reg_pause_addr; +} drm_via_dma_init_t; + +typedef struct _drm_via_cmdbuffer { + char *buf; + unsigned long size; +} drm_via_cmdbuffer_t; + +/* Warning: If you change the SAREA structure you must change the Xserver + * structure as well */ + +typedef struct _drm_via_tex_region { + unsigned char next, prev; /* indices to form a circular LRU */ + unsigned char inUse; /* owned by a client, or free? */ + int age; /* tracked by clients to update local LRU's */ +} drm_via_tex_region_t; + +typedef struct _drm_via_sarea { + unsigned int dirty; + unsigned int nbox; + struct drm_clip_rect boxes[VIA_NR_SAREA_CLIPRECTS]; + drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1]; + int texAge; /* last time texture was uploaded */ + int ctxOwner; /* last context to upload state */ + int vertexPrim; + + /* + * Below is for XvMC. + * We want the lock integers alone on, and aligned to, a cache line. + * Therefore this somewhat strange construct. + */ + + char XvMCLockArea[VIA_MAX_CACHELINE_SIZE * (VIA_NR_XVMC_LOCKS + 1)]; + + unsigned int XvMCDisplaying[VIA_NR_XVMC_PORTS]; + unsigned int XvMCSubPicOn[VIA_NR_XVMC_PORTS]; + unsigned int XvMCCtxNoGrabbed; /* Last context to hold decoder */ + + /* Used by the 3d driver only at this point, for pageflipping: + */ + unsigned int pfCurrentOffset; +} drm_via_sarea_t; + +typedef struct _drm_via_cmdbuf_size { + enum { + VIA_CMDBUF_SPACE = 0x01, + VIA_CMDBUF_LAG = 0x02 + } func; + int wait; + __u32 size; +} drm_via_cmdbuf_size_t; + +typedef enum { + VIA_IRQ_ABSOLUTE = 0x0, + VIA_IRQ_RELATIVE = 0x1, + VIA_IRQ_SIGNAL = 0x10000000, + VIA_IRQ_FORCE_SEQUENCE = 0x20000000 +} via_irq_seq_type_t; + +#define VIA_IRQ_FLAGS_MASK 0xF0000000 + +enum drm_via_irqs { + drm_via_irq_hqv0 = 0, + drm_via_irq_hqv1, + drm_via_irq_dma0_dd, + drm_via_irq_dma0_td, + drm_via_irq_dma1_dd, + drm_via_irq_dma1_td, + drm_via_irq_num +}; + +struct drm_via_wait_irq_request { + unsigned irq; + via_irq_seq_type_t type; + __u32 sequence; + __u32 signal; +}; + +typedef union drm_via_irqwait { + struct drm_via_wait_irq_request request; + struct drm_wait_vblank_reply reply; +} drm_via_irqwait_t; + +typedef struct drm_via_blitsync { + __u32 sync_handle; + unsigned engine; +} drm_via_blitsync_t; + +/* - * Below,"flags" is currently unused but will be used for possible future + * extensions like kernel space bounce buffers for bad alignments and + * blit engine busy-wait polling for better latency in the absence of + * interrupts. + */ + +typedef struct drm_via_dmablit { + __u32 num_lines; + __u32 line_length; + + __u32 fb_addr; + __u32 fb_stride; + + unsigned char *mem_addr; + __u32 mem_stride; + + __u32 flags; + int to_fb; + + drm_via_blitsync_t sync; +} drm_via_dmablit_t; + +struct via_file_private { + struct list_head obj_list; +}; + +#endif /* _VIA_DRM_H_ */ diff --git a/kernel_headers/drm/vmwgfx_drm.h b/kernel_headers/drm/vmwgfx_drm.h new file mode 100644 index 0000000..bcb0912 --- /dev/null +++ b/kernel_headers/drm/vmwgfx_drm.h @@ -0,0 +1,790 @@ +/************************************************************************** + * + * Copyright © 2009 VMware, Inc., Palo Alto, CA., USA + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#ifndef __VMWGFX_DRM_H__ +#define __VMWGFX_DRM_H__ + +#define DRM_VMW_MAX_SURFACE_FACES 6 +#define DRM_VMW_MAX_MIP_LEVELS 24 + + +#define DRM_VMW_GET_PARAM 0 +#define DRM_VMW_ALLOC_DMABUF 1 +#define DRM_VMW_UNREF_DMABUF 2 +#define DRM_VMW_CURSOR_BYPASS 3 +/* guarded by DRM_VMW_PARAM_NUM_STREAMS != 0*/ +#define DRM_VMW_CONTROL_STREAM 4 +#define DRM_VMW_CLAIM_STREAM 5 +#define DRM_VMW_UNREF_STREAM 6 +/* guarded by DRM_VMW_PARAM_3D == 1 */ +#define DRM_VMW_CREATE_CONTEXT 7 +#define DRM_VMW_UNREF_CONTEXT 8 +#define DRM_VMW_CREATE_SURFACE 9 +#define DRM_VMW_UNREF_SURFACE 10 +#define DRM_VMW_REF_SURFACE 11 +#define DRM_VMW_EXECBUF 12 +#define DRM_VMW_GET_3D_CAP 13 +#define DRM_VMW_FENCE_WAIT 14 +#define DRM_VMW_FENCE_SIGNALED 15 +#define DRM_VMW_FENCE_UNREF 16 +#define DRM_VMW_FENCE_EVENT 17 +#define DRM_VMW_PRESENT 18 +#define DRM_VMW_PRESENT_READBACK 19 +#define DRM_VMW_UPDATE_LAYOUT 20 + +/*************************************************************************/ +/** + * DRM_VMW_GET_PARAM - get device information. + * + * DRM_VMW_PARAM_FIFO_OFFSET: + * Offset to use to map the first page of the FIFO read-only. + * The fifo is mapped using the mmap() system call on the drm device. + * + * DRM_VMW_PARAM_OVERLAY_IOCTL: + * Does the driver support the overlay ioctl. + */ + +#define DRM_VMW_PARAM_NUM_STREAMS 0 +#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 +#define DRM_VMW_PARAM_3D 2 +#define DRM_VMW_PARAM_HW_CAPS 3 +#define DRM_VMW_PARAM_FIFO_CAPS 4 +#define DRM_VMW_PARAM_MAX_FB_SIZE 5 +#define DRM_VMW_PARAM_FIFO_HW_VERSION 6 + +/** + * struct drm_vmw_getparam_arg + * + * @value: Returned value. //Out + * @param: Parameter to query. //In. + * + * Argument to the DRM_VMW_GET_PARAM Ioctl. + */ + +struct drm_vmw_getparam_arg { + uint64_t value; + uint32_t param; + uint32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_CREATE_CONTEXT - Create a host context. + * + * Allocates a device unique context id, and queues a create context command + * for the host. Does not wait for host completion. + */ + +/** + * struct drm_vmw_context_arg + * + * @cid: Device unique context ID. + * + * Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl. + * Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl. + */ + +struct drm_vmw_context_arg { + int32_t cid; + uint32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_UNREF_CONTEXT - Create a host context. + * + * Frees a global context id, and queues a destroy host command for the host. + * Does not wait for host completion. The context ID can be used directly + * in the command stream and shows up as the same context ID on the host. + */ + +/*************************************************************************/ +/** + * DRM_VMW_CREATE_SURFACE - Create a host suface. + * + * Allocates a device unique surface id, and queues a create surface command + * for the host. Does not wait for host completion. The surface ID can be + * used directly in the command stream and shows up as the same surface + * ID on the host. + */ + +/** + * struct drm_wmv_surface_create_req + * + * @flags: Surface flags as understood by the host. + * @format: Surface format as understood by the host. + * @mip_levels: Number of mip levels for each face. + * An unused face should have 0 encoded. + * @size_addr: Address of a user-space array of sruct drm_vmw_size + * cast to an uint64_t for 32-64 bit compatibility. + * The size of the array should equal the total number of mipmap levels. + * @shareable: Boolean whether other clients (as identified by file descriptors) + * may reference this surface. + * @scanout: Boolean whether the surface is intended to be used as a + * scanout. + * + * Input data to the DRM_VMW_CREATE_SURFACE Ioctl. + * Output data from the DRM_VMW_REF_SURFACE Ioctl. + */ + +struct drm_vmw_surface_create_req { + uint32_t flags; + uint32_t format; + uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES]; + uint64_t size_addr; + int32_t shareable; + int32_t scanout; +}; + +/** + * struct drm_wmv_surface_arg + * + * @sid: Surface id of created surface or surface to destroy or reference. + * + * Output data from the DRM_VMW_CREATE_SURFACE Ioctl. + * Input argument to the DRM_VMW_UNREF_SURFACE Ioctl. + * Input argument to the DRM_VMW_REF_SURFACE Ioctl. + */ + +struct drm_vmw_surface_arg { + int32_t sid; + uint32_t pad64; +}; + +/** + * struct drm_vmw_size ioctl. + * + * @width - mip level width + * @height - mip level height + * @depth - mip level depth + * + * Description of a mip level. + * Input data to the DRM_WMW_CREATE_SURFACE Ioctl. + */ + +struct drm_vmw_size { + uint32_t width; + uint32_t height; + uint32_t depth; + uint32_t pad64; +}; + +/** + * union drm_vmw_surface_create_arg + * + * @rep: Output data as described above. + * @req: Input data as described above. + * + * Argument to the DRM_VMW_CREATE_SURFACE Ioctl. + */ + +union drm_vmw_surface_create_arg { + struct drm_vmw_surface_arg rep; + struct drm_vmw_surface_create_req req; +}; + +/*************************************************************************/ +/** + * DRM_VMW_REF_SURFACE - Reference a host surface. + * + * Puts a reference on a host surface with a give sid, as previously + * returned by the DRM_VMW_CREATE_SURFACE ioctl. + * A reference will make sure the surface isn't destroyed while we hold + * it and will allow the calling client to use the surface ID in the command + * stream. + * + * On successful return, the Ioctl returns the surface information given + * in the DRM_VMW_CREATE_SURFACE ioctl. + */ + +/** + * union drm_vmw_surface_reference_arg + * + * @rep: Output data as described above. + * @req: Input data as described above. + * + * Argument to the DRM_VMW_REF_SURFACE Ioctl. + */ + +union drm_vmw_surface_reference_arg { + struct drm_vmw_surface_create_req rep; + struct drm_vmw_surface_arg req; +}; + +/*************************************************************************/ +/** + * DRM_VMW_UNREF_SURFACE - Unreference a host surface. + * + * Clear a reference previously put on a host surface. + * When all references are gone, including the one implicitly placed + * on creation, + * a destroy surface command will be queued for the host. + * Does not wait for completion. + */ + +/*************************************************************************/ +/** + * DRM_VMW_EXECBUF + * + * Submit a command buffer for execution on the host, and return a + * fence seqno that when signaled, indicates that the command buffer has + * executed. + */ + +/** + * struct drm_vmw_execbuf_arg + * + * @commands: User-space address of a command buffer cast to an uint64_t. + * @command-size: Size in bytes of the command buffer. + * @throttle-us: Sleep until software is less than @throttle_us + * microseconds ahead of hardware. The driver may round this value + * to the nearest kernel tick. + * @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an + * uint64_t. + * @version: Allows expanding the execbuf ioctl parameters without breaking + * backwards compatibility, since user-space will always tell the kernel + * which version it uses. + * @flags: Execbuf flags. None currently. + * + * Argument to the DRM_VMW_EXECBUF Ioctl. + */ + +#define DRM_VMW_EXECBUF_VERSION 1 + +struct drm_vmw_execbuf_arg { + uint64_t commands; + uint32_t command_size; + uint32_t throttle_us; + uint64_t fence_rep; + uint32_t version; + uint32_t flags; +}; + +/** + * struct drm_vmw_fence_rep + * + * @handle: Fence object handle for fence associated with a command submission. + * @mask: Fence flags relevant for this fence object. + * @seqno: Fence sequence number in fifo. A fence object with a lower + * seqno will signal the EXEC flag before a fence object with a higher + * seqno. This can be used by user-space to avoid kernel calls to determine + * whether a fence has signaled the EXEC flag. Note that @seqno will + * wrap at 32-bit. + * @passed_seqno: The highest seqno number processed by the hardware + * so far. This can be used to mark user-space fence objects as signaled, and + * to determine whether a fence seqno might be stale. + * @error: This member should've been set to -EFAULT on submission. + * The following actions should be take on completion: + * error == -EFAULT: Fence communication failed. The host is synchronized. + * Use the last fence id read from the FIFO fence register. + * error != 0 && error != -EFAULT: + * Fence submission failed. The host is synchronized. Use the fence_seq member. + * error == 0: All is OK, The host may not be synchronized. + * Use the fence_seq member. + * + * Input / Output data to the DRM_VMW_EXECBUF Ioctl. + */ + +struct drm_vmw_fence_rep { + uint32_t handle; + uint32_t mask; + uint32_t seqno; + uint32_t passed_seqno; + uint32_t pad64; + int32_t error; +}; + +/*************************************************************************/ +/** + * DRM_VMW_ALLOC_DMABUF + * + * Allocate a DMA buffer that is visible also to the host. + * NOTE: The buffer is + * identified by a handle and an offset, which are private to the guest, but + * useable in the command stream. The guest kernel may translate these + * and patch up the command stream accordingly. In the future, the offset may + * be zero at all times, or it may disappear from the interface before it is + * fixed. + * + * The DMA buffer may stay user-space mapped in the guest at all times, + * and is thus suitable for sub-allocation. + * + * DMA buffers are mapped using the mmap() syscall on the drm device. + */ + +/** + * struct drm_vmw_alloc_dmabuf_req + * + * @size: Required minimum size of the buffer. + * + * Input data to the DRM_VMW_ALLOC_DMABUF Ioctl. + */ + +struct drm_vmw_alloc_dmabuf_req { + uint32_t size; + uint32_t pad64; +}; + +/** + * struct drm_vmw_dmabuf_rep + * + * @map_handle: Offset to use in the mmap() call used to map the buffer. + * @handle: Handle unique to this buffer. Used for unreferencing. + * @cur_gmr_id: GMR id to use in the command stream when this buffer is + * referenced. See not above. + * @cur_gmr_offset: Offset to use in the command stream when this buffer is + * referenced. See note above. + * + * Output data from the DRM_VMW_ALLOC_DMABUF Ioctl. + */ + +struct drm_vmw_dmabuf_rep { + uint64_t map_handle; + uint32_t handle; + uint32_t cur_gmr_id; + uint32_t cur_gmr_offset; + uint32_t pad64; +}; + +/** + * union drm_vmw_dmabuf_arg + * + * @req: Input data as described above. + * @rep: Output data as described above. + * + * Argument to the DRM_VMW_ALLOC_DMABUF Ioctl. + */ + +union drm_vmw_alloc_dmabuf_arg { + struct drm_vmw_alloc_dmabuf_req req; + struct drm_vmw_dmabuf_rep rep; +}; + +/*************************************************************************/ +/** + * DRM_VMW_UNREF_DMABUF - Free a DMA buffer. + * + */ + +/** + * struct drm_vmw_unref_dmabuf_arg + * + * @handle: Handle indicating what buffer to free. Obtained from the + * DRM_VMW_ALLOC_DMABUF Ioctl. + * + * Argument to the DRM_VMW_UNREF_DMABUF Ioctl. + */ + +struct drm_vmw_unref_dmabuf_arg { + uint32_t handle; + uint32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_CONTROL_STREAM - Control overlays, aka streams. + * + * This IOCTL controls the overlay units of the svga device. + * The SVGA overlay units does not work like regular hardware units in + * that they do not automaticaly read back the contents of the given dma + * buffer. But instead only read back for each call to this ioctl, and + * at any point between this call being made and a following call that + * either changes the buffer or disables the stream. + */ + +/** + * struct drm_vmw_rect + * + * Defines a rectangle. Used in the overlay ioctl to define + * source and destination rectangle. + */ + +struct drm_vmw_rect { + int32_t x; + int32_t y; + uint32_t w; + uint32_t h; +}; + +/** + * struct drm_vmw_control_stream_arg + * + * @stream_id: Stearm to control + * @enabled: If false all following arguments are ignored. + * @handle: Handle to buffer for getting data from. + * @format: Format of the overlay as understood by the host. + * @width: Width of the overlay. + * @height: Height of the overlay. + * @size: Size of the overlay in bytes. + * @pitch: Array of pitches, the two last are only used for YUV12 formats. + * @offset: Offset from start of dma buffer to overlay. + * @src: Source rect, must be within the defined area above. + * @dst: Destination rect, x and y may be negative. + * + * Argument to the DRM_VMW_CONTROL_STREAM Ioctl. + */ + +struct drm_vmw_control_stream_arg { + uint32_t stream_id; + uint32_t enabled; + + uint32_t flags; + uint32_t color_key; + + uint32_t handle; + uint32_t offset; + int32_t format; + uint32_t size; + uint32_t width; + uint32_t height; + uint32_t pitch[3]; + + uint32_t pad64; + struct drm_vmw_rect src; + struct drm_vmw_rect dst; +}; + +/*************************************************************************/ +/** + * DRM_VMW_CURSOR_BYPASS - Give extra information about cursor bypass. + * + */ + +#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0) +#define DRM_VMW_CURSOR_BYPASS_FLAGS (1) + +/** + * struct drm_vmw_cursor_bypass_arg + * + * @flags: Flags. + * @crtc_id: Crtc id, only used if DMR_CURSOR_BYPASS_ALL isn't passed. + * @xpos: X position of cursor. + * @ypos: Y position of cursor. + * @xhot: X hotspot. + * @yhot: Y hotspot. + * + * Argument to the DRM_VMW_CURSOR_BYPASS Ioctl. + */ + +struct drm_vmw_cursor_bypass_arg { + uint32_t flags; + uint32_t crtc_id; + int32_t xpos; + int32_t ypos; + int32_t xhot; + int32_t yhot; +}; + +/*************************************************************************/ +/** + * DRM_VMW_CLAIM_STREAM - Claim a single stream. + */ + +/** + * struct drm_vmw_context_arg + * + * @stream_id: Device unique context ID. + * + * Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl. + * Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl. + */ + +struct drm_vmw_stream_arg { + uint32_t stream_id; + uint32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_UNREF_STREAM - Unclaim a stream. + * + * Return a single stream that was claimed by this process. Also makes + * sure that the stream has been stopped. + */ + +/*************************************************************************/ +/** + * DRM_VMW_GET_3D_CAP + * + * Read 3D capabilities from the FIFO + * + */ + +/** + * struct drm_vmw_get_3d_cap_arg + * + * @buffer: Pointer to a buffer for capability data, cast to an uint64_t + * @size: Max size to copy + * + * Input argument to the DRM_VMW_GET_3D_CAP_IOCTL + * ioctls. + */ + +struct drm_vmw_get_3d_cap_arg { + uint64_t buffer; + uint32_t max_size; + uint32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_FENCE_WAIT + * + * Waits for a fence object to signal. The wait is interruptible, so that + * signals may be delivered during the interrupt. The wait may timeout, + * in which case the calls returns -EBUSY. If the wait is restarted, + * that is restarting without resetting @cookie_valid to zero, + * the timeout is computed from the first call. + * + * The flags argument to the DRM_VMW_FENCE_WAIT ioctl indicates what to wait + * on: + * DRM_VMW_FENCE_FLAG_EXEC: All commands ahead of the fence in the command + * stream + * have executed. + * DRM_VMW_FENCE_FLAG_QUERY: All query results resulting from query finish + * commands + * in the buffer given to the EXECBUF ioctl returning the fence object handle + * are available to user-space. + * + * DRM_VMW_WAIT_OPTION_UNREF: If this wait option is given, and the + * fenc wait ioctl returns 0, the fence object has been unreferenced after + * the wait. + */ + +#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0) +#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1) + +#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0) + +/** + * struct drm_vmw_fence_wait_arg + * + * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl. + * @cookie_valid: Must be reset to 0 on first call. Left alone on restart. + * @kernel_cookie: Set to 0 on first call. Left alone on restart. + * @timeout_us: Wait timeout in microseconds. 0 for indefinite timeout. + * @lazy: Set to 1 if timing is not critical. Allow more than a kernel tick + * before returning. + * @flags: Fence flags to wait on. + * @wait_options: Options that control the behaviour of the wait ioctl. + * + * Input argument to the DRM_VMW_FENCE_WAIT ioctl. + */ + +struct drm_vmw_fence_wait_arg { + uint32_t handle; + int32_t cookie_valid; + uint64_t kernel_cookie; + uint64_t timeout_us; + int32_t lazy; + int32_t flags; + int32_t wait_options; + int32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_FENCE_SIGNALED + * + * Checks if a fence object is signaled.. + */ + +/** + * struct drm_vmw_fence_signaled_arg + * + * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl. + * @flags: Fence object flags input to DRM_VMW_FENCE_SIGNALED ioctl + * @signaled: Out: Flags signaled. + * @sequence: Out: Highest sequence passed so far. Can be used to signal the + * EXEC flag of user-space fence objects. + * + * Input/Output argument to the DRM_VMW_FENCE_SIGNALED and DRM_VMW_FENCE_UNREF + * ioctls. + */ + +struct drm_vmw_fence_signaled_arg { + uint32_t handle; + uint32_t flags; + int32_t signaled; + uint32_t passed_seqno; + uint32_t signaled_flags; + uint32_t pad64; +}; + +/*************************************************************************/ +/** + * DRM_VMW_FENCE_UNREF + * + * Unreferences a fence object, and causes it to be destroyed if there are no + * other references to it. + * + */ + +/** + * struct drm_vmw_fence_arg + * + * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl. + * + * Input/Output argument to the DRM_VMW_FENCE_UNREF ioctl.. + */ + +struct drm_vmw_fence_arg { + uint32_t handle; + uint32_t pad64; +}; + + +/*************************************************************************/ +/** + * DRM_VMW_FENCE_EVENT + * + * Queues an event on a fence to be delivered on the drm character device + * when the fence has signaled the DRM_VMW_FENCE_FLAG_EXEC flag. + * Optionally the approximate time when the fence signaled is + * given by the event. + */ + +/* + * The event type + */ +#define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000 + +struct drm_vmw_event_fence { + struct drm_event base; + uint64_t user_data; + uint32_t tv_sec; + uint32_t tv_usec; +}; + +/* + * Flags that may be given to the command. + */ +/* Request fence signaled time on the event. */ +#define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0) + +/** + * struct drm_vmw_fence_event_arg + * + * @fence_rep: Pointer to fence_rep structure cast to uint64_t or 0 if + * the fence is not supposed to be referenced by user-space. + * @user_info: Info to be delivered with the event. + * @handle: Attach the event to this fence only. + * @flags: A set of flags as defined above. + */ +struct drm_vmw_fence_event_arg { + uint64_t fence_rep; + uint64_t user_data; + uint32_t handle; + uint32_t flags; +}; + + +/*************************************************************************/ +/** + * DRM_VMW_PRESENT + * + * Executes an SVGA present on a given fb for a given surface. The surface + * is placed on the framebuffer. Cliprects are given relative to the given + * point (the point disignated by dest_{x|y}). + * + */ + +/** + * struct drm_vmw_present_arg + * @fb_id: framebuffer id to present / read back from. + * @sid: Surface id to present from. + * @dest_x: X placement coordinate for surface. + * @dest_y: Y placement coordinate for surface. + * @clips_ptr: Pointer to an array of clip rects cast to an uint64_t. + * @num_clips: Number of cliprects given relative to the framebuffer origin, + * in the same coordinate space as the frame buffer. + * @pad64: Unused 64-bit padding. + * + * Input argument to the DRM_VMW_PRESENT ioctl. + */ + +struct drm_vmw_present_arg { + uint32_t fb_id; + uint32_t sid; + int32_t dest_x; + int32_t dest_y; + uint64_t clips_ptr; + uint32_t num_clips; + uint32_t pad64; +}; + + +/*************************************************************************/ +/** + * DRM_VMW_PRESENT_READBACK + * + * Executes an SVGA present readback from a given fb to the dma buffer + * currently bound as the fb. If there is no dma buffer bound to the fb, + * an error will be returned. + * + */ + +/** + * struct drm_vmw_present_arg + * @fb_id: fb_id to present / read back from. + * @num_clips: Number of cliprects. + * @clips_ptr: Pointer to an array of clip rects cast to an uint64_t. + * @fence_rep: Pointer to a struct drm_vmw_fence_rep, cast to an uint64_t. + * If this member is NULL, then the ioctl should not return a fence. + */ + +struct drm_vmw_present_readback_arg { + uint32_t fb_id; + uint32_t num_clips; + uint64_t clips_ptr; + uint64_t fence_rep; +}; + +/*************************************************************************/ +/** + * DRM_VMW_UPDATE_LAYOUT - Update layout + * + * Updates the preferred modes and connection status for connectors. The + * command consists of one drm_vmw_update_layout_arg pointing to an array + * of num_outputs drm_vmw_rect's. + */ + +/** + * struct drm_vmw_update_layout_arg + * + * @num_outputs: number of active connectors + * @rects: pointer to array of drm_vmw_rect cast to an uint64_t + * + * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl. + */ +struct drm_vmw_update_layout_arg { + uint32_t num_outputs; + uint32_t pad64; + uint64_t rects; +}; + +#endif diff --git a/kernel_headers/linux/..install.cmd b/kernel_headers/linux/..install.cmd new file mode 100644 index 0000000..ab41229 --- /dev/null +++ b/kernel_headers/linux/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux /android/kernels/moto/surnia/kernel-msm/include/uapi/linux acct.h adb.h adfs_fs.h affs_hardblocks.h agpgart.h aio_abi.h android_pmem.h apm_bios.h arcfb.h ashmem.h atalk.h atm.h atm_eni.h atm_he.h atm_idt77105.h atm_nicstar.h atm_tcp.h atm_zatm.h atmapi.h atmarp.h atmbr2684.h atmclip.h atmdev.h atmioc.h atmlec.h atmmpc.h atmppp.h atmsap.h atmsvc.h audit.h auto_fs.h auto_fs4.h auxvec.h avtimer.h ax25.h b1lli.h batterydata-interface.h baycom.h bfs_fs.h binfmts.h blkpg.h blktrace_api.h bpqether.h bsg.h btrfs.h can.h capability.h capi.h cciss_defs.h cciss_ioctl.h cdrom.h cgroupstats.h chio.h ci-bridge-spi.h cm4000_cs.h cn_proc.h coda.h coda_psdev.h coff.h connector.h const.h coresight-stm.h cramfs_fs.h cuda.h cyclades.h cycx_cfm.h danipc_ioctl.h dcbnl.h dccp.h demod_wrapper.h dlm.h dlm_device.h dlm_netlink.h dlm_plock.h dlmconstants.h dm-ioctl.h dm-log-userspace.h dn.h dqblk_xfs.h edd.h efs_fs_sb.h elf-em.h elf-fdpic.h elf.h elfcore.h ensigma_uccp330.h epm_adc.h errno.h errqueue.h esoc_ctrl.h ethtool.h eventpoll.h fadvise.h falloc.h fanotify.h fb.h fcntl.h fd.h fdreg.h fib_rules.h fiemap.h filter.h fips_status.h firewire-cdev.h firewire-constants.h flat.h fs.h fsl_hypervisor.h fuse.h futex.h gameport.h gen_stats.h genetlink.h gfs2_ondisk.h gigaset_dev.h hbtp_input.h hdlc.h hdlcdrv.h hdreg.h hid.h hiddev.h hidraw.h hpet.h hw_breakpoint.h hysdn_if.h i2c-dev.h i2c.h i2o-dev.h i8k.h icmp.h icmpv6.h idle_stats_device.h if.h if_addr.h if_addrlabel.h if_alg.h if_arcnet.h if_arp.h if_bonding.h if_bridge.h if_cablemodem.h if_eql.h if_ether.h if_fc.h if_fddi.h if_frad.h if_hippi.h if_infiniband.h if_link.h if_ltalk.h if_packet.h if_phonet.h if_plip.h if_ppp.h if_pppol2tp.h if_pppolac.h if_pppopns.h if_pppox.h if_slip.h if_team.h if_tun.h if_tunnel.h if_vlan.h if_x25.h igmp.h in.h in6.h in_route.h inet_diag.h inotify.h input.h ioctl.h ion.h ioprio.h ip.h ip6_tunnel.h ip_vs.h ipa_qmi_service_v01.h ipc.h ipmi.h ipmi_msgdefs.h ipsec.h ipv6.h ipv6_route.h ipx.h irda.h irqnr.h isdn.h isdn_divertif.h isdn_ppp.h isdnif.h iso_fs.h ivtv.h ivtvfb.h ixjuser.h jffs2.h joystick.h kd.h kdev_t.h kernel-page-flags.h kernel.h kernelcapi.h kexec.h keyboard.h keyctl.h kvm.h kvm_para.h l2tp.h limits.h llc.h loop.h lp.h magic.h major.h map_to_7segment.h matroxfb.h mdio.h media.h mei.h mempolicy.h meye.h mii.h minix_fs.h mman.h mmtimer.h mqueue.h mroute.h mroute6.h msdos_fs.h msg.h msm-core-interface.h msm_adc.h msm_adsp.h msm_audio.h msm_audio_aac.h msm_audio_ac3.h msm_audio_amrnb.h msm_audio_amrwb.h msm_audio_amrwbplus.h msm_audio_calibration.h msm_audio_mvs.h msm_audio_qcp.h msm_audio_sbc.h msm_audio_voicememo.h msm_audio_wma.h msm_audio_wmapro.h msm_charm.h msm_dsps.h msm_ion.h msm_ipa.h msm_ipc.h msm_kgsl.h msm_mdp.h msm_pft.h msm_q6vdec.h msm_q6venc.h msm_rmnet.h msm_rotator.h msm_thermal_ioctl.h msm_vidc_dec.h msm_vidc_enc.h mtio.h n_r3964.h nbd.h ncp.h ncp_fs.h ncp_mount.h ncp_no.h neighbour.h net.h net_dropmon.h net_map.h net_tstamp.h netconf.h netdevice.h netfilter.h netfilter_arp.h netfilter_bridge.h netfilter_decnet.h netfilter_ipv4.h netfilter_ipv6.h netlink.h netlink_diag.h netrom.h nfc.h nfs.h nfs2.h nfs3.h nfs4.h nfs4_mount.h nfs_fs.h nfs_idmap.h nfs_mount.h nfsacl.h nl80211.h nubus.h nvram.h omap3isp.h omapfb.h oneshot_sync.h oom.h openvswitch.h packet_diag.h param.h parport.h patchkey.h pci.h pci_regs.h perf_event.h personality.h pfkeyv2.h pg.h phantom.h phonet.h pkt_cls.h pkt_sched.h pktcdvd.h pmu.h poll.h posix_types.h ppdev.h ppp-comp.h ppp-ioctl.h ppp_defs.h pps.h prctl.h psci.h ptp_clock.h ptrace.h qcedev.h qcota.h qnx4_fs.h qnxtypes.h qrng.h qseecom.h quota.h radeonfb.h random.h raw.h rds.h reboot.h reiserfs_fs.h reiserfs_xattr.h resource.h rfkill.h rmnet_data.h rmnet_ipa_fd_ioctl.h romfs_fs.h rose.h route.h rtc.h rtnetlink.h scc.h sched.h screen_info.h sctp.h sdla.h seccomp.h securebits.h selinux_netlink.h sem.h serial.h serial_core.h serial_reg.h serio.h shm.h signal.h signalfd.h snmp.h sock_diag.h socket.h sockev.h sockios.h som.h sonet.h sonypi.h sound.h soundcard.h stat.h stddef.h string.h suspend_ioctls.h swab.h synclink.h sysctl.h sysinfo.h taskstats.h tcp.h tcp_metrics.h telephony.h termios.h time.h times.h timex.h tiocl.h tipc.h tipc_config.h toshiba.h tsc.h tty.h tty_flags.h types.h udf_fs_i.h udp.h uhid.h uinput.h uio.h ultrasound.h un.h unistd.h unix_diag.h usbdevice_fs.h utime.h utsname.h uuid.h uvcvideo.h v4l2-common.h v4l2-controls.h v4l2-dv-timings.h v4l2-mediabus.h v4l2-subdev.h veth.h vfio.h vhost.h videodev2.h virtio_9p.h virtio_balloon.h virtio_blk.h virtio_config.h virtio_console.h virtio_ids.h virtio_net.h virtio_pci.h virtio_ring.h virtio_rng.h vm_bms.h vt.h wait.h wanrouter.h watchdog.h wimax.h wireless.h x25.h xattr.h xfrm.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux /android/kernels/moto/surnia/kernel-msm/include/linux ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux version.h; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/.install diff --git a/kernel_headers/linux/.install b/kernel_headers/linux/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/acct.h b/kernel_headers/linux/acct.h new file mode 100644 index 0000000..19baf8a --- /dev/null +++ b/kernel_headers/linux/acct.h @@ -0,0 +1,116 @@ +/* + * BSD Process Accounting for Linux - Definitions + * + * Author: Marco van Wieringen (mvw@planets.elm.net) + * + * This header file contains the definitions needed to implement + * BSD-style process accounting. The kernel accounting code and all + * user-level programs that try to do something useful with the + * process accounting log must include this file. + * + * Copyright (C) 1995 - 1997 Marco van Wieringen - ELM Consultancy B.V. + * + */ + +#ifndef _LINUX_ACCT_H +#define _LINUX_ACCT_H + +#include + +#include +#include + +/* + * comp_t is a 16-bit "floating" point number with a 3-bit base 8 + * exponent and a 13-bit fraction. + * comp2_t is 24-bit with 5-bit base 2 exponent and 20 bit fraction + * (leading 1 not stored). + * See linux/kernel/acct.c for the specific encoding systems used. + */ + +typedef __u16 comp_t; +typedef __u32 comp2_t; + +/* + * accounting file record + * + * This structure contains all of the information written out to the + * process accounting file whenever a process exits. + */ + +#define ACCT_COMM 16 + +struct acct +{ + char ac_flag; /* Flags */ + char ac_version; /* Always set to ACCT_VERSION */ + /* for binary compatibility back until 2.0 */ + __u16 ac_uid16; /* LSB of Real User ID */ + __u16 ac_gid16; /* LSB of Real Group ID */ + __u16 ac_tty; /* Control Terminal */ + __u32 ac_btime; /* Process Creation Time */ + comp_t ac_utime; /* User Time */ + comp_t ac_stime; /* System Time */ + comp_t ac_etime; /* Elapsed Time */ + comp_t ac_mem; /* Average Memory Usage */ + comp_t ac_io; /* Chars Transferred */ + comp_t ac_rw; /* Blocks Read or Written */ + comp_t ac_minflt; /* Minor Pagefaults */ + comp_t ac_majflt; /* Major Pagefaults */ + comp_t ac_swaps; /* Number of Swaps */ +/* m68k had no padding here. */ + __u16 ac_ahz; /* AHZ */ + __u32 ac_exitcode; /* Exitcode */ + char ac_comm[ACCT_COMM + 1]; /* Command Name */ + __u8 ac_etime_hi; /* Elapsed Time MSB */ + __u16 ac_etime_lo; /* Elapsed Time LSB */ + __u32 ac_uid; /* Real User ID */ + __u32 ac_gid; /* Real Group ID */ +}; + +struct acct_v3 +{ + char ac_flag; /* Flags */ + char ac_version; /* Always set to ACCT_VERSION */ + __u16 ac_tty; /* Control Terminal */ + __u32 ac_exitcode; /* Exitcode */ + __u32 ac_uid; /* Real User ID */ + __u32 ac_gid; /* Real Group ID */ + __u32 ac_pid; /* Process ID */ + __u32 ac_ppid; /* Parent Process ID */ + __u32 ac_btime; /* Process Creation Time */ + float ac_etime; /* Elapsed Time */ + comp_t ac_utime; /* User Time */ + comp_t ac_stime; /* System Time */ + comp_t ac_mem; /* Average Memory Usage */ + comp_t ac_io; /* Chars Transferred */ + comp_t ac_rw; /* Blocks Read or Written */ + comp_t ac_minflt; /* Minor Pagefaults */ + comp_t ac_majflt; /* Major Pagefaults */ + comp_t ac_swaps; /* Number of Swaps */ + char ac_comm[ACCT_COMM]; /* Command Name */ +}; + +/* + * accounting flags + */ + /* bit set when the process ... */ +#define AFORK 0x01 /* ... executed fork, but did not exec */ +#define ASU 0x02 /* ... used super-user privileges */ +#define ACOMPAT 0x04 /* ... used compatibility mode (VAX only not used) */ +#define ACORE 0x08 /* ... dumped core */ +#define AXSIG 0x10 /* ... was killed by a signal */ + +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) +#define ACCT_BYTEORDER 0x80 /* accounting file is big endian */ +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) +#define ACCT_BYTEORDER 0x00 /* accounting file is little endian */ +#else +#error unspecified endianness +#endif + +#define ACCT_VERSION 2 +#define AHZ (HZ) + + +#endif /* _LINUX_ACCT_H */ diff --git a/kernel_headers/linux/adb.h b/kernel_headers/linux/adb.h new file mode 100644 index 0000000..0815025 --- /dev/null +++ b/kernel_headers/linux/adb.h @@ -0,0 +1,44 @@ +/* + * Definitions for ADB (Apple Desktop Bus) support. + */ +#ifndef __ADB_H +#define __ADB_H + +/* ADB commands */ +#define ADB_BUSRESET 0 +#define ADB_FLUSH(id) (0x01 | ((id) << 4)) +#define ADB_WRITEREG(id, reg) (0x08 | (reg) | ((id) << 4)) +#define ADB_READREG(id, reg) (0x0C | (reg) | ((id) << 4)) + +/* ADB default device IDs (upper 4 bits of ADB command byte) */ +#define ADB_DONGLE 1 /* "software execution control" devices */ +#define ADB_KEYBOARD 2 +#define ADB_MOUSE 3 +#define ADB_TABLET 4 +#define ADB_MODEM 5 +#define ADB_MISC 7 /* maybe a monitor */ + +#define ADB_RET_OK 0 +#define ADB_RET_TIMEOUT 3 + +/* The kind of ADB request. The controller may emulate some + or all of those CUDA/PMU packet kinds */ +#define ADB_PACKET 0 +#define CUDA_PACKET 1 +#define ERROR_PACKET 2 +#define TIMER_PACKET 3 +#define POWER_PACKET 4 +#define MACIIC_PACKET 5 +#define PMU_PACKET 6 +#define ADB_QUERY 7 + +/* ADB queries */ + +/* ADB_QUERY_GETDEVINFO + * Query ADB slot for device presence + * data[2] = id, rep[0] = orig addr, rep[1] = handler_id + */ +#define ADB_QUERY_GETDEVINFO 1 + + +#endif /* __ADB_H */ diff --git a/kernel_headers/linux/adfs_fs.h b/kernel_headers/linux/adfs_fs.h new file mode 100644 index 0000000..4f506dc --- /dev/null +++ b/kernel_headers/linux/adfs_fs.h @@ -0,0 +1,44 @@ +#ifndef _ADFS_FS_H +#define _ADFS_FS_H + +#include +#include + +/* + * Disc Record at disc address 0xc00 + */ +struct adfs_discrecord { + __u8 log2secsize; + __u8 secspertrack; + __u8 heads; + __u8 density; + __u8 idlen; + __u8 log2bpmb; + __u8 skew; + __u8 bootoption; + __u8 lowsector; + __u8 nzones; + __le16 zone_spare; + __le32 root; + __le32 disc_size; + __le16 disc_id; + __u8 disc_name[10]; + __le32 disc_type; + __le32 disc_size_high; + __u8 log2sharesize:4; + __u8 unused40:4; + __u8 big_flag:1; + __u8 unused41:1; + __u8 nzones_high; + __le32 format_version; + __le32 root_size; + __u8 unused52[60 - 52]; +}; + +#define ADFS_DISCRECORD (0xc00) +#define ADFS_DR_OFFSET (0x1c0) +#define ADFS_DR_SIZE 60 +#define ADFS_DR_SIZE_BITS (ADFS_DR_SIZE << 3) + + +#endif /* _ADFS_FS_H */ diff --git a/kernel_headers/linux/affs_hardblocks.h b/kernel_headers/linux/affs_hardblocks.h new file mode 100644 index 0000000..f1b948c --- /dev/null +++ b/kernel_headers/linux/affs_hardblocks.h @@ -0,0 +1,68 @@ +#ifndef AFFS_HARDBLOCKS_H +#define AFFS_HARDBLOCKS_H + +#include + +/* Just the needed definitions for the RDB of an Amiga HD. */ + +struct RigidDiskBlock { + __u32 rdb_ID; + __be32 rdb_SummedLongs; + __s32 rdb_ChkSum; + __u32 rdb_HostID; + __be32 rdb_BlockBytes; + __u32 rdb_Flags; + __u32 rdb_BadBlockList; + __be32 rdb_PartitionList; + __u32 rdb_FileSysHeaderList; + __u32 rdb_DriveInit; + __u32 rdb_Reserved1[6]; + __u32 rdb_Cylinders; + __u32 rdb_Sectors; + __u32 rdb_Heads; + __u32 rdb_Interleave; + __u32 rdb_Park; + __u32 rdb_Reserved2[3]; + __u32 rdb_WritePreComp; + __u32 rdb_ReducedWrite; + __u32 rdb_StepRate; + __u32 rdb_Reserved3[5]; + __u32 rdb_RDBBlocksLo; + __u32 rdb_RDBBlocksHi; + __u32 rdb_LoCylinder; + __u32 rdb_HiCylinder; + __u32 rdb_CylBlocks; + __u32 rdb_AutoParkSeconds; + __u32 rdb_HighRDSKBlock; + __u32 rdb_Reserved4; + char rdb_DiskVendor[8]; + char rdb_DiskProduct[16]; + char rdb_DiskRevision[4]; + char rdb_ControllerVendor[8]; + char rdb_ControllerProduct[16]; + char rdb_ControllerRevision[4]; + __u32 rdb_Reserved5[10]; +}; + +#define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */ + +struct PartitionBlock { + __be32 pb_ID; + __be32 pb_SummedLongs; + __s32 pb_ChkSum; + __u32 pb_HostID; + __be32 pb_Next; + __u32 pb_Flags; + __u32 pb_Reserved1[2]; + __u32 pb_DevFlags; + __u8 pb_DriveName[32]; + __u32 pb_Reserved2[15]; + __be32 pb_Environment[17]; + __u32 pb_EReserved[15]; +}; + +#define IDNAME_PARTITION 0x50415254 /* "PART" */ + +#define RDB_ALLOCATION_LIMIT 16 + +#endif /* AFFS_HARDBLOCKS_H */ diff --git a/kernel_headers/linux/agpgart.h b/kernel_headers/linux/agpgart.h new file mode 100644 index 0000000..126eb8a --- /dev/null +++ b/kernel_headers/linux/agpgart.h @@ -0,0 +1,111 @@ +/* + * AGPGART module version 0.99 + * Copyright (C) 1999 Jeff Hartmann + * Copyright (C) 1999 Precision Insight, Inc. + * Copyright (C) 1999 Xi Graphics, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _AGP_H +#define _AGP_H + +#define AGPIOC_BASE 'A' +#define AGPIOC_INFO _IOR (AGPIOC_BASE, 0, struct agp_info*) +#define AGPIOC_ACQUIRE _IO (AGPIOC_BASE, 1) +#define AGPIOC_RELEASE _IO (AGPIOC_BASE, 2) +#define AGPIOC_SETUP _IOW (AGPIOC_BASE, 3, struct agp_setup*) +#define AGPIOC_RESERVE _IOW (AGPIOC_BASE, 4, struct agp_region*) +#define AGPIOC_PROTECT _IOW (AGPIOC_BASE, 5, struct agp_region*) +#define AGPIOC_ALLOCATE _IOWR(AGPIOC_BASE, 6, struct agp_allocate*) +#define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int) +#define AGPIOC_BIND _IOW (AGPIOC_BASE, 8, struct agp_bind*) +#define AGPIOC_UNBIND _IOW (AGPIOC_BASE, 9, struct agp_unbind*) +#define AGPIOC_CHIPSET_FLUSH _IO (AGPIOC_BASE, 10) + +#define AGP_DEVICE "/dev/agpgart" + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#include + +struct agp_version { + __u16 major; + __u16 minor; +}; + +typedef struct _agp_info { + struct agp_version version; /* version of the driver */ + __u32 bridge_id; /* bridge vendor/device */ + __u32 agp_mode; /* mode info of bridge */ + unsigned long aper_base;/* base of aperture */ + size_t aper_size; /* size of aperture */ + size_t pg_total; /* max pages (swap + system) */ + size_t pg_system; /* max pages (system) */ + size_t pg_used; /* current pages used */ +} agp_info; + +typedef struct _agp_setup { + __u32 agp_mode; /* mode info of bridge */ +} agp_setup; + +/* + * The "prot" down below needs still a "sleep" flag somehow ... + */ +typedef struct _agp_segment { + __kernel_off_t pg_start; /* starting page to populate */ + __kernel_size_t pg_count; /* number of pages */ + int prot; /* prot flags for mmap */ +} agp_segment; + +typedef struct _agp_region { + __kernel_pid_t pid; /* pid of process */ + __kernel_size_t seg_count; /* number of segments */ + struct _agp_segment *seg_list; +} agp_region; + +typedef struct _agp_allocate { + int key; /* tag of allocation */ + __kernel_size_t pg_count;/* number of pages */ + __u32 type; /* 0 == normal, other devspec */ + __u32 physical; /* device specific (some devices + * need a phys address of the + * actual page behind the gatt + * table) */ +} agp_allocate; + +typedef struct _agp_bind { + int key; /* tag of allocation */ + __kernel_off_t pg_start;/* starting page to populate */ +} agp_bind; + +typedef struct _agp_unbind { + int key; /* tag of allocation */ + __u32 priority; /* priority for paging out */ +} agp_unbind; + + +#endif /* _AGP_H */ diff --git a/kernel_headers/linux/aio_abi.h b/kernel_headers/linux/aio_abi.h new file mode 100644 index 0000000..bb2554f --- /dev/null +++ b/kernel_headers/linux/aio_abi.h @@ -0,0 +1,111 @@ +/* include/linux/aio_abi.h + * + * Copyright 2000,2001,2002 Red Hat. + * + * Written by Benjamin LaHaise + * + * Distribute under the terms of the GPLv2 (see ../../COPYING) or under + * the following terms. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation is hereby granted, provided that the above copyright + * notice appears in all copies. This software is provided without any + * warranty, express or implied. Red Hat makes no representations about + * the suitability of this software for any purpose. + * + * IN NO EVENT SHALL RED HAT BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, + * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF + * THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RED HAT HAS BEEN ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * RED HAT DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND + * RED HAT HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, + * ENHANCEMENTS, OR MODIFICATIONS. + */ +#ifndef __LINUX__AIO_ABI_H +#define __LINUX__AIO_ABI_H + +#include +#include + +typedef __kernel_ulong_t aio_context_t; + +enum { + IOCB_CMD_PREAD = 0, + IOCB_CMD_PWRITE = 1, + IOCB_CMD_FSYNC = 2, + IOCB_CMD_FDSYNC = 3, + /* These two are experimental. + * IOCB_CMD_PREADX = 4, + * IOCB_CMD_POLL = 5, + */ + IOCB_CMD_NOOP = 6, + IOCB_CMD_PREADV = 7, + IOCB_CMD_PWRITEV = 8, +}; + +/* + * Valid flags for the "aio_flags" member of the "struct iocb". + * + * IOCB_FLAG_RESFD - Set if the "aio_resfd" member of the "struct iocb" + * is valid. + */ +#define IOCB_FLAG_RESFD (1 << 0) + +/* read() from /dev/aio returns these structures. */ +struct io_event { + __u64 data; /* the data field from the iocb */ + __u64 obj; /* what iocb this event came from */ + __s64 res; /* result code for this event */ + __s64 res2; /* secondary result */ +}; + +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) +#define PADDED(x,y) x, y +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) +#define PADDED(x,y) y, x +#else +#error edit for your odd byteorder. +#endif + +/* + * we always use a 64bit off_t when communicating + * with userland. its up to libraries to do the + * proper padding and aio_error abstraction + */ + +struct iocb { + /* these are internal to the kernel/libc. */ + __u64 aio_data; /* data to be returned in event's data */ + __u32 PADDED(aio_key, aio_reserved1); + /* the kernel sets aio_key to the req # */ + + /* common fields */ + __u16 aio_lio_opcode; /* see IOCB_CMD_ above */ + __s16 aio_reqprio; + __u32 aio_fildes; + + __u64 aio_buf; + __u64 aio_nbytes; + __s64 aio_offset; + + /* extra parameters */ + __u64 aio_reserved2; /* TODO: use this for a (struct sigevent *) */ + + /* flags for the "struct iocb" */ + __u32 aio_flags; + + /* + * if the IOCB_FLAG_RESFD flag of "aio_flags" is set, this is an + * eventfd to signal AIO readiness to + */ + __u32 aio_resfd; +}; /* 64 bytes */ + +#undef IFBIG +#undef IFLITTLE + +#endif /* __LINUX__AIO_ABI_H */ + diff --git a/kernel_headers/linux/android_pmem.h b/kernel_headers/linux/android_pmem.h new file mode 100644 index 0000000..cb7173c --- /dev/null +++ b/kernel_headers/linux/android_pmem.h @@ -0,0 +1,86 @@ +/* include/linux/android_pmem.h + * + * Copyright (C) 2007 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _ANDROID_PMEM_H_ +#define _ANDROID_PMEM_H_ + +#include + +#define PMEM_KERNEL_TEST_MAGIC 0xc0 +#define PMEM_KERNEL_TEST_NOMINAL_TEST_IOCTL \ + _IO(PMEM_KERNEL_TEST_MAGIC, 1) +#define PMEM_KERNEL_TEST_ADVERSARIAL_TEST_IOCTL \ + _IO(PMEM_KERNEL_TEST_MAGIC, 2) +#define PMEM_KERNEL_TEST_HUGE_ALLOCATION_TEST_IOCTL \ + _IO(PMEM_KERNEL_TEST_MAGIC, 3) +#define PMEM_KERNEL_TEST_FREE_UNALLOCATED_TEST_IOCTL \ + _IO(PMEM_KERNEL_TEST_MAGIC, 4) +#define PMEM_KERNEL_TEST_LARGE_REGION_NUMBER_TEST_IOCTL \ + _IO(PMEM_KERNEL_TEST_MAGIC, 5) + +#define PMEM_IOCTL_MAGIC 'p' +#define PMEM_GET_PHYS _IOW(PMEM_IOCTL_MAGIC, 1, unsigned int) +#define PMEM_MAP _IOW(PMEM_IOCTL_MAGIC, 2, unsigned int) +#define PMEM_GET_SIZE _IOW(PMEM_IOCTL_MAGIC, 3, unsigned int) +#define PMEM_UNMAP _IOW(PMEM_IOCTL_MAGIC, 4, unsigned int) +/* This ioctl will allocate pmem space, backing the file, it will fail + * if the file already has an allocation, pass it the len as the argument + * to the ioctl */ +#define PMEM_ALLOCATE _IOW(PMEM_IOCTL_MAGIC, 5, unsigned int) +/* This will connect a one pmem file to another, pass the file that is already + * backed in memory as the argument to the ioctl + */ +#define PMEM_CONNECT _IOW(PMEM_IOCTL_MAGIC, 6, unsigned int) +/* Returns the total size of the pmem region it is sent to as a pmem_region + * struct (with offset set to 0). + */ +#define PMEM_GET_TOTAL_SIZE _IOW(PMEM_IOCTL_MAGIC, 7, unsigned int) +/* Revokes gpu registers and resets the gpu. Pass a pointer to the + * start of the mapped gpu regs (the vaddr returned by mmap) as the argument. + */ +#define HW3D_REVOKE_GPU _IOW(PMEM_IOCTL_MAGIC, 8, unsigned int) +#define HW3D_GRANT_GPU _IOW(PMEM_IOCTL_MAGIC, 9, unsigned int) +#define HW3D_WAIT_FOR_INTERRUPT _IOW(PMEM_IOCTL_MAGIC, 10, unsigned int) + +#define PMEM_CLEAN_INV_CACHES _IOW(PMEM_IOCTL_MAGIC, 11, unsigned int) +#define PMEM_CLEAN_CACHES _IOW(PMEM_IOCTL_MAGIC, 12, unsigned int) +#define PMEM_INV_CACHES _IOW(PMEM_IOCTL_MAGIC, 13, unsigned int) + +#define PMEM_GET_FREE_SPACE _IOW(PMEM_IOCTL_MAGIC, 14, unsigned int) +#define PMEM_ALLOCATE_ALIGNED _IOW(PMEM_IOCTL_MAGIC, 15, unsigned int) +struct pmem_region { + unsigned long offset; + unsigned long len; +}; + +struct pmem_addr { + unsigned long vaddr; + unsigned long offset; + unsigned long length; +}; + +struct pmem_freespace { + unsigned long total; + unsigned long largest; +}; + +struct pmem_allocation { + unsigned long size; + unsigned int align; +}; + + +#endif //_ANDROID_PPP_H_ + diff --git a/kernel_headers/linux/apm_bios.h b/kernel_headers/linux/apm_bios.h new file mode 100644 index 0000000..e6e4319 --- /dev/null +++ b/kernel_headers/linux/apm_bios.h @@ -0,0 +1,135 @@ +/* + * Include file for the interface to an APM BIOS + * Copyright 1994-2001 Stephen Rothwell (sfr@canb.auug.org.au) + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + */ +#ifndef _LINUX_APM_H +#define _LINUX_APM_H + + +#include + +typedef unsigned short apm_event_t; +typedef unsigned short apm_eventinfo_t; + +struct apm_bios_info { + __u16 version; + __u16 cseg; + __u32 offset; + __u16 cseg_16; + __u16 dseg; + __u16 flags; + __u16 cseg_len; + __u16 cseg_16_len; + __u16 dseg_len; +}; + + +/* + * Power states + */ +#define APM_STATE_READY 0x0000 +#define APM_STATE_STANDBY 0x0001 +#define APM_STATE_SUSPEND 0x0002 +#define APM_STATE_OFF 0x0003 +#define APM_STATE_BUSY 0x0004 +#define APM_STATE_REJECT 0x0005 +#define APM_STATE_OEM_SYS 0x0020 +#define APM_STATE_OEM_DEV 0x0040 + +#define APM_STATE_DISABLE 0x0000 +#define APM_STATE_ENABLE 0x0001 + +#define APM_STATE_DISENGAGE 0x0000 +#define APM_STATE_ENGAGE 0x0001 + +/* + * Events (results of Get PM Event) + */ +#define APM_SYS_STANDBY 0x0001 +#define APM_SYS_SUSPEND 0x0002 +#define APM_NORMAL_RESUME 0x0003 +#define APM_CRITICAL_RESUME 0x0004 +#define APM_LOW_BATTERY 0x0005 +#define APM_POWER_STATUS_CHANGE 0x0006 +#define APM_UPDATE_TIME 0x0007 +#define APM_CRITICAL_SUSPEND 0x0008 +#define APM_USER_STANDBY 0x0009 +#define APM_USER_SUSPEND 0x000a +#define APM_STANDBY_RESUME 0x000b +#define APM_CAPABILITY_CHANGE 0x000c + +/* + * Error codes + */ +#define APM_SUCCESS 0x00 +#define APM_DISABLED 0x01 +#define APM_CONNECTED 0x02 +#define APM_NOT_CONNECTED 0x03 +#define APM_16_CONNECTED 0x05 +#define APM_16_UNSUPPORTED 0x06 +#define APM_32_CONNECTED 0x07 +#define APM_32_UNSUPPORTED 0x08 +#define APM_BAD_DEVICE 0x09 +#define APM_BAD_PARAM 0x0a +#define APM_NOT_ENGAGED 0x0b +#define APM_BAD_FUNCTION 0x0c +#define APM_RESUME_DISABLED 0x0d +#define APM_NO_ERROR 0x53 +#define APM_BAD_STATE 0x60 +#define APM_NO_EVENTS 0x80 +#define APM_NOT_PRESENT 0x86 + +/* + * APM Device IDs + */ +#define APM_DEVICE_BIOS 0x0000 +#define APM_DEVICE_ALL 0x0001 +#define APM_DEVICE_DISPLAY 0x0100 +#define APM_DEVICE_STORAGE 0x0200 +#define APM_DEVICE_PARALLEL 0x0300 +#define APM_DEVICE_SERIAL 0x0400 +#define APM_DEVICE_NETWORK 0x0500 +#define APM_DEVICE_PCMCIA 0x0600 +#define APM_DEVICE_BATTERY 0x8000 +#define APM_DEVICE_OEM 0xe000 +#define APM_DEVICE_OLD_ALL 0xffff +#define APM_DEVICE_CLASS 0x00ff +#define APM_DEVICE_MASK 0xff00 + + +/* + * Battery status + */ +#define APM_MAX_BATTERIES 2 + +/* + * APM defined capability bit flags + */ +#define APM_CAP_GLOBAL_STANDBY 0x0001 +#define APM_CAP_GLOBAL_SUSPEND 0x0002 +#define APM_CAP_RESUME_STANDBY_TIMER 0x0004 /* Timer resume from standby */ +#define APM_CAP_RESUME_SUSPEND_TIMER 0x0008 /* Timer resume from suspend */ +#define APM_CAP_RESUME_STANDBY_RING 0x0010 /* Resume on Ring fr standby */ +#define APM_CAP_RESUME_SUSPEND_RING 0x0020 /* Resume on Ring fr suspend */ +#define APM_CAP_RESUME_STANDBY_PCMCIA 0x0040 /* Resume on PCMCIA Ring */ +#define APM_CAP_RESUME_SUSPEND_PCMCIA 0x0080 /* Resume on PCMCIA Ring */ + +/* + * ioctl operations + */ +#include + +#define APM_IOC_STANDBY _IO('A', 1) +#define APM_IOC_SUSPEND _IO('A', 2) + +#endif /* _LINUX_APM_H */ diff --git a/kernel_headers/linux/arcfb.h b/kernel_headers/linux/arcfb.h new file mode 100644 index 0000000..721e765 --- /dev/null +++ b/kernel_headers/linux/arcfb.h @@ -0,0 +1,8 @@ +#ifndef __LINUX_ARCFB_H__ +#define __LINUX_ARCFB_H__ + +#define FBIO_WAITEVENT _IO('F', 0x88) +#define FBIO_GETCONTROL2 _IOR('F', 0x89, size_t) + +#endif + diff --git a/kernel_headers/linux/ashmem.h b/kernel_headers/linux/ashmem.h new file mode 100644 index 0000000..de0dbdd --- /dev/null +++ b/kernel_headers/linux/ashmem.h @@ -0,0 +1,40 @@ +#ifndef _LINUX_ASHMEM_H +#define _LINUX_ASHMEM_H + +#include +#include + +#define ASHMEM_NAME_LEN 256 + +#define ASHMEM_NAME_DEF "dev/ashmem" + +/* Return values from ASHMEM_PIN: Was the mapping purged while unpinned? */ +#define ASHMEM_NOT_PURGED 0 +#define ASHMEM_WAS_PURGED 1 + +/* Return values from ASHMEM_GET_PIN_STATUS: Is the mapping pinned? */ +#define ASHMEM_IS_UNPINNED 0 +#define ASHMEM_IS_PINNED 1 + +struct ashmem_pin { + __u32 offset; /* offset into region, in bytes, page-aligned */ + __u32 len; /* length forward from offset, in bytes, page-aligned */ +}; + +#define __ASHMEMIOC 0x77 + +#define ASHMEM_SET_NAME _IOW(__ASHMEMIOC, 1, char[ASHMEM_NAME_LEN]) +#define ASHMEM_GET_NAME _IOR(__ASHMEMIOC, 2, char[ASHMEM_NAME_LEN]) +#define ASHMEM_SET_SIZE _IOW(__ASHMEMIOC, 3, size_t) +#define ASHMEM_GET_SIZE _IO(__ASHMEMIOC, 4) +#define ASHMEM_SET_PROT_MASK _IOW(__ASHMEMIOC, 5, unsigned long) +#define ASHMEM_GET_PROT_MASK _IO(__ASHMEMIOC, 6) +#define ASHMEM_PIN _IOW(__ASHMEMIOC, 7, struct ashmem_pin) +#define ASHMEM_UNPIN _IOW(__ASHMEMIOC, 8, struct ashmem_pin) +#define ASHMEM_GET_PIN_STATUS _IO(__ASHMEMIOC, 9) +#define ASHMEM_PURGE_ALL_CACHES _IO(__ASHMEMIOC, 10) +#define ASHMEM_CACHE_FLUSH_RANGE _IO(__ASHMEMIOC, 11) +#define ASHMEM_CACHE_CLEAN_RANGE _IO(__ASHMEMIOC, 12) +#define ASHMEM_CACHE_INV_RANGE _IO(__ASHMEMIOC, 13) + +#endif /* _LINUX_ASHMEM_H */ diff --git a/kernel_headers/linux/atalk.h b/kernel_headers/linux/atalk.h new file mode 100644 index 0000000..4e5eefe --- /dev/null +++ b/kernel_headers/linux/atalk.h @@ -0,0 +1,44 @@ +#ifndef __LINUX_ATALK_H__ +#define __LINUX_ATALK_H__ + +#include +#include +#include + +/* + * AppleTalk networking structures + * + * The following are directly referenced from the University Of Michigan + * netatalk for compatibility reasons. + */ +#define ATPORT_FIRST 1 +#define ATPORT_RESERVED 128 +#define ATPORT_LAST 254 /* 254 is only legal on localtalk */ +#define ATADDR_ANYNET (__u16)0 +#define ATADDR_ANYNODE (__u8)0 +#define ATADDR_ANYPORT (__u8)0 +#define ATADDR_BCAST (__u8)255 +#define DDP_MAXSZ 587 +#define DDP_MAXHOPS 15 /* 4 bits of hop counter */ + +#define SIOCATALKDIFADDR (SIOCPROTOPRIVATE + 0) + +struct atalk_addr { + __be16 s_net; + __u8 s_node; +}; + +struct sockaddr_at { + __kernel_sa_family_t sat_family; + __u8 sat_port; + struct atalk_addr sat_addr; + char sat_zero[8]; +}; + +struct atalk_netrange { + __u8 nr_phase; + __be16 nr_firstnet; + __be16 nr_lastnet; +}; + +#endif /* __LINUX_ATALK_H__ */ diff --git a/kernel_headers/linux/atm.h b/kernel_headers/linux/atm.h new file mode 100644 index 0000000..08e27be --- /dev/null +++ b/kernel_headers/linux/atm.h @@ -0,0 +1,241 @@ +/* atm.h - general ATM declarations */ + +/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ + + +/* + * WARNING: User-space programs should not #include directly. + * Instead, #include + */ + +#ifndef _LINUX_ATM_H +#define _LINUX_ATM_H + +/* + * BEGIN_xx and END_xx markers are used for automatic generation of + * documentation. Do not change them. + */ + + +#include +#include +#include +#include + + +/* general ATM constants */ +#define ATM_CELL_SIZE 53 /* ATM cell size incl. header */ +#define ATM_CELL_PAYLOAD 48 /* ATM payload size */ +#define ATM_AAL0_SDU 52 /* AAL0 SDU size */ +#define ATM_MAX_AAL34_PDU 65535 /* maximum AAL3/4 PDU payload */ +#define ATM_AAL5_TRAILER 8 /* AAL5 trailer size */ +#define ATM_MAX_AAL5_PDU 65535 /* maximum AAL5 PDU payload */ +#define ATM_MAX_CDV 9999 /* maximum (default) CDV */ +#define ATM_NOT_RSV_VCI 32 /* first non-reserved VCI value */ + +#define ATM_MAX_VPI 255 /* maximum VPI at the UNI */ +#define ATM_MAX_VPI_NNI 4096 /* maximum VPI at the NNI */ +#define ATM_MAX_VCI 65535 /* maximum VCI */ + + +/* "protcol" values for the socket system call */ +#define ATM_NO_AAL 0 /* AAL not specified */ +#define ATM_AAL0 13 /* "raw" ATM cells */ +#define ATM_AAL1 1 /* AAL1 (CBR) */ +#define ATM_AAL2 2 /* AAL2 (VBR) */ +#define ATM_AAL34 3 /* AAL3/4 (data) */ +#define ATM_AAL5 5 /* AAL5 (data) */ + +/* + * socket option name coding functions + * + * Note that __SO_ENCODE and __SO_LEVEL are somewhat a hack since the + * << 22 only reserves 9 bits for the level. On some architectures + * SOL_SOCKET is 0xFFFF, so that's a bit of a problem + */ + +#define __SO_ENCODE(l,n,t) ((((l) & 0x1FF) << 22) | ((n) << 16) | \ + sizeof(t)) +#define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF)) +#define __SO_NUMBER(c) (((c) >> 16) & 0x3f) +#define __SO_SIZE(c) ((c) & 0x3fff) + +/* + * ATM layer + */ + +#define SO_SETCLP __SO_ENCODE(SOL_ATM,0,int) + /* set CLP bit value - TODO */ +#define SO_CIRANGE __SO_ENCODE(SOL_ATM,1,struct atm_cirange) + /* connection identifier range; socket must be + bound or connected */ +#define SO_ATMQOS __SO_ENCODE(SOL_ATM,2,struct atm_qos) + /* Quality of Service setting */ +#define SO_ATMSAP __SO_ENCODE(SOL_ATM,3,struct atm_sap) + /* Service Access Point */ +#define SO_ATMPVC __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc) + /* "PVC" address (also for SVCs); get only */ +#define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int) + /* make this vc a p2mp */ + + +/* + * Note @@@: since the socket layers don't really distinguish the control and + * the data plane but generally seems to be data plane-centric, any layer is + * about equally wrong for the SAP. If you have a better idea about this, + * please speak up ... + */ + + +/* ATM cell header (for AAL0) */ + +/* BEGIN_CH */ +#define ATM_HDR_GFC_MASK 0xf0000000 +#define ATM_HDR_GFC_SHIFT 28 +#define ATM_HDR_VPI_MASK 0x0ff00000 +#define ATM_HDR_VPI_SHIFT 20 +#define ATM_HDR_VCI_MASK 0x000ffff0 +#define ATM_HDR_VCI_SHIFT 4 +#define ATM_HDR_PTI_MASK 0x0000000e +#define ATM_HDR_PTI_SHIFT 1 +#define ATM_HDR_CLP 0x00000001 +/* END_CH */ + + +/* PTI codings */ + +/* BEGIN_PTI */ +#define ATM_PTI_US0 0 /* user data cell, congestion not exp, SDU-type 0 */ +#define ATM_PTI_US1 1 /* user data cell, congestion not exp, SDU-type 1 */ +#define ATM_PTI_UCES0 2 /* user data cell, cong. experienced, SDU-type 0 */ +#define ATM_PTI_UCES1 3 /* user data cell, cong. experienced, SDU-type 1 */ +#define ATM_PTI_SEGF5 4 /* segment OAM F5 flow related cell */ +#define ATM_PTI_E2EF5 5 /* end-to-end OAM F5 flow related cell */ +#define ATM_PTI_RSV_RM 6 /* reserved for traffic control/resource mgmt */ +#define ATM_PTI_RSV 7 /* reserved */ +/* END_PTI */ + + +/* + * The following items should stay in linux/atm.h, which should be linked to + * netatm/atm.h + */ + +/* Traffic description */ + +#define ATM_NONE 0 /* no traffic */ +#define ATM_UBR 1 +#define ATM_CBR 2 +#define ATM_VBR 3 +#define ATM_ABR 4 +#define ATM_ANYCLASS 5 /* compatible with everything */ + +#define ATM_MAX_PCR -1 /* maximum available PCR */ + +struct atm_trafprm { + unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */ + int max_pcr; /* maximum PCR in cells per second */ + int pcr; /* desired PCR in cells per second */ + int min_pcr; /* minimum PCR in cells per second */ + int max_cdv; /* maximum CDV in microseconds */ + int max_sdu; /* maximum SDU in bytes */ + /* extra params for ABR */ + unsigned int icr; /* Initial Cell Rate (24-bit) */ + unsigned int tbe; /* Transient Buffer Exposure (24-bit) */ + unsigned int frtt : 24; /* Fixed Round Trip Time (24-bit) */ + unsigned int rif : 4; /* Rate Increment Factor (4-bit) */ + unsigned int rdf : 4; /* Rate Decrease Factor (4-bit) */ + unsigned int nrm_pres :1; /* nrm present bit */ + unsigned int trm_pres :1; /* rm present bit */ + unsigned int adtf_pres :1; /* adtf present bit */ + unsigned int cdf_pres :1; /* cdf present bit*/ + unsigned int nrm :3; /* Max # of Cells for each forward RM cell (3-bit) */ + unsigned int trm :3; /* Time between forward RM cells (3-bit) */ + unsigned int adtf :10; /* ACR Decrease Time Factor (10-bit) */ + unsigned int cdf :3; /* Cutoff Decrease Factor (3-bit) */ + unsigned int spare :9; /* spare bits */ +}; + +struct atm_qos { + struct atm_trafprm txtp; /* parameters in TX direction */ + struct atm_trafprm rxtp __ATM_API_ALIGN; + /* parameters in RX direction */ + unsigned char aal __ATM_API_ALIGN; +}; + +/* PVC addressing */ + +#define ATM_ITF_ANY -1 /* "magic" PVC address values */ +#define ATM_VPI_ANY -1 +#define ATM_VCI_ANY -1 +#define ATM_VPI_UNSPEC -2 +#define ATM_VCI_UNSPEC -2 + + +struct sockaddr_atmpvc { + unsigned short sap_family; /* address family, AF_ATMPVC */ + struct { /* PVC address */ + short itf; /* ATM interface */ + short vpi; /* VPI (only 8 bits at UNI) */ + int vci; /* VCI (only 16 bits at UNI) */ + } sap_addr __ATM_API_ALIGN; /* PVC address */ +}; + +/* SVC addressing */ + +#define ATM_ESA_LEN 20 /* ATM End System Address length */ +#define ATM_E164_LEN 12 /* maximum E.164 number length */ + +#define ATM_AFI_DCC 0x39 /* DCC ATM Format */ +#define ATM_AFI_ICD 0x47 /* ICD ATM Format */ +#define ATM_AFI_E164 0x45 /* E.164 ATM Format */ +#define ATM_AFI_LOCAL 0x49 /* Local ATM Format */ + +#define ATM_AFI_DCC_GROUP 0xBD /* DCC ATM Group Format */ +#define ATM_AFI_ICD_GROUP 0xC5 /* ICD ATM Group Format */ +#define ATM_AFI_E164_GROUP 0xC3 /* E.164 ATM Group Format */ +#define ATM_AFI_LOCAL_GROUP 0xC7 /* Local ATM Group Format */ + +#define ATM_LIJ_NONE 0 /* no leaf-initiated join */ +#define ATM_LIJ 1 /* request joining */ +#define ATM_LIJ_RPJ 2 /* set to root-prompted join */ +#define ATM_LIJ_NJ 3 /* set to network join */ + + +struct sockaddr_atmsvc { + unsigned short sas_family; /* address family, AF_ATMSVC */ + struct { /* SVC address */ + unsigned char prv[ATM_ESA_LEN];/* private ATM address */ + char pub[ATM_E164_LEN+1]; /* public address (E.164) */ + /* unused addresses must be bzero'ed */ + char lij_type; /* role in LIJ call; one of ATM_LIJ* */ + __u32 lij_id; /* LIJ call identifier */ + } sas_addr __ATM_API_ALIGN; /* SVC address */ +}; + + +static __inline__ int atmsvc_addr_in_use(struct sockaddr_atmsvc addr) +{ + return *addr.sas_addr.prv || *addr.sas_addr.pub; +} + + +static __inline__ int atmpvc_addr_in_use(struct sockaddr_atmpvc addr) +{ + return addr.sap_addr.itf || addr.sap_addr.vpi || addr.sap_addr.vci; +} + + +/* + * Some stuff for linux/sockios.h + */ + +struct atmif_sioc { + int number; + int length; + void *arg; +}; + + +typedef unsigned short atm_backend_t; +#endif /* _LINUX_ATM_H */ diff --git a/kernel_headers/linux/atm_eni.h b/kernel_headers/linux/atm_eni.h new file mode 100644 index 0000000..34f3179 --- /dev/null +++ b/kernel_headers/linux/atm_eni.h @@ -0,0 +1,23 @@ +/* atm_eni.h - Driver-specific declarations of the ENI driver (for use by + driver-specific utilities) */ + +/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_ATM_ENI_H +#define LINUX_ATM_ENI_H + +#include + + +struct eni_multipliers { + int tx,rx; /* values are in percent and must be > 100 */ +}; + + +#define ENI_MEMDUMP _IOW('a',ATMIOC_SARPRV,struct atmif_sioc) + /* printk memory map */ +#define ENI_SETMULT _IOW('a',ATMIOC_SARPRV+7,struct atmif_sioc) + /* set buffer multipliers */ + +#endif diff --git a/kernel_headers/linux/atm_he.h b/kernel_headers/linux/atm_he.h new file mode 100644 index 0000000..2a7713b --- /dev/null +++ b/kernel_headers/linux/atm_he.h @@ -0,0 +1,20 @@ +/* atm_he.h */ + +#ifndef LINUX_ATM_HE_H +#define LINUX_ATM_HE_H + +#include + +#define HE_GET_REG _IOW('a', ATMIOC_SARPRV, struct atmif_sioc) + +#define HE_REGTYPE_PCI 1 +#define HE_REGTYPE_RCM 2 +#define HE_REGTYPE_TCM 3 +#define HE_REGTYPE_MBOX 4 + +struct he_ioctl_reg { + unsigned addr, val; + char type; +}; + +#endif /* LINUX_ATM_HE_H */ diff --git a/kernel_headers/linux/atm_idt77105.h b/kernel_headers/linux/atm_idt77105.h new file mode 100644 index 0000000..8b72400 --- /dev/null +++ b/kernel_headers/linux/atm_idt77105.h @@ -0,0 +1,28 @@ +/* atm_idt77105.h - Driver-specific declarations of the IDT77105 driver (for + * use by driver-specific utilities) */ + +/* Written 1999 by Greg Banks . Copied from atm_suni.h. */ + + +#ifndef LINUX_ATM_IDT77105_H +#define LINUX_ATM_IDT77105_H + +#include +#include +#include + +/* + * Structure for IDT77105_GETSTAT and IDT77105_GETSTATZ ioctls. + * Pointed to by `arg' in atmif_sioc. + */ +struct idt77105_stats { + __u32 symbol_errors; /* wire symbol errors */ + __u32 tx_cells; /* cells transmitted */ + __u32 rx_cells; /* cells received */ + __u32 rx_hec_errors; /* Header Error Check errors on receive */ +}; + +#define IDT77105_GETSTAT _IOW('a',ATMIOC_PHYPRV+2,struct atmif_sioc) /* get stats */ +#define IDT77105_GETSTATZ _IOW('a',ATMIOC_PHYPRV+3,struct atmif_sioc) /* get stats and zero */ + +#endif diff --git a/kernel_headers/linux/atm_nicstar.h b/kernel_headers/linux/atm_nicstar.h new file mode 100644 index 0000000..577b79f --- /dev/null +++ b/kernel_headers/linux/atm_nicstar.h @@ -0,0 +1,53 @@ +/****************************************************************************** + * + * atm_nicstar.h + * + * Driver-specific declarations for use by NICSTAR driver specific utils. + * + * Author: Rui Prior + * + * (C) INESC 1998 + * + ******************************************************************************/ + + +#ifndef LINUX_ATM_NICSTAR_H +#define LINUX_ATM_NICSTAR_H + +/* Note: non-kernel programs including this file must also include + * sys/types.h for struct timeval + */ + +#include +#include + +#define NS_GETPSTAT _IOWR('a',ATMIOC_SARPRV+1,struct atmif_sioc) + /* get pool statistics */ +#define NS_SETBUFLEV _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) + /* set buffer level markers */ +#define NS_ADJBUFLEV _IO('a',ATMIOC_SARPRV+3) + /* adjust buffer level */ + +typedef struct buf_nr +{ + unsigned min; + unsigned init; + unsigned max; +}buf_nr; + + +typedef struct pool_levels +{ + int buftype; + int count; /* (At least for now) only used in NS_GETPSTAT */ + buf_nr level; +} pool_levels; + +/* type must be one of the following: */ +#define NS_BUFTYPE_SMALL 1 +#define NS_BUFTYPE_LARGE 2 +#define NS_BUFTYPE_HUGE 3 +#define NS_BUFTYPE_IOVEC 4 + + +#endif /* LINUX_ATM_NICSTAR_H */ diff --git a/kernel_headers/linux/atm_tcp.h b/kernel_headers/linux/atm_tcp.h new file mode 100644 index 0000000..f3aa76a --- /dev/null +++ b/kernel_headers/linux/atm_tcp.h @@ -0,0 +1,61 @@ +/* atm_tcp.h - Driver-specific declarations of the ATMTCP driver (for use by + driver-specific utilities) */ + +/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_ATM_TCP_H +#define LINUX_ATM_TCP_H + +#include +#include +#include +#include + + +/* + * All values in struct atmtcp_hdr are in network byte order + */ + +struct atmtcp_hdr { + __u16 vpi; + __u16 vci; + __u32 length; /* ... of data part */ +}; + +/* + * All values in struct atmtcp_command are in host byte order + */ + +#define ATMTCP_HDR_MAGIC (~0) /* this length indicates a command */ +#define ATMTCP_CTRL_OPEN 1 /* request/reply */ +#define ATMTCP_CTRL_CLOSE 2 /* request/reply */ + +struct atmtcp_control { + struct atmtcp_hdr hdr; /* must be first */ + int type; /* message type; both directions */ + atm_kptr_t vcc; /* both directions */ + struct sockaddr_atmpvc addr; /* suggested value from kernel */ + struct atm_qos qos; /* both directions */ + int result; /* to kernel only */ +} __ATM_API_ALIGN; + +/* + * Field usage: + * Messge type dir. hdr.v?i type addr qos vcc result + * ----------- ---- ------- ---- ---- --- --- ------ + * OPEN K->D Y Y Y Y Y 0 + * OPEN D->K - Y Y Y Y Y + * CLOSE K->D - - Y - Y 0 + * CLOSE D->K - - - - Y Y + */ + +#define SIOCSIFATMTCP _IO('a',ATMIOC_ITF) /* set ATMTCP mode */ +#define ATMTCP_CREATE _IO('a',ATMIOC_ITF+14) /* create persistent ATMTCP + interface */ +#define ATMTCP_REMOVE _IO('a',ATMIOC_ITF+15) /* destroy persistent ATMTCP + interface */ + + + +#endif /* LINUX_ATM_TCP_H */ diff --git a/kernel_headers/linux/atm_zatm.h b/kernel_headers/linux/atm_zatm.h new file mode 100644 index 0000000..10f0fa2 --- /dev/null +++ b/kernel_headers/linux/atm_zatm.h @@ -0,0 +1,52 @@ +/* atm_zatm.h - Driver-specific declarations of the ZATM driver (for use by + driver-specific utilities) */ + +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_ATM_ZATM_H +#define LINUX_ATM_ZATM_H + +/* + * Note: non-kernel programs including this file must also include + * sys/types.h for struct timeval + */ + +#include +#include + +#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc) + /* get pool statistics */ +#define ZATM_GETPOOLZ _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) + /* get statistics and zero */ +#define ZATM_SETPOOL _IOW('a',ATMIOC_SARPRV+3,struct atmif_sioc) + /* set pool parameters */ + +struct zatm_pool_info { + int ref_count; /* free buffer pool usage counters */ + int low_water,high_water; /* refill parameters */ + int rqa_count,rqu_count; /* queue condition counters */ + int offset,next_off; /* alignment optimizations: offset */ + int next_cnt,next_thres; /* repetition counter and threshold */ +}; + +struct zatm_pool_req { + int pool_num; /* pool number */ + struct zatm_pool_info info; /* actual information */ +}; + +struct zatm_t_hist { + struct timeval real; /* real (wall-clock) time */ + struct timeval expected; /* expected real time */ +}; + + +#define ZATM_OAM_POOL 0 /* free buffer pool for OAM cells */ +#define ZATM_AAL0_POOL 1 /* free buffer pool for AAL0 cells */ +#define ZATM_AAL5_POOL_BASE 2 /* first AAL5 free buffer pool */ +#define ZATM_LAST_POOL ZATM_AAL5_POOL_BASE+10 /* max. 64 kB */ + +#define ZATM_TIMER_HISTORY_SIZE 16 /* number of timer adjustments to + record; must be 2^n */ + +#endif diff --git a/kernel_headers/linux/atmapi.h b/kernel_headers/linux/atmapi.h new file mode 100644 index 0000000..8fe54d9 --- /dev/null +++ b/kernel_headers/linux/atmapi.h @@ -0,0 +1,29 @@ +/* atmapi.h - ATM API user space/kernel compatibility */ + +/* Written 1999,2000 by Werner Almesberger, EPFL ICA */ + + +#ifndef _LINUX_ATMAPI_H +#define _LINUX_ATMAPI_H + +#if defined(__sparc__) || defined(__ia64__) +/* such alignment is not required on 32 bit sparcs, but we can't + figure that we are on a sparc64 while compiling user-space programs. */ +#define __ATM_API_ALIGN __attribute__((aligned(8))) +#else +#define __ATM_API_ALIGN +#endif + + +/* + * Opaque type for kernel pointers. Note that _ is never accessed. We need + * the struct in order hide the array, so that we can make simple assignments + * instead of being forced to use memcpy. It also improves error reporting for + * code that still assumes that we're passing unsigned longs. + * + * Convention: NULL pointers are passed as a field of all zeroes. + */ + +typedef struct { unsigned char _[8]; } __ATM_API_ALIGN atm_kptr_t; + +#endif diff --git a/kernel_headers/linux/atmarp.h b/kernel_headers/linux/atmarp.h new file mode 100644 index 0000000..231f4bd --- /dev/null +++ b/kernel_headers/linux/atmarp.h @@ -0,0 +1,41 @@ +/* atmarp.h - ATM ARP protocol and kernel-demon interface definitions */ + +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef _LINUX_ATMARP_H +#define _LINUX_ATMARP_H + +#include +#include +#include + + +#define ATMARP_RETRY_DELAY 30 /* request next resolution or forget + NAK after 30 sec - should go into + atmclip.h */ +#define ATMARP_MAX_UNRES_PACKETS 5 /* queue that many packets while + waiting for the resolver */ + + +#define ATMARPD_CTRL _IO('a',ATMIOC_CLIP+1) /* become atmarpd ctrl sock */ +#define ATMARP_MKIP _IO('a',ATMIOC_CLIP+2) /* attach socket to IP */ +#define ATMARP_SETENTRY _IO('a',ATMIOC_CLIP+3) /* fill or hide ARP entry */ +#define ATMARP_ENCAP _IO('a',ATMIOC_CLIP+5) /* change encapsulation */ + + +enum atmarp_ctrl_type { + act_invalid, /* catch uninitialized structures */ + act_need, /* need address resolution */ + act_up, /* interface is coming up */ + act_down, /* interface is going down */ + act_change /* interface configuration has changed */ +}; + +struct atmarp_ctrl { + enum atmarp_ctrl_type type; /* message type */ + int itf_num;/* interface number (if present) */ + __be32 ip; /* IP address (act_need only) */ +}; + +#endif diff --git a/kernel_headers/linux/atmbr2684.h b/kernel_headers/linux/atmbr2684.h new file mode 100644 index 0000000..fdb2629 --- /dev/null +++ b/kernel_headers/linux/atmbr2684.h @@ -0,0 +1,117 @@ +#ifndef _LINUX_ATMBR2684_H +#define _LINUX_ATMBR2684_H + +#include +#include +#include /* For IFNAMSIZ */ + +/* + * Type of media we're bridging (ethernet, token ring, etc) Currently only + * ethernet is supported + */ +#define BR2684_MEDIA_ETHERNET (0) /* 802.3 */ +#define BR2684_MEDIA_802_4 (1) /* 802.4 */ +#define BR2684_MEDIA_TR (2) /* 802.5 - token ring */ +#define BR2684_MEDIA_FDDI (3) +#define BR2684_MEDIA_802_6 (4) /* 802.6 */ + + /* used only at device creation: */ +#define BR2684_FLAG_ROUTED (1<<16) /* payload is routed, not bridged */ + +/* + * Is there FCS inbound on this VC? This currently isn't supported. + */ +#define BR2684_FCSIN_NO (0) +#define BR2684_FCSIN_IGNORE (1) +#define BR2684_FCSIN_VERIFY (2) + +/* + * Is there FCS outbound on this VC? This currently isn't supported. + */ +#define BR2684_FCSOUT_NO (0) +#define BR2684_FCSOUT_SENDZERO (1) +#define BR2684_FCSOUT_GENERATE (2) + +/* + * Does this VC include LLC encapsulation? + */ +#define BR2684_ENCAPS_VC (0) /* VC-mux */ +#define BR2684_ENCAPS_LLC (1) +#define BR2684_ENCAPS_AUTODETECT (2) /* Unsuported */ + +/* + * Is this VC bridged or routed? + */ + +#define BR2684_PAYLOAD_ROUTED (0) +#define BR2684_PAYLOAD_BRIDGED (1) + +/* + * This is for the ATM_NEWBACKENDIF call - these are like socket families: + * the first element of the structure is the backend number and the rest + * is per-backend specific + */ +struct atm_newif_br2684 { + atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */ + int media; /* BR2684_MEDIA_*, flags in upper bits */ + char ifname[IFNAMSIZ]; + int mtu; +}; + +/* + * This structure is used to specify a br2684 interface - either by a + * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name + */ +#define BR2684_FIND_BYNOTHING (0) +#define BR2684_FIND_BYNUM (1) +#define BR2684_FIND_BYIFNAME (2) +struct br2684_if_spec { + int method; /* BR2684_FIND_* */ + union { + char ifname[IFNAMSIZ]; + int devnum; + } spec; +}; + +/* + * This is for the ATM_SETBACKEND call - these are like socket families: + * the first element of the structure is the backend number and the rest + * is per-backend specific + */ +struct atm_backend_br2684 { + atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */ + struct br2684_if_spec ifspec; + int fcs_in; /* BR2684_FCSIN_* */ + int fcs_out; /* BR2684_FCSOUT_* */ + int fcs_auto; /* 1: fcs_{in,out} disabled if no FCS rx'ed */ + int encaps; /* BR2684_ENCAPS_* */ + int has_vpiid; /* 1: use vpn_id - Unsupported */ + __u8 vpn_id[7]; + int send_padding; /* unsupported */ + int min_size; /* we will pad smaller packets than this */ +}; + +/* + * The BR2684_SETFILT ioctl is an experimental mechanism for folks + * terminating a large number of IP-only vcc's. When netfilter allows + * efficient per-if in/out filters, this support will be removed + */ +struct br2684_filter { + __be32 prefix; /* network byte order */ + __be32 netmask; /* 0 = disable filter */ +}; + +struct br2684_filter_set { + struct br2684_if_spec ifspec; + struct br2684_filter filter; +}; + +enum br2684_payload { + p_routed = BR2684_PAYLOAD_ROUTED, + p_bridged = BR2684_PAYLOAD_BRIDGED, +}; + +#define BR2684_SETFILT _IOW( 'a', ATMIOC_BACKEND + 0, \ + struct br2684_filter_set) + +#endif /* _LINUX_ATMBR2684_H */ diff --git a/kernel_headers/linux/atmclip.h b/kernel_headers/linux/atmclip.h new file mode 100644 index 0000000..02c94c4 --- /dev/null +++ b/kernel_headers/linux/atmclip.h @@ -0,0 +1,21 @@ +/* atmclip.h - Classical IP over ATM */ + +/* Written 1995-1998 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_ATMCLIP_H +#define LINUX_ATMCLIP_H + +#include +#include + + +#define RFC1483LLC_LEN 8 /* LLC+OUI+PID = 8 */ +#define RFC1626_MTU 9180 /* RFC1626 default MTU */ + +#define CLIP_DEFAULT_IDLETIMER 1200 /* 20 minutes, see RFC1755 */ +#define CLIP_CHECK_INTERVAL 10 /* check every ten seconds */ + +#define SIOCMKCLIP _IO('a',ATMIOC_CLIP) /* create IP interface */ + +#endif diff --git a/kernel_headers/linux/atmdev.h b/kernel_headers/linux/atmdev.h new file mode 100644 index 0000000..8faa8b9 --- /dev/null +++ b/kernel_headers/linux/atmdev.h @@ -0,0 +1,215 @@ +/* atmdev.h - ATM device driver declarations and various related items */ + +/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_ATMDEV_H +#define LINUX_ATMDEV_H + + +#include +#include +#include + + +#define ESI_LEN 6 + +#define ATM_OC3_PCR (155520000/270*260/8/53) + /* OC3 link rate: 155520000 bps + SONET overhead: /270*260 (9 section, 1 path) + bits per cell: /8/53 + max cell rate: 353207.547 cells/sec */ +#define ATM_25_PCR ((25600000/8-8000)/54) + /* 25 Mbps ATM cell rate (59111) */ +#define ATM_OC12_PCR (622080000/1080*1040/8/53) + /* OC12 link rate: 622080000 bps + SONET overhead: /1080*1040 + bits per cell: /8/53 + max cell rate: 1412830.188 cells/sec */ +#define ATM_DS3_PCR (8000*12) + /* DS3: 12 cells in a 125 usec time slot */ + + +#define __AAL_STAT_ITEMS \ + __HANDLE_ITEM(tx); /* TX okay */ \ + __HANDLE_ITEM(tx_err); /* TX errors */ \ + __HANDLE_ITEM(rx); /* RX okay */ \ + __HANDLE_ITEM(rx_err); /* RX errors */ \ + __HANDLE_ITEM(rx_drop); /* RX out of memory */ + +struct atm_aal_stats { +#define __HANDLE_ITEM(i) int i + __AAL_STAT_ITEMS +#undef __HANDLE_ITEM +}; + + +struct atm_dev_stats { + struct atm_aal_stats aal0; + struct atm_aal_stats aal34; + struct atm_aal_stats aal5; +} __ATM_API_ALIGN; + + +#define ATM_GETLINKRATE _IOW('a',ATMIOC_ITF+1,struct atmif_sioc) + /* get link rate */ +#define ATM_GETNAMES _IOW('a',ATMIOC_ITF+3,struct atm_iobuf) + /* get interface names (numbers) */ +#define ATM_GETTYPE _IOW('a',ATMIOC_ITF+4,struct atmif_sioc) + /* get interface type name */ +#define ATM_GETESI _IOW('a',ATMIOC_ITF+5,struct atmif_sioc) + /* get interface ESI */ +#define ATM_GETADDR _IOW('a',ATMIOC_ITF+6,struct atmif_sioc) + /* get itf's local ATM addr. list */ +#define ATM_RSTADDR _IOW('a',ATMIOC_ITF+7,struct atmif_sioc) + /* reset itf's ATM address list */ +#define ATM_ADDADDR _IOW('a',ATMIOC_ITF+8,struct atmif_sioc) + /* add a local ATM address */ +#define ATM_DELADDR _IOW('a',ATMIOC_ITF+9,struct atmif_sioc) + /* remove a local ATM address */ +#define ATM_GETCIRANGE _IOW('a',ATMIOC_ITF+10,struct atmif_sioc) + /* get connection identifier range */ +#define ATM_SETCIRANGE _IOW('a',ATMIOC_ITF+11,struct atmif_sioc) + /* set connection identifier range */ +#define ATM_SETESI _IOW('a',ATMIOC_ITF+12,struct atmif_sioc) + /* set interface ESI */ +#define ATM_SETESIF _IOW('a',ATMIOC_ITF+13,struct atmif_sioc) + /* force interface ESI */ +#define ATM_ADDLECSADDR _IOW('a', ATMIOC_ITF+14, struct atmif_sioc) + /* register a LECS address */ +#define ATM_DELLECSADDR _IOW('a', ATMIOC_ITF+15, struct atmif_sioc) + /* unregister a LECS address */ +#define ATM_GETLECSADDR _IOW('a', ATMIOC_ITF+16, struct atmif_sioc) + /* retrieve LECS address(es) */ + +#define ATM_GETSTAT _IOW('a',ATMIOC_SARCOM+0,struct atmif_sioc) + /* get AAL layer statistics */ +#define ATM_GETSTATZ _IOW('a',ATMIOC_SARCOM+1,struct atmif_sioc) + /* get AAL layer statistics and zero */ +#define ATM_GETLOOP _IOW('a',ATMIOC_SARCOM+2,struct atmif_sioc) + /* get loopback mode */ +#define ATM_SETLOOP _IOW('a',ATMIOC_SARCOM+3,struct atmif_sioc) + /* set loopback mode */ +#define ATM_QUERYLOOP _IOW('a',ATMIOC_SARCOM+4,struct atmif_sioc) + /* query supported loopback modes */ +#define ATM_SETSC _IOW('a',ATMIOC_SPECIAL+1,int) + /* enable or disable single-copy */ +#define ATM_SETBACKEND _IOW('a',ATMIOC_SPECIAL+2,atm_backend_t) + /* set backend handler */ +#define ATM_NEWBACKENDIF _IOW('a',ATMIOC_SPECIAL+3,atm_backend_t) + /* use backend to make new if */ +#define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) + /* add party to p2mp call */ +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) +#endif +#define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) + /* drop party from p2mp call */ + +/* + * These are backend handkers that can be set via the ATM_SETBACKEND call + * above. In the future we may support dynamic loading of these - for now, + * they're just being used to share the ATMIOC_BACKEND ioctls + */ +#define ATM_BACKEND_RAW 0 +#define ATM_BACKEND_PPP 1 /* PPPoATM - RFC2364 */ +#define ATM_BACKEND_BR2684 2 /* Bridged RFC1483/2684 */ + +/* for ATM_GETTYPE */ +#define ATM_ITFTYP_LEN 8 /* maximum length of interface type name */ + +/* + * Loopback modes for ATM_{PHY,SAR}_{GET,SET}LOOP + */ + +/* Point of loopback CPU-->SAR-->PHY-->line--> ... */ +#define __ATM_LM_NONE 0 /* no loop back ^ ^ ^ ^ */ +#define __ATM_LM_AAL 1 /* loop back PDUs --' | | | */ +#define __ATM_LM_ATM 2 /* loop back ATM cells ---' | | */ +/* RESERVED 4 loop back on PHY side ---' */ +#define __ATM_LM_PHY 8 /* loop back bits (digital) ----' | */ +#define __ATM_LM_ANALOG 16 /* loop back the analog signal --------' */ + +/* Direction of loopback */ +#define __ATM_LM_MKLOC(n) ((n)) /* Local (i.e. loop TX to RX) */ +#define __ATM_LM_MKRMT(n) ((n) << 8) /* Remote (i.e. loop RX to TX) */ + +#define __ATM_LM_XTLOC(n) ((n) & 0xff) +#define __ATM_LM_XTRMT(n) (((n) >> 8) & 0xff) + +#define ATM_LM_NONE 0 /* no loopback */ + +#define ATM_LM_LOC_AAL __ATM_LM_MKLOC(__ATM_LM_AAL) +#define ATM_LM_LOC_ATM __ATM_LM_MKLOC(__ATM_LM_ATM) +#define ATM_LM_LOC_PHY __ATM_LM_MKLOC(__ATM_LM_PHY) +#define ATM_LM_LOC_ANALOG __ATM_LM_MKLOC(__ATM_LM_ANALOG) + +#define ATM_LM_RMT_AAL __ATM_LM_MKRMT(__ATM_LM_AAL) +#define ATM_LM_RMT_ATM __ATM_LM_MKRMT(__ATM_LM_ATM) +#define ATM_LM_RMT_PHY __ATM_LM_MKRMT(__ATM_LM_PHY) +#define ATM_LM_RMT_ANALOG __ATM_LM_MKRMT(__ATM_LM_ANALOG) + +/* + * Note: ATM_LM_LOC_* and ATM_LM_RMT_* can be combined, provided that + * __ATM_LM_XTLOC(x) <= __ATM_LM_XTRMT(x) + */ + + +struct atm_iobuf { + int length; + void *buffer; +}; + +/* for ATM_GETCIRANGE / ATM_SETCIRANGE */ + +#define ATM_CI_MAX -1 /* use maximum range of VPI/VCI */ + +struct atm_cirange { + signed char vpi_bits; /* 1..8, ATM_CI_MAX (-1) for maximum */ + signed char vci_bits; /* 1..16, ATM_CI_MAX (-1) for maximum */ +}; + +/* for ATM_SETSC; actually taken from the ATM_VF number space */ + +#define ATM_SC_RX 1024 /* enable RX single-copy */ +#define ATM_SC_TX 2048 /* enable TX single-copy */ + +#define ATM_BACKLOG_DEFAULT 32 /* if we get more, we're likely to time out + anyway */ + +/* MF: change_qos (Modify) flags */ + +#define ATM_MF_IMMED 1 /* Block until change is effective */ +#define ATM_MF_INC_RSV 2 /* Change reservation on increase */ +#define ATM_MF_INC_SHP 4 /* Change shaping on increase */ +#define ATM_MF_DEC_RSV 8 /* Change reservation on decrease */ +#define ATM_MF_DEC_SHP 16 /* Change shaping on decrease */ +#define ATM_MF_BWD 32 /* Set the backward direction parameters */ + +#define ATM_MF_SET (ATM_MF_INC_RSV | ATM_MF_INC_SHP | ATM_MF_DEC_RSV | \ + ATM_MF_DEC_SHP | ATM_MF_BWD) + +/* + * ATM_VS_* are used to express VC state in a human-friendly way. + */ + +#define ATM_VS_IDLE 0 /* VC is not used */ +#define ATM_VS_CONNECTED 1 /* VC is connected */ +#define ATM_VS_CLOSING 2 /* VC is closing */ +#define ATM_VS_LISTEN 3 /* VC is listening for incoming setups */ +#define ATM_VS_INUSE 4 /* VC is in use (registered with atmsigd) */ +#define ATM_VS_BOUND 5 /* VC is bound */ + +#define ATM_VS2TXT_MAP \ + "IDLE", "CONNECTED", "CLOSING", "LISTEN", "INUSE", "BOUND" + +#define ATM_VF2TXT_MAP \ + "ADDR", "READY", "PARTIAL", "REGIS", \ + "RELEASED", "HASQOS", "LISTEN", "META", \ + "256", "512", "1024", "2048", \ + "SESSION", "HASSAP", "BOUND", "CLOSE" + + + +#endif /* LINUX_ATMDEV_H */ diff --git a/kernel_headers/linux/atmioc.h b/kernel_headers/linux/atmioc.h new file mode 100644 index 0000000..37f67aa --- /dev/null +++ b/kernel_headers/linux/atmioc.h @@ -0,0 +1,41 @@ +/* atmioc.h - ranges for ATM-related ioctl numbers */ + +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ + + +/* + * See http://icawww1.epfl.ch/linux-atm/magic.html for the complete list of + * "magic" ioctl numbers. + */ + + +#ifndef _LINUX_ATMIOC_H +#define _LINUX_ATMIOC_H + +#include + /* everybody including atmioc.h will also need _IO{,R,W,WR} */ + +#define ATMIOC_PHYCOM 0x00 /* PHY device common ioctls, globally unique */ +#define ATMIOC_PHYCOM_END 0x0f +#define ATMIOC_PHYTYP 0x10 /* PHY dev type ioctls, unique per PHY type */ +#define ATMIOC_PHYTYP_END 0x2f +#define ATMIOC_PHYPRV 0x30 /* PHY dev private ioctls, unique per driver */ +#define ATMIOC_PHYPRV_END 0x4f +#define ATMIOC_SARCOM 0x50 /* SAR device common ioctls, globally unique */ +#define ATMIOC_SARCOM_END 0x50 +#define ATMIOC_SARPRV 0x60 /* SAR dev private ioctls, unique per driver */ +#define ATMIOC_SARPRV_END 0x7f +#define ATMIOC_ITF 0x80 /* Interface ioctls, globally unique */ +#define ATMIOC_ITF_END 0x8f +#define ATMIOC_BACKEND 0x90 /* ATM generic backend ioctls, u. per backend */ +#define ATMIOC_BACKEND_END 0xaf +/* 0xb0-0xbf: Reserved for future use */ +#define ATMIOC_AREQUIPA 0xc0 /* Application requested IP over ATM, glob. u. */ +#define ATMIOC_LANE 0xd0 /* LAN Emulation, globally unique */ +#define ATMIOC_MPOA 0xd8 /* MPOA, globally unique */ +#define ATMIOC_CLIP 0xe0 /* Classical IP over ATM control, globally u. */ +#define ATMIOC_CLIP_END 0xef +#define ATMIOC_SPECIAL 0xf0 /* Special-purpose controls, globally unique */ +#define ATMIOC_SPECIAL_END 0xff + +#endif diff --git a/kernel_headers/linux/atmlec.h b/kernel_headers/linux/atmlec.h new file mode 100644 index 0000000..302791e --- /dev/null +++ b/kernel_headers/linux/atmlec.h @@ -0,0 +1,91 @@ +/* + * ATM Lan Emulation Daemon driver interface + * + * Marko Kiiskila + */ + +#ifndef _ATMLEC_H_ +#define _ATMLEC_H_ + +#include +#include +#include +#include +#include + +/* ATM lec daemon control socket */ +#define ATMLEC_CTRL _IO('a', ATMIOC_LANE) +#define ATMLEC_DATA _IO('a', ATMIOC_LANE+1) +#define ATMLEC_MCAST _IO('a', ATMIOC_LANE+2) + +/* Maximum number of LEC interfaces (tweakable) */ +#define MAX_LEC_ITF 48 + +typedef enum { + l_set_mac_addr, + l_del_mac_addr, + l_svc_setup, + l_addr_delete, + l_topology_change, + l_flush_complete, + l_arp_update, + l_narp_req, /* LANE2 mandates the use of this */ + l_config, + l_flush_tran_id, + l_set_lecid, + l_arp_xmt, + l_rdesc_arp_xmt, + l_associate_req, + l_should_bridge /* should we bridge this MAC? */ +} atmlec_msg_type; + +#define ATMLEC_MSG_TYPE_MAX l_should_bridge + +struct atmlec_config_msg { + unsigned int maximum_unknown_frame_count; + unsigned int max_unknown_frame_time; + unsigned short max_retry_count; + unsigned int aging_time; + unsigned int forward_delay_time; + unsigned int arp_response_time; + unsigned int flush_timeout; + unsigned int path_switching_delay; + unsigned int lane_version; /* LANE2: 1 for LANEv1, 2 for LANEv2 */ + int mtu; + int is_proxy; +}; + +struct atmlec_msg { + atmlec_msg_type type; + int sizeoftlvs; /* LANE2: if != 0, tlvs follow */ + union { + struct { + unsigned char mac_addr[ETH_ALEN]; + unsigned char atm_addr[ATM_ESA_LEN]; + unsigned int flag; /* + * Topology_change flag, + * remoteflag, permanent flag, + * lecid, transaction id + */ + unsigned int targetless_le_arp; /* LANE2 */ + unsigned int no_source_le_narp; /* LANE2 */ + } normal; + struct atmlec_config_msg config; + struct { + __u16 lec_id; /* requestor lec_id */ + __u32 tran_id; /* transaction id */ + unsigned char mac_addr[ETH_ALEN]; /* dst mac addr */ + unsigned char atm_addr[ATM_ESA_LEN]; /* reqestor ATM addr */ + } proxy; /* + * For mapping LE_ARP requests to responses. Filled by + * zeppelin, returned by kernel. Used only when proxying + */ + } content; +} __ATM_API_ALIGN; + +struct atmlec_ioc { + int dev_num; + unsigned char atm_addr[ATM_ESA_LEN]; + unsigned char receive; /* 1= receive vcc, 0 = send vcc */ +}; +#endif /* _ATMLEC_H_ */ diff --git a/kernel_headers/linux/atmmpc.h b/kernel_headers/linux/atmmpc.h new file mode 100644 index 0000000..2aba578 --- /dev/null +++ b/kernel_headers/linux/atmmpc.h @@ -0,0 +1,126 @@ +#ifndef _ATMMPC_H_ +#define _ATMMPC_H_ + +#include +#include +#include +#include + +#define ATMMPC_CTRL _IO('a', ATMIOC_MPOA) +#define ATMMPC_DATA _IO('a', ATMIOC_MPOA+1) + +#define MPC_SOCKET_INGRESS 1 +#define MPC_SOCKET_EGRESS 2 + +struct atmmpc_ioc { + int dev_num; + __be32 ipaddr; /* the IP address of the shortcut */ + int type; /* ingress or egress */ +}; + +typedef struct in_ctrl_info { + __u8 Last_NHRP_CIE_code; + __u8 Last_Q2931_cause_value; + __u8 eg_MPC_ATM_addr[ATM_ESA_LEN]; + __be32 tag; + __be32 in_dst_ip; /* IP address this ingress MPC sends packets to */ + __u16 holding_time; + __u32 request_id; +} in_ctrl_info; + +typedef struct eg_ctrl_info { + __u8 DLL_header[256]; + __u8 DH_length; + __be32 cache_id; + __be32 tag; + __be32 mps_ip; + __be32 eg_dst_ip; /* IP address to which ingress MPC sends packets */ + __u8 in_MPC_data_ATM_addr[ATM_ESA_LEN]; + __u16 holding_time; +} eg_ctrl_info; + +struct mpc_parameters { + __u16 mpc_p1; /* Shortcut-Setup Frame Count */ + __u16 mpc_p2; /* Shortcut-Setup Frame Time */ + __u8 mpc_p3[8]; /* Flow-detection Protocols */ + __u16 mpc_p4; /* MPC Initial Retry Time */ + __u16 mpc_p5; /* MPC Retry Time Maximum */ + __u16 mpc_p6; /* Hold Down Time */ +} ; + +struct k_message { + __u16 type; + __be32 ip_mask; + __u8 MPS_ctrl[ATM_ESA_LEN]; + union { + in_ctrl_info in_info; + eg_ctrl_info eg_info; + struct mpc_parameters params; + } content; + struct atm_qos qos; +} __ATM_API_ALIGN; + +struct llc_snap_hdr { + /* RFC 1483 LLC/SNAP encapsulation for routed IP PDUs */ + __u8 dsap; /* Destination Service Access Point (0xAA) */ + __u8 ssap; /* Source Service Access Point (0xAA) */ + __u8 ui; /* Unnumbered Information (0x03) */ + __u8 org[3]; /* Organizational identification (0x000000) */ + __u8 type[2]; /* Ether type (for IP) (0x0800) */ +}; + +/* TLVs this MPC recognizes */ +#define TLV_MPOA_DEVICE_TYPE 0x00a03e2a + +/* MPOA device types in MPOA Device Type TLV */ +#define NON_MPOA 0 +#define MPS 1 +#define MPC 2 +#define MPS_AND_MPC 3 + + +/* MPC parameter defaults */ + +#define MPC_P1 10 /* Shortcut-Setup Frame Count */ +#define MPC_P2 1 /* Shortcut-Setup Frame Time */ +#define MPC_P3 0 /* Flow-detection Protocols */ +#define MPC_P4 5 /* MPC Initial Retry Time */ +#define MPC_P5 40 /* MPC Retry Time Maximum */ +#define MPC_P6 160 /* Hold Down Time */ +#define HOLDING_TIME_DEFAULT 1200 /* same as MPS-p7 */ + +/* MPC constants */ + +#define MPC_C1 2 /* Retry Time Multiplier */ +#define MPC_C2 60 /* Initial Keep-Alive Lifetime */ + +/* Message types - to MPOA daemon */ + +#define SND_MPOA_RES_RQST 201 +#define SET_MPS_CTRL_ADDR 202 +#define SND_MPOA_RES_RTRY 203 /* Different type in a retry due to req id */ +#define STOP_KEEP_ALIVE_SM 204 +#define EGRESS_ENTRY_REMOVED 205 +#define SND_EGRESS_PURGE 206 +#define DIE 207 /* tell the daemon to exit() */ +#define DATA_PLANE_PURGE 208 /* Data plane purge because of egress cache hit miss or dead MPS */ +#define OPEN_INGRESS_SVC 209 + +/* Message types - from MPOA daemon */ + +#define MPOA_TRIGGER_RCVD 101 +#define MPOA_RES_REPLY_RCVD 102 +#define INGRESS_PURGE_RCVD 103 +#define EGRESS_PURGE_RCVD 104 +#define MPS_DEATH 105 +#define CACHE_IMPOS_RCVD 106 +#define SET_MPC_CTRL_ADDR 107 /* Our MPC's control ATM address */ +#define SET_MPS_MAC_ADDR 108 +#define CLEAN_UP_AND_EXIT 109 +#define SET_MPC_PARAMS 110 /* MPC configuration parameters */ + +/* Message types - bidirectional */ + +#define RELOAD 301 /* kill -HUP the daemon for reload */ + +#endif /* _ATMMPC_H_ */ diff --git a/kernel_headers/linux/atmppp.h b/kernel_headers/linux/atmppp.h new file mode 100644 index 0000000..300dcce --- /dev/null +++ b/kernel_headers/linux/atmppp.h @@ -0,0 +1,24 @@ +/* atmppp.h - RFC2364 PPPoATM */ + +/* Written 2000 by Mitchell Blank Jr */ + +#ifndef _LINUX_ATMPPP_H +#define _LINUX_ATMPPP_H + +#include + +#define PPPOATM_ENCAPS_AUTODETECT (0) +#define PPPOATM_ENCAPS_VC (1) +#define PPPOATM_ENCAPS_LLC (2) + +/* + * This is for the ATM_SETBACKEND call - these are like socket families: + * the first element of the structure is the backend number and the rest + * is per-backend specific + */ +struct atm_backend_ppp { + atm_backend_t backend_num; /* ATM_BACKEND_PPP */ + int encaps; /* PPPOATM_ENCAPS_* */ +}; + +#endif /* _LINUX_ATMPPP_H */ diff --git a/kernel_headers/linux/atmsap.h b/kernel_headers/linux/atmsap.h new file mode 100644 index 0000000..799b104 --- /dev/null +++ b/kernel_headers/linux/atmsap.h @@ -0,0 +1,162 @@ +/* atmsap.h - ATM Service Access Point addressing definitions */ + +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef _LINUX_ATMSAP_H +#define _LINUX_ATMSAP_H + +#include + +/* + * BEGIN_xx and END_xx markers are used for automatic generation of + * documentation. Do not change them. + */ + + +/* + * Layer 2 protocol identifiers + */ + +/* BEGIN_L2 */ +#define ATM_L2_NONE 0 /* L2 not specified */ +#define ATM_L2_ISO1745 0x01 /* Basic mode ISO 1745 */ +#define ATM_L2_Q291 0x02 /* ITU-T Q.291 (Rec. I.441) */ +#define ATM_L2_X25_LL 0x06 /* ITU-T X.25, link layer */ +#define ATM_L2_X25_ML 0x07 /* ITU-T X.25, multilink */ +#define ATM_L2_LAPB 0x08 /* Extended LAPB, half-duplex (Rec. T.71) */ +#define ATM_L2_HDLC_ARM 0x09 /* HDLC ARM (ISO/IEC 4335) */ +#define ATM_L2_HDLC_NRM 0x0a /* HDLC NRM (ISO/IEC 4335) */ +#define ATM_L2_HDLC_ABM 0x0b /* HDLC ABM (ISO/IEC 4335) */ +#define ATM_L2_ISO8802 0x0c /* LAN LLC (ISO/IEC 8802/2) */ +#define ATM_L2_X75 0x0d /* ITU-T X.75, SLP */ +#define ATM_L2_Q922 0x0e /* ITU-T Q.922 */ +#define ATM_L2_USER 0x10 /* user-specified */ +#define ATM_L2_ISO7776 0x11 /* ISO 7776 DTE-DTE */ +/* END_L2 */ + + +/* + * Layer 3 protocol identifiers + */ + +/* BEGIN_L3 */ +#define ATM_L3_NONE 0 /* L3 not specified */ +#define ATM_L3_X25 0x06 /* ITU-T X.25, packet layer */ +#define ATM_L3_ISO8208 0x07 /* ISO/IEC 8208 */ +#define ATM_L3_X223 0x08 /* ITU-T X.223 | ISO/IEC 8878 */ +#define ATM_L3_ISO8473 0x09 /* ITU-T X.233 | ISO/IEC 8473 */ +#define ATM_L3_T70 0x0a /* ITU-T T.70 minimum network layer */ +#define ATM_L3_TR9577 0x0b /* ISO/IEC TR 9577 */ +#define ATM_L3_H310 0x0c /* ITU-T Recommendation H.310 */ +#define ATM_L3_H321 0x0d /* ITU-T Recommendation H.321 */ +#define ATM_L3_USER 0x10 /* user-specified */ +/* END_L3 */ + + +/* + * High layer identifiers + */ + +/* BEGIN_HL */ +#define ATM_HL_NONE 0 /* HL not specified */ +#define ATM_HL_ISO 0x01 /* ISO */ +#define ATM_HL_USER 0x02 /* user-specific */ +#define ATM_HL_HLP 0x03 /* high layer profile - UNI 3.0 only */ +#define ATM_HL_VENDOR 0x04 /* vendor-specific application identifier */ +/* END_HL */ + + +/* + * ITU-T coded mode of operation + */ + +/* BEGIN_IMD */ +#define ATM_IMD_NONE 0 /* mode not specified */ +#define ATM_IMD_NORMAL 1 /* normal mode of operation */ +#define ATM_IMD_EXTENDED 2 /* extended mode of operation */ +/* END_IMD */ + +/* + * H.310 code points + */ + +#define ATM_TT_NONE 0 /* terminal type not specified */ +#define ATM_TT_RX 1 /* receive only */ +#define ATM_TT_TX 2 /* send only */ +#define ATM_TT_RXTX 3 /* receive and send */ + +#define ATM_MC_NONE 0 /* no multiplexing */ +#define ATM_MC_TS 1 /* transport stream (TS) */ +#define ATM_MC_TS_FEC 2 /* transport stream with forward error corr. */ +#define ATM_MC_PS 3 /* program stream (PS) */ +#define ATM_MC_PS_FEC 4 /* program stream with forward error corr. */ +#define ATM_MC_H221 5 /* ITU-T Rec. H.221 */ + +/* + * SAP structures + */ + +#define ATM_MAX_HLI 8 /* maximum high-layer information length */ + + +struct atm_blli { + unsigned char l2_proto; /* layer 2 protocol */ + union { + struct { + unsigned char mode; /* mode of operation (ATM_IMD_xxx), 0 if */ + /* absent */ + unsigned char window; /* window size (k), 1-127 (0 to omit) */ + } itu; /* ITU-T encoding */ + unsigned char user; /* user-specified l2 information */ + } l2; + unsigned char l3_proto; /* layer 3 protocol */ + union { + struct { + unsigned char mode; /* mode of operation (ATM_IMD_xxx), 0 if */ + /* absent */ + unsigned char def_size; /* default packet size (log2), 4-12 (0 to */ + /* omit) */ + unsigned char window;/* packet window size, 1-127 (0 to omit) */ + } itu; /* ITU-T encoding */ + unsigned char user; /* user specified l3 information */ + struct { /* if l3_proto = ATM_L3_H310 */ + unsigned char term_type; /* terminal type */ + unsigned char fw_mpx_cap; /* forward multiplexing capability */ + /* only if term_type != ATM_TT_NONE */ + unsigned char bw_mpx_cap; /* backward multiplexing capability */ + /* only if term_type != ATM_TT_NONE */ + } h310; + struct { /* if l3_proto = ATM_L3_TR9577 */ + unsigned char ipi; /* initial protocol id */ + unsigned char snap[5];/* IEEE 802.1 SNAP identifier */ + /* (only if ipi == NLPID_IEEE802_1_SNAP) */ + } tr9577; + } l3; +} __ATM_API_ALIGN; + + +struct atm_bhli { + unsigned char hl_type; /* high layer information type */ + unsigned char hl_length; /* length (only if hl_type == ATM_HL_USER || */ + /* hl_type == ATM_HL_ISO) */ + unsigned char hl_info[ATM_MAX_HLI];/* high layer information */ +}; + + +#define ATM_MAX_BLLI 3 /* maximum number of BLLI elements */ + + +struct atm_sap { + struct atm_bhli bhli; /* local SAP, high-layer information */ + struct atm_blli blli[ATM_MAX_BLLI] __ATM_API_ALIGN; + /* local SAP, low-layer info */ +}; + + +static __inline__ int blli_in_use(struct atm_blli blli) +{ + return blli.l2_proto || blli.l3_proto; +} + +#endif diff --git a/kernel_headers/linux/atmsvc.h b/kernel_headers/linux/atmsvc.h new file mode 100644 index 0000000..aa71583 --- /dev/null +++ b/kernel_headers/linux/atmsvc.h @@ -0,0 +1,55 @@ +/* atmsvc.h - ATM signaling kernel-demon interface definitions */ + +/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef _LINUX_ATMSVC_H +#define _LINUX_ATMSVC_H + +#include +#include +#include + + +#define ATMSIGD_CTRL _IO('a',ATMIOC_SPECIAL) + /* become ATM signaling demon control socket */ + +enum atmsvc_msg_type { as_catch_null, as_bind, as_connect, as_accept, as_reject, + as_listen, as_okay, as_error, as_indicate, as_close, + as_itf_notify, as_modify, as_identify, as_terminate, + as_addparty, as_dropparty }; + +struct atmsvc_msg { + enum atmsvc_msg_type type; + atm_kptr_t vcc; + atm_kptr_t listen_vcc; /* indicate */ + int reply; /* for okay and close: */ + /* < 0: error before active */ + /* (sigd has discarded ctx) */ + /* ==0: success */ + /* > 0: error when active (still */ + /* need to close) */ + struct sockaddr_atmpvc pvc; /* indicate, okay (connect) */ + struct sockaddr_atmsvc local; /* local SVC address */ + struct atm_qos qos; /* QOS parameters */ + struct atm_sap sap; /* SAP */ + unsigned int session; /* for p2pm */ + struct sockaddr_atmsvc svc; /* SVC address */ +} __ATM_API_ALIGN; + +/* + * Message contents: see ftp://icaftp.epfl.ch/pub/linux/atm/docs/isp-*.tar.gz + */ + +/* + * Some policy stuff for atmsigd and for net/atm/svc.c. Both have to agree on + * what PCR is used to request bandwidth from the device driver. net/atm/svc.c + * tries to do better than that, but only if there's no routing decision (i.e. + * if signaling only uses one ATM interface). + */ + +#define SELECT_TOP_PCR(tp) ((tp).pcr ? (tp).pcr : \ + (tp).max_pcr && (tp).max_pcr != ATM_MAX_PCR ? (tp).max_pcr : \ + (tp).min_pcr ? (tp).min_pcr : ATM_MAX_PCR) + +#endif diff --git a/kernel_headers/linux/audit.h b/kernel_headers/linux/audit.h new file mode 100644 index 0000000..12c9b2f --- /dev/null +++ b/kernel_headers/linux/audit.h @@ -0,0 +1,406 @@ +/* audit.h -- Auditing support + * + * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Written by Rickard E. (Rik) Faith + * + */ + +#ifndef _LINUX_AUDIT_H_ +#define _LINUX_AUDIT_H_ + +#include +#include + +/* The netlink messages for the audit system is divided into blocks: + * 1000 - 1099 are for commanding the audit system + * 1100 - 1199 user space trusted application messages + * 1200 - 1299 messages internal to the audit daemon + * 1300 - 1399 audit event messages + * 1400 - 1499 SE Linux use + * 1500 - 1599 kernel LSPP events + * 1600 - 1699 kernel crypto events + * 1700 - 1799 kernel anomaly records + * 1800 - 1899 kernel integrity events + * 1900 - 1999 future kernel use + * 2000 is for otherwise unclassified kernel audit messages (legacy) + * 2001 - 2099 unused (kernel) + * 2100 - 2199 user space anomaly records + * 2200 - 2299 user space actions taken in response to anomalies + * 2300 - 2399 user space generated LSPP events + * 2400 - 2499 user space crypto events + * 2500 - 2999 future user space (maybe integrity labels and related events) + * + * Messages from 1000-1199 are bi-directional. 1200-1299 & 2100 - 2999 are + * exclusively user space. 1300-2099 is kernel --> user space + * communication. + */ +#define AUDIT_GET 1000 /* Get status */ +#define AUDIT_SET 1001 /* Set status (enable/disable/auditd) */ +#define AUDIT_LIST 1002 /* List syscall rules -- deprecated */ +#define AUDIT_ADD 1003 /* Add syscall rule -- deprecated */ +#define AUDIT_DEL 1004 /* Delete syscall rule -- deprecated */ +#define AUDIT_USER 1005 /* Message from userspace -- deprecated */ +#define AUDIT_LOGIN 1006 /* Define the login id and information */ +#define AUDIT_WATCH_INS 1007 /* Insert file/dir watch entry */ +#define AUDIT_WATCH_REM 1008 /* Remove file/dir watch entry */ +#define AUDIT_WATCH_LIST 1009 /* List all file/dir watches */ +#define AUDIT_SIGNAL_INFO 1010 /* Get info about sender of signal to auditd */ +#define AUDIT_ADD_RULE 1011 /* Add syscall filtering rule */ +#define AUDIT_DEL_RULE 1012 /* Delete syscall filtering rule */ +#define AUDIT_LIST_RULES 1013 /* List syscall filtering rules */ +#define AUDIT_TRIM 1014 /* Trim junk from watched tree */ +#define AUDIT_MAKE_EQUIV 1015 /* Append to watched tree */ +#define AUDIT_TTY_GET 1016 /* Get TTY auditing status */ +#define AUDIT_TTY_SET 1017 /* Set TTY auditing status */ + +#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */ +#define AUDIT_USER_AVC 1107 /* We filter this differently */ +#define AUDIT_USER_TTY 1124 /* Non-ICANON TTY input meaning */ +#define AUDIT_LAST_USER_MSG 1199 +#define AUDIT_FIRST_USER_MSG2 2100 /* More user space messages */ +#define AUDIT_LAST_USER_MSG2 2999 + +#define AUDIT_DAEMON_START 1200 /* Daemon startup record */ +#define AUDIT_DAEMON_END 1201 /* Daemon normal stop record */ +#define AUDIT_DAEMON_ABORT 1202 /* Daemon error stop record */ +#define AUDIT_DAEMON_CONFIG 1203 /* Daemon config change */ + +#define AUDIT_SYSCALL 1300 /* Syscall event */ +/* #define AUDIT_FS_WATCH 1301 * Deprecated */ +#define AUDIT_PATH 1302 /* Filename path information */ +#define AUDIT_IPC 1303 /* IPC record */ +#define AUDIT_SOCKETCALL 1304 /* sys_socketcall arguments */ +#define AUDIT_CONFIG_CHANGE 1305 /* Audit system configuration change */ +#define AUDIT_SOCKADDR 1306 /* sockaddr copied as syscall arg */ +#define AUDIT_CWD 1307 /* Current working directory */ +#define AUDIT_EXECVE 1309 /* execve arguments */ +#define AUDIT_IPC_SET_PERM 1311 /* IPC new permissions record type */ +#define AUDIT_MQ_OPEN 1312 /* POSIX MQ open record type */ +#define AUDIT_MQ_SENDRECV 1313 /* POSIX MQ send/receive record type */ +#define AUDIT_MQ_NOTIFY 1314 /* POSIX MQ notify record type */ +#define AUDIT_MQ_GETSETATTR 1315 /* POSIX MQ get/set attribute record type */ +#define AUDIT_KERNEL_OTHER 1316 /* For use by 3rd party modules */ +#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */ +#define AUDIT_OBJ_PID 1318 /* ptrace target */ +#define AUDIT_TTY 1319 /* Input on an administrative TTY */ +#define AUDIT_EOE 1320 /* End of multi-record event */ +#define AUDIT_BPRM_FCAPS 1321 /* Information about fcaps increasing perms */ +#define AUDIT_CAPSET 1322 /* Record showing argument to sys_capset */ +#define AUDIT_MMAP 1323 /* Record showing descriptor and flags in mmap */ +#define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */ +#define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */ +#define AUDIT_SECCOMP 1326 /* Secure Computing event */ + +#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ +#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ +#define AUDIT_AVC_PATH 1402 /* dentry, vfsmount pair from avc */ +#define AUDIT_MAC_POLICY_LOAD 1403 /* Policy file load */ +#define AUDIT_MAC_STATUS 1404 /* Changed enforcing,permissive,off */ +#define AUDIT_MAC_CONFIG_CHANGE 1405 /* Changes to booleans */ +#define AUDIT_MAC_UNLBL_ALLOW 1406 /* NetLabel: allow unlabeled traffic */ +#define AUDIT_MAC_CIPSOV4_ADD 1407 /* NetLabel: add CIPSOv4 DOI entry */ +#define AUDIT_MAC_CIPSOV4_DEL 1408 /* NetLabel: del CIPSOv4 DOI entry */ +#define AUDIT_MAC_MAP_ADD 1409 /* NetLabel: add LSM domain mapping */ +#define AUDIT_MAC_MAP_DEL 1410 /* NetLabel: del LSM domain mapping */ +#define AUDIT_MAC_IPSEC_ADDSA 1411 /* Not used */ +#define AUDIT_MAC_IPSEC_DELSA 1412 /* Not used */ +#define AUDIT_MAC_IPSEC_ADDSPD 1413 /* Not used */ +#define AUDIT_MAC_IPSEC_DELSPD 1414 /* Not used */ +#define AUDIT_MAC_IPSEC_EVENT 1415 /* Audit an IPSec event */ +#define AUDIT_MAC_UNLBL_STCADD 1416 /* NetLabel: add a static label */ +#define AUDIT_MAC_UNLBL_STCDEL 1417 /* NetLabel: del a static label */ + +#define AUDIT_FIRST_KERN_ANOM_MSG 1700 +#define AUDIT_LAST_KERN_ANOM_MSG 1799 +#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */ +#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */ +#define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */ +#define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */ +#define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */ +#define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */ +#define AUDIT_INTEGRITY_HASH 1803 /* Integrity HASH type */ +#define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */ +#define AUDIT_INTEGRITY_RULE 1805 /* policy rule */ + +#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ + +/* Rule flags */ +#define AUDIT_FILTER_USER 0x00 /* Apply rule to user-generated messages */ +#define AUDIT_FILTER_TASK 0x01 /* Apply rule at task creation (not syscall) */ +#define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */ +#define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */ +#define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */ +#define AUDIT_FILTER_TYPE 0x05 /* Apply rule at audit_log_start */ + +#define AUDIT_NR_FILTERS 6 + +#define AUDIT_FILTER_PREPEND 0x10 /* Prepend to front of list */ + +/* Rule actions */ +#define AUDIT_NEVER 0 /* Do not build context if rule matches */ +#define AUDIT_POSSIBLE 1 /* Build context if rule matches */ +#define AUDIT_ALWAYS 2 /* Generate audit record if rule matches */ + +/* Rule structure sizes -- if these change, different AUDIT_ADD and + * AUDIT_LIST commands must be implemented. */ +#define AUDIT_MAX_FIELDS 64 +#define AUDIT_MAX_KEY_LEN 256 +#define AUDIT_BITMASK_SIZE 64 +#define AUDIT_WORD(nr) ((__u32)((nr)/32)) +#define AUDIT_BIT(nr) (1 << ((nr) - AUDIT_WORD(nr)*32)) + +#define AUDIT_SYSCALL_CLASSES 16 +#define AUDIT_CLASS_DIR_WRITE 0 +#define AUDIT_CLASS_DIR_WRITE_32 1 +#define AUDIT_CLASS_CHATTR 2 +#define AUDIT_CLASS_CHATTR_32 3 +#define AUDIT_CLASS_READ 4 +#define AUDIT_CLASS_READ_32 5 +#define AUDIT_CLASS_WRITE 6 +#define AUDIT_CLASS_WRITE_32 7 +#define AUDIT_CLASS_SIGNAL 8 +#define AUDIT_CLASS_SIGNAL_32 9 + +/* This bitmask is used to validate user input. It represents all bits that + * are currently used in an audit field constant understood by the kernel. + * If you are adding a new #define AUDIT_, please ensure that + * AUDIT_UNUSED_BITS is updated if need be. */ +#define AUDIT_UNUSED_BITS 0x07FFFC00 + +/* AUDIT_FIELD_COMPARE rule list */ +#define AUDIT_COMPARE_UID_TO_OBJ_UID 1 +#define AUDIT_COMPARE_GID_TO_OBJ_GID 2 +#define AUDIT_COMPARE_EUID_TO_OBJ_UID 3 +#define AUDIT_COMPARE_EGID_TO_OBJ_GID 4 +#define AUDIT_COMPARE_AUID_TO_OBJ_UID 5 +#define AUDIT_COMPARE_SUID_TO_OBJ_UID 6 +#define AUDIT_COMPARE_SGID_TO_OBJ_GID 7 +#define AUDIT_COMPARE_FSUID_TO_OBJ_UID 8 +#define AUDIT_COMPARE_FSGID_TO_OBJ_GID 9 + +#define AUDIT_COMPARE_UID_TO_AUID 10 +#define AUDIT_COMPARE_UID_TO_EUID 11 +#define AUDIT_COMPARE_UID_TO_FSUID 12 +#define AUDIT_COMPARE_UID_TO_SUID 13 + +#define AUDIT_COMPARE_AUID_TO_FSUID 14 +#define AUDIT_COMPARE_AUID_TO_SUID 15 +#define AUDIT_COMPARE_AUID_TO_EUID 16 + +#define AUDIT_COMPARE_EUID_TO_SUID 17 +#define AUDIT_COMPARE_EUID_TO_FSUID 18 + +#define AUDIT_COMPARE_SUID_TO_FSUID 19 + +#define AUDIT_COMPARE_GID_TO_EGID 20 +#define AUDIT_COMPARE_GID_TO_FSGID 21 +#define AUDIT_COMPARE_GID_TO_SGID 22 + +#define AUDIT_COMPARE_EGID_TO_FSGID 23 +#define AUDIT_COMPARE_EGID_TO_SGID 24 +#define AUDIT_COMPARE_SGID_TO_FSGID 25 + +#define AUDIT_MAX_FIELD_COMPARE AUDIT_COMPARE_SGID_TO_FSGID + +/* Rule fields */ + /* These are useful when checking the + * task structure at task creation time + * (AUDIT_PER_TASK). */ +#define AUDIT_PID 0 +#define AUDIT_UID 1 +#define AUDIT_EUID 2 +#define AUDIT_SUID 3 +#define AUDIT_FSUID 4 +#define AUDIT_GID 5 +#define AUDIT_EGID 6 +#define AUDIT_SGID 7 +#define AUDIT_FSGID 8 +#define AUDIT_LOGINUID 9 +#define AUDIT_PERS 10 +#define AUDIT_ARCH 11 +#define AUDIT_MSGTYPE 12 +#define AUDIT_SUBJ_USER 13 /* security label user */ +#define AUDIT_SUBJ_ROLE 14 /* security label role */ +#define AUDIT_SUBJ_TYPE 15 /* security label type */ +#define AUDIT_SUBJ_SEN 16 /* security label sensitivity label */ +#define AUDIT_SUBJ_CLR 17 /* security label clearance label */ +#define AUDIT_PPID 18 +#define AUDIT_OBJ_USER 19 +#define AUDIT_OBJ_ROLE 20 +#define AUDIT_OBJ_TYPE 21 +#define AUDIT_OBJ_LEV_LOW 22 +#define AUDIT_OBJ_LEV_HIGH 23 +#define AUDIT_LOGINUID_SET 24 + + /* These are ONLY useful when checking + * at syscall exit time (AUDIT_AT_EXIT). */ +#define AUDIT_DEVMAJOR 100 +#define AUDIT_DEVMINOR 101 +#define AUDIT_INODE 102 +#define AUDIT_EXIT 103 +#define AUDIT_SUCCESS 104 /* exit >= 0; value ignored */ +#define AUDIT_WATCH 105 +#define AUDIT_PERM 106 +#define AUDIT_DIR 107 +#define AUDIT_FILETYPE 108 +#define AUDIT_OBJ_UID 109 +#define AUDIT_OBJ_GID 110 +#define AUDIT_FIELD_COMPARE 111 + +#define AUDIT_ARG0 200 +#define AUDIT_ARG1 (AUDIT_ARG0+1) +#define AUDIT_ARG2 (AUDIT_ARG0+2) +#define AUDIT_ARG3 (AUDIT_ARG0+3) + +#define AUDIT_FILTERKEY 210 + +#define AUDIT_NEGATE 0x80000000 + +/* These are the supported operators. + * 4 2 1 8 + * = > < ? + * ---------- + * 0 0 0 0 00 nonsense + * 0 0 0 1 08 & bit mask + * 0 0 1 0 10 < + * 0 1 0 0 20 > + * 0 1 1 0 30 != + * 1 0 0 0 40 = + * 1 0 0 1 48 &= bit test + * 1 0 1 0 50 <= + * 1 1 0 0 60 >= + * 1 1 1 1 78 all operators + */ +#define AUDIT_BIT_MASK 0x08000000 +#define AUDIT_LESS_THAN 0x10000000 +#define AUDIT_GREATER_THAN 0x20000000 +#define AUDIT_NOT_EQUAL 0x30000000 +#define AUDIT_EQUAL 0x40000000 +#define AUDIT_BIT_TEST (AUDIT_BIT_MASK|AUDIT_EQUAL) +#define AUDIT_LESS_THAN_OR_EQUAL (AUDIT_LESS_THAN|AUDIT_EQUAL) +#define AUDIT_GREATER_THAN_OR_EQUAL (AUDIT_GREATER_THAN|AUDIT_EQUAL) +#define AUDIT_OPERATORS (AUDIT_EQUAL|AUDIT_NOT_EQUAL|AUDIT_BIT_MASK) + +enum { + Audit_equal, + Audit_not_equal, + Audit_bitmask, + Audit_bittest, + Audit_lt, + Audit_gt, + Audit_le, + Audit_ge, + Audit_bad +}; + +/* Status symbols */ + /* Mask values */ +#define AUDIT_STATUS_ENABLED 0x0001 +#define AUDIT_STATUS_FAILURE 0x0002 +#define AUDIT_STATUS_PID 0x0004 +#define AUDIT_STATUS_RATE_LIMIT 0x0008 +#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 + /* Failure-to-log actions */ +#define AUDIT_FAIL_SILENT 0 +#define AUDIT_FAIL_PRINTK 1 +#define AUDIT_FAIL_PANIC 2 + +/* distinguish syscall tables */ +#define __AUDIT_ARCH_64BIT 0x80000000 +#define __AUDIT_ARCH_LE 0x40000000 +#define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_ARMEB (EM_ARM) +#define AUDIT_ARCH_CRIS (EM_CRIS|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_FRV (EM_FRV) +#define AUDIT_ARCH_H8300 (EM_H8_300) +#define AUDIT_ARCH_I386 (EM_386|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_IA64 (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_M32R (EM_M32R) +#define AUDIT_ARCH_M68K (EM_68K) +#define AUDIT_ARCH_MIPS (EM_MIPS) +#define AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT) +#define AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_OPENRISC (EM_OPENRISC) +#define AUDIT_ARCH_PARISC (EM_PARISC) +#define AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT) +#define AUDIT_ARCH_PPC (EM_PPC) +#define AUDIT_ARCH_PPC64 (EM_PPC64|__AUDIT_ARCH_64BIT) +#define AUDIT_ARCH_S390 (EM_S390) +#define AUDIT_ARCH_S390X (EM_S390|__AUDIT_ARCH_64BIT) +#define AUDIT_ARCH_SH (EM_SH) +#define AUDIT_ARCH_SHEL (EM_SH|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_SH64 (EM_SH|__AUDIT_ARCH_64BIT) +#define AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_SPARC (EM_SPARC) +#define AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT) +#define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) + +#define AUDIT_PERM_EXEC 1 +#define AUDIT_PERM_WRITE 2 +#define AUDIT_PERM_READ 4 +#define AUDIT_PERM_ATTR 8 + +struct audit_status { + __u32 mask; /* Bit mask for valid entries */ + __u32 enabled; /* 1 = enabled, 0 = disabled */ + __u32 failure; /* Failure-to-log action */ + __u32 pid; /* pid of auditd process */ + __u32 rate_limit; /* messages rate limit (per second) */ + __u32 backlog_limit; /* waiting messages limit */ + __u32 lost; /* messages lost */ + __u32 backlog; /* messages waiting in queue */ +}; + +struct audit_tty_status { + __u32 enabled; /* 1 = enabled, 0 = disabled */ + __u32 log_passwd; /* 1 = enabled, 0 = disabled */ +}; + +/* audit_rule_data supports filter rules with both integer and string + * fields. It corresponds with AUDIT_ADD_RULE, AUDIT_DEL_RULE and + * AUDIT_LIST_RULES requests. + */ +struct audit_rule_data { + __u32 flags; /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */ + __u32 action; /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */ + __u32 field_count; + __u32 mask[AUDIT_BITMASK_SIZE]; /* syscall(s) affected */ + __u32 fields[AUDIT_MAX_FIELDS]; + __u32 values[AUDIT_MAX_FIELDS]; + __u32 fieldflags[AUDIT_MAX_FIELDS]; + __u32 buflen; /* total length of string fields */ + char buf[0]; /* string fields buffer */ +}; + +/* audit_rule is supported to maintain backward compatibility with + * userspace. It supports integer fields only and corresponds to + * AUDIT_ADD, AUDIT_DEL and AUDIT_LIST requests. + */ +struct audit_rule { /* for AUDIT_LIST, AUDIT_ADD, and AUDIT_DEL */ + __u32 flags; /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */ + __u32 action; /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */ + __u32 field_count; + __u32 mask[AUDIT_BITMASK_SIZE]; + __u32 fields[AUDIT_MAX_FIELDS]; + __u32 values[AUDIT_MAX_FIELDS]; +}; + +#endif /* _LINUX_AUDIT_H_ */ diff --git a/kernel_headers/linux/auto_fs.h b/kernel_headers/linux/auto_fs.h new file mode 100644 index 0000000..556e409 --- /dev/null +++ b/kernel_headers/linux/auto_fs.h @@ -0,0 +1,72 @@ +/* -*- linux-c -*- ------------------------------------------------------- * + * + * linux/include/linux/auto_fs.h + * + * Copyright 1997 Transmeta Corporation - All Rights Reserved + * + * This file is part of the Linux kernel and is made available under + * the terms of the GNU General Public License, version 2, or at your + * option, any later version, incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + + +#ifndef _LINUX_AUTO_FS_H +#define _LINUX_AUTO_FS_H + +#include +#include + + +/* This file describes autofs v3 */ +#define AUTOFS_PROTO_VERSION 3 + +/* Range of protocol versions defined */ +#define AUTOFS_MAX_PROTO_VERSION AUTOFS_PROTO_VERSION +#define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION + +/* + * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed + * back to the kernel via ioctl from userspace. On architectures where 32- and + * 64-bit userspace binaries can be executed it's important that the size of + * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we + * do not break the binary ABI interface by changing the structure size. + */ +#if defined(__ia64__) || defined(__alpha__) /* pure 64bit architectures */ +typedef unsigned long autofs_wqt_t; +#else +typedef unsigned int autofs_wqt_t; +#endif + +/* Packet types */ +#define autofs_ptype_missing 0 /* Missing entry (mount request) */ +#define autofs_ptype_expire 1 /* Expire entry (umount request) */ + +struct autofs_packet_hdr { + int proto_version; /* Protocol version */ + int type; /* Type of packet */ +}; + +struct autofs_packet_missing { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[NAME_MAX+1]; +}; + +/* v3 expire (via ioctl) */ +struct autofs_packet_expire { + struct autofs_packet_hdr hdr; + int len; + char name[NAME_MAX+1]; +}; + +#define AUTOFS_IOC_READY _IO(0x93,0x60) +#define AUTOFS_IOC_FAIL _IO(0x93,0x61) +#define AUTOFS_IOC_CATATONIC _IO(0x93,0x62) +#define AUTOFS_IOC_PROTOVER _IOR(0x93,0x63,int) +#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93,0x64,compat_ulong_t) +#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93,0x64,unsigned long) +#define AUTOFS_IOC_EXPIRE _IOR(0x93,0x65,struct autofs_packet_expire) + +#endif /* _LINUX_AUTO_FS_H */ diff --git a/kernel_headers/linux/auto_fs4.h b/kernel_headers/linux/auto_fs4.h new file mode 100644 index 0000000..674aa75 --- /dev/null +++ b/kernel_headers/linux/auto_fs4.h @@ -0,0 +1,164 @@ +/* -*- c -*- + * linux/include/linux/auto_fs4.h + * + * Copyright 1999-2000 Jeremy Fitzhardinge + * + * This file is part of the Linux kernel and is made available under + * the terms of the GNU General Public License, version 2, or at your + * option, any later version, incorporated herein by reference. + */ + +#ifndef _LINUX_AUTO_FS4_H +#define _LINUX_AUTO_FS4_H + +/* Include common v3 definitions */ +#include +#include + +/* autofs v4 definitions */ +#undef AUTOFS_PROTO_VERSION +#undef AUTOFS_MIN_PROTO_VERSION +#undef AUTOFS_MAX_PROTO_VERSION + +#define AUTOFS_PROTO_VERSION 5 +#define AUTOFS_MIN_PROTO_VERSION 3 +#define AUTOFS_MAX_PROTO_VERSION 5 + +#define AUTOFS_PROTO_SUBVERSION 2 + +/* Mask for expire behaviour */ +#define AUTOFS_EXP_IMMEDIATE 1 +#define AUTOFS_EXP_LEAVES 2 + +#define AUTOFS_TYPE_ANY 0U +#define AUTOFS_TYPE_INDIRECT 1U +#define AUTOFS_TYPE_DIRECT 2U +#define AUTOFS_TYPE_OFFSET 4U + +static __inline__ void set_autofs_type_indirect(unsigned int *type) +{ + *type = AUTOFS_TYPE_INDIRECT; + return; +} + +static __inline__ unsigned int autofs_type_indirect(unsigned int type) +{ + return (type == AUTOFS_TYPE_INDIRECT); +} + +static __inline__ void set_autofs_type_direct(unsigned int *type) +{ + *type = AUTOFS_TYPE_DIRECT; + return; +} + +static __inline__ unsigned int autofs_type_direct(unsigned int type) +{ + return (type == AUTOFS_TYPE_DIRECT); +} + +static __inline__ void set_autofs_type_offset(unsigned int *type) +{ + *type = AUTOFS_TYPE_OFFSET; + return; +} + +static __inline__ unsigned int autofs_type_offset(unsigned int type) +{ + return (type == AUTOFS_TYPE_OFFSET); +} + +static __inline__ unsigned int autofs_type_trigger(unsigned int type) +{ + return (type == AUTOFS_TYPE_DIRECT || type == AUTOFS_TYPE_OFFSET); +} + +/* + * This isn't really a type as we use it to say "no type set" to + * indicate we want to search for "any" mount in the + * autofs_dev_ioctl_ismountpoint() device ioctl function. + */ +static __inline__ void set_autofs_type_any(unsigned int *type) +{ + *type = AUTOFS_TYPE_ANY; + return; +} + +static __inline__ unsigned int autofs_type_any(unsigned int type) +{ + return (type == AUTOFS_TYPE_ANY); +} + +/* Daemon notification packet types */ +enum autofs_notify { + NFY_NONE, + NFY_MOUNT, + NFY_EXPIRE +}; + +/* Kernel protocol version 4 packet types */ + +/* Expire entry (umount request) */ +#define autofs_ptype_expire_multi 2 + +/* Kernel protocol version 5 packet types */ + +/* Indirect mount missing and expire requests. */ +#define autofs_ptype_missing_indirect 3 +#define autofs_ptype_expire_indirect 4 + +/* Direct mount missing and expire requests */ +#define autofs_ptype_missing_direct 5 +#define autofs_ptype_expire_direct 6 + +/* v4 multi expire (via pipe) */ +struct autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[NAME_MAX+1]; +}; + +union autofs_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_packet_missing missing; + struct autofs_packet_expire expire; + struct autofs_packet_expire_multi expire_multi; +}; + +/* autofs v5 common packet struct */ +struct autofs_v5_packet { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + __u32 dev; + __u64 ino; + __u32 uid; + __u32 gid; + __u32 pid; + __u32 tgid; + __u32 len; + char name[NAME_MAX+1]; +}; + +typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; +typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; +typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +typedef struct autofs_v5_packet autofs_packet_expire_direct_t; + +union autofs_v5_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_v5_packet v5_packet; + autofs_packet_missing_indirect_t missing_indirect; + autofs_packet_expire_indirect_t expire_indirect; + autofs_packet_missing_direct_t missing_direct; + autofs_packet_expire_direct_t expire_direct; +}; + +#define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93,0x66,int) +#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI +#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI +#define AUTOFS_IOC_PROTOSUBVER _IOR(0x93,0x67,int) +#define AUTOFS_IOC_ASKUMOUNT _IOR(0x93,0x70,int) + + +#endif /* _LINUX_AUTO_FS4_H */ diff --git a/kernel_headers/linux/auxvec.h b/kernel_headers/linux/auxvec.h new file mode 100644 index 0000000..4bad588 --- /dev/null +++ b/kernel_headers/linux/auxvec.h @@ -0,0 +1,36 @@ +#ifndef _LINUX_AUXVEC_H +#define _LINUX_AUXVEC_H + +#include + +/* Symbolic values for the entries in the auxiliary table + put on the initial stack */ +#define AT_NULL 0 /* end of vector */ +#define AT_IGNORE 1 /* entry should be ignored */ +#define AT_EXECFD 2 /* file descriptor of program */ +#define AT_PHDR 3 /* program headers for program */ +#define AT_PHENT 4 /* size of program header entry */ +#define AT_PHNUM 5 /* number of program headers */ +#define AT_PAGESZ 6 /* system page size */ +#define AT_BASE 7 /* base address of interpreter */ +#define AT_FLAGS 8 /* flags */ +#define AT_ENTRY 9 /* entry point of program */ +#define AT_NOTELF 10 /* program is not ELF */ +#define AT_UID 11 /* real uid */ +#define AT_EUID 12 /* effective uid */ +#define AT_GID 13 /* real gid */ +#define AT_EGID 14 /* effective gid */ +#define AT_PLATFORM 15 /* string identifying CPU for optimizations */ +#define AT_HWCAP 16 /* arch dependent hints at CPU capabilities */ +#define AT_CLKTCK 17 /* frequency at which times() increments */ +/* AT_* values 18 through 22 are reserved */ +#define AT_SECURE 23 /* secure mode boolean */ +#define AT_BASE_PLATFORM 24 /* string identifying real platform, may + * differ from AT_PLATFORM. */ +#define AT_RANDOM 25 /* address of 16 random bytes */ +#define AT_HWCAP2 26 /* extension of AT_HWCAP */ + +#define AT_EXECFN 31 /* filename of program */ + + +#endif /* _LINUX_AUXVEC_H */ diff --git a/kernel_headers/linux/avtimer.h b/kernel_headers/linux/avtimer.h new file mode 100644 index 0000000..cbcd824 --- /dev/null +++ b/kernel_headers/linux/avtimer.h @@ -0,0 +1,10 @@ +#ifndef _AVTIMER_H +#define _AVTIMER_H + +#include + +#define MAJOR_NUM 100 + +#define IOCTL_GET_AVTIMER_TICK _IOR(MAJOR_NUM, 0, uint64_t) + +#endif diff --git a/kernel_headers/linux/ax25.h b/kernel_headers/linux/ax25.h new file mode 100644 index 0000000..74c89a4 --- /dev/null +++ b/kernel_headers/linux/ax25.h @@ -0,0 +1,116 @@ +/* + * These are the public elements of the Linux kernel AX.25 code. A similar + * file netrom.h exists for the NET/ROM protocol. + */ + +#ifndef AX25_KERNEL_H +#define AX25_KERNEL_H + +#include + +#define AX25_MTU 256 +#define AX25_MAX_DIGIS 8 + +#define AX25_WINDOW 1 +#define AX25_T1 2 +#define AX25_N2 3 +#define AX25_T3 4 +#define AX25_T2 5 +#define AX25_BACKOFF 6 +#define AX25_EXTSEQ 7 +#define AX25_PIDINCL 8 +#define AX25_IDLE 9 +#define AX25_PACLEN 10 +#define AX25_IAMDIGI 12 + +#define AX25_KILL 99 + +#define SIOCAX25GETUID (SIOCPROTOPRIVATE+0) +#define SIOCAX25ADDUID (SIOCPROTOPRIVATE+1) +#define SIOCAX25DELUID (SIOCPROTOPRIVATE+2) +#define SIOCAX25NOUID (SIOCPROTOPRIVATE+3) +#define SIOCAX25OPTRT (SIOCPROTOPRIVATE+7) +#define SIOCAX25CTLCON (SIOCPROTOPRIVATE+8) +#define SIOCAX25GETINFOOLD (SIOCPROTOPRIVATE+9) +#define SIOCAX25ADDFWD (SIOCPROTOPRIVATE+10) +#define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11) +#define SIOCAX25DEVCTL (SIOCPROTOPRIVATE+12) +#define SIOCAX25GETINFO (SIOCPROTOPRIVATE+13) + +#define AX25_SET_RT_IPMODE 2 + +#define AX25_NOUID_DEFAULT 0 +#define AX25_NOUID_BLOCK 1 + +typedef struct { + char ax25_call[7]; /* 6 call + SSID (shifted ascii!) */ +} ax25_address; + +struct sockaddr_ax25 { + __kernel_sa_family_t sax25_family; + ax25_address sax25_call; + int sax25_ndigis; + /* Digipeater ax25_address sets follow */ +}; + +#define sax25_uid sax25_ndigis + +struct full_sockaddr_ax25 { + struct sockaddr_ax25 fsa_ax25; + ax25_address fsa_digipeater[AX25_MAX_DIGIS]; +}; + +struct ax25_routes_struct { + ax25_address port_addr; + ax25_address dest_addr; + unsigned char digi_count; + ax25_address digi_addr[AX25_MAX_DIGIS]; +}; + +struct ax25_route_opt_struct { + ax25_address port_addr; + ax25_address dest_addr; + int cmd; + int arg; +}; + +struct ax25_ctl_struct { + ax25_address port_addr; + ax25_address source_addr; + ax25_address dest_addr; + unsigned int cmd; + unsigned long arg; + unsigned char digi_count; + ax25_address digi_addr[AX25_MAX_DIGIS]; +}; + +/* this will go away. Please do not export to user land */ +struct ax25_info_struct_deprecated { + unsigned int n2, n2count; + unsigned int t1, t1timer; + unsigned int t2, t2timer; + unsigned int t3, t3timer; + unsigned int idle, idletimer; + unsigned int state; + unsigned int rcv_q, snd_q; +}; + +struct ax25_info_struct { + unsigned int n2, n2count; + unsigned int t1, t1timer; + unsigned int t2, t2timer; + unsigned int t3, t3timer; + unsigned int idle, idletimer; + unsigned int state; + unsigned int rcv_q, snd_q; + unsigned int vs, vr, va, vs_max; + unsigned int paclen; + unsigned int window; +}; + +struct ax25_fwd_struct { + ax25_address port_from; + ax25_address port_to; +}; + +#endif diff --git a/kernel_headers/linux/b1lli.h b/kernel_headers/linux/b1lli.h new file mode 100644 index 0000000..713f712 --- /dev/null +++ b/kernel_headers/linux/b1lli.h @@ -0,0 +1,73 @@ +/* $Id: b1lli.h,v 1.8.8.3 2001/09/23 22:25:05 kai Exp $ + * + * ISDN lowlevel-module for AVM B1-card. + * + * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef _B1LLI_H_ +#define _B1LLI_H_ +/* + * struct for loading t4 file + */ +typedef struct avmb1_t4file { + int len; + unsigned char *data; +} avmb1_t4file; + +typedef struct avmb1_loaddef { + int contr; + avmb1_t4file t4file; +} avmb1_loaddef; + +typedef struct avmb1_loadandconfigdef { + int contr; + avmb1_t4file t4file; + avmb1_t4file t4config; +} avmb1_loadandconfigdef; + +typedef struct avmb1_resetdef { + int contr; +} avmb1_resetdef; + +typedef struct avmb1_getdef { + int contr; + int cardtype; + int cardstate; +} avmb1_getdef; + +/* + * struct for adding new cards + */ +typedef struct avmb1_carddef { + int port; + int irq; +} avmb1_carddef; + +#define AVM_CARDTYPE_B1 0 +#define AVM_CARDTYPE_T1 1 +#define AVM_CARDTYPE_M1 2 +#define AVM_CARDTYPE_M2 3 + +typedef struct avmb1_extcarddef { + int port; + int irq; + int cardtype; + int cardnr; /* for HEMA/T1 */ +} avmb1_extcarddef; + +#define AVMB1_LOAD 0 /* load image to card */ +#define AVMB1_ADDCARD 1 /* add a new card - OBSOLETE */ +#define AVMB1_RESETCARD 2 /* reset a card */ +#define AVMB1_LOAD_AND_CONFIG 3 /* load image and config to card */ +#define AVMB1_ADDCARD_WITH_TYPE 4 /* add a new card, with cardtype */ +#define AVMB1_GET_CARDINFO 5 /* get cardtype */ +#define AVMB1_REMOVECARD 6 /* remove a card - OBSOLETE */ + +#define AVMB1_REGISTERCARD_IS_OBSOLETE + +#endif /* _B1LLI_H_ */ diff --git a/kernel_headers/linux/batterydata-interface.h b/kernel_headers/linux/batterydata-interface.h new file mode 100644 index 0000000..498f4e0 --- /dev/null +++ b/kernel_headers/linux/batterydata-interface.h @@ -0,0 +1,30 @@ +#ifndef __BATTERYDATA_LIB_H__ +#define __BATTERYDATA_LIB_H__ + +#include + +/** + * struct battery_params - Battery profile data to be exchanged. + * @soc: SOC (state of charge) of the battery + * @ocv_uv: OCV (open circuit voltage) of the battery + * @rbatt_sf: RBATT scaling factor + * @batt_temp: Battery temperature in deci-degree. + * @slope: Slope of the OCV-SOC curve. + * @fcc_mah: FCC (full charge capacity) of the battery. + */ +struct battery_params { + int soc; + int ocv_uv; + int rbatt_sf; + int batt_temp; + int slope; + int fcc_mah; +}; + +/* IOCTLs to query battery profile data */ +#define BPIOCXSOC _IOWR('B', 0x01, struct battery_params) /* SOC */ +#define BPIOCXRBATT _IOWR('B', 0x02, struct battery_params) /* RBATT SF */ +#define BPIOCXSLOPE _IOWR('B', 0x03, struct battery_params) /* SLOPE */ +#define BPIOCXFCC _IOWR('B', 0x04, struct battery_params) /* FCC */ + +#endif diff --git a/kernel_headers/linux/baycom.h b/kernel_headers/linux/baycom.h new file mode 100644 index 0000000..81249e0 --- /dev/null +++ b/kernel_headers/linux/baycom.h @@ -0,0 +1,39 @@ +/* + * The Linux BAYCOM driver for the Baycom serial 1200 baud modem + * and the parallel 9600 baud modem + * (C) 1997-1998 by Thomas Sailer, HB9JNX/AE4WA + */ + +#ifndef _BAYCOM_H +#define _BAYCOM_H + +/* -------------------------------------------------------------------- */ +/* + * structs for the IOCTL commands + */ + +struct baycom_debug_data { + unsigned long debug1; + unsigned long debug2; + long debug3; +}; + +struct baycom_ioctl { + int cmd; + union { + struct baycom_debug_data dbg; + } data; +}; + +/* -------------------------------------------------------------------- */ + +/* + * ioctl values change for baycom + */ +#define BAYCOMCTL_GETDEBUG 0x92 + +/* -------------------------------------------------------------------- */ + +#endif /* _BAYCOM_H */ + +/* --------------------------------------------------------------------- */ diff --git a/kernel_headers/linux/bfs_fs.h b/kernel_headers/linux/bfs_fs.h new file mode 100644 index 0000000..1c0b355 --- /dev/null +++ b/kernel_headers/linux/bfs_fs.h @@ -0,0 +1,81 @@ +/* + * include/linux/bfs_fs.h - BFS data structures on disk. + * Copyright (C) 1999 Tigran Aivazian + */ + +#ifndef _LINUX_BFS_FS_H +#define _LINUX_BFS_FS_H + +#include + +#define BFS_BSIZE_BITS 9 +#define BFS_BSIZE (1<i_vtype) */ +#define BFS_VDIR 2L +#define BFS_VREG 1L + +/* BFS inode layout on disk */ +struct bfs_inode { + __le16 i_ino; + __u16 i_unused; + __le32 i_sblock; + __le32 i_eblock; + __le32 i_eoffset; + __le32 i_vtype; + __le32 i_mode; + __le32 i_uid; + __le32 i_gid; + __le32 i_nlink; + __le32 i_atime; + __le32 i_mtime; + __le32 i_ctime; + __u32 i_padding[4]; +}; + +#define BFS_NAMELEN 14 +#define BFS_DIRENT_SIZE 16 +#define BFS_DIRS_PER_BLOCK 32 + +struct bfs_dirent { + __le16 ino; + char name[BFS_NAMELEN]; +}; + +/* BFS superblock layout on disk */ +struct bfs_super_block { + __le32 s_magic; + __le32 s_start; + __le32 s_end; + __le32 s_from; + __le32 s_to; + __s32 s_bfrom; + __s32 s_bto; + char s_fsname[6]; + char s_volume[6]; + __u32 s_padding[118]; +}; + + +#define BFS_OFF2INO(offset) \ + ((((offset) - BFS_BSIZE) / sizeof(struct bfs_inode)) + BFS_ROOT_INO) + +#define BFS_INO2OFF(ino) \ + ((__u32)(((ino) - BFS_ROOT_INO) * sizeof(struct bfs_inode)) + BFS_BSIZE) +#define BFS_NZFILESIZE(ip) \ + ((le32_to_cpu((ip)->i_eoffset) + 1) - le32_to_cpu((ip)->i_sblock) * BFS_BSIZE) + +#define BFS_FILESIZE(ip) \ + ((ip)->i_sblock == 0 ? 0 : BFS_NZFILESIZE(ip)) + +#define BFS_FILEBLOCKS(ip) \ + ((ip)->i_sblock == 0 ? 0 : (le32_to_cpu((ip)->i_eblock) + 1) - le32_to_cpu((ip)->i_sblock)) +#define BFS_UNCLEAN(bfs_sb, sb) \ + ((le32_to_cpu(bfs_sb->s_from) != -1) && (le32_to_cpu(bfs_sb->s_to) != -1) && !(sb->s_flags & MS_RDONLY)) + + +#endif /* _LINUX_BFS_FS_H */ diff --git a/kernel_headers/linux/binfmts.h b/kernel_headers/linux/binfmts.h new file mode 100644 index 0000000..6416794 --- /dev/null +++ b/kernel_headers/linux/binfmts.h @@ -0,0 +1,20 @@ +#ifndef _LINUX_BINFMTS_H +#define _LINUX_BINFMTS_H + +#include + +struct pt_regs; + +/* + * These are the maximum length and maximum number of strings passed to the + * execve() system call. MAX_ARG_STRLEN is essentially random but serves to + * prevent the kernel from being unduly impacted by misaddressed pointers. + * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer. + */ +#define MAX_ARG_STRLEN (PAGE_SIZE * 32) +#define MAX_ARG_STRINGS 0x7FFFFFFF + +/* sizeof(linux_binprm->buf) */ +#define BINPRM_BUF_SIZE 128 + +#endif /* _LINUX_BINFMTS_H */ diff --git a/kernel_headers/linux/blkpg.h b/kernel_headers/linux/blkpg.h new file mode 100644 index 0000000..1b6074e --- /dev/null +++ b/kernel_headers/linux/blkpg.h @@ -0,0 +1,59 @@ +#ifndef _LINUX_BLKPG_H +#define _LINUX_BLKPG_H + +/* + * Partition table and disk geometry handling + * + * A single ioctl with lots of subfunctions: + * + * Device number stuff: + * get_whole_disk() (given the device number of a partition, + * find the device number of the encompassing disk) + * get_all_partitions() (given the device number of a disk, return the + * device numbers of all its known partitions) + * + * Partition stuff: + * add_partition() + * delete_partition() + * test_partition_in_use() (also for test_disk_in_use) + * + * Geometry stuff: + * get_geometry() + * set_geometry() + * get_bios_drivedata() + * + * For today, only the partition stuff - aeb, 990515 + */ + +#include + +#define BLKPG _IO(0x12,105) + +/* The argument structure */ +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void *data; +}; + +/* The subfunctions (for the op field) */ +#define BLKPG_ADD_PARTITION 1 +#define BLKPG_DEL_PARTITION 2 +#define BLKPG_RESIZE_PARTITION 3 + +/* Sizes of name fields. Unused at present. */ +#define BLKPG_DEVNAMELTH 64 +#define BLKPG_VOLNAMELTH 64 + +/* The data structure for ADD_PARTITION and DEL_PARTITION */ +struct blkpg_partition { + long long start; /* starting offset in bytes */ + long long length; /* length in bytes */ + int pno; /* partition number */ + char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2, + to be used in kernel messages */ + char volname[BLKPG_VOLNAMELTH]; /* volume label */ +}; + +#endif /* _LINUX_BLKPG_H */ diff --git a/kernel_headers/linux/blktrace_api.h b/kernel_headers/linux/blktrace_api.h new file mode 100644 index 0000000..8d00071 --- /dev/null +++ b/kernel_headers/linux/blktrace_api.h @@ -0,0 +1,142 @@ +#ifndef BLKTRACE_H +#define BLKTRACE_H + +#include + +/* + * Trace categories + */ +enum blktrace_cat { + BLK_TC_READ = 1 << 0, /* reads */ + BLK_TC_WRITE = 1 << 1, /* writes */ + BLK_TC_FLUSH = 1 << 2, /* flush */ + BLK_TC_SYNC = 1 << 3, /* sync IO */ + BLK_TC_SYNCIO = BLK_TC_SYNC, + BLK_TC_QUEUE = 1 << 4, /* queueing/merging */ + BLK_TC_REQUEUE = 1 << 5, /* requeueing */ + BLK_TC_ISSUE = 1 << 6, /* issue */ + BLK_TC_COMPLETE = 1 << 7, /* completions */ + BLK_TC_FS = 1 << 8, /* fs requests */ + BLK_TC_PC = 1 << 9, /* pc requests */ + BLK_TC_NOTIFY = 1 << 10, /* special message */ + BLK_TC_AHEAD = 1 << 11, /* readahead */ + BLK_TC_META = 1 << 12, /* metadata */ + BLK_TC_DISCARD = 1 << 13, /* discard requests */ + BLK_TC_DRV_DATA = 1 << 14, /* binary per-driver data */ + BLK_TC_FUA = 1 << 15, /* fua requests */ + + BLK_TC_END = 1 << 15, /* we've run out of bits! */ +}; + +#define BLK_TC_SHIFT (16) +#define BLK_TC_ACT(act) ((act) << BLK_TC_SHIFT) + +/* + * Basic trace actions + */ +enum blktrace_act { + __BLK_TA_QUEUE = 1, /* queued */ + __BLK_TA_BACKMERGE, /* back merged to existing rq */ + __BLK_TA_FRONTMERGE, /* front merge to existing rq */ + __BLK_TA_GETRQ, /* allocated new request */ + __BLK_TA_SLEEPRQ, /* sleeping on rq allocation */ + __BLK_TA_REQUEUE, /* request requeued */ + __BLK_TA_ISSUE, /* sent to driver */ + __BLK_TA_COMPLETE, /* completed by driver */ + __BLK_TA_PLUG, /* queue was plugged */ + __BLK_TA_UNPLUG_IO, /* queue was unplugged by io */ + __BLK_TA_UNPLUG_TIMER, /* queue was unplugged by timer */ + __BLK_TA_INSERT, /* insert request */ + __BLK_TA_SPLIT, /* bio was split */ + __BLK_TA_BOUNCE, /* bio was bounced */ + __BLK_TA_REMAP, /* bio was remapped */ + __BLK_TA_ABORT, /* request aborted */ + __BLK_TA_DRV_DATA, /* driver-specific binary data */ +}; + +/* + * Notify events. + */ +enum blktrace_notify { + __BLK_TN_PROCESS = 0, /* establish pid/name mapping */ + __BLK_TN_TIMESTAMP, /* include system clock */ + __BLK_TN_MESSAGE, /* Character string message */ +}; + + +/* + * Trace actions in full. Additionally, read or write is masked + */ +#define BLK_TA_QUEUE (__BLK_TA_QUEUE | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_BACKMERGE (__BLK_TA_BACKMERGE | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_FRONTMERGE (__BLK_TA_FRONTMERGE | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_GETRQ (__BLK_TA_GETRQ | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_SLEEPRQ (__BLK_TA_SLEEPRQ | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_REQUEUE (__BLK_TA_REQUEUE | BLK_TC_ACT(BLK_TC_REQUEUE)) +#define BLK_TA_ISSUE (__BLK_TA_ISSUE | BLK_TC_ACT(BLK_TC_ISSUE)) +#define BLK_TA_COMPLETE (__BLK_TA_COMPLETE| BLK_TC_ACT(BLK_TC_COMPLETE)) +#define BLK_TA_PLUG (__BLK_TA_PLUG | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_UNPLUG_IO (__BLK_TA_UNPLUG_IO | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_UNPLUG_TIMER (__BLK_TA_UNPLUG_TIMER | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_INSERT (__BLK_TA_INSERT | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_SPLIT (__BLK_TA_SPLIT) +#define BLK_TA_BOUNCE (__BLK_TA_BOUNCE) +#define BLK_TA_REMAP (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE)) +#define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA)) + +#define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY)) +#define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY)) +#define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY)) + +#define BLK_IO_TRACE_MAGIC 0x65617400 +#define BLK_IO_TRACE_VERSION 0x07 + +/* + * The trace itself + */ +struct blk_io_trace { + __u32 magic; /* MAGIC << 8 | version */ + __u32 sequence; /* event number */ + __u64 time; /* in microseconds */ + __u64 sector; /* disk offset */ + __u32 bytes; /* transfer length */ + __u32 action; /* what happened */ + __u32 pid; /* who did it */ + __u32 device; /* device number */ + __u32 cpu; /* on what cpu did it happen */ + __u16 error; /* completion error */ + __u16 pdu_len; /* length of data after this trace */ +}; + +/* + * The remap event + */ +struct blk_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; +}; + +enum { + Blktrace_setup = 1, + Blktrace_running, + Blktrace_stopped, +}; + +#define BLKTRACE_BDEV_SIZE 32 + +/* + * User setup structure passed with BLKTRACESTART + */ +struct blk_user_trace_setup { + char name[BLKTRACE_BDEV_SIZE]; /* output */ + __u16 act_mask; /* input */ + __u32 buf_size; /* input */ + __u32 buf_nr; /* input */ + __u64 start_lba; + __u64 end_lba; + __u32 pid; +}; + +#endif /* BLKTRACE_H */ diff --git a/kernel_headers/linux/bpqether.h b/kernel_headers/linux/bpqether.h new file mode 100644 index 0000000..a6c35e1 --- /dev/null +++ b/kernel_headers/linux/bpqether.h @@ -0,0 +1,41 @@ +#ifndef __BPQETHER_H +#define __BPQETHER_H + +/* + * Defines for the BPQETHER pseudo device driver + */ + +#ifndef __LINUX_IF_ETHER_H +#include +#endif + +#define SIOCSBPQETHOPT (SIOCDEVPRIVATE+0) /* reserved */ +#define SIOCSBPQETHADDR (SIOCDEVPRIVATE+1) + +struct bpq_ethaddr { + unsigned char destination[ETH_ALEN]; + unsigned char accept[ETH_ALEN]; +}; + +/* + * For SIOCSBPQETHOPT - this is compatible with PI2/PacketTwin card drivers, + * currently not implemented, though. If someone wants to hook a radio + * to his Ethernet card he may find this useful. ;-) + */ + +#define SIOCGBPQETHPARAM 0x5000 /* get Level 1 parameters */ +#define SIOCSBPQETHPARAM 0x5001 /* set */ + +struct bpq_req { + int cmd; + int speed; /* unused */ + int clockmode; /* unused */ + int txdelay; + unsigned char persist; /* unused */ + int slotime; /* unused */ + int squeldelay; + int dmachan; /* unused */ + int irq; /* unused */ +}; + +#endif diff --git a/kernel_headers/linux/bsg.h b/kernel_headers/linux/bsg.h new file mode 100644 index 0000000..3eff40e --- /dev/null +++ b/kernel_headers/linux/bsg.h @@ -0,0 +1,65 @@ +#ifndef BSG_H +#define BSG_H + +#include + +#define BSG_PROTOCOL_SCSI 0 + +#define BSG_SUB_PROTOCOL_SCSI_CMD 0 +#define BSG_SUB_PROTOCOL_SCSI_TMF 1 +#define BSG_SUB_PROTOCOL_SCSI_TRANSPORT 2 + +/* + * For flags member below + * sg.h sg_io_hdr also has bits defined for it's flags member. However + * none of these bits are implemented/used by bsg. The bits below are + * allocated to not conflict with sg.h ones anyway. + */ +#define BSG_FLAG_Q_AT_TAIL 0x10 /* default, == 0 at this bit, is Q_AT_HEAD */ + +struct sg_io_v4 { + __s32 guard; /* [i] 'Q' to differentiate from v3 */ + __u32 protocol; /* [i] 0 -> SCSI , .... */ + __u32 subprotocol; /* [i] 0 -> SCSI command, 1 -> SCSI task + management function, .... */ + + __u32 request_len; /* [i] in bytes */ + __u64 request; /* [i], [*i] {SCSI: cdb} */ + __u64 request_tag; /* [i] {SCSI: task tag (only if flagged)} */ + __u32 request_attr; /* [i] {SCSI: task attribute} */ + __u32 request_priority; /* [i] {SCSI: task priority} */ + __u32 request_extra; /* [i] {spare, for padding} */ + __u32 max_response_len; /* [i] in bytes */ + __u64 response; /* [i], [*o] {SCSI: (auto)sense data} */ + + /* "dout_": data out (to device); "din_": data in (from device) */ + __u32 dout_iovec_count; /* [i] 0 -> "flat" dout transfer else + dout_xfer points to array of iovec */ + __u32 dout_xfer_len; /* [i] bytes to be transferred to device */ + __u32 din_iovec_count; /* [i] 0 -> "flat" din transfer */ + __u32 din_xfer_len; /* [i] bytes to be transferred from device */ + __u64 dout_xferp; /* [i], [*i] */ + __u64 din_xferp; /* [i], [*o] */ + + __u32 timeout; /* [i] units: millisecond */ + __u32 flags; /* [i] bit mask */ + __u64 usr_ptr; /* [i->o] unused internally */ + __u32 spare_in; /* [i] */ + + __u32 driver_status; /* [o] 0 -> ok */ + __u32 transport_status; /* [o] 0 -> ok */ + __u32 device_status; /* [o] {SCSI: command completion status} */ + __u32 retry_delay; /* [o] {SCSI: status auxiliary information} */ + __u32 info; /* [o] additional information */ + __u32 duration; /* [o] time to complete, in milliseconds */ + __u32 response_len; /* [o] bytes of response actually written */ + __s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */ + __s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */ + __u64 generated_tag; /* [o] {SCSI: transport generated task tag} */ + __u32 spare_out; /* [o] */ + + __u32 padding; +}; + + +#endif /* BSG_H */ diff --git a/kernel_headers/linux/btrfs.h b/kernel_headers/linux/btrfs.h new file mode 100644 index 0000000..e93eccb --- /dev/null +++ b/kernel_headers/linux/btrfs.h @@ -0,0 +1,542 @@ +/* + * Copyright (C) 2007 Oracle. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License v2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + */ + +#ifndef _LINUX_BTRFS_H +#define _LINUX_BTRFS_H +#include +#include + +#define BTRFS_IOCTL_MAGIC 0x94 +#define BTRFS_VOL_NAME_MAX 255 + +/* this should be 4k */ +#define BTRFS_PATH_NAME_MAX 4087 +struct btrfs_ioctl_vol_args { + __s64 fd; + char name[BTRFS_PATH_NAME_MAX + 1]; +}; + +#define BTRFS_DEVICE_PATH_NAME_MAX 1024 + +#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) +#define BTRFS_SUBVOL_RDONLY (1ULL << 1) +#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2) +#define BTRFS_FSID_SIZE 16 +#define BTRFS_UUID_SIZE 16 + +#define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0) + +struct btrfs_qgroup_limit { + __u64 flags; + __u64 max_rfer; + __u64 max_excl; + __u64 rsv_rfer; + __u64 rsv_excl; +}; + +struct btrfs_qgroup_inherit { + __u64 flags; + __u64 num_qgroups; + __u64 num_ref_copies; + __u64 num_excl_copies; + struct btrfs_qgroup_limit lim; + __u64 qgroups[0]; +}; + +struct btrfs_ioctl_qgroup_limit_args { + __u64 qgroupid; + struct btrfs_qgroup_limit lim; +}; + +#define BTRFS_SUBVOL_NAME_MAX 4039 +struct btrfs_ioctl_vol_args_v2 { + __s64 fd; + __u64 transid; + __u64 flags; + union { + struct { + __u64 size; + struct btrfs_qgroup_inherit *qgroup_inherit; + }; + __u64 unused[4]; + }; + char name[BTRFS_SUBVOL_NAME_MAX + 1]; +}; + +/* + * structure to report errors and progress to userspace, either as a + * result of a finished scrub, a canceled scrub or a progress inquiry + */ +struct btrfs_scrub_progress { + __u64 data_extents_scrubbed; /* # of data extents scrubbed */ + __u64 tree_extents_scrubbed; /* # of tree extents scrubbed */ + __u64 data_bytes_scrubbed; /* # of data bytes scrubbed */ + __u64 tree_bytes_scrubbed; /* # of tree bytes scrubbed */ + __u64 read_errors; /* # of read errors encountered (EIO) */ + __u64 csum_errors; /* # of failed csum checks */ + __u64 verify_errors; /* # of occurences, where the metadata + * of a tree block did not match the + * expected values, like generation or + * logical */ + __u64 no_csum; /* # of 4k data block for which no csum + * is present, probably the result of + * data written with nodatasum */ + __u64 csum_discards; /* # of csum for which no data was found + * in the extent tree. */ + __u64 super_errors; /* # of bad super blocks encountered */ + __u64 malloc_errors; /* # of internal kmalloc errors. These + * will likely cause an incomplete + * scrub */ + __u64 uncorrectable_errors; /* # of errors where either no intact + * copy was found or the writeback + * failed */ + __u64 corrected_errors; /* # of errors corrected */ + __u64 last_physical; /* last physical address scrubbed. In + * case a scrub was aborted, this can + * be used to restart the scrub */ + __u64 unverified_errors; /* # of occurences where a read for a + * full (64k) bio failed, but the re- + * check succeeded for each 4k piece. + * Intermittent error. */ +}; + +#define BTRFS_SCRUB_READONLY 1 +struct btrfs_ioctl_scrub_args { + __u64 devid; /* in */ + __u64 start; /* in */ + __u64 end; /* in */ + __u64 flags; /* in */ + struct btrfs_scrub_progress progress; /* out */ + /* pad to 1k */ + __u64 unused[(1024-32-sizeof(struct btrfs_scrub_progress))/8]; +}; + +#define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS 0 +#define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID 1 +struct btrfs_ioctl_dev_replace_start_params { + __u64 srcdevid; /* in, if 0, use srcdev_name instead */ + __u64 cont_reading_from_srcdev_mode; /* in, see #define + * above */ + __u8 srcdev_name[BTRFS_DEVICE_PATH_NAME_MAX + 1]; /* in */ + __u8 tgtdev_name[BTRFS_DEVICE_PATH_NAME_MAX + 1]; /* in */ +}; + +#define BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED 0 +#define BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED 1 +#define BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED 2 +#define BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED 3 +#define BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED 4 +struct btrfs_ioctl_dev_replace_status_params { + __u64 replace_state; /* out, see #define above */ + __u64 progress_1000; /* out, 0 <= x <= 1000 */ + __u64 time_started; /* out, seconds since 1-Jan-1970 */ + __u64 time_stopped; /* out, seconds since 1-Jan-1970 */ + __u64 num_write_errors; /* out */ + __u64 num_uncorrectable_read_errors; /* out */ +}; + +#define BTRFS_IOCTL_DEV_REPLACE_CMD_START 0 +#define BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS 1 +#define BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL 2 +#define BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR 0 +#define BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED 1 +#define BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED 2 +struct btrfs_ioctl_dev_replace_args { + __u64 cmd; /* in */ + __u64 result; /* out */ + + union { + struct btrfs_ioctl_dev_replace_start_params start; + struct btrfs_ioctl_dev_replace_status_params status; + }; /* in/out */ + + __u64 spare[64]; +}; + +struct btrfs_ioctl_dev_info_args { + __u64 devid; /* in/out */ + __u8 uuid[BTRFS_UUID_SIZE]; /* in/out */ + __u64 bytes_used; /* out */ + __u64 total_bytes; /* out */ + __u64 unused[379]; /* pad to 4k */ + __u8 path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */ +}; + +struct btrfs_ioctl_fs_info_args { + __u64 max_id; /* out */ + __u64 num_devices; /* out */ + __u8 fsid[BTRFS_FSID_SIZE]; /* out */ + __u64 reserved[124]; /* pad to 1k */ +}; + +/* balance control ioctl modes */ +#define BTRFS_BALANCE_CTL_PAUSE 1 +#define BTRFS_BALANCE_CTL_CANCEL 2 + +/* + * this is packed, because it should be exactly the same as its disk + * byte order counterpart (struct btrfs_disk_balance_args) + */ +struct btrfs_balance_args { + __u64 profiles; + __u64 usage; + __u64 devid; + __u64 pstart; + __u64 pend; + __u64 vstart; + __u64 vend; + + __u64 target; + + __u64 flags; + + __u64 unused[8]; +} __attribute__ ((__packed__)); + +/* report balance progress to userspace */ +struct btrfs_balance_progress { + __u64 expected; /* estimated # of chunks that will be + * relocated to fulfill the request */ + __u64 considered; /* # of chunks we have considered so far */ + __u64 completed; /* # of chunks relocated so far */ +}; + +#define BTRFS_BALANCE_STATE_RUNNING (1ULL << 0) +#define BTRFS_BALANCE_STATE_PAUSE_REQ (1ULL << 1) +#define BTRFS_BALANCE_STATE_CANCEL_REQ (1ULL << 2) + +struct btrfs_ioctl_balance_args { + __u64 flags; /* in/out */ + __u64 state; /* out */ + + struct btrfs_balance_args data; /* in/out */ + struct btrfs_balance_args meta; /* in/out */ + struct btrfs_balance_args sys; /* in/out */ + + struct btrfs_balance_progress stat; /* out */ + + __u64 unused[72]; /* pad to 1k */ +}; + +#define BTRFS_INO_LOOKUP_PATH_MAX 4080 +struct btrfs_ioctl_ino_lookup_args { + __u64 treeid; + __u64 objectid; + char name[BTRFS_INO_LOOKUP_PATH_MAX]; +}; + +struct btrfs_ioctl_search_key { + /* which root are we searching. 0 is the tree of tree roots */ + __u64 tree_id; + + /* keys returned will be >= min and <= max */ + __u64 min_objectid; + __u64 max_objectid; + + /* keys returned will be >= min and <= max */ + __u64 min_offset; + __u64 max_offset; + + /* max and min transids to search for */ + __u64 min_transid; + __u64 max_transid; + + /* keys returned will be >= min and <= max */ + __u32 min_type; + __u32 max_type; + + /* + * how many items did userland ask for, and how many are we + * returning + */ + __u32 nr_items; + + /* align to 64 bits */ + __u32 unused; + + /* some extra for later */ + __u64 unused1; + __u64 unused2; + __u64 unused3; + __u64 unused4; +}; + +struct btrfs_ioctl_search_header { + __u64 transid; + __u64 objectid; + __u64 offset; + __u32 type; + __u32 len; +}; + +#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) +/* + * the buf is an array of search headers where + * each header is followed by the actual item + * the type field is expanded to 32 bits for alignment + */ +struct btrfs_ioctl_search_args { + struct btrfs_ioctl_search_key key; + char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; +}; + +struct btrfs_ioctl_clone_range_args { + __s64 src_fd; + __u64 src_offset, src_length; + __u64 dest_offset; +}; + +/* flags for the defrag range ioctl */ +#define BTRFS_DEFRAG_RANGE_COMPRESS 1 +#define BTRFS_DEFRAG_RANGE_START_IO 2 + +struct btrfs_ioctl_space_info { + __u64 flags; + __u64 total_bytes; + __u64 used_bytes; +}; + +struct btrfs_ioctl_space_args { + __u64 space_slots; + __u64 total_spaces; + struct btrfs_ioctl_space_info spaces[0]; +}; + +struct btrfs_data_container { + __u32 bytes_left; /* out -- bytes not needed to deliver output */ + __u32 bytes_missing; /* out -- additional bytes needed for result */ + __u32 elem_cnt; /* out */ + __u32 elem_missed; /* out */ + __u64 val[0]; /* out */ +}; + +struct btrfs_ioctl_ino_path_args { + __u64 inum; /* in */ + __u64 size; /* in */ + __u64 reserved[4]; + /* struct btrfs_data_container *fspath; out */ + __u64 fspath; /* out */ +}; + +struct btrfs_ioctl_logical_ino_args { + __u64 logical; /* in */ + __u64 size; /* in */ + __u64 reserved[4]; + /* struct btrfs_data_container *inodes; out */ + __u64 inodes; +}; + +enum btrfs_dev_stat_values { + /* disk I/O failure stats */ + BTRFS_DEV_STAT_WRITE_ERRS, /* EIO or EREMOTEIO from lower layers */ + BTRFS_DEV_STAT_READ_ERRS, /* EIO or EREMOTEIO from lower layers */ + BTRFS_DEV_STAT_FLUSH_ERRS, /* EIO or EREMOTEIO from lower layers */ + + /* stats for indirect indications for I/O failures */ + BTRFS_DEV_STAT_CORRUPTION_ERRS, /* checksum error, bytenr error or + * contents is illegal: this is an + * indication that the block was damaged + * during read or write, or written to + * wrong location or read from wrong + * location */ + BTRFS_DEV_STAT_GENERATION_ERRS, /* an indication that blocks have not + * been written */ + + BTRFS_DEV_STAT_VALUES_MAX +}; + +/* Reset statistics after reading; needs SYS_ADMIN capability */ +#define BTRFS_DEV_STATS_RESET (1ULL << 0) + +struct btrfs_ioctl_get_dev_stats { + __u64 devid; /* in */ + __u64 nr_items; /* in/out */ + __u64 flags; /* in/out */ + + /* out values: */ + __u64 values[BTRFS_DEV_STAT_VALUES_MAX]; + + __u64 unused[128 - 2 - BTRFS_DEV_STAT_VALUES_MAX]; /* pad to 1k */ +}; + +#define BTRFS_QUOTA_CTL_ENABLE 1 +#define BTRFS_QUOTA_CTL_DISABLE 2 +#define BTRFS_QUOTA_CTL_RESCAN__NOTUSED 3 +struct btrfs_ioctl_quota_ctl_args { + __u64 cmd; + __u64 status; +}; + +struct btrfs_ioctl_quota_rescan_args { + __u64 flags; + __u64 progress; + __u64 reserved[6]; +}; + +struct btrfs_ioctl_qgroup_assign_args { + __u64 assign; + __u64 src; + __u64 dst; +}; + +struct btrfs_ioctl_qgroup_create_args { + __u64 create; + __u64 qgroupid; +}; +struct btrfs_ioctl_timespec { + __u64 sec; + __u32 nsec; +}; + +struct btrfs_ioctl_received_subvol_args { + char uuid[BTRFS_UUID_SIZE]; /* in */ + __u64 stransid; /* in */ + __u64 rtransid; /* out */ + struct btrfs_ioctl_timespec stime; /* in */ + struct btrfs_ioctl_timespec rtime; /* out */ + __u64 flags; /* in */ + __u64 reserved[16]; /* in */ +}; + +/* + * Caller doesn't want file data in the send stream, even if the + * search of clone sources doesn't find an extent. UPDATE_EXTENT + * commands will be sent instead of WRITE commands. + */ +#define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1 + +/* + * Do not add the leading stream header. Used when multiple snapshots + * are sent back to back. + */ +#define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2 + +/* + * Omit the command at the end of the stream that indicated the end + * of the stream. This option is used when multiple snapshots are + * sent back to back. + */ +#define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4 + +#define BTRFS_SEND_FLAG_MASK \ + (BTRFS_SEND_FLAG_NO_FILE_DATA | \ + BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | \ + BTRFS_SEND_FLAG_OMIT_END_CMD) + +struct btrfs_ioctl_send_args { + __s64 send_fd; /* in */ + __u64 clone_sources_count; /* in */ + __u64 *clone_sources; /* in */ + __u64 parent_root; /* in */ + __u64 flags; /* in */ + __u64 reserved[4]; /* in */ +}; + +#define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_RESIZE _IOW(BTRFS_IOCTL_MAGIC, 3, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_SCAN_DEV _IOW(BTRFS_IOCTL_MAGIC, 4, \ + struct btrfs_ioctl_vol_args) +/* trans start and trans end are dangerous, and only for + * use by applications that know how to avoid the + * resulting deadlocks + */ +#define BTRFS_IOC_TRANS_START _IO(BTRFS_IOCTL_MAGIC, 6) +#define BTRFS_IOC_TRANS_END _IO(BTRFS_IOCTL_MAGIC, 7) +#define BTRFS_IOC_SYNC _IO(BTRFS_IOCTL_MAGIC, 8) + +#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int) +#define BTRFS_IOC_ADD_DEV _IOW(BTRFS_IOCTL_MAGIC, 10, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_RM_DEV _IOW(BTRFS_IOCTL_MAGIC, 11, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_BALANCE _IOW(BTRFS_IOCTL_MAGIC, 12, \ + struct btrfs_ioctl_vol_args) + +#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \ + struct btrfs_ioctl_clone_range_args) + +#define BTRFS_IOC_SUBVOL_CREATE _IOW(BTRFS_IOCTL_MAGIC, 14, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_SNAP_DESTROY _IOW(BTRFS_IOCTL_MAGIC, 15, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_DEFRAG_RANGE _IOW(BTRFS_IOCTL_MAGIC, 16, \ + struct btrfs_ioctl_defrag_range_args) +#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \ + struct btrfs_ioctl_search_args) +#define BTRFS_IOC_INO_LOOKUP _IOWR(BTRFS_IOCTL_MAGIC, 18, \ + struct btrfs_ioctl_ino_lookup_args) +#define BTRFS_IOC_DEFAULT_SUBVOL _IOW(BTRFS_IOCTL_MAGIC, 19, u64) +#define BTRFS_IOC_SPACE_INFO _IOWR(BTRFS_IOCTL_MAGIC, 20, \ + struct btrfs_ioctl_space_args) +#define BTRFS_IOC_START_SYNC _IOR(BTRFS_IOCTL_MAGIC, 24, __u64) +#define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) +#define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ + struct btrfs_ioctl_vol_args_v2) +#define BTRFS_IOC_SUBVOL_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 24, \ + struct btrfs_ioctl_vol_args_v2) +#define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) +#define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) +#define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \ + struct btrfs_ioctl_scrub_args) +#define BTRFS_IOC_SCRUB_CANCEL _IO(BTRFS_IOCTL_MAGIC, 28) +#define BTRFS_IOC_SCRUB_PROGRESS _IOWR(BTRFS_IOCTL_MAGIC, 29, \ + struct btrfs_ioctl_scrub_args) +#define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \ + struct btrfs_ioctl_dev_info_args) +#define BTRFS_IOC_FS_INFO _IOR(BTRFS_IOCTL_MAGIC, 31, \ + struct btrfs_ioctl_fs_info_args) +#define BTRFS_IOC_BALANCE_V2 _IOWR(BTRFS_IOCTL_MAGIC, 32, \ + struct btrfs_ioctl_balance_args) +#define BTRFS_IOC_BALANCE_CTL _IOW(BTRFS_IOCTL_MAGIC, 33, int) +#define BTRFS_IOC_BALANCE_PROGRESS _IOR(BTRFS_IOCTL_MAGIC, 34, \ + struct btrfs_ioctl_balance_args) +#define BTRFS_IOC_INO_PATHS _IOWR(BTRFS_IOCTL_MAGIC, 35, \ + struct btrfs_ioctl_ino_path_args) +#define BTRFS_IOC_LOGICAL_INO _IOWR(BTRFS_IOCTL_MAGIC, 36, \ + struct btrfs_ioctl_ino_path_args) +#define BTRFS_IOC_SET_RECEIVED_SUBVOL _IOWR(BTRFS_IOCTL_MAGIC, 37, \ + struct btrfs_ioctl_received_subvol_args) +#define BTRFS_IOC_SEND _IOW(BTRFS_IOCTL_MAGIC, 38, struct btrfs_ioctl_send_args) +#define BTRFS_IOC_DEVICES_READY _IOR(BTRFS_IOCTL_MAGIC, 39, \ + struct btrfs_ioctl_vol_args) +#define BTRFS_IOC_QUOTA_CTL _IOWR(BTRFS_IOCTL_MAGIC, 40, \ + struct btrfs_ioctl_quota_ctl_args) +#define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \ + struct btrfs_ioctl_qgroup_assign_args) +#define BTRFS_IOC_QGROUP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 42, \ + struct btrfs_ioctl_qgroup_create_args) +#define BTRFS_IOC_QGROUP_LIMIT _IOR(BTRFS_IOCTL_MAGIC, 43, \ + struct btrfs_ioctl_qgroup_limit_args) +#define BTRFS_IOC_QUOTA_RESCAN _IOW(BTRFS_IOCTL_MAGIC, 44, \ + struct btrfs_ioctl_quota_rescan_args) +#define BTRFS_IOC_QUOTA_RESCAN_STATUS _IOR(BTRFS_IOCTL_MAGIC, 45, \ + struct btrfs_ioctl_quota_rescan_args) +#define BTRFS_IOC_GET_FSLABEL _IOR(BTRFS_IOCTL_MAGIC, 49, \ + char[BTRFS_LABEL_SIZE]) +#define BTRFS_IOC_SET_FSLABEL _IOW(BTRFS_IOCTL_MAGIC, 50, \ + char[BTRFS_LABEL_SIZE]) +#define BTRFS_IOC_GET_DEV_STATS _IOWR(BTRFS_IOCTL_MAGIC, 52, \ + struct btrfs_ioctl_get_dev_stats) +#define BTRFS_IOC_DEV_REPLACE _IOWR(BTRFS_IOCTL_MAGIC, 53, \ + struct btrfs_ioctl_dev_replace_args) + +#endif /* _LINUX_BTRFS_H */ diff --git a/kernel_headers/linux/byteorder/..install.cmd b/kernel_headers/linux/byteorder/..install.cmd new file mode 100644 index 0000000..741a691 --- /dev/null +++ b/kernel_headers/linux/byteorder/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/byteorder/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/byteorder /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/byteorder big_endian.h little_endian.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/byteorder /android/kernels/moto/surnia/kernel-msm/include/linux/byteorder ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/byteorder /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/byteorder ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/byteorder/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/byteorder/.install diff --git a/kernel_headers/linux/byteorder/.install b/kernel_headers/linux/byteorder/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/byteorder/big_endian.h b/kernel_headers/linux/byteorder/big_endian.h new file mode 100644 index 0000000..a4ef98d --- /dev/null +++ b/kernel_headers/linux/byteorder/big_endian.h @@ -0,0 +1,105 @@ +#ifndef _LINUX_BYTEORDER_BIG_ENDIAN_H +#define _LINUX_BYTEORDER_BIG_ENDIAN_H + +#ifndef __BIG_ENDIAN +#define __BIG_ENDIAN 4321 +#endif +#ifndef __BIG_ENDIAN_BITFIELD +#define __BIG_ENDIAN_BITFIELD +#endif + +#include +#include + +#define __constant_htonl(x) ((__be32)(__u32)(x)) +#define __constant_ntohl(x) ((__u32)(__be32)(x)) +#define __constant_htons(x) ((__be16)(__u16)(x)) +#define __constant_ntohs(x) ((__u16)(__be16)(x)) +#define __constant_cpu_to_le64(x) ((__le64)___constant_swab64((x))) +#define __constant_le64_to_cpu(x) ___constant_swab64((__u64)(__le64)(x)) +#define __constant_cpu_to_le32(x) ((__le32)___constant_swab32((x))) +#define __constant_le32_to_cpu(x) ___constant_swab32((__u32)(__le32)(x)) +#define __constant_cpu_to_le16(x) ((__le16)___constant_swab16((x))) +#define __constant_le16_to_cpu(x) ___constant_swab16((__u16)(__le16)(x)) +#define __constant_cpu_to_be64(x) ((__be64)(__u64)(x)) +#define __constant_be64_to_cpu(x) ((__u64)(__be64)(x)) +#define __constant_cpu_to_be32(x) ((__be32)(__u32)(x)) +#define __constant_be32_to_cpu(x) ((__u32)(__be32)(x)) +#define __constant_cpu_to_be16(x) ((__be16)(__u16)(x)) +#define __constant_be16_to_cpu(x) ((__u16)(__be16)(x)) +#define __cpu_to_le64(x) ((__le64)__swab64((x))) +#define __le64_to_cpu(x) __swab64((__u64)(__le64)(x)) +#define __cpu_to_le32(x) ((__le32)__swab32((x))) +#define __le32_to_cpu(x) __swab32((__u32)(__le32)(x)) +#define __cpu_to_le16(x) ((__le16)__swab16((x))) +#define __le16_to_cpu(x) __swab16((__u16)(__le16)(x)) +#define __cpu_to_be64(x) ((__be64)(__u64)(x)) +#define __be64_to_cpu(x) ((__u64)(__be64)(x)) +#define __cpu_to_be32(x) ((__be32)(__u32)(x)) +#define __be32_to_cpu(x) ((__u32)(__be32)(x)) +#define __cpu_to_be16(x) ((__be16)(__u16)(x)) +#define __be16_to_cpu(x) ((__u16)(__be16)(x)) + +static __inline__ __le64 __cpu_to_le64p(const __u64 *p) +{ + return (__le64)__swab64p(p); +} +static __inline__ __u64 __le64_to_cpup(const __le64 *p) +{ + return __swab64p((__u64 *)p); +} +static __inline__ __le32 __cpu_to_le32p(const __u32 *p) +{ + return (__le32)__swab32p(p); +} +static __inline__ __u32 __le32_to_cpup(const __le32 *p) +{ + return __swab32p((__u32 *)p); +} +static __inline__ __le16 __cpu_to_le16p(const __u16 *p) +{ + return (__le16)__swab16p(p); +} +static __inline__ __u16 __le16_to_cpup(const __le16 *p) +{ + return __swab16p((__u16 *)p); +} +static __inline__ __be64 __cpu_to_be64p(const __u64 *p) +{ + return (__be64)*p; +} +static __inline__ __u64 __be64_to_cpup(const __be64 *p) +{ + return (__u64)*p; +} +static __inline__ __be32 __cpu_to_be32p(const __u32 *p) +{ + return (__be32)*p; +} +static __inline__ __u32 __be32_to_cpup(const __be32 *p) +{ + return (__u32)*p; +} +static __inline__ __be16 __cpu_to_be16p(const __u16 *p) +{ + return (__be16)*p; +} +static __inline__ __u16 __be16_to_cpup(const __be16 *p) +{ + return (__u16)*p; +} +#define __cpu_to_le64s(x) __swab64s((x)) +#define __le64_to_cpus(x) __swab64s((x)) +#define __cpu_to_le32s(x) __swab32s((x)) +#define __le32_to_cpus(x) __swab32s((x)) +#define __cpu_to_le16s(x) __swab16s((x)) +#define __le16_to_cpus(x) __swab16s((x)) +#define __cpu_to_be64s(x) do { (void)(x); } while (0) +#define __be64_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_be32s(x) do { (void)(x); } while (0) +#define __be32_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_be16s(x) do { (void)(x); } while (0) +#define __be16_to_cpus(x) do { (void)(x); } while (0) + + +#endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */ diff --git a/kernel_headers/linux/byteorder/little_endian.h b/kernel_headers/linux/byteorder/little_endian.h new file mode 100644 index 0000000..74e8a15 --- /dev/null +++ b/kernel_headers/linux/byteorder/little_endian.h @@ -0,0 +1,105 @@ +#ifndef _LINUX_BYTEORDER_LITTLE_ENDIAN_H +#define _LINUX_BYTEORDER_LITTLE_ENDIAN_H + +#ifndef __LITTLE_ENDIAN +#define __LITTLE_ENDIAN 1234 +#endif +#ifndef __LITTLE_ENDIAN_BITFIELD +#define __LITTLE_ENDIAN_BITFIELD +#endif + +#include +#include + +#define __constant_htonl(x) ((__be32)___constant_swab32((x))) +#define __constant_ntohl(x) ___constant_swab32((__be32)(x)) +#define __constant_htons(x) ((__be16)___constant_swab16((x))) +#define __constant_ntohs(x) ___constant_swab16((__be16)(x)) +#define __constant_cpu_to_le64(x) ((__le64)(__u64)(x)) +#define __constant_le64_to_cpu(x) ((__u64)(__le64)(x)) +#define __constant_cpu_to_le32(x) ((__le32)(__u32)(x)) +#define __constant_le32_to_cpu(x) ((__u32)(__le32)(x)) +#define __constant_cpu_to_le16(x) ((__le16)(__u16)(x)) +#define __constant_le16_to_cpu(x) ((__u16)(__le16)(x)) +#define __constant_cpu_to_be64(x) ((__be64)___constant_swab64((x))) +#define __constant_be64_to_cpu(x) ___constant_swab64((__u64)(__be64)(x)) +#define __constant_cpu_to_be32(x) ((__be32)___constant_swab32((x))) +#define __constant_be32_to_cpu(x) ___constant_swab32((__u32)(__be32)(x)) +#define __constant_cpu_to_be16(x) ((__be16)___constant_swab16((x))) +#define __constant_be16_to_cpu(x) ___constant_swab16((__u16)(__be16)(x)) +#define __cpu_to_le64(x) ((__le64)(__u64)(x)) +#define __le64_to_cpu(x) ((__u64)(__le64)(x)) +#define __cpu_to_le32(x) ((__le32)(__u32)(x)) +#define __le32_to_cpu(x) ((__u32)(__le32)(x)) +#define __cpu_to_le16(x) ((__le16)(__u16)(x)) +#define __le16_to_cpu(x) ((__u16)(__le16)(x)) +#define __cpu_to_be64(x) ((__be64)__swab64((x))) +#define __be64_to_cpu(x) __swab64((__u64)(__be64)(x)) +#define __cpu_to_be32(x) ((__be32)__swab32((x))) +#define __be32_to_cpu(x) __swab32((__u32)(__be32)(x)) +#define __cpu_to_be16(x) ((__be16)__swab16((x))) +#define __be16_to_cpu(x) __swab16((__u16)(__be16)(x)) + +static __inline__ __le64 __cpu_to_le64p(const __u64 *p) +{ + return (__le64)*p; +} +static __inline__ __u64 __le64_to_cpup(const __le64 *p) +{ + return (__u64)*p; +} +static __inline__ __le32 __cpu_to_le32p(const __u32 *p) +{ + return (__le32)*p; +} +static __inline__ __u32 __le32_to_cpup(const __le32 *p) +{ + return (__u32)*p; +} +static __inline__ __le16 __cpu_to_le16p(const __u16 *p) +{ + return (__le16)*p; +} +static __inline__ __u16 __le16_to_cpup(const __le16 *p) +{ + return (__u16)*p; +} +static __inline__ __be64 __cpu_to_be64p(const __u64 *p) +{ + return (__be64)__swab64p(p); +} +static __inline__ __u64 __be64_to_cpup(const __be64 *p) +{ + return __swab64p((__u64 *)p); +} +static __inline__ __be32 __cpu_to_be32p(const __u32 *p) +{ + return (__be32)__swab32p(p); +} +static __inline__ __u32 __be32_to_cpup(const __be32 *p) +{ + return __swab32p((__u32 *)p); +} +static __inline__ __be16 __cpu_to_be16p(const __u16 *p) +{ + return (__be16)__swab16p(p); +} +static __inline__ __u16 __be16_to_cpup(const __be16 *p) +{ + return __swab16p((__u16 *)p); +} +#define __cpu_to_le64s(x) do { (void)(x); } while (0) +#define __le64_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_le32s(x) do { (void)(x); } while (0) +#define __le32_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_le16s(x) do { (void)(x); } while (0) +#define __le16_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_be64s(x) __swab64s((x)) +#define __be64_to_cpus(x) __swab64s((x)) +#define __cpu_to_be32s(x) __swab32s((x)) +#define __be32_to_cpus(x) __swab32s((x)) +#define __cpu_to_be16s(x) __swab16s((x)) +#define __be16_to_cpus(x) __swab16s((x)) + + +#endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */ diff --git a/kernel_headers/linux/caif/..install.cmd b/kernel_headers/linux/caif/..install.cmd new file mode 100644 index 0000000..a40b5a6 --- /dev/null +++ b/kernel_headers/linux/caif/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/caif/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/caif /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/caif caif_socket.h if_caif.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/caif /android/kernels/moto/surnia/kernel-msm/include/linux/caif ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/caif /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/caif ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/caif/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/caif/.install diff --git a/kernel_headers/linux/caif/.install b/kernel_headers/linux/caif/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/caif/caif_socket.h b/kernel_headers/linux/caif/caif_socket.h new file mode 100644 index 0000000..586e9f9 --- /dev/null +++ b/kernel_headers/linux/caif/caif_socket.h @@ -0,0 +1,194 @@ +/* linux/caif_socket.h + * CAIF Definitions for CAIF socket and network layer + * Copyright (C) ST-Ericsson AB 2010 + * Author: Sjur Brendeland + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef _LINUX_CAIF_SOCKET_H +#define _LINUX_CAIF_SOCKET_H + +#include +#include + +/** + * enum caif_link_selector - Physical Link Selection. + * @CAIF_LINK_HIGH_BANDW: Physical interface for high-bandwidth + * traffic. + * @CAIF_LINK_LOW_LATENCY: Physical interface for low-latency + * traffic. + * + * CAIF Link Layers can register their link properties. + * This enum is used for choosing between CAIF Link Layers when + * setting up CAIF Channels when multiple CAIF Link Layers exists. + */ +enum caif_link_selector { + CAIF_LINK_HIGH_BANDW, + CAIF_LINK_LOW_LATENCY +}; + +/** + * enum caif_channel_priority - CAIF channel priorities. + * + * @CAIF_PRIO_MIN: Min priority for a channel. + * @CAIF_PRIO_LOW: Low-priority channel. + * @CAIF_PRIO_NORMAL: Normal/default priority level. + * @CAIF_PRIO_HIGH: High priority level + * @CAIF_PRIO_MAX: Max priority for channel + * + * Priority can be set on CAIF Channels in order to + * prioritize between traffic on different CAIF Channels. + * These priority levels are recommended, but the priority value + * is not restricted to the values defined in this enum, any value + * between CAIF_PRIO_MIN and CAIF_PRIO_MAX could be used. + */ +enum caif_channel_priority { + CAIF_PRIO_MIN = 0x01, + CAIF_PRIO_LOW = 0x04, + CAIF_PRIO_NORMAL = 0x0f, + CAIF_PRIO_HIGH = 0x14, + CAIF_PRIO_MAX = 0x1F +}; + +/** + * enum caif_protocol_type - CAIF Channel type. + * @CAIFPROTO_AT: Classic AT channel. + * @CAIFPROTO_DATAGRAM: Datagram channel. + * @CAIFPROTO_DATAGRAM_LOOP: Datagram loopback channel, used for testing. + * @CAIFPROTO_UTIL: Utility (Psock) channel. + * @CAIFPROTO_RFM: Remote File Manager + * @CAIFPROTO_DEBUG: Debug link + * + * This enum defines the CAIF Channel type to be used. This defines + * the service to connect to on the modem. + */ +enum caif_protocol_type { + CAIFPROTO_AT, + CAIFPROTO_DATAGRAM, + CAIFPROTO_DATAGRAM_LOOP, + CAIFPROTO_UTIL, + CAIFPROTO_RFM, + CAIFPROTO_DEBUG, + _CAIFPROTO_MAX +}; +#define CAIFPROTO_MAX _CAIFPROTO_MAX + +/** + * enum caif_at_type - AT Service Endpoint + * @CAIF_ATTYPE_PLAIN: Connects to a plain vanilla AT channel. + */ +enum caif_at_type { + CAIF_ATTYPE_PLAIN = 2 +}; + /** + * enum caif_debug_type - Content selection for debug connection + * @CAIF_DEBUG_TRACE_INTERACTIVE: Connection will contain + * both trace and interactive debug. + * @CAIF_DEBUG_TRACE: Connection contains trace only. + * @CAIF_DEBUG_INTERACTIVE: Connection to interactive debug. + */ +enum caif_debug_type { + CAIF_DEBUG_TRACE_INTERACTIVE = 0, + CAIF_DEBUG_TRACE, + CAIF_DEBUG_INTERACTIVE, +}; + +/** + * enum caif_debug_service - Debug Service Endpoint + * @CAIF_RADIO_DEBUG_SERVICE: Debug service on the Radio sub-system + * @CAIF_APP_DEBUG_SERVICE: Debug for the applications sub-system + */ +enum caif_debug_service { + CAIF_RADIO_DEBUG_SERVICE = 1, + CAIF_APP_DEBUG_SERVICE +}; + +/** + * struct sockaddr_caif - the sockaddr structure for CAIF sockets. + * @family: Address family number, must be AF_CAIF. + * @u: Union of address data 'switched' by family. + * : + * @u.at: Applies when family = CAIFPROTO_AT. + * + * @u.at.type: Type of AT link to set up (enum caif_at_type). + * + * @u.util: Applies when family = CAIFPROTO_UTIL + * + * @u.util.service: Utility service name. + * + * @u.dgm: Applies when family = CAIFPROTO_DATAGRAM + * + * @u.dgm.connection_id: Datagram connection id. + * + * @u.dgm.nsapi: NSAPI of the PDP-Context. + * + * @u.rfm: Applies when family = CAIFPROTO_RFM + * + * @u.rfm.connection_id: Connection ID for RFM. + * + * @u.rfm.volume: Volume to mount. + * + * @u.dbg: Applies when family = CAIFPROTO_DEBUG. + * + * @u.dbg.type: Type of debug connection to set up + * (caif_debug_type). + * + * @u.dbg.service: Service sub-system to connect (caif_debug_service + * Description: + * This structure holds the connect parameters used for setting up a + * CAIF Channel. It defines the service to connect to on the modem. + */ +struct sockaddr_caif { + __kernel_sa_family_t family; + union { + struct { + __u8 type; /* type: enum caif_at_type */ + } at; /* CAIFPROTO_AT */ + struct { + char service[16]; + } util; /* CAIFPROTO_UTIL */ + union { + __u32 connection_id; + __u8 nsapi; + } dgm; /* CAIFPROTO_DATAGRAM(_LOOP)*/ + struct { + __u32 connection_id; + char volume[16]; + } rfm; /* CAIFPROTO_RFM */ + struct { + __u8 type; /* type:enum caif_debug_type */ + __u8 service; /* service:caif_debug_service */ + } dbg; /* CAIFPROTO_DEBUG */ + } u; +}; + +/** + * enum caif_socket_opts - CAIF option values for getsockopt and setsockopt. + * + * @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are + * available. Either a high bandwidth + * link can be selected (CAIF_LINK_HIGH_BANDW) or + * or a low latency link (CAIF_LINK_LOW_LATENCY). + * This option is of type __u32. + * Alternatively SO_BINDTODEVICE can be used. + * + * @CAIFSO_REQ_PARAM: Used to set the request parameters for a + * utility channel. (maximum 256 bytes). This + * option must be set before connecting. + * + * @CAIFSO_RSP_PARAM: Gets the response parameters for a utility + * channel. (maximum 256 bytes). This option + * is valid after a successful connect. + * + * + * This enum defines the CAIF Socket options to be used on a socket + * of type PF_CAIF. + * + */ +enum caif_socket_opts { + CAIFSO_LINK_SELECT = 127, + CAIFSO_REQ_PARAM = 128, + CAIFSO_RSP_PARAM = 129, +}; + +#endif /* _LINUX_CAIF_SOCKET_H */ diff --git a/kernel_headers/linux/caif/if_caif.h b/kernel_headers/linux/caif/if_caif.h new file mode 100644 index 0000000..7618aab --- /dev/null +++ b/kernel_headers/linux/caif/if_caif.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) ST-Ericsson AB 2010 + * Author: Sjur Brendeland + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef IF_CAIF_H_ +#define IF_CAIF_H_ +#include +#include +#include + +/** + * enum ifla_caif - CAIF NetlinkRT parameters. + * @IFLA_CAIF_IPV4_CONNID: Connection ID for IPv4 PDP Context. + * The type of attribute is NLA_U32. + * @IFLA_CAIF_IPV6_CONNID: Connection ID for IPv6 PDP Context. + * The type of attribute is NLA_U32. + * @IFLA_CAIF_LOOPBACK: If different from zero, device is doing loopback + * The type of attribute is NLA_U8. + * + * When using RT Netlink to create, destroy or configure a CAIF IP interface, + * enum ifla_caif is used to specify the configuration attributes. + */ +enum ifla_caif { + __IFLA_CAIF_UNSPEC, + IFLA_CAIF_IPV4_CONNID, + IFLA_CAIF_IPV6_CONNID, + IFLA_CAIF_LOOPBACK, + __IFLA_CAIF_MAX +}; +#define IFLA_CAIF_MAX (__IFLA_CAIF_MAX-1) + +#endif /*IF_CAIF_H_*/ diff --git a/kernel_headers/linux/can.h b/kernel_headers/linux/can.h new file mode 100644 index 0000000..e52958d --- /dev/null +++ b/kernel_headers/linux/can.h @@ -0,0 +1,162 @@ +/* + * linux/can.h + * + * Definitions for CAN network layer (socket addr / CAN frame / CAN filter) + * + * Authors: Oliver Hartkopp + * Urs Thuermann + * Copyright (c) 2002-2007 Volkswagen Group Electronic Research + * All rights reserved. + * + */ + +#ifndef CAN_H +#define CAN_H + +#include +#include + +/* controller area network (CAN) kernel definitions */ + +/* special address description flags for the CAN_ID */ +#define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */ +#define CAN_RTR_FLAG 0x40000000U /* remote transmission request */ +#define CAN_ERR_FLAG 0x20000000U /* error message frame */ + +/* valid bits in CAN ID for frame formats */ +#define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */ +#define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */ +#define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */ + +/* + * Controller Area Network Identifier structure + * + * bit 0-28 : CAN identifier (11/29 bit) + * bit 29 : error message frame flag (0 = data frame, 1 = error message) + * bit 30 : remote transmission request flag (1 = rtr frame) + * bit 31 : frame format flag (0 = standard 11 bit, 1 = extended 29 bit) + */ +typedef __u32 canid_t; + +#define CAN_SFF_ID_BITS 11 +#define CAN_EFF_ID_BITS 29 + +/* + * Controller Area Network Error Message Frame Mask structure + * + * bit 0-28 : error class mask (see include/linux/can/error.h) + * bit 29-31 : set to zero + */ +typedef __u32 can_err_mask_t; + +/* CAN payload length and DLC definitions according to ISO 11898-1 */ +#define CAN_MAX_DLC 8 +#define CAN_MAX_DLEN 8 + +/* CAN FD payload length and DLC definitions according to ISO 11898-7 */ +#define CANFD_MAX_DLC 15 +#define CANFD_MAX_DLEN 64 + +/** + * struct can_frame - basic CAN frame structure + * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition + * @can_dlc: frame payload length in byte (0 .. 8) aka data length code + * N.B. the DLC field from ISO 11898-1 Chapter 8.4.2.3 has a 1:1 + * mapping of the 'data length code' to the real payload length + * @data: CAN frame payload (up to 8 byte) + */ +struct can_frame { + canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ + __u8 can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */ + __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8))); +}; + +/* + * defined bits for canfd_frame.flags + * + * The use of struct canfd_frame implies the Extended Data Length (EDL) bit to + * be set in the CAN frame bitstream on the wire. The EDL bit switch turns + * the CAN controllers bitstream processor into the CAN FD mode which creates + * two new options within the CAN FD frame specification: + * + * Bit Rate Switch - to indicate a second bitrate is/was used for the payload + * Error State Indicator - represents the error state of the transmitting node + * + * As the CANFD_ESI bit is internally generated by the transmitting CAN + * controller only the CANFD_BRS bit is relevant for real CAN controllers when + * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make + * sense for virtual CAN interfaces to test applications with echoed frames. + */ +#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ +#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ + +/** + * struct canfd_frame - CAN flexible data rate frame structure + * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition + * @len: frame payload length in byte (0 .. CANFD_MAX_DLEN) + * @flags: additional flags for CAN FD + * @__res0: reserved / padding + * @__res1: reserved / padding + * @data: CAN FD frame payload (up to CANFD_MAX_DLEN byte) + */ +struct canfd_frame { + canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ + __u8 len; /* frame payload length in byte */ + __u8 flags; /* additional flags for CAN FD */ + __u8 __res0; /* reserved / padding */ + __u8 __res1; /* reserved / padding */ + __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8))); +}; + +#define CAN_MTU (sizeof(struct can_frame)) +#define CANFD_MTU (sizeof(struct canfd_frame)) + +/* particular protocols of the protocol family PF_CAN */ +#define CAN_RAW 1 /* RAW sockets */ +#define CAN_BCM 2 /* Broadcast Manager */ +#define CAN_TP16 3 /* VAG Transport Protocol v1.6 */ +#define CAN_TP20 4 /* VAG Transport Protocol v2.0 */ +#define CAN_MCNET 5 /* Bosch MCNet */ +#define CAN_ISOTP 6 /* ISO 15765-2 Transport Protocol */ +#define CAN_NPROTO 7 + +#define SOL_CAN_BASE 100 + +/** + * struct sockaddr_can - the sockaddr structure for CAN sockets + * @can_family: address family number AF_CAN. + * @can_ifindex: CAN network interface index. + * @can_addr: protocol specific address information + */ +struct sockaddr_can { + __kernel_sa_family_t can_family; + int can_ifindex; + union { + /* transport protocol class address information (e.g. ISOTP) */ + struct { canid_t rx_id, tx_id; } tp; + + /* reserved for future CAN protocols address information */ + } can_addr; +}; + +/** + * struct can_filter - CAN ID based filter in can_register(). + * @can_id: relevant bits of CAN ID which are not masked out. + * @can_mask: CAN mask (see description) + * + * Description: + * A filter matches, when + * + * & mask == can_id & mask + * + * The filter can be inverted (CAN_INV_FILTER bit set in can_id) or it can + * filter for error message frames (CAN_ERR_FLAG bit set in mask). + */ +struct can_filter { + canid_t can_id; + canid_t can_mask; +}; + +#define CAN_INV_FILTER 0x20000000U /* to be set in can_filter.can_id */ + +#endif /* CAN_H */ diff --git a/kernel_headers/linux/can/..install.cmd b/kernel_headers/linux/can/..install.cmd new file mode 100644 index 0000000..e233c7e --- /dev/null +++ b/kernel_headers/linux/can/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/can/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/can /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/can bcm.h error.h gw.h netlink.h raw.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/can /android/kernels/moto/surnia/kernel-msm/include/linux/can ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/can /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/can ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/can/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/can/.install diff --git a/kernel_headers/linux/can/.install b/kernel_headers/linux/can/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/can/bcm.h b/kernel_headers/linux/can/bcm.h new file mode 100644 index 0000000..3ebe387 --- /dev/null +++ b/kernel_headers/linux/can/bcm.h @@ -0,0 +1,66 @@ +/* + * linux/can/bcm.h + * + * Definitions for CAN Broadcast Manager (BCM) + * + * Author: Oliver Hartkopp + * Copyright (c) 2002-2007 Volkswagen Group Electronic Research + * All rights reserved. + * + */ + +#ifndef CAN_BCM_H +#define CAN_BCM_H + +#include +#include + +/** + * struct bcm_msg_head - head of messages to/from the broadcast manager + * @opcode: opcode, see enum below. + * @flags: special flags, see below. + * @count: number of frames to send before changing interval. + * @ival1: interval for the first @count frames. + * @ival2: interval for the following frames. + * @can_id: CAN ID of frames to be sent or received. + * @nframes: number of frames appended to the message head. + * @frames: array of CAN frames. + */ +struct bcm_msg_head { + __u32 opcode; + __u32 flags; + __u32 count; + struct timeval ival1, ival2; + canid_t can_id; + __u32 nframes; + struct can_frame frames[0]; +}; + +enum { + TX_SETUP = 1, /* create (cyclic) transmission task */ + TX_DELETE, /* remove (cyclic) transmission task */ + TX_READ, /* read properties of (cyclic) transmission task */ + TX_SEND, /* send one CAN frame */ + RX_SETUP, /* create RX content filter subscription */ + RX_DELETE, /* remove RX content filter subscription */ + RX_READ, /* read properties of RX content filter subscription */ + TX_STATUS, /* reply to TX_READ request */ + TX_EXPIRED, /* notification on performed transmissions (count=0) */ + RX_STATUS, /* reply to RX_READ request */ + RX_TIMEOUT, /* cyclic message is absent */ + RX_CHANGED /* updated CAN frame (detected content change) */ +}; + +#define SETTIMER 0x0001 +#define STARTTIMER 0x0002 +#define TX_COUNTEVT 0x0004 +#define TX_ANNOUNCE 0x0008 +#define TX_CP_CAN_ID 0x0010 +#define RX_FILTER_ID 0x0020 +#define RX_CHECK_DLC 0x0040 +#define RX_NO_AUTOTIMER 0x0080 +#define RX_ANNOUNCE_RESUME 0x0100 +#define TX_RESET_MULTI_IDX 0x0200 +#define RX_RTR_FRAME 0x0400 + +#endif /* CAN_BCM_H */ diff --git a/kernel_headers/linux/can/error.h b/kernel_headers/linux/can/error.h new file mode 100644 index 0000000..7b7148b --- /dev/null +++ b/kernel_headers/linux/can/error.h @@ -0,0 +1,91 @@ +/* + * linux/can/error.h + * + * Definitions of the CAN error messages to be filtered and passed to the user. + * + * Author: Oliver Hartkopp + * Copyright (c) 2002-2007 Volkswagen Group Electronic Research + * All rights reserved. + * + */ + +#ifndef CAN_ERROR_H +#define CAN_ERROR_H + +#define CAN_ERR_DLC 8 /* dlc for error message frames */ + +/* error class (mask) in can_id */ +#define CAN_ERR_TX_TIMEOUT 0x00000001U /* TX timeout (by netdevice driver) */ +#define CAN_ERR_LOSTARB 0x00000002U /* lost arbitration / data[0] */ +#define CAN_ERR_CRTL 0x00000004U /* controller problems / data[1] */ +#define CAN_ERR_PROT 0x00000008U /* protocol violations / data[2..3] */ +#define CAN_ERR_TRX 0x00000010U /* transceiver status / data[4] */ +#define CAN_ERR_ACK 0x00000020U /* received no ACK on transmission */ +#define CAN_ERR_BUSOFF 0x00000040U /* bus off */ +#define CAN_ERR_BUSERROR 0x00000080U /* bus error (may flood!) */ +#define CAN_ERR_RESTARTED 0x00000100U /* controller restarted */ + +/* arbitration lost in bit ... / data[0] */ +#define CAN_ERR_LOSTARB_UNSPEC 0x00 /* unspecified */ + /* else bit number in bitstream */ + +/* error status of CAN-controller / data[1] */ +#define CAN_ERR_CRTL_UNSPEC 0x00 /* unspecified */ +#define CAN_ERR_CRTL_RX_OVERFLOW 0x01 /* RX buffer overflow */ +#define CAN_ERR_CRTL_TX_OVERFLOW 0x02 /* TX buffer overflow */ +#define CAN_ERR_CRTL_RX_WARNING 0x04 /* reached warning level for RX errors */ +#define CAN_ERR_CRTL_TX_WARNING 0x08 /* reached warning level for TX errors */ +#define CAN_ERR_CRTL_RX_PASSIVE 0x10 /* reached error passive status RX */ +#define CAN_ERR_CRTL_TX_PASSIVE 0x20 /* reached error passive status TX */ + /* (at least one error counter exceeds */ + /* the protocol-defined level of 127) */ + +/* error in CAN protocol (type) / data[2] */ +#define CAN_ERR_PROT_UNSPEC 0x00 /* unspecified */ +#define CAN_ERR_PROT_BIT 0x01 /* single bit error */ +#define CAN_ERR_PROT_FORM 0x02 /* frame format error */ +#define CAN_ERR_PROT_STUFF 0x04 /* bit stuffing error */ +#define CAN_ERR_PROT_BIT0 0x08 /* unable to send dominant bit */ +#define CAN_ERR_PROT_BIT1 0x10 /* unable to send recessive bit */ +#define CAN_ERR_PROT_OVERLOAD 0x20 /* bus overload */ +#define CAN_ERR_PROT_ACTIVE 0x40 /* active error announcement */ +#define CAN_ERR_PROT_TX 0x80 /* error occurred on transmission */ + +/* error in CAN protocol (location) / data[3] */ +#define CAN_ERR_PROT_LOC_UNSPEC 0x00 /* unspecified */ +#define CAN_ERR_PROT_LOC_SOF 0x03 /* start of frame */ +#define CAN_ERR_PROT_LOC_ID28_21 0x02 /* ID bits 28 - 21 (SFF: 10 - 3) */ +#define CAN_ERR_PROT_LOC_ID20_18 0x06 /* ID bits 20 - 18 (SFF: 2 - 0 )*/ +#define CAN_ERR_PROT_LOC_SRTR 0x04 /* substitute RTR (SFF: RTR) */ +#define CAN_ERR_PROT_LOC_IDE 0x05 /* identifier extension */ +#define CAN_ERR_PROT_LOC_ID17_13 0x07 /* ID bits 17-13 */ +#define CAN_ERR_PROT_LOC_ID12_05 0x0F /* ID bits 12-5 */ +#define CAN_ERR_PROT_LOC_ID04_00 0x0E /* ID bits 4-0 */ +#define CAN_ERR_PROT_LOC_RTR 0x0C /* RTR */ +#define CAN_ERR_PROT_LOC_RES1 0x0D /* reserved bit 1 */ +#define CAN_ERR_PROT_LOC_RES0 0x09 /* reserved bit 0 */ +#define CAN_ERR_PROT_LOC_DLC 0x0B /* data length code */ +#define CAN_ERR_PROT_LOC_DATA 0x0A /* data section */ +#define CAN_ERR_PROT_LOC_CRC_SEQ 0x08 /* CRC sequence */ +#define CAN_ERR_PROT_LOC_CRC_DEL 0x18 /* CRC delimiter */ +#define CAN_ERR_PROT_LOC_ACK 0x19 /* ACK slot */ +#define CAN_ERR_PROT_LOC_ACK_DEL 0x1B /* ACK delimiter */ +#define CAN_ERR_PROT_LOC_EOF 0x1A /* end of frame */ +#define CAN_ERR_PROT_LOC_INTERM 0x12 /* intermission */ + +/* error status of CAN-transceiver / data[4] */ +/* CANH CANL */ +#define CAN_ERR_TRX_UNSPEC 0x00 /* 0000 0000 */ +#define CAN_ERR_TRX_CANH_NO_WIRE 0x04 /* 0000 0100 */ +#define CAN_ERR_TRX_CANH_SHORT_TO_BAT 0x05 /* 0000 0101 */ +#define CAN_ERR_TRX_CANH_SHORT_TO_VCC 0x06 /* 0000 0110 */ +#define CAN_ERR_TRX_CANH_SHORT_TO_GND 0x07 /* 0000 0111 */ +#define CAN_ERR_TRX_CANL_NO_WIRE 0x40 /* 0100 0000 */ +#define CAN_ERR_TRX_CANL_SHORT_TO_BAT 0x50 /* 0101 0000 */ +#define CAN_ERR_TRX_CANL_SHORT_TO_VCC 0x60 /* 0110 0000 */ +#define CAN_ERR_TRX_CANL_SHORT_TO_GND 0x70 /* 0111 0000 */ +#define CAN_ERR_TRX_CANL_SHORT_TO_CANH 0x80 /* 1000 0000 */ + +/* controller specific additional information / data[5..7] */ + +#endif /* CAN_ERROR_H */ diff --git a/kernel_headers/linux/can/gw.h b/kernel_headers/linux/can/gw.h new file mode 100644 index 0000000..ae07bec --- /dev/null +++ b/kernel_headers/linux/can/gw.h @@ -0,0 +1,164 @@ +/* + * linux/can/gw.h + * + * Definitions for CAN frame Gateway/Router/Bridge + * + * Author: Oliver Hartkopp + * Copyright (c) 2011 Volkswagen Group Electronic Research + * All rights reserved. + * + */ + +#ifndef CAN_GW_H +#define CAN_GW_H + +#include +#include + +struct rtcanmsg { + __u8 can_family; + __u8 gwtype; + __u16 flags; +}; + +/* CAN gateway types */ +enum { + CGW_TYPE_UNSPEC, + CGW_TYPE_CAN_CAN, /* CAN->CAN routing */ + __CGW_TYPE_MAX +}; + +#define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1) + +/* CAN rtnetlink attribute definitions */ +enum { + CGW_UNSPEC, + CGW_MOD_AND, /* CAN frame modification binary AND */ + CGW_MOD_OR, /* CAN frame modification binary OR */ + CGW_MOD_XOR, /* CAN frame modification binary XOR */ + CGW_MOD_SET, /* CAN frame modification set alternate values */ + CGW_CS_XOR, /* set data[] XOR checksum into data[index] */ + CGW_CS_CRC8, /* set data[] CRC8 checksum into data[index] */ + CGW_HANDLED, /* number of handled CAN frames */ + CGW_DROPPED, /* number of dropped CAN frames */ + CGW_SRC_IF, /* ifindex of source network interface */ + CGW_DST_IF, /* ifindex of destination network interface */ + CGW_FILTER, /* specify struct can_filter on source CAN device */ + CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */ + __CGW_MAX +}; + +#define CGW_MAX (__CGW_MAX - 1) + +#define CGW_FLAGS_CAN_ECHO 0x01 +#define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 +#define CGW_FLAGS_CAN_IIF_TX_OK 0x04 + +#define CGW_MOD_FUNCS 4 /* AND OR XOR SET */ + +/* CAN frame elements that are affected by curr. 3 CAN frame modifications */ +#define CGW_MOD_ID 0x01 +#define CGW_MOD_DLC 0x02 +#define CGW_MOD_DATA 0x04 + +#define CGW_FRAME_MODS 3 /* ID DLC DATA */ + +#define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS) + +struct cgw_frame_mod { + struct can_frame cf; + __u8 modtype; +} __attribute__((packed)); + +#define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod) + +struct cgw_csum_xor { + __s8 from_idx; + __s8 to_idx; + __s8 result_idx; + __u8 init_xor_val; +} __attribute__((packed)); + +struct cgw_csum_crc8 { + __s8 from_idx; + __s8 to_idx; + __s8 result_idx; + __u8 init_crc_val; + __u8 final_xor_val; + __u8 crctab[256]; + __u8 profile; + __u8 profile_data[20]; +} __attribute__((packed)); + +/* length of checksum operation parameters. idx = index in CAN frame data[] */ +#define CGW_CS_XOR_LEN sizeof(struct cgw_csum_xor) +#define CGW_CS_CRC8_LEN sizeof(struct cgw_csum_crc8) + +/* CRC8 profiles (compute CRC for additional data elements - see below) */ +enum { + CGW_CRC8PRF_UNSPEC, + CGW_CRC8PRF_1U8, /* compute one additional u8 value */ + CGW_CRC8PRF_16U8, /* u8 value table indexed by data[1] & 0xF */ + CGW_CRC8PRF_SFFID_XOR, /* (can_id & 0xFF) ^ (can_id >> 8 & 0xFF) */ + __CGW_CRC8PRF_MAX +}; + +#define CGW_CRC8PRF_MAX (__CGW_CRC8PRF_MAX - 1) + +/* + * CAN rtnetlink attribute contents in detail + * + * CGW_XXX_IF (length 4 bytes): + * Sets an interface index for source/destination network interfaces. + * For the CAN->CAN gwtype the indices of _two_ CAN interfaces are mandatory. + * + * CGW_FILTER (length 8 bytes): + * Sets a CAN receive filter for the gateway job specified by the + * struct can_filter described in include/linux/can.h + * + * CGW_MOD_XXX (length 17 bytes): + * Specifies a modification that's done to a received CAN frame before it is + * send out to the destination interface. + * + * data used as operator + * affected CAN frame elements + * + * CGW_CS_XOR (length 4 bytes): + * Set a simple XOR checksum starting with an initial value into + * data[result-idx] using data[start-idx] .. data[end-idx] + * + * The XOR checksum is calculated like this: + * + * xor = init_xor_val + * + * for (i = from_idx .. to_idx) + * xor ^= can_frame.data[i] + * + * can_frame.data[ result_idx ] = xor + * + * CGW_CS_CRC8 (length 282 bytes): + * Set a CRC8 value into data[result-idx] using a given 256 byte CRC8 table, + * a given initial value and a defined input data[start-idx] .. data[end-idx]. + * Finally the result value is XOR'ed with the final_xor_val. + * + * The CRC8 checksum is calculated like this: + * + * crc = init_crc_val + * + * for (i = from_idx .. to_idx) + * crc = crctab[ crc ^ can_frame.data[i] ] + * + * can_frame.data[ result_idx ] = crc ^ final_xor_val + * + * The calculated CRC may contain additional source data elements that can be + * defined in the handling of 'checksum profiles' e.g. shown in AUTOSAR specs + * like http://www.autosar.org/download/R4.0/AUTOSAR_SWS_E2ELibrary.pdf + * E.g. the profile_data[] may contain additional u8 values (called DATA_IDs) + * that are used depending on counter values inside the CAN frame data[]. + * So far only three profiles have been implemented for illustration. + * + * Remark: In general the attribute data is a linear buffer. + * Beware of sending unpacked or aligned structs! + */ + +#endif diff --git a/kernel_headers/linux/can/netlink.h b/kernel_headers/linux/can/netlink.h new file mode 100644 index 0000000..14966dd --- /dev/null +++ b/kernel_headers/linux/can/netlink.h @@ -0,0 +1,122 @@ +/* + * linux/can/netlink.h + * + * Definitions for the CAN netlink interface + * + * Copyright (c) 2009 Wolfgang Grandegger + * + */ + +#ifndef CAN_NETLINK_H +#define CAN_NETLINK_H + +#include + +/* + * CAN bit-timing parameters + * + * For further information, please read chapter "8 BIT TIMING + * REQUIREMENTS" of the "Bosch CAN Specification version 2.0" + * at http://www.semiconductors.bosch.de/pdf/can2spec.pdf. + */ +struct can_bittiming { + __u32 bitrate; /* Bit-rate in bits/second */ + __u32 sample_point; /* Sample point in one-tenth of a percent */ + __u32 tq; /* Time quanta (TQ) in nanoseconds */ + __u32 prop_seg; /* Propagation segment in TQs */ + __u32 phase_seg1; /* Phase buffer segment 1 in TQs */ + __u32 phase_seg2; /* Phase buffer segment 2 in TQs */ + __u32 sjw; /* Synchronisation jump width in TQs */ + __u32 brp; /* Bit-rate prescaler */ +}; + +/* + * CAN harware-dependent bit-timing constant + * + * Used for calculating and checking bit-timing parameters + */ +struct can_bittiming_const { + char name[16]; /* Name of the CAN controller hardware */ + __u32 tseg1_min; /* Time segement 1 = prop_seg + phase_seg1 */ + __u32 tseg1_max; + __u32 tseg2_min; /* Time segement 2 = phase_seg2 */ + __u32 tseg2_max; + __u32 sjw_max; /* Synchronisation jump width */ + __u32 brp_min; /* Bit-rate prescaler */ + __u32 brp_max; + __u32 brp_inc; +}; + +/* + * CAN clock parameters + */ +struct can_clock { + __u32 freq; /* CAN system clock frequency in Hz */ +}; + +/* + * CAN operational and error states + */ +enum can_state { + CAN_STATE_ERROR_ACTIVE = 0, /* RX/TX error count < 96 */ + CAN_STATE_ERROR_WARNING, /* RX/TX error count < 128 */ + CAN_STATE_ERROR_PASSIVE, /* RX/TX error count < 256 */ + CAN_STATE_BUS_OFF, /* RX/TX error count >= 256 */ + CAN_STATE_STOPPED, /* Device is stopped */ + CAN_STATE_SLEEPING, /* Device is sleeping */ + CAN_STATE_MAX +}; + +/* + * CAN bus error counters + */ +struct can_berr_counter { + __u16 txerr; + __u16 rxerr; +}; + +/* + * CAN controller mode + */ +struct can_ctrlmode { + __u32 mask; + __u32 flags; +}; + +#define CAN_CTRLMODE_LOOPBACK 0x01 /* Loopback mode */ +#define CAN_CTRLMODE_LISTENONLY 0x02 /* Listen-only mode */ +#define CAN_CTRLMODE_3_SAMPLES 0x04 /* Triple sampling mode */ +#define CAN_CTRLMODE_ONE_SHOT 0x08 /* One-Shot mode */ +#define CAN_CTRLMODE_BERR_REPORTING 0x10 /* Bus-error reporting */ + +/* + * CAN device statistics + */ +struct can_device_stats { + __u32 bus_error; /* Bus errors */ + __u32 error_warning; /* Changes to error warning state */ + __u32 error_passive; /* Changes to error passive state */ + __u32 bus_off; /* Changes to bus off state */ + __u32 arbitration_lost; /* Arbitration lost errors */ + __u32 restarts; /* CAN controller re-starts */ +}; + +/* + * CAN netlink interface + */ +enum { + IFLA_CAN_UNSPEC, + IFLA_CAN_BITTIMING, + IFLA_CAN_BITTIMING_CONST, + IFLA_CAN_CLOCK, + IFLA_CAN_STATE, + IFLA_CAN_CTRLMODE, + IFLA_CAN_RESTART_MS, + IFLA_CAN_RESTART, + IFLA_CAN_BERR_COUNTER, + __IFLA_CAN_MAX +}; + +#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1) + +#endif /* CAN_NETLINK_H */ diff --git a/kernel_headers/linux/can/raw.h b/kernel_headers/linux/can/raw.h new file mode 100644 index 0000000..a814062 --- /dev/null +++ b/kernel_headers/linux/can/raw.h @@ -0,0 +1,30 @@ +/* + * linux/can/raw.h + * + * Definitions for raw CAN sockets + * + * Authors: Oliver Hartkopp + * Urs Thuermann + * Copyright (c) 2002-2007 Volkswagen Group Electronic Research + * All rights reserved. + * + */ + +#ifndef CAN_RAW_H +#define CAN_RAW_H + +#include + +#define SOL_CAN_RAW (SOL_CAN_BASE + CAN_RAW) + +/* for socket options affecting the socket (not the global system) */ + +enum { + CAN_RAW_FILTER = 1, /* set 0 .. n can_filter(s) */ + CAN_RAW_ERR_FILTER, /* set filter for error frames */ + CAN_RAW_LOOPBACK, /* local loopback (default:on) */ + CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */ + CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */ +}; + +#endif diff --git a/kernel_headers/linux/capability.h b/kernel_headers/linux/capability.h new file mode 100644 index 0000000..251ce74 --- /dev/null +++ b/kernel_headers/linux/capability.h @@ -0,0 +1,356 @@ +/* + * This is + * + * Andrew G. Morgan + * Alexander Kjeldaas + * with help from Aleph1, Roland Buresund and Andrew Main. + * + * See here for the libcap library ("POSIX draft" compliance): + * + * ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/ + */ + +#ifndef _LINUX_CAPABILITY_H +#define _LINUX_CAPABILITY_H + +#include + +struct task_struct; + +/* User-level do most of the mapping between kernel and user + capabilities based on the version tag given by the kernel. The + kernel might be somewhat backwards compatible, but don't bet on + it. */ + +/* Note, cap_t, is defined by POSIX (draft) to be an "opaque" pointer to + a set of three capability sets. The transposition of 3*the + following structure to such a composite is better handled in a user + library since the draft standard requires the use of malloc/free + etc.. */ + +#define _LINUX_CAPABILITY_VERSION_1 0x19980330 +#define _LINUX_CAPABILITY_U32S_1 1 + +#define _LINUX_CAPABILITY_VERSION_2 0x20071026 /* deprecated - use v3 */ +#define _LINUX_CAPABILITY_U32S_2 2 + +#define _LINUX_CAPABILITY_VERSION_3 0x20080522 +#define _LINUX_CAPABILITY_U32S_3 2 + +typedef struct __user_cap_header_struct { + __u32 version; + int pid; +} *cap_user_header_t; + +typedef struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; +} *cap_user_data_t; + + +#define VFS_CAP_REVISION_MASK 0xFF000000 +#define VFS_CAP_REVISION_SHIFT 24 +#define VFS_CAP_FLAGS_MASK ~VFS_CAP_REVISION_MASK +#define VFS_CAP_FLAGS_EFFECTIVE 0x000001 + +#define VFS_CAP_REVISION_1 0x01000000 +#define VFS_CAP_U32_1 1 +#define XATTR_CAPS_SZ_1 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_1)) + +#define VFS_CAP_REVISION_2 0x02000000 +#define VFS_CAP_U32_2 2 +#define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2)) + +#define XATTR_CAPS_SZ XATTR_CAPS_SZ_2 +#define VFS_CAP_U32 VFS_CAP_U32_2 +#define VFS_CAP_REVISION VFS_CAP_REVISION_2 + +struct vfs_cap_data { + __le32 magic_etc; /* Little endian */ + struct { + __le32 permitted; /* Little endian */ + __le32 inheritable; /* Little endian */ + } data[VFS_CAP_U32]; +}; + + +/* + * Backwardly compatible definition for source code - trapped in a + * 32-bit world. If you find you need this, please consider using + * libcap to untrap yourself... + */ +#define _LINUX_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_1 +#define _LINUX_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_1 + + + +/** + ** POSIX-draft defined capabilities. + **/ + +/* In a system with the [_POSIX_CHOWN_RESTRICTED] option defined, this + overrides the restriction of changing file ownership and group + ownership. */ + +#define CAP_CHOWN 0 + +/* Override all DAC access, including ACL execute access if + [_POSIX_ACL] is defined. Excluding DAC access covered by + CAP_LINUX_IMMUTABLE. */ + +#define CAP_DAC_OVERRIDE 1 + +/* Overrides all DAC restrictions regarding read and search on files + and directories, including ACL restrictions if [_POSIX_ACL] is + defined. Excluding DAC access covered by CAP_LINUX_IMMUTABLE. */ + +#define CAP_DAC_READ_SEARCH 2 + +/* Overrides all restrictions about allowed operations on files, where + file owner ID must be equal to the user ID, except where CAP_FSETID + is applicable. It doesn't override MAC and DAC restrictions. */ + +#define CAP_FOWNER 3 + +/* Overrides the following restrictions that the effective user ID + shall match the file owner ID when setting the S_ISUID and S_ISGID + bits on that file; that the effective group ID (or one of the + supplementary group IDs) shall match the file owner ID when setting + the S_ISGID bit on that file; that the S_ISUID and S_ISGID bits are + cleared on successful return from chown(2) (not implemented). */ + +#define CAP_FSETID 4 + +/* Overrides the restriction that the real or effective user ID of a + process sending a signal must match the real or effective user ID + of the process receiving the signal. */ + +#define CAP_KILL 5 + +/* Allows setgid(2) manipulation */ +/* Allows setgroups(2) */ +/* Allows forged gids on socket credentials passing. */ + +#define CAP_SETGID 6 + +/* Allows set*uid(2) manipulation (including fsuid). */ +/* Allows forged pids on socket credentials passing. */ + +#define CAP_SETUID 7 + + +/** + ** Linux-specific capabilities + **/ + +/* Without VFS support for capabilities: + * Transfer any capability in your permitted set to any pid, + * remove any capability in your permitted set from any pid + * With VFS support for capabilities (neither of above, but) + * Add any capability from current's capability bounding set + * to the current process' inheritable set + * Allow taking bits out of capability bounding set + * Allow modification of the securebits for a process + */ + +#define CAP_SETPCAP 8 + +/* Allow modification of S_IMMUTABLE and S_APPEND file attributes */ + +#define CAP_LINUX_IMMUTABLE 9 + +/* Allows binding to TCP/UDP sockets below 1024 */ +/* Allows binding to ATM VCIs below 32 */ + +#define CAP_NET_BIND_SERVICE 10 + +/* Allow broadcasting, listen to multicast */ + +#define CAP_NET_BROADCAST 11 + +/* Allow interface configuration */ +/* Allow administration of IP firewall, masquerading and accounting */ +/* Allow setting debug option on sockets */ +/* Allow modification of routing tables */ +/* Allow setting arbitrary process / process group ownership on + sockets */ +/* Allow binding to any address for transparent proxying (also via NET_RAW) */ +/* Allow setting TOS (type of service) */ +/* Allow setting promiscuous mode */ +/* Allow clearing driver statistics */ +/* Allow multicasting */ +/* Allow read/write of device-specific registers */ +/* Allow activation of ATM control sockets */ + +#define CAP_NET_ADMIN 12 + +/* Allow use of RAW sockets */ +/* Allow use of PACKET sockets */ +/* Allow binding to any address for transparent proxying (also via NET_ADMIN) */ + +#define CAP_NET_RAW 13 + +/* Allow locking of shared memory segments */ +/* Allow mlock and mlockall (which doesn't really have anything to do + with IPC) */ + +#define CAP_IPC_LOCK 14 + +/* Override IPC ownership checks */ + +#define CAP_IPC_OWNER 15 + +/* Insert and remove kernel modules - modify kernel without limit */ +#define CAP_SYS_MODULE 16 + +/* Allow ioperm/iopl access */ +/* Allow sending USB messages to any device via /proc/bus/usb */ + +#define CAP_SYS_RAWIO 17 + +/* Allow use of chroot() */ + +#define CAP_SYS_CHROOT 18 + +/* Allow ptrace() of any process */ + +#define CAP_SYS_PTRACE 19 + +/* Allow configuration of process accounting */ + +#define CAP_SYS_PACCT 20 + +/* Allow configuration of the secure attention key */ +/* Allow administration of the random device */ +/* Allow examination and configuration of disk quotas */ +/* Allow setting the domainname */ +/* Allow setting the hostname */ +/* Allow calling bdflush() */ +/* Allow mount() and umount(), setting up new smb connection */ +/* Allow some autofs root ioctls */ +/* Allow nfsservctl */ +/* Allow VM86_REQUEST_IRQ */ +/* Allow to read/write pci config on alpha */ +/* Allow irix_prctl on mips (setstacksize) */ +/* Allow flushing all cache on m68k (sys_cacheflush) */ +/* Allow removing semaphores */ +/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores + and shared memory */ +/* Allow locking/unlocking of shared memory segment */ +/* Allow turning swap on/off */ +/* Allow forged pids on socket credentials passing */ +/* Allow setting readahead and flushing buffers on block devices */ +/* Allow setting geometry in floppy driver */ +/* Allow turning DMA on/off in xd driver */ +/* Allow administration of md devices (mostly the above, but some + extra ioctls) */ +/* Allow tuning the ide driver */ +/* Allow access to the nvram device */ +/* Allow administration of apm_bios, serial and bttv (TV) device */ +/* Allow manufacturer commands in isdn CAPI support driver */ +/* Allow reading non-standardized portions of pci configuration space */ +/* Allow DDI debug ioctl on sbpcd driver */ +/* Allow setting up serial ports */ +/* Allow sending raw qic-117 commands */ +/* Allow enabling/disabling tagged queuing on SCSI controllers and sending + arbitrary SCSI commands */ +/* Allow setting encryption key on loopback filesystem */ +/* Allow setting zone reclaim policy */ + +#define CAP_SYS_ADMIN 21 + +/* Allow use of reboot() */ + +#define CAP_SYS_BOOT 22 + +/* Allow raising priority and setting priority on other (different + UID) processes */ +/* Allow use of FIFO and round-robin (realtime) scheduling on own + processes and setting the scheduling algorithm used by another + process. */ +/* Allow setting cpu affinity on other processes */ + +#define CAP_SYS_NICE 23 + +/* Override resource limits. Set resource limits. */ +/* Override quota limits. */ +/* Override reserved space on ext2 filesystem */ +/* Modify data journaling mode on ext3 filesystem (uses journaling + resources) */ +/* NOTE: ext2 honors fsuid when checking for resource overrides, so + you can override using fsuid too */ +/* Override size restrictions on IPC message queues */ +/* Allow more than 64hz interrupts from the real-time clock */ +/* Override max number of consoles on console allocation */ +/* Override max number of keymaps */ + +#define CAP_SYS_RESOURCE 24 + +/* Allow manipulation of system clock */ +/* Allow irix_stime on mips */ +/* Allow setting the real-time clock */ + +#define CAP_SYS_TIME 25 + +/* Allow configuration of tty devices */ +/* Allow vhangup() of tty */ + +#define CAP_SYS_TTY_CONFIG 26 + +/* Allow the privileged aspects of mknod() */ + +#define CAP_MKNOD 27 + +/* Allow taking of leases on files */ + +#define CAP_LEASE 28 + +#define CAP_AUDIT_WRITE 29 + +#define CAP_AUDIT_CONTROL 30 + +#define CAP_SETFCAP 31 + +/* Override MAC access. + The base kernel enforces no MAC policy. + An LSM may enforce a MAC policy, and if it does and it chooses + to implement capability based overrides of that policy, this is + the capability it should use to do so. */ + +#define CAP_MAC_OVERRIDE 32 + +/* Allow MAC configuration or state changes. + The base kernel requires no MAC configuration. + An LSM may enforce a MAC policy, and if it does and it chooses + to implement capability based checks on modifications to that + policy or the data required to maintain it, this is the + capability it should use to do so. */ + +#define CAP_MAC_ADMIN 33 + +/* Allow configuring the kernel's syslog (printk behaviour) */ + +#define CAP_SYSLOG 34 + +/* Allow triggering something that will wake the system */ + +#define CAP_WAKE_ALARM 35 + +/* Allow preventing system suspends */ + +#define CAP_BLOCK_SUSPEND 36 + +#define CAP_LAST_CAP CAP_BLOCK_SUSPEND + +#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP) + +/* + * Bit location of each capability (used by user-space library and kernel) + */ + +#define CAP_TO_INDEX(x) ((x) >> 5) /* 1 << 5 == bits in __u32 */ +#define CAP_TO_MASK(x) (1 << ((x) & 31)) /* mask for indexed __u32 */ + + +#endif /* _LINUX_CAPABILITY_H */ diff --git a/kernel_headers/linux/capi.h b/kernel_headers/linux/capi.h new file mode 100644 index 0000000..2e00af4 --- /dev/null +++ b/kernel_headers/linux/capi.h @@ -0,0 +1,131 @@ +/* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ + * + * CAPI 2.0 Interface for Linux + * + * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef __LINUX_CAPI_H__ +#define __LINUX_CAPI_H__ + +#include +#include +#include + +/* + * CAPI_REGISTER + */ + +typedef struct capi_register_params { /* CAPI_REGISTER */ + __u32 level3cnt; /* No. of simulatneous user data connections */ + __u32 datablkcnt; /* No. of buffered data messages */ + __u32 datablklen; /* Size of buffered data messages */ +} capi_register_params; + +#define CAPI_REGISTER _IOW('C',0x01,struct capi_register_params) + +/* + * CAPI_GET_MANUFACTURER + */ + +#define CAPI_MANUFACTURER_LEN 64 + +#define CAPI_GET_MANUFACTURER _IOWR('C',0x06,int) /* broken: wanted size 64 (CAPI_MANUFACTURER_LEN) */ + +/* + * CAPI_GET_VERSION + */ + +typedef struct capi_version { + __u32 majorversion; + __u32 minorversion; + __u32 majormanuversion; + __u32 minormanuversion; +} capi_version; + +#define CAPI_GET_VERSION _IOWR('C',0x07,struct capi_version) + +/* + * CAPI_GET_SERIAL + */ + +#define CAPI_SERIAL_LEN 8 +#define CAPI_GET_SERIAL _IOWR('C',0x08,int) /* broken: wanted size 8 (CAPI_SERIAL_LEN) */ + +/* + * CAPI_GET_PROFILE + */ + +typedef struct capi_profile { + __u16 ncontroller; /* number of installed controller */ + __u16 nbchannel; /* number of B-Channels */ + __u32 goptions; /* global options */ + __u32 support1; /* B1 protocols support */ + __u32 support2; /* B2 protocols support */ + __u32 support3; /* B3 protocols support */ + __u32 reserved[6]; /* reserved */ + __u32 manu[5]; /* manufacturer specific information */ +} capi_profile; + +#define CAPI_GET_PROFILE _IOWR('C',0x09,struct capi_profile) + +typedef struct capi_manufacturer_cmd { + unsigned long cmd; + void *data; +} capi_manufacturer_cmd; + +/* + * CAPI_MANUFACTURER_CMD + */ + +#define CAPI_MANUFACTURER_CMD _IOWR('C',0x20, struct capi_manufacturer_cmd) + +/* + * CAPI_GET_ERRCODE + * capi errcode is set, * if read, write, or ioctl returns EIO, + * ioctl returns errcode directly, and in arg, if != 0 + */ + +#define CAPI_GET_ERRCODE _IOR('C',0x21, __u16) + +/* + * CAPI_INSTALLED + */ +#define CAPI_INSTALLED _IOR('C',0x22, __u16) + + +/* + * member contr is input for + * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL + * and CAPI_GET_PROFILE + */ +typedef union capi_ioctl_struct { + __u32 contr; + capi_register_params rparams; + __u8 manufacturer[CAPI_MANUFACTURER_LEN]; + capi_version version; + __u8 serial[CAPI_SERIAL_LEN]; + capi_profile profile; + capi_manufacturer_cmd cmd; + __u16 errcode; +} capi_ioctl_struct; + +/* + * Middleware extension + */ + +#define CAPIFLAG_HIGHJACKING 0x0001 + +#define CAPI_GET_FLAGS _IOR('C',0x23, unsigned) +#define CAPI_SET_FLAGS _IOR('C',0x24, unsigned) +#define CAPI_CLR_FLAGS _IOR('C',0x25, unsigned) + +#define CAPI_NCCI_OPENCOUNT _IOR('C',0x26, unsigned) + +#define CAPI_NCCI_GETUNIT _IOR('C',0x27, unsigned) + +#endif /* __LINUX_CAPI_H__ */ diff --git a/kernel_headers/linux/cciss_defs.h b/kernel_headers/linux/cciss_defs.h new file mode 100644 index 0000000..316b670 --- /dev/null +++ b/kernel_headers/linux/cciss_defs.h @@ -0,0 +1,130 @@ +#ifndef CCISS_DEFS_H +#define CCISS_DEFS_H + +#include + +/* general boundary definitions */ +#define SENSEINFOBYTES 32 /* note that this value may vary + between host implementations */ + +/* Command Status value */ +#define CMD_SUCCESS 0x0000 +#define CMD_TARGET_STATUS 0x0001 +#define CMD_DATA_UNDERRUN 0x0002 +#define CMD_DATA_OVERRUN 0x0003 +#define CMD_INVALID 0x0004 +#define CMD_PROTOCOL_ERR 0x0005 +#define CMD_HARDWARE_ERR 0x0006 +#define CMD_CONNECTION_LOST 0x0007 +#define CMD_ABORTED 0x0008 +#define CMD_ABORT_FAILED 0x0009 +#define CMD_UNSOLICITED_ABORT 0x000A +#define CMD_TIMEOUT 0x000B +#define CMD_UNABORTABLE 0x000C + +/* transfer direction */ +#define XFER_NONE 0x00 +#define XFER_WRITE 0x01 +#define XFER_READ 0x02 +#define XFER_RSVD 0x03 + +/* task attribute */ +#define ATTR_UNTAGGED 0x00 +#define ATTR_SIMPLE 0x04 +#define ATTR_HEADOFQUEUE 0x05 +#define ATTR_ORDERED 0x06 +#define ATTR_ACA 0x07 + +/* cdb type */ +#define TYPE_CMD 0x00 +#define TYPE_MSG 0x01 + +/* Type defs used in the following structs */ +#define BYTE __u8 +#define WORD __u16 +#define HWORD __u16 +#define DWORD __u32 + +#define CISS_MAX_LUN 1024 + +#define LEVEL2LUN 1 /* index into Target(x) structure, due to byte swapping */ +#define LEVEL3LUN 0 + +#pragma pack(1) + +/* Command List Structure */ +typedef union _SCSI3Addr_struct { + struct { + BYTE Dev; + BYTE Bus:6; + BYTE Mode:2; /* b00 */ + } PeripDev; + struct { + BYTE DevLSB; + BYTE DevMSB:6; + BYTE Mode:2; /* b01 */ + } LogDev; + struct { + BYTE Dev:5; + BYTE Bus:3; + BYTE Targ:6; + BYTE Mode:2; /* b10 */ + } LogUnit; +} SCSI3Addr_struct; + +typedef struct _PhysDevAddr_struct { + DWORD TargetId:24; + DWORD Bus:6; + DWORD Mode:2; + SCSI3Addr_struct Target[2]; /* 2 level target device addr */ +} PhysDevAddr_struct; + +typedef struct _LogDevAddr_struct { + DWORD VolId:30; + DWORD Mode:2; + BYTE reserved[4]; +} LogDevAddr_struct; + +typedef union _LUNAddr_struct { + BYTE LunAddrBytes[8]; + SCSI3Addr_struct SCSI3Lun[4]; + PhysDevAddr_struct PhysDev; + LogDevAddr_struct LogDev; +} LUNAddr_struct; + +typedef struct _RequestBlock_struct { + BYTE CDBLen; + struct { + BYTE Type:3; + BYTE Attribute:3; + BYTE Direction:2; + } Type; + HWORD Timeout; + BYTE CDB[16]; +} RequestBlock_struct; + +typedef union _MoreErrInfo_struct{ + struct { + BYTE Reserved[3]; + BYTE Type; + DWORD ErrorInfo; + } Common_Info; + struct{ + BYTE Reserved[2]; + BYTE offense_size; /* size of offending entry */ + BYTE offense_num; /* byte # of offense 0-base */ + DWORD offense_value; + } Invalid_Cmd; +} MoreErrInfo_struct; +typedef struct _ErrorInfo_struct { + BYTE ScsiStatus; + BYTE SenseLen; + HWORD CommandStatus; + DWORD ResidualCnt; + MoreErrInfo_struct MoreErrInfo; + BYTE SenseInfo[SENSEINFOBYTES]; +} ErrorInfo_struct; + +#pragma pack() + +#endif /* CCISS_DEFS_H */ diff --git a/kernel_headers/linux/cciss_ioctl.h b/kernel_headers/linux/cciss_ioctl.h new file mode 100644 index 0000000..d85fd2b --- /dev/null +++ b/kernel_headers/linux/cciss_ioctl.h @@ -0,0 +1,88 @@ +#ifndef CCISS_IOCTLH +#define CCISS_IOCTLH + +#include +#include +#include + +#define CCISS_IOC_MAGIC 'B' + + +typedef struct _cciss_pci_info_struct +{ + unsigned char bus; + unsigned char dev_fn; + unsigned short domain; + __u32 board_id; +} cciss_pci_info_struct; + +typedef struct _cciss_coalint_struct +{ + __u32 delay; + __u32 count; +} cciss_coalint_struct; + +typedef char NodeName_type[16]; + +typedef __u32 Heartbeat_type; + +#define CISS_PARSCSIU2 0x0001 +#define CISS_PARCSCIU3 0x0002 +#define CISS_FIBRE1G 0x0100 +#define CISS_FIBRE2G 0x0200 +typedef __u32 BusTypes_type; + +typedef char FirmwareVer_type[4]; +typedef __u32 DriverVer_type; + +#define MAX_KMALLOC_SIZE 128000 + +typedef struct _IOCTL_Command_struct { + LUNAddr_struct LUN_info; + RequestBlock_struct Request; + ErrorInfo_struct error_info; + WORD buf_size; /* size in bytes of the buf */ + BYTE *buf; +} IOCTL_Command_struct; + +typedef struct _BIG_IOCTL_Command_struct { + LUNAddr_struct LUN_info; + RequestBlock_struct Request; + ErrorInfo_struct error_info; + DWORD malloc_size; /* < MAX_KMALLOC_SIZE in cciss.c */ + DWORD buf_size; /* size in bytes of the buf */ + /* < malloc_size * MAXSGENTRIES */ + BYTE *buf; +} BIG_IOCTL_Command_struct; + +typedef struct _LogvolInfo_struct{ + __u32 LunID; + int num_opens; /* number of opens on the logical volume */ + int num_parts; /* number of partitions configured on logvol */ +} LogvolInfo_struct; + +#define CCISS_GETPCIINFO _IOR(CCISS_IOC_MAGIC, 1, cciss_pci_info_struct) + +#define CCISS_GETINTINFO _IOR(CCISS_IOC_MAGIC, 2, cciss_coalint_struct) +#define CCISS_SETINTINFO _IOW(CCISS_IOC_MAGIC, 3, cciss_coalint_struct) + +#define CCISS_GETNODENAME _IOR(CCISS_IOC_MAGIC, 4, NodeName_type) +#define CCISS_SETNODENAME _IOW(CCISS_IOC_MAGIC, 5, NodeName_type) + +#define CCISS_GETHEARTBEAT _IOR(CCISS_IOC_MAGIC, 6, Heartbeat_type) +#define CCISS_GETBUSTYPES _IOR(CCISS_IOC_MAGIC, 7, BusTypes_type) +#define CCISS_GETFIRMVER _IOR(CCISS_IOC_MAGIC, 8, FirmwareVer_type) +#define CCISS_GETDRIVVER _IOR(CCISS_IOC_MAGIC, 9, DriverVer_type) +#define CCISS_REVALIDVOLS _IO(CCISS_IOC_MAGIC, 10) +#define CCISS_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 11, IOCTL_Command_struct) +#define CCISS_DEREGDISK _IO(CCISS_IOC_MAGIC, 12) + +/* no longer used... use REGNEWD instead */ +#define CCISS_REGNEWDISK _IOW(CCISS_IOC_MAGIC, 13, int) + +#define CCISS_REGNEWD _IO(CCISS_IOC_MAGIC, 14) +#define CCISS_RESCANDISK _IO(CCISS_IOC_MAGIC, 16) +#define CCISS_GETLUNINFO _IOR(CCISS_IOC_MAGIC, 17, LogvolInfo_struct) +#define CCISS_BIG_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL_Command_struct) + +#endif /* CCISS_IOCTLH */ diff --git a/kernel_headers/linux/cdrom.h b/kernel_headers/linux/cdrom.h new file mode 100644 index 0000000..db59b9b --- /dev/null +++ b/kernel_headers/linux/cdrom.h @@ -0,0 +1,946 @@ +/* + * -- + * General header file for linux CD-ROM drivers + * Copyright (C) 1992 David Giller, rafetmad@oxy.edu + * 1994, 1995 Eberhard Mönkeberg, emoenke@gwdg.de + * 1996 David van Leeuwen, david@tm.tno.nl + * 1997, 1998 Erik Andersen, andersee@debian.org + * 1998-2002 Jens Axboe, axboe@suse.de + */ + +#ifndef _LINUX_CDROM_H +#define _LINUX_CDROM_H + +#include +#include + +/******************************************************* + * As of Linux 2.1.x, all Linux CD-ROM application programs will use this + * (and only this) include file. It is my hope to provide Linux with + * a uniform interface between software accessing CD-ROMs and the various + * device drivers that actually talk to the drives. There may still be + * 23 different kinds of strange CD-ROM drives, but at least there will + * now be one, and only one, Linux CD-ROM interface. + * + * Additionally, as of Linux 2.1.x, all Linux application programs + * should use the O_NONBLOCK option when opening a CD-ROM device + * for subsequent ioctl commands. This allows for neat system errors + * like "No medium found" or "Wrong medium type" upon attempting to + * mount or play an empty slot, mount an audio disc, or play a data disc. + * Generally, changing an application program to support O_NONBLOCK + * is as easy as the following: + * - drive = open("/dev/cdrom", O_RDONLY); + * + drive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK); + * It is worth the small change. + * + * Patches for many common CD programs (provided by David A. van Leeuwen) + * can be found at: ftp://ftp.gwdg.de/pub/linux/cdrom/drivers/cm206/ + * + *******************************************************/ + +/* When a driver supports a certain function, but the cdrom drive we are + * using doesn't, we will return the error EDRIVE_CANT_DO_THIS. We will + * borrow the "Operation not supported" error from the network folks to + * accomplish this. Maybe someday we will get a more targeted error code, + * but this will do for now... */ +#define EDRIVE_CANT_DO_THIS EOPNOTSUPP + +/******************************************************* + * The CD-ROM IOCTL commands -- these should be supported by + * all the various cdrom drivers. For the CD-ROM ioctls, we + * will commandeer byte 0x53, or 'S'. + *******************************************************/ +#define CDROMPAUSE 0x5301 /* Pause Audio Operation */ +#define CDROMRESUME 0x5302 /* Resume paused Audio Operation */ +#define CDROMPLAYMSF 0x5303 /* Play Audio MSF (struct cdrom_msf) */ +#define CDROMPLAYTRKIND 0x5304 /* Play Audio Track/index + (struct cdrom_ti) */ +#define CDROMREADTOCHDR 0x5305 /* Read TOC header + (struct cdrom_tochdr) */ +#define CDROMREADTOCENTRY 0x5306 /* Read TOC entry + (struct cdrom_tocentry) */ +#define CDROMSTOP 0x5307 /* Stop the cdrom drive */ +#define CDROMSTART 0x5308 /* Start the cdrom drive */ +#define CDROMEJECT 0x5309 /* Ejects the cdrom media */ +#define CDROMVOLCTRL 0x530a /* Control output volume + (struct cdrom_volctrl) */ +#define CDROMSUBCHNL 0x530b /* Read subchannel data + (struct cdrom_subchnl) */ +#define CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes) + (struct cdrom_read) */ +#define CDROMREADMODE1 0x530d /* Read CDROM mode 1 data (2048 Bytes) + (struct cdrom_read) */ +#define CDROMREADAUDIO 0x530e /* (struct cdrom_read_audio) */ +#define CDROMEJECT_SW 0x530f /* enable(1)/disable(0) auto-ejecting */ +#define CDROMMULTISESSION 0x5310 /* Obtain the start-of-last-session + address of multi session disks + (struct cdrom_multisession) */ +#define CDROM_GET_MCN 0x5311 /* Obtain the "Universal Product Code" + if available (struct cdrom_mcn) */ +#define CDROM_GET_UPC CDROM_GET_MCN /* This one is deprecated, + but here anyway for compatibility */ +#define CDROMRESET 0x5312 /* hard-reset the drive */ +#define CDROMVOLREAD 0x5313 /* Get the drive's volume setting + (struct cdrom_volctrl) */ +#define CDROMREADRAW 0x5314 /* read data in raw mode (2352 Bytes) + (struct cdrom_read) */ +/* + * These ioctls are used only used in aztcd.c and optcd.c + */ +#define CDROMREADCOOKED 0x5315 /* read data in cooked mode */ +#define CDROMSEEK 0x5316 /* seek msf address */ + +/* + * This ioctl is only used by the scsi-cd driver. + It is for playing audio in logical block addressing mode. + */ +#define CDROMPLAYBLK 0x5317 /* (struct cdrom_blk) */ + +/* + * These ioctls are only used in optcd.c + */ +#define CDROMREADALL 0x5318 /* read all 2646 bytes */ + +/* + * These ioctls are (now) only in ide-cd.c for controlling + * drive spindown time. They should be implemented in the + * Uniform driver, via generic packet commands, GPCMD_MODE_SELECT_10, + * GPCMD_MODE_SENSE_10 and the GPMODE_POWER_PAGE... + * -Erik + */ +#define CDROMGETSPINDOWN 0x531d +#define CDROMSETSPINDOWN 0x531e + +/* + * These ioctls are implemented through the uniform CD-ROM driver + * They _will_ be adopted by all CD-ROM drivers, when all the CD-ROM + * drivers are eventually ported to the uniform CD-ROM driver interface. + */ +#define CDROMCLOSETRAY 0x5319 /* pendant of CDROMEJECT */ +#define CDROM_SET_OPTIONS 0x5320 /* Set behavior options */ +#define CDROM_CLEAR_OPTIONS 0x5321 /* Clear behavior options */ +#define CDROM_SELECT_SPEED 0x5322 /* Set the CD-ROM speed */ +#define CDROM_SELECT_DISC 0x5323 /* Select disc (for juke-boxes) */ +#define CDROM_MEDIA_CHANGED 0x5325 /* Check is media changed */ +#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */ +#define CDROM_DISC_STATUS 0x5327 /* Get disc type, etc. */ +#define CDROM_CHANGER_NSLOTS 0x5328 /* Get number of slots */ +#define CDROM_LOCKDOOR 0x5329 /* lock or unlock door */ +#define CDROM_DEBUG 0x5330 /* Turn debug messages on/off */ +#define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ + +/* Note that scsi/scsi_ioctl.h also uses 0x5382 - 0x5386. + * Future CDROM ioctls should be kept below 0x537F + */ + +/* This ioctl is only used by sbpcd at the moment */ +#define CDROMAUDIOBUFSIZ 0x5382 /* set the audio buffer size */ + /* conflict with SCSI_IOCTL_GET_IDLUN */ + +/* DVD-ROM Specific ioctls */ +#define DVD_READ_STRUCT 0x5390 /* Read structure */ +#define DVD_WRITE_STRUCT 0x5391 /* Write structure */ +#define DVD_AUTH 0x5392 /* Authentication */ + +#define CDROM_SEND_PACKET 0x5393 /* send a packet to the drive */ +#define CDROM_NEXT_WRITABLE 0x5394 /* get next writable block */ +#define CDROM_LAST_WRITTEN 0x5395 /* get last block written on disc */ + +/******************************************************* + * CDROM IOCTL structures + *******************************************************/ + +/* Address in MSF format */ +struct cdrom_msf0 +{ + __u8 minute; + __u8 second; + __u8 frame; +}; + +/* Address in either MSF or logical format */ +union cdrom_addr +{ + struct cdrom_msf0 msf; + int lba; +}; + +/* This struct is used by the CDROMPLAYMSF ioctl */ +struct cdrom_msf +{ + __u8 cdmsf_min0; /* start minute */ + __u8 cdmsf_sec0; /* start second */ + __u8 cdmsf_frame0; /* start frame */ + __u8 cdmsf_min1; /* end minute */ + __u8 cdmsf_sec1; /* end second */ + __u8 cdmsf_frame1; /* end frame */ +}; + +/* This struct is used by the CDROMPLAYTRKIND ioctl */ +struct cdrom_ti +{ + __u8 cdti_trk0; /* start track */ + __u8 cdti_ind0; /* start index */ + __u8 cdti_trk1; /* end track */ + __u8 cdti_ind1; /* end index */ +}; + +/* This struct is used by the CDROMREADTOCHDR ioctl */ +struct cdrom_tochdr +{ + __u8 cdth_trk0; /* start track */ + __u8 cdth_trk1; /* end track */ +}; + +/* This struct is used by the CDROMVOLCTRL and CDROMVOLREAD ioctls */ +struct cdrom_volctrl +{ + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; +}; + +/* This struct is used by the CDROMSUBCHNL ioctl */ +struct cdrom_subchnl +{ + __u8 cdsc_format; + __u8 cdsc_audiostatus; + __u8 cdsc_adr: 4; + __u8 cdsc_ctrl: 4; + __u8 cdsc_trk; + __u8 cdsc_ind; + union cdrom_addr cdsc_absaddr; + union cdrom_addr cdsc_reladdr; +}; + + +/* This struct is used by the CDROMREADTOCENTRY ioctl */ +struct cdrom_tocentry +{ + __u8 cdte_track; + __u8 cdte_adr :4; + __u8 cdte_ctrl :4; + __u8 cdte_format; + union cdrom_addr cdte_addr; + __u8 cdte_datamode; +}; + +/* This struct is used by the CDROMREADMODE1, and CDROMREADMODE2 ioctls */ +struct cdrom_read +{ + int cdread_lba; + char *cdread_bufaddr; + int cdread_buflen; +}; + +/* This struct is used by the CDROMREADAUDIO ioctl */ +struct cdrom_read_audio +{ + union cdrom_addr addr; /* frame address */ + __u8 addr_format; /* CDROM_LBA or CDROM_MSF */ + int nframes; /* number of 2352-byte-frames to read at once */ + __u8 *buf; /* frame buffer (size: nframes*2352 bytes) */ +}; + +/* This struct is used with the CDROMMULTISESSION ioctl */ +struct cdrom_multisession +{ + union cdrom_addr addr; /* frame address: start-of-last-session + (not the new "frame 16"!). Only valid + if the "xa_flag" is true. */ + __u8 xa_flag; /* 1: "is XA disk" */ + __u8 addr_format; /* CDROM_LBA or CDROM_MSF */ +}; + +/* This struct is used with the CDROM_GET_MCN ioctl. + * Very few audio discs actually have Universal Product Code information, + * which should just be the Medium Catalog Number on the box. Also note + * that the way the codeis written on CD is _not_ uniform across all discs! + */ +struct cdrom_mcn +{ + __u8 medium_catalog_number[14]; /* 13 ASCII digits, null-terminated */ +}; + +/* This is used by the CDROMPLAYBLK ioctl */ +struct cdrom_blk +{ + unsigned from; + unsigned short len; +}; + +#define CDROM_PACKET_SIZE 12 + +#define CGC_DATA_UNKNOWN 0 +#define CGC_DATA_WRITE 1 +#define CGC_DATA_READ 2 +#define CGC_DATA_NONE 3 + +/* for CDROM_PACKET_COMMAND ioctl */ +struct cdrom_generic_command +{ + unsigned char cmd[CDROM_PACKET_SIZE]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct request_sense *sense; + unsigned char data_direction; + int quiet; + int timeout; + void *reserved[1]; /* unused, actually */ +}; + +/* + * A CD-ROM physical sector size is 2048, 2052, 2056, 2324, 2332, 2336, + * 2340, or 2352 bytes long. + +* Sector types of the standard CD-ROM data formats: + * + * format sector type user data size (bytes) + * ----------------------------------------------------------------------------- + * 1 (Red Book) CD-DA 2352 (CD_FRAMESIZE_RAW) + * 2 (Yellow Book) Mode1 Form1 2048 (CD_FRAMESIZE) + * 3 (Yellow Book) Mode1 Form2 2336 (CD_FRAMESIZE_RAW0) + * 4 (Green Book) Mode2 Form1 2048 (CD_FRAMESIZE) + * 5 (Green Book) Mode2 Form2 2328 (2324+4 spare bytes) + * + * + * The layout of the standard CD-ROM data formats: + * ----------------------------------------------------------------------------- + * - audio (red): | audio_sample_bytes | + * | 2352 | + * + * - data (yellow, mode1): | sync - head - data - EDC - zero - ECC | + * | 12 - 4 - 2048 - 4 - 8 - 276 | + * + * - data (yellow, mode2): | sync - head - data | + * | 12 - 4 - 2336 | + * + * - XA data (green, mode2 form1): | sync - head - sub - data - EDC - ECC | + * | 12 - 4 - 8 - 2048 - 4 - 276 | + * + * - XA data (green, mode2 form2): | sync - head - sub - data - Spare | + * | 12 - 4 - 8 - 2324 - 4 | + * + */ + +/* Some generally useful CD-ROM information -- mostly based on the above */ +#define CD_MINS 74 /* max. minutes per CD, not really a limit */ +#define CD_SECS 60 /* seconds per minute */ +#define CD_FRAMES 75 /* frames per second */ +#define CD_SYNC_SIZE 12 /* 12 sync bytes per raw data frame */ +#define CD_MSF_OFFSET 150 /* MSF numbering offset of first frame */ +#define CD_CHUNK_SIZE 24 /* lowest-level "data bytes piece" */ +#define CD_NUM_OF_CHUNKS 98 /* chunks per frame */ +#define CD_FRAMESIZE_SUB 96 /* subchannel data "frame" size */ +#define CD_HEAD_SIZE 4 /* header (address) bytes per raw data frame */ +#define CD_SUBHEAD_SIZE 8 /* subheader bytes per raw XA data frame */ +#define CD_EDC_SIZE 4 /* bytes EDC per most raw data frame types */ +#define CD_ZERO_SIZE 8 /* bytes zero per yellow book mode 1 frame */ +#define CD_ECC_SIZE 276 /* bytes ECC per most raw data frame types */ +#define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */ +#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */ +#define CD_FRAMESIZE_RAWER 2646 /* The maximum possible returned bytes */ +/* most drives don't deliver everything: */ +#define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /*2340*/ +#define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /*2336*/ + +#define CD_XA_HEAD (CD_HEAD_SIZE+CD_SUBHEAD_SIZE) /* "before data" part of raw XA frame */ +#define CD_XA_TAIL (CD_EDC_SIZE+CD_ECC_SIZE) /* "after data" part of raw XA frame */ +#define CD_XA_SYNC_HEAD (CD_SYNC_SIZE+CD_XA_HEAD) /* sync bytes + header of XA frame */ + +/* CD-ROM address types (cdrom_tocentry.cdte_format) */ +#define CDROM_LBA 0x01 /* "logical block": first frame is #0 */ +#define CDROM_MSF 0x02 /* "minute-second-frame": binary, not bcd here! */ + +/* bit to tell whether track is data or audio (cdrom_tocentry.cdte_ctrl) */ +#define CDROM_DATA_TRACK 0x04 + +/* The leadout track is always 0xAA, regardless of # of tracks on disc */ +#define CDROM_LEADOUT 0xAA + +/* audio states (from SCSI-2, but seen with other drives, too) */ +#define CDROM_AUDIO_INVALID 0x00 /* audio status not supported */ +#define CDROM_AUDIO_PLAY 0x11 /* audio play operation in progress */ +#define CDROM_AUDIO_PAUSED 0x12 /* audio play operation paused */ +#define CDROM_AUDIO_COMPLETED 0x13 /* audio play successfully completed */ +#define CDROM_AUDIO_ERROR 0x14 /* audio play stopped due to error */ +#define CDROM_AUDIO_NO_STATUS 0x15 /* no current audio status to return */ + +/* capability flags used with the uniform CD-ROM driver */ +#define CDC_CLOSE_TRAY 0x1 /* caddy systems _can't_ close */ +#define CDC_OPEN_TRAY 0x2 /* but _can_ eject. */ +#define CDC_LOCK 0x4 /* disable manual eject */ +#define CDC_SELECT_SPEED 0x8 /* programmable speed */ +#define CDC_SELECT_DISC 0x10 /* select disc from juke-box */ +#define CDC_MULTI_SESSION 0x20 /* read sessions>1 */ +#define CDC_MCN 0x40 /* Medium Catalog Number */ +#define CDC_MEDIA_CHANGED 0x80 /* media changed */ +#define CDC_PLAY_AUDIO 0x100 /* audio functions */ +#define CDC_RESET 0x200 /* hard reset device */ +#define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */ +#define CDC_GENERIC_PACKET 0x1000 /* driver implements generic packets */ +#define CDC_CD_R 0x2000 /* drive is a CD-R */ +#define CDC_CD_RW 0x4000 /* drive is a CD-RW */ +#define CDC_DVD 0x8000 /* drive is a DVD */ +#define CDC_DVD_R 0x10000 /* drive can write DVD-R */ +#define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */ +#define CDC_MO_DRIVE 0x40000 /* drive is an MO device */ +#define CDC_MRW 0x80000 /* drive can read MRW */ +#define CDC_MRW_W 0x100000 /* drive can write MRW */ +#define CDC_RAM 0x200000 /* ok to open for WRITE */ + +/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */ +#define CDS_NO_INFO 0 /* if not implemented */ +#define CDS_NO_DISC 1 +#define CDS_TRAY_OPEN 2 +#define CDS_DRIVE_NOT_READY 3 +#define CDS_DISC_OK 4 + +/* return values for the CDROM_DISC_STATUS ioctl */ +/* can also return CDS_NO_[INFO|DISC], from above */ +#define CDS_AUDIO 100 +#define CDS_DATA_1 101 +#define CDS_DATA_2 102 +#define CDS_XA_2_1 103 +#define CDS_XA_2_2 104 +#define CDS_MIXED 105 + +/* User-configurable behavior options for the uniform CD-ROM driver */ +#define CDO_AUTO_CLOSE 0x1 /* close tray on first open() */ +#define CDO_AUTO_EJECT 0x2 /* open tray on last release() */ +#define CDO_USE_FFLAGS 0x4 /* use O_NONBLOCK information on open */ +#define CDO_LOCK 0x8 /* lock tray on open files */ +#define CDO_CHECK_TYPE 0x10 /* check type on open for data */ + +/* Special codes used when specifying changer slots. */ +#define CDSL_NONE (INT_MAX-1) +#define CDSL_CURRENT INT_MAX + +/* For partition based multisession access. IDE can handle 64 partitions + * per drive - SCSI CD-ROM's use minors to differentiate between the + * various drives, so we can't do multisessions the same way there. + * Use the -o session=x option to mount on them. + */ +#define CD_PART_MAX 64 +#define CD_PART_MASK (CD_PART_MAX - 1) + +/********************************************************************* + * Generic Packet commands, MMC commands, and such + *********************************************************************/ + + /* The generic packet command opcodes for CD/DVD Logical Units, + * From Table 57 of the SFF8090 Ver. 3 (Mt. Fuji) draft standard. */ +#define GPCMD_BLANK 0xa1 +#define GPCMD_CLOSE_TRACK 0x5b +#define GPCMD_FLUSH_CACHE 0x35 +#define GPCMD_FORMAT_UNIT 0x04 +#define GPCMD_GET_CONFIGURATION 0x46 +#define GPCMD_GET_EVENT_STATUS_NOTIFICATION 0x4a +#define GPCMD_GET_PERFORMANCE 0xac +#define GPCMD_INQUIRY 0x12 +#define GPCMD_LOAD_UNLOAD 0xa6 +#define GPCMD_MECHANISM_STATUS 0xbd +#define GPCMD_MODE_SELECT_10 0x55 +#define GPCMD_MODE_SENSE_10 0x5a +#define GPCMD_PAUSE_RESUME 0x4b +#define GPCMD_PLAY_AUDIO_10 0x45 +#define GPCMD_PLAY_AUDIO_MSF 0x47 +#define GPCMD_PLAY_AUDIO_TI 0x48 +#define GPCMD_PLAY_CD 0xbc +#define GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e +#define GPCMD_READ_10 0x28 +#define GPCMD_READ_12 0xa8 +#define GPCMD_READ_BUFFER 0x3c +#define GPCMD_READ_BUFFER_CAPACITY 0x5c +#define GPCMD_READ_CDVD_CAPACITY 0x25 +#define GPCMD_READ_CD 0xbe +#define GPCMD_READ_CD_MSF 0xb9 +#define GPCMD_READ_DISC_INFO 0x51 +#define GPCMD_READ_DVD_STRUCTURE 0xad +#define GPCMD_READ_FORMAT_CAPACITIES 0x23 +#define GPCMD_READ_HEADER 0x44 +#define GPCMD_READ_TRACK_RZONE_INFO 0x52 +#define GPCMD_READ_SUBCHANNEL 0x42 +#define GPCMD_READ_TOC_PMA_ATIP 0x43 +#define GPCMD_REPAIR_RZONE_TRACK 0x58 +#define GPCMD_REPORT_KEY 0xa4 +#define GPCMD_REQUEST_SENSE 0x03 +#define GPCMD_RESERVE_RZONE_TRACK 0x53 +#define GPCMD_SEND_CUE_SHEET 0x5d +#define GPCMD_SCAN 0xba +#define GPCMD_SEEK 0x2b +#define GPCMD_SEND_DVD_STRUCTURE 0xbf +#define GPCMD_SEND_EVENT 0xa2 +#define GPCMD_SEND_KEY 0xa3 +#define GPCMD_SEND_OPC 0x54 +#define GPCMD_SET_READ_AHEAD 0xa7 +#define GPCMD_SET_STREAMING 0xb6 +#define GPCMD_START_STOP_UNIT 0x1b +#define GPCMD_STOP_PLAY_SCAN 0x4e +#define GPCMD_TEST_UNIT_READY 0x00 +#define GPCMD_VERIFY_10 0x2f +#define GPCMD_WRITE_10 0x2a +#define GPCMD_WRITE_12 0xaa +#define GPCMD_WRITE_AND_VERIFY_10 0x2e +#define GPCMD_WRITE_BUFFER 0x3b +/* This is listed as optional in ATAPI 2.6, but is (curiously) + * missing from Mt. Fuji, Table 57. It _is_ mentioned in Mt. Fuji + * Table 377 as an MMC command for SCSi devices though... Most ATAPI + * drives support it. */ +#define GPCMD_SET_SPEED 0xbb +/* This seems to be a SCSI specific CD-ROM opcode + * to play data at track/index */ +#define GPCMD_PLAYAUDIO_TI 0x48 +/* + * From MS Media Status Notification Support Specification. For + * older drives only. + */ +#define GPCMD_GET_MEDIA_STATUS 0xda + +/* Mode page codes for mode sense/set */ +#define GPMODE_VENDOR_PAGE 0x00 +#define GPMODE_R_W_ERROR_PAGE 0x01 +#define GPMODE_WRITE_PARMS_PAGE 0x05 +#define GPMODE_WCACHING_PAGE 0x08 +#define GPMODE_AUDIO_CTL_PAGE 0x0e +#define GPMODE_POWER_PAGE 0x1a +#define GPMODE_FAULT_FAIL_PAGE 0x1c +#define GPMODE_TO_PROTECT_PAGE 0x1d +#define GPMODE_CAPABILITIES_PAGE 0x2a +#define GPMODE_ALL_PAGES 0x3f +/* Not in Mt. Fuji, but in ATAPI 2.6 -- deprecated now in favor + * of MODE_SENSE_POWER_PAGE */ +#define GPMODE_CDROM_PAGE 0x0d + + + +/* DVD struct types */ +#define DVD_STRUCT_PHYSICAL 0x00 +#define DVD_STRUCT_COPYRIGHT 0x01 +#define DVD_STRUCT_DISCKEY 0x02 +#define DVD_STRUCT_BCA 0x03 +#define DVD_STRUCT_MANUFACT 0x04 + +struct dvd_layer { + __u8 book_version : 4; + __u8 book_type : 4; + __u8 min_rate : 4; + __u8 disc_size : 4; + __u8 layer_type : 4; + __u8 track_path : 1; + __u8 nlayers : 2; + __u8 track_density : 4; + __u8 linear_density : 4; + __u8 bca : 1; + __u32 start_sector; + __u32 end_sector; + __u32 end_sector_l0; +}; + +#define DVD_LAYERS 4 + +struct dvd_physical { + __u8 type; + __u8 layer_num; + struct dvd_layer layer[DVD_LAYERS]; +}; + +struct dvd_copyright { + __u8 type; + + __u8 layer_num; + __u8 cpst; + __u8 rmi; +}; + +struct dvd_disckey { + __u8 type; + + unsigned agid : 2; + __u8 value[2048]; +}; + +struct dvd_bca { + __u8 type; + + int len; + __u8 value[188]; +}; + +struct dvd_manufact { + __u8 type; + + __u8 layer_num; + int len; + __u8 value[2048]; +}; + +typedef union { + __u8 type; + + struct dvd_physical physical; + struct dvd_copyright copyright; + struct dvd_disckey disckey; + struct dvd_bca bca; + struct dvd_manufact manufact; +} dvd_struct; + +/* + * DVD authentication ioctl + */ + +/* Authentication states */ +#define DVD_LU_SEND_AGID 0 +#define DVD_HOST_SEND_CHALLENGE 1 +#define DVD_LU_SEND_KEY1 2 +#define DVD_LU_SEND_CHALLENGE 3 +#define DVD_HOST_SEND_KEY2 4 + +/* Termination states */ +#define DVD_AUTH_ESTABLISHED 5 +#define DVD_AUTH_FAILURE 6 + +/* Other functions */ +#define DVD_LU_SEND_TITLE_KEY 7 +#define DVD_LU_SEND_ASF 8 +#define DVD_INVALIDATE_AGID 9 +#define DVD_LU_SEND_RPC_STATE 10 +#define DVD_HOST_SEND_RPC_STATE 11 + +/* State data */ +typedef __u8 dvd_key[5]; /* 40-bit value, MSB is first elem. */ +typedef __u8 dvd_challenge[10]; /* 80-bit value, MSB is first elem. */ + +struct dvd_lu_send_agid { + __u8 type; + unsigned agid : 2; +}; + +struct dvd_host_send_challenge { + __u8 type; + unsigned agid : 2; + + dvd_challenge chal; +}; + +struct dvd_send_key { + __u8 type; + unsigned agid : 2; + + dvd_key key; +}; + +struct dvd_lu_send_challenge { + __u8 type; + unsigned agid : 2; + + dvd_challenge chal; +}; + +#define DVD_CPM_NO_COPYRIGHT 0 +#define DVD_CPM_COPYRIGHTED 1 + +#define DVD_CP_SEC_NONE 0 +#define DVD_CP_SEC_EXIST 1 + +#define DVD_CGMS_UNRESTRICTED 0 +#define DVD_CGMS_SINGLE 2 +#define DVD_CGMS_RESTRICTED 3 + +struct dvd_lu_send_title_key { + __u8 type; + unsigned agid : 2; + + dvd_key title_key; + int lba; + unsigned cpm : 1; + unsigned cp_sec : 1; + unsigned cgms : 2; +}; + +struct dvd_lu_send_asf { + __u8 type; + unsigned agid : 2; + + unsigned asf : 1; +}; + +struct dvd_host_send_rpcstate { + __u8 type; + __u8 pdrc; +}; + +struct dvd_lu_send_rpcstate { + __u8 type : 2; + __u8 vra : 3; + __u8 ucca : 3; + __u8 region_mask; + __u8 rpc_scheme; +}; + +typedef union { + __u8 type; + + struct dvd_lu_send_agid lsa; + struct dvd_host_send_challenge hsc; + struct dvd_send_key lsk; + struct dvd_lu_send_challenge lsc; + struct dvd_send_key hsk; + struct dvd_lu_send_title_key lstk; + struct dvd_lu_send_asf lsasf; + struct dvd_host_send_rpcstate hrpcs; + struct dvd_lu_send_rpcstate lrpcs; +} dvd_authinfo; + +struct request_sense { +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 valid : 1; + __u8 error_code : 7; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 error_code : 7; + __u8 valid : 1; +#endif + __u8 segment_number; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved1 : 2; + __u8 ili : 1; + __u8 reserved2 : 1; + __u8 sense_key : 4; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 sense_key : 4; + __u8 reserved2 : 1; + __u8 ili : 1; + __u8 reserved1 : 2; +#endif + __u8 information[4]; + __u8 add_sense_len; + __u8 command_info[4]; + __u8 asc; + __u8 ascq; + __u8 fruc; + __u8 sks[3]; + __u8 asb[46]; +}; + +/* + * feature profile + */ +#define CDF_RWRT 0x0020 /* "Random Writable" */ +#define CDF_HWDM 0x0024 /* "Hardware Defect Management" */ +#define CDF_MRW 0x0028 + +/* + * media status bits + */ +#define CDM_MRW_NOTMRW 0 +#define CDM_MRW_BGFORMAT_INACTIVE 1 +#define CDM_MRW_BGFORMAT_ACTIVE 2 +#define CDM_MRW_BGFORMAT_COMPLETE 3 + +/* + * mrw address spaces + */ +#define MRW_LBA_DMA 0 +#define MRW_LBA_GAA 1 + +/* + * mrw mode pages (first is deprecated) -- probed at init time and + * cdi->mrw_mode_page is set + */ +#define MRW_MODE_PC_PRE1 0x2c +#define MRW_MODE_PC 0x03 + +struct mrw_feature_desc { + __be16 feature_code; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved1 : 2; + __u8 feature_version : 4; + __u8 persistent : 1; + __u8 curr : 1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 curr : 1; + __u8 persistent : 1; + __u8 feature_version : 4; + __u8 reserved1 : 2; +#endif + __u8 add_len; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved2 : 7; + __u8 write : 1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 write : 1; + __u8 reserved2 : 7; +#endif + __u8 reserved3; + __u8 reserved4; + __u8 reserved5; +}; + +/* cf. mmc4r02g.pdf 5.3.10 Random Writable Feature (0020h) pg 197 of 635 */ +struct rwrt_feature_desc { + __be16 feature_code; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved1 : 2; + __u8 feature_version : 4; + __u8 persistent : 1; + __u8 curr : 1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 curr : 1; + __u8 persistent : 1; + __u8 feature_version : 4; + __u8 reserved1 : 2; +#endif + __u8 add_len; + __u32 last_lba; + __u32 block_size; + __u16 blocking; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved2 : 7; + __u8 page_present : 1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 page_present : 1; + __u8 reserved2 : 7; +#endif + __u8 reserved3; +}; + +typedef struct { + __be16 disc_information_length; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved1 : 3; + __u8 erasable : 1; + __u8 border_status : 2; + __u8 disc_status : 2; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 disc_status : 2; + __u8 border_status : 2; + __u8 erasable : 1; + __u8 reserved1 : 3; +#else +#error "Please fix " +#endif + __u8 n_first_track; + __u8 n_sessions_lsb; + __u8 first_track_lsb; + __u8 last_track_lsb; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 did_v : 1; + __u8 dbc_v : 1; + __u8 uru : 1; + __u8 reserved2 : 2; + __u8 dbit : 1; + __u8 mrw_status : 2; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 mrw_status : 2; + __u8 dbit : 1; + __u8 reserved2 : 2; + __u8 uru : 1; + __u8 dbc_v : 1; + __u8 did_v : 1; +#endif + __u8 disc_type; + __u8 n_sessions_msb; + __u8 first_track_msb; + __u8 last_track_msb; + __u32 disc_id; + __u32 lead_in; + __u32 lead_out; + __u8 disc_bar_code[8]; + __u8 reserved3; + __u8 n_opc; +} disc_information; + +typedef struct { + __be16 track_information_length; + __u8 track_lsb; + __u8 session_lsb; + __u8 reserved1; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved2 : 2; + __u8 damage : 1; + __u8 copy : 1; + __u8 track_mode : 4; + __u8 rt : 1; + __u8 blank : 1; + __u8 packet : 1; + __u8 fp : 1; + __u8 data_mode : 4; + __u8 reserved3 : 6; + __u8 lra_v : 1; + __u8 nwa_v : 1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 track_mode : 4; + __u8 copy : 1; + __u8 damage : 1; + __u8 reserved2 : 2; + __u8 data_mode : 4; + __u8 fp : 1; + __u8 packet : 1; + __u8 blank : 1; + __u8 rt : 1; + __u8 nwa_v : 1; + __u8 lra_v : 1; + __u8 reserved3 : 6; +#endif + __be32 track_start; + __be32 next_writable; + __be32 free_blocks; + __be32 fixed_packet_size; + __be32 track_size; + __be32 last_rec_address; +} track_information; + +struct feature_header { + __u32 data_len; + __u8 reserved1; + __u8 reserved2; + __u16 curr_profile; +}; + +struct mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; +}; + +/* removable medium feature descriptor */ +struct rm_feature_desc { + __be16 feature_code; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 reserved1:2; + __u8 feature_version:4; + __u8 persistent:1; + __u8 curr:1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 curr:1; + __u8 persistent:1; + __u8 feature_version:4; + __u8 reserved1:2; +#endif + __u8 add_len; +#if defined(__BIG_ENDIAN_BITFIELD) + __u8 mech_type:3; + __u8 load:1; + __u8 eject:1; + __u8 pvnt_jmpr:1; + __u8 dbml:1; + __u8 lock:1; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 lock:1; + __u8 dbml:1; + __u8 pvnt_jmpr:1; + __u8 eject:1; + __u8 load:1; + __u8 mech_type:3; +#endif + __u8 reserved2; + __u8 reserved3; + __u8 reserved4; +}; + +#endif /* _LINUX_CDROM_H */ diff --git a/kernel_headers/linux/cgroupstats.h b/kernel_headers/linux/cgroupstats.h new file mode 100644 index 0000000..3753c33 --- /dev/null +++ b/kernel_headers/linux/cgroupstats.h @@ -0,0 +1,71 @@ +/* cgroupstats.h - exporting per-cgroup statistics + * + * Copyright IBM Corporation, 2007 + * Author Balbir Singh + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2.1 of the GNU Lesser General Public License + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _LINUX_CGROUPSTATS_H +#define _LINUX_CGROUPSTATS_H + +#include +#include + +/* + * Data shared between user space and kernel space on a per cgroup + * basis. This data is shared using taskstats. + * + * Most of these states are derived by looking at the task->state value + * For the nr_io_wait state, a flag in the delay accounting structure + * indicates that the task is waiting on IO + * + * Each member is aligned to a 8 byte boundary. + */ +struct cgroupstats { + __u64 nr_sleeping; /* Number of tasks sleeping */ + __u64 nr_running; /* Number of tasks running */ + __u64 nr_stopped; /* Number of tasks in stopped state */ + __u64 nr_uninterruptible; /* Number of tasks in uninterruptible */ + /* state */ + __u64 nr_io_wait; /* Number of tasks waiting on IO */ +}; + +/* + * Commands sent from userspace + * Not versioned. New commands should only be inserted at the enum's end + * prior to __CGROUPSTATS_CMD_MAX + */ + +enum { + CGROUPSTATS_CMD_UNSPEC = __TASKSTATS_CMD_MAX, /* Reserved */ + CGROUPSTATS_CMD_GET, /* user->kernel request/get-response */ + CGROUPSTATS_CMD_NEW, /* kernel->user event */ + __CGROUPSTATS_CMD_MAX, +}; + +#define CGROUPSTATS_CMD_MAX (__CGROUPSTATS_CMD_MAX - 1) + +enum { + CGROUPSTATS_TYPE_UNSPEC = 0, /* Reserved */ + CGROUPSTATS_TYPE_CGROUP_STATS, /* contains name + stats */ + __CGROUPSTATS_TYPE_MAX, +}; + +#define CGROUPSTATS_TYPE_MAX (__CGROUPSTATS_TYPE_MAX - 1) + +enum { + CGROUPSTATS_CMD_ATTR_UNSPEC = 0, + CGROUPSTATS_CMD_ATTR_FD, + __CGROUPSTATS_CMD_ATTR_MAX, +}; + +#define CGROUPSTATS_CMD_ATTR_MAX (__CGROUPSTATS_CMD_ATTR_MAX - 1) + +#endif /* _LINUX_CGROUPSTATS_H */ diff --git a/kernel_headers/linux/chio.h b/kernel_headers/linux/chio.h new file mode 100644 index 0000000..e97cd98 --- /dev/null +++ b/kernel_headers/linux/chio.h @@ -0,0 +1,168 @@ +/* + * ioctl interface for the scsi media changer driver + */ + +/* changer element types */ +#define CHET_MT 0 /* media transport element (robot) */ +#define CHET_ST 1 /* storage element (media slots) */ +#define CHET_IE 2 /* import/export element */ +#define CHET_DT 3 /* data transfer element (tape/cdrom/whatever) */ +#define CHET_V1 4 /* vendor specific #1 */ +#define CHET_V2 5 /* vendor specific #2 */ +#define CHET_V3 6 /* vendor specific #3 */ +#define CHET_V4 7 /* vendor specific #4 */ + + +/* + * CHIOGPARAMS + * query changer properties + * + * CHIOVGPARAMS + * query vendor-specific element types + * + * accessing elements works by specifing type and unit of the element. + * for example, storage elements are addressed with type = CHET_ST and + * unit = 0 .. cp_nslots-1 + * + */ +struct changer_params { + int cp_curpicker; /* current transport element */ + int cp_npickers; /* number of transport elements (CHET_MT) */ + int cp_nslots; /* number of storage elements (CHET_ST) */ + int cp_nportals; /* number of import/export elements (CHET_IE) */ + int cp_ndrives; /* number of data transfer elements (CHET_DT) */ +}; +struct changer_vendor_params { + int cvp_n1; /* number of vendor specific elems (CHET_V1) */ + char cvp_label1[16]; + int cvp_n2; /* number of vendor specific elems (CHET_V2) */ + char cvp_label2[16]; + int cvp_n3; /* number of vendor specific elems (CHET_V3) */ + char cvp_label3[16]; + int cvp_n4; /* number of vendor specific elems (CHET_V4) */ + char cvp_label4[16]; + int reserved[8]; +}; + + +/* + * CHIOMOVE + * move a medium from one element to another + */ +struct changer_move { + int cm_fromtype; /* type/unit of source element */ + int cm_fromunit; + int cm_totype; /* type/unit of destination element */ + int cm_tounit; + int cm_flags; +}; +#define CM_INVERT 1 /* flag: rotate media (for double-sided like MOD) */ + + +/* + * CHIOEXCHANGE + * move one medium from element #1 to element #2, + * and another one from element #2 to element #3. + * element #1 and #3 are allowed to be identical. + */ +struct changer_exchange { + int ce_srctype; /* type/unit of element #1 */ + int ce_srcunit; + int ce_fdsttype; /* type/unit of element #2 */ + int ce_fdstunit; + int ce_sdsttype; /* type/unit of element #3 */ + int ce_sdstunit; + int ce_flags; +}; +#define CE_INVERT1 1 +#define CE_INVERT2 2 + + +/* + * CHIOPOSITION + * move the transport element (robot arm) to a specific element. + */ +struct changer_position { + int cp_type; + int cp_unit; + int cp_flags; +}; +#define CP_INVERT 1 + + +/* + * CHIOGSTATUS + * get element status for all elements of a specific type + */ +struct changer_element_status { + int ces_type; + unsigned char *ces_data; +}; +#define CESTATUS_FULL 0x01 /* full */ +#define CESTATUS_IMPEXP 0x02 /* media was imported (inserted by sysop) */ +#define CESTATUS_EXCEPT 0x04 /* error condition */ +#define CESTATUS_ACCESS 0x08 /* access allowed */ +#define CESTATUS_EXENAB 0x10 /* element can export media */ +#define CESTATUS_INENAB 0x20 /* element can import media */ + + +/* + * CHIOGELEM + * get more detailed status information for a single element + */ +struct changer_get_element { + int cge_type; /* type/unit */ + int cge_unit; + int cge_status; /* status */ + int cge_errno; /* errno */ + int cge_srctype; /* source element of the last move/exchange */ + int cge_srcunit; + int cge_id; /* scsi id (for data transfer elements) */ + int cge_lun; /* scsi lun (for data transfer elements) */ + char cge_pvoltag[36]; /* primary volume tag */ + char cge_avoltag[36]; /* alternate volume tag */ + int cge_flags; +}; +/* flags */ +#define CGE_ERRNO 0x01 /* errno available */ +#define CGE_INVERT 0x02 /* media inverted */ +#define CGE_SRC 0x04 /* media src available */ +#define CGE_IDLUN 0x08 /* ID+LUN available */ +#define CGE_PVOLTAG 0x10 /* primary volume tag available */ +#define CGE_AVOLTAG 0x20 /* alternate volume tag available */ + + +/* + * CHIOSVOLTAG + * set volume tag + */ +struct changer_set_voltag { + int csv_type; /* type/unit */ + int csv_unit; + char csv_voltag[36]; /* volume tag */ + int csv_flags; +}; +#define CSV_PVOLTAG 0x01 /* primary volume tag */ +#define CSV_AVOLTAG 0x02 /* alternate volume tag */ +#define CSV_CLEARTAG 0x04 /* clear volume tag */ + +/* ioctls */ +#define CHIOMOVE _IOW('c', 1,struct changer_move) +#define CHIOEXCHANGE _IOW('c', 2,struct changer_exchange) +#define CHIOPOSITION _IOW('c', 3,struct changer_position) +#define CHIOGPICKER _IOR('c', 4,int) /* not impl. */ +#define CHIOSPICKER _IOW('c', 5,int) /* not impl. */ +#define CHIOGPARAMS _IOR('c', 6,struct changer_params) +#define CHIOGSTATUS _IOW('c', 8,struct changer_element_status) +#define CHIOGELEM _IOW('c',16,struct changer_get_element) +#define CHIOINITELEM _IO('c',17) +#define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag) +#define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params) + +/* ---------------------------------------------------------------------- */ + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */ diff --git a/kernel_headers/linux/ci-bridge-spi.h b/kernel_headers/linux/ci-bridge-spi.h new file mode 100644 index 0000000..7c6b6be --- /dev/null +++ b/kernel_headers/linux/ci-bridge-spi.h @@ -0,0 +1,10 @@ +#ifndef _CI_BRIDGE_SPI_H_ +#define _CI_BRIDGE_SPI_H_ + +#include + +#define CI_BRIDGE_IOCTL_MAGIC 'c' +#define CI_BRIDGE_IOCTL_RESET _IOW(CI_BRIDGE_IOCTL_MAGIC, 0, unsigned) +#define CI_BRIDGE_IOCTL_GET_INT_STATE _IOR(CI_BRIDGE_IOCTL_MAGIC, 1, unsigned) + +#endif diff --git a/kernel_headers/linux/cm4000_cs.h b/kernel_headers/linux/cm4000_cs.h new file mode 100644 index 0000000..6e2c555 --- /dev/null +++ b/kernel_headers/linux/cm4000_cs.h @@ -0,0 +1,62 @@ +#ifndef _CM4000_H_ +#define _CM4000_H_ + +#include + +#define MAX_ATR 33 + +#define CM4000_MAX_DEV 4 + +/* those two structures are passed via ioctl() from/to userspace. They are + * used by existing userspace programs, so I kepth the awkward "bIFSD" naming + * not to break compilation of userspace apps. -HW */ + +typedef struct atreq { + __s32 atr_len; + unsigned char atr[64]; + __s32 power_act; + unsigned char bIFSD; + unsigned char bIFSC; +} atreq_t; + + +/* what is particularly stupid in the original driver is the arch-dependent + * member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace + * will lay out the structure members differently than the 64bit kernel. + * + * I've changed "ptsreq.protocol" from "unsigned long" to "__u32". + * On 32bit this will make no difference. With 64bit kernels, it will make + * 32bit apps work, too. + */ + +typedef struct ptsreq { + __u32 protocol; /*T=0: 2^0, T=1: 2^1*/ + unsigned char flags; + unsigned char pts1; + unsigned char pts2; + unsigned char pts3; +} ptsreq_t; + +#define CM_IOC_MAGIC 'c' +#define CM_IOC_MAXNR 255 + +#define CM_IOCGSTATUS _IOR (CM_IOC_MAGIC, 0, unsigned char *) +#define CM_IOCGATR _IOWR(CM_IOC_MAGIC, 1, atreq_t *) +#define CM_IOCSPTS _IOW (CM_IOC_MAGIC, 2, ptsreq_t *) +#define CM_IOCSRDR _IO (CM_IOC_MAGIC, 3) +#define CM_IOCARDOFF _IO (CM_IOC_MAGIC, 4) + +#define CM_IOSDBGLVL _IOW(CM_IOC_MAGIC, 250, int*) + +/* card and device states */ +#define CM_CARD_INSERTED 0x01 +#define CM_CARD_POWERED 0x02 +#define CM_ATR_PRESENT 0x04 +#define CM_ATR_VALID 0x08 +#define CM_STATE_VALID 0x0f +/* extra info only from CM4000 */ +#define CM_NO_READER 0x10 +#define CM_BAD_CARD 0x20 + + +#endif /* _CM4000_H_ */ diff --git a/kernel_headers/linux/cn_proc.h b/kernel_headers/linux/cn_proc.h new file mode 100644 index 0000000..bf22f5c --- /dev/null +++ b/kernel_headers/linux/cn_proc.h @@ -0,0 +1,129 @@ +/* + * cn_proc.h - process events connector + * + * Copyright (C) Matt Helsley, IBM Corp. 2005 + * Based on cn_fork.h by Nguyen Anh Quynh and Guillaume Thouvenin + * Copyright (C) 2005 Nguyen Anh Quynh + * Copyright (C) 2005 Guillaume Thouvenin + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2.1 of the GNU Lesser General Public License + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef CN_PROC_H +#define CN_PROC_H + +#include + +/* + * Userspace sends this enum to register with the kernel that it is listening + * for events on the connector. + */ +enum proc_cn_mcast_op { + PROC_CN_MCAST_LISTEN = 1, + PROC_CN_MCAST_IGNORE = 2 +}; + +/* + * From the user's point of view, the process + * ID is the thread group ID and thread ID is the internal + * kernel "pid". So, fields are assigned as follow: + * + * In user space - In kernel space + * + * parent process ID = parent->tgid + * parent thread ID = parent->pid + * child process ID = child->tgid + * child thread ID = child->pid + */ + +struct proc_event { + enum what { + /* Use successive bits so the enums can be used to record + * sets of events as well + */ + PROC_EVENT_NONE = 0x00000000, + PROC_EVENT_FORK = 0x00000001, + PROC_EVENT_EXEC = 0x00000002, + PROC_EVENT_UID = 0x00000004, + PROC_EVENT_GID = 0x00000040, + PROC_EVENT_SID = 0x00000080, + PROC_EVENT_PTRACE = 0x00000100, + PROC_EVENT_COMM = 0x00000200, + /* "next" should be 0x00000400 */ + /* "last" is the last process event: exit, + * while "next to last" is coredumping event */ + PROC_EVENT_COREDUMP = 0x40000000, + PROC_EVENT_EXIT = 0x80000000 + } what; + __u32 cpu; + __u64 __attribute__((aligned(8))) timestamp_ns; + /* Number of nano seconds since system boot */ + union { /* must be last field of proc_event struct */ + struct { + __u32 err; + } ack; + + struct fork_proc_event { + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; + __kernel_pid_t child_pid; + __kernel_pid_t child_tgid; + } fork; + + struct exec_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + } exec; + + struct id_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + union { + __u32 ruid; /* task uid */ + __u32 rgid; /* task gid */ + } r; + union { + __u32 euid; + __u32 egid; + } e; + } id; + + struct sid_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + } sid; + + struct ptrace_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + __kernel_pid_t tracer_pid; + __kernel_pid_t tracer_tgid; + } ptrace; + + struct comm_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + char comm[16]; + } comm; + + struct coredump_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + } coredump; + + struct exit_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + __u32 exit_code, exit_signal; + } exit; + + } event_data; +}; + +#endif /* CN_PROC_H */ diff --git a/kernel_headers/linux/coda.h b/kernel_headers/linux/coda.h new file mode 100644 index 0000000..a5e4b99 --- /dev/null +++ b/kernel_headers/linux/coda.h @@ -0,0 +1,736 @@ +/* + You may distribute this file under either of the two licenses that + follow at your discretion. +*/ + +/* BLURB lgpl + + Coda File System + Release 5 + + Copyright (c) 1987-1999 Carnegie Mellon University + Additional copyrights listed below + +This code is distributed "AS IS" without warranty of any kind under +the terms of the GNU Library General Public Licence Version 2, as +shown in the file LICENSE, or under the license shown below. The +technical and financial contributors to Coda are listed in the file +CREDITS. + + Additional copyrights +*/ + +/* + + Coda: an Experimental Distributed File System + Release 4.0 + + Copyright (c) 1987-1999 Carnegie Mellon University + All Rights Reserved + +Permission to use, copy, modify and distribute this software and its +documentation is hereby granted, provided that both the copyright +notice and this permission notice appear in all copies of the +software, derivative works or modified versions, and any portions +thereof, and that both notices appear in supporting documentation, and +that credit is given to Carnegie Mellon University in all documents +and publicity pertaining to direct or indirect use of this code or its +derivatives. + +CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS, +SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS +FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON +DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER +RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF +ANY DERIVATIVE WORK. + +Carnegie Mellon encourages users of this software to return any +improvements or extensions that they make, and to grant Carnegie +Mellon the rights to redistribute these changes without encumbrance. +*/ + +/* + * + * Based on cfs.h from Mach, but revamped for increased simplicity. + * Linux modifications by + * Peter Braam, Aug 1996 + */ + +#ifndef _CODA_HEADER_ +#define _CODA_HEADER_ + + +/* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */ +#if defined(__NetBSD__) || \ + ((defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)) +#include +#endif + +#ifndef CODA_MAXSYMLINKS +#define CODA_MAXSYMLINKS 10 +#endif + +#if defined(DJGPP) || defined(__CYGWIN32__) +#ifdef KERNEL +typedef unsigned long u_long; +typedef unsigned int u_int; +typedef unsigned short u_short; +typedef u_long ino_t; +typedef u_long dev_t; +typedef void * caddr_t; +#ifdef DOS +typedef unsigned __int64 u_quad_t; +#else +typedef unsigned long long u_quad_t; +#endif + +#define __inline__ + +struct timespec { + long ts_sec; + long ts_nsec; +}; +#else /* DJGPP but not KERNEL */ +#include +typedef unsigned long long u_quad_t; +#endif /* !KERNEL */ +#endif /* !DJGPP */ + + +#if defined(__linux__) +#include +#define cdev_t u_quad_t +#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2) +#define _UQUAD_T_ 1 +typedef unsigned long long u_quad_t; +#endif +#else +#define cdev_t dev_t +#endif + +#ifdef __CYGWIN32__ +struct timespec { + time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ +}; +#endif + +#ifndef __BIT_TYPES_DEFINED__ +#define __BIT_TYPES_DEFINED__ +typedef signed char int8_t; +typedef unsigned char u_int8_t; +typedef short int16_t; +typedef unsigned short u_int16_t; +typedef int int32_t; +typedef unsigned int u_int32_t; +#endif + + +/* + * Cfs constants + */ +#define CODA_MAXNAMLEN 255 +#define CODA_MAXPATHLEN 1024 +#define CODA_MAXSYMLINK 10 + +/* these are Coda's version of O_RDONLY etc combinations + * to deal with VFS open modes + */ +#define C_O_READ 0x001 +#define C_O_WRITE 0x002 +#define C_O_TRUNC 0x010 +#define C_O_EXCL 0x100 +#define C_O_CREAT 0x200 + +/* these are to find mode bits in Venus */ +#define C_M_READ 00400 +#define C_M_WRITE 00200 + +/* for access Venus will use */ +#define C_A_C_OK 8 /* Test for writing upon create. */ +#define C_A_R_OK 4 /* Test for read permission. */ +#define C_A_W_OK 2 /* Test for write permission. */ +#define C_A_X_OK 1 /* Test for execute permission. */ +#define C_A_F_OK 0 /* Test for existence. */ + + + +#ifndef _VENUS_DIRENT_T_ +#define _VENUS_DIRENT_T_ 1 +struct venus_dirent { + u_int32_t d_fileno; /* file number of entry */ + u_int16_t d_reclen; /* length of this record */ + u_int8_t d_type; /* file type, see below */ + u_int8_t d_namlen; /* length of string in d_name */ + char d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */ +}; +#undef DIRSIZ +#define DIRSIZ(dp) ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \ + (((dp)->d_namlen+1 + 3) &~ 3)) + +/* + * File types + */ +#define CDT_UNKNOWN 0 +#define CDT_FIFO 1 +#define CDT_CHR 2 +#define CDT_DIR 4 +#define CDT_BLK 6 +#define CDT_REG 8 +#define CDT_LNK 10 +#define CDT_SOCK 12 +#define CDT_WHT 14 + +/* + * Convert between stat structure types and directory types. + */ +#define IFTOCDT(mode) (((mode) & 0170000) >> 12) +#define CDTTOIF(dirtype) ((dirtype) << 12) + +#endif + +#ifndef _VUID_T_ +#define _VUID_T_ +typedef u_int32_t vuid_t; +typedef u_int32_t vgid_t; +#endif /*_VUID_T_ */ + +struct CodaFid { + u_int32_t opaque[4]; +}; + +#define coda_f2i(fid)\ + (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0) + +#ifndef _VENUS_VATTR_T_ +#define _VENUS_VATTR_T_ +/* + * Vnode types. VNON means no type. + */ +enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD }; + +struct coda_vattr { + long va_type; /* vnode type (for create) */ + u_short va_mode; /* files access mode and type */ + short va_nlink; /* number of references to file */ + vuid_t va_uid; /* owner user id */ + vgid_t va_gid; /* owner group id */ + long va_fileid; /* file id */ + u_quad_t va_size; /* file size in bytes */ + long va_blocksize; /* blocksize preferred for i/o */ + struct timespec va_atime; /* time of last access */ + struct timespec va_mtime; /* time of last modification */ + struct timespec va_ctime; /* time file changed */ + u_long va_gen; /* generation number of file */ + u_long va_flags; /* flags defined for file */ + cdev_t va_rdev; /* device special file represents */ + u_quad_t va_bytes; /* bytes of disk space held by file */ + u_quad_t va_filerev; /* file modification number */ +}; + +#endif + +/* structure used by CODA_STATFS for getting cache information from venus */ +struct coda_statfs { + int32_t f_blocks; + int32_t f_bfree; + int32_t f_bavail; + int32_t f_files; + int32_t f_ffree; +}; + +/* + * Kernel <--> Venus communications. + */ + +#define CODA_ROOT 2 +#define CODA_OPEN_BY_FD 3 +#define CODA_OPEN 4 +#define CODA_CLOSE 5 +#define CODA_IOCTL 6 +#define CODA_GETATTR 7 +#define CODA_SETATTR 8 +#define CODA_ACCESS 9 +#define CODA_LOOKUP 10 +#define CODA_CREATE 11 +#define CODA_REMOVE 12 +#define CODA_LINK 13 +#define CODA_RENAME 14 +#define CODA_MKDIR 15 +#define CODA_RMDIR 16 +#define CODA_SYMLINK 18 +#define CODA_READLINK 19 +#define CODA_FSYNC 20 +#define CODA_VGET 22 +#define CODA_SIGNAL 23 +#define CODA_REPLACE 24 /* DOWNCALL */ +#define CODA_FLUSH 25 /* DOWNCALL */ +#define CODA_PURGEUSER 26 /* DOWNCALL */ +#define CODA_ZAPFILE 27 /* DOWNCALL */ +#define CODA_ZAPDIR 28 /* DOWNCALL */ +#define CODA_PURGEFID 30 /* DOWNCALL */ +#define CODA_OPEN_BY_PATH 31 +#define CODA_RESOLVE 32 +#define CODA_REINTEGRATE 33 +#define CODA_STATFS 34 +#define CODA_STORE 35 +#define CODA_RELEASE 36 +#define CODA_NCALLS 37 + +#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID) + +#define VC_MAXDATASIZE 8192 +#define VC_MAXMSGSIZE sizeof(union inputArgs)+sizeof(union outputArgs) +\ + VC_MAXDATASIZE + +#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t) + +#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ + +/* + * Venus <-> Coda RPC arguments + */ +struct coda_in_hdr { + u_int32_t opcode; + u_int32_t unique; /* Keep multiple outstanding msgs distinct */ + pid_t pid; + pid_t pgid; + vuid_t uid; +}; + +/* Really important that opcode and unique are 1st two fields! */ +struct coda_out_hdr { + u_int32_t opcode; + u_int32_t unique; + u_int32_t result; +}; + +/* coda_root: NO_IN */ +struct coda_root_out { + struct coda_out_hdr oh; + struct CodaFid VFid; +}; + +struct coda_root_in { + struct coda_in_hdr in; +}; + +/* coda_open: */ +struct coda_open_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_open_out { + struct coda_out_hdr oh; + cdev_t dev; + ino_t inode; +}; + + +/* coda_store: */ +struct coda_store_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_store_out { + struct coda_out_hdr out; +}; + +/* coda_release: */ +struct coda_release_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_release_out { + struct coda_out_hdr out; +}; + +/* coda_close: */ +struct coda_close_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_close_out { + struct coda_out_hdr out; +}; + +/* coda_ioctl: */ +struct coda_ioctl_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int cmd; + int len; + int rwflag; + char *data; /* Place holder for data. */ +}; + +struct coda_ioctl_out { + struct coda_out_hdr oh; + int len; + caddr_t data; /* Place holder for data. */ +}; + + +/* coda_getattr: */ +struct coda_getattr_in { + struct coda_in_hdr ih; + struct CodaFid VFid; +}; + +struct coda_getattr_out { + struct coda_out_hdr oh; + struct coda_vattr attr; +}; + + +/* coda_setattr: NO_OUT */ +struct coda_setattr_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + struct coda_vattr attr; +}; + +struct coda_setattr_out { + struct coda_out_hdr out; +}; + +/* coda_access: NO_OUT */ +struct coda_access_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_access_out { + struct coda_out_hdr out; +}; + + +/* lookup flags */ +#define CLU_CASE_SENSITIVE 0x01 +#define CLU_CASE_INSENSITIVE 0x02 + +/* coda_lookup: */ +struct coda_lookup_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int name; /* Place holder for data. */ + int flags; +}; + +struct coda_lookup_out { + struct coda_out_hdr oh; + struct CodaFid VFid; + int vtype; +}; + + +/* coda_create: */ +struct coda_create_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + struct coda_vattr attr; + int excl; + int mode; + int name; /* Place holder for data. */ +}; + +struct coda_create_out { + struct coda_out_hdr oh; + struct CodaFid VFid; + struct coda_vattr attr; +}; + + +/* coda_remove: NO_OUT */ +struct coda_remove_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int name; /* Place holder for data. */ +}; + +struct coda_remove_out { + struct coda_out_hdr out; +}; + +/* coda_link: NO_OUT */ +struct coda_link_in { + struct coda_in_hdr ih; + struct CodaFid sourceFid; /* cnode to link *to* */ + struct CodaFid destFid; /* Directory in which to place link */ + int tname; /* Place holder for data. */ +}; + +struct coda_link_out { + struct coda_out_hdr out; +}; + + +/* coda_rename: NO_OUT */ +struct coda_rename_in { + struct coda_in_hdr ih; + struct CodaFid sourceFid; + int srcname; + struct CodaFid destFid; + int destname; +}; + +struct coda_rename_out { + struct coda_out_hdr out; +}; + +/* coda_mkdir: */ +struct coda_mkdir_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + struct coda_vattr attr; + int name; /* Place holder for data. */ +}; + +struct coda_mkdir_out { + struct coda_out_hdr oh; + struct CodaFid VFid; + struct coda_vattr attr; +}; + + +/* coda_rmdir: NO_OUT */ +struct coda_rmdir_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int name; /* Place holder for data. */ +}; + +struct coda_rmdir_out { + struct coda_out_hdr out; +}; + +/* coda_symlink: NO_OUT */ +struct coda_symlink_in { + struct coda_in_hdr ih; + struct CodaFid VFid; /* Directory to put symlink in */ + int srcname; + struct coda_vattr attr; + int tname; +}; + +struct coda_symlink_out { + struct coda_out_hdr out; +}; + +/* coda_readlink: */ +struct coda_readlink_in { + struct coda_in_hdr ih; + struct CodaFid VFid; +}; + +struct coda_readlink_out { + struct coda_out_hdr oh; + int count; + caddr_t data; /* Place holder for data. */ +}; + + +/* coda_fsync: NO_OUT */ +struct coda_fsync_in { + struct coda_in_hdr ih; + struct CodaFid VFid; +}; + +struct coda_fsync_out { + struct coda_out_hdr out; +}; + +/* coda_vget: */ +struct coda_vget_in { + struct coda_in_hdr ih; + struct CodaFid VFid; +}; + +struct coda_vget_out { + struct coda_out_hdr oh; + struct CodaFid VFid; + int vtype; +}; + + +/* CODA_SIGNAL is out-of-band, doesn't need data. */ +/* CODA_INVALIDATE is a venus->kernel call */ +/* CODA_FLUSH is a venus->kernel call */ + +/* coda_purgeuser: */ +/* CODA_PURGEUSER is a venus->kernel call */ +struct coda_purgeuser_out { + struct coda_out_hdr oh; + vuid_t uid; +}; + +/* coda_zapfile: */ +/* CODA_ZAPFILE is a venus->kernel call */ +struct coda_zapfile_out { + struct coda_out_hdr oh; + struct CodaFid CodaFid; +}; + +/* coda_zapdir: */ +/* CODA_ZAPDIR is a venus->kernel call */ +struct coda_zapdir_out { + struct coda_out_hdr oh; + struct CodaFid CodaFid; +}; + +/* coda_purgefid: */ +/* CODA_PURGEFID is a venus->kernel call */ +struct coda_purgefid_out { + struct coda_out_hdr oh; + struct CodaFid CodaFid; +}; + +/* coda_replace: */ +/* CODA_REPLACE is a venus->kernel call */ +struct coda_replace_out { /* coda_replace is a venus->kernel call */ + struct coda_out_hdr oh; + struct CodaFid NewFid; + struct CodaFid OldFid; +}; + +/* coda_open_by_fd: */ +struct coda_open_by_fd_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_open_by_fd_out { + struct coda_out_hdr oh; + int fd; + +}; + +/* coda_open_by_path: */ +struct coda_open_by_path_in { + struct coda_in_hdr ih; + struct CodaFid VFid; + int flags; +}; + +struct coda_open_by_path_out { + struct coda_out_hdr oh; + int path; +}; + +/* coda_statfs: NO_IN */ +struct coda_statfs_in { + struct coda_in_hdr in; +}; + +struct coda_statfs_out { + struct coda_out_hdr oh; + struct coda_statfs stat; +}; + +/* + * Occasionally, we don't cache the fid returned by CODA_LOOKUP. + * For instance, if the fid is inconsistent. + * This case is handled by setting the top bit of the type result parameter. + */ +#define CODA_NOCACHE 0x80000000 + +union inputArgs { + struct coda_in_hdr ih; /* NB: every struct below begins with an ih */ + struct coda_open_in coda_open; + struct coda_store_in coda_store; + struct coda_release_in coda_release; + struct coda_close_in coda_close; + struct coda_ioctl_in coda_ioctl; + struct coda_getattr_in coda_getattr; + struct coda_setattr_in coda_setattr; + struct coda_access_in coda_access; + struct coda_lookup_in coda_lookup; + struct coda_create_in coda_create; + struct coda_remove_in coda_remove; + struct coda_link_in coda_link; + struct coda_rename_in coda_rename; + struct coda_mkdir_in coda_mkdir; + struct coda_rmdir_in coda_rmdir; + struct coda_symlink_in coda_symlink; + struct coda_readlink_in coda_readlink; + struct coda_fsync_in coda_fsync; + struct coda_vget_in coda_vget; + struct coda_open_by_fd_in coda_open_by_fd; + struct coda_open_by_path_in coda_open_by_path; + struct coda_statfs_in coda_statfs; +}; + +union outputArgs { + struct coda_out_hdr oh; /* NB: every struct below begins with an oh */ + struct coda_root_out coda_root; + struct coda_open_out coda_open; + struct coda_ioctl_out coda_ioctl; + struct coda_getattr_out coda_getattr; + struct coda_lookup_out coda_lookup; + struct coda_create_out coda_create; + struct coda_mkdir_out coda_mkdir; + struct coda_readlink_out coda_readlink; + struct coda_vget_out coda_vget; + struct coda_purgeuser_out coda_purgeuser; + struct coda_zapfile_out coda_zapfile; + struct coda_zapdir_out coda_zapdir; + struct coda_purgefid_out coda_purgefid; + struct coda_replace_out coda_replace; + struct coda_open_by_fd_out coda_open_by_fd; + struct coda_open_by_path_out coda_open_by_path; + struct coda_statfs_out coda_statfs; +}; + +union coda_downcalls { + /* CODA_INVALIDATE is a venus->kernel call */ + /* CODA_FLUSH is a venus->kernel call */ + struct coda_purgeuser_out purgeuser; + struct coda_zapfile_out zapfile; + struct coda_zapdir_out zapdir; + struct coda_purgefid_out purgefid; + struct coda_replace_out replace; +}; + + +/* + * Used for identifying usage of "Control" and pioctls + */ + +#define PIOCPARM_MASK 0x0000ffff +struct ViceIoctl { + void *in; /* Data to be transferred in */ + void *out; /* Data to be transferred out */ + u_short in_size; /* Size of input buffer <= 2K */ + u_short out_size; /* Maximum size of output buffer, <= 2K */ +}; + +struct PioctlData { + const char *path; + int follow; + struct ViceIoctl vi; +}; + +#define CODA_CONTROL ".CONTROL" +#define CODA_CONTROLLEN 8 +#define CTL_INO -1 + +/* Data passed to mount */ + +#define CODA_MOUNT_VERSION 1 + +struct coda_mount_data { + int version; + int fd; /* Opened device */ +}; + +#endif /* _CODA_HEADER_ */ diff --git a/kernel_headers/linux/coda_psdev.h b/kernel_headers/linux/coda_psdev.h new file mode 100644 index 0000000..46e12d8 --- /dev/null +++ b/kernel_headers/linux/coda_psdev.h @@ -0,0 +1,27 @@ +#ifndef __CODA_PSDEV_H +#define __CODA_PSDEV_H + +#include + +#define CODA_PSDEV_MAJOR 67 +#define MAX_CODADEVS 5 /* how many do we allow */ + + +/* messages between coda filesystem in kernel and Venus */ +struct upc_req { + struct list_head uc_chain; + caddr_t uc_data; + u_short uc_flags; + u_short uc_inSize; /* Size is at most 5000 bytes */ + u_short uc_outSize; + u_short uc_opcode; /* copied from data to save lookup */ + int uc_unique; + wait_queue_head_t uc_sleep; /* process' wait queue */ +}; + +#define CODA_REQ_ASYNC 0x1 +#define CODA_REQ_READ 0x2 +#define CODA_REQ_WRITE 0x4 +#define CODA_REQ_ABORT 0x8 + +#endif /* __CODA_PSDEV_H */ diff --git a/kernel_headers/linux/coff.h b/kernel_headers/linux/coff.h new file mode 100644 index 0000000..6354a7f --- /dev/null +++ b/kernel_headers/linux/coff.h @@ -0,0 +1,351 @@ +/* This file is derived from the GAS 2.1.4 assembler control file. + The GAS product is under the GNU General Public License, version 2 or later. + As such, this file is also under that license. + + If the file format changes in the COFF object, this file should be + subsequently updated to reflect the changes. + + The actual loader module only uses a few of these structures. The full + set is documented here because I received the full set. If you wish + more information about COFF, then O'Reilly has a very excellent book. +*/ + +#define E_SYMNMLEN 8 /* Number of characters in a symbol name */ +#define E_FILNMLEN 14 /* Number of characters in a file name */ +#define E_DIMNUM 4 /* Number of array dimensions in auxiliary entry */ + +/* + * These defines are byte order independent. There is no alignment of fields + * permitted in the structures. Therefore they are declared as characters + * and the values loaded from the character positions. It also makes it + * nice to have it "endian" independent. + */ + +/* Load a short int from the following tables with little-endian formats */ +#define COFF_SHORT_L(ps) ((short)(((unsigned short)((unsigned char)ps[1])<<8)|\ + ((unsigned short)((unsigned char)ps[0])))) + +/* Load a long int from the following tables with little-endian formats */ +#define COFF_LONG_L(ps) (((long)(((unsigned long)((unsigned char)ps[3])<<24) |\ + ((unsigned long)((unsigned char)ps[2])<<16) |\ + ((unsigned long)((unsigned char)ps[1])<<8) |\ + ((unsigned long)((unsigned char)ps[0]))))) + +/* Load a short int from the following tables with big-endian formats */ +#define COFF_SHORT_H(ps) ((short)(((unsigned short)((unsigned char)ps[0])<<8)|\ + ((unsigned short)((unsigned char)ps[1])))) + +/* Load a long int from the following tables with big-endian formats */ +#define COFF_LONG_H(ps) (((long)(((unsigned long)((unsigned char)ps[0])<<24) |\ + ((unsigned long)((unsigned char)ps[1])<<16) |\ + ((unsigned long)((unsigned char)ps[2])<<8) |\ + ((unsigned long)((unsigned char)ps[3]))))) + +/* These may be overridden later by brain dead implementations which generate + a big-endian header with little-endian data. In that case, generate a + replacement macro which tests a flag and uses either of the two above + as appropriate. */ + +#define COFF_LONG(v) COFF_LONG_L(v) +#define COFF_SHORT(v) COFF_SHORT_L(v) + +/*** coff information for Intel 386/486. */ + +/********************** FILE HEADER **********************/ + +struct COFF_filehdr { + char f_magic[2]; /* magic number */ + char f_nscns[2]; /* number of sections */ + char f_timdat[4]; /* time & date stamp */ + char f_symptr[4]; /* file pointer to symtab */ + char f_nsyms[4]; /* number of symtab entries */ + char f_opthdr[2]; /* sizeof(optional hdr) */ + char f_flags[2]; /* flags */ +}; + +/* + * Bits for f_flags: + * + * F_RELFLG relocation info stripped from file + * F_EXEC file is executable (i.e. no unresolved external + * references) + * F_LNNO line numbers stripped from file + * F_LSYMS local symbols stripped from file + * F_MINMAL this is a minimal object file (".m") output of fextract + * F_UPDATE this is a fully bound update file, output of ogen + * F_SWABD this file has had its bytes swabbed (in names) + * F_AR16WR this file has the byte ordering of an AR16WR + * (e.g. 11/70) machine + * F_AR32WR this file has the byte ordering of an AR32WR machine + * (e.g. vax and iNTEL 386) + * F_AR32W this file has the byte ordering of an AR32W machine + * (e.g. 3b,maxi) + * F_PATCH file contains "patch" list in optional header + * F_NODF (minimal file only) no decision functions for + * replaced functions + */ + +#define COFF_F_RELFLG 0000001 +#define COFF_F_EXEC 0000002 +#define COFF_F_LNNO 0000004 +#define COFF_F_LSYMS 0000010 +#define COFF_F_MINMAL 0000020 +#define COFF_F_UPDATE 0000040 +#define COFF_F_SWABD 0000100 +#define COFF_F_AR16WR 0000200 +#define COFF_F_AR32WR 0000400 +#define COFF_F_AR32W 0001000 +#define COFF_F_PATCH 0002000 +#define COFF_F_NODF 0002000 + +#define COFF_I386MAGIC 0x14c /* Linux's system */ + +#if 0 /* Perhaps, someday, these formats may be used. */ +#define COFF_I386PTXMAGIC 0x154 +#define COFF_I386AIXMAGIC 0x175 /* IBM's AIX system */ +#define COFF_I386BADMAG(x) ((COFF_SHORT((x).f_magic) != COFF_I386MAGIC) \ + && COFF_SHORT((x).f_magic) != COFF_I386PTXMAGIC \ + && COFF_SHORT((x).f_magic) != COFF_I386AIXMAGIC) +#else +#define COFF_I386BADMAG(x) (COFF_SHORT((x).f_magic) != COFF_I386MAGIC) +#endif + +#define COFF_FILHDR struct COFF_filehdr +#define COFF_FILHSZ sizeof(COFF_FILHDR) + +/********************** AOUT "OPTIONAL HEADER" **********************/ + +/* Linux COFF must have this "optional" header. Standard COFF has no entry + location for the "entry" point. They normally would start with the first + location of the .text section. This is not a good idea for linux. So, + the use of this "optional" header is not optional. It is required. + + Do not be tempted to assume that the size of the optional header is + a constant and simply index the next byte by the size of this structure. + Use the 'f_opthdr' field in the main coff header for the size of the + structure actually written to the file!! +*/ + +typedef struct +{ + char magic[2]; /* type of file */ + char vstamp[2]; /* version stamp */ + char tsize[4]; /* text size in bytes, padded to FW bdry */ + char dsize[4]; /* initialized data " " */ + char bsize[4]; /* uninitialized data " " */ + char entry[4]; /* entry pt. */ + char text_start[4]; /* base of text used for this file */ + char data_start[4]; /* base of data used for this file */ +} +COFF_AOUTHDR; + +#define COFF_AOUTSZ (sizeof(COFF_AOUTHDR)) + +#define COFF_STMAGIC 0401 +#define COFF_OMAGIC 0404 +#define COFF_JMAGIC 0407 /* dirty text and data image, can't share */ +#define COFF_DMAGIC 0410 /* dirty text segment, data aligned */ +#define COFF_ZMAGIC 0413 /* The proper magic number for executables */ +#define COFF_SHMAGIC 0443 /* shared library header */ + +/********************** SECTION HEADER **********************/ + +struct COFF_scnhdr { + char s_name[8]; /* section name */ + char s_paddr[4]; /* physical address, aliased s_nlib */ + char s_vaddr[4]; /* virtual address */ + char s_size[4]; /* section size */ + char s_scnptr[4]; /* file ptr to raw data for section */ + char s_relptr[4]; /* file ptr to relocation */ + char s_lnnoptr[4]; /* file ptr to line numbers */ + char s_nreloc[2]; /* number of relocation entries */ + char s_nlnno[2]; /* number of line number entries */ + char s_flags[4]; /* flags */ +}; + +#define COFF_SCNHDR struct COFF_scnhdr +#define COFF_SCNHSZ sizeof(COFF_SCNHDR) + +/* + * names of "special" sections + */ + +#define COFF_TEXT ".text" +#define COFF_DATA ".data" +#define COFF_BSS ".bss" +#define COFF_COMMENT ".comment" +#define COFF_LIB ".lib" + +#define COFF_SECT_TEXT 0 /* Section for instruction code */ +#define COFF_SECT_DATA 1 /* Section for initialized globals */ +#define COFF_SECT_BSS 2 /* Section for un-initialized globals */ +#define COFF_SECT_REQD 3 /* Minimum number of sections for good file */ + +#define COFF_STYP_REG 0x00 /* regular segment */ +#define COFF_STYP_DSECT 0x01 /* dummy segment */ +#define COFF_STYP_NOLOAD 0x02 /* no-load segment */ +#define COFF_STYP_GROUP 0x04 /* group segment */ +#define COFF_STYP_PAD 0x08 /* .pad segment */ +#define COFF_STYP_COPY 0x10 /* copy section */ +#define COFF_STYP_TEXT 0x20 /* .text segment */ +#define COFF_STYP_DATA 0x40 /* .data segment */ +#define COFF_STYP_BSS 0x80 /* .bss segment */ +#define COFF_STYP_INFO 0x200 /* .comment section */ +#define COFF_STYP_OVER 0x400 /* overlay section */ +#define COFF_STYP_LIB 0x800 /* library section */ + +/* + * Shared libraries have the following section header in the data field for + * each library. + */ + +struct COFF_slib { + char sl_entsz[4]; /* Size of this entry */ + char sl_pathndx[4]; /* size of the header field */ +}; + +#define COFF_SLIBHD struct COFF_slib +#define COFF_SLIBSZ sizeof(COFF_SLIBHD) + +/********************** LINE NUMBERS **********************/ + +/* 1 line number entry for every "breakpointable" source line in a section. + * Line numbers are grouped on a per function basis; first entry in a function + * grouping will have l_lnno = 0 and in place of physical address will be the + * symbol table index of the function name. + */ + +struct COFF_lineno { + union { + char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ + char l_paddr[4]; /* (physical) address of line number */ + } l_addr; + char l_lnno[2]; /* line number */ +}; + +#define COFF_LINENO struct COFF_lineno +#define COFF_LINESZ 6 + +/********************** SYMBOLS **********************/ + +#define COFF_E_SYMNMLEN 8 /* # characters in a short symbol name */ +#define COFF_E_FILNMLEN 14 /* # characters in a file name */ +#define COFF_E_DIMNUM 4 /* # array dimensions in auxiliary entry */ + +/* + * All symbols and sections have the following definition + */ + +struct COFF_syment +{ + union { + char e_name[E_SYMNMLEN]; /* Symbol name (first 8 characters) */ + struct { + char e_zeroes[4]; /* Leading zeros */ + char e_offset[4]; /* Offset if this is a header section */ + } e; + } e; + + char e_value[4]; /* Value (address) of the segment */ + char e_scnum[2]; /* Section number */ + char e_type[2]; /* Type of section */ + char e_sclass[1]; /* Loader class */ + char e_numaux[1]; /* Number of auxiliary entries which follow */ +}; + +#define COFF_N_BTMASK (0xf) /* Mask for important class bits */ +#define COFF_N_TMASK (0x30) /* Mask for important type bits */ +#define COFF_N_BTSHFT (4) /* # bits to shift class field */ +#define COFF_N_TSHIFT (2) /* # bits to shift type field */ + +/* + * Auxiliary entries because the main table is too limiting. + */ + +union COFF_auxent { + +/* + * Debugger information + */ + + struct { + char x_tagndx[4]; /* str, un, or enum tag indx */ + union { + struct { + char x_lnno[2]; /* declaration line number */ + char x_size[2]; /* str/union/array size */ + } x_lnsz; + char x_fsize[4]; /* size of function */ + } x_misc; + + union { + struct { /* if ISFCN, tag, or .bb */ + char x_lnnoptr[4]; /* ptr to fcn line # */ + char x_endndx[4]; /* entry ndx past block end */ + } x_fcn; + + struct { /* if ISARY, up to 4 dimen. */ + char x_dimen[E_DIMNUM][2]; + } x_ary; + } x_fcnary; + + char x_tvndx[2]; /* tv index */ + } x_sym; + +/* + * Source file names (debugger information) + */ + + union { + char x_fname[E_FILNMLEN]; + struct { + char x_zeroes[4]; + char x_offset[4]; + } x_n; + } x_file; + +/* + * Section information + */ + + struct { + char x_scnlen[4]; /* section length */ + char x_nreloc[2]; /* # relocation entries */ + char x_nlinno[2]; /* # line numbers */ + } x_scn; + +/* + * Transfer vector (branch table) + */ + + struct { + char x_tvfill[4]; /* tv fill value */ + char x_tvlen[2]; /* length of .tv */ + char x_tvran[2][2]; /* tv range */ + } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ +}; + +#define COFF_SYMENT struct COFF_syment +#define COFF_SYMESZ 18 +#define COFF_AUXENT union COFF_auxent +#define COFF_AUXESZ 18 + +#define COFF_ETEXT "etext" + +/********************** RELOCATION DIRECTIVES **********************/ + +struct COFF_reloc { + char r_vaddr[4]; /* Virtual address of item */ + char r_symndx[4]; /* Symbol index in the symtab */ + char r_type[2]; /* Relocation type */ +}; + +#define COFF_RELOC struct COFF_reloc +#define COFF_RELSZ 10 + +#define COFF_DEF_DATA_SECTION_ALIGNMENT 4 +#define COFF_DEF_BSS_SECTION_ALIGNMENT 4 +#define COFF_DEF_TEXT_SECTION_ALIGNMENT 4 + +/* For new sections we haven't heard of before */ +#define COFF_DEF_SECTION_ALIGNMENT 4 diff --git a/kernel_headers/linux/connector.h b/kernel_headers/linux/connector.h new file mode 100644 index 0000000..caf9468 --- /dev/null +++ b/kernel_headers/linux/connector.h @@ -0,0 +1,80 @@ +/* + * connector.h + * + * 2004-2005 Copyright (c) Evgeniy Polyakov + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __CONNECTOR_H +#define __CONNECTOR_H + +#include + +/* + * Process Events connector unique ids -- used for message routing + */ +#define CN_IDX_PROC 0x1 +#define CN_VAL_PROC 0x1 +#define CN_IDX_CIFS 0x2 +#define CN_VAL_CIFS 0x1 +#define CN_W1_IDX 0x3 /* w1 communication */ +#define CN_W1_VAL 0x1 +#define CN_IDX_V86D 0x4 +#define CN_VAL_V86D_UVESAFB 0x1 +#define CN_IDX_BB 0x5 /* BlackBoard, from the TSP GPL sampling framework */ +#define CN_DST_IDX 0x6 +#define CN_DST_VAL 0x1 +#define CN_IDX_DM 0x7 /* Device Mapper */ +#define CN_VAL_DM_USERSPACE_LOG 0x1 +#define CN_IDX_DRBD 0x8 +#define CN_VAL_DRBD 0x1 +#define CN_KVP_IDX 0x9 /* HyperV KVP */ +#define CN_KVP_VAL 0x1 /* queries from the kernel */ +#define CN_VSS_IDX 0xA /* HyperV VSS */ +#define CN_VSS_VAL 0x1 /* queries from the kernel */ + + +#define CN_NETLINK_USERS 11 /* Highest index + 1 */ + +/* + * Maximum connector's message size. + */ +#define CONNECTOR_MAX_MSG_SIZE 16384 + +/* + * idx and val are unique identifiers which + * are used for message routing and + * must be registered in connector.h for in-kernel usage. + */ + +struct cb_id { + __u32 idx; + __u32 val; +}; + +struct cn_msg { + struct cb_id id; + + __u32 seq; + __u32 ack; + + __u16 len; /* Length of the following data */ + __u16 flags; + __u8 data[0]; +}; + +#endif /* __CONNECTOR_H */ diff --git a/kernel_headers/linux/const.h b/kernel_headers/linux/const.h new file mode 100644 index 0000000..c22c707 --- /dev/null +++ b/kernel_headers/linux/const.h @@ -0,0 +1,24 @@ +/* const.h: Macros for dealing with constants. */ + +#ifndef _LINUX_CONST_H +#define _LINUX_CONST_H + +/* Some constant macros are used in both assembler and + * C code. Therefore we cannot annotate them always with + * 'UL' and other type specifiers unilaterally. We + * use the following macros to deal with this. + * + * Similarly, _AT() will cast an expression with a type in C, but + * leave it unchanged in asm. + */ + +#ifdef __ASSEMBLY__ +#define _AC(X,Y) X +#define _AT(T,X) X +#else +#define __AC(X,Y) (X##Y) +#define _AC(X,Y) __AC(X,Y) +#define _AT(T,X) ((T)(X)) +#endif + +#endif /* !(_LINUX_CONST_H) */ diff --git a/kernel_headers/linux/coresight-stm.h b/kernel_headers/linux/coresight-stm.h new file mode 100644 index 0000000..164890e --- /dev/null +++ b/kernel_headers/linux/coresight-stm.h @@ -0,0 +1,21 @@ +#ifndef __UAPI_CORESIGHT_STM_H_ +#define __UAPI_CORESIGHT_STM_H_ + +enum { + OST_ENTITY_NONE = 0x00, + OST_ENTITY_FTRACE_EVENTS = 0x01, + OST_ENTITY_TRACE_PRINTK = 0x02, + OST_ENTITY_TRACE_MARKER = 0x04, + OST_ENTITY_DEV_NODE = 0x08, + OST_ENTITY_DIAG = 0xEE, + OST_ENTITY_QVIEW = 0xFE, + OST_ENTITY_MAX = 0xFF, +}; + +enum { + STM_OPTION_NONE = 0x0, + STM_OPTION_TIMESTAMPED = 0x08, + STM_OPTION_GUARANTEED = 0x80, +}; + +#endif diff --git a/kernel_headers/linux/cramfs_fs.h b/kernel_headers/linux/cramfs_fs.h new file mode 100644 index 0000000..9cada1a --- /dev/null +++ b/kernel_headers/linux/cramfs_fs.h @@ -0,0 +1,88 @@ +#ifndef __CRAMFS_H +#define __CRAMFS_H + +#include +#include + +#define CRAMFS_SIGNATURE "Compressed ROMFS" + +/* + * Width of various bitfields in struct cramfs_inode. + * Primarily used to generate warnings in mkcramfs. + */ +#define CRAMFS_MODE_WIDTH 16 +#define CRAMFS_UID_WIDTH 16 +#define CRAMFS_SIZE_WIDTH 24 +#define CRAMFS_GID_WIDTH 8 +#define CRAMFS_NAMELEN_WIDTH 6 +#define CRAMFS_OFFSET_WIDTH 26 + +/* + * Since inode.namelen is a unsigned 6-bit number, the maximum cramfs + * path length is 63 << 2 = 252. + */ +#define CRAMFS_MAXPATHLEN (((1 << CRAMFS_NAMELEN_WIDTH) - 1) << 2) + +/* + * Reasonably terse representation of the inode data. + */ +struct cramfs_inode { + __u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH; + /* SIZE for device files is i_rdev */ + __u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH; + /* NAMELEN is the length of the file name, divided by 4 and + rounded up. (cramfs doesn't support hard links.) */ + /* OFFSET: For symlinks and non-empty regular files, this + contains the offset (divided by 4) of the file data in + compressed form (starting with an array of block pointers; + see README). For non-empty directories it is the offset + (divided by 4) of the inode of the first file in that + directory. For anything else, offset is zero. */ + __u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH; +}; + +struct cramfs_info { + __u32 crc; + __u32 edition; + __u32 blocks; + __u32 files; +}; + +/* + * Superblock information at the beginning of the FS. + */ +struct cramfs_super { + __u32 magic; /* 0x28cd3d45 - random number */ + __u32 size; /* length in bytes */ + __u32 flags; /* feature flags */ + __u32 future; /* reserved for future use */ + __u8 signature[16]; /* "Compressed ROMFS" */ + struct cramfs_info fsid; /* unique filesystem info */ + __u8 name[16]; /* user-defined name */ + struct cramfs_inode root; /* root inode data */ +}; + +/* + * Feature flags + * + * 0x00000000 - 0x000000ff: features that work for all past kernels + * 0x00000100 - 0xffffffff: features that don't work for past kernels + */ +#define CRAMFS_FLAG_FSID_VERSION_2 0x00000001 /* fsid version #2 */ +#define CRAMFS_FLAG_SORTED_DIRS 0x00000002 /* sorted dirs */ +#define CRAMFS_FLAG_HOLES 0x00000100 /* support for holes */ +#define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200 /* reserved */ +#define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400 /* shifted root fs */ + +/* + * Valid values in super.flags. Currently we refuse to mount + * if (flags & ~CRAMFS_SUPPORTED_FLAGS). Maybe that should be + * changed to test super.future instead. + */ +#define CRAMFS_SUPPORTED_FLAGS ( 0x000000ff \ + | CRAMFS_FLAG_HOLES \ + | CRAMFS_FLAG_WRONG_SIGNATURE \ + | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET ) + + +#endif /* __CRAMFS_H */ diff --git a/kernel_headers/linux/cuda.h b/kernel_headers/linux/cuda.h new file mode 100644 index 0000000..83d9f93 --- /dev/null +++ b/kernel_headers/linux/cuda.h @@ -0,0 +1,33 @@ +/* + * Definitions for talking to the CUDA. The CUDA is a microcontroller + * which controls the ADB, system power, RTC, and various other things. + * + * Copyright (C) 1996 Paul Mackerras. + */ + +#ifndef _LINUX_CUDA_H +#define _LINUX_CUDA_H + +/* CUDA commands (2nd byte) */ +#define CUDA_WARM_START 0 +#define CUDA_AUTOPOLL 1 +#define CUDA_GET_6805_ADDR 2 +#define CUDA_GET_TIME 3 +#define CUDA_GET_PRAM 7 +#define CUDA_SET_6805_ADDR 8 +#define CUDA_SET_TIME 9 +#define CUDA_POWERDOWN 0xa +#define CUDA_POWERUP_TIME 0xb +#define CUDA_SET_PRAM 0xc +#define CUDA_MS_RESET 0xd +#define CUDA_SEND_DFAC 0xe +#define CUDA_RESET_SYSTEM 0x11 +#define CUDA_SET_IPL 0x12 +#define CUDA_SET_AUTO_RATE 0x14 +#define CUDA_GET_AUTO_RATE 0x16 +#define CUDA_SET_DEVICE_LIST 0x19 +#define CUDA_GET_DEVICE_LIST 0x1a +#define CUDA_GET_SET_IIC 0x22 + + +#endif /* _LINUX_CUDA_H */ diff --git a/kernel_headers/linux/cyclades.h b/kernel_headers/linux/cyclades.h new file mode 100644 index 0000000..145e3c8 --- /dev/null +++ b/kernel_headers/linux/cyclades.h @@ -0,0 +1,493 @@ +/* $Revision: 3.0 $$Date: 1998/11/02 14:20:59 $ + * linux/include/linux/cyclades.h + * + * This file was initially written by + * Randolph Bentson and is maintained by + * Ivan Passos . + * + * This file contains the general definitions for the cyclades.c driver + *$Log: cyclades.h,v $ + *Revision 3.1 2002/01/29 11:36:16 henrique + *added throttle field on struct cyclades_port to indicate whether the + *port is throttled or not + * + *Revision 3.1 2000/04/19 18:52:52 ivan + *converted address fields to unsigned long and added fields for physical + *addresses on cyclades_card structure; + * + *Revision 3.0 1998/11/02 14:20:59 ivan + *added nports field on cyclades_card structure; + * + *Revision 2.5 1998/08/03 16:57:01 ivan + *added cyclades_idle_stats structure; + * + *Revision 2.4 1998/06/01 12:09:53 ivan + *removed closing_wait2 from cyclades_port structure; + * + *Revision 2.3 1998/03/16 18:01:12 ivan + *changes in the cyclades_port structure to get it closer to the + *standard serial port structure; + *added constants for new ioctls; + * + *Revision 2.2 1998/02/17 16:50:00 ivan + *changes in the cyclades_port structure (addition of shutdown_wait and + *chip_rev variables); + *added constants for new ioctls and for CD1400 rev. numbers. + * + *Revision 2.1 1997/10/24 16:03:00 ivan + *added rflow (which allows enabling the CD1400 special flow control + *feature) and rtsdtr_inv (which allows DTR/RTS pin inversion) to + *cyclades_port structure; + *added Alpha support + * + *Revision 2.0 1997/06/30 10:30:00 ivan + *added some new doorbell command constants related to IOCTLW and + *UART error signaling + * + *Revision 1.8 1997/06/03 15:30:00 ivan + *added constant ZFIRM_HLT + *added constant CyPCI_Ze_win ( = 2 * Cy_PCI_Zwin) + * + *Revision 1.7 1997/03/26 10:30:00 daniel + *new entries at the end of cyclades_port struct to reallocate + *variables illegally allocated within card memory. + * + *Revision 1.6 1996/09/09 18:35:30 bentson + *fold in changes for Cyclom-Z -- including structures for + *communicating with board as well modest changes to original + *structures to support new features. + * + *Revision 1.5 1995/11/13 21:13:31 bentson + *changes suggested by Michael Chastain + *to support use of this file in non-kernel applications + * + * + */ + +#ifndef _LINUX_CYCLADES_H +#define _LINUX_CYCLADES_H + +#include + +struct cyclades_monitor { + unsigned long int_count; + unsigned long char_count; + unsigned long char_max; + unsigned long char_last; +}; + +/* + * These stats all reflect activity since the device was last initialized. + * (i.e., since the port was opened with no other processes already having it + * open) + */ +struct cyclades_idle_stats { + __kernel_time_t in_use; /* Time device has been in use (secs) */ + __kernel_time_t recv_idle; /* Time since last char received (secs) */ + __kernel_time_t xmit_idle; /* Time since last char transmitted (secs) */ + unsigned long recv_bytes; /* Bytes received */ + unsigned long xmit_bytes; /* Bytes transmitted */ + unsigned long overruns; /* Input overruns */ + unsigned long frame_errs; /* Input framing errors */ + unsigned long parity_errs; /* Input parity errors */ +}; + +#define CYCLADES_MAGIC 0x4359 + +#define CYGETMON 0x435901 +#define CYGETTHRESH 0x435902 +#define CYSETTHRESH 0x435903 +#define CYGETDEFTHRESH 0x435904 +#define CYSETDEFTHRESH 0x435905 +#define CYGETTIMEOUT 0x435906 +#define CYSETTIMEOUT 0x435907 +#define CYGETDEFTIMEOUT 0x435908 +#define CYSETDEFTIMEOUT 0x435909 +#define CYSETRFLOW 0x43590a +#define CYGETRFLOW 0x43590b +#define CYSETRTSDTR_INV 0x43590c +#define CYGETRTSDTR_INV 0x43590d +#define CYZSETPOLLCYCLE 0x43590e +#define CYZGETPOLLCYCLE 0x43590f +#define CYGETCD1400VER 0x435910 +#define CYSETWAIT 0x435912 +#define CYGETWAIT 0x435913 + +/*************** CYCLOM-Z ADDITIONS ***************/ + +#define CZIOC ('M' << 8) +#define CZ_NBOARDS (CZIOC|0xfa) +#define CZ_BOOT_START (CZIOC|0xfb) +#define CZ_BOOT_DATA (CZIOC|0xfc) +#define CZ_BOOT_END (CZIOC|0xfd) +#define CZ_TEST (CZIOC|0xfe) + +#define CZ_DEF_POLL (HZ/25) + +#define MAX_BOARD 4 /* Max number of boards */ +#define MAX_DEV 256 /* Max number of ports total */ +#define CYZ_MAX_SPEED 921600 + +#define CYZ_FIFO_SIZE 16 + +#define CYZ_BOOT_NWORDS 0x100 +struct CYZ_BOOT_CTRL { + unsigned short nboard; + int status[MAX_BOARD]; + int nchannel[MAX_BOARD]; + int fw_rev[MAX_BOARD]; + unsigned long offset; + unsigned long data[CYZ_BOOT_NWORDS]; +}; + + +#ifndef DP_WINDOW_SIZE +/* + * Memory Window Sizes + */ + +#define DP_WINDOW_SIZE (0x00080000) /* window size 512 Kb */ +#define ZE_DP_WINDOW_SIZE (0x00100000) /* window size 1 Mb (Ze and + 8Zo V.2 */ +#define CTRL_WINDOW_SIZE (0x00000080) /* runtime regs 128 bytes */ + +/* + * CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver + * normally will access only interested on the fpga_id, fpga_version, + * start_cpu and stop_cpu. + */ + +struct CUSTOM_REG { + __u32 fpga_id; /* FPGA Identification Register */ + __u32 fpga_version; /* FPGA Version Number Register */ + __u32 cpu_start; /* CPU start Register (write) */ + __u32 cpu_stop; /* CPU stop Register (write) */ + __u32 misc_reg; /* Miscellaneous Register */ + __u32 idt_mode; /* IDT mode Register */ + __u32 uart_irq_status; /* UART IRQ status Register */ + __u32 clear_timer0_irq; /* Clear timer interrupt Register */ + __u32 clear_timer1_irq; /* Clear timer interrupt Register */ + __u32 clear_timer2_irq; /* Clear timer interrupt Register */ + __u32 test_register; /* Test Register */ + __u32 test_count; /* Test Count Register */ + __u32 timer_select; /* Timer select register */ + __u32 pr_uart_irq_status; /* Prioritized UART IRQ stat Reg */ + __u32 ram_wait_state; /* RAM wait-state Register */ + __u32 uart_wait_state; /* UART wait-state Register */ + __u32 timer_wait_state; /* timer wait-state Register */ + __u32 ack_wait_state; /* ACK wait State Register */ +}; + +/* + * RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime + * registers. This structure can be used to access the 9060 registers + * (memory mapped). + */ + +struct RUNTIME_9060 { + __u32 loc_addr_range; /* 00h - Local Address Range */ + __u32 loc_addr_base; /* 04h - Local Address Base */ + __u32 loc_arbitr; /* 08h - Local Arbitration */ + __u32 endian_descr; /* 0Ch - Big/Little Endian Descriptor */ + __u32 loc_rom_range; /* 10h - Local ROM Range */ + __u32 loc_rom_base; /* 14h - Local ROM Base */ + __u32 loc_bus_descr; /* 18h - Local Bus descriptor */ + __u32 loc_range_mst; /* 1Ch - Local Range for Master to PCI */ + __u32 loc_base_mst; /* 20h - Local Base for Master PCI */ + __u32 loc_range_io; /* 24h - Local Range for Master IO */ + __u32 pci_base_mst; /* 28h - PCI Base for Master PCI */ + __u32 pci_conf_io; /* 2Ch - PCI configuration for Master IO */ + __u32 filler1; /* 30h */ + __u32 filler2; /* 34h */ + __u32 filler3; /* 38h */ + __u32 filler4; /* 3Ch */ + __u32 mail_box_0; /* 40h - Mail Box 0 */ + __u32 mail_box_1; /* 44h - Mail Box 1 */ + __u32 mail_box_2; /* 48h - Mail Box 2 */ + __u32 mail_box_3; /* 4Ch - Mail Box 3 */ + __u32 filler5; /* 50h */ + __u32 filler6; /* 54h */ + __u32 filler7; /* 58h */ + __u32 filler8; /* 5Ch */ + __u32 pci_doorbell; /* 60h - PCI to Local Doorbell */ + __u32 loc_doorbell; /* 64h - Local to PCI Doorbell */ + __u32 intr_ctrl_stat; /* 68h - Interrupt Control/Status */ + __u32 init_ctrl; /* 6Ch - EEPROM control, Init Control, etc */ +}; + +/* Values for the Local Base Address re-map register */ + +#define WIN_RAM 0x00000001L /* set the sliding window to RAM */ +#define WIN_CREG 0x14000001L /* set the window to custom Registers */ + +/* Values timer select registers */ + +#define TIMER_BY_1M 0x00 /* clock divided by 1M */ +#define TIMER_BY_256K 0x01 /* clock divided by 256k */ +#define TIMER_BY_128K 0x02 /* clock divided by 128k */ +#define TIMER_BY_32K 0x03 /* clock divided by 32k */ + +/****************** ****************** *******************/ +#endif + +#ifndef ZFIRM_ID +/* #include "zfwint.h" */ +/****************** ****************** *******************/ +/* + * This file contains the definitions for interfacing with the + * Cyclom-Z ZFIRM Firmware. + */ + +/* General Constant definitions */ + +#define MAX_CHAN 64 /* max number of channels per board */ + +/* firmware id structure (set after boot) */ + +#define ID_ADDRESS 0x00000180L /* signature/pointer address */ +#define ZFIRM_ID 0x5557465AL /* ZFIRM/U signature */ +#define ZFIRM_HLT 0x59505B5CL /* ZFIRM needs external power supply */ +#define ZFIRM_RST 0x56040674L /* RST signal (due to FW reset) */ + +#define ZF_TINACT_DEF 1000 /* default inactivity timeout + (1000 ms) */ +#define ZF_TINACT ZF_TINACT_DEF + +struct FIRM_ID { + __u32 signature; /* ZFIRM/U signature */ + __u32 zfwctrl_addr; /* pointer to ZFW_CTRL structure */ +}; + +/* Op. System id */ + +#define C_OS_LINUX 0x00000030 /* generic Linux system */ + +/* channel op_mode */ + +#define C_CH_DISABLE 0x00000000 /* channel is disabled */ +#define C_CH_TXENABLE 0x00000001 /* channel Tx enabled */ +#define C_CH_RXENABLE 0x00000002 /* channel Rx enabled */ +#define C_CH_ENABLE 0x00000003 /* channel Tx/Rx enabled */ +#define C_CH_LOOPBACK 0x00000004 /* Loopback mode */ + +/* comm_parity - parity */ + +#define C_PR_NONE 0x00000000 /* None */ +#define C_PR_ODD 0x00000001 /* Odd */ +#define C_PR_EVEN 0x00000002 /* Even */ +#define C_PR_MARK 0x00000004 /* Mark */ +#define C_PR_SPACE 0x00000008 /* Space */ +#define C_PR_PARITY 0x000000ff + +#define C_PR_DISCARD 0x00000100 /* discard char with frame/par error */ +#define C_PR_IGNORE 0x00000200 /* ignore frame/par error */ + +/* comm_data_l - data length and stop bits */ + +#define C_DL_CS5 0x00000001 +#define C_DL_CS6 0x00000002 +#define C_DL_CS7 0x00000004 +#define C_DL_CS8 0x00000008 +#define C_DL_CS 0x0000000f +#define C_DL_1STOP 0x00000010 +#define C_DL_15STOP 0x00000020 +#define C_DL_2STOP 0x00000040 +#define C_DL_STOP 0x000000f0 + +/* interrupt enabling/status */ + +#define C_IN_DISABLE 0x00000000 /* zero, disable interrupts */ +#define C_IN_TXBEMPTY 0x00000001 /* tx buffer empty */ +#define C_IN_TXLOWWM 0x00000002 /* tx buffer below LWM */ +#define C_IN_RXHIWM 0x00000010 /* rx buffer above HWM */ +#define C_IN_RXNNDT 0x00000020 /* rx no new data timeout */ +#define C_IN_MDCD 0x00000100 /* modem DCD change */ +#define C_IN_MDSR 0x00000200 /* modem DSR change */ +#define C_IN_MRI 0x00000400 /* modem RI change */ +#define C_IN_MCTS 0x00000800 /* modem CTS change */ +#define C_IN_RXBRK 0x00001000 /* Break received */ +#define C_IN_PR_ERROR 0x00002000 /* parity error */ +#define C_IN_FR_ERROR 0x00004000 /* frame error */ +#define C_IN_OVR_ERROR 0x00008000 /* overrun error */ +#define C_IN_RXOFL 0x00010000 /* RX buffer overflow */ +#define C_IN_IOCTLW 0x00020000 /* I/O control w/ wait */ +#define C_IN_MRTS 0x00040000 /* modem RTS drop */ +#define C_IN_ICHAR 0x00080000 + +/* flow control */ + +#define C_FL_OXX 0x00000001 /* output Xon/Xoff flow control */ +#define C_FL_IXX 0x00000002 /* output Xon/Xoff flow control */ +#define C_FL_OIXANY 0x00000004 /* output Xon/Xoff (any xon) */ +#define C_FL_SWFLOW 0x0000000f + +/* flow status */ + +#define C_FS_TXIDLE 0x00000000 /* no Tx data in the buffer or UART */ +#define C_FS_SENDING 0x00000001 /* UART is sending data */ +#define C_FS_SWFLOW 0x00000002 /* Tx is stopped by received Xoff */ + +/* rs_control/rs_status RS-232 signals */ + +#define C_RS_PARAM 0x80000000 /* Indicates presence of parameter in + IOCTLM command */ +#define C_RS_RTS 0x00000001 /* RTS */ +#define C_RS_DTR 0x00000004 /* DTR */ +#define C_RS_DCD 0x00000100 /* CD */ +#define C_RS_DSR 0x00000200 /* DSR */ +#define C_RS_RI 0x00000400 /* RI */ +#define C_RS_CTS 0x00000800 /* CTS */ + +/* commands Host <-> Board */ + +#define C_CM_RESET 0x01 /* reset/flush buffers */ +#define C_CM_IOCTL 0x02 /* re-read CH_CTRL */ +#define C_CM_IOCTLW 0x03 /* re-read CH_CTRL, intr when done */ +#define C_CM_IOCTLM 0x04 /* RS-232 outputs change */ +#define C_CM_SENDXOFF 0x10 /* send Xoff */ +#define C_CM_SENDXON 0x11 /* send Xon */ +#define C_CM_CLFLOW 0x12 /* Clear flow control (resume) */ +#define C_CM_SENDBRK 0x41 /* send break */ +#define C_CM_INTBACK 0x42 /* Interrupt back */ +#define C_CM_SET_BREAK 0x43 /* Tx break on */ +#define C_CM_CLR_BREAK 0x44 /* Tx break off */ +#define C_CM_CMD_DONE 0x45 /* Previous command done */ +#define C_CM_INTBACK2 0x46 /* Alternate Interrupt back */ +#define C_CM_TINACT 0x51 /* set inactivity detection */ +#define C_CM_IRQ_ENBL 0x52 /* enable generation of interrupts */ +#define C_CM_IRQ_DSBL 0x53 /* disable generation of interrupts */ +#define C_CM_ACK_ENBL 0x54 /* enable acknowledged interrupt mode */ +#define C_CM_ACK_DSBL 0x55 /* disable acknowledged intr mode */ +#define C_CM_FLUSH_RX 0x56 /* flushes Rx buffer */ +#define C_CM_FLUSH_TX 0x57 /* flushes Tx buffer */ +#define C_CM_Q_ENABLE 0x58 /* enables queue access from the + driver */ +#define C_CM_Q_DISABLE 0x59 /* disables queue access from the + driver */ + +#define C_CM_TXBEMPTY 0x60 /* Tx buffer is empty */ +#define C_CM_TXLOWWM 0x61 /* Tx buffer low water mark */ +#define C_CM_RXHIWM 0x62 /* Rx buffer high water mark */ +#define C_CM_RXNNDT 0x63 /* rx no new data timeout */ +#define C_CM_TXFEMPTY 0x64 +#define C_CM_ICHAR 0x65 +#define C_CM_MDCD 0x70 /* modem DCD change */ +#define C_CM_MDSR 0x71 /* modem DSR change */ +#define C_CM_MRI 0x72 /* modem RI change */ +#define C_CM_MCTS 0x73 /* modem CTS change */ +#define C_CM_MRTS 0x74 /* modem RTS drop */ +#define C_CM_RXBRK 0x84 /* Break received */ +#define C_CM_PR_ERROR 0x85 /* Parity error */ +#define C_CM_FR_ERROR 0x86 /* Frame error */ +#define C_CM_OVR_ERROR 0x87 /* Overrun error */ +#define C_CM_RXOFL 0x88 /* RX buffer overflow */ +#define C_CM_CMDERROR 0x90 /* command error */ +#define C_CM_FATAL 0x91 /* fatal error */ +#define C_CM_HW_RESET 0x92 /* reset board */ + +/* + * CH_CTRL - This per port structure contains all parameters + * that control an specific port. It can be seen as the + * configuration registers of a "super-serial-controller". + */ + +struct CH_CTRL { + __u32 op_mode; /* operation mode */ + __u32 intr_enable; /* interrupt masking */ + __u32 sw_flow; /* SW flow control */ + __u32 flow_status; /* output flow status */ + __u32 comm_baud; /* baud rate - numerically specified */ + __u32 comm_parity; /* parity */ + __u32 comm_data_l; /* data length/stop */ + __u32 comm_flags; /* other flags */ + __u32 hw_flow; /* HW flow control */ + __u32 rs_control; /* RS-232 outputs */ + __u32 rs_status; /* RS-232 inputs */ + __u32 flow_xon; /* xon char */ + __u32 flow_xoff; /* xoff char */ + __u32 hw_overflow; /* hw overflow counter */ + __u32 sw_overflow; /* sw overflow counter */ + __u32 comm_error; /* frame/parity error counter */ + __u32 ichar; + __u32 filler[7]; +}; + + +/* + * BUF_CTRL - This per channel structure contains + * all Tx and Rx buffer control for a given channel. + */ + +struct BUF_CTRL { + __u32 flag_dma; /* buffers are in Host memory */ + __u32 tx_bufaddr; /* address of the tx buffer */ + __u32 tx_bufsize; /* tx buffer size */ + __u32 tx_threshold; /* tx low water mark */ + __u32 tx_get; /* tail index tx buf */ + __u32 tx_put; /* head index tx buf */ + __u32 rx_bufaddr; /* address of the rx buffer */ + __u32 rx_bufsize; /* rx buffer size */ + __u32 rx_threshold; /* rx high water mark */ + __u32 rx_get; /* tail index rx buf */ + __u32 rx_put; /* head index rx buf */ + __u32 filler[5]; /* filler to align structures */ +}; + +/* + * BOARD_CTRL - This per board structure contains all global + * control fields related to the board. + */ + +struct BOARD_CTRL { + + /* static info provided by the on-board CPU */ + __u32 n_channel; /* number of channels */ + __u32 fw_version; /* firmware version */ + + /* static info provided by the driver */ + __u32 op_system; /* op_system id */ + __u32 dr_version; /* driver version */ + + /* board control area */ + __u32 inactivity; /* inactivity control */ + + /* host to FW commands */ + __u32 hcmd_channel; /* channel number */ + __u32 hcmd_param; /* pointer to parameters */ + + /* FW to Host commands */ + __u32 fwcmd_channel; /* channel number */ + __u32 fwcmd_param; /* pointer to parameters */ + __u32 zf_int_queue_addr; /* offset for INT_QUEUE structure */ + + /* filler so the structures are aligned */ + __u32 filler[6]; +}; + +/* Host Interrupt Queue */ + +#define QUEUE_SIZE (10*MAX_CHAN) + +struct INT_QUEUE { + unsigned char intr_code[QUEUE_SIZE]; + unsigned long channel[QUEUE_SIZE]; + unsigned long param[QUEUE_SIZE]; + unsigned long put; + unsigned long get; +}; + +/* + * ZFW_CTRL - This is the data structure that includes all other + * data structures used by the Firmware. + */ + +struct ZFW_CTRL { + struct BOARD_CTRL board_ctrl; + struct CH_CTRL ch_ctrl[MAX_CHAN]; + struct BUF_CTRL buf_ctrl[MAX_CHAN]; +}; + +/****************** ****************** *******************/ +#endif + +#endif /* _LINUX_CYCLADES_H */ diff --git a/kernel_headers/linux/cycx_cfm.h b/kernel_headers/linux/cycx_cfm.h new file mode 100644 index 0000000..032d26e --- /dev/null +++ b/kernel_headers/linux/cycx_cfm.h @@ -0,0 +1,101 @@ +/* +* cycx_cfm.h Cyclom 2X WAN Link Driver. +* Definitions for the Cyclom 2X Firmware Module (CFM). +* +* Author: Arnaldo Carvalho de Melo +* +* Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo +* +* Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com> +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version +* 2 of the License, or (at your option) any later version. +* ============================================================================ +* 1998/08/08 acme Initial version. +*/ +#ifndef _CYCX_CFM_H +#define _CYCX_CFM_H + +/* Defines */ + +#define CFM_VERSION 2 +#define CFM_SIGNATURE "CFM - Cyclades CYCX Firmware Module" + +/* min/max */ +#define CFM_IMAGE_SIZE 0x20000 /* max size of CYCX code image file */ +#define CFM_DESCR_LEN 256 /* max length of description string */ +#define CFM_MAX_CYCX 1 /* max number of compatible adapters */ +#define CFM_LOAD_BUFSZ 0x400 /* buffer size for reset code (buffer_load) */ + +/* Firmware Commands */ +#define GEN_POWER_ON 0x1280 + +#define GEN_SET_SEG 0x1401 /* boot segment setting. */ +#define GEN_BOOT_DAT 0x1402 /* boot data. */ +#define GEN_START 0x1403 /* board start. */ +#define GEN_DEFPAR 0x1404 /* buffer length for boot. */ + +/* Adapter Types */ +#define CYCX_2X 2 +/* for now only the 2X is supported, no plans to support 8X or 16X */ +#define CYCX_8X 8 +#define CYCX_16X 16 + +#define CFID_X25_2X 5200 + +/** + * struct cycx_fw_info - firmware module information. + * @codeid - firmware ID + * @version - firmware version number + * @adapter - compatible adapter types + * @memsize - minimum memory size + * @reserved - reserved + * @startoffs - entry point offset + * @winoffs - dual-port memory window offset + * @codeoffs - code load offset + * @codesize - code size + * @dataoffs - configuration data load offset + * @datasize - configuration data size + */ +struct cycx_fw_info { + unsigned short codeid; + unsigned short version; + unsigned short adapter[CFM_MAX_CYCX]; + unsigned long memsize; + unsigned short reserved[2]; + unsigned short startoffs; + unsigned short winoffs; + unsigned short codeoffs; + unsigned long codesize; + unsigned short dataoffs; + unsigned long datasize; +}; + +/** + * struct cycx_firmware - CYCX firmware file structure + * @signature - CFM file signature + * @version - file format version + * @checksum - info + image + * @reserved - reserved + * @descr - description string + * @info - firmware module info + * @image - code image (variable size) + */ +struct cycx_firmware { + char signature[80]; + unsigned short version; + unsigned short checksum; + unsigned short reserved[6]; + char descr[CFM_DESCR_LEN]; + struct cycx_fw_info info; + unsigned char image[0]; +}; + +struct cycx_fw_header { + unsigned long reset_size; + unsigned long data_size; + unsigned long code_size; +}; +#endif /* _CYCX_CFM_H */ diff --git a/kernel_headers/linux/danipc_ioctl.h b/kernel_headers/linux/danipc_ioctl.h new file mode 100644 index 0000000..934a0db --- /dev/null +++ b/kernel_headers/linux/danipc_ioctl.h @@ -0,0 +1,62 @@ +/* + All files except if stated otherwise in the begining of the file + are under the ISC license: + ---------------------------------------------------------------------- + + Copyright (c) 2010-2012 Design Art Networks Ltd. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + + +#ifndef __UAPI_LINUX_DANIPC_IOCTL_H__ +#define __UAPI_LINUX_DANIPC_IOCTL_H__ + +#include + +#define DANIPC_IOCS_REGISTER (SIOCDEVPRIVATE + 0) +#define DANIPC_IOCG_ADDR2NAME (SIOCDEVPRIVATE + 1) +#define DANIPC_IOCG_NAME2ADDR (SIOCDEVPRIVATE + 2) + +#define MAX_AGENTS 256 +#define MAX_AGENT_NAME 32 + +#define INVALID_ID ((unsigned)(-1)) + +struct danipc_reg { + /* (IN) Agent name */ + char name[MAX_AGENT_NAME]; + + /* (IN) Actually this is priority from enum IPC_trns_priority */ + unsigned prio; + + /* (IN) If different from INVALID_ID specifies preferred local ID. */ + unsigned requested_lid; + + /* (OUT) Assigned local ID. */ + unsigned assigned_lid; + + /* (OUT) Cookie in network format */ + uint16_t cookie; +}; + + +typedef uint8_t __bitwise danipc_addr_t; + +struct danipc_name { + char name[MAX_AGENT_NAME]; + danipc_addr_t addr; +}; + +#define DANIPC_MAX_BUF 1600 +#endif /* __UAPI_LINUX_DANIPC_IOCTL_H__ */ diff --git a/kernel_headers/linux/dcbnl.h b/kernel_headers/linux/dcbnl.h new file mode 100644 index 0000000..6bb4338 --- /dev/null +++ b/kernel_headers/linux/dcbnl.h @@ -0,0 +1,684 @@ +/* + * Copyright (c) 2008-2011, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Author: Lucy Liu + */ + +#ifndef __LINUX_DCBNL_H__ +#define __LINUX_DCBNL_H__ + +#include + +/* IEEE 802.1Qaz std supported values */ +#define IEEE_8021QAZ_MAX_TCS 8 + +#define IEEE_8021QAZ_TSA_STRICT 0 +#define IEEE_8021QAZ_TSA_CB_SHAPER 1 +#define IEEE_8021QAZ_TSA_ETS 2 +#define IEEE_8021QAZ_TSA_VENDOR 255 + +/* This structure contains the IEEE 802.1Qaz ETS managed object + * + * @willing: willing bit in ETS configuration TLV + * @ets_cap: indicates supported capacity of ets feature + * @cbs: credit based shaper ets algorithm supported + * @tc_tx_bw: tc tx bandwidth indexed by traffic class + * @tc_rx_bw: tc rx bandwidth indexed by traffic class + * @tc_tsa: TSA Assignment table, indexed by traffic class + * @prio_tc: priority assignment table mapping 8021Qp to traffic class + * @tc_reco_bw: recommended tc bandwidth indexed by traffic class for TLV + * @tc_reco_tsa: recommended tc bandwidth indexed by traffic class for TLV + * @reco_prio_tc: recommended tc tx bandwidth indexed by traffic class for TLV + * + * Recommended values are used to set fields in the ETS recommendation TLV + * with hardware offloaded LLDP. + * + * ---- + * TSA Assignment 8 bit identifiers + * 0 strict priority + * 1 credit-based shaper + * 2 enhanced transmission selection + * 3-254 reserved + * 255 vendor specific + */ +struct ieee_ets { + __u8 willing; + __u8 ets_cap; + __u8 cbs; + __u8 tc_tx_bw[IEEE_8021QAZ_MAX_TCS]; + __u8 tc_rx_bw[IEEE_8021QAZ_MAX_TCS]; + __u8 tc_tsa[IEEE_8021QAZ_MAX_TCS]; + __u8 prio_tc[IEEE_8021QAZ_MAX_TCS]; + __u8 tc_reco_bw[IEEE_8021QAZ_MAX_TCS]; + __u8 tc_reco_tsa[IEEE_8021QAZ_MAX_TCS]; + __u8 reco_prio_tc[IEEE_8021QAZ_MAX_TCS]; +}; + +/* This structure contains rate limit extension to the IEEE 802.1Qaz ETS + * managed object. + * Values are 64 bits long and specified in Kbps to enable usage over both + * slow and very fast networks. + * + * @tc_maxrate: maximal tc tx bandwidth indexed by traffic class + */ +struct ieee_maxrate { + __u64 tc_maxrate[IEEE_8021QAZ_MAX_TCS]; +}; + +/* This structure contains the IEEE 802.1Qaz PFC managed object + * + * @pfc_cap: Indicates the number of traffic classes on the local device + * that may simultaneously have PFC enabled. + * @pfc_en: bitmap indicating pfc enabled traffic classes + * @mbc: enable macsec bypass capability + * @delay: the allowance made for a round-trip propagation delay of the + * link in bits. + * @requests: count of the sent pfc frames + * @indications: count of the received pfc frames + */ +struct ieee_pfc { + __u8 pfc_cap; + __u8 pfc_en; + __u8 mbc; + __u16 delay; + __u64 requests[IEEE_8021QAZ_MAX_TCS]; + __u64 indications[IEEE_8021QAZ_MAX_TCS]; +}; + +/* CEE DCBX std supported values */ +#define CEE_DCBX_MAX_PGS 8 +#define CEE_DCBX_MAX_PRIO 8 + +/** + * struct cee_pg - CEE Priority-Group managed object + * + * @willing: willing bit in the PG tlv + * @error: error bit in the PG tlv + * @pg_en: enable bit of the PG feature + * @tcs_supported: number of traffic classes supported + * @pg_bw: bandwidth percentage for each priority group + * @prio_pg: priority to PG mapping indexed by priority + */ +struct cee_pg { + __u8 willing; + __u8 error; + __u8 pg_en; + __u8 tcs_supported; + __u8 pg_bw[CEE_DCBX_MAX_PGS]; + __u8 prio_pg[CEE_DCBX_MAX_PGS]; +}; + +/** + * struct cee_pfc - CEE PFC managed object + * + * @willing: willing bit in the PFC tlv + * @error: error bit in the PFC tlv + * @pfc_en: bitmap indicating pfc enabled traffic classes + * @tcs_supported: number of traffic classes supported + */ +struct cee_pfc { + __u8 willing; + __u8 error; + __u8 pfc_en; + __u8 tcs_supported; +}; + +/* IEEE 802.1Qaz std supported values */ +#define IEEE_8021QAZ_APP_SEL_ETHERTYPE 1 +#define IEEE_8021QAZ_APP_SEL_STREAM 2 +#define IEEE_8021QAZ_APP_SEL_DGRAM 3 +#define IEEE_8021QAZ_APP_SEL_ANY 4 + +/* This structure contains the IEEE 802.1Qaz APP managed object. This + * object is also used for the CEE std as well. There is no difference + * between the objects. + * + * @selector: protocol identifier type + * @protocol: protocol of type indicated + * @priority: 3-bit unsigned integer indicating priority + * + * ---- + * Selector field values + * 0 Reserved + * 1 Ethertype + * 2 Well known port number over TCP or SCTP + * 3 Well known port number over UDP or DCCP + * 4 Well known port number over TCP, SCTP, UDP, or DCCP + * 5-7 Reserved + */ +struct dcb_app { + __u8 selector; + __u8 priority; + __u16 protocol; +}; + +/** + * struct dcb_peer_app_info - APP feature information sent by the peer + * + * @willing: willing bit in the peer APP tlv + * @error: error bit in the peer APP tlv + * + * In addition to this information the full peer APP tlv also contains + * a table of 'app_count' APP objects defined above. + */ +struct dcb_peer_app_info { + __u8 willing; + __u8 error; +}; + +struct dcbmsg { + __u8 dcb_family; + __u8 cmd; + __u16 dcb_pad; +}; + +/** + * enum dcbnl_commands - supported DCB commands + * + * @DCB_CMD_UNDEFINED: unspecified command to catch errors + * @DCB_CMD_GSTATE: request the state of DCB in the device + * @DCB_CMD_SSTATE: set the state of DCB in the device + * @DCB_CMD_PGTX_GCFG: request the priority group configuration for Tx + * @DCB_CMD_PGTX_SCFG: set the priority group configuration for Tx + * @DCB_CMD_PGRX_GCFG: request the priority group configuration for Rx + * @DCB_CMD_PGRX_SCFG: set the priority group configuration for Rx + * @DCB_CMD_PFC_GCFG: request the priority flow control configuration + * @DCB_CMD_PFC_SCFG: set the priority flow control configuration + * @DCB_CMD_SET_ALL: apply all changes to the underlying device + * @DCB_CMD_GPERM_HWADDR: get the permanent MAC address of the underlying + * device. Only useful when using bonding. + * @DCB_CMD_GCAP: request the DCB capabilities of the device + * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported + * @DCB_CMD_SNUMTCS: set the number of traffic classes + * @DCB_CMD_GBCN: set backward congestion notification configuration + * @DCB_CMD_SBCN: get backward congestion notification configration. + * @DCB_CMD_GAPP: get application protocol configuration + * @DCB_CMD_SAPP: set application protocol configuration + * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration + * @DCB_CMD_IEEE_GET: get IEEE 802.1Qaz configuration + * @DCB_CMD_GDCBX: get DCBX engine configuration + * @DCB_CMD_SDCBX: set DCBX engine configuration + * @DCB_CMD_GFEATCFG: get DCBX features flags + * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags + * @DCB_CMD_CEE_GET: get CEE aggregated configuration + * @DCB_CMD_IEEE_DEL: delete IEEE 802.1Qaz configuration + */ +enum dcbnl_commands { + DCB_CMD_UNDEFINED, + + DCB_CMD_GSTATE, + DCB_CMD_SSTATE, + + DCB_CMD_PGTX_GCFG, + DCB_CMD_PGTX_SCFG, + DCB_CMD_PGRX_GCFG, + DCB_CMD_PGRX_SCFG, + + DCB_CMD_PFC_GCFG, + DCB_CMD_PFC_SCFG, + + DCB_CMD_SET_ALL, + + DCB_CMD_GPERM_HWADDR, + + DCB_CMD_GCAP, + + DCB_CMD_GNUMTCS, + DCB_CMD_SNUMTCS, + + DCB_CMD_PFC_GSTATE, + DCB_CMD_PFC_SSTATE, + + DCB_CMD_BCN_GCFG, + DCB_CMD_BCN_SCFG, + + DCB_CMD_GAPP, + DCB_CMD_SAPP, + + DCB_CMD_IEEE_SET, + DCB_CMD_IEEE_GET, + + DCB_CMD_GDCBX, + DCB_CMD_SDCBX, + + DCB_CMD_GFEATCFG, + DCB_CMD_SFEATCFG, + + DCB_CMD_CEE_GET, + DCB_CMD_IEEE_DEL, + + __DCB_CMD_ENUM_MAX, + DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, +}; + +/** + * enum dcbnl_attrs - DCB top-level netlink attributes + * + * @DCB_ATTR_UNDEFINED: unspecified attribute to catch errors + * @DCB_ATTR_IFNAME: interface name of the underlying device (NLA_STRING) + * @DCB_ATTR_STATE: enable state of DCB in the device (NLA_U8) + * @DCB_ATTR_PFC_STATE: enable state of PFC in the device (NLA_U8) + * @DCB_ATTR_PFC_CFG: priority flow control configuration (NLA_NESTED) + * @DCB_ATTR_NUM_TC: number of traffic classes supported in the device (NLA_U8) + * @DCB_ATTR_PG_CFG: priority group configuration (NLA_NESTED) + * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8) + * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED) + * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED) + * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED) + * @DCB_ATTR_BCN: backward congestion notification configuration (NLA_NESTED) + * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) + * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) + * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED) + * @DCB_ATTR_CEE: CEE std supported attributes (NLA_NESTED) + */ +enum dcbnl_attrs { + DCB_ATTR_UNDEFINED, + + DCB_ATTR_IFNAME, + DCB_ATTR_STATE, + DCB_ATTR_PFC_STATE, + DCB_ATTR_PFC_CFG, + DCB_ATTR_NUM_TC, + DCB_ATTR_PG_CFG, + DCB_ATTR_SET_ALL, + DCB_ATTR_PERM_HWADDR, + DCB_ATTR_CAP, + DCB_ATTR_NUMTCS, + DCB_ATTR_BCN, + DCB_ATTR_APP, + + /* IEEE std attributes */ + DCB_ATTR_IEEE, + + DCB_ATTR_DCBX, + DCB_ATTR_FEATCFG, + + /* CEE nested attributes */ + DCB_ATTR_CEE, + + __DCB_ATTR_ENUM_MAX, + DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, +}; + +/** + * enum ieee_attrs - IEEE 802.1Qaz get/set attributes + * + * @DCB_ATTR_IEEE_UNSPEC: unspecified + * @DCB_ATTR_IEEE_ETS: negotiated ETS configuration + * @DCB_ATTR_IEEE_PFC: negotiated PFC configuration + * @DCB_ATTR_IEEE_APP_TABLE: negotiated APP configuration + * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only + * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only + * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only + */ +enum ieee_attrs { + DCB_ATTR_IEEE_UNSPEC, + DCB_ATTR_IEEE_ETS, + DCB_ATTR_IEEE_PFC, + DCB_ATTR_IEEE_APP_TABLE, + DCB_ATTR_IEEE_PEER_ETS, + DCB_ATTR_IEEE_PEER_PFC, + DCB_ATTR_IEEE_PEER_APP, + DCB_ATTR_IEEE_MAXRATE, + __DCB_ATTR_IEEE_MAX +}; +#define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) + +enum ieee_attrs_app { + DCB_ATTR_IEEE_APP_UNSPEC, + DCB_ATTR_IEEE_APP, + __DCB_ATTR_IEEE_APP_MAX +}; +#define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) + +/** + * enum cee_attrs - CEE DCBX get attributes. + * + * @DCB_ATTR_CEE_UNSPEC: unspecified + * @DCB_ATTR_CEE_PEER_PG: peer PG configuration - get only + * @DCB_ATTR_CEE_PEER_PFC: peer PFC configuration - get only + * @DCB_ATTR_CEE_PEER_APP_TABLE: peer APP tlv - get only + * @DCB_ATTR_CEE_TX_PG: TX PG configuration (DCB_CMD_PGTX_GCFG) + * @DCB_ATTR_CEE_RX_PG: RX PG configuration (DCB_CMD_PGRX_GCFG) + * @DCB_ATTR_CEE_PFC: PFC configuration (DCB_CMD_PFC_GCFG) + * @DCB_ATTR_CEE_APP_TABLE: APP configuration (multi DCB_CMD_GAPP) + * @DCB_ATTR_CEE_FEAT: DCBX features flags (DCB_CMD_GFEATCFG) + * + * An aggregated collection of the cee std negotiated parameters. + */ +enum cee_attrs { + DCB_ATTR_CEE_UNSPEC, + DCB_ATTR_CEE_PEER_PG, + DCB_ATTR_CEE_PEER_PFC, + DCB_ATTR_CEE_PEER_APP_TABLE, + DCB_ATTR_CEE_TX_PG, + DCB_ATTR_CEE_RX_PG, + DCB_ATTR_CEE_PFC, + DCB_ATTR_CEE_APP_TABLE, + DCB_ATTR_CEE_FEAT, + __DCB_ATTR_CEE_MAX +}; +#define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1) + +enum peer_app_attr { + DCB_ATTR_CEE_PEER_APP_UNSPEC, + DCB_ATTR_CEE_PEER_APP_INFO, + DCB_ATTR_CEE_PEER_APP, + __DCB_ATTR_CEE_PEER_APP_MAX +}; +#define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1) + +enum cee_attrs_app { + DCB_ATTR_CEE_APP_UNSPEC, + DCB_ATTR_CEE_APP, + __DCB_ATTR_CEE_APP_MAX +}; +#define DCB_ATTR_CEE_APP_MAX (__DCB_ATTR_CEE_APP_MAX - 1) + +/** + * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs + * + * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors + * @DCB_PFC_UP_ATTR_0: Priority Flow Control value for User Priority 0 (NLA_U8) + * @DCB_PFC_UP_ATTR_1: Priority Flow Control value for User Priority 1 (NLA_U8) + * @DCB_PFC_UP_ATTR_2: Priority Flow Control value for User Priority 2 (NLA_U8) + * @DCB_PFC_UP_ATTR_3: Priority Flow Control value for User Priority 3 (NLA_U8) + * @DCB_PFC_UP_ATTR_4: Priority Flow Control value for User Priority 4 (NLA_U8) + * @DCB_PFC_UP_ATTR_5: Priority Flow Control value for User Priority 5 (NLA_U8) + * @DCB_PFC_UP_ATTR_6: Priority Flow Control value for User Priority 6 (NLA_U8) + * @DCB_PFC_UP_ATTR_7: Priority Flow Control value for User Priority 7 (NLA_U8) + * @DCB_PFC_UP_ATTR_MAX: highest attribute number currently defined + * @DCB_PFC_UP_ATTR_ALL: apply to all priority flow control attrs (NLA_FLAG) + * + */ +enum dcbnl_pfc_up_attrs { + DCB_PFC_UP_ATTR_UNDEFINED, + + DCB_PFC_UP_ATTR_0, + DCB_PFC_UP_ATTR_1, + DCB_PFC_UP_ATTR_2, + DCB_PFC_UP_ATTR_3, + DCB_PFC_UP_ATTR_4, + DCB_PFC_UP_ATTR_5, + DCB_PFC_UP_ATTR_6, + DCB_PFC_UP_ATTR_7, + DCB_PFC_UP_ATTR_ALL, + + __DCB_PFC_UP_ATTR_ENUM_MAX, + DCB_PFC_UP_ATTR_MAX = __DCB_PFC_UP_ATTR_ENUM_MAX - 1, +}; + +/** + * enum dcbnl_pg_attrs - DCB Priority Group attributes + * + * @DCB_PG_ATTR_UNDEFINED: unspecified attribute to catch errors + * @DCB_PG_ATTR_TC_0: Priority Group Traffic Class 0 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_1: Priority Group Traffic Class 1 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_2: Priority Group Traffic Class 2 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_3: Priority Group Traffic Class 3 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_4: Priority Group Traffic Class 4 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_5: Priority Group Traffic Class 5 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_6: Priority Group Traffic Class 6 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_7: Priority Group Traffic Class 7 configuration (NLA_NESTED) + * @DCB_PG_ATTR_TC_MAX: highest attribute number currently defined + * @DCB_PG_ATTR_TC_ALL: apply to all traffic classes (NLA_NESTED) + * @DCB_PG_ATTR_BW_ID_0: Percent of link bandwidth for Priority Group 0 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_1: Percent of link bandwidth for Priority Group 1 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_2: Percent of link bandwidth for Priority Group 2 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_3: Percent of link bandwidth for Priority Group 3 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_4: Percent of link bandwidth for Priority Group 4 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_5: Percent of link bandwidth for Priority Group 5 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_6: Percent of link bandwidth for Priority Group 6 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_7: Percent of link bandwidth for Priority Group 7 (NLA_U8) + * @DCB_PG_ATTR_BW_ID_MAX: highest attribute number currently defined + * @DCB_PG_ATTR_BW_ID_ALL: apply to all priority groups (NLA_FLAG) + * + */ +enum dcbnl_pg_attrs { + DCB_PG_ATTR_UNDEFINED, + + DCB_PG_ATTR_TC_0, + DCB_PG_ATTR_TC_1, + DCB_PG_ATTR_TC_2, + DCB_PG_ATTR_TC_3, + DCB_PG_ATTR_TC_4, + DCB_PG_ATTR_TC_5, + DCB_PG_ATTR_TC_6, + DCB_PG_ATTR_TC_7, + DCB_PG_ATTR_TC_MAX, + DCB_PG_ATTR_TC_ALL, + + DCB_PG_ATTR_BW_ID_0, + DCB_PG_ATTR_BW_ID_1, + DCB_PG_ATTR_BW_ID_2, + DCB_PG_ATTR_BW_ID_3, + DCB_PG_ATTR_BW_ID_4, + DCB_PG_ATTR_BW_ID_5, + DCB_PG_ATTR_BW_ID_6, + DCB_PG_ATTR_BW_ID_7, + DCB_PG_ATTR_BW_ID_MAX, + DCB_PG_ATTR_BW_ID_ALL, + + __DCB_PG_ATTR_ENUM_MAX, + DCB_PG_ATTR_MAX = __DCB_PG_ATTR_ENUM_MAX - 1, +}; + +/** + * enum dcbnl_tc_attrs - DCB Traffic Class attributes + * + * @DCB_TC_ATTR_PARAM_UNDEFINED: unspecified attribute to catch errors + * @DCB_TC_ATTR_PARAM_PGID: (NLA_U8) Priority group the traffic class belongs to + * Valid values are: 0-7 + * @DCB_TC_ATTR_PARAM_UP_MAPPING: (NLA_U8) Traffic class to user priority map + * Some devices may not support changing the + * user priority map of a TC. + * @DCB_TC_ATTR_PARAM_STRICT_PRIO: (NLA_U8) Strict priority setting + * 0 - none + * 1 - group strict + * 2 - link strict + * @DCB_TC_ATTR_PARAM_BW_PCT: optional - (NLA_U8) If supported by the device and + * not configured to use link strict priority, + * this is the percentage of bandwidth of the + * priority group this traffic class belongs to + * @DCB_TC_ATTR_PARAM_ALL: (NLA_FLAG) all traffic class parameters + * + */ +enum dcbnl_tc_attrs { + DCB_TC_ATTR_PARAM_UNDEFINED, + + DCB_TC_ATTR_PARAM_PGID, + DCB_TC_ATTR_PARAM_UP_MAPPING, + DCB_TC_ATTR_PARAM_STRICT_PRIO, + DCB_TC_ATTR_PARAM_BW_PCT, + DCB_TC_ATTR_PARAM_ALL, + + __DCB_TC_ATTR_PARAM_ENUM_MAX, + DCB_TC_ATTR_PARAM_MAX = __DCB_TC_ATTR_PARAM_ENUM_MAX - 1, +}; + +/** + * enum dcbnl_cap_attrs - DCB Capability attributes + * + * @DCB_CAP_ATTR_UNDEFINED: unspecified attribute to catch errors + * @DCB_CAP_ATTR_ALL: (NLA_FLAG) all capability parameters + * @DCB_CAP_ATTR_PG: (NLA_U8) device supports Priority Groups + * @DCB_CAP_ATTR_PFC: (NLA_U8) device supports Priority Flow Control + * @DCB_CAP_ATTR_UP2TC: (NLA_U8) device supports user priority to + * traffic class mapping + * @DCB_CAP_ATTR_PG_TCS: (NLA_U8) bitmap where each bit represents a + * number of traffic classes the device + * can be configured to use for Priority Groups + * @DCB_CAP_ATTR_PFC_TCS: (NLA_U8) bitmap where each bit represents a + * number of traffic classes the device can be + * configured to use for Priority Flow Control + * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority + * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion + * Notification + * @DCB_CAP_ATTR_DCBX: (NLA_U8) device supports DCBX engine + * + */ +enum dcbnl_cap_attrs { + DCB_CAP_ATTR_UNDEFINED, + DCB_CAP_ATTR_ALL, + DCB_CAP_ATTR_PG, + DCB_CAP_ATTR_PFC, + DCB_CAP_ATTR_UP2TC, + DCB_CAP_ATTR_PG_TCS, + DCB_CAP_ATTR_PFC_TCS, + DCB_CAP_ATTR_GSP, + DCB_CAP_ATTR_BCN, + DCB_CAP_ATTR_DCBX, + + __DCB_CAP_ATTR_ENUM_MAX, + DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, +}; + +/** + * DCBX capability flags + * + * @DCB_CAP_DCBX_HOST: DCBX negotiation is performed by the host LLDP agent. + * 'set' routines are used to configure the device with + * the negotiated parameters + * + * @DCB_CAP_DCBX_LLD_MANAGED: DCBX negotiation is not performed in the host but + * by another entity + * 'get' routines are used to retrieve the + * negotiated parameters + * 'set' routines can be used to set the initial + * negotiation configuration + * + * @DCB_CAP_DCBX_VER_CEE: for a non-host DCBX engine, indicates the engine + * supports the CEE protocol flavor + * + * @DCB_CAP_DCBX_VER_IEEE: for a non-host DCBX engine, indicates the engine + * supports the IEEE protocol flavor + * + * @DCB_CAP_DCBX_STATIC: for a non-host DCBX engine, indicates the engine + * supports static configuration (i.e no actual + * negotiation is performed negotiated parameters equal + * the initial configuration) + * + */ +#define DCB_CAP_DCBX_HOST 0x01 +#define DCB_CAP_DCBX_LLD_MANAGED 0x02 +#define DCB_CAP_DCBX_VER_CEE 0x04 +#define DCB_CAP_DCBX_VER_IEEE 0x08 +#define DCB_CAP_DCBX_STATIC 0x10 + +/** + * enum dcbnl_numtcs_attrs - number of traffic classes + * + * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors + * @DCB_NUMTCS_ATTR_ALL: (NLA_FLAG) all traffic class attributes + * @DCB_NUMTCS_ATTR_PG: (NLA_U8) number of traffic classes used for + * priority groups + * @DCB_NUMTCS_ATTR_PFC: (NLA_U8) number of traffic classes which can + * support priority flow control + */ +enum dcbnl_numtcs_attrs { + DCB_NUMTCS_ATTR_UNDEFINED, + DCB_NUMTCS_ATTR_ALL, + DCB_NUMTCS_ATTR_PG, + DCB_NUMTCS_ATTR_PFC, + + __DCB_NUMTCS_ATTR_ENUM_MAX, + DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1, +}; + +enum dcbnl_bcn_attrs{ + DCB_BCN_ATTR_UNDEFINED = 0, + + DCB_BCN_ATTR_RP_0, + DCB_BCN_ATTR_RP_1, + DCB_BCN_ATTR_RP_2, + DCB_BCN_ATTR_RP_3, + DCB_BCN_ATTR_RP_4, + DCB_BCN_ATTR_RP_5, + DCB_BCN_ATTR_RP_6, + DCB_BCN_ATTR_RP_7, + DCB_BCN_ATTR_RP_ALL, + + DCB_BCN_ATTR_BCNA_0, + DCB_BCN_ATTR_BCNA_1, + DCB_BCN_ATTR_ALPHA, + DCB_BCN_ATTR_BETA, + DCB_BCN_ATTR_GD, + DCB_BCN_ATTR_GI, + DCB_BCN_ATTR_TMAX, + DCB_BCN_ATTR_TD, + DCB_BCN_ATTR_RMIN, + DCB_BCN_ATTR_W, + DCB_BCN_ATTR_RD, + DCB_BCN_ATTR_RU, + DCB_BCN_ATTR_WRTT, + DCB_BCN_ATTR_RI, + DCB_BCN_ATTR_C, + DCB_BCN_ATTR_ALL, + + __DCB_BCN_ATTR_ENUM_MAX, + DCB_BCN_ATTR_MAX = __DCB_BCN_ATTR_ENUM_MAX - 1, +}; + +/** + * enum dcb_general_attr_values - general DCB attribute values + * + * @DCB_ATTR_UNDEFINED: value used to indicate an attribute is not supported + * + */ +enum dcb_general_attr_values { + DCB_ATTR_VALUE_UNDEFINED = 0xff +}; + +#define DCB_APP_IDTYPE_ETHTYPE 0x00 +#define DCB_APP_IDTYPE_PORTNUM 0x01 +enum dcbnl_app_attrs { + DCB_APP_ATTR_UNDEFINED, + + DCB_APP_ATTR_IDTYPE, + DCB_APP_ATTR_ID, + DCB_APP_ATTR_PRIORITY, + + __DCB_APP_ATTR_ENUM_MAX, + DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1, +}; + +/** + * enum dcbnl_featcfg_attrs - features conifiguration flags + * + * @DCB_FEATCFG_ATTR_UNDEFINED: unspecified attribute to catch errors + * @DCB_FEATCFG_ATTR_ALL: (NLA_FLAG) all features configuration attributes + * @DCB_FEATCFG_ATTR_PG: (NLA_U8) configuration flags for priority groups + * @DCB_FEATCFG_ATTR_PFC: (NLA_U8) configuration flags for priority + * flow control + * @DCB_FEATCFG_ATTR_APP: (NLA_U8) configuration flags for application TLV + * + */ +#define DCB_FEATCFG_ERROR 0x01 /* error in feature resolution */ +#define DCB_FEATCFG_ENABLE 0x02 /* enable feature */ +#define DCB_FEATCFG_WILLING 0x04 /* feature is willing */ +#define DCB_FEATCFG_ADVERTISE 0x08 /* advertise feature */ +enum dcbnl_featcfg_attrs { + DCB_FEATCFG_ATTR_UNDEFINED, + DCB_FEATCFG_ATTR_ALL, + DCB_FEATCFG_ATTR_PG, + DCB_FEATCFG_ATTR_PFC, + DCB_FEATCFG_ATTR_APP, + + __DCB_FEATCFG_ATTR_ENUM_MAX, + DCB_FEATCFG_ATTR_MAX = __DCB_FEATCFG_ATTR_ENUM_MAX - 1, +}; + +#endif /* __LINUX_DCBNL_H__ */ diff --git a/kernel_headers/linux/dccp.h b/kernel_headers/linux/dccp.h new file mode 100644 index 0000000..d0e2226 --- /dev/null +++ b/kernel_headers/linux/dccp.h @@ -0,0 +1,237 @@ +#ifndef _LINUX_DCCP_H +#define _LINUX_DCCP_H + +#include +#include + +/** + * struct dccp_hdr - generic part of DCCP packet header + * + * @dccph_sport - Relevant port on the endpoint that sent this packet + * @dccph_dport - Relevant port on the other endpoint + * @dccph_doff - Data Offset from the start of the DCCP header, in 32-bit words + * @dccph_ccval - Used by the HC-Sender CCID + * @dccph_cscov - Parts of the packet that are covered by the Checksum field + * @dccph_checksum - Internet checksum, depends on dccph_cscov + * @dccph_x - 0 = 24 bit sequence number, 1 = 48 + * @dccph_type - packet type, see DCCP_PKT_ prefixed macros + * @dccph_seq - sequence number high or low order 24 bits, depends on dccph_x + */ +struct dccp_hdr { + __be16 dccph_sport, + dccph_dport; + __u8 dccph_doff; +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 dccph_cscov:4, + dccph_ccval:4; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 dccph_ccval:4, + dccph_cscov:4; +#else +#error "Adjust your defines" +#endif + __sum16 dccph_checksum; +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 dccph_x:1, + dccph_type:4, + dccph_reserved:3; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 dccph_reserved:3, + dccph_type:4, + dccph_x:1; +#else +#error "Adjust your defines" +#endif + __u8 dccph_seq2; + __be16 dccph_seq; +}; + +/** + * struct dccp_hdr_ext - the low bits of a 48 bit seq packet + * + * @dccph_seq_low - low 24 bits of a 48 bit seq packet + */ +struct dccp_hdr_ext { + __be32 dccph_seq_low; +}; + +/** + * struct dccp_hdr_request - Connection initiation request header + * + * @dccph_req_service - Service to which the client app wants to connect + */ +struct dccp_hdr_request { + __be32 dccph_req_service; +}; +/** + * struct dccp_hdr_ack_bits - acknowledgment bits common to most packets + * + * @dccph_resp_ack_nr_high - 48 bit ack number high order bits, contains GSR + * @dccph_resp_ack_nr_low - 48 bit ack number low order bits, contains GSR + */ +struct dccp_hdr_ack_bits { + __be16 dccph_reserved1; + __be16 dccph_ack_nr_high; + __be32 dccph_ack_nr_low; +}; +/** + * struct dccp_hdr_response - Connection initiation response header + * + * @dccph_resp_ack - 48 bit Acknowledgment Number Subheader (5.3) + * @dccph_resp_service - Echoes the Service Code on a received DCCP-Request + */ +struct dccp_hdr_response { + struct dccp_hdr_ack_bits dccph_resp_ack; + __be32 dccph_resp_service; +}; + +/** + * struct dccp_hdr_reset - Unconditionally shut down a connection + * + * @dccph_reset_ack - 48 bit Acknowledgment Number Subheader (5.6) + * @dccph_reset_code - one of %dccp_reset_codes + * @dccph_reset_data - the Data 1 ... Data 3 fields from 5.6 + */ +struct dccp_hdr_reset { + struct dccp_hdr_ack_bits dccph_reset_ack; + __u8 dccph_reset_code, + dccph_reset_data[3]; +}; + +enum dccp_pkt_type { + DCCP_PKT_REQUEST = 0, + DCCP_PKT_RESPONSE, + DCCP_PKT_DATA, + DCCP_PKT_ACK, + DCCP_PKT_DATAACK, + DCCP_PKT_CLOSEREQ, + DCCP_PKT_CLOSE, + DCCP_PKT_RESET, + DCCP_PKT_SYNC, + DCCP_PKT_SYNCACK, + DCCP_PKT_INVALID, +}; + +#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID + +static __inline__ unsigned int dccp_packet_hdr_len(const __u8 type) +{ + if (type == DCCP_PKT_DATA) + return 0; + if (type == DCCP_PKT_DATAACK || + type == DCCP_PKT_ACK || + type == DCCP_PKT_SYNC || + type == DCCP_PKT_SYNCACK || + type == DCCP_PKT_CLOSE || + type == DCCP_PKT_CLOSEREQ) + return sizeof(struct dccp_hdr_ack_bits); + if (type == DCCP_PKT_REQUEST) + return sizeof(struct dccp_hdr_request); + if (type == DCCP_PKT_RESPONSE) + return sizeof(struct dccp_hdr_response); + return sizeof(struct dccp_hdr_reset); +} +enum dccp_reset_codes { + DCCP_RESET_CODE_UNSPECIFIED = 0, + DCCP_RESET_CODE_CLOSED, + DCCP_RESET_CODE_ABORTED, + DCCP_RESET_CODE_NO_CONNECTION, + DCCP_RESET_CODE_PACKET_ERROR, + DCCP_RESET_CODE_OPTION_ERROR, + DCCP_RESET_CODE_MANDATORY_ERROR, + DCCP_RESET_CODE_CONNECTION_REFUSED, + DCCP_RESET_CODE_BAD_SERVICE_CODE, + DCCP_RESET_CODE_TOO_BUSY, + DCCP_RESET_CODE_BAD_INIT_COOKIE, + DCCP_RESET_CODE_AGGRESSION_PENALTY, + + DCCP_MAX_RESET_CODES /* Leave at the end! */ +}; + +/* DCCP options */ +enum { + DCCPO_PADDING = 0, + DCCPO_MANDATORY = 1, + DCCPO_MIN_RESERVED = 3, + DCCPO_MAX_RESERVED = 31, + DCCPO_CHANGE_L = 32, + DCCPO_CONFIRM_L = 33, + DCCPO_CHANGE_R = 34, + DCCPO_CONFIRM_R = 35, + DCCPO_NDP_COUNT = 37, + DCCPO_ACK_VECTOR_0 = 38, + DCCPO_ACK_VECTOR_1 = 39, + DCCPO_TIMESTAMP = 41, + DCCPO_TIMESTAMP_ECHO = 42, + DCCPO_ELAPSED_TIME = 43, + DCCPO_MAX = 45, + DCCPO_MIN_RX_CCID_SPECIFIC = 128, /* from sender to receiver */ + DCCPO_MAX_RX_CCID_SPECIFIC = 191, + DCCPO_MIN_TX_CCID_SPECIFIC = 192, /* from receiver to sender */ + DCCPO_MAX_TX_CCID_SPECIFIC = 255, +}; +/* maximum size of a single TLV-encoded DCCP option (sans type/len bytes) */ +#define DCCP_SINGLE_OPT_MAXLEN 253 + +/* DCCP CCIDS */ +enum { + DCCPC_CCID2 = 2, + DCCPC_CCID3 = 3, +}; + +/* DCCP features (RFC 4340 section 6.4) */ +enum dccp_feature_numbers { + DCCPF_RESERVED = 0, + DCCPF_CCID = 1, + DCCPF_SHORT_SEQNOS = 2, + DCCPF_SEQUENCE_WINDOW = 3, + DCCPF_ECN_INCAPABLE = 4, + DCCPF_ACK_RATIO = 5, + DCCPF_SEND_ACK_VECTOR = 6, + DCCPF_SEND_NDP_COUNT = 7, + DCCPF_MIN_CSUM_COVER = 8, + DCCPF_DATA_CHECKSUM = 9, + /* 10-127 reserved */ + DCCPF_MIN_CCID_SPECIFIC = 128, + DCCPF_SEND_LEV_RATE = 192, /* RFC 4342, sec. 8.4 */ + DCCPF_MAX_CCID_SPECIFIC = 255, +}; + +/* DCCP socket control message types for cmsg */ +enum dccp_cmsg_type { + DCCP_SCM_PRIORITY = 1, + DCCP_SCM_QPOLICY_MAX = 0xFFFF, + /* ^-- Up to here reserved exclusively for qpolicy parameters */ + DCCP_SCM_MAX +}; + +/* DCCP priorities for outgoing/queued packets */ +enum dccp_packet_dequeueing_policy { + DCCPQ_POLICY_SIMPLE, + DCCPQ_POLICY_PRIO, + DCCPQ_POLICY_MAX +}; + +/* DCCP socket options */ +#define DCCP_SOCKOPT_PACKET_SIZE 1 /* XXX deprecated, without effect */ +#define DCCP_SOCKOPT_SERVICE 2 +#define DCCP_SOCKOPT_CHANGE_L 3 +#define DCCP_SOCKOPT_CHANGE_R 4 +#define DCCP_SOCKOPT_GET_CUR_MPS 5 +#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6 +#define DCCP_SOCKOPT_SEND_CSCOV 10 +#define DCCP_SOCKOPT_RECV_CSCOV 11 +#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12 +#define DCCP_SOCKOPT_CCID 13 +#define DCCP_SOCKOPT_TX_CCID 14 +#define DCCP_SOCKOPT_RX_CCID 15 +#define DCCP_SOCKOPT_QPOLICY_ID 16 +#define DCCP_SOCKOPT_QPOLICY_TXQLEN 17 +#define DCCP_SOCKOPT_CCID_RX_INFO 128 +#define DCCP_SOCKOPT_CCID_TX_INFO 192 + +/* maximum number of services provided on the same listening port */ +#define DCCP_SERVICE_LIST_MAX_LEN 32 + + +#endif /* _LINUX_DCCP_H */ diff --git a/kernel_headers/linux/demod_wrapper.h b/kernel_headers/linux/demod_wrapper.h new file mode 100644 index 0000000..d862c73 --- /dev/null +++ b/kernel_headers/linux/demod_wrapper.h @@ -0,0 +1,241 @@ +#ifndef _DEMOD_WRAPPER_H_ +#define _DEMOD_WRAPPER_H_ + +#include + +/** + * enum demod_wrapper_path_type - + * represents all the possible path types in demod wrapper. + * @demod_wrapper_forza_atv: a path for analog tv that passes through + * forza demod. This path type is for all analog standards supported by forza. + * @demod_wrapper_dtv_s: a path for digital tv that passes through + * digital demod. This path type is for satellite standards supported by + * this demod. + * @demod_wrapper_dtv_t_c: a path for digital tv that passes through + * digital demod. This path type is for terrestrial and cable standards + * supported by this demod. + * @demod_wrapper_ext_atv: a path for analog tv. The demod in this case is + * external and located outside the demod wrapper. + * @demod_wrapper_num_of_paths: number of path types. + */ +enum demod_wrapper_path_type { + DEMOD_WRAPPER_FORZA_ATV, + DEMOD_WRAPPER_DTV_S, + DEMOD_WRAPPER_DTV_T_C, + DEMOD_WRAPPER_EXT_ATV, + DEMOD_WRAPPER_NUM_OF_PATHS +}; + +/** + * enum demod_wrapper_power_mode - + * represents all the possible power modes of demod wrapper. + * @demod_wrapper_full_preformance: demod wrapper will operate in full + * performance mode. + * @demod_wrapper_num_of_power_modes: number of power modes. + */ +enum demod_wrapper_power_mode { + DEMOD_WRAPPER_FULL_PREFORMANCE, + DEMOD_WRAPPER_NUM_OF_POWER_MODES +}; + +/** + * enum demod_wrapper_baud_rate_mode - + * represents all the baud rate modes that are supported in dtv satellite paths. + * @demod_wrapper_narrow: narrow baud rate mode. + * @demod_wrapper_medium: medium baud rate mode. + * @demod_wrapper_wide: wide baud rate mode. + * @demod_wrapper_num_of_baud_rate_modes: number of baud_rate modes. + */ +enum demod_wrapper_baud_rate_mode { + DEMOD_WRAPPER_NARROW, + DEMOD_WRAPPER_MEDIUM, + DEMOD_WRAPPER_WIDE, + DEMOD_WRAPPER_NUM_OF_BAUD_RATE_MODES +}; + +/** + * enum demod_wrapper_pdm_num - + * represents the two pdms that exists in demod wrapper: pdm0 and pdm1. + * @demod_wrapper_pdm0: + * @demod_wrapper_pdm1: + */ +enum demod_wrapper_pdm_num { + DEMOD_WRAPPER_PDM0, + DEMOD_WRAPPER_PDM1 +}; + +/** + * enum demod_wrapper_ts_bridge - + * represents the output types of the ts bridge. + * @demod_wrapper_ts_serial: output of ts bridge is serial. + * @demod_wrapper_ts_parallel: output of ts bridge is parallel. + */ +enum demod_wrapper_ts_bridge { + DEMOD_WRAPPER_TS_SERIAL, + DEMOD_WRAPPER_TS_PARALLEL +}; + +/** + * struct demod_wrapper_release_path_args - + * arguments to be passed to DEMOD_WRAPPER_RELEASE_PATH ioctl. + * @type: the type of the path to be released. + */ +struct demod_wrapper_release_path_args { + enum demod_wrapper_path_type type; +}; + +/** + * struct demod_wrapper_set_path_args - + * arguments to be passed to DEMOD_WRAPPER_SET_PATH ioctl. + * @type: the type of the path to set. + * @pdm: the number of the pdm that this path should work with. + * @power: the power mode that this path should work in. + * Note: if we want to set external_atv path there is no pdm + * involved so passing any value as pdm will be fine + */ +struct demod_wrapper_set_path_args { + enum demod_wrapper_path_type type; + enum demod_wrapper_pdm_num pdm; + enum demod_wrapper_power_mode power; +}; + +/** + * struct demod_wrapper_set_path_dtv_sat_args - + * arguments that should be passed to DEMOD_WRAPPER_SET_PATH_DTV_SAT + * ioctl. + * @pdm: the number of the pdm that dtv satellite path should work with. + * @power: the power mode that dtv satellite path should work in. + * @br_mode: baud rate parameter that is a specific paramter for dtv satellite, + * and indicates what is the baud rate of the satellite signal. + */ +struct demod_wrapper_set_path_dtv_sat_args { + enum demod_wrapper_pdm_num pdm; + enum demod_wrapper_power_mode power; + enum demod_wrapper_baud_rate_mode br_mode; +}; + +/** + * struct demod_wrapper_init_ts_bridge - + * argumants that should be passed to DEMOD_WRAPPER_TS_BRIDGE_INIT ioctl. + * @out: indicates if the output signal of the ts bridge is serial or parallel. + */ +struct demod_wrapper_init_ts_bridge_args { + enum demod_wrapper_ts_bridge out; +}; + +/** + * struct demod_wrapper_pm_set_params_args - + * argumants that should be passed to DEMOD_WRAPPER_PM_SET_PARAMS ioctl. + * @pm_loop_cntr: the value that will be set to BCDEM_REGS_PM_LOOP_CNTR register + * @pm_params_threshold: the value that will be set to + * BCDEM_REGS_PM_PARAMS_THRESHOLD + */ +struct demod_wrapper_pm_set_params_args { + unsigned int pm_loop_cntr; + unsigned int pm_params_threshold; +}; + +/** + * struct demod_wrapper_pm_get_thrshld_cntr_args - + * argumants that should be passed to DEMOD_WRAPPER_PM_GET_THRSHLD_CNTR ioctl. + * @pm_thrshld_cntr: the parameter will hold the value gotten from + * BCDEM_REGS_PM_RO_THRSHLD_CNTR + */ +struct demod_wrapper_pm_get_thr_cntr_args { + unsigned int pm_thrshld_cntr; +}; + +/** + * struct demod_wrapper_pm_get_power_args - + * argumants that should be passed to DEMOD_WRAPPER_PM_GET_POWER ioctl. + * @pm_power: the parameter will hold the value gotten from + * BCDEM_REGS_PM_RO_POWER + */ +struct demod_wrapper_pm_get_power_args { + unsigned int pm_power; +}; + +#define DEMOD_WRAPPER_BASIC_CMDS_NUM 1 + +/** + * ioctl cmd : DEMOD_WRAPPER_SET_PATH - + * Performs initialization and configuration of components + * in demod_wrapper that are needed for the requested path. + * If there is any path conflict - overrides. + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_SET_PATH _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ + 1, struct demod_wrapper_set_path_args) + +/** + * ioctl cmd : DEMOD_WRAPPER_SET_PATH_DTV_SAT - + * Performs initialization and configuration of components + * in demod_wrapper that are needed for dtv sat path. + * If there is any path conflict - overrides. + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_SET_PATH_DTV_SAT _IOW(\ + DEMOD_WRAPPER_BASIC_CMDS_NUM, 2,\ + struct demod_wrapper_set_path_dtv_sat_args) + +/** + * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - + * Releases the requested path. + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_RELEASE_PATH _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ + 3, struct demod_wrapper_release_path_args) + +/** + * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - + * Sets the out of the ts-bridge according to received + * argument. Sets the in as parallel. + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_TS_BRIDGE_INIT _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ + 4, struct demod_wrapper_init_ts_bridge_args) + +/** + * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - + * Enables the ts-bridge. If ts-bridge was'nt initialized + * (with DEMOD_WRAPPER_TS_BRIDGE_INIT) sets default values: + * in - parallel + * out - parallel + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_TS_BRIDGE_ENABLE _IO(DEMOD_WRAPPER_BASIC_CMDS_NUM, 5) + +/** + * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - + * Disables the ts-bridge. + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_TS_BRIDGE_DISABLE _IO(\ + DEMOD_WRAPPER_BASIC_CMDS_NUM, 6) + +/** + * ioctl cmd : DEMOD_WRAPPER_PM_SET_PARAMS - + * Sets values for BCDEM_REGS_PM_LOOP_CNTR and BCDEM_REGS_PM_PARAMS_THRESHOLD + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_PM_SET_PARAMS _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ + 7, struct demod_wrapper_pm_set_params_args) + +/** + * ioctl cmd : DEMOD_WRAPPER_PM_GET_THR_CNTR - + * Gets the value of the BCDEM_REGS_OM_RO_THRSHLD_CNTR + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_PM_GET_THRSHLD_CNTR _IOR(\ + DEMOD_WRAPPER_BASIC_CMDS_NUM,\ + 8, struct demod_wrapper_pm_get_thr_cntr_args) + +/** + * ioctl cmd : DEMOD_WRAPPER_PM_GET_POWER - + * Gets the value of the BCDEM_REGS_RO_POWER + * Returns 0 in success. + */ +#define DEMOD_WRAPPER_PM_GET_POWER _IOR(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ + 9, struct demod_wrapper_pm_get_power_args) + +#endif /* _DEMOD_WRAPPER_H_ */ diff --git a/kernel_headers/linux/dlm.h b/kernel_headers/linux/dlm.h new file mode 100644 index 0000000..6120d50 --- /dev/null +++ b/kernel_headers/linux/dlm.h @@ -0,0 +1,75 @@ +/****************************************************************************** +******************************************************************************* +** +** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. +** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. +** +** This copyrighted material is made available to anyone wishing to use, +** modify, copy, or redistribute it subject to the terms and conditions +** of the GNU General Public License v.2. +** +******************************************************************************* +******************************************************************************/ + +#ifndef __DLM_DOT_H__ +#define __DLM_DOT_H__ + +/* + * Interface to Distributed Lock Manager (DLM) + * routines and structures to use DLM lockspaces + */ + +/* Lock levels and flags are here */ +#include +#include + +typedef void dlm_lockspace_t; + +/* + * Lock status block + * + * Use this structure to specify the contents of the lock value block. For a + * conversion request, this structure is used to specify the lock ID of the + * lock. DLM writes the status of the lock request and the lock ID assigned + * to the request in the lock status block. + * + * sb_lkid: the returned lock ID. It is set on new (non-conversion) requests. + * It is available when dlm_lock returns. + * + * sb_lvbptr: saves or returns the contents of the lock's LVB according to rules + * shown for the DLM_LKF_VALBLK flag. + * + * sb_flags: DLM_SBF_DEMOTED is returned if in the process of promoting a lock, + * it was first demoted to NL to avoid conversion deadlock. + * DLM_SBF_VALNOTVALID is returned if the resource's LVB is marked invalid. + * + * sb_status: the returned status of the lock request set prior to AST + * execution. Possible return values: + * + * 0 if lock request was successful + * -EAGAIN if request would block and is flagged DLM_LKF_NOQUEUE + * -DLM_EUNLOCK if unlock request was successful + * -DLM_ECANCEL if a cancel completed successfully + * -EDEADLK if a deadlock was detected + * -ETIMEDOUT if the lock request was canceled due to a timeout + */ + +#define DLM_SBF_DEMOTED 0x01 +#define DLM_SBF_VALNOTVALID 0x02 +#define DLM_SBF_ALTMODE 0x04 + +struct dlm_lksb { + int sb_status; + __u32 sb_lkid; + char sb_flags; + char * sb_lvbptr; +}; + +/* dlm_new_lockspace() flags */ + +#define DLM_LSFL_TIMEWARN 0x00000002 +#define DLM_LSFL_FS 0x00000004 +#define DLM_LSFL_NEWEXCL 0x00000008 + + +#endif /* __DLM_DOT_H__ */ diff --git a/kernel_headers/linux/dlm_device.h b/kernel_headers/linux/dlm_device.h new file mode 100644 index 0000000..62d9ebf --- /dev/null +++ b/kernel_headers/linux/dlm_device.h @@ -0,0 +1,108 @@ +/****************************************************************************** +******************************************************************************* +** +** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. +** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. +** +** This copyrighted material is made available to anyone wishing to use, +** modify, copy, or redistribute it subject to the terms and conditions +** of the GNU General Public License v.2. +** +******************************************************************************* +******************************************************************************/ + +#ifndef _LINUX_DLM_DEVICE_H +#define _LINUX_DLM_DEVICE_H + +/* This is the device interface for dlm, most users will use a library + * interface. + */ + +#include +#include + +#define DLM_USER_LVB_LEN 32 + +/* Version of the device interface */ +#define DLM_DEVICE_VERSION_MAJOR 6 +#define DLM_DEVICE_VERSION_MINOR 0 +#define DLM_DEVICE_VERSION_PATCH 1 + +/* struct passed to the lock write */ +struct dlm_lock_params { + __u8 mode; + __u8 namelen; + __u16 unused; + __u32 flags; + __u32 lkid; + __u32 parent; + __u64 xid; + __u64 timeout; + void *castparam; + void *castaddr; + void *bastparam; + void *bastaddr; + struct dlm_lksb *lksb; + char lvb[DLM_USER_LVB_LEN]; + char name[0]; +}; + +struct dlm_lspace_params { + __u32 flags; + __u32 minor; + char name[0]; +}; + +struct dlm_purge_params { + __u32 nodeid; + __u32 pid; +}; + +struct dlm_write_request { + __u32 version[3]; + __u8 cmd; + __u8 is64bit; + __u8 unused[2]; + + union { + struct dlm_lock_params lock; + struct dlm_lspace_params lspace; + struct dlm_purge_params purge; + } i; +}; + +struct dlm_device_version { + __u32 version[3]; +}; + +/* struct read from the "device" fd, + consists mainly of userspace pointers for the library to use */ + +struct dlm_lock_result { + __u32 version[3]; + __u32 length; + void * user_astaddr; + void * user_astparam; + struct dlm_lksb * user_lksb; + struct dlm_lksb lksb; + __u8 bast_mode; + __u8 unused[3]; + /* Offsets may be zero if no data is present */ + __u32 lvb_offset; +}; + +/* Commands passed to the device */ +#define DLM_USER_LOCK 1 +#define DLM_USER_UNLOCK 2 +#define DLM_USER_QUERY 3 +#define DLM_USER_CREATE_LOCKSPACE 4 +#define DLM_USER_REMOVE_LOCKSPACE 5 +#define DLM_USER_PURGE 6 +#define DLM_USER_DEADLOCK 7 + +/* Lockspace flags */ +#define DLM_USER_LSFLG_AUTOFREE 1 +#define DLM_USER_LSFLG_FORCEFREE 2 + +#endif + diff --git a/kernel_headers/linux/dlm_netlink.h b/kernel_headers/linux/dlm_netlink.h new file mode 100644 index 0000000..647c8ef --- /dev/null +++ b/kernel_headers/linux/dlm_netlink.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2007 Red Hat, Inc. All rights reserved. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU General Public License v.2. + */ + +#ifndef _DLM_NETLINK_H +#define _DLM_NETLINK_H + +#include + +enum { + DLM_STATUS_WAITING = 1, + DLM_STATUS_GRANTED = 2, + DLM_STATUS_CONVERT = 3, +}; + +#define DLM_LOCK_DATA_VERSION 1 + +struct dlm_lock_data { + __u16 version; + __u32 lockspace_id; + int nodeid; + int ownpid; + __u32 id; + __u32 remid; + __u64 xid; + __s8 status; + __s8 grmode; + __s8 rqmode; + unsigned long timestamp; + int resource_namelen; + char resource_name[DLM_RESNAME_MAXLEN]; +}; + +enum { + DLM_CMD_UNSPEC = 0, + DLM_CMD_HELLO, /* user->kernel */ + DLM_CMD_TIMEOUT, /* kernel->user */ + __DLM_CMD_MAX, +}; + +#define DLM_CMD_MAX (__DLM_CMD_MAX - 1) + +enum { + DLM_TYPE_UNSPEC = 0, + DLM_TYPE_LOCK, + __DLM_TYPE_MAX, +}; + +#define DLM_TYPE_MAX (__DLM_TYPE_MAX - 1) + +#define DLM_GENL_VERSION 0x1 +#define DLM_GENL_NAME "DLM" + +#endif /* _DLM_NETLINK_H */ diff --git a/kernel_headers/linux/dlm_plock.h b/kernel_headers/linux/dlm_plock.h new file mode 100644 index 0000000..6403ea2 --- /dev/null +++ b/kernel_headers/linux/dlm_plock.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU General Public License v.2. + */ + +#ifndef __DLM_PLOCK_DOT_H__ +#define __DLM_PLOCK_DOT_H__ + +#include + +#define DLM_PLOCK_MISC_NAME "dlm_plock" + +#define DLM_PLOCK_VERSION_MAJOR 1 +#define DLM_PLOCK_VERSION_MINOR 2 +#define DLM_PLOCK_VERSION_PATCH 0 + +enum { + DLM_PLOCK_OP_LOCK = 1, + DLM_PLOCK_OP_UNLOCK, + DLM_PLOCK_OP_GET, +}; + +#define DLM_PLOCK_FL_CLOSE 1 + +struct dlm_plock_info { + __u32 version[3]; + __u8 optype; + __u8 ex; + __u8 wait; + __u8 flags; + __u32 pid; + __s32 nodeid; + __s32 rv; + __u32 fsid; + __u64 number; + __u64 start; + __u64 end; + __u64 owner; +}; + + +#endif /* __DLM_PLOCK_DOT_H__ */ diff --git a/kernel_headers/linux/dlmconstants.h b/kernel_headers/linux/dlmconstants.h new file mode 100644 index 0000000..47bf08d --- /dev/null +++ b/kernel_headers/linux/dlmconstants.h @@ -0,0 +1,163 @@ +/****************************************************************************** +******************************************************************************* +** +** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. +** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. +** +** This copyrighted material is made available to anyone wishing to use, +** modify, copy, or redistribute it subject to the terms and conditions +** of the GNU General Public License v.2. +** +******************************************************************************* +******************************************************************************/ + +#ifndef __DLMCONSTANTS_DOT_H__ +#define __DLMCONSTANTS_DOT_H__ + +/* + * Constants used by DLM interface. + */ + +#define DLM_LOCKSPACE_LEN 64 +#define DLM_RESNAME_MAXLEN 64 + + +/* + * Lock Modes + */ + +#define DLM_LOCK_IV (-1) /* invalid */ +#define DLM_LOCK_NL 0 /* null */ +#define DLM_LOCK_CR 1 /* concurrent read */ +#define DLM_LOCK_CW 2 /* concurrent write */ +#define DLM_LOCK_PR 3 /* protected read */ +#define DLM_LOCK_PW 4 /* protected write */ +#define DLM_LOCK_EX 5 /* exclusive */ + + +/* + * Flags to dlm_lock + * + * DLM_LKF_NOQUEUE + * + * Do not queue the lock request on the wait queue if it cannot be granted + * immediately. If the lock cannot be granted because of this flag, DLM will + * either return -EAGAIN from the dlm_lock call or will return 0 from + * dlm_lock and -EAGAIN in the lock status block when the AST is executed. + * + * DLM_LKF_CANCEL + * + * Used to cancel a pending lock request or conversion. A converting lock is + * returned to its previously granted mode. + * + * DLM_LKF_CONVERT + * + * Indicates a lock conversion request. For conversions the name and namelen + * are ignored and the lock ID in the LKSB is used to identify the lock. + * + * DLM_LKF_VALBLK + * + * Requests DLM to return the current contents of the lock value block in the + * lock status block. When this flag is set in a lock conversion from PW or EX + * modes, DLM assigns the value specified in the lock status block to the lock + * value block of the lock resource. The LVB is a DLM_LVB_LEN size array + * containing application-specific information. + * + * DLM_LKF_QUECVT + * + * Force a conversion request to be queued, even if it is compatible with + * the granted modes of other locks on the same resource. + * + * DLM_LKF_IVVALBLK + * + * Invalidate the lock value block. + * + * DLM_LKF_CONVDEADLK + * + * Allows the dlm to resolve conversion deadlocks internally by demoting the + * granted mode of a converting lock to NL. The DLM_SBF_DEMOTED flag is + * returned for a conversion that's been effected by this. + * + * DLM_LKF_PERSISTENT + * + * Only relevant to locks originating in userspace. A persistent lock will not + * be removed if the process holding the lock exits. + * + * DLM_LKF_NODLCKWT + * + * Do not cancel the lock if it gets into conversion deadlock. + * Exclude this lock from being monitored due to DLM_LSFL_TIMEWARN. + * + * DLM_LKF_NODLCKBLK + * + * net yet implemented + * + * DLM_LKF_EXPEDITE + * + * Used only with new requests for NL mode locks. Tells the lock manager + * to grant the lock, ignoring other locks in convert and wait queues. + * + * DLM_LKF_NOQUEUEBAST + * + * Send blocking AST's before returning -EAGAIN to the caller. It is only + * used along with the NOQUEUE flag. Blocking AST's are not sent for failed + * NOQUEUE requests otherwise. + * + * DLM_LKF_HEADQUE + * + * Add a lock to the head of the convert or wait queue rather than the tail. + * + * DLM_LKF_NOORDER + * + * Disregard the standard grant order rules and grant a lock as soon as it + * is compatible with other granted locks. + * + * DLM_LKF_ORPHAN + * + * not yet implemented + * + * DLM_LKF_ALTPR + * + * If the requested mode cannot be granted immediately, try to grant the lock + * in PR mode instead. If this alternate mode is granted instead of the + * requested mode, DLM_SBF_ALTMODE is returned in the lksb. + * + * DLM_LKF_ALTCW + * + * The same as ALTPR, but the alternate mode is CW. + * + * DLM_LKF_FORCEUNLOCK + * + * Unlock the lock even if it is converting or waiting or has sublocks. + * Only really for use by the userland device.c code. + * + */ + +#define DLM_LKF_NOQUEUE 0x00000001 +#define DLM_LKF_CANCEL 0x00000002 +#define DLM_LKF_CONVERT 0x00000004 +#define DLM_LKF_VALBLK 0x00000008 +#define DLM_LKF_QUECVT 0x00000010 +#define DLM_LKF_IVVALBLK 0x00000020 +#define DLM_LKF_CONVDEADLK 0x00000040 +#define DLM_LKF_PERSISTENT 0x00000080 +#define DLM_LKF_NODLCKWT 0x00000100 +#define DLM_LKF_NODLCKBLK 0x00000200 +#define DLM_LKF_EXPEDITE 0x00000400 +#define DLM_LKF_NOQUEUEBAST 0x00000800 +#define DLM_LKF_HEADQUE 0x00001000 +#define DLM_LKF_NOORDER 0x00002000 +#define DLM_LKF_ORPHAN 0x00004000 +#define DLM_LKF_ALTPR 0x00008000 +#define DLM_LKF_ALTCW 0x00010000 +#define DLM_LKF_FORCEUNLOCK 0x00020000 +#define DLM_LKF_TIMEOUT 0x00040000 + +/* + * Some return codes that are not in errno.h + */ + +#define DLM_ECANCEL 0x10001 +#define DLM_EUNLOCK 0x10002 + +#endif /* __DLMCONSTANTS_DOT_H__ */ diff --git a/kernel_headers/linux/dm-ioctl.h b/kernel_headers/linux/dm-ioctl.h new file mode 100644 index 0000000..7e75b6f --- /dev/null +++ b/kernel_headers/linux/dm-ioctl.h @@ -0,0 +1,344 @@ +/* + * Copyright (C) 2001 - 2003 Sistina Software (UK) Limited. + * Copyright (C) 2004 - 2009 Red Hat, Inc. All rights reserved. + * + * This file is released under the LGPL. + */ + +#ifndef _LINUX_DM_IOCTL_V4_H +#define _LINUX_DM_IOCTL_V4_H + +#include + +#define DM_DIR "mapper" /* Slashes not supported */ +#define DM_CONTROL_NODE "control" +#define DM_MAX_TYPE_NAME 16 +#define DM_NAME_LEN 128 +#define DM_UUID_LEN 129 + +/* + * A traditional ioctl interface for the device mapper. + * + * Each device can have two tables associated with it, an + * 'active' table which is the one currently used by io passing + * through the device, and an 'inactive' one which is a table + * that is being prepared as a replacement for the 'active' one. + * + * DM_VERSION: + * Just get the version information for the ioctl interface. + * + * DM_REMOVE_ALL: + * Remove all dm devices, destroy all tables. Only really used + * for debug. + * + * DM_LIST_DEVICES: + * Get a list of all the dm device names. + * + * DM_DEV_CREATE: + * Create a new device, neither the 'active' or 'inactive' table + * slots will be filled. The device will be in suspended state + * after creation, however any io to the device will get errored + * since it will be out-of-bounds. + * + * DM_DEV_REMOVE: + * Remove a device, destroy any tables. + * + * DM_DEV_RENAME: + * Rename a device or set its uuid if none was previously supplied. + * + * DM_SUSPEND: + * This performs both suspend and resume, depending which flag is + * passed in. + * Suspend: This command will not return until all pending io to + * the device has completed. Further io will be deferred until + * the device is resumed. + * Resume: It is no longer an error to issue this command on an + * unsuspended device. If a table is present in the 'inactive' + * slot, it will be moved to the active slot, then the old table + * from the active slot will be _destroyed_. Finally the device + * is resumed. + * + * DM_DEV_STATUS: + * Retrieves the status for the table in the 'active' slot. + * + * DM_DEV_WAIT: + * Wait for a significant event to occur to the device. This + * could either be caused by an event triggered by one of the + * targets of the table in the 'active' slot, or a table change. + * + * DM_TABLE_LOAD: + * Load a table into the 'inactive' slot for the device. The + * device does _not_ need to be suspended prior to this command. + * + * DM_TABLE_CLEAR: + * Destroy any table in the 'inactive' slot (ie. abort). + * + * DM_TABLE_DEPS: + * Return a set of device dependencies for the 'active' table. + * + * DM_TABLE_STATUS: + * Return the targets status for the 'active' table. + * + * DM_TARGET_MSG: + * Pass a message string to the target at a specific offset of a device. + * + * DM_DEV_SET_GEOMETRY: + * Set the geometry of a device by passing in a string in this format: + * + * "cylinders heads sectors_per_track start_sector" + * + * Beware that CHS geometry is nearly obsolete and only provided + * for compatibility with dm devices that can be booted by a PC + * BIOS. See struct hd_geometry for range limits. Also note that + * the geometry is erased if the device size changes. + */ + +/* + * All ioctl arguments consist of a single chunk of memory, with + * this structure at the start. If a uuid is specified any + * lookup (eg. for a DM_INFO) will be done on that, *not* the + * name. + */ +struct dm_ioctl { + /* + * The version number is made up of three parts: + * major - no backward or forward compatibility, + * minor - only backwards compatible, + * patch - both backwards and forwards compatible. + * + * All clients of the ioctl interface should fill in the + * version number of the interface that they were + * compiled with. + * + * All recognised ioctl commands (ie. those that don't + * return -ENOTTY) fill out this field, even if the + * command failed. + */ + __u32 version[3]; /* in/out */ + __u32 data_size; /* total size of data passed in + * including this struct */ + + __u32 data_start; /* offset to start of data + * relative to start of this struct */ + + __u32 target_count; /* in/out */ + __s32 open_count; /* out */ + __u32 flags; /* in/out */ + + /* + * event_nr holds either the event number (input and output) or the + * udev cookie value (input only). + * The DM_DEV_WAIT ioctl takes an event number as input. + * The DM_SUSPEND, DM_DEV_REMOVE and DM_DEV_RENAME ioctls + * use the field as a cookie to return in the DM_COOKIE + * variable with the uevents they issue. + * For output, the ioctls return the event number, not the cookie. + */ + __u32 event_nr; /* in/out */ + __u32 padding; + + __u64 dev; /* in/out */ + + char name[DM_NAME_LEN]; /* device name */ + char uuid[DM_UUID_LEN]; /* unique identifier for + * the block device */ + char data[7]; /* padding or data */ +}; + +/* + * Used to specify tables. These structures appear after the + * dm_ioctl. + */ +struct dm_target_spec { + __u64 sector_start; + __u64 length; + __s32 status; /* used when reading from kernel only */ + + /* + * Location of the next dm_target_spec. + * - When specifying targets on a DM_TABLE_LOAD command, this value is + * the number of bytes from the start of the "current" dm_target_spec + * to the start of the "next" dm_target_spec. + * - When retrieving targets on a DM_TABLE_STATUS command, this value + * is the number of bytes from the start of the first dm_target_spec + * (that follows the dm_ioctl struct) to the start of the "next" + * dm_target_spec. + */ + __u32 next; + + char target_type[DM_MAX_TYPE_NAME]; + + /* + * Parameter string starts immediately after this object. + * Be careful to add padding after string to ensure correct + * alignment of subsequent dm_target_spec. + */ +}; + +/* + * Used to retrieve the target dependencies. + */ +struct dm_target_deps { + __u32 count; /* Array size */ + __u32 padding; /* unused */ + __u64 dev[0]; /* out */ +}; + +/* + * Used to get a list of all dm devices. + */ +struct dm_name_list { + __u64 dev; + __u32 next; /* offset to the next record from + the _start_ of this */ + char name[0]; +}; + +/* + * Used to retrieve the target versions + */ +struct dm_target_versions { + __u32 next; + __u32 version[3]; + + char name[0]; +}; + +/* + * Used to pass message to a target + */ +struct dm_target_msg { + __u64 sector; /* Device sector */ + + char message[0]; +}; + +/* + * If you change this make sure you make the corresponding change + * to dm-ioctl.c:lookup_ioctl() + */ +enum { + /* Top level cmds */ + DM_VERSION_CMD = 0, + DM_REMOVE_ALL_CMD, + DM_LIST_DEVICES_CMD, + + /* device level cmds */ + DM_DEV_CREATE_CMD, + DM_DEV_REMOVE_CMD, + DM_DEV_RENAME_CMD, + DM_DEV_SUSPEND_CMD, + DM_DEV_STATUS_CMD, + DM_DEV_WAIT_CMD, + + /* Table level cmds */ + DM_TABLE_LOAD_CMD, + DM_TABLE_CLEAR_CMD, + DM_TABLE_DEPS_CMD, + DM_TABLE_STATUS_CMD, + + /* Added later */ + DM_LIST_VERSIONS_CMD, + DM_TARGET_MSG_CMD, + DM_DEV_SET_GEOMETRY_CMD +}; + +#define DM_IOCTL 0xfd + +#define DM_VERSION _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl) +#define DM_REMOVE_ALL _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl) +#define DM_LIST_DEVICES _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl) + +#define DM_DEV_CREATE _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl) +#define DM_DEV_REMOVE _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl) +#define DM_DEV_RENAME _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl) +#define DM_DEV_SUSPEND _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl) +#define DM_DEV_STATUS _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl) +#define DM_DEV_WAIT _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl) + +#define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl) +#define DM_TABLE_CLEAR _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl) +#define DM_TABLE_DEPS _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl) +#define DM_TABLE_STATUS _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl) + +#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl) + +#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl) +#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) + +#define DM_VERSION_MAJOR 4 +#define DM_VERSION_MINOR 24 +#define DM_VERSION_PATCHLEVEL 0 +#define DM_VERSION_EXTRA "-ioctl (2013-01-15)" + +/* Status bits */ +#define DM_READONLY_FLAG (1 << 0) /* In/Out */ +#define DM_SUSPEND_FLAG (1 << 1) /* In/Out */ +#define DM_PERSISTENT_DEV_FLAG (1 << 3) /* In */ + +/* + * Flag passed into ioctl STATUS command to get table information + * rather than current status. + */ +#define DM_STATUS_TABLE_FLAG (1 << 4) /* In */ + +/* + * Flags that indicate whether a table is present in either of + * the two table slots that a device has. + */ +#define DM_ACTIVE_PRESENT_FLAG (1 << 5) /* Out */ +#define DM_INACTIVE_PRESENT_FLAG (1 << 6) /* Out */ + +/* + * Indicates that the buffer passed in wasn't big enough for the + * results. + */ +#define DM_BUFFER_FULL_FLAG (1 << 8) /* Out */ + +/* + * This flag is now ignored. + */ +#define DM_SKIP_BDGET_FLAG (1 << 9) /* In */ + +/* + * Set this to avoid attempting to freeze any filesystem when suspending. + */ +#define DM_SKIP_LOCKFS_FLAG (1 << 10) /* In */ + +/* + * Set this to suspend without flushing queued ios. + * Also disables flushing uncommitted changes in the thin target before + * generating statistics for DM_TABLE_STATUS and DM_DEV_WAIT. + */ +#define DM_NOFLUSH_FLAG (1 << 11) /* In */ + +/* + * If set, any table information returned will relate to the inactive + * table instead of the live one. Always check DM_INACTIVE_PRESENT_FLAG + * is set before using the data returned. + */ +#define DM_QUERY_INACTIVE_TABLE_FLAG (1 << 12) /* In */ + +/* + * If set, a uevent was generated for which the caller may need to wait. + */ +#define DM_UEVENT_GENERATED_FLAG (1 << 13) /* Out */ + +/* + * If set, rename changes the uuid not the name. Only permitted + * if no uuid was previously supplied: an existing uuid cannot be changed. + */ +#define DM_UUID_FLAG (1 << 14) /* In */ + +/* + * If set, all buffers are wiped after use. Use when sending + * or requesting sensitive data such as an encryption key. + */ +#define DM_SECURE_DATA_FLAG (1 << 15) /* In */ + +/* + * If set, a message generated output data. + */ +#define DM_DATA_OUT_FLAG (1 << 16) /* Out */ + +#endif /* _LINUX_DM_IOCTL_H */ diff --git a/kernel_headers/linux/dm-log-userspace.h b/kernel_headers/linux/dm-log-userspace.h new file mode 100644 index 0000000..0678c2a --- /dev/null +++ b/kernel_headers/linux/dm-log-userspace.h @@ -0,0 +1,416 @@ +/* + * Copyright (C) 2006-2009 Red Hat, Inc. + * + * This file is released under the LGPL. + */ + +#ifndef __DM_LOG_USERSPACE_H__ +#define __DM_LOG_USERSPACE_H__ + +#include /* For DM_UUID_LEN */ + +/* + * The device-mapper userspace log module consists of a kernel component and + * a user-space component. The kernel component implements the API defined + * in dm-dirty-log.h. Its purpose is simply to pass the parameters and + * return values of those API functions between kernel and user-space. + * + * Below are defined the 'request_types' - DM_ULOG_CTR, DM_ULOG_DTR, etc. + * These request types represent the different functions in the device-mapper + * dirty log API. Each of these is described in more detail below. + * + * The user-space program must listen for requests from the kernel (representing + * the various API functions) and process them. + * + * User-space begins by setting up the communication link (error checking + * removed for clarity): + * fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR); + * addr.nl_family = AF_NETLINK; + * addr.nl_groups = CN_IDX_DM; + * addr.nl_pid = 0; + * r = bind(fd, (struct sockaddr *) &addr, sizeof(addr)); + * opt = addr.nl_groups; + * setsockopt(fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP, &opt, sizeof(opt)); + * + * User-space will then wait to receive requests form the kernel, which it + * will process as described below. The requests are received in the form, + * ((struct dm_ulog_request) + (additional data)). Depending on the request + * type, there may or may not be 'additional data'. In the descriptions below, + * you will see 'Payload-to-userspace' and 'Payload-to-kernel'. The + * 'Payload-to-userspace' is what the kernel sends in 'additional data' as + * necessary parameters to complete the request. The 'Payload-to-kernel' is + * the 'additional data' returned to the kernel that contains the necessary + * results of the request. The 'data_size' field in the dm_ulog_request + * structure denotes the availability and amount of payload data. + */ + +/* + * DM_ULOG_CTR corresponds to (found in dm-dirty-log.h): + * int (*ctr)(struct dm_dirty_log *log, struct dm_target *ti, + * unsigned argc, char **argv); + * + * Payload-to-userspace: + * A single string containing all the argv arguments separated by ' 's + * Payload-to-kernel: + * A NUL-terminated string that is the name of the device that is used + * as the backing store for the log data. 'dm_get_device' will be called + * on this device. ('dm_put_device' will be called on this device + * automatically after calling DM_ULOG_DTR.) If there is no device needed + * for log data, 'data_size' in the dm_ulog_request struct should be 0. + * + * The UUID contained in the dm_ulog_request structure is the reference that + * will be used by all request types to a specific log. The constructor must + * record this association with the instance created. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field, filling the + * data field with the log device if necessary, and setting 'data_size' + * appropriately. + */ +#define DM_ULOG_CTR 1 + +/* + * DM_ULOG_DTR corresponds to (found in dm-dirty-log.h): + * void (*dtr)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * A single string containing all the argv arguments separated by ' 's + * Payload-to-kernel: + * None. ('data_size' in the dm_ulog_request struct should be 0.) + * + * The UUID contained in the dm_ulog_request structure is all that is + * necessary to identify the log instance being destroyed. There is no + * payload data. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and clearing + * 'data_size' appropriately. + */ +#define DM_ULOG_DTR 2 + +/* + * DM_ULOG_PRESUSPEND corresponds to (found in dm-dirty-log.h): + * int (*presuspend)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * None. + * + * The UUID contained in the dm_ulog_request structure is all that is + * necessary to identify the log instance being presuspended. There is no + * payload data. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_PRESUSPEND 3 + +/* + * DM_ULOG_POSTSUSPEND corresponds to (found in dm-dirty-log.h): + * int (*postsuspend)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * None. + * + * The UUID contained in the dm_ulog_request structure is all that is + * necessary to identify the log instance being postsuspended. There is no + * payload data. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_POSTSUSPEND 4 + +/* + * DM_ULOG_RESUME corresponds to (found in dm-dirty-log.h): + * int (*resume)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * None. + * + * The UUID contained in the dm_ulog_request structure is all that is + * necessary to identify the log instance being resumed. There is no + * payload data. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_RESUME 5 + +/* + * DM_ULOG_GET_REGION_SIZE corresponds to (found in dm-dirty-log.h): + * uint32_t (*get_region_size)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * uint64_t - contains the region size + * + * The region size is something that was determined at constructor time. + * It is returned in the payload area and 'data_size' is set to + * reflect this. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field appropriately. + */ +#define DM_ULOG_GET_REGION_SIZE 6 + +/* + * DM_ULOG_IS_CLEAN corresponds to (found in dm-dirty-log.h): + * int (*is_clean)(struct dm_dirty_log *log, region_t region); + * + * Payload-to-userspace: + * uint64_t - the region to get clean status on + * Payload-to-kernel: + * int64_t - 1 if clean, 0 otherwise + * + * Payload is sizeof(uint64_t) and contains the region for which the clean + * status is being made. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - filling the payload with 0 (not clean) or + * 1 (clean), setting 'data_size' and 'error' appropriately. + */ +#define DM_ULOG_IS_CLEAN 7 + +/* + * DM_ULOG_IN_SYNC corresponds to (found in dm-dirty-log.h): + * int (*in_sync)(struct dm_dirty_log *log, region_t region, + * int can_block); + * + * Payload-to-userspace: + * uint64_t - the region to get sync status on + * Payload-to-kernel: + * int64_t - 1 if in-sync, 0 otherwise + * + * Exactly the same as 'is_clean' above, except this time asking "has the + * region been recovered?" vs. "is the region not being modified?" + */ +#define DM_ULOG_IN_SYNC 8 + +/* + * DM_ULOG_FLUSH corresponds to (found in dm-dirty-log.h): + * int (*flush)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * None. + * + * No incoming or outgoing payload. Simply flush log state to disk. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and clearing + * 'data_size' appropriately. + */ +#define DM_ULOG_FLUSH 9 + +/* + * DM_ULOG_MARK_REGION corresponds to (found in dm-dirty-log.h): + * void (*mark_region)(struct dm_dirty_log *log, region_t region); + * + * Payload-to-userspace: + * uint64_t [] - region(s) to mark + * Payload-to-kernel: + * None. + * + * Incoming payload contains the one or more regions to mark dirty. + * The number of regions contained in the payload can be determined from + * 'data_size/sizeof(uint64_t)'. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and clearing + * 'data_size' appropriately. + */ +#define DM_ULOG_MARK_REGION 10 + +/* + * DM_ULOG_CLEAR_REGION corresponds to (found in dm-dirty-log.h): + * void (*clear_region)(struct dm_dirty_log *log, region_t region); + * + * Payload-to-userspace: + * uint64_t [] - region(s) to clear + * Payload-to-kernel: + * None. + * + * Incoming payload contains the one or more regions to mark clean. + * The number of regions contained in the payload can be determined from + * 'data_size/sizeof(uint64_t)'. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and clearing + * 'data_size' appropriately. + */ +#define DM_ULOG_CLEAR_REGION 11 + +/* + * DM_ULOG_GET_RESYNC_WORK corresponds to (found in dm-dirty-log.h): + * int (*get_resync_work)(struct dm_dirty_log *log, region_t *region); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * { + * int64_t i; -- 1 if recovery necessary, 0 otherwise + * uint64_t r; -- The region to recover if i=1 + * } + * 'data_size' should be set appropriately. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field appropriately. + */ +#define DM_ULOG_GET_RESYNC_WORK 12 + +/* + * DM_ULOG_SET_REGION_SYNC corresponds to (found in dm-dirty-log.h): + * void (*set_region_sync)(struct dm_dirty_log *log, + * region_t region, int in_sync); + * + * Payload-to-userspace: + * { + * uint64_t - region to set sync state on + * int64_t - 0 if not-in-sync, 1 if in-sync + * } + * Payload-to-kernel: + * None. + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and clearing + * 'data_size' appropriately. + */ +#define DM_ULOG_SET_REGION_SYNC 13 + +/* + * DM_ULOG_GET_SYNC_COUNT corresponds to (found in dm-dirty-log.h): + * region_t (*get_sync_count)(struct dm_dirty_log *log); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * uint64_t - the number of in-sync regions + * + * No incoming payload. Kernel-bound payload contains the number of + * regions that are in-sync (in a size_t). + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_GET_SYNC_COUNT 14 + +/* + * DM_ULOG_STATUS_INFO corresponds to (found in dm-dirty-log.h): + * int (*status)(struct dm_dirty_log *log, STATUSTYPE_INFO, + * char *result, unsigned maxlen); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * Character string containing STATUSTYPE_INFO + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_STATUS_INFO 15 + +/* + * DM_ULOG_STATUS_TABLE corresponds to (found in dm-dirty-log.h): + * int (*status)(struct dm_dirty_log *log, STATUSTYPE_TABLE, + * char *result, unsigned maxlen); + * + * Payload-to-userspace: + * None. + * Payload-to-kernel: + * Character string containing STATUSTYPE_TABLE + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_STATUS_TABLE 16 + +/* + * DM_ULOG_IS_REMOTE_RECOVERING corresponds to (found in dm-dirty-log.h): + * int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region); + * + * Payload-to-userspace: + * uint64_t - region to determine recovery status on + * Payload-to-kernel: + * { + * int64_t is_recovering; -- 0 if no, 1 if yes + * uint64_t in_sync_hint; -- lowest region still needing resync + * } + * + * When the request has been processed, user-space must return the + * dm_ulog_request to the kernel - setting the 'error' field and + * 'data_size' appropriately. + */ +#define DM_ULOG_IS_REMOTE_RECOVERING 17 + +/* + * (DM_ULOG_REQUEST_MASK & request_type) to get the request type + * + * Payload-to-userspace: + * A single string containing all the argv arguments separated by ' 's + * Payload-to-kernel: + * None. ('data_size' in the dm_ulog_request struct should be 0.) + * + * We are reserving 8 bits of the 32-bit 'request_type' field for the + * various request types above. The remaining 24-bits are currently + * set to zero and are reserved for future use and compatibility concerns. + * + * User-space should always use DM_ULOG_REQUEST_TYPE to acquire the + * request type from the 'request_type' field to maintain forward compatibility. + */ +#define DM_ULOG_REQUEST_MASK 0xFF +#define DM_ULOG_REQUEST_TYPE(request_type) \ + (DM_ULOG_REQUEST_MASK & (request_type)) + +/* + * DM_ULOG_REQUEST_VERSION is incremented when there is a + * change to the way information is passed between kernel + * and userspace. This could be a structure change of + * dm_ulog_request or a change in the way requests are + * issued/handled. Changes are outlined here: + * version 1: Initial implementation + * version 2: DM_ULOG_CTR allowed to return a string containing a + * device name that is to be registered with DM via + * 'dm_get_device'. + */ +#define DM_ULOG_REQUEST_VERSION 2 + +struct dm_ulog_request { + /* + * The local unique identifier (luid) and the universally unique + * identifier (uuid) are used to tie a request to a specific + * mirror log. A single machine log could probably make due with + * just the 'luid', but a cluster-aware log must use the 'uuid' and + * the 'luid'. The uuid is what is required for node to node + * communication concerning a particular log, but the 'luid' helps + * differentiate between logs that are being swapped and have the + * same 'uuid'. (Think "live" and "inactive" device-mapper tables.) + */ + uint64_t luid; + char uuid[DM_UUID_LEN]; + char padding[3]; /* Padding because DM_UUID_LEN = 129 */ + + uint32_t version; /* See DM_ULOG_REQUEST_VERSION */ + int32_t error; /* Used to report back processing errors */ + + uint32_t seq; /* Sequence number for request */ + uint32_t request_type; /* DM_ULOG_* defined above */ + uint32_t data_size; /* How much data (not including this struct) */ + + char data[0]; +}; + +#endif /* __DM_LOG_USERSPACE_H__ */ diff --git a/kernel_headers/linux/dn.h b/kernel_headers/linux/dn.h new file mode 100644 index 0000000..9c50445 --- /dev/null +++ b/kernel_headers/linux/dn.h @@ -0,0 +1,146 @@ +#ifndef _LINUX_DN_H +#define _LINUX_DN_H + +#include + +/* + + DECnet Data Structures and Constants + +*/ + +/* + * DNPROTO_NSP can't be the same as SOL_SOCKET, + * so increment each by one (compared to ULTRIX) + */ +#define DNPROTO_NSP 2 /* NSP protocol number */ +#define DNPROTO_ROU 3 /* Routing protocol number */ +#define DNPROTO_NML 4 /* Net mgt protocol number */ +#define DNPROTO_EVL 5 /* Evl protocol number (usr) */ +#define DNPROTO_EVR 6 /* Evl protocol number (evl) */ +#define DNPROTO_NSPT 7 /* NSP trace protocol number */ + + +#define DN_ADDL 2 +#define DN_MAXADDL 2 /* ULTRIX headers have 20 here, but pathworks has 2 */ +#define DN_MAXOPTL 16 +#define DN_MAXOBJL 16 +#define DN_MAXACCL 40 +#define DN_MAXALIASL 128 +#define DN_MAXNODEL 256 +#define DNBUFSIZE 65023 + +/* + * SET/GET Socket options - must match the DSO_ numbers below + */ +#define SO_CONDATA 1 +#define SO_CONACCESS 2 +#define SO_PROXYUSR 3 +#define SO_LINKINFO 7 + +#define DSO_CONDATA 1 /* Set/Get connect data */ +#define DSO_DISDATA 10 /* Set/Get disconnect data */ +#define DSO_CONACCESS 2 /* Set/Get connect access data */ +#define DSO_ACCEPTMODE 4 /* Set/Get accept mode */ +#define DSO_CONACCEPT 5 /* Accept deferred connection */ +#define DSO_CONREJECT 6 /* Reject deferred connection */ +#define DSO_LINKINFO 7 /* Set/Get link information */ +#define DSO_STREAM 8 /* Set socket type to stream */ +#define DSO_SEQPACKET 9 /* Set socket type to sequenced packet */ +#define DSO_MAXWINDOW 11 /* Maximum window size allowed */ +#define DSO_NODELAY 12 /* Turn off nagle */ +#define DSO_CORK 13 /* Wait for more data! */ +#define DSO_SERVICES 14 /* NSP Services field */ +#define DSO_INFO 15 /* NSP Info field */ +#define DSO_MAX 15 /* Maximum option number */ + + +/* LINK States */ +#define LL_INACTIVE 0 +#define LL_CONNECTING 1 +#define LL_RUNNING 2 +#define LL_DISCONNECTING 3 + +#define ACC_IMMED 0 +#define ACC_DEFER 1 + +#define SDF_WILD 1 /* Wild card object */ +#define SDF_PROXY 2 /* Addr eligible for proxy */ +#define SDF_UICPROXY 4 /* Use uic-based proxy */ + +/* Structures */ + + +struct dn_naddr { + __le16 a_len; + __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */ +}; + +struct sockaddr_dn { + __u16 sdn_family; + __u8 sdn_flags; + __u8 sdn_objnum; + __le16 sdn_objnamel; + __u8 sdn_objname[DN_MAXOBJL]; + struct dn_naddr sdn_add; +}; +#define sdn_nodeaddrl sdn_add.a_len /* Node address length */ +#define sdn_nodeaddr sdn_add.a_addr /* Node address */ + + + +/* + * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure + */ +struct optdata_dn { + __le16 opt_status; /* Extended status return */ +#define opt_sts opt_status + __le16 opt_optl; /* Length of user data */ + __u8 opt_data[16]; /* User data */ +}; + +struct accessdata_dn { + __u8 acc_accl; + __u8 acc_acc[DN_MAXACCL]; + __u8 acc_passl; + __u8 acc_pass[DN_MAXACCL]; + __u8 acc_userl; + __u8 acc_user[DN_MAXACCL]; +}; + +/* + * DECnet logical link information structure + */ +struct linkinfo_dn { + __u16 idn_segsize; /* Segment size for link */ + __u8 idn_linkstate; /* Logical link state */ +}; + +/* + * Ethernet address format (for DECnet) + */ +union etheraddress { + __u8 dne_addr[6]; /* Full ethernet address */ + struct { + __u8 dne_hiord[4]; /* DECnet HIORD prefix */ + __u8 dne_nodeaddr[2]; /* DECnet node address */ + } dne_remote; +}; + + +/* + * DECnet physical socket address format + */ +struct dn_addr { + __le16 dna_family; /* AF_DECnet */ + union etheraddress dna_netaddr; /* DECnet ethernet address */ +}; + +#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */ + +#define SIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr) +#define SIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr) +#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int) +#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int) + +#endif /* _LINUX_DN_H */ diff --git a/kernel_headers/linux/dqblk_xfs.h b/kernel_headers/linux/dqblk_xfs.h new file mode 100644 index 0000000..8655280 --- /dev/null +++ b/kernel_headers/linux/dqblk_xfs.h @@ -0,0 +1,166 @@ +/* + * Copyright (c) 1995-2001,2004 Silicon Graphics, Inc. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesset General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef _LINUX_DQBLK_XFS_H +#define _LINUX_DQBLK_XFS_H + +#include + +/* + * Disk quota - quotactl(2) commands for the XFS Quota Manager (XQM). + */ + +#define XQM_CMD(x) (('X'<<8)+(x)) /* note: forms first QCMD argument */ +#define XQM_COMMAND(x) (((x) & (0xff<<8)) == ('X'<<8)) /* test if for XFS */ + +#define XQM_USRQUOTA 0 /* system call user quota type */ +#define XQM_GRPQUOTA 1 /* system call group quota type */ +#define XQM_PRJQUOTA 2 /* system call project quota type */ +#define XQM_MAXQUOTAS 3 + +#define Q_XQUOTAON XQM_CMD(1) /* enable accounting/enforcement */ +#define Q_XQUOTAOFF XQM_CMD(2) /* disable accounting/enforcement */ +#define Q_XGETQUOTA XQM_CMD(3) /* get disk limits and usage */ +#define Q_XSETQLIM XQM_CMD(4) /* set disk limits */ +#define Q_XGETQSTAT XQM_CMD(5) /* get quota subsystem status */ +#define Q_XQUOTARM XQM_CMD(6) /* free disk space used by dquots */ +#define Q_XQUOTASYNC XQM_CMD(7) /* delalloc flush, updates dquots */ + +/* + * fs_disk_quota structure: + * + * This contains the current quota information regarding a user/proj/group. + * It is 64-bit aligned, and all the blk units are in BBs (Basic Blocks) of + * 512 bytes. + */ +#define FS_DQUOT_VERSION 1 /* fs_disk_quota.d_version */ +typedef struct fs_disk_quota { + __s8 d_version; /* version of this structure */ + __s8 d_flags; /* FS_{USER,PROJ,GROUP}_QUOTA */ + __u16 d_fieldmask; /* field specifier */ + __u32 d_id; /* user, project, or group ID */ + __u64 d_blk_hardlimit;/* absolute limit on disk blks */ + __u64 d_blk_softlimit;/* preferred limit on disk blks */ + __u64 d_ino_hardlimit;/* maximum # allocated inodes */ + __u64 d_ino_softlimit;/* preferred inode limit */ + __u64 d_bcount; /* # disk blocks owned by the user */ + __u64 d_icount; /* # inodes owned by the user */ + __s32 d_itimer; /* zero if within inode limits */ + /* if not, we refuse service */ + __s32 d_btimer; /* similar to above; for disk blocks */ + __u16 d_iwarns; /* # warnings issued wrt num inodes */ + __u16 d_bwarns; /* # warnings issued wrt disk blocks */ + __s32 d_padding2; /* padding2 - for future use */ + __u64 d_rtb_hardlimit;/* absolute limit on realtime blks */ + __u64 d_rtb_softlimit;/* preferred limit on RT disk blks */ + __u64 d_rtbcount; /* # realtime blocks owned */ + __s32 d_rtbtimer; /* similar to above; for RT disk blks */ + __u16 d_rtbwarns; /* # warnings issued wrt RT disk blks */ + __s16 d_padding3; /* padding3 - for future use */ + char d_padding4[8]; /* yet more padding */ +} fs_disk_quota_t; + +/* + * These fields are sent to Q_XSETQLIM to specify fields that need to change. + */ +#define FS_DQ_ISOFT (1<<0) +#define FS_DQ_IHARD (1<<1) +#define FS_DQ_BSOFT (1<<2) +#define FS_DQ_BHARD (1<<3) +#define FS_DQ_RTBSOFT (1<<4) +#define FS_DQ_RTBHARD (1<<5) +#define FS_DQ_LIMIT_MASK (FS_DQ_ISOFT | FS_DQ_IHARD | FS_DQ_BSOFT | \ + FS_DQ_BHARD | FS_DQ_RTBSOFT | FS_DQ_RTBHARD) +/* + * These timers can only be set in super user's dquot. For others, timers are + * automatically started and stopped. Superusers timer values set the limits + * for the rest. In case these values are zero, the DQ_{F,B}TIMELIMIT values + * defined below are used. + * These values also apply only to the d_fieldmask field for Q_XSETQLIM. + */ +#define FS_DQ_BTIMER (1<<6) +#define FS_DQ_ITIMER (1<<7) +#define FS_DQ_RTBTIMER (1<<8) +#define FS_DQ_TIMER_MASK (FS_DQ_BTIMER | FS_DQ_ITIMER | FS_DQ_RTBTIMER) + +/* + * Warning counts are set in both super user's dquot and others. For others, + * warnings are set/cleared by the administrators (or automatically by going + * below the soft limit). Superusers warning values set the warning limits + * for the rest. In case these values are zero, the DQ_{F,B}WARNLIMIT values + * defined below are used. + * These values also apply only to the d_fieldmask field for Q_XSETQLIM. + */ +#define FS_DQ_BWARNS (1<<9) +#define FS_DQ_IWARNS (1<<10) +#define FS_DQ_RTBWARNS (1<<11) +#define FS_DQ_WARNS_MASK (FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS) + +/* + * Accounting values. These can only be set for filesystem with + * non-transactional quotas that require quotacheck(8) in userspace. + */ +#define FS_DQ_BCOUNT (1<<12) +#define FS_DQ_ICOUNT (1<<13) +#define FS_DQ_RTBCOUNT (1<<14) +#define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT) + +/* + * Various flags related to quotactl(2). + */ +#define FS_QUOTA_UDQ_ACCT (1<<0) /* user quota accounting */ +#define FS_QUOTA_UDQ_ENFD (1<<1) /* user quota limits enforcement */ +#define FS_QUOTA_GDQ_ACCT (1<<2) /* group quota accounting */ +#define FS_QUOTA_GDQ_ENFD (1<<3) /* group quota limits enforcement */ +#define FS_QUOTA_PDQ_ACCT (1<<4) /* project quota accounting */ +#define FS_QUOTA_PDQ_ENFD (1<<5) /* project quota limits enforcement */ + +#define FS_USER_QUOTA (1<<0) /* user quota type */ +#define FS_PROJ_QUOTA (1<<1) /* project quota type */ +#define FS_GROUP_QUOTA (1<<2) /* group quota type */ + +/* + * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system. + * Provides a centralized way to get meta information about the quota subsystem. + * eg. space taken up for user and group quotas, number of dquots currently + * incore. + */ +#define FS_QSTAT_VERSION 1 /* fs_quota_stat.qs_version */ + +/* + * Some basic information about 'quota files'. + */ +typedef struct fs_qfilestat { + __u64 qfs_ino; /* inode number */ + __u64 qfs_nblks; /* number of BBs 512-byte-blks */ + __u32 qfs_nextents; /* number of extents */ +} fs_qfilestat_t; + +typedef struct fs_quota_stat { + __s8 qs_version; /* version number for future changes */ + __u16 qs_flags; /* FS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */ + __s8 qs_pad; /* unused */ + fs_qfilestat_t qs_uquota; /* user quota storage information */ + fs_qfilestat_t qs_gquota; /* group quota storage information */ + __u32 qs_incoredqs; /* number of dquots incore */ + __s32 qs_btimelimit; /* limit for blks timer */ + __s32 qs_itimelimit; /* limit for inodes timer */ + __s32 qs_rtbtimelimit;/* limit for rt blks timer */ + __u16 qs_bwarnlimit; /* limit for num warnings */ + __u16 qs_iwarnlimit; /* limit for num warnings */ +} fs_quota_stat_t; + +#endif /* _LINUX_DQBLK_XFS_H */ diff --git a/kernel_headers/linux/dvb/..install.cmd b/kernel_headers/linux/dvb/..install.cmd new file mode 100644 index 0000000..0bfd0b2 --- /dev/null +++ b/kernel_headers/linux/dvb/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/dvb/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/dvb /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/dvb audio.h ca.h dmx.h frontend.h net.h osd.h version.h video.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/dvb /android/kernels/moto/surnia/kernel-msm/include/linux/dvb ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/dvb /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/dvb ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/dvb/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/dvb/.install diff --git a/kernel_headers/linux/dvb/.install b/kernel_headers/linux/dvb/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/dvb/audio.h b/kernel_headers/linux/dvb/audio.h new file mode 100644 index 0000000..d47bccd --- /dev/null +++ b/kernel_headers/linux/dvb/audio.h @@ -0,0 +1,135 @@ +/* + * audio.h + * + * Copyright (C) 2000 Ralph Metzler + * & Marcus Metzler + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Lesser Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBAUDIO_H_ +#define _DVBAUDIO_H_ + +#include + +typedef enum { + AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ + AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ +} audio_stream_source_t; + + +typedef enum { + AUDIO_STOPPED, /* Device is stopped */ + AUDIO_PLAYING, /* Device is currently playing */ + AUDIO_PAUSED /* Device is paused */ +} audio_play_state_t; + + +typedef enum { + AUDIO_STEREO, + AUDIO_MONO_LEFT, + AUDIO_MONO_RIGHT, + AUDIO_MONO, + AUDIO_STEREO_SWAPPED +} audio_channel_select_t; + + +typedef struct audio_mixer { + unsigned int volume_left; + unsigned int volume_right; + // what else do we need? bass, pass-through, ... +} audio_mixer_t; + + +typedef struct audio_status { + int AV_sync_state; /* sync audio and video? */ + int mute_state; /* audio is muted */ + audio_play_state_t play_state; /* current playback state */ + audio_stream_source_t stream_source; /* current stream source */ + audio_channel_select_t channel_select; /* currently selected channel */ + int bypass_mode; /* pass on audio data to */ + audio_mixer_t mixer_state; /* current mixer state */ +} audio_status_t; /* separate decoder hardware */ + + +typedef +struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */ + int vocal1; /* into left and right t at 70% each */ + int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ + int melody; /* mixed into the left channel and */ + /* Vocal2 into the right channel at 100% each. */ + /* if Melody is non-zero, the melody channel gets mixed*/ +} audio_karaoke_t; /* into left and right */ + + +typedef __u16 audio_attributes_t; +/* bits: descr. */ +/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */ +/* 12 multichannel extension */ +/* 11-10 audio type (0=not spec, 1=language included) */ +/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */ +/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */ +/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */ +/* 2- 0 number of audio channels (n+1 channels) */ + + +/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ +#define AUDIO_CAP_DTS 1 +#define AUDIO_CAP_LPCM 2 +#define AUDIO_CAP_MP1 4 +#define AUDIO_CAP_MP2 8 +#define AUDIO_CAP_MP3 16 +#define AUDIO_CAP_AAC 32 +#define AUDIO_CAP_OGG 64 +#define AUDIO_CAP_SDDS 128 +#define AUDIO_CAP_AC3 256 + +#define AUDIO_STOP _IO('o', 1) +#define AUDIO_PLAY _IO('o', 2) +#define AUDIO_PAUSE _IO('o', 3) +#define AUDIO_CONTINUE _IO('o', 4) +#define AUDIO_SELECT_SOURCE _IO('o', 5) +#define AUDIO_SET_MUTE _IO('o', 6) +#define AUDIO_SET_AV_SYNC _IO('o', 7) +#define AUDIO_SET_BYPASS_MODE _IO('o', 8) +#define AUDIO_CHANNEL_SELECT _IO('o', 9) +#define AUDIO_GET_STATUS _IOR('o', 10, audio_status_t) + +#define AUDIO_GET_CAPABILITIES _IOR('o', 11, unsigned int) +#define AUDIO_CLEAR_BUFFER _IO('o', 12) +#define AUDIO_SET_ID _IO('o', 13) +#define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) +#define AUDIO_SET_STREAMTYPE _IO('o', 15) +#define AUDIO_SET_EXT_ID _IO('o', 16) +#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t) +#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t) + +/** + * AUDIO_GET_PTS + * + * Read the 33 bit presentation time stamp as defined + * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. + * + * The PTS should belong to the currently played + * frame if possible, but may also be a value close to it + * like the PTS of the last decoded frame or the last PTS + * extracted by the PES parser. + */ +#define AUDIO_GET_PTS _IOR('o', 19, __u64) +#define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) + +#endif /* _DVBAUDIO_H_ */ diff --git a/kernel_headers/linux/dvb/ca.h b/kernel_headers/linux/dvb/ca.h new file mode 100644 index 0000000..c18537f --- /dev/null +++ b/kernel_headers/linux/dvb/ca.h @@ -0,0 +1,90 @@ +/* + * ca.h + * + * Copyright (C) 2000 Ralph Metzler + * & Marcus Metzler + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Lesser Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBCA_H_ +#define _DVBCA_H_ + +/* slot interface types and info */ + +typedef struct ca_slot_info { + int num; /* slot number */ + + int type; /* CA interface this slot supports */ +#define CA_CI 1 /* CI high level interface */ +#define CA_CI_LINK 2 /* CI link layer level interface */ +#define CA_CI_PHYS 4 /* CI physical layer level interface */ +#define CA_DESCR 8 /* built-in descrambler */ +#define CA_SC 128 /* simple smart card interface */ + + unsigned int flags; +#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ +#define CA_CI_MODULE_READY 2 +} ca_slot_info_t; + + +/* descrambler types and info */ + +typedef struct ca_descr_info { + unsigned int num; /* number of available descramblers (keys) */ + unsigned int type; /* type of supported scrambling system */ +#define CA_ECD 1 +#define CA_NDS 2 +#define CA_DSS 4 +} ca_descr_info_t; + +typedef struct ca_caps { + unsigned int slot_num; /* total number of CA card and module slots */ + unsigned int slot_type; /* OR of all supported types */ + unsigned int descr_num; /* total number of descrambler slots (keys) */ + unsigned int descr_type; /* OR of all supported types */ +} ca_caps_t; + +/* a message to/from a CI-CAM */ +typedef struct ca_msg { + unsigned int index; + unsigned int type; + unsigned int length; + unsigned char msg[256]; +} ca_msg_t; + +typedef struct ca_descr { + unsigned int index; + unsigned int parity; /* 0 == even, 1 == odd */ + unsigned char cw[8]; +} ca_descr_t; + +typedef struct ca_pid { + unsigned int pid; + int index; /* -1 == disable*/ +} ca_pid_t; + +#define CA_RESET _IO('o', 128) +#define CA_GET_CAP _IOR('o', 129, ca_caps_t) +#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t) +#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t) +#define CA_GET_MSG _IOR('o', 132, ca_msg_t) +#define CA_SEND_MSG _IOW('o', 133, ca_msg_t) +#define CA_SET_DESCR _IOW('o', 134, ca_descr_t) +#define CA_SET_PID _IOW('o', 135, ca_pid_t) + +#endif diff --git a/kernel_headers/linux/dvb/dmx.h b/kernel_headers/linux/dvb/dmx.h new file mode 100644 index 0000000..ce6a80d --- /dev/null +++ b/kernel_headers/linux/dvb/dmx.h @@ -0,0 +1,883 @@ +/* + * dmx.h + * + * Copyright (C) 2000 Marcus Metzler + * & Ralph Metzler + * for convergence integrated media GmbH + * + * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBDMX_H_ +#define _DVBDMX_H_ + +#include +#include + + +#define DMX_FILTER_SIZE 16 + +/* Min recording chunk upon which event is generated */ +#define DMX_REC_BUFF_CHUNK_MIN_SIZE (100*188) + +#define DMX_MAX_DECODER_BUFFER_NUM (32) + +typedef enum +{ + DMX_OUT_DECODER, /* Streaming directly to decoder. */ + DMX_OUT_TAP, /* Output going to a memory buffer */ + /* (to be retrieved via the read command).*/ + DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */ + /* (to be retrieved by reading from the */ + /* logical DVR device). */ + DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */ +} dmx_output_t; + + +typedef enum +{ + DMX_IN_FRONTEND, /* Input from a front-end device. */ + DMX_IN_DVR /* Input from the logical DVR device. */ +} dmx_input_t; + + +typedef enum dmx_ts_pes +{ + DMX_PES_AUDIO0, + DMX_PES_VIDEO0, + DMX_PES_TELETEXT0, + DMX_PES_SUBTITLE0, + DMX_PES_PCR0, + + DMX_PES_AUDIO1, + DMX_PES_VIDEO1, + DMX_PES_TELETEXT1, + DMX_PES_SUBTITLE1, + DMX_PES_PCR1, + + DMX_PES_AUDIO2, + DMX_PES_VIDEO2, + DMX_PES_TELETEXT2, + DMX_PES_SUBTITLE2, + DMX_PES_PCR2, + + DMX_PES_AUDIO3, + DMX_PES_VIDEO3, + DMX_PES_TELETEXT3, + DMX_PES_SUBTITLE3, + DMX_PES_PCR3, + + DMX_PES_OTHER +} dmx_pes_type_t; + +#define DMX_PES_AUDIO DMX_PES_AUDIO0 +#define DMX_PES_VIDEO DMX_PES_VIDEO0 +#define DMX_PES_TELETEXT DMX_PES_TELETEXT0 +#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0 +#define DMX_PES_PCR DMX_PES_PCR0 + + +typedef struct dmx_filter +{ + __u8 filter[DMX_FILTER_SIZE]; + __u8 mask[DMX_FILTER_SIZE]; + __u8 mode[DMX_FILTER_SIZE]; +} dmx_filter_t; + + +/* Filter flags */ +#define DMX_CHECK_CRC 0x01 +#define DMX_ONESHOT 0x02 +#define DMX_IMMEDIATE_START 0x04 +#define DMX_KERNEL_CLIENT 0x8000 + +struct dmx_sct_filter_params +{ + __u16 pid; + dmx_filter_t filter; + __u32 timeout; + __u32 flags; +}; + + +enum dmx_video_codec { + DMX_VIDEO_CODEC_MPEG2, + DMX_VIDEO_CODEC_H264, + DMX_VIDEO_CODEC_VC1 +}; + +/* Index entries types */ +#define DMX_IDX_RAI 0x00000001 +#define DMX_IDX_PUSI 0x00000002 +#define DMX_IDX_MPEG_SEQ_HEADER 0x00000004 +#define DMX_IDX_MPEG_GOP 0x00000008 +#define DMX_IDX_MPEG_FIRST_SEQ_FRAME_START 0x00000010 +#define DMX_IDX_MPEG_FIRST_SEQ_FRAME_END 0x00000020 +#define DMX_IDX_MPEG_I_FRAME_START 0x00000040 +#define DMX_IDX_MPEG_I_FRAME_END 0x00000080 +#define DMX_IDX_MPEG_P_FRAME_START 0x00000100 +#define DMX_IDX_MPEG_P_FRAME_END 0x00000200 +#define DMX_IDX_MPEG_B_FRAME_START 0x00000400 +#define DMX_IDX_MPEG_B_FRAME_END 0x00000800 +#define DMX_IDX_H264_SPS 0x00001000 +#define DMX_IDX_H264_PPS 0x00002000 +#define DMX_IDX_H264_FIRST_SPS_FRAME_START 0x00004000 +#define DMX_IDX_H264_FIRST_SPS_FRAME_END 0x00008000 +#define DMX_IDX_H264_IDR_START 0x00010000 +#define DMX_IDX_H264_IDR_END 0x00020000 +#define DMX_IDX_H264_NON_IDR_START 0x00040000 +#define DMX_IDX_H264_NON_IDR_END 0x00080000 +#define DMX_IDX_VC1_SEQ_HEADER 0x00100000 +#define DMX_IDX_VC1_ENTRY_POINT 0x00200000 +#define DMX_IDX_VC1_FIRST_SEQ_FRAME_START 0x00400000 +#define DMX_IDX_VC1_FIRST_SEQ_FRAME_END 0x00800000 +#define DMX_IDX_VC1_FRAME_START 0x01000000 +#define DMX_IDX_VC1_FRAME_END 0x02000000 +#define DMX_IDX_H264_ACCESS_UNIT_DEL 0x04000000 +#define DMX_IDX_H264_SEI 0x08000000 + +struct dmx_pes_filter_params +{ + __u16 pid; + dmx_input_t input; + dmx_output_t output; + dmx_pes_type_t pes_type; + __u32 flags; + + /* + * The following configures when the event + * DMX_EVENT_NEW_REC_CHUNK will be triggered. + * When new recorded data is received with size + * equal or larger than this value a new event + * will be triggered. This is relevant when + * output is DMX_OUT_TS_TAP or DMX_OUT_TSDEMUX_TAP, + * size must be at least DMX_REC_BUFF_CHUNK_MIN_SIZE + * and smaller than buffer size. + */ + __u32 rec_chunk_size; + + enum dmx_video_codec video_codec; +}; + +struct dmx_buffer_status { + /* size of buffer in bytes */ + unsigned int size; + + /* fullness of buffer in bytes */ + unsigned int fullness; + + /* + * How many bytes are free + * It's the same as: size-fullness-1 + */ + unsigned int free_bytes; + + /* read pointer offset in bytes */ + unsigned int read_offset; + + /* write pointer offset in bytes */ + unsigned int write_offset; + + /* non-zero if data error occurred */ + int error; +}; + +/* Events associated with each demux filter */ +enum dmx_event { + /* New PES packet is ready to be consumed */ + DMX_EVENT_NEW_PES = 0x00000001, + + /* New section is ready to be consumed */ + DMX_EVENT_NEW_SECTION = 0x00000002, + + /* New recording chunk is ready to be consumed */ + DMX_EVENT_NEW_REC_CHUNK = 0x00000004, + + /* New PCR value is ready */ + DMX_EVENT_NEW_PCR = 0x00000008, + + /* Overflow */ + DMX_EVENT_BUFFER_OVERFLOW = 0x00000010, + + /* Section was dropped due to CRC error */ + DMX_EVENT_SECTION_CRC_ERROR = 0x00000020, + + /* End-of-stream, no more data from this filter */ + DMX_EVENT_EOS = 0x00000040, + + /* New Elementary Stream data is ready */ + DMX_EVENT_NEW_ES_DATA = 0x00000080, + + /* Data markers */ + DMX_EVENT_MARKER = 0x00000100, + + /* New indexing entry is ready */ + DMX_EVENT_NEW_INDEX_ENTRY = 0x00000200, + + /* + * Section filter timer expired. This is notified + * when timeout is configured to section filter + * (dmx_sct_filter_params) and no sections were + * received for the given time. + */ + DMX_EVENT_SECTION_TIMEOUT = 0x00000400, + + /* Scrambling bits change between clear and scrambled */ + DMX_EVENT_SCRAMBLING_STATUS_CHANGE = 0x00000800 +}; + +enum dmx_oob_cmd { + /* End-of-stream, no more data from this filter */ + DMX_OOB_CMD_EOS, + + /* Data markers */ + DMX_OOB_CMD_MARKER, +}; + +/* Flags passed in filter events */ + +/* Continuity counter error was detected */ +#define DMX_FILTER_CC_ERROR 0x01 + +/* Discontinuity indicator was set */ +#define DMX_FILTER_DISCONTINUITY_INDICATOR 0x02 + +/* PES length in PES header is not correct */ +#define DMX_FILTER_PES_LENGTH_ERROR 0x04 + + +/* PES info associated with DMX_EVENT_NEW_PES event */ +struct dmx_pes_event_info { + /* Offset at which PES information starts */ + __u32 base_offset; + + /* + * Start offset at which PES data + * from the stream starts. + * Equal to base_offset if PES data + * starts from the beginning. + */ + __u32 start_offset; + + /* Total length holding the PES information */ + __u32 total_length; + + /* Actual length holding the PES data */ + __u32 actual_length; + + /* Local receiver timestamp in 27MHz */ + __u64 stc; + + /* Flags passed in filter events */ + __u32 flags; + + /* + * Number of TS packets with Transport Error Indicator (TEI) + * found while constructing the PES. + */ + __u32 transport_error_indicator_counter; + + /* Number of continuity errors found while constructing the PES */ + __u32 continuity_error_counter; + + /* Total number of TS packets holding the PES */ + __u32 ts_packets_num; +}; + +/* Section info associated with DMX_EVENT_NEW_SECTION event */ +struct dmx_section_event_info { + /* Offset at which section information starts */ + __u32 base_offset; + + /* + * Start offset at which section data + * from the stream starts. + * Equal to base_offset if section data + * starts from the beginning. + */ + __u32 start_offset; + + /* Total length holding the section information */ + __u32 total_length; + + /* Actual length holding the section data */ + __u32 actual_length; + + /* Flags passed in filter events */ + __u32 flags; +}; + +/* Recording info associated with DMX_EVENT_NEW_REC_CHUNK event */ +struct dmx_rec_chunk_event_info { + /* Offset at which recording chunk starts */ + __u32 offset; + + /* Size of recording chunk in bytes */ + __u32 size; +}; + +/* PCR info associated with DMX_EVENT_NEW_PCR event */ +struct dmx_pcr_event_info { + /* Local timestamp in 27MHz + * when PCR packet was received + */ + __u64 stc; + + /* PCR value in 27MHz */ + __u64 pcr; + + /* Flags passed in filter events */ + __u32 flags; +}; + +/* + * Elementary stream data information associated + * with DMX_EVENT_NEW_ES_DATA event + */ +struct dmx_es_data_event_info { + /* Buffer user-space handle */ + int buf_handle; + + /* + * Cookie to provide when releasing the buffer + * using the DMX_RELEASE_DECODER_BUFFER ioctl command + */ + int cookie; + + /* Offset of data from the beginning of the buffer */ + __u32 offset; + + /* Length of data in buffer (in bytes) */ + __u32 data_len; + + /* Indication whether PTS value is valid */ + int pts_valid; + + /* PTS value associated with the buffer */ + __u64 pts; + + /* Indication whether DTS value is valid */ + int dts_valid; + + /* DTS value associated with the buffer */ + __u64 dts; + + /* STC value associated with the buffer in 27MHz */ + __u64 stc; + + /* + * Number of TS packets with Transport Error Indicator (TEI) set + * in the TS packet header since last reported event + */ + __u32 transport_error_indicator_counter; + + /* Number of continuity errors since last reported event */ + __u32 continuity_error_counter; + + /* Total number of TS packets processed since last reported event */ + __u32 ts_packets_num; + + /* + * Number of dropped bytes due to insufficient buffer space, + * since last reported event + */ + __u32 ts_dropped_bytes; +}; + +/* Marker details associated with DMX_EVENT_MARKER event */ +struct dmx_marker_event_info { + /* Marker id */ + __u64 id; +}; + +/* Indexing information associated with DMX_EVENT_NEW_INDEX_ENTRY event */ +struct dmx_index_event_info { + /* Index entry type, one of DMX_IDX_* */ + __u64 type; + + /* + * The PID the index entry belongs to. + * In case of recording filter, multiple PIDs may exist in the same + * filter through DMX_ADD_PID ioctl and each can be indexed separately. + */ + __u16 pid; + + /* + * The TS packet number in the recorded data at which + * the indexing event is found. + */ + __u64 match_tsp_num; + + /* + * The TS packet number in the recorded data preceding + * match_tsp_num and has PUSI set. + */ + __u64 last_pusi_tsp_num; + + /* STC associated with match_tsp_num, in 27MHz */ + __u64 stc; +}; + +/* Scrambling information associated with DMX_EVENT_SCRAMBLING_STATUS_CHANGE */ +struct dmx_scrambling_status_event_info { + /* + * The PID which its scrambling bit status changed. + * In case of recording filter, multiple PIDs may exist in the same + * filter through DMX_ADD_PID ioctl, each may have + * different scrambling bits status. + */ + __u16 pid; + + /* old value of scrambling bits */ + __u8 old_value; + + /* new value of scrambling bits */ + __u8 new_value; +}; + +/* + * Filter's event returned through DMX_GET_EVENT. + * poll with POLLPRI would block until events are available. + */ +struct dmx_filter_event { + enum dmx_event type; + + union { + struct dmx_pes_event_info pes; + struct dmx_section_event_info section; + struct dmx_rec_chunk_event_info recording_chunk; + struct dmx_pcr_event_info pcr; + struct dmx_es_data_event_info es_data; + struct dmx_marker_event_info marker; + struct dmx_index_event_info index; + struct dmx_scrambling_status_event_info scrambling_status; + } params; +}; + +/* Filter's buffer requirement returned in dmx_caps */ +struct dmx_buffer_requirement { + /* Buffer size alignment, 0 means no special requirement */ + __u32 size_alignment; + + /* Maximum buffer size allowed */ + __u32 max_size; + + /* Maximum number of linear buffers handled by demux */ + __u32 max_buffer_num; + + /* Feature support bitmap as detailed below */ + __u32 flags; + +/* Buffer must be allocated as physically contiguous memory */ +#define DMX_BUFFER_CONTIGUOUS_MEM 0x1 + +/* If the filter's data is decrypted, the buffer should be secured one */ +#define DMX_BUFFER_SECURED_IF_DECRYPTED 0x2 + +/* Buffer can be allocated externally */ +#define DMX_BUFFER_EXTERNAL_SUPPORT 0x4 + +/* Buffer can be allocated internally */ +#define DMX_BUFFER_INTERNAL_SUPPORT 0x8 + +/* Filter output can be output to a linear buffer group */ +#define DMX_BUFFER_LINEAR_GROUP_SUPPORT 0x10 + +/* Buffer may be allocated as cached buffer */ +#define DMX_BUFFER_CACHED 0x20 +}; + +/* Out-of-band (OOB) command */ +struct dmx_oob_command { + enum dmx_oob_cmd type; + + union { + struct dmx_marker_event_info marker; + } params; +}; + +typedef struct dmx_caps { + __u32 caps; + +/* Indicates whether demux support playback from memory in pull mode */ +#define DMX_CAP_PULL_MODE 0x01 + +/* Indicates whether demux support indexing of recorded video stream */ +#define DMX_CAP_VIDEO_INDEXING 0x02 + +/* Indicates whether demux support sending data directly to video decoder */ +#define DMX_CAP_VIDEO_DECODER_DATA 0x04 + +/* Indicates whether demux support sending data directly to audio decoder */ +#define DMX_CAP_AUDIO_DECODER_DATA 0x08 + +/* Indicates whether demux support sending data directly to subtitle decoder */ +#define DMX_CAP_SUBTITLE_DECODER_DATA 0x10 + +/* Indicates whether TS insertion is supported */ +#define DMX_CAP_TS_INSERTION 0x20 + +/* Indicates whether playback from secured input is supported */ +#define DMX_CAP_SECURED_INPUT_PLAYBACK 0x40 + +/* Indicates whether automatic buffer flush upon overflow is allowed */ +#define DMX_CAP_AUTO_BUFFER_FLUSH 0x80 + + /* Number of decoders demux can output data to */ + int num_decoders; + + /* Number of demux devices */ + int num_demux_devices; + + /* Max number of PID filters */ + int num_pid_filters; + + /* Max number of section filters */ + int num_section_filters; + + /* + * Max number of section filters using same PID, + * 0 if not supported + */ + int num_section_filters_per_pid; + + /* + * Length of section filter, not including section + * length field (2 bytes). + */ + int section_filter_length; + + /* Max number of demod based input */ + int num_demod_inputs; + + /* Max number of memory based input */ + int num_memory_inputs; + + /* Overall bitrate from all inputs concurrently. Mbit/sec */ + int max_bitrate; + + /* Max bitrate from single demod input. Mbit/sec */ + int demod_input_max_bitrate; + + /* Max bitrate from single memory input. Mbit/sec */ + int memory_input_max_bitrate; + + /* Max number of supported cipher operations per PID */ + int num_cipher_ops; + + /* Max possible value of STC reported by demux, in 27MHz */ + __u64 max_stc; + + /* + * For indexing support (DMX_CAP_VIDEO_INDEXING capability) this is + * the max number of video pids that can be indexed for a single + * recording filter. If 0, means there is not limitation. + */ + int recording_max_video_pids_indexed; + + struct dmx_buffer_requirement section; + + /* For PES not sent to decoder */ + struct dmx_buffer_requirement pes; + + /* For PES sent to decoder */ + struct dmx_buffer_requirement decoder; + + /* Recording buffer for recording of 188 bytes packets */ + struct dmx_buffer_requirement recording_188_tsp; + + /* Recording buffer for recording of 192 bytes packets */ + struct dmx_buffer_requirement recording_192_tsp; + + /* DVR input buffer for playback of 188 bytes packets */ + struct dmx_buffer_requirement playback_188_tsp; + + /* DVR input buffer for playback of 192 bytes packets */ + struct dmx_buffer_requirement playback_192_tsp; +} dmx_caps_t; + +typedef enum { + DMX_SOURCE_FRONT0 = 0, + DMX_SOURCE_FRONT1, + DMX_SOURCE_FRONT2, + DMX_SOURCE_FRONT3, + DMX_SOURCE_DVR0 = 16, + DMX_SOURCE_DVR1, + DMX_SOURCE_DVR2, + DMX_SOURCE_DVR3 +} dmx_source_t; + +enum dmx_tsp_format_t { + DMX_TSP_FORMAT_188 = 0, + DMX_TSP_FORMAT_192_TAIL, + DMX_TSP_FORMAT_192_HEAD, + DMX_TSP_FORMAT_204, +}; + +enum dmx_playback_mode_t { + /* + * In push mode, if one of output buffers + * is full, the buffer would overflow + * and demux continue processing incoming stream. + * This is the default mode. When playing from frontend, + * this is the only mode that is allowed. + */ + DMX_PB_MODE_PUSH = 0, + + /* + * In pull mode, if one of output buffers + * is full, demux stalls waiting for free space, + * this would cause DVR input buffer fullness + * to accumulate. + * This mode is possible only when playing + * from DVR. + */ + DMX_PB_MODE_PULL, +}; + +struct dmx_stc { + unsigned int num; /* input : which STC? 0..N */ + unsigned int base; /* output: divisor for stc to get 90 kHz clock */ + __u64 stc; /* output: stc in 'base'*90 kHz units */ +}; + +enum dmx_buffer_mode { + /* + * demux buffers are allocated internally + * by the demux driver. This is the default mode. + * DMX_SET_BUFFER_SIZE can be used to set the size of + * this buffer. + */ + DMX_BUFFER_MODE_INTERNAL, + + /* + * demux buffers are allocated externally and provided + * to demux through DMX_SET_BUFFER. + * When this mode is used DMX_SET_BUFFER_SIZE and + * mmap are prohibited. + */ + DMX_BUFFER_MODE_EXTERNAL, +}; + +struct dmx_buffer { + unsigned int size; + int handle; + + /* + * The following indication is relevant only when setting + * DVR input buffer. It indicates whether the input buffer + * being set is secured one or not. Secured (locked) buffers + * are required for playback from secured input. In such case + * write() syscall is not allowed. + */ + int is_protected; +}; + +struct dmx_decoder_buffers { + /* + * Specify if linear buffer support is requested. If set, buffers_num + * must be greater than 1 + */ + int is_linear; + + /* + * Specify number of external buffers allocated by user. + * If set to 0 means internal buffer allocation is requested + */ + __u32 buffers_num; + + /* Specify buffer size, either external or internal */ + __u32 buffers_size; + + /* Array of externally allocated buffer handles */ + int handles[DMX_MAX_DECODER_BUFFER_NUM]; +}; + +struct dmx_secure_mode { + /* + * Specifies whether the filter is secure or not. + * Filter should be set as secured if the filter's data *may* include + * encrypted data that would require decryption configured through + * DMX_SET_CIPHER ioctl. The setting may be done while + * filter is in idle state only. + */ + int is_secured; +}; + +struct dmx_cipher_operation { + /* Indication whether the operation is encryption or decryption */ + int encrypt; + + /* The ID of the key used for decryption or encryption */ + __u32 key_ladder_id; +}; + +#define DMX_MAX_CIPHER_OPERATIONS_COUNT 5 +struct dmx_cipher_operations { + /* + * The PID to perform the cipher operations on. + * In case of recording filter, multiple PIDs may exist in the same + * filter through DMX_ADD_PID ioctl, each may have different + * cipher operations. + */ + __u16 pid; + + /* Total number of operations */ + __u8 operations_count; + + /* + * Cipher operation to perform on the given PID. + * The operations are performed in the order they are given. + */ + struct dmx_cipher_operation operations[DMX_MAX_CIPHER_OPERATIONS_COUNT]; +}; + +struct dmx_events_mask { + /* + * Bitmask of events to be disabled (dmx_event). + * Disabled events will not be notified to the user. + * By default all events are enabled except for + * DMX_EVENT_NEW_ES_DATA. + * Overflow event can't be disabled. + */ + __u32 disable_mask; + + /* + * Bitmask of events that will not wake-up the user + * when user calls poll with POLLPRI flag. + * Events that are used as wake-up source should not be + * disabled in disable_mask or they would not be used + * as a wake-up source. + * By default all enabled events are set as wake-up events. + * Overflow event can't be disabled as a wake-up source. + */ + __u32 no_wakeup_mask; + + /* + * Number of ready wake-up events which will trigger + * a wake-up when user calls poll with POLLPRI flag. + * Default is set to 1. + */ + __u32 wakeup_threshold; +}; + +struct dmx_indexing_params { + /* + * PID to index. In case of recording filter, multiple PIDs + * may exist in the same filter through DMX_ADD_PID ioctl. + * It is assumed that the PID was already added using DMX_ADD_PID + * or an error will be reported. + */ + __u16 pid; + + /* enable or disable indexing, default is disabled */ + int enable; + + /* combination of DMX_IDX_* bits */ + __u64 types; +}; + +struct dmx_set_ts_insertion { + /* + * Unique identifier managed by the caller. + * This identifier can be used later to remove the + * insertion using DMX_ABORT_TS_INSERTION ioctl. + */ + __u32 identifier; + + /* + * Repetition time in msec, minimum allowed value is 25msec. + * 0 repetition time means one-shot insertion is done. + * Insertion done based on wall-clock. + */ + __u32 repetition_time; + + /* + * TS packets buffer to be inserted. + * The buffer is inserted as-is to the recording buffer + * without any modification. + * It is advised to set discontinuity flag in the very + * first TS packet in the buffer. + */ + const __u8 *ts_packets; + + /* + * Size in bytes of the TS packets buffer to be inserted. + * Should be in multiples of 188 or 192 bytes + * depending on recording filter output format. + */ + size_t size; +}; + +struct dmx_abort_ts_insertion { + /* + * Identifier of the insertion buffer previously set + * using DMX_SET_TS_INSERTION. + */ + __u32 identifier; +}; + +struct dmx_scrambling_bits { + /* + * The PID to return its scrambling bit value. + * In case of recording filter, multiple PIDs may exist in the same + * filter through DMX_ADD_PID ioctl, each may have different + * scrambling bits status. + */ + __u16 pid; + + /* Current value of scrambling bits: 0, 1, 2 or 3 */ + __u8 value; +}; + +#define DMX_START _IO('o', 41) +#define DMX_STOP _IO('o', 42) +#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) +#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params) +#define DMX_SET_BUFFER_SIZE _IO('o', 45) +#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5]) +#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t) +#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t) +#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc) +#define DMX_ADD_PID _IOW('o', 51, __u16) +#define DMX_REMOVE_PID _IOW('o', 52, __u16) +#define DMX_SET_TS_PACKET_FORMAT _IOW('o', 53, enum dmx_tsp_format_t) +#define DMX_SET_TS_OUT_FORMAT _IOW('o', 54, enum dmx_tsp_format_t) +#define DMX_SET_DECODER_BUFFER_SIZE _IO('o', 55) +#define DMX_GET_BUFFER_STATUS _IOR('o', 56, struct dmx_buffer_status) +#define DMX_RELEASE_DATA _IO('o', 57) +#define DMX_FEED_DATA _IO('o', 58) +#define DMX_SET_PLAYBACK_MODE _IOW('o', 59, enum dmx_playback_mode_t) +#define DMX_GET_EVENT _IOR('o', 60, struct dmx_filter_event) +#define DMX_SET_BUFFER_MODE _IOW('o', 61, enum dmx_buffer_mode) +#define DMX_SET_BUFFER _IOW('o', 62, struct dmx_buffer) +#define DMX_SET_DECODER_BUFFER _IOW('o', 63, struct dmx_decoder_buffers) +#define DMX_REUSE_DECODER_BUFFER _IO('o', 64) +#define DMX_SET_SECURE_MODE _IOW('o', 65, struct dmx_secure_mode) +#define DMX_SET_EVENTS_MASK _IOW('o', 66, struct dmx_events_mask) +#define DMX_GET_EVENTS_MASK _IOR('o', 67, struct dmx_events_mask) +#define DMX_PUSH_OOB_COMMAND _IOW('o', 68, struct dmx_oob_command) +#define DMX_SET_INDEXING_PARAMS _IOW('o', 69, struct dmx_indexing_params) +#define DMX_SET_TS_INSERTION _IOW('o', 70, struct dmx_set_ts_insertion) +#define DMX_ABORT_TS_INSERTION _IOW('o', 71, struct dmx_abort_ts_insertion) +#define DMX_GET_SCRAMBLING_BITS _IOWR('o', 72, struct dmx_scrambling_bits) +#define DMX_SET_CIPHER _IOW('o', 73, struct dmx_cipher_operations) +#define DMX_FLUSH_BUFFER _IO('o', 74) + + +#endif /* _DVBDMX_H_ */ diff --git a/kernel_headers/linux/dvb/frontend.h b/kernel_headers/linux/dvb/frontend.h new file mode 100644 index 0000000..5cb498d --- /dev/null +++ b/kernel_headers/linux/dvb/frontend.h @@ -0,0 +1,589 @@ +/* + * frontend.h + * + * Copyright (C) 2000 Marcus Metzler + * Ralph Metzler + * Holger Waechtler + * Andre Draszik + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBFRONTEND_H_ +#define _DVBFRONTEND_H_ + +#include + +typedef enum fe_type { + FE_QPSK, + FE_QAM, + FE_OFDM, + FE_ATSC +} fe_type_t; + + +typedef enum fe_caps { + FE_IS_STUPID = 0, + FE_CAN_INVERSION_AUTO = 0x1, + FE_CAN_FEC_1_2 = 0x2, + FE_CAN_FEC_2_3 = 0x4, + FE_CAN_FEC_3_4 = 0x8, + FE_CAN_FEC_4_5 = 0x10, + FE_CAN_FEC_5_6 = 0x20, + FE_CAN_FEC_6_7 = 0x40, + FE_CAN_FEC_7_8 = 0x80, + FE_CAN_FEC_8_9 = 0x100, + FE_CAN_FEC_AUTO = 0x200, + FE_CAN_QPSK = 0x400, + FE_CAN_QAM_16 = 0x800, + FE_CAN_QAM_32 = 0x1000, + FE_CAN_QAM_64 = 0x2000, + FE_CAN_QAM_128 = 0x4000, + FE_CAN_QAM_256 = 0x8000, + FE_CAN_QAM_AUTO = 0x10000, + FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000, + FE_CAN_BANDWIDTH_AUTO = 0x40000, + FE_CAN_GUARD_INTERVAL_AUTO = 0x80000, + FE_CAN_HIERARCHY_AUTO = 0x100000, + FE_CAN_8VSB = 0x200000, + FE_CAN_16VSB = 0x400000, + FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */ + FE_CAN_MULTISTREAM = 0x4000000, /* frontend supports multistream filtering */ + FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */ + FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */ + FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */ + FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */ + FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */ +} fe_caps_t; + + +struct dvb_frontend_info { + char name[128]; + fe_type_t type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */ + __u32 frequency_min; + __u32 frequency_max; + __u32 frequency_stepsize; + __u32 frequency_tolerance; + __u32 symbol_rate_min; + __u32 symbol_rate_max; + __u32 symbol_rate_tolerance; /* ppm */ + __u32 notifier_delay; /* DEPRECATED */ + fe_caps_t caps; +}; + + +/** + * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for + * the meaning of this struct... + */ +struct dvb_diseqc_master_cmd { + __u8 msg [6]; /* { framing, address, command, data [3] } */ + __u8 msg_len; /* valid values are 3...6 */ +}; + + +struct dvb_diseqc_slave_reply { + __u8 msg [4]; /* { framing, data [3] } */ + __u8 msg_len; /* valid values are 0...4, 0 means no msg */ + int timeout; /* return from ioctl after timeout ms with */ +}; /* errorcode when no message was received */ + + +typedef enum fe_sec_voltage { + SEC_VOLTAGE_13, + SEC_VOLTAGE_18, + SEC_VOLTAGE_OFF +} fe_sec_voltage_t; + + +typedef enum fe_sec_tone_mode { + SEC_TONE_ON, + SEC_TONE_OFF +} fe_sec_tone_mode_t; + + +typedef enum fe_sec_mini_cmd { + SEC_MINI_A, + SEC_MINI_B +} fe_sec_mini_cmd_t; + + +/** + * enum fe_status - enumerates the possible frontend status + * @FE_HAS_SIGNAL: found something above the noise level + * @FE_HAS_CARRIER: found a DVB signal + * @FE_HAS_VITERBI: FEC is stable + * @FE_HAS_SYNC: found sync bytes + * @FE_HAS_LOCK: everything's working + * @FE_TIMEDOUT: no lock within the last ~2 seconds + * @FE_REINIT: frontend was reinitialized, application is recommended + * to reset DiSEqC, tone and parameters + */ + +typedef enum fe_status { + FE_HAS_SIGNAL = 0x01, + FE_HAS_CARRIER = 0x02, + FE_HAS_VITERBI = 0x04, + FE_HAS_SYNC = 0x08, + FE_HAS_LOCK = 0x10, + FE_TIMEDOUT = 0x20, + FE_REINIT = 0x40, +} fe_status_t; + +typedef enum fe_spectral_inversion { + INVERSION_OFF, + INVERSION_ON, + INVERSION_AUTO +} fe_spectral_inversion_t; + + +typedef enum fe_code_rate { + FEC_NONE = 0, + FEC_1_2, + FEC_2_3, + FEC_3_4, + FEC_4_5, + FEC_5_6, + FEC_6_7, + FEC_7_8, + FEC_8_9, + FEC_AUTO, + FEC_3_5, + FEC_9_10, + FEC_2_5, +} fe_code_rate_t; + + +typedef enum fe_modulation { + QPSK, + QAM_16, + QAM_32, + QAM_64, + QAM_128, + QAM_256, + QAM_AUTO, + VSB_8, + VSB_16, + PSK_8, + APSK_16, + APSK_32, + DQPSK, + QAM_4_NR, +} fe_modulation_t; + +typedef enum fe_transmit_mode { + TRANSMISSION_MODE_2K, + TRANSMISSION_MODE_8K, + TRANSMISSION_MODE_AUTO, + TRANSMISSION_MODE_4K, + TRANSMISSION_MODE_1K, + TRANSMISSION_MODE_16K, + TRANSMISSION_MODE_32K, + TRANSMISSION_MODE_C1, + TRANSMISSION_MODE_C3780, +} fe_transmit_mode_t; + +typedef enum fe_bandwidth { + BANDWIDTH_8_MHZ, + BANDWIDTH_7_MHZ, + BANDWIDTH_6_MHZ, + BANDWIDTH_AUTO, + BANDWIDTH_5_MHZ, + BANDWIDTH_10_MHZ, + BANDWIDTH_1_712_MHZ, +} fe_bandwidth_t; + +typedef enum fe_guard_interval { + GUARD_INTERVAL_1_32, + GUARD_INTERVAL_1_16, + GUARD_INTERVAL_1_8, + GUARD_INTERVAL_1_4, + GUARD_INTERVAL_AUTO, + GUARD_INTERVAL_1_128, + GUARD_INTERVAL_19_128, + GUARD_INTERVAL_19_256, + GUARD_INTERVAL_PN420, + GUARD_INTERVAL_PN595, + GUARD_INTERVAL_PN945, +} fe_guard_interval_t; + + +typedef enum fe_hierarchy { + HIERARCHY_NONE, + HIERARCHY_1, + HIERARCHY_2, + HIERARCHY_4, + HIERARCHY_AUTO +} fe_hierarchy_t; + +enum fe_interleaving { + INTERLEAVING_NONE, + INTERLEAVING_AUTO, + INTERLEAVING_240, + INTERLEAVING_720, +}; + +struct dvb_qpsk_parameters { + __u32 symbol_rate; /* symbol rate in Symbols per second */ + fe_code_rate_t fec_inner; /* forward error correction (see above) */ +}; + +struct dvb_qam_parameters { + __u32 symbol_rate; /* symbol rate in Symbols per second */ + fe_code_rate_t fec_inner; /* forward error correction (see above) */ + fe_modulation_t modulation; /* modulation type (see above) */ +}; + +struct dvb_vsb_parameters { + fe_modulation_t modulation; /* modulation type (see above) */ +}; + +struct dvb_ofdm_parameters { + fe_bandwidth_t bandwidth; + fe_code_rate_t code_rate_HP; /* high priority stream code rate */ + fe_code_rate_t code_rate_LP; /* low priority stream code rate */ + fe_modulation_t constellation; /* modulation type (see above) */ + fe_transmit_mode_t transmission_mode; + fe_guard_interval_t guard_interval; + fe_hierarchy_t hierarchy_information; +}; + + +struct dvb_frontend_parameters { + __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */ + /* intermediate frequency in kHz for QPSK */ + fe_spectral_inversion_t inversion; + union { + struct dvb_qpsk_parameters qpsk; + struct dvb_qam_parameters qam; + struct dvb_ofdm_parameters ofdm; + struct dvb_vsb_parameters vsb; + } u; +}; + +struct dvb_frontend_event { + fe_status_t status; + struct dvb_frontend_parameters parameters; +}; + +/* S2API Commands */ +#define DTV_UNDEFINED 0 +#define DTV_TUNE 1 +#define DTV_CLEAR 2 +#define DTV_FREQUENCY 3 +#define DTV_MODULATION 4 +#define DTV_BANDWIDTH_HZ 5 +#define DTV_INVERSION 6 +#define DTV_DISEQC_MASTER 7 +#define DTV_SYMBOL_RATE 8 +#define DTV_INNER_FEC 9 +#define DTV_VOLTAGE 10 +#define DTV_TONE 11 +#define DTV_PILOT 12 +#define DTV_ROLLOFF 13 +#define DTV_DISEQC_SLAVE_REPLY 14 + +/* Basic enumeration set for querying unlimited capabilities */ +#define DTV_FE_CAPABILITY_COUNT 15 +#define DTV_FE_CAPABILITY 16 +#define DTV_DELIVERY_SYSTEM 17 + +/* ISDB-T and ISDB-Tsb */ +#define DTV_ISDBT_PARTIAL_RECEPTION 18 +#define DTV_ISDBT_SOUND_BROADCASTING 19 + +#define DTV_ISDBT_SB_SUBCHANNEL_ID 20 +#define DTV_ISDBT_SB_SEGMENT_IDX 21 +#define DTV_ISDBT_SB_SEGMENT_COUNT 22 + +#define DTV_ISDBT_LAYERA_FEC 23 +#define DTV_ISDBT_LAYERA_MODULATION 24 +#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 +#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 + +#define DTV_ISDBT_LAYERB_FEC 27 +#define DTV_ISDBT_LAYERB_MODULATION 28 +#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 +#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 + +#define DTV_ISDBT_LAYERC_FEC 31 +#define DTV_ISDBT_LAYERC_MODULATION 32 +#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 +#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 + +#define DTV_API_VERSION 35 + +#define DTV_CODE_RATE_HP 36 +#define DTV_CODE_RATE_LP 37 +#define DTV_GUARD_INTERVAL 38 +#define DTV_TRANSMISSION_MODE 39 +#define DTV_HIERARCHY 40 + +#define DTV_ISDBT_LAYER_ENABLED 41 + +#define DTV_STREAM_ID 42 +#define DTV_ISDBS_TS_ID_LEGACY DTV_STREAM_ID +#define DTV_DVBT2_PLP_ID_LEGACY 43 + +#define DTV_ENUM_DELSYS 44 + +/* ATSC-MH */ +#define DTV_ATSCMH_FIC_VER 45 +#define DTV_ATSCMH_PARADE_ID 46 +#define DTV_ATSCMH_NOG 47 +#define DTV_ATSCMH_TNOG 48 +#define DTV_ATSCMH_SGN 49 +#define DTV_ATSCMH_PRC 50 +#define DTV_ATSCMH_RS_FRAME_MODE 51 +#define DTV_ATSCMH_RS_FRAME_ENSEMBLE 52 +#define DTV_ATSCMH_RS_CODE_MODE_PRI 53 +#define DTV_ATSCMH_RS_CODE_MODE_SEC 54 +#define DTV_ATSCMH_SCCC_BLOCK_MODE 55 +#define DTV_ATSCMH_SCCC_CODE_MODE_A 56 +#define DTV_ATSCMH_SCCC_CODE_MODE_B 57 +#define DTV_ATSCMH_SCCC_CODE_MODE_C 58 +#define DTV_ATSCMH_SCCC_CODE_MODE_D 59 + +#define DTV_INTERLEAVING 60 +#define DTV_LNA 61 + +/* Quality parameters */ +#define DTV_STAT_SIGNAL_STRENGTH 62 +#define DTV_STAT_CNR 63 +#define DTV_STAT_PRE_ERROR_BIT_COUNT 64 +#define DTV_STAT_PRE_TOTAL_BIT_COUNT 65 +#define DTV_STAT_POST_ERROR_BIT_COUNT 66 +#define DTV_STAT_POST_TOTAL_BIT_COUNT 67 +#define DTV_STAT_ERROR_BLOCK_COUNT 68 +#define DTV_STAT_TOTAL_BLOCK_COUNT 69 + +#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT + +typedef enum fe_pilot { + PILOT_ON, + PILOT_OFF, + PILOT_AUTO, +} fe_pilot_t; + +typedef enum fe_rolloff { + ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */ + ROLLOFF_20, + ROLLOFF_25, + ROLLOFF_AUTO, +} fe_rolloff_t; + +typedef enum fe_delivery_system { + SYS_UNDEFINED, + SYS_DVBC_ANNEX_A, + SYS_DVBC_ANNEX_B, + SYS_DVBT, + SYS_DSS, + SYS_DVBS, + SYS_DVBS2, + SYS_DVBH, + SYS_ISDBT, + SYS_ISDBS, + SYS_ISDBC, + SYS_ATSC, + SYS_ATSCMH, + SYS_DTMB, + SYS_CMMB, + SYS_DAB, + SYS_DVBT2, + SYS_TURBO, + SYS_DVBC_ANNEX_C, +} fe_delivery_system_t; + +/* backward compatibility */ +#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A +#define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */ + +/* ATSC-MH */ + +enum atscmh_sccc_block_mode { + ATSCMH_SCCC_BLK_SEP = 0, + ATSCMH_SCCC_BLK_COMB = 1, + ATSCMH_SCCC_BLK_RES = 2, +}; + +enum atscmh_sccc_code_mode { + ATSCMH_SCCC_CODE_HLF = 0, + ATSCMH_SCCC_CODE_QTR = 1, + ATSCMH_SCCC_CODE_RES = 2, +}; + +enum atscmh_rs_frame_ensemble { + ATSCMH_RSFRAME_ENS_PRI = 0, + ATSCMH_RSFRAME_ENS_SEC = 1, +}; + +enum atscmh_rs_frame_mode { + ATSCMH_RSFRAME_PRI_ONLY = 0, + ATSCMH_RSFRAME_PRI_SEC = 1, + ATSCMH_RSFRAME_RES = 2, +}; + +enum atscmh_rs_code_mode { + ATSCMH_RSCODE_211_187 = 0, + ATSCMH_RSCODE_223_187 = 1, + ATSCMH_RSCODE_235_187 = 2, + ATSCMH_RSCODE_RES = 3, +}; + +#define NO_STREAM_ID_FILTER (~0U) +#define LNA_AUTO (~0U) + +struct dtv_cmds_h { + char *name; /* A display name for debugging purposes */ + + __u32 cmd; /* A unique ID */ + + /* Flags */ + __u32 set:1; /* Either a set or get property */ + __u32 buffer:1; /* Does this property use the buffer? */ + __u32 reserved:30; /* Align */ +}; + +/** + * Scale types for the quality parameters. + * @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That + * could indicate a temporary or a permanent + * condition. + * @FE_SCALE_DECIBEL: The scale is measured in 0.0001 dB steps, typically + * used on signal measures. + * @FE_SCALE_RELATIVE: The scale is a relative percentual measure, + * ranging from 0 (0%) to 0xffff (100%). + * @FE_SCALE_COUNTER: The scale counts the occurrence of an event, like + * bit error, block error, lapsed time. + */ +enum fecap_scale_params { + FE_SCALE_NOT_AVAILABLE = 0, + FE_SCALE_DECIBEL, + FE_SCALE_RELATIVE, + FE_SCALE_COUNTER +}; + +/** + * struct dtv_stats - Used for reading a DTV status property + * + * @value: value of the measure. Should range from 0 to 0xffff; + * @scale: Filled with enum fecap_scale_params - the scale + * in usage for that parameter + * + * For most delivery systems, this will return a single value for each + * parameter. + * It should be noticed, however, that new OFDM delivery systems like + * ISDB can use different modulation types for each group of carriers. + * On such standards, up to 8 groups of statistics can be provided, one + * for each carrier group (called "layer" on ISDB). + * In order to be consistent with other delivery systems, the first + * value refers to the entire set of carriers ("global"). + * dtv_status:scale should use the value FE_SCALE_NOT_AVAILABLE when + * the value for the entire group of carriers or from one specific layer + * is not provided by the hardware. + * st.len should be filled with the latest filled status + 1. + * + * In other words, for ISDB, those values should be filled like: + * u.st.stat.svalue[0] = global statistics; + * u.st.stat.scale[0] = FE_SCALE_DECIBELS; + * u.st.stat.value[1] = layer A statistics; + * u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available); + * u.st.stat.svalue[2] = layer B statistics; + * u.st.stat.scale[2] = FE_SCALE_DECIBELS; + * u.st.stat.svalue[3] = layer C statistics; + * u.st.stat.scale[3] = FE_SCALE_DECIBELS; + * u.st.len = 4; + */ +struct dtv_stats { + __u8 scale; /* enum fecap_scale_params type */ + union { + __u64 uvalue; /* for counters and relative scales */ + __s64 svalue; /* for 0.0001 dB measures */ + }; +} __attribute__ ((packed)); + + +#define MAX_DTV_STATS 4 + +struct dtv_fe_stats { + __u8 len; + struct dtv_stats stat[MAX_DTV_STATS]; +} __attribute__ ((packed)); + +struct dtv_property { + __u32 cmd; + __u32 reserved[3]; + union { + __u32 data; + struct dtv_fe_stats st; + struct { + __u8 data[32]; + __u32 len; + __u32 reserved1[3]; + void *reserved2; + } buffer; + } u; + int result; +} __attribute__ ((packed)); + +/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ +#define DTV_IOCTL_MAX_MSGS 64 + +struct dtv_properties { + __u32 num; + struct dtv_property *props; +}; + +#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties) +#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties) + + +/** + * When set, this flag will disable any zigzagging or other "normal" tuning + * behaviour. Additionally, there will be no automatic monitoring of the lock + * status, and hence no frontend events will be generated. If a frontend device + * is closed, this flag will be automatically turned off when the device is + * reopened read-write. + */ +#define FE_TUNE_MODE_ONESHOT 0x01 + + +#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info) + +#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62) +#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd) +#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply) +#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */ + +#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */ +#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */ +#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */ + +#define FE_READ_STATUS _IOR('o', 69, fe_status_t) +#define FE_READ_BER _IOR('o', 70, __u32) +#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16) +#define FE_READ_SNR _IOR('o', 72, __u16) +#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32) + +#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters) +#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters) +#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */ +#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event) + +#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ + +#endif /*_DVBFRONTEND_H_*/ diff --git a/kernel_headers/linux/dvb/net.h b/kernel_headers/linux/dvb/net.h new file mode 100644 index 0000000..f451e7e --- /dev/null +++ b/kernel_headers/linux/dvb/net.h @@ -0,0 +1,52 @@ +/* + * net.h + * + * Copyright (C) 2000 Marcus Metzler + * & Ralph Metzler + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBNET_H_ +#define _DVBNET_H_ + +#include + +struct dvb_net_if { + __u16 pid; + __u16 if_num; + __u8 feedtype; +#define DVB_NET_FEEDTYPE_MPE 0 /* multi protocol encapsulation */ +#define DVB_NET_FEEDTYPE_ULE 1 /* ultra lightweight encapsulation */ +}; + + +#define NET_ADD_IF _IOWR('o', 52, struct dvb_net_if) +#define NET_REMOVE_IF _IO('o', 53) +#define NET_GET_IF _IOWR('o', 54, struct dvb_net_if) + + +/* binary compatibility cruft: */ +struct __dvb_net_if_old { + __u16 pid; + __u16 if_num; +}; +#define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old) +#define __NET_GET_IF_OLD _IOWR('o', 54, struct __dvb_net_if_old) + + +#endif /*_DVBNET_H_*/ diff --git a/kernel_headers/linux/dvb/osd.h b/kernel_headers/linux/dvb/osd.h new file mode 100644 index 0000000..f28c7cb --- /dev/null +++ b/kernel_headers/linux/dvb/osd.h @@ -0,0 +1,144 @@ +/* + * osd.h + * + * Copyright (C) 2001 Ralph Metzler + * & Marcus Metzler + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Lesser Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBOSD_H_ +#define _DVBOSD_H_ + + + +typedef enum { + // All functions return -2 on "not open" + OSD_Close=1, // () + // Disables OSD and releases the buffers + // returns 0 on success + OSD_Open, // (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0)) + // Opens OSD with this size and bit depth + // returns 0 on success, -1 on DRAM allocation error, -2 on "already open" + OSD_Show, // () + // enables OSD mode + // returns 0 on success + OSD_Hide, // () + // disables OSD mode + // returns 0 on success + OSD_Clear, // () + // Sets all pixel to color 0 + // returns 0 on success + OSD_Fill, // (color) + // Sets all pixel to color + // returns 0 on success + OSD_SetColor, // (color,R{x0},G{y0},B{x1},opacity{y1}) + // set palette entry to , and apply + // R,G,B: 0..255 + // R=Red, G=Green, B=Blue + // opacity=0: pixel opacity 0% (only video pixel shows) + // opacity=1..254: pixel opacity as specified in header + // opacity=255: pixel opacity 100% (only OSD pixel shows) + // returns 0 on success, -1 on error + OSD_SetPalette, // (firstcolor{color},lastcolor{x0},data) + // Set a number of entries in the palette + // sets the entries "firstcolor" through "lastcolor" from the array "data" + // data has 4 byte for each color: + // R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel + OSD_SetTrans, // (transparency{color}) + // Sets transparency of mixed pixel (0..15) + // returns 0 on success + OSD_SetPixel, // (x0,y0,color) + // sets pixel , to color number + // returns 0 on success, -1 on error + OSD_GetPixel, // (x0,y0) + // returns color number of pixel ,, or -1 + OSD_SetRow, // (x0,y0,x1,data) + // fills pixels x0,y through x1,y with the content of data[] + // returns 0 on success, -1 on clipping all pixel (no pixel drawn) + OSD_SetBlock, // (x0,y0,x1,y1,increment{color},data) + // fills pixels x0,y0 through x1,y1 with the content of data[] + // inc contains the width of one line in the data block, + // inc<=0 uses blockwidth as linewidth + // returns 0 on success, -1 on clipping all pixel + OSD_FillRow, // (x0,y0,x1,color) + // fills pixels x0,y through x1,y with the color + // returns 0 on success, -1 on clipping all pixel + OSD_FillBlock, // (x0,y0,x1,y1,color) + // fills pixels x0,y0 through x1,y1 with the color + // returns 0 on success, -1 on clipping all pixel + OSD_Line, // (x0,y0,x1,y1,color) + // draw a line from x0,y0 to x1,y1 with the color + // returns 0 on success + OSD_Query, // (x0,y0,x1,y1,xasp{color}}), yasp=11 + // fills parameters with the picture dimensions and the pixel aspect ratio + // returns 0 on success + OSD_Test, // () + // draws a test picture. for debugging purposes only + // returns 0 on success +// TODO: remove "test" in final version + OSD_Text, // (x0,y0,size,color,text) + OSD_SetWindow, // (x0) set window with number 0 + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBVERSION_H_ +#define _DVBVERSION_H_ + +#define DVB_API_VERSION 5 +#define DVB_API_VERSION_MINOR 10 + +#endif /*_DVBVERSION_H_*/ diff --git a/kernel_headers/linux/dvb/video.h b/kernel_headers/linux/dvb/video.h new file mode 100644 index 0000000..e09385e --- /dev/null +++ b/kernel_headers/linux/dvb/video.h @@ -0,0 +1,435 @@ +/* + * video.h + * + * Copyright (C) 2000 Marcus Metzler + * & Ralph Metzler + * for convergence integrated media GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef _DVBVIDEO_H_ +#define _DVBVIDEO_H_ + +#include +#include +#include + +#define V4L2_MPEG_VIDC_EXTRADATA_MB_QUANTIZATION_BIT 0x00000001 +#define V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO_BIT 0x00000002 +#define V4L2_MPEG_VIDC_EXTRADATA_VC1_FRAMEDISP_BIT 0x00000004 +#define V4L2_MPEG_VIDC_EXTRADATA_VC1_SEQDISP_BIT 0x00000008 +#define V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP_BIT 0x00000010 +#define V4L2_MPEG_VIDC_EXTRADATA_S3D_FRAME_PACKING_BIT 0x00000020 +#define V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE_BIT 0x00000040 +#define V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW_BIT 0x00000080 +#define V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI_BIT 0x00000100 +#define V4L2_MPEG_VIDC_EXTRADATA_CLOSED_CAPTION_UD_BIT 0x00000200 +#define V4L2_MPEG_VIDC_EXTRADATA_AFD_UD_BIT 0x00000400 +#define V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO_BIT 0x00000800 +#define V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB_BIT 0x00001000 +#define V4L2_MPEG_VIDC_EXTRADATA_METADATA_FILLER_BIT 0x00002000 +#define V4L2_MPEG_VIDC_INDEX_EXTRADATA_INPUT_CROP_BIT 0x00004000 +#define V4L2_MPEG_VIDC_INDEX_EXTRADATA_DIGITAL_ZOOM_BIT 0x00008000 +#define V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO_BIT 0x00010000 +#define V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP_BIT 0x00020000 + +typedef enum { + VIDEO_FORMAT_4_3, /* Select 4:3 format */ + VIDEO_FORMAT_16_9, /* Select 16:9 format. */ + VIDEO_FORMAT_221_1 /* 2.21:1 */ +} video_format_t; + + +typedef enum { + VIDEO_SYSTEM_PAL, + VIDEO_SYSTEM_NTSC, + VIDEO_SYSTEM_PALN, + VIDEO_SYSTEM_PALNc, + VIDEO_SYSTEM_PALM, + VIDEO_SYSTEM_NTSC60, + VIDEO_SYSTEM_PAL60, + VIDEO_SYSTEM_PALM60 +} video_system_t; + + +typedef enum { + VIDEO_PAN_SCAN, /* use pan and scan format */ + VIDEO_LETTER_BOX, /* use letterbox format */ + VIDEO_CENTER_CUT_OUT /* use center cut out format */ +} video_displayformat_t; + +enum video_codec_t { + VIDEO_CODECTYPE_NONE, + VIDEO_CODECTYPE_MPEG2, + VIDEO_CODECTYPE_MPEG4, + VIDEO_CODECTYPE_H264, + VIDEO_CODECTYPE_VC1 +}; + +enum video_out_format_t { + VIDEO_YUV_FORMAT_NV12, + VIDEO_YUV_FORMAT_TILE_4x2 +}; + +enum video_playback_mode_t { + VIDEO_PLAYBACK_NORMAL = 0, + VIDEO_PLAYBACK_TRICKMODE_COARSE = 1, + VIDEO_PLAYBACK_TRICKMODE_SMOOTH = 2 +}; + +typedef struct { + int w; + int h; + video_format_t aspect_ratio; +} video_size_t; + +typedef enum { + VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ + VIDEO_SOURCE_MEMORY /* If this source is selected, the stream + comes from the user through the write + system call */ +} video_stream_source_t; + + +typedef enum { + VIDEO_STOPPED, /* Video is stopped */ + VIDEO_PLAYING, /* Video is currently playing */ + VIDEO_FREEZED /* Video is freezed */ +} video_play_state_t; + + +/* Decoder commands */ +#define VIDEO_CMD_PLAY (0) +#define VIDEO_CMD_STOP (1) +#define VIDEO_CMD_FREEZE (2) +#define VIDEO_CMD_CONTINUE (3) + +#define VIDEO_CMD_SET_CODEC (4) +#define VIDEO_CMD_GET_CODEC (5) +#define VIDEO_CMD_SET_OUTPUT_FORMAT (6) +#define VIDEO_CMD_GET_OUTPUT_FORMAT (7) +#define VIDEO_CMD_GET_BUFFER_REQ (8) +#define VIDEO_CMD_SET_INPUT_BUFFERS (9) +#define VIDEO_CMD_SET_OUTPUT_BUFFERS (10) +#define VIDEO_CMD_READ_RAW_OUTPUT (11) +#define VIDEO_CMD_GET_PIC_RES (12) +#define VIDEO_CMD_FREE_INPUT_BUFFERS (13) +#define VIDEO_CMD_FREE_OUTPUT_BUFFERS (14) +#define VIDEO_CMD_GET_H264_MV_BUFFER (15) +#define VIDEO_CMD_SET_H264_MV_BUFFER (16) +#define VIDEO_CMD_FREE_H264_MV_BUFFER (17) +#define VIDEO_CMD_CLEAR_INPUT_BUFFER (18) +#define VIDEO_CMD_CLEAR_OUTPUT_BUFFER (19) +#define VIDEO_CMD_SET_BUFFER_COUNT (20) +#define VIDEO_CMD_SET_EXTRADATA_TYPES (21) +#define VIDEO_CMD_SET_EXTRADATA_BUFFER (22) +#define VIDEO_CMD_SET_PLAYBACK_MODE (23) + +/* Flags for VIDEO_CMD_FREEZE */ +#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) + +/* Flags for VIDEO_CMD_STOP */ +#define VIDEO_CMD_STOP_TO_BLACK (1 << 0) +#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1) + +/* Play input formats: */ +/* The decoder has no special format requirements */ +#define VIDEO_PLAY_FMT_NONE (0) +/* The decoder requires full GOPs */ +#define VIDEO_PLAY_FMT_GOP (1) + +/* Picture Resolution for Video Data */ +struct video_pic_res { + unsigned int width; + unsigned int height; + unsigned int stride; + unsigned int scan_lines; +}; + +/* Video Buffer Properties */ +struct video_buffer_prop { + unsigned int alignment; + unsigned int buf_poolid; + size_t buf_size; +}; + +/* Buffer Requirements from Video Decoder */ +struct video_buffer_req { + unsigned int num_input_buffers; /* Number of Input Buffers */ + unsigned int num_output_buffers; /* Number of Output Buffers */ + struct video_buffer_prop input_buf_prop; /* Input Buffer Properties */ + struct video_buffer_prop output_buf_prop; /* Output Buffer Prop */ + size_t extradata_size; +}; + +enum scan_format { + INTERLACE_FRAME_PROGRESSIVE, + INTERLACE_INTERLEAVE_FRAME_TOP_FIELD_FIRST, + INTERLACE_INTERLEAVE_FRAME_BOTTOM_FIELD_FIRST +}; + +/* Video Data Buffer Structure for Input and Output */ +struct video_data_buffer { + void *bufferaddr; /* Pointer to Buffer */ + size_t buffer_len; /* Length of Buffer */ + int ion_fd; /* file Descriptor */ + size_t offset; + size_t mmaped_size; + void *client_data; + void *ip_buffer_tag; + __u64 pts; + enum scan_format interlaced_format; +}; + +struct extradata_buffer { + void *bufferaddr; + size_t buffer_len; + int ion_fd; + size_t offset; +}; + +struct video_h264_mv { + size_t size; + int count; + int ion_fd; + int offset; +}; + +struct video_mv_buff_size { + int width; + int height; + int size; + int alignment; +}; + + +/* The structure must be zeroed before use by the application + This ensures it can be extended safely in the future. */ +struct video_command { + __u32 cmd; + __u32 flags; + union { + struct { + __u64 pts; + } stop; + + struct { + /* 0 or 1000 specifies normal speed, + 1 specifies forward single stepping, + -1 specifies backward single stepping, + >1: playback at speed/1000 of the normal speed, + <-1: reverse playback at (-speed/1000) of + the normal speed. */ + __s32 speed; + __u32 format; + } play; + + union { + enum video_codec_t codec; /* Video Codec Type */ + enum video_out_format_t format; /* YUV Format */ + struct video_pic_res frame_res; /* Frame Resolution */ + /* Buffer Requirements for Video Decoder */ + struct video_buffer_req buf_req; + struct video_data_buffer buffer; /* Buffer Details */ + struct video_mv_buff_size mv_buffer_req; + struct video_h264_mv mv_buffer_prop; + unsigned int extradata_type; + struct extradata_buffer extradata_buffer; + enum video_playback_mode_t video_mode; + }; + + struct { + __u32 data[16]; + } raw; + }; +}; + +/* FIELD_UNKNOWN can be used if the hardware does not know whether + the Vsync is for an odd, even or progressive (i.e. non-interlaced) + field. */ +#define VIDEO_VSYNC_FIELD_UNKNOWN (0) +#define VIDEO_VSYNC_FIELD_ODD (1) +#define VIDEO_VSYNC_FIELD_EVEN (2) +#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3) + +struct video_event { + __s32 type; +#define VIDEO_EVENT_SIZE_CHANGED (1) +#define VIDEO_EVENT_FRAME_RATE_CHANGED (2) +#define VIDEO_EVENT_DECODER_STOPPED (3) +#define VIDEO_EVENT_VSYNC (4) +#define VIDEO_EVENT_DECODER_PLAYING (5) +#define VIDEO_EVENT_DECODER_FREEZED (6) +#define VIDEO_EVENT_DECODER_RESUMED (7) +#define VIDEO_EVENT_INPUT_BUFFER_DONE (8) +#define VIDEO_EVENT_SEQ_HDR_FOUND (9) +#define VIDEO_EVENT_OUTPUT_BUFFER_DONE (10) +#define VIDEO_EVENT_OUTPUT_FLUSH_DONE (11) +#define VIDEO_EVENT_INPUT_FLUSH_DONE (12) +#define VIDEO_EVENT_INPUT_FLUSHED (13) +#define VIDEO_EVENT_OUTPUT_FLUSHED (14) + + + unsigned int status; +#define VIDEO_STATUS_SUCESS 0 +#define VIDEO_STATUS_BITSTREAM_ERROR 1 +#define VIDEO_STATUS_FAILED 2 +#define VIDEO_STATUS_NORESOURCE 3 +#define VIDEO_STATUS_INVALID_CMD 4 +#define VIDEO_STATUS_INVALID_PARAM 5 +#define VIDEO_STATUS_INVALID_STATE 6 +#define VIDEO_STATUS_BUSY 7 +#define VIDEO_STATUS_INVALID_HANDLE 8 +#define VIDEO_STATUS_NO_SUPPORT 9 + __kernel_time_t timestamp; + + union { + video_size_t size; + unsigned int frame_rate; /* in frames per 1000sec */ + unsigned char vsync_field; /* unknown/odd/even/progressive */ + struct video_data_buffer buffer; /* Output Buffer Details */ + } u; +}; + + +struct video_status { + int video_blank; /* blank video on freeze? */ + video_play_state_t play_state; /* current state of playback */ + video_stream_source_t stream_source;/* current source (demux/memory) */ + video_format_t video_format; /* current aspect ratio of stream*/ + video_displayformat_t display_format;/* selected cropping mode */ +}; + + +struct video_still_picture { + char *iFrame; /* pointer to a single iframe in memory */ + __s32 size; +}; + +typedef +struct video_highlight { + int active; /* 1=show highlight, 0=hide highlight */ + __u8 contrast1; /* 7- 4 Pattern pixel contrast */ + /* 3- 0 Background pixel contrast */ + __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */ + /* 3- 0 Emphasis pixel-1 contrast */ + __u8 color1; /* 7- 4 Pattern pixel color */ + /* 3- 0 Background pixel color */ + __u8 color2; /* 7- 4 Emphasis pixel-2 color */ + /* 3- 0 Emphasis pixel-1 color */ + __u32 ypos; /* 23-22 auto action mode */ + /* 21-12 start y */ + /* 9- 0 end y */ + __u32 xpos; /* 23-22 button color number */ + /* 21-12 start x */ + /* 9- 0 end x */ +} video_highlight_t; + + +typedef struct video_spu { + int active; + int stream_id; +} video_spu_t; + + +typedef struct video_spu_palette { /* SPU Palette information */ + int length; + __u8 *palette; +} video_spu_palette_t; + + +typedef struct video_navi_pack { + int length; /* 0 ... 1024 */ + __u8 data[1024]; +} video_navi_pack_t; + + +typedef __u16 video_attributes_t; +/* bits: descr. */ +/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */ +/* 13-12 TV system (0=525/60, 1=625/50) */ +/* 11-10 Aspect ratio (0=4:3, 3=16:9) */ +/* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */ +/* 7 line 21-1 data present in GOP (1=yes, 0=no) */ +/* 6 line 21-2 data present in GOP (1=yes, 0=no) */ +/* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */ +/* 2 source letterboxed (1=yes, 0=no) */ +/* 0 film/camera mode (0=camera, 1=film (625/50 only)) */ + + +/* bit definitions for capabilities: */ +/* can the hardware decode MPEG1 and/or MPEG2? */ +#define VIDEO_CAP_MPEG1 1 +#define VIDEO_CAP_MPEG2 2 +/* can you send a system and/or program stream to video device? + (you still have to open the video and the audio device but only + send the stream to the video device) */ +#define VIDEO_CAP_SYS 4 +#define VIDEO_CAP_PROG 8 +/* can the driver also handle SPU, NAVI and CSS encoded data? + (CSS API is not present yet) */ +#define VIDEO_CAP_SPU 16 +#define VIDEO_CAP_NAVI 32 +#define VIDEO_CAP_CSS 64 + + +#define VIDEO_STOP _IO('o', 21) +#define VIDEO_PLAY _IO('o', 22) +#define VIDEO_FREEZE _IO('o', 23) +#define VIDEO_CONTINUE _IO('o', 24) +#define VIDEO_SELECT_SOURCE _IO('o', 25) +#define VIDEO_SET_BLANK _IO('o', 26) +#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status) +#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event) +#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29) +#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture) +#define VIDEO_FAST_FORWARD _IO('o', 31) +#define VIDEO_SLOWMOTION _IO('o', 32) +#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) +#define VIDEO_CLEAR_BUFFER _IO('o', 34) +#define VIDEO_SET_ID _IO('o', 35) +#define VIDEO_SET_STREAMTYPE _IO('o', 36) +#define VIDEO_SET_FORMAT _IO('o', 37) +#define VIDEO_SET_SYSTEM _IO('o', 38) +#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t) +#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t) +#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t) +#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t) +#define VIDEO_SET_ATTRIBUTES _IO('o', 53) +#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) +#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int) + +/** + * VIDEO_GET_PTS + * + * Read the 33 bit presentation time stamp as defined + * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. + * + * The PTS should belong to the currently played + * frame if possible, but may also be a value close to it + * like the PTS of the last decoded frame or the last PTS + * extracted by the PES parser. + */ +#define VIDEO_GET_PTS _IOR('o', 57, __u64) + +/* Read the number of displayed frames since the decoder was started */ +#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64) + +#define VIDEO_COMMAND _IOWR('o', 59, struct video_command) +#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command) + +#endif /* _DVBVIDEO_H_ */ diff --git a/kernel_headers/linux/edd.h b/kernel_headers/linux/edd.h new file mode 100644 index 0000000..190815d --- /dev/null +++ b/kernel_headers/linux/edd.h @@ -0,0 +1,191 @@ +/* + * linux/include/linux/edd.h + * Copyright (C) 2002, 2003, 2004 Dell Inc. + * by Matt Domsch + * + * structures and definitions for the int 13h, ax={41,48}h + * BIOS Enhanced Disk Drive Services + * This is based on the T13 group document D1572 Revision 0 (August 14 2002) + * available at http://www.t13.org/docs2002/d1572r0.pdf. It is + * very similar to D1484 Revision 3 http://www.t13.org/docs2002/d1484r3.pdf + * + * In a nutshell, arch/{i386,x86_64}/boot/setup.S populates a scratch + * table in the boot_params that contains a list of BIOS-enumerated + * boot devices. + * In arch/{i386,x86_64}/kernel/setup.c, this information is + * transferred into the edd structure, and in drivers/firmware/edd.c, that + * information is used to identify BIOS boot disk. The code in setup.S + * is very sensitive to the size of these structures. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License v2.0 as published by + * the Free Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#ifndef _LINUX_EDD_H +#define _LINUX_EDD_H + +#include + +#define EDDNR 0x1e9 /* addr of number of edd_info structs at EDDBUF + in boot_params - treat this as 1 byte */ +#define EDDBUF 0xd00 /* addr of edd_info structs in boot_params */ +#define EDDMAXNR 6 /* number of edd_info structs starting at EDDBUF */ +#define EDDEXTSIZE 8 /* change these if you muck with the structures */ +#define EDDPARMSIZE 74 +#define CHECKEXTENSIONSPRESENT 0x41 +#define GETDEVICEPARAMETERS 0x48 +#define LEGACYGETDEVICEPARAMETERS 0x08 +#define EDDMAGIC1 0x55AA +#define EDDMAGIC2 0xAA55 + + +#define READ_SECTORS 0x02 /* int13 AH=0x02 is READ_SECTORS command */ +#define EDD_MBR_SIG_OFFSET 0x1B8 /* offset of signature in the MBR */ +#define EDD_MBR_SIG_BUF 0x290 /* addr in boot params */ +#define EDD_MBR_SIG_MAX 16 /* max number of signatures to store */ +#define EDD_MBR_SIG_NR_BUF 0x1ea /* addr of number of MBR signtaures at EDD_MBR_SIG_BUF + in boot_params - treat this as 1 byte */ + +#ifndef __ASSEMBLY__ + +#define EDD_EXT_FIXED_DISK_ACCESS (1 << 0) +#define EDD_EXT_DEVICE_LOCKING_AND_EJECTING (1 << 1) +#define EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT (1 << 2) +#define EDD_EXT_64BIT_EXTENSIONS (1 << 3) + +#define EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT (1 << 0) +#define EDD_INFO_GEOMETRY_VALID (1 << 1) +#define EDD_INFO_REMOVABLE (1 << 2) +#define EDD_INFO_WRITE_VERIFY (1 << 3) +#define EDD_INFO_MEDIA_CHANGE_NOTIFICATION (1 << 4) +#define EDD_INFO_LOCKABLE (1 << 5) +#define EDD_INFO_NO_MEDIA_PRESENT (1 << 6) +#define EDD_INFO_USE_INT13_FN50 (1 << 7) + +struct edd_device_params { + __u16 length; + __u16 info_flags; + __u32 num_default_cylinders; + __u32 num_default_heads; + __u32 sectors_per_track; + __u64 number_of_sectors; + __u16 bytes_per_sector; + __u32 dpte_ptr; /* 0xFFFFFFFF for our purposes */ + __u16 key; /* = 0xBEDD */ + __u8 device_path_info_length; /* = 44 */ + __u8 reserved2; + __u16 reserved3; + __u8 host_bus_type[4]; + __u8 interface_type[8]; + union { + struct { + __u16 base_address; + __u16 reserved1; + __u32 reserved2; + } __attribute__ ((packed)) isa; + struct { + __u8 bus; + __u8 slot; + __u8 function; + __u8 channel; + __u32 reserved; + } __attribute__ ((packed)) pci; + /* pcix is same as pci */ + struct { + __u64 reserved; + } __attribute__ ((packed)) ibnd; + struct { + __u64 reserved; + } __attribute__ ((packed)) xprs; + struct { + __u64 reserved; + } __attribute__ ((packed)) htpt; + struct { + __u64 reserved; + } __attribute__ ((packed)) unknown; + } interface_path; + union { + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } __attribute__ ((packed)) ata; + struct { + __u8 device; + __u8 lun; + __u8 reserved1; + __u8 reserved2; + __u32 reserved3; + __u64 reserved4; + } __attribute__ ((packed)) atapi; + struct { + __u16 id; + __u64 lun; + __u16 reserved1; + __u32 reserved2; + } __attribute__ ((packed)) scsi; + struct { + __u64 serial_number; + __u64 reserved; + } __attribute__ ((packed)) usb; + struct { + __u64 eui; + __u64 reserved; + } __attribute__ ((packed)) i1394; + struct { + __u64 wwid; + __u64 lun; + } __attribute__ ((packed)) fibre; + struct { + __u64 identity_tag; + __u64 reserved; + } __attribute__ ((packed)) i2o; + struct { + __u32 array_number; + __u32 reserved1; + __u64 reserved2; + } __attribute__ ((packed)) raid; + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } __attribute__ ((packed)) sata; + struct { + __u64 reserved1; + __u64 reserved2; + } __attribute__ ((packed)) unknown; + } device_path; + __u8 reserved4; + __u8 checksum; +} __attribute__ ((packed)); + +struct edd_info { + __u8 device; + __u8 version; + __u16 interface_support; + __u16 legacy_max_cylinder; + __u8 legacy_max_head; + __u8 legacy_sectors_per_track; + struct edd_device_params params; +} __attribute__ ((packed)); + +struct edd { + unsigned int mbr_signature[EDD_MBR_SIG_MAX]; + struct edd_info edd_info[EDDMAXNR]; + unsigned char mbr_signature_nr; + unsigned char edd_info_nr; +}; + +#endif /*!__ASSEMBLY__ */ + +#endif /* _LINUX_EDD_H */ diff --git a/kernel_headers/linux/efs_fs_sb.h b/kernel_headers/linux/efs_fs_sb.h new file mode 100644 index 0000000..a01be90 --- /dev/null +++ b/kernel_headers/linux/efs_fs_sb.h @@ -0,0 +1,62 @@ +/* + * efs_fs_sb.h + * + * Copyright (c) 1999 Al Smith + * + * Portions derived from IRIX header files (c) 1988 Silicon Graphics + */ + +#ifndef __EFS_FS_SB_H__ +#define __EFS_FS_SB_H__ + +#include +#include + +/* EFS superblock magic numbers */ +#define EFS_MAGIC 0x072959 +#define EFS_NEWMAGIC 0x07295a + +#define IS_EFS_MAGIC(x) ((x == EFS_MAGIC) || (x == EFS_NEWMAGIC)) + +#define EFS_SUPER 1 +#define EFS_ROOTINODE 2 + +/* efs superblock on disk */ +struct efs_super { + __be32 fs_size; /* size of filesystem, in sectors */ + __be32 fs_firstcg; /* bb offset to first cg */ + __be32 fs_cgfsize; /* size of cylinder group in bb's */ + __be16 fs_cgisize; /* bb's of inodes per cylinder group */ + __be16 fs_sectors; /* sectors per track */ + __be16 fs_heads; /* heads per cylinder */ + __be16 fs_ncg; /* # of cylinder groups in filesystem */ + __be16 fs_dirty; /* fs needs to be fsck'd */ + __be32 fs_time; /* last super-block update */ + __be32 fs_magic; /* magic number */ + char fs_fname[6]; /* file system name */ + char fs_fpack[6]; /* file system pack name */ + __be32 fs_bmsize; /* size of bitmap in bytes */ + __be32 fs_tfree; /* total free data blocks */ + __be32 fs_tinode; /* total free inodes */ + __be32 fs_bmblock; /* bitmap location. */ + __be32 fs_replsb; /* Location of replicated superblock. */ + __be32 fs_lastialloc; /* last allocated inode */ + char fs_spare[20]; /* space for expansion - MUST BE ZERO */ + __be32 fs_checksum; /* checksum of volume portion of fs */ +}; + +/* efs superblock information in memory */ +struct efs_sb_info { + __u32 fs_magic; /* superblock magic number */ + __u32 fs_start; /* first block of filesystem */ + __u32 first_block; /* first data block in filesystem */ + __u32 total_blocks; /* total number of blocks in filesystem */ + __u32 group_size; /* # of blocks a group consists of */ + __u32 data_free; /* # of free data blocks */ + __u32 inode_free; /* # of free inodes */ + __u16 inode_blocks; /* # of blocks used for inodes in every grp */ + __u16 total_groups; /* # of groups */ +}; + +#endif /* __EFS_FS_SB_H__ */ + diff --git a/kernel_headers/linux/elf-em.h b/kernel_headers/linux/elf-em.h new file mode 100644 index 0000000..59c17a2 --- /dev/null +++ b/kernel_headers/linux/elf-em.h @@ -0,0 +1,58 @@ +#ifndef _LINUX_ELF_EM_H +#define _LINUX_ELF_EM_H + +/* These constants define the various ELF target machines */ +#define EM_NONE 0 +#define EM_M32 1 +#define EM_SPARC 2 +#define EM_386 3 +#define EM_68K 4 +#define EM_88K 5 +#define EM_486 6 /* Perhaps disused */ +#define EM_860 7 +#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */ + /* Next two are historical and binaries and + modules of these types will be rejected by + Linux. */ +#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ +#define EM_MIPS_RS4_BE 10 /* MIPS R4000 big-endian */ + +#define EM_PARISC 15 /* HPPA */ +#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ +#define EM_PPC 20 /* PowerPC */ +#define EM_PPC64 21 /* PowerPC64 */ +#define EM_SPU 23 /* Cell BE SPU */ +#define EM_ARM 40 /* ARM 32 bit */ +#define EM_SH 42 /* SuperH */ +#define EM_SPARCV9 43 /* SPARC v9 64-bit */ +#define EM_IA_64 50 /* HP/Intel IA-64 */ +#define EM_X86_64 62 /* AMD x86-64 */ +#define EM_S390 22 /* IBM S/390 */ +#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ +#define EM_V850 87 /* NEC v850 */ +#define EM_M32R 88 /* Renesas M32R */ +#define EM_H8_300 46 /* Renesas H8/300,300H,H8S */ +#define EM_MN10300 89 /* Panasonic/MEI MN10300, AM33 */ +#define EM_BLACKFIN 106 /* ADI Blackfin Processor */ +#define EM_TI_C6000 140 /* TI C6X DSPs */ +#define EM_AARCH64 183 /* ARM 64 bit */ +#define EM_FRV 0x5441 /* Fujitsu FR-V */ +#define EM_AVR32 0x18ad /* Atmel AVR32 */ + +/* + * This is an interim value that we will use until the committee comes + * up with a final number. + */ +#define EM_ALPHA 0x9026 + +/* Bogus old v850 magic number, used by old tools. */ +#define EM_CYGNUS_V850 0x9080 +/* Bogus old m32r magic number, used by old tools. */ +#define EM_CYGNUS_M32R 0x9041 +/* This is the old interim value for S/390 architecture */ +#define EM_S390_OLD 0xA390 +/* Also Panasonic/MEI MN10300, AM33 */ +#define EM_CYGNUS_MN10300 0xbeef + + +#endif /* _LINUX_ELF_EM_H */ diff --git a/kernel_headers/linux/elf-fdpic.h b/kernel_headers/linux/elf-fdpic.h new file mode 100644 index 0000000..5748a46 --- /dev/null +++ b/kernel_headers/linux/elf-fdpic.h @@ -0,0 +1,34 @@ +/* elf-fdpic.h: FDPIC ELF load map + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_ELF_FDPIC_H +#define _LINUX_ELF_FDPIC_H + +#include + +#define PT_GNU_STACK (PT_LOOS + 0x474e551) + +/* segment mappings for ELF FDPIC libraries/executables/interpreters */ +struct elf32_fdpic_loadseg { + Elf32_Addr addr; /* core address to which mapped */ + Elf32_Addr p_vaddr; /* VMA recorded in file */ + Elf32_Word p_memsz; /* allocation size recorded in file */ +}; + +struct elf32_fdpic_loadmap { + Elf32_Half version; /* version of these structures, just in case... */ + Elf32_Half nsegs; /* number of segments */ + struct elf32_fdpic_loadseg segs[]; +}; + +#define ELF32_FDPIC_LOADMAP_VERSION 0x0000 + +#endif /* _LINUX_ELF_FDPIC_H */ diff --git a/kernel_headers/linux/elf.h b/kernel_headers/linux/elf.h new file mode 100644 index 0000000..1a95967 --- /dev/null +++ b/kernel_headers/linux/elf.h @@ -0,0 +1,417 @@ +#ifndef _LINUX_ELF_H +#define _LINUX_ELF_H + +#include +#include + +/* 32-bit ELF base types. */ +typedef __u32 Elf32_Addr; +typedef __u16 Elf32_Half; +typedef __u32 Elf32_Off; +typedef __s32 Elf32_Sword; +typedef __u32 Elf32_Word; + +/* 64-bit ELF base types. */ +typedef __u64 Elf64_Addr; +typedef __u16 Elf64_Half; +typedef __s16 Elf64_SHalf; +typedef __u64 Elf64_Off; +typedef __s32 Elf64_Sword; +typedef __u32 Elf64_Word; +typedef __u64 Elf64_Xword; +typedef __s64 Elf64_Sxword; + +/* These constants are for the segment types stored in the image headers */ +#define PT_NULL 0 +#define PT_LOAD 1 +#define PT_DYNAMIC 2 +#define PT_INTERP 3 +#define PT_NOTE 4 +#define PT_SHLIB 5 +#define PT_PHDR 6 +#define PT_TLS 7 /* Thread local storage segment */ +#define PT_LOOS 0x60000000 /* OS-specific */ +#define PT_HIOS 0x6fffffff /* OS-specific */ +#define PT_LOPROC 0x70000000 +#define PT_HIPROC 0x7fffffff +#define PT_GNU_EH_FRAME 0x6474e550 + +#define PT_GNU_STACK (PT_LOOS + 0x474e551) + +/* + * Extended Numbering + * + * If the real number of program header table entries is larger than + * or equal to PN_XNUM(0xffff), it is set to sh_info field of the + * section header at index 0, and PN_XNUM is set to e_phnum + * field. Otherwise, the section header at index 0 is zero + * initialized, if it exists. + * + * Specifications are available in: + * + * - Oracle: Linker and Libraries. + * Part No: 817–1984–19, August 2011. + * http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf + * + * - System V ABI AMD64 Architecture Processor Supplement + * Draft Version 0.99.4, + * January 13, 2010. + * http://www.cs.washington.edu/education/courses/cse351/12wi/supp-docs/abi.pdf + */ +#define PN_XNUM 0xffff + +/* These constants define the different elf file types */ +#define ET_NONE 0 +#define ET_REL 1 +#define ET_EXEC 2 +#define ET_DYN 3 +#define ET_CORE 4 +#define ET_LOPROC 0xff00 +#define ET_HIPROC 0xffff + +/* This is the info that is needed to parse the dynamic section of the file */ +#define DT_NULL 0 +#define DT_NEEDED 1 +#define DT_PLTRELSZ 2 +#define DT_PLTGOT 3 +#define DT_HASH 4 +#define DT_STRTAB 5 +#define DT_SYMTAB 6 +#define DT_RELA 7 +#define DT_RELASZ 8 +#define DT_RELAENT 9 +#define DT_STRSZ 10 +#define DT_SYMENT 11 +#define DT_INIT 12 +#define DT_FINI 13 +#define DT_SONAME 14 +#define DT_RPATH 15 +#define DT_SYMBOLIC 16 +#define DT_REL 17 +#define DT_RELSZ 18 +#define DT_RELENT 19 +#define DT_PLTREL 20 +#define DT_DEBUG 21 +#define DT_TEXTREL 22 +#define DT_JMPREL 23 +#define DT_ENCODING 32 +#define OLD_DT_LOOS 0x60000000 +#define DT_LOOS 0x6000000d +#define DT_HIOS 0x6ffff000 +#define DT_VALRNGLO 0x6ffffd00 +#define DT_VALRNGHI 0x6ffffdff +#define DT_ADDRRNGLO 0x6ffffe00 +#define DT_ADDRRNGHI 0x6ffffeff +#define DT_VERSYM 0x6ffffff0 +#define DT_RELACOUNT 0x6ffffff9 +#define DT_RELCOUNT 0x6ffffffa +#define DT_FLAGS_1 0x6ffffffb +#define DT_VERDEF 0x6ffffffc +#define DT_VERDEFNUM 0x6ffffffd +#define DT_VERNEED 0x6ffffffe +#define DT_VERNEEDNUM 0x6fffffff +#define OLD_DT_HIOS 0x6fffffff +#define DT_LOPROC 0x70000000 +#define DT_HIPROC 0x7fffffff + +/* This info is needed when parsing the symbol table */ +#define STB_LOCAL 0 +#define STB_GLOBAL 1 +#define STB_WEAK 2 + +#define STT_NOTYPE 0 +#define STT_OBJECT 1 +#define STT_FUNC 2 +#define STT_SECTION 3 +#define STT_FILE 4 +#define STT_COMMON 5 +#define STT_TLS 6 + +#define ELF_ST_BIND(x) ((x) >> 4) +#define ELF_ST_TYPE(x) (((unsigned int) x) & 0xf) +#define ELF32_ST_BIND(x) ELF_ST_BIND(x) +#define ELF32_ST_TYPE(x) ELF_ST_TYPE(x) +#define ELF64_ST_BIND(x) ELF_ST_BIND(x) +#define ELF64_ST_TYPE(x) ELF_ST_TYPE(x) + +typedef struct dynamic{ + Elf32_Sword d_tag; + union{ + Elf32_Sword d_val; + Elf32_Addr d_ptr; + } d_un; +} Elf32_Dyn; + +typedef struct { + Elf64_Sxword d_tag; /* entry tag value */ + union { + Elf64_Xword d_val; + Elf64_Addr d_ptr; + } d_un; +} Elf64_Dyn; + +/* The following are used with relocations */ +#define ELF32_R_SYM(x) ((x) >> 8) +#define ELF32_R_TYPE(x) ((x) & 0xff) + +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffff) + +typedef struct elf32_rel { + Elf32_Addr r_offset; + Elf32_Word r_info; +} Elf32_Rel; + +typedef struct elf64_rel { + Elf64_Addr r_offset; /* Location at which to apply the action */ + Elf64_Xword r_info; /* index and type of relocation */ +} Elf64_Rel; + +typedef struct elf32_rela{ + Elf32_Addr r_offset; + Elf32_Word r_info; + Elf32_Sword r_addend; +} Elf32_Rela; + +typedef struct elf64_rela { + Elf64_Addr r_offset; /* Location at which to apply the action */ + Elf64_Xword r_info; /* index and type of relocation */ + Elf64_Sxword r_addend; /* Constant addend used to compute value */ +} Elf64_Rela; + +typedef struct elf32_sym{ + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Half st_shndx; +} Elf32_Sym; + +typedef struct elf64_sym { + Elf64_Word st_name; /* Symbol name, index in string tbl */ + unsigned char st_info; /* Type and binding attributes */ + unsigned char st_other; /* No defined meaning, 0 */ + Elf64_Half st_shndx; /* Associated section index */ + Elf64_Addr st_value; /* Value of the symbol */ + Elf64_Xword st_size; /* Associated symbol size */ +} Elf64_Sym; + + +#define EI_NIDENT 16 + +typedef struct elf32_hdr{ + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; /* Entry point */ + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +} Elf32_Ehdr; + +typedef struct elf64_hdr { + unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */ + Elf64_Half e_type; + Elf64_Half e_machine; + Elf64_Word e_version; + Elf64_Addr e_entry; /* Entry point virtual address */ + Elf64_Off e_phoff; /* Program header table file offset */ + Elf64_Off e_shoff; /* Section header table file offset */ + Elf64_Word e_flags; + Elf64_Half e_ehsize; + Elf64_Half e_phentsize; + Elf64_Half e_phnum; + Elf64_Half e_shentsize; + Elf64_Half e_shnum; + Elf64_Half e_shstrndx; +} Elf64_Ehdr; + +/* These constants define the permissions on sections in the program + header, p_flags. */ +#define PF_R 0x4 +#define PF_W 0x2 +#define PF_X 0x1 + +typedef struct elf32_phdr{ + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +} Elf32_Phdr; + +typedef struct elf64_phdr { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; /* Segment file offset */ + Elf64_Addr p_vaddr; /* Segment virtual address */ + Elf64_Addr p_paddr; /* Segment physical address */ + Elf64_Xword p_filesz; /* Segment size in file */ + Elf64_Xword p_memsz; /* Segment size in memory */ + Elf64_Xword p_align; /* Segment alignment, file & memory */ +} Elf64_Phdr; + +/* sh_type */ +#define SHT_NULL 0 +#define SHT_PROGBITS 1 +#define SHT_SYMTAB 2 +#define SHT_STRTAB 3 +#define SHT_RELA 4 +#define SHT_HASH 5 +#define SHT_DYNAMIC 6 +#define SHT_NOTE 7 +#define SHT_NOBITS 8 +#define SHT_REL 9 +#define SHT_SHLIB 10 +#define SHT_DYNSYM 11 +#define SHT_NUM 12 +#define SHT_LOPROC 0x70000000 +#define SHT_HIPROC 0x7fffffff +#define SHT_LOUSER 0x80000000 +#define SHT_HIUSER 0xffffffff + +/* sh_flags */ +#define SHF_WRITE 0x1 +#define SHF_ALLOC 0x2 +#define SHF_EXECINSTR 0x4 +#define SHF_MASKPROC 0xf0000000 + +/* special section indexes */ +#define SHN_UNDEF 0 +#define SHN_LORESERVE 0xff00 +#define SHN_LOPROC 0xff00 +#define SHN_HIPROC 0xff1f +#define SHN_ABS 0xfff1 +#define SHN_COMMON 0xfff2 +#define SHN_HIRESERVE 0xffff + +typedef struct elf32_shdr { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; +} Elf32_Shdr; + +typedef struct elf64_shdr { + Elf64_Word sh_name; /* Section name, index in string tbl */ + Elf64_Word sh_type; /* Type of section */ + Elf64_Xword sh_flags; /* Miscellaneous section attributes */ + Elf64_Addr sh_addr; /* Section virtual addr at execution */ + Elf64_Off sh_offset; /* Section file offset */ + Elf64_Xword sh_size; /* Size of section in bytes */ + Elf64_Word sh_link; /* Index of another section */ + Elf64_Word sh_info; /* Additional section information */ + Elf64_Xword sh_addralign; /* Section alignment */ + Elf64_Xword sh_entsize; /* Entry size if section holds table */ +} Elf64_Shdr; + +#define EI_MAG0 0 /* e_ident[] indexes */ +#define EI_MAG1 1 +#define EI_MAG2 2 +#define EI_MAG3 3 +#define EI_CLASS 4 +#define EI_DATA 5 +#define EI_VERSION 6 +#define EI_OSABI 7 +#define EI_PAD 8 + +#define ELFMAG0 0x7f /* EI_MAG */ +#define ELFMAG1 'E' +#define ELFMAG2 'L' +#define ELFMAG3 'F' +#define ELFMAG "\177ELF" +#define SELFMAG 4 + +#define ELFCLASSNONE 0 /* EI_CLASS */ +#define ELFCLASS32 1 +#define ELFCLASS64 2 +#define ELFCLASSNUM 3 + +#define ELFDATANONE 0 /* e_ident[EI_DATA] */ +#define ELFDATA2LSB 1 +#define ELFDATA2MSB 2 + +#define EV_NONE 0 /* e_version, EI_VERSION */ +#define EV_CURRENT 1 +#define EV_NUM 2 + +#define ELFOSABI_NONE 0 +#define ELFOSABI_LINUX 3 + +#ifndef ELF_OSABI +#define ELF_OSABI ELFOSABI_NONE +#endif + +/* + * Notes used in ET_CORE. Architectures export some of the arch register sets + * using the corresponding note types via the PTRACE_GETREGSET and + * PTRACE_SETREGSET requests. + */ +#define NT_PRSTATUS 1 +#define NT_PRFPREG 2 +#define NT_PRPSINFO 3 +#define NT_TASKSTRUCT 4 +#define NT_AUXV 6 +/* + * Note to userspace developers: size of NT_SIGINFO note may increase + * in the future to accomodate more fields, don't assume it is fixed! + */ +#define NT_SIGINFO 0x53494749 +#define NT_FILE 0x46494c45 +#define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */ +#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ +#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ +#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ +#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ +#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ +#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ +#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ +#define NT_S390_TIMER 0x301 /* s390 timer register */ +#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ +#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ +#define NT_S390_CTRS 0x304 /* s390 control registers */ +#define NT_S390_PREFIX 0x305 /* s390 prefix register */ +#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */ +#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */ +#define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ +#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ +#define NT_ARM_TLS 0x401 /* ARM TLS register */ +#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ +#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ +#define NT_METAG_CBUF 0x500 /* Metag catch buffer registers */ +#define NT_METAG_RPIPE 0x501 /* Metag read pipeline state */ +#define NT_METAG_TLS 0x502 /* Metag TLS pointer */ + + +/* Note header in a PT_NOTE section */ +typedef struct elf32_note { + Elf32_Word n_namesz; /* Name size */ + Elf32_Word n_descsz; /* Content size */ + Elf32_Word n_type; /* Content type */ +} Elf32_Nhdr; + +/* Note header in a PT_NOTE section */ +typedef struct elf64_note { + Elf64_Word n_namesz; /* Name size */ + Elf64_Word n_descsz; /* Content size */ + Elf64_Word n_type; /* Content type */ +} Elf64_Nhdr; + +#endif /* _LINUX_ELF_H */ diff --git a/kernel_headers/linux/elfcore.h b/kernel_headers/linux/elfcore.h new file mode 100644 index 0000000..9dd784c --- /dev/null +++ b/kernel_headers/linux/elfcore.h @@ -0,0 +1,96 @@ +#ifndef _LINUX_ELFCORE_H +#define _LINUX_ELFCORE_H + +#include +#include +#include +#include +#include +#include + +struct elf_siginfo +{ + int si_signo; /* signal number */ + int si_code; /* extra code */ + int si_errno; /* errno */ +}; + + +typedef elf_greg_t greg_t; +typedef elf_gregset_t gregset_t; +typedef elf_fpregset_t fpregset_t; +typedef elf_fpxregset_t fpxregset_t; +#define NGREG ELF_NGREG + +/* + * Definitions to generate Intel SVR4-like core files. + * These mostly have the same names as the SVR4 types with "elf_" + * tacked on the front to prevent clashes with linux definitions, + * and the typedef forms have been avoided. This is mostly like + * the SVR4 structure, but more Linuxy, with things that Linux does + * not support and which gdb doesn't really use excluded. + * Fields present but not used are marked with "XXX". + */ +struct elf_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ +#ifdef CONFIG_BINFMT_ELF_FDPIC + /* When using FDPIC, the loadmap addresses need to be communicated + * to GDB in order for GDB to do the necessary relocations. The + * fields (below) used to communicate this information are placed + * immediately after ``pr_reg'', so that the loadmap addresses may + * be viewed as part of the register set if so desired. + */ + unsigned long pr_exec_fdpic_loadmap; + unsigned long pr_interp_fdpic_loadmap; +#endif + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +#define ELF_PRARGSZ (80) /* Number of chars for args */ + +struct elf_prpsinfo +{ + char pr_state; /* numeric process state */ + char pr_sname; /* char for pr_state */ + char pr_zomb; /* zombie */ + char pr_nice; /* nice val */ + unsigned long pr_flag; /* flags */ + __kernel_uid_t pr_uid; + __kernel_gid_t pr_gid; + pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; + /* Lots missing */ + char pr_fname[16]; /* filename of executable */ + char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */ +}; + +typedef struct elf_prstatus prstatus_t; +typedef struct elf_prpsinfo prpsinfo_t; +#define PRARGSZ ELF_PRARGSZ + + +#endif /* _LINUX_ELFCORE_H */ diff --git a/kernel_headers/linux/ensigma_uccp330.h b/kernel_headers/linux/ensigma_uccp330.h new file mode 100644 index 0000000..78d0210 --- /dev/null +++ b/kernel_headers/linux/ensigma_uccp330.h @@ -0,0 +1,35 @@ +#ifndef _DEMOD_H_ +#define _DEMOD_H_ +#include +/* + * demod_rw ioctl() argument to R/W 32 bit value + * from demod intrnal registers + */ +struct demod_rw { + unsigned int addr; + unsigned int value; + int dir;/* 1 -read;0 - write */ +}; + +/* + * demod_set_region ioctl() argument + * sets base for read/write operations + */ +struct demod_set_region { + unsigned int base; + int dir; /* 1 -read;0 - write */ +}; + +/* + * defines for IOCTL functions + * read Documentation/ioctl-number.txt + * some random number to avoid coinciding with other ioctl numbers + */ +#define DEMOD_IOCTL_BASE 0xBB +#define DEMOD_IOCTL_RW \ + _IOWR(DEMOD_IOCTL_BASE, 0, struct demod_rw) +#define DEMOD_IOCTL_SET_REGION \ + _IOW(DEMOD_IOCTL_BASE, 1, struct demod_set_region) +#define DEMOD_IOCTL_RESET \ + _IO(DEMOD_IOCTL_BASE, 2) +#endif /* _DEMOD_H_ */ diff --git a/kernel_headers/linux/epm_adc.h b/kernel_headers/linux/epm_adc.h new file mode 100644 index 0000000..cada4c0 --- /dev/null +++ b/kernel_headers/linux/epm_adc.h @@ -0,0 +1,215 @@ +#ifndef _EPM_ADC_H +#define _EPM_ADC_H + +struct epm_chan_request { + /* EPM ADC device index. 0 - ADC1, 1 - ADC2 */ + uint32_t device_idx; + /* Channel number within the EPM ADC device */ + uint32_t channel_idx; + /* The data meaningful for each individual channel whether it is + * voltage, current etc. */ + int32_t physical; +}; + +struct epm_psoc_init_resp { + uint8_t cmd; + uint8_t version; + uint8_t compatible_ver; + uint8_t firm_ver[3]; + uint8_t num_dev; + uint8_t num_channel; +}; + +struct epm_psoc_channel_configure { + uint8_t cmd; + uint8_t device_num; + uint32_t channel_num; +}; + +struct epm_psoc_set_avg { + uint8_t cmd; + uint8_t avg_period; + uint8_t return_code; +}; + +struct epm_psoc_get_data { + uint8_t cmd; + uint8_t dev_num; + uint8_t chan_num; + uint32_t timestamp_resp_value; + int16_t reading_raw; + int32_t reading_value; +}; + +struct epm_psoc_get_buffered_data { + uint8_t cmd; + uint8_t dev_num; + uint8_t status_mask; + uint8_t chan_idx; + uint32_t chan_mask; + uint32_t timestamp_start; + uint32_t timestamp_end; + uint8_t buff_data[48]; +}; + +struct epm_psoc_system_time_stamp { + uint8_t cmd; + uint32_t timestamp; +}; + +struct epm_psoc_set_channel { + uint8_t cmd; + uint8_t dev_num; + uint32_t channel_mask; +}; + +struct result_buffer { + uint32_t channel; + uint32_t avg_buffer_sample; + uint32_t result; +}; + +struct epm_psoc_get_avg_buffered_switch_data { + uint8_t cmd; + uint8_t status; + uint32_t timestamp_start; + uint32_t channel_mask; + uint8_t avg_data[54]; + struct result_buffer data[54]; +}; + +struct epm_psoc_set_channel_switch { + uint8_t cmd; + uint8_t dev; + uint32_t delay; +}; + +struct epm_psoc_set_vadc { + uint8_t cmd; + uint8_t vadc_dev; + uint32_t vadc_voltage; +}; + +struct epm_chan_properties { + uint32_t resistorvalue; + uint32_t gain; +}; + +struct epm_marker_level { + uint8_t level; +}; + +struct epm_gpio_buffer_request { + uint8_t cmd; + uint8_t bitmask_monitor_pin; + uint8_t status; +}; + +struct epm_get_gpio_buffer_resp { + uint8_t cmd; + uint8_t status; + uint8_t bitmask_monitor_pin; + uint32_t timestamp; +}; + +struct epm_get_high_res_avg_data { + uint8_t cmd; + uint8_t status; + uint32_t channel_mask; + uint32_t timestamp; + uint8_t buf_data[54]; +}; + +struct epm_generic_request { + uint8_t buf[64]; +}; + + +#define EPM_ADC_IOCTL_CODE 0x91 + +#define EPM_ADC_REQUEST _IOWR(EPM_ADC_IOCTL_CODE, 1, \ + struct epm_chan_request) + +#define EPM_ADC_INIT _IOR(EPM_ADC_IOCTL_CODE, 2, \ + uint32_t) + +#define EPM_ADC_DEINIT _IOR(EPM_ADC_IOCTL_CODE, 3, \ + uint32_t) + +#define EPM_MARKER1_REQUEST _IOR(EPM_ADC_IOCTL_CODE, 90, \ + uint32_t) + + +#define EPM_MARKER1_RELEASE _IOR(EPM_ADC_IOCTL_CODE, 91, \ + uint32_t) + +#define EPM_MARKER1_SET_LEVEL _IOWR(EPM_ADC_IOCTL_CODE, 92, \ + uint32_t) + +#define EPM_MARKER2_REQUEST _IOR(EPM_ADC_IOCTL_CODE, 93, \ + uint32_t) + +#define EPM_MARKER2_SET_LEVEL _IOWR(EPM_ADC_IOCTL_CODE, 94, \ + uint32_t) + +#define EPM_MARKER2_RELEASE _IOR(EPM_ADC_IOCTL_CODE, 95, \ + uint32_t) + +#define EPM_PSOC_ADC_INIT _IOWR(EPM_ADC_IOCTL_CODE, 4, \ + struct epm_psoc_init_resp) + +#define EPM_PSOC_ADC_CHANNEL_ENABLE _IOWR(EPM_ADC_IOCTL_CODE, 5, \ + struct epm_psoc_channel_configure) + +#define EPM_PSOC_ADC_CHANNEL_DISABLE _IOWR(EPM_ADC_IOCTL_CODE, 6, \ + struct epm_psoc_channel_configure) + +#define EPM_PSOC_ADC_SET_AVERAGING _IOWR(EPM_ADC_IOCTL_CODE, 7, \ + struct epm_psoc_set_avg) + +#define EPM_PSOC_ADC_GET_LAST_MEASUREMENT _IOWR(EPM_ADC_IOCTL_CODE, 8, \ + struct epm_psoc_get_data) + +#define EPM_PSOC_ADC_GET_BUFFERED_DATA _IOWR(EPM_ADC_IOCTL_CODE, 9, \ + struct epm_psoc_get_buffered_data) + +#define EPM_PSOC_ADC_GET_SYSTEM_TIMESTAMP _IOWR(EPM_ADC_IOCTL_CODE, 10, \ + struct epm_psoc_system_time_stamp) + +#define EPM_PSOC_ADC_SET_SYSTEM_TIMESTAMP _IOWR(EPM_ADC_IOCTL_CODE, 11, \ + struct epm_psoc_system_time_stamp) + +#define EPM_PSOC_ADC_GET_AVERAGE_DATA _IOWR(EPM_ADC_IOCTL_CODE, 12, \ + struct epm_psoc_get_avg_buffered_switch_data) + +#define EPM_PSOC_SET_CHANNEL_SWITCH _IOWR(EPM_ADC_IOCTL_CODE, 13, \ + struct epm_psoc_set_channel_switch) + +#define EPM_PSOC_CLEAR_BUFFER _IOWR(EPM_ADC_IOCTL_CODE, 14, \ + uint32_t) + +#define EPM_PSOC_ADC_SET_VADC_REFERENCE _IOWR(EPM_ADC_IOCTL_CODE, 15, \ + struct epm_psoc_set_vadc) + +#define EPM_PSOC_ADC_DEINIT _IOWR(EPM_ADC_IOCTL_CODE, 16, \ + uint32_t) + +#define EPM_PSOC_GPIO_BUFFER_REQUEST _IOWR(EPM_ADC_IOCTL_CODE, 17, \ + struct epm_gpio_buffer_request) + +#define EPM_PSOC_GET_GPIO_BUFFER_DATA _IOWR(EPM_ADC_IOCTL_CODE, 18, \ + struct epm_get_gpio_buffer_resp) + +#define EPM_PSOC_PAUSE_CONVERSION_REQUEST _IOWR(EPM_ADC_IOCTL_CODE, 19, \ + uint32_t) + +#define EPM_PSOC_UNPAUSE_CONVERSION_REQUEST _IOWR(EPM_ADC_IOCTL_CODE, 20, \ + uint32_t) + +#define EPM_PSOC_16_BIT_AVERAGED_REQUEST _IOWR(EPM_ADC_IOCTL_CODE, 21, \ + struct epm_get_high_res_avg_data) + +#define EPM_PSOC_GENERIC_REQUEST _IOWR(EPM_ADC_IOCTL_CODE, 22, \ + struct epm_generic_request) + +#endif /* _EPM_ADC_H */ diff --git a/kernel_headers/linux/errno.h b/kernel_headers/linux/errno.h new file mode 100644 index 0000000..70f2bd3 --- /dev/null +++ b/kernel_headers/linux/errno.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/linux/errqueue.h b/kernel_headers/linux/errqueue.h new file mode 100644 index 0000000..12e2eae --- /dev/null +++ b/kernel_headers/linux/errqueue.h @@ -0,0 +1,26 @@ +#ifndef _LINUX_ERRQUEUE_H +#define _LINUX_ERRQUEUE_H + +#include + +struct sock_extended_err { + __u32 ee_errno; + __u8 ee_origin; + __u8 ee_type; + __u8 ee_code; + __u8 ee_pad; + __u32 ee_info; + __u32 ee_data; +}; + +#define SO_EE_ORIGIN_NONE 0 +#define SO_EE_ORIGIN_LOCAL 1 +#define SO_EE_ORIGIN_ICMP 2 +#define SO_EE_ORIGIN_ICMP6 3 +#define SO_EE_ORIGIN_TXSTATUS 4 +#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS + +#define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) + + +#endif /* _LINUX_ERRQUEUE_H */ diff --git a/kernel_headers/linux/esoc_ctrl.h b/kernel_headers/linux/esoc_ctrl.h new file mode 100644 index 0000000..e815329 --- /dev/null +++ b/kernel_headers/linux/esoc_ctrl.h @@ -0,0 +1,60 @@ +#ifndef _ESOC_CTRL_H_ +#define _ESOC_CTRL_H_ + +#define ESOC_CODE 0xCC + +#define ESOC_CMD_EXE _IOW(ESOC_CODE, 1, u32) +#define ESOC_WAIT_FOR_REQ _IOR(ESOC_CODE, 2, u32) +#define ESOC_NOTIFY _IOW(ESOC_CODE, 3, u32) +#define ESOC_GET_STATUS _IOR(ESOC_CODE, 4, u32) +#define ESOC_WAIT_FOR_CRASH _IOR(ESOC_CODE, 6, u32) +#define ESOC_REG_REQ_ENG _IO(ESOC_CODE, 7) +#define ESOC_REG_CMD_ENG _IO(ESOC_CODE, 8) + +/*Link types for communication with external SOCs*/ +#define HSIC "HSIC" +#define HSICPCIe "HSIC+PCIe" +#define PCIe "PCIe" + +enum esoc_evt { + ESOC_RUN_STATE = 0x1, + ESOC_UNEXPECTED_RESET, + ESOC_ERR_FATAL, + ESOC_IN_DEBUG, + ESOC_REQ_ENG_ON, + ESOC_REQ_ENG_OFF, + ESOC_CMD_ENG_ON, + ESOC_CMD_ENG_OFF, + ESOC_INVALID_STATE, +}; + +enum esoc_cmd { + ESOC_PWR_ON = 1, + ESOC_PWR_OFF, + ESOC_FORCE_PWR_OFF, + ESOC_RESET, + ESOC_PREPARE_DEBUG, + ESOC_EXE_DEBUG, + ESOC_EXIT_DEBUG, +}; + +enum esoc_notify { + ESOC_IMG_XFER_DONE = 1, + ESOC_BOOT_DONE, + ESOC_BOOT_FAIL, + ESOC_IMG_XFER_RETRY, + ESOC_IMG_XFER_FAIL, + ESOC_UPGRADE_AVAILABLE, + ESOC_DEBUG_DONE, + ESOC_DEBUG_FAIL, + ESOC_PRIMARY_CRASH, + ESOC_PRIMARY_REBOOT, +}; + +enum esoc_req { + ESOC_REQ_IMG = 1, + ESOC_REQ_DEBUG, + ESOC_REQ_SHUTDOWN, +}; + +#endif diff --git a/kernel_headers/linux/ethtool.h b/kernel_headers/linux/ethtool.h new file mode 100644 index 0000000..b5515c2 --- /dev/null +++ b/kernel_headers/linux/ethtool.h @@ -0,0 +1,1100 @@ +/* + * ethtool.h: Defines for Linux ethtool. + * + * Copyright (C) 1998 David S. Miller (davem@redhat.com) + * Copyright 2001 Jeff Garzik + * Portions Copyright 2001 Sun Microsystems (thockin@sun.com) + * Portions Copyright 2002 Intel (eli.kupermann@intel.com, + * christopher.leech@intel.com, + * scott.feldman@intel.com) + * Portions Copyright (C) Sun Microsystems 2008 + */ + +#ifndef _LINUX_ETHTOOL_H +#define _LINUX_ETHTOOL_H + +#include +#include + +/* This should work for both 32 and 64 bit userland. */ +struct ethtool_cmd { + __u32 cmd; + __u32 supported; /* Features this interface supports */ + __u32 advertising; /* Features this interface advertises */ + __u16 speed; /* The forced speed (lower bits) in + * Mbps. Please use + * ethtool_cmd_speed()/_set() to + * access it */ + __u8 duplex; /* Duplex, half or full */ + __u8 port; /* Which connector port */ + __u8 phy_address; /* MDIO PHY address (PRTAD for clause 45). + * May be read-only or read-write + * depending on the driver. + */ + __u8 transceiver; /* Which transceiver to use */ + __u8 autoneg; /* Enable or disable autonegotiation */ + __u8 mdio_support; /* MDIO protocols supported. Read-only. + * Not set by all drivers. + */ + __u32 maxtxpkt; /* Tx pkts before generating tx int */ + __u32 maxrxpkt; /* Rx pkts before generating rx int */ + __u16 speed_hi; /* The forced speed (upper + * bits) in Mbps. Please use + * ethtool_cmd_speed()/_set() to + * access it */ + __u8 eth_tp_mdix; /* twisted pair MDI-X status */ + __u8 eth_tp_mdix_ctrl; /* twisted pair MDI-X control, when set, + * link should be renegotiated if necessary + */ + __u32 lp_advertising; /* Features the link partner advertises */ + __u32 reserved[2]; +}; + +static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep, + __u32 speed) +{ + + ep->speed = (__u16)speed; + ep->speed_hi = (__u16)(speed >> 16); +} + +static __inline__ __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) +{ + return (ep->speed_hi << 16) | ep->speed; +} + +/* Device supports clause 22 register access to PHY or peripherals + * using the interface defined in . This should not be + * set if there are known to be no such peripherals present or if + * the driver only emulates clause 22 registers for compatibility. + */ +#define ETH_MDIO_SUPPORTS_C22 1 + +/* Device supports clause 45 register access to PHY or peripherals + * using the interface defined in and . + * This should not be set if there are known to be no such peripherals + * present. + */ +#define ETH_MDIO_SUPPORTS_C45 2 + +#define ETHTOOL_FWVERS_LEN 32 +#define ETHTOOL_BUSINFO_LEN 32 +/* these strings are set to whatever the driver author decides... */ +struct ethtool_drvinfo { + __u32 cmd; + char driver[32]; /* driver short name, "tulip", "eepro100" */ + char version[32]; /* driver version string */ + char fw_version[ETHTOOL_FWVERS_LEN]; /* firmware version string */ + char bus_info[ETHTOOL_BUSINFO_LEN]; /* Bus info for this IF. */ + /* For PCI devices, use pci_name(pci_dev). */ + char reserved1[32]; + char reserved2[12]; + /* + * Some struct members below are filled in + * using ops->get_sset_count(). Obtaining + * this info from ethtool_drvinfo is now + * deprecated; Use ETHTOOL_GSSET_INFO + * instead. + */ + __u32 n_priv_flags; /* number of flags valid in ETHTOOL_GPFLAGS */ + __u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */ + __u32 testinfo_len; + __u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */ + __u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */ +}; + +#define SOPASS_MAX 6 +/* wake-on-lan settings */ +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */ +}; + +/* for passing single values */ +struct ethtool_value { + __u32 cmd; + __u32 data; +}; + +/* for passing big chunks of data */ +struct ethtool_regs { + __u32 cmd; + __u32 version; /* driver-specific, indicates different chips/revs */ + __u32 len; /* bytes */ + __u8 data[0]; +}; + +/* for passing EEPROM chunks */ +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; /* in bytes */ + __u32 len; /* in bytes */ + __u8 data[0]; +}; + +/** + * struct ethtool_eee - Energy Efficient Ethernet information + * @cmd: ETHTOOL_{G,S}EEE + * @supported: Mask of %SUPPORTED_* flags for the speed/duplex combinations + * for which there is EEE support. + * @advertised: Mask of %ADVERTISED_* flags for the speed/duplex combinations + * advertised as eee capable. + * @lp_advertised: Mask of %ADVERTISED_* flags for the speed/duplex + * combinations advertised by the link partner as eee capable. + * @eee_active: Result of the eee auto negotiation. + * @eee_enabled: EEE configured mode (enabled/disabled). + * @tx_lpi_enabled: Whether the interface should assert its tx lpi, given + * that eee was negotiated. + * @tx_lpi_timer: Time in microseconds the interface delays prior to asserting + * its tx lpi (after reaching 'idle' state). Effective only when eee + * was negotiated and tx_lpi_enabled was set. + */ +struct ethtool_eee { + __u32 cmd; + __u32 supported; + __u32 advertised; + __u32 lp_advertised; + __u32 eee_active; + __u32 eee_enabled; + __u32 tx_lpi_enabled; + __u32 tx_lpi_timer; + __u32 reserved[2]; +}; + +/** + * struct ethtool_modinfo - plugin module eeprom information + * @cmd: %ETHTOOL_GMODULEINFO + * @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx + * @eeprom_len: Length of the eeprom + * + * This structure is used to return the information to + * properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM. + * The type code indicates the eeprom data format + */ +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; +}; + +/** + * struct ethtool_coalesce - coalescing parameters for IRQs and stats updates + * @cmd: ETHTOOL_{G,S}COALESCE + * @rx_coalesce_usecs: How many usecs to delay an RX interrupt after + * a packet arrives. + * @rx_max_coalesced_frames: Maximum number of packets to receive + * before an RX interrupt. + * @rx_coalesce_usecs_irq: Same as @rx_coalesce_usecs, except that + * this value applies while an IRQ is being serviced by the host. + * @rx_max_coalesced_frames_irq: Same as @rx_max_coalesced_frames, + * except that this value applies while an IRQ is being serviced + * by the host. + * @tx_coalesce_usecs: How many usecs to delay a TX interrupt after + * a packet is sent. + * @tx_max_coalesced_frames: Maximum number of packets to be sent + * before a TX interrupt. + * @tx_coalesce_usecs_irq: Same as @tx_coalesce_usecs, except that + * this value applies while an IRQ is being serviced by the host. + * @tx_max_coalesced_frames_irq: Same as @tx_max_coalesced_frames, + * except that this value applies while an IRQ is being serviced + * by the host. + * @stats_block_coalesce_usecs: How many usecs to delay in-memory + * statistics block updates. Some drivers do not have an + * in-memory statistic block, and in such cases this value is + * ignored. This value must not be zero. + * @use_adaptive_rx_coalesce: Enable adaptive RX coalescing. + * @use_adaptive_tx_coalesce: Enable adaptive TX coalescing. + * @pkt_rate_low: Threshold for low packet rate (packets per second). + * @rx_coalesce_usecs_low: How many usecs to delay an RX interrupt after + * a packet arrives, when the packet rate is below @pkt_rate_low. + * @rx_max_coalesced_frames_low: Maximum number of packets to be received + * before an RX interrupt, when the packet rate is below @pkt_rate_low. + * @tx_coalesce_usecs_low: How many usecs to delay a TX interrupt after + * a packet is sent, when the packet rate is below @pkt_rate_low. + * @tx_max_coalesced_frames_low: Maximum nuumber of packets to be sent before + * a TX interrupt, when the packet rate is below @pkt_rate_low. + * @pkt_rate_high: Threshold for high packet rate (packets per second). + * @rx_coalesce_usecs_high: How many usecs to delay an RX interrupt after + * a packet arrives, when the packet rate is above @pkt_rate_high. + * @rx_max_coalesced_frames_high: Maximum number of packets to be received + * before an RX interrupt, when the packet rate is above @pkt_rate_high. + * @tx_coalesce_usecs_high: How many usecs to delay a TX interrupt after + * a packet is sent, when the packet rate is above @pkt_rate_high. + * @tx_max_coalesced_frames_high: Maximum number of packets to be sent before + * a TX interrupt, when the packet rate is above @pkt_rate_high. + * @rate_sample_interval: How often to do adaptive coalescing packet rate + * sampling, measured in seconds. Must not be zero. + * + * Each pair of (usecs, max_frames) fields specifies this exit + * condition for interrupt coalescing: + * (usecs > 0 && time_since_first_completion >= usecs) || + * (max_frames > 0 && completed_frames >= max_frames) + * It is illegal to set both usecs and max_frames to zero as this + * would cause interrupts to never be generated. To disable + * coalescing, set usecs = 0 and max_frames = 1. + * + * Some implementations ignore the value of max_frames and use the + * condition: + * time_since_first_completion >= usecs + * This is deprecated. Drivers for hardware that does not support + * counting completions should validate that max_frames == !rx_usecs. + * + * Adaptive RX/TX coalescing is an algorithm implemented by some + * drivers to improve latency under low packet rates and improve + * throughput under high packet rates. Some drivers only implement + * one of RX or TX adaptive coalescing. Anything not implemented by + * the driver causes these values to be silently ignored. + * + * When the packet rate is below @pkt_rate_high but above + * @pkt_rate_low (both measured in packets per second) the + * normal {rx,tx}_* coalescing parameters are used. + */ +struct ethtool_coalesce { + __u32 cmd; + __u32 rx_coalesce_usecs; + __u32 rx_max_coalesced_frames; + __u32 rx_coalesce_usecs_irq; + __u32 rx_max_coalesced_frames_irq; + __u32 tx_coalesce_usecs; + __u32 tx_max_coalesced_frames; + __u32 tx_coalesce_usecs_irq; + __u32 tx_max_coalesced_frames_irq; + __u32 stats_block_coalesce_usecs; + __u32 use_adaptive_rx_coalesce; + __u32 use_adaptive_tx_coalesce; + __u32 pkt_rate_low; + __u32 rx_coalesce_usecs_low; + __u32 rx_max_coalesced_frames_low; + __u32 tx_coalesce_usecs_low; + __u32 tx_max_coalesced_frames_low; + __u32 pkt_rate_high; + __u32 rx_coalesce_usecs_high; + __u32 rx_max_coalesced_frames_high; + __u32 tx_coalesce_usecs_high; + __u32 tx_max_coalesced_frames_high; + __u32 rate_sample_interval; +}; + +/* for configuring RX/TX ring parameters */ +struct ethtool_ringparam { + __u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */ + + /* Read only attributes. These indicate the maximum number + * of pending RX/TX ring entries the driver will allow the + * user to set. + */ + __u32 rx_max_pending; + __u32 rx_mini_max_pending; + __u32 rx_jumbo_max_pending; + __u32 tx_max_pending; + + /* Values changeable by the user. The valid values are + * in the range 1 to the "*_max_pending" counterpart above. + */ + __u32 rx_pending; + __u32 rx_mini_pending; + __u32 rx_jumbo_pending; + __u32 tx_pending; +}; + +/** + * struct ethtool_channels - configuring number of network channel + * @cmd: ETHTOOL_{G,S}CHANNELS + * @max_rx: Read only. Maximum number of receive channel the driver support. + * @max_tx: Read only. Maximum number of transmit channel the driver support. + * @max_other: Read only. Maximum number of other channel the driver support. + * @max_combined: Read only. Maximum number of combined channel the driver + * support. Set of queues RX, TX or other. + * @rx_count: Valid values are in the range 1 to the max_rx. + * @tx_count: Valid values are in the range 1 to the max_tx. + * @other_count: Valid values are in the range 1 to the max_other. + * @combined_count: Valid values are in the range 1 to the max_combined. + * + * This can be used to configure RX, TX and other channels. + */ + +struct ethtool_channels { + __u32 cmd; + __u32 max_rx; + __u32 max_tx; + __u32 max_other; + __u32 max_combined; + __u32 rx_count; + __u32 tx_count; + __u32 other_count; + __u32 combined_count; +}; + +/* for configuring link flow control parameters */ +struct ethtool_pauseparam { + __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ + + /* If the link is being auto-negotiated (via ethtool_cmd.autoneg + * being true) the user may set 'autoneg' here non-zero to have the + * pause parameters be auto-negotiated too. In such a case, the + * {rx,tx}_pause values below determine what capabilities are + * advertised. + * + * If 'autoneg' is zero or the link is not being auto-negotiated, + * then {rx,tx}_pause force the driver to use/not-use pause + * flow control. + */ + __u32 autoneg; + __u32 rx_pause; + __u32 tx_pause; +}; + +#define ETH_GSTRING_LEN 32 +enum ethtool_stringset { + ETH_SS_TEST = 0, + ETH_SS_STATS, + ETH_SS_PRIV_FLAGS, + ETH_SS_NTUPLE_FILTERS, /* Do not use, GRXNTUPLE is now deprecated */ + ETH_SS_FEATURES, +}; + +/* for passing string sets for data tagging */ +struct ethtool_gstrings { + __u32 cmd; /* ETHTOOL_GSTRINGS */ + __u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/ + __u32 len; /* number of strings in the string set */ + __u8 data[0]; +}; + +struct ethtool_sset_info { + __u32 cmd; /* ETHTOOL_GSSET_INFO */ + __u32 reserved; + __u64 sset_mask; /* input: each bit selects an sset to query */ + /* output: each bit a returned sset */ + __u32 data[0]; /* ETH_SS_xxx count, in order, based on bits + in sset_mask. One bit implies one + __u32, two bits implies two + __u32's, etc. */ +}; + +/** + * enum ethtool_test_flags - flags definition of ethtool_test + * @ETH_TEST_FL_OFFLINE: if set perform online and offline tests, otherwise + * only online tests. + * @ETH_TEST_FL_FAILED: Driver set this flag if test fails. + * @ETH_TEST_FL_EXTERNAL_LB: Application request to perform external loopback + * test. + * @ETH_TEST_FL_EXTERNAL_LB_DONE: Driver performed the external loopback test + */ + +enum ethtool_test_flags { + ETH_TEST_FL_OFFLINE = (1 << 0), + ETH_TEST_FL_FAILED = (1 << 1), + ETH_TEST_FL_EXTERNAL_LB = (1 << 2), + ETH_TEST_FL_EXTERNAL_LB_DONE = (1 << 3), +}; + +/* for requesting NIC test and getting results*/ +struct ethtool_test { + __u32 cmd; /* ETHTOOL_TEST */ + __u32 flags; /* ETH_TEST_FL_xxx */ + __u32 reserved; + __u32 len; /* result length, in number of u64 elements */ + __u64 data[0]; +}; + +/* for dumping NIC-specific statistics */ +struct ethtool_stats { + __u32 cmd; /* ETHTOOL_GSTATS */ + __u32 n_stats; /* number of u64's being returned */ + __u64 data[0]; +}; + +struct ethtool_perm_addr { + __u32 cmd; /* ETHTOOL_GPERMADDR */ + __u32 size; + __u8 data[0]; +}; + +/* boolean flags controlling per-interface behavior characteristics. + * When reading, the flag indicates whether or not a certain behavior + * is enabled/present. When writing, the flag indicates whether + * or not the driver should turn on (set) or off (clear) a behavior. + * + * Some behaviors may read-only (unconditionally absent or present). + * If such is the case, return EINVAL in the set-flags operation if the + * flag differs from the read-only value. + */ +enum ethtool_flags { + ETH_FLAG_TXVLAN = (1 << 7), /* TX VLAN offload enabled */ + ETH_FLAG_RXVLAN = (1 << 8), /* RX VLAN offload enabled */ + ETH_FLAG_LRO = (1 << 15), /* LRO is enabled */ + ETH_FLAG_NTUPLE = (1 << 27), /* N-tuple filters enabled */ + ETH_FLAG_RXHASH = (1 << 28), +}; + +/* The following structures are for supporting RX network flow + * classification and RX n-tuple configuration. Note, all multibyte + * fields, e.g., ip4src, ip4dst, psrc, pdst, spi, etc. are expected to + * be in network byte order. + */ + +/** + * struct ethtool_tcpip4_spec - flow specification for TCP/IPv4 etc. + * @ip4src: Source host + * @ip4dst: Destination host + * @psrc: Source port + * @pdst: Destination port + * @tos: Type-of-service + * + * This can be used to specify a TCP/IPv4, UDP/IPv4 or SCTP/IPv4 flow. + */ +struct ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __u8 tos; +}; + +/** + * struct ethtool_ah_espip4_spec - flow specification for IPsec/IPv4 + * @ip4src: Source host + * @ip4dst: Destination host + * @spi: Security parameters index + * @tos: Type-of-service + * + * This can be used to specify an IPsec transport or tunnel over IPv4. + */ +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; +}; + +#define ETH_RX_NFC_IP4 1 + +/** + * struct ethtool_usrip4_spec - general flow specification for IPv4 + * @ip4src: Source host + * @ip4dst: Destination host + * @l4_4_bytes: First 4 bytes of transport (layer 4) header + * @tos: Type-of-service + * @ip_ver: Value must be %ETH_RX_NFC_IP4; mask must be 0 + * @proto: Transport protocol number; mask must be 0 + */ +struct ethtool_usrip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 l4_4_bytes; + __u8 tos; + __u8 ip_ver; + __u8 proto; +}; + +union ethtool_flow_union { + struct ethtool_tcpip4_spec tcp_ip4_spec; + struct ethtool_tcpip4_spec udp_ip4_spec; + struct ethtool_tcpip4_spec sctp_ip4_spec; + struct ethtool_ah_espip4_spec ah_ip4_spec; + struct ethtool_ah_espip4_spec esp_ip4_spec; + struct ethtool_usrip4_spec usr_ip4_spec; + struct ethhdr ether_spec; + __u8 hdata[52]; +}; + +/** + * struct ethtool_flow_ext - additional RX flow fields + * @h_dest: destination MAC address + * @vlan_etype: VLAN EtherType + * @vlan_tci: VLAN tag control information + * @data: user defined data + * + * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT + * is set in &struct ethtool_rx_flow_spec @flow_type. + * @h_dest is valid if %FLOW_MAC_EXT is set. + */ +struct ethtool_flow_ext { + __u8 padding[2]; + unsigned char h_dest[ETH_ALEN]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; +}; + +/** + * struct ethtool_rx_flow_spec - classification rule for RX flows + * @flow_type: Type of match to perform, e.g. %TCP_V4_FLOW + * @h_u: Flow fields to match (dependent on @flow_type) + * @h_ext: Additional fields to match + * @m_u: Masks for flow field bits to be matched + * @m_ext: Masks for additional field bits to be matched + * Note, all additional fields must be ignored unless @flow_type + * includes the %FLOW_EXT or %FLOW_MAC_EXT flag + * (see &struct ethtool_flow_ext description). + * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC + * if packets should be discarded + * @location: Location of rule in the table. Locations must be + * numbered such that a flow matching multiple rules will be + * classified according to the first (lowest numbered) rule. + */ +struct ethtool_rx_flow_spec { + __u32 flow_type; + union ethtool_flow_union h_u; + struct ethtool_flow_ext h_ext; + union ethtool_flow_union m_u; + struct ethtool_flow_ext m_ext; + __u64 ring_cookie; + __u32 location; +}; + +/** + * struct ethtool_rxnfc - command to get or set RX flow classification rules + * @cmd: Specific command number - %ETHTOOL_GRXFH, %ETHTOOL_SRXFH, + * %ETHTOOL_GRXRINGS, %ETHTOOL_GRXCLSRLCNT, %ETHTOOL_GRXCLSRULE, + * %ETHTOOL_GRXCLSRLALL, %ETHTOOL_SRXCLSRLDEL or %ETHTOOL_SRXCLSRLINS + * @flow_type: Type of flow to be affected, e.g. %TCP_V4_FLOW + * @data: Command-dependent value + * @fs: Flow classification rule + * @rule_cnt: Number of rules to be affected + * @rule_locs: Array of used rule locations + * + * For %ETHTOOL_GRXFH and %ETHTOOL_SRXFH, @data is a bitmask indicating + * the fields included in the flow hash, e.g. %RXH_IP_SRC. The following + * structure fields must not be used. + * + * For %ETHTOOL_GRXRINGS, @data is set to the number of RX rings/queues + * on return. + * + * For %ETHTOOL_GRXCLSRLCNT, @rule_cnt is set to the number of defined + * rules on return. If @data is non-zero on return then it is the + * size of the rule table, plus the flag %RX_CLS_LOC_SPECIAL if the + * driver supports any special location values. If that flag is not + * set in @data then special location values should not be used. + * + * For %ETHTOOL_GRXCLSRULE, @fs.@location specifies the location of an + * existing rule on entry and @fs contains the rule on return. + * + * For %ETHTOOL_GRXCLSRLALL, @rule_cnt specifies the array size of the + * user buffer for @rule_locs on entry. On return, @data is the size + * of the rule table, @rule_cnt is the number of defined rules, and + * @rule_locs contains the locations of the defined rules. Drivers + * must use the second parameter to get_rxnfc() instead of @rule_locs. + * + * For %ETHTOOL_SRXCLSRLINS, @fs specifies the rule to add or update. + * @fs.@location either specifies the location to use or is a special + * location value with %RX_CLS_LOC_SPECIAL flag set. On return, + * @fs.@location is the actual rule location. + * + * For %ETHTOOL_SRXCLSRLDEL, @fs.@location specifies the location of an + * existing rule on entry. + * + * A driver supporting the special location values for + * %ETHTOOL_SRXCLSRLINS may add the rule at any suitable unused + * location, and may remove a rule at a later location (lower + * priority) that matches exactly the same set of flows. The special + * values are: %RX_CLS_LOC_ANY, selecting any location; + * %RX_CLS_LOC_FIRST, selecting the first suitable location (maximum + * priority); and %RX_CLS_LOC_LAST, selecting the last suitable + * location (minimum priority). Additional special values may be + * defined in future and drivers must return -%EINVAL for any + * unrecognised value. + */ +struct ethtool_rxnfc { + __u32 cmd; + __u32 flow_type; + __u64 data; + struct ethtool_rx_flow_spec fs; + __u32 rule_cnt; + __u32 rule_locs[0]; +}; + + +/** + * struct ethtool_rxfh_indir - command to get or set RX flow hash indirection + * @cmd: Specific command number - %ETHTOOL_GRXFHINDIR or %ETHTOOL_SRXFHINDIR + * @size: On entry, the array size of the user buffer, which may be zero. + * On return from %ETHTOOL_GRXFHINDIR, the array size of the hardware + * indirection table. + * @ring_index: RX ring/queue index for each hash value + * + * For %ETHTOOL_GRXFHINDIR, a @size of zero means that only the size + * should be returned. For %ETHTOOL_SRXFHINDIR, a @size of zero means + * the table should be reset to default values. This last feature + * is not supported by the original implementations. + */ +struct ethtool_rxfh_indir { + __u32 cmd; + __u32 size; + __u32 ring_index[0]; +}; + +/** + * struct ethtool_rx_ntuple_flow_spec - specification for RX flow filter + * @flow_type: Type of match to perform, e.g. %TCP_V4_FLOW + * @h_u: Flow field values to match (dependent on @flow_type) + * @m_u: Masks for flow field value bits to be ignored + * @vlan_tag: VLAN tag to match + * @vlan_tag_mask: Mask for VLAN tag bits to be ignored + * @data: Driver-dependent data to match + * @data_mask: Mask for driver-dependent data bits to be ignored + * @action: RX ring/queue index to deliver to (non-negative) or other action + * (negative, e.g. %ETHTOOL_RXNTUPLE_ACTION_DROP) + * + * For flow types %TCP_V4_FLOW, %UDP_V4_FLOW and %SCTP_V4_FLOW, where + * a field value and mask are both zero this is treated as if all mask + * bits are set i.e. the field is ignored. + */ +struct ethtool_rx_ntuple_flow_spec { + __u32 flow_type; + union { + struct ethtool_tcpip4_spec tcp_ip4_spec; + struct ethtool_tcpip4_spec udp_ip4_spec; + struct ethtool_tcpip4_spec sctp_ip4_spec; + struct ethtool_ah_espip4_spec ah_ip4_spec; + struct ethtool_ah_espip4_spec esp_ip4_spec; + struct ethtool_usrip4_spec usr_ip4_spec; + struct ethhdr ether_spec; + __u8 hdata[72]; + } h_u, m_u; + + __u16 vlan_tag; + __u16 vlan_tag_mask; + __u64 data; + __u64 data_mask; + + __s32 action; +#define ETHTOOL_RXNTUPLE_ACTION_DROP (-1) /* drop packet */ +#define ETHTOOL_RXNTUPLE_ACTION_CLEAR (-2) /* clear filter */ +}; + +/** + * struct ethtool_rx_ntuple - command to set or clear RX flow filter + * @cmd: Command number - %ETHTOOL_SRXNTUPLE + * @fs: Flow filter specification + */ +struct ethtool_rx_ntuple { + __u32 cmd; + struct ethtool_rx_ntuple_flow_spec fs; +}; + +#define ETHTOOL_FLASH_MAX_FILENAME 128 +enum ethtool_flash_op_type { + ETHTOOL_FLASH_ALL_REGIONS = 0, +}; + +/* for passing firmware flashing related parameters */ +struct ethtool_flash { + __u32 cmd; + __u32 region; + char data[ETHTOOL_FLASH_MAX_FILENAME]; +}; + +/** + * struct ethtool_dump - used for retrieving, setting device dump + * @cmd: Command number - %ETHTOOL_GET_DUMP_FLAG, %ETHTOOL_GET_DUMP_DATA, or + * %ETHTOOL_SET_DUMP + * @version: FW version of the dump, filled in by driver + * @flag: driver dependent flag for dump setting, filled in by driver during + * get and filled in by ethtool for set operation. + * flag must be initialized by macro ETH_FW_DUMP_DISABLE value when + * firmware dump is disabled. + * @len: length of dump data, used as the length of the user buffer on entry to + * %ETHTOOL_GET_DUMP_DATA and this is returned as dump length by driver + * for %ETHTOOL_GET_DUMP_FLAG command + * @data: data collected for get dump data operation + */ + +#define ETH_FW_DUMP_DISABLE 0 + +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; +}; + +/* for returning and changing feature sets */ + +/** + * struct ethtool_get_features_block - block with state of 32 features + * @available: mask of changeable features + * @requested: mask of features requested to be enabled if possible + * @active: mask of currently enabled features + * @never_changed: mask of features not changeable for any device + */ +struct ethtool_get_features_block { + __u32 available; + __u32 requested; + __u32 active; + __u32 never_changed; +}; + +/** + * struct ethtool_gfeatures - command to get state of device's features + * @cmd: command number = %ETHTOOL_GFEATURES + * @size: in: number of elements in the features[] array; + * out: number of elements in features[] needed to hold all features + * @features: state of features + */ +struct ethtool_gfeatures { + __u32 cmd; + __u32 size; + struct ethtool_get_features_block features[0]; +}; + +/** + * struct ethtool_set_features_block - block with request for 32 features + * @valid: mask of features to be changed + * @requested: values of features to be changed + */ +struct ethtool_set_features_block { + __u32 valid; + __u32 requested; +}; + +/** + * struct ethtool_sfeatures - command to request change in device's features + * @cmd: command number = %ETHTOOL_SFEATURES + * @size: array size of the features[] array + * @features: feature change masks + */ +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; +}; + +/** + * struct ethtool_ts_info - holds a device's timestamping and PHC association + * @cmd: command number = %ETHTOOL_GET_TS_INFO + * @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags + * @phc_index: device index of the associated PHC, or -1 if there is none + * @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values + * @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values + * + * The bits in the 'tx_types' and 'rx_filters' fields correspond to + * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values, + * respectively. For example, if the device supports HWTSTAMP_TX_ON, + * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set. + */ +struct ethtool_ts_info { + __u32 cmd; + __u32 so_timestamping; + __s32 phc_index; + __u32 tx_types; + __u32 tx_reserved[3]; + __u32 rx_filters; + __u32 rx_reserved[3]; +}; + +/* + * %ETHTOOL_SFEATURES changes features present in features[].valid to the + * values of corresponding bits in features[].requested. Bits in .requested + * not set in .valid or not changeable are ignored. + * + * Returns %EINVAL when .valid contains undefined or never-changeable bits + * or size is not equal to required number of features words (32-bit blocks). + * Returns >= 0 if request was completed; bits set in the value mean: + * %ETHTOOL_F_UNSUPPORTED - there were bits set in .valid that are not + * changeable (not present in %ETHTOOL_GFEATURES' features[].available) + * those bits were ignored. + * %ETHTOOL_F_WISH - some or all changes requested were recorded but the + * resulting state of bits masked by .valid is not equal to .requested. + * Probably there are other device-specific constraints on some features + * in the set. When %ETHTOOL_F_UNSUPPORTED is set, .valid is considered + * here as though ignored bits were cleared. + * %ETHTOOL_F_COMPAT - some or all changes requested were made by calling + * compatibility functions. Requested offload state cannot be properly + * managed by kernel. + * + * Meaning of bits in the masks are obtained by %ETHTOOL_GSSET_INFO (number of + * bits in the arrays - always multiple of 32) and %ETHTOOL_GSTRINGS commands + * for ETH_SS_FEATURES string set. First entry in the table corresponds to least + * significant bit in features[0] fields. Empty strings mark undefined features. + */ +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT, + ETHTOOL_F_WISH__BIT, + ETHTOOL_F_COMPAT__BIT, +}; + +#define ETHTOOL_F_UNSUPPORTED (1 << ETHTOOL_F_UNSUPPORTED__BIT) +#define ETHTOOL_F_WISH (1 << ETHTOOL_F_WISH__BIT) +#define ETHTOOL_F_COMPAT (1 << ETHTOOL_F_COMPAT__BIT) + + +/* CMDs currently supported */ +#define ETHTOOL_GSET 0x00000001 /* Get settings. */ +#define ETHTOOL_SSET 0x00000002 /* Set settings. */ +#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */ +#define ETHTOOL_GREGS 0x00000004 /* Get NIC registers. */ +#define ETHTOOL_GWOL 0x00000005 /* Get wake-on-lan options. */ +#define ETHTOOL_SWOL 0x00000006 /* Set wake-on-lan options. */ +#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */ +#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level. */ +#define ETHTOOL_NWAY_RST 0x00000009 /* Restart autonegotiation. */ +/* Get link status for host, i.e. whether the interface *and* the + * physical port (if there is one) are up (ethtool_value). */ +#define ETHTOOL_GLINK 0x0000000a +#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */ +#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data. */ +#define ETHTOOL_GCOALESCE 0x0000000e /* Get coalesce config */ +#define ETHTOOL_SCOALESCE 0x0000000f /* Set coalesce config. */ +#define ETHTOOL_GRINGPARAM 0x00000010 /* Get ring parameters */ +#define ETHTOOL_SRINGPARAM 0x00000011 /* Set ring parameters. */ +#define ETHTOOL_GPAUSEPARAM 0x00000012 /* Get pause parameters */ +#define ETHTOOL_SPAUSEPARAM 0x00000013 /* Set pause parameters. */ +#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */ +#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */ +#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */ +#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */ +#define ETHTOOL_GSG 0x00000018 /* Get scatter-gather enable + * (ethtool_value) */ +#define ETHTOOL_SSG 0x00000019 /* Set scatter-gather enable + * (ethtool_value). */ +#define ETHTOOL_TEST 0x0000001a /* execute NIC self-test. */ +#define ETHTOOL_GSTRINGS 0x0000001b /* get specified string set */ +#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */ +#define ETHTOOL_GSTATS 0x0000001d /* get NIC-specific statistics */ +#define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */ +#define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */ +#define ETHTOOL_GPERMADDR 0x00000020 /* Get permanent hardware address */ +#define ETHTOOL_GUFO 0x00000021 /* Get UFO enable (ethtool_value) */ +#define ETHTOOL_SUFO 0x00000022 /* Set UFO enable (ethtool_value) */ +#define ETHTOOL_GGSO 0x00000023 /* Get GSO enable (ethtool_value) */ +#define ETHTOOL_SGSO 0x00000024 /* Set GSO enable (ethtool_value) */ +#define ETHTOOL_GFLAGS 0x00000025 /* Get flags bitmap(ethtool_value) */ +#define ETHTOOL_SFLAGS 0x00000026 /* Set flags bitmap(ethtool_value) */ +#define ETHTOOL_GPFLAGS 0x00000027 /* Get driver-private flags bitmap */ +#define ETHTOOL_SPFLAGS 0x00000028 /* Set driver-private flags bitmap */ + +#define ETHTOOL_GRXFH 0x00000029 /* Get RX flow hash configuration */ +#define ETHTOOL_SRXFH 0x0000002a /* Set RX flow hash configuration */ +#define ETHTOOL_GGRO 0x0000002b /* Get GRO enable (ethtool_value) */ +#define ETHTOOL_SGRO 0x0000002c /* Set GRO enable (ethtool_value) */ +#define ETHTOOL_GRXRINGS 0x0000002d /* Get RX rings available for LB */ +#define ETHTOOL_GRXCLSRLCNT 0x0000002e /* Get RX class rule count */ +#define ETHTOOL_GRXCLSRULE 0x0000002f /* Get RX classification rule */ +#define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */ +#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */ +#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */ +#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */ +#define ETHTOOL_RESET 0x00000034 /* Reset hardware */ +#define ETHTOOL_SRXNTUPLE 0x00000035 /* Add an n-tuple filter to device */ +#define ETHTOOL_GRXNTUPLE 0x00000036 /* deprecated */ +#define ETHTOOL_GSSET_INFO 0x00000037 /* Get string set info */ +#define ETHTOOL_GRXFHINDIR 0x00000038 /* Get RX flow hash indir'n table */ +#define ETHTOOL_SRXFHINDIR 0x00000039 /* Set RX flow hash indir'n table */ + +#define ETHTOOL_GFEATURES 0x0000003a /* Get device offload settings */ +#define ETHTOOL_SFEATURES 0x0000003b /* Change device offload settings */ +#define ETHTOOL_GCHANNELS 0x0000003c /* Get no of channels */ +#define ETHTOOL_SCHANNELS 0x0000003d /* Set no of channels */ +#define ETHTOOL_SET_DUMP 0x0000003e /* Set dump settings */ +#define ETHTOOL_GET_DUMP_FLAG 0x0000003f /* Get dump settings */ +#define ETHTOOL_GET_DUMP_DATA 0x00000040 /* Get dump data */ +#define ETHTOOL_GET_TS_INFO 0x00000041 /* Get time stamping and PHC info */ +#define ETHTOOL_GMODULEINFO 0x00000042 /* Get plug-in module information */ +#define ETHTOOL_GMODULEEEPROM 0x00000043 /* Get plug-in module eeprom */ +#define ETHTOOL_GEEE 0x00000044 /* Get EEE settings */ +#define ETHTOOL_SEEE 0x00000045 /* Set EEE settings */ + +/* compatibility with older code */ +#define SPARC_ETH_GSET ETHTOOL_GSET +#define SPARC_ETH_SSET ETHTOOL_SSET + +/* Indicates what features are supported by the interface. */ +#define SUPPORTED_10baseT_Half (1 << 0) +#define SUPPORTED_10baseT_Full (1 << 1) +#define SUPPORTED_100baseT_Half (1 << 2) +#define SUPPORTED_100baseT_Full (1 << 3) +#define SUPPORTED_1000baseT_Half (1 << 4) +#define SUPPORTED_1000baseT_Full (1 << 5) +#define SUPPORTED_Autoneg (1 << 6) +#define SUPPORTED_TP (1 << 7) +#define SUPPORTED_AUI (1 << 8) +#define SUPPORTED_MII (1 << 9) +#define SUPPORTED_FIBRE (1 << 10) +#define SUPPORTED_BNC (1 << 11) +#define SUPPORTED_10000baseT_Full (1 << 12) +#define SUPPORTED_Pause (1 << 13) +#define SUPPORTED_Asym_Pause (1 << 14) +#define SUPPORTED_2500baseX_Full (1 << 15) +#define SUPPORTED_Backplane (1 << 16) +#define SUPPORTED_1000baseKX_Full (1 << 17) +#define SUPPORTED_10000baseKX4_Full (1 << 18) +#define SUPPORTED_10000baseKR_Full (1 << 19) +#define SUPPORTED_10000baseR_FEC (1 << 20) +#define SUPPORTED_20000baseMLD2_Full (1 << 21) +#define SUPPORTED_20000baseKR2_Full (1 << 22) +#define SUPPORTED_40000baseKR4_Full (1 << 23) +#define SUPPORTED_40000baseCR4_Full (1 << 24) +#define SUPPORTED_40000baseSR4_Full (1 << 25) +#define SUPPORTED_40000baseLR4_Full (1 << 26) + +/* Indicates what features are advertised by the interface. */ +#define ADVERTISED_10baseT_Half (1 << 0) +#define ADVERTISED_10baseT_Full (1 << 1) +#define ADVERTISED_100baseT_Half (1 << 2) +#define ADVERTISED_100baseT_Full (1 << 3) +#define ADVERTISED_1000baseT_Half (1 << 4) +#define ADVERTISED_1000baseT_Full (1 << 5) +#define ADVERTISED_Autoneg (1 << 6) +#define ADVERTISED_TP (1 << 7) +#define ADVERTISED_AUI (1 << 8) +#define ADVERTISED_MII (1 << 9) +#define ADVERTISED_FIBRE (1 << 10) +#define ADVERTISED_BNC (1 << 11) +#define ADVERTISED_10000baseT_Full (1 << 12) +#define ADVERTISED_Pause (1 << 13) +#define ADVERTISED_Asym_Pause (1 << 14) +#define ADVERTISED_2500baseX_Full (1 << 15) +#define ADVERTISED_Backplane (1 << 16) +#define ADVERTISED_1000baseKX_Full (1 << 17) +#define ADVERTISED_10000baseKX4_Full (1 << 18) +#define ADVERTISED_10000baseKR_Full (1 << 19) +#define ADVERTISED_10000baseR_FEC (1 << 20) +#define ADVERTISED_20000baseMLD2_Full (1 << 21) +#define ADVERTISED_20000baseKR2_Full (1 << 22) +#define ADVERTISED_40000baseKR4_Full (1 << 23) +#define ADVERTISED_40000baseCR4_Full (1 << 24) +#define ADVERTISED_40000baseSR4_Full (1 << 25) +#define ADVERTISED_40000baseLR4_Full (1 << 26) + +/* The following are all involved in forcing a particular link + * mode for the device for setting things. When getting the + * devices settings, these indicate the current mode and whether + * it was forced up into this mode or autonegotiated. + */ + +/* The forced speed, 10Mb, 100Mb, gigabit, 2.5Gb, 10GbE. */ +#define SPEED_10 10 +#define SPEED_100 100 +#define SPEED_1000 1000 +#define SPEED_2500 2500 +#define SPEED_10000 10000 +#define SPEED_UNKNOWN -1 + +/* Duplex, half or full. */ +#define DUPLEX_HALF 0x00 +#define DUPLEX_FULL 0x01 +#define DUPLEX_UNKNOWN 0xff + +/* Which connector port. */ +#define PORT_TP 0x00 +#define PORT_AUI 0x01 +#define PORT_MII 0x02 +#define PORT_FIBRE 0x03 +#define PORT_BNC 0x04 +#define PORT_DA 0x05 +#define PORT_NONE 0xef +#define PORT_OTHER 0xff + +/* Which transceiver to use. */ +#define XCVR_INTERNAL 0x00 +#define XCVR_EXTERNAL 0x01 +#define XCVR_DUMMY1 0x02 +#define XCVR_DUMMY2 0x03 +#define XCVR_DUMMY3 0x04 + +/* Enable or disable autonegotiation. If this is set to enable, + * the forced link modes above are completely ignored. + */ +#define AUTONEG_DISABLE 0x00 +#define AUTONEG_ENABLE 0x01 + +/* MDI or MDI-X status/control - if MDI/MDI_X/AUTO is set then + * the driver is required to renegotiate link + */ +#define ETH_TP_MDI_INVALID 0x00 /* status: unknown; control: unsupported */ +#define ETH_TP_MDI 0x01 /* status: MDI; control: force MDI */ +#define ETH_TP_MDI_X 0x02 /* status: MDI-X; control: force MDI-X */ +#define ETH_TP_MDI_AUTO 0x03 /* control: auto-select */ + +/* Wake-On-Lan options. */ +#define WAKE_PHY (1 << 0) +#define WAKE_UCAST (1 << 1) +#define WAKE_MCAST (1 << 2) +#define WAKE_BCAST (1 << 3) +#define WAKE_ARP (1 << 4) +#define WAKE_MAGIC (1 << 5) +#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ + +/* L2-L4 network traffic flow types */ +#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ +#define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */ +#define SCTP_V4_FLOW 0x03 /* hash or spec (sctp_ip4_spec) */ +#define AH_ESP_V4_FLOW 0x04 /* hash only */ +#define TCP_V6_FLOW 0x05 /* hash only */ +#define UDP_V6_FLOW 0x06 /* hash only */ +#define SCTP_V6_FLOW 0x07 /* hash only */ +#define AH_ESP_V6_FLOW 0x08 /* hash only */ +#define AH_V4_FLOW 0x09 /* hash or spec (ah_ip4_spec) */ +#define ESP_V4_FLOW 0x0a /* hash or spec (esp_ip4_spec) */ +#define AH_V6_FLOW 0x0b /* hash only */ +#define ESP_V6_FLOW 0x0c /* hash only */ +#define IP_USER_FLOW 0x0d /* spec only (usr_ip4_spec) */ +#define IPV4_FLOW 0x10 /* hash only */ +#define IPV6_FLOW 0x11 /* hash only */ +#define ETHER_FLOW 0x12 /* spec only (ether_spec) */ +/* Flag to enable additional fields in struct ethtool_rx_flow_spec */ +#define FLOW_EXT 0x80000000 +#define FLOW_MAC_EXT 0x40000000 + +/* L3-L4 network traffic flow hash options */ +#define RXH_L2DA (1 << 1) +#define RXH_VLAN (1 << 2) +#define RXH_L3_PROTO (1 << 3) +#define RXH_IP_SRC (1 << 4) +#define RXH_IP_DST (1 << 5) +#define RXH_L4_B_0_1 (1 << 6) /* src port in case of TCP/UDP/SCTP */ +#define RXH_L4_B_2_3 (1 << 7) /* dst port in case of TCP/UDP/SCTP */ +#define RXH_DISCARD (1 << 31) + +#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL + +/* Special RX classification rule insert location values */ +#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ +#define RX_CLS_LOC_ANY 0xffffffff +#define RX_CLS_LOC_FIRST 0xfffffffe +#define RX_CLS_LOC_LAST 0xfffffffd + +/* EEPROM Standards for plug in modules */ +#define ETH_MODULE_SFF_8079 0x1 +#define ETH_MODULE_SFF_8079_LEN 256 +#define ETH_MODULE_SFF_8472 0x2 +#define ETH_MODULE_SFF_8472_LEN 512 + +/* Reset flags */ +/* The reset() operation must clear the flags for the components which + * were actually reset. On successful return, the flags indicate the + * components which were not reset, either because they do not exist + * in the hardware or because they cannot be reset independently. The + * driver must never reset any components that were not requested. + */ +enum ethtool_reset_flags { + /* These flags represent components dedicated to the interface + * the command is addressed to. Shift any flag left by + * ETH_RESET_SHARED_SHIFT to reset a shared component of the + * same type. + */ + ETH_RESET_MGMT = 1 << 0, /* Management processor */ + ETH_RESET_IRQ = 1 << 1, /* Interrupt requester */ + ETH_RESET_DMA = 1 << 2, /* DMA engine */ + ETH_RESET_FILTER = 1 << 3, /* Filtering/flow direction */ + ETH_RESET_OFFLOAD = 1 << 4, /* Protocol offload */ + ETH_RESET_MAC = 1 << 5, /* Media access controller */ + ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */ + ETH_RESET_RAM = 1 << 7, /* RAM shared between + * multiple components */ + + ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to + * this interface */ + ETH_RESET_ALL = 0xffffffff, /* All components used by this + * interface, even if shared */ +}; +#define ETH_RESET_SHARED_SHIFT 16 + +#endif /* _LINUX_ETHTOOL_H */ diff --git a/kernel_headers/linux/eventpoll.h b/kernel_headers/linux/eventpoll.h new file mode 100644 index 0000000..998e3b2 --- /dev/null +++ b/kernel_headers/linux/eventpoll.h @@ -0,0 +1,65 @@ +/* + * include/linux/eventpoll.h ( Efficient event polling implementation ) + * Copyright (C) 2001,...,2006 Davide Libenzi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Davide Libenzi + * + */ + +#ifndef _LINUX_EVENTPOLL_H +#define _LINUX_EVENTPOLL_H + +/* For O_CLOEXEC */ +#include +#include + +/* Flags for epoll_create1. */ +#define EPOLL_CLOEXEC O_CLOEXEC + +/* Valid opcodes to issue to sys_epoll_ctl() */ +#define EPOLL_CTL_ADD 1 +#define EPOLL_CTL_DEL 2 +#define EPOLL_CTL_MOD 3 + +/* + * Request the handling of system wakeup events so as to prevent system suspends + * from happening while those events are being processed. + * + * Assuming neither EPOLLET nor EPOLLONESHOT is set, system suspends will not be + * re-allowed until epoll_wait is called again after consuming the wakeup + * event(s). + * + * Requires CAP_BLOCK_SUSPEND + */ +#define EPOLLWAKEUP (1 << 29) + +/* Set the One Shot behaviour for the target file descriptor */ +#define EPOLLONESHOT (1 << 30) + +/* Set the Edge Triggered behaviour for the target file descriptor */ +#define EPOLLET (1 << 31) + +/* + * On x86-64 make the 64bit structure have the same alignment as the + * 32bit structure. This makes 32bit emulation easier. + * + * UML/x86_64 needs the same packing as x86_64 + */ +#ifdef __x86_64__ +#define EPOLL_PACKED __attribute__((packed)) +#else +#define EPOLL_PACKED +#endif + +struct epoll_event { + __u32 events; + __u64 data; +} EPOLL_PACKED; + + +#endif /* _LINUX_EVENTPOLL_H */ diff --git a/kernel_headers/linux/fadvise.h b/kernel_headers/linux/fadvise.h new file mode 100644 index 0000000..e8e7471 --- /dev/null +++ b/kernel_headers/linux/fadvise.h @@ -0,0 +1,21 @@ +#ifndef FADVISE_H_INCLUDED +#define FADVISE_H_INCLUDED + +#define POSIX_FADV_NORMAL 0 /* No further special treatment. */ +#define POSIX_FADV_RANDOM 1 /* Expect random page references. */ +#define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ +#define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ + +/* + * The advise values for POSIX_FADV_DONTNEED and POSIX_ADV_NOREUSE + * for s390-64 differ from the values for the rest of the world. + */ +#if defined(__s390x__) +#define POSIX_FADV_DONTNEED 6 /* Don't need these pages. */ +#define POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */ +#else +#define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ +#define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ +#endif + +#endif /* FADVISE_H_INCLUDED */ diff --git a/kernel_headers/linux/falloc.h b/kernel_headers/linux/falloc.h new file mode 100644 index 0000000..49c4602 --- /dev/null +++ b/kernel_headers/linux/falloc.h @@ -0,0 +1,9 @@ +#ifndef _FALLOC_H_ +#define _FALLOC_H_ + +#define FALLOC_FL_KEEP_SIZE 0x01 /* default is extend size */ +#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ +#define FALLOC_FL_NO_HIDE_STALE 0x04 /* reserved codepoint */ + + +#endif /* _FALLOC_H_ */ diff --git a/kernel_headers/linux/fanotify.h b/kernel_headers/linux/fanotify.h new file mode 100644 index 0000000..f780e5a --- /dev/null +++ b/kernel_headers/linux/fanotify.h @@ -0,0 +1,116 @@ +#ifndef _LINUX_FANOTIFY_H +#define _LINUX_FANOTIFY_H + +#include + +/* the following events that user-space can register for */ +#define FAN_ACCESS 0x00000001 /* File was accessed */ +#define FAN_MODIFY 0x00000002 /* File was modified */ +#define FAN_CLOSE_WRITE 0x00000008 /* Writtable file closed */ +#define FAN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */ +#define FAN_OPEN 0x00000020 /* File was opened */ + +#define FAN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ + +#define FAN_OPEN_PERM 0x00010000 /* File open in perm check */ +#define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */ + +#define FAN_ONDIR 0x40000000 /* event occurred against dir */ + +#define FAN_EVENT_ON_CHILD 0x08000000 /* interested in child events */ + +/* helper events */ +#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */ + +/* flags used for fanotify_init() */ +#define FAN_CLOEXEC 0x00000001 +#define FAN_NONBLOCK 0x00000002 + +/* These are NOT bitwise flags. Both bits are used togther. */ +#define FAN_CLASS_NOTIF 0x00000000 +#define FAN_CLASS_CONTENT 0x00000004 +#define FAN_CLASS_PRE_CONTENT 0x00000008 +#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | \ + FAN_CLASS_PRE_CONTENT) + +#define FAN_UNLIMITED_QUEUE 0x00000010 +#define FAN_UNLIMITED_MARKS 0x00000020 + +#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \ + FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE |\ + FAN_UNLIMITED_MARKS) + +/* flags used for fanotify_modify_mark() */ +#define FAN_MARK_ADD 0x00000001 +#define FAN_MARK_REMOVE 0x00000002 +#define FAN_MARK_DONT_FOLLOW 0x00000004 +#define FAN_MARK_ONLYDIR 0x00000008 +#define FAN_MARK_MOUNT 0x00000010 +#define FAN_MARK_IGNORED_MASK 0x00000020 +#define FAN_MARK_IGNORED_SURV_MODIFY 0x00000040 +#define FAN_MARK_FLUSH 0x00000080 + +#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD |\ + FAN_MARK_REMOVE |\ + FAN_MARK_DONT_FOLLOW |\ + FAN_MARK_ONLYDIR |\ + FAN_MARK_MOUNT |\ + FAN_MARK_IGNORED_MASK |\ + FAN_MARK_IGNORED_SURV_MODIFY |\ + FAN_MARK_FLUSH) + +/* + * All of the events - we build the list by hand so that we can add flags in + * the future and not break backward compatibility. Apps will get only the + * events that they originally wanted. Be sure to add new events here! + */ +#define FAN_ALL_EVENTS (FAN_ACCESS |\ + FAN_MODIFY |\ + FAN_CLOSE |\ + FAN_OPEN) + +/* + * All events which require a permission response from userspace + */ +#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM |\ + FAN_ACCESS_PERM) + +#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS |\ + FAN_ALL_PERM_EVENTS |\ + FAN_Q_OVERFLOW) + +#define FANOTIFY_METADATA_VERSION 3 + +struct fanotify_event_metadata { + __u32 event_len; + __u8 vers; + __u8 reserved; + __u16 metadata_len; + __aligned_u64 mask; + __s32 fd; + __s32 pid; +}; + +struct fanotify_response { + __s32 fd; + __u32 response; +}; + +/* Legit userspace responses to a _PERM event */ +#define FAN_ALLOW 0x01 +#define FAN_DENY 0x02 +/* No fd set in event */ +#define FAN_NOFD -1 + +/* Helper functions to deal with fanotify_event_metadata buffers */ +#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata)) + +#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, \ + (struct fanotify_event_metadata*)(((char *)(meta)) + \ + (meta)->event_len)) + +#define FAN_EVENT_OK(meta, len) ((long)(len) >= (long)FAN_EVENT_METADATA_LEN && \ + (long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && \ + (long)(meta)->event_len <= (long)(len)) + +#endif /* _LINUX_FANOTIFY_H */ diff --git a/kernel_headers/linux/fb.h b/kernel_headers/linux/fb.h new file mode 100644 index 0000000..1b3b239 --- /dev/null +++ b/kernel_headers/linux/fb.h @@ -0,0 +1,400 @@ +#ifndef _LINUX_FB_H +#define _LINUX_FB_H + +#include +#include + +/* Definitions of frame buffers */ + +#define FB_MAX 32 /* sufficient for now */ + +/* ioctls + 0x46 is 'F' */ +#define FBIOGET_VSCREENINFO 0x4600 +#define FBIOPUT_VSCREENINFO 0x4601 +#define FBIOGET_FSCREENINFO 0x4602 +#define FBIOGETCMAP 0x4604 +#define FBIOPUTCMAP 0x4605 +#define FBIOPAN_DISPLAY 0x4606 +#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor) +/* 0x4607-0x460B are defined below */ +/* #define FBIOGET_MONITORSPEC 0x460C */ +/* #define FBIOPUT_MONITORSPEC 0x460D */ +/* #define FBIOSWITCH_MONIBIT 0x460E */ +#define FBIOGET_CON2FBMAP 0x460F +#define FBIOPUT_CON2FBMAP 0x4610 +#define FBIOBLANK 0x4611 /* arg: 0 or vesa level + 1 */ +#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank) +#define FBIO_ALLOC 0x4613 +#define FBIO_FREE 0x4614 +#define FBIOGET_GLYPH 0x4615 +#define FBIOGET_HWCINFO 0x4616 +#define FBIOPUT_MODEINFO 0x4617 +#define FBIOGET_DISPINFO 0x4618 +#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32) + +#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ +#define FB_TYPE_PLANES 1 /* Non interleaved planes */ +#define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */ +#define FB_TYPE_TEXT 3 /* Text/attributes */ +#define FB_TYPE_VGA_PLANES 4 /* EGA/VGA planes */ +#define FB_TYPE_FOURCC 5 /* Type identified by a V4L2 FOURCC */ + +#define FB_AUX_TEXT_MDA 0 /* Monochrome text */ +#define FB_AUX_TEXT_CGA 1 /* CGA/EGA/VGA Color text */ +#define FB_AUX_TEXT_S3_MMIO 2 /* S3 MMIO fasttext */ +#define FB_AUX_TEXT_MGA_STEP16 3 /* MGA Millenium I: text, attr, 14 reserved bytes */ +#define FB_AUX_TEXT_MGA_STEP8 4 /* other MGAs: text, attr, 6 reserved bytes */ +#define FB_AUX_TEXT_SVGA_GROUP 8 /* 8-15: SVGA tileblit compatible modes */ +#define FB_AUX_TEXT_SVGA_MASK 7 /* lower three bits says step */ +#define FB_AUX_TEXT_SVGA_STEP2 8 /* SVGA text mode: text, attr */ +#define FB_AUX_TEXT_SVGA_STEP4 9 /* SVGA text mode: text, attr, 2 reserved bytes */ +#define FB_AUX_TEXT_SVGA_STEP8 10 /* SVGA text mode: text, attr, 6 reserved bytes */ +#define FB_AUX_TEXT_SVGA_STEP16 11 /* SVGA text mode: text, attr, 14 reserved bytes */ +#define FB_AUX_TEXT_SVGA_LAST 15 /* reserved up to 15 */ + +#define FB_AUX_VGA_PLANES_VGA4 0 /* 16 color planes (EGA/VGA) */ +#define FB_AUX_VGA_PLANES_CFB4 1 /* CFB4 in planes (VGA) */ +#define FB_AUX_VGA_PLANES_CFB8 2 /* CFB8 in planes (VGA) */ + +#define FB_VISUAL_MONO01 0 /* Monochr. 1=Black 0=White */ +#define FB_VISUAL_MONO10 1 /* Monochr. 1=White 0=Black */ +#define FB_VISUAL_TRUECOLOR 2 /* True color */ +#define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */ +#define FB_VISUAL_DIRECTCOLOR 4 /* Direct color */ +#define FB_VISUAL_STATIC_PSEUDOCOLOR 5 /* Pseudo color readonly */ +#define FB_VISUAL_FOURCC 6 /* Visual identified by a V4L2 FOURCC */ + +#define FB_ACCEL_NONE 0 /* no hardware accelerator */ +#define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */ +#define FB_ACCEL_AMIGABLITT 2 /* Amiga Blitter */ +#define FB_ACCEL_S3_TRIO64 3 /* Cybervision64 (S3 Trio64) */ +#define FB_ACCEL_NCR_77C32BLT 4 /* RetinaZ3 (NCR 77C32BLT) */ +#define FB_ACCEL_S3_VIRGE 5 /* Cybervision64/3D (S3 ViRGE) */ +#define FB_ACCEL_ATI_MACH64GX 6 /* ATI Mach 64GX family */ +#define FB_ACCEL_DEC_TGA 7 /* DEC 21030 TGA */ +#define FB_ACCEL_ATI_MACH64CT 8 /* ATI Mach 64CT family */ +#define FB_ACCEL_ATI_MACH64VT 9 /* ATI Mach 64CT family VT class */ +#define FB_ACCEL_ATI_MACH64GT 10 /* ATI Mach 64CT family GT class */ +#define FB_ACCEL_SUN_CREATOR 11 /* Sun Creator/Creator3D */ +#define FB_ACCEL_SUN_CGSIX 12 /* Sun cg6 */ +#define FB_ACCEL_SUN_LEO 13 /* Sun leo/zx */ +#define FB_ACCEL_IMS_TWINTURBO 14 /* IMS Twin Turbo */ +#define FB_ACCEL_3DLABS_PERMEDIA2 15 /* 3Dlabs Permedia 2 */ +#define FB_ACCEL_MATROX_MGA2064W 16 /* Matrox MGA2064W (Millenium) */ +#define FB_ACCEL_MATROX_MGA1064SG 17 /* Matrox MGA1064SG (Mystique) */ +#define FB_ACCEL_MATROX_MGA2164W 18 /* Matrox MGA2164W (Millenium II) */ +#define FB_ACCEL_MATROX_MGA2164W_AGP 19 /* Matrox MGA2164W (Millenium II) */ +#define FB_ACCEL_MATROX_MGAG100 20 /* Matrox G100 (Productiva G100) */ +#define FB_ACCEL_MATROX_MGAG200 21 /* Matrox G200 (Myst, Mill, ...) */ +#define FB_ACCEL_SUN_CG14 22 /* Sun cgfourteen */ +#define FB_ACCEL_SUN_BWTWO 23 /* Sun bwtwo */ +#define FB_ACCEL_SUN_CGTHREE 24 /* Sun cgthree */ +#define FB_ACCEL_SUN_TCX 25 /* Sun tcx */ +#define FB_ACCEL_MATROX_MGAG400 26 /* Matrox G400 */ +#define FB_ACCEL_NV3 27 /* nVidia RIVA 128 */ +#define FB_ACCEL_NV4 28 /* nVidia RIVA TNT */ +#define FB_ACCEL_NV5 29 /* nVidia RIVA TNT2 */ +#define FB_ACCEL_CT_6555x 30 /* C&T 6555x */ +#define FB_ACCEL_3DFX_BANSHEE 31 /* 3Dfx Banshee */ +#define FB_ACCEL_ATI_RAGE128 32 /* ATI Rage128 family */ +#define FB_ACCEL_IGS_CYBER2000 33 /* CyberPro 2000 */ +#define FB_ACCEL_IGS_CYBER2010 34 /* CyberPro 2010 */ +#define FB_ACCEL_IGS_CYBER5000 35 /* CyberPro 5000 */ +#define FB_ACCEL_SIS_GLAMOUR 36 /* SiS 300/630/540 */ +#define FB_ACCEL_3DLABS_PERMEDIA3 37 /* 3Dlabs Permedia 3 */ +#define FB_ACCEL_ATI_RADEON 38 /* ATI Radeon family */ +#define FB_ACCEL_I810 39 /* Intel 810/815 */ +#define FB_ACCEL_SIS_GLAMOUR_2 40 /* SiS 315, 650, 740 */ +#define FB_ACCEL_SIS_XABRE 41 /* SiS 330 ("Xabre") */ +#define FB_ACCEL_I830 42 /* Intel 830M/845G/85x/865G */ +#define FB_ACCEL_NV_10 43 /* nVidia Arch 10 */ +#define FB_ACCEL_NV_20 44 /* nVidia Arch 20 */ +#define FB_ACCEL_NV_30 45 /* nVidia Arch 30 */ +#define FB_ACCEL_NV_40 46 /* nVidia Arch 40 */ +#define FB_ACCEL_XGI_VOLARI_V 47 /* XGI Volari V3XT, V5, V8 */ +#define FB_ACCEL_XGI_VOLARI_Z 48 /* XGI Volari Z7 */ +#define FB_ACCEL_OMAP1610 49 /* TI OMAP16xx */ +#define FB_ACCEL_TRIDENT_TGUI 50 /* Trident TGUI */ +#define FB_ACCEL_TRIDENT_3DIMAGE 51 /* Trident 3DImage */ +#define FB_ACCEL_TRIDENT_BLADE3D 52 /* Trident Blade3D */ +#define FB_ACCEL_TRIDENT_BLADEXP 53 /* Trident BladeXP */ +#define FB_ACCEL_CIRRUS_ALPINE 53 /* Cirrus Logic 543x/544x/5480 */ +#define FB_ACCEL_NEOMAGIC_NM2070 90 /* NeoMagic NM2070 */ +#define FB_ACCEL_NEOMAGIC_NM2090 91 /* NeoMagic NM2090 */ +#define FB_ACCEL_NEOMAGIC_NM2093 92 /* NeoMagic NM2093 */ +#define FB_ACCEL_NEOMAGIC_NM2097 93 /* NeoMagic NM2097 */ +#define FB_ACCEL_NEOMAGIC_NM2160 94 /* NeoMagic NM2160 */ +#define FB_ACCEL_NEOMAGIC_NM2200 95 /* NeoMagic NM2200 */ +#define FB_ACCEL_NEOMAGIC_NM2230 96 /* NeoMagic NM2230 */ +#define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */ +#define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */ +#define FB_ACCEL_PXA3XX 99 /* PXA3xx */ + +#define FB_ACCEL_SAVAGE4 0x80 /* S3 Savage4 */ +#define FB_ACCEL_SAVAGE3D 0x81 /* S3 Savage3D */ +#define FB_ACCEL_SAVAGE3D_MV 0x82 /* S3 Savage3D-MV */ +#define FB_ACCEL_SAVAGE2000 0x83 /* S3 Savage2000 */ +#define FB_ACCEL_SAVAGE_MX_MV 0x84 /* S3 Savage/MX-MV */ +#define FB_ACCEL_SAVAGE_MX 0x85 /* S3 Savage/MX */ +#define FB_ACCEL_SAVAGE_IX_MV 0x86 /* S3 Savage/IX-MV */ +#define FB_ACCEL_SAVAGE_IX 0x87 /* S3 Savage/IX */ +#define FB_ACCEL_PROSAVAGE_PM 0x88 /* S3 ProSavage PM133 */ +#define FB_ACCEL_PROSAVAGE_KM 0x89 /* S3 ProSavage KM133 */ +#define FB_ACCEL_S3TWISTER_P 0x8a /* S3 Twister */ +#define FB_ACCEL_S3TWISTER_K 0x8b /* S3 TwisterK */ +#define FB_ACCEL_SUPERSAVAGE 0x8c /* S3 Supersavage */ +#define FB_ACCEL_PROSAVAGE_DDR 0x8d /* S3 ProSavage DDR */ +#define FB_ACCEL_PROSAVAGE_DDRK 0x8e /* S3 ProSavage DDR-K */ + +#define FB_ACCEL_PUV3_UNIGFX 0xa0 /* PKUnity-v3 Unigfx */ + +#define FB_CAP_FOURCC 1 /* Device supports FOURCC-based formats */ + +struct fb_fix_screeninfo { + char id[16]; /* identification string eg "TT Builtin" */ + unsigned long smem_start; /* Start of frame buffer mem */ + /* (physical address) */ + __u32 smem_len; /* Length of frame buffer mem */ + __u32 type; /* see FB_TYPE_* */ + __u32 type_aux; /* Interleave for interleaved Planes */ + __u32 visual; /* see FB_VISUAL_* */ + __u16 xpanstep; /* zero if no hardware panning */ + __u16 ypanstep; /* zero if no hardware panning */ + __u16 ywrapstep; /* zero if no hardware ywrap */ + __u32 line_length; /* length of a line in bytes */ + unsigned long mmio_start; /* Start of Memory Mapped I/O */ + /* (physical address) */ + __u32 mmio_len; /* Length of Memory Mapped I/O */ + __u32 accel; /* Indicate to driver which */ + /* specific chip/card we have */ + __u16 capabilities; /* see FB_CAP_* */ + __u16 reserved[2]; /* Reserved for future compatibility */ +}; + +/* Interpretation of offset for color fields: All offsets are from the right, + * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you + * can use the offset as right argument to <<). A pixel afterwards is a bit + * stream and is written to video memory as that unmodified. + * + * For pseudocolor: offset and length should be the same for all color + * components. Offset specifies the position of the least significant bit + * of the pallette index in a pixel value. Length indicates the number + * of available palette entries (i.e. # of entries = 1 << length). + */ +struct fb_bitfield { + __u32 offset; /* beginning of bitfield */ + __u32 length; /* length of bitfield */ + __u32 msb_right; /* != 0 : Most significant bit is */ + /* right */ +}; + +#define FB_NONSTD_HAM 1 /* Hold-And-Modify (HAM) */ +#define FB_NONSTD_REV_PIX_IN_B 2 /* order of pixels in each byte is reversed */ + +#define FB_ACTIVATE_NOW 0 /* set values immediately (or vbl)*/ +#define FB_ACTIVATE_NXTOPEN 1 /* activate on next open */ +#define FB_ACTIVATE_TEST 2 /* don't set, round up impossible */ +#define FB_ACTIVATE_MASK 15 + /* values */ +#define FB_ACTIVATE_VBL 16 /* activate values on next vbl */ +#define FB_CHANGE_CMAP_VBL 32 /* change colormap on vbl */ +#define FB_ACTIVATE_ALL 64 /* change all VCs on this fb */ +#define FB_ACTIVATE_FORCE 128 /* force apply even when no change*/ +#define FB_ACTIVATE_INV_MODE 256 /* invalidate videomode */ + +#define FB_ACCELF_TEXT 1 /* (OBSOLETE) see fb_info.flags and vc_mode */ + +#define FB_SYNC_HOR_HIGH_ACT 1 /* horizontal sync high active */ +#define FB_SYNC_VERT_HIGH_ACT 2 /* vertical sync high active */ +#define FB_SYNC_EXT 4 /* external sync */ +#define FB_SYNC_COMP_HIGH_ACT 8 /* composite sync high active */ +#define FB_SYNC_BROADCAST 16 /* broadcast video timings */ + /* vtotal = 144d/288n/576i => PAL */ + /* vtotal = 121d/242n/484i => NTSC */ +#define FB_SYNC_ON_GREEN 32 /* sync on green */ + +#define FB_VMODE_NONINTERLACED 0 /* non interlaced */ +#define FB_VMODE_INTERLACED 1 /* interlaced */ +#define FB_VMODE_DOUBLE 2 /* double scan */ +#define FB_VMODE_ODD_FLD_FIRST 4 /* interlaced: top line first */ +#define FB_VMODE_MASK 255 + +#define FB_VMODE_YWRAP 256 /* ywrap instead of panning */ +#define FB_VMODE_SMOOTH_XPAN 512 /* smooth xpan possible (internally used) */ +#define FB_VMODE_CONUPDATE 512 /* don't update x/yoffset */ + +/* + * Display rotation support + */ +#define FB_ROTATE_UR 0 +#define FB_ROTATE_CW 1 +#define FB_ROTATE_UD 2 +#define FB_ROTATE_CCW 3 + +#define PICOS2KHZ(a) (1000000000UL/(a)) +#define KHZ2PICOS(a) (1000000000UL/(a)) + +struct fb_var_screeninfo { + __u32 xres; /* visible resolution */ + __u32 yres; + __u32 xres_virtual; /* virtual resolution */ + __u32 yres_virtual; + __u32 xoffset; /* offset from virtual to visible */ + __u32 yoffset; /* resolution */ + + __u32 bits_per_pixel; /* guess what */ + __u32 grayscale; /* 0 = color, 1 = grayscale, */ + /* >1 = FOURCC */ + struct fb_bitfield red; /* bitfield in fb mem if true color, */ + struct fb_bitfield green; /* else only length is significant */ + struct fb_bitfield blue; + struct fb_bitfield transp; /* transparency */ + + __u32 nonstd; /* != 0 Non standard pixel format */ + + __u32 activate; /* see FB_ACTIVATE_* */ + + __u32 height; /* height of picture in mm */ + __u32 width; /* width of picture in mm */ + + __u32 accel_flags; /* (OBSOLETE) see fb_info.flags */ + + /* Timing: All values in pixclocks, except pixclock (of course) */ + __u32 pixclock; /* pixel clock in ps (pico seconds) */ + __u32 left_margin; /* time from sync to picture */ + __u32 right_margin; /* time from picture to sync */ + __u32 upper_margin; /* time from sync to picture */ + __u32 lower_margin; + __u32 hsync_len; /* length of horizontal sync */ + __u32 vsync_len; /* length of vertical sync */ + __u32 sync; /* see FB_SYNC_* */ + __u32 vmode; /* see FB_VMODE_* */ + __u32 rotate; /* angle we rotate counter clockwise */ + __u32 colorspace; /* colorspace for FOURCC-based modes */ + __u32 reserved[4]; /* Reserved for future compatibility */ +}; + +struct fb_cmap { + __u32 start; /* First entry */ + __u32 len; /* Number of entries */ + __u16 *red; /* Red values */ + __u16 *green; + __u16 *blue; + __u16 *transp; /* transparency, can be NULL */ +}; + +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; +}; + +/* VESA Blanking Levels */ +#define VESA_NO_BLANKING 0 +#define VESA_VSYNC_SUSPEND 1 +#define VESA_HSYNC_SUSPEND 2 +#define VESA_POWERDOWN 3 + + +enum { + /* screen: unblanked, hsync: on, vsync: on */ + FB_BLANK_UNBLANK = VESA_NO_BLANKING, + + /* screen: blanked, hsync: on, vsync: on */ + FB_BLANK_NORMAL = VESA_NO_BLANKING + 1, + + /* screen: blanked, hsync: on, vsync: off */ + FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1, + + /* screen: blanked, hsync: off, vsync: on */ + FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1, + + /* screen: blanked, hsync: off, vsync: off */ + FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1 +}; + +#define FB_VBLANK_VBLANKING 0x001 /* currently in a vertical blank */ +#define FB_VBLANK_HBLANKING 0x002 /* currently in a horizontal blank */ +#define FB_VBLANK_HAVE_VBLANK 0x004 /* vertical blanks can be detected */ +#define FB_VBLANK_HAVE_HBLANK 0x008 /* horizontal blanks can be detected */ +#define FB_VBLANK_HAVE_COUNT 0x010 /* global retrace counter is available */ +#define FB_VBLANK_HAVE_VCOUNT 0x020 /* the vcount field is valid */ +#define FB_VBLANK_HAVE_HCOUNT 0x040 /* the hcount field is valid */ +#define FB_VBLANK_VSYNCING 0x080 /* currently in a vsync */ +#define FB_VBLANK_HAVE_VSYNC 0x100 /* verical syncs can be detected */ + +struct fb_vblank { + __u32 flags; /* FB_VBLANK flags */ + __u32 count; /* counter of retraces since boot */ + __u32 vcount; /* current scanline position */ + __u32 hcount; /* current scandot position */ + __u32 reserved[4]; /* reserved for future compatibility */ +}; + +/* Internal HW accel */ +#define ROP_COPY 0 +#define ROP_XOR 1 + +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; +}; + +struct fb_fillrect { + __u32 dx; /* screen-relative */ + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; +}; + +struct fb_image { + __u32 dx; /* Where to place image */ + __u32 dy; + __u32 width; /* Size of image */ + __u32 height; + __u32 fg_color; /* Only used when a mono bitmap */ + __u32 bg_color; + __u8 depth; /* Depth of the image */ + const char *data; /* Pointer to image data */ + struct fb_cmap cmap; /* color map info */ +}; + +/* + * hardware cursor control + */ + +#define FB_CUR_SETIMAGE 0x01 +#define FB_CUR_SETPOS 0x02 +#define FB_CUR_SETHOT 0x04 +#define FB_CUR_SETCMAP 0x08 +#define FB_CUR_SETSHAPE 0x10 +#define FB_CUR_SETSIZE 0x20 +#define FB_CUR_SETALL 0xFF + +struct fbcurpos { + __u16 x, y; +}; + +struct fb_cursor { + __u16 set; /* what to set */ + __u16 enable; /* cursor on/off */ + __u16 rop; /* bitop operation */ + const char *mask; /* cursor mask bits */ + struct fbcurpos hot; /* cursor hot spot */ + struct fb_image image; /* Cursor image */ +}; + +#ifdef CONFIG_FB_BACKLIGHT +/* Settings for the generic backlight code */ +#define FB_BACKLIGHT_LEVELS 128 +#define FB_BACKLIGHT_MAX 0xFF +#endif + + +#endif /* _LINUX_FB_H */ diff --git a/kernel_headers/linux/fcntl.h b/kernel_headers/linux/fcntl.h new file mode 100644 index 0000000..08683ab --- /dev/null +++ b/kernel_headers/linux/fcntl.h @@ -0,0 +1,52 @@ +#ifndef _LINUX_FCNTL_H +#define _LINUX_FCNTL_H + +#include + +#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0) +#define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1) + +/* + * Cancel a blocking posix lock; internal use only until we expose an + * asynchronous lock api to userspace: + */ +#define F_CANCELLK (F_LINUX_SPECIFIC_BASE + 5) + +/* Create a file descriptor with FD_CLOEXEC set. */ +#define F_DUPFD_CLOEXEC (F_LINUX_SPECIFIC_BASE + 6) + +/* + * Request nofications on a directory. + * See below for events that may be notified. + */ +#define F_NOTIFY (F_LINUX_SPECIFIC_BASE+2) + +/* + * Set and get of pipe page size array + */ +#define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7) +#define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8) + +/* + * Types of directory notifications that may be requested. + */ +#define DN_ACCESS 0x00000001 /* File accessed */ +#define DN_MODIFY 0x00000002 /* File modified */ +#define DN_CREATE 0x00000004 /* File created */ +#define DN_DELETE 0x00000008 /* File removed */ +#define DN_RENAME 0x00000010 /* File renamed */ +#define DN_ATTRIB 0x00000020 /* File changed attibutes */ +#define DN_MULTISHOT 0x80000000 /* Don't remove notifier */ + +#define AT_FDCWD -100 /* Special value used to indicate + openat should use the current + working directory. */ +#define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ +#define AT_REMOVEDIR 0x200 /* Remove directory instead of + unlinking file. */ +#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ +#define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */ +#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */ + + +#endif /* _LINUX_FCNTL_H */ diff --git a/kernel_headers/linux/fd.h b/kernel_headers/linux/fd.h new file mode 100644 index 0000000..c43c4c8 --- /dev/null +++ b/kernel_headers/linux/fd.h @@ -0,0 +1,382 @@ +#ifndef _LINUX_FD_H +#define _LINUX_FD_H + +#include + + +/* New file layout: Now the ioctl definitions immediately follow the + * definitions of the structures that they use */ + +/* + * Geometry + */ +struct floppy_struct { + unsigned int size, /* nr of sectors total */ + sect, /* sectors per track */ + head, /* nr of heads */ + track, /* nr of tracks */ + stretch; /* bit 0 !=0 means double track steps */ + /* bit 1 != 0 means swap sides */ + /* bits 2..9 give the first sector */ + /* number (the LSB is flipped) */ +#define FD_STRETCH 1 +#define FD_SWAPSIDES 2 +#define FD_ZEROBASED 4 +#define FD_SECTBASEMASK 0x3FC +#define FD_MKSECTBASE(s) (((s) ^ 1) << 2) +#define FD_SECTBASE(floppy) ((((floppy)->stretch & FD_SECTBASEMASK) >> 2) ^ 1) + + unsigned char gap, /* gap1 size */ + + rate, /* data rate. |= 0x40 for perpendicular */ +#define FD_2M 0x4 +#define FD_SIZECODEMASK 0x38 +#define FD_SIZECODE(floppy) (((((floppy)->rate&FD_SIZECODEMASK)>> 3)+ 2) %8) +#define FD_SECTSIZE(floppy) ( (floppy)->rate & FD_2M ? \ + 512 : 128 << FD_SIZECODE(floppy) ) +#define FD_PERP 0x40 + + spec1, /* stepping rate, head unload time */ + fmt_gap; /* gap2 size */ + const char * name; /* used only for predefined formats */ +}; + + +/* commands needing write access have 0x40 set */ +/* commands needing super user access have 0x80 set */ + +#define FDCLRPRM _IO(2, 0x41) +/* clear user-defined parameters */ + +#define FDSETPRM _IOW(2, 0x42, struct floppy_struct) +#define FDSETMEDIAPRM FDSETPRM +/* set user-defined parameters for current media */ + +#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) +#define FDGETPRM _IOR(2, 0x04, struct floppy_struct) +#define FDDEFMEDIAPRM FDDEFPRM +#define FDGETMEDIAPRM FDGETPRM +/* set/get disk parameters */ + + +#define FDMSGON _IO(2,0x45) +#define FDMSGOFF _IO(2,0x46) +/* issue/don't issue kernel messages on media type change */ + + +/* + * Formatting (obsolete) + */ +#define FD_FILL_BYTE 0xF6 /* format fill byte. */ + +struct format_descr { + unsigned int device,head,track; +}; + +#define FDFMTBEG _IO(2,0x47) +/* begin formatting a disk */ +#define FDFMTTRK _IOW(2,0x48, struct format_descr) +/* format the specified track */ +#define FDFMTEND _IO(2,0x49) +/* end formatting a disk */ + + +/* + * Error thresholds + */ +struct floppy_max_errors { + unsigned int + abort, /* number of errors to be reached before aborting */ + read_track, /* maximal number of errors permitted to read an + * entire track at once */ + reset, /* maximal number of errors before a reset is tried */ + recal, /* maximal number of errors before a recalibrate is + * tried */ + + /* + * Threshold for reporting FDC errors to the console. + * Setting this to zero may flood your screen when using + * ultra cheap floppies ;-) + */ + reporting; + +}; + +#define FDSETEMSGTRESH _IO(2,0x4a) +/* set fdc error reporting threshold */ + +#define FDFLUSH _IO(2,0x4b) +/* flush buffers for media; either for verifying media, or for + * handling a media change without closing the file descriptor */ + +#define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors) +#define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors) +/* set/get abortion and read_track threshold. See also floppy_drive_params + * structure */ + + +typedef char floppy_drive_name[16]; +#define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name) +/* get drive type: 5 1/4 or 3 1/2 */ + + +/* + * Drive parameters (user modifiable) + */ +struct floppy_drive_params { + signed char cmos; /* CMOS type */ + + /* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms + * etc) and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA). + */ + unsigned long max_dtr; /* Step rate, usec */ + unsigned long hlt; /* Head load/settle time, msec */ + unsigned long hut; /* Head unload time (remnant of + * 8" drives) */ + unsigned long srt; /* Step rate, usec */ + + unsigned long spinup; /* time needed for spinup (expressed + * in jiffies) */ + unsigned long spindown; /* timeout needed for spindown */ + unsigned char spindown_offset; /* decides in which position the disk + * will stop */ + unsigned char select_delay; /* delay to wait after select */ + unsigned char rps; /* rotations per second */ + unsigned char tracks; /* maximum number of tracks */ + unsigned long timeout; /* timeout for interrupt requests */ + + unsigned char interleave_sect; /* if there are more sectors, use + * interleave */ + + struct floppy_max_errors max_errors; + + char flags; /* various flags, including ftd_msg */ +/* + * Announce successful media type detection and media information loss after + * disk changes. + * Also used to enable/disable printing of overrun warnings. + */ + +#define FTD_MSG 0x10 +#define FD_BROKEN_DCL 0x20 +#define FD_DEBUG 0x02 +#define FD_SILENT_DCL_CLEAR 0x4 +#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware + considerations */ + + char read_track; /* use readtrack during probing? */ + +/* + * Auto-detection. Each drive type has eight formats which are + * used in succession to try to read the disk. If the FDC cannot lock onto + * the disk, the next format is tried. This uses the variable 'probing'. + */ + short autodetect[8]; /* autodetected formats */ + + int checkfreq; /* how often should the drive be checked for disk + * changes */ + int native_format; /* native format of this drive */ +}; + +enum { + FD_NEED_TWADDLE_BIT, /* more magic */ + FD_VERIFY_BIT, /* inquire for write protection */ + FD_DISK_NEWCHANGE_BIT, /* change detected, and no action undertaken yet + * to clear media change status */ + FD_UNUSED_BIT, + FD_DISK_CHANGED_BIT, /* disk has been changed since last i/o */ + FD_DISK_WRITABLE_BIT /* disk is writable */ +}; + +#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) +#define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params) +/* set/get drive parameters */ + + +/* + * Current drive state (not directly modifiable by user, readonly) + */ +struct floppy_drive_struct { + unsigned long flags; +/* values for these flags */ +#define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT) +#define FD_VERIFY (1 << FD_VERIFY_BIT) +#define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT) +#define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT) +#define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT) + + unsigned long spinup_date; + unsigned long select_date; + unsigned long first_read_date; + short probed_format; + short track; /* current track */ + short maxblock; /* id of highest block read */ + short maxtrack; /* id of highest half track read */ + int generation; /* how many diskchanges? */ + +/* + * (User-provided) media information is _not_ discarded after a media change + * if the corresponding keep_data flag is non-zero. Positive values are + * decremented after each probe. + */ + int keep_data; + + /* Prevent "aliased" accesses. */ + int fd_ref; + int fd_device; + unsigned long last_checked; /* when was the drive last checked for a disk + * change? */ + + char *dmabuf; + int bufblocks; +}; + +#define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct) +#define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct) +/* get drive state: GET returns the cached state, POLL polls for new state */ + + +/* + * reset FDC + */ +enum reset_mode { + FD_RESET_IF_NEEDED, /* reset only if the reset flags is set */ + FD_RESET_IF_RAWCMD, /* obsolete */ + FD_RESET_ALWAYS /* reset always */ +}; +#define FDRESET _IO(2, 0x54) + + +/* + * FDC state + */ +struct floppy_fdc_state { + int spec1; /* spec1 value last used */ + int spec2; /* spec2 value last used */ + int dtr; + unsigned char version; /* FDC version code */ + unsigned char dor; + unsigned long address; /* io address */ + unsigned int rawcmd:2; + unsigned int reset:1; + unsigned int need_configure:1; + unsigned int perp_mode:2; + unsigned int has_fifo:1; + unsigned int driver_version; /* version code for floppy driver */ +#define FD_DRIVER_VERSION 0x100 +/* user programs using the floppy API should use floppy_fdc_state to + * get the version number of the floppy driver that they are running + * on. If this version number is bigger than the one compiled into the + * user program (the FD_DRIVER_VERSION define), it should be prepared + * to bigger structures + */ + + unsigned char track[4]; + /* Position of the heads of the 4 units attached to this FDC, + * as stored on the FDC. In the future, the position as stored + * on the FDC might not agree with the actual physical + * position of these drive heads. By allowing such + * disagreement, it will be possible to reset the FDC without + * incurring the expensive cost of repositioning all heads. + * Right now, these positions are hard wired to 0. */ + +}; + +#define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state) + + +/* + * Asynchronous Write error tracking + */ +struct floppy_write_errors { + /* Write error logging. + * + * These fields can be cleared with the FDWERRORCLR ioctl. + * Only writes that were attempted but failed due to a physical media + * error are logged. write(2) calls that fail and return an error code + * to the user process are not counted. + */ + + unsigned int write_errors; /* number of physical write errors + * encountered */ + + /* position of first and last write errors */ + unsigned long first_error_sector; + int first_error_generation; + unsigned long last_error_sector; + int last_error_generation; + + unsigned int badness; /* highest retry count for a read or write + * operation */ +}; + +#define FDWERRORCLR _IO(2, 0x56) +/* clear write error and badness information */ +#define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors) +/* get write error and badness information */ + + +/* + * Raw commands + */ +/* new interface flag: now we can do them in batches */ +#define FDHAVEBATCHEDRAWCMD + +struct floppy_raw_cmd { + unsigned int flags; +#define FD_RAW_READ 1 +#define FD_RAW_WRITE 2 +#define FD_RAW_NO_MOTOR 4 +#define FD_RAW_DISK_CHANGE 4 /* out: disk change flag was set */ +#define FD_RAW_INTR 8 /* wait for an interrupt */ +#define FD_RAW_SPIN 0x10 /* spin up the disk for this command */ +#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command + * completion */ +#define FD_RAW_NEED_DISK 0x40 /* this command needs a disk to be present */ +#define FD_RAW_NEED_SEEK 0x80 /* this command uses an implied seek (soft) */ + +/* more "in" flags */ +#define FD_RAW_MORE 0x100 /* more records follow */ +#define FD_RAW_STOP_IF_FAILURE 0x200 /* stop if we encounter a failure */ +#define FD_RAW_STOP_IF_SUCCESS 0x400 /* stop if command successful */ +#define FD_RAW_SOFTFAILURE 0x800 /* consider the return value for failure + * detection too */ + +/* more "out" flags */ +#define FD_RAW_FAILURE 0x10000 /* command sent to fdc, fdc returned error */ +#define FD_RAW_HARDFAILURE 0x20000 /* fdc had to be reset, or timed out */ + + void *data; + char *kernel_data; /* location of data buffer in the kernel */ + struct floppy_raw_cmd *next; /* used for chaining of raw cmd's + * within the kernel */ + long length; /* in: length of dma transfer. out: remaining bytes */ + long phys_length; /* physical length, if different from dma length */ + int buffer_length; /* length of allocated buffer */ + + unsigned char rate; + unsigned char cmd_count; + unsigned char cmd[16]; + unsigned char reply_count; + unsigned char reply[16]; + int track; + int resultcode; + + int reserved1; + int reserved2; +}; + +#define FDRAWCMD _IO(2, 0x58) +/* send a raw command to the fdc. Structure size not included, because of + * batches */ + +#define FDTWADDLE _IO(2, 0x59) +/* flicker motor-on bit before reading a sector. Experimental */ + + +#define FDEJECT _IO(2, 0x5a) +/* eject the disk */ + + + +#endif /* _LINUX_FD_H */ diff --git a/kernel_headers/linux/fdreg.h b/kernel_headers/linux/fdreg.h new file mode 100644 index 0000000..61ce641 --- /dev/null +++ b/kernel_headers/linux/fdreg.h @@ -0,0 +1,137 @@ +#ifndef _LINUX_FDREG_H +#define _LINUX_FDREG_H +/* + * This file contains some defines for the floppy disk controller. + * Various sources. Mostly "IBM Microcomputers: A Programmers + * Handbook", Sanches and Canton. + */ + +#ifdef FDPATCHES +#define FD_IOPORT fdc_state[fdc].address +#else +/* It would be a lot saner just to force fdc_state[fdc].address to always + be set ! FIXME */ +#define FD_IOPORT 0x3f0 +#endif + +/* Fd controller regs. S&C, about page 340 */ +#define FD_STATUS (4 + FD_IOPORT ) +#define FD_DATA (5 + FD_IOPORT ) + +/* Digital Output Register */ +#define FD_DOR (2 + FD_IOPORT ) + +/* Digital Input Register (read) */ +#define FD_DIR (7 + FD_IOPORT ) + +/* Diskette Control Register (write)*/ +#define FD_DCR (7 + FD_IOPORT ) + +/* Bits of main status register */ +#define STATUS_BUSYMASK 0x0F /* drive busy mask */ +#define STATUS_BUSY 0x10 /* FDC busy */ +#define STATUS_DMA 0x20 /* 0- DMA mode */ +#define STATUS_DIR 0x40 /* 0- cpu->fdc */ +#define STATUS_READY 0x80 /* Data reg ready */ + +/* Bits of FD_ST0 */ +#define ST0_DS 0x03 /* drive select mask */ +#define ST0_HA 0x04 /* Head (Address) */ +#define ST0_NR 0x08 /* Not Ready */ +#define ST0_ECE 0x10 /* Equipment check error */ +#define ST0_SE 0x20 /* Seek end */ +#define ST0_INTR 0xC0 /* Interrupt code mask */ + +/* Bits of FD_ST1 */ +#define ST1_MAM 0x01 /* Missing Address Mark */ +#define ST1_WP 0x02 /* Write Protect */ +#define ST1_ND 0x04 /* No Data - unreadable */ +#define ST1_OR 0x10 /* OverRun */ +#define ST1_CRC 0x20 /* CRC error in data or addr */ +#define ST1_EOC 0x80 /* End Of Cylinder */ + +/* Bits of FD_ST2 */ +#define ST2_MAM 0x01 /* Missing Address Mark (again) */ +#define ST2_BC 0x02 /* Bad Cylinder */ +#define ST2_SNS 0x04 /* Scan Not Satisfied */ +#define ST2_SEH 0x08 /* Scan Equal Hit */ +#define ST2_WC 0x10 /* Wrong Cylinder */ +#define ST2_CRC 0x20 /* CRC error in data field */ +#define ST2_CM 0x40 /* Control Mark = deleted */ + +/* Bits of FD_ST3 */ +#define ST3_HA 0x04 /* Head (Address) */ +#define ST3_DS 0x08 /* drive is double-sided */ +#define ST3_TZ 0x10 /* Track Zero signal (1=track 0) */ +#define ST3_RY 0x20 /* drive is ready */ +#define ST3_WP 0x40 /* Write Protect */ +#define ST3_FT 0x80 /* Drive Fault */ + +/* Values for FD_COMMAND */ +#define FD_RECALIBRATE 0x07 /* move to track 0 */ +#define FD_SEEK 0x0F /* seek track */ +#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */ +#define FD_WRITE 0xC5 /* write with MT, MFM */ +#define FD_SENSEI 0x08 /* Sense Interrupt Status */ +#define FD_SPECIFY 0x03 /* specify HUT etc */ +#define FD_FORMAT 0x4D /* format one track */ +#define FD_VERSION 0x10 /* get version code */ +#define FD_CONFIGURE 0x13 /* configure FIFO operation */ +#define FD_PERPENDICULAR 0x12 /* perpendicular r/w mode */ +#define FD_GETSTATUS 0x04 /* read ST3 */ +#define FD_DUMPREGS 0x0E /* dump the contents of the fdc regs */ +#define FD_READID 0xEA /* prints the header of a sector */ +#define FD_UNLOCK 0x14 /* Fifo config unlock */ +#define FD_LOCK 0x94 /* Fifo config lock */ +#define FD_RSEEK_OUT 0x8f /* seek out (i.e. to lower tracks) */ +#define FD_RSEEK_IN 0xcf /* seek in (i.e. to higher tracks) */ + +/* the following commands are new in the 82078. They are not used in the + * floppy driver, except the first three. These commands may be useful for apps + * which use the FDRAWCMD interface. For doc, get the 82078 spec sheets at + * http://www.intel.com/design/archives/periphrl/docs/29046803.htm */ + +#define FD_PARTID 0x18 /* part id ("extended" version cmd) */ +#define FD_SAVE 0x2e /* save fdc regs for later restore */ +#define FD_DRIVESPEC 0x8e /* drive specification: Access to the + * 2 Mbps data transfer rate for tape + * drives */ + +#define FD_RESTORE 0x4e /* later restore */ +#define FD_POWERDOWN 0x27 /* configure FDC's powersave features */ +#define FD_FORMAT_N_WRITE 0xef /* format and write in one go. */ +#define FD_OPTION 0x33 /* ISO format (which is a clean way to + * pack more sectors on a track) */ + +/* DMA commands */ +#define DMA_READ 0x46 +#define DMA_WRITE 0x4A + +/* FDC version return types */ +#define FDC_NONE 0x00 +#define FDC_UNKNOWN 0x10 /* DO NOT USE THIS TYPE EXCEPT IF IDENTIFICATION + FAILS EARLY */ +#define FDC_8272A 0x20 /* Intel 8272a, NEC 765 */ +#define FDC_765ED 0x30 /* Non-Intel 1MB-compatible FDC, can't detect */ +#define FDC_82072 0x40 /* Intel 82072; 8272a + FIFO + DUMPREGS */ +#define FDC_82072A 0x45 /* 82072A (on Sparcs) */ +#define FDC_82077_ORIG 0x51 /* Original version of 82077AA, sans LOCK */ +#define FDC_82077 0x52 /* 82077AA-1 */ +#define FDC_82078_UNKN 0x5f /* Unknown 82078 variant */ +#define FDC_82078 0x60 /* 44pin 82078 or 64pin 82078SL */ +#define FDC_82078_1 0x61 /* 82078-1 (2Mbps fdc) */ +#define FDC_S82078B 0x62 /* S82078B (first seen on Adaptec AVA-2825 VLB + * SCSI/EIDE/Floppy controller) */ +#define FDC_87306 0x63 /* National Semiconductor PC 87306 */ + +/* + * Beware: the fdc type list is roughly sorted by increasing features. + * Presence of features is tested by comparing the FDC version id with the + * "oldest" version that has the needed feature. + * If during FDC detection, an obscure test fails late in the sequence, don't + * assign FDC_UNKNOWN. Else the FDC will be treated as a dumb 8272a, or worse. + * This is especially true if the tests are unneeded. + */ + +#define FD_RESET_DELAY 20 +#endif diff --git a/kernel_headers/linux/fib_rules.h b/kernel_headers/linux/fib_rules.h new file mode 100644 index 0000000..9dcdb62 --- /dev/null +++ b/kernel_headers/linux/fib_rules.h @@ -0,0 +1,74 @@ +#ifndef __LINUX_FIB_RULES_H +#define __LINUX_FIB_RULES_H + +#include +#include + +/* rule is permanent, and cannot be deleted */ +#define FIB_RULE_PERMANENT 0x00000001 +#define FIB_RULE_INVERT 0x00000002 +#define FIB_RULE_UNRESOLVED 0x00000004 +#define FIB_RULE_IIF_DETACHED 0x00000008 +#define FIB_RULE_DEV_DETACHED FIB_RULE_IIF_DETACHED +#define FIB_RULE_OIF_DETACHED 0x00000010 + +/* try to find source address in routing lookups */ +#define FIB_RULE_FIND_SADDR 0x00010000 + +struct fib_rule_hdr { + __u8 family; + __u8 dst_len; + __u8 src_len; + __u8 tos; + + __u8 table; + __u8 res1; /* reserved */ + __u8 res2; /* reserved */ + __u8 action; + + __u32 flags; +}; + +enum { + FRA_UNSPEC, + FRA_DST, /* destination address */ + FRA_SRC, /* source address */ + FRA_IIFNAME, /* interface name */ +#define FRA_IFNAME FRA_IIFNAME + FRA_GOTO, /* target to jump to (FR_ACT_GOTO) */ + FRA_UNUSED2, + FRA_PRIORITY, /* priority/preference */ + FRA_UNUSED3, + FRA_UNUSED4, + FRA_UNUSED5, + FRA_FWMARK, /* mark */ + FRA_FLOW, /* flow/class id */ + FRA_UNUSED6, + FRA_UNUSED7, + FRA_UNUSED8, + FRA_TABLE, /* Extended table id */ + FRA_FWMASK, /* mask for netfilter mark */ + FRA_OIFNAME, + FRA_UID_START, /* UID range */ + FRA_UID_END, + __FRA_MAX +}; + +#define FRA_MAX (__FRA_MAX - 1) + +enum { + FR_ACT_UNSPEC, + FR_ACT_TO_TBL, /* Pass to fixed table */ + FR_ACT_GOTO, /* Jump to another rule */ + FR_ACT_NOP, /* No operation */ + FR_ACT_RES3, + FR_ACT_RES4, + FR_ACT_BLACKHOLE, /* Drop without notification */ + FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */ + FR_ACT_PROHIBIT, /* Drop with EACCES */ + __FR_ACT_MAX, +}; + +#define FR_ACT_MAX (__FR_ACT_MAX - 1) + +#endif diff --git a/kernel_headers/linux/fiemap.h b/kernel_headers/linux/fiemap.h new file mode 100644 index 0000000..d830747 --- /dev/null +++ b/kernel_headers/linux/fiemap.h @@ -0,0 +1,68 @@ +/* + * FS_IOC_FIEMAP ioctl infrastructure. + * + * Some portions copyright (C) 2007 Cluster File Systems, Inc + * + * Authors: Mark Fasheh + * Kalpak Shah + * Andreas Dilger + */ + +#ifndef _LINUX_FIEMAP_H +#define _LINUX_FIEMAP_H + +#include + +struct fiemap_extent { + __u64 fe_logical; /* logical offset in bytes for the start of + * the extent from the beginning of the file */ + __u64 fe_physical; /* physical offset in bytes for the start + * of the extent from the beginning of the disk */ + __u64 fe_length; /* length in bytes for this extent */ + __u64 fe_reserved64[2]; + __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ + __u32 fe_reserved[3]; +}; + +struct fiemap { + __u64 fm_start; /* logical offset (inclusive) at + * which to start mapping (in) */ + __u64 fm_length; /* logical length of mapping which + * userspace wants (in) */ + __u32 fm_flags; /* FIEMAP_FLAG_* flags for request (in/out) */ + __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ + __u32 fm_extent_count; /* size of fm_extents array (in) */ + __u32 fm_reserved; + struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ +}; + +#define FIEMAP_MAX_OFFSET (~0ULL) + +#define FIEMAP_FLAG_SYNC 0x00000001 /* sync file data before map */ +#define FIEMAP_FLAG_XATTR 0x00000002 /* map extended attribute tree */ + +#define FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR) + +#define FIEMAP_EXTENT_LAST 0x00000001 /* Last extent in file. */ +#define FIEMAP_EXTENT_UNKNOWN 0x00000002 /* Data location unknown. */ +#define FIEMAP_EXTENT_DELALLOC 0x00000004 /* Location still pending. + * Sets EXTENT_UNKNOWN. */ +#define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read + * while fs is unmounted */ +#define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs. + * Sets EXTENT_NO_BYPASS. */ +#define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be + * block aligned. */ +#define FIEMAP_EXTENT_DATA_INLINE 0x00000200 /* Data mixed with metadata. + * Sets EXTENT_NOT_ALIGNED.*/ +#define FIEMAP_EXTENT_DATA_TAIL 0x00000400 /* Multiple files in block. + * Sets EXTENT_NOT_ALIGNED.*/ +#define FIEMAP_EXTENT_UNWRITTEN 0x00000800 /* Space allocated, but + * no data (i.e. zero). */ +#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively + * support extents. Result + * merged for efficiency. */ +#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other + * files. */ + +#endif /* _LINUX_FIEMAP_H */ diff --git a/kernel_headers/linux/filter.h b/kernel_headers/linux/filter.h new file mode 100644 index 0000000..9a46cb6 --- /dev/null +++ b/kernel_headers/linux/filter.h @@ -0,0 +1,138 @@ +/* + * Linux Socket Filter Data Structures + */ + +#ifndef __LINUX_FILTER_H__ +#define __LINUX_FILTER_H__ + + +#include + + +/* + * Current version of the filter code architecture. + */ +#define BPF_MAJOR_VERSION 1 +#define BPF_MINOR_VERSION 1 + +/* + * Try and keep these values and structures similar to BSD, especially + * the BPF code definitions which need to match so you can share filters + */ + +struct sock_filter { /* Filter block */ + __u16 code; /* Actual filter code */ + __u8 jt; /* Jump true */ + __u8 jf; /* Jump false */ + __u32 k; /* Generic multiuse field */ +}; + +struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ + unsigned short len; /* Number of filter blocks */ + struct sock_filter *filter; +}; + +/* + * Instruction classes + */ + +#define BPF_CLASS(code) ((code) & 0x07) +#define BPF_LD 0x00 +#define BPF_LDX 0x01 +#define BPF_ST 0x02 +#define BPF_STX 0x03 +#define BPF_ALU 0x04 +#define BPF_JMP 0x05 +#define BPF_RET 0x06 +#define BPF_MISC 0x07 + +/* ld/ldx fields */ +#define BPF_SIZE(code) ((code) & 0x18) +#define BPF_W 0x00 +#define BPF_H 0x08 +#define BPF_B 0x10 +#define BPF_MODE(code) ((code) & 0xe0) +#define BPF_IMM 0x00 +#define BPF_ABS 0x20 +#define BPF_IND 0x40 +#define BPF_MEM 0x60 +#define BPF_LEN 0x80 +#define BPF_MSH 0xa0 + +/* alu/jmp fields */ +#define BPF_OP(code) ((code) & 0xf0) +#define BPF_ADD 0x00 +#define BPF_SUB 0x10 +#define BPF_MUL 0x20 +#define BPF_DIV 0x30 +#define BPF_OR 0x40 +#define BPF_AND 0x50 +#define BPF_LSH 0x60 +#define BPF_RSH 0x70 +#define BPF_NEG 0x80 +#define BPF_MOD 0x90 +#define BPF_XOR 0xa0 + +#define BPF_JA 0x00 +#define BPF_JEQ 0x10 +#define BPF_JGT 0x20 +#define BPF_JGE 0x30 +#define BPF_JSET 0x40 +#define BPF_SRC(code) ((code) & 0x08) +#define BPF_K 0x00 +#define BPF_X 0x08 + +/* ret - BPF_K and BPF_X also apply */ +#define BPF_RVAL(code) ((code) & 0x18) +#define BPF_A 0x10 + +/* misc */ +#define BPF_MISCOP(code) ((code) & 0xf8) +#define BPF_TAX 0x00 +#define BPF_TXA 0x80 + +#ifndef BPF_MAXINSNS +#define BPF_MAXINSNS 4096 +#endif + +/* + * Macros for filter block array initializers. + */ +#ifndef BPF_STMT +#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k } +#endif +#ifndef BPF_JUMP +#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k } +#endif + +/* + * Number of scratch memory words for: BPF_ST and BPF_STX + */ +#define BPF_MEMWORDS 16 + +/* RATIONALE. Negative offsets are invalid in BPF. + We use them to reference ancillary data. + Unlike introduction new instructions, it does not break + existing compilers/optimizers. + */ +#define SKF_AD_OFF (-0x1000) +#define SKF_AD_PROTOCOL 0 +#define SKF_AD_PKTTYPE 4 +#define SKF_AD_IFINDEX 8 +#define SKF_AD_NLATTR 12 +#define SKF_AD_NLATTR_NEST 16 +#define SKF_AD_MARK 20 +#define SKF_AD_QUEUE 24 +#define SKF_AD_HATYPE 28 +#define SKF_AD_RXHASH 32 +#define SKF_AD_CPU 36 +#define SKF_AD_ALU_XOR_X 40 +#define SKF_AD_VLAN_TAG 44 +#define SKF_AD_VLAN_TAG_PRESENT 48 +#define SKF_AD_PAY_OFFSET 52 +#define SKF_AD_MAX 56 +#define SKF_NET_OFF (-0x100000) +#define SKF_LL_OFF (-0x200000) + + +#endif /* __LINUX_FILTER_H__ */ diff --git a/kernel_headers/linux/fips_status.h b/kernel_headers/linux/fips_status.h new file mode 100644 index 0000000..70d04b7 --- /dev/null +++ b/kernel_headers/linux/fips_status.h @@ -0,0 +1,33 @@ +#ifndef _FIPS_STATUS__H +#define _FIPS_STATUS__H + +#include +#include + +/** +* fips_status: global FIPS140-2 status +* @FIPS140_STATUS_NA: +* Not a FIPS140-2 compliant Build. +* The flag status won't +* change throughout +* the lifetime +* @FIPS140_STATUS_PASS_CRYPTO: +* KAT self tests are passed. +* @FIPS140_STATUS_QCRYPTO_ALLOWED: +* Integrity test is passed. +* @FIPS140_STATUS_PASS: +* All tests are passed and build +* is in FIPS140-2 mode +* @FIPS140_STATUS_FAIL: +* One of the test is failed. +* This will block all requests +* to crypto modules +*/ +enum fips_status { + FIPS140_STATUS_NA = 0, + FIPS140_STATUS_PASS_CRYPTO = 1, + FIPS140_STATUS_QCRYPTO_ALLOWED = 2, + FIPS140_STATUS_PASS = 3, + FIPS140_STATUS_FAIL = 0xFF +}; +#endif /* _FIPS_STATUS__H */ diff --git a/kernel_headers/linux/firewire-cdev.h b/kernel_headers/linux/firewire-cdev.h new file mode 100644 index 0000000..1db453e --- /dev/null +++ b/kernel_headers/linux/firewire-cdev.h @@ -0,0 +1,1039 @@ +/* + * Char device interface. + * + * Copyright (C) 2005-2007 Kristian Hoegsberg + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _LINUX_FIREWIRE_CDEV_H +#define _LINUX_FIREWIRE_CDEV_H + +#include +#include +#include + +/* available since kernel version 2.6.22 */ +#define FW_CDEV_EVENT_BUS_RESET 0x00 +#define FW_CDEV_EVENT_RESPONSE 0x01 +#define FW_CDEV_EVENT_REQUEST 0x02 +#define FW_CDEV_EVENT_ISO_INTERRUPT 0x03 + +/* available since kernel version 2.6.30 */ +#define FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED 0x04 +#define FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED 0x05 + +/* available since kernel version 2.6.36 */ +#define FW_CDEV_EVENT_REQUEST2 0x06 +#define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07 +#define FW_CDEV_EVENT_PHY_PACKET_RECEIVED 0x08 +#define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL 0x09 + +/** + * struct fw_cdev_event_common - Common part of all fw_cdev_event_ types + * @closure: For arbitrary use by userspace + * @type: Discriminates the fw_cdev_event_ types + * + * This struct may be used to access generic members of all fw_cdev_event_ + * types regardless of the specific type. + * + * Data passed in the @closure field for a request will be returned in the + * corresponding event. It is big enough to hold a pointer on all platforms. + * The ioctl used to set @closure depends on the @type of event. + */ +struct fw_cdev_event_common { + __u64 closure; + __u32 type; +}; + +/** + * struct fw_cdev_event_bus_reset - Sent when a bus reset occurred + * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_GET_INFO ioctl + * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_BUS_RESET + * @node_id: New node ID of this node + * @local_node_id: Node ID of the local node, i.e. of the controller + * @bm_node_id: Node ID of the bus manager + * @irm_node_id: Node ID of the iso resource manager + * @root_node_id: Node ID of the root node + * @generation: New bus generation + * + * This event is sent when the bus the device belongs to goes through a bus + * reset. It provides information about the new bus configuration, such as + * new node ID for this device, new root ID, and others. + * + * If @bm_node_id is 0xffff right after bus reset it can be reread by an + * %FW_CDEV_IOC_GET_INFO ioctl after bus manager selection was finished. + * Kernels with ABI version < 4 do not set @bm_node_id. + */ +struct fw_cdev_event_bus_reset { + __u64 closure; + __u32 type; + __u32 node_id; + __u32 local_node_id; + __u32 bm_node_id; + __u32 irm_node_id; + __u32 root_node_id; + __u32 generation; +}; + +/** + * struct fw_cdev_event_response - Sent when a response packet was received + * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_REQUEST + * or %FW_CDEV_IOC_SEND_BROADCAST_REQUEST + * or %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl + * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_RESPONSE + * @rcode: Response code returned by the remote node + * @length: Data length, i.e. the response's payload size in bytes + * @data: Payload data, if any + * + * This event is sent when the stack receives a response to an outgoing request + * sent by %FW_CDEV_IOC_SEND_REQUEST ioctl. The payload data for responses + * carrying data (read and lock responses) follows immediately and can be + * accessed through the @data field. + * + * The event is also generated after conclusions of transactions that do not + * involve response packets. This includes unified write transactions, + * broadcast write transactions, and transmission of asynchronous stream + * packets. @rcode indicates success or failure of such transmissions. + */ +struct fw_cdev_event_response { + __u64 closure; + __u32 type; + __u32 rcode; + __u32 length; + __u32 data[0]; +}; + +/** + * struct fw_cdev_event_request - Old version of &fw_cdev_event_request2 + * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST + * + * This event is sent instead of &fw_cdev_event_request2 if the kernel or + * the client implements ABI version <= 3. &fw_cdev_event_request lacks + * essential information; use &fw_cdev_event_request2 instead. + */ +struct fw_cdev_event_request { + __u64 closure; + __u32 type; + __u32 tcode; + __u64 offset; + __u32 handle; + __u32 length; + __u32 data[0]; +}; + +/** + * struct fw_cdev_event_request2 - Sent on incoming request to an address region + * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_ALLOCATE ioctl + * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST2 + * @tcode: Transaction code of the incoming request + * @offset: The offset into the 48-bit per-node address space + * @source_node_id: Sender node ID + * @destination_node_id: Destination node ID + * @card: The index of the card from which the request came + * @generation: Bus generation in which the request is valid + * @handle: Reference to the kernel-side pending request + * @length: Data length, i.e. the request's payload size in bytes + * @data: Incoming data, if any + * + * This event is sent when the stack receives an incoming request to an address + * region registered using the %FW_CDEV_IOC_ALLOCATE ioctl. The request is + * guaranteed to be completely contained in the specified region. Userspace is + * responsible for sending the response by %FW_CDEV_IOC_SEND_RESPONSE ioctl, + * using the same @handle. + * + * The payload data for requests carrying data (write and lock requests) + * follows immediately and can be accessed through the @data field. + * + * Unlike &fw_cdev_event_request, @tcode of lock requests is one of the + * firewire-core specific %TCODE_LOCK_MASK_SWAP...%TCODE_LOCK_VENDOR_DEPENDENT, + * i.e. encodes the extended transaction code. + * + * @card may differ from &fw_cdev_get_info.card because requests are received + * from all cards of the Linux host. @source_node_id, @destination_node_id, and + * @generation pertain to that card. Destination node ID and bus generation may + * therefore differ from the corresponding fields of the last + * &fw_cdev_event_bus_reset. + * + * @destination_node_id may also differ from the current node ID because of a + * non-local bus ID part or in case of a broadcast write request. Note, a + * client must call an %FW_CDEV_IOC_SEND_RESPONSE ioctl even in case of a + * broadcast write request; the kernel will then release the kernel-side pending + * request but will not actually send a response packet. + * + * In case of a write request to FCP_REQUEST or FCP_RESPONSE, the kernel already + * sent a write response immediately after the request was received; in this + * case the client must still call an %FW_CDEV_IOC_SEND_RESPONSE ioctl to + * release the kernel-side pending request, though another response won't be + * sent. + * + * If the client subsequently needs to initiate requests to the sender node of + * an &fw_cdev_event_request2, it needs to use a device file with matching + * card index, node ID, and generation for outbound requests. + */ +struct fw_cdev_event_request2 { + __u64 closure; + __u32 type; + __u32 tcode; + __u64 offset; + __u32 source_node_id; + __u32 destination_node_id; + __u32 card; + __u32 generation; + __u32 handle; + __u32 length; + __u32 data[0]; +}; + +/** + * struct fw_cdev_event_iso_interrupt - Sent when an iso packet was completed + * @closure: See &fw_cdev_event_common; + * set by %FW_CDEV_CREATE_ISO_CONTEXT ioctl + * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_ISO_INTERRUPT + * @cycle: Cycle counter of the last completed packet + * @header_length: Total length of following headers, in bytes + * @header: Stripped headers, if any + * + * This event is sent when the controller has completed an &fw_cdev_iso_packet + * with the %FW_CDEV_ISO_INTERRUPT bit set, when explicitly requested with + * %FW_CDEV_IOC_FLUSH_ISO, or when there have been so many completed packets + * without the interrupt bit set that the kernel's internal buffer for @header + * is about to overflow. (In the last case, ABI versions < 5 drop header data + * up to the next interrupt packet.) + * + * Isochronous transmit events (context type %FW_CDEV_ISO_CONTEXT_TRANSMIT): + * + * In version 3 and some implementations of version 2 of the ABI, &header_length + * is a multiple of 4 and &header contains timestamps of all packets up until + * the interrupt packet. The format of the timestamps is as described below for + * isochronous reception. In version 1 of the ABI, &header_length was 0. + * + * Isochronous receive events (context type %FW_CDEV_ISO_CONTEXT_RECEIVE): + * + * The headers stripped of all packets up until and including the interrupt + * packet are returned in the @header field. The amount of header data per + * packet is as specified at iso context creation by + * &fw_cdev_create_iso_context.header_size. + * + * Hence, _interrupt.header_length / _context.header_size is the number of + * packets received in this interrupt event. The client can now iterate + * through the mmap()'ed DMA buffer according to this number of packets and + * to the buffer sizes as the client specified in &fw_cdev_queue_iso. + * + * Since version 2 of this ABI, the portion for each packet in _interrupt.header + * consists of the 1394 isochronous packet header, followed by a timestamp + * quadlet if &fw_cdev_create_iso_context.header_size > 4, followed by quadlets + * from the packet payload if &fw_cdev_create_iso_context.header_size > 8. + * + * Format of 1394 iso packet header: 16 bits data_length, 2 bits tag, 6 bits + * channel, 4 bits tcode, 4 bits sy, in big endian byte order. + * data_length is the actual received size of the packet without the four + * 1394 iso packet header bytes. + * + * Format of timestamp: 16 bits invalid, 3 bits cycleSeconds, 13 bits + * cycleCount, in big endian byte order. + * + * In version 1 of the ABI, no timestamp quadlet was inserted; instead, payload + * data followed directly after the 1394 is header if header_size > 4. + * Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2. + */ +struct fw_cdev_event_iso_interrupt { + __u64 closure; + __u32 type; + __u32 cycle; + __u32 header_length; + __u32 header[0]; +}; + +/** + * struct fw_cdev_event_iso_interrupt_mc - An iso buffer chunk was completed + * @closure: See &fw_cdev_event_common; + * set by %FW_CDEV_CREATE_ISO_CONTEXT ioctl + * @type: %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL + * @completed: Offset into the receive buffer; data before this offset is valid + * + * This event is sent in multichannel contexts (context type + * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL) for &fw_cdev_iso_packet buffer + * chunks that have been completely filled and that have the + * %FW_CDEV_ISO_INTERRUPT bit set, or when explicitly requested with + * %FW_CDEV_IOC_FLUSH_ISO. + * + * The buffer is continuously filled with the following data, per packet: + * - the 1394 iso packet header as described at &fw_cdev_event_iso_interrupt, + * but in little endian byte order, + * - packet payload (as many bytes as specified in the data_length field of + * the 1394 iso packet header) in big endian byte order, + * - 0...3 padding bytes as needed to align the following trailer quadlet, + * - trailer quadlet, containing the reception timestamp as described at + * &fw_cdev_event_iso_interrupt, but in little endian byte order. + * + * Hence the per-packet size is data_length (rounded up to a multiple of 4) + 8. + * When processing the data, stop before a packet that would cross the + * @completed offset. + * + * A packet near the end of a buffer chunk will typically spill over into the + * next queued buffer chunk. It is the responsibility of the client to check + * for this condition, assemble a broken-up packet from its parts, and not to + * re-queue any buffer chunks in which as yet unread packet parts reside. + */ +struct fw_cdev_event_iso_interrupt_mc { + __u64 closure; + __u32 type; + __u32 completed; +}; + +/** + * struct fw_cdev_event_iso_resource - Iso resources were allocated or freed + * @closure: See &fw_cdev_event_common; + * set by %FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE) ioctl + * @type: %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or + * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED + * @handle: Reference by which an allocated resource can be deallocated + * @channel: Isochronous channel which was (de)allocated, if any + * @bandwidth: Bandwidth allocation units which were (de)allocated, if any + * + * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous + * resource was allocated at the IRM. The client has to check @channel and + * @bandwidth for whether the allocation actually succeeded. + * + * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event is sent after an isochronous + * resource was deallocated at the IRM. It is also sent when automatic + * reallocation after a bus reset failed. + * + * @channel is <0 if no channel was (de)allocated or if reallocation failed. + * @bandwidth is 0 if no bandwidth was (de)allocated or if reallocation failed. + */ +struct fw_cdev_event_iso_resource { + __u64 closure; + __u32 type; + __u32 handle; + __s32 channel; + __s32 bandwidth; +}; + +/** + * struct fw_cdev_event_phy_packet - A PHY packet was transmitted or received + * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_PHY_PACKET + * or %FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl + * @type: %FW_CDEV_EVENT_PHY_PACKET_SENT or %..._RECEIVED + * @rcode: %RCODE_..., indicates success or failure of transmission + * @length: Data length in bytes + * @data: Incoming data + * + * If @type is %FW_CDEV_EVENT_PHY_PACKET_SENT, @length is 0 and @data empty, + * except in case of a ping packet: Then, @length is 4, and @data[0] is the + * ping time in 49.152MHz clocks if @rcode is %RCODE_COMPLETE. + * + * If @type is %FW_CDEV_EVENT_PHY_PACKET_RECEIVED, @length is 8 and @data + * consists of the two PHY packet quadlets, in host byte order. + */ +struct fw_cdev_event_phy_packet { + __u64 closure; + __u32 type; + __u32 rcode; + __u32 length; + __u32 data[0]; +}; + +/** + * union fw_cdev_event - Convenience union of fw_cdev_event_ types + * @common: Valid for all types + * @bus_reset: Valid if @common.type == %FW_CDEV_EVENT_BUS_RESET + * @response: Valid if @common.type == %FW_CDEV_EVENT_RESPONSE + * @request: Valid if @common.type == %FW_CDEV_EVENT_REQUEST + * @request2: Valid if @common.type == %FW_CDEV_EVENT_REQUEST2 + * @iso_interrupt: Valid if @common.type == %FW_CDEV_EVENT_ISO_INTERRUPT + * @iso_interrupt_mc: Valid if @common.type == + * %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL + * @iso_resource: Valid if @common.type == + * %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or + * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED + * @phy_packet: Valid if @common.type == + * %FW_CDEV_EVENT_PHY_PACKET_SENT or + * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED + * + * Convenience union for userspace use. Events could be read(2) into an + * appropriately aligned char buffer and then cast to this union for further + * processing. Note that for a request, response or iso_interrupt event, + * the data[] or header[] may make the size of the full event larger than + * sizeof(union fw_cdev_event). Also note that if you attempt to read(2) + * an event into a buffer that is not large enough for it, the data that does + * not fit will be discarded so that the next read(2) will return a new event. + */ +union fw_cdev_event { + struct fw_cdev_event_common common; + struct fw_cdev_event_bus_reset bus_reset; + struct fw_cdev_event_response response; + struct fw_cdev_event_request request; + struct fw_cdev_event_request2 request2; /* added in 2.6.36 */ + struct fw_cdev_event_iso_interrupt iso_interrupt; + struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; /* added in 2.6.36 */ + struct fw_cdev_event_iso_resource iso_resource; /* added in 2.6.30 */ + struct fw_cdev_event_phy_packet phy_packet; /* added in 2.6.36 */ +}; + +/* available since kernel version 2.6.22 */ +#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info) +#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request) +#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate) +#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate) +#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response) +#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset) +#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor) +#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor) +#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context) +#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso) +#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso) +#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso) + +/* available since kernel version 2.6.24 */ +#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer) + +/* available since kernel version 2.6.30 */ +#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource) +#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE _IOW('#', 0x0e, struct fw_cdev_deallocate) +#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource) +#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) +#define FW_CDEV_IOC_GET_SPEED _IO('#', 0x11) /* returns speed code */ +#define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) +#define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) + +/* available since kernel version 2.6.34 */ +#define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2) + +/* available since kernel version 2.6.36 */ +#define FW_CDEV_IOC_SEND_PHY_PACKET _IOWR('#', 0x15, struct fw_cdev_send_phy_packet) +#define FW_CDEV_IOC_RECEIVE_PHY_PACKETS _IOW('#', 0x16, struct fw_cdev_receive_phy_packets) +#define FW_CDEV_IOC_SET_ISO_CHANNELS _IOW('#', 0x17, struct fw_cdev_set_iso_channels) + +/* available since kernel version 3.4 */ +#define FW_CDEV_IOC_FLUSH_ISO _IOW('#', 0x18, struct fw_cdev_flush_iso) + +/* + * ABI version history + * 1 (2.6.22) - initial version + * (2.6.24) - added %FW_CDEV_IOC_GET_CYCLE_TIMER + * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if + * &fw_cdev_create_iso_context.header_size is 8 or more + * - added %FW_CDEV_IOC_*_ISO_RESOURCE*, + * %FW_CDEV_IOC_GET_SPEED, %FW_CDEV_IOC_SEND_BROADCAST_REQUEST, + * %FW_CDEV_IOC_SEND_STREAM_PACKET + * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt + * (2.6.33) - IR has always packet-per-buffer semantics now, not one of + * dual-buffer or packet-per-buffer depending on hardware + * - shared use and auto-response for FCP registers + * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable + * - added %FW_CDEV_IOC_GET_CYCLE_TIMER2 + * 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_*, + * and &fw_cdev_allocate.region_end + * - implemented &fw_cdev_event_bus_reset.bm_node_id + * - added %FW_CDEV_IOC_SEND_PHY_PACKET, _RECEIVE_PHY_PACKETS + * - added %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL, + * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL, and + * %FW_CDEV_IOC_SET_ISO_CHANNELS + * 5 (3.4) - send %FW_CDEV_EVENT_ISO_INTERRUPT events when needed to + * avoid dropping data + * - added %FW_CDEV_IOC_FLUSH_ISO + */ + +/** + * struct fw_cdev_get_info - General purpose information ioctl + * @version: The version field is just a running serial number. Both an + * input parameter (ABI version implemented by the client) and + * output parameter (ABI version implemented by the kernel). + * A client shall fill in the ABI @version for which the client + * was implemented. This is necessary for forward compatibility. + * @rom_length: If @rom is non-zero, up to @rom_length bytes of Configuration + * ROM will be copied into that user space address. In either + * case, @rom_length is updated with the actual length of the + * Configuration ROM. + * @rom: If non-zero, address of a buffer to be filled by a copy of the + * device's Configuration ROM + * @bus_reset: If non-zero, address of a buffer to be filled by a + * &struct fw_cdev_event_bus_reset with the current state + * of the bus. This does not cause a bus reset to happen. + * @bus_reset_closure: Value of &closure in this and subsequent bus reset events + * @card: The index of the card this device belongs to + * + * The %FW_CDEV_IOC_GET_INFO ioctl is usually the very first one which a client + * performs right after it opened a /dev/fw* file. + * + * As a side effect, reception of %FW_CDEV_EVENT_BUS_RESET events to be read(2) + * is started by this ioctl. + */ +struct fw_cdev_get_info { + __u32 version; + __u32 rom_length; + __u64 rom; + __u64 bus_reset; + __u64 bus_reset_closure; + __u32 card; +}; + +/** + * struct fw_cdev_send_request - Send an asynchronous request packet + * @tcode: Transaction code of the request + * @length: Length of outgoing payload, in bytes + * @offset: 48-bit offset at destination node + * @closure: Passed back to userspace in the response event + * @data: Userspace pointer to payload + * @generation: The bus generation where packet is valid + * + * Send a request to the device. This ioctl implements all outgoing requests. + * Both quadlet and block request specify the payload as a pointer to the data + * in the @data field. Once the transaction completes, the kernel writes an + * &fw_cdev_event_response event back. The @closure field is passed back to + * user space in the response event. + */ +struct fw_cdev_send_request { + __u32 tcode; + __u32 length; + __u64 offset; + __u64 closure; + __u64 data; + __u32 generation; +}; + +/** + * struct fw_cdev_send_response - Send an asynchronous response packet + * @rcode: Response code as determined by the userspace handler + * @length: Length of outgoing payload, in bytes + * @data: Userspace pointer to payload + * @handle: The handle from the &fw_cdev_event_request + * + * Send a response to an incoming request. By setting up an address range using + * the %FW_CDEV_IOC_ALLOCATE ioctl, userspace can listen for incoming requests. An + * incoming request will generate an %FW_CDEV_EVENT_REQUEST, and userspace must + * send a reply using this ioctl. The event has a handle to the kernel-side + * pending transaction, which should be used with this ioctl. + */ +struct fw_cdev_send_response { + __u32 rcode; + __u32 length; + __u64 data; + __u32 handle; +}; + +/** + * struct fw_cdev_allocate - Allocate a CSR in an address range + * @offset: Start offset of the address range + * @closure: To be passed back to userspace in request events + * @length: Length of the CSR, in bytes + * @handle: Handle to the allocation, written by the kernel + * @region_end: First address above the address range (added in ABI v4, 2.6.36) + * + * Allocate an address range in the 48-bit address space on the local node + * (the controller). This allows userspace to listen for requests with an + * offset within that address range. Every time when the kernel receives a + * request within the range, an &fw_cdev_event_request2 event will be emitted. + * (If the kernel or the client implements ABI version <= 3, an + * &fw_cdev_event_request will be generated instead.) + * + * The @closure field is passed back to userspace in these request events. + * The @handle field is an out parameter, returning a handle to the allocated + * range to be used for later deallocation of the range. + * + * The address range is allocated on all local nodes. The address allocation + * is exclusive except for the FCP command and response registers. If an + * exclusive address region is already in use, the ioctl fails with errno set + * to %EBUSY. + * + * If kernel and client implement ABI version >= 4, the kernel looks up a free + * spot of size @length inside [@offset..@region_end) and, if found, writes + * the start address of the new CSR back in @offset. I.e. @offset is an + * in and out parameter. If this automatic placement of a CSR in a bigger + * address range is not desired, the client simply needs to set @region_end + * = @offset + @length. + * + * If the kernel or the client implements ABI version <= 3, @region_end is + * ignored and effectively assumed to be @offset + @length. + * + * @region_end is only present in a kernel header >= 2.6.36. If necessary, + * this can for example be tested by #ifdef FW_CDEV_EVENT_REQUEST2. + */ +struct fw_cdev_allocate { + __u64 offset; + __u64 closure; + __u32 length; + __u32 handle; + __u64 region_end; /* available since kernel version 2.6.36 */ +}; + +/** + * struct fw_cdev_deallocate - Free a CSR address range or isochronous resource + * @handle: Handle to the address range or iso resource, as returned by the + * kernel when the range or resource was allocated + */ +struct fw_cdev_deallocate { + __u32 handle; +}; + +#define FW_CDEV_LONG_RESET 0 +#define FW_CDEV_SHORT_RESET 1 + +/** + * struct fw_cdev_initiate_bus_reset - Initiate a bus reset + * @type: %FW_CDEV_SHORT_RESET or %FW_CDEV_LONG_RESET + * + * Initiate a bus reset for the bus this device is on. The bus reset can be + * either the original (long) bus reset or the arbitrated (short) bus reset + * introduced in 1394a-2000. + * + * The ioctl returns immediately. A subsequent &fw_cdev_event_bus_reset + * indicates when the reset actually happened. Since ABI v4, this may be + * considerably later than the ioctl because the kernel ensures a grace period + * between subsequent bus resets as per IEEE 1394 bus management specification. + */ +struct fw_cdev_initiate_bus_reset { + __u32 type; +}; + +/** + * struct fw_cdev_add_descriptor - Add contents to the local node's config ROM + * @immediate: If non-zero, immediate key to insert before pointer + * @key: Upper 8 bits of root directory pointer + * @data: Userspace pointer to contents of descriptor block + * @length: Length of descriptor block data, in quadlets + * @handle: Handle to the descriptor, written by the kernel + * + * Add a descriptor block and optionally a preceding immediate key to the local + * node's Configuration ROM. + * + * The @key field specifies the upper 8 bits of the descriptor root directory + * pointer and the @data and @length fields specify the contents. The @key + * should be of the form 0xXX000000. The offset part of the root directory entry + * will be filled in by the kernel. + * + * If not 0, the @immediate field specifies an immediate key which will be + * inserted before the root directory pointer. + * + * @immediate, @key, and @data array elements are CPU-endian quadlets. + * + * If successful, the kernel adds the descriptor and writes back a @handle to + * the kernel-side object to be used for later removal of the descriptor block + * and immediate key. The kernel will also generate a bus reset to signal the + * change of the Configuration ROM to other nodes. + * + * This ioctl affects the Configuration ROMs of all local nodes. + * The ioctl only succeeds on device files which represent a local node. + */ +struct fw_cdev_add_descriptor { + __u32 immediate; + __u32 key; + __u64 data; + __u32 length; + __u32 handle; +}; + +/** + * struct fw_cdev_remove_descriptor - Remove contents from the Configuration ROM + * @handle: Handle to the descriptor, as returned by the kernel when the + * descriptor was added + * + * Remove a descriptor block and accompanying immediate key from the local + * nodes' Configuration ROMs. The kernel will also generate a bus reset to + * signal the change of the Configuration ROM to other nodes. + */ +struct fw_cdev_remove_descriptor { + __u32 handle; +}; + +#define FW_CDEV_ISO_CONTEXT_TRANSMIT 0 +#define FW_CDEV_ISO_CONTEXT_RECEIVE 1 +#define FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL 2 /* added in 2.6.36 */ + +/** + * struct fw_cdev_create_iso_context - Create a context for isochronous I/O + * @type: %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE or + * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL + * @header_size: Header size to strip in single-channel reception + * @channel: Channel to bind to in single-channel reception or transmission + * @speed: Transmission speed + * @closure: To be returned in &fw_cdev_event_iso_interrupt or + * &fw_cdev_event_iso_interrupt_multichannel + * @handle: Handle to context, written back by kernel + * + * Prior to sending or receiving isochronous I/O, a context must be created. + * The context records information about the transmit or receive configuration + * and typically maps to an underlying hardware resource. A context is set up + * for either sending or receiving. It is bound to a specific isochronous + * @channel. + * + * In case of multichannel reception, @header_size and @channel are ignored + * and the channels are selected by %FW_CDEV_IOC_SET_ISO_CHANNELS. + * + * For %FW_CDEV_ISO_CONTEXT_RECEIVE contexts, @header_size must be at least 4 + * and must be a multiple of 4. It is ignored in other context types. + * + * @speed is ignored in receive context types. + * + * If a context was successfully created, the kernel writes back a handle to the + * context, which must be passed in for subsequent operations on that context. + * + * Limitations: + * No more than one iso context can be created per fd. + * The total number of contexts that all userspace and kernelspace drivers can + * create on a card at a time is a hardware limit, typically 4 or 8 contexts per + * direction, and of them at most one multichannel receive context. + */ +struct fw_cdev_create_iso_context { + __u32 type; + __u32 header_size; + __u32 channel; + __u32 speed; + __u64 closure; + __u32 handle; +}; + +/** + * struct fw_cdev_set_iso_channels - Select channels in multichannel reception + * @channels: Bitmask of channels to listen to + * @handle: Handle of the mutichannel receive context + * + * @channels is the bitwise or of 1ULL << n for each channel n to listen to. + * + * The ioctl fails with errno %EBUSY if there is already another receive context + * on a channel in @channels. In that case, the bitmask of all unoccupied + * channels is returned in @channels. + */ +struct fw_cdev_set_iso_channels { + __u64 channels; + __u32 handle; +}; + +#define FW_CDEV_ISO_PAYLOAD_LENGTH(v) (v) +#define FW_CDEV_ISO_INTERRUPT (1 << 16) +#define FW_CDEV_ISO_SKIP (1 << 17) +#define FW_CDEV_ISO_SYNC (1 << 17) +#define FW_CDEV_ISO_TAG(v) ((v) << 18) +#define FW_CDEV_ISO_SY(v) ((v) << 20) +#define FW_CDEV_ISO_HEADER_LENGTH(v) ((v) << 24) + +/** + * struct fw_cdev_iso_packet - Isochronous packet + * @control: Contains the header length (8 uppermost bits), + * the sy field (4 bits), the tag field (2 bits), a sync flag + * or a skip flag (1 bit), an interrupt flag (1 bit), and the + * payload length (16 lowermost bits) + * @header: Header and payload in case of a transmit context. + * + * &struct fw_cdev_iso_packet is used to describe isochronous packet queues. + * Use the FW_CDEV_ISO_ macros to fill in @control. + * The @header array is empty in case of receive contexts. + * + * Context type %FW_CDEV_ISO_CONTEXT_TRANSMIT: + * + * @control.HEADER_LENGTH must be a multiple of 4. It specifies the numbers of + * bytes in @header that will be prepended to the packet's payload. These bytes + * are copied into the kernel and will not be accessed after the ioctl has + * returned. + * + * The @control.SY and TAG fields are copied to the iso packet header. These + * fields are specified by IEEE 1394a and IEC 61883-1. + * + * The @control.SKIP flag specifies that no packet is to be sent in a frame. + * When using this, all other fields except @control.INTERRUPT must be zero. + * + * When a packet with the @control.INTERRUPT flag set has been completed, an + * &fw_cdev_event_iso_interrupt event will be sent. + * + * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE: + * + * @control.HEADER_LENGTH must be a multiple of the context's header_size. + * If the HEADER_LENGTH is larger than the context's header_size, multiple + * packets are queued for this entry. + * + * The @control.SY and TAG fields are ignored. + * + * If the @control.SYNC flag is set, the context drops all packets until a + * packet with a sy field is received which matches &fw_cdev_start_iso.sync. + * + * @control.PAYLOAD_LENGTH defines how many payload bytes can be received for + * one packet (in addition to payload quadlets that have been defined as headers + * and are stripped and returned in the &fw_cdev_event_iso_interrupt structure). + * If more bytes are received, the additional bytes are dropped. If less bytes + * are received, the remaining bytes in this part of the payload buffer will not + * be written to, not even by the next packet. I.e., packets received in + * consecutive frames will not necessarily be consecutive in memory. If an + * entry has queued multiple packets, the PAYLOAD_LENGTH is divided equally + * among them. + * + * When a packet with the @control.INTERRUPT flag set has been completed, an + * &fw_cdev_event_iso_interrupt event will be sent. An entry that has queued + * multiple receive packets is completed when its last packet is completed. + * + * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL: + * + * Here, &fw_cdev_iso_packet would be more aptly named _iso_buffer_chunk since + * it specifies a chunk of the mmap()'ed buffer, while the number and alignment + * of packets to be placed into the buffer chunk is not known beforehand. + * + * @control.PAYLOAD_LENGTH is the size of the buffer chunk and specifies room + * for header, payload, padding, and trailer bytes of one or more packets. + * It must be a multiple of 4. + * + * @control.HEADER_LENGTH, TAG and SY are ignored. SYNC is treated as described + * for single-channel reception. + * + * When a buffer chunk with the @control.INTERRUPT flag set has been filled + * entirely, an &fw_cdev_event_iso_interrupt_mc event will be sent. + */ +struct fw_cdev_iso_packet { + __u32 control; + __u32 header[0]; +}; + +/** + * struct fw_cdev_queue_iso - Queue isochronous packets for I/O + * @packets: Userspace pointer to an array of &fw_cdev_iso_packet + * @data: Pointer into mmap()'ed payload buffer + * @size: Size of the @packets array, in bytes + * @handle: Isochronous context handle + * + * Queue a number of isochronous packets for reception or transmission. + * This ioctl takes a pointer to an array of &fw_cdev_iso_packet structs, + * which describe how to transmit from or receive into a contiguous region + * of a mmap()'ed payload buffer. As part of transmit packet descriptors, + * a series of headers can be supplied, which will be prepended to the + * payload during DMA. + * + * The kernel may or may not queue all packets, but will write back updated + * values of the @packets, @data and @size fields, so the ioctl can be + * resubmitted easily. + * + * In case of a multichannel receive context, @data must be quadlet-aligned + * relative to the buffer start. + */ +struct fw_cdev_queue_iso { + __u64 packets; + __u64 data; + __u32 size; + __u32 handle; +}; + +#define FW_CDEV_ISO_CONTEXT_MATCH_TAG0 1 +#define FW_CDEV_ISO_CONTEXT_MATCH_TAG1 2 +#define FW_CDEV_ISO_CONTEXT_MATCH_TAG2 4 +#define FW_CDEV_ISO_CONTEXT_MATCH_TAG3 8 +#define FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS 15 + +/** + * struct fw_cdev_start_iso - Start an isochronous transmission or reception + * @cycle: Cycle in which to start I/O. If @cycle is greater than or + * equal to 0, the I/O will start on that cycle. + * @sync: Determines the value to wait for for receive packets that have + * the %FW_CDEV_ISO_SYNC bit set + * @tags: Tag filter bit mask. Only valid for isochronous reception. + * Determines the tag values for which packets will be accepted. + * Use FW_CDEV_ISO_CONTEXT_MATCH_ macros to set @tags. + * @handle: Isochronous context handle within which to transmit or receive + */ +struct fw_cdev_start_iso { + __s32 cycle; + __u32 sync; + __u32 tags; + __u32 handle; +}; + +/** + * struct fw_cdev_stop_iso - Stop an isochronous transmission or reception + * @handle: Handle of isochronous context to stop + */ +struct fw_cdev_stop_iso { + __u32 handle; +}; + +/** + * struct fw_cdev_flush_iso - flush completed iso packets + * @handle: handle of isochronous context to flush + * + * For %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE contexts, + * report any completed packets. + * + * For %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL contexts, report the current + * offset in the receive buffer, if it has changed; this is typically in the + * middle of some buffer chunk. + * + * Any %FW_CDEV_EVENT_ISO_INTERRUPT or %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL + * events generated by this ioctl are sent synchronously, i.e., are available + * for reading from the file descriptor when this ioctl returns. + */ +struct fw_cdev_flush_iso { + __u32 handle; +}; + +/** + * struct fw_cdev_get_cycle_timer - read cycle timer register + * @local_time: system time, in microseconds since the Epoch + * @cycle_timer: Cycle Time register contents + * + * Same as %FW_CDEV_IOC_GET_CYCLE_TIMER2, but fixed to use %CLOCK_REALTIME + * and only with microseconds resolution. + * + * In version 1 and 2 of the ABI, this ioctl returned unreliable (non- + * monotonic) @cycle_timer values on certain controllers. + */ +struct fw_cdev_get_cycle_timer { + __u64 local_time; + __u32 cycle_timer; +}; + +/** + * struct fw_cdev_get_cycle_timer2 - read cycle timer register + * @tv_sec: system time, seconds + * @tv_nsec: system time, sub-seconds part in nanoseconds + * @clk_id: input parameter, clock from which to get the system time + * @cycle_timer: Cycle Time register contents + * + * The %FW_CDEV_IOC_GET_CYCLE_TIMER2 ioctl reads the isochronous cycle timer + * and also the system clock. This allows to correlate reception time of + * isochronous packets with system time. + * + * @clk_id lets you choose a clock like with POSIX' clock_gettime function. + * Supported @clk_id values are POSIX' %CLOCK_REALTIME and %CLOCK_MONOTONIC + * and Linux' %CLOCK_MONOTONIC_RAW. + * + * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and + * 12 bits cycleOffset, in host byte order. Cf. the Cycle Time register + * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394. + */ +struct fw_cdev_get_cycle_timer2 { + __s64 tv_sec; + __s32 tv_nsec; + __s32 clk_id; + __u32 cycle_timer; +}; + +/** + * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth + * @closure: Passed back to userspace in corresponding iso resource events + * @channels: Isochronous channels of which one is to be (de)allocated + * @bandwidth: Isochronous bandwidth units to be (de)allocated + * @handle: Handle to the allocation, written by the kernel (only valid in + * case of %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctls) + * + * The %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctl initiates allocation of an + * isochronous channel and/or of isochronous bandwidth at the isochronous + * resource manager (IRM). Only one of the channels specified in @channels is + * allocated. An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED is sent after + * communication with the IRM, indicating success or failure in the event data. + * The kernel will automatically reallocate the resources after bus resets. + * Should a reallocation fail, an %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event + * will be sent. The kernel will also automatically deallocate the resources + * when the file descriptor is closed. + * + * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE ioctl can be used to initiate + * deallocation of resources which were allocated as described above. + * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation. + * + * The %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE ioctl is a variant of allocation + * without automatic re- or deallocation. + * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event concludes this operation, + * indicating success or failure in its data. + * + * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like + * %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed + * instead of allocated. + * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation. + * + * To summarize, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE allocates iso resources + * for the lifetime of the fd or @handle. + * In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources + * for the duration of a bus generation. + * + * @channels is a host-endian bitfield with the least significant bit + * representing channel 0 and the most significant bit representing channel 63: + * 1ULL << c for each channel c that is a candidate for (de)allocation. + * + * @bandwidth is expressed in bandwidth allocation units, i.e. the time to send + * one quadlet of data (payload or header data) at speed S1600. + */ +struct fw_cdev_allocate_iso_resource { + __u64 closure; + __u64 channels; + __u32 bandwidth; + __u32 handle; +}; + +/** + * struct fw_cdev_send_stream_packet - send an asynchronous stream packet + * @length: Length of outgoing payload, in bytes + * @tag: Data format tag + * @channel: Isochronous channel to transmit to + * @sy: Synchronization code + * @closure: Passed back to userspace in the response event + * @data: Userspace pointer to payload + * @generation: The bus generation where packet is valid + * @speed: Speed to transmit at + * + * The %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet + * to every device which is listening to the specified channel. The kernel + * writes an &fw_cdev_event_response event which indicates success or failure of + * the transmission. + */ +struct fw_cdev_send_stream_packet { + __u32 length; + __u32 tag; + __u32 channel; + __u32 sy; + __u64 closure; + __u64 data; + __u32 generation; + __u32 speed; +}; + +/** + * struct fw_cdev_send_phy_packet - send a PHY packet + * @closure: Passed back to userspace in the PHY-packet-sent event + * @data: First and second quadlet of the PHY packet + * @generation: The bus generation where packet is valid + * + * The %FW_CDEV_IOC_SEND_PHY_PACKET ioctl sends a PHY packet to all nodes + * on the same card as this device. After transmission, an + * %FW_CDEV_EVENT_PHY_PACKET_SENT event is generated. + * + * The payload @data[] shall be specified in host byte order. Usually, + * @data[1] needs to be the bitwise inverse of @data[0]. VersaPHY packets + * are an exception to this rule. + * + * The ioctl is only permitted on device files which represent a local node. + */ +struct fw_cdev_send_phy_packet { + __u64 closure; + __u32 data[2]; + __u32 generation; +}; + +/** + * struct fw_cdev_receive_phy_packets - start reception of PHY packets + * @closure: Passed back to userspace in phy packet events + * + * This ioctl activates issuing of %FW_CDEV_EVENT_PHY_PACKET_RECEIVED due to + * incoming PHY packets from any node on the same bus as the device. + * + * The ioctl is only permitted on device files which represent a local node. + */ +struct fw_cdev_receive_phy_packets { + __u64 closure; +}; + +#define FW_CDEV_VERSION 3 /* Meaningless legacy macro; don't use it. */ + +#endif /* _LINUX_FIREWIRE_CDEV_H */ diff --git a/kernel_headers/linux/firewire-constants.h b/kernel_headers/linux/firewire-constants.h new file mode 100644 index 0000000..9b4bb5f --- /dev/null +++ b/kernel_headers/linux/firewire-constants.h @@ -0,0 +1,92 @@ +/* + * IEEE 1394 constants. + * + * Copyright (C) 2005-2007 Kristian Hoegsberg + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _LINUX_FIREWIRE_CONSTANTS_H +#define _LINUX_FIREWIRE_CONSTANTS_H + +#define TCODE_WRITE_QUADLET_REQUEST 0x0 +#define TCODE_WRITE_BLOCK_REQUEST 0x1 +#define TCODE_WRITE_RESPONSE 0x2 +#define TCODE_READ_QUADLET_REQUEST 0x4 +#define TCODE_READ_BLOCK_REQUEST 0x5 +#define TCODE_READ_QUADLET_RESPONSE 0x6 +#define TCODE_READ_BLOCK_RESPONSE 0x7 +#define TCODE_CYCLE_START 0x8 +#define TCODE_LOCK_REQUEST 0x9 +#define TCODE_STREAM_DATA 0xa +#define TCODE_LOCK_RESPONSE 0xb + +#define EXTCODE_MASK_SWAP 0x1 +#define EXTCODE_COMPARE_SWAP 0x2 +#define EXTCODE_FETCH_ADD 0x3 +#define EXTCODE_LITTLE_ADD 0x4 +#define EXTCODE_BOUNDED_ADD 0x5 +#define EXTCODE_WRAP_ADD 0x6 +#define EXTCODE_VENDOR_DEPENDENT 0x7 + +/* Linux firewire-core (Juju) specific tcodes */ +#define TCODE_LOCK_MASK_SWAP (0x10 | EXTCODE_MASK_SWAP) +#define TCODE_LOCK_COMPARE_SWAP (0x10 | EXTCODE_COMPARE_SWAP) +#define TCODE_LOCK_FETCH_ADD (0x10 | EXTCODE_FETCH_ADD) +#define TCODE_LOCK_LITTLE_ADD (0x10 | EXTCODE_LITTLE_ADD) +#define TCODE_LOCK_BOUNDED_ADD (0x10 | EXTCODE_BOUNDED_ADD) +#define TCODE_LOCK_WRAP_ADD (0x10 | EXTCODE_WRAP_ADD) +#define TCODE_LOCK_VENDOR_DEPENDENT (0x10 | EXTCODE_VENDOR_DEPENDENT) + +#define RCODE_COMPLETE 0x0 +#define RCODE_CONFLICT_ERROR 0x4 +#define RCODE_DATA_ERROR 0x5 +#define RCODE_TYPE_ERROR 0x6 +#define RCODE_ADDRESS_ERROR 0x7 + +/* Linux firewire-core (Juju) specific rcodes */ +#define RCODE_SEND_ERROR 0x10 +#define RCODE_CANCELLED 0x11 +#define RCODE_BUSY 0x12 +#define RCODE_GENERATION 0x13 +#define RCODE_NO_ACK 0x14 + +#define SCODE_100 0x0 +#define SCODE_200 0x1 +#define SCODE_400 0x2 +#define SCODE_800 0x3 +#define SCODE_1600 0x4 +#define SCODE_3200 0x5 +#define SCODE_BETA 0x3 + +#define ACK_COMPLETE 0x1 +#define ACK_PENDING 0x2 +#define ACK_BUSY_X 0x4 +#define ACK_BUSY_A 0x5 +#define ACK_BUSY_B 0x6 +#define ACK_DATA_ERROR 0xd +#define ACK_TYPE_ERROR 0xe + +#define RETRY_1 0x00 +#define RETRY_X 0x01 +#define RETRY_A 0x02 +#define RETRY_B 0x03 + +#endif /* _LINUX_FIREWIRE_CONSTANTS_H */ diff --git a/kernel_headers/linux/flat.h b/kernel_headers/linux/flat.h new file mode 100644 index 0000000..8351bc7 --- /dev/null +++ b/kernel_headers/linux/flat.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2002-2003 David McCullough + * Copyright (C) 1998 Kenneth Albanowski + * The Silver Hammer Group, Ltd. + * + * This file provides the definitions and structures needed to + * support uClinux flat-format executables. + */ + +#ifndef _LINUX_FLAT_H +#define _LINUX_FLAT_H + + +#define FLAT_VERSION 0x00000004L + +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + +/* + * To make everything easier to port and manage cross platform + * development, all fields are in network byte order. + */ + +struct flat_hdr { + char magic[4]; + unsigned long rev; /* version (as above) */ + unsigned long entry; /* Offset of first executable instruction + with text segment from beginning of file */ + unsigned long data_start; /* Offset of data segment from beginning of + file */ + unsigned long data_end; /* Offset of end of data segment + from beginning of file */ + unsigned long bss_end; /* Offset of end of bss segment from beginning + of file */ + + /* (It is assumed that data_end through bss_end forms the bss segment.) */ + + unsigned long stack_size; /* Size of stack, in bytes */ + unsigned long reloc_start; /* Offset of relocation records from + beginning of file */ + unsigned long reloc_count; /* Number of relocation records */ + unsigned long flags; + unsigned long build_date; /* When the program/library was built */ + unsigned long filler[5]; /* Reservered, set to zero */ +}; + +#define FLAT_FLAG_RAM 0x0001 /* load program entirely into RAM */ +#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */ +#define FLAT_FLAG_GZIP 0x0004 /* all but the header is compressed */ +#define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */ +#define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */ + + + +#endif /* _LINUX_FLAT_H */ diff --git a/kernel_headers/linux/fs.h b/kernel_headers/linux/fs.h new file mode 100644 index 0000000..abe7d5c --- /dev/null +++ b/kernel_headers/linux/fs.h @@ -0,0 +1,204 @@ +#ifndef _LINUX_FS_H +#define _LINUX_FS_H + +/* + * This file has definitions for some important file table + * structures etc. + */ + +#include +#include +#include + +/* + * It's silly to have NR_OPEN bigger than NR_FILE, but you can change + * the file limit at runtime and only root can increase the per-process + * nr_file rlimit, so it's safe to set up a ridiculously high absolute + * upper limit on files-per-process. + * + * Some programs (notably those using select()) may have to be + * recompiled to take full advantage of the new limits.. + */ + +/* Fixed constants first: */ +#undef NR_OPEN +#define INR_OPEN_CUR 1024 /* Initial setting for nfile rlimits */ +#define INR_OPEN_MAX 4096 /* Hard limit for nfile rlimits */ + +#define BLOCK_SIZE_BITS 10 +#define BLOCK_SIZE (1< + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * This software is provided by Freescale Semiconductor "as is" and any + * express or implied warranties, including, but not limited to, the implied + * warranties of merchantability and fitness for a particular purpose are + * disclaimed. In no event shall Freescale Semiconductor be liable for any + * direct, indirect, incidental, special, exemplary, or consequential damages + * (including, but not limited to, procurement of substitute goods or services; + * loss of use, data, or profits; or business interruption) however caused and + * on any theory of liability, whether in contract, strict liability, or tort + * (including negligence or otherwise) arising in any way out of the use of this + * software, even if advised of the possibility of such damage. + * + * This file is used by the Freescale hypervisor management driver. It can + * also be included by applications that need to communicate with the driver + * via the ioctl interface. + */ + +#ifndef FSL_HYPERVISOR_H +#define FSL_HYPERVISOR_H + +#include + +/** + * struct fsl_hv_ioctl_restart - restart a partition + * @ret: return error code from the hypervisor + * @partition: the ID of the partition to restart, or -1 for the + * calling partition + * + * Used by FSL_HV_IOCTL_PARTITION_RESTART + */ +struct fsl_hv_ioctl_restart { + __u32 ret; + __u32 partition; +}; + +/** + * struct fsl_hv_ioctl_status - get a partition's status + * @ret: return error code from the hypervisor + * @partition: the ID of the partition to query, or -1 for the + * calling partition + * @status: The returned status of the partition + * + * Used by FSL_HV_IOCTL_PARTITION_GET_STATUS + * + * Values of 'status': + * 0 = Stopped + * 1 = Running + * 2 = Starting + * 3 = Stopping + */ +struct fsl_hv_ioctl_status { + __u32 ret; + __u32 partition; + __u32 status; +}; + +/** + * struct fsl_hv_ioctl_start - start a partition + * @ret: return error code from the hypervisor + * @partition: the ID of the partition to control + * @entry_point: The offset within the guest IMA to start execution + * @load: If non-zero, reload the partition's images before starting + * + * Used by FSL_HV_IOCTL_PARTITION_START + */ +struct fsl_hv_ioctl_start { + __u32 ret; + __u32 partition; + __u32 entry_point; + __u32 load; +}; + +/** + * struct fsl_hv_ioctl_stop - stop a partition + * @ret: return error code from the hypervisor + * @partition: the ID of the partition to stop, or -1 for the calling + * partition + * + * Used by FSL_HV_IOCTL_PARTITION_STOP + */ +struct fsl_hv_ioctl_stop { + __u32 ret; + __u32 partition; +}; + +/** + * struct fsl_hv_ioctl_memcpy - copy memory between partitions + * @ret: return error code from the hypervisor + * @source: the partition ID of the source partition, or -1 for this + * partition + * @target: the partition ID of the target partition, or -1 for this + * partition + * @reserved: reserved, must be set to 0 + * @local_addr: user-space virtual address of a buffer in the local + * partition + * @remote_addr: guest physical address of a buffer in the + * remote partition + * @count: the number of bytes to copy. Both the local and remote + * buffers must be at least 'count' bytes long + * + * Used by FSL_HV_IOCTL_MEMCPY + * + * The 'local' partition is the partition that calls this ioctl. The + * 'remote' partition is a different partition. The data is copied from + * the 'source' paritition' to the 'target' partition. + * + * The buffer in the remote partition must be guest physically + * contiguous. + * + * This ioctl does not support copying memory between two remote + * partitions or within the same partition, so either 'source' or + * 'target' (but not both) must be -1. In other words, either + * + * source == local and target == remote + * or + * source == remote and target == local + */ +struct fsl_hv_ioctl_memcpy { + __u32 ret; + __u32 source; + __u32 target; + __u32 reserved; /* padding to ensure local_vaddr is aligned */ + __u64 local_vaddr; + __u64 remote_paddr; + __u64 count; +}; + +/** + * struct fsl_hv_ioctl_doorbell - ring a doorbell + * @ret: return error code from the hypervisor + * @doorbell: the handle of the doorbell to ring doorbell + * + * Used by FSL_HV_IOCTL_DOORBELL + */ +struct fsl_hv_ioctl_doorbell { + __u32 ret; + __u32 doorbell; +}; + +/** + * struct fsl_hv_ioctl_prop - get/set a device tree property + * @ret: return error code from the hypervisor + * @handle: handle of partition whose tree to access + * @path: virtual address of path name of node to access + * @propname: virtual address of name of property to access + * @propval: virtual address of property data buffer + * @proplen: Size of property data buffer + * @reserved: reserved, must be set to 0 + * + * Used by FSL_HV_IOCTL_DOORBELL + */ +struct fsl_hv_ioctl_prop { + __u32 ret; + __u32 handle; + __u64 path; + __u64 propname; + __u64 propval; + __u32 proplen; + __u32 reserved; /* padding to ensure structure is aligned */ +}; + +/* The ioctl type, documented in ioctl-number.txt */ +#define FSL_HV_IOCTL_TYPE 0xAF + +/* Restart another partition */ +#define FSL_HV_IOCTL_PARTITION_RESTART \ + _IOWR(FSL_HV_IOCTL_TYPE, 1, struct fsl_hv_ioctl_restart) + +/* Get a partition's status */ +#define FSL_HV_IOCTL_PARTITION_GET_STATUS \ + _IOWR(FSL_HV_IOCTL_TYPE, 2, struct fsl_hv_ioctl_status) + +/* Boot another partition */ +#define FSL_HV_IOCTL_PARTITION_START \ + _IOWR(FSL_HV_IOCTL_TYPE, 3, struct fsl_hv_ioctl_start) + +/* Stop this or another partition */ +#define FSL_HV_IOCTL_PARTITION_STOP \ + _IOWR(FSL_HV_IOCTL_TYPE, 4, struct fsl_hv_ioctl_stop) + +/* Copy data from one partition to another */ +#define FSL_HV_IOCTL_MEMCPY \ + _IOWR(FSL_HV_IOCTL_TYPE, 5, struct fsl_hv_ioctl_memcpy) + +/* Ring a doorbell */ +#define FSL_HV_IOCTL_DOORBELL \ + _IOWR(FSL_HV_IOCTL_TYPE, 6, struct fsl_hv_ioctl_doorbell) + +/* Get a property from another guest's device tree */ +#define FSL_HV_IOCTL_GETPROP \ + _IOWR(FSL_HV_IOCTL_TYPE, 7, struct fsl_hv_ioctl_prop) + +/* Set a property in another guest's device tree */ +#define FSL_HV_IOCTL_SETPROP \ + _IOWR(FSL_HV_IOCTL_TYPE, 8, struct fsl_hv_ioctl_prop) + + +#endif /* FSL_HYPERVISOR_H */ diff --git a/kernel_headers/linux/fuse.h b/kernel_headers/linux/fuse.h new file mode 100644 index 0000000..d7bd86d --- /dev/null +++ b/kernel_headers/linux/fuse.h @@ -0,0 +1,728 @@ +/* + This file defines the kernel interface of FUSE + Copyright (C) 2001-2008 Miklos Szeredi + + This program can be distributed under the terms of the GNU GPL. + See the file COPYING. + + This -- and only this -- header file may also be distributed under + the terms of the BSD Licence as follows: + + Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +*/ + +/* + * This file defines the kernel interface of FUSE + * + * Protocol changelog: + * + * 7.9: + * - new fuse_getattr_in input argument of GETATTR + * - add lk_flags in fuse_lk_in + * - add lock_owner field to fuse_setattr_in, fuse_read_in and fuse_write_in + * - add blksize field to fuse_attr + * - add file flags field to fuse_read_in and fuse_write_in + * + * 7.10 + * - add nonseekable open flag + * + * 7.11 + * - add IOCTL message + * - add unsolicited notification support + * - add POLL message and NOTIFY_POLL notification + * + * 7.12 + * - add umask flag to input argument of open, mknod and mkdir + * - add notification messages for invalidation of inodes and + * directory entries + * + * 7.13 + * - make max number of background requests and congestion threshold + * tunables + * + * 7.14 + * - add splice support to fuse device + * + * 7.15 + * - add store notify + * - add retrieve notify + * + * 7.16 + * - add BATCH_FORGET request + * - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct + * fuse_ioctl_iovec' instead of ambiguous 'struct iovec' + * - add FUSE_IOCTL_32BIT flag + * + * 7.17 + * - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK + * + * 7.18 + * - add FUSE_IOCTL_DIR flag + * - add FUSE_NOTIFY_DELETE + * + * 7.19 + * - add FUSE_FALLOCATE + * + * 7.20 + * - add FUSE_AUTO_INVAL_DATA + * + * 7.21 + * - add FUSE_READDIRPLUS + * - send the requested events in POLL request + * + * 7.22 + * - add FUSE_ASYNC_DIO + */ + +#ifndef _LINUX_FUSE_H +#define _LINUX_FUSE_H + +#include + +/* + * Version negotiation: + * + * Both the kernel and userspace send the version they support in the + * INIT request and reply respectively. + * + * If the major versions match then both shall use the smallest + * of the two minor versions for communication. + * + * If the kernel supports a larger major version, then userspace shall + * reply with the major version it supports, ignore the rest of the + * INIT message and expect a new INIT message from the kernel with a + * matching major version. + * + * If the library supports a larger major version, then it shall fall + * back to the major protocol version sent by the kernel for + * communication and reply with that major version (and an arbitrary + * supported minor version). + */ + +/** Version number of this interface */ +#define FUSE_KERNEL_VERSION 7 + +/** Minor version number of this interface */ +#define FUSE_KERNEL_MINOR_VERSION 22 + +/** The node ID of the root inode */ +#define FUSE_ROOT_ID 1 + +/* Make sure all structures are padded to 64bit boundary, so 32bit + userspace works under 64bit kernels */ + +struct fuse_attr { + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint32_t rdev; + uint32_t blksize; + uint32_t padding; +}; + +struct fuse_kstatfs { + uint64_t blocks; + uint64_t bfree; + uint64_t bavail; + uint64_t files; + uint64_t ffree; + uint32_t bsize; + uint32_t namelen; + uint32_t frsize; + uint32_t padding; + uint32_t spare[6]; +}; + +struct fuse_file_lock { + uint64_t start; + uint64_t end; + uint32_t type; + uint32_t pid; /* tgid */ +}; + +/** + * Bitmasks for fuse_setattr_in.valid + */ +#define FATTR_MODE (1 << 0) +#define FATTR_UID (1 << 1) +#define FATTR_GID (1 << 2) +#define FATTR_SIZE (1 << 3) +#define FATTR_ATIME (1 << 4) +#define FATTR_MTIME (1 << 5) +#define FATTR_FH (1 << 6) +#define FATTR_ATIME_NOW (1 << 7) +#define FATTR_MTIME_NOW (1 << 8) +#define FATTR_LOCKOWNER (1 << 9) + +/** + * Flags returned by the OPEN request + * + * FOPEN_DIRECT_IO: bypass page cache for this open file + * FOPEN_KEEP_CACHE: don't invalidate the data cache on open + * FOPEN_NONSEEKABLE: the file is not seekable + */ +#define FOPEN_DIRECT_IO (1 << 0) +#define FOPEN_KEEP_CACHE (1 << 1) +#define FOPEN_NONSEEKABLE (1 << 2) + +/** + * INIT request/reply flags + * + * FUSE_ASYNC_READ: asynchronous read requests + * FUSE_POSIX_LOCKS: remote locking for POSIX file locks + * FUSE_FILE_OPS: kernel sends file handle for fstat, etc... (not yet supported) + * FUSE_ATOMIC_O_TRUNC: handles the O_TRUNC open flag in the filesystem + * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." + * FUSE_BIG_WRITES: filesystem can handle write size larger than 4kB + * FUSE_DONT_MASK: don't apply umask to file mode on create operations + * FUSE_SPLICE_WRITE: kernel supports splice write on the device + * FUSE_SPLICE_MOVE: kernel supports splice move on the device + * FUSE_SPLICE_READ: kernel supports splice read on the device + * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks + * FUSE_HAS_IOCTL_DIR: kernel supports ioctl on directories + * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages + * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) + * FUSE_READDIRPLUS_AUTO: adaptive readdirplus + * FUSE_ASYNC_DIO: asynchronous direct I/O submission + */ +#define FUSE_ASYNC_READ (1 << 0) +#define FUSE_POSIX_LOCKS (1 << 1) +#define FUSE_FILE_OPS (1 << 2) +#define FUSE_ATOMIC_O_TRUNC (1 << 3) +#define FUSE_EXPORT_SUPPORT (1 << 4) +#define FUSE_BIG_WRITES (1 << 5) +#define FUSE_DONT_MASK (1 << 6) +#define FUSE_SPLICE_WRITE (1 << 7) +#define FUSE_SPLICE_MOVE (1 << 8) +#define FUSE_SPLICE_READ (1 << 9) +#define FUSE_FLOCK_LOCKS (1 << 10) +#define FUSE_HAS_IOCTL_DIR (1 << 11) +#define FUSE_AUTO_INVAL_DATA (1 << 12) +#define FUSE_DO_READDIRPLUS (1 << 13) +#define FUSE_READDIRPLUS_AUTO (1 << 14) +#define FUSE_ASYNC_DIO (1 << 15) + +/** + * CUSE INIT request/reply flags + * + * CUSE_UNRESTRICTED_IOCTL: use unrestricted ioctl + */ +#define CUSE_UNRESTRICTED_IOCTL (1 << 0) + +/** + * Release flags + */ +#define FUSE_RELEASE_FLUSH (1 << 0) +#define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1) + +/** + * Getattr flags + */ +#define FUSE_GETATTR_FH (1 << 0) + +/** + * Lock flags + */ +#define FUSE_LK_FLOCK (1 << 0) + +/** + * WRITE flags + * + * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed + * FUSE_WRITE_LOCKOWNER: lock_owner field is valid + */ +#define FUSE_WRITE_CACHE (1 << 0) +#define FUSE_WRITE_LOCKOWNER (1 << 1) + +/** + * Read flags + */ +#define FUSE_READ_LOCKOWNER (1 << 1) + +/** + * Ioctl flags + * + * FUSE_IOCTL_COMPAT: 32bit compat ioctl on 64bit machine + * FUSE_IOCTL_UNRESTRICTED: not restricted to well-formed ioctls, retry allowed + * FUSE_IOCTL_RETRY: retry with new iovecs + * FUSE_IOCTL_32BIT: 32bit ioctl + * FUSE_IOCTL_DIR: is a directory + * + * FUSE_IOCTL_MAX_IOV: maximum of in_iovecs + out_iovecs + */ +#define FUSE_IOCTL_COMPAT (1 << 0) +#define FUSE_IOCTL_UNRESTRICTED (1 << 1) +#define FUSE_IOCTL_RETRY (1 << 2) +#define FUSE_IOCTL_32BIT (1 << 3) +#define FUSE_IOCTL_DIR (1 << 4) + +#define FUSE_IOCTL_MAX_IOV 256 + +/** + * Poll flags + * + * FUSE_POLL_SCHEDULE_NOTIFY: request poll notify + */ +#define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0) + +enum fuse_opcode { + FUSE_LOOKUP = 1, + FUSE_FORGET = 2, /* no reply */ + FUSE_GETATTR = 3, + FUSE_SETATTR = 4, + FUSE_READLINK = 5, + FUSE_SYMLINK = 6, + FUSE_MKNOD = 8, + FUSE_MKDIR = 9, + FUSE_UNLINK = 10, + FUSE_RMDIR = 11, + FUSE_RENAME = 12, + FUSE_LINK = 13, + FUSE_OPEN = 14, + FUSE_READ = 15, + FUSE_WRITE = 16, + FUSE_STATFS = 17, + FUSE_RELEASE = 18, + FUSE_FSYNC = 20, + FUSE_SETXATTR = 21, + FUSE_GETXATTR = 22, + FUSE_LISTXATTR = 23, + FUSE_REMOVEXATTR = 24, + FUSE_FLUSH = 25, + FUSE_INIT = 26, + FUSE_OPENDIR = 27, + FUSE_READDIR = 28, + FUSE_RELEASEDIR = 29, + FUSE_FSYNCDIR = 30, + FUSE_GETLK = 31, + FUSE_SETLK = 32, + FUSE_SETLKW = 33, + FUSE_ACCESS = 34, + FUSE_CREATE = 35, + FUSE_INTERRUPT = 36, + FUSE_BMAP = 37, + FUSE_DESTROY = 38, + FUSE_IOCTL = 39, + FUSE_POLL = 40, + FUSE_NOTIFY_REPLY = 41, + FUSE_BATCH_FORGET = 42, + FUSE_FALLOCATE = 43, + FUSE_READDIRPLUS = 44, + + /* CUSE specific operations */ + CUSE_INIT = 4096, +}; + +enum fuse_notify_code { + FUSE_NOTIFY_POLL = 1, + FUSE_NOTIFY_INVAL_INODE = 2, + FUSE_NOTIFY_INVAL_ENTRY = 3, + FUSE_NOTIFY_STORE = 4, + FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, + FUSE_NOTIFY_CODE_MAX, +}; + +/* The read buffer is required to be at least 8k, but may be much larger */ +#define FUSE_MIN_READ_BUFFER 8192 + +#define FUSE_COMPAT_ENTRY_OUT_SIZE 120 + +struct fuse_entry_out { + uint64_t nodeid; /* Inode ID */ + uint64_t generation; /* Inode generation: nodeid:gen must + be unique for the fs's lifetime */ + uint64_t entry_valid; /* Cache timeout for the name */ + uint64_t attr_valid; /* Cache timeout for the attributes */ + uint32_t entry_valid_nsec; + uint32_t attr_valid_nsec; + struct fuse_attr attr; +}; + +struct fuse_forget_in { + uint64_t nlookup; +}; + +struct fuse_forget_one { + uint64_t nodeid; + uint64_t nlookup; +}; + +struct fuse_batch_forget_in { + uint32_t count; + uint32_t dummy; +}; + +struct fuse_getattr_in { + uint32_t getattr_flags; + uint32_t dummy; + uint64_t fh; +}; + +#define FUSE_COMPAT_ATTR_OUT_SIZE 96 + +struct fuse_attr_out { + uint64_t attr_valid; /* Cache timeout for the attributes */ + uint32_t attr_valid_nsec; + uint32_t dummy; + struct fuse_attr attr; +}; + +#define FUSE_COMPAT_MKNOD_IN_SIZE 8 + +struct fuse_mknod_in { + uint32_t mode; + uint32_t rdev; + uint32_t umask; + uint32_t padding; +}; + +struct fuse_mkdir_in { + uint32_t mode; + uint32_t umask; +}; + +struct fuse_rename_in { + uint64_t newdir; +}; + +struct fuse_link_in { + uint64_t oldnodeid; +}; + +struct fuse_setattr_in { + uint32_t valid; + uint32_t padding; + uint64_t fh; + uint64_t size; + uint64_t lock_owner; + uint64_t atime; + uint64_t mtime; + uint64_t unused2; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t unused3; + uint32_t mode; + uint32_t unused4; + uint32_t uid; + uint32_t gid; + uint32_t unused5; +}; + +struct fuse_open_in { + uint32_t flags; + uint32_t unused; +}; + +struct fuse_create_in { + uint32_t flags; + uint32_t mode; + uint32_t umask; + uint32_t padding; +}; + +struct fuse_open_out { + uint64_t fh; + uint32_t open_flags; + uint32_t padding; +}; + +struct fuse_release_in { + uint64_t fh; + uint32_t flags; + uint32_t release_flags; + uint64_t lock_owner; +}; + +struct fuse_flush_in { + uint64_t fh; + uint32_t unused; + uint32_t padding; + uint64_t lock_owner; +}; + +struct fuse_read_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t read_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +#define FUSE_COMPAT_WRITE_IN_SIZE 24 + +struct fuse_write_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t write_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_out { + uint32_t size; + uint32_t padding; +}; + +#define FUSE_COMPAT_STATFS_SIZE 48 + +struct fuse_statfs_out { + struct fuse_kstatfs st; +}; + +struct fuse_fsync_in { + uint64_t fh; + uint32_t fsync_flags; + uint32_t padding; +}; + +struct fuse_setxattr_in { + uint32_t size; + uint32_t flags; +}; + +struct fuse_getxattr_in { + uint32_t size; + uint32_t padding; +}; + +struct fuse_getxattr_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_lk_in { + uint64_t fh; + uint64_t owner; + struct fuse_file_lock lk; + uint32_t lk_flags; + uint32_t padding; +}; + +struct fuse_lk_out { + struct fuse_file_lock lk; +}; + +struct fuse_access_in { + uint32_t mask; + uint32_t padding; +}; + +struct fuse_init_in { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; +}; + +struct fuse_init_out { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint16_t max_background; + uint16_t congestion_threshold; + uint32_t max_write; +}; + +#define CUSE_INIT_INFO_MAX 4096 + +struct cuse_init_in { + uint32_t major; + uint32_t minor; + uint32_t unused; + uint32_t flags; +}; + +struct cuse_init_out { + uint32_t major; + uint32_t minor; + uint32_t unused; + uint32_t flags; + uint32_t max_read; + uint32_t max_write; + uint32_t dev_major; /* chardev major */ + uint32_t dev_minor; /* chardev minor */ + uint32_t spare[10]; +}; + +struct fuse_interrupt_in { + uint64_t unique; +}; + +struct fuse_bmap_in { + uint64_t block; + uint32_t blocksize; + uint32_t padding; +}; + +struct fuse_bmap_out { + uint64_t block; +}; + +struct fuse_ioctl_in { + uint64_t fh; + uint32_t flags; + uint32_t cmd; + uint64_t arg; + uint32_t in_size; + uint32_t out_size; +}; + +struct fuse_ioctl_iovec { + uint64_t base; + uint64_t len; +}; + +struct fuse_ioctl_out { + int32_t result; + uint32_t flags; + uint32_t in_iovs; + uint32_t out_iovs; +}; + +struct fuse_poll_in { + uint64_t fh; + uint64_t kh; + uint32_t flags; + uint32_t events; +}; + +struct fuse_poll_out { + uint32_t revents; + uint32_t padding; +}; + +struct fuse_notify_poll_wakeup_out { + uint64_t kh; +}; + +struct fuse_fallocate_in { + uint64_t fh; + uint64_t offset; + uint64_t length; + uint32_t mode; + uint32_t padding; +}; + +struct fuse_in_header { + uint32_t len; + uint32_t opcode; + uint64_t unique; + uint64_t nodeid; + uint32_t uid; + uint32_t gid; + uint32_t pid; + uint32_t padding; +}; + +struct fuse_out_header { + uint32_t len; + int32_t error; + uint64_t unique; +}; + +struct fuse_dirent { + uint64_t ino; + uint64_t off; + uint32_t namelen; + uint32_t type; + char name[]; +}; + +#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name) +#define FUSE_DIRENT_ALIGN(x) \ + (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1)) +#define FUSE_DIRENT_SIZE(d) \ + FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) + +struct fuse_direntplus { + struct fuse_entry_out entry_out; + struct fuse_dirent dirent; +}; + +#define FUSE_NAME_OFFSET_DIRENTPLUS \ + offsetof(struct fuse_direntplus, dirent.name) +#define FUSE_DIRENTPLUS_SIZE(d) \ + FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen) + +struct fuse_notify_inval_inode_out { + uint64_t ino; + int64_t off; + int64_t len; +}; + +struct fuse_notify_inval_entry_out { + uint64_t parent; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_notify_delete_out { + uint64_t parent; + uint64_t child; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_notify_store_out { + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_retrieve_out { + uint64_t notify_unique; + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +/* Matches the size of fuse_write_in */ +struct fuse_notify_retrieve_in { + uint64_t dummy1; + uint64_t offset; + uint32_t size; + uint32_t dummy2; + uint64_t dummy3; + uint64_t dummy4; +}; + +#endif /* _LINUX_FUSE_H */ diff --git a/kernel_headers/linux/futex.h b/kernel_headers/linux/futex.h new file mode 100644 index 0000000..7a46ab9 --- /dev/null +++ b/kernel_headers/linux/futex.h @@ -0,0 +1,152 @@ +#ifndef _LINUX_FUTEX_H +#define _LINUX_FUTEX_H + + +#include + +/* Second argument to futex syscall */ + + +#define FUTEX_WAIT 0 +#define FUTEX_WAKE 1 +#define FUTEX_FD 2 +#define FUTEX_REQUEUE 3 +#define FUTEX_CMP_REQUEUE 4 +#define FUTEX_WAKE_OP 5 +#define FUTEX_LOCK_PI 6 +#define FUTEX_UNLOCK_PI 7 +#define FUTEX_TRYLOCK_PI 8 +#define FUTEX_WAIT_BITSET 9 +#define FUTEX_WAKE_BITSET 10 +#define FUTEX_WAIT_REQUEUE_PI 11 +#define FUTEX_CMP_REQUEUE_PI 12 + +#define FUTEX_PRIVATE_FLAG 128 +#define FUTEX_CLOCK_REALTIME 256 +#define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME) + +#define FUTEX_WAIT_PRIVATE (FUTEX_WAIT | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAKE_PRIVATE (FUTEX_WAKE | FUTEX_PRIVATE_FLAG) +#define FUTEX_REQUEUE_PRIVATE (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG) +#define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG) +#define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG) +#define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) +#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | \ + FUTEX_PRIVATE_FLAG) +#define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | \ + FUTEX_PRIVATE_FLAG) + +/* + * Support for robust futexes: the kernel cleans up held futexes at + * thread exit time. + */ + +/* + * Per-lock list entry - embedded in user-space locks, somewhere close + * to the futex field. (Note: user-space uses a double-linked list to + * achieve O(1) list add and remove, but the kernel only needs to know + * about the forward link) + * + * NOTE: this structure is part of the syscall ABI, and must not be + * changed. + */ +struct robust_list { + struct robust_list *next; +}; + +/* + * Per-thread list head: + * + * NOTE: this structure is part of the syscall ABI, and must only be + * changed if the change is first communicated with the glibc folks. + * (When an incompatible change is done, we'll increase the structure + * size, which glibc will detect) + */ +struct robust_list_head { + /* + * The head of the list. Points back to itself if empty: + */ + struct robust_list list; + + /* + * This relative offset is set by user-space, it gives the kernel + * the relative position of the futex field to examine. This way + * we keep userspace flexible, to freely shape its data-structure, + * without hardcoding any particular offset into the kernel: + */ + long futex_offset; + + /* + * The death of the thread may race with userspace setting + * up a lock's links. So to handle this race, userspace first + * sets this field to the address of the to-be-taken lock, + * then does the lock acquire, and then adds itself to the + * list, and then clears this field. Hence the kernel will + * always have full knowledge of all locks that the thread + * _might_ have taken. We check the owner TID in any case, + * so only truly owned locks will be handled. + */ + struct robust_list *list_op_pending; +}; + +/* + * Are there any waiters for this robust futex: + */ +#define FUTEX_WAITERS 0x80000000 + +/* + * The kernel signals via this bit that a thread holding a futex + * has exited without unlocking the futex. The kernel also does + * a FUTEX_WAKE on such futexes, after setting the bit, to wake + * up any possible waiters: + */ +#define FUTEX_OWNER_DIED 0x40000000 + +/* + * The rest of the robust-futex field is for the TID: + */ +#define FUTEX_TID_MASK 0x3fffffff + +/* + * This limit protects against a deliberately circular list. + * (Not worth introducing an rlimit for it) + */ +#define ROBUST_LIST_LIMIT 2048 + +/* + * bitset with all bits set for the FUTEX_xxx_BITSET OPs to request a + * match of any bit. + */ +#define FUTEX_BITSET_MATCH_ANY 0xffffffff + + +#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */ +#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */ +#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */ +#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */ +#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */ + +#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */ + +#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */ +#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */ +#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */ +#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */ +#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */ +#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */ + +/* FUTEX_WAKE_OP will perform atomically + int oldval = *(int *)UADDR2; + *(int *)UADDR2 = oldval OP OPARG; + if (oldval CMP CMPARG) + wake UADDR2; */ + +#define FUTEX_OP(op, oparg, cmp, cmparg) \ + (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \ + | ((oparg & 0xfff) << 12) | (cmparg & 0xfff)) + +#endif /* _LINUX_FUTEX_H */ diff --git a/kernel_headers/linux/gameport.h b/kernel_headers/linux/gameport.h new file mode 100644 index 0000000..34246b7 --- /dev/null +++ b/kernel_headers/linux/gameport.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 1999-2002 Vojtech Pavlik + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#ifndef _GAMEPORT_H +#define _GAMEPORT_H + + + +#define GAMEPORT_MODE_DISABLED 0 +#define GAMEPORT_MODE_RAW 1 +#define GAMEPORT_MODE_COOKED 2 + +#define GAMEPORT_ID_VENDOR_ANALOG 0x0001 +#define GAMEPORT_ID_VENDOR_MADCATZ 0x0002 +#define GAMEPORT_ID_VENDOR_LOGITECH 0x0003 +#define GAMEPORT_ID_VENDOR_CREATIVE 0x0004 +#define GAMEPORT_ID_VENDOR_GENIUS 0x0005 +#define GAMEPORT_ID_VENDOR_INTERACT 0x0006 +#define GAMEPORT_ID_VENDOR_MICROSOFT 0x0007 +#define GAMEPORT_ID_VENDOR_THRUSTMASTER 0x0008 +#define GAMEPORT_ID_VENDOR_GRAVIS 0x0009 +#define GAMEPORT_ID_VENDOR_GUILLEMOT 0x000a + +#endif /* _GAMEPORT_H */ diff --git a/kernel_headers/linux/gen_stats.h b/kernel_headers/linux/gen_stats.h new file mode 100644 index 0000000..552c8a0 --- /dev/null +++ b/kernel_headers/linux/gen_stats.h @@ -0,0 +1,67 @@ +#ifndef __LINUX_GEN_STATS_H +#define __LINUX_GEN_STATS_H + +#include + +enum { + TCA_STATS_UNSPEC, + TCA_STATS_BASIC, + TCA_STATS_RATE_EST, + TCA_STATS_QUEUE, + TCA_STATS_APP, + __TCA_STATS_MAX, +}; +#define TCA_STATS_MAX (__TCA_STATS_MAX - 1) + +/** + * struct gnet_stats_basic - byte/packet throughput statistics + * @bytes: number of seen bytes + * @packets: number of seen packets + */ +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; +}; +struct gnet_stats_basic_packed { + __u64 bytes; + __u32 packets; +} __attribute__ ((packed)); + +/** + * struct gnet_stats_rate_est - rate estimator + * @bps: current byte rate + * @pps: current packet rate + */ +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; +}; + +/** + * struct gnet_stats_queue - queuing statistics + * @qlen: queue length + * @backlog: backlog size of queue + * @drops: number of dropped packets + * @requeues: number of requeues + * @overlimits: number of enqueues over the limit + */ +struct gnet_stats_queue { + __u32 qlen; + __u32 backlog; + __u32 drops; + __u32 requeues; + __u32 overlimits; +}; + +/** + * struct gnet_estimator - rate estimator configuration + * @interval: sampling period + * @ewma_log: the log of measurement window weight + */ +struct gnet_estimator { + signed char interval; + unsigned char ewma_log; +}; + + +#endif /* __LINUX_GEN_STATS_H */ diff --git a/kernel_headers/linux/genetlink.h b/kernel_headers/linux/genetlink.h new file mode 100644 index 0000000..1f85a27 --- /dev/null +++ b/kernel_headers/linux/genetlink.h @@ -0,0 +1,84 @@ +#ifndef __LINUX_GENERIC_NETLINK_H +#define __LINUX_GENERIC_NETLINK_H + +#include +#include + +#define GENL_NAMSIZ 16 /* length of family name */ + +#define GENL_MIN_ID NLMSG_MIN_TYPE +#define GENL_MAX_ID 1023 + +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; +}; + +#define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr)) + +#define GENL_ADMIN_PERM 0x01 +#define GENL_CMD_CAP_DO 0x02 +#define GENL_CMD_CAP_DUMP 0x04 +#define GENL_CMD_CAP_HASPOL 0x08 + +/* + * List of reserved static generic netlink identifiers: + */ +#define GENL_ID_GENERATE 0 +#define GENL_ID_CTRL NLMSG_MIN_TYPE + +/************************************************************************** + * Controller + **************************************************************************/ + +enum { + CTRL_CMD_UNSPEC, + CTRL_CMD_NEWFAMILY, + CTRL_CMD_DELFAMILY, + CTRL_CMD_GETFAMILY, + CTRL_CMD_NEWOPS, + CTRL_CMD_DELOPS, + CTRL_CMD_GETOPS, + CTRL_CMD_NEWMCAST_GRP, + CTRL_CMD_DELMCAST_GRP, + CTRL_CMD_GETMCAST_GRP, /* unused */ + __CTRL_CMD_MAX, +}; + +#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) + +enum { + CTRL_ATTR_UNSPEC, + CTRL_ATTR_FAMILY_ID, + CTRL_ATTR_FAMILY_NAME, + CTRL_ATTR_VERSION, + CTRL_ATTR_HDRSIZE, + CTRL_ATTR_MAXATTR, + CTRL_ATTR_OPS, + CTRL_ATTR_MCAST_GROUPS, + __CTRL_ATTR_MAX, +}; + +#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) + +enum { + CTRL_ATTR_OP_UNSPEC, + CTRL_ATTR_OP_ID, + CTRL_ATTR_OP_FLAGS, + __CTRL_ATTR_OP_MAX, +}; + +#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1) + +enum { + CTRL_ATTR_MCAST_GRP_UNSPEC, + CTRL_ATTR_MCAST_GRP_NAME, + CTRL_ATTR_MCAST_GRP_ID, + __CTRL_ATTR_MCAST_GRP_MAX, +}; + +#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1) + + +#endif /* __LINUX_GENERIC_NETLINK_H */ diff --git a/kernel_headers/linux/gfs2_ondisk.h b/kernel_headers/linux/gfs2_ondisk.h new file mode 100644 index 0000000..9e7ca3b --- /dev/null +++ b/kernel_headers/linux/gfs2_ondisk.h @@ -0,0 +1,464 @@ +/* + * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. + * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU General Public License v.2. + */ + +#ifndef __GFS2_ONDISK_DOT_H__ +#define __GFS2_ONDISK_DOT_H__ + +#include + +#define GFS2_MAGIC 0x01161970 +#define GFS2_BASIC_BLOCK 512 +#define GFS2_BASIC_BLOCK_SHIFT 9 + +/* Lock numbers of the LM_TYPE_NONDISK type */ + +#define GFS2_MOUNT_LOCK 0 +#define GFS2_LIVE_LOCK 1 +#define GFS2_TRANS_LOCK 2 +#define GFS2_RENAME_LOCK 3 +#define GFS2_CONTROL_LOCK 4 +#define GFS2_MOUNTED_LOCK 5 + +/* Format numbers for various metadata types */ + +#define GFS2_FORMAT_NONE 0 +#define GFS2_FORMAT_SB 100 +#define GFS2_FORMAT_RG 200 +#define GFS2_FORMAT_RB 300 +#define GFS2_FORMAT_DI 400 +#define GFS2_FORMAT_IN 500 +#define GFS2_FORMAT_LF 600 +#define GFS2_FORMAT_JD 700 +#define GFS2_FORMAT_LH 800 +#define GFS2_FORMAT_LD 900 +#define GFS2_FORMAT_LB 1000 +#define GFS2_FORMAT_EA 1600 +#define GFS2_FORMAT_ED 1700 +#define GFS2_FORMAT_QC 1400 +/* These are format numbers for entities contained in files */ +#define GFS2_FORMAT_RI 1100 +#define GFS2_FORMAT_DE 1200 +#define GFS2_FORMAT_QU 1500 +/* These are part of the superblock */ +#define GFS2_FORMAT_FS 1801 +#define GFS2_FORMAT_MULTI 1900 + +/* + * An on-disk inode number + */ + +struct gfs2_inum { + __be64 no_formal_ino; + __be64 no_addr; +}; + +/* + * Generic metadata head structure + * Every inplace buffer logged in the journal must start with this. + */ + +#define GFS2_METATYPE_NONE 0 +#define GFS2_METATYPE_SB 1 +#define GFS2_METATYPE_RG 2 +#define GFS2_METATYPE_RB 3 +#define GFS2_METATYPE_DI 4 +#define GFS2_METATYPE_IN 5 +#define GFS2_METATYPE_LF 6 +#define GFS2_METATYPE_JD 7 +#define GFS2_METATYPE_LH 8 +#define GFS2_METATYPE_LD 9 +#define GFS2_METATYPE_LB 12 +#define GFS2_METATYPE_EA 10 +#define GFS2_METATYPE_ED 11 +#define GFS2_METATYPE_QC 14 + +struct gfs2_meta_header { + __be32 mh_magic; + __be32 mh_type; + __be64 __pad0; /* Was generation number in gfs1 */ + __be32 mh_format; + /* This union is to keep userspace happy */ + union { + __be32 mh_jid; /* Was incarnation number in gfs1 */ + __be32 __pad1; + }; +}; + +/* + * super-block structure + * + * It's probably good if SIZEOF_SB <= GFS2_BASIC_BLOCK (512 bytes) + * + * Order is important, need to be able to read old superblocks to do on-disk + * version upgrades. + */ + +/* Address of superblock in GFS2 basic blocks */ +#define GFS2_SB_ADDR 128 + +/* The lock number for the superblock (must be zero) */ +#define GFS2_SB_LOCK 0 + +/* Requirement: GFS2_LOCKNAME_LEN % 8 == 0 + Includes: the fencing zero at the end */ +#define GFS2_LOCKNAME_LEN 64 + +struct gfs2_sb { + struct gfs2_meta_header sb_header; + + __be32 sb_fs_format; + __be32 sb_multihost_format; + __u32 __pad0; /* Was superblock flags in gfs1 */ + + __be32 sb_bsize; + __be32 sb_bsize_shift; + __u32 __pad1; /* Was journal segment size in gfs1 */ + + struct gfs2_inum sb_master_dir; /* Was jindex dinode in gfs1 */ + struct gfs2_inum __pad2; /* Was rindex dinode in gfs1 */ + struct gfs2_inum sb_root_dir; + + char sb_lockproto[GFS2_LOCKNAME_LEN]; + char sb_locktable[GFS2_LOCKNAME_LEN]; + + struct gfs2_inum __pad3; /* Was quota inode in gfs1 */ + struct gfs2_inum __pad4; /* Was licence inode in gfs1 */ +#define GFS2_HAS_UUID 1 + __u8 sb_uuid[16]; /* The UUID, maybe 0 for backwards compat */ +}; + +/* + * resource index structure + */ + +struct gfs2_rindex { + __be64 ri_addr; /* grp block disk address */ + __be32 ri_length; /* length of rgrp header in fs blocks */ + __u32 __pad; + + __be64 ri_data0; /* first data location */ + __be32 ri_data; /* num of data blocks in rgrp */ + + __be32 ri_bitbytes; /* number of bytes in data bitmaps */ + + __u8 ri_reserved[64]; +}; + +/* + * resource group header structure + */ + +/* Number of blocks per byte in rgrp */ +#define GFS2_NBBY 4 +#define GFS2_BIT_SIZE 2 +#define GFS2_BIT_MASK 0x00000003 + +#define GFS2_BLKST_FREE 0 +#define GFS2_BLKST_USED 1 +#define GFS2_BLKST_UNLINKED 2 +#define GFS2_BLKST_DINODE 3 + +#define GFS2_RGF_JOURNAL 0x00000001 +#define GFS2_RGF_METAONLY 0x00000002 +#define GFS2_RGF_DATAONLY 0x00000004 +#define GFS2_RGF_NOALLOC 0x00000008 +#define GFS2_RGF_TRIMMED 0x00000010 + +struct gfs2_rgrp_lvb { + __be32 rl_magic; + __be32 rl_flags; + __be32 rl_free; + __be32 rl_dinodes; + __be64 rl_igeneration; + __be32 rl_unlinked; + __be32 __pad; +}; + +struct gfs2_rgrp { + struct gfs2_meta_header rg_header; + + __be32 rg_flags; + __be32 rg_free; + __be32 rg_dinodes; + __be32 __pad; + __be64 rg_igeneration; + + __u8 rg_reserved[80]; /* Several fields from gfs1 now reserved */ +}; + +/* + * quota structure + */ + +struct gfs2_quota { + __be64 qu_limit; + __be64 qu_warn; + __be64 qu_value; + __u8 qu_reserved[64]; +}; + +/* + * dinode structure + */ + +#define GFS2_MAX_META_HEIGHT 10 +#define GFS2_DIR_MAX_DEPTH 17 + +#define DT2IF(dt) (((dt) << 12) & S_IFMT) +#define IF2DT(sif) (((sif) & S_IFMT) >> 12) + +enum { + gfs2fl_Jdata = 0, + gfs2fl_ExHash = 1, + gfs2fl_Unused = 2, + gfs2fl_EaIndirect = 3, + gfs2fl_Directio = 4, + gfs2fl_Immutable = 5, + gfs2fl_AppendOnly = 6, + gfs2fl_NoAtime = 7, + gfs2fl_Sync = 8, + gfs2fl_System = 9, + gfs2fl_TopLevel = 10, + gfs2fl_TruncInProg = 29, + gfs2fl_InheritDirectio = 30, + gfs2fl_InheritJdata = 31, +}; + +/* Dinode flags */ +#define GFS2_DIF_JDATA 0x00000001 +#define GFS2_DIF_EXHASH 0x00000002 +#define GFS2_DIF_UNUSED 0x00000004 /* only in gfs1 */ +#define GFS2_DIF_EA_INDIRECT 0x00000008 +#define GFS2_DIF_DIRECTIO 0x00000010 +#define GFS2_DIF_IMMUTABLE 0x00000020 +#define GFS2_DIF_APPENDONLY 0x00000040 +#define GFS2_DIF_NOATIME 0x00000080 +#define GFS2_DIF_SYNC 0x00000100 +#define GFS2_DIF_SYSTEM 0x00000200 /* New in gfs2 */ +#define GFS2_DIF_TOPDIR 0x00000400 /* New in gfs2 */ +#define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */ +#define GFS2_DIF_INHERIT_DIRECTIO 0x40000000 /* only in gfs1 */ +#define GFS2_DIF_INHERIT_JDATA 0x80000000 + +struct gfs2_dinode { + struct gfs2_meta_header di_header; + + struct gfs2_inum di_num; + + __be32 di_mode; /* mode of file */ + __be32 di_uid; /* owner's user id */ + __be32 di_gid; /* owner's group id */ + __be32 di_nlink; /* number of links to this file */ + __be64 di_size; /* number of bytes in file */ + __be64 di_blocks; /* number of blocks in file */ + __be64 di_atime; /* time last accessed */ + __be64 di_mtime; /* time last modified */ + __be64 di_ctime; /* time last changed */ + __be32 di_major; /* device major number */ + __be32 di_minor; /* device minor number */ + + /* This section varies from gfs1. Padding added to align with + * remainder of dinode + */ + __be64 di_goal_meta; /* rgrp to alloc from next */ + __be64 di_goal_data; /* data block goal */ + __be64 di_generation; /* generation number for NFS */ + + __be32 di_flags; /* GFS2_DIF_... */ + __be32 di_payload_format; /* GFS2_FORMAT_... */ + __u16 __pad1; /* Was ditype in gfs1 */ + __be16 di_height; /* height of metadata */ + __u32 __pad2; /* Unused incarnation number from gfs1 */ + + /* These only apply to directories */ + __u16 __pad3; /* Padding */ + __be16 di_depth; /* Number of bits in the table */ + __be32 di_entries; /* The number of entries in the directory */ + + struct gfs2_inum __pad4; /* Unused even in current gfs1 */ + + __be64 di_eattr; /* extended attribute block number */ + __be32 di_atime_nsec; /* nsec portion of atime */ + __be32 di_mtime_nsec; /* nsec portion of mtime */ + __be32 di_ctime_nsec; /* nsec portion of ctime */ + + __u8 di_reserved[44]; +}; + +/* + * directory structure - many of these per directory file + */ + +#define GFS2_FNAMESIZE 255 +#define GFS2_DIRENT_SIZE(name_len) ((sizeof(struct gfs2_dirent) + (name_len) + 7) & ~7) + +struct gfs2_dirent { + struct gfs2_inum de_inum; + __be32 de_hash; + __be16 de_rec_len; + __be16 de_name_len; + __be16 de_type; + __u8 __pad[14]; +}; + +/* + * Header of leaf directory nodes + */ + +struct gfs2_leaf { + struct gfs2_meta_header lf_header; + + __be16 lf_depth; /* Depth of leaf */ + __be16 lf_entries; /* Number of dirents in leaf */ + __be32 lf_dirent_format; /* Format of the dirents */ + __be64 lf_next; /* Next leaf, if overflow */ + + __u8 lf_reserved[64]; +}; + +/* + * Extended attribute header format + * + * This works in a similar way to dirents. There is a fixed size header + * followed by a variable length section made up of the name and the + * associated data. In the case of a "stuffed" entry, the value is + * __inline__ directly after the name, the ea_num_ptrs entry will be + * zero in that case. For non-"stuffed" entries, there will be + * a set of pointers (aligned to 8 byte boundary) to the block(s) + * containing the value. + * + * The blocks containing the values and the blocks containing the + * extended attribute headers themselves all start with the common + * metadata header. Each inode, if it has extended attributes, will + * have either a single block containing the extended attribute headers + * or a single indirect block pointing to blocks containing the + * extended attribure headers. + * + * The maximim size of the data part of an extended attribute is 64k + * so the number of blocks required depends upon block size. Since the + * block size also determines the number of pointers in an indirect + * block, its a fairly complicated calculation to work out the maximum + * number of blocks that an inode may have relating to extended attributes. + * + */ + +#define GFS2_EA_MAX_NAME_LEN 255 +#define GFS2_EA_MAX_DATA_LEN 65536 + +#define GFS2_EATYPE_UNUSED 0 +#define GFS2_EATYPE_USR 1 +#define GFS2_EATYPE_SYS 2 +#define GFS2_EATYPE_SECURITY 3 + +#define GFS2_EATYPE_LAST 3 +#define GFS2_EATYPE_VALID(x) ((x) <= GFS2_EATYPE_LAST) + +#define GFS2_EAFLAG_LAST 0x01 /* last ea in block */ + +struct gfs2_ea_header { + __be32 ea_rec_len; + __be32 ea_data_len; + __u8 ea_name_len; /* no NULL pointer after the string */ + __u8 ea_type; /* GFS2_EATYPE_... */ + __u8 ea_flags; /* GFS2_EAFLAG_... */ + __u8 ea_num_ptrs; + __u32 __pad; +}; + +/* + * Log header structure + */ + +#define GFS2_LOG_HEAD_UNMOUNT 0x00000001 /* log is clean */ + +struct gfs2_log_header { + struct gfs2_meta_header lh_header; + + __be64 lh_sequence; /* Sequence number of this transaction */ + __be32 lh_flags; /* GFS2_LOG_HEAD_... */ + __be32 lh_tail; /* Block number of log tail */ + __be32 lh_blkno; + __be32 lh_hash; +}; + +/* + * Log type descriptor + */ + +#define GFS2_LOG_DESC_METADATA 300 +/* ld_data1 is the number of metadata blocks in the descriptor. + ld_data2 is unused. */ + +#define GFS2_LOG_DESC_REVOKE 301 +/* ld_data1 is the number of revoke blocks in the descriptor. + ld_data2 is unused. */ + +#define GFS2_LOG_DESC_JDATA 302 +/* ld_data1 is the number of data blocks in the descriptor. + ld_data2 is unused. */ + +struct gfs2_log_descriptor { + struct gfs2_meta_header ld_header; + + __be32 ld_type; /* GFS2_LOG_DESC_... */ + __be32 ld_length; /* Number of buffers in this chunk */ + __be32 ld_data1; /* descriptor-specific field */ + __be32 ld_data2; /* descriptor-specific field */ + + __u8 ld_reserved[32]; +}; + +/* + * Inum Range + * Describe a range of formal inode numbers allocated to + * one machine to assign to inodes. + */ + +#define GFS2_INUM_QUANTUM 1048576 + +struct gfs2_inum_range { + __be64 ir_start; + __be64 ir_length; +}; + +/* + * Statfs change + * Describes an change to the pool of free and allocated + * blocks. + */ + +struct gfs2_statfs_change { + __be64 sc_total; + __be64 sc_free; + __be64 sc_dinodes; +}; + +/* + * Quota change + * Describes an allocation change for a particular + * user or group. + */ + +#define GFS2_QCF_USER 0x00000001 + +struct gfs2_quota_change { + __be64 qc_change; + __be32 qc_flags; /* GFS2_QCF_... */ + __be32 qc_id; +}; + +struct gfs2_quota_lvb { + __be32 qb_magic; + __u32 __pad; + __be64 qb_limit; /* Hard limit of # blocks to alloc */ + __be64 qb_warn; /* Warn user when alloc is above this # */ + __be64 qb_value; /* Current # blocks allocated */ +}; + +#endif /* __GFS2_ONDISK_DOT_H__ */ diff --git a/kernel_headers/linux/gigaset_dev.h b/kernel_headers/linux/gigaset_dev.h new file mode 100644 index 0000000..258ba82 --- /dev/null +++ b/kernel_headers/linux/gigaset_dev.h @@ -0,0 +1,38 @@ +/* + * interface to user space for the gigaset driver + * + * Copyright (c) 2004 by Hansjoerg Lipp + * + * ===================================================================== + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * ===================================================================== + */ + +#ifndef GIGASET_INTERFACE_H +#define GIGASET_INTERFACE_H + +#include + +/* The magic IOCTL value for this interface. */ +#define GIGASET_IOCTL 0x47 + +/* enable/disable device control via character device (lock out ISDN subsys) */ +#define GIGASET_REDIR _IOWR(GIGASET_IOCTL, 0, int) + +/* enable adapter configuration mode (M10x only) */ +#define GIGASET_CONFIG _IOWR(GIGASET_IOCTL, 1, int) + +/* set break characters (M105 only) */ +#define GIGASET_BRKCHARS _IOW(GIGASET_IOCTL, 2, unsigned char[6]) + +/* get version information selected by arg[0] */ +#define GIGASET_VERSION _IOWR(GIGASET_IOCTL, 3, unsigned[4]) +/* values for GIGASET_VERSION arg[0] */ +#define GIGVER_DRIVER 0 /* get driver version */ +#define GIGVER_COMPAT 1 /* get interface compatibility version */ +#define GIGVER_FWBASE 2 /* get base station firmware version */ + +#endif diff --git a/kernel_headers/linux/hbtp_input.h b/kernel_headers/linux/hbtp_input.h new file mode 100644 index 0000000..22788f9 --- /dev/null +++ b/kernel_headers/linux/hbtp_input.h @@ -0,0 +1,56 @@ +#ifndef _HBTP_INPUT_H +#define _HBTP_INPUT_H + +#include + +#define HBTP_MAX_FINGER 20 +#define HBTP_ABS_MT_FIRST ABS_MT_TOUCH_MAJOR +#define HBTP_ABS_MT_LAST ABS_MT_TOOL_Y + +struct hbtp_input_touch { + bool active; + __s32 tool; + __s32 x; + __s32 y; + __s32 pressure; + __s32 major; + __s32 minor; + __s32 orientation; +}; + +struct hbtp_input_mt { + __s32 num_touches; + struct hbtp_input_touch touches[HBTP_MAX_FINGER]; + struct timeval time_val; +}; + +struct hbtp_input_absinfo { + bool active; + __u16 code; + __s32 minimum; + __s32 maximum; +}; + +enum hbtp_afe_power_cmd { + HBTP_AFE_POWER_ON, + HBTP_AFE_POWER_OFF, +}; + +struct hbtp_input_key { + __u32 code; + __s32 value; +}; + +/* ioctl */ +#define HBTP_INPUT_IOCTL_BASE 'T' +#define HBTP_SET_ABSPARAM _IOW(HBTP_INPUT_IOCTL_BASE, 201, \ + struct hbtp_input_absinfo *) +#define HBTP_SET_TOUCHDATA _IOW(HBTP_INPUT_IOCTL_BASE, 202, \ + struct hbtp_input_mt) +#define HBTP_SET_POWERSTATE _IOW(HBTP_INPUT_IOCTL_BASE, 203, \ + enum hbtp_afe_power_cmd) +#define HBTP_SET_KEYDATA _IOW(HBTP_INPUT_IOCTL_BASE, 204, \ + struct hbtp_input_key) + +#endif /* _HBTP_INPUT_H */ + diff --git a/kernel_headers/linux/hdlc.h b/kernel_headers/linux/hdlc.h new file mode 100644 index 0000000..89e484d --- /dev/null +++ b/kernel_headers/linux/hdlc.h @@ -0,0 +1,23 @@ +/* + * Generic HDLC support routines for Linux + * + * Copyright (C) 1999-2005 Krzysztof Halasa + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +#ifndef __HDLC_H +#define __HDLC_H + + +#define HDLC_MAX_MTU 1500 /* Ethernet 1500 bytes */ +#if 0 +#define HDLC_MAX_MRU (HDLC_MAX_MTU + 10 + 14 + 4) /* for ETH+VLAN over FR */ +#else +#define HDLC_MAX_MRU 1600 /* as required for FR network */ +#endif + + +#endif /* __HDLC_H */ diff --git a/kernel_headers/linux/hdlc/..install.cmd b/kernel_headers/linux/hdlc/..install.cmd new file mode 100644 index 0000000..8dba08a --- /dev/null +++ b/kernel_headers/linux/hdlc/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hdlc/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hdlc /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/hdlc ioctl.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hdlc /android/kernels/moto/surnia/kernel-msm/include/linux/hdlc ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hdlc /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/hdlc ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hdlc/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hdlc/.install diff --git a/kernel_headers/linux/hdlc/.install b/kernel_headers/linux/hdlc/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/hdlc/ioctl.h b/kernel_headers/linux/hdlc/ioctl.h new file mode 100644 index 0000000..04bc027 --- /dev/null +++ b/kernel_headers/linux/hdlc/ioctl.h @@ -0,0 +1,84 @@ +#ifndef __HDLC_IOCTL_H__ +#define __HDLC_IOCTL_H__ + + +#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */ + +#define CLOCK_DEFAULT 0 /* Default setting */ +#define CLOCK_EXT 1 /* External TX and RX clock - DTE */ +#define CLOCK_INT 2 /* Internal TX and RX clock - DCE */ +#define CLOCK_TXINT 3 /* Internal TX and external RX clock */ +#define CLOCK_TXFROMRX 4 /* TX clock derived from external RX clock */ + + +#define ENCODING_DEFAULT 0 /* Default setting */ +#define ENCODING_NRZ 1 +#define ENCODING_NRZI 2 +#define ENCODING_FM_MARK 3 +#define ENCODING_FM_SPACE 4 +#define ENCODING_MANCHESTER 5 + + +#define PARITY_DEFAULT 0 /* Default setting */ +#define PARITY_NONE 1 /* No parity */ +#define PARITY_CRC16_PR0 2 /* CRC16, initial value 0x0000 */ +#define PARITY_CRC16_PR1 3 /* CRC16, initial value 0xFFFF */ +#define PARITY_CRC16_PR0_CCITT 4 /* CRC16, initial 0x0000, ITU-T version */ +#define PARITY_CRC16_PR1_CCITT 5 /* CRC16, initial 0xFFFF, ITU-T version */ +#define PARITY_CRC32_PR0_CCITT 6 /* CRC32, initial value 0x00000000 */ +#define PARITY_CRC32_PR1_CCITT 7 /* CRC32, initial value 0xFFFFFFFF */ + +#define LMI_DEFAULT 0 /* Default setting */ +#define LMI_NONE 1 /* No LMI, all PVCs are static */ +#define LMI_ANSI 2 /* ANSI Annex D */ +#define LMI_CCITT 3 /* ITU-T Annex A */ +#define LMI_CISCO 4 /* The "original" LMI, aka Gang of Four */ + +#ifndef __ASSEMBLY__ + +typedef struct { + unsigned int clock_rate; /* bits per second */ + unsigned int clock_type; /* internal, external, TX-internal etc. */ + unsigned short loopback; +} sync_serial_settings; /* V.35, V.24, X.21 */ + +typedef struct { + unsigned int clock_rate; /* bits per second */ + unsigned int clock_type; /* internal, external, TX-internal etc. */ + unsigned short loopback; + unsigned int slot_map; +} te1_settings; /* T1, E1 */ + +typedef struct { + unsigned short encoding; + unsigned short parity; +} raw_hdlc_proto; + +typedef struct { + unsigned int t391; + unsigned int t392; + unsigned int n391; + unsigned int n392; + unsigned int n393; + unsigned short lmi; + unsigned short dce; /* 1 for DCE (network side) operation */ +} fr_proto; + +typedef struct { + unsigned int dlci; +} fr_proto_pvc; /* for creating/deleting FR PVCs */ + +typedef struct { + unsigned int dlci; + char master[IFNAMSIZ]; /* Name of master FRAD device */ +}fr_proto_pvc_info; /* for returning PVC information only */ + +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; + +/* PPP doesn't need any info now - supply length = 0 to ioctl */ + +#endif /* __ASSEMBLY__ */ +#endif /* __HDLC_IOCTL_H__ */ diff --git a/kernel_headers/linux/hdlcdrv.h b/kernel_headers/linux/hdlcdrv.h new file mode 100644 index 0000000..422d965 --- /dev/null +++ b/kernel_headers/linux/hdlcdrv.h @@ -0,0 +1,110 @@ +/* + * hdlcdrv.h -- HDLC packet radio network driver. + * The Linux soundcard driver for 1200 baud and 9600 baud packet radio + * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA + */ + +#ifndef _HDLCDRV_H +#define _HDLCDRV_H + +/* -------------------------------------------------------------------- */ +/* + * structs for the IOCTL commands + */ + +struct hdlcdrv_params { + int iobase; + int irq; + int dma; + int dma2; + int seriobase; + int pariobase; + int midiiobase; +}; + +struct hdlcdrv_channel_params { + int tx_delay; /* the transmitter keyup delay in 10ms units */ + int tx_tail; /* the transmitter keyoff delay in 10ms units */ + int slottime; /* the slottime in 10ms; usually 10 = 100ms */ + int ppersist; /* the p-persistence 0..255 */ + int fulldup; /* some driver do not support full duplex, setting */ + /* this just makes them send even if DCD is on */ +}; + +struct hdlcdrv_old_channel_state { + int ptt; + int dcd; + int ptt_keyed; +}; + +struct hdlcdrv_channel_state { + int ptt; + int dcd; + int ptt_keyed; + unsigned long tx_packets; + unsigned long tx_errors; + unsigned long rx_packets; + unsigned long rx_errors; +}; + +struct hdlcdrv_ioctl { + int cmd; + union { + struct hdlcdrv_params mp; + struct hdlcdrv_channel_params cp; + struct hdlcdrv_channel_state cs; + struct hdlcdrv_old_channel_state ocs; + unsigned int calibrate; + unsigned char bits; + char modename[128]; + char drivername[32]; + } data; +}; + +/* -------------------------------------------------------------------- */ + +/* + * ioctl values + */ +#define HDLCDRVCTL_GETMODEMPAR 0 +#define HDLCDRVCTL_SETMODEMPAR 1 +#define HDLCDRVCTL_MODEMPARMASK 2 /* not handled by hdlcdrv */ +#define HDLCDRVCTL_GETCHANNELPAR 10 +#define HDLCDRVCTL_SETCHANNELPAR 11 +#define HDLCDRVCTL_OLDGETSTAT 20 +#define HDLCDRVCTL_CALIBRATE 21 +#define HDLCDRVCTL_GETSTAT 22 + +/* + * these are mainly for debugging purposes + */ +#define HDLCDRVCTL_GETSAMPLES 30 +#define HDLCDRVCTL_GETBITS 31 + +/* + * not handled by hdlcdrv, but by its depending drivers + */ +#define HDLCDRVCTL_GETMODE 40 +#define HDLCDRVCTL_SETMODE 41 +#define HDLCDRVCTL_MODELIST 42 +#define HDLCDRVCTL_DRIVERNAME 43 + +/* + * mask of needed modem parameters, returned by HDLCDRVCTL_MODEMPARMASK + */ +#define HDLCDRV_PARMASK_IOBASE (1<<0) +#define HDLCDRV_PARMASK_IRQ (1<<1) +#define HDLCDRV_PARMASK_DMA (1<<2) +#define HDLCDRV_PARMASK_DMA2 (1<<3) +#define HDLCDRV_PARMASK_SERIOBASE (1<<4) +#define HDLCDRV_PARMASK_PARIOBASE (1<<5) +#define HDLCDRV_PARMASK_MIDIIOBASE (1<<6) + +/* -------------------------------------------------------------------- */ + + +/* -------------------------------------------------------------------- */ + +#endif /* _HDLCDRV_H */ + +/* -------------------------------------------------------------------- */ diff --git a/kernel_headers/linux/hdreg.h b/kernel_headers/linux/hdreg.h new file mode 100644 index 0000000..774173f --- /dev/null +++ b/kernel_headers/linux/hdreg.h @@ -0,0 +1,642 @@ +#ifndef _LINUX_HDREG_H +#define _LINUX_HDREG_H + +#include + +/* + * Command Header sizes for IOCTL commands + */ + +#define HDIO_DRIVE_CMD_HDR_SIZE (4 * sizeof(__u8)) +#define HDIO_DRIVE_HOB_HDR_SIZE (8 * sizeof(__u8)) +#define HDIO_DRIVE_TASK_HDR_SIZE (8 * sizeof(__u8)) + +#define IDE_DRIVE_TASK_NO_DATA 0 +#define IDE_DRIVE_TASK_INVALID -1 +#define IDE_DRIVE_TASK_SET_XFER 1 +#define IDE_DRIVE_TASK_IN 2 +#define IDE_DRIVE_TASK_OUT 3 +#define IDE_DRIVE_TASK_RAW_WRITE 4 + +/* + * Define standard taskfile in/out register + */ +#define IDE_TASKFILE_STD_IN_FLAGS 0xFE +#define IDE_HOB_STD_IN_FLAGS 0x3C +#define IDE_TASKFILE_STD_OUT_FLAGS 0xFE +#define IDE_HOB_STD_OUT_FLAGS 0x3C + +typedef unsigned char task_ioreg_t; +typedef unsigned long sata_ioreg_t; + +typedef union ide_reg_valid_s { + unsigned all : 16; + struct { + unsigned data : 1; + unsigned error_feature : 1; + unsigned sector : 1; + unsigned nsector : 1; + unsigned lcyl : 1; + unsigned hcyl : 1; + unsigned select : 1; + unsigned status_command : 1; + + unsigned data_hob : 1; + unsigned error_feature_hob : 1; + unsigned sector_hob : 1; + unsigned nsector_hob : 1; + unsigned lcyl_hob : 1; + unsigned hcyl_hob : 1; + unsigned select_hob : 1; + unsigned control_hob : 1; + } b; +} ide_reg_valid_t; + +typedef struct ide_task_request_s { + __u8 io_ports[8]; + __u8 hob_ports[8]; /* bytes 6 and 7 are unused */ + ide_reg_valid_t out_flags; + ide_reg_valid_t in_flags; + int data_phase; + int req_cmd; + unsigned long out_size; + unsigned long in_size; +} ide_task_request_t; + +typedef struct ide_ioctl_request_s { + ide_task_request_t *task_request; + unsigned char *out_buffer; + unsigned char *in_buffer; +} ide_ioctl_request_t; + +struct hd_drive_cmd_hdr { + __u8 command; + __u8 sector_number; + __u8 feature; + __u8 sector_count; +}; + +typedef struct hd_drive_task_hdr { + __u8 data; + __u8 feature; + __u8 sector_count; + __u8 sector_number; + __u8 low_cylinder; + __u8 high_cylinder; + __u8 device_head; + __u8 command; +} task_struct_t; + +typedef struct hd_drive_hob_hdr { + __u8 data; + __u8 feature; + __u8 sector_count; + __u8 sector_number; + __u8 low_cylinder; + __u8 high_cylinder; + __u8 device_head; + __u8 control; +} hob_struct_t; + +#define TASKFILE_NO_DATA 0x0000 + +#define TASKFILE_IN 0x0001 +#define TASKFILE_MULTI_IN 0x0002 + +#define TASKFILE_OUT 0x0004 +#define TASKFILE_MULTI_OUT 0x0008 +#define TASKFILE_IN_OUT 0x0010 + +#define TASKFILE_IN_DMA 0x0020 +#define TASKFILE_OUT_DMA 0x0040 +#define TASKFILE_IN_DMAQ 0x0080 +#define TASKFILE_OUT_DMAQ 0x0100 + +#define TASKFILE_P_IN 0x0200 +#define TASKFILE_P_OUT 0x0400 +#define TASKFILE_P_IN_DMA 0x0800 +#define TASKFILE_P_OUT_DMA 0x1000 +#define TASKFILE_P_IN_DMAQ 0x2000 +#define TASKFILE_P_OUT_DMAQ 0x4000 +#define TASKFILE_48 0x8000 +#define TASKFILE_INVALID 0x7fff + +/* ATA/ATAPI Commands pre T13 Spec */ +#define WIN_NOP 0x00 +/* + * 0x01->0x02 Reserved + */ +#define CFA_REQ_EXT_ERROR_CODE 0x03 /* CFA Request Extended Error Code */ +/* + * 0x04->0x07 Reserved + */ +#define WIN_SRST 0x08 /* ATAPI soft reset command */ +#define WIN_DEVICE_RESET 0x08 +/* + * 0x09->0x0F Reserved + */ +#define WIN_RECAL 0x10 +#define WIN_RESTORE WIN_RECAL +/* + * 0x10->0x1F Reserved + */ +#define WIN_READ 0x20 /* 28-Bit */ +#define WIN_READ_ONCE 0x21 /* 28-Bit without retries */ +#define WIN_READ_LONG 0x22 /* 28-Bit */ +#define WIN_READ_LONG_ONCE 0x23 /* 28-Bit without retries */ +#define WIN_READ_EXT 0x24 /* 48-Bit */ +#define WIN_READDMA_EXT 0x25 /* 48-Bit */ +#define WIN_READDMA_QUEUED_EXT 0x26 /* 48-Bit */ +#define WIN_READ_NATIVE_MAX_EXT 0x27 /* 48-Bit */ +/* + * 0x28 + */ +#define WIN_MULTREAD_EXT 0x29 /* 48-Bit */ +/* + * 0x2A->0x2F Reserved + */ +#define WIN_WRITE 0x30 /* 28-Bit */ +#define WIN_WRITE_ONCE 0x31 /* 28-Bit without retries */ +#define WIN_WRITE_LONG 0x32 /* 28-Bit */ +#define WIN_WRITE_LONG_ONCE 0x33 /* 28-Bit without retries */ +#define WIN_WRITE_EXT 0x34 /* 48-Bit */ +#define WIN_WRITEDMA_EXT 0x35 /* 48-Bit */ +#define WIN_WRITEDMA_QUEUED_EXT 0x36 /* 48-Bit */ +#define WIN_SET_MAX_EXT 0x37 /* 48-Bit */ +#define CFA_WRITE_SECT_WO_ERASE 0x38 /* CFA Write Sectors without erase */ +#define WIN_MULTWRITE_EXT 0x39 /* 48-Bit */ +/* + * 0x3A->0x3B Reserved + */ +#define WIN_WRITE_VERIFY 0x3C /* 28-Bit */ +/* + * 0x3D->0x3F Reserved + */ +#define WIN_VERIFY 0x40 /* 28-Bit - Read Verify Sectors */ +#define WIN_VERIFY_ONCE 0x41 /* 28-Bit - without retries */ +#define WIN_VERIFY_EXT 0x42 /* 48-Bit */ +/* + * 0x43->0x4F Reserved + */ +#define WIN_FORMAT 0x50 +/* + * 0x51->0x5F Reserved + */ +#define WIN_INIT 0x60 +/* + * 0x61->0x5F Reserved + */ +#define WIN_SEEK 0x70 /* 0x70-0x7F Reserved */ + +#define CFA_TRANSLATE_SECTOR 0x87 /* CFA Translate Sector */ +#define WIN_DIAGNOSE 0x90 +#define WIN_SPECIFY 0x91 /* set drive geometry translation */ +#define WIN_DOWNLOAD_MICROCODE 0x92 +#define WIN_STANDBYNOW2 0x94 +#define WIN_STANDBY2 0x96 +#define WIN_SETIDLE2 0x97 +#define WIN_CHECKPOWERMODE2 0x98 +#define WIN_SLEEPNOW2 0x99 +/* + * 0x9A VENDOR + */ +#define WIN_PACKETCMD 0xA0 /* Send a packet command. */ +#define WIN_PIDENTIFY 0xA1 /* identify ATAPI device */ +#define WIN_QUEUED_SERVICE 0xA2 +#define WIN_SMART 0xB0 /* self-monitoring and reporting */ +#define CFA_ERASE_SECTORS 0xC0 +#define WIN_MULTREAD 0xC4 /* read sectors using multiple mode*/ +#define WIN_MULTWRITE 0xC5 /* write sectors using multiple mode */ +#define WIN_SETMULT 0xC6 /* enable/disable multiple mode */ +#define WIN_READDMA_QUEUED 0xC7 /* read sectors using Queued DMA transfers */ +#define WIN_READDMA 0xC8 /* read sectors using DMA transfers */ +#define WIN_READDMA_ONCE 0xC9 /* 28-Bit - without retries */ +#define WIN_WRITEDMA 0xCA /* write sectors using DMA transfers */ +#define WIN_WRITEDMA_ONCE 0xCB /* 28-Bit - without retries */ +#define WIN_WRITEDMA_QUEUED 0xCC /* write sectors using Queued DMA transfers */ +#define CFA_WRITE_MULTI_WO_ERASE 0xCD /* CFA Write multiple without erase */ +#define WIN_GETMEDIASTATUS 0xDA +#define WIN_ACKMEDIACHANGE 0xDB /* ATA-1, ATA-2 vendor */ +#define WIN_POSTBOOT 0xDC +#define WIN_PREBOOT 0xDD +#define WIN_DOORLOCK 0xDE /* lock door on removable drives */ +#define WIN_DOORUNLOCK 0xDF /* unlock door on removable drives */ +#define WIN_STANDBYNOW1 0xE0 +#define WIN_IDLEIMMEDIATE 0xE1 /* force drive to become "ready" */ +#define WIN_STANDBY 0xE2 /* Set device in Standby Mode */ +#define WIN_SETIDLE1 0xE3 +#define WIN_READ_BUFFER 0xE4 /* force read only 1 sector */ +#define WIN_CHECKPOWERMODE1 0xE5 +#define WIN_SLEEPNOW1 0xE6 +#define WIN_FLUSH_CACHE 0xE7 +#define WIN_WRITE_BUFFER 0xE8 /* force write only 1 sector */ +#define WIN_WRITE_SAME 0xE9 /* read ata-2 to use */ + /* SET_FEATURES 0x22 or 0xDD */ +#define WIN_FLUSH_CACHE_EXT 0xEA /* 48-Bit */ +#define WIN_IDENTIFY 0xEC /* ask drive to identify itself */ +#define WIN_MEDIAEJECT 0xED +#define WIN_IDENTIFY_DMA 0xEE /* same as WIN_IDENTIFY, but DMA */ +#define WIN_SETFEATURES 0xEF /* set special drive features */ +#define EXABYTE_ENABLE_NEST 0xF0 +#define WIN_SECURITY_SET_PASS 0xF1 +#define WIN_SECURITY_UNLOCK 0xF2 +#define WIN_SECURITY_ERASE_PREPARE 0xF3 +#define WIN_SECURITY_ERASE_UNIT 0xF4 +#define WIN_SECURITY_FREEZE_LOCK 0xF5 +#define WIN_SECURITY_DISABLE 0xF6 +#define WIN_READ_NATIVE_MAX 0xF8 /* return the native maximum address */ +#define WIN_SET_MAX 0xF9 +#define DISABLE_SEAGATE 0xFB + +/* WIN_SMART sub-commands */ + +#define SMART_READ_VALUES 0xD0 +#define SMART_READ_THRESHOLDS 0xD1 +#define SMART_AUTOSAVE 0xD2 +#define SMART_SAVE 0xD3 +#define SMART_IMMEDIATE_OFFLINE 0xD4 +#define SMART_READ_LOG_SECTOR 0xD5 +#define SMART_WRITE_LOG_SECTOR 0xD6 +#define SMART_WRITE_THRESHOLDS 0xD7 +#define SMART_ENABLE 0xD8 +#define SMART_DISABLE 0xD9 +#define SMART_STATUS 0xDA +#define SMART_AUTO_OFFLINE 0xDB + +/* Password used in TF4 & TF5 executing SMART commands */ + +#define SMART_LCYL_PASS 0x4F +#define SMART_HCYL_PASS 0xC2 + +/* WIN_SETFEATURES sub-commands */ +#define SETFEATURES_EN_8BIT 0x01 /* Enable 8-Bit Transfers */ +#define SETFEATURES_EN_WCACHE 0x02 /* Enable write cache */ +#define SETFEATURES_DIS_DEFECT 0x04 /* Disable Defect Management */ +#define SETFEATURES_EN_APM 0x05 /* Enable advanced power management */ +#define SETFEATURES_EN_SAME_R 0x22 /* for a region ATA-1 */ +#define SETFEATURES_DIS_MSN 0x31 /* Disable Media Status Notification */ +#define SETFEATURES_DIS_RETRY 0x33 /* Disable Retry */ +#define SETFEATURES_EN_AAM 0x42 /* Enable Automatic Acoustic Management */ +#define SETFEATURES_RW_LONG 0x44 /* Set Length of VS bytes */ +#define SETFEATURES_SET_CACHE 0x54 /* Set Cache segments to SC Reg. Val */ +#define SETFEATURES_DIS_RLA 0x55 /* Disable read look-ahead feature */ +#define SETFEATURES_EN_RI 0x5D /* Enable release interrupt */ +#define SETFEATURES_EN_SI 0x5E /* Enable SERVICE interrupt */ +#define SETFEATURES_DIS_RPOD 0x66 /* Disable reverting to power on defaults */ +#define SETFEATURES_DIS_ECC 0x77 /* Disable ECC byte count */ +#define SETFEATURES_DIS_8BIT 0x81 /* Disable 8-Bit Transfers */ +#define SETFEATURES_DIS_WCACHE 0x82 /* Disable write cache */ +#define SETFEATURES_EN_DEFECT 0x84 /* Enable Defect Management */ +#define SETFEATURES_DIS_APM 0x85 /* Disable advanced power management */ +#define SETFEATURES_EN_ECC 0x88 /* Enable ECC byte count */ +#define SETFEATURES_EN_MSN 0x95 /* Enable Media Status Notification */ +#define SETFEATURES_EN_RETRY 0x99 /* Enable Retry */ +#define SETFEATURES_EN_RLA 0xAA /* Enable read look-ahead feature */ +#define SETFEATURES_PREFETCH 0xAB /* Sets drive prefetch value */ +#define SETFEATURES_EN_REST 0xAC /* ATA-1 */ +#define SETFEATURES_4B_RW_LONG 0xBB /* Set Length of 4 bytes */ +#define SETFEATURES_DIS_AAM 0xC2 /* Disable Automatic Acoustic Management */ +#define SETFEATURES_EN_RPOD 0xCC /* Enable reverting to power on defaults */ +#define SETFEATURES_DIS_RI 0xDD /* Disable release interrupt ATAPI */ +#define SETFEATURES_EN_SAME_M 0xDD /* for a entire device ATA-1 */ +#define SETFEATURES_DIS_SI 0xDE /* Disable SERVICE interrupt ATAPI */ + +/* WIN_SECURITY sub-commands */ + +#define SECURITY_SET_PASSWORD 0xBA +#define SECURITY_UNLOCK 0xBB +#define SECURITY_ERASE_PREPARE 0xBC +#define SECURITY_ERASE_UNIT 0xBD +#define SECURITY_FREEZE_LOCK 0xBE +#define SECURITY_DISABLE_PASSWORD 0xBF + +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + unsigned long start; +}; + +/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */ +#define HDIO_GETGEO 0x0301 /* get device geometry */ +#define HDIO_GET_UNMASKINTR 0x0302 /* get current unmask setting */ +#define HDIO_GET_MULTCOUNT 0x0304 /* get current IDE blockmode setting */ +#define HDIO_GET_QDMA 0x0305 /* get use-qdma flag */ + +#define HDIO_SET_XFER 0x0306 /* set transfer rate via proc */ + +#define HDIO_OBSOLETE_IDENTITY 0x0307 /* OBSOLETE, DO NOT USE: returns 142 bytes */ +#define HDIO_GET_KEEPSETTINGS 0x0308 /* get keep-settings-on-reset flag */ +#define HDIO_GET_32BIT 0x0309 /* get current io_32bit setting */ +#define HDIO_GET_NOWERR 0x030a /* get ignore-write-error flag */ +#define HDIO_GET_DMA 0x030b /* get use-dma flag */ +#define HDIO_GET_NICE 0x030c /* get nice flags */ +#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */ +#define HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */ +#define HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */ +#define HDIO_GET_ADDRESS 0x0310 /* */ + +#define HDIO_GET_BUSSTATE 0x031a /* get the bus state of the hwif */ +#define HDIO_TRISTATE_HWIF 0x031b /* execute a channel tristate */ +#define HDIO_DRIVE_RESET 0x031c /* execute a device reset */ +#define HDIO_DRIVE_TASKFILE 0x031d /* execute raw taskfile */ +#define HDIO_DRIVE_TASK 0x031e /* execute task and special drive command */ +#define HDIO_DRIVE_CMD 0x031f /* execute a special drive command */ +#define HDIO_DRIVE_CMD_AEB HDIO_DRIVE_TASK + +/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */ +#define HDIO_SET_MULTCOUNT 0x0321 /* change IDE blockmode */ +#define HDIO_SET_UNMASKINTR 0x0322 /* permit other irqs during I/O */ +#define HDIO_SET_KEEPSETTINGS 0x0323 /* keep ioctl settings on reset */ +#define HDIO_SET_32BIT 0x0324 /* change io_32bit flags */ +#define HDIO_SET_NOWERR 0x0325 /* change ignore-write-error flag */ +#define HDIO_SET_DMA 0x0326 /* change use-dma flag */ +#define HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */ +#define HDIO_SCAN_HWIF 0x0328 /* register and (re)scan interface */ +#define HDIO_UNREGISTER_HWIF 0x032a /* unregister interface */ +#define HDIO_SET_NICE 0x0329 /* set nice flags */ +#define HDIO_SET_WCACHE 0x032b /* change write cache enable-disable */ +#define HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */ +#define HDIO_SET_BUSSTATE 0x032d /* set the bus state of the hwif */ +#define HDIO_SET_QDMA 0x032e /* change use-qdma flag */ +#define HDIO_SET_ADDRESS 0x032f /* change lba addressing modes */ + +/* bus states */ +enum { + BUSSTATE_OFF = 0, + BUSSTATE_ON, + BUSSTATE_TRISTATE +}; + +/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x033n/0x033n */ +/* 0x330 is reserved - used to be HDIO_GETGEO_BIG */ +/* 0x331 is reserved - used to be HDIO_GETGEO_BIG_RAW */ +/* 0x338 is reserved - used to be HDIO_SET_IDE_SCSI */ +/* 0x339 is reserved - used to be HDIO_SET_SCSI_IDE */ + +#define __NEW_HD_DRIVE_ID + +/* + * Structure returned by HDIO_GET_IDENTITY, as per ANSI NCITS ATA6 rev.1b spec. + * + * If you change something here, please remember to update fix_driveid() in + * ide/probe.c. + */ +struct hd_driveid { + unsigned short config; /* lots of obsolete bit flags */ + unsigned short cyls; /* Obsolete, "physical" cyls */ + unsigned short reserved2; /* reserved (word 2) */ + unsigned short heads; /* Obsolete, "physical" heads */ + unsigned short track_bytes; /* unformatted bytes per track */ + unsigned short sector_bytes; /* unformatted bytes per sector */ + unsigned short sectors; /* Obsolete, "physical" sectors per track */ + unsigned short vendor0; /* vendor unique */ + unsigned short vendor1; /* vendor unique */ + unsigned short vendor2; /* Retired vendor unique */ + unsigned char serial_no[20]; /* 0 = not_specified */ + unsigned short buf_type; /* Retired */ + unsigned short buf_size; /* Retired, 512 byte increments + * 0 = not_specified + */ + unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */ + unsigned char fw_rev[8]; /* 0 = not_specified */ + unsigned char model[40]; /* 0 = not_specified */ + unsigned char max_multsect; /* 0=not_implemented */ + unsigned char vendor3; /* vendor unique */ + unsigned short dword_io; /* 0=not_implemented; 1=implemented */ + unsigned char vendor4; /* vendor unique */ + unsigned char capability; /* (upper byte of word 49) + * 3: IORDYsup + * 2: IORDYsw + * 1: LBA + * 0: DMA + */ + unsigned short reserved50; /* reserved (word 50) */ + unsigned char vendor5; /* Obsolete, vendor unique */ + unsigned char tPIO; /* Obsolete, 0=slow, 1=medium, 2=fast */ + unsigned char vendor6; /* Obsolete, vendor unique */ + unsigned char tDMA; /* Obsolete, 0=slow, 1=medium, 2=fast */ + unsigned short field_valid; /* (word 53) + * 2: ultra_ok word 88 + * 1: eide_ok words 64-70 + * 0: cur_ok words 54-58 + */ + unsigned short cur_cyls; /* Obsolete, logical cylinders */ + unsigned short cur_heads; /* Obsolete, l heads */ + unsigned short cur_sectors; /* Obsolete, l sectors per track */ + unsigned short cur_capacity0; /* Obsolete, l total sectors on drive */ + unsigned short cur_capacity1; /* Obsolete, (2 words, misaligned int) */ + unsigned char multsect; /* current multiple sector count */ + unsigned char multsect_valid; /* when (bit0==1) multsect is ok */ + unsigned int lba_capacity; /* Obsolete, total number of sectors */ + unsigned short dma_1word; /* Obsolete, single-word dma info */ + unsigned short dma_mword; /* multiple-word dma info */ + unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */ + unsigned short eide_dma_min; /* min mword dma cycle time (ns) */ + unsigned short eide_dma_time; /* recommended mword dma cycle time (ns) */ + unsigned short eide_pio; /* min cycle time (ns), no IORDY */ + unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */ + unsigned short words69_70[2]; /* reserved words 69-70 + * future command overlap and queuing + */ + unsigned short words71_74[4]; /* reserved words 71-74 + * for IDENTIFY PACKET DEVICE command + */ + unsigned short queue_depth; /* (word 75) + * 15:5 reserved + * 4:0 Maximum queue depth -1 + */ + unsigned short words76_79[4]; /* reserved words 76-79 */ + unsigned short major_rev_num; /* (word 80) */ + unsigned short minor_rev_num; /* (word 81) */ + unsigned short command_set_1; /* (word 82) supported + * 15: Obsolete + * 14: NOP command + * 13: READ_BUFFER + * 12: WRITE_BUFFER + * 11: Obsolete + * 10: Host Protected Area + * 9: DEVICE Reset + * 8: SERVICE Interrupt + * 7: Release Interrupt + * 6: look-ahead + * 5: write cache + * 4: PACKET Command + * 3: Power Management Feature Set + * 2: Removable Feature Set + * 1: Security Feature Set + * 0: SMART Feature Set + */ + unsigned short command_set_2; /* (word 83) + * 15: Shall be ZERO + * 14: Shall be ONE + * 13: FLUSH CACHE EXT + * 12: FLUSH CACHE + * 11: Device Configuration Overlay + * 10: 48-bit Address Feature Set + * 9: Automatic Acoustic Management + * 8: SET MAX security + * 7: reserved 1407DT PARTIES + * 6: SetF sub-command Power-Up + * 5: Power-Up in Standby Feature Set + * 4: Removable Media Notification + * 3: APM Feature Set + * 2: CFA Feature Set + * 1: READ/WRITE DMA QUEUED + * 0: Download MicroCode + */ + unsigned short cfsse; /* (word 84) + * cmd set-feature supported extensions + * 15: Shall be ZERO + * 14: Shall be ONE + * 13:6 reserved + * 5: General Purpose Logging + * 4: Streaming Feature Set + * 3: Media Card Pass Through + * 2: Media Serial Number Valid + * 1: SMART selt-test supported + * 0: SMART error logging + */ + unsigned short cfs_enable_1; /* (word 85) + * command set-feature enabled + * 15: Obsolete + * 14: NOP command + * 13: READ_BUFFER + * 12: WRITE_BUFFER + * 11: Obsolete + * 10: Host Protected Area + * 9: DEVICE Reset + * 8: SERVICE Interrupt + * 7: Release Interrupt + * 6: look-ahead + * 5: write cache + * 4: PACKET Command + * 3: Power Management Feature Set + * 2: Removable Feature Set + * 1: Security Feature Set + * 0: SMART Feature Set + */ + unsigned short cfs_enable_2; /* (word 86) + * command set-feature enabled + * 15: Shall be ZERO + * 14: Shall be ONE + * 13: FLUSH CACHE EXT + * 12: FLUSH CACHE + * 11: Device Configuration Overlay + * 10: 48-bit Address Feature Set + * 9: Automatic Acoustic Management + * 8: SET MAX security + * 7: reserved 1407DT PARTIES + * 6: SetF sub-command Power-Up + * 5: Power-Up in Standby Feature Set + * 4: Removable Media Notification + * 3: APM Feature Set + * 2: CFA Feature Set + * 1: READ/WRITE DMA QUEUED + * 0: Download MicroCode + */ + unsigned short csf_default; /* (word 87) + * command set-feature default + * 15: Shall be ZERO + * 14: Shall be ONE + * 13:6 reserved + * 5: General Purpose Logging enabled + * 4: Valid CONFIGURE STREAM executed + * 3: Media Card Pass Through enabled + * 2: Media Serial Number Valid + * 1: SMART selt-test supported + * 0: SMART error logging + */ + unsigned short dma_ultra; /* (word 88) */ + unsigned short trseuc; /* time required for security erase */ + unsigned short trsEuc; /* time required for enhanced erase */ + unsigned short CurAPMvalues; /* current APM values */ + unsigned short mprc; /* master password revision code */ + unsigned short hw_config; /* hardware config (word 93) + * 15: Shall be ZERO + * 14: Shall be ONE + * 13: + * 12: + * 11: + * 10: + * 9: + * 8: + * 7: + * 6: + * 5: + * 4: + * 3: + * 2: + * 1: + * 0: Shall be ONE + */ + unsigned short acoustic; /* (word 94) + * 15:8 Vendor's recommended value + * 7:0 current value + */ + unsigned short msrqs; /* min stream request size */ + unsigned short sxfert; /* stream transfer time */ + unsigned short sal; /* stream access latency */ + unsigned int spg; /* stream performance granularity */ + unsigned long long lba_capacity_2;/* 48-bit total number of sectors */ + unsigned short words104_125[22];/* reserved words 104-125 */ + unsigned short last_lun; /* (word 126) */ + unsigned short word127; /* (word 127) Feature Set + * Removable Media Notification + * 15:2 reserved + * 1:0 00 = not supported + * 01 = supported + * 10 = reserved + * 11 = reserved + */ + unsigned short dlf; /* (word 128) + * device lock function + * 15:9 reserved + * 8 security level 1:max 0:high + * 7:6 reserved + * 5 enhanced erase + * 4 expire + * 3 frozen + * 2 locked + * 1 en/disabled + * 0 capability + */ + unsigned short csfo; /* (word 129) + * current set features options + * 15:4 reserved + * 3: auto reassign + * 2: reverting + * 1: read-look-ahead + * 0: write cache + */ + unsigned short words130_155[26];/* reserved vendor words 130-155 */ + unsigned short word156; /* reserved vendor word 156 */ + unsigned short words157_159[3];/* reserved vendor words 157-159 */ + unsigned short cfa_power; /* (word 160) CFA Power Mode + * 15 word 160 supported + * 14 reserved + * 13 + * 12 + * 11:0 + */ + unsigned short words161_175[15];/* Reserved for CFA */ + unsigned short words176_205[30];/* Current Media Serial Number */ + unsigned short words206_254[49];/* reserved words 206-254 */ + unsigned short integrity_word; /* (word 255) + * 15:8 Checksum + * 7:0 Signature + */ +}; + +/* + * IDE "nice" flags. These are used on a per drive basis to determine + * when to be nice and give more bandwidth to the other devices which + * share the same IDE bus. + */ +#define IDE_NICE_DSC_OVERLAP (0) /* per the DSC overlap protocol */ +#define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */ +#define IDE_NICE_1 (3) /* when probably won't affect us much */ +#define IDE_NICE_0 (2) /* when sure that it won't affect us */ +#define IDE_NICE_2 (4) /* when we know it's on our expense */ + +#endif /* _LINUX_HDREG_H */ diff --git a/kernel_headers/linux/hid.h b/kernel_headers/linux/hid.h new file mode 100644 index 0000000..2c23ba6 --- /dev/null +++ b/kernel_headers/linux/hid.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999 Andreas Gal + * Copyright (c) 2000-2001 Vojtech Pavlik + * Copyright (c) 2006-2007 Jiri Kosina + */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Should you need to contact me, the author, you can do so either by + * e-mail - mail your message to , or by paper mail: + * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic + */ +#ifndef __HID_H +#define __HID_H + + + +/* + * USB HID (Human Interface Device) interface class code + */ + +#define USB_INTERFACE_CLASS_HID 3 + +/* + * USB HID interface subclass and protocol codes + */ + +#define USB_INTERFACE_SUBCLASS_BOOT 1 +#define USB_INTERFACE_PROTOCOL_KEYBOARD 1 +#define USB_INTERFACE_PROTOCOL_MOUSE 2 + +/* + * HID class requests + */ + +#define HID_REQ_GET_REPORT 0x01 +#define HID_REQ_GET_IDLE 0x02 +#define HID_REQ_GET_PROTOCOL 0x03 +#define HID_REQ_SET_REPORT 0x09 +#define HID_REQ_SET_IDLE 0x0A +#define HID_REQ_SET_PROTOCOL 0x0B + +/* + * HID class descriptor types + */ + +#define HID_DT_HID (USB_TYPE_CLASS | 0x01) +#define HID_DT_REPORT (USB_TYPE_CLASS | 0x02) +#define HID_DT_PHYSICAL (USB_TYPE_CLASS | 0x03) + +#define HID_MAX_DESCRIPTOR_SIZE 4096 + + +#endif /* __HID_H */ diff --git a/kernel_headers/linux/hiddev.h b/kernel_headers/linux/hiddev.h new file mode 100644 index 0000000..e24ca19 --- /dev/null +++ b/kernel_headers/linux/hiddev.h @@ -0,0 +1,212 @@ +/* + * Copyright (c) 1999-2000 Vojtech Pavlik + * + * Sponsored by SuSE + */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Should you need to contact me, the author, you can do so either by + * e-mail - mail your message to , or by paper mail: + * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic + */ +#ifndef _HIDDEV_H +#define _HIDDEV_H + + + +#include + +/* + * The event structure itself + */ + +struct hiddev_event { + unsigned hid; + signed int value; +}; + +struct hiddev_devinfo { + __u32 bustype; + __u32 busnum; + __u32 devnum; + __u32 ifnum; + __s16 vendor; + __s16 product; + __s16 version; + __u32 num_applications; +}; + +struct hiddev_collection_info { + __u32 index; + __u32 type; + __u32 usage; + __u32 level; +}; + +#define HID_STRING_SIZE 256 +struct hiddev_string_descriptor { + __s32 index; + char value[HID_STRING_SIZE]; +}; + +struct hiddev_report_info { + __u32 report_type; + __u32 report_id; + __u32 num_fields; +}; + +/* To do a GUSAGE/SUSAGE, fill in at least usage_code, report_type and + * report_id. Set report_id to REPORT_ID_UNKNOWN if the rest of the fields + * are unknown. Otherwise use a usage_ref struct filled in from a previous + * successful GUSAGE call to save time. To actually send a value to the + * device, perform a SUSAGE first, followed by a SREPORT. An INITREPORT or a + * GREPORT isn't necessary for a GUSAGE to return valid data. + */ +#define HID_REPORT_ID_UNKNOWN 0xffffffff +#define HID_REPORT_ID_FIRST 0x00000100 +#define HID_REPORT_ID_NEXT 0x00000200 +#define HID_REPORT_ID_MASK 0x000000ff +#define HID_REPORT_ID_MAX 0x000000ff + +#define HID_REPORT_TYPE_INPUT 1 +#define HID_REPORT_TYPE_OUTPUT 2 +#define HID_REPORT_TYPE_FEATURE 3 +#define HID_REPORT_TYPE_MIN 1 +#define HID_REPORT_TYPE_MAX 3 + +struct hiddev_field_info { + __u32 report_type; + __u32 report_id; + __u32 field_index; + __u32 maxusage; + __u32 flags; + __u32 physical; /* physical usage for this field */ + __u32 logical; /* logical usage for this field */ + __u32 application; /* application usage for this field */ + __s32 logical_minimum; + __s32 logical_maximum; + __s32 physical_minimum; + __s32 physical_maximum; + __u32 unit_exponent; + __u32 unit; +}; + +/* Fill in report_type, report_id and field_index to get the information on a + * field. + */ +#define HID_FIELD_CONSTANT 0x001 +#define HID_FIELD_VARIABLE 0x002 +#define HID_FIELD_RELATIVE 0x004 +#define HID_FIELD_WRAP 0x008 +#define HID_FIELD_NONLINEAR 0x010 +#define HID_FIELD_NO_PREFERRED 0x020 +#define HID_FIELD_NULL_STATE 0x040 +#define HID_FIELD_VOLATILE 0x080 +#define HID_FIELD_BUFFERED_BYTE 0x100 + +struct hiddev_usage_ref { + __u32 report_type; + __u32 report_id; + __u32 field_index; + __u32 usage_index; + __u32 usage_code; + __s32 value; +}; + +/* hiddev_usage_ref_multi is used for sending multiple bytes to a control. + * It really manifests itself as setting the value of consecutive usages */ +#define HID_MAX_MULTI_USAGES 1024 +struct hiddev_usage_ref_multi { + struct hiddev_usage_ref uref; + __u32 num_values; + __s32 values[HID_MAX_MULTI_USAGES]; +}; + +/* FIELD_INDEX_NONE is returned in read() data from the kernel when flags + * is set to (HIDDEV_FLAG_UREF | HIDDEV_FLAG_REPORT) and a new report has + * been sent by the device + */ +#define HID_FIELD_INDEX_NONE 0xffffffff + +/* + * Protocol version. + */ + +#define HID_VERSION 0x010004 + +/* + * IOCTLs (0x00 - 0x7f) + */ + +#define HIDIOCGVERSION _IOR('H', 0x01, int) +#define HIDIOCAPPLICATION _IO('H', 0x02) +#define HIDIOCGDEVINFO _IOR('H', 0x03, struct hiddev_devinfo) +#define HIDIOCGSTRING _IOR('H', 0x04, struct hiddev_string_descriptor) +#define HIDIOCINITREPORT _IO('H', 0x05) +#define HIDIOCGNAME(len) _IOC(_IOC_READ, 'H', 0x06, len) +#define HIDIOCGREPORT _IOW('H', 0x07, struct hiddev_report_info) +#define HIDIOCSREPORT _IOW('H', 0x08, struct hiddev_report_info) +#define HIDIOCGREPORTINFO _IOWR('H', 0x09, struct hiddev_report_info) +#define HIDIOCGFIELDINFO _IOWR('H', 0x0A, struct hiddev_field_info) +#define HIDIOCGUSAGE _IOWR('H', 0x0B, struct hiddev_usage_ref) +#define HIDIOCSUSAGE _IOW('H', 0x0C, struct hiddev_usage_ref) +#define HIDIOCGUCODE _IOWR('H', 0x0D, struct hiddev_usage_ref) +#define HIDIOCGFLAG _IOR('H', 0x0E, int) +#define HIDIOCSFLAG _IOW('H', 0x0F, int) +#define HIDIOCGCOLLECTIONINDEX _IOW('H', 0x10, struct hiddev_usage_ref) +#define HIDIOCGCOLLECTIONINFO _IOWR('H', 0x11, struct hiddev_collection_info) +#define HIDIOCGPHYS(len) _IOC(_IOC_READ, 'H', 0x12, len) + +/* For writing/reading to multiple/consecutive usages */ +#define HIDIOCGUSAGES _IOWR('H', 0x13, struct hiddev_usage_ref_multi) +#define HIDIOCSUSAGES _IOW('H', 0x14, struct hiddev_usage_ref_multi) + +/* + * Flags to be used in HIDIOCSFLAG + */ +#define HIDDEV_FLAG_UREF 0x1 +#define HIDDEV_FLAG_REPORT 0x2 +#define HIDDEV_FLAGS 0x3 + +/* To traverse the input report descriptor info for a HID device, perform the + * following: + * + * rinfo.report_type = HID_REPORT_TYPE_INPUT; + * rinfo.report_id = HID_REPORT_ID_FIRST; + * ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo); + * + * while (ret >= 0) { + * for (i = 0; i < rinfo.num_fields; i++) { + * finfo.report_type = rinfo.report_type; + * finfo.report_id = rinfo.report_id; + * finfo.field_index = i; + * ioctl(fd, HIDIOCGFIELDINFO, &finfo); + * for (j = 0; j < finfo.maxusage; j++) { + * uref.report_type = rinfo.report_type; + * uref.report_id = rinfo.report_id; + * uref.field_index = i; + * uref.usage_index = j; + * ioctl(fd, HIDIOCGUCODE, &uref); + * ioctl(fd, HIDIOCGUSAGE, &uref); + * } + * } + * rinfo.report_id |= HID_REPORT_ID_NEXT; + * ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo); + * } + */ + + +#endif /* _HIDDEV_H */ diff --git a/kernel_headers/linux/hidraw.h b/kernel_headers/linux/hidraw.h new file mode 100644 index 0000000..e781b0e --- /dev/null +++ b/kernel_headers/linux/hidraw.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2007 Jiri Kosina + */ +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + */ +#ifndef _HIDRAW_H +#define _HIDRAW_H + + + +#include +#include + +struct hidraw_report_descriptor { + __u32 size; + __u8 value[HID_MAX_DESCRIPTOR_SIZE]; +}; + +struct hidraw_devinfo { + __u32 bustype; + __s16 vendor; + __s16 product; +}; + +/* ioctl interface */ +#define HIDIOCGRDESCSIZE _IOR('H', 0x01, int) +#define HIDIOCGRDESC _IOR('H', 0x02, struct hidraw_report_descriptor) +#define HIDIOCGRAWINFO _IOR('H', 0x03, struct hidraw_devinfo) +#define HIDIOCGRAWNAME(len) _IOC(_IOC_READ, 'H', 0x04, len) +#define HIDIOCGRAWPHYS(len) _IOC(_IOC_READ, 'H', 0x05, len) +/* The first byte of SFEATURE and GFEATURE is the report number */ +#define HIDIOCSFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len) +#define HIDIOCGFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len) + +#define HIDRAW_FIRST_MINOR 0 +#define HIDRAW_MAX_DEVICES 64 +/* number of reports to buffer */ +#define HIDRAW_BUFFER_SIZE 64 + + +/* kernel-only API declarations */ + +#endif /* _HIDRAW_H */ diff --git a/kernel_headers/linux/hpet.h b/kernel_headers/linux/hpet.h new file mode 100644 index 0000000..031f16f --- /dev/null +++ b/kernel_headers/linux/hpet.h @@ -0,0 +1,25 @@ +#ifndef __HPET__ +#define __HPET__ + + + + +struct hpet_info { + unsigned long hi_ireqfreq; /* Hz */ + unsigned long hi_flags; /* information */ + unsigned short hi_hpet; + unsigned short hi_timer; +}; + +#define HPET_INFO_PERIODIC 0x0010 /* periodic-capable comparator */ + +#define HPET_IE_ON _IO('h', 0x01) /* interrupt on */ +#define HPET_IE_OFF _IO('h', 0x02) /* interrupt off */ +#define HPET_INFO _IOR('h', 0x03, struct hpet_info) +#define HPET_EPI _IO('h', 0x04) /* enable periodic */ +#define HPET_DPI _IO('h', 0x05) /* disable periodic */ +#define HPET_IRQFREQ _IOW('h', 0x6, unsigned long) /* IRQFREQ usec */ + +#define MAX_HPET_TBS 8 /* maximum hpet timer blocks */ + +#endif /* __HPET__ */ diff --git a/kernel_headers/linux/hsi/..install.cmd b/kernel_headers/linux/hsi/..install.cmd new file mode 100644 index 0000000..9bee67a --- /dev/null +++ b/kernel_headers/linux/hsi/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hsi/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hsi /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/hsi hsi_char.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hsi /android/kernels/moto/surnia/kernel-msm/include/linux/hsi ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hsi /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/hsi ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hsi/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/hsi/.install diff --git a/kernel_headers/linux/hsi/.install b/kernel_headers/linux/hsi/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/hsi/hsi_char.h b/kernel_headers/linux/hsi/hsi_char.h new file mode 100644 index 0000000..76160b4 --- /dev/null +++ b/kernel_headers/linux/hsi/hsi_char.h @@ -0,0 +1,63 @@ +/* + * Part of the HSI character device driver. + * + * Copyright (C) 2010 Nokia Corporation. All rights reserved. + * + * Contact: Andras Domokos + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + + +#ifndef __HSI_CHAR_H +#define __HSI_CHAR_H + +#define HSI_CHAR_MAGIC 'k' +#define HSC_IOW(num, dtype) _IOW(HSI_CHAR_MAGIC, num, dtype) +#define HSC_IOR(num, dtype) _IOR(HSI_CHAR_MAGIC, num, dtype) +#define HSC_IOWR(num, dtype) _IOWR(HSI_CHAR_MAGIC, num, dtype) +#define HSC_IO(num) _IO(HSI_CHAR_MAGIC, num) + +#define HSC_RESET HSC_IO(16) +#define HSC_SET_PM HSC_IO(17) +#define HSC_SEND_BREAK HSC_IO(18) +#define HSC_SET_RX HSC_IOW(19, struct hsc_rx_config) +#define HSC_GET_RX HSC_IOW(20, struct hsc_rx_config) +#define HSC_SET_TX HSC_IOW(21, struct hsc_tx_config) +#define HSC_GET_TX HSC_IOW(22, struct hsc_tx_config) + +#define HSC_PM_DISABLE 0 +#define HSC_PM_ENABLE 1 + +#define HSC_MODE_STREAM 1 +#define HSC_MODE_FRAME 2 +#define HSC_FLOW_SYNC 0 +#define HSC_ARB_RR 0 +#define HSC_ARB_PRIO 1 + +struct hsc_rx_config { + uint32_t mode; + uint32_t flow; + uint32_t channels; +}; + +struct hsc_tx_config { + uint32_t mode; + uint32_t channels; + uint32_t speed; + uint32_t arb_mode; +}; + +#endif /* __HSI_CHAR_H */ diff --git a/kernel_headers/linux/hw_breakpoint.h b/kernel_headers/linux/hw_breakpoint.h new file mode 100644 index 0000000..32486ee --- /dev/null +++ b/kernel_headers/linux/hw_breakpoint.h @@ -0,0 +1,30 @@ +#ifndef _LINUX_HW_BREAKPOINT_H +#define _LINUX_HW_BREAKPOINT_H + +enum { + HW_BREAKPOINT_LEN_1 = 1, + HW_BREAKPOINT_LEN_2 = 2, + HW_BREAKPOINT_LEN_4 = 4, + HW_BREAKPOINT_LEN_8 = 8, +}; + +enum { + HW_BREAKPOINT_EMPTY = 0, + HW_BREAKPOINT_R = 1, + HW_BREAKPOINT_W = 2, + HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W, + HW_BREAKPOINT_X = 4, + HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, +}; + +enum bp_type_idx { + TYPE_INST = 0, +#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + +#endif /* _LINUX_HW_BREAKPOINT_H */ diff --git a/kernel_headers/linux/hysdn_if.h b/kernel_headers/linux/hysdn_if.h new file mode 100644 index 0000000..00236ae --- /dev/null +++ b/kernel_headers/linux/hysdn_if.h @@ -0,0 +1,33 @@ +/* $Id: hysdn_if.h,v 1.1.8.3 2001/09/23 22:25:05 kai Exp $ + * + * Linux driver for HYSDN cards + * ioctl definitions shared by hynetmgr and driver. + * + * Author Werner Cornelius (werner@titro.de) for Hypercope GmbH + * Copyright 1999 by Werner Cornelius (werner@titro.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +/****************/ +/* error values */ +/****************/ +#define ERR_NONE 0 /* no error occurred */ +#define ERR_ALREADY_BOOT 1000 /* we are already booting */ +#define EPOF_BAD_MAGIC 1001 /* bad magic in POF header */ +#define ERR_BOARD_DPRAM 1002 /* board DPRAM failed */ +#define EPOF_INTERNAL 1003 /* internal POF handler error */ +#define EPOF_BAD_IMG_SIZE 1004 /* POF boot image size invalid */ +#define ERR_BOOTIMG_FAIL 1005 /* 1. stage boot image did not start */ +#define ERR_BOOTSEQ_FAIL 1006 /* 2. stage boot seq handshake timeout */ +#define ERR_POF_TIMEOUT 1007 /* timeout waiting for card pof ready */ +#define ERR_NOT_BOOTED 1008 /* operation only allowed when booted */ +#define ERR_CONF_LONG 1009 /* conf line is too long */ +#define ERR_INV_CHAN 1010 /* invalid channel number */ +#define ERR_ASYNC_TIME 1011 /* timeout sending async data */ + + + + diff --git a/kernel_headers/linux/i2c-dev.h b/kernel_headers/linux/i2c-dev.h new file mode 100644 index 0000000..839d25a --- /dev/null +++ b/kernel_headers/linux/i2c-dev.h @@ -0,0 +1,72 @@ +/* + i2c-dev.h - i2c-bus driver, char device interface + + Copyright (C) 1995-97 Simon G. Vogl + Copyright (C) 1998-99 Frodo Looijaard + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +#ifndef _LINUX_I2C_DEV_H +#define _LINUX_I2C_DEV_H + +#include + + +/* /dev/i2c-X ioctl commands. The ioctl's parameter is always an + * unsigned long, except for: + * - I2C_FUNCS, takes pointer to an unsigned long + * - I2C_RDWR, takes pointer to struct i2c_rdwr_ioctl_data + * - I2C_SMBUS, takes pointer to struct i2c_smbus_ioctl_data + */ +#define I2C_RETRIES 0x0701 /* number of times a device address should + be polled when not acknowledging */ +#define I2C_TIMEOUT 0x0702 /* set timeout in units of 10 ms */ + +/* NOTE: Slave address is 7 or 10 bits, but 10-bit addresses + * are NOT supported! (due to code brokenness) + */ +#define I2C_SLAVE 0x0703 /* Use this slave address */ +#define I2C_SLAVE_FORCE 0x0706 /* Use this slave address, even if it + is already in use by a driver! */ +#define I2C_TENBIT 0x0704 /* 0 for 7 bit addrs, != 0 for 10 bit */ + +#define I2C_FUNCS 0x0705 /* Get the adapter functionality mask */ + +#define I2C_RDWR 0x0707 /* Combined R/W transfer (one STOP only) */ + +#define I2C_PEC 0x0708 /* != 0 to use PEC with SMBus */ +#define I2C_SMBUS 0x0720 /* SMBus transfer */ + + +/* This is the structure as used in the I2C_SMBUS ioctl call */ +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data *data; +}; + +/* This is the structure as used in the I2C_RDWR ioctl call */ +struct i2c_rdwr_ioctl_data { + struct i2c_msg *msgs; /* pointers to i2c_msgs */ + __u32 nmsgs; /* number of i2c_msgs */ +}; + +#define I2C_RDRW_IOCTL_MAX_MSGS 42 + + +#endif /* _LINUX_I2C_DEV_H */ diff --git a/kernel_headers/linux/i2c.h b/kernel_headers/linux/i2c.h new file mode 100644 index 0000000..0f2f95b --- /dev/null +++ b/kernel_headers/linux/i2c.h @@ -0,0 +1,151 @@ +/* ------------------------------------------------------------------------- */ +/* */ +/* i2c.h - definitions for the i2c-bus interface */ +/* */ +/* ------------------------------------------------------------------------- */ +/* Copyright (C) 1995-2000 Simon G. Vogl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301 USA. */ +/* ------------------------------------------------------------------------- */ + +/* With some changes from Kyösti Mälkki and + Frodo Looijaard */ + +#ifndef _LINUX_I2C_H +#define _LINUX_I2C_H + +#include + +/** + * struct i2c_msg - an I2C transaction segment beginning with START + * @addr: Slave address, either seven or ten bits. When this is a ten + * bit address, I2C_M_TEN must be set in @flags and the adapter + * must support I2C_FUNC_10BIT_ADDR. + * @flags: I2C_M_RD is handled by all adapters. No other flags may be + * provided unless the adapter exported the relevant I2C_FUNC_* + * flags through i2c_check_functionality(). + * @len: Number of data bytes in @buf being read from or written to the + * I2C slave address. For read transactions where I2C_M_RECV_LEN + * is set, the caller guarantees that this buffer can hold up to + * 32 bytes in addition to the initial length byte sent by the + * slave (plus, if used, the SMBus PEC); and this value will be + * incremented by the number of block data bytes received. + * @buf: The buffer into which data is read, or from which it's written. + * + * An i2c_msg is the low level representation of one segment of an I2C + * transaction. It is visible to drivers in the @i2c_transfer() procedure, + * to userspace from i2c-dev, and to I2C adapter drivers through the + * @i2c_adapter.@master_xfer() method. + * + * Except when I2C "protocol mangling" is used, all I2C adapters implement + * the standard rules for I2C transactions. Each transaction begins with a + * START. That is followed by the slave address, and a bit encoding read + * versus write. Then follow all the data bytes, possibly including a byte + * with SMBus PEC. The transfer terminates with a NAK, or when all those + * bytes have been transferred and ACKed. If this is the last message in a + * group, it is followed by a STOP. Otherwise it is followed by the next + * @i2c_msg transaction segment, beginning with a (repeated) START. + * + * Alternatively, when the adapter supports I2C_FUNC_PROTOCOL_MANGLING then + * passing certain @flags may have changed those standard protocol behaviors. + * Those flags are only for use with broken/nonconforming slaves, and with + * adapters which are known to support the specific mangling options they + * need (one or more of IGNORE_NAK, NO_RD_ACK, NOSTART, and REV_DIR_ADDR). + */ +struct i2c_msg { + __u16 addr; /* slave address */ + __u16 flags; +#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ +#define I2C_M_RD 0x0001 /* read data, from slave to master */ +#define I2C_M_STOP 0x8000 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_NOSTART */ +#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ + __u16 len; /* msg length */ + __u8 *buf; /* pointer to msg data */ +}; + +/* To determine what functionality is present */ + +#define I2C_FUNC_I2C 0x00000001 +#define I2C_FUNC_10BIT_ADDR 0x00000002 +#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_IGNORE_NAK etc. */ +#define I2C_FUNC_SMBUS_PEC 0x00000008 +#define I2C_FUNC_NOSTART 0x00000010 /* I2C_M_NOSTART */ +#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */ +#define I2C_FUNC_SMBUS_QUICK 0x00010000 +#define I2C_FUNC_SMBUS_READ_BYTE 0x00020000 +#define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000 +#define I2C_FUNC_SMBUS_READ_BYTE_DATA 0x00080000 +#define I2C_FUNC_SMBUS_WRITE_BYTE_DATA 0x00100000 +#define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000 +#define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000 +#define I2C_FUNC_SMBUS_PROC_CALL 0x00800000 +#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000 +#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000 +#define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000 /* I2C-like block xfer */ +#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */ + +#define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \ + I2C_FUNC_SMBUS_WRITE_BYTE) +#define I2C_FUNC_SMBUS_BYTE_DATA (I2C_FUNC_SMBUS_READ_BYTE_DATA | \ + I2C_FUNC_SMBUS_WRITE_BYTE_DATA) +#define I2C_FUNC_SMBUS_WORD_DATA (I2C_FUNC_SMBUS_READ_WORD_DATA | \ + I2C_FUNC_SMBUS_WRITE_WORD_DATA) +#define I2C_FUNC_SMBUS_BLOCK_DATA (I2C_FUNC_SMBUS_READ_BLOCK_DATA | \ + I2C_FUNC_SMBUS_WRITE_BLOCK_DATA) +#define I2C_FUNC_SMBUS_I2C_BLOCK (I2C_FUNC_SMBUS_READ_I2C_BLOCK | \ + I2C_FUNC_SMBUS_WRITE_I2C_BLOCK) + +#define I2C_FUNC_SMBUS_EMUL (I2C_FUNC_SMBUS_QUICK | \ + I2C_FUNC_SMBUS_BYTE | \ + I2C_FUNC_SMBUS_BYTE_DATA | \ + I2C_FUNC_SMBUS_WORD_DATA | \ + I2C_FUNC_SMBUS_PROC_CALL | \ + I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | \ + I2C_FUNC_SMBUS_I2C_BLOCK | \ + I2C_FUNC_SMBUS_PEC) + +/* + * Data for SMBus Messages + */ +#define I2C_SMBUS_BLOCK_MAX 32 /* As specified in SMBus standard */ +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[I2C_SMBUS_BLOCK_MAX + 2]; /* block[0] is used for length */ + /* and one more for user-space compatibility */ +}; + +/* i2c_smbus_xfer read or write markers */ +#define I2C_SMBUS_READ 1 +#define I2C_SMBUS_WRITE 0 + +/* SMBus transaction types (size parameter in the above functions) + Note: these no longer correspond to the (arbitrary) PIIX4 internal codes! */ +#define I2C_SMBUS_QUICK 0 +#define I2C_SMBUS_BYTE 1 +#define I2C_SMBUS_BYTE_DATA 2 +#define I2C_SMBUS_WORD_DATA 3 +#define I2C_SMBUS_PROC_CALL 4 +#define I2C_SMBUS_BLOCK_DATA 5 +#define I2C_SMBUS_I2C_BLOCK_BROKEN 6 +#define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */ +#define I2C_SMBUS_I2C_BLOCK_DATA 8 + +#endif /* _LINUX_I2C_H */ diff --git a/kernel_headers/linux/i2o-dev.h b/kernel_headers/linux/i2o-dev.h new file mode 100644 index 0000000..4fb30a4 --- /dev/null +++ b/kernel_headers/linux/i2o-dev.h @@ -0,0 +1,421 @@ +/* + * I2O user space accessible structures/APIs + * + * (c) Copyright 1999, 2000 Red Hat Software + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + ************************************************************************* + * + * This header file defines the I2O APIs that are available to both + * the kernel and user level applications. Kernel specific structures + * are defined in i2o_osm. OSMs should include _only_ i2o_osm.h which + * automatically includes this file. + * + */ + +#ifndef _I2O_DEV_H +#define _I2O_DEV_H + +/* How many controllers are we allowing */ +#define MAX_I2O_CONTROLLERS 32 + +#include +#include + +/* + * I2O Control IOCTLs and structures + */ +#define I2O_MAGIC_NUMBER 'i' +#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS]) +#define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct) +#define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct) +#define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget) +#define I2OPARMGET _IOWR(I2O_MAGIC_NUMBER,4,struct i2o_cmd_psetget) +#define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer) +#define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer) +#define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer) +#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,__u32) +#define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html) +#define I2OEVTREG _IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id) +#define I2OEVTGET _IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info) +#define I2OPASSTHRU _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru) +#define I2OPASSTHRU32 _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru32) + +struct i2o_cmd_passthru32 { + unsigned int iop; /* IOP unit number */ + __u32 msg; /* message */ +}; + +struct i2o_cmd_passthru { + unsigned int iop; /* IOP unit number */ + void *msg; /* message */ +}; + +struct i2o_cmd_hrtlct { + unsigned int iop; /* IOP unit number */ + void *resbuf; /* Buffer for result */ + unsigned int *reslen; /* Buffer length in bytes */ +}; + +struct i2o_cmd_psetget { + unsigned int iop; /* IOP unit number */ + unsigned int tid; /* Target device TID */ + void *opbuf; /* Operation List buffer */ + unsigned int oplen; /* Operation List buffer length in bytes */ + void *resbuf; /* Result List buffer */ + unsigned int *reslen; /* Result List buffer length in bytes */ +}; + +struct i2o_sw_xfer { + unsigned int iop; /* IOP unit number */ + unsigned char flags; /* Flags field */ + unsigned char sw_type; /* Software type */ + unsigned int sw_id; /* Software ID */ + void *buf; /* Pointer to software buffer */ + unsigned int *swlen; /* Length of software data */ + unsigned int *maxfrag; /* Maximum fragment count */ + unsigned int *curfrag; /* Current fragment count */ +}; + +struct i2o_html { + unsigned int iop; /* IOP unit number */ + unsigned int tid; /* Target device ID */ + unsigned int page; /* HTML page */ + void *resbuf; /* Buffer for reply HTML page */ + unsigned int *reslen; /* Length in bytes of reply buffer */ + void *qbuf; /* Pointer to HTTP query string */ + unsigned int qlen; /* Length in bytes of query string buffer */ +}; + +#define I2O_EVT_Q_LEN 32 + +struct i2o_evt_id { + unsigned int iop; + unsigned int tid; + unsigned int evt_mask; +}; + +/* Event data size = frame size - message header + evt indicator */ +#define I2O_EVT_DATA_SIZE 88 + +struct i2o_evt_info { + struct i2o_evt_id id; + unsigned char evt_data[I2O_EVT_DATA_SIZE]; + unsigned int data_size; +}; + +struct i2o_evt_get { + struct i2o_evt_info info; + int pending; + int lost; +}; + +typedef struct i2o_sg_io_hdr { + unsigned int flags; /* see I2O_DPT_SG_IO_FLAGS */ +} i2o_sg_io_hdr_t; + +/************************************************************************** + * HRT related constants and structures + **************************************************************************/ +#define I2O_BUS_LOCAL 0 +#define I2O_BUS_ISA 1 +#define I2O_BUS_EISA 2 +/* was I2O_BUS_MCA 3 */ +#define I2O_BUS_PCI 4 +#define I2O_BUS_PCMCIA 5 +#define I2O_BUS_NUBUS 6 +#define I2O_BUS_CARDBUS 7 +#define I2O_BUS_UNKNOWN 0x80 + +typedef struct _i2o_pci_bus { + __u8 PciFunctionNumber; + __u8 PciDeviceNumber; + __u8 PciBusNumber; + __u8 reserved; + __u16 PciVendorID; + __u16 PciDeviceID; +} i2o_pci_bus; + +typedef struct _i2o_local_bus { + __u16 LbBaseIOPort; + __u16 reserved; + __u32 LbBaseMemoryAddress; +} i2o_local_bus; + +typedef struct _i2o_isa_bus { + __u16 IsaBaseIOPort; + __u8 CSN; + __u8 reserved; + __u32 IsaBaseMemoryAddress; +} i2o_isa_bus; + +typedef struct _i2o_eisa_bus_info { + __u16 EisaBaseIOPort; + __u8 reserved; + __u8 EisaSlotNumber; + __u32 EisaBaseMemoryAddress; +} i2o_eisa_bus; + +typedef struct _i2o_mca_bus { + __u16 McaBaseIOPort; + __u8 reserved; + __u8 McaSlotNumber; + __u32 McaBaseMemoryAddress; +} i2o_mca_bus; + +typedef struct _i2o_other_bus { + __u16 BaseIOPort; + __u16 reserved; + __u32 BaseMemoryAddress; +} i2o_other_bus; + +typedef struct _i2o_hrt_entry { + __u32 adapter_id; + __u32 parent_tid:12; + __u32 state:4; + __u32 bus_num:8; + __u32 bus_type:8; + union { + i2o_pci_bus pci_bus; + i2o_local_bus local_bus; + i2o_isa_bus isa_bus; + i2o_eisa_bus eisa_bus; + i2o_mca_bus mca_bus; + i2o_other_bus other_bus; + } bus; +} i2o_hrt_entry; + +typedef struct _i2o_hrt { + __u16 num_entries; + __u8 entry_len; + __u8 hrt_version; + __u32 change_ind; + i2o_hrt_entry hrt_entry[1]; +} i2o_hrt; + +typedef struct _i2o_lct_entry { + __u32 entry_size:16; + __u32 tid:12; + __u32 reserved:4; + __u32 change_ind; + __u32 device_flags; + __u32 class_id:12; + __u32 version:4; + __u32 vendor_id:16; + __u32 sub_class; + __u32 user_tid:12; + __u32 parent_tid:12; + __u32 bios_info:8; + __u8 identity_tag[8]; + __u32 event_capabilities; +} i2o_lct_entry; + +typedef struct _i2o_lct { + __u32 table_size:16; + __u32 boot_tid:12; + __u32 lct_ver:4; + __u32 iop_flags; + __u32 change_ind; + i2o_lct_entry lct_entry[1]; +} i2o_lct; + +typedef struct _i2o_status_block { + __u16 org_id; + __u16 reserved; + __u16 iop_id:12; + __u16 reserved1:4; + __u16 host_unit_id; + __u16 segment_number:12; + __u16 i2o_version:4; + __u8 iop_state; + __u8 msg_type; + __u16 inbound_frame_size; + __u8 init_code; + __u8 reserved2; + __u32 max_inbound_frames; + __u32 cur_inbound_frames; + __u32 max_outbound_frames; + char product_id[24]; + __u32 expected_lct_size; + __u32 iop_capabilities; + __u32 desired_mem_size; + __u32 current_mem_size; + __u32 current_mem_base; + __u32 desired_io_size; + __u32 current_io_size; + __u32 current_io_base; + __u32 reserved3:24; + __u32 cmd_status:8; +} i2o_status_block; + +/* Event indicator mask flags */ +#define I2O_EVT_IND_STATE_CHANGE 0x80000000 +#define I2O_EVT_IND_GENERAL_WARNING 0x40000000 +#define I2O_EVT_IND_CONFIGURATION_FLAG 0x20000000 +#define I2O_EVT_IND_LOCK_RELEASE 0x10000000 +#define I2O_EVT_IND_CAPABILITY_CHANGE 0x08000000 +#define I2O_EVT_IND_DEVICE_RESET 0x04000000 +#define I2O_EVT_IND_EVT_MASK_MODIFIED 0x02000000 +#define I2O_EVT_IND_FIELD_MODIFIED 0x01000000 +#define I2O_EVT_IND_VENDOR_EVT 0x00800000 +#define I2O_EVT_IND_DEVICE_STATE 0x00400000 + +/* Executive event indicitors */ +#define I2O_EVT_IND_EXEC_RESOURCE_LIMITS 0x00000001 +#define I2O_EVT_IND_EXEC_CONNECTION_FAIL 0x00000002 +#define I2O_EVT_IND_EXEC_ADAPTER_FAULT 0x00000004 +#define I2O_EVT_IND_EXEC_POWER_FAIL 0x00000008 +#define I2O_EVT_IND_EXEC_RESET_PENDING 0x00000010 +#define I2O_EVT_IND_EXEC_RESET_IMMINENT 0x00000020 +#define I2O_EVT_IND_EXEC_HW_FAIL 0x00000040 +#define I2O_EVT_IND_EXEC_XCT_CHANGE 0x00000080 +#define I2O_EVT_IND_EXEC_NEW_LCT_ENTRY 0x00000100 +#define I2O_EVT_IND_EXEC_MODIFIED_LCT 0x00000200 +#define I2O_EVT_IND_EXEC_DDM_AVAILABILITY 0x00000400 + +/* Random Block Storage Event Indicators */ +#define I2O_EVT_IND_BSA_VOLUME_LOAD 0x00000001 +#define I2O_EVT_IND_BSA_VOLUME_UNLOAD 0x00000002 +#define I2O_EVT_IND_BSA_VOLUME_UNLOAD_REQ 0x00000004 +#define I2O_EVT_IND_BSA_CAPACITY_CHANGE 0x00000008 +#define I2O_EVT_IND_BSA_SCSI_SMART 0x00000010 + +/* Event data for generic events */ +#define I2O_EVT_STATE_CHANGE_NORMAL 0x00 +#define I2O_EVT_STATE_CHANGE_SUSPENDED 0x01 +#define I2O_EVT_STATE_CHANGE_RESTART 0x02 +#define I2O_EVT_STATE_CHANGE_NA_RECOVER 0x03 +#define I2O_EVT_STATE_CHANGE_NA_NO_RECOVER 0x04 +#define I2O_EVT_STATE_CHANGE_QUIESCE_REQUEST 0x05 +#define I2O_EVT_STATE_CHANGE_FAILED 0x10 +#define I2O_EVT_STATE_CHANGE_FAULTED 0x11 + +#define I2O_EVT_GEN_WARNING_NORMAL 0x00 +#define I2O_EVT_GEN_WARNING_ERROR_THRESHOLD 0x01 +#define I2O_EVT_GEN_WARNING_MEDIA_FAULT 0x02 + +#define I2O_EVT_CAPABILITY_OTHER 0x01 +#define I2O_EVT_CAPABILITY_CHANGED 0x02 + +#define I2O_EVT_SENSOR_STATE_CHANGED 0x01 + +/* + * I2O classes / subclasses + */ + +/* Class ID and Code Assignments + * (LCT.ClassID.Version field) + */ +#define I2O_CLASS_VERSION_10 0x00 +#define I2O_CLASS_VERSION_11 0x01 + +/* Class code names + * (from v1.5 Table 6-1 Class Code Assignments.) + */ + +#define I2O_CLASS_EXECUTIVE 0x000 +#define I2O_CLASS_DDM 0x001 +#define I2O_CLASS_RANDOM_BLOCK_STORAGE 0x010 +#define I2O_CLASS_SEQUENTIAL_STORAGE 0x011 +#define I2O_CLASS_LAN 0x020 +#define I2O_CLASS_WAN 0x030 +#define I2O_CLASS_FIBRE_CHANNEL_PORT 0x040 +#define I2O_CLASS_FIBRE_CHANNEL_PERIPHERAL 0x041 +#define I2O_CLASS_SCSI_PERIPHERAL 0x051 +#define I2O_CLASS_ATE_PORT 0x060 +#define I2O_CLASS_ATE_PERIPHERAL 0x061 +#define I2O_CLASS_FLOPPY_CONTROLLER 0x070 +#define I2O_CLASS_FLOPPY_DEVICE 0x071 +#define I2O_CLASS_BUS_ADAPTER 0x080 +#define I2O_CLASS_PEER_TRANSPORT_AGENT 0x090 +#define I2O_CLASS_PEER_TRANSPORT 0x091 +#define I2O_CLASS_END 0xfff + +/* + * Rest of 0x092 - 0x09f reserved for peer-to-peer classes + */ + +#define I2O_CLASS_MATCH_ANYCLASS 0xffffffff + +/* + * Subclasses + */ + +#define I2O_SUBCLASS_i960 0x001 +#define I2O_SUBCLASS_HDM 0x020 +#define I2O_SUBCLASS_ISM 0x021 + +/* Operation functions */ + +#define I2O_PARAMS_FIELD_GET 0x0001 +#define I2O_PARAMS_LIST_GET 0x0002 +#define I2O_PARAMS_MORE_GET 0x0003 +#define I2O_PARAMS_SIZE_GET 0x0004 +#define I2O_PARAMS_TABLE_GET 0x0005 +#define I2O_PARAMS_FIELD_SET 0x0006 +#define I2O_PARAMS_LIST_SET 0x0007 +#define I2O_PARAMS_ROW_ADD 0x0008 +#define I2O_PARAMS_ROW_DELETE 0x0009 +#define I2O_PARAMS_TABLE_CLEAR 0x000A + +/* + * I2O serial number conventions / formats + * (circa v1.5) + */ + +#define I2O_SNFORMAT_UNKNOWN 0 +#define I2O_SNFORMAT_BINARY 1 +#define I2O_SNFORMAT_ASCII 2 +#define I2O_SNFORMAT_UNICODE 3 +#define I2O_SNFORMAT_LAN48_MAC 4 +#define I2O_SNFORMAT_WAN 5 + +/* + * Plus new in v2.0 (Yellowstone pdf doc) + */ + +#define I2O_SNFORMAT_LAN64_MAC 6 +#define I2O_SNFORMAT_DDM 7 +#define I2O_SNFORMAT_IEEE_REG64 8 +#define I2O_SNFORMAT_IEEE_REG128 9 +#define I2O_SNFORMAT_UNKNOWN2 0xff + +/* + * I2O Get Status State values + */ + +#define ADAPTER_STATE_INITIALIZING 0x01 +#define ADAPTER_STATE_RESET 0x02 +#define ADAPTER_STATE_HOLD 0x04 +#define ADAPTER_STATE_READY 0x05 +#define ADAPTER_STATE_OPERATIONAL 0x08 +#define ADAPTER_STATE_FAILED 0x10 +#define ADAPTER_STATE_FAULTED 0x11 + +/* + * Software module types + */ +#define I2O_SOFTWARE_MODULE_IRTOS 0x11 +#define I2O_SOFTWARE_MODULE_IOP_PRIVATE 0x22 +#define I2O_SOFTWARE_MODULE_IOP_CONFIG 0x23 + +/* + * Vendors + */ +#define I2O_VENDOR_DPT 0x001b + +/* + * DPT / Adaptec specific values for i2o_sg_io_hdr flags. + */ +#define I2O_DPT_SG_FLAG_INTERPRET 0x00010000 +#define I2O_DPT_SG_FLAG_PHYSICAL 0x00020000 + +#define I2O_DPT_FLASH_FRAG_SIZE 0x10000 +#define I2O_DPT_FLASH_READ 0x0101 +#define I2O_DPT_FLASH_WRITE 0x0102 + +#endif /* _I2O_DEV_H */ diff --git a/kernel_headers/linux/i8k.h b/kernel_headers/linux/i8k.h new file mode 100644 index 0000000..1c45ba5 --- /dev/null +++ b/kernel_headers/linux/i8k.h @@ -0,0 +1,46 @@ +/* + * i8k.h -- Linux driver for accessing the SMM BIOS on Dell laptops + * + * Copyright (C) 2001 Massimo Dal Zotto + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + */ + +#ifndef _LINUX_I8K_H +#define _LINUX_I8K_H + +#define I8K_PROC "/proc/i8k" +#define I8K_PROC_FMT "1.0" + +#define I8K_BIOS_VERSION _IOR ('i', 0x80, int) /* broken: meant 4 bytes */ +#define I8K_MACHINE_ID _IOR ('i', 0x81, int) /* broken: meant 16 bytes */ +#define I8K_POWER_STATUS _IOR ('i', 0x82, size_t) +#define I8K_FN_STATUS _IOR ('i', 0x83, size_t) +#define I8K_GET_TEMP _IOR ('i', 0x84, size_t) +#define I8K_GET_SPEED _IOWR('i', 0x85, size_t) +#define I8K_GET_FAN _IOWR('i', 0x86, size_t) +#define I8K_SET_FAN _IOWR('i', 0x87, size_t) + +#define I8K_FAN_LEFT 1 +#define I8K_FAN_RIGHT 0 +#define I8K_FAN_OFF 0 +#define I8K_FAN_LOW 1 +#define I8K_FAN_HIGH 2 +#define I8K_FAN_MAX I8K_FAN_HIGH + +#define I8K_VOL_UP 1 +#define I8K_VOL_DOWN 2 +#define I8K_VOL_MUTE 4 + +#define I8K_AC 1 +#define I8K_BATTERY 0 + +#endif diff --git a/kernel_headers/linux/icmp.h b/kernel_headers/linux/icmp.h new file mode 100644 index 0000000..ab58cee --- /dev/null +++ b/kernel_headers/linux/icmp.h @@ -0,0 +1,97 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions for the ICMP protocol. + * + * Version: @(#)icmp.h 1.0.3 04/28/93 + * + * Author: Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_ICMP_H +#define _LINUX_ICMP_H + +#include + +#define ICMP_ECHOREPLY 0 /* Echo Reply */ +#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ +#define ICMP_SOURCE_QUENCH 4 /* Source Quench */ +#define ICMP_REDIRECT 5 /* Redirect (change route) */ +#define ICMP_ECHO 8 /* Echo Request */ +#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */ +#define ICMP_PARAMETERPROB 12 /* Parameter Problem */ +#define ICMP_TIMESTAMP 13 /* Timestamp Request */ +#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */ +#define ICMP_INFO_REQUEST 15 /* Information Request */ +#define ICMP_INFO_REPLY 16 /* Information Reply */ +#define ICMP_ADDRESS 17 /* Address Mask Request */ +#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */ +#define NR_ICMP_TYPES 18 + + +/* Codes for UNREACH. */ +#define ICMP_NET_UNREACH 0 /* Network Unreachable */ +#define ICMP_HOST_UNREACH 1 /* Host Unreachable */ +#define ICMP_PROT_UNREACH 2 /* Protocol Unreachable */ +#define ICMP_PORT_UNREACH 3 /* Port Unreachable */ +#define ICMP_FRAG_NEEDED 4 /* Fragmentation Needed/DF set */ +#define ICMP_SR_FAILED 5 /* Source Route failed */ +#define ICMP_NET_UNKNOWN 6 +#define ICMP_HOST_UNKNOWN 7 +#define ICMP_HOST_ISOLATED 8 +#define ICMP_NET_ANO 9 +#define ICMP_HOST_ANO 10 +#define ICMP_NET_UNR_TOS 11 +#define ICMP_HOST_UNR_TOS 12 +#define ICMP_PKT_FILTERED 13 /* Packet filtered */ +#define ICMP_PREC_VIOLATION 14 /* Precedence violation */ +#define ICMP_PREC_CUTOFF 15 /* Precedence cut off */ +#define NR_ICMP_UNREACH 15 /* instead of hardcoding immediate value */ + +/* Codes for REDIRECT. */ +#define ICMP_REDIR_NET 0 /* Redirect Net */ +#define ICMP_REDIR_HOST 1 /* Redirect Host */ +#define ICMP_REDIR_NETTOS 2 /* Redirect Net for TOS */ +#define ICMP_REDIR_HOSTTOS 3 /* Redirect Host for TOS */ + +/* Codes for TIME_EXCEEDED. */ +#define ICMP_EXC_TTL 0 /* TTL count exceeded */ +#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */ + + +struct icmphdr { + __u8 type; + __u8 code; + __sum16 checksum; + union { + struct { + __be16 id; + __be16 sequence; + } echo; + __be32 gateway; + struct { + __be16 __unused; + __be16 mtu; + } frag; + } un; +}; + + +/* + * constants for (set|get)sockopt + */ + +#define ICMP_FILTER 1 + +struct icmp_filter { + __u32 data; +}; + + +#endif /* _LINUX_ICMP_H */ diff --git a/kernel_headers/linux/icmpv6.h b/kernel_headers/linux/icmpv6.h new file mode 100644 index 0000000..a2e839e --- /dev/null +++ b/kernel_headers/linux/icmpv6.h @@ -0,0 +1,166 @@ +#ifndef _LINUX_ICMPV6_H +#define _LINUX_ICMPV6_H + +#include +#include + +struct icmp6hdr { + + __u8 icmp6_type; + __u8 icmp6_code; + __sum16 icmp6_cksum; + + + union { + __be32 un_data32[1]; + __be16 un_data16[2]; + __u8 un_data8[4]; + + struct icmpv6_echo { + __be16 identifier; + __be16 sequence; + } u_echo; + + struct icmpv6_nd_advt { +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u32 reserved:5, + override:1, + solicited:1, + router:1, + reserved2:24; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u32 router:1, + solicited:1, + override:1, + reserved:29; +#else +#error "Please fix " +#endif + } u_nd_advt; + + struct icmpv6_nd_ra { + __u8 hop_limit; +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 reserved:3, + router_pref:2, + home_agent:1, + other:1, + managed:1; + +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 managed:1, + other:1, + home_agent:1, + router_pref:2, + reserved:3; +#else +#error "Please fix " +#endif + __be16 rt_lifetime; + } u_nd_ra; + + } icmp6_dataun; + +#define icmp6_identifier icmp6_dataun.u_echo.identifier +#define icmp6_sequence icmp6_dataun.u_echo.sequence +#define icmp6_pointer icmp6_dataun.un_data32[0] +#define icmp6_mtu icmp6_dataun.un_data32[0] +#define icmp6_unused icmp6_dataun.un_data32[0] +#define icmp6_maxdelay icmp6_dataun.un_data16[0] +#define icmp6_router icmp6_dataun.u_nd_advt.router +#define icmp6_solicited icmp6_dataun.u_nd_advt.solicited +#define icmp6_override icmp6_dataun.u_nd_advt.override +#define icmp6_ndiscreserved icmp6_dataun.u_nd_advt.reserved +#define icmp6_hop_limit icmp6_dataun.u_nd_ra.hop_limit +#define icmp6_addrconf_managed icmp6_dataun.u_nd_ra.managed +#define icmp6_addrconf_other icmp6_dataun.u_nd_ra.other +#define icmp6_rt_lifetime icmp6_dataun.u_nd_ra.rt_lifetime +#define icmp6_router_pref icmp6_dataun.u_nd_ra.router_pref +}; + + +#define ICMPV6_ROUTER_PREF_LOW 0x3 +#define ICMPV6_ROUTER_PREF_MEDIUM 0x0 +#define ICMPV6_ROUTER_PREF_HIGH 0x1 +#define ICMPV6_ROUTER_PREF_INVALID 0x2 + +#define ICMPV6_DEST_UNREACH 1 +#define ICMPV6_PKT_TOOBIG 2 +#define ICMPV6_TIME_EXCEED 3 +#define ICMPV6_PARAMPROB 4 + +#define ICMPV6_INFOMSG_MASK 0x80 + +#define ICMPV6_ECHO_REQUEST 128 +#define ICMPV6_ECHO_REPLY 129 +#define ICMPV6_MGM_QUERY 130 +#define ICMPV6_MGM_REPORT 131 +#define ICMPV6_MGM_REDUCTION 132 + +#define ICMPV6_NI_QUERY 139 +#define ICMPV6_NI_REPLY 140 + +#define ICMPV6_MLD2_REPORT 143 + +#define ICMPV6_DHAAD_REQUEST 144 +#define ICMPV6_DHAAD_REPLY 145 +#define ICMPV6_MOBILE_PREFIX_SOL 146 +#define ICMPV6_MOBILE_PREFIX_ADV 147 + +/* + * Codes for Destination Unreachable + */ +#define ICMPV6_NOROUTE 0 +#define ICMPV6_ADM_PROHIBITED 1 +#define ICMPV6_NOT_NEIGHBOUR 2 +#define ICMPV6_ADDR_UNREACH 3 +#define ICMPV6_PORT_UNREACH 4 +#define ICMPV6_POLICY_FAIL 5 +#define ICMPV6_REJECT_ROUTE 6 + +/* + * Codes for Time Exceeded + */ +#define ICMPV6_EXC_HOPLIMIT 0 +#define ICMPV6_EXC_FRAGTIME 1 + +/* + * Codes for Parameter Problem + */ +#define ICMPV6_HDR_FIELD 0 +#define ICMPV6_UNK_NEXTHDR 1 +#define ICMPV6_UNK_OPTION 2 + +/* + * constants for (set|get)sockopt + */ + +#define ICMPV6_FILTER 1 + +/* + * ICMPV6 filter + */ + +#define ICMPV6_FILTER_BLOCK 1 +#define ICMPV6_FILTER_PASS 2 +#define ICMPV6_FILTER_BLOCKOTHERS 3 +#define ICMPV6_FILTER_PASSONLY 4 + +struct icmp6_filter { + __u32 data[8]; +}; + +/* + * Definitions for MLDv2 + */ +#define MLD2_MODE_IS_INCLUDE 1 +#define MLD2_MODE_IS_EXCLUDE 2 +#define MLD2_CHANGE_TO_INCLUDE 3 +#define MLD2_CHANGE_TO_EXCLUDE 4 +#define MLD2_ALLOW_NEW_SOURCES 5 +#define MLD2_BLOCK_OLD_SOURCES 6 + +#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } } + + +#endif /* _LINUX_ICMPV6_H */ diff --git a/kernel_headers/linux/idle_stats_device.h b/kernel_headers/linux/idle_stats_device.h new file mode 100644 index 0000000..54869ba --- /dev/null +++ b/kernel_headers/linux/idle_stats_device.h @@ -0,0 +1,47 @@ +#ifndef __UAPI_IDLE_STATS_DEVICE_H +#define __UAPI_IDLE_STATS_DEVICE_H + +#include +#include + +#define MSM_IDLE_STATS_EVENT_NONE 0 +#define MSM_IDLE_STATS_EVENT_BUSY_TIMER_EXPIRED 1 +#define MSM_IDLE_STATS_EVENT_BUSY_TIMER_EXPIRED_RESET 2 +#define MSM_IDLE_STATS_EVENT_COLLECTION_NEARLY_FULL 4 +#define MSM_IDLE_STATS_EVENT_COLLECTION_FULL 8 +#define MSM_IDLE_STATS_EVENT_IDLE_TIMER_EXPIRED 16 + +/* + * All time, timer, and time interval values are in units of + * microseconds unless stated otherwise. + */ +#define MSM_IDLE_STATS_NR_MAX_INTERVALS 200 + +struct msm_idle_pulse { + __s64 busy_start_time; + __u32 busy_interval; + __u32 wait_interval; +}; + +struct msm_idle_read_stats { + __u32 event; + __s64 return_timestamp; + __u32 busy_timer_remaining; + __u32 nr_collected; + struct msm_idle_pulse pulse_chain[MSM_IDLE_STATS_NR_MAX_INTERVALS]; +}; + +struct msm_idle_write_stats { + __u32 busy_timer; + __u32 next_busy_timer; + __u32 max_samples; +}; + +#define MSM_IDLE_STATS_IOC_MAGIC 0xD8 +#define MSM_IDLE_STATS_IOC_READ_STATS \ + _IOWR(MSM_IDLE_STATS_IOC_MAGIC, 1, struct msm_idle_read_stats) +#define MSM_IDLE_STATS_IOC_WRITE_STATS \ + _IOWR(MSM_IDLE_STATS_IOC_MAGIC, 2, struct msm_idle_write_stats) + +#endif /* __UAPI_IDLE_STATS_DEVICE_H */ + diff --git a/kernel_headers/linux/if.h b/kernel_headers/linux/if.h new file mode 100644 index 0000000..7f261c0 --- /dev/null +++ b/kernel_headers/linux/if.h @@ -0,0 +1,235 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the INET interface module. + * + * Version: @(#)if.h 1.0.2 04/18/93 + * + * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 + * Ross Biro + * Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_IF_H +#define _LINUX_IF_H + +#include /* for "__kernel_caddr_t" et al */ +#include /* for "struct sockaddr" et al */ + /* for "__user" et al */ + +#define IFNAMSIZ 16 +#define IFALIASZ 256 +#include + +/* Standard interface flags (netdevice->flags). */ +#define IFF_UP 0x1 /* interface is up */ +#define IFF_BROADCAST 0x2 /* broadcast address valid */ +#define IFF_DEBUG 0x4 /* turn on debugging */ +#define IFF_LOOPBACK 0x8 /* is a loopback net */ +#define IFF_POINTOPOINT 0x10 /* interface is has p-p link */ +#define IFF_NOTRAILERS 0x20 /* avoid use of trailers */ +#define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */ +#define IFF_NOARP 0x80 /* no ARP protocol */ +#define IFF_PROMISC 0x100 /* receive all packets */ +#define IFF_ALLMULTI 0x200 /* receive all multicast packets*/ + +#define IFF_MASTER 0x400 /* master of a load balancer */ +#define IFF_SLAVE 0x800 /* slave of a load balancer */ + +#define IFF_MULTICAST 0x1000 /* Supports multicast */ + +#define IFF_PORTSEL 0x2000 /* can set media type */ +#define IFF_AUTOMEDIA 0x4000 /* auto media select active */ +#define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/ + +#define IFF_LOWER_UP 0x10000 /* driver signals L1 up */ +#define IFF_DORMANT 0x20000 /* driver signals dormant */ + +#define IFF_ECHO 0x40000 /* echo sent packets */ + +#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ + IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) + +/* Private (from user) interface flags (netdevice->priv_flags). */ +#define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */ +#define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */ +#define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */ +#define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */ +#define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */ +#define IFF_BONDING 0x20 /* bonding master or slave */ +#define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */ +#define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */ +#define IFF_MASTER_ARPMON 0x100 /* bonding master, ARP mon in use */ +#define IFF_WAN_HDLC 0x200 /* WAN HDLC device */ +#define IFF_XMIT_DST_RELEASE 0x400 /* dev_hard_start_xmit() is allowed to + * release skb->dst + */ +#define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */ +#define IFF_DISABLE_NETPOLL 0x1000 /* disable netpoll at run-time */ +#define IFF_MACVLAN_PORT 0x2000 /* device used as macvlan port */ +#define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */ +#define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch + * datapath port */ +#define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing + * skbs on transmit */ +#define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ +#define IFF_TEAM_PORT 0x40000 /* device used as team port */ +#define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */ +#define IFF_LIVE_ADDR_CHANGE 0x100000 /* device supports hardware address + * change when it's running */ + + +#define IF_GET_IFACE 0x0001 /* for querying only */ +#define IF_GET_PROTO 0x0002 + +/* For definitions see hdlc.h */ +#define IF_IFACE_V35 0x1000 /* V.35 serial interface */ +#define IF_IFACE_V24 0x1001 /* V.24 serial interface */ +#define IF_IFACE_X21 0x1002 /* X.21 serial interface */ +#define IF_IFACE_T1 0x1003 /* T1 telco serial interface */ +#define IF_IFACE_E1 0x1004 /* E1 telco serial interface */ +#define IF_IFACE_SYNC_SERIAL 0x1005 /* can't be set by software */ +#define IF_IFACE_X21D 0x1006 /* X.21 Dual Clocking (FarSite) */ + +/* For definitions see hdlc.h */ +#define IF_PROTO_HDLC 0x2000 /* raw HDLC protocol */ +#define IF_PROTO_PPP 0x2001 /* PPP protocol */ +#define IF_PROTO_CISCO 0x2002 /* Cisco HDLC protocol */ +#define IF_PROTO_FR 0x2003 /* Frame Relay protocol */ +#define IF_PROTO_FR_ADD_PVC 0x2004 /* Create FR PVC */ +#define IF_PROTO_FR_DEL_PVC 0x2005 /* Delete FR PVC */ +#define IF_PROTO_X25 0x2006 /* X.25 */ +#define IF_PROTO_HDLC_ETH 0x2007 /* raw HDLC, Ethernet emulation */ +#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 /* Create FR Ethernet-bridged PVC */ +#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 /* Delete FR Ethernet-bridged PVC */ +#define IF_PROTO_FR_PVC 0x200A /* for reading PVC status */ +#define IF_PROTO_FR_ETH_PVC 0x200B +#define IF_PROTO_RAW 0x200C /* RAW Socket */ + +/* RFC 2863 operational status */ +enum { + IF_OPER_UNKNOWN, + IF_OPER_NOTPRESENT, + IF_OPER_DOWN, + IF_OPER_LOWERLAYERDOWN, + IF_OPER_TESTING, + IF_OPER_DORMANT, + IF_OPER_UP, +}; + +/* link modes */ +enum { + IF_LINK_MODE_DEFAULT, + IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */ +}; + +/* + * Device mapping structure. I'd just gone off and designed a + * beautiful scheme using only loadable modules with arguments + * for driver options and along come the PCMCIA people 8) + * + * Ah well. The get() side of this is good for WDSETUP, and it'll + * be handy for debugging things. The set side is fine for now and + * being very small might be worth keeping for clean configuration. + */ + +struct ifmap { + unsigned long mem_start; + unsigned long mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; + /* 3 bytes spare */ +}; + +struct if_settings { + unsigned int type; /* Type of physical device or protocol */ + unsigned int size; /* Size of the data allocated by the caller */ + union { + /* {atm/eth/dsl}_settings anyone ? */ + raw_hdlc_proto *raw_hdlc; + cisco_proto *cisco; + fr_proto *fr; + fr_proto_pvc *fr_pvc; + fr_proto_pvc_info *fr_pvc_info; + + /* interface settings */ + sync_serial_settings *sync; + te1_settings *te1; + } ifs_ifsu; +}; + +/* + * Interface request structure used for socket + * ioctl's. All interface ioctl's must have parameter + * definitions which begin with ifr_name. The + * remainder may be interface specific. + */ + +struct ifreq { +#define IFHWADDRLEN 6 + union + { + char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */ + } ifr_ifrn; + + union { + struct sockaddr ifru_addr; + struct sockaddr ifru_dstaddr; + struct sockaddr ifru_broadaddr; + struct sockaddr ifru_netmask; + struct sockaddr ifru_hwaddr; + short ifru_flags; + int ifru_ivalue; + int ifru_mtu; + struct ifmap ifru_map; + char ifru_slave[IFNAMSIZ]; /* Just fits the size */ + char ifru_newname[IFNAMSIZ]; + void * ifru_data; + struct if_settings ifru_settings; + } ifr_ifru; +}; + +#define ifr_name ifr_ifrn.ifrn_name /* interface name */ +#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */ +#define ifr_addr ifr_ifru.ifru_addr /* address */ +#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-p lnk */ +#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ +#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */ +#define ifr_flags ifr_ifru.ifru_flags /* flags */ +#define ifr_metric ifr_ifru.ifru_ivalue /* metric */ +#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ +#define ifr_map ifr_ifru.ifru_map /* device map */ +#define ifr_slave ifr_ifru.ifru_slave /* slave device */ +#define ifr_data ifr_ifru.ifru_data /* for use by interface */ +#define ifr_ifindex ifr_ifru.ifru_ivalue /* interface index */ +#define ifr_bandwidth ifr_ifru.ifru_ivalue /* link bandwidth */ +#define ifr_qlen ifr_ifru.ifru_ivalue /* Queue length */ +#define ifr_newname ifr_ifru.ifru_newname /* New name */ +#define ifr_settings ifr_ifru.ifru_settings /* Device/proto settings*/ + +/* + * Structure used in SIOCGIFCONF request. + * Used to retrieve interface configuration + * for machine (useful for programs which + * must know all networks accessible). + */ + +struct ifconf { + int ifc_len; /* size of buffer */ + union { + char *ifcu_buf; + struct ifreq *ifcu_req; + } ifc_ifcu; +}; +#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ +#define ifc_req ifc_ifcu.ifcu_req /* array of structures */ + +#endif /* _LINUX_IF_H */ diff --git a/kernel_headers/linux/if_addr.h b/kernel_headers/linux/if_addr.h new file mode 100644 index 0000000..58b39f4 --- /dev/null +++ b/kernel_headers/linux/if_addr.h @@ -0,0 +1,59 @@ +#ifndef __LINUX_IF_ADDR_H +#define __LINUX_IF_ADDR_H + +#include +#include + +struct ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; /* The prefix length */ + __u8 ifa_flags; /* Flags */ + __u8 ifa_scope; /* Address scope */ + __u32 ifa_index; /* Link index */ +}; + +/* + * Important comment: + * IFA_ADDRESS is prefix address, rather than local interface address. + * It makes no difference for normally configured broadcast interfaces, + * but for point-to-point IFA_ADDRESS is DESTINATION address, + * local address is supplied in IFA_LOCAL attribute. + */ +enum { + IFA_UNSPEC, + IFA_ADDRESS, + IFA_LOCAL, + IFA_LABEL, + IFA_BROADCAST, + IFA_ANYCAST, + IFA_CACHEINFO, + IFA_MULTICAST, + __IFA_MAX, +}; + +#define IFA_MAX (__IFA_MAX - 1) + +/* ifa_flags */ +#define IFA_F_SECONDARY 0x01 +#define IFA_F_TEMPORARY IFA_F_SECONDARY + +#define IFA_F_NODAD 0x02 +#define IFA_F_OPTIMISTIC 0x04 +#define IFA_F_DADFAILED 0x08 +#define IFA_F_HOMEADDRESS 0x10 +#define IFA_F_DEPRECATED 0x20 +#define IFA_F_TENTATIVE 0x40 +#define IFA_F_PERMANENT 0x80 + +struct ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; /* created timestamp, hundredths of seconds */ + __u32 tstamp; /* updated timestamp, hundredths of seconds */ +}; + +/* backwards compatibility for userspace */ +#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg)))) +#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg)) + +#endif diff --git a/kernel_headers/linux/if_addrlabel.h b/kernel_headers/linux/if_addrlabel.h new file mode 100644 index 0000000..54580c2 --- /dev/null +++ b/kernel_headers/linux/if_addrlabel.h @@ -0,0 +1,32 @@ +/* + * if_addrlabel.h - netlink interface for address labels + * + * Copyright (C)2007 USAGI/WIDE Project, All Rights Reserved. + * + * Authors: + * YOSHIFUJI Hideaki @ USAGI/WIDE + */ + +#ifndef __LINUX_IF_ADDRLABEL_H +#define __LINUX_IF_ADDRLABEL_H + +#include + +struct ifaddrlblmsg { + __u8 ifal_family; /* Address family */ + __u8 __ifal_reserved; /* Reserved */ + __u8 ifal_prefixlen; /* Prefix length */ + __u8 ifal_flags; /* Flags */ + __u32 ifal_index; /* Link index */ + __u32 ifal_seq; /* sequence number */ +}; + +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX +}; + +#define IFAL_MAX (__IFAL_MAX - 1) + +#endif diff --git a/kernel_headers/linux/if_alg.h b/kernel_headers/linux/if_alg.h new file mode 100644 index 0000000..0f9acce --- /dev/null +++ b/kernel_headers/linux/if_alg.h @@ -0,0 +1,40 @@ +/* + * if_alg: User-space algorithm interface + * + * Copyright (c) 2010 Herbert Xu + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ + +#ifndef _LINUX_IF_ALG_H +#define _LINUX_IF_ALG_H + +#include + +struct sockaddr_alg { + __u16 salg_family; + __u8 salg_type[14]; + __u32 salg_feat; + __u32 salg_mask; + __u8 salg_name[64]; +}; + +struct af_alg_iv { + __u32 ivlen; + __u8 iv[0]; +}; + +/* Socket options */ +#define ALG_SET_KEY 1 +#define ALG_SET_IV 2 +#define ALG_SET_OP 3 + +/* Operations */ +#define ALG_OP_DECRYPT 0 +#define ALG_OP_ENCRYPT 1 + +#endif /* _LINUX_IF_ALG_H */ diff --git a/kernel_headers/linux/if_arcnet.h b/kernel_headers/linux/if_arcnet.h new file mode 100644 index 0000000..46e34bd --- /dev/null +++ b/kernel_headers/linux/if_arcnet.h @@ -0,0 +1,132 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the ARCnet interface. + * + * Authors: David Woodhouse and Avery Pennarun + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IF_ARCNET_H +#define _LINUX_IF_ARCNET_H + +#include +#include + + +/* + * These are the defined ARCnet Protocol ID's. + */ + +/* CAP mode */ +/* No macro but uses 1-8 */ + +/* RFC1201 Protocol ID's */ +#define ARC_P_IP 212 /* 0xD4 */ +#define ARC_P_IPV6 196 /* 0xC4: RFC2497 */ +#define ARC_P_ARP 213 /* 0xD5 */ +#define ARC_P_RARP 214 /* 0xD6 */ +#define ARC_P_IPX 250 /* 0xFA */ +#define ARC_P_NOVELL_EC 236 /* 0xEC */ + +/* Old RFC1051 Protocol ID's */ +#define ARC_P_IP_RFC1051 240 /* 0xF0 */ +#define ARC_P_ARP_RFC1051 241 /* 0xF1 */ + +/* MS LanMan/WfWg "NDIS" encapsulation */ +#define ARC_P_ETHER 232 /* 0xE8 */ + +/* Unsupported/indirectly supported protocols */ +#define ARC_P_DATAPOINT_BOOT 0 /* very old Datapoint equipment */ +#define ARC_P_DATAPOINT_MOUNT 1 +#define ARC_P_POWERLAN_BEACON 8 /* Probably ATA-Netbios related */ +#define ARC_P_POWERLAN_BEACON2 243 /* 0xF3 */ +#define ARC_P_LANSOFT 251 /* 0xFB - what is this? */ +#define ARC_P_ATALK 0xDD + +/* Hardware address length */ +#define ARCNET_ALEN 1 + +/* + * The RFC1201-specific components of an arcnet packet header. + */ +struct arc_rfc1201 { + __u8 proto; /* protocol ID field - varies */ + __u8 split_flag; /* for use with split packets */ + __be16 sequence; /* sequence number */ + __u8 payload[0]; /* space remaining in packet (504 bytes)*/ +}; +#define RFC1201_HDR_SIZE 4 + + +/* + * The RFC1051-specific components. + */ +struct arc_rfc1051 { + __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */ + __u8 payload[0]; /* 507 bytes */ +}; +#define RFC1051_HDR_SIZE 1 + + +/* + * The ethernet-encap-specific components. We have a real ethernet header + * and some data. + */ +struct arc_eth_encap { + __u8 proto; /* Always ARC_P_ETHER */ + struct ethhdr eth; /* standard ethernet header (yuck!) */ + __u8 payload[0]; /* 493 bytes */ +}; +#define ETH_ENCAP_HDR_SIZE 14 + + +struct arc_cap { + __u8 proto; + __u8 cookie[sizeof(int)]; /* Actually NOT sent over the network */ + union { + __u8 ack; + __u8 raw[0]; /* 507 bytes */ + } mes; +}; + +/* + * The data needed by the actual arcnet hardware. + * + * Now, in the real arcnet hardware, the third and fourth bytes are the + * 'offset' specification instead of the length, and the soft data is at + * the _end_ of the 512-byte buffer. We hide this complexity inside the + * driver. + */ +struct arc_hardware { + __u8 source, /* source ARCnet - filled in automagically */ + dest, /* destination ARCnet - 0 for broadcast */ + offset[2]; /* offset bytes (some weird semantics) */ +}; +#define ARC_HDR_SIZE 4 + +/* + * This is an ARCnet frame header, as seen by the kernel (and userspace, + * when you do a raw packet capture). + */ +struct archdr { + /* hardware requirements */ + struct arc_hardware hard; + + /* arcnet encapsulation-specific bits */ + union { + struct arc_rfc1201 rfc1201; + struct arc_rfc1051 rfc1051; + struct arc_eth_encap eth_encap; + struct arc_cap cap; + __u8 raw[0]; /* 508 bytes */ + } soft; +}; + +#endif /* _LINUX_IF_ARCNET_H */ diff --git a/kernel_headers/linux/if_arp.h b/kernel_headers/linux/if_arp.h new file mode 100644 index 0000000..de0dbcd --- /dev/null +++ b/kernel_headers/linux/if_arp.h @@ -0,0 +1,160 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the ARP (RFC 826) protocol. + * + * Version: @(#)if_arp.h 1.0.1 04/16/93 + * + * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 + * Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source. + * Ross Biro + * Fred N. van Kempen, + * Florian La Roche, + * Jonathan Layes + * Arnaldo Carvalho de Melo ARPHRD_HWX25 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_IF_ARP_H +#define _LINUX_IF_ARP_H + +#include + +/* ARP protocol HARDWARE identifiers. */ +#define ARPHRD_NETROM 0 /* from KA9Q: NET/ROM pseudo */ +#define ARPHRD_ETHER 1 /* Ethernet 10Mbps */ +#define ARPHRD_EETHER 2 /* Experimental Ethernet */ +#define ARPHRD_AX25 3 /* AX.25 Level 2 */ +#define ARPHRD_PRONET 4 /* PROnet token ring */ +#define ARPHRD_CHAOS 5 /* Chaosnet */ +#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB */ +#define ARPHRD_ARCNET 7 /* ARCnet */ +#define ARPHRD_APPLETLK 8 /* APPLEtalk */ +#define ARPHRD_DLCI 15 /* Frame Relay DLCI */ +#define ARPHRD_ATM 19 /* ATM */ +#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id) */ +#define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734 */ +#define ARPHRD_EUI64 27 /* EUI-64 */ +#define ARPHRD_INFINIBAND 32 /* InfiniBand */ + +/* Dummy types for non ARP hardware */ +#define ARPHRD_SLIP 256 +#define ARPHRD_CSLIP 257 +#define ARPHRD_SLIP6 258 +#define ARPHRD_CSLIP6 259 +#define ARPHRD_RSRVD 260 /* Notional KISS type */ +#define ARPHRD_ADAPT 264 +#define ARPHRD_ROSE 270 +#define ARPHRD_X25 271 /* CCITT X.25 */ +#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */ +#define ARPHRD_CAN 280 /* Controller Area Network */ +#define ARPHRD_PPP 512 +#define ARPHRD_CISCO 513 /* Cisco HDLC */ +#define ARPHRD_HDLC ARPHRD_CISCO +#define ARPHRD_LAPB 516 /* LAPB */ +#define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */ +#define ARPHRD_RAWHDLC 518 /* Raw HDLC */ +#define ARPHRD_RAWIP 530 /* Raw IP */ + +#define ARPHRD_TUNNEL 768 /* IPIP tunnel */ +#define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */ +#define ARPHRD_FRAD 770 /* Frame Relay Access Device */ +#define ARPHRD_SKIP 771 /* SKIP vif */ +#define ARPHRD_LOOPBACK 772 /* Loopback device */ +#define ARPHRD_LOCALTLK 773 /* Localtalk device */ +#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface */ +#define ARPHRD_BIF 775 /* AP1000 BIF */ +#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4 */ +#define ARPHRD_IPDDP 777 /* IP over DDP tunneller */ +#define ARPHRD_IPGRE 778 /* GRE over IP */ +#define ARPHRD_PIMREG 779 /* PIMSM register interface */ +#define ARPHRD_HIPPI 780 /* High Performance Parallel Interface */ +#define ARPHRD_ASH 781 /* Nexus 64Mbps Ash */ +#define ARPHRD_ECONET 782 /* Acorn Econet */ +#define ARPHRD_IRDA 783 /* Linux-IrDA */ +/* ARP works differently on different FC media .. so */ +#define ARPHRD_FCPP 784 /* Point to point fibrechannel */ +#define ARPHRD_FCAL 785 /* Fibrechannel arbitrated loop */ +#define ARPHRD_FCPL 786 /* Fibrechannel public loop */ +#define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */ + /* 787->799 reserved for fibrechannel media types */ +#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */ +#define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ +#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ +#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */ +#define ARPHRD_IEEE802154 804 +#define ARPHRD_IEEE802154_MONITOR 805 /* IEEE 802.15.4 network monitor */ + +#define ARPHRD_PHONET 820 /* PhoNet media type */ +#define ARPHRD_PHONET_PIPE 821 /* PhoNet pipe header */ +#define ARPHRD_CAIF 822 /* CAIF media type */ +#define ARPHRD_IP6GRE 823 /* GRE over IPv6 */ + +#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ +#define ARPHRD_NONE 0xFFFE /* zero header length */ + +/* ARP protocol opcodes. */ +#define ARPOP_REQUEST 1 /* ARP request */ +#define ARPOP_REPLY 2 /* ARP reply */ +#define ARPOP_RREQUEST 3 /* RARP request */ +#define ARPOP_RREPLY 4 /* RARP reply */ +#define ARPOP_InREQUEST 8 /* InARP request */ +#define ARPOP_InREPLY 9 /* InARP reply */ +#define ARPOP_NAK 10 /* (ATM)ARP NAK */ + + +/* ARP ioctl request. */ +struct arpreq { + struct sockaddr arp_pa; /* protocol address */ + struct sockaddr arp_ha; /* hardware address */ + int arp_flags; /* flags */ + struct sockaddr arp_netmask; /* netmask (only for proxy arps) */ + char arp_dev[16]; +}; + +struct arpreq_old { + struct sockaddr arp_pa; /* protocol address */ + struct sockaddr arp_ha; /* hardware address */ + int arp_flags; /* flags */ + struct sockaddr arp_netmask; /* netmask (only for proxy arps) */ +}; + +/* ARP Flag values. */ +#define ATF_COM 0x02 /* completed entry (ha valid) */ +#define ATF_PERM 0x04 /* permanent entry */ +#define ATF_PUBL 0x08 /* publish entry */ +#define ATF_USETRAILERS 0x10 /* has requested trailers */ +#define ATF_NETMASK 0x20 /* want to use a netmask (only + for proxy entries) */ +#define ATF_DONTPUB 0x40 /* don't answer this addresses */ + +/* + * This structure defines an ethernet arp header. + */ + +struct arphdr { + __be16 ar_hrd; /* format of hardware address */ + __be16 ar_pro; /* format of protocol address */ + unsigned char ar_hln; /* length of hardware address */ + unsigned char ar_pln; /* length of protocol address */ + __be16 ar_op; /* ARP opcode (command) */ + +#if 0 + /* + * Ethernet looks like this : This bit is variable sized however... + */ + unsigned char ar_sha[ETH_ALEN]; /* sender hardware address */ + unsigned char ar_sip[4]; /* sender IP address */ + unsigned char ar_tha[ETH_ALEN]; /* target hardware address */ + unsigned char ar_tip[4]; /* target IP address */ +#endif + +}; + + +#endif /* _LINUX_IF_ARP_H */ diff --git a/kernel_headers/linux/if_bonding.h b/kernel_headers/linux/if_bonding.h new file mode 100644 index 0000000..a17edda --- /dev/null +++ b/kernel_headers/linux/if_bonding.h @@ -0,0 +1,128 @@ +/* + * Bond several ethernet interfaces into a Cisco, running 'Etherchannel'. + * + * + * Portions are (c) Copyright 1995 Simon "Guru Aleph-Null" Janes + * NCM: Network and Communications Management, Inc. + * + * BUT, I'm the one who modified it for ethernet, so: + * (c) Copyright 1999, Thomas Davis, tadavis@lbl.gov + * + * This software may be used and distributed according to the terms + * of the GNU Public License, incorporated herein by reference. + * + * 2003/03/18 - Amir Noam + * - Added support for getting slave's speed and duplex via ethtool. + * Needed for 802.3ad and other future modes. + * + * 2003/03/18 - Tsippy Mendelson and + * Shmulik Hen + * - Enable support of modes that need to use the unique mac address of + * each slave. + * + * 2003/03/18 - Tsippy Mendelson and + * Amir Noam + * - Moved driver's private data types to bonding.h + * + * 2003/03/18 - Amir Noam , + * Tsippy Mendelson and + * Shmulik Hen + * - Added support for IEEE 802.3ad Dynamic link aggregation mode. + * + * 2003/05/01 - Amir Noam + * - Added ABI version control to restore compatibility between + * new/old ifenslave and new/old bonding. + * + * 2003/12/01 - Shmulik Hen + * - Code cleanup and style changes + * + * 2005/05/05 - Jason Gabler + * - added definitions for various XOR hashing policies + */ + +#ifndef _LINUX_IF_BONDING_H +#define _LINUX_IF_BONDING_H + +#include +#include +#include + +/* userland - kernel ABI version (2003/05/08) */ +#define BOND_ABI_VERSION 2 + +/* + * We can remove these ioctl definitions in 2.5. People should use the + * SIOC*** versions of them instead + */ +#define BOND_ENSLAVE_OLD (SIOCDEVPRIVATE) +#define BOND_RELEASE_OLD (SIOCDEVPRIVATE + 1) +#define BOND_SETHWADDR_OLD (SIOCDEVPRIVATE + 2) +#define BOND_SLAVE_INFO_QUERY_OLD (SIOCDEVPRIVATE + 11) +#define BOND_INFO_QUERY_OLD (SIOCDEVPRIVATE + 12) +#define BOND_CHANGE_ACTIVE_OLD (SIOCDEVPRIVATE + 13) + +#define BOND_CHECK_MII_STATUS (SIOCGMIIPHY) + +#define BOND_MODE_ROUNDROBIN 0 +#define BOND_MODE_ACTIVEBACKUP 1 +#define BOND_MODE_XOR 2 +#define BOND_MODE_BROADCAST 3 +#define BOND_MODE_8023AD 4 +#define BOND_MODE_TLB 5 +#define BOND_MODE_ALB 6 /* TLB + RLB (receive load balancing) */ + +/* each slave's link has 4 states */ +#define BOND_LINK_UP 0 /* link is up and running */ +#define BOND_LINK_FAIL 1 /* link has just gone down */ +#define BOND_LINK_DOWN 2 /* link has been down for too long time */ +#define BOND_LINK_BACK 3 /* link is going back */ + +/* each slave has several states */ +#define BOND_STATE_ACTIVE 0 /* link is active */ +#define BOND_STATE_BACKUP 1 /* link is backup */ + +#define BOND_DEFAULT_MAX_BONDS 1 /* Default maximum number of devices to support */ + +#define BOND_DEFAULT_TX_QUEUES 16 /* Default number of tx queues per device */ + +#define BOND_DEFAULT_RESEND_IGMP 1 /* Default number of IGMP membership reports */ + +/* hashing types */ +#define BOND_XMIT_POLICY_LAYER2 0 /* layer 2 (MAC only), default */ +#define BOND_XMIT_POLICY_LAYER34 1 /* layer 3+4 (IP ^ (TCP || UDP)) */ +#define BOND_XMIT_POLICY_LAYER23 2 /* layer 2+3 (IP ^ MAC) */ + +typedef struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; +} ifbond; + +typedef struct ifslave { + __s32 slave_id; /* Used as an IN param to the BOND_SLAVE_INFO_QUERY ioctl */ + char slave_name[IFNAMSIZ]; + __s8 link; + __s8 state; + __u32 link_failure_count; +} ifslave; + +struct ad_info { + __u16 aggregator_id; + __u16 ports; + __u16 actor_key; + __u16 partner_key; + __u8 partner_system[ETH_ALEN]; +}; + +#endif /* _LINUX_IF_BONDING_H */ + +/* + * Local variables: + * version-control: t + * kept-new-versions: 5 + * c-indent-level: 8 + * c-basic-offset: 8 + * tab-width: 8 + * End: + */ + diff --git a/kernel_headers/linux/if_bridge.h b/kernel_headers/linux/if_bridge.h new file mode 100644 index 0000000..d37e53c --- /dev/null +++ b/kernel_headers/linux/if_bridge.h @@ -0,0 +1,196 @@ +/* + * Linux ethernet bridge + * + * Authors: + * Lennert Buytenhek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IF_BRIDGE_H +#define _LINUX_IF_BRIDGE_H + +#include + +#define SYSFS_BRIDGE_ATTR "bridge" +#define SYSFS_BRIDGE_FDB "brforward" +#define SYSFS_BRIDGE_PORT_SUBDIR "brif" +#define SYSFS_BRIDGE_PORT_ATTR "brport" +#define SYSFS_BRIDGE_PORT_LINK "bridge" + +#define BRCTL_VERSION 1 + +#define BRCTL_GET_VERSION 0 +#define BRCTL_GET_BRIDGES 1 +#define BRCTL_ADD_BRIDGE 2 +#define BRCTL_DEL_BRIDGE 3 +#define BRCTL_ADD_IF 4 +#define BRCTL_DEL_IF 5 +#define BRCTL_GET_BRIDGE_INFO 6 +#define BRCTL_GET_PORT_LIST 7 +#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8 +#define BRCTL_SET_BRIDGE_HELLO_TIME 9 +#define BRCTL_SET_BRIDGE_MAX_AGE 10 +#define BRCTL_SET_AGEING_TIME 11 +#define BRCTL_SET_GC_INTERVAL 12 +#define BRCTL_GET_PORT_INFO 13 +#define BRCTL_SET_BRIDGE_STP_STATE 14 +#define BRCTL_SET_BRIDGE_PRIORITY 15 +#define BRCTL_SET_PORT_PRIORITY 16 +#define BRCTL_SET_PATH_COST 17 +#define BRCTL_GET_FDB_ENTRIES 18 + +#define BR_STATE_DISABLED 0 +#define BR_STATE_LISTENING 1 +#define BR_STATE_LEARNING 2 +#define BR_STATE_FORWARDING 3 +#define BR_STATE_BLOCKING 4 + +struct __bridge_info { + __u64 designated_root; + __u64 bridge_id; + __u32 root_path_cost; + __u32 max_age; + __u32 hello_time; + __u32 forward_delay; + __u32 bridge_max_age; + __u32 bridge_hello_time; + __u32 bridge_forward_delay; + __u8 topology_change; + __u8 topology_change_detected; + __u8 root_port; + __u8 stp_enabled; + __u32 ageing_time; + __u32 gc_interval; + __u32 hello_timer_value; + __u32 tcn_timer_value; + __u32 topology_change_timer_value; + __u32 gc_timer_value; +}; + +struct __port_info { + __u64 designated_root; + __u64 designated_bridge; + __u16 port_id; + __u16 designated_port; + __u32 path_cost; + __u32 designated_cost; + __u8 state; + __u8 top_change_ack; + __u8 config_pending; + __u8 unused0; + __u32 message_age_timer_value; + __u32 forward_delay_timer_value; + __u32 hold_timer_value; +}; + +struct __fdb_entry { + __u8 mac_addr[6]; + __u8 port_no; + __u8 is_local; + __u32 ageing_timer_value; + __u8 port_hi; + __u8 pad0; + __u16 unused; +}; + +/* Bridge Flags */ +#define BRIDGE_FLAGS_MASTER 1 /* Bridge command to/from master */ +#define BRIDGE_FLAGS_SELF 2 /* Bridge command to/from lowerdev */ + +#define BRIDGE_MODE_VEB 0 /* Default loopback mode */ +#define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */ + +/* Bridge management nested attributes + * [IFLA_AF_SPEC] = { + * [IFLA_BRIDGE_FLAGS] + * [IFLA_BRIDGE_MODE] + * [IFLA_BRIDGE_VLAN_INFO] + * } + */ +enum { + IFLA_BRIDGE_FLAGS, + IFLA_BRIDGE_MODE, + IFLA_BRIDGE_VLAN_INFO, + __IFLA_BRIDGE_MAX, +}; +#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) + +#define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ +#define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ +#define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ + +struct bridge_vlan_info { + __u16 flags; + __u16 vid; +}; + +/* Bridge multicast database attributes + * [MDBA_MDB] = { + * [MDBA_MDB_ENTRY] = { + * [MDBA_MDB_ENTRY_INFO] + * } + * } + * [MDBA_ROUTER] = { + * [MDBA_ROUTER_PORT] + * } + */ +enum { + MDBA_UNSPEC, + MDBA_MDB, + MDBA_ROUTER, + __MDBA_MAX, +}; +#define MDBA_MAX (__MDBA_MAX - 1) + +enum { + MDBA_MDB_UNSPEC, + MDBA_MDB_ENTRY, + __MDBA_MDB_MAX, +}; +#define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) + +enum { + MDBA_MDB_ENTRY_UNSPEC, + MDBA_MDB_ENTRY_INFO, + __MDBA_MDB_ENTRY_MAX, +}; +#define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1) + +enum { + MDBA_ROUTER_UNSPEC, + MDBA_ROUTER_PORT, + __MDBA_ROUTER_MAX, +}; +#define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1) + +struct br_port_msg { + __u8 family; + __u32 ifindex; +}; + +struct br_mdb_entry { + __u32 ifindex; +#define MDB_TEMPORARY 0 +#define MDB_PERMANENT 1 + __u8 state; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + } u; + __be16 proto; + } addr; +}; + +enum { + MDBA_SET_ENTRY_UNSPEC, + MDBA_SET_ENTRY, + __MDBA_SET_ENTRY_MAX, +}; +#define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1) + +#endif /* _LINUX_IF_BRIDGE_H */ diff --git a/kernel_headers/linux/if_cablemodem.h b/kernel_headers/linux/if_cablemodem.h new file mode 100644 index 0000000..ee6b3c4 --- /dev/null +++ b/kernel_headers/linux/if_cablemodem.h @@ -0,0 +1,22 @@ +#ifndef _LINUX_CABLEMODEM_H_ +#define _LINUX_CABLEMODEM_H_ +/* + * Author: Franco Venturi + * Copyright 1998 Franco Venturi + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at + * your option) any later version. + */ + +/* some useful defines for sb1000.c e cmconfig.c - fv */ +#define SIOCGCMSTATS (SIOCDEVPRIVATE+0) /* get cable modem stats */ +#define SIOCGCMFIRMWARE (SIOCDEVPRIVATE+1) /* get cm firmware version */ +#define SIOCGCMFREQUENCY (SIOCDEVPRIVATE+2) /* get cable modem frequency */ +#define SIOCSCMFREQUENCY (SIOCDEVPRIVATE+3) /* set cable modem frequency */ +#define SIOCGCMPIDS (SIOCDEVPRIVATE+4) /* get cable modem PIDs */ +#define SIOCSCMPIDS (SIOCDEVPRIVATE+5) /* set cable modem PIDs */ + +#endif diff --git a/kernel_headers/linux/if_eql.h b/kernel_headers/linux/if_eql.h new file mode 100644 index 0000000..3b489be --- /dev/null +++ b/kernel_headers/linux/if_eql.h @@ -0,0 +1,54 @@ +/* + * Equalizer Load-balancer for serial network interfaces. + * + * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes + * NCM: Network and Communications Management, Inc. + * + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + * The author may be reached as simon@ncm.com, or C/O + * NCM + * Attn: Simon Janes + * 6803 Whittier Ave + * McLean VA 22101 + * Phone: 1-703-847-0040 ext 103 + */ + +#ifndef _LINUX_IF_EQL_H +#define _LINUX_IF_EQL_H + +#define EQL_DEFAULT_SLAVE_PRIORITY 28800 +#define EQL_DEFAULT_MAX_SLAVES 4 +#define EQL_DEFAULT_MTU 576 +#define EQL_DEFAULT_RESCHED_IVAL HZ + +#define EQL_ENSLAVE (SIOCDEVPRIVATE) +#define EQL_EMANCIPATE (SIOCDEVPRIVATE + 1) + +#define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2) +#define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3) + +#define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4) +#define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5) + + +typedef struct master_config { + char master_name[16]; + int max_slaves; + int min_slaves; +} master_config_t; + +typedef struct slave_config { + char slave_name[16]; + long priority; +} slave_config_t; + +typedef struct slaving_request { + char slave_name[16]; + long priority; +} slaving_request_t; + + +#endif /* _LINUX_IF_EQL_H */ diff --git a/kernel_headers/linux/if_ether.h b/kernel_headers/linux/if_ether.h new file mode 100644 index 0000000..f398d35 --- /dev/null +++ b/kernel_headers/linux/if_ether.h @@ -0,0 +1,142 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the Ethernet IEEE 802.3 interface. + * + * Version: @(#)if_ether.h 1.0.1a 02/08/94 + * + * Author: Fred N. van Kempen, + * Donald Becker, + * Alan Cox, + * Steve Whitehouse, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IF_ETHER_H +#define _LINUX_IF_ETHER_H + +#include + +/* + * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble + * and FCS/CRC (frame check sequence). + */ + +#define ETH_ALEN 6 /* Octets in one ethernet addr */ +#define ETH_HLEN 14 /* Total octets in header. */ +#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ +#define ETH_DATA_LEN 1500 /* Max. octets in payload */ +#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ +#define ETH_FCS_LEN 4 /* Octets in the FCS */ + +/* + * These are the defined Ethernet Protocol ID's. + */ + +#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ +#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ +#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ +#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +#define ETH_P_X25 0x0805 /* CCITT X.25 */ +#define ETH_P_ARP 0x0806 /* Address Resolution packet */ +#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ +#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ +#define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ +#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ +#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ +#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ +#define ETH_P_LAT 0x6004 /* DEC LAT */ +#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ +#define ETH_P_CUST 0x6006 /* DEC Customer use */ +#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ +#define ETH_P_TEB 0x6558 /* Trans Ether Bridging */ +#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ +#define ETH_P_ATALK 0x809B /* Appletalk DDP */ +#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ +#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ +#define ETH_P_IPX 0x8137 /* IPX over DIX */ +#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ +#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ +#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ +#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol + * defined in draft-wilson-wrec-wccp-v2-00.txt */ +#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ +#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ +#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ +#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ +#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ +#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */ +#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport + * over Ethernet + */ +#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ +#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ +#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ +#define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */ +#define ETH_P_TIPC 0x88CA /* TIPC */ +#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ +#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ +#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ +#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ +#define ETH_P_TDLS 0x890D /* TDLS */ +#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ +#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_MAP 0xDA1A /* Multiplexing and Aggregation Protocol + * NOT AN OFFICIALLY REGISTERED ID ] */ + +#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value + * then the frame is Ethernet II. Else it is 802.3 */ + +/* + * Non DIX types. Won't clash for 1500 types. + */ + +#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ +#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ +#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ +#define ETH_P_802_2 0x0004 /* 802.2 frames */ +#define ETH_P_SNAP 0x0005 /* Internal only */ +#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ +#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ +#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ +#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ +#define ETH_P_CAN 0x000C /* CAN: Controller Area Network */ +#define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/ +#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ +#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ +#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ +#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ +#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ +#define ETH_P_ECONET 0x0018 /* Acorn Econet */ +#define ETH_P_HDLC 0x0019 /* HDLC frames */ +#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ +#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ +#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ +#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ +#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ +#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */ + +/* + * This is an Ethernet frame header. + */ + +struct ethhdr { + unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ + unsigned char h_source[ETH_ALEN]; /* source ether addr */ + __be16 h_proto; /* packet type ID field */ +} __attribute__((packed)); + + +#endif /* _LINUX_IF_ETHER_H */ diff --git a/kernel_headers/linux/if_fc.h b/kernel_headers/linux/if_fc.h new file mode 100644 index 0000000..6ed7f1b --- /dev/null +++ b/kernel_headers/linux/if_fc.h @@ -0,0 +1,51 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for Fibre Channel. + * + * Version: @(#)if_fc.h 0.0 11/20/98 + * + * Author: Fred N. van Kempen, + * Donald Becker, + * Peter De Schrijver, + * Vineet Abraham, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_IF_FC_H +#define _LINUX_IF_FC_H + +#include + +#define FC_ALEN 6 /* Octets in one ethernet addr */ +#define FC_HLEN (sizeof(struct fch_hdr)+sizeof(struct fcllc)) +#define FC_ID_LEN 3 /* Octets in a Fibre Channel Address */ + +/* LLC and SNAP constants */ +#define EXTENDED_SAP 0xAA +#define UI_CMD 0x03 + +/* This is NOT the Fibre Channel frame header. The FC frame header is + * constructed in the driver as the Tachyon needs certain fields in + * certains positions. So, it can't be generalized here.*/ + +struct fch_hdr { + __u8 daddr[FC_ALEN]; /* destination address */ + __u8 saddr[FC_ALEN]; /* source address */ +}; + +/* This is a Fibre Channel LLC structure */ +struct fcllc { + __u8 dsap; /* destination SAP */ + __u8 ssap; /* source SAP */ + __u8 llc; /* LLC control field */ + __u8 protid[3]; /* protocol id */ + __be16 ethertype; /* ether type field */ +}; + +#endif /* _LINUX_IF_FC_H */ diff --git a/kernel_headers/linux/if_fddi.h b/kernel_headers/linux/if_fddi.h new file mode 100644 index 0000000..e32cf70 --- /dev/null +++ b/kernel_headers/linux/if_fddi.h @@ -0,0 +1,104 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the ANSI FDDI interface. + * + * Version: @(#)if_fddi.h 1.0.2 Sep 29 2004 + * + * Author: Lawrence V. Stefani, + * + * if_fddi.h is based on previous if_ether.h and if_tr.h work by + * Fred N. van Kempen, + * Donald Becker, + * Alan Cox, + * Steve Whitehouse, + * Peter De Schrijver, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_IF_FDDI_H +#define _LINUX_IF_FDDI_H + +#include + +/* + * Define max and min legal sizes. The frame sizes do not include + * 4 byte FCS/CRC (frame check sequence). + */ +#define FDDI_K_ALEN 6 /* Octets in one FDDI address */ +#define FDDI_K_8022_HLEN 16 /* Total octets in 802.2 header */ +#define FDDI_K_SNAP_HLEN 21 /* Total octets in 802.2 SNAP header */ +#define FDDI_K_8022_ZLEN 16 /* Min octets in 802.2 frame sans FCS */ +#define FDDI_K_SNAP_ZLEN 21 /* Min octets in 802.2 SNAP frame sans FCS */ +#define FDDI_K_8022_DLEN 4475 /* Max octets in 802.2 payload */ +#define FDDI_K_SNAP_DLEN 4470 /* Max octets in 802.2 SNAP payload */ +#define FDDI_K_LLC_ZLEN 13 /* Min octets in LLC frame sans FCS */ +#define FDDI_K_LLC_LEN 4491 /* Max octets in LLC frame sans FCS */ + +/* Define FDDI Frame Control (FC) Byte values */ +#define FDDI_FC_K_VOID 0x00 +#define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80 +#define FDDI_FC_K_RESTRICTED_TOKEN 0xC0 +#define FDDI_FC_K_SMT_MIN 0x41 +#define FDDI_FC_K_SMT_MAX 0x4F +#define FDDI_FC_K_MAC_MIN 0xC1 +#define FDDI_FC_K_MAC_MAX 0xCF +#define FDDI_FC_K_ASYNC_LLC_MIN 0x50 +#define FDDI_FC_K_ASYNC_LLC_DEF 0x54 +#define FDDI_FC_K_ASYNC_LLC_MAX 0x5F +#define FDDI_FC_K_SYNC_LLC_MIN 0xD0 +#define FDDI_FC_K_SYNC_LLC_MAX 0xD7 +#define FDDI_FC_K_IMPLEMENTOR_MIN 0x60 +#define FDDI_FC_K_IMPLEMENTOR_MAX 0x6F +#define FDDI_FC_K_RESERVED_MIN 0x70 +#define FDDI_FC_K_RESERVED_MAX 0x7F + +/* Define LLC and SNAP constants */ +#define FDDI_EXTENDED_SAP 0xAA +#define FDDI_UI_CMD 0x03 + +/* Define 802.2 Type 1 header */ +struct fddi_8022_1_hdr { + __u8 dsap; /* destination service access point */ + __u8 ssap; /* source service access point */ + __u8 ctrl; /* control byte #1 */ +} __attribute__((packed)); + +/* Define 802.2 Type 2 header */ +struct fddi_8022_2_hdr { + __u8 dsap; /* destination service access point */ + __u8 ssap; /* source service access point */ + __u8 ctrl_1; /* control byte #1 */ + __u8 ctrl_2; /* control byte #2 */ +} __attribute__((packed)); + +/* Define 802.2 SNAP header */ +#define FDDI_K_OUI_LEN 3 +struct fddi_snap_hdr { + __u8 dsap; /* always 0xAA */ + __u8 ssap; /* always 0xAA */ + __u8 ctrl; /* always 0x03 */ + __u8 oui[FDDI_K_OUI_LEN]; /* organizational universal id */ + __be16 ethertype; /* packet type ID field */ +} __attribute__((packed)); + +/* Define FDDI LLC frame header */ +struct fddihdr { + __u8 fc; /* frame control */ + __u8 daddr[FDDI_K_ALEN]; /* destination address */ + __u8 saddr[FDDI_K_ALEN]; /* source address */ + union + { + struct fddi_8022_1_hdr llc_8022_1; + struct fddi_8022_2_hdr llc_8022_2; + struct fddi_snap_hdr llc_snap; + } hdr; +} __attribute__((packed)); + + +#endif /* _LINUX_IF_FDDI_H */ diff --git a/kernel_headers/linux/if_frad.h b/kernel_headers/linux/if_frad.h new file mode 100644 index 0000000..30361db --- /dev/null +++ b/kernel_headers/linux/if_frad.h @@ -0,0 +1,122 @@ +/* + * DLCI/FRAD Definitions for Frame Relay Access Devices. DLCI devices are + * created for each DLCI associated with a FRAD. The FRAD driver + * is not truly a network device, but the lower level device + * handler. This allows other FRAD manufacturers to use the DLCI + * code, including its RFC1490 encapsulation alongside the current + * implementation for the Sangoma cards. + * + * Version: @(#)if_ifrad.h 0.15 31 Mar 96 + * + * Author: Mike McLagan + * + * Changes: + * 0.15 Mike McLagan changed structure defs (packed) + * re-arranged flags + * added DLCI_RET vars + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _FRAD_H_ +#define _FRAD_H_ + +#include + +/* Structures and constants associated with the DLCI device driver */ + +struct dlci_add +{ + char devname[IFNAMSIZ]; + short dlci; +}; + +#define DLCI_GET_CONF (SIOCDEVPRIVATE + 2) +#define DLCI_SET_CONF (SIOCDEVPRIVATE + 3) + +/* + * These are related to the Sangoma SDLA and should remain in order. + * Code within the SDLA module is based on the specifics of this + * structure. Change at your own peril. + */ +struct dlci_conf { + short flags; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; + +/* these are part of the status read */ + short Tc_fwd; + short Tc_bwd; + short Tf_max; + short Tb_max; + +/* add any new fields here above is a mirror of sdla_dlci_conf */ +}; + +#define DLCI_GET_SLAVE (SIOCDEVPRIVATE + 4) + +/* configuration flags for DLCI */ +#define DLCI_IGNORE_CIR_OUT 0x0001 +#define DLCI_ACCOUNT_CIR_IN 0x0002 +#define DLCI_BUFFER_IF 0x0008 + +#define DLCI_VALID_FLAGS 0x000B + +/* defines for the actual Frame Relay hardware */ +#define FRAD_GET_CONF (SIOCDEVPRIVATE) +#define FRAD_SET_CONF (SIOCDEVPRIVATE + 1) + +#define FRAD_LAST_IOCTL FRAD_SET_CONF + +/* + * Based on the setup for the Sangoma SDLA. If changes are + * necessary to this structure, a routine will need to be + * added to that module to copy fields. + */ +struct frad_conf +{ + short station; + short flags; + short kbaud; + short clocking; + short mtu; + short T391; + short T392; + short N391; + short N392; + short N393; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; + +/* Add new fields here, above is a mirror of the sdla_conf */ + +}; + +#define FRAD_STATION_CPE 0x0000 +#define FRAD_STATION_NODE 0x0001 + +#define FRAD_TX_IGNORE_CIR 0x0001 +#define FRAD_RX_ACCOUNT_CIR 0x0002 +#define FRAD_DROP_ABORTED 0x0004 +#define FRAD_BUFFERIF 0x0008 +#define FRAD_STATS 0x0010 +#define FRAD_MCI 0x0100 +#define FRAD_AUTODLCI 0x8000 +#define FRAD_VALID_FLAGS 0x811F + +#define FRAD_CLOCK_INT 0x0001 +#define FRAD_CLOCK_EXT 0x0000 + + +#endif /* _FRAD_H_ */ diff --git a/kernel_headers/linux/if_hippi.h b/kernel_headers/linux/if_hippi.h new file mode 100644 index 0000000..cdc049f --- /dev/null +++ b/kernel_headers/linux/if_hippi.h @@ -0,0 +1,153 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the HIPPI interface. + * + * Version: @(#)if_hippi.h 1.0.0 05/26/97 + * + * Author: Fred N. van Kempen, + * Donald Becker, + * Alan Cox, + * Steve Whitehouse, + * Jes Sorensen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IF_HIPPI_H +#define _LINUX_IF_HIPPI_H + +#include +#include + +/* + * HIPPI magic constants. + */ + +#define HIPPI_ALEN 6 /* Bytes in one HIPPI hw-addr */ +#define HIPPI_HLEN sizeof(struct hippi_hdr) +#define HIPPI_ZLEN 0 /* Min. bytes in frame without FCS */ +#define HIPPI_DATA_LEN 65280 /* Max. bytes in payload */ +#define HIPPI_FRAME_LEN (HIPPI_DATA_LEN + HIPPI_HLEN) + /* Max. bytes in frame without FCS */ + +/* + * Define LLC and SNAP constants. + */ +#define HIPPI_EXTENDED_SAP 0xAA +#define HIPPI_UI_CMD 0x03 + + +/* + * Do we need to list some sort of ID's here? + */ + +/* + * HIPPI statistics collection data. + */ + +struct hipnet_statistics { + int rx_packets; /* total packets received */ + int tx_packets; /* total packets transmitted */ + int rx_errors; /* bad packets received */ + int tx_errors; /* packet transmit problems */ + int rx_dropped; /* no space in linux buffers */ + int tx_dropped; /* no space available in linux */ + + /* detailed rx_errors: */ + int rx_length_errors; + int rx_over_errors; /* receiver ring buff overflow */ + int rx_crc_errors; /* recved pkt with crc error */ + int rx_frame_errors; /* recv'd frame alignment error */ + int rx_fifo_errors; /* recv'r fifo overrun */ + int rx_missed_errors; /* receiver missed packet */ + + /* detailed tx_errors */ + int tx_aborted_errors; + int tx_carrier_errors; + int tx_fifo_errors; + int tx_heartbeat_errors; + int tx_window_errors; +}; + + +struct hippi_fp_hdr { +#if 0 + __u8 ulp; /* must contain 4 */ +#if defined (__BIG_ENDIAN_BITFIELD) + __u8 d1_data_present:1; /* must be 1 */ + __u8 start_d2_burst_boundary:1; /* must be zero */ + __u8 reserved:6; /* must be zero */ +#if 0 + __u16 reserved1:5; + __u16 d1_area_size:8; /* must be 3 */ + __u16 d2_offset:3; /* must be zero */ +#endif +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 reserved:6; /* must be zero */ + __u8 start_d2_burst_boundary:1; /* must be zero */ + __u8 d1_data_present:1; /* must be 1 */ +#if 0 + __u16 d2_offset:3; /* must be zero */ + __u16 d1_area_size:8; /* must be 3 */ + __u16 reserved1:5; /* must be zero */ +#endif +#else +#error "Please fix " +#endif +#else + __be32 fixed; +#endif + __be32 d2_size; +} __attribute__((packed)); + +struct hippi_le_hdr { +#if defined (__BIG_ENDIAN_BITFIELD) + __u8 fc:3; + __u8 double_wide:1; + __u8 message_type:4; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 message_type:4; + __u8 double_wide:1; + __u8 fc:3; +#endif + __u8 dest_switch_addr[3]; +#if defined (__BIG_ENDIAN_BITFIELD) + __u8 dest_addr_type:4, + src_addr_type:4; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + __u8 src_addr_type:4, + dest_addr_type:4; +#endif + __u8 src_switch_addr[3]; + __u16 reserved; + __u8 daddr[HIPPI_ALEN]; + __u16 locally_administered; + __u8 saddr[HIPPI_ALEN]; +} __attribute__((packed)); + +#define HIPPI_OUI_LEN 3 +/* + * Looks like the dsap and ssap fields have been swapped by mistake in + * RFC 2067 "IP over HIPPI". + */ +struct hippi_snap_hdr { + __u8 dsap; /* always 0xAA */ + __u8 ssap; /* always 0xAA */ + __u8 ctrl; /* always 0x03 */ + __u8 oui[HIPPI_OUI_LEN]; /* organizational universal id (zero)*/ + __be16 ethertype; /* packet type ID field */ +} __attribute__((packed)); + +struct hippi_hdr { + struct hippi_fp_hdr fp; + struct hippi_le_hdr le; + struct hippi_snap_hdr snap; +} __attribute__((packed)); + +#endif /* _LINUX_IF_HIPPI_H */ diff --git a/kernel_headers/linux/if_infiniband.h b/kernel_headers/linux/if_infiniband.h new file mode 100644 index 0000000..7d95847 --- /dev/null +++ b/kernel_headers/linux/if_infiniband.h @@ -0,0 +1,29 @@ +/* + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available at + * , or the OpenIB.org BSD + * license, available in the LICENSE.TXT file accompanying this + * software. These details are also available at + * . + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright (c) 2004 Topspin Communications. All rights reserved. + * + * $Id$ + */ + +#ifndef _LINUX_IF_INFINIBAND_H +#define _LINUX_IF_INFINIBAND_H + +#define INFINIBAND_ALEN 20 /* Octets in IPoIB HW addr */ + +#endif /* _LINUX_IF_INFINIBAND_H */ diff --git a/kernel_headers/linux/if_link.h b/kernel_headers/linux/if_link.h new file mode 100644 index 0000000..965dc9f --- /dev/null +++ b/kernel_headers/linux/if_link.h @@ -0,0 +1,453 @@ +#ifndef _LINUX_IF_LINK_H +#define _LINUX_IF_LINK_H + +#include +#include + +/* This struct should be in sync with struct rtnl_link_stats64 */ +struct rtnl_link_stats { + __u32 rx_packets; /* total packets received */ + __u32 tx_packets; /* total packets transmitted */ + __u32 rx_bytes; /* total bytes received */ + __u32 tx_bytes; /* total bytes transmitted */ + __u32 rx_errors; /* bad packets received */ + __u32 tx_errors; /* packet transmit problems */ + __u32 rx_dropped; /* no space in linux buffers */ + __u32 tx_dropped; /* no space available in linux */ + __u32 multicast; /* multicast packets received */ + __u32 collisions; + + /* detailed rx_errors: */ + __u32 rx_length_errors; + __u32 rx_over_errors; /* receiver ring buff overflow */ + __u32 rx_crc_errors; /* recved pkt with crc error */ + __u32 rx_frame_errors; /* recv'd frame alignment error */ + __u32 rx_fifo_errors; /* recv'r fifo overrun */ + __u32 rx_missed_errors; /* receiver missed packet */ + + /* detailed tx_errors */ + __u32 tx_aborted_errors; + __u32 tx_carrier_errors; + __u32 tx_fifo_errors; + __u32 tx_heartbeat_errors; + __u32 tx_window_errors; + + /* for cslip etc */ + __u32 rx_compressed; + __u32 tx_compressed; +}; + +/* The main device statistics structure */ +struct rtnl_link_stats64 { + __u64 rx_packets; /* total packets received */ + __u64 tx_packets; /* total packets transmitted */ + __u64 rx_bytes; /* total bytes received */ + __u64 tx_bytes; /* total bytes transmitted */ + __u64 rx_errors; /* bad packets received */ + __u64 tx_errors; /* packet transmit problems */ + __u64 rx_dropped; /* no space in linux buffers */ + __u64 tx_dropped; /* no space available in linux */ + __u64 multicast; /* multicast packets received */ + __u64 collisions; + + /* detailed rx_errors: */ + __u64 rx_length_errors; + __u64 rx_over_errors; /* receiver ring buff overflow */ + __u64 rx_crc_errors; /* recved pkt with crc error */ + __u64 rx_frame_errors; /* recv'd frame alignment error */ + __u64 rx_fifo_errors; /* recv'r fifo overrun */ + __u64 rx_missed_errors; /* receiver missed packet */ + + /* detailed tx_errors */ + __u64 tx_aborted_errors; + __u64 tx_carrier_errors; + __u64 tx_fifo_errors; + __u64 tx_heartbeat_errors; + __u64 tx_window_errors; + + /* for cslip etc */ + __u64 rx_compressed; + __u64 tx_compressed; +}; + +/* The struct should be in sync with struct ifmap */ +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; +}; + +/* + * IFLA_AF_SPEC + * Contains nested attributes for address family specific attributes. + * Each address family may create a attribute with the address family + * number as type and create its own attribute structure in it. + * + * Example: + * [IFLA_AF_SPEC] = { + * [AF_INET] = { + * [IFLA_INET_CONF] = ..., + * }, + * [AF_INET6] = { + * [IFLA_INET6_FLAGS] = ..., + * [IFLA_INET6_CONF] = ..., + * } + * } + */ + +enum { + IFLA_UNSPEC, + IFLA_ADDRESS, + IFLA_BROADCAST, + IFLA_IFNAME, + IFLA_MTU, + IFLA_LINK, + IFLA_QDISC, + IFLA_STATS, + IFLA_COST, +#define IFLA_COST IFLA_COST + IFLA_PRIORITY, +#define IFLA_PRIORITY IFLA_PRIORITY + IFLA_MASTER, +#define IFLA_MASTER IFLA_MASTER + IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */ +#define IFLA_WIRELESS IFLA_WIRELESS + IFLA_PROTINFO, /* Protocol specific information for a link */ +#define IFLA_PROTINFO IFLA_PROTINFO + IFLA_TXQLEN, +#define IFLA_TXQLEN IFLA_TXQLEN + IFLA_MAP, +#define IFLA_MAP IFLA_MAP + IFLA_WEIGHT, +#define IFLA_WEIGHT IFLA_WEIGHT + IFLA_OPERSTATE, + IFLA_LINKMODE, + IFLA_LINKINFO, +#define IFLA_LINKINFO IFLA_LINKINFO + IFLA_NET_NS_PID, + IFLA_IFALIAS, + IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */ + IFLA_VFINFO_LIST, + IFLA_STATS64, + IFLA_VF_PORTS, + IFLA_PORT_SELF, + IFLA_AF_SPEC, + IFLA_GROUP, /* Group the device belongs to */ + IFLA_NET_NS_FD, + IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ + IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */ +#define IFLA_PROMISCUITY IFLA_PROMISCUITY + IFLA_NUM_TX_QUEUES, + IFLA_NUM_RX_QUEUES, + IFLA_CARRIER, + __IFLA_MAX +}; + + +#define IFLA_MAX (__IFLA_MAX - 1) + +/* backwards compatibility for userspace */ +#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) +#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) + +enum { + IFLA_INET_UNSPEC, + IFLA_INET_CONF, + __IFLA_INET_MAX, +}; + +#define IFLA_INET_MAX (__IFLA_INET_MAX - 1) + +/* ifi_flags. + + IFF_* flags. + + The only change is: + IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are + more not changeable by user. They describe link media + characteristics and set by device driver. + + Comments: + - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid + - If neither of these three flags are set; + the interface is NBMA. + + - IFF_MULTICAST does not mean anything special: + multicasts can be used on all not-NBMA links. + IFF_MULTICAST means that this media uses special encapsulation + for multicast frames. Apparently, all IFF_POINTOPOINT and + IFF_BROADCAST devices are able to use multicasts too. + */ + +/* IFLA_LINK. + For usual devices it is equal ifi_index. + If it is a "virtual interface" (f.e. tunnel), ifi_link + can point to real physical interface (f.e. for bandwidth calculations), + or maybe 0, what means, that real media is unknown (usual + for IPIP tunnels, when route to endpoint is allowed to change) + */ + +/* Subtype attributes for IFLA_PROTINFO */ +enum { + IFLA_INET6_UNSPEC, + IFLA_INET6_FLAGS, /* link flags */ + IFLA_INET6_CONF, /* sysctl parameters */ + IFLA_INET6_STATS, /* statistics */ + IFLA_INET6_MCAST, /* MC things. What of them? */ + IFLA_INET6_CACHEINFO, /* time values and max reasm size */ + IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ + IFLA_INET6_TOKEN, /* device token */ + __IFLA_INET6_MAX +}; + +#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) + +enum { + BRIDGE_MODE_UNSPEC, + BRIDGE_MODE_HAIRPIN, +}; + +enum { + IFLA_BRPORT_UNSPEC, + IFLA_BRPORT_STATE, /* Spanning tree state */ + IFLA_BRPORT_PRIORITY, /* " priority */ + IFLA_BRPORT_COST, /* " cost */ + IFLA_BRPORT_MODE, /* mode (hairpin) */ + IFLA_BRPORT_GUARD, /* bpdu guard */ + IFLA_BRPORT_PROTECT, /* root port protection */ + IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ + __IFLA_BRPORT_MAX +}; +#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) + +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ + __u32 reachable_time; + __u32 retrans_time; +}; + +enum { + IFLA_INFO_UNSPEC, + IFLA_INFO_KIND, + IFLA_INFO_DATA, + IFLA_INFO_XSTATS, + __IFLA_INFO_MAX, +}; + +#define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1) + +/* VLAN section */ + +enum { + IFLA_VLAN_UNSPEC, + IFLA_VLAN_ID, + IFLA_VLAN_FLAGS, + IFLA_VLAN_EGRESS_QOS, + IFLA_VLAN_INGRESS_QOS, + IFLA_VLAN_PROTOCOL, + __IFLA_VLAN_MAX, +}; + +#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1) + +struct ifla_vlan_flags { + __u32 flags; + __u32 mask; +}; + +enum { + IFLA_VLAN_QOS_UNSPEC, + IFLA_VLAN_QOS_MAPPING, + __IFLA_VLAN_QOS_MAX +}; + +#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) + +struct ifla_vlan_qos_mapping { + __u32 from; + __u32 to; +}; + +/* MACVLAN section */ +enum { + IFLA_MACVLAN_UNSPEC, + IFLA_MACVLAN_MODE, + IFLA_MACVLAN_FLAGS, + __IFLA_MACVLAN_MAX, +}; + +#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) + +enum macvlan_mode { + MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ + MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */ + MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */ + MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ +}; + +#define MACVLAN_FLAG_NOPROMISC 1 + +/* VXLAN section */ +enum { + IFLA_VXLAN_UNSPEC, + IFLA_VXLAN_ID, + IFLA_VXLAN_GROUP, /* group or remote address */ + IFLA_VXLAN_LINK, + IFLA_VXLAN_LOCAL, + IFLA_VXLAN_TTL, + IFLA_VXLAN_TOS, + IFLA_VXLAN_LEARNING, + IFLA_VXLAN_AGEING, + IFLA_VXLAN_LIMIT, + IFLA_VXLAN_PORT_RANGE, /* source port */ + IFLA_VXLAN_PROXY, + IFLA_VXLAN_RSC, + IFLA_VXLAN_L2MISS, + IFLA_VXLAN_L3MISS, + IFLA_VXLAN_PORT, /* destination port */ + __IFLA_VXLAN_MAX +}; +#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) + +struct ifla_vxlan_port_range { + __be16 low; + __be16 high; +}; + +/* SR-IOV virtual function management section */ + +enum { + IFLA_VF_INFO_UNSPEC, + IFLA_VF_INFO, + __IFLA_VF_INFO_MAX, +}; + +#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) + +enum { + IFLA_VF_UNSPEC, + IFLA_VF_MAC, /* Hardware queue specific attributes */ + IFLA_VF_VLAN, + IFLA_VF_TX_RATE, /* TX Bandwidth Allocation */ + IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ + __IFLA_VF_MAX, +}; + +#define IFLA_VF_MAX (__IFLA_VF_MAX - 1) + +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; /* MAX_ADDR_LEN */ +}; + +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ + __u32 qos; +}; + +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ +}; + +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; +}; + +/* VF ports management section + * + * Nested layout of set/get msg is: + * + * [IFLA_NUM_VF] + * [IFLA_VF_PORTS] + * [IFLA_VF_PORT] + * [IFLA_PORT_*], ... + * [IFLA_VF_PORT] + * [IFLA_PORT_*], ... + * ... + * [IFLA_PORT_SELF] + * [IFLA_PORT_*], ... + */ + +enum { + IFLA_VF_PORT_UNSPEC, + IFLA_VF_PORT, /* nest */ + __IFLA_VF_PORT_MAX, +}; + +#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) + +enum { + IFLA_PORT_UNSPEC, + IFLA_PORT_VF, /* __u32 */ + IFLA_PORT_PROFILE, /* string */ + IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */ + IFLA_PORT_INSTANCE_UUID, /* binary UUID */ + IFLA_PORT_HOST_UUID, /* binary UUID */ + IFLA_PORT_REQUEST, /* __u8 */ + IFLA_PORT_RESPONSE, /* __u16, output only */ + __IFLA_PORT_MAX, +}; + +#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) + +#define PORT_PROFILE_MAX 40 +#define PORT_UUID_MAX 16 +#define PORT_SELF_VF -1 + +enum { + PORT_REQUEST_PREASSOCIATE = 0, + PORT_REQUEST_PREASSOCIATE_RR, + PORT_REQUEST_ASSOCIATE, + PORT_REQUEST_DISASSOCIATE, +}; + +enum { + PORT_VDP_RESPONSE_SUCCESS = 0, + PORT_VDP_RESPONSE_INVALID_FORMAT, + PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, + PORT_VDP_RESPONSE_UNUSED_VTID, + PORT_VDP_RESPONSE_VTID_VIOLATION, + PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, + PORT_VDP_RESPONSE_OUT_OF_SYNC, + /* 0x08-0xFF reserved for future VDP use */ + PORT_PROFILE_RESPONSE_SUCCESS = 0x100, + PORT_PROFILE_RESPONSE_INPROGRESS, + PORT_PROFILE_RESPONSE_INVALID, + PORT_PROFILE_RESPONSE_BADSTATE, + PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, + PORT_PROFILE_RESPONSE_ERROR, +}; + +struct ifla_port_vsi { + __u8 vsi_mgr_id; + __u8 vsi_type_id[3]; + __u8 vsi_type_version; + __u8 pad[3]; +}; + + +/* IPoIB section */ + +enum { + IFLA_IPOIB_UNSPEC, + IFLA_IPOIB_PKEY, + IFLA_IPOIB_MODE, + IFLA_IPOIB_UMCAST, + __IFLA_IPOIB_MAX +}; + +enum { + IPOIB_MODE_DATAGRAM = 0, /* using unreliable datagram QPs */ + IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ +}; + +#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) + +#endif /* _LINUX_IF_LINK_H */ diff --git a/kernel_headers/linux/if_ltalk.h b/kernel_headers/linux/if_ltalk.h new file mode 100644 index 0000000..1f83ba0 --- /dev/null +++ b/kernel_headers/linux/if_ltalk.h @@ -0,0 +1,9 @@ +#ifndef __LINUX_LTALK_H +#define __LINUX_LTALK_H + +#define LTALK_HLEN 1 +#define LTALK_MTU 600 +#define LTALK_ALEN 1 + + +#endif /* __LINUX_LTALK_H */ diff --git a/kernel_headers/linux/if_packet.h b/kernel_headers/linux/if_packet.h new file mode 100644 index 0000000..b950c02 --- /dev/null +++ b/kernel_headers/linux/if_packet.h @@ -0,0 +1,280 @@ +#ifndef __LINUX_IF_PACKET_H +#define __LINUX_IF_PACKET_H + +#include + +struct sockaddr_pkt { + unsigned short spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; + +struct sockaddr_ll { + unsigned short sll_family; + __be16 sll_protocol; + int sll_ifindex; + unsigned short sll_hatype; + unsigned char sll_pkttype; + unsigned char sll_halen; + unsigned char sll_addr[8]; +}; + +/* Packet types */ + +#define PACKET_HOST 0 /* To us */ +#define PACKET_BROADCAST 1 /* To all */ +#define PACKET_MULTICAST 2 /* To group */ +#define PACKET_OTHERHOST 3 /* To someone else */ +#define PACKET_OUTGOING 4 /* Outgoing of any type */ +/* These ones are invisible by user level */ +#define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ +#define PACKET_FASTROUTE 6 /* Fastrouted frame */ + +/* Packet socket options */ + +#define PACKET_ADD_MEMBERSHIP 1 +#define PACKET_DROP_MEMBERSHIP 2 +#define PACKET_RECV_OUTPUT 3 +/* Value 4 is still used by obsolete turbo-packet. */ +#define PACKET_RX_RING 5 +#define PACKET_STATISTICS 6 +#define PACKET_COPY_THRESH 7 +#define PACKET_AUXDATA 8 +#define PACKET_ORIGDEV 9 +#define PACKET_VERSION 10 +#define PACKET_HDRLEN 11 +#define PACKET_RESERVE 12 +#define PACKET_TX_RING 13 +#define PACKET_LOSS 14 +#define PACKET_VNET_HDR 15 +#define PACKET_TX_TIMESTAMP 16 +#define PACKET_TIMESTAMP 17 +#define PACKET_FANOUT 18 +#define PACKET_TX_HAS_OFF 19 + +#define PACKET_FANOUT_HASH 0 +#define PACKET_FANOUT_LB 1 +#define PACKET_FANOUT_CPU 2 +#define PACKET_FANOUT_ROLLOVER 3 +#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 +#define PACKET_FANOUT_FLAG_DEFRAG 0x8000 + +struct tpacket_stats { + unsigned int tp_packets; + unsigned int tp_drops; +}; + +struct tpacket_stats_v3 { + unsigned int tp_packets; + unsigned int tp_drops; + unsigned int tp_freeze_q_cnt; +}; + +union tpacket_stats_u { + struct tpacket_stats stats1; + struct tpacket_stats_v3 stats3; +}; + +struct tpacket_auxdata { + __u32 tp_status; + __u32 tp_len; + __u32 tp_snaplen; + __u16 tp_mac; + __u16 tp_net; + __u16 tp_vlan_tci; + __u16 tp_padding; +}; + +/* Rx ring - header status */ +#define TP_STATUS_KERNEL 0 +#define TP_STATUS_USER (1 << 0) +#define TP_STATUS_COPY (1 << 1) +#define TP_STATUS_LOSING (1 << 2) +#define TP_STATUS_CSUMNOTREADY (1 << 3) +#define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */ +#define TP_STATUS_BLK_TMO (1 << 5) + +/* Tx ring - header status */ +#define TP_STATUS_AVAILABLE 0 +#define TP_STATUS_SEND_REQUEST (1 << 0) +#define TP_STATUS_SENDING (1 << 1) +#define TP_STATUS_WRONG_FORMAT (1 << 2) + +/* Rx and Tx ring - header status */ +#define TP_STATUS_TS_SOFTWARE (1 << 29) +#define TP_STATUS_TS_SYS_HARDWARE (1 << 30) +#define TP_STATUS_TS_RAW_HARDWARE (1 << 31) + +/* Rx ring - feature request bits */ +#define TP_FT_REQ_FILL_RXHASH 0x1 + +struct tpacket_hdr { + unsigned long tp_status; + unsigned int tp_len; + unsigned int tp_snaplen; + unsigned short tp_mac; + unsigned short tp_net; + unsigned int tp_sec; + unsigned int tp_usec; +}; + +#define TPACKET_ALIGNMENT 16 +#define TPACKET_ALIGN(x) (((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1)) +#define TPACKET_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll)) + +struct tpacket2_hdr { + __u32 tp_status; + __u32 tp_len; + __u32 tp_snaplen; + __u16 tp_mac; + __u16 tp_net; + __u32 tp_sec; + __u32 tp_nsec; + __u16 tp_vlan_tci; + __u16 tp_padding; +}; + +struct tpacket_hdr_variant1 { + __u32 tp_rxhash; + __u32 tp_vlan_tci; +}; + +struct tpacket3_hdr { + __u32 tp_next_offset; + __u32 tp_sec; + __u32 tp_nsec; + __u32 tp_snaplen; + __u32 tp_len; + __u32 tp_status; + __u16 tp_mac; + __u16 tp_net; + /* pkt_hdr variants */ + union { + struct tpacket_hdr_variant1 hv1; + }; +}; + +struct tpacket_bd_ts { + unsigned int ts_sec; + union { + unsigned int ts_usec; + unsigned int ts_nsec; + }; +}; + +struct tpacket_hdr_v1 { + __u32 block_status; + __u32 num_pkts; + __u32 offset_to_first_pkt; + + /* Number of valid bytes (including padding) + * blk_len <= tp_block_size + */ + __u32 blk_len; + + /* + * Quite a few uses of sequence number: + * 1. Make sure cache flush etc worked. + * Well, one can argue - why not use the increasing ts below? + * But look at 2. below first. + * 2. When you pass around blocks to other user space decoders, + * you can see which blk[s] is[are] outstanding etc. + * 3. Validate kernel code. + */ + __aligned_u64 seq_num; + + /* + * ts_last_pkt: + * + * Case 1. Block has 'N'(N >=1) packets and TMO'd(timed out) + * ts_last_pkt == 'time-stamp of last packet' and NOT the + * time when the timer fired and the block was closed. + * By providing the ts of the last packet we can absolutely + * guarantee that time-stamp wise, the first packet in the + * next block will never precede the last packet of the + * previous block. + * Case 2. Block has zero packets and TMO'd + * ts_last_pkt = time when the timer fired and the block + * was closed. + * Case 3. Block has 'N' packets and NO TMO. + * ts_last_pkt = time-stamp of the last pkt in the block. + * + * ts_first_pkt: + * Is always the time-stamp when the block was opened. + * Case a) ZERO packets + * No packets to deal with but atleast you know the + * time-interval of this block. + * Case b) Non-zero packets + * Use the ts of the first packet in the block. + * + */ + struct tpacket_bd_ts ts_first_pkt, ts_last_pkt; +}; + +union tpacket_bd_header_u { + struct tpacket_hdr_v1 bh1; +}; + +struct tpacket_block_desc { + __u32 version; + __u32 offset_to_priv; + union tpacket_bd_header_u hdr; +}; + +#define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll)) +#define TPACKET3_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket3_hdr)) + sizeof(struct sockaddr_ll)) + +enum tpacket_versions { + TPACKET_V1, + TPACKET_V2, + TPACKET_V3 +}; + +/* + Frame structure: + + - Start. Frame must be aligned to TPACKET_ALIGNMENT=16 + - struct tpacket_hdr + - pad to TPACKET_ALIGNMENT=16 + - struct sockaddr_ll + - Gap, chosen so that packet data (Start+tp_net) alignes to TPACKET_ALIGNMENT=16 + - Start+tp_mac: [ Optional MAC header ] + - Start+tp_net: Packet data, aligned to TPACKET_ALIGNMENT=16. + - Pad to align to TPACKET_ALIGNMENT=16 + */ + +struct tpacket_req { + unsigned int tp_block_size; /* Minimal size of contiguous block */ + unsigned int tp_block_nr; /* Number of blocks */ + unsigned int tp_frame_size; /* Size of frame */ + unsigned int tp_frame_nr; /* Total number of frames */ +}; + +struct tpacket_req3 { + unsigned int tp_block_size; /* Minimal size of contiguous block */ + unsigned int tp_block_nr; /* Number of blocks */ + unsigned int tp_frame_size; /* Size of frame */ + unsigned int tp_frame_nr; /* Total number of frames */ + unsigned int tp_retire_blk_tov; /* timeout in msecs */ + unsigned int tp_sizeof_priv; /* offset to private data area */ + unsigned int tp_feature_req_word; +}; + +union tpacket_req_u { + struct tpacket_req req; + struct tpacket_req3 req3; +}; + +struct packet_mreq { + int mr_ifindex; + unsigned short mr_type; + unsigned short mr_alen; + unsigned char mr_address[8]; +}; + +#define PACKET_MR_MULTICAST 0 +#define PACKET_MR_PROMISC 1 +#define PACKET_MR_ALLMULTI 2 +#define PACKET_MR_UNICAST 3 + +#endif diff --git a/kernel_headers/linux/if_phonet.h b/kernel_headers/linux/if_phonet.h new file mode 100644 index 0000000..63371bc --- /dev/null +++ b/kernel_headers/linux/if_phonet.h @@ -0,0 +1,16 @@ +/* + * File: if_phonet.h + * + * Phonet interface kernel definitions + * + * Copyright (C) 2008 Nokia Corporation. All rights reserved. + */ +#ifndef LINUX_IF_PHONET_H +#define LINUX_IF_PHONET_H + +#define PHONET_MIN_MTU 6 /* pn_length = 0 */ +#define PHONET_MAX_MTU 65541 /* pn_length = 0xffff */ +#define PHONET_DEV_MTU PHONET_MAX_MTU + + +#endif /* LINUX_IF_PHONET_H */ diff --git a/kernel_headers/linux/if_plip.h b/kernel_headers/linux/if_plip.h new file mode 100644 index 0000000..6298c7e --- /dev/null +++ b/kernel_headers/linux/if_plip.h @@ -0,0 +1,27 @@ +/* + * NET3 PLIP tuning facilities for the new Niibe PLIP. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#ifndef _LINUX_IF_PLIP_H +#define _LINUX_IF_PLIP_H + +#include + +#define SIOCDEVPLIP SIOCDEVPRIVATE + +struct plipconf { + unsigned short pcmd; + unsigned long nibble; + unsigned long trigger; +}; + +#define PLIP_GET_TIMEOUT 0x1 +#define PLIP_SET_TIMEOUT 0x2 + +#endif diff --git a/kernel_headers/linux/if_ppp.h b/kernel_headers/linux/if_ppp.h new file mode 100644 index 0000000..9048fab --- /dev/null +++ b/kernel_headers/linux/if_ppp.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/linux/if_pppol2tp.h b/kernel_headers/linux/if_pppol2tp.h new file mode 100644 index 0000000..8e1221c --- /dev/null +++ b/kernel_headers/linux/if_pppol2tp.h @@ -0,0 +1,104 @@ +/*************************************************************************** + * Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661) + * + * This file supplies definitions required by the PPP over L2TP driver + * (l2tp_ppp.c). All version information wrt this file is located in l2tp_ppp.c + * + * License: + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#ifndef __LINUX_IF_PPPOL2TP_H +#define __LINUX_IF_PPPOL2TP_H + +#include + + +/* Structure used to connect() the socket to a particular tunnel UDP + * socket over IPv4. + */ +struct pppol2tp_addr { + __kernel_pid_t pid; /* pid that owns the fd. + * 0 => current */ + int fd; /* FD of UDP socket to use */ + + struct sockaddr_in addr; /* IP address and port to send to */ + + __u16 s_tunnel, s_session; /* For matching incoming packets */ + __u16 d_tunnel, d_session; /* For sending outgoing packets */ +}; + +/* Structure used to connect() the socket to a particular tunnel UDP + * socket over IPv6. + */ +struct pppol2tpin6_addr { + __kernel_pid_t pid; /* pid that owns the fd. + * 0 => current */ + int fd; /* FD of UDP socket to use */ + + __u16 s_tunnel, s_session; /* For matching incoming packets */ + __u16 d_tunnel, d_session; /* For sending outgoing packets */ + + struct sockaddr_in6 addr; /* IP address and port to send to */ +}; + +/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32 + * bits. So we need a different sockaddr structure. + */ +struct pppol2tpv3_addr { + __kernel_pid_t pid; /* pid that owns the fd. + * 0 => current */ + int fd; /* FD of UDP or IP socket to use */ + + struct sockaddr_in addr; /* IP address and port to send to */ + + __u32 s_tunnel, s_session; /* For matching incoming packets */ + __u32 d_tunnel, d_session; /* For sending outgoing packets */ +}; + +struct pppol2tpv3in6_addr { + __kernel_pid_t pid; /* pid that owns the fd. + * 0 => current */ + int fd; /* FD of UDP or IP socket to use */ + + __u32 s_tunnel, s_session; /* For matching incoming packets */ + __u32 d_tunnel, d_session; /* For sending outgoing packets */ + + struct sockaddr_in6 addr; /* IP address and port to send to */ +}; + +/* Socket options: + * DEBUG - bitmask of debug message categories + * SENDSEQ - 0 => don't send packets with sequence numbers + * 1 => send packets with sequence numbers + * RECVSEQ - 0 => receive packet sequence numbers are optional + * 1 => drop receive packets without sequence numbers + * LNSMODE - 0 => act as LAC. + * 1 => act as LNS. + * REORDERTO - reorder timeout (in millisecs). If 0, don't try to reorder. + */ +enum { + PPPOL2TP_SO_DEBUG = 1, + PPPOL2TP_SO_RECVSEQ = 2, + PPPOL2TP_SO_SENDSEQ = 3, + PPPOL2TP_SO_LNSMODE = 4, + PPPOL2TP_SO_REORDERTO = 5, +}; + +/* Debug message categories for the DEBUG socket option */ +enum { + PPPOL2TP_MSG_DEBUG = (1 << 0), /* verbose debug (if + * compiled in) */ + PPPOL2TP_MSG_CONTROL = (1 << 1), /* userspace - kernel + * interface */ + PPPOL2TP_MSG_SEQ = (1 << 2), /* sequence numbers */ + PPPOL2TP_MSG_DATA = (1 << 3), /* data packets */ +}; + + + +#endif /* __LINUX_IF_PPPOL2TP_H */ diff --git a/kernel_headers/linux/if_pppolac.h b/kernel_headers/linux/if_pppolac.h new file mode 100644 index 0000000..4daaf41 --- /dev/null +++ b/kernel_headers/linux/if_pppolac.h @@ -0,0 +1,33 @@ +/* include/uapi/linux/if_pppolac.h + * + * Header for PPP on L2TP Access Concentrator / PPPoLAC Socket (RFC 2661) + * + * Copyright (C) 2009 Google, Inc. + * Author: Chia-chi Yeh + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _LINUX_IF_PPPOLAC_H +#define _LINUX_IF_PPPOLAC_H + +#include +#include + +struct sockaddr_pppolac { + sa_family_t sa_family; /* AF_PPPOX */ + unsigned int sa_protocol; /* PX_PROTO_OLAC */ + int udp_socket; + struct __attribute__((packed)) { + __u16 tunnel, session; + } local, remote; +} __attribute__((packed)); + +#endif /* _LINUX_IF_PPPOLAC_H */ diff --git a/kernel_headers/linux/if_pppopns.h b/kernel_headers/linux/if_pppopns.h new file mode 100644 index 0000000..d0ddffb --- /dev/null +++ b/kernel_headers/linux/if_pppopns.h @@ -0,0 +1,32 @@ +/* include/uapi/linux/if_pppopns.h + * + * Header for PPP on PPTP Network Server / PPPoPNS Socket (RFC 2637) + * + * Copyright (C) 2009 Google, Inc. + * Author: Chia-chi Yeh + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _LINUX_IF_PPPOPNS_H +#define _LINUX_IF_PPPOPNS_H + +#include +#include + +struct sockaddr_pppopns { + sa_family_t sa_family; /* AF_PPPOX */ + unsigned int sa_protocol; /* PX_PROTO_OPNS */ + int tcp_socket; + __u16 local; + __u16 remote; +} __attribute__((packed)); + +#endif /* _LINUX_IF_PPPOPNS_H */ diff --git a/kernel_headers/linux/if_pppox.h b/kernel_headers/linux/if_pppox.h new file mode 100644 index 0000000..7eb2c83 --- /dev/null +++ b/kernel_headers/linux/if_pppox.h @@ -0,0 +1,160 @@ +/*************************************************************************** + * Linux PPP over X - Generic PPP transport layer sockets + * Linux PPP over Ethernet (PPPoE) Socket Implementation (RFC 2516) + * + * This file supplies definitions required by the PPP over Ethernet driver + * (pppox.c). All version information wrt this file is located in pppox.c + * + * License: + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#ifndef __LINUX_IF_PPPOX_H +#define __LINUX_IF_PPPOX_H + + +#include +#include + +#include +#include +#include +#include +#include + +/* For user-space programs to pick up these definitions + * which they wouldn't get otherwise without defining __KERNEL__ + */ +#ifndef AF_PPPOX +#define AF_PPPOX 24 +#define PF_PPPOX AF_PPPOX +#endif /* !(AF_PPPOX) */ + +/************************************************************************ + * PPPoE addressing definition + */ +typedef __be16 sid_t; +struct pppoe_addr { + sid_t sid; /* Session identifier */ + unsigned char remote[ETH_ALEN]; /* Remote address */ + char dev[IFNAMSIZ]; /* Local device to use */ +}; + +/************************************************************************ + * PPTP addressing definition + */ +struct pptp_addr { + __be16 call_id; + struct in_addr sin_addr; +}; + +/************************************************************************ + * Protocols supported by AF_PPPOX + */ +#define PX_PROTO_OE 0 /* Currently just PPPoE */ +#define PX_PROTO_OL2TP 1 /* Now L2TP also */ +#define PX_PROTO_PPTP 2 +#define PX_PROTO_OLAC 3 +#define PX_PROTO_OPNS 4 +#define PX_MAX_PROTO 5 + +struct sockaddr_pppox { + __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ + unsigned int sa_protocol; /* protocol identifier */ + union { + struct pppoe_addr pppoe; + struct pptp_addr pptp; + } sa_addr; +} __attribute__((packed)); + +/* The use of the above union isn't viable because the size of this + * struct must stay fixed over time -- applications use sizeof(struct + * sockaddr_pppox) to fill it. We use a protocol specific sockaddr + * type instead. + */ +struct sockaddr_pppol2tp { + __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ + unsigned int sa_protocol; /* protocol identifier */ + struct pppol2tp_addr pppol2tp; +} __attribute__((packed)); + +struct sockaddr_pppol2tpin6 { + __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ + unsigned int sa_protocol; /* protocol identifier */ + struct pppol2tpin6_addr pppol2tp; +} __attribute__((packed)); + +/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32 + * bits. So we need a different sockaddr structure. + */ +struct sockaddr_pppol2tpv3 { + __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ + unsigned int sa_protocol; /* protocol identifier */ + struct pppol2tpv3_addr pppol2tp; +} __attribute__((packed)); + +struct sockaddr_pppol2tpv3in6 { + __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ + unsigned int sa_protocol; /* protocol identifier */ + struct pppol2tpv3in6_addr pppol2tp; +} __attribute__((packed)); + +/********************************************************************* + * + * ioctl interface for defining forwarding of connections + * + ********************************************************************/ + +#define PPPOEIOCSFWD _IOW(0xB1 ,0, size_t) +#define PPPOEIOCDFWD _IO(0xB1 ,1) +/*#define PPPOEIOCGFWD _IOWR(0xB1,2, size_t)*/ + +/* Codes to identify message types */ +#define PADI_CODE 0x09 +#define PADO_CODE 0x07 +#define PADR_CODE 0x19 +#define PADS_CODE 0x65 +#define PADT_CODE 0xa7 +struct pppoe_tag { + __be16 tag_type; + __be16 tag_len; + char tag_data[0]; +} __attribute__ ((packed)); + +/* Tag identifiers */ +#define PTT_EOL __cpu_to_be16(0x0000) +#define PTT_SRV_NAME __cpu_to_be16(0x0101) +#define PTT_AC_NAME __cpu_to_be16(0x0102) +#define PTT_HOST_UNIQ __cpu_to_be16(0x0103) +#define PTT_AC_COOKIE __cpu_to_be16(0x0104) +#define PTT_VENDOR __cpu_to_be16(0x0105) +#define PTT_RELAY_SID __cpu_to_be16(0x0110) +#define PTT_SRV_ERR __cpu_to_be16(0x0201) +#define PTT_SYS_ERR __cpu_to_be16(0x0202) +#define PTT_GEN_ERR __cpu_to_be16(0x0203) + +struct pppoe_hdr { +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 type : 4; + __u8 ver : 4; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 ver : 4; + __u8 type : 4; +#else +#error "Please fix " +#endif + __u8 code; + __be16 sid; + __be16 length; + struct pppoe_tag tag[0]; +} __attribute__((packed)); + +/* Length of entire PPPoE + PPP header */ +#define PPPOE_SES_HLEN 8 + + +#endif /* __LINUX_IF_PPPOX_H */ diff --git a/kernel_headers/linux/if_slip.h b/kernel_headers/linux/if_slip.h new file mode 100644 index 0000000..1eb4e3a --- /dev/null +++ b/kernel_headers/linux/if_slip.h @@ -0,0 +1,30 @@ +/* + * Swansea University Computer Society NET3 + * + * This file declares the constants of special use with the SLIP/CSLIP/ + * KISS TNC driver. + */ + +#ifndef __LINUX_SLIP_H +#define __LINUX_SLIP_H + +#define SL_MODE_SLIP 0 +#define SL_MODE_CSLIP 1 +#define SL_MODE_KISS 4 + +#define SL_OPT_SIXBIT 2 +#define SL_OPT_ADAPTIVE 8 + +/* + * VSV = ioctl for keepalive & outfill in SLIP driver + */ + +#define SIOCSKEEPALIVE (SIOCDEVPRIVATE) /* Set keepalive timeout in sec */ +#define SIOCGKEEPALIVE (SIOCDEVPRIVATE+1) /* Get keepalive timeout */ +#define SIOCSOUTFILL (SIOCDEVPRIVATE+2) /* Set outfill timeout */ +#define SIOCGOUTFILL (SIOCDEVPRIVATE+3) /* Get outfill timeout */ +#define SIOCSLEASE (SIOCDEVPRIVATE+4) /* Set "leased" line type */ +#define SIOCGLEASE (SIOCDEVPRIVATE+5) /* Get line type */ + + +#endif diff --git a/kernel_headers/linux/if_team.h b/kernel_headers/linux/if_team.h new file mode 100644 index 0000000..cb92efa --- /dev/null +++ b/kernel_headers/linux/if_team.h @@ -0,0 +1,107 @@ +/* + * include/linux/if_team.h - Network team device driver header + * Copyright (c) 2011 Jiri Pirko + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#ifndef _LINUX_IF_TEAM_H_ +#define _LINUX_IF_TEAM_H_ + + +#define TEAM_STRING_MAX_LEN 32 + +/********************************** + * NETLINK_GENERIC netlink family. + **********************************/ + +enum { + TEAM_CMD_NOOP, + TEAM_CMD_OPTIONS_SET, + TEAM_CMD_OPTIONS_GET, + TEAM_CMD_PORT_LIST_GET, + + __TEAM_CMD_MAX, + TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1), +}; + +enum { + TEAM_ATTR_UNSPEC, + TEAM_ATTR_TEAM_IFINDEX, /* u32 */ + TEAM_ATTR_LIST_OPTION, /* nest */ + TEAM_ATTR_LIST_PORT, /* nest */ + + __TEAM_ATTR_MAX, + TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1, +}; + +/* Nested layout of get/set msg: + * + * [TEAM_ATTR_LIST_OPTION] + * [TEAM_ATTR_ITEM_OPTION] + * [TEAM_ATTR_OPTION_*], ... + * [TEAM_ATTR_ITEM_OPTION] + * [TEAM_ATTR_OPTION_*], ... + * ... + * [TEAM_ATTR_LIST_PORT] + * [TEAM_ATTR_ITEM_PORT] + * [TEAM_ATTR_PORT_*], ... + * [TEAM_ATTR_ITEM_PORT] + * [TEAM_ATTR_PORT_*], ... + * ... + */ + +enum { + TEAM_ATTR_ITEM_OPTION_UNSPEC, + TEAM_ATTR_ITEM_OPTION, /* nest */ + + __TEAM_ATTR_ITEM_OPTION_MAX, + TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1, +}; + +enum { + TEAM_ATTR_OPTION_UNSPEC, + TEAM_ATTR_OPTION_NAME, /* string */ + TEAM_ATTR_OPTION_CHANGED, /* flag */ + TEAM_ATTR_OPTION_TYPE, /* u8 */ + TEAM_ATTR_OPTION_DATA, /* dynamic */ + TEAM_ATTR_OPTION_REMOVED, /* flag */ + TEAM_ATTR_OPTION_PORT_IFINDEX, /* u32 */ /* for per-port options */ + TEAM_ATTR_OPTION_ARRAY_INDEX, /* u32 */ /* for array options */ + + __TEAM_ATTR_OPTION_MAX, + TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1, +}; + +enum { + TEAM_ATTR_ITEM_PORT_UNSPEC, + TEAM_ATTR_ITEM_PORT, /* nest */ + + __TEAM_ATTR_ITEM_PORT_MAX, + TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1, +}; + +enum { + TEAM_ATTR_PORT_UNSPEC, + TEAM_ATTR_PORT_IFINDEX, /* u32 */ + TEAM_ATTR_PORT_CHANGED, /* flag */ + TEAM_ATTR_PORT_LINKUP, /* flag */ + TEAM_ATTR_PORT_SPEED, /* u32 */ + TEAM_ATTR_PORT_DUPLEX, /* u8 */ + TEAM_ATTR_PORT_REMOVED, /* flag */ + + __TEAM_ATTR_PORT_MAX, + TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1, +}; + +/* + * NETLINK_GENERIC related info + */ +#define TEAM_GENL_NAME "team" +#define TEAM_GENL_VERSION 0x1 +#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event" + +#endif /* _LINUX_IF_TEAM_H_ */ diff --git a/kernel_headers/linux/if_tun.h b/kernel_headers/linux/if_tun.h new file mode 100644 index 0000000..dffb192 --- /dev/null +++ b/kernel_headers/linux/if_tun.h @@ -0,0 +1,101 @@ +/* + * Universal TUN/TAP device driver. + * Copyright (C) 1999-2000 Maxim Krasnyansky + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __IF_TUN_H +#define __IF_TUN_H + +#include +#include +#include + +/* Read queue size */ +#define TUN_READQ_SIZE 500 + +/* TUN device flags */ +#define TUN_TUN_DEV 0x0001 +#define TUN_TAP_DEV 0x0002 +#define TUN_TYPE_MASK 0x000f + +#define TUN_FASYNC 0x0010 +#define TUN_NOCHECKSUM 0x0020 +#define TUN_NO_PI 0x0040 +/* This flag has no real effect */ +#define TUN_ONE_QUEUE 0x0080 +#define TUN_PERSIST 0x0100 +#define TUN_VNET_HDR 0x0200 +#define TUN_TAP_MQ 0x0400 + +/* Ioctl defines */ +#define TUNSETNOCSUM _IOW('T', 200, int) +#define TUNSETDEBUG _IOW('T', 201, int) +#define TUNSETIFF _IOW('T', 202, int) +#define TUNSETPERSIST _IOW('T', 203, int) +#define TUNSETOWNER _IOW('T', 204, int) +#define TUNSETLINK _IOW('T', 205, int) +#define TUNSETGROUP _IOW('T', 206, int) +#define TUNGETFEATURES _IOR('T', 207, unsigned int) +#define TUNSETOFFLOAD _IOW('T', 208, unsigned int) +#define TUNSETTXFILTER _IOW('T', 209, unsigned int) +#define TUNGETIFF _IOR('T', 210, unsigned int) +#define TUNGETSNDBUF _IOR('T', 211, int) +#define TUNSETSNDBUF _IOW('T', 212, int) +#define TUNATTACHFILTER _IOW('T', 213, struct sock_fprog) +#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) +#define TUNGETVNETHDRSZ _IOR('T', 215, int) +#define TUNSETVNETHDRSZ _IOW('T', 216, int) +#define TUNSETQUEUE _IOW('T', 217, int) + +/* TUNSETIFF ifr flags */ +#define IFF_TUN 0x0001 +#define IFF_TAP 0x0002 +#define IFF_NO_PI 0x1000 +/* This flag has no real effect */ +#define IFF_ONE_QUEUE 0x2000 +#define IFF_VNET_HDR 0x4000 +#define IFF_TUN_EXCL 0x8000 +#define IFF_MULTI_QUEUE 0x0100 +#define IFF_ATTACH_QUEUE 0x0200 +#define IFF_DETACH_QUEUE 0x0400 + +/* Features for GSO (TUNSETOFFLOAD). */ +#define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */ +#define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */ +#define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ +#define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */ +#define TUN_F_UFO 0x10 /* I can handle UFO packets */ + +/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */ +#define TUN_PKT_STRIP 0x0001 +struct tun_pi { + __u16 flags; + __be16 proto; +}; + +/* + * Filter spec (used for SETXXFILTER ioctls) + * This stuff is applicable only to the TAP (Ethernet) devices. + * If the count is zero the filter is disabled and the driver accepts + * all packets (promisc mode). + * If the filter is enabled in order to accept broadcast packets + * broadcast addr must be explicitly included in the addr list. + */ +#define TUN_FLT_ALLMULTI 0x0001 /* Accept all multicast packets */ +struct tun_filter { + __u16 flags; /* TUN_FLT_ flags see above */ + __u16 count; /* Number of addresses */ + __u8 addr[0][ETH_ALEN]; +}; + +#endif /* __IF_TUN_H */ diff --git a/kernel_headers/linux/if_tunnel.h b/kernel_headers/linux/if_tunnel.h new file mode 100644 index 0000000..9f471ca --- /dev/null +++ b/kernel_headers/linux/if_tunnel.h @@ -0,0 +1,116 @@ +#ifndef _IF_TUNNEL_H_ +#define _IF_TUNNEL_H_ + +#include +#include + + +#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0) +#define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1) +#define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2) +#define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3) +#define SIOCGETPRL (SIOCDEVPRIVATE + 4) +#define SIOCADDPRL (SIOCDEVPRIVATE + 5) +#define SIOCDELPRL (SIOCDEVPRIVATE + 6) +#define SIOCCHGPRL (SIOCDEVPRIVATE + 7) +#define SIOCGET6RD (SIOCDEVPRIVATE + 8) +#define SIOCADD6RD (SIOCDEVPRIVATE + 9) +#define SIOCDEL6RD (SIOCDEVPRIVATE + 10) +#define SIOCCHG6RD (SIOCDEVPRIVATE + 11) + +#define GRE_CSUM __cpu_to_be16(0x8000) +#define GRE_ROUTING __cpu_to_be16(0x4000) +#define GRE_KEY __cpu_to_be16(0x2000) +#define GRE_SEQ __cpu_to_be16(0x1000) +#define GRE_STRICT __cpu_to_be16(0x0800) +#define GRE_REC __cpu_to_be16(0x0700) +#define GRE_FLAGS __cpu_to_be16(0x00F8) +#define GRE_VERSION __cpu_to_be16(0x0007) + +struct ip_tunnel_parm { + char name[IFNAMSIZ]; + int link; + __be16 i_flags; + __be16 o_flags; + __be32 i_key; + __be32 o_key; + struct iphdr iph; +}; + +enum { + IFLA_IPTUN_UNSPEC, + IFLA_IPTUN_LINK, + IFLA_IPTUN_LOCAL, + IFLA_IPTUN_REMOTE, + IFLA_IPTUN_TTL, + IFLA_IPTUN_TOS, + IFLA_IPTUN_ENCAP_LIMIT, + IFLA_IPTUN_FLOWINFO, + IFLA_IPTUN_FLAGS, + IFLA_IPTUN_PROTO, + IFLA_IPTUN_PMTUDISC, + IFLA_IPTUN_6RD_PREFIX, + IFLA_IPTUN_6RD_RELAY_PREFIX, + IFLA_IPTUN_6RD_PREFIXLEN, + IFLA_IPTUN_6RD_RELAY_PREFIXLEN, + __IFLA_IPTUN_MAX, +}; +#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) + +/* SIT-mode i_flags */ +#define SIT_ISATAP 0x0001 + +struct ip_tunnel_prl { + __be32 addr; + __u16 flags; + __u16 __reserved; + __u32 datalen; + __u32 __reserved2; + /* data follows */ +}; + +/* PRL flags */ +#define PRL_DEFAULT 0x0001 + +struct ip_tunnel_6rd { + struct in6_addr prefix; + __be32 relay_prefix; + __u16 prefixlen; + __u16 relay_prefixlen; +}; + +enum { + IFLA_GRE_UNSPEC, + IFLA_GRE_LINK, + IFLA_GRE_IFLAGS, + IFLA_GRE_OFLAGS, + IFLA_GRE_IKEY, + IFLA_GRE_OKEY, + IFLA_GRE_LOCAL, + IFLA_GRE_REMOTE, + IFLA_GRE_TTL, + IFLA_GRE_TOS, + IFLA_GRE_PMTUDISC, + IFLA_GRE_ENCAP_LIMIT, + IFLA_GRE_FLOWINFO, + IFLA_GRE_FLAGS, + __IFLA_GRE_MAX, +}; + +#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1) + +/* VTI-mode i_flags */ +#define VTI_ISVTI 0x0001 + +enum { + IFLA_VTI_UNSPEC, + IFLA_VTI_LINK, + IFLA_VTI_IKEY, + IFLA_VTI_OKEY, + IFLA_VTI_LOCAL, + IFLA_VTI_REMOTE, + __IFLA_VTI_MAX, +}; + +#define IFLA_VTI_MAX (__IFLA_VTI_MAX - 1) +#endif /* _IF_TUNNEL_H_ */ diff --git a/kernel_headers/linux/if_vlan.h b/kernel_headers/linux/if_vlan.h new file mode 100644 index 0000000..24ae007 --- /dev/null +++ b/kernel_headers/linux/if_vlan.h @@ -0,0 +1,64 @@ +/* + * VLAN An implementation of 802.1Q VLAN tagging. + * + * Authors: Ben Greear + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#ifndef _LINUX_IF_VLAN_H_ +#define _LINUX_IF_VLAN_H_ + + +/* VLAN IOCTLs are found in sockios.h */ + +/* Passed in vlan_ioctl_args structure to determine behaviour. */ +enum vlan_ioctl_cmds { + ADD_VLAN_CMD, + DEL_VLAN_CMD, + SET_VLAN_INGRESS_PRIORITY_CMD, + SET_VLAN_EGRESS_PRIORITY_CMD, + GET_VLAN_INGRESS_PRIORITY_CMD, + GET_VLAN_EGRESS_PRIORITY_CMD, + SET_VLAN_NAME_TYPE_CMD, + SET_VLAN_FLAG_CMD, + GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */ + GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */ +}; + +enum vlan_flags { + VLAN_FLAG_REORDER_HDR = 0x1, + VLAN_FLAG_GVRP = 0x2, + VLAN_FLAG_LOOSE_BINDING = 0x4, + VLAN_FLAG_MVRP = 0x8, +}; + +enum vlan_name_types { + VLAN_NAME_TYPE_PLUS_VID, /* Name will look like: vlan0005 */ + VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like: eth1.0005 */ + VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like: vlan5 */ + VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like: eth0.5 */ + VLAN_NAME_TYPE_HIGHEST +}; + +struct vlan_ioctl_args { + int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */ + char device1[24]; + + union { + char device2[24]; + int VID; + unsigned int skb_priority; + unsigned int name_type; + unsigned int bind_type; + unsigned int flag; /* Matches vlan_dev_priv flags */ + } u; + + short vlan_qos; +}; + +#endif /* _LINUX_IF_VLAN_H_ */ diff --git a/kernel_headers/linux/if_x25.h b/kernel_headers/linux/if_x25.h new file mode 100644 index 0000000..897765f --- /dev/null +++ b/kernel_headers/linux/if_x25.h @@ -0,0 +1,26 @@ +/* + * Linux X.25 packet to device interface + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _IF_X25_H +#define _IF_X25_H + +#include + +/* Documentation/networking/x25-iface.txt */ +#define X25_IFACE_DATA 0x00 +#define X25_IFACE_CONNECT 0x01 +#define X25_IFACE_DISCONNECT 0x02 +#define X25_IFACE_PARAMS 0x03 + +#endif /* _IF_X25_H */ diff --git a/kernel_headers/linux/igmp.h b/kernel_headers/linux/igmp.h new file mode 100644 index 0000000..2ead5c5 --- /dev/null +++ b/kernel_headers/linux/igmp.h @@ -0,0 +1,128 @@ +/* + * Linux NET3: Internet Group Management Protocol [IGMP] + * + * Authors: + * Alan Cox + * + * Extended to talk the BSD extended IGMP protocol of mrouted 3.6 + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IGMP_H +#define _LINUX_IGMP_H + +#include +#include + +/* + * IGMP protocol structures + */ + +/* + * Header in on cable format + */ + +struct igmphdr { + __u8 type; + __u8 code; /* For newer IGMP */ + __sum16 csum; + __be32 group; +}; + +/* V3 group record types [grec_type] */ +#define IGMPV3_MODE_IS_INCLUDE 1 +#define IGMPV3_MODE_IS_EXCLUDE 2 +#define IGMPV3_CHANGE_TO_INCLUDE 3 +#define IGMPV3_CHANGE_TO_EXCLUDE 4 +#define IGMPV3_ALLOW_NEW_SOURCES 5 +#define IGMPV3_BLOCK_OLD_SOURCES 6 + +struct igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; +}; + +struct igmpv3_report { + __u8 type; + __u8 resv1; + __be16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; +}; + +struct igmpv3_query { + __u8 type; + __u8 code; + __be16 csum; + __be32 group; +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 qrv:3, + suppress:1, + resv:4; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 resv:4, + suppress:1, + qrv:3; +#else +#error "Please fix " +#endif + __u8 qqic; + __be16 nsrcs; + __be32 srcs[0]; +}; + +#define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */ +#define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */ +#define IGMP_DVMRP 0x13 /* DVMRP routing */ +#define IGMP_PIM 0x14 /* PIM routing */ +#define IGMP_TRACE 0x15 +#define IGMPV2_HOST_MEMBERSHIP_REPORT 0x16 /* V2 version of 0x12 */ +#define IGMP_HOST_LEAVE_MESSAGE 0x17 +#define IGMPV3_HOST_MEMBERSHIP_REPORT 0x22 /* V3 version of 0x12 */ + +#define IGMP_MTRACE_RESP 0x1e +#define IGMP_MTRACE 0x1f + + +/* + * Use the BSD names for these for compatibility + */ + +#define IGMP_DELAYING_MEMBER 0x01 +#define IGMP_IDLE_MEMBER 0x02 +#define IGMP_LAZY_MEMBER 0x03 +#define IGMP_SLEEPING_MEMBER 0x04 +#define IGMP_AWAKENING_MEMBER 0x05 + +#define IGMP_MINLEN 8 + +#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */ + /* query (in seconds) */ + +#define IGMP_TIMER_SCALE 10 /* denotes that the igmphdr->timer field */ + /* specifies time in 10th of seconds */ + +#define IGMP_AGE_THRESHOLD 400 /* If this host don't hear any IGMP V1 */ + /* message in this period of time, */ + /* revert to IGMP v2 router. */ + +#define IGMP_ALL_HOSTS htonl(0xE0000001L) +#define IGMP_ALL_ROUTER htonl(0xE0000002L) +#define IGMPV3_ALL_MCR htonl(0xE0000016L) +#define IGMP_LOCAL_GROUP htonl(0xE0000000L) +#define IGMP_LOCAL_GROUP_MASK htonl(0xFFFFFF00L) + +/* + * struct for keeping the multicast list in + */ + +#endif /* _LINUX_IGMP_H */ diff --git a/kernel_headers/linux/in.h b/kernel_headers/linux/in.h new file mode 100644 index 0000000..02ab3c2 --- /dev/null +++ b/kernel_headers/linux/in.h @@ -0,0 +1,253 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions of the Internet Protocol. + * + * Version: @(#)in.h 1.0.1 04/21/93 + * + * Authors: Original taken from the GNU Project file. + * Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_IN_H +#define _LINUX_IN_H + +#include +#include + +/* Standard well-defined IP protocols. */ +enum { + IPPROTO_IP = 0, /* Dummy protocol for TCP */ + IPPROTO_ICMP = 1, /* Internet Control Message Protocol */ + IPPROTO_IGMP = 2, /* Internet Group Management Protocol */ + IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */ + IPPROTO_TCP = 6, /* Transmission Control Protocol */ + IPPROTO_EGP = 8, /* Exterior Gateway Protocol */ + IPPROTO_PUP = 12, /* PUP protocol */ + IPPROTO_UDP = 17, /* User Datagram Protocol */ + IPPROTO_IDP = 22, /* XNS IDP protocol */ + IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */ + IPPROTO_RSVP = 46, /* RSVP protocol */ + IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */ + + IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */ + + IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */ + IPPROTO_AH = 51, /* Authentication Header protocol */ + IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */ + IPPROTO_PIM = 103, /* Protocol Independent Multicast */ + + IPPROTO_COMP = 108, /* Compression Header protocol */ + IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ + IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */ + + IPPROTO_RAW = 255, /* Raw IP packets */ + IPPROTO_MAX +}; + + +/* Internet address. */ +struct in_addr { + __be32 s_addr; +}; + +#define IP_TOS 1 +#define IP_TTL 2 +#define IP_HDRINCL 3 +#define IP_OPTIONS 4 +#define IP_ROUTER_ALERT 5 +#define IP_RECVOPTS 6 +#define IP_RETOPTS 7 +#define IP_PKTINFO 8 +#define IP_PKTOPTIONS 9 +#define IP_MTU_DISCOVER 10 +#define IP_RECVERR 11 +#define IP_RECVTTL 12 +#define IP_RECVTOS 13 +#define IP_MTU 14 +#define IP_FREEBIND 15 +#define IP_IPSEC_POLICY 16 +#define IP_XFRM_POLICY 17 +#define IP_PASSSEC 18 +#define IP_TRANSPARENT 19 + +/* BSD compatibility */ +#define IP_RECVRETOPTS IP_RETOPTS + +/* TProxy original addresses */ +#define IP_ORIGDSTADDR 20 +#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR + +#define IP_MINTTL 21 +#define IP_NODEFRAG 22 + +/* IP_MTU_DISCOVER values */ +#define IP_PMTUDISC_DONT 0 /* Never send DF frames */ +#define IP_PMTUDISC_WANT 1 /* Use per route hints */ +#define IP_PMTUDISC_DO 2 /* Always DF */ +#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu */ + +#define IP_MULTICAST_IF 32 +#define IP_MULTICAST_TTL 33 +#define IP_MULTICAST_LOOP 34 +#define IP_ADD_MEMBERSHIP 35 +#define IP_DROP_MEMBERSHIP 36 +#define IP_UNBLOCK_SOURCE 37 +#define IP_BLOCK_SOURCE 38 +#define IP_ADD_SOURCE_MEMBERSHIP 39 +#define IP_DROP_SOURCE_MEMBERSHIP 40 +#define IP_MSFILTER 41 +#define MCAST_JOIN_GROUP 42 +#define MCAST_BLOCK_SOURCE 43 +#define MCAST_UNBLOCK_SOURCE 44 +#define MCAST_LEAVE_GROUP 45 +#define MCAST_JOIN_SOURCE_GROUP 46 +#define MCAST_LEAVE_SOURCE_GROUP 47 +#define MCAST_MSFILTER 48 +#define IP_MULTICAST_ALL 49 +#define IP_UNICAST_IF 50 + +#define MCAST_EXCLUDE 0 +#define MCAST_INCLUDE 1 + +/* These need to appear somewhere around here */ +#define IP_DEFAULT_MULTICAST_TTL 1 +#define IP_DEFAULT_MULTICAST_LOOP 1 + +/* Request struct for multicast socket ops */ + +struct ip_mreq { + struct in_addr imr_multiaddr; /* IP multicast address of group */ + struct in_addr imr_interface; /* local IP address of interface */ +}; + +struct ip_mreqn { + struct in_addr imr_multiaddr; /* IP multicast address of group */ + struct in_addr imr_address; /* local IP address of interface */ + int imr_ifindex; /* Interface index */ +}; + +struct ip_mreq_source { + __be32 imr_multiaddr; + __be32 imr_interface; + __be32 imr_sourceaddr; +}; + +struct ip_msfilter { + __be32 imsf_multiaddr; + __be32 imsf_interface; + __u32 imsf_fmode; + __u32 imsf_numsrc; + __be32 imsf_slist[1]; +}; + +#define IP_MSFILTER_SIZE(numsrc) \ + (sizeof(struct ip_msfilter) - sizeof(__u32) \ + + (numsrc) * sizeof(__u32)) + +struct group_req { + __u32 gr_interface; /* interface index */ + struct __kernel_sockaddr_storage gr_group; /* group address */ +}; + +struct group_source_req { + __u32 gsr_interface; /* interface index */ + struct __kernel_sockaddr_storage gsr_group; /* group address */ + struct __kernel_sockaddr_storage gsr_source; /* source address */ +}; + +struct group_filter { + __u32 gf_interface; /* interface index */ + struct __kernel_sockaddr_storage gf_group; /* multicast address */ + __u32 gf_fmode; /* filter mode */ + __u32 gf_numsrc; /* number of sources */ + struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */ +}; + +#define GROUP_FILTER_SIZE(numsrc) \ + (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \ + + (numsrc) * sizeof(struct __kernel_sockaddr_storage)) + +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; +}; + +/* Structure describing an Internet (IP) socket address. */ +#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */ +struct sockaddr_in { + __kernel_sa_family_t sin_family; /* Address family */ + __be16 sin_port; /* Port number */ + struct in_addr sin_addr; /* Internet address */ + + /* Pad to size of `struct sockaddr'. */ + unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) - + sizeof(unsigned short int) - sizeof(struct in_addr)]; +}; +#define sin_zero __pad /* for BSD UNIX comp. -FvK */ + + +/* + * Definitions of the bits in an Internet address integer. + * On subnets, host and network parts are found according + * to the subnet mask, not these masks. + */ +#define IN_CLASSA(a) ((((long int) (a)) & 0x80000000) == 0) +#define IN_CLASSA_NET 0xff000000 +#define IN_CLASSA_NSHIFT 24 +#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET) +#define IN_CLASSA_MAX 128 + +#define IN_CLASSB(a) ((((long int) (a)) & 0xc0000000) == 0x80000000) +#define IN_CLASSB_NET 0xffff0000 +#define IN_CLASSB_NSHIFT 16 +#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET) +#define IN_CLASSB_MAX 65536 + +#define IN_CLASSC(a) ((((long int) (a)) & 0xe0000000) == 0xc0000000) +#define IN_CLASSC_NET 0xffffff00 +#define IN_CLASSC_NSHIFT 8 +#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET) + +#define IN_CLASSD(a) ((((long int) (a)) & 0xf0000000) == 0xe0000000) +#define IN_MULTICAST(a) IN_CLASSD(a) +#define IN_MULTICAST_NET 0xF0000000 + +#define IN_EXPERIMENTAL(a) ((((long int) (a)) & 0xf0000000) == 0xf0000000) +#define IN_BADCLASS(a) IN_EXPERIMENTAL((a)) + +/* Address to accept any incoming messages. */ +#define INADDR_ANY ((unsigned long int) 0x00000000) + +/* Address to send to all hosts. */ +#define INADDR_BROADCAST ((unsigned long int) 0xffffffff) + +/* Address indicating an error return. */ +#define INADDR_NONE ((unsigned long int) 0xffffffff) + +/* Network number for local host loopback. */ +#define IN_LOOPBACKNET 127 + +/* Address to loopback in software to local host. */ +#define INADDR_LOOPBACK 0x7f000001 /* 127.0.0.1 */ +#define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000) + +/* Defines for Multicast INADDR */ +#define INADDR_UNSPEC_GROUP 0xe0000000U /* 224.0.0.0 */ +#define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */ +#define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */ +#define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */ + + +/* contains the htonl type stuff.. */ +#include + + +#endif /* _LINUX_IN_H */ diff --git a/kernel_headers/linux/in6.h b/kernel_headers/linux/in6.h new file mode 100644 index 0000000..bf66590 --- /dev/null +++ b/kernel_headers/linux/in6.h @@ -0,0 +1,268 @@ +/* + * Types and definitions for AF_INET6 + * Linux INET6 implementation + * + * Authors: + * Pedro Roque + * + * Sources: + * IPv6 Program Interfaces for BSD Systems + * + * + * Advanced Sockets API for IPv6 + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IN6_H +#define _LINUX_IN6_H + +#include + +/* + * IPv6 address structure + */ + +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; +#define s6_addr in6_u.u6_addr8 +#define s6_addr16 in6_u.u6_addr16 +#define s6_addr32 in6_u.u6_addr32 +}; + +struct sockaddr_in6 { + unsigned short int sin6_family; /* AF_INET6 */ + __be16 sin6_port; /* Transport layer port # */ + __be32 sin6_flowinfo; /* IPv6 flow information */ + struct in6_addr sin6_addr; /* IPv6 address */ + __u32 sin6_scope_id; /* scope id (new in RFC2553) */ +}; + +struct ipv6_mreq { + /* IPv6 multicast address of group */ + struct in6_addr ipv6mr_multiaddr; + + /* local IPv6 address of interface */ + int ipv6mr_ifindex; +}; + +#define ipv6mr_acaddr ipv6mr_multiaddr + +struct in6_flowlabel_req { + struct in6_addr flr_dst; + __be32 flr_label; + __u8 flr_action; + __u8 flr_share; + __u16 flr_flags; + __u16 flr_expires; + __u16 flr_linger; + __u32 __flr_pad; + /* Options in format of IPV6_PKTOPTIONS */ +}; + +#define IPV6_FL_A_GET 0 +#define IPV6_FL_A_PUT 1 +#define IPV6_FL_A_RENEW 2 + +#define IPV6_FL_F_CREATE 1 +#define IPV6_FL_F_EXCL 2 + +#define IPV6_FL_S_NONE 0 +#define IPV6_FL_S_EXCL 1 +#define IPV6_FL_S_PROCESS 2 +#define IPV6_FL_S_USER 3 +#define IPV6_FL_S_ANY 255 + + +/* + * Bitmask constant declarations to help applications select out the + * flow label and priority fields. + * + * Note that this are in host byte order while the flowinfo field of + * sockaddr_in6 is in network byte order. + */ + +#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff +#define IPV6_FLOWINFO_PRIORITY 0x0ff00000 + +/* These definitions are obsolete */ +#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000 +#define IPV6_PRIORITY_FILLER 0x0100 +#define IPV6_PRIORITY_UNATTENDED 0x0200 +#define IPV6_PRIORITY_RESERVED1 0x0300 +#define IPV6_PRIORITY_BULK 0x0400 +#define IPV6_PRIORITY_RESERVED2 0x0500 +#define IPV6_PRIORITY_INTERACTIVE 0x0600 +#define IPV6_PRIORITY_CONTROL 0x0700 +#define IPV6_PRIORITY_8 0x0800 +#define IPV6_PRIORITY_9 0x0900 +#define IPV6_PRIORITY_10 0x0a00 +#define IPV6_PRIORITY_11 0x0b00 +#define IPV6_PRIORITY_12 0x0c00 +#define IPV6_PRIORITY_13 0x0d00 +#define IPV6_PRIORITY_14 0x0e00 +#define IPV6_PRIORITY_15 0x0f00 + +/* + * IPV6 extension headers + */ +#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ +#define IPPROTO_ROUTING 43 /* IPv6 routing header */ +#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ +#define IPPROTO_ICMPV6 58 /* ICMPv6 */ +#define IPPROTO_NONE 59 /* IPv6 no next header */ +#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ +#define IPPROTO_MH 135 /* IPv6 mobility header */ + +/* + * IPv6 TLV options. + */ +#define IPV6_TLV_PAD1 0 +#define IPV6_TLV_PADN 1 +#define IPV6_TLV_ROUTERALERT 5 +#define IPV6_TLV_JUMBO 194 +#define IPV6_TLV_HAO 201 /* home address option */ + +/* + * IPV6 socket options + */ + +#define IPV6_ADDRFORM 1 +#define IPV6_2292PKTINFO 2 +#define IPV6_2292HOPOPTS 3 +#define IPV6_2292DSTOPTS 4 +#define IPV6_2292RTHDR 5 +#define IPV6_2292PKTOPTIONS 6 +#define IPV6_CHECKSUM 7 +#define IPV6_2292HOPLIMIT 8 +#define IPV6_NEXTHOP 9 +#define IPV6_AUTHHDR 10 /* obsolete */ +#define IPV6_FLOWINFO 11 + +#define IPV6_UNICAST_HOPS 16 +#define IPV6_MULTICAST_IF 17 +#define IPV6_MULTICAST_HOPS 18 +#define IPV6_MULTICAST_LOOP 19 +#define IPV6_ADD_MEMBERSHIP 20 +#define IPV6_DROP_MEMBERSHIP 21 +#define IPV6_ROUTER_ALERT 22 +#define IPV6_MTU_DISCOVER 23 +#define IPV6_MTU 24 +#define IPV6_RECVERR 25 +#define IPV6_V6ONLY 26 +#define IPV6_JOIN_ANYCAST 27 +#define IPV6_LEAVE_ANYCAST 28 + +/* IPV6_MTU_DISCOVER values */ +#define IPV6_PMTUDISC_DONT 0 +#define IPV6_PMTUDISC_WANT 1 +#define IPV6_PMTUDISC_DO 2 +#define IPV6_PMTUDISC_PROBE 3 + +/* Flowlabel */ +#define IPV6_FLOWLABEL_MGR 32 +#define IPV6_FLOWINFO_SEND 33 + +#define IPV6_IPSEC_POLICY 34 +#define IPV6_XFRM_POLICY 35 + +/* + * Multicast: + * Following socket options are shared between IPv4 and IPv6. + * + * MCAST_JOIN_GROUP 42 + * MCAST_BLOCK_SOURCE 43 + * MCAST_UNBLOCK_SOURCE 44 + * MCAST_LEAVE_GROUP 45 + * MCAST_JOIN_SOURCE_GROUP 46 + * MCAST_LEAVE_SOURCE_GROUP 47 + * MCAST_MSFILTER 48 + */ + +/* + * Advanced API (RFC3542) (1) + * + * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c. + */ + +#define IPV6_RECVPKTINFO 49 +#define IPV6_PKTINFO 50 +#define IPV6_RECVHOPLIMIT 51 +#define IPV6_HOPLIMIT 52 +#define IPV6_RECVHOPOPTS 53 +#define IPV6_HOPOPTS 54 +#define IPV6_RTHDRDSTOPTS 55 +#define IPV6_RECVRTHDR 56 +#define IPV6_RTHDR 57 +#define IPV6_RECVDSTOPTS 58 +#define IPV6_DSTOPTS 59 +#define IPV6_RECVPATHMTU 60 +#define IPV6_PATHMTU 61 +#define IPV6_DONTFRAG 62 +#if 0 /* not yet */ +#define IPV6_USE_MIN_MTU 63 +#endif + +/* + * Netfilter (1) + * + * Following socket options are used in ip6_tables; + * see include/linux/netfilter_ipv6/ip6_tables.h. + * + * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO 64 + * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES 65 + */ + +/* + * Advanced API (RFC3542) (2) + */ +#define IPV6_RECVTCLASS 66 +#define IPV6_TCLASS 67 + +/* + * Netfilter (2) + * + * Following socket options are used in ip6_tables; + * see include/linux/netfilter_ipv6/ip6_tables.h. + * + * IP6T_SO_GET_REVISION_MATCH 68 + * IP6T_SO_GET_REVISION_TARGET 69 + * IP6T_SO_ORIGINAL_DST 80 + */ + +/* RFC5014: Source address selection */ +#define IPV6_ADDR_PREFERENCES 72 + +#define IPV6_PREFER_SRC_TMP 0x0001 +#define IPV6_PREFER_SRC_PUBLIC 0x0002 +#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100 +#define IPV6_PREFER_SRC_COA 0x0004 +#define IPV6_PREFER_SRC_HOME 0x0400 +#define IPV6_PREFER_SRC_CGA 0x0008 +#define IPV6_PREFER_SRC_NONCGA 0x0800 + +/* RFC5082: Generalized Ttl Security Mechanism */ +#define IPV6_MINHOPCOUNT 73 + +#define IPV6_ORIGDSTADDR 74 +#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR +#define IPV6_TRANSPARENT 75 +#define IPV6_UNICAST_IF 76 + +/* + * Multicast Routing: + * see include/uapi/linux/mroute6.h. + * + * MRT6_BASE 200 + * ... + * MRT6_MAX + */ +#endif /* _LINUX_IN6_H */ diff --git a/kernel_headers/linux/in_route.h b/kernel_headers/linux/in_route.h new file mode 100644 index 0000000..b261b8c --- /dev/null +++ b/kernel_headers/linux/in_route.h @@ -0,0 +1,32 @@ +#ifndef _LINUX_IN_ROUTE_H +#define _LINUX_IN_ROUTE_H + +/* IPv4 routing cache flags */ + +#define RTCF_DEAD RTNH_F_DEAD +#define RTCF_ONLINK RTNH_F_ONLINK + +/* Obsolete flag. About to be deleted */ +#define RTCF_NOPMTUDISC RTM_F_NOPMTUDISC + +#define RTCF_NOTIFY 0x00010000 +#define RTCF_DIRECTDST 0x00020000 /* unused */ +#define RTCF_REDIRECTED 0x00040000 +#define RTCF_TPROXY 0x00080000 /* unused */ + +#define RTCF_FAST 0x00200000 /* unused */ +#define RTCF_MASQ 0x00400000 /* unused */ +#define RTCF_SNAT 0x00800000 /* unused */ +#define RTCF_DOREDIRECT 0x01000000 +#define RTCF_DIRECTSRC 0x04000000 +#define RTCF_DNAT 0x08000000 +#define RTCF_BROADCAST 0x10000000 +#define RTCF_MULTICAST 0x20000000 +#define RTCF_REJECT 0x40000000 /* unused */ +#define RTCF_LOCAL 0x80000000 + +#define RTCF_NAT (RTCF_DNAT|RTCF_SNAT) + +#define RT_TOS(tos) ((tos)&IPTOS_TOS_MASK) + +#endif /* _LINUX_IN_ROUTE_H */ diff --git a/kernel_headers/linux/inet_diag.h b/kernel_headers/linux/inet_diag.h new file mode 100644 index 0000000..e34f247 --- /dev/null +++ b/kernel_headers/linux/inet_diag.h @@ -0,0 +1,137 @@ +#ifndef _INET_DIAG_H_ +#define _INET_DIAG_H_ + +#include + +/* Just some random number */ +#define TCPDIAG_GETSOCK 18 +#define DCCPDIAG_GETSOCK 19 + +#define INET_DIAG_GETSOCK_MAX 24 + +/* Socket identity */ +struct inet_diag_sockid { + __be16 idiag_sport; + __be16 idiag_dport; + __be32 idiag_src[4]; + __be32 idiag_dst[4]; + __u32 idiag_if; + __u32 idiag_cookie[2]; +#define INET_DIAG_NOCOOKIE (~0U) +}; + +/* Request structure */ + +struct inet_diag_req { + __u8 idiag_family; /* Family of addresses. */ + __u8 idiag_src_len; + __u8 idiag_dst_len; + __u8 idiag_ext; /* Query extended information */ + + struct inet_diag_sockid id; + + __u32 idiag_states; /* States to dump */ + __u32 idiag_dbs; /* Tables to dump (NI) */ +}; + +struct inet_diag_req_v2 { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u8 idiag_ext; + __u8 pad; + __u32 idiag_states; + struct inet_diag_sockid id; +}; + +enum { + INET_DIAG_REQ_NONE, + INET_DIAG_REQ_BYTECODE, +}; + +#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE + +/* Bytecode is sequence of 4 byte commands followed by variable arguments. + * All the commands identified by "code" are conditional jumps forward: + * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be + * length of the command and its arguments. + */ + +struct inet_diag_bc_op { + unsigned char code; + unsigned char yes; + unsigned short no; +}; + +enum { + INET_DIAG_BC_NOP, + INET_DIAG_BC_JMP, + INET_DIAG_BC_S_GE, + INET_DIAG_BC_S_LE, + INET_DIAG_BC_D_GE, + INET_DIAG_BC_D_LE, + INET_DIAG_BC_AUTO, + INET_DIAG_BC_S_COND, + INET_DIAG_BC_D_COND, +}; + +struct inet_diag_hostcond { + __u8 family; + __u8 prefix_len; + int port; + __be32 addr[0]; +}; + +/* Base info structure. It contains socket identity (addrs/ports/cookie) + * and, alas, the information shown by netstat. */ +struct inet_diag_msg { + __u8 idiag_family; + __u8 idiag_state; + __u8 idiag_timer; + __u8 idiag_retrans; + + struct inet_diag_sockid id; + + __u32 idiag_expires; + __u32 idiag_rqueue; + __u32 idiag_wqueue; + __u32 idiag_uid; + __u32 idiag_inode; +}; + +/* Extensions */ + +enum { + INET_DIAG_NONE, + INET_DIAG_MEMINFO, + INET_DIAG_INFO, + INET_DIAG_VEGASINFO, + INET_DIAG_CONG, + INET_DIAG_TOS, + INET_DIAG_TCLASS, + INET_DIAG_SKMEMINFO, + INET_DIAG_SHUTDOWN, +}; + +#define INET_DIAG_MAX INET_DIAG_SHUTDOWN + + +/* INET_DIAG_MEM */ + +struct inet_diag_meminfo { + __u32 idiag_rmem; + __u32 idiag_wmem; + __u32 idiag_fmem; + __u32 idiag_tmem; +}; + +/* INET_DIAG_VEGASINFO */ + +struct tcpvegas_info { + __u32 tcpv_enabled; + __u32 tcpv_rttcnt; + __u32 tcpv_rtt; + __u32 tcpv_minrtt; +}; + + +#endif /* _INET_DIAG_H_ */ diff --git a/kernel_headers/linux/inotify.h b/kernel_headers/linux/inotify.h new file mode 100644 index 0000000..44a1a27 --- /dev/null +++ b/kernel_headers/linux/inotify.h @@ -0,0 +1,74 @@ +/* + * Inode based directory notification for Linux + * + * Copyright (C) 2005 John McCutchan + */ + +#ifndef _LINUX_INOTIFY_H +#define _LINUX_INOTIFY_H + +/* For O_CLOEXEC and O_NONBLOCK */ +#include +#include + +/* + * struct inotify_event - structure read from the inotify device for each event + * + * When you are watching a directory, you will receive the filename for events + * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd. + */ +struct inotify_event { + __s32 wd; /* watch descriptor */ + __u32 mask; /* watch mask */ + __u32 cookie; /* cookie to synchronize two events */ + __u32 len; /* length (including nulls) of name */ + char name[0]; /* stub for possible name */ +}; + +/* the following are legal, implemented events that user-space can watch for */ +#define IN_ACCESS 0x00000001 /* File was accessed */ +#define IN_MODIFY 0x00000002 /* File was modified */ +#define IN_ATTRIB 0x00000004 /* Metadata changed */ +#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */ +#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */ +#define IN_OPEN 0x00000020 /* File was opened */ +#define IN_MOVED_FROM 0x00000040 /* File was moved from X */ +#define IN_MOVED_TO 0x00000080 /* File was moved to Y */ +#define IN_CREATE 0x00000100 /* Subfile was created */ +#define IN_DELETE 0x00000200 /* Subfile was deleted */ +#define IN_DELETE_SELF 0x00000400 /* Self was deleted */ +#define IN_MOVE_SELF 0x00000800 /* Self was moved */ + +/* the following are legal events. they are sent as needed to any watch */ +#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */ +#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ +#define IN_IGNORED 0x00008000 /* File was ignored */ + +/* helper events */ +#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */ +#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ + +/* special flags */ +#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ +#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ +#define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */ +#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ +#define IN_ISDIR 0x40000000 /* event occurred against dir */ +#define IN_ONESHOT 0x80000000 /* only send event once */ + +/* + * All of the events - we build the list by hand so that we can add flags in + * the future and not break backward compatibility. Apps will get only the + * events that they originally wanted. Be sure to add new events here! + */ +#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ + IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \ + IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \ + IN_MOVE_SELF) + +/* Flags for sys_inotify_init1. */ +#define IN_CLOEXEC O_CLOEXEC +#define IN_NONBLOCK O_NONBLOCK + + +#endif /* _LINUX_INOTIFY_H */ diff --git a/kernel_headers/linux/input.h b/kernel_headers/linux/input.h new file mode 100644 index 0000000..c26fb32 --- /dev/null +++ b/kernel_headers/linux/input.h @@ -0,0 +1,1196 @@ +/* + * Copyright (c) 1999-2002 Vojtech Pavlik + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#ifndef _INPUT_H +#define _INPUT_H + + +#include +#include +#include +#include + + +/* + * The event structure itself + */ + +struct input_event { + struct timeval time; + __u16 type; + __u16 code; + __s32 value; +}; + +/* + * Protocol version. + */ + +#define EV_VERSION 0x010001 + +/* + * IOCTLs (0x00 - 0x7f) + */ + +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; +}; + +/** + * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls + * @value: latest reported value for the axis. + * @minimum: specifies minimum value for the axis. + * @maximum: specifies maximum value for the axis. + * @fuzz: specifies fuzz value that is used to filter noise from + * the event stream. + * @flat: values that are within this value will be discarded by + * joydev interface and reported as 0 instead. + * @resolution: specifies resolution for the values reported for + * the axis. + * + * Note that input core does not clamp reported values to the + * [minimum, maximum] limits, such task is left to userspace. + * + * Resolution for main axes (ABS_X, ABS_Y, ABS_Z) is reported in + * units per millimeter (units/mm), resolution for rotational axes + * (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian. + */ +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; +}; + +/** + * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls + * @scancode: scancode represented in machine-endian form. + * @len: length of the scancode that resides in @scancode buffer. + * @index: index in the keymap, may be used instead of scancode + * @flags: allows to specify how kernel should handle the request. For + * example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel + * should perform lookup in keymap by @index instead of @scancode + * @keycode: key code assigned to this scancode + * + * The structure is used to retrieve and modify keymap data. Users have + * option of performing lookup either by @scancode itself or by @index + * in keymap entry. EVIOCGKEYCODE will also return scancode or index + * (depending on which element was used to perform lookup). + */ +struct input_keymap_entry { +#define INPUT_KEYMAP_BY_INDEX (1 << 0) + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; +}; + +#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ +#define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ +#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */ +#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */ + +#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) /* get keycode */ +#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry) +#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */ +#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry) + +#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */ +#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */ +#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len) /* get unique identifier */ +#define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len) /* get device properties */ + +/** + * EVIOCGMTSLOTS(len) - get MT slot values + * @len: size of the data buffer in bytes + * + * The ioctl buffer argument should be binary equivalent to + * + * struct input_mt_request_layout { + * __u32 code; + * __s32 values[num_slots]; + * }; + * + * where num_slots is the (arbitrary) number of MT slots to extract. + * + * The ioctl size argument (len) is the size of the buffer, which + * should satisfy len = (num_slots + 1) * sizeof(__s32). If len is + * too small to fit all available slots, the first num_slots are + * returned. + * + * Before the call, code is set to the wanted ABS_MT event type. On + * return, values[] is filled with the slot values for the specified + * ABS_MT code. + * + * If the request code is not an ABS_MT value, -EINVAL is returned. + */ +#define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len) + +#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) /* get global key state */ +#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len) /* get all LEDs */ +#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) /* get all sounds status */ +#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) /* get all switch states */ + +#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) /* get event bits */ +#define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */ +#define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */ + +#define EVIOCSFF _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect)) /* send a force effect to a force feedback device */ +#define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */ +#define EVIOCGEFFECTS _IOR('E', 0x84, int) /* Report number of effects playable at the same time */ + +#define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */ + +#define EVIOCGSUSPENDBLOCK _IOR('E', 0x91, int) /* get suspend block enable */ +#define EVIOCSSUSPENDBLOCK _IOW('E', 0x91, int) /* set suspend block enable */ + +#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */ + +/* + * Device properties and quirks + */ + +#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ +#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ +#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ +#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ +#define INPUT_PROP_NO_DUMMY_RELEASE 0x04 /* no dummy event */ + +#define INPUT_PROP_MAX 0x1f +#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) + +/* + * Event types + */ + +#define EV_SYN 0x00 +#define EV_KEY 0x01 +#define EV_REL 0x02 +#define EV_ABS 0x03 +#define EV_MSC 0x04 +#define EV_SW 0x05 +#define EV_LED 0x11 +#define EV_SND 0x12 +#define EV_REP 0x14 +#define EV_FF 0x15 +#define EV_PWR 0x16 +#define EV_FF_STATUS 0x17 +#define EV_MAX 0x1f +#define EV_CNT (EV_MAX+1) + +/* + * Synchronization events. + */ + +#define SYN_REPORT 0 +#define SYN_CONFIG 1 +#define SYN_MT_REPORT 2 +#define SYN_DROPPED 3 +#define SYN_TIME_SEC 4 +#define SYN_TIME_NSEC 5 + +/* + * Keys and buttons + * + * Most of the keys/buttons are modeled after USB HUT 1.12 + * (see http://www.usb.org/developers/hidpage). + * Abbreviations in the comments: + * AC - Application Control + * AL - Application Launch Button + * SC - System Control + */ + +#define KEY_RESERVED 0 +#define KEY_ESC 1 +#define KEY_1 2 +#define KEY_2 3 +#define KEY_3 4 +#define KEY_4 5 +#define KEY_5 6 +#define KEY_6 7 +#define KEY_7 8 +#define KEY_8 9 +#define KEY_9 10 +#define KEY_0 11 +#define KEY_MINUS 12 +#define KEY_EQUAL 13 +#define KEY_BACKSPACE 14 +#define KEY_TAB 15 +#define KEY_Q 16 +#define KEY_W 17 +#define KEY_E 18 +#define KEY_R 19 +#define KEY_T 20 +#define KEY_Y 21 +#define KEY_U 22 +#define KEY_I 23 +#define KEY_O 24 +#define KEY_P 25 +#define KEY_LEFTBRACE 26 +#define KEY_RIGHTBRACE 27 +#define KEY_ENTER 28 +#define KEY_LEFTCTRL 29 +#define KEY_A 30 +#define KEY_S 31 +#define KEY_D 32 +#define KEY_F 33 +#define KEY_G 34 +#define KEY_H 35 +#define KEY_J 36 +#define KEY_K 37 +#define KEY_L 38 +#define KEY_SEMICOLON 39 +#define KEY_APOSTROPHE 40 +#define KEY_GRAVE 41 +#define KEY_LEFTSHIFT 42 +#define KEY_BACKSLASH 43 +#define KEY_Z 44 +#define KEY_X 45 +#define KEY_C 46 +#define KEY_V 47 +#define KEY_B 48 +#define KEY_N 49 +#define KEY_M 50 +#define KEY_COMMA 51 +#define KEY_DOT 52 +#define KEY_SLASH 53 +#define KEY_RIGHTSHIFT 54 +#define KEY_KPASTERISK 55 +#define KEY_LEFTALT 56 +#define KEY_SPACE 57 +#define KEY_CAPSLOCK 58 +#define KEY_F1 59 +#define KEY_F2 60 +#define KEY_F3 61 +#define KEY_F4 62 +#define KEY_F5 63 +#define KEY_F6 64 +#define KEY_F7 65 +#define KEY_F8 66 +#define KEY_F9 67 +#define KEY_F10 68 +#define KEY_NUMLOCK 69 +#define KEY_SCROLLLOCK 70 +#define KEY_KP7 71 +#define KEY_KP8 72 +#define KEY_KP9 73 +#define KEY_KPMINUS 74 +#define KEY_KP4 75 +#define KEY_KP5 76 +#define KEY_KP6 77 +#define KEY_KPPLUS 78 +#define KEY_KP1 79 +#define KEY_KP2 80 +#define KEY_KP3 81 +#define KEY_KP0 82 +#define KEY_KPDOT 83 + +#define KEY_ZENKAKUHANKAKU 85 +#define KEY_102ND 86 +#define KEY_F11 87 +#define KEY_F12 88 +#define KEY_RO 89 +#define KEY_KATAKANA 90 +#define KEY_HIRAGANA 91 +#define KEY_HENKAN 92 +#define KEY_KATAKANAHIRAGANA 93 +#define KEY_MUHENKAN 94 +#define KEY_KPJPCOMMA 95 +#define KEY_KPENTER 96 +#define KEY_RIGHTCTRL 97 +#define KEY_KPSLASH 98 +#define KEY_SYSRQ 99 +#define KEY_RIGHTALT 100 +#define KEY_LINEFEED 101 +#define KEY_HOME 102 +#define KEY_UP 103 +#define KEY_PAGEUP 104 +#define KEY_LEFT 105 +#define KEY_RIGHT 106 +#define KEY_END 107 +#define KEY_DOWN 108 +#define KEY_PAGEDOWN 109 +#define KEY_INSERT 110 +#define KEY_DELETE 111 +#define KEY_MACRO 112 +#define KEY_MUTE 113 +#define KEY_VOLUMEDOWN 114 +#define KEY_VOLUMEUP 115 +#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_KPEQUAL 117 +#define KEY_KPPLUSMINUS 118 +#define KEY_PAUSE 119 +#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ + +#define KEY_KPCOMMA 121 +#define KEY_HANGEUL 122 +#define KEY_HANGUEL KEY_HANGEUL +#define KEY_HANJA 123 +#define KEY_YEN 124 +#define KEY_LEFTMETA 125 +#define KEY_RIGHTMETA 126 +#define KEY_COMPOSE 127 + +#define KEY_STOP 128 /* AC Stop */ +#define KEY_AGAIN 129 +#define KEY_PROPS 130 /* AC Properties */ +#define KEY_UNDO 131 /* AC Undo */ +#define KEY_FRONT 132 +#define KEY_COPY 133 /* AC Copy */ +#define KEY_OPEN 134 /* AC Open */ +#define KEY_PASTE 135 /* AC Paste */ +#define KEY_FIND 136 /* AC Search */ +#define KEY_CUT 137 /* AC Cut */ +#define KEY_HELP 138 /* AL Integrated Help Center */ +#define KEY_MENU 139 /* Menu (show menu) */ +#define KEY_CALC 140 /* AL Calculator */ +#define KEY_SETUP 141 +#define KEY_SLEEP 142 /* SC System Sleep */ +#define KEY_WAKEUP 143 /* System Wake Up */ +#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SENDFILE 145 +#define KEY_DELETEFILE 146 +#define KEY_XFER 147 +#define KEY_PROG1 148 +#define KEY_PROG2 149 +#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_MSDOS 151 +#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_SCREENLOCK KEY_COFFEE +#define KEY_DIRECTION 153 +#define KEY_CYCLEWINDOWS 154 +#define KEY_MAIL 155 +#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_COMPUTER 157 +#define KEY_BACK 158 /* AC Back */ +#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_CLOSECD 160 +#define KEY_EJECTCD 161 +#define KEY_EJECTCLOSECD 162 +#define KEY_NEXTSONG 163 +#define KEY_PLAYPAUSE 164 +#define KEY_PREVIOUSSONG 165 +#define KEY_STOPCD 166 +#define KEY_RECORD 167 +#define KEY_REWIND 168 +#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_ISO 170 +#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ +#define KEY_HOMEPAGE 172 /* AC Home */ +#define KEY_REFRESH 173 /* AC Refresh */ +#define KEY_EXIT 174 /* AC Exit */ +#define KEY_MOVE 175 +#define KEY_EDIT 176 +#define KEY_SCROLLUP 177 +#define KEY_SCROLLDOWN 178 +#define KEY_KPLEFTPAREN 179 +#define KEY_KPRIGHTPAREN 180 +#define KEY_NEW 181 /* AC New */ +#define KEY_REDO 182 /* AC Redo/Repeat */ + +#define KEY_F13 183 +#define KEY_F14 184 +#define KEY_F15 185 +#define KEY_F16 186 +#define KEY_F17 187 +#define KEY_F18 188 +#define KEY_F19 189 +#define KEY_F20 190 +#define KEY_F21 191 +#define KEY_F22 192 +#define KEY_F23 193 +#define KEY_F24 194 + +#define KEY_PLAYCD 200 +#define KEY_PAUSECD 201 +#define KEY_PROG3 202 +#define KEY_PROG4 203 +#define KEY_DASHBOARD 204 /* AL Dashboard */ +#define KEY_SUSPEND 205 +#define KEY_CLOSE 206 /* AC Close */ +#define KEY_PLAY 207 +#define KEY_FASTFORWARD 208 +#define KEY_BASSBOOST 209 +#define KEY_PRINT 210 /* AC Print */ +#define KEY_HP 211 +#define KEY_CAMERA 212 +#define KEY_SOUND 213 +#define KEY_QUESTION 214 +#define KEY_EMAIL 215 +#define KEY_CHAT 216 +#define KEY_SEARCH 217 +#define KEY_CONNECT 218 +#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_SPORT 220 +#define KEY_SHOP 221 +#define KEY_ALTERASE 222 +#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_BRIGHTNESSDOWN 224 +#define KEY_BRIGHTNESSUP 225 +#define KEY_MEDIA 226 + +#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video + outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_KBDILLUMTOGGLE 228 +#define KEY_KBDILLUMDOWN 229 +#define KEY_KBDILLUMUP 230 + +#define KEY_SEND 231 /* AC Send */ +#define KEY_REPLY 232 /* AC Reply */ +#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ +#define KEY_SAVE 234 /* AC Save */ +#define KEY_DOCUMENTS 235 + +#define KEY_BATTERY 236 + +#define KEY_BLUETOOTH 237 +#define KEY_WLAN 238 +#define KEY_UWB 239 + +#define KEY_UNKNOWN 240 + +#define KEY_VIDEO_NEXT 241 /* drive next video source */ +#define KEY_VIDEO_PREV 242 /* drive previous video source */ +#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ +#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual + brightness control is off, + rely on ambient */ +#define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO +#define KEY_DISPLAY_OFF 245 /* display device to off state */ + +#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WIMAX KEY_WWAN +#define KEY_RFKILL 247 /* Key that controls all radios */ + +#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ + +/* Code 255 is reserved for special needs of AT keyboard driver */ + +#define BTN_MISC 0x100 +#define BTN_0 0x100 +#define BTN_1 0x101 +#define BTN_2 0x102 +#define BTN_3 0x103 +#define BTN_4 0x104 +#define BTN_5 0x105 +#define BTN_6 0x106 +#define BTN_7 0x107 +#define BTN_8 0x108 +#define BTN_9 0x109 + +#define BTN_MOUSE 0x110 +#define BTN_LEFT 0x110 +#define BTN_RIGHT 0x111 +#define BTN_MIDDLE 0x112 +#define BTN_SIDE 0x113 +#define BTN_EXTRA 0x114 +#define BTN_FORWARD 0x115 +#define BTN_BACK 0x116 +#define BTN_TASK 0x117 + +#define BTN_JOYSTICK 0x120 +#define BTN_TRIGGER 0x120 +#define BTN_THUMB 0x121 +#define BTN_THUMB2 0x122 +#define BTN_TOP 0x123 +#define BTN_TOP2 0x124 +#define BTN_PINKIE 0x125 +#define BTN_BASE 0x126 +#define BTN_BASE2 0x127 +#define BTN_BASE3 0x128 +#define BTN_BASE4 0x129 +#define BTN_BASE5 0x12a +#define BTN_BASE6 0x12b +#define BTN_DEAD 0x12f + +#define BTN_GAMEPAD 0x130 +#define BTN_SOUTH 0x130 +#define BTN_A BTN_SOUTH +#define BTN_EAST 0x131 +#define BTN_B BTN_EAST +#define BTN_C 0x132 +#define BTN_NORTH 0x133 +#define BTN_X BTN_NORTH +#define BTN_WEST 0x134 +#define BTN_Y BTN_WEST +#define BTN_Z 0x135 +#define BTN_TL 0x136 +#define BTN_TR 0x137 +#define BTN_TL2 0x138 +#define BTN_TR2 0x139 +#define BTN_SELECT 0x13a +#define BTN_START 0x13b +#define BTN_MODE 0x13c +#define BTN_THUMBL 0x13d +#define BTN_THUMBR 0x13e + +#define BTN_DIGI 0x140 +#define BTN_TOOL_PEN 0x140 +#define BTN_TOOL_RUBBER 0x141 +#define BTN_TOOL_BRUSH 0x142 +#define BTN_TOOL_PENCIL 0x143 +#define BTN_TOOL_AIRBRUSH 0x144 +#define BTN_TOOL_FINGER 0x145 +#define BTN_TOOL_MOUSE 0x146 +#define BTN_TOOL_LENS 0x147 +#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_TOUCH 0x14a +#define BTN_STYLUS 0x14b +#define BTN_STYLUS2 0x14c +#define BTN_TOOL_DOUBLETAP 0x14d +#define BTN_TOOL_TRIPLETAP 0x14e +#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ + +#define BTN_WHEEL 0x150 +#define BTN_GEAR_DOWN 0x150 +#define BTN_GEAR_UP 0x151 + +#define KEY_OK 0x160 +#define KEY_SELECT 0x161 +#define KEY_GOTO 0x162 +#define KEY_CLEAR 0x163 +#define KEY_POWER2 0x164 +#define KEY_OPTION 0x165 +#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_TIME 0x167 +#define KEY_VENDOR 0x168 +#define KEY_ARCHIVE 0x169 +#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_CHANNEL 0x16b +#define KEY_FAVORITES 0x16c +#define KEY_EPG 0x16d +#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_MHP 0x16f +#define KEY_LANGUAGE 0x170 +#define KEY_TITLE 0x171 +#define KEY_SUBTITLE 0x172 +#define KEY_ANGLE 0x173 +#define KEY_ZOOM 0x174 +#define KEY_MODE 0x175 +#define KEY_KEYBOARD 0x176 +#define KEY_SCREEN 0x177 +#define KEY_PC 0x178 /* Media Select Computer */ +#define KEY_TV 0x179 /* Media Select TV */ +#define KEY_TV2 0x17a /* Media Select Cable */ +#define KEY_VCR 0x17b /* Media Select VCR */ +#define KEY_VCR2 0x17c /* VCR Plus */ +#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_SAT2 0x17e +#define KEY_CD 0x17f /* Media Select CD */ +#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_RADIO 0x181 +#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_PLAYER 0x183 +#define KEY_TEXT 0x184 +#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_AUX 0x186 +#define KEY_MP3 0x187 +#define KEY_AUDIO 0x188 /* AL Audio Browser */ +#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_DIRECTORY 0x18a +#define KEY_LIST 0x18b +#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_CALENDAR 0x18d +#define KEY_RED 0x18e +#define KEY_GREEN 0x18f +#define KEY_YELLOW 0x190 +#define KEY_BLUE 0x191 +#define KEY_CHANNELUP 0x192 /* Channel Increment */ +#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_FIRST 0x194 +#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_AB 0x196 +#define KEY_NEXT 0x197 +#define KEY_RESTART 0x198 +#define KEY_SLOW 0x199 +#define KEY_SHUFFLE 0x19a +#define KEY_BREAK 0x19b +#define KEY_PREVIOUS 0x19c +#define KEY_DIGITS 0x19d +#define KEY_TEEN 0x19e +#define KEY_TWEN 0x19f +#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ +#define KEY_GAMES 0x1a1 /* Media Select Games */ +#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ +#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ +#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ +#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ +#define KEY_EDITOR 0x1a6 /* AL Text Editor */ +#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ +#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ +#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ +#define KEY_DATABASE 0x1aa /* AL Database App */ +#define KEY_NEWS 0x1ab /* AL Newsreader */ +#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ +#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ +#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ +#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE +#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ +#define KEY_LOGOFF 0x1b1 /* AL Logoff */ + +#define KEY_DOLLAR 0x1b2 +#define KEY_EURO 0x1b3 + +#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEFORWARD 0x1b5 +#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ +#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ +#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ +#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ +#define KEY_IMAGES 0x1ba /* AL Image Browser */ + +#define KEY_DEL_EOL 0x1c0 +#define KEY_DEL_EOS 0x1c1 +#define KEY_INS_LINE 0x1c2 +#define KEY_DEL_LINE 0x1c3 + +#define KEY_FN 0x1d0 +#define KEY_FN_ESC 0x1d1 +#define KEY_FN_F1 0x1d2 +#define KEY_FN_F2 0x1d3 +#define KEY_FN_F3 0x1d4 +#define KEY_FN_F4 0x1d5 +#define KEY_FN_F5 0x1d6 +#define KEY_FN_F6 0x1d7 +#define KEY_FN_F7 0x1d8 +#define KEY_FN_F8 0x1d9 +#define KEY_FN_F9 0x1da +#define KEY_FN_F10 0x1db +#define KEY_FN_F11 0x1dc +#define KEY_FN_F12 0x1dd +#define KEY_FN_1 0x1de +#define KEY_FN_2 0x1df +#define KEY_FN_D 0x1e0 +#define KEY_FN_E 0x1e1 +#define KEY_FN_F 0x1e2 +#define KEY_FN_S 0x1e3 +#define KEY_FN_B 0x1e4 + +#define KEY_BRL_DOT1 0x1f1 +#define KEY_BRL_DOT2 0x1f2 +#define KEY_BRL_DOT3 0x1f3 +#define KEY_BRL_DOT4 0x1f4 +#define KEY_BRL_DOT5 0x1f5 +#define KEY_BRL_DOT6 0x1f6 +#define KEY_BRL_DOT7 0x1f7 +#define KEY_BRL_DOT8 0x1f8 +#define KEY_BRL_DOT9 0x1f9 +#define KEY_BRL_DOT10 0x1fa + +#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ +#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_2 0x202 +#define KEY_NUMERIC_3 0x203 +#define KEY_NUMERIC_4 0x204 +#define KEY_NUMERIC_5 0x205 +#define KEY_NUMERIC_6 0x206 +#define KEY_NUMERIC_7 0x207 +#define KEY_NUMERIC_8 0x208 +#define KEY_NUMERIC_9 0x209 +#define KEY_NUMERIC_STAR 0x20a +#define KEY_NUMERIC_POUND 0x20b + +#define KEY_CAMERA_SNAPSHOT 0x2fe +#define KEY_CAMERA_FOCUS 0x210 +#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ + +#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_ON 0x213 +#define KEY_TOUCHPAD_OFF 0x214 + +#define KEY_CAMERA_ZOOMIN 0x215 +#define KEY_CAMERA_ZOOMOUT 0x216 +#define KEY_CAMERA_UP 0x217 +#define KEY_CAMERA_DOWN 0x218 +#define KEY_CAMERA_LEFT 0x219 +#define KEY_CAMERA_RIGHT 0x21a + +#define KEY_ATTENDANT_ON 0x21b +#define KEY_ATTENDANT_OFF 0x21c +#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ +#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ + +#define BTN_DPAD_UP 0x220 +#define BTN_DPAD_DOWN 0x221 +#define BTN_DPAD_LEFT 0x222 +#define BTN_DPAD_RIGHT 0x223 + +#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ + +#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ +#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ +#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ +#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ +#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ +#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ +#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ + +#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ +#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ + +#define BTN_TRIGGER_HAPPY 0x2c0 +#define BTN_TRIGGER_HAPPY1 0x2c0 +#define BTN_TRIGGER_HAPPY2 0x2c1 +#define BTN_TRIGGER_HAPPY3 0x2c2 +#define BTN_TRIGGER_HAPPY4 0x2c3 +#define BTN_TRIGGER_HAPPY5 0x2c4 +#define BTN_TRIGGER_HAPPY6 0x2c5 +#define BTN_TRIGGER_HAPPY7 0x2c6 +#define BTN_TRIGGER_HAPPY8 0x2c7 +#define BTN_TRIGGER_HAPPY9 0x2c8 +#define BTN_TRIGGER_HAPPY10 0x2c9 +#define BTN_TRIGGER_HAPPY11 0x2ca +#define BTN_TRIGGER_HAPPY12 0x2cb +#define BTN_TRIGGER_HAPPY13 0x2cc +#define BTN_TRIGGER_HAPPY14 0x2cd +#define BTN_TRIGGER_HAPPY15 0x2ce +#define BTN_TRIGGER_HAPPY16 0x2cf +#define BTN_TRIGGER_HAPPY17 0x2d0 +#define BTN_TRIGGER_HAPPY18 0x2d1 +#define BTN_TRIGGER_HAPPY19 0x2d2 +#define BTN_TRIGGER_HAPPY20 0x2d3 +#define BTN_TRIGGER_HAPPY21 0x2d4 +#define BTN_TRIGGER_HAPPY22 0x2d5 +#define BTN_TRIGGER_HAPPY23 0x2d6 +#define BTN_TRIGGER_HAPPY24 0x2d7 +#define BTN_TRIGGER_HAPPY25 0x2d8 +#define BTN_TRIGGER_HAPPY26 0x2d9 +#define BTN_TRIGGER_HAPPY27 0x2da +#define BTN_TRIGGER_HAPPY28 0x2db +#define BTN_TRIGGER_HAPPY29 0x2dc +#define BTN_TRIGGER_HAPPY30 0x2dd +#define BTN_TRIGGER_HAPPY31 0x2de +#define BTN_TRIGGER_HAPPY32 0x2df +#define BTN_TRIGGER_HAPPY33 0x2e0 +#define BTN_TRIGGER_HAPPY34 0x2e1 +#define BTN_TRIGGER_HAPPY35 0x2e2 +#define BTN_TRIGGER_HAPPY36 0x2e3 +#define BTN_TRIGGER_HAPPY37 0x2e4 +#define BTN_TRIGGER_HAPPY38 0x2e5 +#define BTN_TRIGGER_HAPPY39 0x2e6 +#define BTN_TRIGGER_HAPPY40 0x2e7 + +/* We avoid low common keys in module aliases so they don't get huge. */ +#define KEY_MIN_INTERESTING KEY_MUTE +#define KEY_MAX 0x2ff +#define KEY_CNT (KEY_MAX+1) + +/* + * Relative axes + */ + +#define REL_X 0x00 +#define REL_Y 0x01 +#define REL_Z 0x02 +#define REL_RX 0x03 +#define REL_RY 0x04 +#define REL_RZ 0x05 +#define REL_HWHEEL 0x06 +#define REL_DIAL 0x07 +#define REL_WHEEL 0x08 +#define REL_MISC 0x09 +#define REL_MAX 0x0f +#define REL_CNT (REL_MAX+1) + +/* + * Absolute axes + */ + +#define ABS_X 0x00 +#define ABS_Y 0x01 +#define ABS_Z 0x02 +#define ABS_RX 0x03 +#define ABS_RY 0x04 +#define ABS_RZ 0x05 +#define ABS_THROTTLE 0x06 +#define ABS_RUDDER 0x07 +#define ABS_WHEEL 0x08 +#define ABS_GAS 0x09 +#define ABS_BRAKE 0x0a +#define ABS_HAT0X 0x10 +#define ABS_HAT0Y 0x11 +#define ABS_HAT1X 0x12 +#define ABS_HAT1Y 0x13 +#define ABS_HAT2X 0x14 +#define ABS_HAT2Y 0x15 +#define ABS_HAT3X 0x16 +#define ABS_HAT3Y 0x17 +#define ABS_PRESSURE 0x18 +#define ABS_DISTANCE 0x19 +#define ABS_TILT_X 0x1a +#define ABS_TILT_Y 0x1b +#define ABS_TOOL_WIDTH 0x1c + +#define ABS_VOLUME 0x20 + +#define ABS_MISC 0x28 + +#define ABS_MT_SLOT 0x2f /* MT slot being modified */ +#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ +#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ +#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ +#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ +#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ +#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ +#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ +#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ +#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ +#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ +#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ +#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ +#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ +#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ + + +#define ABS_MAX 0x3f +#define ABS_CNT (ABS_MAX+1) + +/* + * Switch events + */ + +#define SW_LID 0x00 /* set = lid shut */ +#define SW_TABLET_MODE 0x01 /* set = tablet mode */ +#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ +#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" + set = radio enabled */ +#define SW_RADIO SW_RFKILL_ALL /* deprecated */ +#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ +#define SW_DOCK 0x05 /* set = plugged into dock */ +#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ +#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ +#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ +#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ +#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ +#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ +#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ +#define SW_LINEIN_INSERT 0x0d /* set = inserted */ +#define SW_HPHL_OVERCURRENT 0x0e /* set = over current on left hph */ +#define SW_HPHR_OVERCURRENT 0x0f /* set = over current on right hph */ +#define SW_UNSUPPORT_INSERT 0x10 /* set = unsupported device inserted */ +#define SW_MICROPHONE2_INSERT 0x11 /* set = inserted */ +#define SW_MUTE_DEVICE 0x12 /* set = device disabled */ +#define SW_MAX 0x20 +#define SW_CNT (SW_MAX+1) + +/* + * Misc events + */ + +#define MSC_SERIAL 0x00 +#define MSC_PULSELED 0x01 +#define MSC_GESTURE 0x02 +#define MSC_RAW 0x03 +#define MSC_SCAN 0x04 +#define MSC_TIMESTAMP 0x05 +#define MSC_MAX 0x07 +#define MSC_CNT (MSC_MAX+1) + +/* + * LEDs + */ + +#define LED_NUML 0x00 +#define LED_CAPSL 0x01 +#define LED_SCROLLL 0x02 +#define LED_COMPOSE 0x03 +#define LED_KANA 0x04 +#define LED_SLEEP 0x05 +#define LED_SUSPEND 0x06 +#define LED_MUTE 0x07 +#define LED_MISC 0x08 +#define LED_MAIL 0x09 +#define LED_CHARGING 0x0a +#define LED_MAX 0x0f +#define LED_CNT (LED_MAX+1) + +/* + * Autorepeat values + */ + +#define REP_DELAY 0x00 +#define REP_PERIOD 0x01 +#define REP_MAX 0x01 +#define REP_CNT (REP_MAX+1) + +/* + * Sounds + */ + +#define SND_CLICK 0x00 +#define SND_BELL 0x01 +#define SND_TONE 0x02 +#define SND_MAX 0x07 +#define SND_CNT (SND_MAX+1) + +/* + * IDs. + */ + +#define ID_BUS 0 +#define ID_VENDOR 1 +#define ID_PRODUCT 2 +#define ID_VERSION 3 + +#define BUS_PCI 0x01 +#define BUS_ISAPNP 0x02 +#define BUS_USB 0x03 +#define BUS_HIL 0x04 +#define BUS_BLUETOOTH 0x05 +#define BUS_VIRTUAL 0x06 + +#define BUS_ISA 0x10 +#define BUS_I8042 0x11 +#define BUS_XTKBD 0x12 +#define BUS_RS232 0x13 +#define BUS_GAMEPORT 0x14 +#define BUS_PARPORT 0x15 +#define BUS_AMIGA 0x16 +#define BUS_ADB 0x17 +#define BUS_I2C 0x18 +#define BUS_HOST 0x19 +#define BUS_GSC 0x1A +#define BUS_ATARI 0x1B +#define BUS_SPI 0x1C + +/* + * MT_TOOL types + */ +#define MT_TOOL_FINGER 0 +#define MT_TOOL_PEN 1 +#define MT_TOOL_MAX 1 + +/* + * Values describing the status of a force-feedback effect + */ +#define FF_STATUS_STOPPED 0x00 +#define FF_STATUS_PLAYING 0x01 +#define FF_STATUS_MAX 0x01 + +/* + * Structures used in ioctls to upload effects to a device + * They are pieces of a bigger structure (called ff_effect) + */ + +/* + * All duration values are expressed in ms. Values above 32767 ms (0x7fff) + * should not be used and have unspecified results. + */ + +/** + * struct ff_replay - defines scheduling of the force-feedback effect + * @length: duration of the effect + * @delay: delay before effect should start playing + */ +struct ff_replay { + __u16 length; + __u16 delay; +}; + +/** + * struct ff_trigger - defines what triggers the force-feedback effect + * @button: number of the button triggering the effect + * @interval: controls how soon the effect can be re-triggered + */ +struct ff_trigger { + __u16 button; + __u16 interval; +}; + +/** + * struct ff_envelope - generic force-feedback effect envelope + * @attack_length: duration of the attack (ms) + * @attack_level: level at the beginning of the attack + * @fade_length: duration of fade (ms) + * @fade_level: level at the end of fade + * + * The @attack_level and @fade_level are absolute values; when applying + * envelope force-feedback core will convert to positive/negative + * value based on polarity of the default level of the effect. + * Valid range for the attack and fade levels is 0x0000 - 0x7fff + */ +struct ff_envelope { + __u16 attack_length; + __u16 attack_level; + __u16 fade_length; + __u16 fade_level; +}; + +/** + * struct ff_constant_effect - defines parameters of a constant force-feedback effect + * @level: strength of the effect; may be negative + * @envelope: envelope data + */ +struct ff_constant_effect { + __s16 level; + struct ff_envelope envelope; +}; + +/** + * struct ff_ramp_effect - defines parameters of a ramp force-feedback effect + * @start_level: beginning strength of the effect; may be negative + * @end_level: final strength of the effect; may be negative + * @envelope: envelope data + */ +struct ff_ramp_effect { + __s16 start_level; + __s16 end_level; + struct ff_envelope envelope; +}; + +/** + * struct ff_condition_effect - defines a spring or friction force-feedback effect + * @right_saturation: maximum level when joystick moved all way to the right + * @left_saturation: same for the left side + * @right_coeff: controls how fast the force grows when the joystick moves + * to the right + * @left_coeff: same for the left side + * @deadband: size of the dead zone, where no force is produced + * @center: position of the dead zone + */ +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + + __s16 right_coeff; + __s16 left_coeff; + + __u16 deadband; + __s16 center; +}; + +/** + * struct ff_periodic_effect - defines parameters of a periodic force-feedback effect + * @waveform: kind of the effect (wave) + * @period: period of the wave (ms) + * @magnitude: peak value + * @offset: mean value of the wave (roughly) + * @phase: 'horizontal' shift + * @envelope: envelope data + * @custom_len: number of samples (FF_CUSTOM only) + * @custom_data: buffer of samples (FF_CUSTOM only) + * + * Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP, + * FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined + * for the time being as no driver supports it yet. + * + * Note: the data pointed by custom_data is copied by the driver. + * You can therefore dispose of the memory after the upload/update. + */ +struct ff_periodic_effect { + __u16 waveform; + __u16 period; + __s16 magnitude; + __s16 offset; + __u16 phase; + + struct ff_envelope envelope; + + __u32 custom_len; + __s16 *custom_data; +}; + +/** + * struct ff_rumble_effect - defines parameters of a periodic force-feedback effect + * @strong_magnitude: magnitude of the heavy motor + * @weak_magnitude: magnitude of the light one + * + * Some rumble pads have two motors of different weight. Strong_magnitude + * represents the magnitude of the vibration generated by the heavy one. + */ +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; +}; + +/** + * struct ff_effect - defines force feedback effect + * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING, + * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM) + * @id: an unique id assigned to an effect + * @direction: direction of the effect + * @trigger: trigger conditions (struct ff_trigger) + * @replay: scheduling of the effect (struct ff_replay) + * @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect, + * ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further + * defining effect parameters + * + * This structure is sent through ioctl from the application to the driver. + * To create a new effect application should set its @id to -1; the kernel + * will return assigned @id which can later be used to update or delete + * this effect. + * + * Direction of the effect is encoded as follows: + * 0 deg -> 0x0000 (down) + * 90 deg -> 0x4000 (left) + * 180 deg -> 0x8000 (up) + * 270 deg -> 0xC000 (right) + */ +struct ff_effect { + __u16 type; + __s16 id; + __u16 direction; + struct ff_trigger trigger; + struct ff_replay replay; + + union { + struct ff_constant_effect constant; + struct ff_ramp_effect ramp; + struct ff_periodic_effect periodic; + struct ff_condition_effect condition[2]; /* One for each axis */ + struct ff_rumble_effect rumble; + } u; +}; + +/* + * Force feedback effect types + */ + +#define FF_RUMBLE 0x50 +#define FF_PERIODIC 0x51 +#define FF_CONSTANT 0x52 +#define FF_SPRING 0x53 +#define FF_FRICTION 0x54 +#define FF_DAMPER 0x55 +#define FF_INERTIA 0x56 +#define FF_RAMP 0x57 + +#define FF_EFFECT_MIN FF_RUMBLE +#define FF_EFFECT_MAX FF_RAMP + +/* + * Force feedback periodic effect types + */ + +#define FF_SQUARE 0x58 +#define FF_TRIANGLE 0x59 +#define FF_SINE 0x5a +#define FF_SAW_UP 0x5b +#define FF_SAW_DOWN 0x5c +#define FF_CUSTOM 0x5d + +#define FF_WAVEFORM_MIN FF_SQUARE +#define FF_WAVEFORM_MAX FF_CUSTOM + +/* + * Set ff device properties + */ + +#define FF_GAIN 0x60 +#define FF_AUTOCENTER 0x61 + +#define FF_MAX 0x7f +#define FF_CNT (FF_MAX+1) + +#endif /* _INPUT_H */ diff --git a/kernel_headers/linux/ioctl.h b/kernel_headers/linux/ioctl.h new file mode 100644 index 0000000..aa91eb3 --- /dev/null +++ b/kernel_headers/linux/ioctl.h @@ -0,0 +1,7 @@ +#ifndef _LINUX_IOCTL_H +#define _LINUX_IOCTL_H + +#include + +#endif /* _LINUX_IOCTL_H */ + diff --git a/kernel_headers/linux/ion.h b/kernel_headers/linux/ion.h new file mode 100644 index 0000000..fd011a9 --- /dev/null +++ b/kernel_headers/linux/ion.h @@ -0,0 +1,6 @@ +#ifndef __UAPI_LINUX_ION_H__ +#define __UAPI_LINUX_ION_H__ + +#include + +#endif /* __UAPI_LINUX_ION_H__ */ diff --git a/kernel_headers/linux/ioprio.h b/kernel_headers/linux/ioprio.h new file mode 100644 index 0000000..ddf20e0 --- /dev/null +++ b/kernel_headers/linux/ioprio.h @@ -0,0 +1,34 @@ +#ifndef __IOPRIO_H +#define __IOPRIO_H + +/* + * Gives us 8 prio classes with 13-bits of data for each class + */ +#define IOPRIO_BITS (16) +#define IOPRIO_CLASS_SHIFT (13) + +/* + * These are the io priority groups as implemented by CFQ. RT is the realtime + * class, it always gets premium service. BE is the best-effort scheduling + * class, the default for any process. IDLE is the idle scheduling class, it + * is only served when no one else is using the disk. + */ +enum { + IOPRIO_CLASS_NONE, + IOPRIO_CLASS_RT, + IOPRIO_CLASS_BE, + IOPRIO_CLASS_IDLE, +}; + +/* + * 8 best effort priority levels are supported + */ +#define IOPRIO_BE_NR (8) + +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP, + IOPRIO_WHO_USER, +}; + +#endif diff --git a/kernel_headers/linux/ip.h b/kernel_headers/linux/ip.h new file mode 100644 index 0000000..c16d29b --- /dev/null +++ b/kernel_headers/linux/ip.h @@ -0,0 +1,136 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions for the IP protocol. + * + * Version: @(#)ip.h 1.0.2 04/28/93 + * + * Authors: Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_IP_H +#define _LINUX_IP_H +#include +#include + +#define IPTOS_TOS_MASK 0x1E +#define IPTOS_TOS(tos) ((tos)&IPTOS_TOS_MASK) +#define IPTOS_LOWDELAY 0x10 +#define IPTOS_THROUGHPUT 0x08 +#define IPTOS_RELIABILITY 0x04 +#define IPTOS_MINCOST 0x02 + +#define IPTOS_PREC_MASK 0xE0 +#define IPTOS_PREC(tos) ((tos)&IPTOS_PREC_MASK) +#define IPTOS_PREC_NETCONTROL 0xe0 +#define IPTOS_PREC_INTERNETCONTROL 0xc0 +#define IPTOS_PREC_CRITIC_ECP 0xa0 +#define IPTOS_PREC_FLASHOVERRIDE 0x80 +#define IPTOS_PREC_FLASH 0x60 +#define IPTOS_PREC_IMMEDIATE 0x40 +#define IPTOS_PREC_PRIORITY 0x20 +#define IPTOS_PREC_ROUTINE 0x00 + + +/* IP options */ +#define IPOPT_COPY 0x80 +#define IPOPT_CLASS_MASK 0x60 +#define IPOPT_NUMBER_MASK 0x1f + +#define IPOPT_COPIED(o) ((o)&IPOPT_COPY) +#define IPOPT_CLASS(o) ((o)&IPOPT_CLASS_MASK) +#define IPOPT_NUMBER(o) ((o)&IPOPT_NUMBER_MASK) + +#define IPOPT_CONTROL 0x00 +#define IPOPT_RESERVED1 0x20 +#define IPOPT_MEASUREMENT 0x40 +#define IPOPT_RESERVED2 0x60 + +#define IPOPT_END (0 |IPOPT_CONTROL) +#define IPOPT_NOOP (1 |IPOPT_CONTROL) +#define IPOPT_SEC (2 |IPOPT_CONTROL|IPOPT_COPY) +#define IPOPT_LSRR (3 |IPOPT_CONTROL|IPOPT_COPY) +#define IPOPT_TIMESTAMP (4 |IPOPT_MEASUREMENT) +#define IPOPT_CIPSO (6 |IPOPT_CONTROL|IPOPT_COPY) +#define IPOPT_RR (7 |IPOPT_CONTROL) +#define IPOPT_SID (8 |IPOPT_CONTROL|IPOPT_COPY) +#define IPOPT_SSRR (9 |IPOPT_CONTROL|IPOPT_COPY) +#define IPOPT_RA (20|IPOPT_CONTROL|IPOPT_COPY) + +#define IPVERSION 4 +#define MAXTTL 255 +#define IPDEFTTL 64 + +#define IPOPT_OPTVAL 0 +#define IPOPT_OLEN 1 +#define IPOPT_OFFSET 2 +#define IPOPT_MINOFF 4 +#define MAX_IPOPTLEN 40 +#define IPOPT_NOP IPOPT_NOOP +#define IPOPT_EOL IPOPT_END +#define IPOPT_TS IPOPT_TIMESTAMP + +#define IPOPT_TS_TSONLY 0 /* timestamps only */ +#define IPOPT_TS_TSANDADDR 1 /* timestamps and addresses */ +#define IPOPT_TS_PRESPEC 3 /* specified modules only */ + +#define IPV4_BEET_PHMAXLEN 8 + +struct iphdr { +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 ihl:4, + version:4; +#elif defined (__BIG_ENDIAN_BITFIELD) + __u8 version:4, + ihl:4; +#else +#error "Please fix " +#endif + __u8 tos; + __be16 tot_len; + __be16 id; + __be16 frag_off; + __u8 ttl; + __u8 protocol; + __sum16 check; + __be32 saddr; + __be32 daddr; + /*The options start here. */ +}; + + +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; /* This one is measured in 32 bit units! */ + __be16 reserved; + __be32 spi; + __be32 seq_no; /* Sequence number */ + __u8 auth_data[0]; /* Variable len but >=4. Mind the 64 bit alignment! */ +}; + +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; /* Sequence number */ + __u8 enc_data[0]; /* Variable len but >=8. Mind the 64 bit alignment! */ +}; + +struct ip_comp_hdr { + __u8 nexthdr; + __u8 flags; + __be16 cpi; +}; + +struct ip_beet_phdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 padlen; + __u8 reserved; +}; + +#endif /* _LINUX_IP_H */ diff --git a/kernel_headers/linux/ip6_tunnel.h b/kernel_headers/linux/ip6_tunnel.h new file mode 100644 index 0000000..48af63c --- /dev/null +++ b/kernel_headers/linux/ip6_tunnel.h @@ -0,0 +1,51 @@ +#ifndef _IP6_TUNNEL_H +#define _IP6_TUNNEL_H + +#include + +#define IPV6_TLV_TNL_ENCAP_LIMIT 4 +#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 + +/* don't add encapsulation limit if one isn't present in inner packet */ +#define IP6_TNL_F_IGN_ENCAP_LIMIT 0x1 +/* copy the traffic class field from the inner packet */ +#define IP6_TNL_F_USE_ORIG_TCLASS 0x2 +/* copy the flowlabel from the inner packet */ +#define IP6_TNL_F_USE_ORIG_FLOWLABEL 0x4 +/* being used for Mobile IPv6 */ +#define IP6_TNL_F_MIP6_DEV 0x8 +/* copy DSCP from the outer packet */ +#define IP6_TNL_F_RCV_DSCP_COPY 0x10 +/* copy fwmark from inner packet */ +#define IP6_TNL_F_USE_ORIG_FWMARK 0x20 + +struct ip6_tnl_parm { + char name[IFNAMSIZ]; /* name of tunnel device */ + int link; /* ifindex of underlying L2 interface */ + __u8 proto; /* tunnel protocol */ + __u8 encap_limit; /* encapsulation limit for tunnel */ + __u8 hop_limit; /* hop limit for tunnel */ + __be32 flowinfo; /* traffic class and flowlabel for tunnel */ + __u32 flags; /* tunnel flags */ + struct in6_addr laddr; /* local tunnel end-point address */ + struct in6_addr raddr; /* remote tunnel end-point address */ +}; + +struct ip6_tnl_parm2 { + char name[IFNAMSIZ]; /* name of tunnel device */ + int link; /* ifindex of underlying L2 interface */ + __u8 proto; /* tunnel protocol */ + __u8 encap_limit; /* encapsulation limit for tunnel */ + __u8 hop_limit; /* hop limit for tunnel */ + __be32 flowinfo; /* traffic class and flowlabel for tunnel */ + __u32 flags; /* tunnel flags */ + struct in6_addr laddr; /* local tunnel end-point address */ + struct in6_addr raddr; /* remote tunnel end-point address */ + + __be16 i_flags; + __be16 o_flags; + __be32 i_key; + __be32 o_key; +}; + +#endif diff --git a/kernel_headers/linux/ip_vs.h b/kernel_headers/linux/ip_vs.h new file mode 100644 index 0000000..a245377 --- /dev/null +++ b/kernel_headers/linux/ip_vs.h @@ -0,0 +1,434 @@ +/* + * IP Virtual Server + * data structure and functionality definitions + */ + +#ifndef _IP_VS_H +#define _IP_VS_H + +#include /* For __beXX types in userland */ + +#define IP_VS_VERSION_CODE 0x010201 +#define NVERSION(version) \ + (version >> 16) & 0xFF, \ + (version >> 8) & 0xFF, \ + version & 0xFF + +/* + * Virtual Service Flags + */ +#define IP_VS_SVC_F_PERSISTENT 0x0001 /* persistent port */ +#define IP_VS_SVC_F_HASHED 0x0002 /* hashed entry */ +#define IP_VS_SVC_F_ONEPACKET 0x0004 /* one-packet scheduling */ + +/* + * Destination Server Flags + */ +#define IP_VS_DEST_F_AVAILABLE 0x0001 /* server is available */ +#define IP_VS_DEST_F_OVERLOAD 0x0002 /* server is overloaded */ + +/* + * IPVS sync daemon states + */ +#define IP_VS_STATE_NONE 0x0000 /* daemon is stopped */ +#define IP_VS_STATE_MASTER 0x0001 /* started as master */ +#define IP_VS_STATE_BACKUP 0x0002 /* started as backup */ + +/* + * IPVS socket options + */ +#define IP_VS_BASE_CTL (64+1024+64) /* base */ + +#define IP_VS_SO_SET_NONE IP_VS_BASE_CTL /* just peek */ +#define IP_VS_SO_SET_INSERT (IP_VS_BASE_CTL+1) +#define IP_VS_SO_SET_ADD (IP_VS_BASE_CTL+2) +#define IP_VS_SO_SET_EDIT (IP_VS_BASE_CTL+3) +#define IP_VS_SO_SET_DEL (IP_VS_BASE_CTL+4) +#define IP_VS_SO_SET_FLUSH (IP_VS_BASE_CTL+5) +#define IP_VS_SO_SET_LIST (IP_VS_BASE_CTL+6) +#define IP_VS_SO_SET_ADDDEST (IP_VS_BASE_CTL+7) +#define IP_VS_SO_SET_DELDEST (IP_VS_BASE_CTL+8) +#define IP_VS_SO_SET_EDITDEST (IP_VS_BASE_CTL+9) +#define IP_VS_SO_SET_TIMEOUT (IP_VS_BASE_CTL+10) +#define IP_VS_SO_SET_STARTDAEMON (IP_VS_BASE_CTL+11) +#define IP_VS_SO_SET_STOPDAEMON (IP_VS_BASE_CTL+12) +#define IP_VS_SO_SET_RESTORE (IP_VS_BASE_CTL+13) +#define IP_VS_SO_SET_SAVE (IP_VS_BASE_CTL+14) +#define IP_VS_SO_SET_ZERO (IP_VS_BASE_CTL+15) +#define IP_VS_SO_SET_MAX IP_VS_SO_SET_ZERO + +#define IP_VS_SO_GET_VERSION IP_VS_BASE_CTL +#define IP_VS_SO_GET_INFO (IP_VS_BASE_CTL+1) +#define IP_VS_SO_GET_SERVICES (IP_VS_BASE_CTL+2) +#define IP_VS_SO_GET_SERVICE (IP_VS_BASE_CTL+3) +#define IP_VS_SO_GET_DESTS (IP_VS_BASE_CTL+4) +#define IP_VS_SO_GET_DEST (IP_VS_BASE_CTL+5) /* not used now */ +#define IP_VS_SO_GET_TIMEOUT (IP_VS_BASE_CTL+6) +#define IP_VS_SO_GET_DAEMON (IP_VS_BASE_CTL+7) +#define IP_VS_SO_GET_MAX IP_VS_SO_GET_DAEMON + + +/* + * IPVS Connection Flags + * Only flags 0..15 are sent to backup server + */ +#define IP_VS_CONN_F_FWD_MASK 0x0007 /* mask for the fwd methods */ +#define IP_VS_CONN_F_MASQ 0x0000 /* masquerading/NAT */ +#define IP_VS_CONN_F_LOCALNODE 0x0001 /* local node */ +#define IP_VS_CONN_F_TUNNEL 0x0002 /* tunneling */ +#define IP_VS_CONN_F_DROUTE 0x0003 /* direct routing */ +#define IP_VS_CONN_F_BYPASS 0x0004 /* cache bypass */ +#define IP_VS_CONN_F_SYNC 0x0020 /* entry created by sync */ +#define IP_VS_CONN_F_HASHED 0x0040 /* hashed entry */ +#define IP_VS_CONN_F_NOOUTPUT 0x0080 /* no output packets */ +#define IP_VS_CONN_F_INACTIVE 0x0100 /* not established */ +#define IP_VS_CONN_F_OUT_SEQ 0x0200 /* must do output seq adjust */ +#define IP_VS_CONN_F_IN_SEQ 0x0400 /* must do input seq adjust */ +#define IP_VS_CONN_F_SEQ_MASK 0x0600 /* in/out sequence mask */ +#define IP_VS_CONN_F_NO_CPORT 0x0800 /* no client port set yet */ +#define IP_VS_CONN_F_TEMPLATE 0x1000 /* template, not connection */ +#define IP_VS_CONN_F_ONE_PACKET 0x2000 /* forward only one packet */ + +/* Initial bits allowed in backup server */ +#define IP_VS_CONN_F_BACKUP_MASK (IP_VS_CONN_F_FWD_MASK | \ + IP_VS_CONN_F_NOOUTPUT | \ + IP_VS_CONN_F_INACTIVE | \ + IP_VS_CONN_F_SEQ_MASK | \ + IP_VS_CONN_F_NO_CPORT | \ + IP_VS_CONN_F_TEMPLATE \ + ) + +/* Bits allowed to update in backup server */ +#define IP_VS_CONN_F_BACKUP_UPD_MASK (IP_VS_CONN_F_INACTIVE | \ + IP_VS_CONN_F_SEQ_MASK) + +/* Flags that are not sent to backup server start from bit 16 */ +#define IP_VS_CONN_F_NFCT (1 << 16) /* use netfilter conntrack */ + +/* Connection flags from destination that can be changed by user space */ +#define IP_VS_CONN_F_DEST_MASK (IP_VS_CONN_F_FWD_MASK | \ + IP_VS_CONN_F_ONE_PACKET | \ + IP_VS_CONN_F_NFCT | \ + 0) + +#define IP_VS_SCHEDNAME_MAXLEN 16 +#define IP_VS_PENAME_MAXLEN 16 +#define IP_VS_IFNAME_MAXLEN 16 + +#define IP_VS_PEDATA_MAXLEN 255 + +/* + * The struct ip_vs_service_user and struct ip_vs_dest_user are + * used to set IPVS rules through setsockopt. + */ +struct ip_vs_service_user { + /* virtual service addresses */ + __u16 protocol; + __be32 addr; /* virtual ip address */ + __be16 port; + __u32 fwmark; /* firwall mark of service */ + + /* virtual service options */ + char sched_name[IP_VS_SCHEDNAME_MAXLEN]; + unsigned int flags; /* virtual service flags */ + unsigned int timeout; /* persistent timeout in sec */ + __be32 netmask; /* persistent netmask */ +}; + + +struct ip_vs_dest_user { + /* destination server address */ + __be32 addr; + __be16 port; + + /* real server options */ + unsigned int conn_flags; /* connection flags */ + int weight; /* destination weight */ + + /* thresholds for active connections */ + __u32 u_threshold; /* upper threshold */ + __u32 l_threshold; /* lower threshold */ +}; + + +/* + * IPVS statistics object (for user space) + */ +struct ip_vs_stats_user { + __u32 conns; /* connections scheduled */ + __u32 inpkts; /* incoming packets */ + __u32 outpkts; /* outgoing packets */ + __u64 inbytes; /* incoming bytes */ + __u64 outbytes; /* outgoing bytes */ + + __u32 cps; /* current connection rate */ + __u32 inpps; /* current in packet rate */ + __u32 outpps; /* current out packet rate */ + __u32 inbps; /* current in byte rate */ + __u32 outbps; /* current out byte rate */ +}; + + +/* The argument to IP_VS_SO_GET_INFO */ +struct ip_vs_getinfo { + /* version number */ + unsigned int version; + + /* size of connection hash table */ + unsigned int size; + + /* number of virtual services */ + unsigned int num_services; +}; + + +/* The argument to IP_VS_SO_GET_SERVICE */ +struct ip_vs_service_entry { + /* which service: user fills in these */ + __u16 protocol; + __be32 addr; /* virtual address */ + __be16 port; + __u32 fwmark; /* firwall mark of service */ + + /* service options */ + char sched_name[IP_VS_SCHEDNAME_MAXLEN]; + unsigned int flags; /* virtual service flags */ + unsigned int timeout; /* persistent timeout */ + __be32 netmask; /* persistent netmask */ + + /* number of real servers */ + unsigned int num_dests; + + /* statistics */ + struct ip_vs_stats_user stats; +}; + + +struct ip_vs_dest_entry { + __be32 addr; /* destination address */ + __be16 port; + unsigned int conn_flags; /* connection flags */ + int weight; /* destination weight */ + + __u32 u_threshold; /* upper threshold */ + __u32 l_threshold; /* lower threshold */ + + __u32 activeconns; /* active connections */ + __u32 inactconns; /* inactive connections */ + __u32 persistconns; /* persistent connections */ + + /* statistics */ + struct ip_vs_stats_user stats; +}; + + +/* The argument to IP_VS_SO_GET_DESTS */ +struct ip_vs_get_dests { + /* which service: user fills in these */ + __u16 protocol; + __be32 addr; /* virtual address */ + __be16 port; + __u32 fwmark; /* firwall mark of service */ + + /* number of real servers */ + unsigned int num_dests; + + /* the real servers */ + struct ip_vs_dest_entry entrytable[0]; +}; + + +/* The argument to IP_VS_SO_GET_SERVICES */ +struct ip_vs_get_services { + /* number of virtual services */ + unsigned int num_services; + + /* service table */ + struct ip_vs_service_entry entrytable[0]; +}; + + +/* The argument to IP_VS_SO_GET_TIMEOUT */ +struct ip_vs_timeout_user { + int tcp_timeout; + int tcp_fin_timeout; + int udp_timeout; +}; + + +/* The argument to IP_VS_SO_GET_DAEMON */ +struct ip_vs_daemon_user { + /* sync daemon state (master/backup) */ + int state; + + /* multicast interface name */ + char mcast_ifn[IP_VS_IFNAME_MAXLEN]; + + /* SyncID we belong to */ + int syncid; +}; + +/* + * + * IPVS Generic Netlink interface definitions + * + */ + +/* Generic Netlink family info */ + +#define IPVS_GENL_NAME "IPVS" +#define IPVS_GENL_VERSION 0x1 + +struct ip_vs_flags { + __u32 flags; + __u32 mask; +}; + +/* Generic Netlink command attributes */ +enum { + IPVS_CMD_UNSPEC = 0, + + IPVS_CMD_NEW_SERVICE, /* add service */ + IPVS_CMD_SET_SERVICE, /* modify service */ + IPVS_CMD_DEL_SERVICE, /* delete service */ + IPVS_CMD_GET_SERVICE, /* get service info */ + + IPVS_CMD_NEW_DEST, /* add destination */ + IPVS_CMD_SET_DEST, /* modify destination */ + IPVS_CMD_DEL_DEST, /* delete destination */ + IPVS_CMD_GET_DEST, /* get destination info */ + + IPVS_CMD_NEW_DAEMON, /* start sync daemon */ + IPVS_CMD_DEL_DAEMON, /* stop sync daemon */ + IPVS_CMD_GET_DAEMON, /* get sync daemon status */ + + IPVS_CMD_SET_CONFIG, /* set config settings */ + IPVS_CMD_GET_CONFIG, /* get config settings */ + + IPVS_CMD_SET_INFO, /* only used in GET_INFO reply */ + IPVS_CMD_GET_INFO, /* get general IPVS info */ + + IPVS_CMD_ZERO, /* zero all counters and stats */ + IPVS_CMD_FLUSH, /* flush services and dests */ + + __IPVS_CMD_MAX, +}; + +#define IPVS_CMD_MAX (__IPVS_CMD_MAX - 1) + +/* Attributes used in the first level of commands */ +enum { + IPVS_CMD_ATTR_UNSPEC = 0, + IPVS_CMD_ATTR_SERVICE, /* nested service attribute */ + IPVS_CMD_ATTR_DEST, /* nested destination attribute */ + IPVS_CMD_ATTR_DAEMON, /* nested sync daemon attribute */ + IPVS_CMD_ATTR_TIMEOUT_TCP, /* TCP connection timeout */ + IPVS_CMD_ATTR_TIMEOUT_TCP_FIN, /* TCP FIN wait timeout */ + IPVS_CMD_ATTR_TIMEOUT_UDP, /* UDP timeout */ + __IPVS_CMD_ATTR_MAX, +}; + +#define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) + +/* + * Attributes used to describe a service + * + * Used inside nested attribute IPVS_CMD_ATTR_SERVICE + */ +enum { + IPVS_SVC_ATTR_UNSPEC = 0, + IPVS_SVC_ATTR_AF, /* address family */ + IPVS_SVC_ATTR_PROTOCOL, /* virtual service protocol */ + IPVS_SVC_ATTR_ADDR, /* virtual service address */ + IPVS_SVC_ATTR_PORT, /* virtual service port */ + IPVS_SVC_ATTR_FWMARK, /* firewall mark of service */ + + IPVS_SVC_ATTR_SCHED_NAME, /* name of scheduler */ + IPVS_SVC_ATTR_FLAGS, /* virtual service flags */ + IPVS_SVC_ATTR_TIMEOUT, /* persistent timeout */ + IPVS_SVC_ATTR_NETMASK, /* persistent netmask */ + + IPVS_SVC_ATTR_STATS, /* nested attribute for service stats */ + + IPVS_SVC_ATTR_PE_NAME, /* name of ct retriever */ + + __IPVS_SVC_ATTR_MAX, +}; + +#define IPVS_SVC_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) + +/* + * Attributes used to describe a destination (real server) + * + * Used inside nested attribute IPVS_CMD_ATTR_DEST + */ +enum { + IPVS_DEST_ATTR_UNSPEC = 0, + IPVS_DEST_ATTR_ADDR, /* real server address */ + IPVS_DEST_ATTR_PORT, /* real server port */ + + IPVS_DEST_ATTR_FWD_METHOD, /* forwarding method */ + IPVS_DEST_ATTR_WEIGHT, /* destination weight */ + + IPVS_DEST_ATTR_U_THRESH, /* upper threshold */ + IPVS_DEST_ATTR_L_THRESH, /* lower threshold */ + + IPVS_DEST_ATTR_ACTIVE_CONNS, /* active connections */ + IPVS_DEST_ATTR_INACT_CONNS, /* inactive connections */ + IPVS_DEST_ATTR_PERSIST_CONNS, /* persistent connections */ + + IPVS_DEST_ATTR_STATS, /* nested attribute for dest stats */ + __IPVS_DEST_ATTR_MAX, +}; + +#define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1) + +/* + * Attributes describing a sync daemon + * + * Used inside nested attribute IPVS_CMD_ATTR_DAEMON + */ +enum { + IPVS_DAEMON_ATTR_UNSPEC = 0, + IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */ + IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */ + IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */ + __IPVS_DAEMON_ATTR_MAX, +}; + +#define IPVS_DAEMON_ATTR_MAX (__IPVS_DAEMON_ATTR_MAX - 1) + +/* + * Attributes used to describe service or destination entry statistics + * + * Used inside nested attributes IPVS_SVC_ATTR_STATS and IPVS_DEST_ATTR_STATS + */ +enum { + IPVS_STATS_ATTR_UNSPEC = 0, + IPVS_STATS_ATTR_CONNS, /* connections scheduled */ + IPVS_STATS_ATTR_INPKTS, /* incoming packets */ + IPVS_STATS_ATTR_OUTPKTS, /* outgoing packets */ + IPVS_STATS_ATTR_INBYTES, /* incoming bytes */ + IPVS_STATS_ATTR_OUTBYTES, /* outgoing bytes */ + + IPVS_STATS_ATTR_CPS, /* current connection rate */ + IPVS_STATS_ATTR_INPPS, /* current in packet rate */ + IPVS_STATS_ATTR_OUTPPS, /* current out packet rate */ + IPVS_STATS_ATTR_INBPS, /* current in byte rate */ + IPVS_STATS_ATTR_OUTBPS, /* current out byte rate */ + __IPVS_STATS_ATTR_MAX, +}; + +#define IPVS_STATS_ATTR_MAX (__IPVS_STATS_ATTR_MAX - 1) + +/* Attributes used in response to IPVS_CMD_GET_INFO command */ +enum { + IPVS_INFO_ATTR_UNSPEC = 0, + IPVS_INFO_ATTR_VERSION, /* IPVS version number */ + IPVS_INFO_ATTR_CONN_TAB_SIZE, /* size of connection hash table */ + __IPVS_INFO_ATTR_MAX, +}; + +#define IPVS_INFO_ATTR_MAX (__IPVS_INFO_ATTR_MAX - 1) + +#endif /* _IP_VS_H */ diff --git a/kernel_headers/linux/ipa_qmi_service_v01.h b/kernel_headers/linux/ipa_qmi_service_v01.h new file mode 100644 index 0000000..83265a1 --- /dev/null +++ b/kernel_headers/linux/ipa_qmi_service_v01.h @@ -0,0 +1,943 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * This header file defines the types and structures that were defined in + * ipa. It contains the constant values defined, enums, structures, + * messages, and service message IDs (in that order) Structures that were + * defined in the IDL as messages contain mandatory elements, optional + * elements, a combination of mandatory and optional elements (mandatory + * always come before optionals in the structure), or nothing (null message) + + * An optional element in a message is preceded by a uint8_t value that must be + * set to true if the element is going to be included. When decoding a received + * message, the uint8_t values will be set to true or false by the decode + * routine, and should be checked before accessing the values that they + * correspond to. + + * Variable sized arrays are defined as static sized arrays with an unsigned + * integer (32 bit) preceding it that must be set to the number of elements + * in the array that are valid. For Example: + + * uint32_t test_opaque_len; + * uint8_t test_opaque[16]; + + * If only 4 elements are added to test_opaque[] then test_opaque_len must be + * set to 4 before sending the message. When decoding, the _len value is set + * by the decode routine and should be checked so that the correct number of + * elements in the array will be accessed. + */ +#ifndef IPA_QMI_SERVICE_V01_H +#define IPA_QMI_SERVICE_V01_H + +#define QMI_IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS_V01 2 +#define QMI_IPA_IPFLTR_NUM_MEQ_32_EQNS_V01 2 +#define QMI_IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS_V01 2 +#define QMI_IPA_IPFLTR_NUM_MEQ_128_EQNS_V01 2 +#define QMI_IPA_MAX_FILTERS_V01 64 + +#define IPA_INT_MAX ((int)(~0U>>1)) +#define IPA_INT_MIN (-IPA_INT_MAX - 1) + +/* IPA definition as msm_qmi_interface.h */ + +enum ipa_qmi_result_type_v01 { + /* To force a 32 bit signed enum. Do not change or use*/ + IPA_QMI_RESULT_TYPE_MIN_ENUM_VAL_V01 = IPA_INT_MIN, + IPA_QMI_RESULT_SUCCESS_V01 = 0, + IPA_QMI_RESULT_FAILURE_V01 = 1, + IPA_QMI_RESULT_TYPE_MAX_ENUM_VAL_V01 = IPA_INT_MAX, +}; + +enum ipa_qmi_error_type_v01 { + /* To force a 32 bit signed enum. Do not change or use*/ + IPA_QMI_ERROR_TYPE_MIN_ENUM_VAL_V01 = IPA_INT_MIN, + IPA_QMI_ERR_NONE_V01 = 0x0000, + IPA_QMI_ERR_MALFORMED_MSG_V01 = 0x0001, + IPA_QMI_ERR_NO_MEMORY_V01 = 0x0002, + IPA_QMI_ERR_INTERNAL_V01 = 0x0003, + IPA_QMI_ERR_CLIENT_IDS_EXHAUSTED_V01 = 0x0005, + IPA_QMI_ERR_INVALID_ID_V01 = 0x0029, + IPA_QMI_ERR_ENCODING_V01 = 0x003A, + IPA_QMI_ERR_INCOMPATIBLE_STATE_V01 = 0x005A, + IPA_QMI_ERR_NOT_SUPPORTED_V01 = 0x005E, + IPA_QMI_ERROR_TYPE_MAX_ENUM_VAL_V01 = IPA_INT_MAX, +}; + +struct ipa_qmi_response_type_v01 { + enum ipa_qmi_result_type_v01 result; + enum ipa_qmi_error_type_v01 error; +}; + +enum ipa_platform_type_enum_v01 { + IPA_PLATFORM_TYPE_ENUM_MIN_ENUM_VAL_V01 = + -2147483647, /* To force a 32 bit signed enum. Do not change or use */ + QMI_IPA_PLATFORM_TYPE_INVALID_V01 = 0, + /* Invalid platform identifier */ + QMI_IPA_PLATFORM_TYPE_TN_V01 = 1, + /* Platform identifier - Data card device */ + QMI_IPA_PLATFORM_TYPE_LE_V01 = 2, + /* Platform identifier - Data router device */ + QMI_IPA_PLATFORM_TYPE_MSM_ANDROID_V01 = 3, + /* Platform identifier - MSM device with Android HLOS */ + QMI_IPA_PLATFORM_TYPE_MSM_WINDOWS_V01 = 4, + /* Platform identifier - MSM device with Windows HLOS */ + QMI_IPA_PLATFORM_TYPE_MSM_QNX_V01 = 5, + /* Platform identifier - MSM device with QNX HLOS */ + IPA_PLATFORM_TYPE_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /* To force a 32 bit signed enum. Do not change or use */ +}; + +struct ipa_hdr_tbl_info_type_v01 { + uint32_t modem_offset_start; + /* Offset from the start of IPA Shared memory from which + * modem driver may insert header table entries. + */ + uint32_t modem_offset_end; + /* Offset from the start of IPA shared mem beyond which modem + * driver shall not insert header table entries. The space + * available for the modem driver shall include the + * modem_offset_start and modem_offset_end. + */ +}; /* Type */ + +struct ipa_route_tbl_info_type_v01 { + uint32_t route_tbl_start_addr; + /* Identifies the start of the routing table. Denotes the offset + * from the start of the IPA Shared Mem + */ + + uint32_t num_indices; + /* Number of indices (starting from 0) that is being allocated to + * the modem. The number indicated here is also included in the + * allocation. The value of num_indices shall not exceed 31 + * (5 bits used to specify the routing table index), unless there + * is a change in the hardware. + */ +}; /* Type */ + +struct ipa_modem_mem_info_type_v01 { + + uint32_t block_start_addr; + /* Identifies the start of the memory block allocated for the + * modem. Denotes the offset from the start of the IPA Shared Mem + */ + + uint32_t size; + /* Size of the block allocated for the modem driver */ +}; /* Type */ + +/** Request Message; Requests the modem IPA driver to perform initializtion */ +struct ipa_init_modem_driver_req_msg_v01 { + + /* Optional */ + /* Platform info */ + uint8_t platform_type_valid; /**< Must be set to true if platform_type + is being passed */ + enum ipa_platform_type_enum_v01 platform_type; + /* Provides information about the platform (ex. TN/MN/LE/MSM,etc) */ + + /* Optional */ + /* Header table info */ + uint8_t hdr_tbl_info_valid; + /* Must be set to true if hdr_tbl_info is being passed */ + struct ipa_hdr_tbl_info_type_v01 hdr_tbl_info; + /* Provides information about the header table */ + + /* Optional */ + /* IPV4 Routing table info */ + uint8_t v4_route_tbl_info_valid; + /* Must be set to true if v4_route_tbl_info is being passed */ + struct ipa_route_tbl_info_type_v01 v4_route_tbl_info; + /* Provides information about the IPV4 routing table */ + + /* Optional */ + /* IPV6 Routing table info */ + uint8_t v6_route_tbl_info_valid; /**< Must be set to true if + v6_route_tbl_info is being passed */ + struct ipa_route_tbl_info_type_v01 v6_route_tbl_info; + /* Provides information about the IPV6 routing table */ + + /* Optional */ + /* IPV4 Filter table start address */ + uint8_t v4_filter_tbl_start_addr_valid; /**< Must be set to true + if v4_filter_tbl_start_addr is being passed */ + uint32_t v4_filter_tbl_start_addr; + /* Provides information about the starting address of IPV4 filter + * tableDenotes the offset from the start of the IPA Shared Mem + */ + + /* Optional */ + /* IPV6 Filter table start address */ + uint8_t v6_filter_tbl_start_addr_valid; + /* Must be set to true if v6_filter_tbl_start_addr is being passed */ + uint32_t v6_filter_tbl_start_addr; + /* Provides information about the starting address of IPV6 filter + * table Denotes the offset from the start of the IPA Shared Mem + */ + + /* Optional */ + /* Modem memory block */ + uint8_t modem_mem_info_valid; + /* Must be set to true if modem_mem_info is being passed */ + struct ipa_modem_mem_info_type_v01 modem_mem_info; + /* Provides information about the start address and the size of + * the memory block that is being allocated to the modem driver. + * Denotes the physical address + */ + + /* Optional */ + /* Destination end point for control commands from modem */ + uint8_t ctrl_comm_dest_end_pt_valid; /**< Must be set to true if + ctrl_comm_dest_end_pt is being passed */ + uint32_t ctrl_comm_dest_end_pt; + /* Provides information about the destination end point on the + * application processor to which the modem driver can send + * control commands. The value of this parameter cannot exceed + * 19 since IPA only supports 20 end points. + */ + + /* Optional */ + /* Modem Bootup Information */ + uint8_t is_ssr_bootup_valid; /**< Must be set to true if + is_ssr_bootup is being passed */ + uint8_t is_ssr_bootup; + /* Specifies whether the modem is booting up after a modem only + * sub-system restart or not. This will let the modem driver + * know that it doesn't have to reinitialize some of the HW + * blocks because IPA has not been reset since the previous + * initialization. + */ + +}; /* Message */ + +/* Response Message; Requests the modem IPA driver about initializtion */ +struct ipa_init_modem_driver_resp_msg_v01 { + /* Mandatory */ + /* Result Code */ + struct ipa_qmi_response_type_v01 resp; + /* Standard response type.*/ + + /* Optional */ + /* Destination end point for control commands from master driver */ + uint8_t ctrl_comm_dest_end_pt_valid; + /* Must be set to true if ctrl_comm_dest_ep is being passed */ + uint32_t ctrl_comm_dest_end_pt; + /* Provides information about the destination end point on the + * modem processor to which the master driver can send control + * commands. The value of this parameter cannot exceed 19 since + * IPA only supports 20 end points. This field is looked at only + * if the result in TLV RESULT_CODE is QMI_RESULT_SUCCESS + */ + + /* Optional */ + /* Default end point */ + uint8_t default_end_pt_valid; + /* Must be set to true if default_end_pt is being passed */ + uint32_t default_end_pt; + /* Provides information about the default end point. The master + * driver may or may not set the register in the hardware with + * this value. The value of this parameter cannot exceed 19 + * since IPA only supports 20 end points. This field is looked + * at only if the result in TLV RESULT_CODE is QMI_RESULT_SUCCESS + */ +}; /* Message */ + + +/* Request Message; This is the message that is exchanged between the + * control point and the service in order to register for indications. + */ +struct ipa_indication_reg_req_msg_v01 { + /* Optional */ + /* Master driver initialization completion */ + uint8_t master_driver_init_complete_valid; + /* Must be set to true if master_driver_init_complete is being passed */ + uint8_t master_driver_init_complete; + /* If set to TRUE, this field indicates that the client is + * interested in getting indications about the completion + * of the initialization sequence of the master driver. + * Setting this field in the request message makes sense + * only when the QMI_IPA_INDICATION_REGISTER_REQ is being + * originated from the modem driver + */ +}; /* Message */ + + +/* Response Message; This is the message that is exchanged between the + * control point and the service in order to register for indications. + */ +struct ipa_indication_reg_resp_msg_v01 { + /* Mandatory */ + /* Result Code */ + struct ipa_qmi_response_type_v01 resp; + /**< Standard response type.*/ +}; /* Message */ + + +/* Indication Message; Indication sent to the Modem IPA driver from + * master IPA driver about initialization being complete. + */ +struct ipa_master_driver_init_complt_ind_msg_v01 { + /* Mandatory */ + /* Master driver initialization completion status */ + struct ipa_qmi_response_type_v01 master_driver_init_status; + /* Indicates the status of initialization. If everything went + * as expected, this field is set to SUCCESS. ERROR is set + * otherwise. Extended error info may be used to convey + * additional information about the error + */ +}; /* Message */ + +struct ipa_ipfltr_range_eq_16_type_v01 { + uint8_t offset; + /* Specifies the offset from the IHL (Internet Header length) */ + + uint16_t range_low; + /* Specifies the lower bound of the range */ + + uint16_t range_high; + /* Specifies the upper bound of the range */ +}; /* Type */ + +struct ipa_ipfltr_mask_eq_32_type_v01 { + uint8_t offset; + /* Specifies the offset either from IHL or from the start of + * the IP packet. This depends on the equation that this structure + * is used in. + */ + + uint32_t mask; + /* Specifies the mask that has to be used in the comparison. + * The field is ANDed with the mask and compared against the value. + */ + + uint32_t value; + /* Specifies the 32 bit value that used in the comparison. */ +}; /* Type */ + +struct ipa_ipfltr_eq_16_type_v01 { + uint8_t offset; + /* Specifies the offset into the packet */ + + uint16_t value; + /* Specifies the 16 bit value that should be used in the comparison. */ +}; /* Type */ + +struct ipa_ipfltr_eq_32_type_v01 { + uint8_t offset; + /* Specifies the offset into the packet */ + + uint32_t value; + /* Specifies the 32 bit value that should be used in the comparison. */ +}; /* Type */ + +struct ipa_ipfltr_mask_eq_128_type_v01 { + uint8_t offset; + /* Specifies the offset into the packet */ + + uint8_t mask[16]; + /* Specifies the mask that has to be used in the comparison. + * The field is ANDed with the mask and compared against the value. + */ + + uint8_t value[16]; + /* Specifies the 128 bit value that should be used in the comparison. */ +}; /* Type */ + + +struct ipa_filter_rule_type_v01 { + uint16_t rule_eq_bitmap; + /* 16-bit Bitmask to indicate how many eqs are valid in this rule */ + + uint8_t tos_eq_present; + /* Specifies if a type of service check rule is present */ + + uint8_t tos_eq; + /* The value to check against the type of service (ipv4) field */ + + uint8_t protocol_eq_present; + /* Specifies if a protocol check rule is present */ + + uint8_t protocol_eq; + /* The value to check against the protocol field */ + + uint8_t num_ihl_offset_range_16; + /* The number of 16 bit range check rules at the location + * determined by IP header length plus a given offset offset + * in this rule. See the definition of the ipa_filter_range_eq_16 + * for better understanding. The value of this field cannot exceed + * IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS which is set as 2 + */ + + struct ipa_ipfltr_range_eq_16_type_v01 + ihl_offset_range_16[QMI_IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS_V01]; + /* Array of the registered IP header length offset 16 bit range + * check rules. + */ + + uint8_t num_offset_meq_32; + /* The number of 32 bit masked comparison rules present + * in this rule + */ + + struct ipa_ipfltr_mask_eq_32_type_v01 + offset_meq_32[QMI_IPA_IPFLTR_NUM_MEQ_32_EQNS_V01]; + /* An array of all the possible 32bit masked comparison rules + * in this rule + */ + + uint8_t tc_eq_present; + /* Specifies if the traffic class rule is present in this rule */ + + uint8_t tc_eq; + /* The value against which the IPV4 traffic class field has to + be checked */ + + uint8_t flow_eq_present; + /* Specifies if the "flow equals" rule is present in this rule */ + + uint32_t flow_eq; + /* The value against which the IPV6 flow field has to be checked */ + + uint8_t ihl_offset_eq_16_present; + /* Specifies if there is a 16 bit comparison required at the + * location in the packet determined by "Intenet Header length + * + specified offset" + */ + + struct ipa_ipfltr_eq_16_type_v01 ihl_offset_eq_16; + /* The 16 bit comparison equation */ + + uint8_t ihl_offset_eq_32_present; + /* Specifies if there is a 32 bit comparison required at the + * location in the packet determined by "Intenet Header length + * + specified offset" + */ + + struct ipa_ipfltr_eq_32_type_v01 ihl_offset_eq_32; + /* The 32 bit comparison equation */ + + uint8_t num_ihl_offset_meq_32; + /* The number of 32 bit masked comparison equations in this + * rule. The location of the packet to be compared is + * determined by the IP Header length + the give offset + */ + + struct ipa_ipfltr_mask_eq_32_type_v01 + ihl_offset_meq_32[QMI_IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS_V01]; + /* Array of 32 bit masked comparison equations. + */ + + uint8_t num_offset_meq_128; + /* The number of 128 bit comparison equations in this rule */ + + struct ipa_ipfltr_mask_eq_128_type_v01 + offset_meq_128[QMI_IPA_IPFLTR_NUM_MEQ_128_EQNS_V01]; + /* Array of 128 bit comparison equations. The location in the + * packet is determined by the specified offset + */ + + uint8_t metadata_meq32_present; + /* Boolean indicating if the 32 bit masked comparison equation + * is present or not. Comparison is done against the metadata + * in IPA. Metadata can either be extracted from the packet + * header or from the "metadata" register. + */ + + struct ipa_ipfltr_mask_eq_32_type_v01 + metadata_meq32; + /* The metadata 32 bit masked comparison equation */ + + uint8_t ipv4_frag_eq_present; + /* Specifies if the IPv4 Fragment equation is present in this rule */ +}; /* Type */ + + +enum ipa_ip_type_enum_v01 { + IPA_IP_TYPE_ENUM_MIN_ENUM_VAL_V01 = -2147483647, + /* To force a 32 bit signed enum. Do not change or use*/ + QMI_IPA_IP_TYPE_INVALID_V01 = 0, + /* Invalid IP type identifier */ + QMI_IPA_IP_TYPE_V4_V01 = 1, + /* IP V4 type */ + QMI_IPA_IP_TYPE_V6_V01 = 2, + /* IP V6 type */ + QMI_IPA_IP_TYPE_V4V6_V01 = 3, + /* Applies to both IP types */ + IPA_IP_TYPE_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /* To force a 32 bit signed enum. Do not change or use*/ +}; + + +enum ipa_filter_action_enum_v01 { + IPA_FILTER_ACTION_ENUM_MIN_ENUM_VAL_V01 = -2147483647, + /* To force a 32 bit signed enum. Do not change or use */ + QMI_IPA_FILTER_ACTION_INVALID_V01 = 0, + /* Invalid action on filter hit */ + QMI_IPA_FILTER_ACTION_SRC_NAT_V01 = 1, + /* Pass packet to NAT block for Source NAT */ + QMI_IPA_FILTER_ACTION_DST_NAT_V01 = 2, + /* Pass packet to NAT block for Destination NAT */ + QMI_IPA_FILTER_ACTION_ROUTING_V01 = 3, + /* Pass packet to Routing block */ + QMI_IPA_FILTER_ACTION_EXCEPTION_V01 = 4, + /* Treat packet as exception and send to exception pipe */ + IPA_FILTER_ACTION_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /* To force a 32 bit signed enum. Do not change or use*/ +}; + +struct ipa_filter_spec_type_v01 { + uint32_t filter_spec_identifier; + /* This field is used to identify a filter spec in the list + * of filter specs being sent from the client. This field + * is applicable only in the filter install request and response. + */ + + enum ipa_ip_type_enum_v01 ip_type; + /* This field identifies the IP type for which this rule is + * applicable. The driver needs to identify the filter table + * (V6 or V4) and this field is essential for that + */ + + struct ipa_filter_rule_type_v01 filter_rule; + /* This field specifies the rules in the filter spec. These rules + * are the ones that are matched against fields in the packet. + */ + + enum ipa_filter_action_enum_v01 filter_action; + /* This field specifies the action to be taken when a filter match + * occurs. The remote side should install this information into the + * hardware along with the filter equations. + */ + + uint8_t is_routing_table_index_valid; + /* Specifies whether the routing table index is present or not. + * If the action is "QMI_IPA_FILTER_ACTION_EXCEPTION", this + * parameter need not be provided. + */ + + uint32_t route_table_index; + /* This is the index in the routing table that should be used + * to route the packets if the filter rule is hit + */ + + uint8_t is_mux_id_valid; + /* Specifies whether the mux_id is valid */ + + uint32_t mux_id; + /* This field identifies the QMAP MUX ID. As a part of QMAP + * protocol, several data calls may be multiplexed over the + * same physical transport channel. This identifier is used to + * identify one such data call. The maximum value for this + * identifier is 255. + */ +}; /* Type */ + + +/* Request Message; This is the message that is exchanged between the + * control point and the service in order to request the installation + * of filtering rules in the hardware block by the remote side. + */ +struct ipa_install_fltr_rule_req_msg_v01 { + /* Optional */ + /* IP type that this rule applies to + Filter specification to be installed in the hardware */ + uint8_t filter_spec_list_valid; + /* Must be set to true if filter_spec_list is being passed */ + uint32_t filter_spec_list_len; + /* Must be set to # of elements in filter_spec_list */ + struct ipa_filter_spec_type_v01 + filter_spec_list[QMI_IPA_MAX_FILTERS_V01]; + /* This structure defines the list of filters that have + * to be installed in the hardware. The driver installing + * these rules shall do so in the same order as specified + * in this list. + */ + + /* Optional */ + /* Pipe index to intall rule */ + uint8_t source_pipe_index_valid; + /* Must be set to true if source_pipe_index is being passed */ + uint32_t source_pipe_index; + /* This is the source pipe on which the filter rule is to be + * installed. The requestor may always not know the pipe + * indices. If not specified, the receiver shall install + * this rule on all the pipes that it controls through + * which data may be fed into IPA. + */ +}; /* Message */ + +struct ipa_filter_rule_identifier_to_handle_map_v01 { + uint32_t filter_spec_identifier; + /* This field is used to identify a filter spec in the list of + * filter specs being sent from the client. This field is + * applicable only in the filter install request and response. + */ + uint32_t filter_handle; + /* This field is used to identify a rule in any subsequent message. + * This is a value that is provided by the server to the control + * point + */ +}; /* Type */ + +/* Response Message; This is the message that is exchanged between the + * control point and the service in order to request the + * installation of filtering rules in the hardware block by + * the remote side. + */ +struct ipa_install_fltr_rule_resp_msg_v01 { + /* Mandatory */ + /* Result Code */ + struct ipa_qmi_response_type_v01 resp; + /* Standard response type. + * Standard response type. Contains the following data members: + * - qmi_result_type -- QMI_RESULT_SUCCESS or QMI_RESULT_FAILURE + * - qmi_error_type -- Error code. Possible error code values are + * described in the error codes section of each message definition. + */ + + /* Optional */ + /* Filter Handle list */ + uint8_t filter_handle_list_valid; + /**< Must be set to true if filter_handle_list is being passed */ + uint32_t filter_handle_list_len; + /* Must be set to # of elements in filter_handle_list */ + struct ipa_filter_rule_identifier_to_handle_map_v01 + filter_handle_list[QMI_IPA_MAX_FILTERS_V01]; + /* This is a list of handles returned to the control point. + * Each handle is mapped to the rule identifier that was + * specified in the request message. Any further reference + * to the rule is done using the filter handle + */ +}; /* Message */ + +struct ipa_filter_handle_to_index_map_v01 { + uint32_t filter_handle; + /* This is a handle that was given to the remote client that + * requested the rule addition. + */ + uint32_t filter_index; + /* This index denotes the location in a filter table, where the + * filter rule has been installed. The maximum value of this + * field is 64. + */ +}; /* Type */ + +/* Request Message; This is the message that is exchanged between the + * control point and the service in order to notify the remote driver + * about the installation of the filter rule supplied earlier by + * the remote driver + */ +struct ipa_fltr_installed_notif_req_msg_v01 { + /* Mandatory */ + /* Pipe index */ + uint32_t source_pipe_index; + /* This is the source pipe on which the filter rule has been + * installed or was attempted to be installed + */ + + /* Mandatory */ + /* Installation Status */ + enum ipa_qmi_result_type_v01 install_status; + /* This is the status of installation. If this indicates + * SUCCESS, other optional fields carry additional + * information + */ + + /* Mandatory */ + /* List of filter indices */ + uint32_t filter_index_list_len; + /* Must be set to # of elements in filter_index_list */ + struct ipa_filter_handle_to_index_map_v01 + filter_index_list[QMI_IPA_MAX_FILTERS_V01]; + /* This field provides the list of filter indices and the + * corresponding filter handle. If the installation_status + * indicates failure, then the filter indices shall be set + * to a reserve index (255) + */ + + /* Optional */ + /* Embedded pipe index */ + uint8_t embedded_pipe_index_valid; + /* Must be set to true if embedded_pipe_index is being passed */ + uint32_t embedded_pipe_index; + /* This index denotes the embedded pipe number on which a call to + * the same PDN has been made. If this field is set, it denotes + * that this is a use case where PDN sharing is happening. The + * embedded pipe is used to send data from the embedded client + * in the device + */ + + /* Optional */ + /* Retain Header Configuration */ + uint8_t retain_header_valid; + /* Must be set to true if retain_header is being passed */ + uint8_t retain_header; + /* This field indicates if the driver installing the rule has + * turned on the "retain header" bit. If this is true, the + * header that is removed by IPA is reinserted after the + * packet processing is completed. + */ + + /* Optional */ + /* Embedded call Mux Id */ + uint8_t embedded_call_mux_id_valid; + /**< Must be set to true if embedded_call_mux_id is being passed */ + uint32_t embedded_call_mux_id; + /* This identifies one of the many calls that have been originated + * on the embedded pipe. This is how we identify the PDN gateway to + * which traffic from the source pipe has to flow. + */ + +}; /* Message */ + +/* Response Message; This is the message that is exchanged between the control + * point and the service in order to notify the remote driver about the + * installation of the filter rule supplied earlier by the remote driver + */ +struct ipa_fltr_installed_notif_resp_msg_v01 { + /* Mandatory */ + /* Result Code */ + struct ipa_qmi_response_type_v01 resp; + /* Standard response type.*/ +}; /* Message */ + +enum ipa_peripheral_speed_enum_v01 { + IPA_PERIPHERAL_SPEED_ENUM_MIN_ENUM_VAL_V01 = -2147483647, + /* To force a 32 bit signed enum. Do not change or use */ + QMI_IPA_PER_USB_FS_V01 = 1, + /* Full-speed USB connection */ + QMI_IPA_PER_USB_HS_V01 = 2, + /* High-speed USB connection */ + QMI_IPA_PER_USB_SS_V01 = 3, + /* Super-speed USB connection */ + IPA_PERIPHERAL_SPEED_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /* To force a 32 bit signed enum. Do not change or use*/ +}; + +enum ipa_pipe_mode_enum_v01 { + IPA_PIPE_MODE_ENUM_MIN_ENUM_VAL_V01 = -2147483647, + /* To force a 32 bit signed enum. Do not change or use */ + QMI_IPA_PIPE_MODE_HW_V01 = 1, + /* Pipe is connected with a hardware block */ + QMI_IPA_PIPE_MODE_SW_V01 = 2, + /* Pipe is controlled by the software */ + IPA_PIPE_MODE_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /* To force a 32 bit signed enum. Do not change or use */ +}; + +enum ipa_peripheral_type_enum_v01 { + IPA_PERIPHERAL_TYPE_ENUM_MIN_ENUM_VAL_V01 = -2147483647, + /* To force a 32 bit signed enum. Do not change or use */ + QMI_IPA_PERIPHERAL_USB_V01 = 1, + /* Specifies a USB peripheral */ + QMI_IPA_PERIPHERAL_HSIC_V01 = 2, + /* Specifies an HSIC peripheral */ + QMI_IPA_PERIPHERAL_PCIE_V01 = 3, + /* Specifies a PCIe peripheral */ + IPA_PERIPHERAL_TYPE_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /* To force a 32 bit signed enum. Do not change or use */ +}; + +struct ipa_config_req_msg_v01 { + /* Optional */ + /* Peripheral Type */ + uint8_t peripheral_type_valid; + /* Must be set to true if peripheral_type is being passed */ + enum ipa_peripheral_type_enum_v01 peripheral_type; + /* Informs the remote driver about the perhipheral for + * which this configuration information is relevant. Values: + * - QMI_IPA_PERIPHERAL_USB (1) -- Specifies a USB peripheral + * - QMI_IPA_PERIPHERAL_HSIC(2) -- Specifies an HSIC peripheral + * - QMI_IPA_PERIPHERAL_PCIE(3) -- Specifies a PCIe peripheral + */ + + /* Optional */ + /* HW Deaggregation Support */ + uint8_t hw_deaggr_supported_valid; + /* Must be set to true if hw_deaggr_supported is being passed */ + uint8_t hw_deaggr_supported; + /* Informs the remote driver whether the local IPA driver + * allows de-aggregation to be performed in the hardware + */ + + /* Optional */ + /* Maximum Aggregation Frame Size */ + uint8_t max_aggr_frame_size_valid; + /* Must be set to true if max_aggr_frame_size is being passed */ + uint32_t max_aggr_frame_size; + /* Specifies the maximum size of the aggregated frame that + * the remote driver can expect from this execution environment + * - Valid range: 128 bytes to 32768 bytes + */ + + /* Optional */ + /* IPA Ingress Pipe Mode */ + uint8_t ipa_ingress_pipe_mode_valid; + /* Must be set to true if ipa_ingress_pipe_mode is being passed */ + + enum ipa_pipe_mode_enum_v01 ipa_ingress_pipe_mode; + /* Indicates to the remote driver if the ingress pipe into the + * IPA is in direct connection with another hardware block or + * if the producer of data to this ingress pipe is a software + * module. Values: + * -QMI_IPA_PIPE_MODE_HW(1) --Pipe is connected with hardware block + * -QMI_IPA_PIPE_MODE_SW(2) --Pipe is controlled by the software + */ + + /* Optional */ + /* Peripheral Speed Info */ + uint8_t peripheral_speed_info_valid; + /* Must be set to true if peripheral_speed_info is being passed */ + + enum ipa_peripheral_speed_enum_v01 peripheral_speed_info; + /* Indicates the speed that the peripheral connected to the IPA supports + * Values: + * - QMI_IPA_PER_USB_FS (1) -- Full-speed USB connection + * - QMI_IPA_PER_USB_HS (2) -- High-speed USB connection + * - QMI_IPA_PER_USB_SS (3) -- Super-speed USB connection + */ + + /* Optional */ + /* Downlink Accumulation Time limit */ + uint8_t dl_accumulation_time_limit_valid; + /* Must be set to true if dl_accumulation_time_limit is being passed */ + uint32_t dl_accumulation_time_limit; + /* Informs the remote driver about the time for which data + * is accumulated in the downlink direction before it is pushed into the + * IPA (downlink is with respect to the WWAN air interface) + * - Units: milliseconds + * - Maximum value: 255 + */ + + /* Optional */ + /* Downlink Accumulation Packet limit */ + uint8_t dl_accumulation_pkt_limit_valid; + /* Must be set to true if dl_accumulation_pkt_limit is being passed */ + uint32_t dl_accumulation_pkt_limit; + /* Informs the remote driver about the number of packets + * that are to be accumulated in the downlink direction before it is + * pushed into the IPA - Maximum value: 1023 + */ + + /* Optional */ + /* Downlink Accumulation Byte Limit */ + uint8_t dl_accumulation_byte_limit_valid; + /* Must be set to true if dl_accumulation_byte_limit is being passed */ + uint32_t dl_accumulation_byte_limit; + /* Inform the remote driver about the number of bytes + * that are to be accumulated in the downlink direction before it + * is pushed into the IPA - Maximum value: TBD + */ + + /* Optional */ + /* Uplink Accumulation Time Limit */ + uint8_t ul_accumulation_time_limit_valid; + /* Must be set to true if ul_accumulation_time_limit is being passed */ + uint32_t ul_accumulation_time_limit; + /* Inform thes remote driver about the time for which data + * is to be accumulated in the uplink direction before it is pushed into + * the IPA (downlink is with respect to the WWAN air interface). + * - Units: milliseconds + * - Maximum value: 255 + */ + + /* Optional */ + /* HW Control Flags */ + uint8_t hw_control_flags_valid; + /* Must be set to true if hw_control_flags is being passed */ + uint32_t hw_control_flags; + /* Informs the remote driver about the hardware control flags: + * - Bit 0: IPA_HW_FLAG_HALT_SYSTEM_ON_NON_TERMINAL_FAILURE -- + * Indicates to the hardware that it must not continue with + * any subsequent operation even if the failure is not terminal + * - Bit 1: IPA_HW_FLAG_NO_REPORT_MHI_CHANNEL_ERORR -- + * Indicates to the hardware that it is not required to report + * channel errors to the host. + * - Bit 2: IPA_HW_FLAG_NO_REPORT_MHI_CHANNEL_WAKE_UP -- + * Indicates to the hardware that it is not required to generate + * wake-up events to the host. + * - Bit 4: IPA_HW_FLAG_WORK_OVER_DDR -- + * Indicates to the hardware that it is accessing addresses in + * the DDR and not over PCIe + * - Bit 5: IPA_HW_FLAG_INTERRUPT_MODE_CTRL_FLAG -- + * Indicates whether the device must + * raise an event to let the host know that it is going into an + * interrupt mode (no longer polling for data/buffer availability) + */ + + /* Optional */ + /* Uplink MSI Event Threshold */ + uint8_t ul_msi_event_threshold_valid; + /* Must be set to true if ul_msi_event_threshold is being passed */ + uint32_t ul_msi_event_threshold; + /* Informs the remote driver about the threshold that will + * cause an interrupt (MSI) to be fired to the host. This ensures + * that the remote driver does not accumulate an excesive number of + * events before firing an interrupt. + * This threshold is applicable for data moved in the UL direction. + * - Maximum value: 65535 + */ + + /* Optional */ + /* Downlink MSI Event Threshold */ + uint8_t dl_msi_event_threshold_valid; + /* Must be set to true if dl_msi_event_threshold is being passed */ + uint32_t dl_msi_event_threshold; + /* Informs the remote driver about the threshold that will + * cause an interrupt (MSI) to be fired to the host. This ensures + * that the remote driver does not accumulate an excesive number of + * events before firing an interrupt + * This threshold is applicable for data that is moved in the + * DL direction - Maximum value: 65535 + */ +}; /* Message */ + +/* Response Message; Notifies the remote driver of the configuration + * information + */ +struct ipa_config_resp_msg_v01 { + /* Mandatory */ + /* Result Code */ + struct ipa_qmi_response_type_v01 resp; + /**< Standard response type.*/ +}; /* Message */ + +/*Service Message Definition*/ +#define QMI_IPA_INDICATION_REGISTER_REQ_V01 0x0020 +#define QMI_IPA_INDICATION_REGISTER_RESP_V01 0x0020 +#define QMI_IPA_INIT_MODEM_DRIVER_REQ_V01 0x0021 +#define QMI_IPA_INIT_MODEM_DRIVER_RESP_V01 0x0021 +#define QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_V01 0x0022 +#define QMI_IPA_INSTALL_FILTER_RULE_REQ_V01 0x0023 +#define QMI_IPA_INSTALL_FILTER_RULE_RESP_V01 0x0023 +#define QMI_IPA_FILTER_INSTALLED_NOTIF_REQ_V01 0x0024 +#define QMI_IPA_FILTER_INSTALLED_NOTIF_RESP_V01 0x0024 +#define QMI_IPA_CONFIG_REQ_V01 0x0027 +#define QMI_IPA_CONFIG_RESP_V01 0x0027 + +/* add for max length*/ +#define QMI_IPA_INIT_MODEM_DRIVER_REQ_MAX_MSG_LEN_V01 76 +#define QMI_IPA_INIT_MODEM_DRIVER_RESP_MAX_MSG_LEN_V01 21 +#define QMI_IPA_INDICATION_REGISTER_REQ_MAX_MSG_LEN_V01 4 +#define QMI_IPA_INDICATION_REGISTER_RESP_MAX_MSG_LEN_V01 7 +#define QMI_IPA_INSTALL_FILTER_RULE_REQ_MAX_MSG_LEN_V01 11019 +#define QMI_IPA_INSTALL_FILTER_RULE_RESP_MAX_MSG_LEN_V01 523 +#define QMI_IPA_FILTER_INSTALLED_NOTIF_REQ_MAX_MSG_LEN_V01 546 +#define QMI_IPA_FILTER_INSTALLED_NOTIF_RESP_MAX_MSG_LEN_V01 7 +#define QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_MAX_MSG_LEN_V01 7 + +#define QMI_IPA_CONFIG_REQ_MAX_MSG_LEN_V01 81 +#define QMI_IPA_CONFIG_RESP_MAX_MSG_LEN_V01 7 +/* Service Object Accessor */ + +#endif/* IPA_QMI_SERVICE_V01_H */ diff --git a/kernel_headers/linux/ipc.h b/kernel_headers/linux/ipc.h new file mode 100644 index 0000000..98a53a1 --- /dev/null +++ b/kernel_headers/linux/ipc.h @@ -0,0 +1,81 @@ +#ifndef _LINUX_IPC_H +#define _LINUX_IPC_H + +#include + +#define IPC_PRIVATE ((__kernel_key_t) 0) + +/* Obsolete, used only for backwards compatibility and libc5 compiles */ +struct ipc_perm +{ + __kernel_key_t key; + __kernel_uid_t uid; + __kernel_gid_t gid; + __kernel_uid_t cuid; + __kernel_gid_t cgid; + __kernel_mode_t mode; + unsigned short seq; +}; + +/* Include the definition of ipc64_perm */ +#include + +/* resource get request flags */ +#define IPC_CREAT 00001000 /* create if key is nonexistent */ +#define IPC_EXCL 00002000 /* fail if key exists */ +#define IPC_NOWAIT 00004000 /* return error on wait */ + +/* these fields are used by the DIPC package so the kernel as standard + should avoid using them if possible */ + +#define IPC_DIPC 00010000 /* make it distributed */ +#define IPC_OWN 00020000 /* this machine is the DIPC owner */ + +/* + * Control commands used with semctl, msgctl and shmctl + * see also specific commands in sem.h, msg.h and shm.h + */ +#define IPC_RMID 0 /* remove resource */ +#define IPC_SET 1 /* set ipc_perm options */ +#define IPC_STAT 2 /* get ipc_perm options */ +#define IPC_INFO 3 /* see ipcs */ + +/* + * Version flags for semctl, msgctl, and shmctl commands + * These are passed as bitflags or-ed with the actual command + */ +#define IPC_OLD 0 /* Old version (no 32-bit UID support on many + architectures) */ +#define IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger + message sizes, etc. */ + +/* + * These are used to wrap system calls. + * + * See architecture code for ugly details.. + */ +struct ipc_kludge { + struct msgbuf *msgp; + long msgtyp; +}; + +#define SEMOP 1 +#define SEMGET 2 +#define SEMCTL 3 +#define SEMTIMEDOP 4 +#define MSGSND 11 +#define MSGRCV 12 +#define MSGGET 13 +#define MSGCTL 14 +#define SHMAT 21 +#define SHMDT 22 +#define SHMGET 23 +#define SHMCTL 24 + +/* Used by the DIPC package, try and avoid reusing it */ +#define DIPC 25 + +#define IPCCALL(version,op) ((version)<<16 | (op)) + + +#endif /* _LINUX_IPC_H */ diff --git a/kernel_headers/linux/ipmi.h b/kernel_headers/linux/ipmi.h new file mode 100644 index 0000000..9077549 --- /dev/null +++ b/kernel_headers/linux/ipmi.h @@ -0,0 +1,448 @@ +/* + * ipmi.h + * + * MontaVista IPMI interface + * + * Author: MontaVista Software, Inc. + * Corey Minyard + * source@mvista.com + * + * Copyright 2002 MontaVista Software Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __LINUX_IPMI_H +#define __LINUX_IPMI_H + +#include + + +/* + * This file describes an interface to an IPMI driver. You have to + * have a fairly good understanding of IPMI to use this, so go read + * the specs first before actually trying to do anything. + * + * With that said, this driver provides a multi-user interface to the + * IPMI driver, and it allows multiple IPMI physical interfaces below + * the driver. The physical interfaces bind as a lower layer on the + * driver. They appear as interfaces to the application using this + * interface. + * + * Multi-user means that multiple applications may use the driver, + * send commands, receive responses, etc. The driver keeps track of + * commands the user sends and tracks the responses. The responses + * will go back to the application that send the command. If the + * response doesn't come back in time, the driver will return a + * timeout error response to the application. Asynchronous events + * from the BMC event queue will go to all users bound to the driver. + * The incoming event queue in the BMC will automatically be flushed + * if it becomes full and it is queried once a second to see if + * anything is in it. Incoming commands to the driver will get + * delivered as commands. + */ + +/* + * This is an overlay for all the address types, so it's easy to + * determine the actual address type. This is kind of like addresses + * work for sockets. + */ +#define IPMI_MAX_ADDR_SIZE 32 +struct ipmi_addr { + /* Try to take these from the "Channel Medium Type" table + in section 6.5 of the IPMI 1.5 manual. */ + int addr_type; + short channel; + char data[IPMI_MAX_ADDR_SIZE]; +}; + +/* + * When the address is not used, the type will be set to this value. + * The channel is the BMC's channel number for the channel (usually + * 0), or IPMC_BMC_CHANNEL if communicating directly with the BMC. + */ +#define IPMI_SYSTEM_INTERFACE_ADDR_TYPE 0x0c +struct ipmi_system_interface_addr { + int addr_type; + short channel; + unsigned char lun; +}; + +/* An IPMB Address. */ +#define IPMI_IPMB_ADDR_TYPE 0x01 +/* Used for broadcast get device id as described in section 17.9 of the + IPMI 1.5 manual. */ +#define IPMI_IPMB_BROADCAST_ADDR_TYPE 0x41 +struct ipmi_ipmb_addr { + int addr_type; + short channel; + unsigned char slave_addr; + unsigned char lun; +}; + +/* + * A LAN Address. This is an address to/from a LAN interface bridged + * by the BMC, not an address actually out on the LAN. + * + * A conscious decision was made here to deviate slightly from the IPMI + * spec. We do not use rqSWID and rsSWID like it shows in the + * message. Instead, we use remote_SWID and local_SWID. This means + * that any message (a request or response) from another device will + * always have exactly the same address. If you didn't do this, + * requests and responses from the same device would have different + * addresses, and that's not too cool. + * + * In this address, the remote_SWID is always the SWID the remote + * message came from, or the SWID we are sending the message to. + * local_SWID is always our SWID. Note that having our SWID in the + * message is a little weird, but this is required. + */ +#define IPMI_LAN_ADDR_TYPE 0x04 +struct ipmi_lan_addr { + int addr_type; + short channel; + unsigned char privilege; + unsigned char session_handle; + unsigned char remote_SWID; + unsigned char local_SWID; + unsigned char lun; +}; + + +/* + * Channel for talking directly with the BMC. When using this + * channel, This is for the system interface address type only. FIXME + * - is this right, or should we use -1? + */ +#define IPMI_BMC_CHANNEL 0xf +#define IPMI_NUM_CHANNELS 0x10 + +/* + * Used to signify an "all channel" bitmask. This is more than the + * actual number of channels because this is used in userland and + * will cover us if the number of channels is extended. + */ +#define IPMI_CHAN_ALL (~0) + + +/* + * A raw IPMI message without any addressing. This covers both + * commands and responses. The completion code is always the first + * byte of data in the response (as the spec shows the messages laid + * out). + */ +struct ipmi_msg { + unsigned char netfn; + unsigned char cmd; + unsigned short data_len; + unsigned char *data; +}; + +struct kernel_ipmi_msg { + unsigned char netfn; + unsigned char cmd; + unsigned short data_len; + unsigned char *data; +}; + +/* + * Various defines that are useful for IPMI applications. + */ +#define IPMI_INVALID_CMD_COMPLETION_CODE 0xC1 +#define IPMI_TIMEOUT_COMPLETION_CODE 0xC3 +#define IPMI_UNKNOWN_ERR_COMPLETION_CODE 0xff + + +/* + * Receive types for messages coming from the receive interface. This + * is used for the receive in-kernel interface and in the receive + * IOCTL. + * + * The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but + * it allows you to get the message results when you send a response + * message. + */ +#define IPMI_RESPONSE_RECV_TYPE 1 /* A response to a command */ +#define IPMI_ASYNC_EVENT_RECV_TYPE 2 /* Something from the event queue */ +#define IPMI_CMD_RECV_TYPE 3 /* A command from somewhere else */ +#define IPMI_RESPONSE_RESPONSE_TYPE 4 /* The response for + a sent response, giving any + error status for sending the + response. When you send a + response message, this will + be returned. */ +#define IPMI_OEM_RECV_TYPE 5 /* The response for OEM Channels */ + +/* Note that async events and received commands do not have a completion + code as the first byte of the incoming data, unlike a response. */ + + +/* + * Modes for ipmi_set_maint_mode() and the userland IOCTL. The AUTO + * setting is the default and means it will be set on certain + * commands. Hard setting it on and off will override automatic + * operation. + */ +#define IPMI_MAINTENANCE_MODE_AUTO 0 +#define IPMI_MAINTENANCE_MODE_OFF 1 +#define IPMI_MAINTENANCE_MODE_ON 2 + + + +/* + * The userland interface + */ + +/* + * The userland interface for the IPMI driver is a standard character + * device, with each instance of an interface registered as a minor + * number under the major character device. + * + * The read and write calls do not work, to get messages in and out + * requires ioctl calls because of the complexity of the data. select + * and poll do work, so you can wait for input using the file + * descriptor, you just can use read to get it. + * + * In general, you send a command down to the interface and receive + * responses back. You can use the msgid value to correlate commands + * and responses, the driver will take care of figuring out which + * incoming messages are for which command and find the proper msgid + * value to report. You will only receive reponses for commands you + * send. Asynchronous events, however, go to all open users, so you + * must be ready to handle these (or ignore them if you don't care). + * + * The address type depends upon the channel type. When talking + * directly to the BMC (IPMC_BMC_CHANNEL), the address is ignored + * (IPMI_UNUSED_ADDR_TYPE). When talking to an IPMB channel, you must + * supply a valid IPMB address with the addr_type set properly. + * + * When talking to normal channels, the driver takes care of the + * details of formatting and sending messages on that channel. You do + * not, for instance, have to format a send command, you just send + * whatever command you want to the channel, the driver will create + * the send command, automatically issue receive command and get even + * commands, and pass those up to the proper user. + */ + + +/* The magic IOCTL value for this interface. */ +#define IPMI_IOC_MAGIC 'i' + + +/* Messages sent to the interface are this format. */ +struct ipmi_req { + unsigned char *addr; /* Address to send the message to. */ + unsigned int addr_len; + + long msgid; /* The sequence number for the message. This + exact value will be reported back in the + response to this request if it is a command. + If it is a response, this will be used as + the sequence value for the response. */ + + struct ipmi_msg msg; +}; +/* + * Send a message to the interfaces. error values are: + * - EFAULT - an address supplied was invalid. + * - EINVAL - The address supplied was not valid, or the command + * was not allowed. + * - EMSGSIZE - The message to was too large. + * - ENOMEM - Buffers could not be allocated for the command. + */ +#define IPMICTL_SEND_COMMAND _IOR(IPMI_IOC_MAGIC, 13, \ + struct ipmi_req) + +/* Messages sent to the interface with timing parameters are this + format. */ +struct ipmi_req_settime { + struct ipmi_req req; + + /* See ipmi_request_settime() above for details on these + values. */ + int retries; + unsigned int retry_time_ms; +}; +/* + * Send a message to the interfaces with timing parameters. error values + * are: + * - EFAULT - an address supplied was invalid. + * - EINVAL - The address supplied was not valid, or the command + * was not allowed. + * - EMSGSIZE - The message to was too large. + * - ENOMEM - Buffers could not be allocated for the command. + */ +#define IPMICTL_SEND_COMMAND_SETTIME _IOR(IPMI_IOC_MAGIC, 21, \ + struct ipmi_req_settime) + +/* Messages received from the interface are this format. */ +struct ipmi_recv { + int recv_type; /* Is this a command, response or an + asyncronous event. */ + + unsigned char *addr; /* Address the message was from is put + here. The caller must supply the + memory. */ + unsigned int addr_len; /* The size of the address buffer. + The caller supplies the full buffer + length, this value is updated to + the actual message length when the + message is received. */ + + long msgid; /* The sequence number specified in the request + if this is a response. If this is a command, + this will be the sequence number from the + command. */ + + struct ipmi_msg msg; /* The data field must point to a buffer. + The data_size field must be set to the + size of the message buffer. The + caller supplies the full buffer + length, this value is updated to the + actual message length when the message + is received. */ +}; + +/* + * Receive a message. error values: + * - EAGAIN - no messages in the queue. + * - EFAULT - an address supplied was invalid. + * - EINVAL - The address supplied was not valid. + * - EMSGSIZE - The message to was too large to fit into the message buffer, + * the message will be left in the buffer. */ +#define IPMICTL_RECEIVE_MSG _IOWR(IPMI_IOC_MAGIC, 12, \ + struct ipmi_recv) + +/* + * Like RECEIVE_MSG, but if the message won't fit in the buffer, it + * will truncate the contents instead of leaving the data in the + * buffer. + */ +#define IPMICTL_RECEIVE_MSG_TRUNC _IOWR(IPMI_IOC_MAGIC, 11, \ + struct ipmi_recv) + +/* Register to get commands from other entities on this interface. */ +struct ipmi_cmdspec { + unsigned char netfn; + unsigned char cmd; +}; + +/* + * Register to receive a specific command. error values: + * - EFAULT - an address supplied was invalid. + * - EBUSY - The netfn/cmd supplied was already in use. + * - ENOMEM - could not allocate memory for the entry. + */ +#define IPMICTL_REGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 14, \ + struct ipmi_cmdspec) +/* + * Unregister a regsitered command. error values: + * - EFAULT - an address supplied was invalid. + * - ENOENT - The netfn/cmd was not found registered for this user. + */ +#define IPMICTL_UNREGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 15, \ + struct ipmi_cmdspec) + +/* + * Register to get commands from other entities on specific channels. + * This way, you can only listen on specific channels, or have messages + * from some channels go to one place and other channels to someplace + * else. The chans field is a bitmask, (1 << channel) for each channel. + * It may be IPMI_CHAN_ALL for all channels. + */ +struct ipmi_cmdspec_chans { + unsigned int netfn; + unsigned int cmd; + unsigned int chans; +}; + +/* + * Register to receive a specific command on specific channels. error values: + * - EFAULT - an address supplied was invalid. + * - EBUSY - One of the netfn/cmd/chans supplied was already in use. + * - ENOMEM - could not allocate memory for the entry. + */ +#define IPMICTL_REGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 28, \ + struct ipmi_cmdspec_chans) +/* + * Unregister some netfn/cmd/chans. error values: + * - EFAULT - an address supplied was invalid. + * - ENOENT - None of the netfn/cmd/chans were found registered for this user. + */ +#define IPMICTL_UNREGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 29, \ + struct ipmi_cmdspec_chans) + +/* + * Set whether this interface receives events. Note that the first + * user registered for events will get all pending events for the + * interface. error values: + * - EFAULT - an address supplied was invalid. + */ +#define IPMICTL_SET_GETS_EVENTS_CMD _IOR(IPMI_IOC_MAGIC, 16, int) + +/* + * Set and get the slave address and LUN that we will use for our + * source messages. Note that this affects the interface, not just + * this user, so it will affect all users of this interface. This is + * so some initialization code can come in and do the OEM-specific + * things it takes to determine your address (if not the BMC) and set + * it for everyone else. You should probably leave the LUN alone. + */ +struct ipmi_channel_lun_address_set { + unsigned short channel; + unsigned char value; +}; +#define IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD \ + _IOR(IPMI_IOC_MAGIC, 24, struct ipmi_channel_lun_address_set) +#define IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD \ + _IOR(IPMI_IOC_MAGIC, 25, struct ipmi_channel_lun_address_set) +#define IPMICTL_SET_MY_CHANNEL_LUN_CMD \ + _IOR(IPMI_IOC_MAGIC, 26, struct ipmi_channel_lun_address_set) +#define IPMICTL_GET_MY_CHANNEL_LUN_CMD \ + _IOR(IPMI_IOC_MAGIC, 27, struct ipmi_channel_lun_address_set) +/* Legacy interfaces, these only set IPMB 0. */ +#define IPMICTL_SET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 17, unsigned int) +#define IPMICTL_GET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 18, unsigned int) +#define IPMICTL_SET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 19, unsigned int) +#define IPMICTL_GET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 20, unsigned int) + +/* + * Get/set the default timing values for an interface. You shouldn't + * generally mess with these. + */ +struct ipmi_timing_parms { + int retries; + unsigned int retry_time_ms; +}; +#define IPMICTL_SET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 22, \ + struct ipmi_timing_parms) +#define IPMICTL_GET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 23, \ + struct ipmi_timing_parms) + +/* + * Set the maintenance mode. See ipmi_set_maintenance_mode() above + * for a description of what this does. + */ +#define IPMICTL_GET_MAINTENANCE_MODE_CMD _IOR(IPMI_IOC_MAGIC, 30, int) +#define IPMICTL_SET_MAINTENANCE_MODE_CMD _IOW(IPMI_IOC_MAGIC, 31, int) + +#endif /* __LINUX_IPMI_H */ diff --git a/kernel_headers/linux/ipmi_msgdefs.h b/kernel_headers/linux/ipmi_msgdefs.h new file mode 100644 index 0000000..df97e6e --- /dev/null +++ b/kernel_headers/linux/ipmi_msgdefs.h @@ -0,0 +1,121 @@ +/* + * ipmi_smi.h + * + * MontaVista IPMI system management interface + * + * Author: MontaVista Software, Inc. + * Corey Minyard + * source@mvista.com + * + * Copyright 2002 MontaVista Software Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __LINUX_IPMI_MSGDEFS_H +#define __LINUX_IPMI_MSGDEFS_H + +/* Various definitions for IPMI messages used by almost everything in + the IPMI stack. */ + +/* NetFNs and commands used inside the IPMI stack. */ + +#define IPMI_NETFN_SENSOR_EVENT_REQUEST 0x04 +#define IPMI_NETFN_SENSOR_EVENT_RESPONSE 0x05 +#define IPMI_GET_EVENT_RECEIVER_CMD 0x01 + +#define IPMI_NETFN_APP_REQUEST 0x06 +#define IPMI_NETFN_APP_RESPONSE 0x07 +#define IPMI_GET_DEVICE_ID_CMD 0x01 +#define IPMI_COLD_RESET_CMD 0x02 +#define IPMI_WARM_RESET_CMD 0x03 +#define IPMI_CLEAR_MSG_FLAGS_CMD 0x30 +#define IPMI_GET_DEVICE_GUID_CMD 0x08 +#define IPMI_GET_MSG_FLAGS_CMD 0x31 +#define IPMI_SEND_MSG_CMD 0x34 +#define IPMI_GET_MSG_CMD 0x33 +#define IPMI_SET_BMC_GLOBAL_ENABLES_CMD 0x2e +#define IPMI_GET_BMC_GLOBAL_ENABLES_CMD 0x2f +#define IPMI_READ_EVENT_MSG_BUFFER_CMD 0x35 +#define IPMI_GET_CHANNEL_INFO_CMD 0x42 + +/* Bit for BMC global enables. */ +#define IPMI_BMC_RCV_MSG_INTR 0x01 +#define IPMI_BMC_EVT_MSG_INTR 0x02 +#define IPMI_BMC_EVT_MSG_BUFF 0x04 +#define IPMI_BMC_SYS_LOG 0x08 + +#define IPMI_NETFN_STORAGE_REQUEST 0x0a +#define IPMI_NETFN_STORAGE_RESPONSE 0x0b +#define IPMI_ADD_SEL_ENTRY_CMD 0x44 + +#define IPMI_NETFN_FIRMWARE_REQUEST 0x08 +#define IPMI_NETFN_FIRMWARE_RESPONSE 0x09 + +/* The default slave address */ +#define IPMI_BMC_SLAVE_ADDR 0x20 + +/* The BT interface on high-end HP systems supports up to 255 bytes in + * one transfer. Its "virtual" BMC supports some commands that are longer + * than 128 bytes. Use the full 256, plus NetFn/LUN, Cmd, cCode, plus + * some overhead; it's not worth the effort to dynamically size this based + * on the results of the "Get BT Capabilities" command. */ +#define IPMI_MAX_MSG_LENGTH 272 /* multiple of 16 */ + +#define IPMI_CC_NO_ERROR 0x00 +#define IPMI_NODE_BUSY_ERR 0xc0 +#define IPMI_INVALID_COMMAND_ERR 0xc1 +#define IPMI_TIMEOUT_ERR 0xc3 +#define IPMI_ERR_MSG_TRUNCATED 0xc6 +#define IPMI_REQ_LEN_INVALID_ERR 0xc7 +#define IPMI_REQ_LEN_EXCEEDED_ERR 0xc8 +#define IPMI_NOT_IN_MY_STATE_ERR 0xd5 /* IPMI 2.0 */ +#define IPMI_LOST_ARBITRATION_ERR 0x81 +#define IPMI_BUS_ERR 0x82 +#define IPMI_NAK_ON_WRITE_ERR 0x83 +#define IPMI_ERR_UNSPECIFIED 0xff + +#define IPMI_CHANNEL_PROTOCOL_IPMB 1 +#define IPMI_CHANNEL_PROTOCOL_ICMB 2 +#define IPMI_CHANNEL_PROTOCOL_SMBUS 4 +#define IPMI_CHANNEL_PROTOCOL_KCS 5 +#define IPMI_CHANNEL_PROTOCOL_SMIC 6 +#define IPMI_CHANNEL_PROTOCOL_BT10 7 +#define IPMI_CHANNEL_PROTOCOL_BT15 8 +#define IPMI_CHANNEL_PROTOCOL_TMODE 9 + +#define IPMI_CHANNEL_MEDIUM_IPMB 1 +#define IPMI_CHANNEL_MEDIUM_ICMB10 2 +#define IPMI_CHANNEL_MEDIUM_ICMB09 3 +#define IPMI_CHANNEL_MEDIUM_8023LAN 4 +#define IPMI_CHANNEL_MEDIUM_ASYNC 5 +#define IPMI_CHANNEL_MEDIUM_OTHER_LAN 6 +#define IPMI_CHANNEL_MEDIUM_PCI_SMBUS 7 +#define IPMI_CHANNEL_MEDIUM_SMBUS1 8 +#define IPMI_CHANNEL_MEDIUM_SMBUS2 9 +#define IPMI_CHANNEL_MEDIUM_USB1 10 +#define IPMI_CHANNEL_MEDIUM_USB2 11 +#define IPMI_CHANNEL_MEDIUM_SYSINTF 12 +#define IPMI_CHANNEL_MEDIUM_OEM_MIN 0x60 +#define IPMI_CHANNEL_MEDIUM_OEM_MAX 0x7f + +#endif /* __LINUX_IPMI_MSGDEFS_H */ diff --git a/kernel_headers/linux/ipsec.h b/kernel_headers/linux/ipsec.h new file mode 100644 index 0000000..d17a630 --- /dev/null +++ b/kernel_headers/linux/ipsec.h @@ -0,0 +1,47 @@ +#ifndef _LINUX_IPSEC_H +#define _LINUX_IPSEC_H + +/* The definitions, required to talk to KAME racoon IKE. */ + +#include + +#define IPSEC_PORT_ANY 0 +#define IPSEC_ULPROTO_ANY 255 +#define IPSEC_PROTO_ANY 255 + +enum { + IPSEC_MODE_ANY = 0, /* We do not support this for SA */ + IPSEC_MODE_TRANSPORT = 1, + IPSEC_MODE_TUNNEL = 2, + IPSEC_MODE_BEET = 3 +}; + +enum { + IPSEC_DIR_ANY = 0, + IPSEC_DIR_INBOUND = 1, + IPSEC_DIR_OUTBOUND = 2, + IPSEC_DIR_FWD = 3, /* It is our own */ + IPSEC_DIR_MAX = 4, + IPSEC_DIR_INVALID = 5 +}; + +enum { + IPSEC_POLICY_DISCARD = 0, + IPSEC_POLICY_NONE = 1, + IPSEC_POLICY_IPSEC = 2, + IPSEC_POLICY_ENTRUST = 3, + IPSEC_POLICY_BYPASS = 4 +}; + +enum { + IPSEC_LEVEL_DEFAULT = 0, + IPSEC_LEVEL_USE = 1, + IPSEC_LEVEL_REQUIRE = 2, + IPSEC_LEVEL_UNIQUE = 3 +}; + +#define IPSEC_MANUAL_REQID_MAX 0x3fff + +#define IPSEC_REPLAYWSIZE 32 + +#endif /* _LINUX_IPSEC_H */ diff --git a/kernel_headers/linux/ipv6.h b/kernel_headers/linux/ipv6.h new file mode 100644 index 0000000..a25296b --- /dev/null +++ b/kernel_headers/linux/ipv6.h @@ -0,0 +1,169 @@ +#ifndef _IPV6_H +#define _IPV6_H + +#include +#include +#include + +/* The latest drafts declared increase in minimal mtu up to 1280. */ + +#define IPV6_MIN_MTU 1280 + +/* + * Advanced API + * source interface/address selection, source routing, etc... + * *under construction* + */ + + +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; +}; + +struct ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; +}; + +struct in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; +}; + +#define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */ +#define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */ +#define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */ + +/* + * routing header + */ +struct ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; + + /* + * type specific data + * variable length field + */ +}; + + +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; + /* + * TLV encoded option data follows. + */ +} __attribute__((packed)); /* required for some archs */ + +#define ipv6_destopt_hdr ipv6_opt_hdr +#define ipv6_hopopt_hdr ipv6_opt_hdr + +/* Router Alert option values (RFC2711) */ +#define IPV6_OPT_ROUTERALERT_MLD 0x0000 /* MLD(RFC2710) */ + +/* + * routing header type 0 (used in cmsghdr struct) + */ + +struct rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; + +#define rt0_type rt_hdr.type +}; + +/* + * routing header type 2 + */ + +struct rt2_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr; + +#define rt2_type rt_hdr.type +}; + +/* + * home address option in destination options header + */ + +struct ipv6_destopt_hao { + __u8 type; + __u8 length; + struct in6_addr addr; +} __attribute__((packed)); + +/* + * IPv6 fixed header + * + * BEWARE, it is incorrect. The first 4 bits of flow_lbl + * are glued to priority now, forming "class". + */ + +struct ipv6hdr { +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u8 priority:4, + version:4; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u8 version:4, + priority:4; +#else +#error "Please fix " +#endif + __u8 flow_lbl[3]; + + __be16 payload_len; + __u8 nexthdr; + __u8 hop_limit; + + struct in6_addr saddr; + struct in6_addr daddr; +}; + + +/* index values for the variables in ipv6_devconf */ +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT, + DEVCONF_MTU6, + DEVCONF_ACCEPT_RA, + DEVCONF_ACCEPT_REDIRECTS, + DEVCONF_AUTOCONF, + DEVCONF_DAD_TRANSMITS, + DEVCONF_RTR_SOLICITS, + DEVCONF_RTR_SOLICIT_INTERVAL, + DEVCONF_RTR_SOLICIT_DELAY, + DEVCONF_USE_TEMPADDR, + DEVCONF_TEMP_VALID_LFT, + DEVCONF_TEMP_PREFERED_LFT, + DEVCONF_REGEN_MAX_RETRY, + DEVCONF_MAX_DESYNC_FACTOR, + DEVCONF_MAX_ADDRESSES, + DEVCONF_FORCE_MLD_VERSION, + DEVCONF_ACCEPT_RA_DEFRTR, + DEVCONF_ACCEPT_RA_PINFO, + DEVCONF_ACCEPT_RA_RTR_PREF, + DEVCONF_RTR_PROBE_INTERVAL, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, + DEVCONF_PROXY_NDP, + DEVCONF_OPTIMISTIC_DAD, + DEVCONF_ACCEPT_SOURCE_ROUTE, + DEVCONF_MC_FORWARDING, + DEVCONF_DISABLE_IPV6, + DEVCONF_ACCEPT_DAD, + DEVCONF_FORCE_TLLAO, + DEVCONF_NDISC_NOTIFY, + DEVCONF_ACCEPT_RA_PREFIX_ROUTE, + DEVCONF_ACCEPT_RA_RT_TABLE, + DEVCONF_MAX +}; + + +#endif /* _IPV6_H */ diff --git a/kernel_headers/linux/ipv6_route.h b/kernel_headers/linux/ipv6_route.h new file mode 100644 index 0000000..40490f3 --- /dev/null +++ b/kernel_headers/linux/ipv6_route.h @@ -0,0 +1,61 @@ +/* + * Linux INET6 implementation + * + * Authors: + * Pedro Roque + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IPV6_ROUTE_H +#define _LINUX_IPV6_ROUTE_H + +#include + +#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ +#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) + fallback, no routers on link */ +#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ +#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ +#define RTF_ANYCAST 0x00100000 /* Anycast */ + +#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ +#define RTF_EXPIRES 0x00400000 + +#define RTF_ROUTEINFO 0x00800000 /* route information - RA */ + +#define RTF_CACHE 0x01000000 /* cache entry */ +#define RTF_FLOW 0x02000000 /* flow significant route */ +#define RTF_POLICY 0x04000000 /* policy route */ + +#define RTF_PREF(pref) ((pref) << 27) +#define RTF_PREF_MASK 0x18000000 + +#define RTF_LOCAL 0x80000000 + + +struct in6_rtmsg { + struct in6_addr rtmsg_dst; + struct in6_addr rtmsg_src; + struct in6_addr rtmsg_gateway; + __u32 rtmsg_type; + __u16 rtmsg_dst_len; + __u16 rtmsg_src_len; + __u32 rtmsg_metric; + unsigned long rtmsg_info; + __u32 rtmsg_flags; + int rtmsg_ifindex; +}; + +#define RTMSG_NEWDEVICE 0x11 +#define RTMSG_DELDEVICE 0x12 +#define RTMSG_NEWROUTE 0x21 +#define RTMSG_DELROUTE 0x22 + +#define IP6_RT_PRIO_USER 1024 +#define IP6_RT_PRIO_ADDRCONF 256 + +#endif /* _LINUX_IPV6_ROUTE_H */ diff --git a/kernel_headers/linux/ipx.h b/kernel_headers/linux/ipx.h new file mode 100644 index 0000000..3d48014 --- /dev/null +++ b/kernel_headers/linux/ipx.h @@ -0,0 +1,75 @@ +#ifndef _IPX_H_ +#define _IPX_H_ +#include +#include +#include +#define IPX_NODE_LEN 6 +#define IPX_MTU 576 + +struct sockaddr_ipx { + __kernel_sa_family_t sipx_family; + __be16 sipx_port; + __be32 sipx_network; + unsigned char sipx_node[IPX_NODE_LEN]; + __u8 sipx_type; + unsigned char sipx_zero; /* 16 byte fill */ +}; + +/* + * So we can fit the extra info for SIOCSIFADDR into the address nicely + */ +#define sipx_special sipx_port +#define sipx_action sipx_zero +#define IPX_DLTITF 0 +#define IPX_CRTITF 1 + +struct ipx_route_definition { + __be32 ipx_network; + __be32 ipx_router_network; + unsigned char ipx_router_node[IPX_NODE_LEN]; +}; + +struct ipx_interface_definition { + __be32 ipx_network; + unsigned char ipx_device[16]; + unsigned char ipx_dlink_type; +#define IPX_FRAME_NONE 0 +#define IPX_FRAME_SNAP 1 +#define IPX_FRAME_8022 2 +#define IPX_FRAME_ETHERII 3 +#define IPX_FRAME_8023 4 +#define IPX_FRAME_TR_8022 5 /* obsolete */ + unsigned char ipx_special; +#define IPX_SPECIAL_NONE 0 +#define IPX_PRIMARY 1 +#define IPX_INTERNAL 2 + unsigned char ipx_node[IPX_NODE_LEN]; +}; + +struct ipx_config_data { + unsigned char ipxcfg_auto_select_primary; + unsigned char ipxcfg_auto_create_interfaces; +}; + +/* + * OLD Route Definition for backward compatibility. + */ + +struct ipx_route_def { + __be32 ipx_network; + __be32 ipx_router_network; +#define IPX_ROUTE_NO_ROUTER 0 + unsigned char ipx_router_node[IPX_NODE_LEN]; + unsigned char ipx_device[16]; + unsigned short ipx_flags; +#define IPX_RT_SNAP 8 +#define IPX_RT_8022 4 +#define IPX_RT_BLUEBOOK 2 +#define IPX_RT_ROUTED 1 +}; + +#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE) +#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1) +#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2) +#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3) +#endif /* _IPX_H_ */ diff --git a/kernel_headers/linux/irda.h b/kernel_headers/linux/irda.h new file mode 100644 index 0000000..a014c32 --- /dev/null +++ b/kernel_headers/linux/irda.h @@ -0,0 +1,251 @@ +/********************************************************************* + * + * Filename: irda.h + * Version: + * Description: + * Status: Experimental. + * Author: Dag Brattli + * Created at: Mon Mar 8 14:06:12 1999 + * Modified at: Sat Dec 25 16:06:42 1999 + * Modified by: Dag Brattli + * + * Copyright (c) 1999 Dag Brattli, All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * Neither Dag Brattli nor University of Tromsø admit liability nor + * provide warranty for any of this software. This material is + * provided "AS-IS" and at no charge. + * + ********************************************************************/ + +#ifndef KERNEL_IRDA_H +#define KERNEL_IRDA_H + +#include +#include + +/* Note that this file is shared with user space. */ + +/* Hint bit positions for first hint byte */ +#define HINT_PNP 0x01 +#define HINT_PDA 0x02 +#define HINT_COMPUTER 0x04 +#define HINT_PRINTER 0x08 +#define HINT_MODEM 0x10 +#define HINT_FAX 0x20 +#define HINT_LAN 0x40 +#define HINT_EXTENSION 0x80 + +/* Hint bit positions for second hint byte (first extension byte) */ +#define HINT_TELEPHONY 0x01 +#define HINT_FILE_SERVER 0x02 +#define HINT_COMM 0x04 +#define HINT_MESSAGE 0x08 +#define HINT_HTTP 0x10 +#define HINT_OBEX 0x20 + +/* IrLMP character code values */ +#define CS_ASCII 0x00 +#define CS_ISO_8859_1 0x01 +#define CS_ISO_8859_2 0x02 +#define CS_ISO_8859_3 0x03 +#define CS_ISO_8859_4 0x04 +#define CS_ISO_8859_5 0x05 +#define CS_ISO_8859_6 0x06 +#define CS_ISO_8859_7 0x07 +#define CS_ISO_8859_8 0x08 +#define CS_ISO_8859_9 0x09 +#define CS_UNICODE 0xff + +/* These are the currently known dongles */ +typedef enum { + IRDA_TEKRAM_DONGLE = 0, + IRDA_ESI_DONGLE = 1, + IRDA_ACTISYS_DONGLE = 2, + IRDA_ACTISYS_PLUS_DONGLE = 3, + IRDA_GIRBIL_DONGLE = 4, + IRDA_LITELINK_DONGLE = 5, + IRDA_AIRPORT_DONGLE = 6, + IRDA_OLD_BELKIN_DONGLE = 7, + IRDA_EP7211_IR = 8, + IRDA_MCP2120_DONGLE = 9, + IRDA_ACT200L_DONGLE = 10, + IRDA_MA600_DONGLE = 11, + IRDA_TOIM3232_DONGLE = 12, + IRDA_EP7211_DONGLE = 13, +} IRDA_DONGLE; + +/* Protocol types to be used for SOCK_DGRAM */ +enum { + IRDAPROTO_UNITDATA = 0, + IRDAPROTO_ULTRA = 1, + IRDAPROTO_MAX +}; + +#define SOL_IRLMP 266 /* Same as SOL_IRDA for now */ +#define SOL_IRTTP 266 /* Same as SOL_IRDA for now */ + +#define IRLMP_ENUMDEVICES 1 /* Return discovery log */ +#define IRLMP_IAS_SET 2 /* Set an attribute in local IAS */ +#define IRLMP_IAS_QUERY 3 /* Query remote IAS for attribute */ +#define IRLMP_HINTS_SET 4 /* Set hint bits advertised */ +#define IRLMP_QOS_SET 5 +#define IRLMP_QOS_GET 6 +#define IRLMP_MAX_SDU_SIZE 7 +#define IRLMP_IAS_GET 8 /* Get an attribute from local IAS */ +#define IRLMP_IAS_DEL 9 /* Remove attribute from local IAS */ +#define IRLMP_HINT_MASK_SET 10 /* Set discovery filter */ +#define IRLMP_WAITDEVICE 11 /* Wait for a new discovery */ + +#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE /* Compatibility */ + +#define IAS_MAX_STRING 256 /* See IrLMP 1.1, 4.3.3.2 */ +#define IAS_MAX_OCTET_STRING 1024 /* See IrLMP 1.1, 4.3.3.2 */ +#define IAS_MAX_CLASSNAME 60 /* See IrLMP 1.1, 4.3.1 */ +#define IAS_MAX_ATTRIBNAME 60 /* See IrLMP 1.1, 4.3.3.1 */ +#define IAS_MAX_ATTRIBNUMBER 256 /* See IrLMP 1.1, 4.3.3.1 */ +/* For user space backward compatibility - may be fixed in kernel 2.5.X + * Note : need 60+1 ('\0'), make it 64 for alignement - Jean II */ +#define IAS_EXPORT_CLASSNAME 64 +#define IAS_EXPORT_ATTRIBNAME 256 + +/* Attribute type needed for struct irda_ias_set */ +#define IAS_MISSING 0 +#define IAS_INTEGER 1 +#define IAS_OCT_SEQ 2 +#define IAS_STRING 3 + +#define LSAP_ANY 0xff + +struct sockaddr_irda { + __kernel_sa_family_t sir_family; /* AF_IRDA */ + __u8 sir_lsap_sel; /* LSAP selector */ + __u32 sir_addr; /* Device address */ + char sir_name[25]; /* Usually :IrDA:TinyTP */ +}; + +struct irda_device_info { + __u32 saddr; /* Address of local interface */ + __u32 daddr; /* Address of remote device */ + char info[22]; /* Description */ + __u8 charset; /* Charset used for description */ + __u8 hints[2]; /* Hint bits */ +}; + +struct irda_device_list { + __u32 len; + struct irda_device_info dev[1]; +}; + +struct irda_ias_set { + char irda_class_name[IAS_EXPORT_CLASSNAME]; + char irda_attrib_name[IAS_EXPORT_ATTRIBNAME]; + unsigned int irda_attrib_type; + union { + unsigned int irda_attrib_int; + struct { + unsigned short len; + __u8 octet_seq[IAS_MAX_OCTET_STRING]; + } irda_attrib_octet_seq; + struct { + __u8 len; + __u8 charset; + __u8 string[IAS_MAX_STRING]; + } irda_attrib_string; + } attribute; + __u32 daddr; /* Address of device (for some queries only) */ +}; + +/* Some private IOCTL's (max 16) */ +#define SIOCSDONGLE (SIOCDEVPRIVATE + 0) +#define SIOCGDONGLE (SIOCDEVPRIVATE + 1) +#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2) +#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3) +#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4) +#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5) +#define SIOCSMODE (SIOCDEVPRIVATE + 6) +#define SIOCGMODE (SIOCDEVPRIVATE + 7) +#define SIOCSDTRRTS (SIOCDEVPRIVATE + 8) +#define SIOCGQOS (SIOCDEVPRIVATE + 9) + +/* No reason to include just because of this one ;-) */ +#define IRNAMSIZ 16 + +/* IrDA quality of service information (must not exceed 16 bytes) */ +struct if_irda_qos { + unsigned long baudrate; + unsigned short data_size; + unsigned short window_size; + unsigned short min_turn_time; + unsigned short max_turn_time; + unsigned char add_bofs; + unsigned char link_disc; +}; + +/* For setting RTS and DTR lines of a dongle */ +struct if_irda_line { + __u8 dtr; + __u8 rts; +}; + +/* IrDA interface configuration (data part must not exceed 16 bytes) */ +struct if_irda_req { + union { + char ifrn_name[IRNAMSIZ]; /* if name, e.g. "irda0" */ + } ifr_ifrn; + + /* Data part */ + union { + struct if_irda_line ifru_line; + struct if_irda_qos ifru_qos; + unsigned short ifru_flags; + unsigned int ifru_receiving; + unsigned int ifru_mode; + unsigned int ifru_dongle; + } ifr_ifru; +}; + +#define ifr_baudrate ifr_ifru.ifru_qos.baudrate +#define ifr_receiving ifr_ifru.ifru_receiving +#define ifr_dongle ifr_ifru.ifru_dongle +#define ifr_mode ifr_ifru.ifru_mode +#define ifr_dtr ifr_ifru.ifru_line.dtr +#define ifr_rts ifr_ifru.ifru_line.rts + + +/* IrDA netlink definitions */ +#define IRDA_NL_NAME "irda" +#define IRDA_NL_VERSION 1 + +enum irda_nl_commands { + IRDA_NL_CMD_UNSPEC, + IRDA_NL_CMD_SET_MODE, + IRDA_NL_CMD_GET_MODE, + + __IRDA_NL_CMD_AFTER_LAST +}; +#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1) + +enum nl80211_attrs { + IRDA_NL_ATTR_UNSPEC, + IRDA_NL_ATTR_IFNAME, + IRDA_NL_ATTR_MODE, + + __IRDA_NL_ATTR_AFTER_LAST +}; +#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1) + +/* IrDA modes */ +#define IRDA_MODE_PRIMARY 0x1 +#define IRDA_MODE_SECONDARY 0x2 +#define IRDA_MODE_MONITOR 0x4 + +#endif /* KERNEL_IRDA_H */ + + + + diff --git a/kernel_headers/linux/irqnr.h b/kernel_headers/linux/irqnr.h new file mode 100644 index 0000000..ae5704f --- /dev/null +++ b/kernel_headers/linux/irqnr.h @@ -0,0 +1,4 @@ +/* + * There isn't anything here anymore, but the file must not be empty or patch + * will delete it. + */ diff --git a/kernel_headers/linux/isdn.h b/kernel_headers/linux/isdn.h new file mode 100644 index 0000000..55c0a1e --- /dev/null +++ b/kernel_headers/linux/isdn.h @@ -0,0 +1,143 @@ +/* $Id: isdn.h,v 1.125.2.3 2004/02/10 01:07:14 keil Exp $ + * + * Main header for the Linux ISDN subsystem (linklevel). + * + * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) + * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg + * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef __ISDN_H__ +#define __ISDN_H__ + +#include +#include + +#define ISDN_MAX_DRIVERS 32 +#define ISDN_MAX_CHANNELS 64 + +/* New ioctl-codes */ +#define IIOCNETAIF _IO('I',1) +#define IIOCNETDIF _IO('I',2) +#define IIOCNETSCF _IO('I',3) +#define IIOCNETGCF _IO('I',4) +#define IIOCNETANM _IO('I',5) +#define IIOCNETDNM _IO('I',6) +#define IIOCNETGNM _IO('I',7) +#define IIOCGETSET _IO('I',8) /* no longer supported */ +#define IIOCSETSET _IO('I',9) /* no longer supported */ +#define IIOCSETVER _IO('I',10) +#define IIOCNETHUP _IO('I',11) +#define IIOCSETGST _IO('I',12) +#define IIOCSETBRJ _IO('I',13) +#define IIOCSIGPRF _IO('I',14) +#define IIOCGETPRF _IO('I',15) +#define IIOCSETPRF _IO('I',16) +#define IIOCGETMAP _IO('I',17) +#define IIOCSETMAP _IO('I',18) +#define IIOCNETASL _IO('I',19) +#define IIOCNETDIL _IO('I',20) +#define IIOCGETCPS _IO('I',21) +#define IIOCGETDVR _IO('I',22) +#define IIOCNETLCR _IO('I',23) /* dwabc ioctl for LCR from isdnlog */ +#define IIOCNETDWRSET _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */ + +#define IIOCNETALN _IO('I',32) +#define IIOCNETDLN _IO('I',33) + +#define IIOCNETGPN _IO('I',34) + +#define IIOCDBGVAR _IO('I',127) + +#define IIOCDRVCTL _IO('I',128) + +/* cisco hdlck device private ioctls */ +#define SIOCGKEEPPERIOD (SIOCDEVPRIVATE + 0) +#define SIOCSKEEPPERIOD (SIOCDEVPRIVATE + 1) +#define SIOCGDEBSERINT (SIOCDEVPRIVATE + 2) +#define SIOCSDEBSERINT (SIOCDEVPRIVATE + 3) + +/* Packet encapsulations for net-interfaces */ +#define ISDN_NET_ENCAP_ETHER 0 +#define ISDN_NET_ENCAP_RAWIP 1 +#define ISDN_NET_ENCAP_IPTYP 2 +#define ISDN_NET_ENCAP_CISCOHDLC 3 /* Without SLARP and keepalive */ +#define ISDN_NET_ENCAP_SYNCPPP 4 +#define ISDN_NET_ENCAP_UIHDLC 5 +#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive */ +#define ISDN_NET_ENCAP_X25IFACE 7 /* Documentation/networking/x25-iface.txt */ +#define ISDN_NET_ENCAP_MAX_ENCAP ISDN_NET_ENCAP_X25IFACE + +/* Facility which currently uses an ISDN-channel */ +#define ISDN_USAGE_NONE 0 +#define ISDN_USAGE_RAW 1 +#define ISDN_USAGE_MODEM 2 +#define ISDN_USAGE_NET 3 +#define ISDN_USAGE_VOICE 4 +#define ISDN_USAGE_FAX 5 +#define ISDN_USAGE_MASK 7 /* Mask to get plain usage */ +#define ISDN_USAGE_DISABLED 32 /* This bit is set, if channel is disabled */ +#define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */ +#define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing */ + +#define ISDN_MODEM_NUMREG 24 /* Number of Modem-Registers */ +#define ISDN_LMSNLEN 255 /* Length of tty's Listen-MSN string */ +#define ISDN_CMSGLEN 50 /* Length of CONNECT-Message to add for Modem */ + +#define ISDN_MSNLEN 32 +#define NET_DV 0x06 /* Data version for isdn_net_ioctl_cfg */ +#define TTY_DV 0x06 /* Data version for iprofd etc. */ + +#define INF_DV 0x01 /* Data version for /dev/isdninfo */ + +typedef struct { + char drvid[25]; + unsigned long arg; +} isdn_ioctl_struct; + +typedef struct { + char name[10]; + char phone[ISDN_MSNLEN]; + int outgoing; +} isdn_net_ioctl_phone; + +typedef struct { + char name[10]; /* Name of interface */ + char master[10]; /* Name of Master for Bundling */ + char slave[10]; /* Name of Slave for Bundling */ + char eaz[256]; /* EAZ/MSN */ + char drvid[25]; /* DriverId for Bindings */ + int onhtime; /* Hangup-Timeout */ + int charge; /* Charge-Units */ + int l2_proto; /* Layer-2 protocol */ + int l3_proto; /* Layer-3 protocol */ + int p_encap; /* Encapsulation */ + int exclusive; /* Channel, if bound exclusive */ + int dialmax; /* Dial Retry-Counter */ + int slavedelay; /* Delay until slave starts up */ + int cbdelay; /* Delay before Callback */ + int chargehup; /* Flag: Charge-Hangup */ + int ihup; /* Flag: Hangup-Timeout on incoming line */ + int secure; /* Flag: Secure */ + int callback; /* Flag: Callback */ + int cbhup; /* Flag: Reject Call before Callback */ + int pppbind; /* ippp device for bindings */ + int chargeint; /* Use fixed charge interval length */ + int triggercps; /* BogoCPS needed for triggering slave */ + int dialtimeout; /* Dial-Timeout */ + int dialwait; /* Time to wait after failed dial */ + int dialmode; /* Flag: off / on / auto */ +} isdn_net_ioctl_cfg; + +#define ISDN_NET_DIALMODE_MASK 0xC0 /* bits for status */ +#define ISDN_NET_DM_OFF 0x00 /* this interface is stopped */ +#define ISDN_NET_DM_MANUAL 0x40 /* this interface is on (manual) */ +#define ISDN_NET_DM_AUTO 0x80 /* this interface is autodial */ +#define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK) + + +#endif /* __ISDN_H__ */ diff --git a/kernel_headers/linux/isdn/..install.cmd b/kernel_headers/linux/isdn/..install.cmd new file mode 100644 index 0000000..ed0c99b --- /dev/null +++ b/kernel_headers/linux/isdn/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/isdn/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/isdn /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/isdn capicmd.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/isdn /android/kernels/moto/surnia/kernel-msm/include/linux/isdn ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/isdn /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/isdn ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/isdn/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/isdn/.install diff --git a/kernel_headers/linux/isdn/.install b/kernel_headers/linux/isdn/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/isdn/capicmd.h b/kernel_headers/linux/isdn/capicmd.h new file mode 100644 index 0000000..b58635f --- /dev/null +++ b/kernel_headers/linux/isdn/capicmd.h @@ -0,0 +1,115 @@ +/* $Id: capicmd.h,v 1.2.6.2 2001/09/23 22:24:33 kai Exp $ + * + * CAPI 2.0 Interface for Linux + * + * Copyright 1997 by Carsten Paeth + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef __CAPICMD_H__ +#define __CAPICMD_H__ + +#define CAPI_MSG_BASELEN 8 +#define CAPI_DATA_B3_REQ_LEN (CAPI_MSG_BASELEN+4+4+2+2+2) +#define CAPI_DATA_B3_RESP_LEN (CAPI_MSG_BASELEN+4+2) + +/*----- CAPI commands -----*/ +#define CAPI_ALERT 0x01 +#define CAPI_CONNECT 0x02 +#define CAPI_CONNECT_ACTIVE 0x03 +#define CAPI_CONNECT_B3_ACTIVE 0x83 +#define CAPI_CONNECT_B3 0x82 +#define CAPI_CONNECT_B3_T90_ACTIVE 0x88 +#define CAPI_DATA_B3 0x86 +#define CAPI_DISCONNECT_B3 0x84 +#define CAPI_DISCONNECT 0x04 +#define CAPI_FACILITY 0x80 +#define CAPI_INFO 0x08 +#define CAPI_LISTEN 0x05 +#define CAPI_MANUFACTURER 0xff +#define CAPI_RESET_B3 0x87 +#define CAPI_SELECT_B_PROTOCOL 0x41 + +/*----- CAPI subcommands -----*/ + +#define CAPI_REQ 0x80 +#define CAPI_CONF 0x81 +#define CAPI_IND 0x82 +#define CAPI_RESP 0x83 + +/*----- CAPI combined commands -----*/ + +#define CAPICMD(cmd,subcmd) (((cmd)<<8)|(subcmd)) + +#define CAPI_DISCONNECT_REQ CAPICMD(CAPI_DISCONNECT,CAPI_REQ) +#define CAPI_DISCONNECT_CONF CAPICMD(CAPI_DISCONNECT,CAPI_CONF) +#define CAPI_DISCONNECT_IND CAPICMD(CAPI_DISCONNECT,CAPI_IND) +#define CAPI_DISCONNECT_RESP CAPICMD(CAPI_DISCONNECT,CAPI_RESP) + +#define CAPI_ALERT_REQ CAPICMD(CAPI_ALERT,CAPI_REQ) +#define CAPI_ALERT_CONF CAPICMD(CAPI_ALERT,CAPI_CONF) + +#define CAPI_CONNECT_REQ CAPICMD(CAPI_CONNECT,CAPI_REQ) +#define CAPI_CONNECT_CONF CAPICMD(CAPI_CONNECT,CAPI_CONF) +#define CAPI_CONNECT_IND CAPICMD(CAPI_CONNECT,CAPI_IND) +#define CAPI_CONNECT_RESP CAPICMD(CAPI_CONNECT,CAPI_RESP) + +#define CAPI_CONNECT_ACTIVE_REQ CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_REQ) +#define CAPI_CONNECT_ACTIVE_CONF CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_CONF) +#define CAPI_CONNECT_ACTIVE_IND CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_IND) +#define CAPI_CONNECT_ACTIVE_RESP CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_RESP) + +#define CAPI_SELECT_B_PROTOCOL_REQ CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_REQ) +#define CAPI_SELECT_B_PROTOCOL_CONF CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_CONF) + +#define CAPI_CONNECT_B3_ACTIVE_REQ CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_REQ) +#define CAPI_CONNECT_B3_ACTIVE_CONF CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_CONF) +#define CAPI_CONNECT_B3_ACTIVE_IND CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_IND) +#define CAPI_CONNECT_B3_ACTIVE_RESP CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_RESP) + +#define CAPI_CONNECT_B3_REQ CAPICMD(CAPI_CONNECT_B3,CAPI_REQ) +#define CAPI_CONNECT_B3_CONF CAPICMD(CAPI_CONNECT_B3,CAPI_CONF) +#define CAPI_CONNECT_B3_IND CAPICMD(CAPI_CONNECT_B3,CAPI_IND) +#define CAPI_CONNECT_B3_RESP CAPICMD(CAPI_CONNECT_B3,CAPI_RESP) + + +#define CAPI_CONNECT_B3_T90_ACTIVE_IND CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_IND) +#define CAPI_CONNECT_B3_T90_ACTIVE_RESP CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_RESP) + +#define CAPI_DATA_B3_REQ CAPICMD(CAPI_DATA_B3,CAPI_REQ) +#define CAPI_DATA_B3_CONF CAPICMD(CAPI_DATA_B3,CAPI_CONF) +#define CAPI_DATA_B3_IND CAPICMD(CAPI_DATA_B3,CAPI_IND) +#define CAPI_DATA_B3_RESP CAPICMD(CAPI_DATA_B3,CAPI_RESP) + +#define CAPI_DISCONNECT_B3_REQ CAPICMD(CAPI_DISCONNECT_B3,CAPI_REQ) +#define CAPI_DISCONNECT_B3_CONF CAPICMD(CAPI_DISCONNECT_B3,CAPI_CONF) +#define CAPI_DISCONNECT_B3_IND CAPICMD(CAPI_DISCONNECT_B3,CAPI_IND) +#define CAPI_DISCONNECT_B3_RESP CAPICMD(CAPI_DISCONNECT_B3,CAPI_RESP) + +#define CAPI_RESET_B3_REQ CAPICMD(CAPI_RESET_B3,CAPI_REQ) +#define CAPI_RESET_B3_CONF CAPICMD(CAPI_RESET_B3,CAPI_CONF) +#define CAPI_RESET_B3_IND CAPICMD(CAPI_RESET_B3,CAPI_IND) +#define CAPI_RESET_B3_RESP CAPICMD(CAPI_RESET_B3,CAPI_RESP) + +#define CAPI_LISTEN_REQ CAPICMD(CAPI_LISTEN,CAPI_REQ) +#define CAPI_LISTEN_CONF CAPICMD(CAPI_LISTEN,CAPI_CONF) + +#define CAPI_MANUFACTURER_REQ CAPICMD(CAPI_MANUFACTURER,CAPI_REQ) +#define CAPI_MANUFACTURER_CONF CAPICMD(CAPI_MANUFACTURER,CAPI_CONF) +#define CAPI_MANUFACTURER_IND CAPICMD(CAPI_MANUFACTURER,CAPI_IND) +#define CAPI_MANUFACTURER_RESP CAPICMD(CAPI_MANUFACTURER,CAPI_RESP) + +#define CAPI_FACILITY_REQ CAPICMD(CAPI_FACILITY,CAPI_REQ) +#define CAPI_FACILITY_CONF CAPICMD(CAPI_FACILITY,CAPI_CONF) +#define CAPI_FACILITY_IND CAPICMD(CAPI_FACILITY,CAPI_IND) +#define CAPI_FACILITY_RESP CAPICMD(CAPI_FACILITY,CAPI_RESP) + +#define CAPI_INFO_REQ CAPICMD(CAPI_INFO,CAPI_REQ) +#define CAPI_INFO_CONF CAPICMD(CAPI_INFO,CAPI_CONF) +#define CAPI_INFO_IND CAPICMD(CAPI_INFO,CAPI_IND) +#define CAPI_INFO_RESP CAPICMD(CAPI_INFO,CAPI_RESP) + +#endif /* __CAPICMD_H__ */ diff --git a/kernel_headers/linux/isdn_divertif.h b/kernel_headers/linux/isdn_divertif.h new file mode 100644 index 0000000..67575ba --- /dev/null +++ b/kernel_headers/linux/isdn_divertif.h @@ -0,0 +1,30 @@ +/* $Id: isdn_divertif.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ + * + * Header for the diversion supplementary interface for i4l. + * + * Author Werner Cornelius (werner@titro.de) + * Copyright by Werner Cornelius (werner@titro.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef _LINUX_ISDN_DIVERTIF_H +#define _LINUX_ISDN_DIVERTIF_H + +/***********************************************************/ +/* magic value is also used to control version information */ +/***********************************************************/ +#define DIVERT_IF_MAGIC 0x25873401 +#define DIVERT_CMD_REG 0x00 /* register command */ +#define DIVERT_CMD_REL 0x01 /* release command */ +#define DIVERT_NO_ERR 0x00 /* return value no error */ +#define DIVERT_CMD_ERR 0x01 /* invalid cmd */ +#define DIVERT_VER_ERR 0x02 /* magic/version invalid */ +#define DIVERT_REG_ERR 0x03 /* module already registered */ +#define DIVERT_REL_ERR 0x04 /* module not registered */ +#define DIVERT_REG_NAME isdn_register_divert + + +#endif /* _LINUX_ISDN_DIVERTIF_H */ diff --git a/kernel_headers/linux/isdn_ppp.h b/kernel_headers/linux/isdn_ppp.h new file mode 100644 index 0000000..aabb015 --- /dev/null +++ b/kernel_headers/linux/isdn_ppp.h @@ -0,0 +1,67 @@ +/* Linux ISDN subsystem, sync PPP, interface to ipppd + * + * Copyright 1994-1999 by Fritz Elfert (fritz@isdn4linux.de) + * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg + * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) + * Copyright 2000-2002 by Kai Germaschewski (kai@germaschewski.name) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef _LINUX_ISDN_PPP_H +#define _LINUX_ISDN_PPP_H + +#define CALLTYPE_INCOMING 0x1 +#define CALLTYPE_OUTGOING 0x2 +#define CALLTYPE_CALLBACK 0x4 + +#define IPPP_VERSION "2.2.0" + +struct pppcallinfo +{ + int calltype; + unsigned char local_num[64]; + unsigned char remote_num[64]; + int charge_units; +}; + +#define PPPIOCGCALLINFO _IOWR('t',128,struct pppcallinfo) +#define PPPIOCBUNDLE _IOW('t',129,int) +#define PPPIOCGMPFLAGS _IOR('t',130,int) +#define PPPIOCSMPFLAGS _IOW('t',131,int) +#define PPPIOCSMPMTU _IOW('t',132,int) +#define PPPIOCSMPMRU _IOW('t',133,int) +#define PPPIOCGCOMPRESSORS _IOR('t',134,unsigned long [8]) +#define PPPIOCSCOMPRESSOR _IOW('t',135,int) +#define PPPIOCGIFNAME _IOR('t',136, char [IFNAMSIZ] ) + + +#define SC_MP_PROT 0x00000200 +#define SC_REJ_MP_PROT 0x00000400 +#define SC_OUT_SHORT_SEQ 0x00000800 +#define SC_IN_SHORT_SEQ 0x00004000 + +#define SC_DECOMP_ON 0x01 +#define SC_COMP_ON 0x02 +#define SC_DECOMP_DISCARD 0x04 +#define SC_COMP_DISCARD 0x08 +#define SC_LINK_DECOMP_ON 0x10 +#define SC_LINK_COMP_ON 0x20 +#define SC_LINK_DECOMP_DISCARD 0x40 +#define SC_LINK_COMP_DISCARD 0x80 + +#define ISDN_PPP_COMP_MAX_OPTIONS 16 + +#define IPPP_COMP_FLAG_XMIT 0x1 +#define IPPP_COMP_FLAG_LINK 0x2 + +struct isdn_ppp_comp_data { + int num; + unsigned char options[ISDN_PPP_COMP_MAX_OPTIONS]; + int optlen; + int flags; +}; + +#endif /* _LINUX_ISDN_PPP_H */ diff --git a/kernel_headers/linux/isdnif.h b/kernel_headers/linux/isdnif.h new file mode 100644 index 0000000..1db1b0b --- /dev/null +++ b/kernel_headers/linux/isdnif.h @@ -0,0 +1,56 @@ +/* $Id: isdnif.h,v 1.43.2.2 2004/01/12 23:08:35 keil Exp $ + * + * Linux ISDN subsystem + * Definition of the interface between the subsystem and its low-level drivers. + * + * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) + * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef __ISDNIF_H__ +#define __ISDNIF_H__ + + +/* + * Values for general protocol-selection + */ +#define ISDN_PTYPE_UNKNOWN 0 /* Protocol undefined */ +#define ISDN_PTYPE_1TR6 1 /* german 1TR6-protocol */ +#define ISDN_PTYPE_EURO 2 /* EDSS1-protocol */ +#define ISDN_PTYPE_LEASED 3 /* for leased lines */ +#define ISDN_PTYPE_NI1 4 /* US NI-1 protocol */ +#define ISDN_PTYPE_MAX 7 /* Max. 8 Protocols */ + +/* + * Values for Layer-2-protocol-selection + */ +#define ISDN_PROTO_L2_X75I 0 /* X75/LAPB with I-Frames */ +#define ISDN_PROTO_L2_X75UI 1 /* X75/LAPB with UI-Frames */ +#define ISDN_PROTO_L2_X75BUI 2 /* X75/LAPB with UI-Frames */ +#define ISDN_PROTO_L2_HDLC 3 /* HDLC */ +#define ISDN_PROTO_L2_TRANS 4 /* Transparent (Voice) */ +#define ISDN_PROTO_L2_X25DTE 5 /* X25/LAPB DTE mode */ +#define ISDN_PROTO_L2_X25DCE 6 /* X25/LAPB DCE mode */ +#define ISDN_PROTO_L2_V11096 7 /* V.110 bitrate adaption 9600 Baud */ +#define ISDN_PROTO_L2_V11019 8 /* V.110 bitrate adaption 19200 Baud */ +#define ISDN_PROTO_L2_V11038 9 /* V.110 bitrate adaption 38400 Baud */ +#define ISDN_PROTO_L2_MODEM 10 /* Analog Modem on Board */ +#define ISDN_PROTO_L2_FAX 11 /* Fax Group 2/3 */ +#define ISDN_PROTO_L2_HDLC_56K 12 /* HDLC 56k */ +#define ISDN_PROTO_L2_MAX 15 /* Max. 16 Protocols */ + +/* + * Values for Layer-3-protocol-selection + */ +#define ISDN_PROTO_L3_TRANS 0 /* Transparent */ +#define ISDN_PROTO_L3_TRANSDSP 1 /* Transparent with DSP */ +#define ISDN_PROTO_L3_FCLASS2 2 /* Fax Group 2/3 CLASS 2 */ +#define ISDN_PROTO_L3_FCLASS1 3 /* Fax Group 2/3 CLASS 1 */ +#define ISDN_PROTO_L3_MAX 7 /* Max. 8 Protocols */ + + +#endif /* __ISDNIF_H__ */ diff --git a/kernel_headers/linux/iso_fs.h b/kernel_headers/linux/iso_fs.h new file mode 100644 index 0000000..4688ac4 --- /dev/null +++ b/kernel_headers/linux/iso_fs.h @@ -0,0 +1,165 @@ +#ifndef _ISOFS_FS_H +#define _ISOFS_FS_H + +#include +#include + +/* + * The isofs filesystem constants/structures + */ + +/* This part borrowed from the bsd386 isofs */ +#define ISODCL(from, to) (to - from + 1) + +struct iso_volume_descriptor { + char type[ISODCL(1,1)]; /* 711 */ + char id[ISODCL(2,6)]; + char version[ISODCL(7,7)]; + char data[ISODCL(8,2048)]; +}; + +/* volume descriptor types */ +#define ISO_VD_PRIMARY 1 +#define ISO_VD_SUPPLEMENTARY 2 +#define ISO_VD_END 255 + +#define ISO_STANDARD_ID "CD001" + +struct iso_primary_descriptor { + char type [ISODCL ( 1, 1)]; /* 711 */ + char id [ISODCL ( 2, 6)]; + char version [ISODCL ( 7, 7)]; /* 711 */ + char unused1 [ISODCL ( 8, 8)]; + char system_id [ISODCL ( 9, 40)]; /* achars */ + char volume_id [ISODCL ( 41, 72)]; /* dchars */ + char unused2 [ISODCL ( 73, 80)]; + char volume_space_size [ISODCL ( 81, 88)]; /* 733 */ + char unused3 [ISODCL ( 89, 120)]; + char volume_set_size [ISODCL (121, 124)]; /* 723 */ + char volume_sequence_number [ISODCL (125, 128)]; /* 723 */ + char logical_block_size [ISODCL (129, 132)]; /* 723 */ + char path_table_size [ISODCL (133, 140)]; /* 733 */ + char type_l_path_table [ISODCL (141, 144)]; /* 731 */ + char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */ + char type_m_path_table [ISODCL (149, 152)]; /* 732 */ + char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */ + char root_directory_record [ISODCL (157, 190)]; /* 9.1 */ + char volume_set_id [ISODCL (191, 318)]; /* dchars */ + char publisher_id [ISODCL (319, 446)]; /* achars */ + char preparer_id [ISODCL (447, 574)]; /* achars */ + char application_id [ISODCL (575, 702)]; /* achars */ + char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */ + char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */ + char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */ + char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */ + char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */ + char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */ + char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */ + char file_structure_version [ISODCL (882, 882)]; /* 711 */ + char unused4 [ISODCL (883, 883)]; + char application_data [ISODCL (884, 1395)]; + char unused5 [ISODCL (1396, 2048)]; +}; + +/* Almost the same as the primary descriptor but two fields are specified */ +struct iso_supplementary_descriptor { + char type [ISODCL ( 1, 1)]; /* 711 */ + char id [ISODCL ( 2, 6)]; + char version [ISODCL ( 7, 7)]; /* 711 */ + char flags [ISODCL ( 8, 8)]; /* 853 */ + char system_id [ISODCL ( 9, 40)]; /* achars */ + char volume_id [ISODCL ( 41, 72)]; /* dchars */ + char unused2 [ISODCL ( 73, 80)]; + char volume_space_size [ISODCL ( 81, 88)]; /* 733 */ + char escape [ISODCL ( 89, 120)]; /* 856 */ + char volume_set_size [ISODCL (121, 124)]; /* 723 */ + char volume_sequence_number [ISODCL (125, 128)]; /* 723 */ + char logical_block_size [ISODCL (129, 132)]; /* 723 */ + char path_table_size [ISODCL (133, 140)]; /* 733 */ + char type_l_path_table [ISODCL (141, 144)]; /* 731 */ + char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */ + char type_m_path_table [ISODCL (149, 152)]; /* 732 */ + char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */ + char root_directory_record [ISODCL (157, 190)]; /* 9.1 */ + char volume_set_id [ISODCL (191, 318)]; /* dchars */ + char publisher_id [ISODCL (319, 446)]; /* achars */ + char preparer_id [ISODCL (447, 574)]; /* achars */ + char application_id [ISODCL (575, 702)]; /* achars */ + char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */ + char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */ + char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */ + char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */ + char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */ + char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */ + char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */ + char file_structure_version [ISODCL (882, 882)]; /* 711 */ + char unused4 [ISODCL (883, 883)]; + char application_data [ISODCL (884, 1395)]; + char unused5 [ISODCL (1396, 2048)]; +}; + + +#define HS_STANDARD_ID "CDROM" + +struct hs_volume_descriptor { + char foo [ISODCL ( 1, 8)]; /* 733 */ + char type [ISODCL ( 9, 9)]; /* 711 */ + char id [ISODCL ( 10, 14)]; + char version [ISODCL ( 15, 15)]; /* 711 */ + char data[ISODCL(16,2048)]; +}; + + +struct hs_primary_descriptor { + char foo [ISODCL ( 1, 8)]; /* 733 */ + char type [ISODCL ( 9, 9)]; /* 711 */ + char id [ISODCL ( 10, 14)]; + char version [ISODCL ( 15, 15)]; /* 711 */ + char unused1 [ISODCL ( 16, 16)]; /* 711 */ + char system_id [ISODCL ( 17, 48)]; /* achars */ + char volume_id [ISODCL ( 49, 80)]; /* dchars */ + char unused2 [ISODCL ( 81, 88)]; /* 733 */ + char volume_space_size [ISODCL ( 89, 96)]; /* 733 */ + char unused3 [ISODCL ( 97, 128)]; /* 733 */ + char volume_set_size [ISODCL (129, 132)]; /* 723 */ + char volume_sequence_number [ISODCL (133, 136)]; /* 723 */ + char logical_block_size [ISODCL (137, 140)]; /* 723 */ + char path_table_size [ISODCL (141, 148)]; /* 733 */ + char type_l_path_table [ISODCL (149, 152)]; /* 731 */ + char unused4 [ISODCL (153, 180)]; /* 733 */ + char root_directory_record [ISODCL (181, 214)]; /* 9.1 */ +}; + +/* We use this to help us look up the parent inode numbers. */ + +struct iso_path_table{ + unsigned char name_len[2]; /* 721 */ + char extent[4]; /* 731 */ + char parent[2]; /* 721 */ + char name[0]; +} __attribute__((packed)); + +/* high sierra is identical to iso, except that the date is only 6 bytes, and + there is an extra reserved byte after the flags */ + +struct iso_directory_record { + char length [ISODCL (1, 1)]; /* 711 */ + char ext_attr_length [ISODCL (2, 2)]; /* 711 */ + char extent [ISODCL (3, 10)]; /* 733 */ + char size [ISODCL (11, 18)]; /* 733 */ + char date [ISODCL (19, 25)]; /* 7 by 711 */ + char flags [ISODCL (26, 26)]; + char file_unit_size [ISODCL (27, 27)]; /* 711 */ + char interleave [ISODCL (28, 28)]; /* 711 */ + char volume_sequence_number [ISODCL (29, 32)]; /* 723 */ + unsigned char name_len [ISODCL (33, 33)]; /* 711 */ + char name [0]; +} __attribute__((packed)); + +#define ISOFS_BLOCK_BITS 11 +#define ISOFS_BLOCK_SIZE 2048 + +#define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize) +#define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits) + +#endif /* _ISOFS_FS_H */ diff --git a/kernel_headers/linux/ivtv.h b/kernel_headers/linux/ivtv.h new file mode 100644 index 0000000..120e82c --- /dev/null +++ b/kernel_headers/linux/ivtv.h @@ -0,0 +1,73 @@ +/* + Public ivtv API header + Copyright (C) 2003-2004 Kevin Thayer + Copyright (C) 2004-2007 Hans Verkuil + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LINUX_IVTV_H__ +#define __LINUX_IVTV_H__ + + +#include +#include + +/* ivtv knows several distinct output modes: MPEG streaming, + YUV streaming, YUV updates through user DMA and the passthrough + mode. + + In order to clearly tell the driver that we are in user DMA + YUV mode you need to call IVTV_IOC_DMA_FRAME with y_source == NULL + first (althrough if you don't then the first time + DMA_FRAME is called the mode switch is done automatically). + + When you close the file handle the user DMA mode is exited again. + + While in one mode, you cannot use another mode (EBUSY is returned). + + All this means that if you want to change the YUV interlacing + for the user DMA YUV mode you first need to do call IVTV_IOC_DMA_FRAME + with y_source == NULL before you can set the correct format using + VIDIOC_S_FMT. + + Eventually all this should be replaced with a proper V4L2 API, + but for now we have to do it this way. */ + +struct ivtv_dma_frame { + enum v4l2_buf_type type; /* V4L2_BUF_TYPE_VIDEO_OUTPUT */ + __u32 pixelformat; /* 0 == same as destination */ + void *y_source; /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT, + then just switch to user DMA YUV output mode */ + void *uv_source; /* Unused for RGB pixelformats */ + struct v4l2_rect src; + struct v4l2_rect dst; + __u32 src_width; + __u32 src_height; +}; + +#define IVTV_IOC_DMA_FRAME _IOW ('V', BASE_VIDIOC_PRIVATE+0, struct ivtv_dma_frame) + +/* Select the passthrough mode (if the argument is non-zero). In the passthrough + mode the output of the encoder is passed immediately into the decoder. */ +#define IVTV_IOC_PASSTHROUGH_MODE _IOW ('V', BASE_VIDIOC_PRIVATE+1, int) + +/* Deprecated defines: applications should use the defines from videodev2.h */ +#define IVTV_SLICED_TYPE_TELETEXT_B V4L2_MPEG_VBI_IVTV_TELETEXT_B +#define IVTV_SLICED_TYPE_CAPTION_525 V4L2_MPEG_VBI_IVTV_CAPTION_525 +#define IVTV_SLICED_TYPE_WSS_625 V4L2_MPEG_VBI_IVTV_WSS_625 +#define IVTV_SLICED_TYPE_VPS V4L2_MPEG_VBI_IVTV_VPS + +#endif /* _LINUX_IVTV_H */ diff --git a/kernel_headers/linux/ivtvfb.h b/kernel_headers/linux/ivtvfb.h new file mode 100644 index 0000000..97eaf4e --- /dev/null +++ b/kernel_headers/linux/ivtvfb.h @@ -0,0 +1,37 @@ +/* + On Screen Display cx23415 Framebuffer driver + + Copyright (C) 2006, 2007 Ian Armstrong + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LINUX_IVTVFB_H__ +#define __LINUX_IVTVFB_H__ + + +#include + +/* Framebuffer external API */ + +struct ivtvfb_dma_frame { + void *source; + unsigned long dest_offset; + int count; +}; + +#define IVTVFB_IOC_DMA_FRAME _IOW('V', BASE_VIDIOC_PRIVATE+0, struct ivtvfb_dma_frame) + +#endif diff --git a/kernel_headers/linux/ixjuser.h b/kernel_headers/linux/ixjuser.h new file mode 100644 index 0000000..0b829f9 --- /dev/null +++ b/kernel_headers/linux/ixjuser.h @@ -0,0 +1,720 @@ +#ifndef __LINUX_IXJUSER_H +#define __LINUX_IXJUSER_H + +/****************************************************************************** + * + * ixjuser.h + * + * Device Driver for Quicknet Technologies, Inc.'s Telephony cards + * including the Internet PhoneJACK, Internet PhoneJACK Lite, + * Internet PhoneJACK PCI, Internet LineJACK, Internet PhoneCARD and + * SmartCABLE + * + * (c) Copyright 1999-2001 Quicknet Technologies, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * Author: Ed Okerson, + * + * Contributors: Greg Herlein, + * David W. Erhart, + * John Sellers, + * Mike Preston, + * + * More information about the hardware related to this driver can be found + * at our website: http://www.quicknet.net + * + * Fixes: + * + * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET + * TECHNOLOGIES, INC.HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION + * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + *****************************************************************************/ + +#include + + +/****************************************************************************** +* +* IOCTL's used for the Quicknet Telephony Cards +* +* If you use the IXJCTL_TESTRAM command, the card must be power cycled to +* reset the SRAM values before further use. +* +******************************************************************************/ + +#define IXJCTL_DSP_RESET _IO ('q', 0xC0) + +#define IXJCTL_RING PHONE_RING +#define IXJCTL_HOOKSTATE PHONE_HOOKSTATE +#define IXJCTL_MAXRINGS PHONE_MAXRINGS +#define IXJCTL_RING_CADENCE PHONE_RING_CADENCE +#define IXJCTL_RING_START PHONE_RING_START +#define IXJCTL_RING_STOP PHONE_RING_STOP + +#define IXJCTL_CARDTYPE _IOR ('q', 0xC1, int) +#define IXJCTL_SERIAL _IOR ('q', 0xC2, int) +#define IXJCTL_DSP_TYPE _IOR ('q', 0xC3, int) +#define IXJCTL_DSP_VERSION _IOR ('q', 0xC4, int) +#define IXJCTL_VERSION _IOR ('q', 0xDA, char *) +#define IXJCTL_DSP_IDLE _IO ('q', 0xC5) +#define IXJCTL_TESTRAM _IO ('q', 0xC6) + +/****************************************************************************** +* +* This group of IOCTLs deal with the record settings of the DSP +* +* The IXJCTL_REC_DEPTH command sets the internal buffer depth of the DSP. +* Setting a lower depth reduces latency, but increases the demand of the +* application to service the driver without frame loss. The DSP has 480 +* bytes of physical buffer memory for the record channel so the true +* maximum limit is determined by how many frames will fit in the buffer. +* +* 1 uncompressed (480 byte) 16-bit linear frame. +* 2 uncompressed (240 byte) 8-bit A-law/mu-law frames. +* 15 TrueSpeech 8.5 frames. +* 20 TrueSpeech 6.3,5.3,4.8 or 4.1 frames. +* +* The default in the driver is currently set to 2 frames. +* +* The IXJCTL_REC_VOLUME and IXJCTL_PLAY_VOLUME commands both use a Q8 +* number as a parameter, 0x100 scales the signal by 1.0, 0x200 scales the +* signal by 2.0, 0x80 scales the signal by 0.5. No protection is given +* against over-scaling, if the multiplication factor times the input +* signal exceeds 16 bits, overflow distortion will occur. The default +* setting is 0x100 (1.0). +* +* The IXJCTL_REC_LEVEL returns the average signal level (not r.m.s.) on +* the most recently recorded frame as a 16 bit value. +******************************************************************************/ + +#define IXJCTL_REC_CODEC PHONE_REC_CODEC +#define IXJCTL_REC_START PHONE_REC_START +#define IXJCTL_REC_STOP PHONE_REC_STOP +#define IXJCTL_REC_DEPTH PHONE_REC_DEPTH +#define IXJCTL_FRAME PHONE_FRAME +#define IXJCTL_REC_VOLUME PHONE_REC_VOLUME +#define IXJCTL_REC_LEVEL PHONE_REC_LEVEL + +typedef enum { + f300_640 = 4, f300_500, f1100, f350, f400, f480, f440, f620, f20_50, + f133_200, f300, f300_420, f330, f300_425, f330_440, f340, f350_400, + f350_440, f350_450, f360, f380_420, f392, f400_425, f400_440, f400_450, + f420, f425, f425_450, f425_475, f435, f440_450, f440_480, f445, f450, + f452, f475, f480_620, f494, f500, f520, f523, f525, f540_660, f587, + f590, f600, f660, f700, f740, f750, f750_1450, f770, f800, f816, f850, + f857_1645, f900, f900_1300, f935_1215, f941_1477, f942, f950, f950_1400, + f975, f1000, f1020, f1050, f1100_1750, f1140, f1200, f1209, f1330, f1336, + lf1366, f1380, f1400, f1477, f1600, f1633_1638, f1800, f1860 +} IXJ_FILTER_FREQ; + +typedef struct { + unsigned int filter; + IXJ_FILTER_FREQ freq; + char enable; +} IXJ_FILTER; + +typedef struct { + char enable; + char en_filter; + unsigned int filter; + unsigned int on1; + unsigned int off1; + unsigned int on2; + unsigned int off2; + unsigned int on3; + unsigned int off3; +} IXJ_FILTER_CADENCE; + +#define IXJCTL_SET_FILTER _IOW ('q', 0xC7, IXJ_FILTER *) +#define IXJCTL_SET_FILTER_RAW _IOW ('q', 0xDD, IXJ_FILTER_RAW *) +#define IXJCTL_GET_FILTER_HIST _IOW ('q', 0xC8, int) +#define IXJCTL_FILTER_CADENCE _IOW ('q', 0xD6, IXJ_FILTER_CADENCE *) +#define IXJCTL_PLAY_CID _IO ('q', 0xD7) +/****************************************************************************** +* +* This IOCTL allows you to reassign values in the tone index table. The +* tone table has 32 entries (0 - 31), but the driver only allows entries +* 13 - 27 to be modified, entry 0 is reserved for silence and 1 - 12 are +* the standard DTMF digits and 28 - 31 are the DTMF tones for A, B, C & D. +* The positions used internally for Call Progress Tones are as follows: +* Dial Tone - 25 +* Ring Back - 26 +* Busy Signal - 27 +* +* The freq values are calculated as: +* freq = cos(2 * PI * frequency / 8000) +* +* The most commonly needed values are already calculated and listed in the +* enum IXJ_TONE_FREQ. Each tone index can have two frequencies with +* different gains, if you are only using a single frequency set the unused +* one to 0. +* +* The gain values range from 0 to 15 indicating +6dB to -24dB in 2dB +* increments. +* +******************************************************************************/ + +typedef enum { + hz20 = 0x7ffa, + hz50 = 0x7fe5, + hz133 = 0x7f4c, + hz200 = 0x7e6b, + hz261 = 0x7d50, /* .63 C1 */ + hz277 = 0x7cfa, /* .18 CS1 */ + hz293 = 0x7c9f, /* .66 D1 */ + hz300 = 0x7c75, + hz311 = 0x7c32, /* .13 DS1 */ + hz329 = 0x7bbf, /* .63 E1 */ + hz330 = 0x7bb8, + hz340 = 0x7b75, + hz349 = 0x7b37, /* .23 F1 */ + hz350 = 0x7b30, + hz360 = 0x7ae9, + hz369 = 0x7aa8, /* .99 FS1 */ + hz380 = 0x7a56, + hz392 = 0x79fa, /* .00 G1 */ + hz400 = 0x79bb, + hz415 = 0x7941, /* .30 GS1 */ + hz420 = 0x7918, + hz425 = 0x78ee, + hz435 = 0x7899, + hz440 = 0x786d, /* .00 A1 */ + hz445 = 0x7842, + hz450 = 0x7815, + hz452 = 0x7803, + hz466 = 0x7784, /* .16 AS1 */ + hz475 = 0x7731, + hz480 = 0x7701, + hz493 = 0x7685, /* .88 B1 */ + hz494 = 0x767b, + hz500 = 0x7640, + hz520 = 0x7578, + hz523 = 0x7559, /* .25 C2 */ + hz525 = 0x7544, + hz540 = 0x74a7, + hz554 = 0x7411, /* .37 CS2 */ + hz587 = 0x72a1, /* .33 D2 */ + hz590 = 0x727f, + hz600 = 0x720b, + hz620 = 0x711e, + hz622 = 0x7106, /* .25 DS2 */ + hz659 = 0x6f3b, /* .26 E2 */ + hz660 = 0x6f2e, + hz698 = 0x6d3d, /* .46 F2 */ + hz700 = 0x6d22, + hz739 = 0x6b09, /* .99 FS2 */ + hz740 = 0x6afa, + hz750 = 0x6a6c, + hz770 = 0x694b, + hz783 = 0x688b, /* .99 G2 */ + hz800 = 0x678d, + hz816 = 0x6698, + hz830 = 0x65bf, /* .61 GS2 */ + hz850 = 0x6484, + hz857 = 0x6414, + hz880 = 0x629f, /* .00 A2 */ + hz900 = 0x6154, + hz932 = 0x5f35, /* .33 AS2 */ + hz935 = 0x5f01, + hz941 = 0x5e9a, + hz942 = 0x5e88, + hz950 = 0x5dfd, + hz975 = 0x5c44, + hz1000 = 0x5a81, + hz1020 = 0x5912, + hz1050 = 0x56e2, + hz1100 = 0x5320, + hz1140 = 0x5007, + hz1200 = 0x4b3b, + hz1209 = 0x4a80, + hz1215 = 0x4a02, + hz1250 = 0x471c, + hz1300 = 0x42e0, + hz1330 = 0x4049, + hz1336 = 0x3fc4, + hz1366 = 0x3d22, + hz1380 = 0x3be4, + hz1400 = 0x3a1b, + hz1450 = 0x3596, + hz1477 = 0x331c, + hz1500 = 0x30fb, + hz1600 = 0x278d, + hz1633 = 0x2462, + hz1638 = 0x23e7, + hz1645 = 0x233a, + hz1750 = 0x18f8, + hz1800 = 0x1405, + hz1860 = 0xe0b, + hz2100 = 0xf5f6, + hz2130 = 0xf2f5, + hz2450 = 0xd3b3, + hz2750 = 0xb8e4 +} IXJ_FREQ; + +typedef enum { + C1 = hz261, + CS1 = hz277, + D1 = hz293, + DS1 = hz311, + E1 = hz329, + F1 = hz349, + FS1 = hz369, + G1 = hz392, + GS1 = hz415, + A1 = hz440, + AS1 = hz466, + B1 = hz493, + C2 = hz523, + CS2 = hz554, + D2 = hz587, + DS2 = hz622, + E2 = hz659, + F2 = hz698, + FS2 = hz739, + G2 = hz783, + GS2 = hz830, + A2 = hz880, + AS2 = hz932, +} IXJ_NOTE; + +typedef struct { + int tone_index; + int freq0; + int gain0; + int freq1; + int gain1; +} IXJ_TONE; + +#define IXJCTL_INIT_TONE _IOW ('q', 0xC9, IXJ_TONE *) + +/****************************************************************************** +* +* The IXJCTL_TONE_CADENCE ioctl defines tone sequences used for various +* Call Progress Tones (CPT). This is accomplished by setting up an array of +* IXJ_CADENCE_ELEMENT structures that sequentially define the states of +* the tone sequence. The tone_on_time and tone_off time are in +* 250 microsecond intervals. A pointer to this array is passed to the +* driver as the ce element of an IXJ_CADENCE structure. The elements_used +* must be set to the number of IXJ_CADENCE_ELEMENTS in the array. The +* termination variable defines what to do at the end of a cadence, the +* options are to play the cadence once and stop, to repeat the last +* element of the cadence indefinitely, or to repeat the entire cadence +* indefinitely. The ce variable is a pointer to the array of IXJ_TONE +* structures. If the freq0 variable is non-zero, the tone table contents +* for the tone_index are updated to the frequencies and gains defined. It +* should be noted that DTMF tones cannot be reassigned, so if DTMF tone +* table indexes are used in a cadence the frequency and gain variables will +* be ignored. +* +* If the array elements contain frequency parameters the driver will +* initialize the needed tone table elements and begin playing the tone, +* there is no preset limit on the number of elements in the cadence. If +* there is more than one frequency used in the cadence, sequential elements +* of different frequencies MUST use different tone table indexes. Only one +* cadence can be played at a time. It is possible to build complex +* cadences with multiple frequencies using 2 tone table indexes by +* alternating between them. +* +******************************************************************************/ + +typedef struct { + int index; + int tone_on_time; + int tone_off_time; + int freq0; + int gain0; + int freq1; + int gain1; +} IXJ_CADENCE_ELEMENT; + +typedef enum { + PLAY_ONCE, + REPEAT_LAST_ELEMENT, + REPEAT_ALL +} IXJ_CADENCE_TERM; + +typedef struct { + int elements_used; + IXJ_CADENCE_TERM termination; + IXJ_CADENCE_ELEMENT *ce; +} IXJ_CADENCE; + +#define IXJCTL_TONE_CADENCE _IOW ('q', 0xCA, IXJ_CADENCE *) +/****************************************************************************** +* +* This group of IOCTLs deal with the playback settings of the DSP +* +******************************************************************************/ + +#define IXJCTL_PLAY_CODEC PHONE_PLAY_CODEC +#define IXJCTL_PLAY_START PHONE_PLAY_START +#define IXJCTL_PLAY_STOP PHONE_PLAY_STOP +#define IXJCTL_PLAY_DEPTH PHONE_PLAY_DEPTH +#define IXJCTL_PLAY_VOLUME PHONE_PLAY_VOLUME +#define IXJCTL_PLAY_LEVEL PHONE_PLAY_LEVEL + +/****************************************************************************** +* +* This group of IOCTLs deal with the Acoustic Echo Cancellation settings +* of the DSP +* +* Issuing the IXJCTL_AEC_START command with a value of AEC_OFF has the +* same effect as IXJCTL_AEC_STOP. This is to simplify slider bar +* controls. IXJCTL_AEC_GET_LEVEL returns the current setting of the AEC. +******************************************************************************/ +#define IXJCTL_AEC_START _IOW ('q', 0xCB, int) +#define IXJCTL_AEC_STOP _IO ('q', 0xCC) +#define IXJCTL_AEC_GET_LEVEL _IO ('q', 0xCD) + +#define AEC_OFF 0 +#define AEC_LOW 1 +#define AEC_MED 2 +#define AEC_HIGH 3 +#define AEC_AUTO 4 +#define AEC_AGC 5 +/****************************************************************************** +* +* Call Progress Tones, DTMF, etc. +* IXJCTL_DTMF_OOB determines if DTMF signaling is sent as Out-Of-Band +* only. If you pass a 1, DTMF is suppressed from the audio stream. +* Tone on and off times are in 250 microsecond intervals so +* ioctl(ixj1, IXJCTL_SET_TONE_ON_TIME, 360); +* will set the tone on time of board ixj1 to 360 * 250us = 90ms +* the default values of tone on and off times is 840 or 210ms +******************************************************************************/ + +#define IXJCTL_DTMF_READY PHONE_DTMF_READY +#define IXJCTL_GET_DTMF PHONE_GET_DTMF +#define IXJCTL_GET_DTMF_ASCII PHONE_GET_DTMF_ASCII +#define IXJCTL_DTMF_OOB PHONE_DTMF_OOB +#define IXJCTL_EXCEPTION PHONE_EXCEPTION +#define IXJCTL_PLAY_TONE PHONE_PLAY_TONE +#define IXJCTL_SET_TONE_ON_TIME PHONE_SET_TONE_ON_TIME +#define IXJCTL_SET_TONE_OFF_TIME PHONE_SET_TONE_OFF_TIME +#define IXJCTL_GET_TONE_ON_TIME PHONE_GET_TONE_ON_TIME +#define IXJCTL_GET_TONE_OFF_TIME PHONE_GET_TONE_OFF_TIME +#define IXJCTL_GET_TONE_STATE PHONE_GET_TONE_STATE +#define IXJCTL_BUSY PHONE_BUSY +#define IXJCTL_RINGBACK PHONE_RINGBACK +#define IXJCTL_DIALTONE PHONE_DIALTONE +#define IXJCTL_CPT_STOP PHONE_CPT_STOP + +/****************************************************************************** +* LineJACK specific IOCTLs +* +* The lsb 4 bits of the LED argument represent the state of each of the 4 +* LED's on the LineJACK +******************************************************************************/ + +#define IXJCTL_SET_LED _IOW ('q', 0xCE, int) +#define IXJCTL_MIXER _IOW ('q', 0xCF, int) + +/****************************************************************************** +* +* The master volume controls use attenuation with 32 levels from 0 to -62dB +* with steps of 2dB each, the defines should be OR'ed together then sent +* as the parameter to the mixer command to change the mixer settings. +* +******************************************************************************/ +#define MIXER_MASTER_L 0x0000 +#define MIXER_MASTER_R 0x0100 +#define ATT00DB 0x00 +#define ATT02DB 0x01 +#define ATT04DB 0x02 +#define ATT06DB 0x03 +#define ATT08DB 0x04 +#define ATT10DB 0x05 +#define ATT12DB 0x06 +#define ATT14DB 0x07 +#define ATT16DB 0x08 +#define ATT18DB 0x09 +#define ATT20DB 0x0A +#define ATT22DB 0x0B +#define ATT24DB 0x0C +#define ATT26DB 0x0D +#define ATT28DB 0x0E +#define ATT30DB 0x0F +#define ATT32DB 0x10 +#define ATT34DB 0x11 +#define ATT36DB 0x12 +#define ATT38DB 0x13 +#define ATT40DB 0x14 +#define ATT42DB 0x15 +#define ATT44DB 0x16 +#define ATT46DB 0x17 +#define ATT48DB 0x18 +#define ATT50DB 0x19 +#define ATT52DB 0x1A +#define ATT54DB 0x1B +#define ATT56DB 0x1C +#define ATT58DB 0x1D +#define ATT60DB 0x1E +#define ATT62DB 0x1F +#define MASTER_MUTE 0x80 + +/****************************************************************************** +* +* The input volume controls use gain with 32 levels from +12dB to -50dB +* with steps of 2dB each, the defines should be OR'ed together then sent +* as the parameter to the mixer command to change the mixer settings. +* +******************************************************************************/ +#define MIXER_PORT_CD_L 0x0600 +#define MIXER_PORT_CD_R 0x0700 +#define MIXER_PORT_LINE_IN_L 0x0800 +#define MIXER_PORT_LINE_IN_R 0x0900 +#define MIXER_PORT_POTS_REC 0x0C00 +#define MIXER_PORT_MIC 0x0E00 + +#define GAIN12DB 0x00 +#define GAIN10DB 0x01 +#define GAIN08DB 0x02 +#define GAIN06DB 0x03 +#define GAIN04DB 0x04 +#define GAIN02DB 0x05 +#define GAIN00DB 0x06 +#define GAIN_02DB 0x07 +#define GAIN_04DB 0x08 +#define GAIN_06DB 0x09 +#define GAIN_08DB 0x0A +#define GAIN_10DB 0x0B +#define GAIN_12DB 0x0C +#define GAIN_14DB 0x0D +#define GAIN_16DB 0x0E +#define GAIN_18DB 0x0F +#define GAIN_20DB 0x10 +#define GAIN_22DB 0x11 +#define GAIN_24DB 0x12 +#define GAIN_26DB 0x13 +#define GAIN_28DB 0x14 +#define GAIN_30DB 0x15 +#define GAIN_32DB 0x16 +#define GAIN_34DB 0x17 +#define GAIN_36DB 0x18 +#define GAIN_38DB 0x19 +#define GAIN_40DB 0x1A +#define GAIN_42DB 0x1B +#define GAIN_44DB 0x1C +#define GAIN_46DB 0x1D +#define GAIN_48DB 0x1E +#define GAIN_50DB 0x1F +#define INPUT_MUTE 0x80 + +/****************************************************************************** +* +* The POTS volume control use attenuation with 8 levels from 0dB to -28dB +* with steps of 4dB each, the defines should be OR'ed together then sent +* as the parameter to the mixer command to change the mixer settings. +* +******************************************************************************/ +#define MIXER_PORT_POTS_PLAY 0x0F00 + +#define POTS_ATT_00DB 0x00 +#define POTS_ATT_04DB 0x01 +#define POTS_ATT_08DB 0x02 +#define POTS_ATT_12DB 0x03 +#define POTS_ATT_16DB 0x04 +#define POTS_ATT_20DB 0x05 +#define POTS_ATT_24DB 0x06 +#define POTS_ATT_28DB 0x07 +#define POTS_MUTE 0x80 + +/****************************************************************************** +* +* The DAA controls the interface to the PSTN port. The driver loads the +* US coefficients by default, so if you live in a different country you +* need to load the set for your countries phone system. +* +******************************************************************************/ +#define IXJCTL_DAA_COEFF_SET _IOW ('q', 0xD0, int) + +#define DAA_US 1 /*PITA 8kHz */ +#define DAA_UK 2 /*ISAR34 8kHz */ +#define DAA_FRANCE 3 /* */ +#define DAA_GERMANY 4 +#define DAA_AUSTRALIA 5 +#define DAA_JAPAN 6 + +/****************************************************************************** +* +* Use IXJCTL_PORT to set or query the port the card is set to. If the +* argument is set to PORT_QUERY, the return value of the ioctl will +* indicate which port is currently in use, otherwise it will change the +* port. +* +******************************************************************************/ +#define IXJCTL_PORT _IOW ('q', 0xD1, int) + +#define PORT_QUERY 0 +#define PORT_POTS 1 +#define PORT_PSTN 2 +#define PORT_SPEAKER 3 +#define PORT_HANDSET 4 + +#define IXJCTL_PSTN_SET_STATE PHONE_PSTN_SET_STATE +#define IXJCTL_PSTN_GET_STATE PHONE_PSTN_GET_STATE + +#define PSTN_ON_HOOK 0 +#define PSTN_RINGING 1 +#define PSTN_OFF_HOOK 2 +#define PSTN_PULSE_DIAL 3 + +/****************************************************************************** +* +* The DAA Analog GAIN sets 2 parameters at one time, the receive gain (AGRR), +* and the transmit gain (AGX). OR together the components and pass them +* as the parameter to IXJCTL_DAA_AGAIN. The default setting is both at 0dB. +* +******************************************************************************/ +#define IXJCTL_DAA_AGAIN _IOW ('q', 0xD2, int) + +#define AGRR00DB 0x00 /* Analog gain in receive direction 0dB */ +#define AGRR3_5DB 0x10 /* Analog gain in receive direction 3.5dB */ +#define AGRR06DB 0x30 /* Analog gain in receive direction 6dB */ + +#define AGX00DB 0x00 /* Analog gain in transmit direction 0dB */ +#define AGX_6DB 0x04 /* Analog gain in transmit direction -6dB */ +#define AGX3_5DB 0x08 /* Analog gain in transmit direction 3.5dB */ +#define AGX_2_5B 0x0C /* Analog gain in transmit direction -2.5dB */ + +#define IXJCTL_PSTN_LINETEST _IO ('q', 0xD3) + +#define IXJCTL_CID _IOR ('q', 0xD4, PHONE_CID *) +#define IXJCTL_VMWI _IOR ('q', 0xD8, int) +#define IXJCTL_CIDCW _IOW ('q', 0xD9, PHONE_CID *) +/****************************************************************************** +* +* The wink duration is tunable with this ioctl. The default wink duration +* is 320ms. You do not need to use this ioctl if you do not require a +* different wink duration. +* +******************************************************************************/ +#define IXJCTL_WINK_DURATION PHONE_WINK_DURATION + +/****************************************************************************** +* +* This ioctl will connect the POTS port to the PSTN port on the LineJACK +* In order for this to work properly the port selection should be set to +* the PSTN port with IXJCTL_PORT prior to calling this ioctl. This will +* enable conference calls between PSTN callers and network callers. +* Passing a 1 to this ioctl enables the POTS<->PSTN connection while +* passing a 0 turns it back off. +* +******************************************************************************/ +#define IXJCTL_POTS_PSTN _IOW ('q', 0xD5, int) + +/****************************************************************************** +* +* IOCTLs added by request. +* +* IXJCTL_HZ sets the value your Linux kernel uses for HZ as defined in +* /usr/include/asm/param.h, this determines the fundamental +* frequency of the clock ticks on your Linux system. The kernel +* must be rebuilt if you change this value, also all modules you +* use (except this one) must be recompiled. The default value +* is 100, and you only need to use this IOCTL if you use some +* other value. +* +* +* IXJCTL_RATE sets the number of times per second that the driver polls +* the DSP. This value cannot be larger than HZ. By +* increasing both of these values, you may be able to reduce +* latency because the max hang time that can exist between the +* driver and the DSP will be reduced. +* +******************************************************************************/ + +#define IXJCTL_HZ _IOW ('q', 0xE0, int) +#define IXJCTL_RATE _IOW ('q', 0xE1, int) +#define IXJCTL_FRAMES_READ _IOR ('q', 0xE2, unsigned long) +#define IXJCTL_FRAMES_WRITTEN _IOR ('q', 0xE3, unsigned long) +#define IXJCTL_READ_WAIT _IOR ('q', 0xE4, unsigned long) +#define IXJCTL_WRITE_WAIT _IOR ('q', 0xE5, unsigned long) +#define IXJCTL_DRYBUFFER_READ _IOR ('q', 0xE6, unsigned long) +#define IXJCTL_DRYBUFFER_CLEAR _IO ('q', 0xE7) +#define IXJCTL_DTMF_PRESCALE _IOW ('q', 0xE8, int) + +/****************************************************************************** +* +* This ioctl allows the user application to control what events the driver +* will send signals for, and what signals it will send for which event. +* By default, if signaling is enabled, all events will send SIGIO when +* they occur. To disable signals for an event set the signal to 0. +* +******************************************************************************/ +typedef enum { + SIG_DTMF_READY, + SIG_HOOKSTATE, + SIG_FLASH, + SIG_PSTN_RING, + SIG_CALLER_ID, + SIG_PSTN_WINK, + SIG_F0, SIG_F1, SIG_F2, SIG_F3, + SIG_FC0, SIG_FC1, SIG_FC2, SIG_FC3, + SIG_READ_READY = 33, + SIG_WRITE_READY = 34 +} IXJ_SIGEVENT; + +typedef struct { + unsigned int event; + int signal; +} IXJ_SIGDEF; + +#define IXJCTL_SIGCTL _IOW ('q', 0xE9, IXJ_SIGDEF *) + +/****************************************************************************** +* +* These ioctls allow the user application to change the gain in the +* Smart Cable of the Internet Phone Card. Sending -1 as a value will cause +* return value to be the current setting. Valid values to set are 0x00 - 0x1F +* +* 11111 = +12 dB +* 10111 = 0 dB +* 00000 = -34.5 dB +* +* IXJCTL_SC_RXG sets the Receive gain +* IXJCTL_SC_TXG sets the Transmit gain +* +******************************************************************************/ +#define IXJCTL_SC_RXG _IOW ('q', 0xEA, int) +#define IXJCTL_SC_TXG _IOW ('q', 0xEB, int) + +/****************************************************************************** +* +* The intercom IOCTL's short the output from one card to the input of the +* other and vice versa (actually done in the DSP read function). It is only +* necessary to execute the IOCTL on one card, but it is necessary to have +* both devices open to be able to detect hook switch changes. The record +* codec and rate of each card must match the playback codec and rate of +* the other card for this to work properly. +* +******************************************************************************/ + +#define IXJCTL_INTERCOM_START _IOW ('q', 0xFD, int) +#define IXJCTL_INTERCOM_STOP _IOW ('q', 0xFE, int) + +/****************************************************************************** + * + * new structure for accessing raw filter information + * + ******************************************************************************/ + +typedef struct { + unsigned int filter; + char enable; + unsigned int coeff[19]; +} IXJ_FILTER_RAW; + +#endif diff --git a/kernel_headers/linux/jffs2.h b/kernel_headers/linux/jffs2.h new file mode 100644 index 0000000..a18b719 --- /dev/null +++ b/kernel_headers/linux/jffs2.h @@ -0,0 +1,223 @@ +/* + * JFFS2 -- Journalling Flash File System, Version 2. + * + * Copyright © 2001-2007 Red Hat, Inc. + * Copyright © 2004-2010 David Woodhouse + * + * Created by David Woodhouse + * + * For licensing information, see the file 'LICENCE' in the + * jffs2 directory. + */ + +#ifndef __LINUX_JFFS2_H__ +#define __LINUX_JFFS2_H__ + +#include +#include + +/* You must include something which defines the C99 uintXX_t types. + We don't do it from here because this file is used in too many + different environments. */ + +/* Values we may expect to find in the 'magic' field */ +#define JFFS2_OLD_MAGIC_BITMASK 0x1984 +#define JFFS2_MAGIC_BITMASK 0x1985 +#define KSAMTIB_CIGAM_2SFFJ 0x8519 /* For detecting wrong-endian fs */ +#define JFFS2_EMPTY_BITMASK 0xffff +#define JFFS2_DIRTY_BITMASK 0x0000 + +/* Summary node MAGIC marker */ +#define JFFS2_SUM_MAGIC 0x02851885 + +/* We only allow a single char for length, and 0xFF is empty flash so + we don't want it confused with a real length. Hence max 254. +*/ +#define JFFS2_MAX_NAME_LEN 254 + +/* How small can we sensibly write nodes? */ +#define JFFS2_MIN_DATA_LEN 128 + +#define JFFS2_COMPR_NONE 0x00 +#define JFFS2_COMPR_ZERO 0x01 +#define JFFS2_COMPR_RTIME 0x02 +#define JFFS2_COMPR_RUBINMIPS 0x03 +#define JFFS2_COMPR_COPY 0x04 +#define JFFS2_COMPR_DYNRUBIN 0x05 +#define JFFS2_COMPR_ZLIB 0x06 +#define JFFS2_COMPR_LZO 0x07 +/* Compatibility flags. */ +#define JFFS2_COMPAT_MASK 0xc000 /* What do to if an unknown nodetype is found */ +#define JFFS2_NODE_ACCURATE 0x2000 +/* INCOMPAT: Fail to mount the filesystem */ +#define JFFS2_FEATURE_INCOMPAT 0xc000 +/* ROCOMPAT: Mount read-only */ +#define JFFS2_FEATURE_ROCOMPAT 0x8000 +/* RWCOMPAT_COPY: Mount read/write, and copy the node when it's GC'd */ +#define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000 +/* RWCOMPAT_DELETE: Mount read/write, and delete the node when it's GC'd */ +#define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000 + +#define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1) +#define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2) +#define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3) +#define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4) + +#define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6) + +#define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8) +#define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9) + +/* XATTR Related */ +#define JFFS2_XPREFIX_USER 1 /* for "user." */ +#define JFFS2_XPREFIX_SECURITY 2 /* for "security." */ +#define JFFS2_XPREFIX_ACL_ACCESS 3 /* for "system.posix_acl_access" */ +#define JFFS2_XPREFIX_ACL_DEFAULT 4 /* for "system.posix_acl_default" */ +#define JFFS2_XPREFIX_TRUSTED 5 /* for "trusted.*" */ + +#define JFFS2_ACL_VERSION 0x0001 + +// Maybe later... +//#define JFFS2_NODETYPE_CHECKPOINT (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3) +//#define JFFS2_NODETYPE_OPTIONS (JFFS2_FEATURE_RWCOMPAT_COPY | JFFS2_NODE_ACCURATE | 4) + + +#define JFFS2_INO_FLAG_PREREAD 1 /* Do read_inode() for this one at + mount time, don't wait for it to + happen later */ +#define JFFS2_INO_FLAG_USERCOMPR 2 /* User has requested a specific + compression type */ + + +/* These can go once we've made sure we've caught all uses without + byteswapping */ + +typedef struct { + __u32 v32; +} __attribute__((packed)) jint32_t; + +typedef struct { + __u32 m; +} __attribute__((packed)) jmode_t; + +typedef struct { + __u16 v16; +} __attribute__((packed)) jint16_t; + +struct jffs2_unknown_node +{ + /* All start like this */ + jint16_t magic; + jint16_t nodetype; + jint32_t totlen; /* So we can skip over nodes we don't grok */ + jint32_t hdr_crc; +}; + +struct jffs2_raw_dirent +{ + jint16_t magic; + jint16_t nodetype; /* == JFFS2_NODETYPE_DIRENT */ + jint32_t totlen; + jint32_t hdr_crc; + jint32_t pino; + jint32_t version; + jint32_t ino; /* == zero for unlink */ + jint32_t mctime; + __u8 nsize; + __u8 type; + __u8 unused[2]; + jint32_t node_crc; + jint32_t name_crc; + __u8 name[0]; +}; + +/* The JFFS2 raw inode structure: Used for storage on physical media. */ +/* The uid, gid, atime, mtime and ctime members could be longer, but + are left like this for space efficiency. If and when people decide + they really need them extended, it's simple enough to add support for + a new type of raw node. +*/ +struct jffs2_raw_inode +{ + jint16_t magic; /* A constant magic number. */ + jint16_t nodetype; /* == JFFS2_NODETYPE_INODE */ + jint32_t totlen; /* Total length of this node (inc data, etc.) */ + jint32_t hdr_crc; + jint32_t ino; /* Inode number. */ + jint32_t version; /* Version number. */ + jmode_t mode; /* The file's type or mode. */ + jint16_t uid; /* The file's owner. */ + jint16_t gid; /* The file's group. */ + jint32_t isize; /* Total resultant size of this inode (used for truncations) */ + jint32_t atime; /* Last access time. */ + jint32_t mtime; /* Last modification time. */ + jint32_t ctime; /* Change time. */ + jint32_t offset; /* Where to begin to write. */ + jint32_t csize; /* (Compressed) data size */ + jint32_t dsize; /* Size of the node's data. (after decompression) */ + __u8 compr; /* Compression algorithm used */ + __u8 usercompr; /* Compression algorithm requested by the user */ + jint16_t flags; /* See JFFS2_INO_FLAG_* */ + jint32_t data_crc; /* CRC for the (compressed) data. */ + jint32_t node_crc; /* CRC for the raw inode (excluding data) */ + __u8 data[0]; +}; + +struct jffs2_raw_xattr { + jint16_t magic; + jint16_t nodetype; /* = JFFS2_NODETYPE_XATTR */ + jint32_t totlen; + jint32_t hdr_crc; + jint32_t xid; /* XATTR identifier number */ + jint32_t version; + __u8 xprefix; + __u8 name_len; + jint16_t value_len; + jint32_t data_crc; + jint32_t node_crc; + __u8 data[0]; +} __attribute__((packed)); + +struct jffs2_raw_xref +{ + jint16_t magic; + jint16_t nodetype; /* = JFFS2_NODETYPE_XREF */ + jint32_t totlen; + jint32_t hdr_crc; + jint32_t ino; /* inode number */ + jint32_t xid; /* XATTR identifier number */ + jint32_t xseqno; /* xref sequential number */ + jint32_t node_crc; +} __attribute__((packed)); + +struct jffs2_raw_summary +{ + jint16_t magic; + jint16_t nodetype; /* = JFFS2_NODETYPE_SUMMARY */ + jint32_t totlen; + jint32_t hdr_crc; + jint32_t sum_num; /* number of sum entries*/ + jint32_t cln_mkr; /* clean marker size, 0 = no cleanmarker */ + jint32_t padded; /* sum of the size of padding nodes */ + jint32_t sum_crc; /* summary information crc */ + jint32_t node_crc; /* node crc */ + jint32_t sum[0]; /* inode summary info */ +}; + +union jffs2_node_union +{ + struct jffs2_raw_inode i; + struct jffs2_raw_dirent d; + struct jffs2_raw_xattr x; + struct jffs2_raw_xref r; + struct jffs2_raw_summary s; + struct jffs2_unknown_node u; +}; + +/* Data payload for device nodes. */ +union jffs2_device_node { + jint16_t old_id; + jint32_t new_id; +}; + +#endif /* __LINUX_JFFS2_H__ */ diff --git a/kernel_headers/linux/joystick.h b/kernel_headers/linux/joystick.h new file mode 100644 index 0000000..141a6d5 --- /dev/null +++ b/kernel_headers/linux/joystick.h @@ -0,0 +1,136 @@ +/* + * Copyright (C) 1996-2000 Vojtech Pavlik + * + * Sponsored by SuSE + */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Should you need to contact me, the author, you can do so either by + * e-mail - mail your message to , or by paper mail: + * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic + */ +#ifndef _LINUX_JOYSTICK_H +#define _LINUX_JOYSTICK_H + + + +#include +#include + +/* + * Version + */ + +#define JS_VERSION 0x020100 + +/* + * Types and constants for reading from /dev/js + */ + +#define JS_EVENT_BUTTON 0x01 /* button pressed/released */ +#define JS_EVENT_AXIS 0x02 /* joystick moved */ +#define JS_EVENT_INIT 0x80 /* initial state of device */ + +struct js_event { + __u32 time; /* event timestamp in milliseconds */ + __s16 value; /* value */ + __u8 type; /* event type */ + __u8 number; /* axis/button number */ +}; + +/* + * IOCTL commands for joystick driver + */ + +#define JSIOCGVERSION _IOR('j', 0x01, __u32) /* get driver version */ + +#define JSIOCGAXES _IOR('j', 0x11, __u8) /* get number of axes */ +#define JSIOCGBUTTONS _IOR('j', 0x12, __u8) /* get number of buttons */ +#define JSIOCGNAME(len) _IOC(_IOC_READ, 'j', 0x13, len) /* get identifier string */ + +#define JSIOCSCORR _IOW('j', 0x21, struct js_corr) /* set correction values */ +#define JSIOCGCORR _IOR('j', 0x22, struct js_corr) /* get correction values */ + +#define JSIOCSAXMAP _IOW('j', 0x31, __u8[ABS_CNT]) /* set axis mapping */ +#define JSIOCGAXMAP _IOR('j', 0x32, __u8[ABS_CNT]) /* get axis mapping */ +#define JSIOCSBTNMAP _IOW('j', 0x33, __u16[KEY_MAX - BTN_MISC + 1]) /* set button mapping */ +#define JSIOCGBTNMAP _IOR('j', 0x34, __u16[KEY_MAX - BTN_MISC + 1]) /* get button mapping */ + +/* + * Types and constants for get/set correction + */ + +#define JS_CORR_NONE 0x00 /* returns raw values */ +#define JS_CORR_BROKEN 0x01 /* broken line */ + +struct js_corr { + __s32 coef[8]; + __s16 prec; + __u16 type; +}; + +/* + * v0.x compatibility definitions + */ + +#define JS_RETURN sizeof(struct JS_DATA_TYPE) +#define JS_TRUE 1 +#define JS_FALSE 0 +#define JS_X_0 0x01 +#define JS_Y_0 0x02 +#define JS_X_1 0x04 +#define JS_Y_1 0x08 +#define JS_MAX 2 + +#define JS_DEF_TIMEOUT 0x1300 +#define JS_DEF_CORR 0 +#define JS_DEF_TIMELIMIT 10L + +#define JS_SET_CAL 1 +#define JS_GET_CAL 2 +#define JS_SET_TIMEOUT 3 +#define JS_GET_TIMEOUT 4 +#define JS_SET_TIMELIMIT 5 +#define JS_GET_TIMELIMIT 6 +#define JS_GET_ALL 7 +#define JS_SET_ALL 8 + +struct JS_DATA_TYPE { + __s32 buttons; + __s32 x; + __s32 y; +}; + +struct JS_DATA_SAVE_TYPE_32 { + __s32 JS_TIMEOUT; + __s32 BUSY; + __s32 JS_EXPIRETIME; + __s32 JS_TIMELIMIT; + struct JS_DATA_TYPE JS_SAVE; + struct JS_DATA_TYPE JS_CORR; +}; + +struct JS_DATA_SAVE_TYPE_64 { + __s32 JS_TIMEOUT; + __s32 BUSY; + __s64 JS_EXPIRETIME; + __s64 JS_TIMELIMIT; + struct JS_DATA_TYPE JS_SAVE; + struct JS_DATA_TYPE JS_CORR; +}; + + +#endif /* _LINUX_JOYSTICK_H */ diff --git a/kernel_headers/linux/kd.h b/kernel_headers/linux/kd.h new file mode 100644 index 0000000..3286a3f --- /dev/null +++ b/kernel_headers/linux/kd.h @@ -0,0 +1,183 @@ +#ifndef _LINUX_KD_H +#define _LINUX_KD_H +#include + + +/* 0x4B is 'K', to avoid collision with termios and vt */ + +#define GIO_FONT 0x4B60 /* gets font in expanded form */ +#define PIO_FONT 0x4B61 /* use font in expanded form */ + +#define GIO_FONTX 0x4B6B /* get font using struct consolefontdesc */ +#define PIO_FONTX 0x4B6C /* set font using struct consolefontdesc */ +struct consolefontdesc { + unsigned short charcount; /* characters in font (256 or 512) */ + unsigned short charheight; /* scan lines per character (1-32) */ + char *chardata; /* font data in expanded form */ +}; + +#define PIO_FONTRESET 0x4B6D /* reset to default font */ + +#define GIO_CMAP 0x4B70 /* gets colour palette on VGA+ */ +#define PIO_CMAP 0x4B71 /* sets colour palette on VGA+ */ + +#define KIOCSOUND 0x4B2F /* start sound generation (0 for off) */ +#define KDMKTONE 0x4B30 /* generate tone */ + +#define KDGETLED 0x4B31 /* return current led state */ +#define KDSETLED 0x4B32 /* set led state [lights, not flags] */ +#define LED_SCR 0x01 /* scroll lock led */ +#define LED_NUM 0x02 /* num lock led */ +#define LED_CAP 0x04 /* caps lock led */ + +#define KDGKBTYPE 0x4B33 /* get keyboard type */ +#define KB_84 0x01 +#define KB_101 0x02 /* this is what we always answer */ +#define KB_OTHER 0x03 + +#define KDADDIO 0x4B34 /* add i/o port as valid */ +#define KDDELIO 0x4B35 /* del i/o port as valid */ +#define KDENABIO 0x4B36 /* enable i/o to video board */ +#define KDDISABIO 0x4B37 /* disable i/o to video board */ + +#define KDSETMODE 0x4B3A /* set text/graphics mode */ +#define KD_TEXT 0x00 +#define KD_GRAPHICS 0x01 +#define KD_TEXT0 0x02 /* obsolete */ +#define KD_TEXT1 0x03 /* obsolete */ +#define KDGETMODE 0x4B3B /* get current mode */ + +#define KDMAPDISP 0x4B3C /* map display into address space */ +#define KDUNMAPDISP 0x4B3D /* unmap display from address space */ + +typedef char scrnmap_t; +#define E_TABSZ 256 +#define GIO_SCRNMAP 0x4B40 /* get screen mapping from kernel */ +#define PIO_SCRNMAP 0x4B41 /* put screen mapping table in kernel */ +#define GIO_UNISCRNMAP 0x4B69 /* get full Unicode screen mapping */ +#define PIO_UNISCRNMAP 0x4B6A /* set full Unicode screen mapping */ + +#define GIO_UNIMAP 0x4B66 /* get unicode-to-font mapping from kernel */ +struct unipair { + unsigned short unicode; + unsigned short fontpos; +}; +struct unimapdesc { + unsigned short entry_ct; + struct unipair *entries; +}; +#define PIO_UNIMAP 0x4B67 /* put unicode-to-font mapping in kernel */ +#define PIO_UNIMAPCLR 0x4B68 /* clear table, possibly advise hash algorithm */ +struct unimapinit { + unsigned short advised_hashsize; /* 0 if no opinion */ + unsigned short advised_hashstep; /* 0 if no opinion */ + unsigned short advised_hashlevel; /* 0 if no opinion */ +}; + +#define UNI_DIRECT_BASE 0xF000 /* start of Direct Font Region */ +#define UNI_DIRECT_MASK 0x01FF /* Direct Font Region bitmask */ + +#define K_RAW 0x00 +#define K_XLATE 0x01 +#define K_MEDIUMRAW 0x02 +#define K_UNICODE 0x03 +#define K_OFF 0x04 +#define KDGKBMODE 0x4B44 /* gets current keyboard mode */ +#define KDSKBMODE 0x4B45 /* sets current keyboard mode */ + +#define K_METABIT 0x03 +#define K_ESCPREFIX 0x04 +#define KDGKBMETA 0x4B62 /* gets meta key handling mode */ +#define KDSKBMETA 0x4B63 /* sets meta key handling mode */ + +#define K_SCROLLLOCK 0x01 +#define K_NUMLOCK 0x02 +#define K_CAPSLOCK 0x04 +#define KDGKBLED 0x4B64 /* get led flags (not lights) */ +#define KDSKBLED 0x4B65 /* set led flags (not lights) */ + +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + unsigned short kb_value; +}; +#define K_NORMTAB 0x00 +#define K_SHIFTTAB 0x01 +#define K_ALTTAB 0x02 +#define K_ALTSHIFTTAB 0x03 + +#define KDGKBENT 0x4B46 /* gets one entry in translation table */ +#define KDSKBENT 0x4B47 /* sets one entry in translation table */ + +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; +}; +#define KDGKBSENT 0x4B48 /* gets one function key string entry */ +#define KDSKBSENT 0x4B49 /* sets one function key string entry */ + +struct kbdiacr { + unsigned char diacr, base, result; +}; +struct kbdiacrs { + unsigned int kb_cnt; /* number of entries in following array */ + struct kbdiacr kbdiacr[256]; /* MAX_DIACR from keyboard.h */ +}; +#define KDGKBDIACR 0x4B4A /* read kernel accent table */ +#define KDSKBDIACR 0x4B4B /* write kernel accent table */ + +struct kbdiacruc { + unsigned int diacr, base, result; +}; +struct kbdiacrsuc { + unsigned int kb_cnt; /* number of entries in following array */ + struct kbdiacruc kbdiacruc[256]; /* MAX_DIACR from keyboard.h */ +}; +#define KDGKBDIACRUC 0x4BFA /* read kernel accent table - UCS */ +#define KDSKBDIACRUC 0x4BFB /* write kernel accent table - UCS */ + +struct kbkeycode { + unsigned int scancode, keycode; +}; +#define KDGETKEYCODE 0x4B4C /* read kernel keycode table entry */ +#define KDSETKEYCODE 0x4B4D /* write kernel keycode table entry */ + +#define KDSIGACCEPT 0x4B4E /* accept kbd generated signals */ + +struct kbd_repeat { + int delay; /* in msec; <= 0: don't change */ + int period; /* in msec; <= 0: don't change */ + /* earlier this field was misnamed "rate" */ +}; + +#define KDKBDREP 0x4B52 /* set keyboard delay/repeat rate; + * actually used values are returned */ + +#define KDFONTOP 0x4B72 /* font operations */ + +struct console_font_op { + unsigned int op; /* operation code KD_FONT_OP_* */ + unsigned int flags; /* KD_FONT_FLAG_* */ + unsigned int width, height; /* font size */ + unsigned int charcount; + unsigned char *data; /* font data with height fixed to 32 */ +}; + +struct console_font { + unsigned int width, height; /* font size */ + unsigned int charcount; + unsigned char *data; /* font data with height fixed to 32 */ +}; + +#define KD_FONT_OP_SET 0 /* Set font */ +#define KD_FONT_OP_GET 1 /* Get font */ +#define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to name / NULL */ +#define KD_FONT_OP_COPY 3 /* Copy from another console */ + +#define KD_FONT_FLAG_DONT_RECALC 1 /* Don't recalculate hw charcell size [compat] */ + +/* note: 0x4B00-0x4B4E all have had a value at some time; + don't reuse for the time being */ +/* note: 0x4B60-0x4B6D, 0x4B70-0x4B72 used above */ + +#endif /* _LINUX_KD_H */ diff --git a/kernel_headers/linux/kdev_t.h b/kernel_headers/linux/kdev_t.h new file mode 100644 index 0000000..3f10017 --- /dev/null +++ b/kernel_headers/linux/kdev_t.h @@ -0,0 +1,11 @@ +#ifndef _LINUX_KDEV_T_H +#define _LINUX_KDEV_T_H + +/* +Some programs want their definitions of MAJOR and MINOR and MKDEV +from the kernel sources. These must be the externally visible ones. +*/ +#define MAJOR(dev) ((dev)>>8) +#define MINOR(dev) ((dev) & 0xff) +#define MKDEV(ma,mi) ((ma)<<8 | (mi)) +#endif /* _LINUX_KDEV_T_H */ diff --git a/kernel_headers/linux/kernel-page-flags.h b/kernel_headers/linux/kernel-page-flags.h new file mode 100644 index 0000000..9adddde --- /dev/null +++ b/kernel_headers/linux/kernel-page-flags.h @@ -0,0 +1,36 @@ +#ifndef LINUX_KERNEL_PAGE_FLAGS_H +#define LINUX_KERNEL_PAGE_FLAGS_H + +/* + * Stable page flag bits exported to user space + */ + +#define KPF_LOCKED 0 +#define KPF_ERROR 1 +#define KPF_REFERENCED 2 +#define KPF_UPTODATE 3 +#define KPF_DIRTY 4 +#define KPF_LRU 5 +#define KPF_ACTIVE 6 +#define KPF_SLAB 7 +#define KPF_WRITEBACK 8 +#define KPF_RECLAIM 9 +#define KPF_BUDDY 10 + +/* 11-20: new additions in 2.6.31 */ +#define KPF_MMAP 11 +#define KPF_ANON 12 +#define KPF_SWAPCACHE 13 +#define KPF_SWAPBACKED 14 +#define KPF_COMPOUND_HEAD 15 +#define KPF_COMPOUND_TAIL 16 +#define KPF_HUGE 17 +#define KPF_UNEVICTABLE 18 +#define KPF_HWPOISON 19 +#define KPF_NOPAGE 20 + +#define KPF_KSM 21 +#define KPF_THP 22 + + +#endif /* LINUX_KERNEL_PAGE_FLAGS_H */ diff --git a/kernel_headers/linux/kernel.h b/kernel_headers/linux/kernel.h new file mode 100644 index 0000000..642d1e9 --- /dev/null +++ b/kernel_headers/linux/kernel.h @@ -0,0 +1,13 @@ +#ifndef _LINUX_KERNEL_H +#define _LINUX_KERNEL_H + +#include + +/* + * 'kernel.h' contains some often-used function prototypes etc + */ +#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) +#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) + + +#endif /* _LINUX_KERNEL_H */ diff --git a/kernel_headers/linux/kernelcapi.h b/kernel_headers/linux/kernelcapi.h new file mode 100644 index 0000000..7b6e7b1 --- /dev/null +++ b/kernel_headers/linux/kernelcapi.h @@ -0,0 +1,47 @@ +/* + * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $ + * + * Kernel CAPI 2.0 Interface for Linux + * + * (c) Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) + * + */ + +#ifndef __KERNELCAPI_H__ +#define __KERNELCAPI_H__ + +#define CAPI_MAXAPPL 240 /* maximum number of applications */ +#define CAPI_MAXCONTR 32 /* maximum number of controller */ +#define CAPI_MAXDATAWINDOW 8 + + +typedef struct kcapi_flagdef { + int contr; + int flag; +} kcapi_flagdef; + +typedef struct kcapi_carddef { + char driver[32]; + unsigned int port; + unsigned irq; + unsigned int membase; + int cardnr; +} kcapi_carddef; + +/* new ioctls >= 10 */ +#define KCAPI_CMD_TRACE 10 +#define KCAPI_CMD_ADDCARD 11 /* OBSOLETE */ + +/* + * flag > 2 => trace also data + * flag & 1 => show trace + */ +#define KCAPI_TRACE_OFF 0 +#define KCAPI_TRACE_SHORT_NO_DATA 1 +#define KCAPI_TRACE_FULL_NO_DATA 2 +#define KCAPI_TRACE_SHORT 3 +#define KCAPI_TRACE_FULL 4 + + + +#endif /* __KERNELCAPI_H__ */ diff --git a/kernel_headers/linux/kexec.h b/kernel_headers/linux/kexec.h new file mode 100644 index 0000000..5ebc302 --- /dev/null +++ b/kernel_headers/linux/kexec.h @@ -0,0 +1,52 @@ +#ifndef LINUX_KEXEC_H +#define LINUX_KEXEC_H + +/* kexec system call - It loads the new kernel to boot into. + * kexec does not sync, or unmount filesystems so if you need + * that to happen you need to do that yourself. + */ + +#include + +/* kexec flags for different usage scenarios */ +#define KEXEC_ON_CRASH 0x00000001 +#define KEXEC_PRESERVE_CONTEXT 0x00000002 +#define KEXEC_ARCH_MASK 0xffff0000 + +/* These values match the ELF architecture values. + * Unless there is a good reason that should continue to be the case. + */ +#define KEXEC_ARCH_DEFAULT ( 0 << 16) +#define KEXEC_ARCH_386 ( 3 << 16) +#define KEXEC_ARCH_X86_64 (62 << 16) +#define KEXEC_ARCH_PPC (20 << 16) +#define KEXEC_ARCH_PPC64 (21 << 16) +#define KEXEC_ARCH_IA_64 (50 << 16) +#define KEXEC_ARCH_ARM (40 << 16) +#define KEXEC_ARCH_S390 (22 << 16) +#define KEXEC_ARCH_SH (42 << 16) +#define KEXEC_ARCH_MIPS_LE (10 << 16) +#define KEXEC_ARCH_MIPS ( 8 << 16) + +/* The artificial cap on the number of segments passed to kexec_load. */ +#define KEXEC_SEGMENT_MAX 16 + +/* + * This structure is used to hold the arguments that are used when + * loading kernel binaries. + */ +struct kexec_segment { + const void *buf; + size_t bufsz; + const void *mem; + size_t memsz; +}; + +/* Load a new kernel image as described by the kexec_segment array + * consisting of passed number of segments at the entry-point address. + * The flags allow different useage types. + */ +extern int kexec_load(void *, size_t, struct kexec_segment *, + unsigned long int); + +#endif /* LINUX_KEXEC_H */ diff --git a/kernel_headers/linux/keyboard.h b/kernel_headers/linux/keyboard.h new file mode 100644 index 0000000..b4be860 --- /dev/null +++ b/kernel_headers/linux/keyboard.h @@ -0,0 +1,443 @@ +#ifndef __LINUX_KEYBOARD_H +#define __LINUX_KEYBOARD_H + +#include + +#define KG_SHIFT 0 +#define KG_CTRL 2 +#define KG_ALT 3 +#define KG_ALTGR 1 +#define KG_SHIFTL 4 +#define KG_KANASHIFT 4 +#define KG_SHIFTR 5 +#define KG_CTRLL 6 +#define KG_CTRLR 7 +#define KG_CAPSSHIFT 8 + +#define NR_SHIFT 9 + +#define NR_KEYS 256 +#define MAX_NR_KEYMAPS 256 +/* This means 128Kb if all keymaps are allocated. Only the superuser + may increase the number of keymaps beyond MAX_NR_OF_USER_KEYMAPS. */ +#define MAX_NR_OF_USER_KEYMAPS 256 /* should be at least 7 */ + + +#define MAX_NR_FUNC 256 /* max nr of strings assigned to keys */ + +#define KT_LATIN 0 /* we depend on this being zero */ +#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */ +#define KT_FN 1 +#define KT_SPEC 2 +#define KT_PAD 3 +#define KT_DEAD 4 +#define KT_CONS 5 +#define KT_CUR 6 +#define KT_SHIFT 7 +#define KT_META 8 +#define KT_ASCII 9 +#define KT_LOCK 10 +#define KT_SLOCK 12 +#define KT_DEAD2 13 +#define KT_BRL 14 + +#define K(t,v) (((t)<<8)|(v)) +#define KTYP(x) ((x) >> 8) +#define KVAL(x) ((x) & 0xff) + +#define K_F1 K(KT_FN,0) +#define K_F2 K(KT_FN,1) +#define K_F3 K(KT_FN,2) +#define K_F4 K(KT_FN,3) +#define K_F5 K(KT_FN,4) +#define K_F6 K(KT_FN,5) +#define K_F7 K(KT_FN,6) +#define K_F8 K(KT_FN,7) +#define K_F9 K(KT_FN,8) +#define K_F10 K(KT_FN,9) +#define K_F11 K(KT_FN,10) +#define K_F12 K(KT_FN,11) +#define K_F13 K(KT_FN,12) +#define K_F14 K(KT_FN,13) +#define K_F15 K(KT_FN,14) +#define K_F16 K(KT_FN,15) +#define K_F17 K(KT_FN,16) +#define K_F18 K(KT_FN,17) +#define K_F19 K(KT_FN,18) +#define K_F20 K(KT_FN,19) +#define K_FIND K(KT_FN,20) +#define K_INSERT K(KT_FN,21) +#define K_REMOVE K(KT_FN,22) +#define K_SELECT K(KT_FN,23) +#define K_PGUP K(KT_FN,24) /* PGUP is a synonym for PRIOR */ +#define K_PGDN K(KT_FN,25) /* PGDN is a synonym for NEXT */ +#define K_MACRO K(KT_FN,26) +#define K_HELP K(KT_FN,27) +#define K_DO K(KT_FN,28) +#define K_PAUSE K(KT_FN,29) +#define K_F21 K(KT_FN,30) +#define K_F22 K(KT_FN,31) +#define K_F23 K(KT_FN,32) +#define K_F24 K(KT_FN,33) +#define K_F25 K(KT_FN,34) +#define K_F26 K(KT_FN,35) +#define K_F27 K(KT_FN,36) +#define K_F28 K(KT_FN,37) +#define K_F29 K(KT_FN,38) +#define K_F30 K(KT_FN,39) +#define K_F31 K(KT_FN,40) +#define K_F32 K(KT_FN,41) +#define K_F33 K(KT_FN,42) +#define K_F34 K(KT_FN,43) +#define K_F35 K(KT_FN,44) +#define K_F36 K(KT_FN,45) +#define K_F37 K(KT_FN,46) +#define K_F38 K(KT_FN,47) +#define K_F39 K(KT_FN,48) +#define K_F40 K(KT_FN,49) +#define K_F41 K(KT_FN,50) +#define K_F42 K(KT_FN,51) +#define K_F43 K(KT_FN,52) +#define K_F44 K(KT_FN,53) +#define K_F45 K(KT_FN,54) +#define K_F46 K(KT_FN,55) +#define K_F47 K(KT_FN,56) +#define K_F48 K(KT_FN,57) +#define K_F49 K(KT_FN,58) +#define K_F50 K(KT_FN,59) +#define K_F51 K(KT_FN,60) +#define K_F52 K(KT_FN,61) +#define K_F53 K(KT_FN,62) +#define K_F54 K(KT_FN,63) +#define K_F55 K(KT_FN,64) +#define K_F56 K(KT_FN,65) +#define K_F57 K(KT_FN,66) +#define K_F58 K(KT_FN,67) +#define K_F59 K(KT_FN,68) +#define K_F60 K(KT_FN,69) +#define K_F61 K(KT_FN,70) +#define K_F62 K(KT_FN,71) +#define K_F63 K(KT_FN,72) +#define K_F64 K(KT_FN,73) +#define K_F65 K(KT_FN,74) +#define K_F66 K(KT_FN,75) +#define K_F67 K(KT_FN,76) +#define K_F68 K(KT_FN,77) +#define K_F69 K(KT_FN,78) +#define K_F70 K(KT_FN,79) +#define K_F71 K(KT_FN,80) +#define K_F72 K(KT_FN,81) +#define K_F73 K(KT_FN,82) +#define K_F74 K(KT_FN,83) +#define K_F75 K(KT_FN,84) +#define K_F76 K(KT_FN,85) +#define K_F77 K(KT_FN,86) +#define K_F78 K(KT_FN,87) +#define K_F79 K(KT_FN,88) +#define K_F80 K(KT_FN,89) +#define K_F81 K(KT_FN,90) +#define K_F82 K(KT_FN,91) +#define K_F83 K(KT_FN,92) +#define K_F84 K(KT_FN,93) +#define K_F85 K(KT_FN,94) +#define K_F86 K(KT_FN,95) +#define K_F87 K(KT_FN,96) +#define K_F88 K(KT_FN,97) +#define K_F89 K(KT_FN,98) +#define K_F90 K(KT_FN,99) +#define K_F91 K(KT_FN,100) +#define K_F92 K(KT_FN,101) +#define K_F93 K(KT_FN,102) +#define K_F94 K(KT_FN,103) +#define K_F95 K(KT_FN,104) +#define K_F96 K(KT_FN,105) +#define K_F97 K(KT_FN,106) +#define K_F98 K(KT_FN,107) +#define K_F99 K(KT_FN,108) +#define K_F100 K(KT_FN,109) +#define K_F101 K(KT_FN,110) +#define K_F102 K(KT_FN,111) +#define K_F103 K(KT_FN,112) +#define K_F104 K(KT_FN,113) +#define K_F105 K(KT_FN,114) +#define K_F106 K(KT_FN,115) +#define K_F107 K(KT_FN,116) +#define K_F108 K(KT_FN,117) +#define K_F109 K(KT_FN,118) +#define K_F110 K(KT_FN,119) +#define K_F111 K(KT_FN,120) +#define K_F112 K(KT_FN,121) +#define K_F113 K(KT_FN,122) +#define K_F114 K(KT_FN,123) +#define K_F115 K(KT_FN,124) +#define K_F116 K(KT_FN,125) +#define K_F117 K(KT_FN,126) +#define K_F118 K(KT_FN,127) +#define K_F119 K(KT_FN,128) +#define K_F120 K(KT_FN,129) +#define K_F121 K(KT_FN,130) +#define K_F122 K(KT_FN,131) +#define K_F123 K(KT_FN,132) +#define K_F124 K(KT_FN,133) +#define K_F125 K(KT_FN,134) +#define K_F126 K(KT_FN,135) +#define K_F127 K(KT_FN,136) +#define K_F128 K(KT_FN,137) +#define K_F129 K(KT_FN,138) +#define K_F130 K(KT_FN,139) +#define K_F131 K(KT_FN,140) +#define K_F132 K(KT_FN,141) +#define K_F133 K(KT_FN,142) +#define K_F134 K(KT_FN,143) +#define K_F135 K(KT_FN,144) +#define K_F136 K(KT_FN,145) +#define K_F137 K(KT_FN,146) +#define K_F138 K(KT_FN,147) +#define K_F139 K(KT_FN,148) +#define K_F140 K(KT_FN,149) +#define K_F141 K(KT_FN,150) +#define K_F142 K(KT_FN,151) +#define K_F143 K(KT_FN,152) +#define K_F144 K(KT_FN,153) +#define K_F145 K(KT_FN,154) +#define K_F146 K(KT_FN,155) +#define K_F147 K(KT_FN,156) +#define K_F148 K(KT_FN,157) +#define K_F149 K(KT_FN,158) +#define K_F150 K(KT_FN,159) +#define K_F151 K(KT_FN,160) +#define K_F152 K(KT_FN,161) +#define K_F153 K(KT_FN,162) +#define K_F154 K(KT_FN,163) +#define K_F155 K(KT_FN,164) +#define K_F156 K(KT_FN,165) +#define K_F157 K(KT_FN,166) +#define K_F158 K(KT_FN,167) +#define K_F159 K(KT_FN,168) +#define K_F160 K(KT_FN,169) +#define K_F161 K(KT_FN,170) +#define K_F162 K(KT_FN,171) +#define K_F163 K(KT_FN,172) +#define K_F164 K(KT_FN,173) +#define K_F165 K(KT_FN,174) +#define K_F166 K(KT_FN,175) +#define K_F167 K(KT_FN,176) +#define K_F168 K(KT_FN,177) +#define K_F169 K(KT_FN,178) +#define K_F170 K(KT_FN,179) +#define K_F171 K(KT_FN,180) +#define K_F172 K(KT_FN,181) +#define K_F173 K(KT_FN,182) +#define K_F174 K(KT_FN,183) +#define K_F175 K(KT_FN,184) +#define K_F176 K(KT_FN,185) +#define K_F177 K(KT_FN,186) +#define K_F178 K(KT_FN,187) +#define K_F179 K(KT_FN,188) +#define K_F180 K(KT_FN,189) +#define K_F181 K(KT_FN,190) +#define K_F182 K(KT_FN,191) +#define K_F183 K(KT_FN,192) +#define K_F184 K(KT_FN,193) +#define K_F185 K(KT_FN,194) +#define K_F186 K(KT_FN,195) +#define K_F187 K(KT_FN,196) +#define K_F188 K(KT_FN,197) +#define K_F189 K(KT_FN,198) +#define K_F190 K(KT_FN,199) +#define K_F191 K(KT_FN,200) +#define K_F192 K(KT_FN,201) +#define K_F193 K(KT_FN,202) +#define K_F194 K(KT_FN,203) +#define K_F195 K(KT_FN,204) +#define K_F196 K(KT_FN,205) +#define K_F197 K(KT_FN,206) +#define K_F198 K(KT_FN,207) +#define K_F199 K(KT_FN,208) +#define K_F200 K(KT_FN,209) +#define K_F201 K(KT_FN,210) +#define K_F202 K(KT_FN,211) +#define K_F203 K(KT_FN,212) +#define K_F204 K(KT_FN,213) +#define K_F205 K(KT_FN,214) +#define K_F206 K(KT_FN,215) +#define K_F207 K(KT_FN,216) +#define K_F208 K(KT_FN,217) +#define K_F209 K(KT_FN,218) +#define K_F210 K(KT_FN,219) +#define K_F211 K(KT_FN,220) +#define K_F212 K(KT_FN,221) +#define K_F213 K(KT_FN,222) +#define K_F214 K(KT_FN,223) +#define K_F215 K(KT_FN,224) +#define K_F216 K(KT_FN,225) +#define K_F217 K(KT_FN,226) +#define K_F218 K(KT_FN,227) +#define K_F219 K(KT_FN,228) +#define K_F220 K(KT_FN,229) +#define K_F221 K(KT_FN,230) +#define K_F222 K(KT_FN,231) +#define K_F223 K(KT_FN,232) +#define K_F224 K(KT_FN,233) +#define K_F225 K(KT_FN,234) +#define K_F226 K(KT_FN,235) +#define K_F227 K(KT_FN,236) +#define K_F228 K(KT_FN,237) +#define K_F229 K(KT_FN,238) +#define K_F230 K(KT_FN,239) +#define K_F231 K(KT_FN,240) +#define K_F232 K(KT_FN,241) +#define K_F233 K(KT_FN,242) +#define K_F234 K(KT_FN,243) +#define K_F235 K(KT_FN,244) +#define K_F236 K(KT_FN,245) +#define K_F237 K(KT_FN,246) +#define K_F238 K(KT_FN,247) +#define K_F239 K(KT_FN,248) +#define K_F240 K(KT_FN,249) +#define K_F241 K(KT_FN,250) +#define K_F242 K(KT_FN,251) +#define K_F243 K(KT_FN,252) +#define K_F244 K(KT_FN,253) +#define K_F245 K(KT_FN,254) +#define K_UNDO K(KT_FN,255) + + +#define K_HOLE K(KT_SPEC,0) +#define K_ENTER K(KT_SPEC,1) +#define K_SH_REGS K(KT_SPEC,2) +#define K_SH_MEM K(KT_SPEC,3) +#define K_SH_STAT K(KT_SPEC,4) +#define K_BREAK K(KT_SPEC,5) +#define K_CONS K(KT_SPEC,6) +#define K_CAPS K(KT_SPEC,7) +#define K_NUM K(KT_SPEC,8) +#define K_HOLD K(KT_SPEC,9) +#define K_SCROLLFORW K(KT_SPEC,10) +#define K_SCROLLBACK K(KT_SPEC,11) +#define K_BOOT K(KT_SPEC,12) +#define K_CAPSON K(KT_SPEC,13) +#define K_COMPOSE K(KT_SPEC,14) +#define K_SAK K(KT_SPEC,15) +#define K_DECRCONSOLE K(KT_SPEC,16) +#define K_INCRCONSOLE K(KT_SPEC,17) +#define K_SPAWNCONSOLE K(KT_SPEC,18) +#define K_BARENUMLOCK K(KT_SPEC,19) + +#define K_ALLOCATED K(KT_SPEC,126) /* dynamically allocated keymap */ +#define K_NOSUCHMAP K(KT_SPEC,127) /* returned by KDGKBENT */ + +#define K_P0 K(KT_PAD,0) +#define K_P1 K(KT_PAD,1) +#define K_P2 K(KT_PAD,2) +#define K_P3 K(KT_PAD,3) +#define K_P4 K(KT_PAD,4) +#define K_P5 K(KT_PAD,5) +#define K_P6 K(KT_PAD,6) +#define K_P7 K(KT_PAD,7) +#define K_P8 K(KT_PAD,8) +#define K_P9 K(KT_PAD,9) +#define K_PPLUS K(KT_PAD,10) /* key-pad plus */ +#define K_PMINUS K(KT_PAD,11) /* key-pad minus */ +#define K_PSTAR K(KT_PAD,12) /* key-pad asterisk (star) */ +#define K_PSLASH K(KT_PAD,13) /* key-pad slash */ +#define K_PENTER K(KT_PAD,14) /* key-pad enter */ +#define K_PCOMMA K(KT_PAD,15) /* key-pad comma: kludge... */ +#define K_PDOT K(KT_PAD,16) /* key-pad dot (period): kludge... */ +#define K_PPLUSMINUS K(KT_PAD,17) /* key-pad plus/minus */ +#define K_PPARENL K(KT_PAD,18) /* key-pad left parenthesis */ +#define K_PPARENR K(KT_PAD,19) /* key-pad right parenthesis */ + +#define NR_PAD 20 + +#define K_DGRAVE K(KT_DEAD,0) +#define K_DACUTE K(KT_DEAD,1) +#define K_DCIRCM K(KT_DEAD,2) +#define K_DTILDE K(KT_DEAD,3) +#define K_DDIERE K(KT_DEAD,4) +#define K_DCEDIL K(KT_DEAD,5) + +#define NR_DEAD 6 + +#define K_DOWN K(KT_CUR,0) +#define K_LEFT K(KT_CUR,1) +#define K_RIGHT K(KT_CUR,2) +#define K_UP K(KT_CUR,3) + +#define K_SHIFT K(KT_SHIFT,KG_SHIFT) +#define K_CTRL K(KT_SHIFT,KG_CTRL) +#define K_ALT K(KT_SHIFT,KG_ALT) +#define K_ALTGR K(KT_SHIFT,KG_ALTGR) +#define K_SHIFTL K(KT_SHIFT,KG_SHIFTL) +#define K_SHIFTR K(KT_SHIFT,KG_SHIFTR) +#define K_CTRLL K(KT_SHIFT,KG_CTRLL) +#define K_CTRLR K(KT_SHIFT,KG_CTRLR) +#define K_CAPSSHIFT K(KT_SHIFT,KG_CAPSSHIFT) + +#define K_ASC0 K(KT_ASCII,0) +#define K_ASC1 K(KT_ASCII,1) +#define K_ASC2 K(KT_ASCII,2) +#define K_ASC3 K(KT_ASCII,3) +#define K_ASC4 K(KT_ASCII,4) +#define K_ASC5 K(KT_ASCII,5) +#define K_ASC6 K(KT_ASCII,6) +#define K_ASC7 K(KT_ASCII,7) +#define K_ASC8 K(KT_ASCII,8) +#define K_ASC9 K(KT_ASCII,9) +#define K_HEX0 K(KT_ASCII,10) +#define K_HEX1 K(KT_ASCII,11) +#define K_HEX2 K(KT_ASCII,12) +#define K_HEX3 K(KT_ASCII,13) +#define K_HEX4 K(KT_ASCII,14) +#define K_HEX5 K(KT_ASCII,15) +#define K_HEX6 K(KT_ASCII,16) +#define K_HEX7 K(KT_ASCII,17) +#define K_HEX8 K(KT_ASCII,18) +#define K_HEX9 K(KT_ASCII,19) +#define K_HEXa K(KT_ASCII,20) +#define K_HEXb K(KT_ASCII,21) +#define K_HEXc K(KT_ASCII,22) +#define K_HEXd K(KT_ASCII,23) +#define K_HEXe K(KT_ASCII,24) +#define K_HEXf K(KT_ASCII,25) + +#define NR_ASCII 26 + +#define K_SHIFTLOCK K(KT_LOCK,KG_SHIFT) +#define K_CTRLLOCK K(KT_LOCK,KG_CTRL) +#define K_ALTLOCK K(KT_LOCK,KG_ALT) +#define K_ALTGRLOCK K(KT_LOCK,KG_ALTGR) +#define K_SHIFTLLOCK K(KT_LOCK,KG_SHIFTL) +#define K_SHIFTRLOCK K(KT_LOCK,KG_SHIFTR) +#define K_CTRLLLOCK K(KT_LOCK,KG_CTRLL) +#define K_CTRLRLOCK K(KT_LOCK,KG_CTRLR) +#define K_CAPSSHIFTLOCK K(KT_LOCK,KG_CAPSSHIFT) + +#define K_SHIFT_SLOCK K(KT_SLOCK,KG_SHIFT) +#define K_CTRL_SLOCK K(KT_SLOCK,KG_CTRL) +#define K_ALT_SLOCK K(KT_SLOCK,KG_ALT) +#define K_ALTGR_SLOCK K(KT_SLOCK,KG_ALTGR) +#define K_SHIFTL_SLOCK K(KT_SLOCK,KG_SHIFTL) +#define K_SHIFTR_SLOCK K(KT_SLOCK,KG_SHIFTR) +#define K_CTRLL_SLOCK K(KT_SLOCK,KG_CTRLL) +#define K_CTRLR_SLOCK K(KT_SLOCK,KG_CTRLR) +#define K_CAPSSHIFT_SLOCK K(KT_SLOCK,KG_CAPSSHIFT) + +#define NR_LOCK 9 + +#define K_BRL_BLANK K(KT_BRL, 0) +#define K_BRL_DOT1 K(KT_BRL, 1) +#define K_BRL_DOT2 K(KT_BRL, 2) +#define K_BRL_DOT3 K(KT_BRL, 3) +#define K_BRL_DOT4 K(KT_BRL, 4) +#define K_BRL_DOT5 K(KT_BRL, 5) +#define K_BRL_DOT6 K(KT_BRL, 6) +#define K_BRL_DOT7 K(KT_BRL, 7) +#define K_BRL_DOT8 K(KT_BRL, 8) +#define K_BRL_DOT9 K(KT_BRL, 9) +#define K_BRL_DOT10 K(KT_BRL, 10) + +#define NR_BRL 11 + +#define MAX_DIACR 256 +#endif /* __LINUX_KEYBOARD_H */ diff --git a/kernel_headers/linux/keyctl.h b/kernel_headers/linux/keyctl.h new file mode 100644 index 0000000..c9b7f4f --- /dev/null +++ b/kernel_headers/linux/keyctl.h @@ -0,0 +1,60 @@ +/* keyctl.h: keyctl command IDs + * + * Copyright (C) 2004, 2008 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_KEYCTL_H +#define _LINUX_KEYCTL_H + +/* special process keyring shortcut IDs */ +#define KEY_SPEC_THREAD_KEYRING -1 /* - key ID for thread-specific keyring */ +#define KEY_SPEC_PROCESS_KEYRING -2 /* - key ID for process-specific keyring */ +#define KEY_SPEC_SESSION_KEYRING -3 /* - key ID for session-specific keyring */ +#define KEY_SPEC_USER_KEYRING -4 /* - key ID for UID-specific keyring */ +#define KEY_SPEC_USER_SESSION_KEYRING -5 /* - key ID for UID-session keyring */ +#define KEY_SPEC_GROUP_KEYRING -6 /* - key ID for GID-specific keyring */ +#define KEY_SPEC_REQKEY_AUTH_KEY -7 /* - key ID for assumed request_key auth key */ +#define KEY_SPEC_REQUESTOR_KEYRING -8 /* - key ID for request_key() dest keyring */ + +/* request-key default keyrings */ +#define KEY_REQKEY_DEFL_NO_CHANGE -1 +#define KEY_REQKEY_DEFL_DEFAULT 0 +#define KEY_REQKEY_DEFL_THREAD_KEYRING 1 +#define KEY_REQKEY_DEFL_PROCESS_KEYRING 2 +#define KEY_REQKEY_DEFL_SESSION_KEYRING 3 +#define KEY_REQKEY_DEFL_USER_KEYRING 4 +#define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5 +#define KEY_REQKEY_DEFL_GROUP_KEYRING 6 +#define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7 + +/* keyctl commands */ +#define KEYCTL_GET_KEYRING_ID 0 /* ask for a keyring's ID */ +#define KEYCTL_JOIN_SESSION_KEYRING 1 /* join or start named session keyring */ +#define KEYCTL_UPDATE 2 /* update a key */ +#define KEYCTL_REVOKE 3 /* revoke a key */ +#define KEYCTL_CHOWN 4 /* set ownership of a key */ +#define KEYCTL_SETPERM 5 /* set perms on a key */ +#define KEYCTL_DESCRIBE 6 /* describe a key */ +#define KEYCTL_CLEAR 7 /* clear contents of a keyring */ +#define KEYCTL_LINK 8 /* link a key into a keyring */ +#define KEYCTL_UNLINK 9 /* unlink a key from a keyring */ +#define KEYCTL_SEARCH 10 /* search for a key in a keyring */ +#define KEYCTL_READ 11 /* read a key or keyring's contents */ +#define KEYCTL_INSTANTIATE 12 /* instantiate a partially constructed key */ +#define KEYCTL_NEGATE 13 /* negate a partially constructed key */ +#define KEYCTL_SET_REQKEY_KEYRING 14 /* set default request-key keyring */ +#define KEYCTL_SET_TIMEOUT 15 /* set key timeout */ +#define KEYCTL_ASSUME_AUTHORITY 16 /* assume request_key() authorisation */ +#define KEYCTL_GET_SECURITY 17 /* get key security label */ +#define KEYCTL_SESSION_TO_PARENT 18 /* apply session keyring to parent process */ +#define KEYCTL_REJECT 19 /* reject a partially constructed key */ +#define KEYCTL_INSTANTIATE_IOV 20 /* instantiate a partially constructed key */ +#define KEYCTL_INVALIDATE 21 /* invalidate a key */ + +#endif /* _LINUX_KEYCTL_H */ diff --git a/kernel_headers/linux/kvm.h b/kernel_headers/linux/kvm.h new file mode 100644 index 0000000..b852834 --- /dev/null +++ b/kernel_headers/linux/kvm.h @@ -0,0 +1,1066 @@ +#ifndef __LINUX_KVM_H +#define __LINUX_KVM_H + +/* + * Userspace interface for /dev/kvm - kernel based virtual machine + * + * Note: you must update KVM_API_VERSION if you change this interface. + */ + +#include + +#include +#include + +#define KVM_API_VERSION 12 + +/* *** Deprecated interfaces *** */ + +#define KVM_TRC_SHIFT 16 + +#define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT) +#define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1)) + +#define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01) +#define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02) +#define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01) + +#define KVM_TRC_HEAD_SIZE 12 +#define KVM_TRC_CYCLE_SIZE 8 +#define KVM_TRC_EXTRA_MAX 7 + +#define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02) +#define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03) +#define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04) +#define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05) +#define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06) +#define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07) +#define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08) +#define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09) +#define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A) +#define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B) +#define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C) +#define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D) +#define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E) +#define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F) +#define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10) +#define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11) +#define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12) +#define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13) +#define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14) +#define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15) +#define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16) +#define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17) +#define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18) +#define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19) + +struct kvm_user_trace_setup { + __u32 buf_size; + __u32 buf_nr; +}; + +#define __KVM_DEPRECATED_MAIN_W_0x06 \ + _IOW(KVMIO, 0x06, struct kvm_user_trace_setup) +#define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07) +#define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08) + +#define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq) + +struct kvm_breakpoint { + __u32 enabled; + __u32 padding; + __u64 address; +}; + +struct kvm_debug_guest { + __u32 enabled; + __u32 pad; + struct kvm_breakpoint breakpoints[4]; + __u32 singlestep; +}; + +#define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest) + +/* *** End of deprecated interfaces *** */ + + +/* for KVM_CREATE_MEMORY_REGION */ +struct kvm_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; /* bytes */ +}; + +/* for KVM_SET_USER_MEMORY_REGION */ +struct kvm_userspace_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; /* bytes */ + __u64 userspace_addr; /* start of the userspace allocated memory */ +}; + +/* + * The bit 0 ~ bit 15 of kvm_memory_region::flags are visible for userspace, + * other bits are reserved for kvm internal use which are defined in + * include/linux/kvm_host.h. + */ +#define KVM_MEM_LOG_DIRTY_PAGES (1UL << 0) +#define KVM_MEM_READONLY (1UL << 1) + +/* for KVM_IRQ_LINE */ +struct kvm_irq_level { + /* + * ACPI gsi notion of irq. + * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47.. + * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23.. + * For ARM: See Documentation/virtual/kvm/api.txt + */ + union { + __u32 irq; + __s32 status; + }; + __u32 level; +}; + + +struct kvm_irqchip { + __u32 chip_id; + __u32 pad; + union { + char dummy[512]; /* reserving space */ +#ifdef __KVM_HAVE_PIT + struct kvm_pic_state pic; +#endif +#ifdef __KVM_HAVE_IOAPIC + struct kvm_ioapic_state ioapic; +#endif + } chip; +}; + +/* for KVM_CREATE_PIT2 */ +struct kvm_pit_config { + __u32 flags; + __u32 pad[15]; +}; + +#define KVM_PIT_SPEAKER_DUMMY 1 + +#define KVM_EXIT_UNKNOWN 0 +#define KVM_EXIT_EXCEPTION 1 +#define KVM_EXIT_IO 2 +#define KVM_EXIT_HYPERCALL 3 +#define KVM_EXIT_DEBUG 4 +#define KVM_EXIT_HLT 5 +#define KVM_EXIT_MMIO 6 +#define KVM_EXIT_IRQ_WINDOW_OPEN 7 +#define KVM_EXIT_SHUTDOWN 8 +#define KVM_EXIT_FAIL_ENTRY 9 +#define KVM_EXIT_INTR 10 +#define KVM_EXIT_SET_TPR 11 +#define KVM_EXIT_TPR_ACCESS 12 +#define KVM_EXIT_S390_SIEIC 13 +#define KVM_EXIT_S390_RESET 14 +#define KVM_EXIT_DCR 15 +#define KVM_EXIT_NMI 16 +#define KVM_EXIT_INTERNAL_ERROR 17 +#define KVM_EXIT_OSI 18 +#define KVM_EXIT_PAPR_HCALL 19 +#define KVM_EXIT_S390_UCONTROL 20 +#define KVM_EXIT_WATCHDOG 21 +#define KVM_EXIT_S390_TSCH 22 +#define KVM_EXIT_EPR 23 + +/* For KVM_EXIT_INTERNAL_ERROR */ +/* Emulate instruction failed. */ +#define KVM_INTERNAL_ERROR_EMULATION 1 +/* Encounter unexpected simultaneous exceptions. */ +#define KVM_INTERNAL_ERROR_SIMUL_EX 2 +/* Encounter unexpected vm-exit due to delivery event. */ +#define KVM_INTERNAL_ERROR_DELIVERY_EV 3 + +/* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ +struct kvm_run { + /* in */ + __u8 request_interrupt_window; + __u8 padding1[7]; + + /* out */ + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u8 padding2[2]; + + /* in (pre_kvm_run), out (post_kvm_run) */ + __u64 cr8; + __u64 apic_base; + +#ifdef __KVM_S390 + /* the processor status word for s390 */ + __u64 psw_mask; /* psw upper half */ + __u64 psw_addr; /* psw lower half */ +#endif + union { + /* KVM_EXIT_UNKNOWN */ + struct { + __u64 hardware_exit_reason; + } hw; + /* KVM_EXIT_FAIL_ENTRY */ + struct { + __u64 hardware_entry_failure_reason; + } fail_entry; + /* KVM_EXIT_EXCEPTION */ + struct { + __u32 exception; + __u32 error_code; + } ex; + /* KVM_EXIT_IO */ + struct { +#define KVM_EXIT_IO_IN 0 +#define KVM_EXIT_IO_OUT 1 + __u8 direction; + __u8 size; /* bytes */ + __u16 port; + __u32 count; + __u64 data_offset; /* relative to kvm_run start */ + } io; + struct { + struct kvm_debug_exit_arch arch; + } debug; + /* KVM_EXIT_MMIO */ + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; + /* KVM_EXIT_HYPERCALL */ + struct { + __u64 nr; + __u64 args[6]; + __u64 ret; + __u32 longmode; + __u32 pad; + } hypercall; + /* KVM_EXIT_TPR_ACCESS */ + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; + /* KVM_EXIT_S390_SIEIC */ + struct { + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + /* KVM_EXIT_S390_RESET */ +#define KVM_S390_RESET_POR 1 +#define KVM_S390_RESET_CLEAR 2 +#define KVM_S390_RESET_SUBSYSTEM 4 +#define KVM_S390_RESET_CPU_INIT 8 +#define KVM_S390_RESET_IPL 16 + __u64 s390_reset_flags; + /* KVM_EXIT_S390_UCONTROL */ + struct { + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; + /* KVM_EXIT_DCR */ + struct { + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; + struct { + __u32 suberror; + /* Available with KVM_CAP_INTERNAL_ERROR_DATA: */ + __u32 ndata; + __u64 data[16]; + } internal; + /* KVM_EXIT_OSI */ + struct { + __u64 gprs[32]; + } osi; + struct { + __u64 nr; + __u64 ret; + __u64 args[9]; + } papr_hcall; + /* KVM_EXIT_S390_TSCH */ + struct { + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; + } s390_tsch; + /* KVM_EXIT_EPR */ + struct { + __u32 epr; + } epr; + /* Fix the size of the union. */ + char padding[256]; + }; + + /* + * shared registers between kvm and userspace. + * kvm_valid_regs specifies the register classes set by the host + * kvm_dirty_regs specified the register classes dirtied by userspace + * struct kvm_sync_regs is architecture specific, as well as the + * bits for kvm_valid_regs and kvm_dirty_regs + */ + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[1024]; + } s; +}; + +/* for KVM_REGISTER_COALESCED_MMIO / KVM_UNREGISTER_COALESCED_MMIO */ + +struct kvm_coalesced_mmio_zone { + __u64 addr; + __u32 size; + __u32 pad; +}; + +struct kvm_coalesced_mmio { + __u64 phys_addr; + __u32 len; + __u32 pad; + __u8 data[8]; +}; + +struct kvm_coalesced_mmio_ring { + __u32 first, last; + struct kvm_coalesced_mmio coalesced_mmio[0]; +}; + +#define KVM_COALESCED_MMIO_MAX \ + ((PAGE_SIZE - sizeof(struct kvm_coalesced_mmio_ring)) / \ + sizeof(struct kvm_coalesced_mmio)) + +/* for KVM_TRANSLATE */ +struct kvm_translation { + /* in */ + __u64 linear_address; + + /* out */ + __u64 physical_address; + __u8 valid; + __u8 writeable; + __u8 usermode; + __u8 pad[5]; +}; + +/* for KVM_INTERRUPT */ +struct kvm_interrupt { + /* in */ + __u32 irq; +}; + +/* for KVM_GET_DIRTY_LOG */ +struct kvm_dirty_log { + __u32 slot; + __u32 padding1; + union { + void *dirty_bitmap; /* one bit per page */ + __u64 padding2; + }; +}; + +/* for KVM_SET_SIGNAL_MASK */ +struct kvm_signal_mask { + __u32 len; + __u8 sigset[0]; +}; + +/* for KVM_TPR_ACCESS_REPORTING */ +struct kvm_tpr_access_ctl { + __u32 enabled; + __u32 flags; + __u32 reserved[8]; +}; + +/* for KVM_SET_VAPIC_ADDR */ +struct kvm_vapic_addr { + __u64 vapic_addr; +}; + +/* for KVM_SET_MPSTATE */ + +#define KVM_MP_STATE_RUNNABLE 0 +#define KVM_MP_STATE_UNINITIALIZED 1 +#define KVM_MP_STATE_INIT_RECEIVED 2 +#define KVM_MP_STATE_HALTED 3 +#define KVM_MP_STATE_SIPI_RECEIVED 4 + +struct kvm_mp_state { + __u32 mp_state; +}; + +struct kvm_s390_psw { + __u64 mask; + __u64 addr; +}; + +/* valid values for type in kvm_s390_interrupt */ +#define KVM_S390_SIGP_STOP 0xfffe0000u +#define KVM_S390_PROGRAM_INT 0xfffe0001u +#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u +#define KVM_S390_RESTART 0xfffe0003u +#define KVM_S390_MCHK 0xfffe1000u +#define KVM_S390_INT_VIRTIO 0xffff2603u +#define KVM_S390_INT_SERVICE 0xffff2401u +#define KVM_S390_INT_EMERGENCY 0xffff1201u +#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u +/* Anything below 0xfffe0000u is taken by INT_IO */ +#define KVM_S390_INT_IO(ai,cssid,ssid,schid) \ + (((schid)) | \ + ((ssid) << 16) | \ + ((cssid) << 18) | \ + ((ai) << 26)) +#define KVM_S390_INT_IO_MIN 0x00000000u +#define KVM_S390_INT_IO_MAX 0xfffdffffu + + +struct kvm_s390_interrupt { + __u32 type; + __u32 parm; + __u64 parm64; +}; + +/* for KVM_SET_GUEST_DEBUG */ + +#define KVM_GUESTDBG_ENABLE 0x00000001 +#define KVM_GUESTDBG_SINGLESTEP 0x00000002 + +struct kvm_guest_debug { + __u32 control; + __u32 pad; + struct kvm_guest_debug_arch arch; +}; + +enum { + kvm_ioeventfd_flag_nr_datamatch, + kvm_ioeventfd_flag_nr_pio, + kvm_ioeventfd_flag_nr_deassign, + kvm_ioeventfd_flag_nr_virtio_ccw_notify, + kvm_ioeventfd_flag_nr_max, +}; + +#define KVM_IOEVENTFD_FLAG_DATAMATCH (1 << kvm_ioeventfd_flag_nr_datamatch) +#define KVM_IOEVENTFD_FLAG_PIO (1 << kvm_ioeventfd_flag_nr_pio) +#define KVM_IOEVENTFD_FLAG_DEASSIGN (1 << kvm_ioeventfd_flag_nr_deassign) +#define KVM_IOEVENTFD_FLAG_VIRTIO_CCW_NOTIFY \ + (1 << kvm_ioeventfd_flag_nr_virtio_ccw_notify) + +#define KVM_IOEVENTFD_VALID_FLAG_MASK ((1 << kvm_ioeventfd_flag_nr_max) - 1) + +struct kvm_ioeventfd { + __u64 datamatch; + __u64 addr; /* legal pio/mmio address */ + __u32 len; /* 1, 2, 4, or 8 bytes */ + __s32 fd; + __u32 flags; + __u8 pad[36]; +}; + +/* for KVM_ENABLE_CAP */ +struct kvm_enable_cap { + /* in */ + __u32 cap; + __u32 flags; + __u64 args[4]; + __u8 pad[64]; +}; + +/* for KVM_PPC_GET_PVINFO */ +struct kvm_ppc_pvinfo { + /* out */ + __u32 flags; + __u32 hcall[4]; + __u8 pad[108]; +}; + +/* for KVM_PPC_GET_SMMU_INFO */ +#define KVM_PPC_PAGE_SIZES_MAX_SZ 8 + +struct kvm_ppc_one_page_size { + __u32 page_shift; /* Page shift (or 0) */ + __u32 pte_enc; /* Encoding in the HPTE (>>12) */ +}; + +struct kvm_ppc_one_seg_page_size { + __u32 page_shift; /* Base page shift of segment (or 0) */ + __u32 slb_enc; /* SLB encoding for BookS */ + struct kvm_ppc_one_page_size enc[KVM_PPC_PAGE_SIZES_MAX_SZ]; +}; + +#define KVM_PPC_PAGE_SIZES_REAL 0x00000001 +#define KVM_PPC_1T_SEGMENTS 0x00000002 + +struct kvm_ppc_smmu_info { + __u64 flags; + __u32 slb_size; + __u32 pad; + struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; +}; + +#define KVM_PPC_PVINFO_FLAGS_EV_IDLE (1<<0) + +#define KVMIO 0xAE + +/* machine type bits, to be used as argument to KVM_CREATE_VM */ +#define KVM_VM_S390_UCONTROL 1 + +#define KVM_S390_SIE_PAGE_OFFSET 1 + +/* + * ioctls for /dev/kvm fds: + */ +#define KVM_GET_API_VERSION _IO(KVMIO, 0x00) +#define KVM_CREATE_VM _IO(KVMIO, 0x01) /* returns a VM fd */ +#define KVM_GET_MSR_INDEX_LIST _IOWR(KVMIO, 0x02, struct kvm_msr_list) + +#define KVM_S390_ENABLE_SIE _IO(KVMIO, 0x06) +/* + * Check if a kvm extension is available. Argument is extension number, + * return is 1 (yes) or 0 (no, sorry). + */ +#define KVM_CHECK_EXTENSION _IO(KVMIO, 0x03) +/* + * Get size for mmap(vcpu_fd) + */ +#define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ +#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2) +#define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06 +#define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07 +#define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08 + +/* + * Extension capability list. + */ +#define KVM_CAP_IRQCHIP 0 +#define KVM_CAP_HLT 1 +#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2 +#define KVM_CAP_USER_MEMORY 3 +#define KVM_CAP_SET_TSS_ADDR 4 +#define KVM_CAP_VAPIC 6 +#define KVM_CAP_EXT_CPUID 7 +#define KVM_CAP_CLOCKSOURCE 8 +#define KVM_CAP_NR_VCPUS 9 /* returns recommended max vcpus per vm */ +#define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */ +#define KVM_CAP_PIT 11 +#define KVM_CAP_NOP_IO_DELAY 12 +#define KVM_CAP_PV_MMU 13 +#define KVM_CAP_MP_STATE 14 +#define KVM_CAP_COALESCED_MMIO 15 +#define KVM_CAP_SYNC_MMU 16 /* Changes to host mmap are reflected in guest */ +#define KVM_CAP_DEVICE_ASSIGNMENT 17 +#define KVM_CAP_IOMMU 18 +#ifdef __KVM_HAVE_MSI +#define KVM_CAP_DEVICE_MSI 20 +#endif +/* Bug in KVM_SET_USER_MEMORY_REGION fixed: */ +#define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21 +#ifdef __KVM_HAVE_USER_NMI +#define KVM_CAP_USER_NMI 22 +#endif +#ifdef __KVM_HAVE_GUEST_DEBUG +#define KVM_CAP_SET_GUEST_DEBUG 23 +#endif +#ifdef __KVM_HAVE_PIT +#define KVM_CAP_REINJECT_CONTROL 24 +#endif +#define KVM_CAP_IRQ_ROUTING 25 +#define KVM_CAP_IRQ_INJECT_STATUS 26 +#define KVM_CAP_DEVICE_DEASSIGNMENT 27 +#ifdef __KVM_HAVE_MSIX +#define KVM_CAP_DEVICE_MSIX 28 +#endif +#define KVM_CAP_ASSIGN_DEV_IRQ 29 +/* Another bug in KVM_SET_USER_MEMORY_REGION fixed: */ +#define KVM_CAP_JOIN_MEMORY_REGIONS_WORKS 30 +#ifdef __KVM_HAVE_MCE +#define KVM_CAP_MCE 31 +#endif +#define KVM_CAP_IRQFD 32 +#ifdef __KVM_HAVE_PIT +#define KVM_CAP_PIT2 33 +#endif +#define KVM_CAP_SET_BOOT_CPU_ID 34 +#ifdef __KVM_HAVE_PIT_STATE2 +#define KVM_CAP_PIT_STATE2 35 +#endif +#define KVM_CAP_IOEVENTFD 36 +#define KVM_CAP_SET_IDENTITY_MAP_ADDR 37 +#ifdef __KVM_HAVE_XEN_HVM +#define KVM_CAP_XEN_HVM 38 +#endif +#define KVM_CAP_ADJUST_CLOCK 39 +#define KVM_CAP_INTERNAL_ERROR_DATA 40 +#ifdef __KVM_HAVE_VCPU_EVENTS +#define KVM_CAP_VCPU_EVENTS 41 +#endif +#define KVM_CAP_S390_PSW 42 +#define KVM_CAP_PPC_SEGSTATE 43 +#define KVM_CAP_HYPERV 44 +#define KVM_CAP_HYPERV_VAPIC 45 +#define KVM_CAP_HYPERV_SPIN 46 +#define KVM_CAP_PCI_SEGMENT 47 +#define KVM_CAP_PPC_PAIRED_SINGLES 48 +#define KVM_CAP_INTR_SHADOW 49 +#ifdef __KVM_HAVE_DEBUGREGS +#define KVM_CAP_DEBUGREGS 50 +#endif +#define KVM_CAP_X86_ROBUST_SINGLESTEP 51 +#define KVM_CAP_PPC_OSI 52 +#define KVM_CAP_PPC_UNSET_IRQ 53 +#define KVM_CAP_ENABLE_CAP 54 +#ifdef __KVM_HAVE_XSAVE +#define KVM_CAP_XSAVE 55 +#endif +#ifdef __KVM_HAVE_XCRS +#define KVM_CAP_XCRS 56 +#endif +#define KVM_CAP_PPC_GET_PVINFO 57 +#define KVM_CAP_PPC_IRQ_LEVEL 58 +#define KVM_CAP_ASYNC_PF 59 +#define KVM_CAP_TSC_CONTROL 60 +#define KVM_CAP_GET_TSC_KHZ 61 +#define KVM_CAP_PPC_BOOKE_SREGS 62 +#define KVM_CAP_SPAPR_TCE 63 +#define KVM_CAP_PPC_SMT 64 +#define KVM_CAP_PPC_RMA 65 +#define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */ +#define KVM_CAP_PPC_HIOR 67 +#define KVM_CAP_PPC_PAPR 68 +#define KVM_CAP_SW_TLB 69 +#define KVM_CAP_ONE_REG 70 +#define KVM_CAP_S390_GMAP 71 +#define KVM_CAP_TSC_DEADLINE_TIMER 72 +#define KVM_CAP_S390_UCONTROL 73 +#define KVM_CAP_SYNC_REGS 74 +#define KVM_CAP_PCI_2_3 75 +#define KVM_CAP_KVMCLOCK_CTRL 76 +#define KVM_CAP_SIGNAL_MSI 77 +#define KVM_CAP_PPC_GET_SMMU_INFO 78 +#define KVM_CAP_S390_COW 79 +#define KVM_CAP_PPC_ALLOC_HTAB 80 +#ifdef __KVM_HAVE_READONLY_MEM +#define KVM_CAP_READONLY_MEM 81 +#endif +#define KVM_CAP_IRQFD_RESAMPLE 82 +#define KVM_CAP_PPC_BOOKE_WATCHDOG 83 +#define KVM_CAP_PPC_HTAB_FD 84 +#define KVM_CAP_S390_CSS_SUPPORT 85 +#define KVM_CAP_PPC_EPR 86 +#define KVM_CAP_ARM_PSCI 87 +#define KVM_CAP_ARM_SET_DEVICE_ADDR 88 +#define KVM_CAP_DEVICE_CTRL 89 +#define KVM_CAP_IRQ_MPIC 90 +#define KVM_CAP_PPC_RTAS 91 +#define KVM_CAP_IRQ_XICS 92 +#define KVM_CAP_ARM_EL1_32BIT 93 + +#ifdef KVM_CAP_IRQ_ROUTING + +struct kvm_irq_routing_irqchip { + __u32 irqchip; + __u32 pin; +}; + +struct kvm_irq_routing_msi { + __u32 address_lo; + __u32 address_hi; + __u32 data; + __u32 pad; +}; + +/* gsi routing entry types */ +#define KVM_IRQ_ROUTING_IRQCHIP 1 +#define KVM_IRQ_ROUTING_MSI 2 + +struct kvm_irq_routing_entry { + __u32 gsi; + __u32 type; + __u32 flags; + __u32 pad; + union { + struct kvm_irq_routing_irqchip irqchip; + struct kvm_irq_routing_msi msi; + __u32 pad[8]; + } u; +}; + +struct kvm_irq_routing { + __u32 nr; + __u32 flags; + struct kvm_irq_routing_entry entries[0]; +}; + +#endif + +#ifdef KVM_CAP_MCE +/* x86 MCE */ +struct kvm_x86_mce { + __u64 status; + __u64 addr; + __u64 misc; + __u64 mcg_status; + __u8 bank; + __u8 pad1[7]; + __u64 pad2[3]; +}; +#endif + +#ifdef KVM_CAP_XEN_HVM +struct kvm_xen_hvm_config { + __u32 flags; + __u32 msr; + __u64 blob_addr_32; + __u64 blob_addr_64; + __u8 blob_size_32; + __u8 blob_size_64; + __u8 pad2[30]; +}; +#endif + +#define KVM_IRQFD_FLAG_DEASSIGN (1 << 0) +/* + * Available with KVM_CAP_IRQFD_RESAMPLE + * + * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies + * the irqfd to operate in resampling mode for level triggered interrupt + * emlation. See Documentation/virtual/kvm/api.txt. + */ +#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1) + +struct kvm_irqfd { + __u32 fd; + __u32 gsi; + __u32 flags; + __u32 resamplefd; + __u8 pad[16]; +}; + +struct kvm_clock_data { + __u64 clock; + __u32 flags; + __u32 pad[9]; +}; + +#define KVM_MMU_FSL_BOOKE_NOHV 0 +#define KVM_MMU_FSL_BOOKE_HV 1 + +struct kvm_config_tlb { + __u64 params; + __u64 array; + __u32 mmu_type; + __u32 array_len; +}; + +struct kvm_dirty_tlb { + __u64 bitmap; + __u32 num_dirty; +}; + +/* Available with KVM_CAP_ONE_REG */ + +#define KVM_REG_ARCH_MASK 0xff00000000000000ULL +#define KVM_REG_GENERIC 0x0000000000000000ULL + +/* + * Architecture specific registers are to be defined in arch headers and + * ORed with the arch identifier. + */ +#define KVM_REG_PPC 0x1000000000000000ULL +#define KVM_REG_X86 0x2000000000000000ULL +#define KVM_REG_IA64 0x3000000000000000ULL +#define KVM_REG_ARM 0x4000000000000000ULL +#define KVM_REG_S390 0x5000000000000000ULL +#define KVM_REG_MIPS 0x7000000000000000ULL +#define KVM_REG_ARM64 0x6000000000000000ULL + +#define KVM_REG_SIZE_SHIFT 52 +#define KVM_REG_SIZE_MASK 0x00f0000000000000ULL +#define KVM_REG_SIZE_U8 0x0000000000000000ULL +#define KVM_REG_SIZE_U16 0x0010000000000000ULL +#define KVM_REG_SIZE_U32 0x0020000000000000ULL +#define KVM_REG_SIZE_U64 0x0030000000000000ULL +#define KVM_REG_SIZE_U128 0x0040000000000000ULL +#define KVM_REG_SIZE_U256 0x0050000000000000ULL +#define KVM_REG_SIZE_U512 0x0060000000000000ULL +#define KVM_REG_SIZE_U1024 0x0070000000000000ULL + +struct kvm_reg_list { + __u64 n; /* number of regs */ + __u64 reg[0]; +}; + +struct kvm_one_reg { + __u64 id; + __u64 addr; +}; + +struct kvm_msi { + __u32 address_lo; + __u32 address_hi; + __u32 data; + __u32 flags; + __u8 pad[16]; +}; + +struct kvm_arm_device_addr { + __u64 id; + __u64 addr; +}; + +/* + * Device control API, available with KVM_CAP_DEVICE_CTRL + */ +#define KVM_CREATE_DEVICE_TEST 1 + +struct kvm_create_device { + __u32 type; /* in: KVM_DEV_TYPE_xxx */ + __u32 fd; /* out: device handle */ + __u32 flags; /* in: KVM_CREATE_DEVICE_xxx */ +}; + +struct kvm_device_attr { + __u32 flags; /* no flags currently defined */ + __u32 group; /* device-defined */ + __u64 attr; /* group-defined */ + __u64 addr; /* userspace address of attr data */ +}; + +#define KVM_DEV_TYPE_FSL_MPIC_20 1 +#define KVM_DEV_TYPE_FSL_MPIC_42 2 +#define KVM_DEV_TYPE_XICS 3 + +/* + * ioctls for VM fds + */ +#define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region) +/* + * KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns + * a vcpu fd. + */ +#define KVM_CREATE_VCPU _IO(KVMIO, 0x41) +#define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) +/* KVM_SET_MEMORY_ALIAS is obsolete: */ +#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias) +#define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44) +#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45) +#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, \ + struct kvm_userspace_memory_region) +#define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47) +#define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64) + +/* enable ucontrol for s390 */ +struct kvm_s390_ucas_mapping { + __u64 user_addr; + __u64 vcpu_addr; + __u64 length; +}; +#define KVM_S390_UCAS_MAP _IOW(KVMIO, 0x50, struct kvm_s390_ucas_mapping) +#define KVM_S390_UCAS_UNMAP _IOW(KVMIO, 0x51, struct kvm_s390_ucas_mapping) +#define KVM_S390_VCPU_FAULT _IOW(KVMIO, 0x52, unsigned long) + +/* Device model IOC */ +#define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) +#define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) +#define KVM_GET_IRQCHIP _IOWR(KVMIO, 0x62, struct kvm_irqchip) +#define KVM_SET_IRQCHIP _IOR(KVMIO, 0x63, struct kvm_irqchip) +#define KVM_CREATE_PIT _IO(KVMIO, 0x64) +#define KVM_GET_PIT _IOWR(KVMIO, 0x65, struct kvm_pit_state) +#define KVM_SET_PIT _IOR(KVMIO, 0x66, struct kvm_pit_state) +#define KVM_IRQ_LINE_STATUS _IOWR(KVMIO, 0x67, struct kvm_irq_level) +#define KVM_REGISTER_COALESCED_MMIO \ + _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone) +#define KVM_UNREGISTER_COALESCED_MMIO \ + _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone) +#define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69, \ + struct kvm_assigned_pci_dev) +#define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing) +/* deprecated, replaced by KVM_ASSIGN_DEV_IRQ */ +#define KVM_ASSIGN_IRQ __KVM_DEPRECATED_VM_R_0x70 +#define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq) +#define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71) +#define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \ + struct kvm_assigned_pci_dev) +#define KVM_ASSIGN_SET_MSIX_NR _IOW(KVMIO, 0x73, \ + struct kvm_assigned_msix_nr) +#define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO, 0x74, \ + struct kvm_assigned_msix_entry) +#define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq) +#define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd) +#define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config) +#define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78) +#define KVM_IOEVENTFD _IOW(KVMIO, 0x79, struct kvm_ioeventfd) +#define KVM_XEN_HVM_CONFIG _IOW(KVMIO, 0x7a, struct kvm_xen_hvm_config) +#define KVM_SET_CLOCK _IOW(KVMIO, 0x7b, struct kvm_clock_data) +#define KVM_GET_CLOCK _IOR(KVMIO, 0x7c, struct kvm_clock_data) +/* Available with KVM_CAP_PIT_STATE2 */ +#define KVM_GET_PIT2 _IOR(KVMIO, 0x9f, struct kvm_pit_state2) +#define KVM_SET_PIT2 _IOW(KVMIO, 0xa0, struct kvm_pit_state2) +/* Available with KVM_CAP_PPC_GET_PVINFO */ +#define KVM_PPC_GET_PVINFO _IOW(KVMIO, 0xa1, struct kvm_ppc_pvinfo) +/* Available with KVM_CAP_TSC_CONTROL */ +#define KVM_SET_TSC_KHZ _IO(KVMIO, 0xa2) +#define KVM_GET_TSC_KHZ _IO(KVMIO, 0xa3) +/* Available with KVM_CAP_PCI_2_3 */ +#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \ + struct kvm_assigned_pci_dev) +/* Available with KVM_CAP_SIGNAL_MSI */ +#define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi) +/* Available with KVM_CAP_PPC_GET_SMMU_INFO */ +#define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info) +/* Available with KVM_CAP_PPC_ALLOC_HTAB */ +#define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32) +#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) +/* Available with KVM_CAP_RMA */ +#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) +/* Available with KVM_CAP_PPC_HTAB_FD */ +#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd) +/* Available with KVM_CAP_ARM_SET_DEVICE_ADDR */ +#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr) +/* Available with KVM_CAP_PPC_RTAS */ +#define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args) + +/* ioctl for vm fd */ +#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) + +/* ioctls for fds returned by KVM_CREATE_DEVICE */ +#define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr) +#define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr) +#define KVM_HAS_DEVICE_ATTR _IOW(KVMIO, 0xe3, struct kvm_device_attr) + +/* + * ioctls for vcpu fds + */ +#define KVM_RUN _IO(KVMIO, 0x80) +#define KVM_GET_REGS _IOR(KVMIO, 0x81, struct kvm_regs) +#define KVM_SET_REGS _IOW(KVMIO, 0x82, struct kvm_regs) +#define KVM_GET_SREGS _IOR(KVMIO, 0x83, struct kvm_sregs) +#define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs) +#define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation) +#define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt) +/* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */ +#define KVM_DEBUG_GUEST __KVM_DEPRECATED_VCPU_W_0x87 +#define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs) +#define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs) +#define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid) +#define KVM_SET_SIGNAL_MASK _IOW(KVMIO, 0x8b, struct kvm_signal_mask) +#define KVM_GET_FPU _IOR(KVMIO, 0x8c, struct kvm_fpu) +#define KVM_SET_FPU _IOW(KVMIO, 0x8d, struct kvm_fpu) +#define KVM_GET_LAPIC _IOR(KVMIO, 0x8e, struct kvm_lapic_state) +#define KVM_SET_LAPIC _IOW(KVMIO, 0x8f, struct kvm_lapic_state) +#define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2) +#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2) +/* Available with KVM_CAP_VAPIC */ +#define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl) +/* Available with KVM_CAP_VAPIC */ +#define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr) +/* valid for virtual machine (for floating interrupt)_and_ vcpu */ +#define KVM_S390_INTERRUPT _IOW(KVMIO, 0x94, struct kvm_s390_interrupt) +/* store status for s390 */ +#define KVM_S390_STORE_STATUS_NOADDR (-1ul) +#define KVM_S390_STORE_STATUS_PREFIXED (-2ul) +#define KVM_S390_STORE_STATUS _IOW(KVMIO, 0x95, unsigned long) +/* initial ipl psw for s390 */ +#define KVM_S390_SET_INITIAL_PSW _IOW(KVMIO, 0x96, struct kvm_s390_psw) +/* initial reset for s390 */ +#define KVM_S390_INITIAL_RESET _IO(KVMIO, 0x97) +#define KVM_GET_MP_STATE _IOR(KVMIO, 0x98, struct kvm_mp_state) +#define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state) +/* Available with KVM_CAP_NMI */ +#define KVM_NMI _IO(KVMIO, 0x9a) +/* Available with KVM_CAP_SET_GUEST_DEBUG */ +#define KVM_SET_GUEST_DEBUG _IOW(KVMIO, 0x9b, struct kvm_guest_debug) +/* MCE for x86 */ +#define KVM_X86_SETUP_MCE _IOW(KVMIO, 0x9c, __u64) +#define KVM_X86_GET_MCE_CAP_SUPPORTED _IOR(KVMIO, 0x9d, __u64) +#define KVM_X86_SET_MCE _IOW(KVMIO, 0x9e, struct kvm_x86_mce) +/* IA64 stack access */ +#define KVM_IA64_VCPU_GET_STACK _IOR(KVMIO, 0x9a, void *) +#define KVM_IA64_VCPU_SET_STACK _IOW(KVMIO, 0x9b, void *) +/* Available with KVM_CAP_VCPU_EVENTS */ +#define KVM_GET_VCPU_EVENTS _IOR(KVMIO, 0x9f, struct kvm_vcpu_events) +#define KVM_SET_VCPU_EVENTS _IOW(KVMIO, 0xa0, struct kvm_vcpu_events) +/* Available with KVM_CAP_DEBUGREGS */ +#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs) +#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs) +#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap) +/* Available with KVM_CAP_XSAVE */ +#define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave) +#define KVM_SET_XSAVE _IOW(KVMIO, 0xa5, struct kvm_xsave) +/* Available with KVM_CAP_XCRS */ +#define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs) +#define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs) +/* Available with KVM_CAP_SW_TLB */ +#define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb) +/* Available with KVM_CAP_ONE_REG */ +#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg) +#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg) +/* VM is being stopped by host */ +#define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad) +#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init) +#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list) + +#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) +#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) +#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2) + +struct kvm_assigned_pci_dev { + __u32 assigned_dev_id; + __u32 busnr; + __u32 devfn; + __u32 flags; + __u32 segnr; + union { + __u32 reserved[11]; + }; +}; + +#define KVM_DEV_IRQ_HOST_INTX (1 << 0) +#define KVM_DEV_IRQ_HOST_MSI (1 << 1) +#define KVM_DEV_IRQ_HOST_MSIX (1 << 2) + +#define KVM_DEV_IRQ_GUEST_INTX (1 << 8) +#define KVM_DEV_IRQ_GUEST_MSI (1 << 9) +#define KVM_DEV_IRQ_GUEST_MSIX (1 << 10) + +#define KVM_DEV_IRQ_HOST_MASK 0x00ff +#define KVM_DEV_IRQ_GUEST_MASK 0xff00 + +struct kvm_assigned_irq { + __u32 assigned_dev_id; + __u32 host_irq; /* ignored (legacy field) */ + __u32 guest_irq; + __u32 flags; + union { + __u32 reserved[12]; + }; +}; + +struct kvm_assigned_msix_nr { + __u32 assigned_dev_id; + __u16 entry_nr; + __u16 padding; +}; + +#define KVM_MAX_MSIX_PER_DEV 256 +struct kvm_assigned_msix_entry { + __u32 assigned_dev_id; + __u32 gsi; + __u16 entry; /* The index of entry in the MSI-X table */ + __u16 padding[3]; +}; + +#endif /* __LINUX_KVM_H */ diff --git a/kernel_headers/linux/kvm_para.h b/kernel_headers/linux/kvm_para.h new file mode 100644 index 0000000..7bdcf93 --- /dev/null +++ b/kernel_headers/linux/kvm_para.h @@ -0,0 +1,28 @@ +#ifndef __LINUX_KVM_PARA_H +#define __LINUX_KVM_PARA_H + +/* + * This header file provides a method for making a hypercall to the host + * Architectures should define: + * - kvm_hypercall0, kvm_hypercall1... + * - kvm_arch_para_features + * - kvm_para_available + */ + +/* Return values for hypercalls */ +#define KVM_ENOSYS 1000 +#define KVM_EFAULT EFAULT +#define KVM_E2BIG E2BIG +#define KVM_EPERM EPERM + +#define KVM_HC_VAPIC_POLL_IRQ 1 +#define KVM_HC_MMU_OP 2 +#define KVM_HC_FEATURES 3 +#define KVM_HC_PPC_MAP_MAGIC_PAGE 4 + +/* + * hypercalls use architecture specific + */ +#include + +#endif /* __LINUX_KVM_PARA_H */ diff --git a/kernel_headers/linux/l2tp.h b/kernel_headers/linux/l2tp.h new file mode 100644 index 0000000..c4bec82 --- /dev/null +++ b/kernel_headers/linux/l2tp.h @@ -0,0 +1,178 @@ +/* + * L2TP-over-IP socket for L2TPv3. + * + * Author: James Chapman + */ + +#ifndef _LINUX_L2TP_H_ +#define _LINUX_L2TP_H_ + +#include +#include +#include + +#define IPPROTO_L2TP 115 + +/** + * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets + * @l2tp_family: address family number AF_L2TPIP. + * @l2tp_addr: protocol specific address information + * @l2tp_conn_id: connection id of tunnel + */ +#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */ +struct sockaddr_l2tpip { + /* The first fields must match struct sockaddr_in */ + __kernel_sa_family_t l2tp_family; /* AF_INET */ + __be16 l2tp_unused; /* INET port number (unused) */ + struct in_addr l2tp_addr; /* Internet address */ + + __u32 l2tp_conn_id; /* Connection ID of tunnel */ + + /* Pad to size of `struct sockaddr'. */ + unsigned char __pad[sizeof(struct sockaddr) - + sizeof(__kernel_sa_family_t) - + sizeof(__be16) - sizeof(struct in_addr) - + sizeof(__u32)]; +}; + +/** + * struct sockaddr_l2tpip6 - the sockaddr structure for L2TP-over-IPv6 sockets + * @l2tp_family: address family number AF_L2TPIP. + * @l2tp_addr: protocol specific address information + * @l2tp_conn_id: connection id of tunnel + */ +struct sockaddr_l2tpip6 { + /* The first fields must match struct sockaddr_in6 */ + __kernel_sa_family_t l2tp_family; /* AF_INET6 */ + __be16 l2tp_unused; /* INET port number (unused) */ + __be32 l2tp_flowinfo; /* IPv6 flow information */ + struct in6_addr l2tp_addr; /* IPv6 address */ + __u32 l2tp_scope_id; /* scope id (new in RFC2553) */ + __u32 l2tp_conn_id; /* Connection ID of tunnel */ +}; + +/***************************************************************************** + * NETLINK_GENERIC netlink family. + *****************************************************************************/ + +/* + * Commands. + * Valid TLVs of each command are:- + * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid + * TUNNEL_DELETE - CONN_ID + * TUNNEL_MODIFY - CONN_ID, udpcsum + * TUNNEL_GETSTATS - CONN_ID, (stats) + * TUNNEL_GET - CONN_ID, (...) + * SESSION_CREATE - SESSION_ID, PW_TYPE, offset, data_seq, cookie, peer_cookie, offset, l2spec + * SESSION_DELETE - SESSION_ID + * SESSION_MODIFY - SESSION_ID, data_seq + * SESSION_GET - SESSION_ID, (...) + * SESSION_GETSTATS - SESSION_ID, (stats) + * + */ +enum { + L2TP_CMD_NOOP, + L2TP_CMD_TUNNEL_CREATE, + L2TP_CMD_TUNNEL_DELETE, + L2TP_CMD_TUNNEL_MODIFY, + L2TP_CMD_TUNNEL_GET, + L2TP_CMD_SESSION_CREATE, + L2TP_CMD_SESSION_DELETE, + L2TP_CMD_SESSION_MODIFY, + L2TP_CMD_SESSION_GET, + __L2TP_CMD_MAX, +}; + +#define L2TP_CMD_MAX (__L2TP_CMD_MAX - 1) + +/* + * ATTR types defined for L2TP + */ +enum { + L2TP_ATTR_NONE, /* no data */ + L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */ + L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */ + L2TP_ATTR_OFFSET, /* u16 */ + L2TP_ATTR_DATA_SEQ, /* u16 */ + L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */ + L2TP_ATTR_L2SPEC_LEN, /* u8, enum l2tp_l2spec_type */ + L2TP_ATTR_PROTO_VERSION, /* u8 */ + L2TP_ATTR_IFNAME, /* string */ + L2TP_ATTR_CONN_ID, /* u32 */ + L2TP_ATTR_PEER_CONN_ID, /* u32 */ + L2TP_ATTR_SESSION_ID, /* u32 */ + L2TP_ATTR_PEER_SESSION_ID, /* u32 */ + L2TP_ATTR_UDP_CSUM, /* u8 */ + L2TP_ATTR_VLAN_ID, /* u16 */ + L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */ + L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */ + L2TP_ATTR_DEBUG, /* u32 */ + L2TP_ATTR_RECV_SEQ, /* u8 */ + L2TP_ATTR_SEND_SEQ, /* u8 */ + L2TP_ATTR_LNS_MODE, /* u8 */ + L2TP_ATTR_USING_IPSEC, /* u8 */ + L2TP_ATTR_RECV_TIMEOUT, /* msec */ + L2TP_ATTR_FD, /* int */ + L2TP_ATTR_IP_SADDR, /* u32 */ + L2TP_ATTR_IP_DADDR, /* u32 */ + L2TP_ATTR_UDP_SPORT, /* u16 */ + L2TP_ATTR_UDP_DPORT, /* u16 */ + L2TP_ATTR_MTU, /* u16 */ + L2TP_ATTR_MRU, /* u16 */ + L2TP_ATTR_STATS, /* nested */ + L2TP_ATTR_IP6_SADDR, /* struct in6_addr */ + L2TP_ATTR_IP6_DADDR, /* struct in6_addr */ + __L2TP_ATTR_MAX, +}; + +#define L2TP_ATTR_MAX (__L2TP_ATTR_MAX - 1) + +/* Nested in L2TP_ATTR_STATS */ +enum { + L2TP_ATTR_STATS_NONE, /* no data */ + L2TP_ATTR_TX_PACKETS, /* u64 */ + L2TP_ATTR_TX_BYTES, /* u64 */ + L2TP_ATTR_TX_ERRORS, /* u64 */ + L2TP_ATTR_RX_PACKETS, /* u64 */ + L2TP_ATTR_RX_BYTES, /* u64 */ + L2TP_ATTR_RX_SEQ_DISCARDS, /* u64 */ + L2TP_ATTR_RX_OOS_PACKETS, /* u64 */ + L2TP_ATTR_RX_ERRORS, /* u64 */ + __L2TP_ATTR_STATS_MAX, +}; + +#define L2TP_ATTR_STATS_MAX (__L2TP_ATTR_STATS_MAX - 1) + +enum l2tp_pwtype { + L2TP_PWTYPE_NONE = 0x0000, + L2TP_PWTYPE_ETH_VLAN = 0x0004, + L2TP_PWTYPE_ETH = 0x0005, + L2TP_PWTYPE_PPP = 0x0007, + L2TP_PWTYPE_PPP_AC = 0x0008, + L2TP_PWTYPE_IP = 0x000b, + __L2TP_PWTYPE_MAX +}; + +enum l2tp_l2spec_type { + L2TP_L2SPECTYPE_NONE, + L2TP_L2SPECTYPE_DEFAULT, +}; + +enum l2tp_encap_type { + L2TP_ENCAPTYPE_UDP, + L2TP_ENCAPTYPE_IP, +}; + +enum l2tp_seqmode { + L2TP_SEQ_NONE = 0, + L2TP_SEQ_IP = 1, + L2TP_SEQ_ALL = 2, +}; + +/* + * NETLINK_GENERIC related info + */ +#define L2TP_GENL_NAME "l2tp" +#define L2TP_GENL_VERSION 0x1 + +#endif /* _LINUX_L2TP_H_ */ diff --git a/kernel_headers/linux/limits.h b/kernel_headers/linux/limits.h new file mode 100644 index 0000000..2d0f941 --- /dev/null +++ b/kernel_headers/linux/limits.h @@ -0,0 +1,20 @@ +#ifndef _LINUX_LIMITS_H +#define _LINUX_LIMITS_H + +#define NR_OPEN 1024 + +#define NGROUPS_MAX 65536 /* supplemental group IDs are available */ +#define ARG_MAX 131072 /* # bytes of args + environ for exec() */ +#define LINK_MAX 127 /* # links a file may have */ +#define MAX_CANON 255 /* size of the canonical input queue */ +#define MAX_INPUT 255 /* size of the type-ahead buffer */ +#define NAME_MAX 255 /* # chars in a file name */ +#define PATH_MAX 4096 /* # chars in a path name including nul */ +#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */ +#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */ +#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */ +#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */ + +#define RTSIG_MAX 32 + +#endif diff --git a/kernel_headers/linux/llc.h b/kernel_headers/linux/llc.h new file mode 100644 index 0000000..ff895d1 --- /dev/null +++ b/kernel_headers/linux/llc.h @@ -0,0 +1,84 @@ +/* + * IEEE 802.2 User Interface SAPs for Linux, data structures and indicators. + * + * Copyright (c) 2001 by Jay Schulist + * + * This program can be redistributed or modified under the terms of the + * GNU General Public License as published by the Free Software Foundation. + * This program is distributed without any warranty or implied warranty + * of merchantability or fitness for a particular purpose. + * + * See the GNU General Public License for more details. + */ +#ifndef __LINUX_LLC_H +#define __LINUX_LLC_H + +#include + +#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */ +struct sockaddr_llc { + __kernel_sa_family_t sllc_family; /* AF_LLC */ + __kernel_sa_family_t sllc_arphrd; /* ARPHRD_ETHER */ + unsigned char sllc_test; + unsigned char sllc_xid; + unsigned char sllc_ua; /* UA data, only for SOCK_STREAM. */ + unsigned char sllc_sap; + unsigned char sllc_mac[IFHWADDRLEN]; + unsigned char __pad[__LLC_SOCK_SIZE__ - + sizeof(__kernel_sa_family_t) * 2 - + sizeof(unsigned char) * 4 - IFHWADDRLEN]; +}; + +/* sockopt definitions. */ +enum llc_sockopts { + LLC_OPT_UNKNOWN = 0, + LLC_OPT_RETRY, /* max retrans attempts. */ + LLC_OPT_SIZE, /* max PDU size (octets). */ + LLC_OPT_ACK_TMR_EXP, /* ack expire time (secs). */ + LLC_OPT_P_TMR_EXP, /* pf cycle expire time (secs). */ + LLC_OPT_REJ_TMR_EXP, /* rej sent expire time (secs). */ + LLC_OPT_BUSY_TMR_EXP, /* busy state expire time (secs). */ + LLC_OPT_TX_WIN, /* tx window size. */ + LLC_OPT_RX_WIN, /* rx window size. */ + LLC_OPT_PKTINFO, /* ancillary packet information. */ + LLC_OPT_MAX +}; + +#define LLC_OPT_MAX_RETRY 100 +#define LLC_OPT_MAX_SIZE 4196 +#define LLC_OPT_MAX_WIN 127 +#define LLC_OPT_MAX_ACK_TMR_EXP 60 +#define LLC_OPT_MAX_P_TMR_EXP 60 +#define LLC_OPT_MAX_REJ_TMR_EXP 60 +#define LLC_OPT_MAX_BUSY_TMR_EXP 60 + +/* LLC SAP types. */ +#define LLC_SAP_NULL 0x00 /* NULL SAP. */ +#define LLC_SAP_LLC 0x02 /* LLC Sublayer Management. */ +#define LLC_SAP_SNA 0x04 /* SNA Path Control. */ +#define LLC_SAP_PNM 0x0E /* Proway Network Management. */ +#define LLC_SAP_IP 0x06 /* TCP/IP. */ +#define LLC_SAP_BSPAN 0x42 /* Bridge Spanning Tree Proto */ +#define LLC_SAP_MMS 0x4E /* Manufacturing Message Srv. */ +#define LLC_SAP_8208 0x7E /* ISO 8208 */ +#define LLC_SAP_3COM 0x80 /* 3COM. */ +#define LLC_SAP_PRO 0x8E /* Proway Active Station List */ +#define LLC_SAP_SNAP 0xAA /* SNAP. */ +#define LLC_SAP_BANYAN 0xBC /* Banyan. */ +#define LLC_SAP_IPX 0xE0 /* IPX/SPX. */ +#define LLC_SAP_NETBEUI 0xF0 /* NetBEUI. */ +#define LLC_SAP_LANMGR 0xF4 /* LanManager. */ +#define LLC_SAP_IMPL 0xF8 /* IMPL */ +#define LLC_SAP_DISC 0xFC /* Discovery */ +#define LLC_SAP_OSI 0xFE /* OSI Network Layers. */ +#define LLC_SAP_LAR 0xDC /* LAN Address Resolution */ +#define LLC_SAP_RM 0xD4 /* Resource Management */ +#define LLC_SAP_GLOBAL 0xFF /* Global SAP. */ + +struct llc_pktinfo { + int lpi_ifindex; + unsigned char lpi_sap; + unsigned char lpi_mac[IFHWADDRLEN]; +}; + +#endif /* __LINUX_LLC_H */ diff --git a/kernel_headers/linux/loop.h b/kernel_headers/linux/loop.h new file mode 100644 index 0000000..adbd3c8 --- /dev/null +++ b/kernel_headers/linux/loop.h @@ -0,0 +1,94 @@ +/* + * include/linux/loop.h + * + * Written by Theodore Ts'o, 3/29/93. + * + * Copyright 1993 by Theodore Ts'o. Redistribution of this file is + * permitted under the GNU General Public License. + */ +#ifndef _LINUX_LOOP_H +#define _LINUX_LOOP_H + + +#define LO_NAME_SIZE 64 +#define LO_KEY_SIZE 32 + + +/* + * Loop flags + */ +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, +}; + +#include /* for __kernel_old_dev_t */ +#include /* for __u64 */ + +/* Backwards compatibility version */ +struct loop_info { + int lo_number; /* ioctl r/o */ + __kernel_old_dev_t lo_device; /* ioctl r/o */ + unsigned long lo_inode; /* ioctl r/o */ + __kernel_old_dev_t lo_rdevice; /* ioctl r/o */ + int lo_offset; + int lo_encrypt_type; + int lo_encrypt_key_size; /* ioctl w/o */ + int lo_flags; /* ioctl r/o */ + char lo_name[LO_NAME_SIZE]; + unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ + unsigned long lo_init[2]; + char reserved[4]; +}; + +struct loop_info64 { + __u64 lo_device; /* ioctl r/o */ + __u64 lo_inode; /* ioctl r/o */ + __u64 lo_rdevice; /* ioctl r/o */ + __u64 lo_offset; + __u64 lo_sizelimit;/* bytes, 0 == max available */ + __u32 lo_number; /* ioctl r/o */ + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; /* ioctl w/o */ + __u32 lo_flags; /* ioctl r/o */ + __u8 lo_file_name[LO_NAME_SIZE]; + __u8 lo_crypt_name[LO_NAME_SIZE]; + __u8 lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ + __u64 lo_init[2]; +}; + +/* + * Loop filter types + */ + +#define LO_CRYPT_NONE 0 +#define LO_CRYPT_XOR 1 +#define LO_CRYPT_DES 2 +#define LO_CRYPT_FISH2 3 /* Twofish encryption */ +#define LO_CRYPT_BLOW 4 +#define LO_CRYPT_CAST128 5 +#define LO_CRYPT_IDEA 6 +#define LO_CRYPT_DUMMY 9 +#define LO_CRYPT_SKIPJACK 10 +#define LO_CRYPT_CRYPTOAPI 18 +#define MAX_LO_CRYPT 20 + +/* + * IOCTL commands --- we will commandeer 0x4C ('L') + */ + +#define LOOP_SET_FD 0x4C00 +#define LOOP_CLR_FD 0x4C01 +#define LOOP_SET_STATUS 0x4C02 +#define LOOP_GET_STATUS 0x4C03 +#define LOOP_SET_STATUS64 0x4C04 +#define LOOP_GET_STATUS64 0x4C05 +#define LOOP_CHANGE_FD 0x4C06 +#define LOOP_SET_CAPACITY 0x4C07 + +/* /dev/loop-control interface */ +#define LOOP_CTL_ADD 0x4C80 +#define LOOP_CTL_REMOVE 0x4C81 +#define LOOP_CTL_GET_FREE 0x4C82 +#endif /* _LINUX_LOOP_H */ diff --git a/kernel_headers/linux/lp.h b/kernel_headers/linux/lp.h new file mode 100644 index 0000000..3226e65 --- /dev/null +++ b/kernel_headers/linux/lp.h @@ -0,0 +1,100 @@ +/* + * usr/include/linux/lp.h c.1991-1992 James Wiegand + * many modifications copyright (C) 1992 Michael K. Johnson + * Interrupt support added 1993 Nigel Gamble + * Removed 8255 status defines from inside __KERNEL__ Marcelo Tosatti + */ +#ifndef _LINUX_LP_H +#define _LINUX_LP_H + + +/* + * Per POSIX guidelines, this module reserves the LP and lp prefixes + * These are the lp_table[minor].flags flags... + */ +#define LP_EXIST 0x0001 +#define LP_SELEC 0x0002 +#define LP_BUSY 0x0004 +#define LP_BUSY_BIT_POS 2 +#define LP_OFFL 0x0008 +#define LP_NOPA 0x0010 +#define LP_ERR 0x0020 +#define LP_ABORT 0x0040 +#define LP_CAREFUL 0x0080 /* obsoleted -arca */ +#define LP_ABORTOPEN 0x0100 + +#define LP_TRUST_IRQ_ 0x0200 /* obsolete */ +#define LP_NO_REVERSE 0x0400 /* No reverse mode available. */ +#define LP_DATA_AVAIL 0x0800 /* Data is available. */ + +/* + * bit defines for 8255 status port + * base + 1 + * accessed with LP_S(minor), which gets the byte... + */ +#define LP_PBUSY 0x80 /* inverted input, active high */ +#define LP_PACK 0x40 /* unchanged input, active low */ +#define LP_POUTPA 0x20 /* unchanged input, active high */ +#define LP_PSELECD 0x10 /* unchanged input, active high */ +#define LP_PERRORP 0x08 /* unchanged input, active low */ + +/* timeout for each character. This is relative to bus cycles -- it + * is the count in a busy loop. THIS IS THE VALUE TO CHANGE if you + * have extremely slow printing, or if the machine seems to slow down + * a lot when you print. If you have slow printing, increase this + * number and recompile, and if your system gets bogged down, decrease + * this number. This can be changed with the tunelp(8) command as well. + */ + +#define LP_INIT_CHAR 1000 + +/* The parallel port specs apparently say that there needs to be + * a .5usec wait before and after the strobe. + */ + +#define LP_INIT_WAIT 1 + +/* This is the amount of time that the driver waits for the printer to + * catch up when the printer's buffer appears to be filled. If you + * want to tune this and have a fast printer (i.e. HPIIIP), decrease + * this number, and if you have a slow printer, increase this number. + * This is in hundredths of a second, the default 2 being .05 second. + * Or use the tunelp(8) command, which is especially nice if you want + * change back and forth between character and graphics printing, which + * are wildly different... + */ + +#define LP_INIT_TIME 2 + +/* IOCTL numbers */ +#define LPCHAR 0x0601 /* corresponds to LP_INIT_CHAR */ +#define LPTIME 0x0602 /* corresponds to LP_INIT_TIME */ +#define LPABORT 0x0604 /* call with TRUE arg to abort on error, + FALSE to retry. Default is retry. */ +#define LPSETIRQ 0x0605 /* call with new IRQ number, + or 0 for polling (no IRQ) */ +#define LPGETIRQ 0x0606 /* get the current IRQ number */ +#define LPWAIT 0x0608 /* corresponds to LP_INIT_WAIT */ +/* NOTE: LPCAREFUL is obsoleted and it' s always the default right now -arca */ +#define LPCAREFUL 0x0609 /* call with TRUE arg to require out-of-paper, off- + line, and error indicators good on all writes, + FALSE to ignore them. Default is ignore. */ +#define LPABORTOPEN 0x060a /* call with TRUE arg to abort open() on error, + FALSE to ignore error. Default is ignore. */ +#define LPGETSTATUS 0x060b /* return LP_S(minor) */ +#define LPRESET 0x060c /* reset printer */ +#ifdef LP_STATS +#define LPGETSTATS 0x060d /* get statistics (struct lp_stats) */ +#endif +#define LPGETFLAGS 0x060e /* get status flags */ +#define LPSETTIMEOUT 0x060f /* set parport timeout */ + +/* timeout for printk'ing a timeout, in jiffies (100ths of a second). + This is also used for re-checking error conditions if LP_ABORT is + not set. This is the default behavior. */ + +#define LP_TIMEOUT_INTERRUPT (60 * HZ) +#define LP_TIMEOUT_POLLED (10 * HZ) + + +#endif /* _LINUX_LP_H */ diff --git a/kernel_headers/linux/magic.h b/kernel_headers/linux/magic.h new file mode 100644 index 0000000..011b54f --- /dev/null +++ b/kernel_headers/linux/magic.h @@ -0,0 +1,78 @@ +#ifndef __LINUX_MAGIC_H__ +#define __LINUX_MAGIC_H__ + +#define ADFS_SUPER_MAGIC 0xadf5 +#define AFFS_SUPER_MAGIC 0xadff +#define AFS_SUPER_MAGIC 0x5346414F +#define AUTOFS_SUPER_MAGIC 0x0187 +#define CODA_SUPER_MAGIC 0x73757245 +#define CRAMFS_MAGIC 0x28cd3d45 /* some random number */ +#define CRAMFS_MAGIC_WEND 0x453dcd28 /* magic number with the wrong endianess */ +#define DEBUGFS_MAGIC 0x64626720 +#define SECURITYFS_MAGIC 0x73636673 +#define SELINUX_MAGIC 0xf97cff8c +#define SMACK_MAGIC 0x43415d53 /* "SMAC" */ +#define RAMFS_MAGIC 0x858458f6 /* some random number */ +#define TMPFS_MAGIC 0x01021994 +#define HUGETLBFS_MAGIC 0x958458f6 /* some random number */ +#define SQUASHFS_MAGIC 0x73717368 +#define ECRYPTFS_SUPER_MAGIC 0xf15f +#define EFS_SUPER_MAGIC 0x414A53 +#define EXT2_SUPER_MAGIC 0xEF53 +#define EXT3_SUPER_MAGIC 0xEF53 +#define XENFS_SUPER_MAGIC 0xabba1974 +#define EXT4_SUPER_MAGIC 0xEF53 +#define BTRFS_SUPER_MAGIC 0x9123683E +#define NILFS_SUPER_MAGIC 0x3434 +#define F2FS_SUPER_MAGIC 0xF2F52010 +#define HPFS_SUPER_MAGIC 0xf995e849 +#define ISOFS_SUPER_MAGIC 0x9660 +#define JFFS2_SUPER_MAGIC 0x72b6 +#define PSTOREFS_MAGIC 0x6165676C +#define EFIVARFS_MAGIC 0xde5e81e4 +#define HOSTFS_SUPER_MAGIC 0x00c0ffee + +#define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */ +#define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */ +#define MINIX2_SUPER_MAGIC 0x2468 /* minix v2 fs, 14 char names */ +#define MINIX2_SUPER_MAGIC2 0x2478 /* minix v2 fs, 30 char names */ +#define MINIX3_SUPER_MAGIC 0x4d5a /* minix v3 fs, 60 char names */ + +#define MSDOS_SUPER_MAGIC 0x4d44 /* MD */ +#define NCP_SUPER_MAGIC 0x564c /* Guess, what 0x564c is :-) */ +#define NFS_SUPER_MAGIC 0x6969 +#define OPENPROM_SUPER_MAGIC 0x9fa1 +#define QNX4_SUPER_MAGIC 0x002f /* qnx4 fs detection */ +#define QNX6_SUPER_MAGIC 0x68191122 /* qnx6 fs detection */ + +#define REISERFS_SUPER_MAGIC 0x52654973 /* used by gcc */ + /* used by file system utilities that + look at the superblock, etc. */ +#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs" +#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" +#define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" + +#define ESDFS_SUPER_MAGIC 0xb550ca10 + +#define SMB_SUPER_MAGIC 0x517B +#define CGROUP_SUPER_MAGIC 0x27e0eb + + +#define STACK_END_MAGIC 0x57AC6E9D + +#define V9FS_MAGIC 0x01021997 + +#define BDEVFS_MAGIC 0x62646576 +#define BINFMTFS_MAGIC 0x42494e4d +#define DEVPTS_SUPER_MAGIC 0x1cd1 +#define FUTEXFS_SUPER_MAGIC 0xBAD1DEA +#define PIPEFS_MAGIC 0x50495045 +#define PROC_SUPER_MAGIC 0x9fa0 +#define SOCKFS_MAGIC 0x534F434B +#define SYSFS_MAGIC 0x62656572 +#define USBDEVICE_SUPER_MAGIC 0x9fa2 +#define MTD_INODE_FS_MAGIC 0x11307854 +#define ANON_INODE_FS_MAGIC 0x09041934 + + +#endif /* __LINUX_MAGIC_H__ */ diff --git a/kernel_headers/linux/major.h b/kernel_headers/linux/major.h new file mode 100644 index 0000000..6a8ca98 --- /dev/null +++ b/kernel_headers/linux/major.h @@ -0,0 +1,177 @@ +#ifndef _LINUX_MAJOR_H +#define _LINUX_MAJOR_H + +/* + * This file has definitions for major device numbers. + * For the device number assignments, see Documentation/devices.txt. + */ + +#define UNNAMED_MAJOR 0 +#define MEM_MAJOR 1 +#define RAMDISK_MAJOR 1 +#define FLOPPY_MAJOR 2 +#define PTY_MASTER_MAJOR 2 +#define IDE0_MAJOR 3 +#define HD_MAJOR IDE0_MAJOR +#define PTY_SLAVE_MAJOR 3 +#define TTY_MAJOR 4 +#define TTYAUX_MAJOR 5 +#define LP_MAJOR 6 +#define VCS_MAJOR 7 +#define LOOP_MAJOR 7 +#define SCSI_DISK0_MAJOR 8 +#define SCSI_TAPE_MAJOR 9 +#define MD_MAJOR 9 +#define MISC_MAJOR 10 +#define SCSI_CDROM_MAJOR 11 +#define MUX_MAJOR 11 /* PA-RISC only */ +#define XT_DISK_MAJOR 13 +#define INPUT_MAJOR 13 +#define SOUND_MAJOR 14 +#define CDU31A_CDROM_MAJOR 15 +#define JOYSTICK_MAJOR 15 +#define GOLDSTAR_CDROM_MAJOR 16 +#define OPTICS_CDROM_MAJOR 17 +#define SANYO_CDROM_MAJOR 18 +#define CYCLADES_MAJOR 19 +#define CYCLADESAUX_MAJOR 20 +#define MITSUMI_X_CDROM_MAJOR 20 +#define MFM_ACORN_MAJOR 21 /* ARM Linux /dev/mfm */ +#define SCSI_GENERIC_MAJOR 21 +#define IDE1_MAJOR 22 +#define DIGICU_MAJOR 22 +#define DIGI_MAJOR 23 +#define MITSUMI_CDROM_MAJOR 23 +#define CDU535_CDROM_MAJOR 24 +#define STL_SERIALMAJOR 24 +#define MATSUSHITA_CDROM_MAJOR 25 +#define STL_CALLOUTMAJOR 25 +#define MATSUSHITA_CDROM2_MAJOR 26 +#define QIC117_TAPE_MAJOR 27 +#define MATSUSHITA_CDROM3_MAJOR 27 +#define MATSUSHITA_CDROM4_MAJOR 28 +#define STL_SIOMEMMAJOR 28 +#define ACSI_MAJOR 28 +#define AZTECH_CDROM_MAJOR 29 +#define FB_MAJOR 29 /* /dev/fb* framebuffers */ +#define CM206_CDROM_MAJOR 32 +#define IDE2_MAJOR 33 +#define IDE3_MAJOR 34 +#define Z8530_MAJOR 34 +#define XPRAM_MAJOR 35 /* Expanded storage on S/390: "slow ram"*/ +#define NETLINK_MAJOR 36 +#define PS2ESDI_MAJOR 36 +#define IDETAPE_MAJOR 37 +#define Z2RAM_MAJOR 37 +#define APBLOCK_MAJOR 38 /* AP1000 Block device */ +#define DDV_MAJOR 39 /* AP1000 DDV block device */ +#define NBD_MAJOR 43 /* Network block device */ +#define RISCOM8_NORMAL_MAJOR 48 +#define DAC960_MAJOR 48 /* 48..55 */ +#define RISCOM8_CALLOUT_MAJOR 49 +#define MKISS_MAJOR 55 +#define DSP56K_MAJOR 55 /* DSP56001 processor device */ + +#define IDE4_MAJOR 56 +#define IDE5_MAJOR 57 + +#define SCSI_DISK1_MAJOR 65 +#define SCSI_DISK2_MAJOR 66 +#define SCSI_DISK3_MAJOR 67 +#define SCSI_DISK4_MAJOR 68 +#define SCSI_DISK5_MAJOR 69 +#define SCSI_DISK6_MAJOR 70 +#define SCSI_DISK7_MAJOR 71 + +#define COMPAQ_SMART2_MAJOR 72 +#define COMPAQ_SMART2_MAJOR1 73 +#define COMPAQ_SMART2_MAJOR2 74 +#define COMPAQ_SMART2_MAJOR3 75 +#define COMPAQ_SMART2_MAJOR4 76 +#define COMPAQ_SMART2_MAJOR5 77 +#define COMPAQ_SMART2_MAJOR6 78 +#define COMPAQ_SMART2_MAJOR7 79 + +#define SPECIALIX_NORMAL_MAJOR 75 +#define SPECIALIX_CALLOUT_MAJOR 76 + +#define AURORA_MAJOR 79 + +#define I2O_MAJOR 80 /* 80->87 */ + +#define SHMIQ_MAJOR 85 /* Linux/mips, SGI /dev/shmiq */ +#define SCSI_CHANGER_MAJOR 86 + +#define IDE6_MAJOR 88 +#define IDE7_MAJOR 89 +#define IDE8_MAJOR 90 +#define IDE9_MAJOR 91 + +#define DASD_MAJOR 94 + +#define MDISK_MAJOR 95 + +#define UBD_MAJOR 98 + +#define PP_MAJOR 99 +#define JSFD_MAJOR 99 + +#define PHONE_MAJOR 100 + +#define COMPAQ_CISS_MAJOR 104 +#define COMPAQ_CISS_MAJOR1 105 +#define COMPAQ_CISS_MAJOR2 106 +#define COMPAQ_CISS_MAJOR3 107 +#define COMPAQ_CISS_MAJOR4 108 +#define COMPAQ_CISS_MAJOR5 109 +#define COMPAQ_CISS_MAJOR6 110 +#define COMPAQ_CISS_MAJOR7 111 + +#define VIODASD_MAJOR 112 +#define VIOCD_MAJOR 113 + +#define ATARAID_MAJOR 114 + +#define SCSI_DISK8_MAJOR 128 +#define SCSI_DISK9_MAJOR 129 +#define SCSI_DISK10_MAJOR 130 +#define SCSI_DISK11_MAJOR 131 +#define SCSI_DISK12_MAJOR 132 +#define SCSI_DISK13_MAJOR 133 +#define SCSI_DISK14_MAJOR 134 +#define SCSI_DISK15_MAJOR 135 + +#define UNIX98_PTY_MASTER_MAJOR 128 +#define UNIX98_PTY_MAJOR_COUNT 8 +#define UNIX98_PTY_SLAVE_MAJOR (UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT) + +#define DRBD_MAJOR 147 +#define RTF_MAJOR 150 +#define RAW_MAJOR 162 + +#define USB_ACM_MAJOR 166 +#define USB_ACM_AUX_MAJOR 167 +#define USB_CHAR_MAJOR 180 + +#define MMC_BLOCK_MAJOR 179 + +#define VXVM_MAJOR 199 /* VERITAS volume i/o driver */ +#define VXSPEC_MAJOR 200 /* VERITAS volume config driver */ +#define VXDMP_MAJOR 201 /* VERITAS volume multipath driver */ + +#define XENVBD_MAJOR 202 /* Xen virtual block device */ + +#define MSR_MAJOR 202 +#define CPUID_MAJOR 203 + +#define OSST_MAJOR 206 /* OnStream-SCx0 SCSI tape */ + +#define IBM_TTY3270_MAJOR 227 +#define IBM_FS3270_MAJOR 228 + +#define VIOTAPE_MAJOR 230 + +#define BLOCK_EXT_MAJOR 259 +#define SCSI_OSD_MAJOR 260 /* open-osd's OSD scsi device */ + +#endif diff --git a/kernel_headers/linux/map_to_7segment.h b/kernel_headers/linux/map_to_7segment.h new file mode 100644 index 0000000..12d62a5 --- /dev/null +++ b/kernel_headers/linux/map_to_7segment.h @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2005 Henk Vergonet + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef MAP_TO_7SEGMENT_H +#define MAP_TO_7SEGMENT_H + +/* This file provides translation primitives and tables for the conversion + * of (ASCII) characters to a 7-segments notation. + * + * The 7 segment's wikipedia notation below is used as standard. + * See: http://en.wikipedia.org/wiki/Seven_segment_display + * + * Notation: +-a-+ + * f b + * +-g-+ + * e c + * +-d-+ + * + * Usage: + * + * Register a map variable, and fill it with a character set: + * static SEG7_DEFAULT_MAP(map_seg7); + * + * + * Then use for conversion: + * seg7 = map_to_seg7(&map_seg7, some_char); + * ... + * + * In device drivers it is recommended, if required, to make the char map + * accessible via the sysfs interface using the following scheme: + * + * static ssize_t show_map(struct device *dev, char *buf) { + * memcpy(buf, &map_seg7, sizeof(map_seg7)); + * return sizeof(map_seg7); + * } + * static ssize_t store_map(struct device *dev, const char *buf, size_t cnt) { + * if(cnt != sizeof(map_seg7)) + * return -EINVAL; + * memcpy(&map_seg7, buf, cnt); + * return cnt; + * } + * static DEVICE_ATTR(map_seg7, PERMS_RW, show_map, store_map); + * + * History: + * 2005-05-31 RFC linux-kernel@vger.kernel.org + */ +#include + + +#define BIT_SEG7_A 0 +#define BIT_SEG7_B 1 +#define BIT_SEG7_C 2 +#define BIT_SEG7_D 3 +#define BIT_SEG7_E 4 +#define BIT_SEG7_F 5 +#define BIT_SEG7_G 6 +#define BIT_SEG7_RESERVED 7 + +struct seg7_conversion_map { + unsigned char table[128]; +}; + +static __inline__ int map_to_seg7(struct seg7_conversion_map *map, int c) +{ + return c >= 0 && c < sizeof(map->table) ? map->table[c] : -EINVAL; +} + +#define SEG7_CONVERSION_MAP(_name, _map) \ + struct seg7_conversion_map _name = { .table = { _map } } + +/* + * It is recommended to use a facility that allows user space to redefine + * custom character sets for LCD devices. Please use a sysfs interface + * as described above. + */ +#define MAP_TO_SEG7_SYSFS_FILE "map_seg7" + +/******************************************************************************* + * ASCII conversion table + ******************************************************************************/ + +#define _SEG7(l,a,b,c,d,e,f,g) \ + ( a<',1,1,0,0,0,0,1), _SEG7('?',1,1,1,0,0,1,0),\ + _SEG7('@',1,1,0,1,1,1,1), + +#define _MAP_65_90_ASCII_SEG7_ALPHA_UPPR \ + _SEG7('A',1,1,1,0,1,1,1), _SEG7('B',1,1,1,1,1,1,1), _SEG7('C',1,0,0,1,1,1,0),\ + _SEG7('D',1,1,1,1,1,1,0), _SEG7('E',1,0,0,1,1,1,1), _SEG7('F',1,0,0,0,1,1,1),\ + _SEG7('G',1,1,1,1,0,1,1), _SEG7('H',0,1,1,0,1,1,1), _SEG7('I',0,1,1,0,0,0,0),\ + _SEG7('J',0,1,1,1,0,0,0), _SEG7('K',0,1,1,0,1,1,1), _SEG7('L',0,0,0,1,1,1,0),\ + _SEG7('M',1,1,1,0,1,1,0), _SEG7('N',1,1,1,0,1,1,0), _SEG7('O',1,1,1,1,1,1,0),\ + _SEG7('P',1,1,0,0,1,1,1), _SEG7('Q',1,1,1,1,1,1,0), _SEG7('R',1,1,1,0,1,1,1),\ + _SEG7('S',1,0,1,1,0,1,1), _SEG7('T',0,0,0,1,1,1,1), _SEG7('U',0,1,1,1,1,1,0),\ + _SEG7('V',0,1,1,1,1,1,0), _SEG7('W',0,1,1,1,1,1,1), _SEG7('X',0,1,1,0,1,1,1),\ + _SEG7('Y',0,1,1,0,0,1,1), _SEG7('Z',1,1,0,1,1,0,1), + +#define _MAP_91_96_ASCII_SEG7_SYMBOL \ + _SEG7('[',1,0,0,1,1,1,0), _SEG7('\\',0,0,1,0,0,1,1),_SEG7(']',1,1,1,1,0,0,0),\ + _SEG7('^',1,1,0,0,0,1,0), _SEG7('_',0,0,0,1,0,0,0), _SEG7('`',0,1,0,0,0,0,0), + +#define _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \ + _SEG7('A',1,1,1,0,1,1,1), _SEG7('b',0,0,1,1,1,1,1), _SEG7('c',0,0,0,1,1,0,1),\ + _SEG7('d',0,1,1,1,1,0,1), _SEG7('E',1,0,0,1,1,1,1), _SEG7('F',1,0,0,0,1,1,1),\ + _SEG7('G',1,1,1,1,0,1,1), _SEG7('h',0,0,1,0,1,1,1), _SEG7('i',0,0,1,0,0,0,0),\ + _SEG7('j',0,0,1,1,0,0,0), _SEG7('k',0,0,1,0,1,1,1), _SEG7('L',0,0,0,1,1,1,0),\ + _SEG7('M',1,1,1,0,1,1,0), _SEG7('n',0,0,1,0,1,0,1), _SEG7('o',0,0,1,1,1,0,1),\ + _SEG7('P',1,1,0,0,1,1,1), _SEG7('q',1,1,1,0,0,1,1), _SEG7('r',0,0,0,0,1,0,1),\ + _SEG7('S',1,0,1,1,0,1,1), _SEG7('T',0,0,0,1,1,1,1), _SEG7('u',0,0,1,1,1,0,0),\ + _SEG7('v',0,0,1,1,1,0,0), _SEG7('W',0,1,1,1,1,1,1), _SEG7('X',0,1,1,0,1,1,1),\ + _SEG7('y',0,1,1,1,0,1,1), _SEG7('Z',1,1,0,1,1,0,1), + +#define _MAP_123_126_ASCII_SEG7_SYMBOL \ + _SEG7('{',1,0,0,1,1,1,0), _SEG7('|',0,0,0,0,1,1,0), _SEG7('}',1,1,1,1,0,0,0),\ + _SEG7('~',1,0,0,0,0,0,0), + +/* Maps */ + +/* This set tries to map as close as possible to the visible characteristics + * of the ASCII symbol, lowercase and uppercase letters may differ in + * presentation on the display. + */ +#define MAP_ASCII7SEG_ALPHANUM \ + _MAP_0_32_ASCII_SEG7_NON_PRINTABLE \ + _MAP_33_47_ASCII_SEG7_SYMBOL \ + _MAP_48_57_ASCII_SEG7_NUMERIC \ + _MAP_58_64_ASCII_SEG7_SYMBOL \ + _MAP_65_90_ASCII_SEG7_ALPHA_UPPR \ + _MAP_91_96_ASCII_SEG7_SYMBOL \ + _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \ + _MAP_123_126_ASCII_SEG7_SYMBOL + +/* This set tries to map as close as possible to the symbolic characteristics + * of the ASCII character for maximum discrimination. + * For now this means all alpha chars are in lower case representations. + * (This for example facilitates the use of hex numbers with uppercase input.) + */ +#define MAP_ASCII7SEG_ALPHANUM_LC \ + _MAP_0_32_ASCII_SEG7_NON_PRINTABLE \ + _MAP_33_47_ASCII_SEG7_SYMBOL \ + _MAP_48_57_ASCII_SEG7_NUMERIC \ + _MAP_58_64_ASCII_SEG7_SYMBOL \ + _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \ + _MAP_91_96_ASCII_SEG7_SYMBOL \ + _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \ + _MAP_123_126_ASCII_SEG7_SYMBOL + +#define SEG7_DEFAULT_MAP(_name) \ + SEG7_CONVERSION_MAP(_name,MAP_ASCII7SEG_ALPHANUM) + +#endif /* MAP_TO_7SEGMENT_H */ + diff --git a/kernel_headers/linux/matroxfb.h b/kernel_headers/linux/matroxfb.h new file mode 100644 index 0000000..8c22a89 --- /dev/null +++ b/kernel_headers/linux/matroxfb.h @@ -0,0 +1,42 @@ +#ifndef __LINUX_MATROXFB_H__ +#define __LINUX_MATROXFB_H__ + +#include +#include +#include +#include + +struct matroxioc_output_mode { + __u32 output; /* which output */ +#define MATROXFB_OUTPUT_PRIMARY 0x0000 +#define MATROXFB_OUTPUT_SECONDARY 0x0001 +#define MATROXFB_OUTPUT_DFP 0x0002 + __u32 mode; /* which mode */ +#define MATROXFB_OUTPUT_MODE_PAL 0x0001 +#define MATROXFB_OUTPUT_MODE_NTSC 0x0002 +#define MATROXFB_OUTPUT_MODE_MONITOR 0x0080 +}; +#define MATROXFB_SET_OUTPUT_MODE _IOW('n',0xFA,size_t) +#define MATROXFB_GET_OUTPUT_MODE _IOWR('n',0xFA,size_t) + +/* bitfield */ +#define MATROXFB_OUTPUT_CONN_PRIMARY (1 << MATROXFB_OUTPUT_PRIMARY) +#define MATROXFB_OUTPUT_CONN_SECONDARY (1 << MATROXFB_OUTPUT_SECONDARY) +#define MATROXFB_OUTPUT_CONN_DFP (1 << MATROXFB_OUTPUT_DFP) +/* connect these outputs to this framebuffer */ +#define MATROXFB_SET_OUTPUT_CONNECTION _IOW('n',0xF8,size_t) +/* which outputs are connected to this framebuffer */ +#define MATROXFB_GET_OUTPUT_CONNECTION _IOR('n',0xF8,size_t) +/* which outputs are available for this framebuffer */ +#define MATROXFB_GET_AVAILABLE_OUTPUTS _IOR('n',0xF9,size_t) +/* which outputs exist on this framebuffer */ +#define MATROXFB_GET_ALL_OUTPUTS _IOR('n',0xFB,size_t) + +enum matroxfb_ctrl_id { + MATROXFB_CID_TESTOUT = V4L2_CID_PRIVATE_BASE, + MATROXFB_CID_DEFLICKER, + MATROXFB_CID_LAST +}; + +#endif + diff --git a/kernel_headers/linux/mdio.h b/kernel_headers/linux/mdio.h new file mode 100644 index 0000000..57672dd --- /dev/null +++ b/kernel_headers/linux/mdio.h @@ -0,0 +1,297 @@ +/* + * linux/mdio.h: definitions for MDIO (clause 45) transceivers + * Copyright 2006-2009 Solarflare Communications Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation, incorporated herein by reference. + */ + +#ifndef __LINUX_MDIO_H__ +#define __LINUX_MDIO_H__ + +#include +#include + +/* MDIO Manageable Devices (MMDs). */ +#define MDIO_MMD_PMAPMD 1 /* Physical Medium Attachment/ + * Physical Medium Dependent */ +#define MDIO_MMD_WIS 2 /* WAN Interface Sublayer */ +#define MDIO_MMD_PCS 3 /* Physical Coding Sublayer */ +#define MDIO_MMD_PHYXS 4 /* PHY Extender Sublayer */ +#define MDIO_MMD_DTEXS 5 /* DTE Extender Sublayer */ +#define MDIO_MMD_TC 6 /* Transmission Convergence */ +#define MDIO_MMD_AN 7 /* Auto-Negotiation */ +#define MDIO_MMD_C22EXT 29 /* Clause 22 extension */ +#define MDIO_MMD_VEND1 30 /* Vendor specific 1 */ +#define MDIO_MMD_VEND2 31 /* Vendor specific 2 */ + +/* Generic MDIO registers. */ +#define MDIO_CTRL1 MII_BMCR +#define MDIO_STAT1 MII_BMSR +#define MDIO_DEVID1 MII_PHYSID1 +#define MDIO_DEVID2 MII_PHYSID2 +#define MDIO_SPEED 4 /* Speed ability */ +#define MDIO_DEVS1 5 /* Devices in package */ +#define MDIO_DEVS2 6 +#define MDIO_CTRL2 7 /* 10G control 2 */ +#define MDIO_STAT2 8 /* 10G status 2 */ +#define MDIO_PMA_TXDIS 9 /* 10G PMA/PMD transmit disable */ +#define MDIO_PMA_RXDET 10 /* 10G PMA/PMD receive signal detect */ +#define MDIO_PMA_EXTABLE 11 /* 10G PMA/PMD extended ability */ +#define MDIO_PKGID1 14 /* Package identifier */ +#define MDIO_PKGID2 15 +#define MDIO_AN_ADVERTISE 16 /* AN advertising (base page) */ +#define MDIO_AN_LPA 19 /* AN LP abilities (base page) */ +#define MDIO_PCS_EEE_ABLE 20 /* EEE Capability register */ +#define MDIO_PCS_EEE_WK_ERR 22 /* EEE wake error counter */ +#define MDIO_PHYXS_LNSTAT 24 /* PHY XGXS lane state */ +#define MDIO_AN_EEE_ADV 60 /* EEE advertisement */ +#define MDIO_AN_EEE_LPABLE 61 /* EEE link partner ability */ + +/* Media-dependent registers. */ +#define MDIO_PMA_10GBT_SWAPPOL 130 /* 10GBASE-T pair swap & polarity */ +#define MDIO_PMA_10GBT_TXPWR 131 /* 10GBASE-T TX power control */ +#define MDIO_PMA_10GBT_SNR 133 /* 10GBASE-T SNR margin, lane A. + * Lanes B-D are numbered 134-136. */ +#define MDIO_PMA_10GBR_FECABLE 170 /* 10GBASE-R FEC ability */ +#define MDIO_PCS_10GBX_STAT1 24 /* 10GBASE-X PCS status 1 */ +#define MDIO_PCS_10GBRT_STAT1 32 /* 10GBASE-R/-T PCS status 1 */ +#define MDIO_PCS_10GBRT_STAT2 33 /* 10GBASE-R/-T PCS status 2 */ +#define MDIO_AN_10GBT_CTRL 32 /* 10GBASE-T auto-negotiation control */ +#define MDIO_AN_10GBT_STAT 33 /* 10GBASE-T auto-negotiation status */ + +/* LASI (Link Alarm Status Interrupt) registers, defined by XENPAK MSA. */ +#define MDIO_PMA_LASI_RXCTRL 0x9000 /* RX_ALARM control */ +#define MDIO_PMA_LASI_TXCTRL 0x9001 /* TX_ALARM control */ +#define MDIO_PMA_LASI_CTRL 0x9002 /* LASI control */ +#define MDIO_PMA_LASI_RXSTAT 0x9003 /* RX_ALARM status */ +#define MDIO_PMA_LASI_TXSTAT 0x9004 /* TX_ALARM status */ +#define MDIO_PMA_LASI_STAT 0x9005 /* LASI status */ + +/* Control register 1. */ +/* Enable extended speed selection */ +#define MDIO_CTRL1_SPEEDSELEXT (BMCR_SPEED1000 | BMCR_SPEED100) +/* All speed selection bits */ +#define MDIO_CTRL1_SPEEDSEL (MDIO_CTRL1_SPEEDSELEXT | 0x003c) +#define MDIO_CTRL1_FULLDPLX BMCR_FULLDPLX +#define MDIO_CTRL1_LPOWER BMCR_PDOWN +#define MDIO_CTRL1_RESET BMCR_RESET +#define MDIO_PMA_CTRL1_LOOPBACK 0x0001 +#define MDIO_PMA_CTRL1_SPEED1000 BMCR_SPEED1000 +#define MDIO_PMA_CTRL1_SPEED100 BMCR_SPEED100 +#define MDIO_PCS_CTRL1_LOOPBACK BMCR_LOOPBACK +#define MDIO_PHYXS_CTRL1_LOOPBACK BMCR_LOOPBACK +#define MDIO_AN_CTRL1_RESTART BMCR_ANRESTART +#define MDIO_AN_CTRL1_ENABLE BMCR_ANENABLE +#define MDIO_AN_CTRL1_XNP 0x2000 /* Enable extended next page */ +#define MDIO_PCS_CTRL1_CLKSTOP_EN 0x400 /* Stop the clock during LPI */ + +/* 10 Gb/s */ +#define MDIO_CTRL1_SPEED10G (MDIO_CTRL1_SPEEDSELEXT | 0x00) +/* 10PASS-TS/2BASE-TL */ +#define MDIO_CTRL1_SPEED10P2B (MDIO_CTRL1_SPEEDSELEXT | 0x04) + +/* Status register 1. */ +#define MDIO_STAT1_LPOWERABLE 0x0002 /* Low-power ability */ +#define MDIO_STAT1_LSTATUS BMSR_LSTATUS +#define MDIO_STAT1_FAULT 0x0080 /* Fault */ +#define MDIO_AN_STAT1_LPABLE 0x0001 /* Link partner AN ability */ +#define MDIO_AN_STAT1_ABLE BMSR_ANEGCAPABLE +#define MDIO_AN_STAT1_RFAULT BMSR_RFAULT +#define MDIO_AN_STAT1_COMPLETE BMSR_ANEGCOMPLETE +#define MDIO_AN_STAT1_PAGE 0x0040 /* Page received */ +#define MDIO_AN_STAT1_XNP 0x0080 /* Extended next page status */ + +/* Speed register. */ +#define MDIO_SPEED_10G 0x0001 /* 10G capable */ +#define MDIO_PMA_SPEED_2B 0x0002 /* 2BASE-TL capable */ +#define MDIO_PMA_SPEED_10P 0x0004 /* 10PASS-TS capable */ +#define MDIO_PMA_SPEED_1000 0x0010 /* 1000M capable */ +#define MDIO_PMA_SPEED_100 0x0020 /* 100M capable */ +#define MDIO_PMA_SPEED_10 0x0040 /* 10M capable */ +#define MDIO_PCS_SPEED_10P2B 0x0002 /* 10PASS-TS/2BASE-TL capable */ + +/* Device present registers. */ +#define MDIO_DEVS_PRESENT(devad) (1 << (devad)) +#define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD) +#define MDIO_DEVS_WIS MDIO_DEVS_PRESENT(MDIO_MMD_WIS) +#define MDIO_DEVS_PCS MDIO_DEVS_PRESENT(MDIO_MMD_PCS) +#define MDIO_DEVS_PHYXS MDIO_DEVS_PRESENT(MDIO_MMD_PHYXS) +#define MDIO_DEVS_DTEXS MDIO_DEVS_PRESENT(MDIO_MMD_DTEXS) +#define MDIO_DEVS_TC MDIO_DEVS_PRESENT(MDIO_MMD_TC) +#define MDIO_DEVS_AN MDIO_DEVS_PRESENT(MDIO_MMD_AN) +#define MDIO_DEVS_C22EXT MDIO_DEVS_PRESENT(MDIO_MMD_C22EXT) + +/* Control register 2. */ +#define MDIO_PMA_CTRL2_TYPE 0x000f /* PMA/PMD type selection */ +#define MDIO_PMA_CTRL2_10GBCX4 0x0000 /* 10GBASE-CX4 type */ +#define MDIO_PMA_CTRL2_10GBEW 0x0001 /* 10GBASE-EW type */ +#define MDIO_PMA_CTRL2_10GBLW 0x0002 /* 10GBASE-LW type */ +#define MDIO_PMA_CTRL2_10GBSW 0x0003 /* 10GBASE-SW type */ +#define MDIO_PMA_CTRL2_10GBLX4 0x0004 /* 10GBASE-LX4 type */ +#define MDIO_PMA_CTRL2_10GBER 0x0005 /* 10GBASE-ER type */ +#define MDIO_PMA_CTRL2_10GBLR 0x0006 /* 10GBASE-LR type */ +#define MDIO_PMA_CTRL2_10GBSR 0x0007 /* 10GBASE-SR type */ +#define MDIO_PMA_CTRL2_10GBLRM 0x0008 /* 10GBASE-LRM type */ +#define MDIO_PMA_CTRL2_10GBT 0x0009 /* 10GBASE-T type */ +#define MDIO_PMA_CTRL2_10GBKX4 0x000a /* 10GBASE-KX4 type */ +#define MDIO_PMA_CTRL2_10GBKR 0x000b /* 10GBASE-KR type */ +#define MDIO_PMA_CTRL2_1000BT 0x000c /* 1000BASE-T type */ +#define MDIO_PMA_CTRL2_1000BKX 0x000d /* 1000BASE-KX type */ +#define MDIO_PMA_CTRL2_100BTX 0x000e /* 100BASE-TX type */ +#define MDIO_PMA_CTRL2_10BT 0x000f /* 10BASE-T type */ +#define MDIO_PCS_CTRL2_TYPE 0x0003 /* PCS type selection */ +#define MDIO_PCS_CTRL2_10GBR 0x0000 /* 10GBASE-R type */ +#define MDIO_PCS_CTRL2_10GBX 0x0001 /* 10GBASE-X type */ +#define MDIO_PCS_CTRL2_10GBW 0x0002 /* 10GBASE-W type */ +#define MDIO_PCS_CTRL2_10GBT 0x0003 /* 10GBASE-T type */ + +/* Status register 2. */ +#define MDIO_STAT2_RXFAULT 0x0400 /* Receive fault */ +#define MDIO_STAT2_TXFAULT 0x0800 /* Transmit fault */ +#define MDIO_STAT2_DEVPRST 0xc000 /* Device present */ +#define MDIO_STAT2_DEVPRST_VAL 0x8000 /* Device present value */ +#define MDIO_PMA_STAT2_LBABLE 0x0001 /* PMA loopback ability */ +#define MDIO_PMA_STAT2_10GBEW 0x0002 /* 10GBASE-EW ability */ +#define MDIO_PMA_STAT2_10GBLW 0x0004 /* 10GBASE-LW ability */ +#define MDIO_PMA_STAT2_10GBSW 0x0008 /* 10GBASE-SW ability */ +#define MDIO_PMA_STAT2_10GBLX4 0x0010 /* 10GBASE-LX4 ability */ +#define MDIO_PMA_STAT2_10GBER 0x0020 /* 10GBASE-ER ability */ +#define MDIO_PMA_STAT2_10GBLR 0x0040 /* 10GBASE-LR ability */ +#define MDIO_PMA_STAT2_10GBSR 0x0080 /* 10GBASE-SR ability */ +#define MDIO_PMD_STAT2_TXDISAB 0x0100 /* PMD TX disable ability */ +#define MDIO_PMA_STAT2_EXTABLE 0x0200 /* Extended abilities */ +#define MDIO_PMA_STAT2_RXFLTABLE 0x1000 /* Receive fault ability */ +#define MDIO_PMA_STAT2_TXFLTABLE 0x2000 /* Transmit fault ability */ +#define MDIO_PCS_STAT2_10GBR 0x0001 /* 10GBASE-R capable */ +#define MDIO_PCS_STAT2_10GBX 0x0002 /* 10GBASE-X capable */ +#define MDIO_PCS_STAT2_10GBW 0x0004 /* 10GBASE-W capable */ +#define MDIO_PCS_STAT2_RXFLTABLE 0x1000 /* Receive fault ability */ +#define MDIO_PCS_STAT2_TXFLTABLE 0x2000 /* Transmit fault ability */ + +/* Transmit disable register. */ +#define MDIO_PMD_TXDIS_GLOBAL 0x0001 /* Global PMD TX disable */ +#define MDIO_PMD_TXDIS_0 0x0002 /* PMD TX disable 0 */ +#define MDIO_PMD_TXDIS_1 0x0004 /* PMD TX disable 1 */ +#define MDIO_PMD_TXDIS_2 0x0008 /* PMD TX disable 2 */ +#define MDIO_PMD_TXDIS_3 0x0010 /* PMD TX disable 3 */ + +/* Receive signal detect register. */ +#define MDIO_PMD_RXDET_GLOBAL 0x0001 /* Global PMD RX signal detect */ +#define MDIO_PMD_RXDET_0 0x0002 /* PMD RX signal detect 0 */ +#define MDIO_PMD_RXDET_1 0x0004 /* PMD RX signal detect 1 */ +#define MDIO_PMD_RXDET_2 0x0008 /* PMD RX signal detect 2 */ +#define MDIO_PMD_RXDET_3 0x0010 /* PMD RX signal detect 3 */ + +/* Extended abilities register. */ +#define MDIO_PMA_EXTABLE_10GCX4 0x0001 /* 10GBASE-CX4 ability */ +#define MDIO_PMA_EXTABLE_10GBLRM 0x0002 /* 10GBASE-LRM ability */ +#define MDIO_PMA_EXTABLE_10GBT 0x0004 /* 10GBASE-T ability */ +#define MDIO_PMA_EXTABLE_10GBKX4 0x0008 /* 10GBASE-KX4 ability */ +#define MDIO_PMA_EXTABLE_10GBKR 0x0010 /* 10GBASE-KR ability */ +#define MDIO_PMA_EXTABLE_1000BT 0x0020 /* 1000BASE-T ability */ +#define MDIO_PMA_EXTABLE_1000BKX 0x0040 /* 1000BASE-KX ability */ +#define MDIO_PMA_EXTABLE_100BTX 0x0080 /* 100BASE-TX ability */ +#define MDIO_PMA_EXTABLE_10BT 0x0100 /* 10BASE-T ability */ + +/* PHY XGXS lane state register. */ +#define MDIO_PHYXS_LNSTAT_SYNC0 0x0001 +#define MDIO_PHYXS_LNSTAT_SYNC1 0x0002 +#define MDIO_PHYXS_LNSTAT_SYNC2 0x0004 +#define MDIO_PHYXS_LNSTAT_SYNC3 0x0008 +#define MDIO_PHYXS_LNSTAT_ALIGN 0x1000 + +/* PMA 10GBASE-T pair swap & polarity */ +#define MDIO_PMA_10GBT_SWAPPOL_ABNX 0x0001 /* Pair A/B uncrossed */ +#define MDIO_PMA_10GBT_SWAPPOL_CDNX 0x0002 /* Pair C/D uncrossed */ +#define MDIO_PMA_10GBT_SWAPPOL_AREV 0x0100 /* Pair A polarity reversed */ +#define MDIO_PMA_10GBT_SWAPPOL_BREV 0x0200 /* Pair B polarity reversed */ +#define MDIO_PMA_10GBT_SWAPPOL_CREV 0x0400 /* Pair C polarity reversed */ +#define MDIO_PMA_10GBT_SWAPPOL_DREV 0x0800 /* Pair D polarity reversed */ + +/* PMA 10GBASE-T TX power register. */ +#define MDIO_PMA_10GBT_TXPWR_SHORT 0x0001 /* Short-reach mode */ + +/* PMA 10GBASE-T SNR registers. */ +/* Value is SNR margin in dB, clamped to range [-127, 127], plus 0x8000. */ +#define MDIO_PMA_10GBT_SNR_BIAS 0x8000 +#define MDIO_PMA_10GBT_SNR_MAX 127 + +/* PMA 10GBASE-R FEC ability register. */ +#define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001 /* FEC ability */ +#define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002 /* FEC error indic. ability */ + +/* PCS 10GBASE-R/-T status register 1. */ +#define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001 /* Block lock attained */ + +/* PCS 10GBASE-R/-T status register 2. */ +#define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff +#define MDIO_PCS_10GBRT_STAT2_BER 0x3f00 + +/* AN 10GBASE-T control register. */ +#define MDIO_AN_10GBT_CTRL_ADV10G 0x1000 /* Advertise 10GBASE-T */ + +/* AN 10GBASE-T status register. */ +#define MDIO_AN_10GBT_STAT_LPTRR 0x0200 /* LP training reset req. */ +#define MDIO_AN_10GBT_STAT_LPLTABLE 0x0400 /* LP loop timing ability */ +#define MDIO_AN_10GBT_STAT_LP10G 0x0800 /* LP is 10GBT capable */ +#define MDIO_AN_10GBT_STAT_REMOK 0x1000 /* Remote OK */ +#define MDIO_AN_10GBT_STAT_LOCOK 0x2000 /* Local OK */ +#define MDIO_AN_10GBT_STAT_MS 0x4000 /* Master/slave config */ +#define MDIO_AN_10GBT_STAT_MSFLT 0x8000 /* Master/slave config fault */ + +/* EEE Supported/Advertisement/LP Advertisement registers. + * + * EEE capability Register (3.20), Advertisement (7.60) and + * Link partner ability (7.61) registers have and can use the same identical + * bit masks. + */ +#define MDIO_AN_EEE_ADV_100TX 0x0002 /* Advertise 100TX EEE cap */ +#define MDIO_AN_EEE_ADV_1000T 0x0004 /* Advertise 1000T EEE cap */ +/* Note: the two defines above can be potentially used by the user-land + * and cannot remove them now. + * So, we define the new generic MDIO_EEE_100TX and MDIO_EEE_1000T macros + * using the previous ones (that can be considered obsolete). + */ +#define MDIO_EEE_100TX MDIO_AN_EEE_ADV_100TX /* 100TX EEE cap */ +#define MDIO_EEE_1000T MDIO_AN_EEE_ADV_1000T /* 1000T EEE cap */ +#define MDIO_EEE_10GT 0x0008 /* 10GT EEE cap */ +#define MDIO_EEE_1000KX 0x0010 /* 1000KX EEE cap */ +#define MDIO_EEE_10GKX4 0x0020 /* 10G KX4 EEE cap */ +#define MDIO_EEE_10GKR 0x0040 /* 10G KR EEE cap */ + +/* LASI RX_ALARM control/status registers. */ +#define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001 /* PHY XS RX local fault */ +#define MDIO_PMA_LASI_RX_PCSLFLT 0x0008 /* PCS RX local fault */ +#define MDIO_PMA_LASI_RX_PMALFLT 0x0010 /* PMA/PMD RX local fault */ +#define MDIO_PMA_LASI_RX_OPTICPOWERFLT 0x0020 /* RX optical power fault */ +#define MDIO_PMA_LASI_RX_WISLFLT 0x0200 /* WIS local fault */ + +/* LASI TX_ALARM control/status registers. */ +#define MDIO_PMA_LASI_TX_PHYXSLFLT 0x0001 /* PHY XS TX local fault */ +#define MDIO_PMA_LASI_TX_PCSLFLT 0x0008 /* PCS TX local fault */ +#define MDIO_PMA_LASI_TX_PMALFLT 0x0010 /* PMA/PMD TX local fault */ +#define MDIO_PMA_LASI_TX_LASERPOWERFLT 0x0080 /* Laser output power fault */ +#define MDIO_PMA_LASI_TX_LASERTEMPFLT 0x0100 /* Laser temperature fault */ +#define MDIO_PMA_LASI_TX_LASERBICURRFLT 0x0200 /* Laser bias current fault */ + +/* LASI control/status registers. */ +#define MDIO_PMA_LASI_LSALARM 0x0001 /* LS_ALARM enable/status */ +#define MDIO_PMA_LASI_TXALARM 0x0002 /* TX_ALARM enable/status */ +#define MDIO_PMA_LASI_RXALARM 0x0004 /* RX_ALARM enable/status */ + +/* Mapping between MDIO PRTAD/DEVAD and mii_ioctl_data::phy_id */ + +#define MDIO_PHY_ID_C45 0x8000 +#define MDIO_PHY_ID_PRTAD 0x03e0 +#define MDIO_PHY_ID_DEVAD 0x001f +#define MDIO_PHY_ID_C45_MASK \ + (MDIO_PHY_ID_C45 | MDIO_PHY_ID_PRTAD | MDIO_PHY_ID_DEVAD) + +static __inline__ __u16 mdio_phy_id_c45(int prtad, int devad) +{ + return MDIO_PHY_ID_C45 | (prtad << 5) | devad; +} + +#endif /* __LINUX_MDIO_H__ */ diff --git a/kernel_headers/linux/media.h b/kernel_headers/linux/media.h new file mode 100644 index 0000000..e303639 --- /dev/null +++ b/kernel_headers/linux/media.h @@ -0,0 +1,134 @@ +/* + * Multimedia device API + * + * Copyright (C) 2010 Nokia Corporation + * + * Contacts: Laurent Pinchart + * Sakari Ailus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LINUX_MEDIA_H +#define __LINUX_MEDIA_H + +#include +#include +#include + +#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0) + +struct media_device_info { + char driver[16]; + char model[32]; + char serial[40]; + char bus_info[32]; + __u32 media_version; + __u32 hw_revision; + __u32 driver_version; + __u32 reserved[31]; +}; + +#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31) + +#define MEDIA_ENT_TYPE_SHIFT 16 +#define MEDIA_ENT_TYPE_MASK 0x00ff0000 +#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff + +#define MEDIA_ENT_T_DEVNODE (1 << MEDIA_ENT_TYPE_SHIFT) +#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1) +#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2) +#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3) +#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4) + +#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT) +#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1) +#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH (MEDIA_ENT_T_V4L2_SUBDEV + 2) +#define MEDIA_ENT_T_V4L2_SUBDEV_LENS (MEDIA_ENT_T_V4L2_SUBDEV + 3) +/* A converter of analogue video to its digital representation. */ +#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER (MEDIA_ENT_T_V4L2_SUBDEV + 4) + +#define MEDIA_ENT_FL_DEFAULT (1 << 0) + +struct media_entity_desc { + __u32 id; + char name[32]; + __u32 type; + __u32 revision; + __u32 flags; + __u32 group_id; + __u16 pads; + __u16 links; + + __u32 reserved[4]; + + union { + /* Node specifications */ + struct { + __u32 major; + __u32 minor; + } v4l; + struct { + __u32 major; + __u32 minor; + } fb; + struct { + __u32 card; + __u32 device; + __u32 subdevice; + } alsa; + int dvb; + + /* Sub-device specifications */ + /* Nothing needed yet */ + __u8 raw[184]; + }; +}; + +#define MEDIA_PAD_FL_SINK (1 << 0) +#define MEDIA_PAD_FL_SOURCE (1 << 1) + +struct media_pad_desc { + __u32 entity; /* entity ID */ + __u16 index; /* pad index */ + __u32 flags; /* pad flags */ + __u32 reserved[2]; +}; + +#define MEDIA_LNK_FL_ENABLED (1 << 0) +#define MEDIA_LNK_FL_IMMUTABLE (1 << 1) +#define MEDIA_LNK_FL_DYNAMIC (1 << 2) + +struct media_link_desc { + struct media_pad_desc source; + struct media_pad_desc sink; + __u32 flags; + __u32 reserved[2]; +}; + +struct media_links_enum { + __u32 entity; + /* Should have enough room for pads elements */ + struct media_pad_desc *pads; + /* Should have enough room for links elements */ + struct media_link_desc *links; + __u32 reserved[4]; +}; + +#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info) +#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc) +#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum) +#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) + +#endif /* __LINUX_MEDIA_H */ diff --git a/kernel_headers/linux/mei.h b/kernel_headers/linux/mei.h new file mode 100644 index 0000000..bc0d8b6 --- /dev/null +++ b/kernel_headers/linux/mei.h @@ -0,0 +1,110 @@ +/****************************************************************************** + * Intel Management Engine Interface (Intel MEI) Linux driver + * Intel MEI Interface Header + * + * This file is provided under a dual BSD/GPLv2 license. When using or + * redistributing this file, you may do so under either license. + * + * GPL LICENSE SUMMARY + * + * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, + * USA + * + * The full GNU General Public License is included in this distribution + * in the file called LICENSE.GPL. + * + * Contact Information: + * Intel Corporation. + * linux-mei@linux.intel.com + * http://www.intel.com + * + * BSD LICENSE + * + * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + *****************************************************************************/ + +#ifndef _LINUX_MEI_H +#define _LINUX_MEI_H + +#include + +/* + * This IOCTL is used to associate the current file descriptor with a + * FW Client (given by UUID). This opens a communication channel + * between a host client and a FW client. From this point every read and write + * will communicate with the associated FW client. + * Only in close() (file_operation release()) the communication between + * the clients is disconnected + * + * The IOCTL argument is a struct with a union that contains + * the input parameter and the output parameter for this IOCTL. + * + * The input parameter is UUID of the FW Client. + * The output parameter is the properties of the FW client + * (FW protocol version and max message size). + * + */ +#define IOCTL_MEI_CONNECT_CLIENT \ + _IOWR('H' , 0x01, struct mei_connect_client_data) + +/* + * Intel MEI client information struct + */ +struct mei_client { + __u32 max_msg_length; + __u8 protocol_version; + __u8 reserved[3]; +}; + +/* + * IOCTL Connect Client Data structure + */ +struct mei_connect_client_data { + union { + uuid_le in_client_uuid; + struct mei_client out_client_properties; + }; +}; + +#endif /* _LINUX_MEI_H */ diff --git a/kernel_headers/linux/mempolicy.h b/kernel_headers/linux/mempolicy.h new file mode 100644 index 0000000..3bcdcc9 --- /dev/null +++ b/kernel_headers/linux/mempolicy.h @@ -0,0 +1,73 @@ +/* + * NUMA memory policies for Linux. + * Copyright 2003,2004 Andi Kleen SuSE Labs + */ +#ifndef _LINUX_MEMPOLICY_H +#define _LINUX_MEMPOLICY_H + +#include + + +/* + * Both the MPOL_* mempolicy mode and the MPOL_F_* optional mode flags are + * passed by the user to either set_mempolicy() or mbind() in an 'int' actual. + * The MPOL_MODE_FLAGS macro determines the legal set of optional mode flags. + */ + +/* Policies */ +enum { + MPOL_DEFAULT, + MPOL_PREFERRED, + MPOL_BIND, + MPOL_INTERLEAVE, + MPOL_LOCAL, + MPOL_MAX, /* always last member of enum */ +}; + +enum mpol_rebind_step { + MPOL_REBIND_ONCE, /* do rebind work at once(not by two step) */ + MPOL_REBIND_STEP1, /* first step(set all the newly nodes) */ + MPOL_REBIND_STEP2, /* second step(clean all the disallowed nodes)*/ + MPOL_REBIND_NSTEP, +}; + +/* Flags for set_mempolicy */ +#define MPOL_F_STATIC_NODES (1 << 15) +#define MPOL_F_RELATIVE_NODES (1 << 14) + +/* + * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to + * either set_mempolicy() or mbind(). + */ +#define MPOL_MODE_FLAGS (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES) + +/* Flags for get_mempolicy */ +#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */ +#define MPOL_F_ADDR (1<<1) /* look up vma using address */ +#define MPOL_F_MEMS_ALLOWED (1<<2) /* return allowed memories */ + +/* Flags for mbind */ +#define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */ +#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform + to policy */ +#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to policy */ +#define MPOL_MF_LAZY (1<<3) /* Modifies '_MOVE: lazy migrate on fault */ +#define MPOL_MF_INTERNAL (1<<4) /* Internal flags start here */ + +#define MPOL_MF_VALID (MPOL_MF_STRICT | \ + MPOL_MF_MOVE | \ + MPOL_MF_MOVE_ALL) + +/* + * Internal flags that share the struct mempolicy flags word with + * "mode flags". These flags are allocated from bit 0 up, as they + * are never OR'ed into the mode in mempolicy API arguments. + */ +#define MPOL_F_SHARED (1 << 0) /* identify shared policies */ +#define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */ +#define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */ +#define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */ +#define MPOL_F_MORON (1 << 4) /* Migrate On pte_numa Reference On Node */ + + +#endif /* _LINUX_MEMPOLICY_H */ diff --git a/kernel_headers/linux/meye.h b/kernel_headers/linux/meye.h new file mode 100644 index 0000000..8ff50fe --- /dev/null +++ b/kernel_headers/linux/meye.h @@ -0,0 +1,64 @@ +/* + * Motion Eye video4linux driver for Sony Vaio PictureBook + * + * Copyright (C) 2001-2003 Stelian Pop + * + * Copyright (C) 2001-2002 Alcôve + * + * Copyright (C) 2000 Andrew Tridgell + * + * Earlier work by Werner Almesberger, Paul `Rusty' Russell and Paul Mackerras. + * + * Some parts borrowed from various video4linux drivers, especially + * bttv-driver.c and zoran.c, see original files for credits. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _MEYE_H_ +#define _MEYE_H_ + +/****************************************************************************/ +/* Private API for handling mjpeg capture / playback. */ +/****************************************************************************/ + +struct meye_params { + unsigned char subsample; + unsigned char quality; + unsigned char sharpness; + unsigned char agc; + unsigned char picture; + unsigned char framerate; +}; + +/* query the extended parameters */ +#define MEYEIOC_G_PARAMS _IOR ('v', BASE_VIDIOC_PRIVATE+0, struct meye_params) +/* set the extended parameters */ +#define MEYEIOC_S_PARAMS _IOW ('v', BASE_VIDIOC_PRIVATE+1, struct meye_params) +/* queue a buffer for mjpeg capture */ +#define MEYEIOC_QBUF_CAPT _IOW ('v', BASE_VIDIOC_PRIVATE+2, int) +/* sync a previously queued mjpeg buffer */ +#define MEYEIOC_SYNC _IOWR('v', BASE_VIDIOC_PRIVATE+3, int) +/* get a still uncompressed snapshot */ +#define MEYEIOC_STILLCAPT _IO ('v', BASE_VIDIOC_PRIVATE+4) +/* get a jpeg compressed snapshot */ +#define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int) + +/* V4L2 private controls */ +#define V4L2_CID_MEYE_AGC (V4L2_CID_USER_MEYE_BASE + 0) +#define V4L2_CID_MEYE_PICTURE (V4L2_CID_USER_MEYE_BASE + 1) +#define V4L2_CID_MEYE_FRAMERATE (V4L2_CID_USER_MEYE_BASE + 2) + +#endif diff --git a/kernel_headers/linux/mfd/..install.cmd b/kernel_headers/linux/mfd/..install.cmd new file mode 100644 index 0000000..76f69ac --- /dev/null +++ b/kernel_headers/linux/mfd/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/mfd msm-adie-codec.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd /android/kernels/moto/surnia/kernel-msm/include/linux/mfd ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/mfd ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/.install diff --git a/kernel_headers/linux/mfd/.install b/kernel_headers/linux/mfd/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/mfd/msm-adie-codec.h b/kernel_headers/linux/mfd/msm-adie-codec.h new file mode 100644 index 0000000..ef41d9c --- /dev/null +++ b/kernel_headers/linux/mfd/msm-adie-codec.h @@ -0,0 +1,146 @@ +#ifndef __UAPI_MFD_MSM_ADIE_CODEC_H +#define __UAPI_MFD_MSM_ADIE_CODEC_H + +#include + +/* Value Represents a entry */ +#define ADIE_CODEC_ACTION_ENTRY 0x1 +/* Value representing a delay wait */ +#define ADIE_CODEC_ACTION_DELAY_WAIT 0x2 +/* Value representing a stage reached */ +#define ADIE_CODEC_ACTION_STAGE_REACHED 0x3 + +/* This value is the state after the client sets the path */ +#define ADIE_CODEC_PATH_OFF 0x0050 + +/* State to which client asks the drv to proceed to where it can + * set up the clocks and 0-fill PCM buffers + */ +#define ADIE_CODEC_DIGITAL_READY 0x0100 + +/* State to which client asks the drv to proceed to where it can + * start sending data after internal steady state delay + */ +#define ADIE_CODEC_DIGITAL_ANALOG_READY 0x1000 + + +/* Client Asks adie to switch off the Analog portion of the + * the internal codec. After the use of this path + */ +#define ADIE_CODEC_ANALOG_OFF 0x0750 + + +/* Client Asks adie to switch off the digital portion of the + * the internal codec. After switching off the analog portion. + * + * 0-fill PCM may or maynot be sent at this point + * + */ +#define ADIE_CODEC_DIGITAL_OFF 0x0600 + +/* State to which client asks the drv to write the default values + * to the registers */ +#define ADIE_CODEC_FLASH_IMAGE 0x0001 + +/* Path type */ +#define ADIE_CODEC_RX 0 +#define ADIE_CODEC_TX 1 +#define ADIE_CODEC_LB 3 +#define ADIE_CODEC_MAX 4 + +#define ADIE_CODEC_PACK_ENTRY(reg, mask, val) ((val)|(mask << 8)|(reg << 16)) + +#define ADIE_CODEC_UNPACK_ENTRY(packed, reg, mask, val) \ + do { \ + ((reg) = ((packed >> 16) & (0xff))); \ + ((mask) = ((packed >> 8) & (0xff))); \ + ((val) = ((packed) & (0xff))); \ + } while (0); + +struct adie_codec_action_unit { + u32 type; + u32 action; +}; + +struct adie_codec_hwsetting_entry{ + struct adie_codec_action_unit *actions; + u32 action_sz; + u32 freq_plan; + u32 osr; + /* u32 VolMask; + * u32 SidetoneMask; + */ +}; + +struct adie_codec_dev_profile { + u32 path_type; /* RX or TX */ + u32 setting_sz; + struct adie_codec_hwsetting_entry *settings; +}; + +struct adie_codec_register { + u8 reg; + u8 mask; + u8 val; +}; + +struct adie_codec_register_image { + struct adie_codec_register *regs; + u32 img_sz; +}; + +struct adie_codec_path; + +struct adie_codec_anc_data { + u32 size; + u32 writes[]; +}; + +struct adie_codec_operations { + int codec_id; + int (*codec_open) (struct adie_codec_dev_profile *profile, + struct adie_codec_path **path_pptr); + int (*codec_close) (struct adie_codec_path *path_ptr); + int (*codec_setpath) (struct adie_codec_path *path_ptr, + u32 freq_plan, u32 osr); + int (*codec_proceed_stage) (struct adie_codec_path *path_ptr, + u32 state); + u32 (*codec_freq_supported) (struct adie_codec_dev_profile *profile, + u32 requested_freq); + int (*codec_enable_sidetone) (struct adie_codec_path *rx_path_ptr, + u32 enable); + int (*codec_enable_anc) (struct adie_codec_path *rx_path_ptr, + u32 enable, struct adie_codec_anc_data *calibration_writes); + int (*codec_set_device_digital_volume) ( + struct adie_codec_path *path_ptr, + u32 num_channels, + u32 vol_percentage); + + int (*codec_set_device_analog_volume) (struct adie_codec_path *path_ptr, + u32 num_channels, + u32 volume); + int (*codec_set_master_mode) (struct adie_codec_path *path_ptr, + u8 master); +}; + +int adie_codec_register_codec_operations( + const struct adie_codec_operations *codec_ops); +int adie_codec_open(struct adie_codec_dev_profile *profile, + struct adie_codec_path **path_pptr); +int adie_codec_setpath(struct adie_codec_path *path_ptr, + u32 freq_plan, u32 osr); +int adie_codec_proceed_stage(struct adie_codec_path *path_ptr, u32 state); +int adie_codec_close(struct adie_codec_path *path_ptr); +u32 adie_codec_freq_supported(struct adie_codec_dev_profile *profile, + u32 requested_freq); +int adie_codec_enable_sidetone(struct adie_codec_path *rx_path_ptr, u32 enable); +int adie_codec_enable_anc(struct adie_codec_path *rx_path_ptr, u32 enable, + struct adie_codec_anc_data *calibration_writes); +int adie_codec_set_device_digital_volume(struct adie_codec_path *path_ptr, + u32 num_channels, u32 vol_percentage /* in percentage */); + +int adie_codec_set_device_analog_volume(struct adie_codec_path *path_ptr, + u32 num_channels, u32 volume /* in percentage */); + +int adie_codec_set_master_mode(struct adie_codec_path *path_ptr, u8 master); +#endif diff --git a/kernel_headers/linux/mfd/wcd9xxx/..install.cmd b/kernel_headers/linux/mfd/wcd9xxx/..install.cmd new file mode 100644 index 0000000..3731802 --- /dev/null +++ b/kernel_headers/linux/mfd/wcd9xxx/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/wcd9xxx/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/wcd9xxx /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/mfd/wcd9xxx wcd9320_registers.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/wcd9xxx /android/kernels/moto/surnia/kernel-msm/include/linux/mfd/wcd9xxx wcd9310_registers.h wcd9xxx_registers.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/wcd9xxx /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/mfd/wcd9xxx ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/wcd9xxx/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mfd/wcd9xxx/.install diff --git a/kernel_headers/linux/mfd/wcd9xxx/.install b/kernel_headers/linux/mfd/wcd9xxx/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/mfd/wcd9xxx/wcd9310_registers.h b/kernel_headers/linux/mfd/wcd9xxx/wcd9310_registers.h new file mode 100644 index 0000000..cec0ce2 --- /dev/null +++ b/kernel_headers/linux/mfd/wcd9xxx/wcd9310_registers.h @@ -0,0 +1,1106 @@ +#ifndef TABLA_CODEC_DIGITAL_H + +#define TABLA_CODEC_DIGITAL_H +#include + +#define TABLA_A_CHIP_CTL WCD9XXX_A_CHIP_CTL +#define TABLA_A_CHIP_CTL__POR WCD9XXX_A_CHIP_CTL__POR +#define TABLA_A_CHIP_STATUS WCD9XXX_A_CHIP_STATUS +#define TABLA_A_CHIP_STATUS__POR WCD9XXX_A_CHIP_STATUS__POR +#define TABLA_A_CHIP_ID_BYTE_0 WCD9XXX_A_CHIP_ID_BYTE_0 +#define TABLA_A_CHIP_ID_BYTE_0__POR WCD9XXX_A_CHIP_ID_BYTE_0__POR +#define TABLA_A_CHIP_ID_BYTE_1 WCD9XXX_A_CHIP_ID_BYTE_1 +#define TABLA_A_CHIP_ID_BYTE_1__POR WCD9XXX_A_CHIP_ID_BYTE_1__POR +#define TABLA_A_CHIP_ID_BYTE_2 WCD9XXX_A_CHIP_ID_BYTE_2 +#define TABLA_A_CHIP_ID_BYTE_2__POR WCD9XXX_A_CHIP_ID_BYTE_2__POR +#define TABLA_A_CHIP_ID_BYTE_3 WCD9XXX_A_CHIP_ID_BYTE_3 +#define TABLA_A_CHIP_ID_BYTE_3__POR WCD9XXX_A_CHIP_ID_BYTE_3__POR +#define TABLA_A_CHIP_VERSION WCD9XXX_A_CHIP_VERSION +#define TABLA_A_CHIP_VERSION__POR WCD9XXX_A_CHIP_VERSION__POR +#define TABLA_A_SB_VERSION WCD9XXX_A_SB_VERSION +#define TABLA_A_SB_VERSION__POR WCD9XXX_A_SB_VERSION__POR +#define TABLA_A_SLAVE_ID_1 WCD9XXX_A_SLAVE_ID_1 +#define TABLA_A_SLAVE_ID_1__POR WCD9XXX_A_SLAVE_ID_1__POR +#define TABLA_A_SLAVE_ID_2 WCD9XXX_A_SLAVE_ID_2 +#define TABLA_A_SLAVE_ID_2__POR WCD9XXX_A_SLAVE_ID_2__POR +#define TABLA_A_SLAVE_ID_3 WCD9XXX_A_SLAVE_ID_3 +#define TABLA_A_SLAVE_ID_3__POR WCD9XXX_A_SLAVE_ID_3__POR +#define TABLA_A_PIN_CTL_OE0 (0x10) +#define TABLA_A_PIN_CTL_OE0__POR (0x00000000) +#define TABLA_A_PIN_CTL_OE1 (0x11) +#define TABLA_A_PIN_CTL_OE1__POR (0x00000000) +#define TABLA_A_PIN_CTL_DATA0 (0x12) +#define TABLA_A_PIN_CTL_DATA0__POR (0x00000000) +#define TABLA_A_PIN_CTL_DATA1 (0x13) +#define TABLA_A_PIN_CTL_DATA1__POR (0x00000000) +#define TABLA_A_HDRIVE_GENERIC (0x18) +#define TABLA_A_HDRIVE_GENERIC__POR (0x00000000) +#define TABLA_A_HDRIVE_OVERRIDE (0x19) +#define TABLA_A_HDRIVE_OVERRIDE__POR (0x00000008) +#define TABLA_A_ANA_CSR_WAIT_STATE (0x20) +#define TABLA_A_ANA_CSR_WAIT_STATE__POR (0x00000044) +#define TABLA_A_PROCESS_MONITOR_CTL0 (0x40) +#define TABLA_A_PROCESS_MONITOR_CTL0__POR (0x00000080) +#define TABLA_A_PROCESS_MONITOR_CTL1 (0x41) +#define TABLA_A_PROCESS_MONITOR_CTL1__POR (0x00000000) +#define TABLA_A_PROCESS_MONITOR_CTL2 (0x42) +#define TABLA_A_PROCESS_MONITOR_CTL2__POR (0x00000000) +#define TABLA_A_PROCESS_MONITOR_CTL3 (0x43) +#define TABLA_A_PROCESS_MONITOR_CTL3__POR (0x00000001) +#define TABLA_A_QFUSE_CTL (0x48) +#define TABLA_A_QFUSE_CTL__POR (0x00000000) +#define TABLA_A_QFUSE_STATUS (0x49) +#define TABLA_A_QFUSE_STATUS__POR (0x00000000) +#define TABLA_A_QFUSE_DATA_OUT0 (0x4A) +#define TABLA_A_QFUSE_DATA_OUT0__POR (0x00000000) +#define TABLA_A_QFUSE_DATA_OUT1 (0x4B) +#define TABLA_A_QFUSE_DATA_OUT1__POR (0x00000000) +#define TABLA_A_QFUSE_DATA_OUT2 (0x4C) +#define TABLA_A_QFUSE_DATA_OUT2__POR (0x00000000) +#define TABLA_A_QFUSE_DATA_OUT3 (0x4D) +#define TABLA_A_QFUSE_DATA_OUT3__POR (0x00000000) +#define TABLA_A_CDC_CTL WCD9XXX_A_CDC_CTL +#define TABLA_A_CDC_CTL__POR WCD9XXX_A_CDC_CTL__POR +#define TABLA_A_LEAKAGE_CTL WCD9XXX_A_LEAKAGE_CTL +#define TABLA_A_LEAKAGE_CTL__POR WCD9XXX_A_LEAKAGE_CTL__POR +#define TABLA_A_INTR_MODE (0x90) +#define TABLA_A_INTR_MODE__POR (0x00000000) +#define TABLA_A_INTR_MASK0 (0x94) +#define TABLA_A_INTR_MASK0__POR (0x000000ff) +#define TABLA_A_INTR_MASK1 (0x95) +#define TABLA_A_INTR_MASK1__POR (0x000000ff) +#define TABLA_A_INTR_MASK2 (0x96) +#define TABLA_A_INTR_MASK2__POR (0x000000ff) +#define TABLA_A_INTR_STATUS0 (0x98) +#define TABLA_A_INTR_STATUS0__POR (0x00000000) +#define TABLA_A_INTR_STATUS1 (0x99) +#define TABLA_A_INTR_STATUS1__POR (0x00000000) +#define TABLA_A_INTR_STATUS2 (0x9A) +#define TABLA_A_INTR_STATUS2__POR (0x00000000) +#define TABLA_A_INTR_CLEAR0 (0x9C) +#define TABLA_A_INTR_CLEAR0__POR (0x00000000) +#define TABLA_A_INTR_CLEAR1 (0x9D) +#define TABLA_A_INTR_CLEAR1__POR (0x00000000) +#define TABLA_A_INTR_CLEAR2 (0x9E) +#define TABLA_A_INTR_CLEAR2__POR (0x00000000) +#define TABLA_A_INTR_LEVEL0 (0xA0) +#define TABLA_A_INTR_LEVEL0__POR (0x00000001) +#define TABLA_A_INTR_LEVEL1 (0xA1) +#define TABLA_A_INTR_LEVEL1__POR (0x00000000) +#define TABLA_A_INTR_LEVEL2 (0xA2) +#define TABLA_A_INTR_LEVEL2__POR (0x00000000) +#define TABLA_A_INTR_TEST0 (0xA4) +#define TABLA_A_INTR_TEST0__POR (0x00000000) +#define TABLA_A_INTR_TEST1 (0xA5) +#define TABLA_A_INTR_TEST1__POR (0x00000000) +#define TABLA_A_INTR_TEST2 (0xA6) +#define TABLA_A_INTR_TEST2__POR (0x00000000) +#define TABLA_A_INTR_SET0 (0xA8) +#define TABLA_A_INTR_SET0__POR (0x00000000) +#define TABLA_A_INTR_SET1 (0xA9) +#define TABLA_A_INTR_SET1__POR (0x00000000) +#define TABLA_A_INTR_SET2 (0xAA) +#define TABLA_A_INTR_SET2__POR (0x00000000) +#define TABLA_A_CDC_TX_I2S_SCK_MODE (0xC0) +#define TABLA_A_CDC_TX_I2S_SCK_MODE__POR (0x00000000) +#define TABLA_A_CDC_TX_I2S_WS_MODE (0xC1) +#define TABLA_A_CDC_TX_I2S_WS_MODE__POR (0x00000000) +#define TABLA_A_CDC_DMIC_DATA0_MODE (0xC4) +#define TABLA_A_CDC_DMIC_DATA0_MODE__POR (0x00000000) +#define TABLA_A_CDC_DMIC_CLK0_MODE (0xC5) +#define TABLA_A_CDC_DMIC_CLK0_MODE__POR (0x00000000) +#define TABLA_A_CDC_DMIC_DATA1_MODE (0xC6) +#define TABLA_A_CDC_DMIC_DATA1_MODE__POR (0x00000000) +#define TABLA_A_CDC_DMIC_CLK1_MODE (0xC7) +#define TABLA_A_CDC_DMIC_CLK1_MODE__POR (0x00000000) +#define TABLA_A_CDC_RX_I2S_SCK_MODE (0xC8) +#define TABLA_A_CDC_RX_I2S_SCK_MODE__POR (0x00000000) +#define TABLA_A_CDC_RX_I2S_WS_MODE (0xC9) +#define TABLA_A_CDC_RX_I2S_WS_MODE__POR (0x00000000) +#define TABLA_A_CDC_DMIC_DATA2_MODE (0xCA) +#define TABLA_A_CDC_DMIC_DATA2_MODE__POR (0x00000000) +#define TABLA_A_CDC_DMIC_CLK2_MODE (0xCB) +#define TABLA_A_CDC_DMIC_CLK2_MODE__POR (0x00000000) +#define TABLA_A_CDC_INTR_MODE (0xCC) +#define TABLA_A_CDC_INTR_MODE__POR (0x00000000) +#define TABLA_A_BIAS_REF_CTL (0x0100) +#define TABLA_A_BIAS_REF_CTL__POR (0x0000001C) +#define TABLA_A_BIAS_CENTRAL_BG_CTL (0x0101) +#define TABLA_A_BIAS_CENTRAL_BG_CTL__POR (0x00000050) +#define TABLA_A_BIAS_PRECHRG_CTL (0x0102) +#define TABLA_A_BIAS_PRECHRG_CTL__POR (0x00000007) +#define TABLA_A_BIAS_CURR_CTL_1 (0x0103) +#define TABLA_A_BIAS_CURR_CTL_1__POR (0x00000052) +#define TABLA_A_BIAS_CURR_CTL_2 (0x0104) +#define TABLA_A_BIAS_CURR_CTL_2__POR (0x00000000) +#define TABLA_A_BIAS_CONFIG_MODE_BG_CTL (0x0105) +#define TABLA_A_BIAS_CONFIG_MODE_BG_CTL__POR (0x00000016) +#define TABLA_A_BIAS_BG_STATUS (0x0106) +#define TABLA_A_BIAS_BG_STATUS__POR (0x00000000) +#define TABLA_A_CLK_BUFF_EN1 (0x0108) +#define TABLA_A_CLK_BUFF_EN1__POR (0x00000004) +#define TABLA_A_CLK_BUFF_EN2 (0x0109) +#define TABLA_A_CLK_BUFF_EN2__POR (0x00000002) +#define TABLA_A_LDO_H_MODE_1 (0x0110) +#define TABLA_A_LDO_H_MODE_1__POR (0x00000065) +#define TABLA_A_LDO_H_MODE_2 (0x0111) +#define TABLA_A_LDO_H_MODE_2__POR (0x000000A8) +#define TABLA_A_LDO_H_LOOP_CTL (0x0112) +#define TABLA_A_LDO_H_LOOP_CTL__POR (0x0000006B) +#define TABLA_A_LDO_H_COMP_1 (0x0113) +#define TABLA_A_LDO_H_COMP_1__POR (0x00000084) +#define TABLA_A_LDO_H_COMP_2 (0x0114) +#define TABLA_A_LDO_H_COMP_2__POR (0x000000E0) +#define TABLA_A_LDO_H_BIAS_1 (0x0115) +#define TABLA_A_LDO_H_BIAS_1__POR (0x0000006D) +#define TABLA_A_LDO_H_BIAS_2 (0x0116) +#define TABLA_A_LDO_H_BIAS_2__POR (0x000000A5) +#define TABLA_A_LDO_H_BIAS_3 (0x0117) +#define TABLA_A_LDO_H_BIAS_3__POR (0x00000060) +#define TABLA_A_LDO_L_MODE_1 (0x0118) +#define TABLA_A_LDO_L_MODE_1__POR (0x00000028) +#define TABLA_A_LDO_L_MODE_2 (0x0119) +#define TABLA_A_LDO_L_MODE_2__POR (0x000000A8) +#define TABLA_A_LDO_L_LOOP_CTL (0x011A) +#define TABLA_A_LDO_L_LOOP_CTL__POR (0x0000006D) +#define TABLA_A_LDO_L_COMP_1 (0x011B) +#define TABLA_A_LDO_L_COMP_1__POR (0x00000031) +#define TABLA_A_LDO_L_COMP_2 (0x011C) +#define TABLA_A_LDO_L_COMP_2__POR (0x000000A0) +#define TABLA_A_LDO_L_BIAS_1 (0x011D) +#define TABLA_A_LDO_L_BIAS_1__POR (0x0000006D) +#define TABLA_A_LDO_L_BIAS_2 (0x011E) +#define TABLA_A_LDO_L_BIAS_2__POR (0x00000065) +#define TABLA_A_LDO_L_BIAS_3 (0x011F) +#define TABLA_A_LDO_L_BIAS_3__POR (0x00000050) +#define TABLA_A_MICB_CFILT_1_CTL (0x0128) +#define TABLA_A_MICB_CFILT_1_CTL__POR (0x00000040) +#define TABLA_A_MICB_CFILT_1_VAL (0x0129) +#define TABLA_A_MICB_CFILT_1_VAL__POR (0x00000080) +#define TABLA_A_MICB_CFILT_1_PRECHRG (0x012A) +#define TABLA_A_MICB_CFILT_1_PRECHRG__POR (0x00000038) +#define TABLA_A_MICB_1_CTL (0x012B) +#define TABLA_A_MICB_1_CTL__POR (0x00000016) +#define TABLA_A_MICB_1_INT_RBIAS (0x012C) +#define TABLA_A_MICB_1_INT_RBIAS__POR (0x00000000) +#define TABLA_A_MICB_1_MBHC (0x012D) +#define TABLA_A_MICB_1_MBHC__POR (0x00000001) +#define TABLA_A_MICB_CFILT_2_CTL (0x012E) +#define TABLA_A_MICB_CFILT_2_CTL__POR (0x00000040) +#define TABLA_A_MICB_CFILT_2_VAL (0x012F) +#define TABLA_A_MICB_CFILT_2_VAL__POR (0x00000080) +#define TABLA_A_MICB_CFILT_2_PRECHRG (0x0130) +#define TABLA_A_MICB_CFILT_2_PRECHRG__POR (0x00000038) +#define TABLA_A_MICB_2_CTL (0x0131) +#define TABLA_A_MICB_2_CTL__POR (0x00000016) +#define TABLA_A_MICB_2_INT_RBIAS (0x0132) +#define TABLA_A_MICB_2_INT_RBIAS__POR (0x00000000) +#define TABLA_A_MICB_2_MBHC (0x0133) +#define TABLA_A_MICB_2_MBHC__POR (0x00000000) +#define TABLA_A_MICB_CFILT_3_CTL (0x0134) +#define TABLA_A_MICB_CFILT_3_CTL__POR (0x00000040) +#define TABLA_A_MICB_CFILT_3_VAL (0x0135) +#define TABLA_A_MICB_CFILT_3_VAL__POR (0x00000080) +#define TABLA_A_MICB_CFILT_3_PRECHRG (0x0136) +#define TABLA_A_MICB_CFILT_3_PRECHRG__POR (0x00000038) +#define TABLA_A_MICB_3_CTL (0x0137) +#define TABLA_A_MICB_3_CTL__POR (0x00000016) +#define TABLA_A_MICB_3_INT_RBIAS (0x0138) +#define TABLA_A_MICB_3_INT_RBIAS__POR (0x00000000) +#define TABLA_A_MICB_3_MBHC (0x0139) +#define TABLA_A_MICB_3_MBHC__POR (0x00000000) +#define TABLA_1_A_MICB_4_CTL (0x013A) +#define TABLA_2_A_MICB_4_CTL (0x013D) +#define TABLA_A_MICB_4_CTL__POR (0x00000016) +#define TABLA_1_A_MICB_4_INT_RBIAS (0x013B) +#define TABLA_2_A_MICB_4_INT_RBIAS (0x013E) +#define TABLA_A_MICB_4_INT_RBIAS__POR (0x00000000) +#define TABLA_1_A_MICB_4_MBHC (0x013C) +#define TABLA_2_A_MICB_4_MBHC (0x013F) +#define TABLA_A_MICB_4_MBHC__POR (0x00000001) +#define TABLA_A_TX_COM_BIAS (0x014C) +#define TABLA_A_TX_COM_BIAS__POR (0x000000E0) +#define TABLA_A_MBHC_SCALING_MUX_1 (0x014E) +#define TABLA_A_MBHC_SCALING_MUX_1__POR (0x00000000) +#define TABLA_A_MBHC_SCALING_MUX_2 (0x014F) +#define TABLA_A_MBHC_SCALING_MUX_2__POR (0x00000080) +#define TABLA_A_TX_SUP_SWITCH_CTRL_1 (0x0151) +#define TABLA_A_TX_SUP_SWITCH_CTRL_1__POR (0x00000000) +#define TABLA_A_TX_SUP_SWITCH_CTRL_2 (0x0152) +#define TABLA_A_TX_SUP_SWITCH_CTRL_2__POR (0x00000080) +#define TABLA_A_TX_1_2_EN (0x0153) +#define TABLA_A_TX_1_2_EN__POR (0x00000000) +#define TABLA_A_TX_1_2_TEST_EN (0x0154) +#define TABLA_A_TX_1_2_TEST_EN__POR (0x000000CC) +#define TABLA_A_TX_1_2_ADC_CH1 (0x0155) +#define TABLA_A_TX_1_2_ADC_CH1__POR (0x00000044) +#define TABLA_A_TX_1_2_ADC_CH2 (0x0156) +#define TABLA_A_TX_1_2_ADC_CH2__POR (0x00000044) +#define TABLA_A_TX_1_2_ATEST_REFCTRL (0x0157) +#define TABLA_A_TX_1_2_ATEST_REFCTRL__POR (0x00000000) +#define TABLA_A_TX_1_2_TEST_CTL (0x0158) +#define TABLA_A_TX_1_2_TEST_CTL__POR (0x00000038) +#define TABLA_A_TX_1_2_TEST_BLOCK_EN (0x0159) +#define TABLA_A_TX_1_2_TEST_BLOCK_EN__POR (0x000000FF) +#define TABLA_A_TX_1_2_TXFE_CLKDIV (0x015A) +#define TABLA_A_TX_1_2_TXFE_CLKDIV__POR (0x000000EE) +#define TABLA_A_TX_1_2_SAR_ERR_CH1 (0x015B) +#define TABLA_A_TX_1_2_SAR_ERR_CH1__POR (0x00000000) +#define TABLA_A_TX_1_2_SAR_ERR_CH2 (0x015C) +#define TABLA_A_TX_1_2_SAR_ERR_CH2__POR (0x00000000) +#define TABLA_A_TX_3_4_EN (0x015D) +#define TABLA_A_TX_3_4_EN__POR (0x00000000) +#define TABLA_A_TX_3_4_TEST_EN (0x015E) +#define TABLA_A_TX_3_4_TEST_EN__POR (0x000000CC) +#define TABLA_A_TX_3_4_ADC_CH3 (0x015F) +#define TABLA_A_TX_3_4_ADC_CH3__POR (0x00000044) +#define TABLA_A_TX_3_4_ADC_CH4 (0x0160) +#define TABLA_A_TX_3_4_ADC_CH4__POR (0x00000044) +#define TABLA_A_TX_3_4_ATEST_REFCTRL (0x0161) +#define TABLA_A_TX_3_4_ATEST_REFCTRL__POR (0x00000000) +#define TABLA_A_TX_3_4_TEST_CTL (0x0162) +#define TABLA_A_TX_3_4_TEST_CTL__POR (0x00000038) +#define TABLA_A_TX_3_4_TEST_BLOCK_EN (0x0163) +#define TABLA_A_TX_3_4_TEST_BLOCK_EN__POR (0x000000FF) +#define TABLA_A_TX_3_4_TXFE_CKDIV (0x0164) +#define TABLA_A_TX_3_4_TXFE_CKDIV__POR (0x000000EE) +#define TABLA_A_TX_3_4_SAR_ERR_CH3 (0x0165) +#define TABLA_A_TX_3_4_SAR_ERR_CH3__POR (0x00000000) +#define TABLA_A_TX_3_4_SAR_ERR_CH4 (0x0166) +#define TABLA_A_TX_3_4_SAR_ERR_CH4__POR (0x00000000) +#define TABLA_A_TX_5_6_EN (0x0167) +#define TABLA_A_TX_5_6_EN__POR (0x00000011) +#define TABLA_A_TX_5_6_TEST_EN (0x0168) +#define TABLA_A_TX_5_6_TEST_EN__POR (0x000000CC) +#define TABLA_A_TX_5_6_ADC_CH5 (0x0169) +#define TABLA_A_TX_5_6_ADC_CH5__POR (0x00000044) +#define TABLA_A_TX_5_6_ADC_CH6 (0x016A) +#define TABLA_A_TX_5_6_ADC_CH6__POR (0x00000044) +#define TABLA_A_TX_5_6_ATEST_REFCTRL (0x016B) +#define TABLA_A_TX_5_6_ATEST_REFCTRL__POR (0x00000000) +#define TABLA_A_TX_5_6_TEST_CTL (0x016C) +#define TABLA_A_TX_5_6_TEST_CTL__POR (0x00000038) +#define TABLA_A_TX_5_6_TEST_BLOCK_EN (0x016D) +#define TABLA_A_TX_5_6_TEST_BLOCK_EN__POR (0x000000FF) +#define TABLA_A_TX_5_6_TXFE_CKDIV (0x016E) +#define TABLA_A_TX_5_6_TXFE_CKDIV__POR (0x000000EE) +#define TABLA_A_TX_5_6_SAR_ERR_CH5 (0x016F) +#define TABLA_A_TX_5_6_SAR_ERR_CH5__POR (0x00000000) +#define TABLA_A_TX_5_6_SAR_ERR_CH6 (0x0170) +#define TABLA_A_TX_5_6_SAR_ERR_CH6__POR (0x00000000) +#define TABLA_A_TX_7_MBHC_EN (0x0171) +#define TABLA_A_TX_7_MBHC_EN__POR (0x0000000C) +#define TABLA_A_TX_7_MBHC_ATEST_REFCTRL (0x0172) +#define TABLA_A_TX_7_MBHC_ATEST_REFCTRL__POR (0x00000000) +#define TABLA_A_TX_7_MBHC_ADC (0x0173) +#define TABLA_A_TX_7_MBHC_ADC__POR (0x00000044) +#define TABLA_A_TX_7_MBHC_TEST_CTL (0x0174) +#define TABLA_A_TX_7_MBHC_TEST_CTL__POR (0x00000038) +#define TABLA_A_TX_7_MBHC_SAR_ERR (0x0175) +#define TABLA_A_TX_7_MBHC_SAR_ERR__POR (0x00000000) +#define TABLA_A_TX_7_TXFE_CLKDIV (0x0176) +#define TABLA_A_TX_7_TXFE_CLKDIV__POR (0x0000001C) +#define TABLA_A_AUX_COM_CTL (0x0180) +#define TABLA_A_AUX_COM_CTL__POR (0x00000034) +#define TABLA_A_AUX_COM_ATEST (0x0181) +#define TABLA_A_AUX_COM_ATEST__POR (0x00000000) +#define TABLA_A_AUX_L_EN (0x0182) +#define TABLA_A_AUX_L_EN__POR (0x00000000) +#define TABLA_A_AUX_L_GAIN (0x0183) +#define TABLA_A_AUX_L_GAIN__POR (0x0000001F) +#define TABLA_A_AUX_L_PA_CONN (0x0184) +#define TABLA_A_AUX_L_PA_CONN__POR (0x00000000) +#define TABLA_A_AUX_L_PA_CONN_INV (0x0185) +#define TABLA_A_AUX_L_PA_CONN_INV__POR (0x00000000) +#define TABLA_A_AUX_R_EN (0x0186) +#define TABLA_A_AUX_R_EN__POR (0x00000000) +#define TABLA_A_AUX_R_GAIN (0x0187) +#define TABLA_A_AUX_R_GAIN__POR (0x0000001F) +#define TABLA_A_AUX_R_PA_CONN (0x0188) +#define TABLA_A_AUX_R_PA_CONN__POR (0x00000000) +#define TABLA_A_AUX_R_PA_CONN_INV (0x0189) +#define TABLA_A_AUX_R_PA_CONN_INV__POR (0x00000000) +#define TABLA_A_CP_EN (0x0192) +#define TABLA_A_CP_EN__POR (0x000000E6) +#define TABLA_A_CP_CLK (0x0193) +#define TABLA_A_CP_CLK__POR (0x00000029) +#define TABLA_A_CP_STATIC (0x0194) +#define TABLA_A_CP_STATIC__POR (0x00000010) +#define TABLA_A_CP_DCC1 (0x0195) +#define TABLA_A_CP_DCC1__POR (0x00000052) +#define TABLA_A_CP_DCC3 (0x0196) +#define TABLA_A_CP_DCC3__POR (0x00000001) +#define TABLA_A_CP_ATEST (0x0197) +#define TABLA_A_CP_ATEST__POR (0x00000000) +#define TABLA_A_CP_DTEST (0x0198) +#define TABLA_A_CP_DTEST__POR (0x00000000) +#define TABLA_A_RX_COM_TIMER_DIV (0x019E) +#define TABLA_A_RX_COM_TIMER_DIV__POR (0x000000E8) +#define TABLA_A_RX_COM_OCP_CTL (0x019F) +#define TABLA_A_RX_COM_OCP_CTL__POR (0x0000001F) +#define TABLA_A_RX_COM_OCP_COUNT (0x01A0) +#define TABLA_A_RX_COM_OCP_COUNT__POR (0x00000077) +#define TABLA_A_RX_COM_DAC_CTL (0x01A1) +#define TABLA_A_RX_COM_DAC_CTL__POR (0x00000000) +#define TABLA_A_RX_COM_BIAS (0x01A2) +#define TABLA_A_RX_COM_BIAS__POR (0x00000000) +#define TABLA_A_RX_HPH_BIAS_PA (0x01A6) +#define TABLA_A_RX_HPH_BIAS_PA__POR (0x000000AA) +#define TABLA_A_RX_HPH_BIAS_LDO (0x01A7) +#define TABLA_A_RX_HPH_BIAS_LDO__POR (0x00000086) +#define TABLA_A_RX_HPH_BIAS_CNP (0x01A8) +#define TABLA_A_RX_HPH_BIAS_CNP__POR (0x0000008A) +#define TABLA_A_RX_HPH_BIAS_WG (0x01A9) +#define TABLA_A_RX_HPH_BIAS_WG__POR (0x00000060) +#define TABLA_A_RX_HPH_OCP_CTL (0x01AA) +#define TABLA_A_RX_HPH_OCP_CTL__POR (0x000000E8) +#define TABLA_A_RX_HPH_CNP_EN (0x01AB) +#define TABLA_A_RX_HPH_CNP_EN__POR (0x00000080) +#define TABLA_A_RX_HPH_CNP_WG_CTL (0x01AC) +#define TABLA_A_RX_HPH_CNP_WG_CTL__POR (0x000000DC) +#define TABLA_A_RX_HPH_CNP_WG_TIME (0x01AD) +#define TABLA_A_RX_HPH_CNP_WG_TIME__POR (0x00000028) +#define TABLA_A_RX_HPH_L_GAIN (0x01AE) +#define TABLA_A_RX_HPH_L_GAIN__POR (0x00000000) +#define TABLA_A_RX_HPH_L_TEST (0x01AF) +#define TABLA_A_RX_HPH_L_TEST__POR (0x00000001) +#define TABLA_A_RX_HPH_L_PA_CTL (0x01B0) +#define TABLA_A_RX_HPH_L_PA_CTL__POR (0x00000040) +#define TABLA_A_RX_HPH_L_DAC_CTL (0x01B1) +#define TABLA_A_RX_HPH_L_DAC_CTL__POR (0x00000000) +#define TABLA_A_RX_HPH_L_ATEST (0x01B2) +#define TABLA_A_RX_HPH_L_ATEST__POR (0x00000000) +#define TABLA_A_RX_HPH_L_STATUS (0x01B3) +#define TABLA_A_RX_HPH_L_STATUS__POR (0x00000004) +#define TABLA_A_RX_HPH_R_GAIN (0x01B4) +#define TABLA_A_RX_HPH_R_GAIN__POR (0x00000000) +#define TABLA_A_RX_HPH_R_TEST (0x01B5) +#define TABLA_A_RX_HPH_R_TEST__POR (0x00000001) +#define TABLA_A_RX_HPH_R_PA_CTL (0x01B6) +#define TABLA_A_RX_HPH_R_PA_CTL__POR (0x00000040) +#define TABLA_A_RX_HPH_R_DAC_CTL (0x01B7) +#define TABLA_A_RX_HPH_R_DAC_CTL__POR (0x00000000) +#define TABLA_A_RX_HPH_R_ATEST (0x01B8) +#define TABLA_A_RX_HPH_R_ATEST__POR (0x00000000) +#define TABLA_A_RX_HPH_R_STATUS (0x01B9) +#define TABLA_A_RX_HPH_R_STATUS__POR (0x00000004) +#define TABLA_A_RX_EAR_BIAS_PA (0x01BA) +#define TABLA_A_RX_EAR_BIAS_PA__POR (0x000000AA) +#define TABLA_A_RX_EAR_BIAS_CMBUFF (0x01BB) +#define TABLA_A_RX_EAR_BIAS_CMBUFF__POR (0x000000A0) +#define TABLA_A_RX_EAR_EN (0x01BC) +#define TABLA_A_RX_EAR_EN__POR (0x00000000) +#define TABLA_A_RX_EAR_GAIN (0x01BD) +#define TABLA_A_RX_EAR_GAIN__POR (0x00000008) +#define TABLA_A_RX_EAR_CMBUFF (0x01BE) +#define TABLA_A_RX_EAR_CMBUFF__POR (0x00000000) +#define TABLA_A_RX_EAR_ICTL (0x01BF) +#define TABLA_A_RX_EAR_ICTL__POR (0x00000040) +#define TABLA_A_RX_EAR_CCOMP (0x01C0) +#define TABLA_A_RX_EAR_CCOMP__POR (0x00000008) +#define TABLA_A_RX_EAR_VCM (0x01C1) +#define TABLA_A_RX_EAR_VCM__POR (0x00000000) +#define TABLA_A_RX_EAR_CNP (0x01C2) +#define TABLA_A_RX_EAR_CNP__POR (0x00000080) +#define TABLA_A_RX_EAR_ATEST (0x01C3) +#define TABLA_A_RX_EAR_ATEST__POR (0x00000000) +#define TABLA_A_RX_EAR_STATUS (0x01C5) +#define TABLA_A_RX_EAR_STATUS__POR (0x00000004) +#define TABLA_A_RX_LINE_BIAS_PA (0x01C6) +#define TABLA_A_RX_LINE_BIAS_PA__POR (0x000000AA) +#define TABLA_A_RX_LINE_BIAS_DAC (0x01C7) +#define TABLA_A_RX_LINE_BIAS_DAC__POR (0x000000A0) +#define TABLA_A_RX_LINE_BIAS_CNP (0x01C8) +#define TABLA_A_RX_LINE_BIAS_CNP__POR (0x0000003A) +#define TABLA_A_RX_LINE_COM (0x01C9) +#define TABLA_A_RX_LINE_COM__POR (0x00000000) +#define TABLA_A_RX_LINE_CNP_EN (0x01CA) +#define TABLA_A_RX_LINE_CNP_EN__POR (0x00000080) +#define TABLA_A_RX_LINE_CNP_WG_CTL (0x01CB) +#define TABLA_A_RX_LINE_CNP_WG_CTL__POR (0x0000001C) +#define TABLA_A_RX_LINE_CNP_WG_TIME (0x01CC) +#define TABLA_A_RX_LINE_CNP_WG_TIME__POR (0x00000064) +#define TABLA_A_RX_LINE_1_GAIN (0x01CD) +#define TABLA_A_RX_LINE_1_GAIN__POR (0x00000000) +#define TABLA_A_RX_LINE_1_TEST (0x01CE) +#define TABLA_A_RX_LINE_1_TEST__POR (0x00000000) +#define TABLA_A_RX_LINE_1_DAC_CTL (0x01CF) +#define TABLA_A_RX_LINE_1_DAC_CTL__POR (0x0000000C) +#define TABLA_A_RX_LINE_1_STATUS (0x01D0) +#define TABLA_A_RX_LINE_1_STATUS__POR (0x00000000) +#define TABLA_A_RX_LINE_2_GAIN (0x01D1) +#define TABLA_A_RX_LINE_2_GAIN__POR (0x00000000) +#define TABLA_A_RX_LINE_2_TEST (0x01D2) +#define TABLA_A_RX_LINE_2_TEST__POR (0x00000000) +#define TABLA_A_RX_LINE_2_DAC_CTL (0x01D3) +#define TABLA_A_RX_LINE_2_DAC_CTL__POR (0x0000000C) +#define TABLA_A_RX_LINE_2_STATUS (0x01D4) +#define TABLA_A_RX_LINE_2_STATUS__POR (0x00000000) +#define TABLA_A_RX_LINE_3_GAIN (0x01D5) +#define TABLA_A_RX_LINE_3_GAIN__POR (0x00000000) +#define TABLA_A_RX_LINE_3_TEST (0x01D6) +#define TABLA_A_RX_LINE_3_TEST__POR (0x00000000) +#define TABLA_A_RX_LINE_3_DAC_CTL (0x01D7) +#define TABLA_A_RX_LINE_3_DAC_CTL__POR (0x0000000C) +#define TABLA_A_RX_LINE_3_STATUS (0x01D8) +#define TABLA_A_RX_LINE_3_STATUS__POR (0x00000000) +#define TABLA_A_RX_LINE_4_GAIN (0x01D9) +#define TABLA_A_RX_LINE_4_GAIN__POR (0x00000000) +#define TABLA_A_RX_LINE_4_TEST (0x01DA) +#define TABLA_A_RX_LINE_4_TEST__POR (0x00000000) +#define TABLA_A_RX_LINE_4_DAC_CTL (0x01DB) +#define TABLA_A_RX_LINE_4_DAC_CTL__POR (0x0000000C) +#define TABLA_A_RX_LINE_4_STATUS (0x01DC) +#define TABLA_A_RX_LINE_4_STATUS__POR (0x00000000) +#define TABLA_A_RX_LINE_5_GAIN (0x01DD) +#define TABLA_A_RX_LINE_5_GAIN__POR (0x00000000) +#define TABLA_A_RX_LINE_5_TEST (0x01DE) +#define TABLA_A_RX_LINE_5_TEST__POR (0x00000000) +#define TABLA_A_RX_LINE_5_DAC_CTL (0x01DF) +#define TABLA_A_RX_LINE_5_DAC_CTL__POR (0x0000000C) +#define TABLA_A_RX_LINE_5_STATUS (0x01E0) +#define TABLA_A_RX_LINE_5_STATUS__POR (0x00000000) +#define TABLA_A_RX_LINE_CNP_DBG (0x01EC) +#define TABLA_A_RX_LINE_CNP_DBG__POR (0x00000000) +#define TABLA_A_MBHC_HPH (0x01ED) +#define TABLA_A_MBHC_HPH__POR (0x00000048) +#define TABLA_A_CONFIG_MODE_FREQ (0x01F7) +#define TABLA_A_CONFIG_MODE_FREQ__POR (0x00000047) +#define TABLA_A_CONFIG_MODE_TEST (0x01F8) +#define TABLA_A_CONFIG_MODE_TEST__POR (0x0000000A) +#define TABLA_A_CONFIG_MODE_STATUS (0x01F9) +#define TABLA_A_CONFIG_MODE_STATUS__POR (0x0000001C) +#define TABLA_A_CONFIG_MODE_TUNER (0x01FA) +#define TABLA_A_CONFIG_MODE_TUNER__POR (0x00000000) +#define TABLA_A_CDC_ANC1_CTL (0x00000200) +#define TABLA_A_CDC_ANC1_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_CTL (0x00000280) +#define TABLA_A_CDC_ANC2_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_SHIFT (0x00000201) +#define TABLA_A_CDC_ANC1_SHIFT__POR (0x00000000) +#define TABLA_A_CDC_ANC2_SHIFT (0x00000281) +#define TABLA_A_CDC_ANC2_SHIFT__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT1_B1_CTL (0x00000202) +#define TABLA_A_CDC_ANC1_FILT1_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT1_B1_CTL (0x00000282) +#define TABLA_A_CDC_ANC2_FILT1_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT1_B2_CTL (0x00000203) +#define TABLA_A_CDC_ANC1_FILT1_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT1_B2_CTL (0x00000283) +#define TABLA_A_CDC_ANC2_FILT1_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT1_B3_CTL (0x00000204) +#define TABLA_A_CDC_ANC1_FILT1_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT1_B3_CTL (0x00000284) +#define TABLA_A_CDC_ANC2_FILT1_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT1_B4_CTL (0x00000205) +#define TABLA_A_CDC_ANC1_FILT1_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT1_B4_CTL (0x00000285) +#define TABLA_A_CDC_ANC2_FILT1_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT2_B1_CTL (0x00000206) +#define TABLA_A_CDC_ANC1_FILT2_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT2_B1_CTL (0x00000286) +#define TABLA_A_CDC_ANC2_FILT2_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT2_B2_CTL (0x00000207) +#define TABLA_A_CDC_ANC1_FILT2_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT2_B2_CTL (0x00000287) +#define TABLA_A_CDC_ANC2_FILT2_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT2_B3_CTL (0x00000208) +#define TABLA_A_CDC_ANC1_FILT2_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT2_B3_CTL (0x00000288) +#define TABLA_A_CDC_ANC2_FILT2_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_SPARE (0x00000209) +#define TABLA_A_CDC_ANC1_SPARE__POR (0x00000000) +#define TABLA_A_CDC_ANC2_SPARE (0x00000289) +#define TABLA_A_CDC_ANC2_SPARE__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT3_CTL (0x0000020A) +#define TABLA_A_CDC_ANC1_FILT3_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT3_CTL (0x0000028A) +#define TABLA_A_CDC_ANC2_FILT3_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC1_FILT4_CTL (0x0000020B) +#define TABLA_A_CDC_ANC1_FILT4_CTL__POR (0x00000000) +#define TABLA_A_CDC_ANC2_FILT4_CTL (0x0000028B) +#define TABLA_A_CDC_ANC2_FILT4_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX1_VOL_CTL_TIMER (0x00000220) +#define TABLA_A_CDC_TX1_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX2_VOL_CTL_TIMER (0x00000228) +#define TABLA_A_CDC_TX2_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX3_VOL_CTL_TIMER (0x00000230) +#define TABLA_A_CDC_TX3_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX4_VOL_CTL_TIMER (0x00000238) +#define TABLA_A_CDC_TX4_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX5_VOL_CTL_TIMER (0x00000240) +#define TABLA_A_CDC_TX5_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX6_VOL_CTL_TIMER (0x00000248) +#define TABLA_A_CDC_TX6_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX7_VOL_CTL_TIMER (0x00000250) +#define TABLA_A_CDC_TX7_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX8_VOL_CTL_TIMER (0x00000258) +#define TABLA_A_CDC_TX8_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX9_VOL_CTL_TIMER (0x00000260) +#define TABLA_A_CDC_TX9_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX10_VOL_CTL_TIMER (0x00000268) +#define TABLA_A_CDC_TX10_VOL_CTL_TIMER__POR (0x00000000) +#define TABLA_A_CDC_TX1_VOL_CTL_GAIN (0x00000221) +#define TABLA_A_CDC_TX1_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX2_VOL_CTL_GAIN (0x00000229) +#define TABLA_A_CDC_TX2_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX3_VOL_CTL_GAIN (0x00000231) +#define TABLA_A_CDC_TX3_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX4_VOL_CTL_GAIN (0x00000239) +#define TABLA_A_CDC_TX4_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX5_VOL_CTL_GAIN (0x00000241) +#define TABLA_A_CDC_TX5_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX6_VOL_CTL_GAIN (0x00000249) +#define TABLA_A_CDC_TX6_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX7_VOL_CTL_GAIN (0x00000251) +#define TABLA_A_CDC_TX7_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX8_VOL_CTL_GAIN (0x00000259) +#define TABLA_A_CDC_TX8_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX9_VOL_CTL_GAIN (0x00000261) +#define TABLA_A_CDC_TX9_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX10_VOL_CTL_GAIN (0x00000269) +#define TABLA_A_CDC_TX10_VOL_CTL_GAIN__POR (0x00000000) +#define TABLA_A_CDC_TX1_VOL_CTL_CFG (0x00000222) +#define TABLA_A_CDC_TX1_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX2_VOL_CTL_CFG (0x0000022A) +#define TABLA_A_CDC_TX2_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX3_VOL_CTL_CFG (0x00000232) +#define TABLA_A_CDC_TX3_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX4_VOL_CTL_CFG (0x0000023A) +#define TABLA_A_CDC_TX4_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX5_VOL_CTL_CFG (0x00000242) +#define TABLA_A_CDC_TX5_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX6_VOL_CTL_CFG (0x0000024A) +#define TABLA_A_CDC_TX6_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX7_VOL_CTL_CFG (0x00000252) +#define TABLA_A_CDC_TX7_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX8_VOL_CTL_CFG (0x0000025A) +#define TABLA_A_CDC_TX8_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX9_VOL_CTL_CFG (0x00000262) +#define TABLA_A_CDC_TX9_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX10_VOL_CTL_CFG (0x0000026A) +#define TABLA_A_CDC_TX10_VOL_CTL_CFG__POR (0x00000000) +#define TABLA_A_CDC_TX1_MUX_CTL (0x00000223) +#define TABLA_A_CDC_TX1_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX2_MUX_CTL (0x0000022B) +#define TABLA_A_CDC_TX2_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX3_MUX_CTL (0x00000233) +#define TABLA_A_CDC_TX3_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX4_MUX_CTL (0x0000023B) +#define TABLA_A_CDC_TX4_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX5_MUX_CTL (0x00000243) +#define TABLA_A_CDC_TX5_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX6_MUX_CTL (0x0000024B) +#define TABLA_A_CDC_TX6_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX7_MUX_CTL (0x00000253) +#define TABLA_A_CDC_TX7_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX8_MUX_CTL (0x0000025B) +#define TABLA_A_CDC_TX8_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX9_MUX_CTL (0x00000263) +#define TABLA_A_CDC_TX9_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX10_MUX_CTL (0x0000026B) +#define TABLA_A_CDC_TX10_MUX_CTL__POR (0x00000008) +#define TABLA_A_CDC_TX1_CLK_FS_CTL (0x00000224) +#define TABLA_A_CDC_TX1_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX2_CLK_FS_CTL (0x0000022C) +#define TABLA_A_CDC_TX2_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX3_CLK_FS_CTL (0x00000234) +#define TABLA_A_CDC_TX3_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX4_CLK_FS_CTL (0x0000023C) +#define TABLA_A_CDC_TX4_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX5_CLK_FS_CTL (0x00000244) +#define TABLA_A_CDC_TX5_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX6_CLK_FS_CTL (0x0000024C) +#define TABLA_A_CDC_TX6_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX7_CLK_FS_CTL (0x00000254) +#define TABLA_A_CDC_TX7_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX8_CLK_FS_CTL (0x0000025C) +#define TABLA_A_CDC_TX8_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX9_CLK_FS_CTL (0x00000264) +#define TABLA_A_CDC_TX9_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX10_CLK_FS_CTL (0x0000026C) +#define TABLA_A_CDC_TX10_CLK_FS_CTL__POR (0x00000003) +#define TABLA_A_CDC_TX1_DMIC_CTL (0x00000225) +#define TABLA_A_CDC_TX1_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX2_DMIC_CTL (0x0000022D) +#define TABLA_A_CDC_TX2_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX3_DMIC_CTL (0x00000235) +#define TABLA_A_CDC_TX3_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX4_DMIC_CTL (0x0000023D) +#define TABLA_A_CDC_TX4_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX5_DMIC_CTL (0x00000245) +#define TABLA_A_CDC_TX5_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX6_DMIC_CTL (0x0000024D) +#define TABLA_A_CDC_TX6_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX7_DMIC_CTL (0x00000255) +#define TABLA_A_CDC_TX7_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX8_DMIC_CTL (0x0000025D) +#define TABLA_A_CDC_TX8_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX9_DMIC_CTL (0x00000265) +#define TABLA_A_CDC_TX9_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_TX10_DMIC_CTL (0x0000026D) +#define TABLA_A_CDC_TX10_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_SRC1_PDA_CFG (0x000002A0) +#define TABLA_A_CDC_SRC1_PDA_CFG__POR (0x00000000) +#define TABLA_A_CDC_SRC2_PDA_CFG (0x000002A8) +#define TABLA_A_CDC_SRC2_PDA_CFG__POR (0x00000000) +#define TABLA_A_CDC_SRC1_FS_CTL (0x000002A1) +#define TABLA_A_CDC_SRC1_FS_CTL__POR (0x0000001b) +#define TABLA_A_CDC_SRC2_FS_CTL (0x000002A9) +#define TABLA_A_CDC_SRC2_FS_CTL__POR (0x0000001b) +#define TABLA_A_CDC_RX1_B1_CTL (0x000002B0) +#define TABLA_A_CDC_RX1_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_B1_CTL (0x000002B8) +#define TABLA_A_CDC_RX2_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_B1_CTL (0x000002C0) +#define TABLA_A_CDC_RX3_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_B1_CTL (0x000002C8) +#define TABLA_A_CDC_RX4_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_B1_CTL (0x000002D0) +#define TABLA_A_CDC_RX5_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_B1_CTL (0x000002D8) +#define TABLA_A_CDC_RX6_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_B1_CTL (0x000002E0) +#define TABLA_A_CDC_RX7_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX1_B2_CTL (0x000002B1) +#define TABLA_A_CDC_RX1_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_B2_CTL (0x000002B9) +#define TABLA_A_CDC_RX2_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_B2_CTL (0x000002C1) +#define TABLA_A_CDC_RX3_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_B2_CTL (0x000002C9) +#define TABLA_A_CDC_RX4_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_B2_CTL (0x000002D1) +#define TABLA_A_CDC_RX5_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_B2_CTL (0x000002D9) +#define TABLA_A_CDC_RX6_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_B2_CTL (0x000002E1) +#define TABLA_A_CDC_RX7_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX1_B3_CTL (0x000002B2) +#define TABLA_A_CDC_RX1_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_B3_CTL (0x000002BA) +#define TABLA_A_CDC_RX2_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_B3_CTL (0x000002C2) +#define TABLA_A_CDC_RX3_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_B3_CTL (0x000002CA) +#define TABLA_A_CDC_RX4_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_B3_CTL (0x000002D2) +#define TABLA_A_CDC_RX5_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_B3_CTL (0x000002DA) +#define TABLA_A_CDC_RX6_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_B3_CTL (0x000002E2) +#define TABLA_A_CDC_RX7_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX1_B4_CTL (0x000002B3) +#define TABLA_A_CDC_RX1_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_B4_CTL (0x000002BB) +#define TABLA_A_CDC_RX2_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_B4_CTL (0x000002C3) +#define TABLA_A_CDC_RX3_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_B4_CTL (0x000002CB) +#define TABLA_A_CDC_RX4_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_B4_CTL (0x000002D3) +#define TABLA_A_CDC_RX5_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_B4_CTL (0x000002DB) +#define TABLA_A_CDC_RX6_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_B4_CTL (0x000002E3) +#define TABLA_A_CDC_RX7_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX1_B5_CTL (0x000002B4) +#define TABLA_A_CDC_RX1_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX2_B5_CTL (0x000002BC) +#define TABLA_A_CDC_RX2_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX3_B5_CTL (0x000002C4) +#define TABLA_A_CDC_RX3_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX4_B5_CTL (0x000002CC) +#define TABLA_A_CDC_RX4_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX5_B5_CTL (0x000002D4) +#define TABLA_A_CDC_RX5_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX6_B5_CTL (0x000002DC) +#define TABLA_A_CDC_RX6_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX7_B5_CTL (0x000002E4) +#define TABLA_A_CDC_RX7_B5_CTL__POR (0x00000060) +#define TABLA_A_CDC_RX1_B6_CTL (0x000002B5) +#define TABLA_A_CDC_RX1_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_B6_CTL (0x000002BD) +#define TABLA_A_CDC_RX2_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_B6_CTL (0x000002C5) +#define TABLA_A_CDC_RX3_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_B6_CTL (0x000002CD) +#define TABLA_A_CDC_RX4_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_B6_CTL (0x000002D5) +#define TABLA_A_CDC_RX5_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_B6_CTL (0x000002DD) +#define TABLA_A_CDC_RX6_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_B6_CTL (0x000002E5) +#define TABLA_A_CDC_RX7_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX1_VOL_CTL_B1_CTL (0x000002B6) +#define TABLA_A_CDC_RX1_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_VOL_CTL_B1_CTL (0x000002BE) +#define TABLA_A_CDC_RX2_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_VOL_CTL_B1_CTL (0x000002C6) +#define TABLA_A_CDC_RX3_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_VOL_CTL_B1_CTL (0x000002CE) +#define TABLA_A_CDC_RX4_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_VOL_CTL_B1_CTL (0x000002D6) +#define TABLA_A_CDC_RX5_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_VOL_CTL_B1_CTL (0x000002DE) +#define TABLA_A_CDC_RX6_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_VOL_CTL_B1_CTL (0x000002E6) +#define TABLA_A_CDC_RX7_VOL_CTL_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX1_VOL_CTL_B2_CTL (0x000002B7) +#define TABLA_A_CDC_RX1_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX2_VOL_CTL_B2_CTL (0x000002BF) +#define TABLA_A_CDC_RX2_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX3_VOL_CTL_B2_CTL (0x000002C7) +#define TABLA_A_CDC_RX3_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX4_VOL_CTL_B2_CTL (0x000002CF) +#define TABLA_A_CDC_RX4_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX5_VOL_CTL_B2_CTL (0x000002D7) +#define TABLA_A_CDC_RX5_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX6_VOL_CTL_B2_CTL (0x000002DF) +#define TABLA_A_CDC_RX6_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_RX7_VOL_CTL_B2_CTL (0x000002E7) +#define TABLA_A_CDC_RX7_VOL_CTL_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_ANC_RESET_CTL (0x00000300) +#define TABLA_A_CDC_CLK_ANC_RESET_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_RX_RESET_CTL (0x00000301) +#define TABLA_A_CDC_CLK_RX_RESET_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_TX_RESET_B1_CTL (0x00000302) +#define TABLA_A_CDC_CLK_TX_RESET_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_TX_RESET_B2_CTL (0x00000303) +#define TABLA_A_CDC_CLK_TX_RESET_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_DMIC_CTL (0x00000304) +#define TABLA_A_CDC_CLK_DMIC_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_RX_I2S_CTL (0x00000305) +#define TABLA_A_CDC_CLK_RX_I2S_CTL__POR (0x00000003) +#define TABLA_A_CDC_CLK_TX_I2S_CTL (0x00000306) +#define TABLA_A_CDC_CLK_TX_I2S_CTL__POR (0x00000003) +#define TABLA_A_CDC_CLK_OTHR_RESET_CTL (0x00000307) +#define TABLA_A_CDC_CLK_OTHR_RESET_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_TX_CLK_EN_B1_CTL (0x00000308) +#define TABLA_A_CDC_CLK_TX_CLK_EN_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_TX_CLK_EN_B2_CTL (0x00000309) +#define TABLA_A_CDC_CLK_TX_CLK_EN_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_OTHR_CTL (0x0000030A) +#define TABLA_A_CDC_CLK_OTHR_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_RDAC_CLK_EN_CTL (0x0000030B) +#define TABLA_A_CDC_CLK_RDAC_CLK_EN_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_ANC_CLK_EN_CTL (0x0000030C) +#define TABLA_A_CDC_CLK_ANC_CLK_EN_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_RX_B1_CTL (0x0000030D) +#define TABLA_A_CDC_CLK_RX_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_RX_B2_CTL (0x0000030E) +#define TABLA_A_CDC_CLK_RX_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_MCLK_CTL (0x0000030F) +#define TABLA_A_CDC_CLK_MCLK_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_PDM_CTL (0x00000310) +#define TABLA_A_CDC_CLK_PDM_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLK_SD_CTL (0x00000311) +#define TABLA_A_CDC_CLK_SD_CTL__POR (0x00000000) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B1_CTL (0x00000320) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B1_CTL__POR (0x00000007) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B2_CTL (0x00000321) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B2_CTL__POR (0x00000013) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B3_CTL (0x00000322) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B3_CTL__POR (0x00000053) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B4_CTL (0x00000323) +#define TABLA_A_CDC_CLSG_FREQ_THRESH_B4_CTL__POR (0x0000007f) +#define TABLA_A_CDC_CLSG_GAIN_THRESH_CTL (0x00000324) +#define TABLA_A_CDC_CLSG_GAIN_THRESH_CTL__POR (0x00000026) +#define TABLA_A_CDC_CLSG_TIMER_B1_CFG (0x00000325) +#define TABLA_A_CDC_CLSG_TIMER_B1_CFG__POR (0x0000000a) +#define TABLA_A_CDC_CLSG_TIMER_B2_CFG (0x00000326) +#define TABLA_A_CDC_CLSG_TIMER_B2_CFG__POR (0x00000000) +#define TABLA_A_CDC_CLSG_CTL (0x00000327) +#define TABLA_A_CDC_CLSG_CTL__POR (0x00000013) +#define TABLA_A_CDC_IIR1_GAIN_B1_CTL (0x00000340) +#define TABLA_A_CDC_IIR1_GAIN_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B1_CTL (0x00000350) +#define TABLA_A_CDC_IIR2_GAIN_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B2_CTL (0x00000341) +#define TABLA_A_CDC_IIR1_GAIN_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B2_CTL (0x00000351) +#define TABLA_A_CDC_IIR2_GAIN_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B3_CTL (0x00000342) +#define TABLA_A_CDC_IIR1_GAIN_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B3_CTL (0x00000352) +#define TABLA_A_CDC_IIR2_GAIN_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B4_CTL (0x00000343) +#define TABLA_A_CDC_IIR1_GAIN_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B4_CTL (0x00000353) +#define TABLA_A_CDC_IIR2_GAIN_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B5_CTL (0x00000344) +#define TABLA_A_CDC_IIR1_GAIN_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B5_CTL (0x00000354) +#define TABLA_A_CDC_IIR2_GAIN_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B6_CTL (0x00000345) +#define TABLA_A_CDC_IIR1_GAIN_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B6_CTL (0x00000355) +#define TABLA_A_CDC_IIR2_GAIN_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B7_CTL (0x00000346) +#define TABLA_A_CDC_IIR1_GAIN_B7_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B7_CTL (0x00000356) +#define TABLA_A_CDC_IIR2_GAIN_B7_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_B8_CTL (0x00000347) +#define TABLA_A_CDC_IIR1_GAIN_B8_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_B8_CTL (0x00000357) +#define TABLA_A_CDC_IIR2_GAIN_B8_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_CTL (0x00000348) +#define TABLA_A_CDC_IIR1_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_CTL (0x00000358) +#define TABLA_A_CDC_IIR2_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_GAIN_TIMER_CTL (0x00000349) +#define TABLA_A_CDC_IIR1_GAIN_TIMER_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_GAIN_TIMER_CTL (0x00000359) +#define TABLA_A_CDC_IIR2_GAIN_TIMER_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_COEF_B1_CTL (0x0000034A) +#define TABLA_A_CDC_IIR1_COEF_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_COEF_B1_CTL (0x0000035A) +#define TABLA_A_CDC_IIR2_COEF_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_COEF_B2_CTL (0x0000034B) +#define TABLA_A_CDC_IIR1_COEF_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_COEF_B2_CTL (0x0000035B) +#define TABLA_A_CDC_IIR2_COEF_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_COEF_B3_CTL (0x0000034C) +#define TABLA_A_CDC_IIR1_COEF_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_COEF_B3_CTL (0x0000035C) +#define TABLA_A_CDC_IIR2_COEF_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_COEF_B4_CTL (0x0000034D) +#define TABLA_A_CDC_IIR1_COEF_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_COEF_B4_CTL (0x0000035D) +#define TABLA_A_CDC_IIR2_COEF_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR1_COEF_B5_CTL (0x0000034E) +#define TABLA_A_CDC_IIR1_COEF_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_IIR2_COEF_B5_CTL (0x0000035E) +#define TABLA_A_CDC_IIR2_COEF_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_TOP_GAIN_UPDATE (0x00000360) +#define TABLA_A_CDC_TOP_GAIN_UPDATE__POR (0x00000000) +#define TABLA_A_CDC_DEBUG_B1_CTL (0x00000368) +#define TABLA_A_CDC_DEBUG_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_DEBUG_B2_CTL (0x00000369) +#define TABLA_A_CDC_DEBUG_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_DEBUG_B3_CTL (0x0000036A) +#define TABLA_A_CDC_DEBUG_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_DEBUG_B4_CTL (0x0000036B) +#define TABLA_A_CDC_DEBUG_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_DEBUG_B5_CTL (0x0000036C) +#define TABLA_A_CDC_DEBUG_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_DEBUG_B6_CTL (0x0000036D) +#define TABLA_A_CDC_DEBUG_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_COMP1_B1_CTL (0x00000370) +#define TABLA_A_CDC_COMP1_B1_CTL__POR (0x00000030) +#define TABLA_A_CDC_COMP1_B2_CTL (0x00000371) +#define TABLA_A_CDC_COMP1_B2_CTL__POR (0x000000B5) +#define TABLA_A_CDC_COMP1_B3_CTL (0x00000372) +#define TABLA_A_CDC_COMP1_B3_CTL__POR (0x00000028) +#define TABLA_A_CDC_COMP1_B4_CTL (0x00000373) +#define TABLA_A_CDC_COMP1_B4_CTL__POR (0x0000003C) +#define TABLA_A_CDC_COMP1_B5_CTL (0x00000374) +#define TABLA_A_CDC_COMP1_B5_CTL__POR (0x0000001F) +#define TABLA_A_CDC_COMP1_B6_CTL (0x00000375) +#define TABLA_A_CDC_COMP1_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_COMP1_SHUT_DOWN_STATUS (0x00000376) +#define TABLA_A_CDC_COMP1_SHUT_DOWN_STATUS__POR (0x00000000) +#define TABLA_A_CDC_COMP1_FS_CFG (0x00000377) +#define TABLA_A_CDC_COMP1_FS_CFG__POR (0x0000001B) +#define TABLA_A_CDC_COMP2_B1_CTL (0x00000378) +#define TABLA_A_CDC_COMP2_B1_CTL__POR (0x00000030) +#define TABLA_A_CDC_COMP2_B2_CTL (0x00000379) +#define TABLA_A_CDC_COMP2_B2_CTL__POR (0x000000B5) +#define TABLA_A_CDC_COMP2_B3_CTL (0x0000037A) +#define TABLA_A_CDC_COMP2_B3_CTL__POR (0x00000028) +#define TABLA_A_CDC_COMP2_B4_CTL (0x0000037B) +#define TABLA_A_CDC_COMP2_B4_CTL__POR (0x0000003C) +#define TABLA_A_CDC_COMP2_B5_CTL (0x0000037C) +#define TABLA_A_CDC_COMP2_B5_CTL__POR (0x0000001F) +#define TABLA_A_CDC_COMP2_B6_CTL (0x0000037D) +#define TABLA_A_CDC_COMP2_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_COMP2_SHUT_DOWN_STATUS (0x0000037E) +#define TABLA_A_CDC_COMP2_SHUT_DOWN_STATUS__POR (0x00000000) +#define TABLA_A_CDC_COMP2_FS_CFG (0x0000037F) +#define TABLA_A_CDC_COMP2_FS_CFG__POR (0x0000001B) +#define TABLA_A_CDC_CONN_RX1_B1_CTL (0x00000380) +#define TABLA_A_CDC_CONN_RX1_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX1_B2_CTL (0x00000381) +#define TABLA_A_CDC_CONN_RX1_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX1_B3_CTL (0x00000382) +#define TABLA_A_CDC_CONN_RX1_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX2_B1_CTL (0x00000383) +#define TABLA_A_CDC_CONN_RX2_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX2_B2_CTL (0x00000384) +#define TABLA_A_CDC_CONN_RX2_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX2_B3_CTL (0x00000385) +#define TABLA_A_CDC_CONN_RX2_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX3_B1_CTL (0x00000386) +#define TABLA_A_CDC_CONN_RX3_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX3_B2_CTL (0x00000387) +#define TABLA_A_CDC_CONN_RX3_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX3_B3_CTL (0x00000388) +#define TABLA_A_CDC_CONN_RX3_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX4_B1_CTL (0x00000389) +#define TABLA_A_CDC_CONN_RX4_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX4_B2_CTL (0x0000038A) +#define TABLA_A_CDC_CONN_RX4_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX5_B1_CTL (0x0000038B) +#define TABLA_A_CDC_CONN_RX5_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX5_B2_CTL (0x0000038C) +#define TABLA_A_CDC_CONN_RX5_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX6_B1_CTL (0x0000038D) +#define TABLA_A_CDC_CONN_RX6_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX6_B2_CTL (0x0000038E) +#define TABLA_A_CDC_CONN_RX6_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX7_B1_CTL (0x0000038F) +#define TABLA_A_CDC_CONN_RX7_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX7_B2_CTL (0x00000390) +#define TABLA_A_CDC_CONN_RX7_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_ANC_B1_CTL (0x00000391) +#define TABLA_A_CDC_CONN_ANC_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_ANC_B2_CTL (0x00000392) +#define TABLA_A_CDC_CONN_ANC_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_B1_CTL (0x00000393) +#define TABLA_A_CDC_CONN_TX_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_B2_CTL (0x00000394) +#define TABLA_A_CDC_CONN_TX_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_B3_CTL (0x00000395) +#define TABLA_A_CDC_CONN_TX_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_B4_CTL (0x00000396) +#define TABLA_A_CDC_CONN_TX_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ1_B1_CTL (0x00000397) +#define TABLA_A_CDC_CONN_EQ1_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ1_B2_CTL (0x00000398) +#define TABLA_A_CDC_CONN_EQ1_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ1_B3_CTL (0x00000399) +#define TABLA_A_CDC_CONN_EQ1_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ1_B4_CTL (0x0000039A) +#define TABLA_A_CDC_CONN_EQ1_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ2_B1_CTL (0x0000039B) +#define TABLA_A_CDC_CONN_EQ2_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ2_B2_CTL (0x0000039C) +#define TABLA_A_CDC_CONN_EQ2_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ2_B3_CTL (0x0000039D) +#define TABLA_A_CDC_CONN_EQ2_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_EQ2_B4_CTL (0x0000039E) +#define TABLA_A_CDC_CONN_EQ2_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_SRC1_B1_CTL (0x0000039F) +#define TABLA_A_CDC_CONN_SRC1_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_SRC1_B2_CTL (0x000003A0) +#define TABLA_A_CDC_CONN_SRC1_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_SRC2_B1_CTL (0x000003A1) +#define TABLA_A_CDC_CONN_SRC2_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_SRC2_B2_CTL (0x000003A2) +#define TABLA_A_CDC_CONN_SRC2_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B1_CTL (0x000003A3) +#define TABLA_A_CDC_CONN_TX_SB_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B2_CTL (0x000003A4) +#define TABLA_A_CDC_CONN_TX_SB_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B3_CTL (0x000003A5) +#define TABLA_A_CDC_CONN_TX_SB_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B4_CTL (0x000003A6) +#define TABLA_A_CDC_CONN_TX_SB_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B5_CTL (0x000003A7) +#define TABLA_A_CDC_CONN_TX_SB_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B6_CTL (0x000003A8) +#define TABLA_A_CDC_CONN_TX_SB_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B7_CTL (0x000003A9) +#define TABLA_A_CDC_CONN_TX_SB_B7_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B8_CTL (0x000003AA) +#define TABLA_A_CDC_CONN_TX_SB_B8_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B9_CTL (0x000003AB) +#define TABLA_A_CDC_CONN_TX_SB_B9_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B10_CTL (0x000003AC) +#define TABLA_A_CDC_CONN_TX_SB_B10_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_TX_SB_B11_CTL (0x000003AD) +#define TABLA_A_CDC_CONN_TX_SB_B11_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX_SB_B1_CTL (0x000003AE) +#define TABLA_A_CDC_CONN_RX_SB_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_RX_SB_B2_CTL (0x000003AF) +#define TABLA_A_CDC_CONN_RX_SB_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_CLSG_CTL (0x000003B0) +#define TABLA_A_CDC_CONN_CLSG_CTL__POR (0x00000000) +#define TABLA_A_CDC_CONN_SPARE (0x000003B1) +#define TABLA_A_CDC_CONN_SPARE__POR (0x00000000) +#define TABLA_A_CDC_MBHC_EN_CTL (0x000003C0) +#define TABLA_A_CDC_MBHC_EN_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_FEATURE_B1_CFG (0x000003C1) +#define TABLA_A_CDC_MBHC_FEATURE_B1_CFG__POR (0x00000000) +#define TABLA_A_CDC_MBHC_FEATURE_B2_CFG (0x000003C2) +#define TABLA_A_CDC_MBHC_FEATURE_B2_CFG__POR (0x00000006) +#define TABLA_A_CDC_MBHC_TIMER_B1_CTL (0x000003C3) +#define TABLA_A_CDC_MBHC_TIMER_B1_CTL__POR (0x00000003) +#define TABLA_A_CDC_MBHC_TIMER_B2_CTL (0x000003C4) +#define TABLA_A_CDC_MBHC_TIMER_B2_CTL__POR (0x00000009) +#define TABLA_A_CDC_MBHC_TIMER_B3_CTL (0x000003C5) +#define TABLA_A_CDC_MBHC_TIMER_B3_CTL__POR (0x0000001e) +#define TABLA_A_CDC_MBHC_TIMER_B4_CTL (0x000003C6) +#define TABLA_A_CDC_MBHC_TIMER_B4_CTL__POR (0x00000045) +#define TABLA_A_CDC_MBHC_TIMER_B5_CTL (0x000003C7) +#define TABLA_A_CDC_MBHC_TIMER_B5_CTL__POR (0x00000004) +#define TABLA_A_CDC_MBHC_TIMER_B6_CTL (0x000003C8) +#define TABLA_A_CDC_MBHC_TIMER_B6_CTL__POR (0x00000078) +#define TABLA_A_CDC_MBHC_B1_STATUS (0x000003C9) +#define TABLA_A_CDC_MBHC_B1_STATUS__POR (0x00000000) +#define TABLA_A_CDC_MBHC_B2_STATUS (0x000003CA) +#define TABLA_A_CDC_MBHC_B2_STATUS__POR (0x00000000) +#define TABLA_A_CDC_MBHC_B3_STATUS (0x000003CB) +#define TABLA_A_CDC_MBHC_B3_STATUS__POR (0x00000000) +#define TABLA_A_CDC_MBHC_B4_STATUS (0x000003CC) +#define TABLA_A_CDC_MBHC_B4_STATUS__POR (0x00000000) +#define TABLA_A_CDC_MBHC_B5_STATUS (0x000003CD) +#define TABLA_A_CDC_MBHC_B5_STATUS__POR (0x00000000) +#define TABLA_A_CDC_MBHC_B1_CTL (0x000003CE) +#define TABLA_A_CDC_MBHC_B1_CTL__POR (0x000000c0) +#define TABLA_A_CDC_MBHC_B2_CTL (0x000003CF) +#define TABLA_A_CDC_MBHC_B2_CTL__POR (0x0000005d) +#define TABLA_A_CDC_MBHC_VOLT_B1_CTL (0x000003D0) +#define TABLA_A_CDC_MBHC_VOLT_B1_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B2_CTL (0x000003D1) +#define TABLA_A_CDC_MBHC_VOLT_B2_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B3_CTL (0x000003D2) +#define TABLA_A_CDC_MBHC_VOLT_B3_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B4_CTL (0x000003D3) +#define TABLA_A_CDC_MBHC_VOLT_B4_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B5_CTL (0x000003D4) +#define TABLA_A_CDC_MBHC_VOLT_B5_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B6_CTL (0x000003D5) +#define TABLA_A_CDC_MBHC_VOLT_B6_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B7_CTL (0x000003D6) +#define TABLA_A_CDC_MBHC_VOLT_B7_CTL__POR (0x000000ff) +#define TABLA_A_CDC_MBHC_VOLT_B8_CTL (0x000003D7) +#define TABLA_A_CDC_MBHC_VOLT_B8_CTL__POR (0x00000007) +#define TABLA_A_CDC_MBHC_VOLT_B9_CTL (0x000003D8) +#define TABLA_A_CDC_MBHC_VOLT_B9_CTL__POR (0x000000ff) +#define TABLA_A_CDC_MBHC_VOLT_B10_CTL (0x000003D9) +#define TABLA_A_CDC_MBHC_VOLT_B10_CTL__POR (0x0000007f) +#define TABLA_A_CDC_MBHC_VOLT_B11_CTL (0x000003DA) +#define TABLA_A_CDC_MBHC_VOLT_B11_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_VOLT_B12_CTL (0x000003DB) +#define TABLA_A_CDC_MBHC_VOLT_B12_CTL__POR (0x00000080) +#define TABLA_A_CDC_MBHC_CLK_CTL (0x000003DC) +#define TABLA_A_CDC_MBHC_CLK_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_INT_CTL (0x000003DD) +#define TABLA_A_CDC_MBHC_INT_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_DEBUG_CTL (0x000003DE) +#define TABLA_A_CDC_MBHC_DEBUG_CTL__POR (0x00000000) +#define TABLA_A_CDC_MBHC_SPARE (0x000003DF) +#define TABLA_A_CDC_MBHC_SPARE__POR (0x00000000) + + +/* SLIMBUS Slave Registers */ +#define TABLA_SLIM_PGD_PORT_INT_EN0 (0x30) +#define TABLA_SLIM_PGD_PORT_INT_STATUS0 (0x34) +#define TABLA_SLIM_PGD_PORT_INT_CLR0 (0x38) +#define TABLA_SLIM_PGD_PORT_INT_SOURCE0 (0x60) + +/* Macros for Packing Register Writes into a U32 */ +#define TABLA_PACKED_REG_SIZE sizeof(u32) + +#define TABLA_CODEC_PACK_ENTRY(reg, mask, val) ((val & 0xff)|\ + ((mask & 0xff) << 8)|((reg & 0xffff) << 16)) + +#define TABLA_CODEC_UNPACK_ENTRY(packed, reg, mask, val) \ + do { \ + ((reg) = ((packed >> 16) & (0xffff))); \ + ((mask) = ((packed >> 8) & (0xff))); \ + ((val) = ((packed) & (0xff))); \ + } while (0); + +#endif diff --git a/kernel_headers/linux/mfd/wcd9xxx/wcd9320_registers.h b/kernel_headers/linux/mfd/wcd9xxx/wcd9320_registers.h new file mode 100644 index 0000000..63ab624 --- /dev/null +++ b/kernel_headers/linux/mfd/wcd9xxx/wcd9320_registers.h @@ -0,0 +1,1399 @@ +#ifndef WCD9320_REGISTERS_H +#define WCD9320_REGISTERS_H + +#include + +#define TAIKO_A_CHIP_CTL WCD9XXX_A_CHIP_CTL +#define TAIKO_A_CHIP_CTL__POR WCD9XXX_A_CHIP_CTL__POR +#define TAIKO_A_CHIP_STATUS WCD9XXX_A_CHIP_STATUS +#define TAIKO_A_CHIP_STATUS__POR WCD9XXX_A_CHIP_STATUS__POR +#define TAIKO_A_CHIP_ID_BYTE_0 WCD9XXX_A_CHIP_ID_BYTE_0 +#define TAIKO_A_CHIP_ID_BYTE_0__POR WCD9XXX_A_CHIP_ID_BYTE_0__POR +#define TAIKO_A_CHIP_ID_BYTE_1 WCD9XXX_A_CHIP_ID_BYTE_1 +#define TAIKO_A_CHIP_ID_BYTE_1__POR WCD9XXX_A_CHIP_ID_BYTE_1__POR +#define TAIKO_A_CHIP_ID_BYTE_2 WCD9XXX_A_CHIP_ID_BYTE_2 +#define TAIKO_A_CHIP_ID_BYTE_2__POR WCD9XXX_A_CHIP_ID_BYTE_2__POR +#define TAIKO_A_CHIP_ID_BYTE_3 WCD9XXX_A_CHIP_ID_BYTE_3 +#define TAIKO_A_CHIP_ID_BYTE_3__POR WCD9XXX_A_CHIP_ID_BYTE_3__POR +#define TAIKO_A_CHIP_VERSION WCD9XXX_A_CHIP_VERSION +#define TAIKO_A_CHIP_VERSION__POR WCD9XXX_A_CHIP_VERSION__POR +#define TAIKO_A_SB_VERSION WCD9XXX_A_SB_VERSION +#define TAIKO_A_SB_VERSION__POR WCD9XXX_A_SB_VERSION__POR +#define TAIKO_A_SLAVE_ID_1 WCD9XXX_A_SLAVE_ID_1 +#define TAIKO_A_SLAVE_ID_1__POR WCD9XXX_A_SLAVE_ID_1__POR +#define TAIKO_A_SLAVE_ID_2 WCD9XXX_A_SLAVE_ID_2 +#define TAIKO_A_SLAVE_ID_2__POR WCD9XXX_A_SLAVE_ID_2__POR +#define TAIKO_A_SLAVE_ID_3 WCD9XXX_A_SLAVE_ID_3 +#define TAIKO_A_SLAVE_ID_3__POR WCD9XXX_A_SLAVE_ID_3__POR +#define TAIKO_A_PIN_CTL_OE0 (0x010) +#define TAIKO_A_PIN_CTL_OE0__POR (0x00) +#define TAIKO_A_PIN_CTL_OE1 (0x011) +#define TAIKO_A_PIN_CTL_OE1__POR (0x00) +#define TAIKO_A_PIN_CTL_DATA0 (0x012) +#define TAIKO_A_PIN_CTL_DATA0__POR (0x00) +#define TAIKO_A_PIN_CTL_DATA1 (0x013) +#define TAIKO_A_PIN_CTL_DATA1__POR (0x00) +#define TAIKO_A_HDRIVE_GENERIC (0x018) +#define TAIKO_A_HDRIVE_GENERIC__POR (0x00) +#define TAIKO_A_HDRIVE_OVERRIDE (0x019) +#define TAIKO_A_HDRIVE_OVERRIDE__POR (0x08) +#define TAIKO_A_ANA_CSR_WAIT_STATE (0x020) +#define TAIKO_A_ANA_CSR_WAIT_STATE__POR (0x44) +#define TAIKO_A_PROCESS_MONITOR_CTL0 (0x040) +#define TAIKO_A_PROCESS_MONITOR_CTL0__POR (0x80) +#define TAIKO_A_PROCESS_MONITOR_CTL1 (0x041) +#define TAIKO_A_PROCESS_MONITOR_CTL1__POR (0x00) +#define TAIKO_A_PROCESS_MONITOR_CTL2 (0x042) +#define TAIKO_A_PROCESS_MONITOR_CTL2__POR (0x00) +#define TAIKO_A_PROCESS_MONITOR_CTL3 (0x043) +#define TAIKO_A_PROCESS_MONITOR_CTL3__POR (0x01) +#define TAIKO_A_QFUSE_CTL (0x048) +#define TAIKO_A_QFUSE_CTL__POR (0x00) +#define TAIKO_A_QFUSE_STATUS (0x049) +#define TAIKO_A_QFUSE_STATUS__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT0 (0x04A) +#define TAIKO_A_QFUSE_DATA_OUT0__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT1 (0x04B) +#define TAIKO_A_QFUSE_DATA_OUT1__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT2 (0x04C) +#define TAIKO_A_QFUSE_DATA_OUT2__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT3 (0x04D) +#define TAIKO_A_QFUSE_DATA_OUT3__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT4 (0x04E) +#define TAIKO_A_QFUSE_DATA_OUT4__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT5 (0x04F) +#define TAIKO_A_QFUSE_DATA_OUT5__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT6 (0x050) +#define TAIKO_A_QFUSE_DATA_OUT6__POR (0x00) +#define TAIKO_A_QFUSE_DATA_OUT7 (0x051) +#define TAIKO_A_QFUSE_DATA_OUT7__POR (0x00) +#define TAIKO_A_CDC_CTL WCD9XXX_A_CDC_CTL +#define TAIKO_A_CDC_CTL__POR WCD9XXX_A_CDC_CTL__POR +#define TAIKO_A_LEAKAGE_CTL WCD9XXX_A_LEAKAGE_CTL +#define TAIKO_A_LEAKAGE_CTL__POR WCD9XXX_A_LEAKAGE_CTL__POR +#define TAIKO_A_INTR_MODE (0x090) +#define TAIKO_A_INTR_MODE__POR (0x00) +#define TAIKO_A_INTR_MASK0 (0x094) +#define TAIKO_A_INTR_MASK0__POR (0xFF) +#define TAIKO_A_INTR_MASK1 (0x095) +#define TAIKO_A_INTR_MASK1__POR (0xFF) +#define TAIKO_A_INTR_MASK2 (0x096) +#define TAIKO_A_INTR_MASK2__POR (0x3F) +#define TAIKO_A_INTR_MASK3 (0x097) +#define TAIKO_A_INTR_MASK3__POR (0x3F) +#define TAIKO_A_INTR_STATUS0 (0x098) +#define TAIKO_A_INTR_STATUS0__POR (0x00) +#define TAIKO_A_INTR_STATUS1 (0x099) +#define TAIKO_A_INTR_STATUS1__POR (0x00) +#define TAIKO_A_INTR_STATUS2 (0x09A) +#define TAIKO_A_INTR_STATUS2__POR (0x00) +#define TAIKO_A_INTR_STATUS3 (0x09B) +#define TAIKO_A_INTR_STATUS3__POR (0x00) +#define TAIKO_A_INTR_CLEAR0 (0x09C) +#define TAIKO_A_INTR_CLEAR0__POR (0x00) +#define TAIKO_A_INTR_CLEAR1 (0x09D) +#define TAIKO_A_INTR_CLEAR1__POR (0x00) +#define TAIKO_A_INTR_CLEAR2 (0x09E) +#define TAIKO_A_INTR_CLEAR2__POR (0x00) +#define TAIKO_A_INTR_CLEAR3 (0x09F) +#define TAIKO_A_INTR_CLEAR3__POR (0x00) +#define TAIKO_A_INTR_LEVEL0 (0x0A0) +#define TAIKO_A_INTR_LEVEL0__POR (0x01) +#define TAIKO_A_INTR_LEVEL1 (0x0A1) +#define TAIKO_A_INTR_LEVEL1__POR (0x00) +#define TAIKO_A_INTR_LEVEL2 (0x0A2) +#define TAIKO_A_INTR_LEVEL2__POR (0x00) +#define TAIKO_A_INTR_LEVEL3 (0x0A3) +#define TAIKO_A_INTR_LEVEL3__POR (0x00) +#define TAIKO_A_INTR_TEST0 (0x0A4) +#define TAIKO_A_INTR_TEST0__POR (0x00) +#define TAIKO_A_INTR_TEST1 (0x0A5) +#define TAIKO_A_INTR_TEST1__POR (0x00) +#define TAIKO_A_INTR_TEST2 (0x0A6) +#define TAIKO_A_INTR_TEST2__POR (0x00) +#define TAIKO_A_INTR_TEST3 (0x0A7) +#define TAIKO_A_INTR_TEST3__POR (0x00) +#define TAIKO_A_INTR_SET0 (0x0A8) +#define TAIKO_A_INTR_SET0__POR (0x00) +#define TAIKO_A_INTR_SET1 (0x0A9) +#define TAIKO_A_INTR_SET1__POR (0x00) +#define TAIKO_A_INTR_SET2 (0x0AA) +#define TAIKO_A_INTR_SET2__POR (0x00) +#define TAIKO_A_INTR_SET3 (0x0AB) +#define TAIKO_A_INTR_SET3__POR (0x00) +#define TAIKO_A_INTR_DESTN0 (0x0AC) +#define TAIKO_A_INTR_DESTN0__POR (0x00) +#define TAIKO_A_INTR_DESTN1 (0x0AD) +#define TAIKO_A_INTR_DESTN1__POR (0x00) +#define TAIKO_A_INTR_DESTN2 (0x0AE) +#define TAIKO_A_INTR_DESTN2__POR (0x00) +#define TAIKO_A_INTR_DESTN3 (0x0AF) +#define TAIKO_A_INTR_DESTN3__POR (0x00) +#define TAIKO_A_CDC_TX_I2S_SCK_MODE (0x0C0) +#define TAIKO_A_CDC_TX_I2S_SCK_MODE__POR (0x00) +#define TAIKO_A_CDC_TX_I2S_WS_MODE (0x0C1) +#define TAIKO_A_CDC_TX_I2S_WS_MODE__POR (0x00) +#define TAIKO_A_CDC_DMIC_DATA0_MODE (0x0C4) +#define TAIKO_A_CDC_DMIC_DATA0_MODE__POR (0x00) +#define TAIKO_A_CDC_DMIC_CLK0_MODE (0x0C5) +#define TAIKO_A_CDC_DMIC_CLK0_MODE__POR (0x00) +#define TAIKO_A_CDC_DMIC_DATA1_MODE (0x0C6) +#define TAIKO_A_CDC_DMIC_DATA1_MODE__POR (0x00) +#define TAIKO_A_CDC_DMIC_CLK1_MODE (0x0C7) +#define TAIKO_A_CDC_DMIC_CLK1_MODE__POR (0x00) +#define TAIKO_A_CDC_RX_I2S_SCK_MODE (0x0C8) +#define TAIKO_A_CDC_RX_I2S_SCK_MODE__POR (0x00) +#define TAIKO_A_CDC_RX_I2S_WS_MODE (0x0C9) +#define TAIKO_A_CDC_RX_I2S_WS_MODE__POR (0x00) +#define TAIKO_A_CDC_DMIC_DATA2_MODE (0x0CA) +#define TAIKO_A_CDC_DMIC_DATA2_MODE__POR (0x00) +#define TAIKO_A_CDC_DMIC_CLK2_MODE (0x0CB) +#define TAIKO_A_CDC_DMIC_CLK2_MODE__POR (0x00) +#define TAIKO_A_CDC_INTR1_MODE (0x0CC) +#define TAIKO_A_CDC_INTR1_MODE__POR (0x00) +#define TAIKO_A_CDC_SB_NRZ_SEL_MODE (0x0CD) +#define TAIKO_A_CDC_SB_NRZ_SEL_MODE__POR (0x00) +#define TAIKO_A_CDC_INTR2_MODE (0x0CE) +#define TAIKO_A_CDC_INTR2_MODE__POR (0x00) +#define TAIKO_A_CDC_RF_PA_ON_MODE (0x0CF) +#define TAIKO_A_CDC_RF_PA_ON_MODE__POR (0x00) +#define TAIKO_A_BIAS_REF_CTL (0x100) +#define TAIKO_A_BIAS_REF_CTL__POR (0x1C) +#define TAIKO_A_BIAS_CENTRAL_BG_CTL (0x101) +#define TAIKO_A_BIAS_CENTRAL_BG_CTL__POR (0x50) +#define TAIKO_A_BIAS_PRECHRG_CTL (0x102) +#define TAIKO_A_BIAS_PRECHRG_CTL__POR (0x07) +#define TAIKO_A_BIAS_CURR_CTL_1 (0x103) +#define TAIKO_A_BIAS_CURR_CTL_1__POR (0x52) +#define TAIKO_A_BIAS_CURR_CTL_2 (0x104) +#define TAIKO_A_BIAS_CURR_CTL_2__POR (0x00) +#define TAIKO_A_BIAS_OSC_BG_CTL (0x105) +#define TAIKO_A_BIAS_OSC_BG_CTL__POR (0x16) +#define TAIKO_A_CLK_BUFF_EN1 (0x108) +#define TAIKO_A_CLK_BUFF_EN1__POR (0x04) +#define TAIKO_A_CLK_BUFF_EN2 (0x109) +#define TAIKO_A_CLK_BUFF_EN2__POR (0x02) +#define TAIKO_A_LDO_H_MODE_1 (0x110) +#define TAIKO_A_LDO_H_MODE_1__POR (0x65) +#define TAIKO_A_LDO_H_MODE_2 (0x111) +#define TAIKO_A_LDO_H_MODE_2__POR (0xA8) +#define TAIKO_A_LDO_H_LOOP_CTL (0x112) +#define TAIKO_A_LDO_H_LOOP_CTL__POR (0x6B) +#define TAIKO_A_LDO_H_COMP_1 (0x113) +#define TAIKO_A_LDO_H_COMP_1__POR (0x84) +#define TAIKO_A_LDO_H_COMP_2 (0x114) +#define TAIKO_A_LDO_H_COMP_2__POR (0xE0) +#define TAIKO_A_LDO_H_BIAS_1 (0x115) +#define TAIKO_A_LDO_H_BIAS_1__POR (0x6D) +#define TAIKO_A_LDO_H_BIAS_2 (0x116) +#define TAIKO_A_LDO_H_BIAS_2__POR (0xA5) +#define TAIKO_A_LDO_H_BIAS_3 (0x117) +#define TAIKO_A_LDO_H_BIAS_3__POR (0x60) +#define TAIKO_A_VBAT_CLK (0x118) +#define TAIKO_A_VBAT_CLK__POR (0x03) +#define TAIKO_A_VBAT_LOOP (0x119) +#define TAIKO_A_VBAT_LOOP__POR (0x02) +#define TAIKO_A_VBAT_REF (0x11A) +#define TAIKO_A_VBAT_REF__POR (0x20) +#define TAIKO_A_VBAT_ADC_TEST (0x11B) +#define TAIKO_A_VBAT_ADC_TEST__POR (0x00) +#define TAIKO_A_VBAT_FE (0x11C) +#define TAIKO_A_VBAT_FE__POR (0x48) +#define TAIKO_A_VBAT_BIAS_1 (0x11D) +#define TAIKO_A_VBAT_BIAS_1__POR (0x03) +#define TAIKO_A_VBAT_BIAS_2 (0x11E) +#define TAIKO_A_VBAT_BIAS_2__POR (0x00) +#define TAIKO_A_VBAT_ADC_DATA_MSB (0x11F) +#define TAIKO_A_VBAT_ADC_DATA_MSB__POR (0x00) +#define TAIKO_A_VBAT_ADC_DATA_LSB (0x120) +#define TAIKO_A_VBAT_ADC_DATA_LSB__POR (0x00) +#define TAIKO_A_MICB_CFILT_1_CTL (0x128) +#define TAIKO_A_MICB_CFILT_1_CTL__POR (0x40) +#define TAIKO_A_MICB_CFILT_1_VAL (0x129) +#define TAIKO_A_MICB_CFILT_1_VAL__POR (0x80) +#define TAIKO_A_MICB_CFILT_1_PRECHRG (0x12A) +#define TAIKO_A_MICB_CFILT_1_PRECHRG__POR (0x38) +#define TAIKO_A_MICB_1_CTL (0x12B) +#define TAIKO_A_MICB_1_CTL__POR (0x16) +#define TAIKO_A_MICB_1_INT_RBIAS (0x12C) +#define TAIKO_A_MICB_1_INT_RBIAS__POR (0x24) +#define TAIKO_A_MICB_1_MBHC (0x12D) +#define TAIKO_A_MICB_1_MBHC__POR (0x01) +#define TAIKO_A_MICB_CFILT_2_CTL (0x12E) +#define TAIKO_A_MICB_CFILT_2_CTL__POR (0x40) +#define TAIKO_A_MICB_CFILT_2_VAL (0x12F) +#define TAIKO_A_MICB_CFILT_2_VAL__POR (0x80) +#define TAIKO_A_MICB_CFILT_2_PRECHRG (0x130) +#define TAIKO_A_MICB_CFILT_2_PRECHRG__POR (0x38) +#define TAIKO_A_MICB_2_CTL (0x131) +#define TAIKO_A_MICB_2_CTL__POR (0x16) +#define TAIKO_A_MICB_2_INT_RBIAS (0x132) +#define TAIKO_A_MICB_2_INT_RBIAS__POR (0x24) +#define TAIKO_A_MICB_2_MBHC (0x133) +#define TAIKO_A_MICB_2_MBHC__POR (0x02) +#define TAIKO_A_MICB_CFILT_3_CTL (0x134) +#define TAIKO_A_MICB_CFILT_3_CTL__POR (0x40) +#define TAIKO_A_MICB_CFILT_3_VAL (0x135) +#define TAIKO_A_MICB_CFILT_3_VAL__POR (0x80) +#define TAIKO_A_MICB_CFILT_3_PRECHRG (0x136) +#define TAIKO_A_MICB_CFILT_3_PRECHRG__POR (0x38) +#define TAIKO_A_MICB_3_CTL (0x137) +#define TAIKO_A_MICB_3_CTL__POR (0x16) +#define TAIKO_A_MICB_3_INT_RBIAS (0x138) +#define TAIKO_A_MICB_3_INT_RBIAS__POR (0x24) +#define TAIKO_A_MICB_3_MBHC (0x139) +#define TAIKO_A_MICB_3_MBHC__POR (0x00) +#define TAIKO_A_MICB_4_CTL (0x13D) +#define TAIKO_A_MICB_4_CTL__POR (0x16) +#define TAIKO_A_MICB_4_INT_RBIAS (0x13E) +#define TAIKO_A_MICB_4_INT_RBIAS__POR (0x24) +#define TAIKO_A_MICB_4_MBHC (0x13F) +#define TAIKO_A_MICB_4_MBHC__POR (0x01) +#define TAIKO_A_MBHC_INSERT_DETECT (0x14A) +#define TAIKO_A_MBHC_INSERT_DETECT__POR (0x00) +#define TAIKO_A_MBHC_INSERT_DET_STATUS (0x14B) +#define TAIKO_A_MBHC_INSERT_DET_STATUS__POR (0x00) +#define TAIKO_A_TX_COM_BIAS (0x14C) +#define TAIKO_A_TX_COM_BIAS__POR (0xF0) +#define TAIKO_A_MBHC_SCALING_MUX_1 (0x14E) +#define TAIKO_A_MBHC_SCALING_MUX_1__POR (0x00) +#define TAIKO_A_MBHC_SCALING_MUX_2 (0x14F) +#define TAIKO_A_MBHC_SCALING_MUX_2__POR (0x80) +#define TAIKO_A_MAD_ANA_CTRL (0x150) +#define TAIKO_A_MAD_ANA_CTRL__POR (0xF1) +#define TAIKO_A_TX_SUP_SWITCH_CTRL_1 (0x151) +#define TAIKO_A_TX_SUP_SWITCH_CTRL_1__POR (0x00) +#define TAIKO_A_TX_SUP_SWITCH_CTRL_2 (0x152) +#define TAIKO_A_TX_SUP_SWITCH_CTRL_2__POR (0x80) +#define TAIKO_A_TX_1_2_EN (0x153) +#define TAIKO_A_TX_1_2_EN__POR (0x00) +#define TAIKO_A_TX_1_2_TEST_EN (0x154) +#define TAIKO_A_TX_1_2_TEST_EN__POR (0xCC) +#define TAIKO_A_TX_1_2_ADC_CH1 (0x155) +#define TAIKO_A_TX_1_2_ADC_CH1__POR (0x44) +#define TAIKO_A_TX_1_2_ADC_CH2 (0x156) +#define TAIKO_A_TX_1_2_ADC_CH2__POR (0x44) +#define TAIKO_A_TX_1_2_ATEST_REFCTRL (0x157) +#define TAIKO_A_TX_1_2_ATEST_REFCTRL__POR (0x00) +#define TAIKO_A_TX_1_2_TEST_CTL (0x158) +#define TAIKO_A_TX_1_2_TEST_CTL__POR (0x38) +#define TAIKO_A_TX_1_2_TEST_BLOCK_EN (0x159) +#define TAIKO_A_TX_1_2_TEST_BLOCK_EN__POR (0xFC) +#define TAIKO_A_TX_1_2_TXFE_CLKDIV (0x15A) +#define TAIKO_A_TX_1_2_TXFE_CLKDIV__POR (0x55) +#define TAIKO_A_TX_1_2_SAR_ERR_CH1 (0x15B) +#define TAIKO_A_TX_1_2_SAR_ERR_CH1__POR (0x00) +#define TAIKO_A_TX_1_2_SAR_ERR_CH2 (0x15C) +#define TAIKO_A_TX_1_2_SAR_ERR_CH2__POR (0x00) +#define TAIKO_A_TX_3_4_EN (0x15D) +#define TAIKO_A_TX_3_4_EN__POR (0x00) +#define TAIKO_A_TX_3_4_TEST_EN (0x15E) +#define TAIKO_A_TX_3_4_TEST_EN__POR (0xCC) +#define TAIKO_A_TX_3_4_ADC_CH3 (0x15F) +#define TAIKO_A_TX_3_4_ADC_CH3__POR (0x44) +#define TAIKO_A_TX_3_4_ADC_CH4 (0x160) +#define TAIKO_A_TX_3_4_ADC_CH4__POR (0x44) +#define TAIKO_A_TX_3_4_ATEST_REFCTRL (0x161) +#define TAIKO_A_TX_3_4_ATEST_REFCTRL__POR (0x00) +#define TAIKO_A_TX_3_4_TEST_CTL (0x162) +#define TAIKO_A_TX_3_4_TEST_CTL__POR (0x38) +#define TAIKO_A_TX_3_4_TEST_BLOCK_EN (0x163) +#define TAIKO_A_TX_3_4_TEST_BLOCK_EN__POR (0xFC) +#define TAIKO_A_TX_3_4_TXFE_CKDIV (0x164) +#define TAIKO_A_TX_3_4_TXFE_CKDIV__POR (0x55) +#define TAIKO_A_TX_3_4_SAR_ERR_CH3 (0x165) +#define TAIKO_A_TX_3_4_SAR_ERR_CH3__POR (0x00) +#define TAIKO_A_TX_3_4_SAR_ERR_CH4 (0x166) +#define TAIKO_A_TX_3_4_SAR_ERR_CH4__POR (0x00) +#define TAIKO_A_TX_5_6_EN (0x167) +#define TAIKO_A_TX_5_6_EN__POR (0x11) +#define TAIKO_A_TX_5_6_TEST_EN (0x168) +#define TAIKO_A_TX_5_6_TEST_EN__POR (0xCC) +#define TAIKO_A_TX_5_6_ADC_CH5 (0x169) +#define TAIKO_A_TX_5_6_ADC_CH5__POR (0x44) +#define TAIKO_A_TX_5_6_ADC_CH6 (0x16A) +#define TAIKO_A_TX_5_6_ADC_CH6__POR (0x44) +#define TAIKO_A_TX_5_6_ATEST_REFCTRL (0x16B) +#define TAIKO_A_TX_5_6_ATEST_REFCTRL__POR (0x00) +#define TAIKO_A_TX_5_6_TEST_CTL (0x16C) +#define TAIKO_A_TX_5_6_TEST_CTL__POR (0x38) +#define TAIKO_A_TX_5_6_TEST_BLOCK_EN (0x16D) +#define TAIKO_A_TX_5_6_TEST_BLOCK_EN__POR (0xFC) +#define TAIKO_A_TX_5_6_TXFE_CKDIV (0x16E) +#define TAIKO_A_TX_5_6_TXFE_CKDIV__POR (0x55) +#define TAIKO_A_TX_5_6_SAR_ERR_CH5 (0x16F) +#define TAIKO_A_TX_5_6_SAR_ERR_CH5__POR (0x00) +#define TAIKO_A_TX_5_6_SAR_ERR_CH6 (0x170) +#define TAIKO_A_TX_5_6_SAR_ERR_CH6__POR (0x00) +#define TAIKO_A_TX_7_MBHC_EN (0x171) +#define TAIKO_A_TX_7_MBHC_EN__POR (0x0C) +#define TAIKO_A_TX_7_MBHC_ATEST_REFCTRL (0x172) +#define TAIKO_A_TX_7_MBHC_ATEST_REFCTRL__POR (0x00) +#define TAIKO_A_TX_7_MBHC_ADC (0x173) +#define TAIKO_A_TX_7_MBHC_ADC__POR (0x44) +#define TAIKO_A_TX_7_MBHC_TEST_CTL (0x174) +#define TAIKO_A_TX_7_MBHC_TEST_CTL__POR (0x38) +#define TAIKO_A_TX_7_MBHC_SAR_ERR (0x175) +#define TAIKO_A_TX_7_MBHC_SAR_ERR__POR (0x00) +#define TAIKO_A_TX_7_TXFE_CLKDIV (0x176) +#define TAIKO_A_TX_7_TXFE_CLKDIV__POR (0x0B) +#define TAIKO_A_BUCK_MODE_1 (0x181) +#define TAIKO_A_BUCK_MODE_1__POR (0x21) +#define TAIKO_A_BUCK_MODE_2 (0x182) +#define TAIKO_A_BUCK_MODE_2__POR (0xFF) +#define TAIKO_A_BUCK_MODE_3 (0x183) +#define TAIKO_A_BUCK_MODE_3__POR (0xCC) +#define TAIKO_A_BUCK_MODE_4 (0x184) +#define TAIKO_A_BUCK_MODE_4__POR (0x3A) +#define TAIKO_A_BUCK_MODE_5 (0x185) +#define TAIKO_A_BUCK_MODE_5__POR (0x00) +#define TAIKO_A_BUCK_CTRL_VCL_1 (0x186) +#define TAIKO_A_BUCK_CTRL_VCL_1__POR (0x48) +#define TAIKO_A_BUCK_CTRL_VCL_2 (0x187) +#define TAIKO_A_BUCK_CTRL_VCL_2__POR (0xA3) +#define TAIKO_A_BUCK_CTRL_VCL_3 (0x188) +#define TAIKO_A_BUCK_CTRL_VCL_3__POR (0x82) +#define TAIKO_A_BUCK_CTRL_CCL_1 (0x189) +#define TAIKO_A_BUCK_CTRL_CCL_1__POR (0xAB) +#define TAIKO_A_BUCK_CTRL_CCL_2 (0x18A) +#define TAIKO_A_BUCK_CTRL_CCL_2__POR (0xDC) +#define TAIKO_A_BUCK_CTRL_CCL_3 (0x18B) +#define TAIKO_A_BUCK_CTRL_CCL_3__POR (0x6A) +#define TAIKO_A_BUCK_CTRL_CCL_4 (0x18C) +#define TAIKO_A_BUCK_CTRL_CCL_4__POR (0x58) +#define TAIKO_A_BUCK_CTRL_PWM_DRVR_1 (0x18D) +#define TAIKO_A_BUCK_CTRL_PWM_DRVR_1__POR (0x50) +#define TAIKO_A_BUCK_CTRL_PWM_DRVR_2 (0x18E) +#define TAIKO_A_BUCK_CTRL_PWM_DRVR_2__POR (0x64) +#define TAIKO_A_BUCK_CTRL_PWM_DRVR_3 (0x18F) +#define TAIKO_A_BUCK_CTRL_PWM_DRVR_3__POR (0x77) +#define TAIKO_A_BUCK_TMUX_A_D (0x190) +#define TAIKO_A_BUCK_TMUX_A_D__POR (0x00) +#define TAIKO_A_NCP_BUCKREF (0x191) +#define TAIKO_A_NCP_BUCKREF__POR (0x00) +#define TAIKO_A_NCP_EN (0x192) +#define TAIKO_A_NCP_EN__POR (0xFE) +#define TAIKO_A_NCP_CLK (0x193) +#define TAIKO_A_NCP_CLK__POR (0x94) +#define TAIKO_A_NCP_STATIC (0x194) +#define TAIKO_A_NCP_STATIC__POR (0x28) +#define TAIKO_A_NCP_VTH_LOW (0x195) +#define TAIKO_A_NCP_VTH_LOW__POR (0x88) +#define TAIKO_A_NCP_VTH_HIGH (0x196) +#define TAIKO_A_NCP_VTH_HIGH__POR (0xA0) +#define TAIKO_A_NCP_ATEST (0x197) +#define TAIKO_A_NCP_ATEST__POR (0x00) +#define TAIKO_A_NCP_DTEST (0x198) +#define TAIKO_A_NCP_DTEST__POR (0x00) +#define TAIKO_A_NCP_DLY1 (0x199) +#define TAIKO_A_NCP_DLY1__POR (0x06) +#define TAIKO_A_NCP_DLY2 (0x19A) +#define TAIKO_A_NCP_DLY2__POR (0x06) +#define TAIKO_A_RX_AUX_SW_CTL (0x19B) +#define TAIKO_A_RX_AUX_SW_CTL__POR (0x00) +#define TAIKO_A_RX_PA_AUX_IN_CONN (0x19C) +#define TAIKO_A_RX_PA_AUX_IN_CONN__POR (0x00) +#define TAIKO_A_RX_COM_TIMER_DIV (0x19E) +#define TAIKO_A_RX_COM_TIMER_DIV__POR (0xE8) +#define TAIKO_A_RX_COM_OCP_CTL (0x19F) +#define TAIKO_A_RX_COM_OCP_CTL__POR (0x1F) +#define TAIKO_A_RX_COM_OCP_COUNT (0x1A0) +#define TAIKO_A_RX_COM_OCP_COUNT__POR (0x77) +#define TAIKO_A_RX_COM_DAC_CTL (0x1A1) +#define TAIKO_A_RX_COM_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_COM_BIAS (0x1A2) +#define TAIKO_A_RX_COM_BIAS__POR (0x00) +#define TAIKO_A_RX_HPH_AUTO_CHOP (0x1A4) +#define TAIKO_A_RX_HPH_AUTO_CHOP__POR (0x38) +#define TAIKO_A_RX_HPH_CHOP_CTL (0x1A5) +#define TAIKO_A_RX_HPH_CHOP_CTL__POR (0xB4) +#define TAIKO_A_RX_HPH_BIAS_PA (0x1A6) +#define TAIKO_A_RX_HPH_BIAS_PA__POR (0xAA) +#define TAIKO_A_RX_HPH_BIAS_LDO (0x1A7) +#define TAIKO_A_RX_HPH_BIAS_LDO__POR (0x87) +#define TAIKO_A_RX_HPH_BIAS_CNP (0x1A8) +#define TAIKO_A_RX_HPH_BIAS_CNP__POR (0x8A) +#define TAIKO_A_RX_HPH_BIAS_WG_OCP (0x1A9) +#define TAIKO_A_RX_HPH_BIAS_WG_OCP__POR (0x2A) +#define TAIKO_A_RX_HPH_OCP_CTL (0x1AA) +#define TAIKO_A_RX_HPH_OCP_CTL__POR (0x68) +#define TAIKO_A_RX_HPH_CNP_EN (0x1AB) +#define TAIKO_A_RX_HPH_CNP_EN__POR (0x80) +#define TAIKO_A_RX_HPH_CNP_WG_CTL (0x1AC) +#define TAIKO_A_RX_HPH_CNP_WG_CTL__POR (0xDE) +#define TAIKO_A_RX_HPH_CNP_WG_TIME (0x1AD) +#define TAIKO_A_RX_HPH_CNP_WG_TIME__POR (0x2A) +#define TAIKO_A_RX_HPH_L_GAIN (0x1AE) +#define TAIKO_A_RX_HPH_L_GAIN__POR (0x00) +#define TAIKO_A_RX_HPH_L_TEST (0x1AF) +#define TAIKO_A_RX_HPH_L_TEST__POR (0x00) +#define TAIKO_A_RX_HPH_L_PA_CTL (0x1B0) +#define TAIKO_A_RX_HPH_L_PA_CTL__POR (0x40) +#define TAIKO_A_RX_HPH_L_DAC_CTL (0x1B1) +#define TAIKO_A_RX_HPH_L_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_HPH_L_ATEST (0x1B2) +#define TAIKO_A_RX_HPH_L_ATEST__POR (0x00) +#define TAIKO_A_RX_HPH_L_STATUS (0x1B3) +#define TAIKO_A_RX_HPH_L_STATUS__POR (0x00) +#define TAIKO_A_RX_HPH_R_GAIN (0x1B4) +#define TAIKO_A_RX_HPH_R_GAIN__POR (0x00) +#define TAIKO_A_RX_HPH_R_TEST (0x1B5) +#define TAIKO_A_RX_HPH_R_TEST__POR (0x00) +#define TAIKO_A_RX_HPH_R_PA_CTL (0x1B6) +#define TAIKO_A_RX_HPH_R_PA_CTL__POR (0x40) +#define TAIKO_A_RX_HPH_R_DAC_CTL (0x1B7) +#define TAIKO_A_RX_HPH_R_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_HPH_R_ATEST (0x1B8) +#define TAIKO_A_RX_HPH_R_ATEST__POR (0x00) +#define TAIKO_A_RX_HPH_R_STATUS (0x1B9) +#define TAIKO_A_RX_HPH_R_STATUS__POR (0x00) +#define TAIKO_A_RX_EAR_BIAS_PA (0x1BA) +#define TAIKO_A_RX_EAR_BIAS_PA__POR (0xA6) +#define TAIKO_A_RX_EAR_BIAS_CMBUFF (0x1BB) +#define TAIKO_A_RX_EAR_BIAS_CMBUFF__POR (0xA0) +#define TAIKO_A_RX_EAR_EN (0x1BC) +#define TAIKO_A_RX_EAR_EN__POR (0x00) +#define TAIKO_A_RX_EAR_GAIN (0x1BD) +#define TAIKO_A_RX_EAR_GAIN__POR (0x02) +#define TAIKO_A_RX_EAR_CMBUFF (0x1BE) +#define TAIKO_A_RX_EAR_CMBUFF__POR (0x04) +#define TAIKO_A_RX_EAR_ICTL (0x1BF) +#define TAIKO_A_RX_EAR_ICTL__POR (0x40) +#define TAIKO_A_RX_EAR_CCOMP (0x1C0) +#define TAIKO_A_RX_EAR_CCOMP__POR (0x08) +#define TAIKO_A_RX_EAR_VCM (0x1C1) +#define TAIKO_A_RX_EAR_VCM__POR (0x03) +#define TAIKO_A_RX_EAR_CNP (0x1C2) +#define TAIKO_A_RX_EAR_CNP__POR (0xF2) +#define TAIKO_A_RX_EAR_DAC_CTL_ATEST (0x1C3) +#define TAIKO_A_RX_EAR_DAC_CTL_ATEST__POR (0x00) +#define TAIKO_A_RX_EAR_STATUS (0x1C5) +#define TAIKO_A_RX_EAR_STATUS__POR (0x04) +#define TAIKO_A_RX_LINE_BIAS_PA (0x1C6) +#define TAIKO_A_RX_LINE_BIAS_PA__POR (0xA8) +#define TAIKO_A_RX_BUCK_BIAS1 (0x1C7) +#define TAIKO_A_RX_BUCK_BIAS1__POR (0x42) +#define TAIKO_A_RX_BUCK_BIAS2 (0x1C8) +#define TAIKO_A_RX_BUCK_BIAS2__POR (0x84) +#define TAIKO_A_RX_LINE_COM (0x1C9) +#define TAIKO_A_RX_LINE_COM__POR (0x80) +#define TAIKO_A_RX_LINE_CNP_EN (0x1CA) +#define TAIKO_A_RX_LINE_CNP_EN__POR (0x00) +#define TAIKO_A_RX_LINE_CNP_WG_CTL (0x1CB) +#define TAIKO_A_RX_LINE_CNP_WG_CTL__POR (0x00) +#define TAIKO_A_RX_LINE_CNP_WG_TIME (0x1CC) +#define TAIKO_A_RX_LINE_CNP_WG_TIME__POR (0x04) +#define TAIKO_A_RX_LINE_1_GAIN (0x1CD) +#define TAIKO_A_RX_LINE_1_GAIN__POR (0x00) +#define TAIKO_A_RX_LINE_1_TEST (0x1CE) +#define TAIKO_A_RX_LINE_1_TEST__POR (0x00) +#define TAIKO_A_RX_LINE_1_DAC_CTL (0x1CF) +#define TAIKO_A_RX_LINE_1_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_LINE_1_STATUS (0x1D0) +#define TAIKO_A_RX_LINE_1_STATUS__POR (0x00) +#define TAIKO_A_RX_LINE_2_GAIN (0x1D1) +#define TAIKO_A_RX_LINE_2_GAIN__POR (0x00) +#define TAIKO_A_RX_LINE_2_TEST (0x1D2) +#define TAIKO_A_RX_LINE_2_TEST__POR (0x00) +#define TAIKO_A_RX_LINE_2_DAC_CTL (0x1D3) +#define TAIKO_A_RX_LINE_2_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_LINE_2_STATUS (0x1D4) +#define TAIKO_A_RX_LINE_2_STATUS__POR (0x00) +#define TAIKO_A_RX_LINE_3_GAIN (0x1D5) +#define TAIKO_A_RX_LINE_3_GAIN__POR (0x00) +#define TAIKO_A_RX_LINE_3_TEST (0x1D6) +#define TAIKO_A_RX_LINE_3_TEST__POR (0x00) +#define TAIKO_A_RX_LINE_3_DAC_CTL (0x1D7) +#define TAIKO_A_RX_LINE_3_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_LINE_3_STATUS (0x1D8) +#define TAIKO_A_RX_LINE_3_STATUS__POR (0x00) +#define TAIKO_A_RX_LINE_4_GAIN (0x1D9) +#define TAIKO_A_RX_LINE_4_GAIN__POR (0x00) +#define TAIKO_A_RX_LINE_4_TEST (0x1DA) +#define TAIKO_A_RX_LINE_4_TEST__POR (0x00) +#define TAIKO_A_RX_LINE_4_DAC_CTL (0x1DB) +#define TAIKO_A_RX_LINE_4_DAC_CTL__POR (0x00) +#define TAIKO_A_RX_LINE_4_STATUS (0x1DC) +#define TAIKO_A_RX_LINE_4_STATUS__POR (0x00) +#define TAIKO_A_RX_LINE_CNP_DBG (0x1DD) +#define TAIKO_A_RX_LINE_CNP_DBG__POR (0x00) +#define TAIKO_A_SPKR_DRV_EN (0x1DF) +#define TAIKO_A_SPKR_DRV_EN__POR (0x6F) +#define TAIKO_A_SPKR_DRV_GAIN (0x1E0) +#define TAIKO_A_SPKR_DRV_GAIN__POR (0x00) +#define TAIKO_A_SPKR_DRV_DAC_CTL (0x1E1) +#define TAIKO_A_SPKR_DRV_DAC_CTL__POR (0x04) +#define TAIKO_A_SPKR_DRV_OCP_CTL (0x1E2) +#define TAIKO_A_SPKR_DRV_OCP_CTL__POR (0x98) +#define TAIKO_A_SPKR_DRV_CLIP_DET (0x1E3) +#define TAIKO_A_SPKR_DRV_CLIP_DET__POR (0x48) +#define TAIKO_A_SPKR_DRV_IEC (0x1E4) +#define TAIKO_A_SPKR_DRV_IEC__POR (0x20) +#define TAIKO_A_SPKR_DRV_DBG_DAC (0x1E5) +#define TAIKO_A_SPKR_DRV_DBG_DAC__POR (0x05) +#define TAIKO_A_SPKR_DRV_DBG_PA (0x1E6) +#define TAIKO_A_SPKR_DRV_DBG_PA__POR (0x18) +#define TAIKO_A_SPKR_DRV_DBG_PWRSTG (0x1E7) +#define TAIKO_A_SPKR_DRV_DBG_PWRSTG__POR (0x00) +#define TAIKO_A_SPKR_DRV_BIAS_LDO (0x1E8) +#define TAIKO_A_SPKR_DRV_BIAS_LDO__POR (0x45) +#define TAIKO_A_SPKR_DRV_BIAS_INT (0x1E9) +#define TAIKO_A_SPKR_DRV_BIAS_INT__POR (0xA5) +#define TAIKO_A_SPKR_DRV_BIAS_PA (0x1EA) +#define TAIKO_A_SPKR_DRV_BIAS_PA__POR (0x55) +#define TAIKO_A_SPKR_DRV_STATUS_OCP (0x1EB) +#define TAIKO_A_SPKR_DRV_STATUS_OCP__POR (0x00) +#define TAIKO_A_SPKR_DRV_STATUS_PA (0x1EC) +#define TAIKO_A_SPKR_DRV_STATUS_PA__POR (0x00) +#define TAIKO_A_SPKR_PROT_EN (0x1ED) +#define TAIKO_A_SPKR_PROT_EN__POR (0x00) +#define TAIKO_A_SPKR_PROT_ADC_EN (0x1EE) +#define TAIKO_A_SPKR_PROT_ADC_EN__POR (0x44) +#define TAIKO_A_SPKR_PROT_ISENSE_BIAS (0x1EF) +#define TAIKO_A_SPKR_PROT_ISENSE_BIAS__POR (0x44) +#define TAIKO_A_SPKR_PROT_VSENSE_BIAS (0x1F0) +#define TAIKO_A_SPKR_PROT_VSENSE_BIAS__POR (0x44) +#define TAIKO_A_SPKR_PROT_ADC_ATEST_REFCTRL (0x1F1) +#define TAIKO_A_SPKR_PROT_ADC_ATEST_REFCTRL__POR (0x00) +#define TAIKO_A_SPKR_PROT_ADC_TEST_CTL (0x1F2) +#define TAIKO_A_SPKR_PROT_ADC_TEST_CTL__POR (0x38) +#define TAIKO_A_SPKR_PROT_TEST_BLOCK_EN (0x1F3) +#define TAIKO_A_SPKR_PROT_TEST_BLOCK_EN__POR (0xFC) +#define TAIKO_A_SPKR_PROT_ATEST (0x1F4) +#define TAIKO_A_SPKR_PROT_ATEST__POR (0x00) +#define TAIKO_A_SPKR_PROT_V_SAR_ERR (0x1F5) +#define TAIKO_A_SPKR_PROT_V_SAR_ERR__POR (0x00) +#define TAIKO_A_SPKR_PROT_I_SAR_ERR (0x1F6) +#define TAIKO_A_SPKR_PROT_I_SAR_ERR__POR (0x00) +#define TAIKO_A_SPKR_PROT_LDO_CTRL (0x1F7) +#define TAIKO_A_SPKR_PROT_LDO_CTRL__POR (0x00) +#define TAIKO_A_SPKR_PROT_ISENSE_CTRL (0x1F8) +#define TAIKO_A_SPKR_PROT_ISENSE_CTRL__POR (0x00) +#define TAIKO_A_SPKR_PROT_VSENSE_CTRL (0x1F9) +#define TAIKO_A_SPKR_PROT_VSENSE_CTRL__POR (0x00) +#define TAIKO_A_RC_OSC_FREQ (0x1FA) +#define TAIKO_A_RC_OSC_FREQ__POR (0x46) +#define TAIKO_A_RC_OSC_TEST (0x1FB) +#define TAIKO_A_RC_OSC_TEST__POR (0x0A) +#define TAIKO_A_RC_OSC_STATUS (0x1FC) +#define TAIKO_A_RC_OSC_STATUS__POR (0x18) +#define TAIKO_A_RC_OSC_TUNER (0x1FD) +#define TAIKO_A_RC_OSC_TUNER__POR (0x00) +#define TAIKO_A_MBHC_HPH (0x1FE) +#define TAIKO_A_MBHC_HPH__POR (0x44) +#define TAIKO_A_CDC_ANC1_B1_CTL (0x200) +#define TAIKO_A_CDC_ANC1_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_B1_CTL (0x280) +#define TAIKO_A_CDC_ANC2_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_SHIFT (0x201) +#define TAIKO_A_CDC_ANC1_SHIFT__POR (0x00) +#define TAIKO_A_CDC_ANC2_SHIFT (0x281) +#define TAIKO_A_CDC_ANC2_SHIFT__POR (0x00) +#define TAIKO_A_CDC_ANC1_IIR_B1_CTL (0x202) +#define TAIKO_A_CDC_ANC1_IIR_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_IIR_B1_CTL (0x282) +#define TAIKO_A_CDC_ANC2_IIR_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_IIR_B2_CTL (0x203) +#define TAIKO_A_CDC_ANC1_IIR_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_IIR_B2_CTL (0x283) +#define TAIKO_A_CDC_ANC2_IIR_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_IIR_B3_CTL (0x204) +#define TAIKO_A_CDC_ANC1_IIR_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_IIR_B3_CTL (0x284) +#define TAIKO_A_CDC_ANC2_IIR_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_LPF_B1_CTL (0x206) +#define TAIKO_A_CDC_ANC1_LPF_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_LPF_B1_CTL (0x286) +#define TAIKO_A_CDC_ANC2_LPF_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_LPF_B2_CTL (0x207) +#define TAIKO_A_CDC_ANC1_LPF_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_LPF_B2_CTL (0x287) +#define TAIKO_A_CDC_ANC2_LPF_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_SPARE (0x209) +#define TAIKO_A_CDC_ANC1_SPARE__POR (0x00) +#define TAIKO_A_CDC_ANC2_SPARE (0x289) +#define TAIKO_A_CDC_ANC2_SPARE__POR (0x00) +#define TAIKO_A_CDC_ANC1_SMLPF_CTL (0x20A) +#define TAIKO_A_CDC_ANC1_SMLPF_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_SMLPF_CTL (0x28A) +#define TAIKO_A_CDC_ANC2_SMLPF_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_DCFLT_CTL (0x20B) +#define TAIKO_A_CDC_ANC1_DCFLT_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_DCFLT_CTL (0x28B) +#define TAIKO_A_CDC_ANC2_DCFLT_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_GAIN_CTL (0x20C) +#define TAIKO_A_CDC_ANC1_GAIN_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_GAIN_CTL (0x28C) +#define TAIKO_A_CDC_ANC2_GAIN_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC1_B2_CTL (0x20D) +#define TAIKO_A_CDC_ANC1_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_ANC2_B2_CTL (0x28D) +#define TAIKO_A_CDC_ANC2_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_TX1_VOL_CTL_TIMER (0x220) +#define TAIKO_A_CDC_TX1_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX2_VOL_CTL_TIMER (0x228) +#define TAIKO_A_CDC_TX2_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX3_VOL_CTL_TIMER (0x230) +#define TAIKO_A_CDC_TX3_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX4_VOL_CTL_TIMER (0x238) +#define TAIKO_A_CDC_TX4_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX5_VOL_CTL_TIMER (0x240) +#define TAIKO_A_CDC_TX5_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX6_VOL_CTL_TIMER (0x248) +#define TAIKO_A_CDC_TX6_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX7_VOL_CTL_TIMER (0x250) +#define TAIKO_A_CDC_TX7_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX8_VOL_CTL_TIMER (0x258) +#define TAIKO_A_CDC_TX8_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX9_VOL_CTL_TIMER (0x260) +#define TAIKO_A_CDC_TX9_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX10_VOL_CTL_TIMER (0x268) +#define TAIKO_A_CDC_TX10_VOL_CTL_TIMER__POR (0x00) +#define TAIKO_A_CDC_TX1_VOL_CTL_GAIN (0x221) +#define TAIKO_A_CDC_TX1_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX2_VOL_CTL_GAIN (0x229) +#define TAIKO_A_CDC_TX2_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX3_VOL_CTL_GAIN (0x231) +#define TAIKO_A_CDC_TX3_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX4_VOL_CTL_GAIN (0x239) +#define TAIKO_A_CDC_TX4_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX5_VOL_CTL_GAIN (0x241) +#define TAIKO_A_CDC_TX5_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX6_VOL_CTL_GAIN (0x249) +#define TAIKO_A_CDC_TX6_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX7_VOL_CTL_GAIN (0x251) +#define TAIKO_A_CDC_TX7_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX8_VOL_CTL_GAIN (0x259) +#define TAIKO_A_CDC_TX8_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX9_VOL_CTL_GAIN (0x261) +#define TAIKO_A_CDC_TX9_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX10_VOL_CTL_GAIN (0x269) +#define TAIKO_A_CDC_TX10_VOL_CTL_GAIN__POR (0x00) +#define TAIKO_A_CDC_TX1_VOL_CTL_CFG (0x222) +#define TAIKO_A_CDC_TX1_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX2_VOL_CTL_CFG (0x22A) +#define TAIKO_A_CDC_TX2_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX3_VOL_CTL_CFG (0x232) +#define TAIKO_A_CDC_TX3_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX4_VOL_CTL_CFG (0x23A) +#define TAIKO_A_CDC_TX4_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX5_VOL_CTL_CFG (0x242) +#define TAIKO_A_CDC_TX5_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX6_VOL_CTL_CFG (0x24A) +#define TAIKO_A_CDC_TX6_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX7_VOL_CTL_CFG (0x252) +#define TAIKO_A_CDC_TX7_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX8_VOL_CTL_CFG (0x25A) +#define TAIKO_A_CDC_TX8_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX9_VOL_CTL_CFG (0x262) +#define TAIKO_A_CDC_TX9_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX10_VOL_CTL_CFG (0x26A) +#define TAIKO_A_CDC_TX10_VOL_CTL_CFG__POR (0x00) +#define TAIKO_A_CDC_TX1_MUX_CTL (0x223) +#define TAIKO_A_CDC_TX1_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX2_MUX_CTL (0x22B) +#define TAIKO_A_CDC_TX2_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX3_MUX_CTL (0x233) +#define TAIKO_A_CDC_TX3_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX4_MUX_CTL (0x23B) +#define TAIKO_A_CDC_TX4_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX5_MUX_CTL (0x243) +#define TAIKO_A_CDC_TX5_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX6_MUX_CTL (0x24B) +#define TAIKO_A_CDC_TX6_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX7_MUX_CTL (0x253) +#define TAIKO_A_CDC_TX7_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX8_MUX_CTL (0x25B) +#define TAIKO_A_CDC_TX8_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX9_MUX_CTL (0x263) +#define TAIKO_A_CDC_TX9_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX10_MUX_CTL (0x26B) +#define TAIKO_A_CDC_TX10_MUX_CTL__POR (0x08) +#define TAIKO_A_CDC_TX1_CLK_FS_CTL (0x224) +#define TAIKO_A_CDC_TX1_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX2_CLK_FS_CTL (0x22C) +#define TAIKO_A_CDC_TX2_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX3_CLK_FS_CTL (0x234) +#define TAIKO_A_CDC_TX3_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX4_CLK_FS_CTL (0x23C) +#define TAIKO_A_CDC_TX4_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX5_CLK_FS_CTL (0x244) +#define TAIKO_A_CDC_TX5_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX6_CLK_FS_CTL (0x24C) +#define TAIKO_A_CDC_TX6_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX7_CLK_FS_CTL (0x254) +#define TAIKO_A_CDC_TX7_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX8_CLK_FS_CTL (0x25C) +#define TAIKO_A_CDC_TX8_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX9_CLK_FS_CTL (0x264) +#define TAIKO_A_CDC_TX9_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX10_CLK_FS_CTL (0x26C) +#define TAIKO_A_CDC_TX10_CLK_FS_CTL__POR (0x03) +#define TAIKO_A_CDC_TX1_DMIC_CTL (0x225) +#define TAIKO_A_CDC_TX1_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX2_DMIC_CTL (0x22D) +#define TAIKO_A_CDC_TX2_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX3_DMIC_CTL (0x235) +#define TAIKO_A_CDC_TX3_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX4_DMIC_CTL (0x23D) +#define TAIKO_A_CDC_TX4_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX5_DMIC_CTL (0x245) +#define TAIKO_A_CDC_TX5_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX6_DMIC_CTL (0x24D) +#define TAIKO_A_CDC_TX6_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX7_DMIC_CTL (0x255) +#define TAIKO_A_CDC_TX7_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX8_DMIC_CTL (0x25D) +#define TAIKO_A_CDC_TX8_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX9_DMIC_CTL (0x265) +#define TAIKO_A_CDC_TX9_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_TX10_DMIC_CTL (0x26D) +#define TAIKO_A_CDC_TX10_DMIC_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B1_CTL (0x278) +#define TAIKO_A_CDC_DEBUG_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B2_CTL (0x279) +#define TAIKO_A_CDC_DEBUG_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B3_CTL (0x27A) +#define TAIKO_A_CDC_DEBUG_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B4_CTL (0x27B) +#define TAIKO_A_CDC_DEBUG_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B5_CTL (0x27C) +#define TAIKO_A_CDC_DEBUG_B5_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B6_CTL (0x27D) +#define TAIKO_A_CDC_DEBUG_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_DEBUG_B7_CTL (0x27E) +#define TAIKO_A_CDC_DEBUG_B7_CTL__POR (0x00) +#define TAIKO_A_CDC_SRC1_PDA_CFG (0x2A0) +#define TAIKO_A_CDC_SRC1_PDA_CFG__POR (0x00) +#define TAIKO_A_CDC_SRC2_PDA_CFG (0x2A8) +#define TAIKO_A_CDC_SRC2_PDA_CFG__POR (0x00) +#define TAIKO_A_CDC_SRC1_FS_CTL (0x2A1) +#define TAIKO_A_CDC_SRC1_FS_CTL__POR (0x1B) +#define TAIKO_A_CDC_SRC2_FS_CTL (0x2A9) +#define TAIKO_A_CDC_SRC2_FS_CTL__POR (0x1B) +#define TAIKO_A_CDC_RX1_B1_CTL (0x2B0) +#define TAIKO_A_CDC_RX1_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX2_B1_CTL (0x2B8) +#define TAIKO_A_CDC_RX2_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX3_B1_CTL (0x2C0) +#define TAIKO_A_CDC_RX3_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX4_B1_CTL (0x2C8) +#define TAIKO_A_CDC_RX4_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX5_B1_CTL (0x2D0) +#define TAIKO_A_CDC_RX5_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX6_B1_CTL (0x2D8) +#define TAIKO_A_CDC_RX6_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX7_B1_CTL (0x2E0) +#define TAIKO_A_CDC_RX7_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX1_B2_CTL (0x2B1) +#define TAIKO_A_CDC_RX1_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX2_B2_CTL (0x2B9) +#define TAIKO_A_CDC_RX2_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX3_B2_CTL (0x2C1) +#define TAIKO_A_CDC_RX3_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX4_B2_CTL (0x2C9) +#define TAIKO_A_CDC_RX4_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX5_B2_CTL (0x2D1) +#define TAIKO_A_CDC_RX5_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX6_B2_CTL (0x2D9) +#define TAIKO_A_CDC_RX6_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX7_B2_CTL (0x2E1) +#define TAIKO_A_CDC_RX7_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX1_B3_CTL (0x2B2) +#define TAIKO_A_CDC_RX1_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX2_B3_CTL (0x2BA) +#define TAIKO_A_CDC_RX2_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX3_B3_CTL (0x2C2) +#define TAIKO_A_CDC_RX3_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX4_B3_CTL (0x2CA) +#define TAIKO_A_CDC_RX4_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX5_B3_CTL (0x2D2) +#define TAIKO_A_CDC_RX5_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX6_B3_CTL (0x2DA) +#define TAIKO_A_CDC_RX6_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX7_B3_CTL (0x2E2) +#define TAIKO_A_CDC_RX7_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_RX1_B4_CTL (0x2B3) +#define TAIKO_A_CDC_RX1_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX2_B4_CTL (0x2BB) +#define TAIKO_A_CDC_RX2_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX3_B4_CTL (0x2C3) +#define TAIKO_A_CDC_RX3_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX4_B4_CTL (0x2CB) +#define TAIKO_A_CDC_RX4_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX5_B4_CTL (0x2D3) +#define TAIKO_A_CDC_RX5_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX6_B4_CTL (0x2DB) +#define TAIKO_A_CDC_RX6_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX7_B4_CTL (0x2E3) +#define TAIKO_A_CDC_RX7_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_RX1_B5_CTL (0x2B4) +#define TAIKO_A_CDC_RX1_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX2_B5_CTL (0x2BC) +#define TAIKO_A_CDC_RX2_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX3_B5_CTL (0x2C4) +#define TAIKO_A_CDC_RX3_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX4_B5_CTL (0x2CC) +#define TAIKO_A_CDC_RX4_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX5_B5_CTL (0x2D4) +#define TAIKO_A_CDC_RX5_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX6_B5_CTL (0x2DC) +#define TAIKO_A_CDC_RX6_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX7_B5_CTL (0x2E4) +#define TAIKO_A_CDC_RX7_B5_CTL__POR (0x78) +#define TAIKO_A_CDC_RX1_B6_CTL (0x2B5) +#define TAIKO_A_CDC_RX1_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX2_B6_CTL (0x2BD) +#define TAIKO_A_CDC_RX2_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX3_B6_CTL (0x2C5) +#define TAIKO_A_CDC_RX3_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX4_B6_CTL (0x2CD) +#define TAIKO_A_CDC_RX4_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX5_B6_CTL (0x2D5) +#define TAIKO_A_CDC_RX5_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX6_B6_CTL (0x2DD) +#define TAIKO_A_CDC_RX6_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX7_B6_CTL (0x2E5) +#define TAIKO_A_CDC_RX7_B6_CTL__POR (0x80) +#define TAIKO_A_CDC_RX1_VOL_CTL_B1_CTL (0x2B6) +#define TAIKO_A_CDC_RX1_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX2_VOL_CTL_B1_CTL (0x2BE) +#define TAIKO_A_CDC_RX2_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX3_VOL_CTL_B1_CTL (0x2C6) +#define TAIKO_A_CDC_RX3_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX4_VOL_CTL_B1_CTL (0x2CE) +#define TAIKO_A_CDC_RX4_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX5_VOL_CTL_B1_CTL (0x2D6) +#define TAIKO_A_CDC_RX5_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX6_VOL_CTL_B1_CTL (0x2DE) +#define TAIKO_A_CDC_RX6_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX7_VOL_CTL_B1_CTL (0x2E6) +#define TAIKO_A_CDC_RX7_VOL_CTL_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_RX1_VOL_CTL_B2_CTL (0x2B7) +#define TAIKO_A_CDC_RX1_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX2_VOL_CTL_B2_CTL (0x2BF) +#define TAIKO_A_CDC_RX2_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX3_VOL_CTL_B2_CTL (0x2C7) +#define TAIKO_A_CDC_RX3_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX4_VOL_CTL_B2_CTL (0x2CF) +#define TAIKO_A_CDC_RX4_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX5_VOL_CTL_B2_CTL (0x2D7) +#define TAIKO_A_CDC_RX5_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX6_VOL_CTL_B2_CTL (0x2DF) +#define TAIKO_A_CDC_RX6_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_RX7_VOL_CTL_B2_CTL (0x2E7) +#define TAIKO_A_CDC_RX7_VOL_CTL_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_VBAT_CFG (0x2E8) +#define TAIKO_A_CDC_VBAT_CFG__POR (0x1A) +#define TAIKO_A_CDC_VBAT_ADC_CAL1 (0x2E9) +#define TAIKO_A_CDC_VBAT_ADC_CAL1__POR (0x00) +#define TAIKO_A_CDC_VBAT_ADC_CAL2 (0x2EA) +#define TAIKO_A_CDC_VBAT_ADC_CAL2__POR (0x00) +#define TAIKO_A_CDC_VBAT_ADC_CAL3 (0x2EB) +#define TAIKO_A_CDC_VBAT_ADC_CAL3__POR (0x04) +#define TAIKO_A_CDC_VBAT_PK_EST1 (0x2EC) +#define TAIKO_A_CDC_VBAT_PK_EST1__POR (0xE0) +#define TAIKO_A_CDC_VBAT_PK_EST2 (0x2ED) +#define TAIKO_A_CDC_VBAT_PK_EST2__POR (0x01) +#define TAIKO_A_CDC_VBAT_PK_EST3 (0x2EE) +#define TAIKO_A_CDC_VBAT_PK_EST3__POR (0x40) +#define TAIKO_A_CDC_VBAT_RF_PROC1 (0x2EF) +#define TAIKO_A_CDC_VBAT_RF_PROC1__POR (0x2A) +#define TAIKO_A_CDC_VBAT_RF_PROC2 (0x2F0) +#define TAIKO_A_CDC_VBAT_RF_PROC2__POR (0x86) +#define TAIKO_A_CDC_VBAT_TAC1 (0x2F1) +#define TAIKO_A_CDC_VBAT_TAC1__POR (0x70) +#define TAIKO_A_CDC_VBAT_TAC2 (0x2F2) +#define TAIKO_A_CDC_VBAT_TAC2__POR (0x18) +#define TAIKO_A_CDC_VBAT_TAC3 (0x2F3) +#define TAIKO_A_CDC_VBAT_TAC3__POR (0x18) +#define TAIKO_A_CDC_VBAT_TAC4 (0x2F4) +#define TAIKO_A_CDC_VBAT_TAC4__POR (0x03) +#define TAIKO_A_CDC_VBAT_GAIN_UPD1 (0x2F5) +#define TAIKO_A_CDC_VBAT_GAIN_UPD1__POR (0x01) +#define TAIKO_A_CDC_VBAT_GAIN_UPD2 (0x2F6) +#define TAIKO_A_CDC_VBAT_GAIN_UPD2__POR (0x00) +#define TAIKO_A_CDC_VBAT_GAIN_UPD3 (0x2F7) +#define TAIKO_A_CDC_VBAT_GAIN_UPD3__POR (0x64) +#define TAIKO_A_CDC_VBAT_GAIN_UPD4 (0x2F8) +#define TAIKO_A_CDC_VBAT_GAIN_UPD4__POR (0x01) +#define TAIKO_A_CDC_VBAT_DEBUG1 (0x2F9) +#define TAIKO_A_CDC_VBAT_DEBUG1__POR (0x00) +#define TAIKO_A_CDC_CLK_ANC_RESET_CTL (0x300) +#define TAIKO_A_CDC_CLK_ANC_RESET_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_RX_RESET_CTL (0x301) +#define TAIKO_A_CDC_CLK_RX_RESET_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_TX_RESET_B1_CTL (0x302) +#define TAIKO_A_CDC_CLK_TX_RESET_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_TX_RESET_B2_CTL (0x303) +#define TAIKO_A_CDC_CLK_TX_RESET_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_DMIC_B1_CTL (0x304) +#define TAIKO_A_CDC_CLK_DMIC_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_DMIC_B2_CTL (0x305) +#define TAIKO_A_CDC_CLK_DMIC_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_RX_I2S_CTL (0x306) +#define TAIKO_A_CDC_CLK_RX_I2S_CTL__POR (0x03) +#define TAIKO_A_CDC_CLK_TX_I2S_CTL (0x307) +#define TAIKO_A_CDC_CLK_TX_I2S_CTL__POR (0x03) +#define TAIKO_A_CDC_CLK_OTHR_RESET_B1_CTL (0x308) +#define TAIKO_A_CDC_CLK_OTHR_RESET_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_OTHR_RESET_B2_CTL (0x309) +#define TAIKO_A_CDC_CLK_OTHR_RESET_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_TX_CLK_EN_B1_CTL (0x30A) +#define TAIKO_A_CDC_CLK_TX_CLK_EN_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_TX_CLK_EN_B2_CTL (0x30B) +#define TAIKO_A_CDC_CLK_TX_CLK_EN_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_OTHR_CTL (0x30C) +#define TAIKO_A_CDC_CLK_OTHR_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_RDAC_CLK_EN_CTL (0x30D) +#define TAIKO_A_CDC_CLK_RDAC_CLK_EN_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_ANC_CLK_EN_CTL (0x30E) +#define TAIKO_A_CDC_CLK_ANC_CLK_EN_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_RX_B1_CTL (0x30F) +#define TAIKO_A_CDC_CLK_RX_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_RX_B2_CTL (0x310) +#define TAIKO_A_CDC_CLK_RX_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_MCLK_CTL (0x311) +#define TAIKO_A_CDC_CLK_MCLK_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_PDM_CTL (0x312) +#define TAIKO_A_CDC_CLK_PDM_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_SD_CTL (0x313) +#define TAIKO_A_CDC_CLK_SD_CTL__POR (0x00) +#define TAIKO_A_CDC_CLK_POWER_CTL (0x314) +#define TAIKO_A_CDC_CLK_POWER_CTL__POR (0x00) +#define TAIKO_A_CDC_CLSH_B1_CTL (0x320) +#define TAIKO_A_CDC_CLSH_B1_CTL__POR (0xE4) +#define TAIKO_A_CDC_CLSH_B2_CTL (0x321) +#define TAIKO_A_CDC_CLSH_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CLSH_B3_CTL (0x322) +#define TAIKO_A_CDC_CLSH_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CLSH_BUCK_NCP_VARS (0x323) +#define TAIKO_A_CDC_CLSH_BUCK_NCP_VARS__POR (0x00) +#define TAIKO_A_CDC_CLSH_IDLE_HPH_THSD (0x324) +#define TAIKO_A_CDC_CLSH_IDLE_HPH_THSD__POR (0x12) +#define TAIKO_A_CDC_CLSH_IDLE_EAR_THSD (0x325) +#define TAIKO_A_CDC_CLSH_IDLE_EAR_THSD__POR (0x0C) +#define TAIKO_A_CDC_CLSH_FCLKONLY_HPH_THSD (0x326) +#define TAIKO_A_CDC_CLSH_FCLKONLY_HPH_THSD__POR (0x18) +#define TAIKO_A_CDC_CLSH_FCLKONLY_EAR_THSD (0x327) +#define TAIKO_A_CDC_CLSH_FCLKONLY_EAR_THSD__POR (0x23) +#define TAIKO_A_CDC_CLSH_K_ADDR (0x328) +#define TAIKO_A_CDC_CLSH_K_ADDR__POR (0x00) +#define TAIKO_A_CDC_CLSH_K_DATA (0x329) +#define TAIKO_A_CDC_CLSH_K_DATA__POR (0xA4) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_HPH_L (0x32A) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_HPH_L__POR (0xD7) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_HPH_U (0x32B) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_HPH_U__POR (0x05) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_EAR_L (0x32C) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_EAR_L__POR (0x60) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_EAR_U (0x32D) +#define TAIKO_A_CDC_CLSH_I_PA_FACT_EAR_U__POR (0x09) +#define TAIKO_A_CDC_CLSH_V_PA_HD_EAR (0x32E) +#define TAIKO_A_CDC_CLSH_V_PA_HD_EAR__POR (0x00) +#define TAIKO_A_CDC_CLSH_V_PA_HD_HPH (0x32F) +#define TAIKO_A_CDC_CLSH_V_PA_HD_HPH__POR (0x00) +#define TAIKO_A_CDC_CLSH_V_PA_MIN_EAR (0x330) +#define TAIKO_A_CDC_CLSH_V_PA_MIN_EAR__POR (0x00) +#define TAIKO_A_CDC_CLSH_V_PA_MIN_HPH (0x331) +#define TAIKO_A_CDC_CLSH_V_PA_MIN_HPH__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B1_CTL (0x340) +#define TAIKO_A_CDC_IIR1_GAIN_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B1_CTL (0x350) +#define TAIKO_A_CDC_IIR2_GAIN_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B2_CTL (0x341) +#define TAIKO_A_CDC_IIR1_GAIN_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B2_CTL (0x351) +#define TAIKO_A_CDC_IIR2_GAIN_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B3_CTL (0x342) +#define TAIKO_A_CDC_IIR1_GAIN_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B3_CTL (0x352) +#define TAIKO_A_CDC_IIR2_GAIN_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B4_CTL (0x343) +#define TAIKO_A_CDC_IIR1_GAIN_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B4_CTL (0x353) +#define TAIKO_A_CDC_IIR2_GAIN_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B5_CTL (0x344) +#define TAIKO_A_CDC_IIR1_GAIN_B5_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B5_CTL (0x354) +#define TAIKO_A_CDC_IIR2_GAIN_B5_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B6_CTL (0x345) +#define TAIKO_A_CDC_IIR1_GAIN_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B6_CTL (0x355) +#define TAIKO_A_CDC_IIR2_GAIN_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B7_CTL (0x346) +#define TAIKO_A_CDC_IIR1_GAIN_B7_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B7_CTL (0x356) +#define TAIKO_A_CDC_IIR2_GAIN_B7_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_GAIN_B8_CTL (0x347) +#define TAIKO_A_CDC_IIR1_GAIN_B8_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_B8_CTL (0x357) +#define TAIKO_A_CDC_IIR2_GAIN_B8_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_CTL (0x348) +#define TAIKO_A_CDC_IIR1_CTL__POR (0x40) +#define TAIKO_A_CDC_IIR2_CTL (0x358) +#define TAIKO_A_CDC_IIR2_CTL__POR (0x40) +#define TAIKO_A_CDC_IIR1_GAIN_TIMER_CTL (0x349) +#define TAIKO_A_CDC_IIR1_GAIN_TIMER_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_GAIN_TIMER_CTL (0x359) +#define TAIKO_A_CDC_IIR2_GAIN_TIMER_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_COEF_B1_CTL (0x34A) +#define TAIKO_A_CDC_IIR1_COEF_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_COEF_B1_CTL (0x35A) +#define TAIKO_A_CDC_IIR2_COEF_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR1_COEF_B2_CTL (0x34B) +#define TAIKO_A_CDC_IIR1_COEF_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_IIR2_COEF_B2_CTL (0x35B) +#define TAIKO_A_CDC_IIR2_COEF_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_TOP_GAIN_UPDATE (0x360) +#define TAIKO_A_CDC_TOP_GAIN_UPDATE__POR (0x00) +#define TAIKO_A_CDC_COMP0_B1_CTL (0x368) +#define TAIKO_A_CDC_COMP0_B1_CTL__POR (0x30) +#define TAIKO_A_CDC_COMP1_B1_CTL (0x370) +#define TAIKO_A_CDC_COMP1_B1_CTL__POR (0x30) +#define TAIKO_A_CDC_COMP2_B1_CTL (0x378) +#define TAIKO_A_CDC_COMP2_B1_CTL__POR (0x30) +#define TAIKO_A_CDC_COMP0_B2_CTL (0x369) +#define TAIKO_A_CDC_COMP0_B2_CTL__POR (0xB5) +#define TAIKO_A_CDC_COMP1_B2_CTL (0x371) +#define TAIKO_A_CDC_COMP1_B2_CTL__POR (0xB5) +#define TAIKO_A_CDC_COMP2_B2_CTL (0x379) +#define TAIKO_A_CDC_COMP2_B2_CTL__POR (0xB5) +#define TAIKO_A_CDC_COMP0_B3_CTL (0x36A) +#define TAIKO_A_CDC_COMP0_B3_CTL__POR (0x28) +#define TAIKO_A_CDC_COMP1_B3_CTL (0x372) +#define TAIKO_A_CDC_COMP1_B3_CTL__POR (0x28) +#define TAIKO_A_CDC_COMP2_B3_CTL (0x37A) +#define TAIKO_A_CDC_COMP2_B3_CTL__POR (0x28) +#define TAIKO_A_CDC_COMP0_B4_CTL (0x36B) +#define TAIKO_A_CDC_COMP0_B4_CTL__POR (0x3C) +#define TAIKO_A_CDC_COMP1_B4_CTL (0x373) +#define TAIKO_A_CDC_COMP1_B4_CTL__POR (0x3C) +#define TAIKO_A_CDC_COMP2_B4_CTL (0x37B) +#define TAIKO_A_CDC_COMP2_B4_CTL__POR (0x3C) +#define TAIKO_A_CDC_COMP0_B5_CTL (0x36C) +#define TAIKO_A_CDC_COMP0_B5_CTL__POR (0x1F) +#define TAIKO_A_CDC_COMP1_B5_CTL (0x374) +#define TAIKO_A_CDC_COMP1_B5_CTL__POR (0x1F) +#define TAIKO_A_CDC_COMP2_B5_CTL (0x37C) +#define TAIKO_A_CDC_COMP2_B5_CTL__POR (0x1F) +#define TAIKO_A_CDC_COMP0_B6_CTL (0x36D) +#define TAIKO_A_CDC_COMP0_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_COMP1_B6_CTL (0x375) +#define TAIKO_A_CDC_COMP1_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_COMP2_B6_CTL (0x37D) +#define TAIKO_A_CDC_COMP2_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_COMP0_SHUT_DOWN_STATUS (0x36E) +#define TAIKO_A_CDC_COMP0_SHUT_DOWN_STATUS__POR (0x03) +#define TAIKO_A_CDC_COMP1_SHUT_DOWN_STATUS (0x376) +#define TAIKO_A_CDC_COMP1_SHUT_DOWN_STATUS__POR (0x03) +#define TAIKO_A_CDC_COMP2_SHUT_DOWN_STATUS (0x37E) +#define TAIKO_A_CDC_COMP2_SHUT_DOWN_STATUS__POR (0x03) +#define TAIKO_A_CDC_COMP0_FS_CFG (0x36F) +#define TAIKO_A_CDC_COMP0_FS_CFG__POR (0x03) +#define TAIKO_A_CDC_COMP1_FS_CFG (0x377) +#define TAIKO_A_CDC_COMP1_FS_CFG__POR (0x03) +#define TAIKO_A_CDC_COMP2_FS_CFG (0x37F) +#define TAIKO_A_CDC_COMP2_FS_CFG__POR (0x03) +#define TAIKO_A_CDC_CONN_RX1_B1_CTL (0x380) +#define TAIKO_A_CDC_CONN_RX1_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX1_B2_CTL (0x381) +#define TAIKO_A_CDC_CONN_RX1_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX1_B3_CTL (0x382) +#define TAIKO_A_CDC_CONN_RX1_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX2_B1_CTL (0x383) +#define TAIKO_A_CDC_CONN_RX2_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX2_B2_CTL (0x384) +#define TAIKO_A_CDC_CONN_RX2_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX2_B3_CTL (0x385) +#define TAIKO_A_CDC_CONN_RX2_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX3_B1_CTL (0x386) +#define TAIKO_A_CDC_CONN_RX3_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX3_B2_CTL (0x387) +#define TAIKO_A_CDC_CONN_RX3_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX4_B1_CTL (0x388) +#define TAIKO_A_CDC_CONN_RX4_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX4_B2_CTL (0x389) +#define TAIKO_A_CDC_CONN_RX4_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX5_B1_CTL (0x38A) +#define TAIKO_A_CDC_CONN_RX5_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX5_B2_CTL (0x38B) +#define TAIKO_A_CDC_CONN_RX5_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX6_B1_CTL (0x38C) +#define TAIKO_A_CDC_CONN_RX6_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX6_B2_CTL (0x38D) +#define TAIKO_A_CDC_CONN_RX6_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX7_B1_CTL (0x38E) +#define TAIKO_A_CDC_CONN_RX7_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX7_B2_CTL (0x38F) +#define TAIKO_A_CDC_CONN_RX7_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX7_B3_CTL (0x390) +#define TAIKO_A_CDC_CONN_RX7_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_ANC_B1_CTL (0x391) +#define TAIKO_A_CDC_CONN_ANC_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_ANC_B2_CTL (0x392) +#define TAIKO_A_CDC_CONN_ANC_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_B1_CTL (0x393) +#define TAIKO_A_CDC_CONN_TX_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_B2_CTL (0x394) +#define TAIKO_A_CDC_CONN_TX_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_B3_CTL (0x395) +#define TAIKO_A_CDC_CONN_TX_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_B4_CTL (0x396) +#define TAIKO_A_CDC_CONN_TX_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ1_B1_CTL (0x397) +#define TAIKO_A_CDC_CONN_EQ1_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ1_B2_CTL (0x398) +#define TAIKO_A_CDC_CONN_EQ1_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ1_B3_CTL (0x399) +#define TAIKO_A_CDC_CONN_EQ1_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ1_B4_CTL (0x39A) +#define TAIKO_A_CDC_CONN_EQ1_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ2_B1_CTL (0x39B) +#define TAIKO_A_CDC_CONN_EQ2_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ2_B2_CTL (0x39C) +#define TAIKO_A_CDC_CONN_EQ2_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ2_B3_CTL (0x39D) +#define TAIKO_A_CDC_CONN_EQ2_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_EQ2_B4_CTL (0x39E) +#define TAIKO_A_CDC_CONN_EQ2_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_SRC1_B1_CTL (0x39F) +#define TAIKO_A_CDC_CONN_SRC1_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_SRC1_B2_CTL (0x3A0) +#define TAIKO_A_CDC_CONN_SRC1_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_SRC2_B1_CTL (0x3A1) +#define TAIKO_A_CDC_CONN_SRC2_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_SRC2_B2_CTL (0x3A2) +#define TAIKO_A_CDC_CONN_SRC2_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B1_CTL (0x3A3) +#define TAIKO_A_CDC_CONN_TX_SB_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B2_CTL (0x3A4) +#define TAIKO_A_CDC_CONN_TX_SB_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B3_CTL (0x3A5) +#define TAIKO_A_CDC_CONN_TX_SB_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B4_CTL (0x3A6) +#define TAIKO_A_CDC_CONN_TX_SB_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B5_CTL (0x3A7) +#define TAIKO_A_CDC_CONN_TX_SB_B5_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B6_CTL (0x3A8) +#define TAIKO_A_CDC_CONN_TX_SB_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B7_CTL (0x3A9) +#define TAIKO_A_CDC_CONN_TX_SB_B7_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B8_CTL (0x3AA) +#define TAIKO_A_CDC_CONN_TX_SB_B8_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B9_CTL (0x3AB) +#define TAIKO_A_CDC_CONN_TX_SB_B9_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B10_CTL (0x3AC) +#define TAIKO_A_CDC_CONN_TX_SB_B10_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_TX_SB_B11_CTL (0x3AD) +#define TAIKO_A_CDC_CONN_TX_SB_B11_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX_SB_B1_CTL (0x3AE) +#define TAIKO_A_CDC_CONN_RX_SB_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_RX_SB_B2_CTL (0x3AF) +#define TAIKO_A_CDC_CONN_RX_SB_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_CLSH_CTL (0x3B0) +#define TAIKO_A_CDC_CONN_CLSH_CTL__POR (0x00) +#define TAIKO_A_CDC_CONN_MISC (0x3B1) +#define TAIKO_A_CDC_CONN_MISC__POR (0x01) +#define TAIKO_A_CDC_CONN_MAD (0x3B2) +#define TAIKO_A_CDC_CONN_MAD__POR (0x01) +#define TAIKO_A_CDC_MBHC_EN_CTL (0x3C0) +#define TAIKO_A_CDC_MBHC_EN_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_FIR_B1_CFG (0x3C1) +#define TAIKO_A_CDC_MBHC_FIR_B1_CFG__POR (0x00) +#define TAIKO_A_CDC_MBHC_FIR_B2_CFG (0x3C2) +#define TAIKO_A_CDC_MBHC_FIR_B2_CFG__POR (0x06) +#define TAIKO_A_CDC_MBHC_TIMER_B1_CTL (0x3C3) +#define TAIKO_A_CDC_MBHC_TIMER_B1_CTL__POR (0x03) +#define TAIKO_A_CDC_MBHC_TIMER_B2_CTL (0x3C4) +#define TAIKO_A_CDC_MBHC_TIMER_B2_CTL__POR (0x09) +#define TAIKO_A_CDC_MBHC_TIMER_B3_CTL (0x3C5) +#define TAIKO_A_CDC_MBHC_TIMER_B3_CTL__POR (0x1E) +#define TAIKO_A_CDC_MBHC_TIMER_B4_CTL (0x3C6) +#define TAIKO_A_CDC_MBHC_TIMER_B4_CTL__POR (0x45) +#define TAIKO_A_CDC_MBHC_TIMER_B5_CTL (0x3C7) +#define TAIKO_A_CDC_MBHC_TIMER_B5_CTL__POR (0x04) +#define TAIKO_A_CDC_MBHC_TIMER_B6_CTL (0x3C8) +#define TAIKO_A_CDC_MBHC_TIMER_B6_CTL__POR (0x78) +#define TAIKO_A_CDC_MBHC_B1_STATUS (0x3C9) +#define TAIKO_A_CDC_MBHC_B1_STATUS__POR (0x00) +#define TAIKO_A_CDC_MBHC_B2_STATUS (0x3CA) +#define TAIKO_A_CDC_MBHC_B2_STATUS__POR (0x00) +#define TAIKO_A_CDC_MBHC_B3_STATUS (0x3CB) +#define TAIKO_A_CDC_MBHC_B3_STATUS__POR (0x00) +#define TAIKO_A_CDC_MBHC_B4_STATUS (0x3CC) +#define TAIKO_A_CDC_MBHC_B4_STATUS__POR (0x00) +#define TAIKO_A_CDC_MBHC_B5_STATUS (0x3CD) +#define TAIKO_A_CDC_MBHC_B5_STATUS__POR (0x00) +#define TAIKO_A_CDC_MBHC_B1_CTL (0x3CE) +#define TAIKO_A_CDC_MBHC_B1_CTL__POR (0xC0) +#define TAIKO_A_CDC_MBHC_B2_CTL (0x3CF) +#define TAIKO_A_CDC_MBHC_B2_CTL__POR (0x5D) +#define TAIKO_A_CDC_MBHC_VOLT_B1_CTL (0x3D0) +#define TAIKO_A_CDC_MBHC_VOLT_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B2_CTL (0x3D1) +#define TAIKO_A_CDC_MBHC_VOLT_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B3_CTL (0x3D2) +#define TAIKO_A_CDC_MBHC_VOLT_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B4_CTL (0x3D3) +#define TAIKO_A_CDC_MBHC_VOLT_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B5_CTL (0x3D4) +#define TAIKO_A_CDC_MBHC_VOLT_B5_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B6_CTL (0x3D5) +#define TAIKO_A_CDC_MBHC_VOLT_B6_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B7_CTL (0x3D6) +#define TAIKO_A_CDC_MBHC_VOLT_B7_CTL__POR (0xFF) +#define TAIKO_A_CDC_MBHC_VOLT_B8_CTL (0x3D7) +#define TAIKO_A_CDC_MBHC_VOLT_B8_CTL__POR (0x07) +#define TAIKO_A_CDC_MBHC_VOLT_B9_CTL (0x3D8) +#define TAIKO_A_CDC_MBHC_VOLT_B9_CTL__POR (0xFF) +#define TAIKO_A_CDC_MBHC_VOLT_B10_CTL (0x3D9) +#define TAIKO_A_CDC_MBHC_VOLT_B10_CTL__POR (0x7F) +#define TAIKO_A_CDC_MBHC_VOLT_B11_CTL (0x3DA) +#define TAIKO_A_CDC_MBHC_VOLT_B11_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_VOLT_B12_CTL (0x3DB) +#define TAIKO_A_CDC_MBHC_VOLT_B12_CTL__POR (0x80) +#define TAIKO_A_CDC_MBHC_CLK_CTL (0x3DC) +#define TAIKO_A_CDC_MBHC_CLK_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_INT_CTL (0x3DD) +#define TAIKO_A_CDC_MBHC_INT_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_DEBUG_CTL (0x3DE) +#define TAIKO_A_CDC_MBHC_DEBUG_CTL__POR (0x00) +#define TAIKO_A_CDC_MBHC_SPARE (0x3DF) +#define TAIKO_A_CDC_MBHC_SPARE__POR (0x00) +#define TAIKO_A_CDC_MAD_MAIN_CTL_1 (0x3E0) +#define TAIKO_A_CDC_MAD_MAIN_CTL_1__POR (0x00) +#define TAIKO_A_CDC_MAD_MAIN_CTL_2 (0x3E1) +#define TAIKO_A_CDC_MAD_MAIN_CTL_2__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_1 (0x3E2) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_1__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_2 (0x3E3) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_2__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_3 (0x3E4) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_3__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_4 (0x3E5) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_4__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_5 (0x3E6) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_5__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_6 (0x3E7) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_6__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_7 (0x3E8) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_7__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_8 (0x3E9) +#define TAIKO_A_CDC_MAD_AUDIO_CTL_8__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_IIR_CTL_PTR (0x3EA) +#define TAIKO_A_CDC_MAD_AUDIO_IIR_CTL_PTR__POR (0x00) +#define TAIKO_A_CDC_MAD_AUDIO_IIR_CTL_VAL (0x3EB) +#define TAIKO_A_CDC_MAD_AUDIO_IIR_CTL_VAL__POR (0x40) +#define TAIKO_A_CDC_MAD_ULTR_CTL_1 (0x3EC) +#define TAIKO_A_CDC_MAD_ULTR_CTL_1__POR (0x00) +#define TAIKO_A_CDC_MAD_ULTR_CTL_2 (0x3ED) +#define TAIKO_A_CDC_MAD_ULTR_CTL_2__POR (0x00) +#define TAIKO_A_CDC_MAD_ULTR_CTL_3 (0x3EE) +#define TAIKO_A_CDC_MAD_ULTR_CTL_3__POR (0x00) +#define TAIKO_A_CDC_MAD_ULTR_CTL_4 (0x3EF) +#define TAIKO_A_CDC_MAD_ULTR_CTL_4__POR (0x00) +#define TAIKO_A_CDC_MAD_ULTR_CTL_5 (0x3F0) +#define TAIKO_A_CDC_MAD_ULTR_CTL_5__POR (0x00) +#define TAIKO_A_CDC_MAD_ULTR_CTL_6 (0x3F1) +#define TAIKO_A_CDC_MAD_ULTR_CTL_6__POR (0x00) +#define TAIKO_A_CDC_MAD_ULTR_CTL_7 (0x3F2) +#define TAIKO_A_CDC_MAD_ULTR_CTL_7__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_1 (0x3F3) +#define TAIKO_A_CDC_MAD_BEACON_CTL_1__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_2 (0x3F4) +#define TAIKO_A_CDC_MAD_BEACON_CTL_2__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_3 (0x3F5) +#define TAIKO_A_CDC_MAD_BEACON_CTL_3__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_4 (0x3F6) +#define TAIKO_A_CDC_MAD_BEACON_CTL_4__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_5 (0x3F7) +#define TAIKO_A_CDC_MAD_BEACON_CTL_5__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_6 (0x3F8) +#define TAIKO_A_CDC_MAD_BEACON_CTL_6__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_7 (0x3F9) +#define TAIKO_A_CDC_MAD_BEACON_CTL_7__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_CTL_8 (0x3FA) +#define TAIKO_A_CDC_MAD_BEACON_CTL_8__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_IIR_CTL_PTR (0x3FB) +#define TAIKO_A_CDC_MAD_BEACON_IIR_CTL_PTR__POR (0x00) +#define TAIKO_A_CDC_MAD_BEACON_IIR_CTL_VAL (0x3FC) +#define TAIKO_A_CDC_MAD_BEACON_IIR_CTL_VAL__POR (0x00) + +/* Taiko v2+ registers */ +#define TAIKO_A_CDC_TX_1_GAIN (0x153) +#define TAIKO_A_CDC_TX_1_GAIN__POR (0x02) +#define TAIKO_A_CDC_TX_2_GAIN (0x155) +#define TAIKO_A_CDC_TX_2_GAIN__POR (0x02) +#define TAIKO_A_CDC_TX_1_2_ADC_IB (0x156) +#define TAIKO_A_CDC_TX_1_2_ADC_IB__POR (0x44) +#define TAIKO_A_CDC_TX_3_GAIN (0x15D) +#define TAIKO_A_CDC_TX_3_GAIN__POR (0x02) +#define TAIKO_A_CDC_TX_4_GAIN (0x15F) +#define TAIKO_A_CDC_TX_4_GAIN__POR (0x02) +#define TAIKO_A_CDC_TX_3_4_ADC_IB (0x160) +#define TAIKO_A_CDC_TX_3_4_ADC_IB__POR (0x44) +#define TAIKO_A_CDC_TX_5_GAIN (0x167) +#define TAIKO_A_CDC_TX_5_GAIN__POR (0x02) +#define TAIKO_A_CDC_TX_6_GAIN (0x169) +#define TAIKO_A_CDC_TX_6_GAIN__POR (0x02) +#define TAIKO_A_CDC_TX_5_6_ADC_IB (0x16A) +#define TAIKO_A_CDC_TX_5_6_ADC_IB__POR (0x44) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL0 (0x270) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL0__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL1 (0x271) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL1__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL2 (0x272) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL2__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL3 (0x273) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL3__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL4 (0x274) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL4__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL5 (0x275) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL5__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL6 (0x276) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL6__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL7 (0x277) +#define TAIKO_A_CDC_SPKR_CLIPDET_VAL7__POR (0x00) +#define TAIKO_A_CDC_VBAT_GAIN_UPD_MON (0x2FA) +#define TAIKO_A_CDC_VBAT_GAIN_UPD_MON__POR (0x00) +#define TAIKO_A_CDC_VBAT_GAIN_MON_VAL (0x2FB) +#define TAIKO_A_CDC_VBAT_GAIN_MON_VAL__POR (0x00) +#define TAIKO_A_CDC_PA_RAMP_B1_CTL (0x361) +#define TAIKO_A_CDC_PA_RAMP_B1_CTL__POR (0x00) +#define TAIKO_A_CDC_PA_RAMP_B2_CTL (0x362) +#define TAIKO_A_CDC_PA_RAMP_B2_CTL__POR (0x00) +#define TAIKO_A_CDC_PA_RAMP_B3_CTL (0x363) +#define TAIKO_A_CDC_PA_RAMP_B3_CTL__POR (0x00) +#define TAIKO_A_CDC_PA_RAMP_B4_CTL (0x364) +#define TAIKO_A_CDC_PA_RAMP_B4_CTL__POR (0x00) +#define TAIKO_A_CDC_SPKR_CLIPDET_B1_CTL (0x365) +#define TAIKO_A_CDC_SPKR_CLIPDET_B1_CTL__POR (0x00) + +/* SLIMBUS Slave Registers */ +#define TAIKO_SLIM_PGD_PORT_INT_EN0 (0x30) +#define TAIKO_SLIM_PGD_PORT_INT_STATUS_RX_0 (0x34) +#define TAIKO_SLIM_PGD_PORT_INT_STATUS_RX_1 (0x35) +#define TAIKO_SLIM_PGD_PORT_INT_STATUS_TX_0 (0x36) +#define TAIKO_SLIM_PGD_PORT_INT_STATUS_TX_1 (0x37) +#define TAIKO_SLIM_PGD_PORT_INT_CLR_RX_0 (0x38) +#define TAIKO_SLIM_PGD_PORT_INT_CLR_RX_1 (0x39) +#define TAIKO_SLIM_PGD_PORT_INT_CLR_TX_0 (0x3A) +#define TAIKO_SLIM_PGD_PORT_INT_CLR_TX_1 (0x3B) +#define TAIKO_SLIM_PGD_PORT_INT_RX_SOURCE0 (0x60) +#define TAIKO_SLIM_PGD_PORT_INT_TX_SOURCE0 (0x70) + +/* Macros for Packing Register Writes into a U32 */ +#define TAIKO_PACKED_REG_SIZE sizeof(u32) + +#define TAIKO_CODEC_PACK_ENTRY(reg, mask, val) ((val & 0xff)|\ + ((mask & 0xff) << 8)|((reg & 0xffff) << 16)) + +#define TAIKO_CODEC_UNPACK_ENTRY(packed, reg, mask, val) \ + do { \ + ((reg) = ((packed >> 16) & (0xffff))); \ + ((mask) = ((packed >> 8) & (0xff))); \ + ((val) = ((packed) & (0xff))); \ + } while (0); + +#endif diff --git a/kernel_headers/linux/mfd/wcd9xxx/wcd9xxx_registers.h b/kernel_headers/linux/mfd/wcd9xxx/wcd9xxx_registers.h new file mode 100644 index 0000000..2ccb4bd --- /dev/null +++ b/kernel_headers/linux/mfd/wcd9xxx/wcd9xxx_registers.h @@ -0,0 +1,322 @@ +#ifndef WCD9XXX_CODEC_DIGITAL_H + +#define WCD9XXX_CODEC_DIGITAL_H + +#define WCD9XXX_A_CHIP_CTL (0x00) +#define WCD9XXX_A_CHIP_CTL__POR (0x00000000) +#define WCD9XXX_A_CHIP_STATUS (0x01) +#define WCD9XXX_A_CHIP_STATUS__POR (0x00000000) +#define WCD9XXX_A_CHIP_ID_BYTE_0 (0x04) +#define WCD9XXX_A_CHIP_ID_BYTE_0__POR (0x00000000) +#define WCD9XXX_A_CHIP_ID_BYTE_1 (0x05) +#define WCD9XXX_A_CHIP_ID_BYTE_1__POR (0x00000000) +#define WCD9XXX_A_CHIP_ID_BYTE_2 (0x06) +#define WCD9XXX_A_CHIP_ID_BYTE_2__POR (0x00000000) +#define WCD9XXX_A_CHIP_ID_BYTE_3 (0x07) +#define WCD9XXX_A_CHIP_ID_BYTE_3__POR (0x00000001) +#define WCD9XXX_A_CHIP_VERSION (0x08) +#define WCD9XXX_A_CHIP_VERSION__POR (0x00000020) +#define WCD9XXX_A_SB_VERSION (0x09) +#define WCD9XXX_A_SB_VERSION__POR (0x00000010) +#define WCD9XXX_A_SLAVE_ID_1 (0x0C) +#define WCD9XXX_A_SLAVE_ID_1__POR (0x00000077) +#define WCD9XXX_A_SLAVE_ID_2 (0x0D) +#define WCD9XXX_A_SLAVE_ID_2__POR (0x00000066) +#define WCD9XXX_A_SLAVE_ID_3 (0x0E) +#define WCD9XXX_A_SLAVE_ID_3__POR (0x00000055) +#define WCD9XXX_A_CDC_CTL (0x80) +#define WCD9XXX_A_CDC_CTL__POR (0x00000000) +#define WCD9XXX_A_LEAKAGE_CTL (0x88) +#define WCD9XXX_A_LEAKAGE_CTL__POR (0x00000004) +#define WCD9XXX_A_INTR_MODE (0x90) +#define WCD9XXX_A_INTR_MASK0 (0x94) +#define WCD9XXX_A_INTR_STATUS0 (0x98) +#define WCD9XXX_A_INTR_CLEAR0 (0x9C) +#define WCD9XXX_A_INTR_LEVEL0 (0xA0) +#define WCD9XXX_A_INTR_LEVEL1 (0xA1) +#define WCD9XXX_A_INTR_LEVEL2 (0xA2) +#define WCD9XXX_A_RX_HPH_CNP_EN (0x1AB) +#define WCD9XXX_A_RX_HPH_CNP_EN__POR (0x80) +#define WCD9XXX_A_RX_HPH_CNP_EN (0x1AB) +#define WCD9XXX_A_RX_HPH_CNP_EN__POR (0x80) +#define WCD9XXX_A_BIAS_CENTRAL_BG_CTL (0x101) +#define WCD9XXX_A_BIAS_CENTRAL_BG_CTL__POR (0x50) +#define WCD9XXX_A_CLK_BUFF_EN1 (0x108) +#define WCD9XXX_A_CLK_BUFF_EN1__POR (0x04) +#define WCD9XXX_A_CLK_BUFF_EN2 (0x109) +#define WCD9XXX_A_CLK_BUFF_EN2__POR (0x02) +#define WCD9XXX_A_RX_COM_BIAS (0x1A2) +#define WCD9XXX_A_RX_COM_BIAS__POR (0x00) +#define WCD9XXX_A_RC_OSC_FREQ (0x1FA) +#define WCD9XXX_A_RC_OSC_FREQ__POR (0x46) +#define WCD9XXX_A_BIAS_OSC_BG_CTL (0x105) +#define WCD9XXX_A_BIAS_OSC_BG_CTL__POR (0x16) +#define WCD9XXX_A_RC_OSC_TEST (0x1FB) +#define WCD9XXX_A_RC_OSC_TEST__POR (0x0A) +#define WCD9XXX_A_CDC_CLK_MCLK_CTL (0x311) +#define WCD9XXX_A_CDC_CLK_MCLK_CTL__POR (0x00) + +#define WCD9XXX_A_CDC_MBHC_EN_CTL (0x3C0) +#define WCD9XXX_A_CDC_MBHC_EN_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_FIR_B1_CFG (0x3C1) +#define WCD9XXX_A_CDC_MBHC_FIR_B1_CFG__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_FIR_B2_CFG (0x3C2) +#define WCD9XXX_A_CDC_MBHC_FIR_B2_CFG__POR (0x06) +#define WCD9XXX_A_CDC_MBHC_TIMER_B1_CTL (0x3C3) +#define WCD9XXX_A_CDC_MBHC_TIMER_B1_CTL__POR (0x03) +#define WCD9XXX_A_CDC_MBHC_TIMER_B2_CTL (0x3C4) +#define WCD9XXX_A_CDC_MBHC_TIMER_B2_CTL__POR (0x09) +#define WCD9XXX_A_CDC_MBHC_TIMER_B3_CTL (0x3C5) +#define WCD9XXX_A_CDC_MBHC_TIMER_B3_CTL__POR (0x1E) +#define WCD9XXX_A_CDC_MBHC_TIMER_B4_CTL (0x3C6) +#define WCD9XXX_A_CDC_MBHC_TIMER_B4_CTL__POR (0x45) +#define WCD9XXX_A_CDC_MBHC_TIMER_B5_CTL (0x3C7) +#define WCD9XXX_A_CDC_MBHC_TIMER_B5_CTL__POR (0x04) +#define WCD9XXX_A_CDC_MBHC_TIMER_B6_CTL (0x3C8) +#define WCD9XXX_A_CDC_MBHC_TIMER_B6_CTL__POR (0x78) +#define WCD9XXX_A_CDC_MBHC_B1_STATUS (0x3C9) +#define WCD9XXX_A_CDC_MBHC_B1_STATUS__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_B2_STATUS (0x3CA) +#define WCD9XXX_A_CDC_MBHC_B2_STATUS__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_B3_STATUS (0x3CB) +#define WCD9XXX_A_CDC_MBHC_B3_STATUS__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_B4_STATUS (0x3CC) +#define WCD9XXX_A_CDC_MBHC_B4_STATUS__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_B5_STATUS (0x3CD) +#define WCD9XXX_A_CDC_MBHC_B5_STATUS__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_B1_CTL (0x3CE) +#define WCD9XXX_A_CDC_MBHC_B1_CTL__POR (0xC0) +#define WCD9XXX_A_CDC_MBHC_B2_CTL (0x3CF) +#define WCD9XXX_A_CDC_MBHC_B2_CTL__POR (0x5D) +#define WCD9XXX_A_CDC_MBHC_VOLT_B1_CTL (0x3D0) +#define WCD9XXX_A_CDC_MBHC_VOLT_B1_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B2_CTL (0x3D1) +#define WCD9XXX_A_CDC_MBHC_VOLT_B2_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B3_CTL (0x3D2) +#define WCD9XXX_A_CDC_MBHC_VOLT_B3_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B4_CTL (0x3D3) +#define WCD9XXX_A_CDC_MBHC_VOLT_B4_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B5_CTL (0x3D4) +#define WCD9XXX_A_CDC_MBHC_VOLT_B5_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B6_CTL (0x3D5) +#define WCD9XXX_A_CDC_MBHC_VOLT_B6_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B7_CTL (0x3D6) +#define WCD9XXX_A_CDC_MBHC_VOLT_B7_CTL__POR (0xFF) +#define WCD9XXX_A_CDC_MBHC_VOLT_B8_CTL (0x3D7) +#define WCD9XXX_A_CDC_MBHC_VOLT_B8_CTL__POR (0x07) +#define WCD9XXX_A_CDC_MBHC_VOLT_B9_CTL (0x3D8) +#define WCD9XXX_A_CDC_MBHC_VOLT_B9_CTL__POR (0xFF) +#define WCD9XXX_A_CDC_MBHC_VOLT_B10_CTL (0x3D9) +#define WCD9XXX_A_CDC_MBHC_VOLT_B10_CTL__POR (0x7F) +#define WCD9XXX_A_CDC_MBHC_VOLT_B11_CTL (0x3DA) +#define WCD9XXX_A_CDC_MBHC_VOLT_B11_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_VOLT_B12_CTL (0x3DB) +#define WCD9XXX_A_CDC_MBHC_VOLT_B12_CTL__POR (0x80) +#define WCD9XXX_A_CDC_MBHC_CLK_CTL (0x3DC) +#define WCD9XXX_A_CDC_MBHC_CLK_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_INT_CTL (0x3DD) +#define WCD9XXX_A_CDC_MBHC_INT_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_DEBUG_CTL (0x3DE) +#define WCD9XXX_A_CDC_MBHC_DEBUG_CTL__POR (0x00) +#define WCD9XXX_A_CDC_MBHC_SPARE (0x3DF) +#define WCD9XXX_A_CDC_MBHC_SPARE__POR (0x00) +#define WCD9XXX_A_MBHC_SCALING_MUX_1 (0x14E) +#define WCD9XXX_A_MBHC_SCALING_MUX_1__POR (0x00) +#define WCD9XXX_A_RX_HPH_OCP_CTL (0x1AA) +#define WCD9XXX_A_RX_HPH_OCP_CTL__POR (0x68) +#define WCD9XXX_A_MICB_1_CTL (0x12B) +#define WCD9XXX_A_MICB_1_CTL__POR (0x16) +#define WCD9XXX_A_MICB_1_INT_RBIAS (0x12C) +#define WCD9XXX_A_MICB_1_INT_RBIAS__POR (0x24) +#define WCD9XXX_A_MICB_1_MBHC (0x12D) +#define WCD9XXX_A_MICB_1_MBHC__POR (0x01) +#define WCD9XXX_A_MICB_CFILT_2_CTL (0x12E) +#define WCD9XXX_A_MICB_CFILT_2_CTL__POR (0x40) +#define WCD9XXX_A_MICB_CFILT_2_VAL (0x12F) +#define WCD9XXX_A_MICB_CFILT_2_VAL__POR (0x80) +#define WCD9XXX_A_MICB_CFILT_2_PRECHRG (0x130) +#define WCD9XXX_A_MICB_CFILT_2_PRECHRG__POR (0x38) +#define WCD9XXX_A_MICB_2_CTL (0x131) +#define WCD9XXX_A_MICB_2_CTL__POR (0x16) +#define WCD9XXX_A_MICB_2_INT_RBIAS (0x132) +#define WCD9XXX_A_MICB_2_INT_RBIAS__POR (0x24) +#define WCD9XXX_A_MICB_2_MBHC (0x133) +#define WCD9XXX_A_MICB_2_MBHC__POR (0x02) +#define WCD9XXX_A_MICB_CFILT_3_CTL (0x134) +#define WCD9XXX_A_MICB_CFILT_3_CTL__POR (0x40) +#define WCD9XXX_A_MICB_CFILT_3_VAL (0x135) +#define WCD9XXX_A_MICB_CFILT_3_VAL__POR (0x80) +#define WCD9XXX_A_MICB_CFILT_3_PRECHRG (0x136) +#define WCD9XXX_A_MICB_CFILT_3_PRECHRG__POR (0x38) +#define WCD9XXX_A_MICB_3_CTL (0x137) +#define WCD9XXX_A_MICB_3_CTL__POR (0x16) +#define WCD9XXX_A_MICB_3_INT_RBIAS (0x138) +#define WCD9XXX_A_MICB_3_INT_RBIAS__POR (0x24) +#define WCD9XXX_A_MICB_3_MBHC (0x139) +#define WCD9XXX_A_MICB_3_MBHC__POR (0x00) +#define WCD9XXX_A_MICB_4_CTL (0x13D) +#define WCD9XXX_A_MICB_4_CTL__POR (0x16) +#define WCD9XXX_A_MICB_4_INT_RBIAS (0x13E) +#define WCD9XXX_A_MICB_4_INT_RBIAS__POR (0x24) +#define WCD9XXX_A_MICB_4_MBHC (0x13F) +#define WCD9XXX_A_MICB_4_MBHC__POR (0x01) +#define WCD9XXX_A_MICB_CFILT_1_VAL (0x129) +#define WCD9XXX_A_MICB_CFILT_1_VAL__POR (0x80) +#define WCD9XXX_A_RX_HPH_L_STATUS (0x1B3) +#define WCD9XXX_A_RX_HPH_L_STATUS__POR (0x00) +#define WCD9XXX_A_MBHC_HPH (0x1FE) +#define WCD9XXX_A_MBHC_HPH__POR (0x44) +#define WCD9XXX_A_RX_HPH_CNP_WG_TIME (0x1AD) +#define WCD9XXX_A_RX_HPH_CNP_WG_TIME__POR (0x2A) +#define WCD9XXX_A_RX_HPH_R_DAC_CTL (0x1B7) +#define WCD9XXX_A_RX_HPH_R_DAC_CTL__POR (0x00) +#define WCD9XXX_A_RX_HPH_L_DAC_CTL (0x1B1) +#define WCD9XXX_A_RX_HPH_L_DAC_CTL__POR (0x00) +#define WCD9XXX_A_TX_7_MBHC_EN (0x171) +#define WCD9XXX_A_TX_7_MBHC_EN__POR (0x0C) +#define WCD9XXX_A_PIN_CTL_OE0 (0x010) +#define WCD9XXX_A_PIN_CTL_OE0__POR (0x00) +#define WCD9XXX_A_PIN_CTL_OE1 (0x011) +#define WCD9XXX_A_PIN_CTL_OE1__POR (0x00) +#define WCD9XXX_A_MICB_CFILT_1_CTL (0x128) +#define WCD9XXX_A_LDO_H_MODE_1 (0x110) +#define WCD9XXX_A_LDO_H_MODE_1__POR (0x65) +#define WCD9XXX_A_MICB_CFILT_1_CTL__POR (0x40) +#define WCD9XXX_A_TX_7_MBHC_TEST_CTL (0x174) +#define WCD9XXX_A_TX_7_MBHC_TEST_CTL__POR (0x38) +#define WCD9XXX_A_MBHC_SCALING_MUX_2 (0x14F) +#define WCD9XXX_A_MBHC_SCALING_MUX_2__POR (0x80) +#define WCD9XXX_A_TX_COM_BIAS (0x14C) +#define WCD9XXX_A_TX_COM_BIAS__POR (0xF0) + +#define WCD9XXX_A_MBHC_INSERT_DETECT (0x14A) /* TAIKO and later */ +#define WCD9XXX_A_MBHC_INSERT_DETECT__POR (0x00) +#define WCD9XXX_A_MBHC_INSERT_DET_STATUS (0x14B) /* TAIKO and later */ +#define WCD9XXX_A_MBHC_INSERT_DET_STATUS__POR (0x00) +#define WCD9XXX_A_MAD_ANA_CTRL (0x150) +#define WCD9XXX_A_MAD_ANA_CTRL__POR (0xF1) + + +#define WCD9XXX_A_CDC_CLK_OTHR_CTL (0x30C) +#define WCD9XXX_A_CDC_CLK_OTHR_CTL__POR (0x00) + +/* Class H related common registers */ +#define WCD9XXX_A_BUCK_MODE_1 (0x181) +#define WCD9XXX_A_BUCK_MODE_1__POR (0x21) +#define WCD9XXX_A_BUCK_MODE_2 (0x182) +#define WCD9XXX_A_BUCK_MODE_2__POR (0xFF) +#define WCD9XXX_A_BUCK_MODE_3 (0x183) +#define WCD9XXX_A_BUCK_MODE_3__POR (0xCC) +#define WCD9XXX_A_BUCK_MODE_4 (0x184) +#define WCD9XXX_A_BUCK_MODE_4__POR (0x3A) +#define WCD9XXX_A_BUCK_MODE_5 (0x185) +#define WCD9XXX_A_BUCK_MODE_5__POR (0x00) +#define WCD9XXX_A_BUCK_CTRL_VCL_1 (0x186) +#define WCD9XXX_A_BUCK_CTRL_VCL_1__POR (0x48) +#define WCD9XXX_A_BUCK_CTRL_VCL_2 (0x187) +#define WCD9XXX_A_BUCK_CTRL_VCL_2__POR (0xA3) +#define WCD9XXX_A_BUCK_CTRL_VCL_3 (0x188) +#define WCD9XXX_A_BUCK_CTRL_VCL_3__POR (0x82) +#define WCD9XXX_A_BUCK_CTRL_CCL_1 (0x189) +#define WCD9XXX_A_BUCK_CTRL_CCL_1__POR (0xAB) +#define WCD9XXX_A_BUCK_CTRL_CCL_2 (0x18A) +#define WCD9XXX_A_BUCK_CTRL_CCL_2__POR (0xDC) +#define WCD9XXX_A_BUCK_CTRL_CCL_3 (0x18B) +#define WCD9XXX_A_BUCK_CTRL_CCL_3__POR (0x6A) +#define WCD9XXX_A_BUCK_CTRL_CCL_4 (0x18C) +#define WCD9XXX_A_BUCK_CTRL_CCL_4__POR (0x58) +#define WCD9XXX_A_BUCK_CTRL_PWM_DRVR_1 (0x18D) +#define WCD9XXX_A_BUCK_CTRL_PWM_DRVR_1__POR (0x50) +#define WCD9XXX_A_BUCK_CTRL_PWM_DRVR_2 (0x18E) +#define WCD9XXX_A_BUCK_CTRL_PWM_DRVR_2__POR (0x64) +#define WCD9XXX_A_BUCK_CTRL_PWM_DRVR_3 (0x18F) +#define WCD9XXX_A_BUCK_CTRL_PWM_DRVR_3__POR (0x77) +#define WCD9XXX_A_BUCK_TMUX_A_D (0x190) +#define WCD9XXX_A_BUCK_TMUX_A_D__POR (0x00) +#define WCD9XXX_A_NCP_EN (0x192) +#define WCD9XXX_A_NCP_EN__POR (0xFE) +#define WCD9XXX_A_NCP_STATIC (0x194) +#define WCD9XXX_A_NCP_STATIC__POR (0x28) +#define WCD9XXX_A_NCP_BUCKREF (0x191) +#define WCD9XXX_A_NCP_BUCKREF__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_B1_CTL (0x320) +#define WCD9XXX_A_CDC_CLSH_B1_CTL__POR (0xE4) +#define WCD9XXX_A_CDC_CLSH_B2_CTL (0x321) +#define WCD9XXX_A_CDC_CLSH_B2_CTL__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_B3_CTL (0x322) +#define WCD9XXX_A_CDC_CLSH_B3_CTL__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_BUCK_NCP_VARS (0x323) +#define WCD9XXX_A_CDC_CLSH_BUCK_NCP_VARS__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_IDLE_HPH_THSD (0x324) +#define WCD9XXX_A_CDC_CLSH_IDLE_HPH_THSD__POR (0x12) +#define WCD9XXX_A_CDC_CLSH_IDLE_EAR_THSD (0x325) +#define WCD9XXX_A_CDC_CLSH_IDLE_EAR_THSD__POR (0x0C) +#define WCD9XXX_A_CDC_CLSH_FCLKONLY_HPH_THSD (0x326) +#define WCD9XXX_A_CDC_CLSH_FCLKONLY_HPH_THSD__POR (0x18) +#define WCD9XXX_A_CDC_CLSH_FCLKONLY_EAR_THSD (0x327) +#define WCD9XXX_A_CDC_CLSH_FCLKONLY_EAR_THSD__POR (0x23) +#define WCD9XXX_A_CDC_CLSH_K_ADDR (0x328) +#define WCD9XXX_A_CDC_CLSH_K_ADDR__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_K_DATA (0x329) +#define WCD9XXX_A_CDC_CLSH_K_DATA__POR (0xA4) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_HPH_L (0x32A) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_HPH_L__POR (0xD7) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_HPH_U (0x32B) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_HPH_U__POR (0x05) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_EAR_L (0x32C) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_EAR_L__POR (0x60) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_EAR_U (0x32D) +#define WCD9XXX_A_CDC_CLSH_I_PA_FACT_EAR_U__POR (0x09) +#define WCD9XXX_A_CDC_CLSH_V_PA_HD_EAR (0x32E) +#define WCD9XXX_A_CDC_CLSH_V_PA_HD_EAR__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_V_PA_HD_HPH (0x32F) +#define WCD9XXX_A_CDC_CLSH_V_PA_HD_HPH__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_V_PA_MIN_EAR (0x330) +#define WCD9XXX_A_CDC_CLSH_V_PA_MIN_EAR__POR (0x00) +#define WCD9XXX_A_CDC_CLSH_V_PA_MIN_HPH (0x331) +#define WCD9XXX_A_CDC_CLSH_V_PA_MIN_HPH__POR (0x00) + +#define WCD9XXX_A_CDC_RX1_B6_CTL (0x2B5) +#define WCD9XXX_A_CDC_RX1_B6_CTL__POR (0x80) +#define WCD9XXX_A_CDC_RX2_B6_CTL (0x2BD) +#define WCD9XXX_A_CDC_RX2_B6_CTL__POR (0x80) +#define WCD9XXX_A_RX_HPH_L_GAIN (0x1AE) +#define WCD9XXX_A_RX_HPH_L_GAIN__POR (0x00) +#define WCD9XXX_A_RX_HPH_R_GAIN (0x1B4) +#define WCD9XXX_A_RX_HPH_R_GAIN__POR (0x00) +#define WCD9XXX_A_RX_HPH_CHOP_CTL (0x1A5) +#define WCD9XXX_A_RX_HPH_CHOP_CTL__POR (0xB4) +#define WCD9XXX_A_RX_HPH_BIAS_PA (0x1A6) +#define WCD9XXX_A_RX_HPH_BIAS_PA__POR (0x7A) +#define WCD9XXX_A_RX_HPH_L_TEST (0x1AF) +#define WCD9XXX_A_RX_HPH_L_TEST__POR (0x00) +#define WCD9XXX_A_RX_HPH_R_TEST (0x1B5) +#define WCD9XXX_A_RX_HPH_R_TEST__POR (0x00) +#define WCD9XXX_A_CDC_CLK_RX_B1_CTL (0x30F) +#define WCD9XXX_A_CDC_CLK_RX_B1_CTL__POR (0x00) +#define WCD9XXX_A_NCP_CLK (0x193) +#define WCD9XXX_A_NCP_CLK__POR (0x94) +#define WCD9XXX_A_RX_HPH_BIAS_WG_OCP (0x1A9) +#define WCD9XXX_A_RX_HPH_BIAS_WG_OCP__POR (0x2A) +#define WCD9XXX_A_RX_HPH_CNP_WG_CTL (0x1AC) +#define WCD9XXX_A_RX_HPH_CNP_WG_CTL__POR (0xDE) +#define WCD9XXX_A_RX_HPH_L_PA_CTL (0x1B0) +#define WCD9XXX_A_RX_HPH_L_PA_CTL__POR (0x42) +#define WCD9XXX_A_RX_HPH_R_PA_CTL (0x1B6) +#define WCD9XXX_A_RX_HPH_R_PA_CTL__POR (0x42) +#define WCD9XXX_A_CDC_CONN_RX2_B1_CTL (0x383) +#define WCD9XXX_A_CDC_CONN_RX2_B1_CTL__POR (0x00) +#define WCD9XXX_A_CDC_PA_RAMP_B1_CTL (0x361) +#define WCD9XXX_A_CDC_PA_RAMP_B1_CTL__POR (0x00) +#define WCD9XXX_A_CDC_PA_RAMP_B2_CTL (0x362) +#define WCD9XXX_A_CDC_PA_RAMP_B2_CTL__POR (0x00) +#define WCD9XXX_A_CDC_PA_RAMP_B3_CTL (0x363) +#define WCD9XXX_A_CDC_PA_RAMP_B3_CTL__POR (0x00) +#define WCD9XXX_A_CDC_PA_RAMP_B4_CTL (0x364) +#define WCD9XXX_A_CDC_PA_RAMP_B4_CTL__POR (0x00) + +#define WCD9330_A_LEAKAGE_CTL (0x03C) +#define WCD9330_A_LEAKAGE_CTL__POR (0x04) +#define WCD9330_A_CDC_CTL (0x034) +#define WCD9330_A_CDC_CTL__POR (0x00) +#endif diff --git a/kernel_headers/linux/mii.h b/kernel_headers/linux/mii.h new file mode 100644 index 0000000..c75eea1 --- /dev/null +++ b/kernel_headers/linux/mii.h @@ -0,0 +1,161 @@ +/* + * linux/mii.h: definitions for MII-compatible transceivers + * Originally drivers/net/sunhme.h. + * + * Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com) + */ + +#ifndef __LINUX_MII_H__ +#define __LINUX_MII_H__ + +#include +#include + +/* Generic MII registers. */ +#define MII_BMCR 0x00 /* Basic mode control register */ +#define MII_BMSR 0x01 /* Basic mode status register */ +#define MII_PHYSID1 0x02 /* PHYS ID 1 */ +#define MII_PHYSID2 0x03 /* PHYS ID 2 */ +#define MII_ADVERTISE 0x04 /* Advertisement control reg */ +#define MII_LPA 0x05 /* Link partner ability reg */ +#define MII_EXPANSION 0x06 /* Expansion register */ +#define MII_CTRL1000 0x09 /* 1000BASE-T control */ +#define MII_STAT1000 0x0a /* 1000BASE-T status */ +#define MII_MMD_CTRL 0x0d /* MMD Access Control Register */ +#define MII_MMD_DATA 0x0e /* MMD Access Data Register */ +#define MII_ESTATUS 0x0f /* Extended Status */ +#define MII_DCOUNTER 0x12 /* Disconnect counter */ +#define MII_FCSCOUNTER 0x13 /* False carrier counter */ +#define MII_NWAYTEST 0x14 /* N-way auto-neg test reg */ +#define MII_RERRCOUNTER 0x15 /* Receive error counter */ +#define MII_SREVISION 0x16 /* Silicon revision */ +#define MII_RESV1 0x17 /* Reserved... */ +#define MII_LBRERROR 0x18 /* Lpback, rx, bypass error */ +#define MII_PHYADDR 0x19 /* PHY address */ +#define MII_RESV2 0x1a /* Reserved... */ +#define MII_TPISTATUS 0x1b /* TPI status for 10mbps */ +#define MII_NCONFIG 0x1c /* Network interface config */ + +/* Basic mode control register. */ +#define BMCR_RESV 0x003f /* Unused... */ +#define BMCR_SPEED1000 0x0040 /* MSB of Speed (1000) */ +#define BMCR_CTST 0x0080 /* Collision test */ +#define BMCR_FULLDPLX 0x0100 /* Full duplex */ +#define BMCR_ANRESTART 0x0200 /* Auto negotiation restart */ +#define BMCR_ISOLATE 0x0400 /* Isolate data paths from MII */ +#define BMCR_PDOWN 0x0800 /* Enable low power state */ +#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */ +#define BMCR_SPEED100 0x2000 /* Select 100Mbps */ +#define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */ +#define BMCR_RESET 0x8000 /* Reset to default state */ + +/* Basic mode status register. */ +#define BMSR_ERCAP 0x0001 /* Ext-reg capability */ +#define BMSR_JCD 0x0002 /* Jabber detected */ +#define BMSR_LSTATUS 0x0004 /* Link status */ +#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */ +#define BMSR_RFAULT 0x0010 /* Remote fault detected */ +#define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */ +#define BMSR_RESV 0x00c0 /* Unused... */ +#define BMSR_ESTATEN 0x0100 /* Extended Status in R15 */ +#define BMSR_100HALF2 0x0200 /* Can do 100BASE-T2 HDX */ +#define BMSR_100FULL2 0x0400 /* Can do 100BASE-T2 FDX */ +#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */ +#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */ +#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */ +#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */ +#define BMSR_100BASE4 0x8000 /* Can do 100mbps, 4k packets */ + +/* Advertisement control register. */ +#define ADVERTISE_SLCT 0x001f /* Selector bits */ +#define ADVERTISE_CSMA 0x0001 /* Only selector supported */ +#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */ +#define ADVERTISE_1000XFULL 0x0020 /* Try for 1000BASE-X full-duplex */ +#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */ +#define ADVERTISE_1000XHALF 0x0040 /* Try for 1000BASE-X half-duplex */ +#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */ +#define ADVERTISE_1000XPAUSE 0x0080 /* Try for 1000BASE-X pause */ +#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */ +#define ADVERTISE_1000XPSE_ASYM 0x0100 /* Try for 1000BASE-X asym pause */ +#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */ +#define ADVERTISE_PAUSE_CAP 0x0400 /* Try for pause */ +#define ADVERTISE_PAUSE_ASYM 0x0800 /* Try for asymetric pause */ +#define ADVERTISE_RESV 0x1000 /* Unused... */ +#define ADVERTISE_RFAULT 0x2000 /* Say we can detect faults */ +#define ADVERTISE_LPACK 0x4000 /* Ack link partners response */ +#define ADVERTISE_NPAGE 0x8000 /* Next page bit */ + +#define ADVERTISE_FULL (ADVERTISE_100FULL | ADVERTISE_10FULL | \ + ADVERTISE_CSMA) +#define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \ + ADVERTISE_100HALF | ADVERTISE_100FULL) + +/* Link partner ability register. */ +#define LPA_SLCT 0x001f /* Same as advertise selector */ +#define LPA_10HALF 0x0020 /* Can do 10mbps half-duplex */ +#define LPA_1000XFULL 0x0020 /* Can do 1000BASE-X full-duplex */ +#define LPA_10FULL 0x0040 /* Can do 10mbps full-duplex */ +#define LPA_1000XHALF 0x0040 /* Can do 1000BASE-X half-duplex */ +#define LPA_100HALF 0x0080 /* Can do 100mbps half-duplex */ +#define LPA_1000XPAUSE 0x0080 /* Can do 1000BASE-X pause */ +#define LPA_100FULL 0x0100 /* Can do 100mbps full-duplex */ +#define LPA_1000XPAUSE_ASYM 0x0100 /* Can do 1000BASE-X pause asym*/ +#define LPA_100BASE4 0x0200 /* Can do 100mbps 4k packets */ +#define LPA_PAUSE_CAP 0x0400 /* Can pause */ +#define LPA_PAUSE_ASYM 0x0800 /* Can pause asymetrically */ +#define LPA_RESV 0x1000 /* Unused... */ +#define LPA_RFAULT 0x2000 /* Link partner faulted */ +#define LPA_LPACK 0x4000 /* Link partner acked us */ +#define LPA_NPAGE 0x8000 /* Next page bit */ + +#define LPA_DUPLEX (LPA_10FULL | LPA_100FULL) +#define LPA_100 (LPA_100FULL | LPA_100HALF | LPA_100BASE4) + +/* Expansion register for auto-negotiation. */ +#define EXPANSION_NWAY 0x0001 /* Can do N-way auto-nego */ +#define EXPANSION_LCWP 0x0002 /* Got new RX page code word */ +#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */ +#define EXPANSION_NPCAPABLE 0x0008 /* Link partner supports npage */ +#define EXPANSION_MFAULTS 0x0010 /* Multiple faults detected */ +#define EXPANSION_RESV 0xffe0 /* Unused... */ + +#define ESTATUS_1000_TFULL 0x2000 /* Can do 1000BT Full */ +#define ESTATUS_1000_THALF 0x1000 /* Can do 1000BT Half */ + +/* N-way test register. */ +#define NWAYTEST_RESV1 0x00ff /* Unused... */ +#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */ +#define NWAYTEST_RESV2 0xfe00 /* Unused... */ + +/* 1000BASE-T Control register */ +#define ADVERTISE_1000FULL 0x0200 /* Advertise 1000BASE-T full duplex */ +#define ADVERTISE_1000HALF 0x0100 /* Advertise 1000BASE-T half duplex */ +#define CTL1000_AS_MASTER 0x0800 +#define CTL1000_ENABLE_MASTER 0x1000 + +/* 1000BASE-T Status register */ +#define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ +#define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ +#define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */ +#define LPA_1000HALF 0x0400 /* Link partner 1000BASE-T half duplex */ + +/* Flow control flags */ +#define FLOW_CTRL_TX 0x01 +#define FLOW_CTRL_RX 0x02 + +/* MMD Access Control register fields */ +#define MII_MMD_CTRL_DEVAD_MASK 0x1f /* Mask MMD DEVAD*/ +#define MII_MMD_CTRL_ADDR 0x0000 /* Address */ +#define MII_MMD_CTRL_NOINCR 0x4000 /* no post increment */ +#define MII_MMD_CTRL_INCR_RDWT 0x8000 /* post increment on reads & writes */ +#define MII_MMD_CTRL_INCR_ON_WT 0xC000 /* post increment on writes only */ + +/* This structure is used in all SIOCxMIIxxx ioctl calls */ +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; + +#endif /* __LINUX_MII_H__ */ diff --git a/kernel_headers/linux/minix_fs.h b/kernel_headers/linux/minix_fs.h new file mode 100644 index 0000000..13fe09e --- /dev/null +++ b/kernel_headers/linux/minix_fs.h @@ -0,0 +1,106 @@ +#ifndef _LINUX_MINIX_FS_H +#define _LINUX_MINIX_FS_H + +#include +#include + +/* + * The minix filesystem constants/structures + */ + +/* + * Thanks to Kees J Bot for sending me the definitions of the new + * minix filesystem (aka V2) with bigger inodes and 32-bit block + * pointers. + */ + +#define MINIX_ROOT_INO 1 + +/* Not the same as the bogus LINK_MAX in . Oh well. */ +#define MINIX_LINK_MAX 250 +#define MINIX2_LINK_MAX 65530 + +#define MINIX_I_MAP_SLOTS 8 +#define MINIX_Z_MAP_SLOTS 64 +#define MINIX_VALID_FS 0x0001 /* Clean fs. */ +#define MINIX_ERROR_FS 0x0002 /* fs has errors. */ + +#define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode))) + +/* + * This is the original minix inode layout on disk. + * Note the 8-bit gid and atime and ctime. + */ +struct minix_inode { + __u16 i_mode; + __u16 i_uid; + __u32 i_size; + __u32 i_time; + __u8 i_gid; + __u8 i_nlinks; + __u16 i_zone[9]; +}; + +/* + * The new minix inode has all the time entries, as well as + * long block numbers and a third indirect block (7+1+1+1 + * instead of 7+1+1). Also, some previously 8-bit values are + * now 16-bit. The inode is now 64 bytes instead of 32. + */ +struct minix2_inode { + __u16 i_mode; + __u16 i_nlinks; + __u16 i_uid; + __u16 i_gid; + __u32 i_size; + __u32 i_atime; + __u32 i_mtime; + __u32 i_ctime; + __u32 i_zone[10]; +}; + +/* + * minix super-block data on disk + */ +struct minix_super_block { + __u16 s_ninodes; + __u16 s_nzones; + __u16 s_imap_blocks; + __u16 s_zmap_blocks; + __u16 s_firstdatazone; + __u16 s_log_zone_size; + __u32 s_max_size; + __u16 s_magic; + __u16 s_state; + __u32 s_zones; +}; + +/* + * V3 minix super-block data on disk + */ +struct minix3_super_block { + __u32 s_ninodes; + __u16 s_pad0; + __u16 s_imap_blocks; + __u16 s_zmap_blocks; + __u16 s_firstdatazone; + __u16 s_log_zone_size; + __u16 s_pad1; + __u32 s_max_size; + __u32 s_zones; + __u16 s_magic; + __u16 s_pad2; + __u16 s_blocksize; + __u8 s_disk_version; +}; + +struct minix_dir_entry { + __u16 inode; + char name[0]; +}; + +struct minix3_dir_entry { + __u32 inode; + char name[0]; +}; +#endif diff --git a/kernel_headers/linux/mman.h b/kernel_headers/linux/mman.h new file mode 100644 index 0000000..36b3004 --- /dev/null +++ b/kernel_headers/linux/mman.h @@ -0,0 +1,13 @@ +#ifndef _LINUX_MMAN_H +#define _LINUX_MMAN_H + +#include + +#define MREMAP_MAYMOVE 1 +#define MREMAP_FIXED 2 + +#define OVERCOMMIT_GUESS 0 +#define OVERCOMMIT_ALWAYS 1 +#define OVERCOMMIT_NEVER 2 + +#endif /* _LINUX_MMAN_H */ diff --git a/kernel_headers/linux/mmc/..install.cmd b/kernel_headers/linux/mmc/..install.cmd new file mode 100644 index 0000000..22b4ebc --- /dev/null +++ b/kernel_headers/linux/mmc/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mmc/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mmc /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/mmc core.h ioctl.h mmc.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mmc /android/kernels/moto/surnia/kernel-msm/include/linux/mmc ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mmc /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/mmc ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mmc/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/mmc/.install diff --git a/kernel_headers/linux/mmc/.install b/kernel_headers/linux/mmc/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/mmc/core.h b/kernel_headers/linux/mmc/core.h new file mode 100644 index 0000000..04bf741 --- /dev/null +++ b/kernel_headers/linux/mmc/core.h @@ -0,0 +1,36 @@ +#ifndef UAPI_MMC_CORE_H +#define UAPI_MMC_CORE_H + +#define MMC_RSP_PRESENT (1 << 0) +#define MMC_RSP_136 (1 << 1) /* 136 bit response */ +#define MMC_RSP_CRC (1 << 2) /* expect valid crc */ +#define MMC_RSP_BUSY (1 << 3) /* card may send busy */ +#define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */ + +#define MMC_CMD_MASK (3 << 5) /* non-SPI command type */ +#define MMC_CMD_AC (0 << 5) +#define MMC_CMD_ADTC (1 << 5) +#define MMC_CMD_BC (2 << 5) +#define MMC_CMD_BCR (3 << 5) + +#define MMC_RSP_SPI_S1 (1 << 7) /* one status byte */ +#define MMC_RSP_SPI_S2 (1 << 8) /* second byte */ +#define MMC_RSP_SPI_B4 (1 << 9) /* four data bytes */ +#define MMC_RSP_SPI_BUSY (1 << 10) /* card may send busy */ + +/* + * These are the native response types, and correspond to valid bit + * patterns of the above flags. One additional valid pattern + * is all zeros, which means we don't expect a response. + */ +#define MMC_RSP_NONE (0) +#define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) +#define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) +#define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC) +#define MMC_RSP_R3 (MMC_RSP_PRESENT) +#define MMC_RSP_R4 (MMC_RSP_PRESENT) +#define MMC_RSP_R5 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) +#define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) +#define MMC_RSP_R7 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) + +#endif /* UAPI_MMC_CORE_H */ diff --git a/kernel_headers/linux/mmc/ioctl.h b/kernel_headers/linux/mmc/ioctl.h new file mode 100644 index 0000000..befbdc2 --- /dev/null +++ b/kernel_headers/linux/mmc/ioctl.h @@ -0,0 +1,111 @@ +#ifndef LINUX_MMC_IOCTL_H +#define LINUX_MMC_IOCTL_H + +#include + +struct mmc_ioc_cmd { + /* Implies direction of data. true = write, false = read */ + int write_flag; + + /* Application-specific command. true = precede with CMD55 */ + int is_acmd; + + __u32 opcode; + __u32 arg; + __u32 response[4]; /* CMD response */ + unsigned int flags; + unsigned int blksz; + unsigned int blocks; + + /* + * Sleep at least postsleep_min_us useconds, and at most + * postsleep_max_us useconds *after* issuing command. Needed for + * some read commands for which cards have no other way of indicating + * they're ready for the next command (i.e. there is no equivalent of + * a "busy" indicator for read operations). + */ + unsigned int postsleep_min_us; + unsigned int postsleep_max_us; + + /* + * Override driver-computed timeouts. Note the difference in units! + */ + unsigned int data_timeout_ns; + unsigned int cmd_timeout_ms; + + /* + * For 64-bit machines, the next member, ``__u64 data_ptr``, wants to + * be 8-byte aligned. Make sure this struct is the same size when + * built for 32-bit. + */ + __u32 __pad; + + /* DAT buffer */ + __u64 data_ptr; +}; +#define mmc_ioc_cmd_set_data(ic, ptr) ic.data_ptr = (__u64)(unsigned long) ptr + +#define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd) + +/** + * There are four request types that are applicable for rpmb accesses- two + * under read category and two under write. They are + * + * Reads + * ------- + * 1. Read Write Counter + * 2. Authenticated data read + * + * + * Writes + * ------- + * 1. Provision RPMB key (though it might be done in a secure environment) + * 2. Authenticated data write + * + * While its given that the rpmb data frames are going to have that + * information encoded in it and the frames should be generated by a secure + * piece of code, the request types can be classified as above. + * + * So here are the set of commands that should be executed atomically in the + * ioctl for rpmb read operation + * 1. Switch partition + * 2. Set block count + * 3. Write data frame - CMD25 to write the rpmb data frame + * 4. Set block count + * 5. Read the data - CMD18 to do the actual read + * + * Similarly for rpmb write operation, these are the commands that should be + * executed atomically in the ioctl for rpmb write operation + * 1. Switch partition + * 2. Set block count + * 3. Write data frame - CMD25 to write the rpmb data frame with data + * 4. Set block count + * 5. Read the data - CMD25 to write rpmb data frame indicating that rpmb + * result register is about to be read + * 6. Set block count + * 7. Read rpmb result - CMD18 to read the rpmb result register + * + * Each of the above commands should be sent individually via struct mmc_ioc_cmd + * and fields like is_acmd that are not needed for rpmb operations will be + * ignored. + */ +#define MMC_IOC_MAX_RPMB_CMD 3 +struct mmc_ioc_rpmb { + struct mmc_ioc_cmd cmds[MMC_IOC_MAX_RPMB_CMD]; +}; + +/* + * This ioctl is meant for use with rpmb partitions. This is needed since the + * access procedure for this particular partition is different from regular + * or normal partitions. + */ +#define MMC_IOC_RPMB_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_rpmb) + +/* + * Since this ioctl is only meant to enhance (and not replace) normal access + * to the mmc bus device, an upper data transfer limit of MMC_IOC_MAX_BYTES + * is enforced per ioctl call. For larger data transfers, use the normal + * block device operations. + */ +#define MMC_IOC_MAX_BYTES (512L * 256) +#endif /* LINUX_MMC_IOCTL_H */ diff --git a/kernel_headers/linux/mmc/mmc.h b/kernel_headers/linux/mmc/mmc.h new file mode 100644 index 0000000..9e6f113 --- /dev/null +++ b/kernel_headers/linux/mmc/mmc.h @@ -0,0 +1,65 @@ +#ifndef UAPI_MMC_MMC_H +#define UAPI_MMC_MMC_H + +/* Standard MMC commands (4.1) type argument response */ + /* class 1 */ +#define MMC_GO_IDLE_STATE 0 /* bc */ +#define MMC_SEND_OP_COND 1 /* bcr [31:0] OCR R3 */ +#define MMC_ALL_SEND_CID 2 /* bcr R2 */ +#define MMC_SET_RELATIVE_ADDR 3 /* ac [31:16] RCA R1 */ +#define MMC_SET_DSR 4 /* bc [31:16] RCA */ +#define MMC_SLEEP_AWAKE 5 /* ac [31:16] RCA 15:flg R1b */ +#define MMC_SWITCH 6 /* ac [31:0] See below R1b */ +#define MMC_SELECT_CARD 7 /* ac [31:16] RCA R1 */ +#define MMC_SEND_EXT_CSD 8 /* adtc R1 */ +#define MMC_SEND_CSD 9 /* ac [31:16] RCA R2 */ +#define MMC_SEND_CID 10 /* ac [31:16] RCA R2 */ +#define MMC_READ_DAT_UNTIL_STOP 11 /* adtc [31:0] dadr R1 */ +#define MMC_STOP_TRANSMISSION 12 /* ac R1b */ +#define MMC_SEND_STATUS 13 /* ac [31:16] RCA R1 */ +#define MMC_BUS_TEST_R 14 /* adtc R1 */ +#define MMC_GO_INACTIVE_STATE 15 /* ac [31:16] RCA */ +#define MMC_BUS_TEST_W 19 /* adtc R1 */ +#define MMC_SPI_READ_OCR 58 /* spi spi_R3 */ +#define MMC_SPI_CRC_ON_OFF 59 /* spi [0:0] flag spi_R1 */ + + /* class 2 */ +#define MMC_SET_BLOCKLEN 16 /* ac [31:0] block len R1 */ +#define MMC_READ_SINGLE_BLOCK 17 /* adtc [31:0] data addr R1 */ +#define MMC_READ_MULTIPLE_BLOCK 18 /* adtc [31:0] data addr R1 */ +#define MMC_SEND_TUNING_BLOCK 19 /* adtc R1 */ +#define MMC_SEND_TUNING_BLOCK_HS200 21 /* adtc R1 */ +#define MMC_SEND_TUNING_BLOCK_HS400 MMC_SEND_TUNING_BLOCK_HS200 + + /* class 3 */ +#define MMC_WRITE_DAT_UNTIL_STOP 20 /* adtc [31:0] data addr R1 */ + + /* class 4 */ +#define MMC_SET_BLOCK_COUNT 23 /* adtc [31:0] data addr R1 */ +#define MMC_WRITE_BLOCK 24 /* adtc [31:0] data addr R1 */ +#define MMC_WRITE_MULTIPLE_BLOCK 25 /* adtc R1 */ +#define MMC_PROGRAM_CID 26 /* adtc R1 */ +#define MMC_PROGRAM_CSD 27 /* adtc R1 */ + + /* class 6 */ +#define MMC_SET_WRITE_PROT 28 /* ac [31:0] data addr R1b */ +#define MMC_CLR_WRITE_PROT 29 /* ac [31:0] data addr R1b */ +#define MMC_SEND_WRITE_PROT 30 /* adtc [31:0] wpdata addr R1 */ + + /* class 5 */ +#define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */ +#define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */ +#define MMC_ERASE 38 /* ac R1b */ + + /* class 9 */ +#define MMC_FAST_IO 39 /* ac R4 */ +#define MMC_GO_IRQ_STATE 40 /* bcr R5 */ + + /* class 7 */ +#define MMC_LOCK_UNLOCK 42 /* adtc R1b */ + + /* class 8 */ +#define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */ +#define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1 */ + +#endif /* UAPI_MMC_MMC_H */ diff --git a/kernel_headers/linux/mmtimer.h b/kernel_headers/linux/mmtimer.h new file mode 100644 index 0000000..884cabf --- /dev/null +++ b/kernel_headers/linux/mmtimer.h @@ -0,0 +1,56 @@ +/* + * Intel Multimedia Timer device interface + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (c) 2001-2004 Silicon Graphics, Inc. All rights reserved. + * + * This file should define an interface compatible with the IA-PC Multimedia + * Timers Draft Specification (rev. 0.97) from Intel. Note that some + * hardware may not be able to safely export its registers to userspace, + * so the ioctl interface should support all necessary functionality. + * + * 11/01/01 - jbarnes - initial revision + * 9/10/04 - Christoph Lameter - remove interrupt support + * 9/17/04 - jbarnes - remove test program, move some #defines to the driver + */ + +#ifndef _LINUX_MMTIMER_H +#define _LINUX_MMTIMER_H + +/* + * Breakdown of the ioctl's available. An 'optional' next to the command + * indicates that supporting this command is optional, while 'required' + * commands must be implemented if conformance is desired. + * + * MMTIMER_GETOFFSET - optional + * Should return the offset (relative to the start of the page where the + * registers are mapped) for the counter in question. + * + * MMTIMER_GETRES - required + * The resolution of the clock in femto (10^-15) seconds + * + * MMTIMER_GETFREQ - required + * Frequency of the clock in Hz + * + * MMTIMER_GETBITS - required + * Number of bits in the clock's counter + * + * MMTIMER_MMAPAVAIL - required + * Returns nonzero if the registers can be mmap'd into userspace, 0 otherwise + * + * MMTIMER_GETCOUNTER - required + * Gets the current value in the counter + */ +#define MMTIMER_IOCTL_BASE 'm' + +#define MMTIMER_GETOFFSET _IO(MMTIMER_IOCTL_BASE, 0) +#define MMTIMER_GETRES _IOR(MMTIMER_IOCTL_BASE, 1, unsigned long) +#define MMTIMER_GETFREQ _IOR(MMTIMER_IOCTL_BASE, 2, unsigned long) +#define MMTIMER_GETBITS _IO(MMTIMER_IOCTL_BASE, 4) +#define MMTIMER_MMAPAVAIL _IO(MMTIMER_IOCTL_BASE, 6) +#define MMTIMER_GETCOUNTER _IOR(MMTIMER_IOCTL_BASE, 9, unsigned long) + +#endif /* _LINUX_MMTIMER_H */ diff --git a/kernel_headers/linux/mqueue.h b/kernel_headers/linux/mqueue.h new file mode 100644 index 0000000..8b5a796 --- /dev/null +++ b/kernel_headers/linux/mqueue.h @@ -0,0 +1,53 @@ +/* Copyright (C) 2003 Krzysztof Benedyczak & Michal Wronski + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + It is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this software; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _LINUX_MQUEUE_H +#define _LINUX_MQUEUE_H + +#define MQ_PRIO_MAX 32768 +/* per-uid limit of kernel memory used by mqueue, in bytes */ +#define MQ_BYTES_MAX 819200 + +struct mq_attr { + long mq_flags; /* message queue flags */ + long mq_maxmsg; /* maximum number of messages */ + long mq_msgsize; /* maximum message size */ + long mq_curmsgs; /* number of messages currently queued */ + long __reserved[4]; /* ignored for input, zeroed for output */ +}; + +/* + * SIGEV_THREAD implementation: + * SIGEV_THREAD must be implemented in user space. If SIGEV_THREAD is passed + * to mq_notify, then + * - sigev_signo must be the file descriptor of an AF_NETLINK socket. It's not + * necessary that the socket is bound. + * - sigev_value.sival_ptr must point to a cookie that is NOTIFY_COOKIE_LEN + * bytes long. + * If the notification is triggered, then the cookie is sent to the netlink + * socket. The last byte of the cookie is replaced with the NOTIFY_?? codes: + * NOTIFY_WOKENUP if the notification got triggered, NOTIFY_REMOVED if it was + * removed, either due to a close() on the message queue fd or due to a + * mq_notify() that removed the notification. + */ +#define NOTIFY_NONE 0 +#define NOTIFY_WOKENUP 1 +#define NOTIFY_REMOVED 2 + +#define NOTIFY_COOKIE_LEN 32 + +#endif diff --git a/kernel_headers/linux/mroute.h b/kernel_headers/linux/mroute.h new file mode 100644 index 0000000..ef12aa4 --- /dev/null +++ b/kernel_headers/linux/mroute.h @@ -0,0 +1,146 @@ +#ifndef __LINUX_MROUTE_H +#define __LINUX_MROUTE_H + +#include +#include + +/* + * Based on the MROUTING 3.5 defines primarily to keep + * source compatibility with BSD. + * + * See the mrouted code for the original history. + * + * Protocol Independent Multicast (PIM) data structures included + * Carlos Picoto (cap@di.fc.ul.pt) + * + */ + +#define MRT_BASE 200 +#define MRT_INIT (MRT_BASE) /* Activate the kernel mroute code */ +#define MRT_DONE (MRT_BASE+1) /* Shutdown the kernel mroute */ +#define MRT_ADD_VIF (MRT_BASE+2) /* Add a virtual interface */ +#define MRT_DEL_VIF (MRT_BASE+3) /* Delete a virtual interface */ +#define MRT_ADD_MFC (MRT_BASE+4) /* Add a multicast forwarding entry */ +#define MRT_DEL_MFC (MRT_BASE+5) /* Delete a multicast forwarding entry */ +#define MRT_VERSION (MRT_BASE+6) /* Get the kernel multicast version */ +#define MRT_ASSERT (MRT_BASE+7) /* Activate PIM assert mode */ +#define MRT_PIM (MRT_BASE+8) /* enable PIM code */ +#define MRT_TABLE (MRT_BASE+9) /* Specify mroute table ID */ +#define MRT_ADD_MFC_PROXY (MRT_BASE+10) /* Add a (*,*|G) mfc entry */ +#define MRT_DEL_MFC_PROXY (MRT_BASE+11) /* Del a (*,*|G) mfc entry */ +#define MRT_MAX (MRT_BASE+11) + +#define SIOCGETVIFCNT SIOCPROTOPRIVATE /* IP protocol privates */ +#define SIOCGETSGCNT (SIOCPROTOPRIVATE+1) +#define SIOCGETRPF (SIOCPROTOPRIVATE+2) + +#define MAXVIFS 32 +typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */ +typedef unsigned short vifi_t; +#define ALL_VIFS ((vifi_t)(-1)) + +/* + * Same idea as select + */ + +#define VIFM_SET(n,m) ((m)|=(1<<(n))) +#define VIFM_CLR(n,m) ((m)&=~(1<<(n))) +#define VIFM_ISSET(n,m) ((m)&(1<<(n))) +#define VIFM_CLRALL(m) ((m)=0) +#define VIFM_COPY(mfrom,mto) ((mto)=(mfrom)) +#define VIFM_SAME(m1,m2) ((m1)==(m2)) + +/* + * Passed by mrouted for an MRT_ADD_VIF - again we use the + * mrouted 3.6 structures for compatibility + */ + +struct vifctl { + vifi_t vifc_vifi; /* Index of VIF */ + unsigned char vifc_flags; /* VIFF_ flags */ + unsigned char vifc_threshold; /* ttl limit */ + unsigned int vifc_rate_limit; /* Rate limiter values (NI) */ + union { + struct in_addr vifc_lcl_addr; /* Local interface address */ + int vifc_lcl_ifindex; /* Local interface index */ + }; + struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */ +}; + +#define VIFF_TUNNEL 0x1 /* IPIP tunnel */ +#define VIFF_SRCRT 0x2 /* NI */ +#define VIFF_REGISTER 0x4 /* register vif */ +#define VIFF_USE_IFINDEX 0x8 /* use vifc_lcl_ifindex instead of + vifc_lcl_addr to find an interface */ + +/* + * Cache manipulation structures for mrouted and PIMd + */ + +struct mfcctl { + struct in_addr mfcc_origin; /* Origin of mcast */ + struct in_addr mfcc_mcastgrp; /* Group in question */ + vifi_t mfcc_parent; /* Where it arrived */ + unsigned char mfcc_ttls[MAXVIFS]; /* Where it is going */ + unsigned int mfcc_pkt_cnt; /* pkt count for src-grp */ + unsigned int mfcc_byte_cnt; + unsigned int mfcc_wrong_if; + int mfcc_expire; +}; + +/* + * Group count retrieval for mrouted + */ + +struct sioc_sg_req { + struct in_addr src; + struct in_addr grp; + unsigned long pktcnt; + unsigned long bytecnt; + unsigned long wrong_if; +}; + +/* + * To get vif packet counts + */ + +struct sioc_vif_req { + vifi_t vifi; /* Which iface */ + unsigned long icount; /* In packets */ + unsigned long ocount; /* Out packets */ + unsigned long ibytes; /* In bytes */ + unsigned long obytes; /* Out bytes */ +}; + +/* + * This is the format the mroute daemon expects to see IGMP control + * data. Magically happens to be like an IP packet as per the original + */ + +struct igmpmsg { + __u32 unused1,unused2; + unsigned char im_msgtype; /* What is this */ + unsigned char im_mbz; /* Must be zero */ + unsigned char im_vif; /* Interface (this ought to be a vifi_t!) */ + unsigned char unused3; + struct in_addr im_src,im_dst; +}; + +/* + * That's all usermode folks + */ + + + +#define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */ + +/* + * Pseudo messages used by mrouted + */ + +#define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */ +#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */ +#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */ + + +#endif /* __LINUX_MROUTE_H */ diff --git a/kernel_headers/linux/mroute6.h b/kernel_headers/linux/mroute6.h new file mode 100644 index 0000000..72bcfa9 --- /dev/null +++ b/kernel_headers/linux/mroute6.h @@ -0,0 +1,138 @@ +#ifndef __LINUX_MROUTE6_H +#define __LINUX_MROUTE6_H + +#include +#include + +/* + * Based on the MROUTING 3.5 defines primarily to keep + * source compatibility with BSD. + * + * See the pim6sd code for the original history. + * + * Protocol Independent Multicast (PIM) data structures included + * Carlos Picoto (cap@di.fc.ul.pt) + * + */ + +#define MRT6_BASE 200 +#define MRT6_INIT (MRT6_BASE) /* Activate the kernel mroute code */ +#define MRT6_DONE (MRT6_BASE+1) /* Shutdown the kernel mroute */ +#define MRT6_ADD_MIF (MRT6_BASE+2) /* Add a virtual interface */ +#define MRT6_DEL_MIF (MRT6_BASE+3) /* Delete a virtual interface */ +#define MRT6_ADD_MFC (MRT6_BASE+4) /* Add a multicast forwarding entry */ +#define MRT6_DEL_MFC (MRT6_BASE+5) /* Delete a multicast forwarding entry */ +#define MRT6_VERSION (MRT6_BASE+6) /* Get the kernel multicast version */ +#define MRT6_ASSERT (MRT6_BASE+7) /* Activate PIM assert mode */ +#define MRT6_PIM (MRT6_BASE+8) /* enable PIM code */ +#define MRT6_TABLE (MRT6_BASE+9) /* Specify mroute table ID */ +#define MRT6_ADD_MFC_PROXY (MRT6_BASE+10) /* Add a (*,*|G) mfc entry */ +#define MRT6_DEL_MFC_PROXY (MRT6_BASE+11) /* Del a (*,*|G) mfc entry */ +#define MRT6_MAX (MRT6_BASE+11) + +#define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */ +#define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1) +#define SIOCGETRPF (SIOCPROTOPRIVATE+2) + +#define MAXMIFS 32 +typedef unsigned long mifbitmap_t; /* User mode code depends on this lot */ +typedef unsigned short mifi_t; +#define ALL_MIFS ((mifi_t)(-1)) + +#ifndef IF_SETSIZE +#define IF_SETSIZE 256 +#endif + +typedef __u32 if_mask; +#define NIFBITS (sizeof(if_mask) * 8) /* bits per mask */ + +#if !defined(DIV_ROUND_UP) +#define DIV_ROUND_UP(x,y) (((x) + ((y) - 1)) / (y)) +#endif + +typedef struct if_set { + if_mask ifs_bits[DIV_ROUND_UP(IF_SETSIZE, NIFBITS)]; +} if_set; + +#define IF_SET(n, p) ((p)->ifs_bits[(n)/NIFBITS] |= (1 << ((n) % NIFBITS))) +#define IF_CLR(n, p) ((p)->ifs_bits[(n)/NIFBITS] &= ~(1 << ((n) % NIFBITS))) +#define IF_ISSET(n, p) ((p)->ifs_bits[(n)/NIFBITS] & (1 << ((n) % NIFBITS))) +#define IF_COPY(f, t) bcopy(f, t, sizeof(*(f))) +#define IF_ZERO(p) bzero(p, sizeof(*(p))) + +/* + * Passed by mrouted for an MRT_ADD_MIF - again we use the + * mrouted 3.6 structures for compatibility + */ + +struct mif6ctl { + mifi_t mif6c_mifi; /* Index of MIF */ + unsigned char mif6c_flags; /* MIFF_ flags */ + unsigned char vifc_threshold; /* ttl limit */ + __u16 mif6c_pifi; /* the index of the physical IF */ + unsigned int vifc_rate_limit; /* Rate limiter values (NI) */ +}; + +#define MIFF_REGISTER 0x1 /* register vif */ + +/* + * Cache manipulation structures for mrouted and PIMd + */ + +struct mf6cctl { + struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */ + struct sockaddr_in6 mf6cc_mcastgrp; /* Group in question */ + mifi_t mf6cc_parent; /* Where it arrived */ + struct if_set mf6cc_ifset; /* Where it is going */ +}; + +/* + * Group count retrieval for pim6sd + */ + +struct sioc_sg_req6 { + struct sockaddr_in6 src; + struct sockaddr_in6 grp; + unsigned long pktcnt; + unsigned long bytecnt; + unsigned long wrong_if; +}; + +/* + * To get vif packet counts + */ + +struct sioc_mif_req6 { + mifi_t mifi; /* Which iface */ + unsigned long icount; /* In packets */ + unsigned long ocount; /* Out packets */ + unsigned long ibytes; /* In bytes */ + unsigned long obytes; /* Out bytes */ +}; + +/* + * That's all usermode folks + */ + + + +/* + * Structure used to communicate from kernel to multicast router. + * We'll overlay the structure onto an MLD header (not an IPv6 heder like igmpmsg{} + * used for IPv4 implementation). This is because this structure will be passed via an + * IPv6 raw socket, on which an application will only receiver the payload i.e the data after + * the IPv6 header and all the extension headers. (See section 3 of RFC 3542) + */ + +struct mrt6msg { +#define MRT6MSG_NOCACHE 1 +#define MRT6MSG_WRONGMIF 2 +#define MRT6MSG_WHOLEPKT 3 /* used for use level encap */ + __u8 im6_mbz; /* must be zero */ + __u8 im6_msgtype; /* what type of message */ + __u16 im6_mif; /* mif rec'd on */ + __u32 im6_pad; /* padding for 64 bit arch */ + struct in6_addr im6_src, im6_dst; +}; + +#endif /* __LINUX_MROUTE6_H */ diff --git a/kernel_headers/linux/msdos_fs.h b/kernel_headers/linux/msdos_fs.h new file mode 100644 index 0000000..6d46ab9 --- /dev/null +++ b/kernel_headers/linux/msdos_fs.h @@ -0,0 +1,201 @@ +#ifndef _LINUX_MSDOS_FS_H +#define _LINUX_MSDOS_FS_H + +#include +#include +#include + +/* + * The MS-DOS filesystem constants/structures + */ + +#define SECTOR_SIZE 512 /* sector size (bytes) */ +#define SECTOR_BITS 9 /* log2(SECTOR_SIZE) */ +#define MSDOS_DPB (MSDOS_DPS) /* dir entries per block */ +#define MSDOS_DPB_BITS 4 /* log2(MSDOS_DPB) */ +#define MSDOS_DPS (SECTOR_SIZE / sizeof(struct msdos_dir_entry)) +#define MSDOS_DPS_BITS 4 /* log2(MSDOS_DPS) */ +#define MSDOS_LONGNAME 256 /* maximum name length */ +#define CF_LE_W(v) le16_to_cpu(v) +#define CF_LE_L(v) le32_to_cpu(v) +#define CT_LE_W(v) cpu_to_le16(v) +#define CT_LE_L(v) cpu_to_le32(v) + +#define MSDOS_ROOT_INO 1 /* The root inode number */ +#define MSDOS_FSINFO_INO 2 /* Used for managing the FSINFO block */ + +#define MSDOS_DIR_BITS 5 /* log2(sizeof(struct msdos_dir_entry)) */ + +/* directory limit */ +#define FAT_MAX_DIR_ENTRIES (65536) +#define FAT_MAX_DIR_SIZE (FAT_MAX_DIR_ENTRIES << MSDOS_DIR_BITS) + +#define ATTR_NONE 0 /* no attribute bits */ +#define ATTR_RO 1 /* read-only */ +#define ATTR_HIDDEN 2 /* hidden */ +#define ATTR_SYS 4 /* system */ +#define ATTR_VOLUME 8 /* volume label */ +#define ATTR_DIR 16 /* directory */ +#define ATTR_ARCH 32 /* archived */ + +/* attribute bits that are copied "as is" */ +#define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN) +/* bits that are used by the Windows 95/Windows NT extended FAT */ +#define ATTR_EXT (ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME) + +#define CASE_LOWER_BASE 8 /* base is lower case */ +#define CASE_LOWER_EXT 16 /* extension is lower case */ + +#define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */ +#define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG) + +#define FAT_LFN_LEN 255 /* maximum long name length */ +#define MSDOS_NAME 11 /* maximum name length */ +#define MSDOS_SLOTS 21 /* max # of slots for short and long names */ +#define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */ +#define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */ + +#define FAT_FIRST_ENT(s, x) ((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \ + MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x)) + +/* start of data cluster's entry (number of reserved clusters) */ +#define FAT_START_ENT 2 + +/* maximum number of clusters */ +#define MAX_FAT12 0xFF4 +#define MAX_FAT16 0xFFF4 +#define MAX_FAT32 0x0FFFFFF6 +#define MAX_FAT(s) (MSDOS_SB(s)->fat_bits == 32 ? MAX_FAT32 : \ + MSDOS_SB(s)->fat_bits == 16 ? MAX_FAT16 : MAX_FAT12) + +/* bad cluster mark */ +#define BAD_FAT12 0xFF7 +#define BAD_FAT16 0xFFF7 +#define BAD_FAT32 0x0FFFFFF7 + +/* standard EOF */ +#define EOF_FAT12 0xFFF +#define EOF_FAT16 0xFFFF +#define EOF_FAT32 0x0FFFFFFF + +#define FAT_ENT_FREE (0) +#define FAT_ENT_BAD (BAD_FAT32) +#define FAT_ENT_EOF (EOF_FAT32) + +#define FAT_FSINFO_SIG1 0x41615252 +#define FAT_FSINFO_SIG2 0x61417272 +#define IS_FSINFO(x) (le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \ + && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2) + +#define FAT_STATE_DIRTY 0x01 + +struct __fat_dirent { + long d_ino; + __kernel_off_t d_off; + unsigned short d_reclen; + char d_name[256]; /* We must not include limits.h! */ +}; + +/* + * ioctl commands + */ +#define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, struct __fat_dirent[2]) +#define VFAT_IOCTL_READDIR_SHORT _IOR('r', 2, struct __fat_dirent[2]) +/* has used 0x72 ('r') in collision, so skip a few */ +#define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32) +#define FAT_IOCTL_SET_ATTRIBUTES _IOW('r', 0x11, __u32) +#define VFAT_IOCTL_GET_VOLUME_ID _IOR('r', 0x12, __u32) + +struct fat_boot_sector { + __u8 ignored[3]; /* Boot strap short or near jump */ + __u8 system_id[8]; /* Name - can be used to special case + partition manager volumes */ + __u8 sector_size[2]; /* bytes per logical sector */ + __u8 sec_per_clus; /* sectors/cluster */ + __le16 reserved; /* reserved sectors */ + __u8 fats; /* number of FATs */ + __u8 dir_entries[2]; /* root directory entries */ + __u8 sectors[2]; /* number of sectors */ + __u8 media; /* media code */ + __le16 fat_length; /* sectors/FAT */ + __le16 secs_track; /* sectors per track */ + __le16 heads; /* number of heads */ + __le32 hidden; /* hidden sectors (unused) */ + __le32 total_sect; /* number of sectors (if sectors == 0) */ + + union { + struct { + /* Extended BPB Fields for FAT16 */ + __u8 drive_number; /* Physical drive number */ + __u8 state; /* undocumented, but used + for mount state. */ + /* other fiealds are not added here */ + } fat16; + + struct { + /* only used by FAT32 */ + __le32 length; /* sectors/FAT */ + __le16 flags; /* bit 8: fat mirroring, + low 4: active fat */ + __u8 version[2]; /* major, minor filesystem + version */ + __le32 root_cluster; /* first cluster in + root directory */ + __le16 info_sector; /* filesystem info sector */ + __le16 backup_boot; /* backup boot sector */ + __le16 reserved2[6]; /* Unused */ + /* Extended BPB Fields for FAT32 */ + __u8 drive_number; /* Physical drive number */ + __u8 state; /* undocumented, but used + for mount state. */ + /* other fiealds are not added here */ + } fat32; + }; +}; + +struct fat_boot_fsinfo { + __le32 signature1; /* 0x41615252L */ + __le32 reserved1[120]; /* Nothing as far as I can tell */ + __le32 signature2; /* 0x61417272L */ + __le32 free_clusters; /* Free cluster count. -1 if unknown */ + __le32 next_cluster; /* Most recently allocated cluster */ + __le32 reserved2[4]; +}; + +struct fat_boot_bsx { + __u8 drive; /* drive number */ + __u8 reserved1; + __u8 signature; /* extended boot signature */ + __u8 vol_id[4]; /* volume ID */ + __u8 vol_label[11]; /* volume label */ + __u8 type[8]; /* file system type */ +}; +#define FAT16_BSX_OFFSET 36 /* offset of fat_boot_bsx in FAT12 and FAT16 */ +#define FAT32_BSX_OFFSET 64 /* offset of fat_boot_bsx in FAT32 */ + +struct msdos_dir_entry { + __u8 name[MSDOS_NAME];/* name and extension */ + __u8 attr; /* attribute bits */ + __u8 lcase; /* Case for base and extension */ + __u8 ctime_cs; /* Creation time, centiseconds (0-199) */ + __le16 ctime; /* Creation time */ + __le16 cdate; /* Creation date */ + __le16 adate; /* Last access date */ + __le16 starthi; /* High 16 bits of cluster in FAT32 */ + __le16 time,date,start;/* time, date and first cluster */ + __le32 size; /* file size (in bytes) */ +}; + +/* Up to 13 characters of the name */ +struct msdos_dir_slot { + __u8 id; /* sequence number for slot */ + __u8 name0_4[10]; /* first 5 characters in name */ + __u8 attr; /* attribute byte */ + __u8 reserved; /* always 0 */ + __u8 alias_checksum; /* checksum for 8.3 alias */ + __u8 name5_10[12]; /* 6 more characters in name */ + __le16 start; /* starting cluster number, 0 in long slots */ + __u8 name11_12[4]; /* last 2 characters in name */ +}; + +#endif /* _LINUX_MSDOS_FS_H */ diff --git a/kernel_headers/linux/msg.h b/kernel_headers/linux/msg.h new file mode 100644 index 0000000..0a5029c --- /dev/null +++ b/kernel_headers/linux/msg.h @@ -0,0 +1,76 @@ +#ifndef _LINUX_MSG_H +#define _LINUX_MSG_H + +#include + +/* ipcs ctl commands */ +#define MSG_STAT 11 +#define MSG_INFO 12 + +/* msgrcv options */ +#define MSG_NOERROR 010000 /* no error if message is too big */ +#define MSG_EXCEPT 020000 /* recv any msg except of specified type.*/ +#define MSG_COPY 040000 /* copy (not remove) all queue messages */ + +/* Obsolete, used only for backwards compatibility and libc5 compiles */ +struct msqid_ds { + struct ipc_perm msg_perm; + struct msg *msg_first; /* first message on queue,unused */ + struct msg *msg_last; /* last message in queue,unused */ + __kernel_time_t msg_stime; /* last msgsnd time */ + __kernel_time_t msg_rtime; /* last msgrcv time */ + __kernel_time_t msg_ctime; /* last change time */ + unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */ + unsigned long msg_lqbytes; /* ditto */ + unsigned short msg_cbytes; /* current number of bytes on queue */ + unsigned short msg_qnum; /* number of messages in queue */ + unsigned short msg_qbytes; /* max number of bytes on queue */ + __kernel_ipc_pid_t msg_lspid; /* pid of last msgsnd */ + __kernel_ipc_pid_t msg_lrpid; /* last receive pid */ +}; + +/* Include the definition of msqid64_ds */ +#include + +/* message buffer for msgsnd and msgrcv calls */ +struct msgbuf { + long mtype; /* type of message */ + char mtext[1]; /* message text */ +}; + +/* buffer for msgctl calls IPC_INFO, MSG_INFO */ +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short msgseg; +}; + +/* + * Scaling factor to compute msgmni: + * the memory dedicated to msg queues (msgmni * msgmnb) should occupy + * at most 1/MSG_MEM_SCALE of the lowmem (see the formula in ipc/msg.c): + * up to 8MB : msgmni = 16 (MSGMNI) + * 4 GB : msgmni = 8K + * more than 16 GB : msgmni = 32K (IPCMNI) + */ +#define MSG_MEM_SCALE 32 + +#define MSGMNI 16 /* <= IPCMNI */ /* max # of msg queue identifiers */ +#define MSGMAX 8192 /* <= INT_MAX */ /* max size of message (bytes) */ +#define MSGMNB 16384 /* <= INT_MAX */ /* default max size of a message queue */ + +/* unused */ +#define MSGPOOL (MSGMNI * MSGMNB / 1024) /* size in kbytes of message pool */ +#define MSGTQL MSGMNB /* number of system message headers */ +#define MSGMAP MSGMNB /* number of entries in message map */ +#define MSGSSZ 16 /* message segment size */ +#define __MSGSEG ((MSGPOOL * 1024) / MSGSSZ) /* max no. of segments */ +#define MSGSEG (__MSGSEG <= 0xffff ? __MSGSEG : 0xffff) + + +#endif /* _LINUX_MSG_H */ diff --git a/kernel_headers/linux/msm-core-interface.h b/kernel_headers/linux/msm-core-interface.h new file mode 100644 index 0000000..6c0dae4 --- /dev/null +++ b/kernel_headers/linux/msm-core-interface.h @@ -0,0 +1,29 @@ +#ifndef __MSM_CORE_LIB_H__ +#define __MSM_CORE_LIB_H__ + +#include + +#define TEMP_DATA_POINTS 13 +#define MAX_NUM_FREQ 200 + +enum msm_core_ioctl_params { + MSM_CORE_LEAKAGE, + MSM_CORE_VOLTAGE, +}; + +#define MSM_CORE_MAGIC 0x9D + +struct sched_params { + uint32_t cpumask; + uint32_t cluster; + uint32_t power[TEMP_DATA_POINTS][MAX_NUM_FREQ]; + uint32_t voltage[MAX_NUM_FREQ]; + uint32_t freq[MAX_NUM_FREQ]; +}; + + +#define EA_LEAKAGE _IOWR(MSM_CORE_MAGIC, MSM_CORE_LEAKAGE,\ + struct sched_params) +#define EA_VOLT _IOWR(MSM_CORE_MAGIC, MSM_CORE_VOLTAGE,\ + struct sched_params) +#endif diff --git a/kernel_headers/linux/msm_adc.h b/kernel_headers/linux/msm_adc.h new file mode 100644 index 0000000..05b1ad0 --- /dev/null +++ b/kernel_headers/linux/msm_adc.h @@ -0,0 +1,111 @@ +#ifndef __MSM_ADC_H +#define __MSM_ADC_H + +#include + +#define MSM_ADC_MAX_CHAN_STR 64 + +/* must be <= to the max buffer size in the modem implementation */ +#define MSM_ADC_DEV_MAX_INFLIGHT 9 + +#define MSM_ADC_IOCTL_CODE 0x90 + +struct msm_adc_conversion { + /* hwmon channel number - this is not equivalent to the DAL chan */ + uint32_t chan; + /* returned result in ms */ + int result; +}; + +struct adc_chan_result { + /* The channel number of the requesting/requested conversion */ + uint32_t chan; + /* The pre-calibrated digital output of a given ADC relative to the + ADC reference */ + int32_t adc_code; + /* in units specific for a given ADC; most ADC uses reference voltage + * but some ADC uses reference current. This measurement here is + * a number relative to a reference of a given ADC */ + int64_t measurement; + /* The data meaningful for each individual channel whether it is + * voltage, current, temperature, etc. */ + int64_t physical; +}; + +/* + * Issue a blocking adc conversion request. Once the call returns, the data + * can be found in the 'physical' field of adc_chan_result. This call will + * return ENODATA if there is an invalid result returned by the modem driver. + */ +#define MSM_ADC_REQUEST _IOWR(MSM_ADC_IOCTL_CODE, 1, \ + struct adc_chan_result) + +/* + * Issue a non-blocking adc conversion request. The results from this + * request can be obtained by calling AIO_READ once the transfer is + * completed. To verify completion, the blocking call AIO_POLL can be used. + * If there are no slot resources, this call will return an error with errno + * set to EWOULDBLOCK. + */ +#define MSM_ADC_AIO_REQUEST _IOWR(MSM_ADC_IOCTL_CODE, 2, \ + struct adc_chan_result) + +/* + * Same non-blocking semantics as AIO_REQUEST, except this call will block + * if there are no available slot resources. This call can fail with errno + * set to EDEADLK if there are no resources and the file descriptor in question + * has outstanding conversion requests already. This is done so the client + * does not block on resources that can only be freed by reading the results -- + * effectively deadlocking the system. In this case, the client must read + * pending results before proceeding to free up resources. + */ +#define MSM_ADC_AIO_REQUEST_BLOCK_RES _IOWR(MSM_ADC_IOCTL_CODE, 3, \ + struct adc_chan_result) + +/* + * Returns the number of pending results that are associated with a particular + * file descriptor. If there are no pending results, this call will block until + * there is at least one. If there are no requests queued at all on this file + * descriptor, this call will fail with EDEADLK. This is to prevent deadlock in + * a single-threaded scenario where POLL would never return. + */ +#define MSM_ADC_AIO_POLL _IOR(MSM_ADC_IOCTL_CODE, 4, \ + uint32_t) + +#define MSM_ADC_FLUID_INIT _IOR(MSM_ADC_IOCTL_CODE, 5, \ + uint32_t) + +#define MSM_ADC_FLUID_DEINIT _IOR(MSM_ADC_IOCTL_CODE, 6, \ + uint32_t) + +struct msm_adc_aio_result { + uint32_t chan; + int result; +}; + +/* + * Read the results from an AIO / non-blocking conversion request. AIO_POLL + * should be used before using this command to verify how many pending requests + * are available for the file descriptor. This call will fail with errno set to + * ENOMSG if there are no pending messages to be read at the time of the call. + * The call will return ENODATA if there is an invalid result returned by the + * modem driver. + */ +#define MSM_ADC_AIO_READ _IOR(MSM_ADC_IOCTL_CODE, 5, \ + struct adc_chan_result) + +struct msm_adc_lookup { + /* channel name (input) */ + char name[MSM_ADC_MAX_CHAN_STR]; + /* local channel index (output) */ + uint32_t chan_idx; +}; + +/* + * Look up a channel name and get back an index that can be used + * as a parameter to the conversion request commands. + */ +#define MSM_ADC_LOOKUP _IOWR(MSM_ADC_IOCTL_CODE, 6, \ + struct msm_adc_lookup) + +#endif /* _MSM_ADC_H */ diff --git a/kernel_headers/linux/msm_adsp.h b/kernel_headers/linux/msm_adsp.h new file mode 100644 index 0000000..1273169 --- /dev/null +++ b/kernel_headers/linux/msm_adsp.h @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2007 Google, Inc. + * Author: Iliyan Malchev + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#ifndef _LINUX_MSM_ADSP_H +#define _LINUX_MSM_ADSP_H + +#include +#include + +#define ADSP_IOCTL_MAGIC 'q' + +/* ADSP_IOCTL_WRITE_COMMAND */ +struct adsp_command_t { + uint16_t queue; + uint32_t len; /* bytes */ + uint8_t *data; +}; + +/* ADSP_IOCTL_GET_EVENT */ +struct adsp_event_t { + uint16_t type; /* 1 == event (RPC), 0 == message (adsp) */ + uint32_t timeout_ms; /* -1 for infinite, 0 for immediate return */ + uint16_t msg_id; + uint16_t flags; /* 1 == 16--bit event, 0 == 32-bit event */ + uint32_t len; /* size in, number of bytes out */ + uint8_t *data; +}; + +#define ADSP_IOCTL_ENABLE \ + _IOR(ADSP_IOCTL_MAGIC, 1, unsigned) + +#define ADSP_IOCTL_DISABLE \ + _IOR(ADSP_IOCTL_MAGIC, 2, unsigned) + +#define ADSP_IOCTL_DISABLE_ACK \ + _IOR(ADSP_IOCTL_MAGIC, 3, unsigned) + +#define ADSP_IOCTL_WRITE_COMMAND \ + _IOR(ADSP_IOCTL_MAGIC, 4, struct adsp_command_t *) + +#define ADSP_IOCTL_GET_EVENT \ + _IOWR(ADSP_IOCTL_MAGIC, 5, struct adsp_event_data_t *) + +#define ADSP_IOCTL_SET_CLKRATE \ + _IOR(ADSP_IOCTL_MAGIC, 6, unsigned) + +#define ADSP_IOCTL_DISABLE_EVENT_RSP \ + _IOR(ADSP_IOCTL_MAGIC, 10, unsigned) + +#define ADSP_IOCTL_REGISTER_PMEM \ + _IOW(ADSP_IOCTL_MAGIC, 13, unsigned) + +#define ADSP_IOCTL_UNREGISTER_PMEM \ + _IOW(ADSP_IOCTL_MAGIC, 14, unsigned) + +/* Cause any further GET_EVENT ioctls to fail (-ENODEV) + * until the device is closed and reopened. Useful for + * terminating event dispatch threads + */ +#define ADSP_IOCTL_ABORT_EVENT_READ \ + _IOW(ADSP_IOCTL_MAGIC, 15, unsigned) + +#define ADSP_IOCTL_LINK_TASK \ + _IOW(ADSP_IOCTL_MAGIC, 16, unsigned) + +#endif diff --git a/kernel_headers/linux/msm_audio.h b/kernel_headers/linux/msm_audio.h new file mode 100644 index 0000000..24a261a --- /dev/null +++ b/kernel_headers/linux/msm_audio.h @@ -0,0 +1,424 @@ +/* include/linux/msm_audio.h + * + * Copyright (C) 2008 Google, Inc. + * Copyright (c) 2012 The Linux Foundation. All rights reserved. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _LINUX_MSM_AUDIO_H +#define _LINUX_MSM_AUDIO_H + +#include +#include + +/* PCM Audio */ + +#define AUDIO_IOCTL_MAGIC 'a' + +#define AUDIO_START _IOW(AUDIO_IOCTL_MAGIC, 0, unsigned) +#define AUDIO_STOP _IOW(AUDIO_IOCTL_MAGIC, 1, unsigned) +#define AUDIO_FLUSH _IOW(AUDIO_IOCTL_MAGIC, 2, unsigned) +#define AUDIO_GET_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 3, \ + struct msm_audio_config) +#define AUDIO_SET_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 4, \ + struct msm_audio_config) +#define AUDIO_GET_STATS _IOR(AUDIO_IOCTL_MAGIC, 5, \ + struct msm_audio_stats) +#define AUDIO_ENABLE_AUDPP _IOW(AUDIO_IOCTL_MAGIC, 6, unsigned) +#define AUDIO_SET_ADRC _IOW(AUDIO_IOCTL_MAGIC, 7, unsigned) +#define AUDIO_SET_EQ _IOW(AUDIO_IOCTL_MAGIC, 8, unsigned) +#define AUDIO_SET_RX_IIR _IOW(AUDIO_IOCTL_MAGIC, 9, unsigned) +#define AUDIO_SET_VOLUME _IOW(AUDIO_IOCTL_MAGIC, 10, unsigned) +#define AUDIO_PAUSE _IOW(AUDIO_IOCTL_MAGIC, 11, unsigned) +#define AUDIO_PLAY_DTMF _IOW(AUDIO_IOCTL_MAGIC, 12, unsigned) +#define AUDIO_GET_EVENT _IOR(AUDIO_IOCTL_MAGIC, 13, \ + struct msm_audio_event) +#define AUDIO_ABORT_GET_EVENT _IOW(AUDIO_IOCTL_MAGIC, 14, unsigned) +#define AUDIO_REGISTER_PMEM _IOW(AUDIO_IOCTL_MAGIC, 15, unsigned) +#define AUDIO_DEREGISTER_PMEM _IOW(AUDIO_IOCTL_MAGIC, 16, unsigned) +#define AUDIO_ASYNC_WRITE _IOW(AUDIO_IOCTL_MAGIC, 17, \ + struct msm_audio_aio_buf) +#define AUDIO_ASYNC_READ _IOW(AUDIO_IOCTL_MAGIC, 18, \ + struct msm_audio_aio_buf) +#define AUDIO_SET_INCALL _IOW(AUDIO_IOCTL_MAGIC, 19, struct msm_voicerec_mode) +#define AUDIO_GET_NUM_SND_DEVICE _IOR(AUDIO_IOCTL_MAGIC, 20, unsigned) +#define AUDIO_GET_SND_DEVICES _IOWR(AUDIO_IOCTL_MAGIC, 21, \ + struct msm_snd_device_list) +#define AUDIO_ENABLE_SND_DEVICE _IOW(AUDIO_IOCTL_MAGIC, 22, unsigned) +#define AUDIO_DISABLE_SND_DEVICE _IOW(AUDIO_IOCTL_MAGIC, 23, unsigned) +#define AUDIO_ROUTE_STREAM _IOW(AUDIO_IOCTL_MAGIC, 24, \ + struct msm_audio_route_config) +#define AUDIO_GET_PCM_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 30, unsigned) +#define AUDIO_SET_PCM_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 31, unsigned) +#define AUDIO_SWITCH_DEVICE _IOW(AUDIO_IOCTL_MAGIC, 32, unsigned) +#define AUDIO_SET_MUTE _IOW(AUDIO_IOCTL_MAGIC, 33, unsigned) +#define AUDIO_UPDATE_ACDB _IOW(AUDIO_IOCTL_MAGIC, 34, unsigned) +#define AUDIO_START_VOICE _IOW(AUDIO_IOCTL_MAGIC, 35, unsigned) +#define AUDIO_STOP_VOICE _IOW(AUDIO_IOCTL_MAGIC, 36, unsigned) +#define AUDIO_REINIT_ACDB _IOW(AUDIO_IOCTL_MAGIC, 39, unsigned) +#define AUDIO_OUTPORT_FLUSH _IOW(AUDIO_IOCTL_MAGIC, 40, unsigned short) +#define AUDIO_SET_ERR_THRESHOLD_VALUE _IOW(AUDIO_IOCTL_MAGIC, 41, \ + unsigned short) +#define AUDIO_GET_BITSTREAM_ERROR_INFO _IOR(AUDIO_IOCTL_MAGIC, 42, \ + struct msm_audio_bitstream_error_info) + +#define AUDIO_SET_SRS_TRUMEDIA_PARAM _IOW(AUDIO_IOCTL_MAGIC, 43, unsigned) + +/* Qualcomm extensions */ +#define AUDIO_SET_STREAM_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 80, \ + struct msm_audio_stream_config) +#define AUDIO_GET_STREAM_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 81, \ + struct msm_audio_stream_config) +#define AUDIO_GET_SESSION_ID _IOR(AUDIO_IOCTL_MAGIC, 82, unsigned short) +#define AUDIO_GET_STREAM_INFO _IOR(AUDIO_IOCTL_MAGIC, 83, \ + struct msm_audio_bitstream_info) +#define AUDIO_SET_PAN _IOW(AUDIO_IOCTL_MAGIC, 84, unsigned) +#define AUDIO_SET_QCONCERT_PLUS _IOW(AUDIO_IOCTL_MAGIC, 85, unsigned) +#define AUDIO_SET_MBADRC _IOW(AUDIO_IOCTL_MAGIC, 86, unsigned) +#define AUDIO_SET_VOLUME_PATH _IOW(AUDIO_IOCTL_MAGIC, 87, \ + struct msm_vol_info) +#define AUDIO_SET_MAX_VOL_ALL _IOW(AUDIO_IOCTL_MAGIC, 88, unsigned) +#define AUDIO_ENABLE_AUDPRE _IOW(AUDIO_IOCTL_MAGIC, 89, unsigned) +#define AUDIO_SET_AGC _IOW(AUDIO_IOCTL_MAGIC, 90, unsigned) +#define AUDIO_SET_NS _IOW(AUDIO_IOCTL_MAGIC, 91, unsigned) +#define AUDIO_SET_TX_IIR _IOW(AUDIO_IOCTL_MAGIC, 92, unsigned) +#define AUDIO_GET_BUF_CFG _IOW(AUDIO_IOCTL_MAGIC, 93, \ + struct msm_audio_buf_cfg) +#define AUDIO_SET_BUF_CFG _IOW(AUDIO_IOCTL_MAGIC, 94, \ + struct msm_audio_buf_cfg) +#define AUDIO_SET_ACDB_BLK _IOW(AUDIO_IOCTL_MAGIC, 95, \ + struct msm_acdb_cmd_device) +#define AUDIO_GET_ACDB_BLK _IOW(AUDIO_IOCTL_MAGIC, 96, \ + struct msm_acdb_cmd_device) + +#define AUDIO_REGISTER_ION _IOW(AUDIO_IOCTL_MAGIC, 97, \ + struct msm_audio_ion_info) +#define AUDIO_DEREGISTER_ION _IOW(AUDIO_IOCTL_MAGIC, 98, \ + struct msm_audio_ion_info) + +#define AUDIO_MAX_COMMON_IOCTL_NUM 100 + + +#define HANDSET_MIC 0x01 +#define HANDSET_SPKR 0x02 +#define HEADSET_MIC 0x03 +#define HEADSET_SPKR_MONO 0x04 +#define HEADSET_SPKR_STEREO 0x05 +#define SPKR_PHONE_MIC 0x06 +#define SPKR_PHONE_MONO 0x07 +#define SPKR_PHONE_STEREO 0x08 +#define BT_SCO_MIC 0x09 +#define BT_SCO_SPKR 0x0A +#define BT_A2DP_SPKR 0x0B +#define TTY_HEADSET_MIC 0x0C +#define TTY_HEADSET_SPKR 0x0D + +/* Default devices are not supported in a */ +/* device switching context. Only supported */ +/* for stream devices. */ +/* DO NOT USE */ +#define DEFAULT_TX 0x0E +#define DEFAULT_RX 0x0F + +#define BT_A2DP_TX 0x10 + +#define HEADSET_MONO_PLUS_SPKR_MONO_RX 0x11 +#define HEADSET_MONO_PLUS_SPKR_STEREO_RX 0x12 +#define HEADSET_STEREO_PLUS_SPKR_MONO_RX 0x13 +#define HEADSET_STEREO_PLUS_SPKR_STEREO_RX 0x14 + +#define I2S_RX 0x20 +#define I2S_TX 0x21 + +#define ADRC_ENABLE 0x0001 +#define EQ_ENABLE 0x0002 +#define IIR_ENABLE 0x0004 +#define QCONCERT_PLUS_ENABLE 0x0008 +#define MBADRC_ENABLE 0x0010 +#define SRS_ENABLE 0x0020 +#define SRS_DISABLE 0x0040 + +#define AGC_ENABLE 0x0001 +#define NS_ENABLE 0x0002 +#define TX_IIR_ENABLE 0x0004 +#define FLUENCE_ENABLE 0x0008 + +#define VOC_REC_UPLINK 0x00 +#define VOC_REC_DOWNLINK 0x01 +#define VOC_REC_BOTH 0x02 + +struct msm_audio_config { + uint32_t buffer_size; + uint32_t buffer_count; + uint32_t channel_count; + uint32_t sample_rate; + uint32_t type; + uint32_t meta_field; + uint32_t bits; + uint32_t unused[3]; +}; + +struct msm_audio_stream_config { + uint32_t buffer_size; + uint32_t buffer_count; +}; + +struct msm_audio_buf_cfg{ + uint32_t meta_info_enable; + uint32_t frames_per_buf; +}; + +struct msm_audio_stats { + uint32_t byte_count; + uint32_t sample_count; + uint32_t unused[2]; +}; + +struct msm_audio_ion_info { + int fd; + void *vaddr; +}; + +struct msm_audio_pmem_info { + int fd; + void *vaddr; +}; + +struct msm_audio_aio_buf { + void *buf_addr; + uint32_t buf_len; + uint32_t data_len; + void *private_data; + unsigned short mfield_sz; /*only useful for data has meta field */ +}; + +/* Audio routing */ + +#define SND_IOCTL_MAGIC 's' + +#define SND_MUTE_UNMUTED 0 +#define SND_MUTE_MUTED 1 + +struct msm_mute_info { + uint32_t mute; + uint32_t path; +}; + +struct msm_vol_info { + uint32_t vol; + uint32_t path; +}; + +struct msm_voicerec_mode { + uint32_t rec_mode; +}; + +struct msm_snd_device_config { + uint32_t device; + uint32_t ear_mute; + uint32_t mic_mute; +}; + +#define SND_SET_DEVICE _IOW(SND_IOCTL_MAGIC, 2, struct msm_device_config *) + +enum cad_device_path_type { + CAD_DEVICE_PATH_RX, /*For Decoding session*/ + CAD_DEVICE_PATH_TX, /* For Encoding session*/ + CAD_DEVICE_PATH_RX_TX, /* For Voice call */ + CAD_DEVICE_PATH_LB, /* For loopback (FM Analog)*/ + CAD_DEVICE_PATH_MAX +}; + +struct cad_devices_type { + uint32_t rx_device; + uint32_t tx_device; + enum cad_device_path_type pathtype; +}; + +struct msm_cad_device_config { + struct cad_devices_type device; + uint32_t ear_mute; + uint32_t mic_mute; +}; + +#define CAD_SET_DEVICE _IOW(SND_IOCTL_MAGIC, 2, struct msm_cad_device_config *) + +#define SND_METHOD_VOICE 0 +#define SND_METHOD_MIDI 4 + +struct msm_snd_volume_config { + uint32_t device; + uint32_t method; + uint32_t volume; +}; + +#define SND_SET_VOLUME _IOW(SND_IOCTL_MAGIC, 3, struct msm_snd_volume_config *) + +struct msm_cad_volume_config { + struct cad_devices_type device; + uint32_t method; + uint32_t volume; +}; + +#define CAD_SET_VOLUME _IOW(SND_IOCTL_MAGIC, 3, struct msm_cad_volume_config *) + +/* Returns the number of SND endpoints supported. */ + +#define SND_GET_NUM_ENDPOINTS _IOR(SND_IOCTL_MAGIC, 4, unsigned *) + +struct msm_snd_endpoint { + int id; /* input and output */ + char name[64]; /* output only */ +}; + +/* Takes an index between 0 and one less than the number returned by + * SND_GET_NUM_ENDPOINTS, and returns the SND index and name of a + * SND endpoint. On input, the .id field contains the number of the + * endpoint, and on exit it contains the SND index, while .name contains + * the description of the endpoint. + */ + +#define SND_GET_ENDPOINT _IOWR(SND_IOCTL_MAGIC, 5, struct msm_snd_endpoint *) + + +#define SND_AVC_CTL _IOW(SND_IOCTL_MAGIC, 6, unsigned *) +#define SND_AGC_CTL _IOW(SND_IOCTL_MAGIC, 7, unsigned *) + +/*return the number of CAD endpoints supported. */ + +#define CAD_GET_NUM_ENDPOINTS _IOR(SND_IOCTL_MAGIC, 4, unsigned *) + +struct msm_cad_endpoint { + int id; /* input and output */ + char name[64]; /* output only */ +}; + +/* Takes an index between 0 and one less than the number returned by + * SND_GET_NUM_ENDPOINTS, and returns the CAD index and name of a + * CAD endpoint. On input, the .id field contains the number of the + * endpoint, and on exit it contains the SND index, while .name contains + * the description of the endpoint. + */ + +#define CAD_GET_ENDPOINT _IOWR(SND_IOCTL_MAGIC, 5, struct msm_cad_endpoint *) + +struct msm_audio_pcm_config { + uint32_t pcm_feedback; /* 0 - disable > 0 - enable */ + uint32_t buffer_count; /* Number of buffers to allocate */ + uint32_t buffer_size; /* Size of buffer for capturing of + PCM samples */ +}; + +#define AUDIO_EVENT_SUSPEND 0 +#define AUDIO_EVENT_RESUME 1 +#define AUDIO_EVENT_WRITE_DONE 2 +#define AUDIO_EVENT_READ_DONE 3 +#define AUDIO_EVENT_STREAM_INFO 4 +#define AUDIO_EVENT_BITSTREAM_ERROR_INFO 5 + +#define AUDIO_CODEC_TYPE_MP3 0 +#define AUDIO_CODEC_TYPE_AAC 1 + +struct msm_audio_bitstream_info { + uint32_t codec_type; + uint32_t chan_info; + uint32_t sample_rate; + uint32_t bit_stream_info; + uint32_t bit_rate; + uint32_t unused[3]; +}; + +struct msm_audio_bitstream_error_info { + uint32_t dec_id; + uint32_t err_msg_indicator; + uint32_t err_type; +}; + +union msm_audio_event_payload { + struct msm_audio_aio_buf aio_buf; + struct msm_audio_bitstream_info stream_info; + struct msm_audio_bitstream_error_info error_info; + int reserved; +}; + +struct msm_audio_event { + int event_type; + int timeout_ms; + union msm_audio_event_payload event_payload; +}; + +#define MSM_SNDDEV_CAP_RX 0x1 +#define MSM_SNDDEV_CAP_TX 0x2 +#define MSM_SNDDEV_CAP_VOICE 0x4 + +struct msm_snd_device_info { + uint32_t dev_id; + uint32_t dev_cap; /* bitmask describe capability of device */ + char dev_name[64]; +}; + +struct msm_snd_device_list { + uint32_t num_dev; /* Indicate number of device info to be retrieved */ + struct msm_snd_device_info *list; +}; + +struct msm_dtmf_config { + uint16_t path; + uint16_t dtmf_hi; + uint16_t dtmf_low; + uint16_t duration; + uint16_t tx_gain; + uint16_t rx_gain; + uint16_t mixing; +}; + +#define AUDIO_ROUTE_STREAM_VOICE_RX 0 +#define AUDIO_ROUTE_STREAM_VOICE_TX 1 +#define AUDIO_ROUTE_STREAM_PLAYBACK 2 +#define AUDIO_ROUTE_STREAM_REC 3 + +struct msm_audio_route_config { + uint32_t stream_type; + uint32_t stream_id; + uint32_t dev_id; +}; + +#define AUDIO_MAX_EQ_BANDS 12 + +struct msm_audio_eq_band { + uint16_t band_idx; /* The band index, 0 .. 11 */ + uint32_t filter_type; /* Filter band type */ + uint32_t center_freq_hz; /* Filter band center frequency */ + uint32_t filter_gain; /* Filter band initial gain (dB) */ + /* Range is +12 dB to -12 dB with 1dB increments. */ + uint32_t q_factor; +} __attribute__ ((packed)); + +struct msm_audio_eq_stream_config { + uint32_t enable; /* Number of consequtive bands specified */ + uint32_t num_bands; + struct msm_audio_eq_band eq_bands[AUDIO_MAX_EQ_BANDS]; +} __attribute__ ((packed)); + +struct msm_acdb_cmd_device { + uint32_t command_id; + uint32_t device_id; + uint32_t network_id; + uint32_t sample_rate_id; /* Actual sample rate value */ + uint32_t interface_id; /* See interface id's above */ + uint32_t algorithm_block_id; /* See enumerations above */ + uint32_t total_bytes; /* Length in bytes used by buffer */ + uint32_t *phys_buf; /* Physical Address of data */ +}; + + +#endif diff --git a/kernel_headers/linux/msm_audio_aac.h b/kernel_headers/linux/msm_audio_aac.h new file mode 100644 index 0000000..fff0922 --- /dev/null +++ b/kernel_headers/linux/msm_audio_aac.h @@ -0,0 +1,76 @@ +#ifndef _MSM_AUDIO_AAC_H +#define _MSM_AUDIO_AAC_H + +#include + +#define AUDIO_SET_AAC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), struct msm_audio_aac_config) +#define AUDIO_GET_AAC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), struct msm_audio_aac_config) + +#define AUDIO_SET_AAC_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+3), struct msm_audio_aac_enc_config) + +#define AUDIO_GET_AAC_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+4), struct msm_audio_aac_enc_config) + +#define AUDIO_SET_AAC_MIX_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+5), uint32_t) + +#define AUDIO_AAC_FORMAT_ADTS -1 +#define AUDIO_AAC_FORMAT_RAW 0x0000 +#define AUDIO_AAC_FORMAT_PSUEDO_RAW 0x0001 +#define AUDIO_AAC_FORMAT_LOAS 0x0002 +#define AUDIO_AAC_FORMAT_ADIF 0x0003 + +#define AUDIO_AAC_OBJECT_LC 0x0002 +#define AUDIO_AAC_OBJECT_LTP 0x0004 +#define AUDIO_AAC_OBJECT_ERLC 0x0011 +#define AUDIO_AAC_OBJECT_BSAC 0x0016 + +#define AUDIO_AAC_SEC_DATA_RES_ON 0x0001 +#define AUDIO_AAC_SEC_DATA_RES_OFF 0x0000 + +#define AUDIO_AAC_SCA_DATA_RES_ON 0x0001 +#define AUDIO_AAC_SCA_DATA_RES_OFF 0x0000 + +#define AUDIO_AAC_SPEC_DATA_RES_ON 0x0001 +#define AUDIO_AAC_SPEC_DATA_RES_OFF 0x0000 + +#define AUDIO_AAC_SBR_ON_FLAG_ON 0x0001 +#define AUDIO_AAC_SBR_ON_FLAG_OFF 0x0000 + +#define AUDIO_AAC_SBR_PS_ON_FLAG_ON 0x0001 +#define AUDIO_AAC_SBR_PS_ON_FLAG_OFF 0x0000 + +/* Primary channel on both left and right channels */ +#define AUDIO_AAC_DUAL_MONO_PL_PR 0 +/* Secondary channel on both left and right channels */ +#define AUDIO_AAC_DUAL_MONO_SL_SR 1 +/* Primary channel on right channel and 2nd on left channel */ +#define AUDIO_AAC_DUAL_MONO_SL_PR 2 +/* 2nd channel on right channel and primary on left channel */ +#define AUDIO_AAC_DUAL_MONO_PL_SR 3 + +struct msm_audio_aac_config { + signed short format; + unsigned short audio_object; + unsigned short ep_config; /* 0 ~ 3 useful only obj = ERLC */ + unsigned short aac_section_data_resilience_flag; + unsigned short aac_scalefactor_data_resilience_flag; + unsigned short aac_spectral_data_resilience_flag; + unsigned short sbr_on_flag; + unsigned short sbr_ps_on_flag; + unsigned short dual_mono_mode; + unsigned short channel_configuration; + unsigned short sample_rate; +}; + +struct msm_audio_aac_enc_config { + uint32_t channels; + uint32_t sample_rate; + uint32_t bit_rate; + uint32_t stream_format; +}; + +#endif /* _MSM_AUDIO_AAC_H */ diff --git a/kernel_headers/linux/msm_audio_ac3.h b/kernel_headers/linux/msm_audio_ac3.h new file mode 100644 index 0000000..f9cc53c --- /dev/null +++ b/kernel_headers/linux/msm_audio_ac3.h @@ -0,0 +1,41 @@ +#ifndef _MSM_AUDIO_AC3_H +#define _MSM_AUDIO_AC3_H + +#include + +#define AUDIO_SET_AC3_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned) +#define AUDIO_GET_AC3_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned) + +#define AUDAC3_DEF_WORDSIZE 0 +#define AUDAC3_DEF_USER_DOWNMIX_FLAG 0x0 +#define AUDAC3_DEF_USER_KARAOKE_FLAG 0x0 +#define AUDAC3_DEF_ERROR_CONCEALMENT 0 +#define AUDAC3_DEF_MAX_REPEAT_COUNT 0 + +struct msm_audio_ac3_config { + unsigned short numChans; + unsigned short wordSize; + unsigned short kCapableMode; + unsigned short compMode; + unsigned short outLfeOn; + unsigned short outputMode; + unsigned short stereoMode; + unsigned short dualMonoMode; + unsigned short fsCod; + unsigned short pcmScaleFac; + unsigned short dynRngScaleHi; + unsigned short dynRngScaleLow; + unsigned short user_downmix_flag; + unsigned short user_karaoke_flag; + unsigned short dm_address_high; + unsigned short dm_address_low; + unsigned short ko_address_high; + unsigned short ko_address_low; + unsigned short error_concealment; + unsigned short max_rep_count; + unsigned short channel_routing_mode[6]; +}; + +#endif /* _MSM_AUDIO_AC3_H */ diff --git a/kernel_headers/linux/msm_audio_amrnb.h b/kernel_headers/linux/msm_audio_amrnb.h new file mode 100644 index 0000000..15965e6 --- /dev/null +++ b/kernel_headers/linux/msm_audio_amrnb.h @@ -0,0 +1,33 @@ +#ifndef _MSM_AUDIO_AMRNB_H +#define _MSM_AUDIO_AMRNB_H + +#include + +#define AUDIO_GET_AMRNB_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned) +#define AUDIO_SET_AMRNB_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned) +#define AUDIO_GET_AMRNB_ENC_CONFIG_V2 _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+2), \ + struct msm_audio_amrnb_enc_config_v2) +#define AUDIO_SET_AMRNB_ENC_CONFIG_V2 _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+3), \ + struct msm_audio_amrnb_enc_config_v2) + +struct msm_audio_amrnb_enc_config { + unsigned short voicememoencweight1; + unsigned short voicememoencweight2; + unsigned short voicememoencweight3; + unsigned short voicememoencweight4; + unsigned short dtx_mode_enable; /* 0xFFFF - enable, 0- disable */ + unsigned short test_mode_enable; /* 0xFFFF - enable, 0- disable */ + unsigned short enc_mode; /* 0-MR475,1-MR515,2-MR59,3-MR67,4-MR74 + 5-MR795, 6- MR102, 7- MR122(default) */ +}; + +struct msm_audio_amrnb_enc_config_v2 { + uint32_t band_mode; + uint32_t dtx_enable; + uint32_t frame_format; +}; +#endif /* _MSM_AUDIO_AMRNB_H */ diff --git a/kernel_headers/linux/msm_audio_amrwb.h b/kernel_headers/linux/msm_audio_amrwb.h new file mode 100644 index 0000000..0d55397 --- /dev/null +++ b/kernel_headers/linux/msm_audio_amrwb.h @@ -0,0 +1,18 @@ +#ifndef _MSM_AUDIO_AMRWB_H +#define _MSM_AUDIO_AMRWB_H + +#include + +#define AUDIO_GET_AMRWB_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), \ + struct msm_audio_amrwb_enc_config) +#define AUDIO_SET_AMRWB_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), \ + struct msm_audio_amrwb_enc_config) + +struct msm_audio_amrwb_enc_config { + uint32_t band_mode; + uint32_t dtx_enable; + uint32_t frame_format; +}; +#endif /* _MSM_AUDIO_AMRWB_H */ diff --git a/kernel_headers/linux/msm_audio_amrwbplus.h b/kernel_headers/linux/msm_audio_amrwbplus.h new file mode 100644 index 0000000..5b8a980 --- /dev/null +++ b/kernel_headers/linux/msm_audio_amrwbplus.h @@ -0,0 +1,18 @@ +#ifndef _MSM_AUDIO_AMR_WB_PLUS_H +#define _MSM_AUDIO_AMR_WB_PLUS_H + +#define AUDIO_GET_AMRWBPLUS_CONFIG_V2 _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+2), struct msm_audio_amrwbplus_config_v2) +#define AUDIO_SET_AMRWBPLUS_CONFIG_V2 _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+3), struct msm_audio_amrwbplus_config_v2) + +struct msm_audio_amrwbplus_config_v2 { + unsigned int size_bytes; + unsigned int version; + unsigned int num_channels; + unsigned int amr_band_mode; + unsigned int amr_dtx_mode; + unsigned int amr_frame_fmt; + unsigned int amr_lsf_idx; +}; +#endif /* _MSM_AUDIO_AMR_WB_PLUS_H */ diff --git a/kernel_headers/linux/msm_audio_calibration.h b/kernel_headers/linux/msm_audio_calibration.h new file mode 100644 index 0000000..092d03c --- /dev/null +++ b/kernel_headers/linux/msm_audio_calibration.h @@ -0,0 +1,561 @@ +#ifndef _MSM_AUDIO_CALIBRATION_H +#define _MSM_AUDIO_CALIBRATION_H + +#include +#include + +#define CAL_IOCTL_MAGIC 'a' + +#define AUDIO_ALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ + 200, void *) +#define AUDIO_DEALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ + 201, void *) +#define AUDIO_PREPARE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ + 202, void *) +#define AUDIO_SET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ + 203, void *) +#define AUDIO_GET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ + 204, void *) +#define AUDIO_POST_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ + 205, void *) + +/* For Real-Time Audio Calibration */ +#define AUDIO_GET_RTAC_ADM_INFO _IOR(CAL_IOCTL_MAGIC, \ + 207, void *) +#define AUDIO_GET_RTAC_VOICE_INFO _IOR(CAL_IOCTL_MAGIC, \ + 208, void *) +#define AUDIO_GET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 209, void *) +#define AUDIO_SET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 210, void *) +#define AUDIO_GET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 211, void *) +#define AUDIO_SET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 212, void *) +#define AUDIO_GET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 213, void *) +#define AUDIO_SET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 214, void *) +#define AUDIO_GET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 215, void *) +#define AUDIO_SET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 216, void *) +#define AUDIO_GET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 217, void *) +#define AUDIO_SET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, \ + 218, void *) +enum { + CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0, + CVP_VOC_TX_TOPOLOGY_CAL_TYPE, + CVP_VOCPROC_STATIC_CAL_TYPE, + CVP_VOCPROC_DYNAMIC_CAL_TYPE, + CVS_VOCSTRM_STATIC_CAL_TYPE, + CVP_VOCDEV_CFG_CAL_TYPE, + CVP_VOCPROC_STATIC_COL_CAL_TYPE, + CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE, + CVS_VOCSTRM_STATIC_COL_CAL_TYPE, + + ADM_TOPOLOGY_CAL_TYPE, + ADM_CUST_TOPOLOGY_CAL_TYPE, + ADM_AUDPROC_CAL_TYPE, + ADM_AUDVOL_CAL_TYPE, + + ASM_TOPOLOGY_CAL_TYPE, + ASM_CUST_TOPOLOGY_CAL_TYPE, + ASM_AUDSTRM_CAL_TYPE, + + AFE_COMMON_RX_CAL_TYPE, + AFE_COMMON_TX_CAL_TYPE, + AFE_ANC_CAL_TYPE, + AFE_AANC_CAL_TYPE, + AFE_FB_SPKR_PROT_CAL_TYPE, + AFE_HW_DELAY_CAL_TYPE, + AFE_SIDETONE_CAL_TYPE, + + LSM_CAL_TYPE, + + ADM_RTAC_INFO_CAL_TYPE, + VOICE_RTAC_INFO_CAL_TYPE, + ADM_RTAC_APR_CAL_TYPE, + ASM_RTAC_APR_CAL_TYPE, + VOICE_RTAC_APR_CAL_TYPE, + + MAD_CAL_TYPE, + ULP_AFE_CAL_TYPE, + ULP_LSM_CAL_TYPE, + + DTS_EAGLE_CAL_TYPE, + AUDIO_CORE_METAINFO_CAL_TYPE, + SRS_TRUMEDIA_CAL_TYPE, + + MAX_CAL_TYPES, +}; + +enum { + VERSION_0_0, +}; + +enum { + PER_VOCODER_CAL_BIT_MASK = 0x10000, +}; + +#define MAX_IOCTL_CMD_SIZE 512 + +/* common structures */ + +struct audio_cal_header { + int32_t data_size; + int32_t version; + int32_t cal_type; + int32_t cal_type_size; +}; + +struct audio_cal_type_header { + int32_t version; + int32_t buffer_number; +}; + +struct audio_cal_data { + /* Size of cal data at mem_handle allocation or at vaddr */ + int32_t cal_size; + /* If mem_handle if shared memory is used*/ + int32_t mem_handle; + /* size of virtual memory if shared memory not used */ +}; + + +/* AUDIO_ALLOCATE_CALIBRATION */ +struct audio_cal_type_alloc { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; +}; + +struct audio_cal_alloc { + struct audio_cal_header hdr; + struct audio_cal_type_alloc cal_type; +}; + + +/* AUDIO_DEALLOCATE_CALIBRATION */ +struct audio_cal_type_dealloc { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; +}; + +struct audio_cal_dealloc { + struct audio_cal_header hdr; + struct audio_cal_type_dealloc cal_type; +}; + + +/* AUDIO_PREPARE_CALIBRATION */ +struct audio_cal_type_prepare { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; +}; + +struct audio_cal_prepare { + struct audio_cal_header hdr; + struct audio_cal_type_prepare cal_type; +}; + + +/* AUDIO_POST_CALIBRATION */ +struct audio_cal_type_post { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; +}; + +struct audio_cal_post { + struct audio_cal_header hdr; + struct audio_cal_type_post cal_type; +}; + +/*AUDIO_CORE_META_INFO */ + +struct audio_cal_info_metainfo { + uint32_t nKey; +}; + +/* Cal info types */ +enum { + RX_DEVICE, + TX_DEVICE, + MAX_PATH_TYPE +}; + +struct audio_cal_info_adm_top { + int32_t topology; + int32_t acdb_id; + /* RX_DEVICE or TX_DEVICE */ + int32_t path; + int32_t app_type; + int32_t sample_rate; +}; + +struct audio_cal_info_audproc { + int32_t acdb_id; + /* RX_DEVICE or TX_DEVICE */ + int32_t path; + int32_t app_type; + int32_t sample_rate; +}; + +struct audio_cal_info_audvol { + int32_t acdb_id; + /* RX_DEVICE or TX_DEVICE */ + int32_t path; + int32_t app_type; + int32_t vol_index; +}; + +struct audio_cal_info_afe { + int32_t acdb_id; + /* RX_DEVICE or TX_DEVICE */ + int32_t path; + int32_t sample_rate; +}; + +struct audio_cal_info_asm_top { + int32_t topology; + int32_t app_type; +}; + +struct audio_cal_info_audstrm { + int32_t app_type; +}; + +struct audio_cal_info_aanc { + int32_t acdb_id; +}; + +#define MAX_HW_DELAY_ENTRIES 25 + +struct audio_cal_hw_delay_entry { + uint32_t sample_rate; + uint32_t delay_usec; +}; + +struct audio_cal_hw_delay_data { + uint32_t num_entries; + struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES]; +}; + +struct audio_cal_info_hw_delay { + int32_t acdb_id; + /* RX_DEVICE or TX_DEVICE */ + int32_t path; + int32_t property_type; + struct audio_cal_hw_delay_data data; +}; + +enum msm_spkr_prot_states { + MSM_SPKR_PROT_CALIBRATED, + MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS, + MSM_SPKR_PROT_DISABLED, + MSM_SPKR_PROT_NOT_CALIBRATED +}; + +enum msm_spkr_count { + SP_V2_SPKR_1, + SP_V2_SPKR_2, + SP_V2_NUM_MAX_SPKRS +}; + +struct audio_cal_info_spk_prot_cfg { + int32_t r0[SP_V2_NUM_MAX_SPKRS]; + int32_t t0[SP_V2_NUM_MAX_SPKRS]; + uint32_t quick_calib_flag; + uint32_t mode; /*0 - Start spk prot + 1 - Start calib + 2 - Disable spk prot*/ +}; + +struct audio_cal_info_msm_spk_prot_status { + int32_t r0[SP_V2_NUM_MAX_SPKRS]; + int32_t status; +}; + +struct audio_cal_info_sidetone { + uint16_t enable; + uint16_t gain; + int32_t tx_acdb_id; + int32_t rx_acdb_id; + int32_t mid; + int32_t pid; +}; + +struct audio_cal_info_lsm { + int32_t acdb_id; + /* RX_DEVICE or TX_DEVICE */ + int32_t path; + int32_t app_type; +}; + +struct audio_cal_info_voc_top { + int32_t topology; + int32_t acdb_id; +}; + +struct audio_cal_info_vocproc { + int32_t tx_acdb_id; + int32_t rx_acdb_id; + int32_t tx_sample_rate; + int32_t rx_sample_rate; +}; + +enum { + DEFAULT_FEATURE_SET, + VOL_BOOST_FEATURE_SET, +}; + +struct audio_cal_info_vocvol { + int32_t tx_acdb_id; + int32_t rx_acdb_id; + /* DEFUALT_ or VOL_BOOST_FEATURE_SET */ + int32_t feature_set; +}; + +struct audio_cal_info_vocdev_cfg { + int32_t tx_acdb_id; + int32_t rx_acdb_id; +}; + +#define MAX_VOICE_COLUMNS 20 + +union audio_cal_col_na { + uint8_t val8; + uint16_t val16; + uint32_t val32; + uint64_t val64; +} __attribute__((packed)); + +struct audio_cal_col { + uint32_t id; + uint32_t type; + union audio_cal_col_na na_value; +} __attribute__((packed)); + +struct audio_cal_col_data { + uint32_t num_columns; + struct audio_cal_col column[MAX_VOICE_COLUMNS]; +} __attribute__((packed)); + +struct audio_cal_info_voc_col { + int32_t table_id; + int32_t tx_acdb_id; + int32_t rx_acdb_id; + struct audio_cal_col_data data; +}; + +/* AUDIO_SET_CALIBRATION & */ +struct audio_cal_type_basic { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; +}; + +struct audio_cal_basic { + struct audio_cal_header hdr; + struct audio_cal_type_basic cal_type; +}; + +struct audio_cal_type_adm_top { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_adm_top cal_info; +}; + +struct audio_cal_adm_top { + struct audio_cal_header hdr; + struct audio_cal_type_adm_top cal_type; +}; + +struct audio_cal_type_metainfo { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_metainfo cal_info; +}; + +struct audio_core_metainfo { + struct audio_cal_header hdr; + struct audio_cal_type_metainfo cal_type; +}; + +struct audio_cal_type_audproc { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_audproc cal_info; +}; + +struct audio_cal_audproc { + struct audio_cal_header hdr; + struct audio_cal_type_audproc cal_type; +}; + +struct audio_cal_type_audvol { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_audvol cal_info; +}; + +struct audio_cal_audvol { + struct audio_cal_header hdr; + struct audio_cal_type_audvol cal_type; +}; + +struct audio_cal_type_asm_top { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_asm_top cal_info; +}; + +struct audio_cal_asm_top { + struct audio_cal_header hdr; + struct audio_cal_type_asm_top cal_type; +}; + +struct audio_cal_type_audstrm { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_audstrm cal_info; +}; + +struct audio_cal_audstrm { + struct audio_cal_header hdr; + struct audio_cal_type_audstrm cal_type; +}; + +struct audio_cal_type_afe { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_afe cal_info; +}; + +struct audio_cal_afe { + struct audio_cal_header hdr; + struct audio_cal_type_afe cal_type; +}; + +struct audio_cal_type_aanc { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_aanc cal_info; +}; + +struct audio_cal_aanc { + struct audio_cal_header hdr; + struct audio_cal_type_aanc cal_type; +}; + +struct audio_cal_type_fb_spk_prot_cfg { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_spk_prot_cfg cal_info; +}; + +struct audio_cal_fb_spk_prot_cfg { + struct audio_cal_header hdr; + struct audio_cal_type_fb_spk_prot_cfg cal_type; +}; + +struct audio_cal_type_hw_delay { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_hw_delay cal_info; +}; + +struct audio_cal_hw_delay { + struct audio_cal_header hdr; + struct audio_cal_type_hw_delay cal_type; +}; + +struct audio_cal_type_sidetone { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_sidetone cal_info; +}; + +struct audio_cal_sidetone { + struct audio_cal_header hdr; + struct audio_cal_type_sidetone cal_type; +}; + +struct audio_cal_type_lsm { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_lsm cal_info; +}; + +struct audio_cal_lsm { + struct audio_cal_header hdr; + struct audio_cal_type_lsm cal_type; +}; + +struct audio_cal_type_voc_top { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_voc_top cal_info; +}; + +struct audio_cal_voc_top { + struct audio_cal_header hdr; + struct audio_cal_type_voc_top cal_type; +}; + +struct audio_cal_type_vocproc { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_vocproc cal_info; +}; + +struct audio_cal_vocproc { + struct audio_cal_header hdr; + struct audio_cal_type_vocproc cal_type; +}; + +struct audio_cal_type_vocvol { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_vocvol cal_info; +}; + +struct audio_cal_vocvol { + struct audio_cal_header hdr; + struct audio_cal_type_vocvol cal_type; +}; + +struct audio_cal_type_vocdev_cfg { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_vocdev_cfg cal_info; +}; + +struct audio_cal_vocdev_cfg { + struct audio_cal_header hdr; + struct audio_cal_type_vocdev_cfg cal_type; +}; + +struct audio_cal_type_voc_col { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_voc_col cal_info; +}; + +struct audio_cal_voc_col { + struct audio_cal_header hdr; + struct audio_cal_type_voc_col cal_type; +}; + +/* AUDIO_GET_CALIBRATION */ +struct audio_cal_type_fb_spk_prot_status { + struct audio_cal_type_header cal_hdr; + struct audio_cal_data cal_data; + struct audio_cal_info_msm_spk_prot_status cal_info; +}; + +struct audio_cal_fb_spk_prot_status { + struct audio_cal_header hdr; + struct audio_cal_type_fb_spk_prot_status cal_type; +}; + +#endif /* _MSM_AUDIO_CALIBRATION_H */ diff --git a/kernel_headers/linux/msm_audio_mvs.h b/kernel_headers/linux/msm_audio_mvs.h new file mode 100644 index 0000000..980dbb7 --- /dev/null +++ b/kernel_headers/linux/msm_audio_mvs.h @@ -0,0 +1,154 @@ +#ifndef _MSM_AUDIO_MVS_H +#define _MSM_AUDIO_MVS_H + +#include + +#define AUDIO_GET_MVS_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM + 0), unsigned) +#define AUDIO_SET_MVS_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM + 1), unsigned) + +/* MVS modes */ +#define MVS_MODE_IS733 0x1 /*QCELP 13K*/ +#define MVS_MODE_IS127 0x2 /*EVRC-8k*/ +#define MVS_MODE_4GV_NB 0x3 /*EVRC-B*/ +#define MVS_MODE_4GV_WB 0x4 /*EVRC-WB*/ +#define MVS_MODE_AMR 0x5 +#define MVS_MODE_EFR 0x6 +#define MVS_MODE_FR 0x7 +#define MVS_MODE_HR 0x8 +#define MVS_MODE_LINEAR_PCM 0x9 +#define MVS_MODE_G711 0xA +#define MVS_MODE_PCM 0xC +#define MVS_MODE_AMR_WB 0xD +#define MVS_MODE_G729A 0xE +#define MVS_MODE_G711A 0xF +#define MVS_MODE_G722 0x10 +#define MVS_MODE_PCM_WB 0x12 + +enum msm_audio_amr_mode { + MVS_AMR_MODE_0475, /* AMR 4.75 kbps */ + MVS_AMR_MODE_0515, /* AMR 5.15 kbps */ + MVS_AMR_MODE_0590, /* AMR 5.90 kbps */ + MVS_AMR_MODE_0670, /* AMR 6.70 kbps */ + MVS_AMR_MODE_0740, /* AMR 7.40 kbps */ + MVS_AMR_MODE_0795, /* AMR 7.95 kbps */ + MVS_AMR_MODE_1020, /* AMR 10.20 kbps */ + MVS_AMR_MODE_1220, /* AMR 12.20 kbps */ + MVS_AMR_MODE_0660, /* AMR-WB 6.60 kbps */ + MVS_AMR_MODE_0885, /* AMR-WB 8.85 kbps */ + MVS_AMR_MODE_1265, /* AMR-WB 12.65 kbps */ + MVS_AMR_MODE_1425, /* AMR-WB 14.25 kbps */ + MVS_AMR_MODE_1585, /* AMR-WB 15.85 kbps */ + MVS_AMR_MODE_1825, /* AMR-WB 18.25 kbps */ + MVS_AMR_MODE_1985, /* AMR-WB 19.85 kbps */ + MVS_AMR_MODE_2305, /* AMR-WB 23.05 kbps */ + MVS_AMR_MODE_2385, /* AMR-WB 23.85 kbps */ + MVS_AMR_MODE_UNDEF +}; + +/*The MVS VOC rate type is used to identify the rate of QCELP 13K(IS733), +EVRC(IS127), 4GV, or 4GV-WB frame.*/ +enum msm_audio_voc_rate { + MVS_VOC_0_RATE, /* Blank frame */ + MVS_VOC_8_RATE, /* 1/8 rate */ + MVS_VOC_4_RATE, /* 1/4 rate */ + MVS_VOC_2_RATE, /* 1/2 rate */ + MVS_VOC_1_RATE,/* Full rate */ + MVS_VOC_ERASURE, /* erasure frame */ + MVS_VOC_RATE_MAX, + MVS_VOC_RATE_UNDEF = MVS_VOC_RATE_MAX +}; + +enum msm_audio_amr_frame_type { + MVS_AMR_SPEECH_GOOD, /* Good speech frame */ + MVS_AMR_SPEECH_DEGRADED, /* Speech degraded */ + MVS_AMR_ONSET, /* Onset */ + MVS_AMR_SPEECH_BAD, /* Corrupt speech frame (bad CRC) */ + MVS_AMR_SID_FIRST, /* First silence descriptor */ + MVS_AMR_SID_UPDATE, /* Comfort noise frame */ + MVS_AMR_SID_BAD, /* Corrupt SID frame (bad CRC) */ + MVS_AMR_NO_DATA, /* Nothing to transmit */ + MVS_AMR_SPEECH_LOST /* Downlink speech lost */ +}; + +enum msm_audio_g711a_mode { + MVS_G711A_MODE_MULAW, + MVS_G711A_MODE_ALAW +}; + +enum msm_audio_g711_mode { + MVS_G711_MODE_MULAW, + MVS_G711_MODE_ALAW +}; + +enum mvs_g722_mode_type { + MVS_G722_MODE_01, + MVS_G722_MODE_02, + MVS_G722_MODE_03, + MVS_G722_MODE_MAX, + MVS_G722_MODE_UNDEF +}; + +enum msm_audio_g711a_frame_type { + MVS_G711A_SPEECH_GOOD, + MVS_G711A_SID, + MVS_G711A_NO_DATA, + MVS_G711A_ERASURE +}; + +enum msm_audio_g729a_frame_type { + MVS_G729A_NO_DATA, + MVS_G729A_SPEECH_GOOD, + MVS_G729A_SID, + MVS_G729A_ERASURE +}; + +struct min_max_rate { + uint32_t min_rate; + uint32_t max_rate; +}; + +struct msm_audio_mvs_config { + uint32_t mvs_mode; + uint32_t rate_type; + struct min_max_rate min_max_rate; + uint32_t dtx_mode; +}; + +#define MVS_MAX_VOC_PKT_SIZE 640 + +struct gsm_header { + uint8_t bfi; + uint8_t sid; + uint8_t taf; + uint8_t ufi; +}; + +struct q6_msm_audio_mvs_frame { + union { + uint32_t frame_type; + uint32_t packet_rate; + struct gsm_header gsm_frame_type; + } header; + uint32_t len; + uint8_t voc_pkt[MVS_MAX_VOC_PKT_SIZE]; + +}; + +struct msm_audio_mvs_frame { + uint32_t frame_type; + uint32_t len; + uint8_t voc_pkt[MVS_MAX_VOC_PKT_SIZE]; + +}; + +#define Q5V2_MVS_MAX_VOC_PKT_SIZE 320 + +struct q5v2_msm_audio_mvs_frame { + uint32_t frame_type; + uint32_t len; + uint8_t voc_pkt[Q5V2_MVS_MAX_VOC_PKT_SIZE]; + +}; +#endif /* _MSM_AUDIO_MVS_H */ diff --git a/kernel_headers/linux/msm_audio_qcp.h b/kernel_headers/linux/msm_audio_qcp.h new file mode 100644 index 0000000..de8552a --- /dev/null +++ b/kernel_headers/linux/msm_audio_qcp.h @@ -0,0 +1,37 @@ +#ifndef _MSM_AUDIO_QCP_H +#define _MSM_AUDIO_QCP_H + +#include + +#define AUDIO_SET_QCELP_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + 0, struct msm_audio_qcelp_enc_config) + +#define AUDIO_GET_QCELP_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + 1, struct msm_audio_qcelp_enc_config) + +#define AUDIO_SET_EVRC_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + 2, struct msm_audio_evrc_enc_config) + +#define AUDIO_GET_EVRC_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + 3, struct msm_audio_evrc_enc_config) + +#define CDMA_RATE_BLANK 0x00 +#define CDMA_RATE_EIGHTH 0x01 +#define CDMA_RATE_QUARTER 0x02 +#define CDMA_RATE_HALF 0x03 +#define CDMA_RATE_FULL 0x04 +#define CDMA_RATE_ERASURE 0x05 + +struct msm_audio_qcelp_enc_config { + uint32_t cdma_rate; + uint32_t min_bit_rate; + uint32_t max_bit_rate; +}; + +struct msm_audio_evrc_enc_config { + uint32_t cdma_rate; + uint32_t min_bit_rate; + uint32_t max_bit_rate; +}; + +#endif /* _MSM_AUDIO_QCP_H */ diff --git a/kernel_headers/linux/msm_audio_sbc.h b/kernel_headers/linux/msm_audio_sbc.h new file mode 100644 index 0000000..43444d7 --- /dev/null +++ b/kernel_headers/linux/msm_audio_sbc.h @@ -0,0 +1,36 @@ +#ifndef _MSM_AUDIO_SBC_H +#define _MSM_AUDIO_SBC_H + +#include + +#define AUDIO_SET_SBC_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), struct msm_audio_sbc_enc_config) + +#define AUDIO_GET_SBC_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), struct msm_audio_sbc_enc_config) + +#define AUDIO_SBC_BA_LOUDNESS 0x0 +#define AUDIO_SBC_BA_SNR 0x1 + +#define AUDIO_SBC_MODE_MONO 0x0 +#define AUDIO_SBC_MODE_DUAL 0x1 +#define AUDIO_SBC_MODE_STEREO 0x2 +#define AUDIO_SBC_MODE_JSTEREO 0x3 + +#define AUDIO_SBC_BANDS_8 0x1 + +#define AUDIO_SBC_BLOCKS_4 0x0 +#define AUDIO_SBC_BLOCKS_8 0x1 +#define AUDIO_SBC_BLOCKS_12 0x2 +#define AUDIO_SBC_BLOCKS_16 0x3 + +struct msm_audio_sbc_enc_config { + uint32_t channels; + uint32_t sample_rate; + uint32_t bit_allocation; + uint32_t number_of_subbands; + uint32_t number_of_blocks; + uint32_t bit_rate; + uint32_t mode; +}; +#endif /* _MSM_AUDIO_SBC_H */ diff --git a/kernel_headers/linux/msm_audio_voicememo.h b/kernel_headers/linux/msm_audio_voicememo.h new file mode 100644 index 0000000..81723b7 --- /dev/null +++ b/kernel_headers/linux/msm_audio_voicememo.h @@ -0,0 +1,66 @@ +#ifndef _MSM_AUDIO_VOICEMEMO_H +#define _MSM_AUDIO_VOICEMEMO_H + +#include + +#define AUDIO_GET_VOICEMEMO_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned) +#define AUDIO_SET_VOICEMEMO_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned) + +/* rec_type */ +enum rpc_voc_rec_dir_type { + RPC_VOC_REC_NONE, + RPC_VOC_REC_FORWARD, + RPC_VOC_REC_REVERSE, + RPC_VOC_REC_BOTH, + RPC_VOC_MAX_REC_TYPE +}; + +/* capability */ +enum rpc_voc_capability_type { + RPC_VOC_CAP_IS733 = 4, + RPC_VOC_CAP_IS127 = 8, + RPC_VOC_CAP_AMR = 64, + RPC_VOC_CAP_32BIT_DUMMY = 2147483647 +}; + +/* Rate */ +enum rpc_voc_rate_type { + RPC_VOC_0_RATE = 0, + RPC_VOC_8_RATE, + RPC_VOC_4_RATE, + RPC_VOC_2_RATE, + RPC_VOC_1_RATE, + RPC_VOC_ERASURE, + RPC_VOC_ERR_RATE, + RPC_VOC_AMR_RATE_475 = 0, + RPC_VOC_AMR_RATE_515 = 1, + RPC_VOC_AMR_RATE_590 = 2, + RPC_VOC_AMR_RATE_670 = 3, + RPC_VOC_AMR_RATE_740 = 4, + RPC_VOC_AMR_RATE_795 = 5, + RPC_VOC_AMR_RATE_1020 = 6, + RPC_VOC_AMR_RATE_1220 = 7, +}; + +/* frame_format */ +enum rpc_voc_pb_len_rate_var_type { + RPC_VOC_PB_NATIVE_QCP = 3, + RPC_VOC_PB_AMR, + RPC_VOC_PB_EVB +}; + +struct msm_audio_voicememo_config { + uint32_t rec_type; + uint32_t rec_interval_ms; + uint32_t auto_stop_ms; + uint32_t capability; + uint32_t max_rate; + uint32_t min_rate; + uint32_t frame_format; + uint32_t dtx_enable; + uint32_t data_req_ms; +}; + +#endif /* _MSM_AUDIO_VOICEMEMO_H */ diff --git a/kernel_headers/linux/msm_audio_wma.h b/kernel_headers/linux/msm_audio_wma.h new file mode 100644 index 0000000..5063a6b --- /dev/null +++ b/kernel_headers/linux/msm_audio_wma.h @@ -0,0 +1,33 @@ +#ifndef _MSM_AUDIO_WMA_H +#define _MSM_AUDIO_WMA_H + +#define AUDIO_GET_WMA_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned) +#define AUDIO_SET_WMA_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned) + +#define AUDIO_GET_WMA_CONFIG_V2 _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+2), struct msm_audio_wma_config_v2) +#define AUDIO_SET_WMA_CONFIG_V2 _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+3), struct msm_audio_wma_config_v2) + +struct msm_audio_wma_config { + unsigned short armdatareqthr; + unsigned short channelsdecoded; + unsigned short wmabytespersec; + unsigned short wmasamplingfreq; + unsigned short wmaencoderopts; +}; + +struct msm_audio_wma_config_v2 { + unsigned short format_tag; + unsigned short numchannels; + uint32_t samplingrate; + uint32_t avgbytespersecond; + unsigned short block_align; + unsigned short validbitspersample; + uint32_t channelmask; + unsigned short encodeopt; +}; + +#endif /* _MSM_AUDIO_WMA_H */ diff --git a/kernel_headers/linux/msm_audio_wmapro.h b/kernel_headers/linux/msm_audio_wmapro.h new file mode 100644 index 0000000..6d1b9ab --- /dev/null +++ b/kernel_headers/linux/msm_audio_wmapro.h @@ -0,0 +1,22 @@ +#ifndef _MSM_AUDIO_WMAPRO_H +#define _MSM_AUDIO_WMAPRO_H + +#define AUDIO_GET_WMAPRO_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+0), struct msm_audio_wmapro_config) +#define AUDIO_SET_WMAPRO_CONFIG _IOW(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+1), struct msm_audio_wmapro_config) + +struct msm_audio_wmapro_config { + unsigned short armdatareqthr; + uint8_t validbitspersample; + uint8_t numchannels; + unsigned short formattag; + unsigned short samplingrate; + unsigned short avgbytespersecond; + unsigned short asfpacketlength; + unsigned short channelmask; + unsigned short encodeopt; + unsigned short advancedencodeopt; + uint32_t advancedencodeopt2; +}; +#endif /* _MSM_AUDIO_WMAPRO_H */ diff --git a/kernel_headers/linux/msm_charm.h b/kernel_headers/linux/msm_charm.h new file mode 100644 index 0000000..cd8a648 --- /dev/null +++ b/kernel_headers/linux/msm_charm.h @@ -0,0 +1,26 @@ +#ifndef _MSM_CHARM_H_ +#define _MSM_CHARM_H_ + + +#define CHARM_CODE 0xCC +#define WAKE_CHARM _IO(CHARM_CODE, 1) +#define RESET_CHARM _IO(CHARM_CODE, 2) +#define CHECK_FOR_BOOT _IOR(CHARM_CODE, 3, int) +#define WAIT_FOR_BOOT _IO(CHARM_CODE, 4) +#define NORMAL_BOOT_DONE _IOW(CHARM_CODE, 5, int) +#define RAM_DUMP_DONE _IOW(CHARM_CODE, 6, int) +#define WAIT_FOR_RESTART _IOR(CHARM_CODE, 7, int) +#define GET_DLOAD_STATUS _IOR(CHARM_CODE, 8, int) +#define IMAGE_UPGRADE _IOW(CHARM_CODE, 9, int) +#define SHUTDOWN_CHARM _IOW(CHARM_CODE, 10, int) + +enum charm_boot_type { + CHARM_NORMAL_BOOT = 0, + CHARM_RAM_DUMPS, +}; + +enum image_upgrade_type { + APQ_CONTROLLED_UPGRADE = 0, + MDM_CONTROLLED_UPGRADE, +}; +#endif diff --git a/kernel_headers/linux/msm_dsps.h b/kernel_headers/linux/msm_dsps.h new file mode 100644 index 0000000..e3da576 --- /dev/null +++ b/kernel_headers/linux/msm_dsps.h @@ -0,0 +1,16 @@ +#ifndef _DSPS_H_ +#define _DSPS_H_ + +#include + +#define DSPS_IOCTL_MAGIC 'd' + +#define DSPS_IOCTL_ON _IO(DSPS_IOCTL_MAGIC, 1) +#define DSPS_IOCTL_OFF _IO(DSPS_IOCTL_MAGIC, 2) + +#define DSPS_IOCTL_READ_SLOW_TIMER _IOR(DSPS_IOCTL_MAGIC, 3, unsigned int*) +#define DSPS_IOCTL_READ_FAST_TIMER _IOR(DSPS_IOCTL_MAGIC, 4, unsigned int*) + +#define DSPS_IOCTL_RESET _IO(DSPS_IOCTL_MAGIC, 5) + +#endif /* _DSPS_H_ */ diff --git a/kernel_headers/linux/msm_ion.h b/kernel_headers/linux/msm_ion.h new file mode 100644 index 0000000..05900fe --- /dev/null +++ b/kernel_headers/linux/msm_ion.h @@ -0,0 +1,6 @@ +#ifndef __UAPI_LINUX_MSM_ION_H__ +#define __UAPI_LINUX_MSM_ION_H__ + +#include + +#endif /* __UAPI_LINUX_MSM_ION_H__ */ diff --git a/kernel_headers/linux/msm_ipa.h b/kernel_headers/linux/msm_ipa.h new file mode 100644 index 0000000..523ef90 --- /dev/null +++ b/kernel_headers/linux/msm_ipa.h @@ -0,0 +1,1548 @@ +#ifndef _MSM_IPA_H_ +#define _MSM_IPA_H_ + +#include +#include +#include +#include +#include +#include + +/** + * unique magic number of the IPA device + */ +#define IPA_IOC_MAGIC 0xCF + +/** + * name of the default routing tables for v4 and v6 + */ +#define IPA_DFLT_RT_TBL_NAME "ipa_dflt_rt" + +/** + * the commands supported by IPA driver + */ +#define IPA_IOCTL_ADD_HDR 0 +#define IPA_IOCTL_DEL_HDR 1 +#define IPA_IOCTL_ADD_RT_RULE 2 +#define IPA_IOCTL_DEL_RT_RULE 3 +#define IPA_IOCTL_ADD_FLT_RULE 4 +#define IPA_IOCTL_DEL_FLT_RULE 5 +#define IPA_IOCTL_COMMIT_HDR 6 +#define IPA_IOCTL_RESET_HDR 7 +#define IPA_IOCTL_COMMIT_RT 8 +#define IPA_IOCTL_RESET_RT 9 +#define IPA_IOCTL_COMMIT_FLT 10 +#define IPA_IOCTL_RESET_FLT 11 +#define IPA_IOCTL_DUMP 12 +#define IPA_IOCTL_GET_RT_TBL 13 +#define IPA_IOCTL_PUT_RT_TBL 14 +#define IPA_IOCTL_COPY_HDR 15 +#define IPA_IOCTL_QUERY_INTF 16 +#define IPA_IOCTL_QUERY_INTF_TX_PROPS 17 +#define IPA_IOCTL_QUERY_INTF_RX_PROPS 18 +#define IPA_IOCTL_GET_HDR 19 +#define IPA_IOCTL_PUT_HDR 20 +#define IPA_IOCTL_SET_FLT 21 +#define IPA_IOCTL_ALLOC_NAT_MEM 22 +#define IPA_IOCTL_V4_INIT_NAT 23 +#define IPA_IOCTL_NAT_DMA 24 +#define IPA_IOCTL_V4_DEL_NAT 26 +#define IPA_IOCTL_PULL_MSG 27 +#define IPA_IOCTL_GET_NAT_OFFSET 28 +#define IPA_IOCTL_RM_ADD_DEPENDENCY 29 +#define IPA_IOCTL_RM_DEL_DEPENDENCY 30 +#define IPA_IOCTL_GENERATE_FLT_EQ 31 +#define IPA_IOCTL_QUERY_INTF_EXT_PROPS 32 +#define IPA_IOCTL_QUERY_EP_MAPPING 33 +#define IPA_IOCTL_QUERY_RT_TBL_INDEX 34 +#define IPA_IOCTL_WRITE_QMAPID 35 +#define IPA_IOCTL_MDFY_FLT_RULE 36 +#define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD 37 +#define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL 38 +#define IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED 39 +#define IPA_IOCTL_ADD_HDR_PROC_CTX 40 +#define IPA_IOCTL_DEL_HDR_PROC_CTX 41 +#define IPA_IOCTL_MDFY_RT_RULE 42 +#define IPA_IOCTL_MAX 43 + +/** + * max size of the header to be inserted + */ +#define IPA_HDR_MAX_SIZE 64 + +/** + * max size of the name of the resource (routing table, header) + */ +#define IPA_RESOURCE_NAME_MAX 32 + +/** + * max number of interface properties + */ +#define IPA_NUM_PROPS_MAX 20 + +/** + * size of the mac address + */ +#define IPA_MAC_ADDR_SIZE 6 + +/** + * max number of mbim streams + */ +#define IPA_MBIM_MAX_STREAM_NUM 8 + +/** + * the attributes of the rule (routing or filtering) + */ +#define IPA_FLT_TOS (1ul << 0) +#define IPA_FLT_PROTOCOL (1ul << 1) +#define IPA_FLT_SRC_ADDR (1ul << 2) +#define IPA_FLT_DST_ADDR (1ul << 3) +#define IPA_FLT_SRC_PORT_RANGE (1ul << 4) +#define IPA_FLT_DST_PORT_RANGE (1ul << 5) +#define IPA_FLT_TYPE (1ul << 6) +#define IPA_FLT_CODE (1ul << 7) +#define IPA_FLT_SPI (1ul << 8) +#define IPA_FLT_SRC_PORT (1ul << 9) +#define IPA_FLT_DST_PORT (1ul << 10) +#define IPA_FLT_TC (1ul << 11) +#define IPA_FLT_FLOW_LABEL (1ul << 12) +#define IPA_FLT_NEXT_HDR (1ul << 13) +#define IPA_FLT_META_DATA (1ul << 14) +#define IPA_FLT_FRAGMENT (1ul << 15) +#define IPA_FLT_TOS_MASKED (1ul << 16) +#define IPA_FLT_MAC_SRC_ADDR_ETHER_II (1ul << 17) +#define IPA_FLT_MAC_DST_ADDR_ETHER_II (1ul << 18) +#define IPA_FLT_MAC_SRC_ADDR_802_3 (1ul << 19) +#define IPA_FLT_MAC_DST_ADDR_802_3 (1ul << 20) +#define IPA_FLT_MAC_ETHER_TYPE (1ul << 21) + +/** + * enum ipa_client_type - names for the various IPA "clients" + * these are from the perspective of the clients, for e.g. + * HSIC1_PROD means HSIC client is the producer and IPA is the + * consumer + */ +enum ipa_client_type { + IPA_CLIENT_PROD, + IPA_CLIENT_HSIC1_PROD = IPA_CLIENT_PROD, + IPA_CLIENT_WLAN1_PROD, + IPA_CLIENT_HSIC2_PROD, + IPA_CLIENT_USB2_PROD, + IPA_CLIENT_HSIC3_PROD, + IPA_CLIENT_USB3_PROD, + IPA_CLIENT_HSIC4_PROD, + IPA_CLIENT_USB4_PROD, + IPA_CLIENT_HSIC5_PROD, + IPA_CLIENT_USB_PROD, + IPA_CLIENT_A5_WLAN_AMPDU_PROD, + IPA_CLIENT_A2_EMBEDDED_PROD, + IPA_CLIENT_A2_TETHERED_PROD, + IPA_CLIENT_APPS_LAN_WAN_PROD, + IPA_CLIENT_APPS_CMD_PROD, + IPA_CLIENT_ODU_PROD, + IPA_CLIENT_Q6_LAN_PROD, + IPA_CLIENT_Q6_CMD_PROD, + /* Below PROD client type is only for test purpose */ + IPA_CLIENT_TEST_PROD, + IPA_CLIENT_TEST1_PROD, + IPA_CLIENT_TEST2_PROD, + IPA_CLIENT_TEST3_PROD, + IPA_CLIENT_TEST4_PROD, + + IPA_CLIENT_CONS, + IPA_CLIENT_HSIC1_CONS = IPA_CLIENT_CONS, + IPA_CLIENT_WLAN1_CONS, + IPA_CLIENT_HSIC2_CONS, + IPA_CLIENT_USB2_CONS, + IPA_CLIENT_WLAN2_CONS, + IPA_CLIENT_HSIC3_CONS, + IPA_CLIENT_USB3_CONS, + IPA_CLIENT_WLAN3_CONS, + IPA_CLIENT_HSIC4_CONS, + IPA_CLIENT_USB4_CONS, + IPA_CLIENT_WLAN4_CONS, + IPA_CLIENT_HSIC5_CONS, + IPA_CLIENT_USB_CONS, + IPA_CLIENT_USB_DPL_CONS, + IPA_CLIENT_A2_EMBEDDED_CONS, + IPA_CLIENT_A2_TETHERED_CONS, + IPA_CLIENT_A5_LAN_WAN_CONS, + IPA_CLIENT_APPS_LAN_CONS, + IPA_CLIENT_APPS_WAN_CONS, + IPA_CLIENT_ODU_EMB_CONS, + IPA_CLIENT_ODU_TETH_CONS, + IPA_CLIENT_Q6_LAN_CONS, + IPA_CLIENT_Q6_WAN_CONS, + IPA_CLIENT_Q6_DUN_CONS, + /* Below CONS client type is only for test purpose */ + IPA_CLIENT_TEST_CONS, + IPA_CLIENT_TEST1_CONS, + IPA_CLIENT_TEST2_CONS, + IPA_CLIENT_TEST3_CONS, + IPA_CLIENT_TEST4_CONS, + + IPA_CLIENT_MAX, +}; + +#define IPA_CLIENT_IS_USB_CONS(client) \ + ((client) == IPA_CLIENT_USB_CONS || \ + (client) == IPA_CLIENT_USB2_CONS || \ + (client) == IPA_CLIENT_USB3_CONS || \ + (client) == IPA_CLIENT_USB_DPL_CONS || \ + (client) == IPA_CLIENT_USB4_CONS) + +#define IPA_CLIENT_IS_WLAN_CONS(client) \ + ((client) == IPA_CLIENT_WLAN1_CONS || \ + (client) == IPA_CLIENT_WLAN2_CONS || \ + (client) == IPA_CLIENT_WLAN3_CONS || \ + (client) == IPA_CLIENT_WLAN4_CONS) + +#define IPA_CLIENT_IS_ODU_CONS(client) \ + ((client) == IPA_CLIENT_ODU_EMB_CONS || \ + (client) == IPA_CLIENT_ODU_TETH_CONS) + +#define IPA_CLIENT_IS_Q6_CONS(client) \ + ((client) == IPA_CLIENT_Q6_LAN_CONS || \ + (client) == IPA_CLIENT_Q6_WAN_CONS || \ + (client) == IPA_CLIENT_Q6_DUN_CONS) + +#define IPA_CLIENT_IS_Q6_PROD(client) \ + ((client) == IPA_CLIENT_Q6_LAN_PROD || \ + (client) == IPA_CLIENT_Q6_CMD_PROD) + + + +/** + * enum ipa_ip_type - Address family: IPv4 or IPv6 + */ +enum ipa_ip_type { + IPA_IP_v4, + IPA_IP_v6, + IPA_IP_MAX +}; + +/** + * enum ipa_flt_action - action field of filtering rule + * + * Pass to routing: 5'd0 + * Pass to source NAT: 5'd1 + * Pass to destination NAT: 5'd2 + * Pass to default output pipe (e.g., Apps or Modem): 5'd3 + */ +enum ipa_flt_action { + IPA_PASS_TO_ROUTING, + IPA_PASS_TO_SRC_NAT, + IPA_PASS_TO_DST_NAT, + IPA_PASS_TO_EXCEPTION +}; + +/** + * enum ipa_wlan_event - Events for wlan client + * + * wlan client connect: New wlan client connected + * wlan client disconnect: wlan client disconnected + * wlan client power save: wlan client moved to power save + * wlan client normal: wlan client moved out of power save + * sw routing enable: ipa routing is disabled + * sw routing disable: ipa routing is enabled + * wlan ap connect: wlan AP(access point) is up + * wlan ap disconnect: wlan AP(access point) is down + * wlan sta connect: wlan STA(station) is up + * wlan sta disconnect: wlan STA(station) is down + * wlan client connect ex: new wlan client connected + * wlan scc switch: wlan interfaces in scc mode + * wlan mcc switch: wlan interfaces in mcc mode + */ +enum ipa_wlan_event { + WLAN_CLIENT_CONNECT, + WLAN_CLIENT_DISCONNECT, + WLAN_CLIENT_POWER_SAVE_MODE, + WLAN_CLIENT_NORMAL_MODE, + SW_ROUTING_ENABLE, + SW_ROUTING_DISABLE, + WLAN_AP_CONNECT, + WLAN_AP_DISCONNECT, + WLAN_STA_CONNECT, + WLAN_STA_DISCONNECT, + WLAN_CLIENT_CONNECT_EX, + WLAN_SWITCH_TO_SCC, + WLAN_SWITCH_TO_MCC, + IPA_WLAN_EVENT_MAX +}; + +/** + * enum ipa_wan_event - Events for wan client + * + * wan default route add/del + * wan embms connect: New wan embms interface connected + */ +enum ipa_wan_event { + WAN_UPSTREAM_ROUTE_ADD = IPA_WLAN_EVENT_MAX, + WAN_UPSTREAM_ROUTE_DEL, + WAN_EMBMS_CONNECT, + IPA_WAN_EVENT_MAX +}; + +enum ipa_ecm_event { + ECM_CONNECT = IPA_WAN_EVENT_MAX, + ECM_DISCONNECT, + IPA_EVENT_MAX_NUM +}; + +#define IPA_EVENT_MAX ((int)IPA_EVENT_MAX_NUM) + +/** + * enum ipa_rm_resource_name - IPA RM clients identification names + * + * Add new mapping to ipa_rm_dep_prod_index() / ipa_rm_dep_cons_index() + * when adding new entry to this enum. + */ +enum ipa_rm_resource_name { + IPA_RM_RESOURCE_PROD = 0, + IPA_RM_RESOURCE_Q6_PROD = IPA_RM_RESOURCE_PROD, + IPA_RM_RESOURCE_USB_PROD, + IPA_RM_RESOURCE_HSIC_PROD, + IPA_RM_RESOURCE_STD_ECM_PROD, + IPA_RM_RESOURCE_RNDIS_PROD, + IPA_RM_RESOURCE_WWAN_0_PROD, + IPA_RM_RESOURCE_WLAN_PROD, + IPA_RM_RESOURCE_ODU_ADAPT_PROD, + IPA_RM_RESOURCE_PROD_MAX, + + IPA_RM_RESOURCE_Q6_CONS = IPA_RM_RESOURCE_PROD_MAX, + IPA_RM_RESOURCE_USB_CONS, + IPA_RM_RESOURCE_HSIC_CONS, + IPA_RM_RESOURCE_WLAN_CONS, + IPA_RM_RESOURCE_APPS_CONS, + IPA_RM_RESOURCE_ODU_ADAPT_CONS, + IPA_RM_RESOURCE_MAX +}; + +/** + * enum ipa_hw_type - IPA hardware version type + * @IPA_HW_None: IPA hardware version not defined + * @IPA_HW_v1_0: IPA hardware version 1.0 + * @IPA_HW_v1_1: IPA hardware version 1.1 + * @IPA_HW_v2_0: IPA hardware version 2.0 + * @IPA_HW_v2_1: IPA hardware version 2.1 + * @IPA_HW_v2_5: IPA hardware version 2.5 + */ +enum ipa_hw_type { + IPA_HW_None = 0, + IPA_HW_v1_0 = 1, + IPA_HW_v1_1 = 2, + IPA_HW_v2_0 = 3, + IPA_HW_v2_1 = 4, + IPA_HW_v2_5 = 5, + IPA_HW_MAX +}; + +/** + * struct ipa_rule_attrib - attributes of a routing/filtering + * rule, all in LE + * @attrib_mask: what attributes are valid + * @src_port_lo: low port of src port range + * @src_port_hi: high port of src port range + * @dst_port_lo: low port of dst port range + * @dst_port_hi: high port of dst port range + * @type: ICMP/IGMP type + * @code: ICMP/IGMP code + * @spi: IPSec SPI + * @src_port: exact src port + * @dst_port: exact dst port + * @meta_data: meta-data val + * @meta_data_mask: meta-data mask + * @u.v4.tos: type of service + * @u.v4.protocol: protocol + * @u.v4.src_addr: src address value + * @u.v4.src_addr_mask: src address mask + * @u.v4.dst_addr: dst address value + * @u.v4.dst_addr_mask: dst address mask + * @u.v6.tc: traffic class + * @u.v6.flow_label: flow label + * @u.v6.next_hdr: next header + * @u.v6.src_addr: src address val + * @u.v6.src_addr_mask: src address mask + * @u.v6.dst_addr: dst address val + * @u.v6.dst_addr_mask: dst address mask + */ +struct ipa_rule_attrib { + uint32_t attrib_mask; + uint16_t src_port_lo; + uint16_t src_port_hi; + uint16_t dst_port_lo; + uint16_t dst_port_hi; + uint8_t type; + uint8_t code; + uint8_t tos_value; + uint8_t tos_mask; + uint32_t spi; + uint16_t src_port; + uint16_t dst_port; + uint32_t meta_data; + uint32_t meta_data_mask; + uint8_t src_mac_addr[ETH_ALEN]; + uint8_t src_mac_addr_mask[ETH_ALEN]; + uint8_t dst_mac_addr[ETH_ALEN]; + uint8_t dst_mac_addr_mask[ETH_ALEN]; + uint16_t ether_type; + union { + struct { + uint8_t tos; + uint8_t protocol; + uint32_t src_addr; + uint32_t src_addr_mask; + uint32_t dst_addr; + uint32_t dst_addr_mask; + } v4; + struct { + uint8_t tc; + uint32_t flow_label; + uint8_t next_hdr; + uint32_t src_addr[4]; + uint32_t src_addr_mask[4]; + uint32_t dst_addr[4]; + uint32_t dst_addr_mask[4]; + } v6; + } u; +}; + +/*! @brief The maximum number of Mask Equal 32 Eqns */ +#define IPA_IPFLTR_NUM_MEQ_32_EQNS 2 + +/*! @brief The maximum number of IHL offset Mask Equal 32 Eqns */ +#define IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS 2 + +/*! @brief The maximum number of Mask Equal 128 Eqns */ +#define IPA_IPFLTR_NUM_MEQ_128_EQNS 2 + +/*! @brief The maximum number of IHL offset Range Check 16 Eqns */ +#define IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS 2 + +/*! @brief Offset and 16 bit comparison equation */ +struct ipa_ipfltr_eq_16 { + int8_t offset; + uint16_t value; +}; + +/*! @brief Offset and 32 bit comparison equation */ +struct ipa_ipfltr_eq_32 { + int8_t offset; + uint32_t value; +}; + +/*! @brief Offset and 128 bit masked comparison equation */ +struct ipa_ipfltr_mask_eq_128 { + int8_t offset; + uint8_t mask[16]; + uint8_t value[16]; +}; + +/*! @brief Offset and 32 bit masked comparison equation */ +struct ipa_ipfltr_mask_eq_32 { + int8_t offset; + uint32_t mask; + uint32_t value; +}; + +/*! @brief Equation for identifying a range. Ranges are inclusive */ +struct ipa_ipfltr_range_eq_16 { + int8_t offset; + uint16_t range_low; + uint16_t range_high; +}; + +/*! @brief Rule equations which are set according to DS filter installation */ +struct ipa_ipfltri_rule_eq { + /*! 16-bit Bitmask to indicate how many eqs are valid in this rule */ + uint16_t rule_eq_bitmap; + /*! Specifies if a type of service check rule is present */ + uint8_t tos_eq_present; + /*! The value to check against the type of service (ipv4) field */ + uint8_t tos_eq; + /*! Specifies if a protocol check rule is present */ + uint8_t protocol_eq_present; + /*! The value to check against the protocol (ipv6) field */ + uint8_t protocol_eq; + /*! The number of ip header length offset 16 bit range check + * rules in this rule */ + uint8_t num_ihl_offset_range_16; + /*! An array of the registered ip header length offset 16 bit + * range check rules */ + struct ipa_ipfltr_range_eq_16 + ihl_offset_range_16[IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS]; + /*! The number of mask equal 32 rules present in this rule */ + uint8_t num_offset_meq_32; + /*! An array of all the possible mask equal 32 rules in this rule */ + struct ipa_ipfltr_mask_eq_32 + offset_meq_32[IPA_IPFLTR_NUM_MEQ_32_EQNS]; + /*! Specifies if the traffic class rule is present in this rule */ + uint8_t tc_eq_present; + /*! The value to check the traffic class (ipv4) field against */ + uint8_t tc_eq; + /*! Specifies if the flow equals rule is present in this rule */ + uint8_t fl_eq_present; + /*! The value to check the flow (ipv6) field against */ + uint32_t fl_eq; + /*! The number of ip header length offset 16 bit equations in this + * rule */ + uint8_t ihl_offset_eq_16_present; + /*! The ip header length offset 16 bit equation */ + struct ipa_ipfltr_eq_16 ihl_offset_eq_16; + /*! The number of ip header length offset 32 bit equations in this + * rule */ + uint8_t ihl_offset_eq_32_present; + /*! The ip header length offset 32 bit equation */ + struct ipa_ipfltr_eq_32 ihl_offset_eq_32; + /*! The number of ip header length offset 32 bit mask equations in + * this rule */ + uint8_t num_ihl_offset_meq_32; + /*! The ip header length offset 32 bit mask equation */ + struct ipa_ipfltr_mask_eq_32 + ihl_offset_meq_32[IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS]; + /*! The number of ip header length offset 128 bit equations in this + * rule */ + uint8_t num_offset_meq_128; + /*! The ip header length offset 128 bit equation */ + struct ipa_ipfltr_mask_eq_128 + offset_meq_128[IPA_IPFLTR_NUM_MEQ_128_EQNS]; + /*! The metadata 32 bit masked comparison equation present or not */ + /* Metadata based rules are added internally by IPA driver */ + uint8_t metadata_meq32_present; + /*! The metadata 32 bit masked comparison equation */ + struct ipa_ipfltr_mask_eq_32 metadata_meq32; + /*! Specifies if the Fragment equation is present in this rule */ + uint8_t ipv4_frag_eq_present; +}; + +/** + * struct ipa_flt_rule - attributes of a filtering rule + * @retain_hdr: bool switch to instruct IPA core to add back to the packet + * the header removed as part of header removal + * @to_uc: bool switch to pass packet to micro-controller + * @action: action field + * @rt_tbl_hdl: handle of table from "get" + * @attrib: attributes of the rule + * @eq_attrib: attributes of the rule in equation form (valid when + * eq_attrib_type is true) + * @rt_tbl_idx: index of RT table referred to by filter rule (valid when + * eq_attrib_type is true and non-exception action) + * @eq_attrib_type: true if equation level form used to specify attributes + */ +struct ipa_flt_rule { + uint8_t retain_hdr; + uint8_t to_uc; + enum ipa_flt_action action; + uint32_t rt_tbl_hdl; + struct ipa_rule_attrib attrib; + struct ipa_ipfltri_rule_eq eq_attrib; + uint32_t rt_tbl_idx; + uint8_t eq_attrib_type; +}; + +/** + * enum ipa_hdr_l2_type - L2 header type + * IPA_HDR_L2_NONE: L2 header which isn't Ethernet II and isn't 802_3 + * IPA_HDR_L2_ETHERNET_II: L2 header of type Ethernet II + * IPA_HDR_L2_802_3: L2 header of type 802_3 + */ +enum ipa_hdr_l2_type { + IPA_HDR_L2_NONE, + IPA_HDR_L2_ETHERNET_II, + IPA_HDR_L2_802_3, + IPA_HDR_L2_MAX, +}; + +/** + * enum ipa_hdr_l2_type - Processing context type + * IPA_HDR_PROC_NONE: No processing context + * IPA_HDR_PROC_ETHII_TO_ETHII: Process Ethernet II to Ethernet II + * IPA_HDR_PROC_ETHII_TO_802_3: Process Ethernet II to 802_3 + * IPA_HDR_PROC_802_3_TO_ETHII: Process 802_3 to Ethernet II + * IPA_HDR_PROC_802_3_TO_802_3: Process 802_3 to 802_3 + */ +enum ipa_hdr_proc_type { + IPA_HDR_PROC_NONE, + IPA_HDR_PROC_ETHII_TO_ETHII, + IPA_HDR_PROC_ETHII_TO_802_3, + IPA_HDR_PROC_802_3_TO_ETHII, + IPA_HDR_PROC_802_3_TO_802_3, + IPA_HDR_PROC_MAX, +}; + +/** + * struct ipa_rt_rule - attributes of a routing rule + * @dst: dst "client" + * @hdr_hdl: handle to the dynamic header + it is not an index or an offset + * @hdr_proc_ctx_hdl: handle to header processing context. if it is provided + hdr_hdl shall be 0 + * @attrib: attributes of the rule + */ +struct ipa_rt_rule { + enum ipa_client_type dst; + uint32_t hdr_hdl; + uint32_t hdr_proc_ctx_hdl; + struct ipa_rule_attrib attrib; +}; + +/** + * struct ipa_hdr_add - header descriptor includes in and out + * parameters + * @name: name of the header + * @hdr: actual header to be inserted + * @hdr_len: size of above header + * @type: l2 header type + * @is_partial: header not fully specified + * @hdr_hdl: out parameter, handle to header, valid when status is 0 + * @status: out parameter, status of header add operation, + * 0 for success, + * -1 for failure + * @is_eth2_ofst_valid: is eth2_ofst field valid? + * @eth2_ofst: offset to start of Ethernet-II/802.3 header + */ +struct ipa_hdr_add { + char name[IPA_RESOURCE_NAME_MAX]; + uint8_t hdr[IPA_HDR_MAX_SIZE]; + uint8_t hdr_len; + enum ipa_hdr_l2_type type; + uint8_t is_partial; + uint32_t hdr_hdl; + int status; + uint8_t is_eth2_ofst_valid; + uint16_t eth2_ofst; +}; + +/** + * struct ipa_ioc_add_hdr - header addition parameters (support + * multiple headers and commit) + * @commit: should headers be written to IPA HW also? + * @num_hdrs: num of headers that follow + * @ipa_hdr_add hdr: all headers need to go here back to + * back, no pointers + */ +struct ipa_ioc_add_hdr { + uint8_t commit; + uint8_t num_hdrs; + struct ipa_hdr_add hdr[0]; +}; + +/** + * struct ipa_hdr_proc_ctx_add - processing context descriptor includes + * in and out parameters + * @type: processing context type + * @hdr_hdl: in parameter, handle to header + * @proc_ctx_hdl: out parameter, handle to proc_ctx, valid when status is 0 + * @status: out parameter, status of header add operation, + * 0 for success, + * -1 for failure + */ +struct ipa_hdr_proc_ctx_add { + enum ipa_hdr_proc_type type; + uint32_t hdr_hdl; + uint32_t proc_ctx_hdl; + int status; +}; + +/** + * struct ipa_ioc_add_hdr - processing context addition parameters (support + * multiple processing context and commit) + * @commit: should processing context be written to IPA HW also? + * @num_proc_ctxs: num of processing context that follow + * @proc_ctx: all processing context need to go here back to + * back, no pointers + */ +struct ipa_ioc_add_hdr_proc_ctx { + uint8_t commit; + uint8_t num_proc_ctxs; + struct ipa_hdr_proc_ctx_add proc_ctx[0]; +}; + +/** + * struct ipa_ioc_copy_hdr - retrieve a copy of the specified + * header - caller can then derive the complete header + * @name: name of the header resource + * @hdr: out parameter, contents of specified header, + * valid only when ioctl return val is non-negative + * @hdr_len: out parameter, size of above header + * valid only when ioctl return val is non-negative + * @type: l2 header type + * valid only when ioctl return val is non-negative + * @is_partial: out parameter, indicates whether specified header is partial + * valid only when ioctl return val is non-negative + * @is_eth2_ofst_valid: is eth2_ofst field valid? + * @eth2_ofst: offset to start of Ethernet-II/802.3 header + */ +struct ipa_ioc_copy_hdr { + char name[IPA_RESOURCE_NAME_MAX]; + uint8_t hdr[IPA_HDR_MAX_SIZE]; + uint8_t hdr_len; + enum ipa_hdr_l2_type type; + uint8_t is_partial; + uint8_t is_eth2_ofst_valid; + uint16_t eth2_ofst; +}; + +/** + * struct ipa_ioc_get_hdr - header entry lookup parameters, if lookup was + * successful caller must call put to release the reference count when done + * @name: name of the header resource + * @hdl: out parameter, handle of header entry + * valid only when ioctl return val is non-negative + */ +struct ipa_ioc_get_hdr { + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t hdl; +}; + +/** + * struct ipa_hdr_del - header descriptor includes in and out + * parameters + * + * @hdl: handle returned from header add operation + * @status: out parameter, status of header remove operation, + * 0 for success, + * -1 for failure + */ +struct ipa_hdr_del { + uint32_t hdl; + int status; +}; + +/** + * struct ipa_ioc_del_hdr - header deletion parameters (support + * multiple headers and commit) + * @commit: should headers be removed from IPA HW also? + * @num_hdls: num of headers being removed + * @ipa_hdr_del hdl: all handles need to go here back to back, no pointers + */ +struct ipa_ioc_del_hdr { + uint8_t commit; + uint8_t num_hdls; + struct ipa_hdr_del hdl[0]; +}; + +/** + * struct ipa_hdr_proc_ctx_del - processing context descriptor includes + * in and out parameters + * @hdl: handle returned from processing context add operation + * @status: out parameter, status of header remove operation, + * 0 for success, + * -1 for failure + */ +struct ipa_hdr_proc_ctx_del { + uint32_t hdl; + int status; +}; + +/** + * ipa_ioc_del_hdr_proc_ctx - processing context deletion parameters (support + * multiple headers and commit) + * @commit: should processing contexts be removed from IPA HW also? + * @num_hdls: num of processing contexts being removed + * @ipa_hdr_proc_ctx_del hdl: all handles need to go here back to back, + * no pointers + */ +struct ipa_ioc_del_hdr_proc_ctx { + uint8_t commit; + uint8_t num_hdls; + struct ipa_hdr_proc_ctx_del hdl[0]; +}; + +/** + * struct ipa_rt_rule_add - routing rule descriptor includes in + * and out parameters + * @rule: actual rule to be added + * @at_rear: add at back of routing table, it is NOT possible to add rules at + * the rear of the "default" routing tables + * @rt_rule_hdl: output parameter, handle to rule, valid when status is 0 + * @status: output parameter, status of routing rule add operation, + * 0 for success, + * -1 for failure + */ +struct ipa_rt_rule_add { + struct ipa_rt_rule rule; + uint8_t at_rear; + uint32_t rt_rule_hdl; + int status; +}; + +/** + * struct ipa_ioc_add_rt_rule - routing rule addition parameters (supports + * multiple rules and commit); + * + * all rules MUST be added to same table + * @commit: should rules be written to IPA HW also? + * @ip: IP family of rule + * @rt_tbl_name: name of routing table resource + * @num_rules: number of routing rules that follow + * @ipa_rt_rule_add rules: all rules need to go back to back here, no pointers + */ +struct ipa_ioc_add_rt_rule { + uint8_t commit; + enum ipa_ip_type ip; + char rt_tbl_name[IPA_RESOURCE_NAME_MAX]; + uint8_t num_rules; + struct ipa_rt_rule_add rules[0]; +}; + +/** + * struct ipa_rt_rule_mdfy - routing rule descriptor includes + * in and out parameters + * @rule: actual rule to be added + * @rt_rule_hdl: handle to rule which supposed to modify + * @status: output parameter, status of routing rule modify operation, + * 0 for success, + * -1 for failure + * + */ +struct ipa_rt_rule_mdfy { + struct ipa_rt_rule rule; + uint32_t rt_rule_hdl; + int status; +}; + +/** + * struct ipa_ioc_mdfy_rt_rule - routing rule modify parameters (supports + * multiple rules and commit) + * @commit: should rules be written to IPA HW also? + * @ip: IP family of rule + * @num_rules: number of routing rules that follow + * @rules: all rules need to go back to back here, no pointers + */ +struct ipa_ioc_mdfy_rt_rule { + uint8_t commit; + enum ipa_ip_type ip; + uint8_t num_rules; + struct ipa_rt_rule_mdfy rules[0]; +}; + +/** + * struct ipa_rt_rule_del - routing rule descriptor includes in + * and out parameters + * @hdl: handle returned from route rule add operation + * @status: output parameter, status of route rule delete operation, + * 0 for success, + * -1 for failure + */ +struct ipa_rt_rule_del { + uint32_t hdl; + int status; +}; + +/** + * struct ipa_ioc_del_rt_rule - routing rule deletion parameters (supports + * multiple headers and commit) + * @commit: should rules be removed from IPA HW also? + * @ip: IP family of rules + * @num_hdls: num of rules being removed + * @ipa_rt_rule_del hdl: all handles need to go back to back here, no pointers + */ +struct ipa_ioc_del_rt_rule { + uint8_t commit; + enum ipa_ip_type ip; + uint8_t num_hdls; + struct ipa_rt_rule_del hdl[0]; +}; + +/** + * struct ipa_ioc_get_rt_tbl_indx - routing table index lookup parameters + * @ip: IP family of table + * @name: name of routing table resource + * @index: output parameter, routing table index, valid only when ioctl + * return val is non-negative + */ +struct ipa_ioc_get_rt_tbl_indx { + enum ipa_ip_type ip; + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t idx; +}; + +/** + * struct ipa_flt_rule_add - filtering rule descriptor includes + * in and out parameters + * @rule: actual rule to be added + * @at_rear: add at back of filtering table? + * @flt_rule_hdl: out parameter, handle to rule, valid when status is 0 + * @status: output parameter, status of filtering rule add operation, + * 0 for success, + * -1 for failure + * + */ +struct ipa_flt_rule_add { + struct ipa_flt_rule rule; + uint8_t at_rear; + uint32_t flt_rule_hdl; + int status; +}; + +/** + * struct ipa_ioc_add_flt_rule - filtering rule addition parameters (supports + * multiple rules and commit) + * all rules MUST be added to same table + * @commit: should rules be written to IPA HW also? + * @ip: IP family of rule + * @ep: which "clients" pipe does this rule apply to? + * valid only when global is 0 + * @global: does this apply to global filter table of specific IP family + * @num_rules: number of filtering rules that follow + * @rules: all rules need to go back to back here, no pointers + */ +struct ipa_ioc_add_flt_rule { + uint8_t commit; + enum ipa_ip_type ip; + enum ipa_client_type ep; + uint8_t global; + uint8_t num_rules; + struct ipa_flt_rule_add rules[0]; +}; + +/** + * struct ipa_flt_rule_mdfy - filtering rule descriptor includes + * in and out parameters + * @rule: actual rule to be added + * @flt_rule_hdl: handle to rule + * @status: output parameter, status of filtering rule modify operation, + * 0 for success, + * -1 for failure + * + */ +struct ipa_flt_rule_mdfy { + struct ipa_flt_rule rule; + uint32_t rule_hdl; + int status; +}; + +/** + * struct ipa_ioc_mdfy_flt_rule - filtering rule modify parameters (supports + * multiple rules and commit) + * @commit: should rules be written to IPA HW also? + * @ip: IP family of rule + * @num_rules: number of filtering rules that follow + * @rules: all rules need to go back to back here, no pointers + */ +struct ipa_ioc_mdfy_flt_rule { + uint8_t commit; + enum ipa_ip_type ip; + uint8_t num_rules; + struct ipa_flt_rule_mdfy rules[0]; +}; + +/** + * struct ipa_flt_rule_del - filtering rule descriptor includes + * in and out parameters + * + * @hdl: handle returned from filtering rule add operation + * @status: output parameter, status of filtering rule delete operation, + * 0 for success, + * -1 for failure + */ +struct ipa_flt_rule_del { + uint32_t hdl; + int status; +}; + +/** + * struct ipa_ioc_del_flt_rule - filtering rule deletion parameters (supports + * multiple headers and commit) + * @commit: should rules be removed from IPA HW also? + * @ip: IP family of rules + * @num_hdls: num of rules being removed + * @hdl: all handles need to go back to back here, no pointers + */ +struct ipa_ioc_del_flt_rule { + uint8_t commit; + enum ipa_ip_type ip; + uint8_t num_hdls; + struct ipa_flt_rule_del hdl[0]; +}; + +/** + * struct ipa_ioc_get_rt_tbl - routing table lookup parameters, if lookup was + * successful caller must call put to release the reference + * count when done + * @ip: IP family of table + * @name: name of routing table resource + * @htl: output parameter, handle of routing table, valid only when ioctl + * return val is non-negative + */ +struct ipa_ioc_get_rt_tbl { + enum ipa_ip_type ip; + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t hdl; +}; + +/** + * struct ipa_ioc_query_intf - used to lookup number of tx and + * rx properties of interface + * @name: name of interface + * @num_tx_props: output parameter, number of tx properties + * valid only when ioctl return val is non-negative + * @num_rx_props: output parameter, number of rx properties + * valid only when ioctl return val is non-negative + * @num_ext_props: output parameter, number of ext properties + * valid only when ioctl return val is non-negative + * @excp_pipe: exception packets of this interface should be + * routed to this pipe + */ +struct ipa_ioc_query_intf { + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t num_tx_props; + uint32_t num_rx_props; + uint32_t num_ext_props; + enum ipa_client_type excp_pipe; +}; + +/** + * struct ipa_ioc_tx_intf_prop - interface tx property + * @ip: IP family of routing rule + * @attrib: routing rule + * @dst_pipe: routing output pipe + * @alt_dst_pipe: alternate routing output pipe + * @hdr_name: name of associated header if any, empty string when no header + * @hdr_l2_type: type of associated header if any, use NONE when no header + */ +struct ipa_ioc_tx_intf_prop { + enum ipa_ip_type ip; + struct ipa_rule_attrib attrib; + enum ipa_client_type dst_pipe; + enum ipa_client_type alt_dst_pipe; + char hdr_name[IPA_RESOURCE_NAME_MAX]; + enum ipa_hdr_l2_type hdr_l2_type; +}; + +/** + * struct ipa_ioc_query_intf_tx_props - interface tx propertie + * @name: name of interface + * @num_tx_props: number of TX properties + * @tx[0]: output parameter, the tx properties go here back to back + */ +struct ipa_ioc_query_intf_tx_props { + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t num_tx_props; + struct ipa_ioc_tx_intf_prop tx[0]; +}; + +/** + * struct ipa_ioc_ext_intf_prop - interface extended property + * @ip: IP family of routing rule + * @eq_attrib: attributes of the rule in equation form + * @action: action field + * @rt_tbl_idx: index of RT table referred to by filter rule + * @mux_id: MUX_ID + * @filter_hdl: handle of filter (as specified by provider of filter rule) + */ +struct ipa_ioc_ext_intf_prop { + enum ipa_ip_type ip; + struct ipa_ipfltri_rule_eq eq_attrib; + enum ipa_flt_action action; + uint32_t rt_tbl_idx; + uint8_t mux_id; + uint32_t filter_hdl; +}; + +/** + * struct ipa_ioc_query_intf_ext_props - interface ext propertie + * @name: name of interface + * @num_ext_props: number of EXT properties + * @ext[0]: output parameter, the ext properties go here back to back + */ +struct ipa_ioc_query_intf_ext_props { + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t num_ext_props; + struct ipa_ioc_ext_intf_prop ext[0]; +}; + +/** + * struct ipa_ioc_rx_intf_prop - interface rx property + * @ip: IP family of filtering rule + * @attrib: filtering rule + * @src_pipe: input pipe + * @hdr_l2_type: type of associated header if any, use NONE when no header + */ +struct ipa_ioc_rx_intf_prop { + enum ipa_ip_type ip; + struct ipa_rule_attrib attrib; + enum ipa_client_type src_pipe; + enum ipa_hdr_l2_type hdr_l2_type; +}; + +/** + * struct ipa_ioc_query_intf_rx_props - interface rx propertie + * @name: name of interface + * @num_rx_props: number of RX properties + * @rx: output parameter, the rx properties go here back to back + */ +struct ipa_ioc_query_intf_rx_props { + char name[IPA_RESOURCE_NAME_MAX]; + uint32_t num_rx_props; + struct ipa_ioc_rx_intf_prop rx[0]; +}; + +/** + * struct ipa_ioc_nat_alloc_mem - nat table memory allocation + * properties + * @dev_name: input parameter, the name of table + * @size: input parameter, size of table in bytes + * @offset: output parameter, offset into page in case of system memory + */ +struct ipa_ioc_nat_alloc_mem { + char dev_name[IPA_RESOURCE_NAME_MAX]; + size_t size; + off_t offset; +}; + +/** + * struct ipa_ioc_v4_nat_init - nat table initialization + * parameters + * @tbl_index: input parameter, index of the table + * @ipv4_rules_offset: input parameter, ipv4 rules address offset + * @expn_rules_offset: input parameter, ipv4 expansion rules address offset + * @index_offset: input parameter, index rules offset + * @index_expn_offset: input parameter, index expansion rules offset + * @table_entries: input parameter, ipv4 rules table size in entries + * @expn_table_entries: input parameter, ipv4 expansion rules table size + * @ip_addr: input parameter, public ip address + */ +struct ipa_ioc_v4_nat_init { + uint8_t tbl_index; + uint32_t ipv4_rules_offset; + uint32_t expn_rules_offset; + + uint32_t index_offset; + uint32_t index_expn_offset; + + uint16_t table_entries; + uint16_t expn_table_entries; + uint32_t ip_addr; +}; + +/** + * struct ipa_ioc_v4_nat_del - nat table delete parameter + * @table_index: input parameter, index of the table + * @public_ip_addr: input parameter, public ip address + */ +struct ipa_ioc_v4_nat_del { + uint8_t table_index; + uint32_t public_ip_addr; +}; + +/** + * struct ipa_ioc_nat_dma_one - nat dma command parameter + * @table_index: input parameter, index of the table + * @base_addr: type of table, from which the base address of the table + * can be inferred + * @offset: destination offset within the NAT table + * @data: data to be written. + */ +struct ipa_ioc_nat_dma_one { + uint8_t table_index; + uint8_t base_addr; + + uint32_t offset; + uint16_t data; + +}; + +/** + * struct ipa_ioc_nat_dma_cmd - To hold multiple nat dma commands + * @entries: number of dma commands in use + * @dma: data pointer to the dma commands + */ +struct ipa_ioc_nat_dma_cmd { + uint8_t entries; + struct ipa_ioc_nat_dma_one dma[0]; + +}; + +/** + * struct ipa_msg_meta - Format of the message meta-data. + * @msg_type: the type of the message + * @rsvd: reserved bits for future use. + * @msg_len: the length of the message in bytes + * + * For push model: + * Client in user-space should issue a read on the device (/dev/ipa) with a + * sufficiently large buffer in a continuous loop, call will block when there is + * no message to read. Upon return, client can read the ipa_msg_meta from start + * of buffer to find out type and length of message + * size of buffer supplied >= (size of largest message + size of metadata) + * + * For pull model: + * Client in user-space can also issue a pull msg IOCTL to device (/dev/ipa) + * with a payload containing space for the ipa_msg_meta and the message specific + * payload length. + * size of buffer supplied == (len of specific message + size of metadata) + */ +struct ipa_msg_meta { + uint8_t msg_type; + uint8_t rsvd; + uint16_t msg_len; +}; + +/** + * struct ipa_wlan_msg - To hold information about wlan client + * @name: name of the wlan interface + * @mac_addr: mac address of wlan client + * + * wlan drivers need to pass name of wlan iface and mac address of + * wlan client along with ipa_wlan_event, whenever a wlan client is + * connected/disconnected/moved to power save/come out of power save + */ +struct ipa_wlan_msg { + char name[IPA_RESOURCE_NAME_MAX]; + uint8_t mac_addr[IPA_MAC_ADDR_SIZE]; +}; + +/** + * enum ipa_wlan_hdr_attrib_type - attribute type + * in wlan client header + * + * WLAN_HDR_ATTRIB_MAC_ADDR: attrib type mac address + * WLAN_HDR_ATTRIB_STA_ID: attrib type station id + */ +enum ipa_wlan_hdr_attrib_type { + WLAN_HDR_ATTRIB_MAC_ADDR, + WLAN_HDR_ATTRIB_STA_ID +}; + +/** + * struct ipa_wlan_hdr_attrib_val - header attribute value + * @attrib_type: type of attribute + * @offset: offset of attribute within header + * @u.mac_addr: mac address + * @u.sta_id: station id + */ +struct ipa_wlan_hdr_attrib_val { + enum ipa_wlan_hdr_attrib_type attrib_type; + uint8_t offset; + union { + uint8_t mac_addr[IPA_MAC_ADDR_SIZE]; + uint8_t sta_id; + } u; +}; + +/** + * struct ipa_wlan_msg_ex - To hold information about wlan client + * @name: name of the wlan interface + * @num_of_attribs: number of attributes + * @attrib_val: holds attribute values + * + * wlan drivers need to pass name of wlan iface and mac address + * of wlan client or station id along with ipa_wlan_event, + * whenever a wlan client is connected/disconnected/moved to + * power save/come out of power save + */ +struct ipa_wlan_msg_ex { + char name[IPA_RESOURCE_NAME_MAX]; + uint8_t num_of_attribs; + struct ipa_wlan_hdr_attrib_val attribs[0]; +}; + +struct ipa_ecm_msg { + char name[IPA_RESOURCE_NAME_MAX]; + int ifindex; +}; + +/** + * struct ipa_wan_msg - To hold information about wan client + * @name: name of the wan interface + * + * CnE need to pass the name of default wan iface when connected/disconnected. + * netmgr need to pass the name of wan eMBMS iface when connected. + */ +struct ipa_wan_msg { + char upstream_ifname[IPA_RESOURCE_NAME_MAX]; + char tethered_ifname[IPA_RESOURCE_NAME_MAX]; + enum ipa_ip_type ip; +}; + +/** + * struct ipa_ioc_rm_dependency - parameters for add/delete dependency + * @resource_name: name of dependent resource + * @depends_on_name: name of its dependency + */ +struct ipa_ioc_rm_dependency { + enum ipa_rm_resource_name resource_name; + enum ipa_rm_resource_name depends_on_name; +}; + +struct ipa_ioc_generate_flt_eq { + enum ipa_ip_type ip; + struct ipa_rule_attrib attrib; + struct ipa_ipfltri_rule_eq eq_attrib; +}; + +/** + * struct ipa_ioc_write_qmapid - to write mux id to endpoint meta register + * @mux_id: mux id of wan + */ +struct ipa_ioc_write_qmapid { + enum ipa_client_type client; + uint8_t qmap_id; +}; + + +/** + * actual IOCTLs supported by IPA driver + */ +#define IPA_IOC_ADD_HDR _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_ADD_HDR, \ + struct ipa_ioc_add_hdr *) +#define IPA_IOC_DEL_HDR _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_DEL_HDR, \ + struct ipa_ioc_del_hdr *) +#define IPA_IOC_ADD_RT_RULE _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_ADD_RT_RULE, \ + struct ipa_ioc_add_rt_rule *) +#define IPA_IOC_DEL_RT_RULE _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_DEL_RT_RULE, \ + struct ipa_ioc_del_rt_rule *) +#define IPA_IOC_ADD_FLT_RULE _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_ADD_FLT_RULE, \ + struct ipa_ioc_add_flt_rule *) +#define IPA_IOC_DEL_FLT_RULE _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_DEL_FLT_RULE, \ + struct ipa_ioc_del_flt_rule *) +#define IPA_IOC_COMMIT_HDR _IO(IPA_IOC_MAGIC,\ + IPA_IOCTL_COMMIT_HDR) +#define IPA_IOC_RESET_HDR _IO(IPA_IOC_MAGIC,\ + IPA_IOCTL_RESET_HDR) +#define IPA_IOC_COMMIT_RT _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_COMMIT_RT, \ + enum ipa_ip_type) +#define IPA_IOC_RESET_RT _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_RESET_RT, \ + enum ipa_ip_type) +#define IPA_IOC_COMMIT_FLT _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_COMMIT_FLT, \ + enum ipa_ip_type) +#define IPA_IOC_RESET_FLT _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_RESET_FLT, \ + enum ipa_ip_type) +#define IPA_IOC_DUMP _IO(IPA_IOC_MAGIC, \ + IPA_IOCTL_DUMP) +#define IPA_IOC_GET_RT_TBL _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_GET_RT_TBL, \ + struct ipa_ioc_get_rt_tbl *) +#define IPA_IOC_PUT_RT_TBL _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_PUT_RT_TBL, \ + uint32_t) +#define IPA_IOC_COPY_HDR _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_COPY_HDR, \ + struct ipa_ioc_copy_hdr *) +#define IPA_IOC_QUERY_INTF _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_QUERY_INTF, \ + struct ipa_ioc_query_intf *) +#define IPA_IOC_QUERY_INTF_TX_PROPS _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_QUERY_INTF_TX_PROPS, \ + struct ipa_ioc_query_intf_tx_props *) +#define IPA_IOC_QUERY_INTF_RX_PROPS _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_QUERY_INTF_RX_PROPS, \ + struct ipa_ioc_query_intf_rx_props *) +#define IPA_IOC_QUERY_INTF_EXT_PROPS _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_QUERY_INTF_EXT_PROPS, \ + struct ipa_ioc_query_intf_ext_props *) +#define IPA_IOC_GET_HDR _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_GET_HDR, \ + struct ipa_ioc_get_hdr *) +#define IPA_IOC_PUT_HDR _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_PUT_HDR, \ + uint32_t) +#define IPA_IOC_ALLOC_NAT_MEM _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_ALLOC_NAT_MEM, \ + struct ipa_ioc_nat_alloc_mem *) +#define IPA_IOC_V4_INIT_NAT _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_V4_INIT_NAT, \ + struct ipa_ioc_v4_nat_init *) +#define IPA_IOC_NAT_DMA _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_NAT_DMA, \ + struct ipa_ioc_nat_dma_cmd *) +#define IPA_IOC_V4_DEL_NAT _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_V4_DEL_NAT, \ + struct ipa_ioc_v4_nat_del *) +#define IPA_IOC_GET_NAT_OFFSET _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_GET_NAT_OFFSET, \ + uint32_t *) +#define IPA_IOC_SET_FLT _IOW(IPA_IOC_MAGIC, \ + IPA_IOCTL_SET_FLT, \ + uint32_t) +#define IPA_IOC_PULL_MSG _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_PULL_MSG, \ + struct ipa_msg_meta *) +#define IPA_IOC_RM_ADD_DEPENDENCY _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_RM_ADD_DEPENDENCY, \ + struct ipa_ioc_rm_dependency *) +#define IPA_IOC_RM_DEL_DEPENDENCY _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_RM_DEL_DEPENDENCY, \ + struct ipa_ioc_rm_dependency *) +#define IPA_IOC_GENERATE_FLT_EQ _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_GENERATE_FLT_EQ, \ + struct ipa_ioc_generate_flt_eq *) +#define IPA_IOC_QUERY_EP_MAPPING _IOR(IPA_IOC_MAGIC, \ + IPA_IOCTL_QUERY_EP_MAPPING, \ + uint32_t) +#define IPA_IOC_QUERY_RT_TBL_INDEX _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_QUERY_RT_TBL_INDEX, \ + struct ipa_ioc_get_rt_tbl_indx *) +#define IPA_IOC_WRITE_QMAPID _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_WRITE_QMAPID, \ + struct ipa_ioc_write_qmapid *) +#define IPA_IOC_MDFY_FLT_RULE _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_MDFY_FLT_RULE, \ + struct ipa_ioc_mdfy_flt_rule *) +#define IPA_IOC_MDFY_RT_RULE _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_MDFY_RT_RULE, \ + struct ipa_ioc_mdfy_rt_rule *) + +#define IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_ADD _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD, \ + struct ipa_wan_msg *) + +#define IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_DEL _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL, \ + struct ipa_wan_msg *) +#define IPA_IOC_NOTIFY_WAN_EMBMS_CONNECTED _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED, \ + struct ipa_wan_msg *) +#define IPA_IOC_ADD_HDR_PROC_CTX _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_ADD_HDR_PROC_CTX, \ + struct ipa_ioc_add_hdr_proc_ctx *) +#define IPA_IOC_DEL_HDR_PROC_CTX _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_DEL_HDR_PROC_CTX, \ + struct ipa_ioc_del_hdr_proc_ctx *) + +/* + * unique magic number of the Tethering bridge ioctls + */ +#define TETH_BRIDGE_IOC_MAGIC 0xCE + +/* + * Ioctls supported by Tethering bridge driver + */ +#define TETH_BRIDGE_IOCTL_SET_BRIDGE_MODE 0 +#define TETH_BRIDGE_IOCTL_SET_AGGR_PARAMS 1 +#define TETH_BRIDGE_IOCTL_GET_AGGR_PARAMS 2 +#define TETH_BRIDGE_IOCTL_GET_AGGR_CAPABILITIES 3 +#define TETH_BRIDGE_IOCTL_MAX 4 + + +/** + * enum teth_link_protocol_type - link protocol (IP / Ethernet) + */ +enum teth_link_protocol_type { + TETH_LINK_PROTOCOL_IP, + TETH_LINK_PROTOCOL_ETHERNET, + TETH_LINK_PROTOCOL_MAX, +}; + +/** + * enum teth_aggr_protocol_type - Aggregation protocol (MBIM / TLP) + */ +enum teth_aggr_protocol_type { + TETH_AGGR_PROTOCOL_NONE, + TETH_AGGR_PROTOCOL_MBIM, + TETH_AGGR_PROTOCOL_TLP, + TETH_AGGR_PROTOCOL_MAX, +}; + +/** + * struct teth_aggr_params_link - Aggregation parameters for uplink/downlink + * @aggr_prot: Aggregation protocol (MBIM / TLP) + * @max_transfer_size_byte: Maximal size of aggregated packet in bytes. + * Default value is 16*1024. + * @max_datagrams: Maximal number of IP packets in an aggregated + * packet. Default value is 16 + */ +struct teth_aggr_params_link { + enum teth_aggr_protocol_type aggr_prot; + uint32_t max_transfer_size_byte; + uint32_t max_datagrams; +}; + + +/** + * struct teth_aggr_params - Aggregation parmeters + * @ul: Uplink parameters + * @dl: Downlink parmaeters + */ +struct teth_aggr_params { + struct teth_aggr_params_link ul; + struct teth_aggr_params_link dl; +}; + +/** + * struct teth_aggr_capabilities - Aggregation capabilities + * @num_protocols: Number of protocols described in the array + * @prot_caps[]: Array of aggregation capabilities per protocol + */ +struct teth_aggr_capabilities { + uint16_t num_protocols; + struct teth_aggr_params_link prot_caps[0]; +}; + +/** + * struct teth_ioc_set_bridge_mode + * @link_protocol: link protocol (IP / Ethernet) + * @lcid: logical channel number + */ +struct teth_ioc_set_bridge_mode { + enum teth_link_protocol_type link_protocol; + uint16_t lcid; +}; + +/** + * struct teth_ioc_set_aggr_params + * @aggr_params: Aggregation parmeters + * @lcid: logical channel number + */ +struct teth_ioc_aggr_params { + struct teth_aggr_params aggr_params; + uint16_t lcid; +}; + + +#define TETH_BRIDGE_IOC_SET_BRIDGE_MODE _IOW(TETH_BRIDGE_IOC_MAGIC, \ + TETH_BRIDGE_IOCTL_SET_BRIDGE_MODE, \ + struct teth_ioc_set_bridge_mode *) +#define TETH_BRIDGE_IOC_SET_AGGR_PARAMS _IOW(TETH_BRIDGE_IOC_MAGIC, \ + TETH_BRIDGE_IOCTL_SET_AGGR_PARAMS, \ + struct teth_ioc_aggr_params *) +#define TETH_BRIDGE_IOC_GET_AGGR_PARAMS _IOR(TETH_BRIDGE_IOC_MAGIC, \ + TETH_BRIDGE_IOCTL_GET_AGGR_PARAMS, \ + struct teth_ioc_aggr_params *) +#define TETH_BRIDGE_IOC_GET_AGGR_CAPABILITIES _IOWR(TETH_BRIDGE_IOC_MAGIC, \ + TETH_BRIDGE_IOCTL_GET_AGGR_CAPABILITIES, \ + struct teth_aggr_capabilities *) + +/* + * unique magic number of the ODU bridge ioctls + */ +#define ODU_BRIDGE_IOC_MAGIC 0xCD + +/* + * Ioctls supported by ODU bridge driver + */ +#define ODU_BRIDGE_IOCTL_SET_MODE 0 +#define ODU_BRIDGE_IOCTL_SET_LLV6_ADDR 1 +#define ODU_BRIDGE_IOCTL_MAX 2 + +/** + * enum odu_bridge_mode - bridge mode + * (ROUTER MODE / BRIDGE MODE) + */ +enum odu_bridge_mode { + ODU_BRIDGE_MODE_ROUTER, + ODU_BRIDGE_MODE_BRIDGE, + ODU_BRIDGE_MODE_MAX, +}; + +#define ODU_BRIDGE_IOC_SET_MODE _IOW(ODU_BRIDGE_IOC_MAGIC, \ + ODU_BRIDGE_IOCTL_SET_MODE, \ + enum odu_bridge_mode) + +#define ODU_BRIDGE_IOC_SET_LLV6_ADDR _IOW(ODU_BRIDGE_IOC_MAGIC, \ + ODU_BRIDGE_IOCTL_SET_LLV6_ADDR, \ + struct in6_addr *) + +#endif /* _MSM_IPA_H_ */ diff --git a/kernel_headers/linux/msm_ipc.h b/kernel_headers/linux/msm_ipc.h new file mode 100644 index 0000000..88cf5ee --- /dev/null +++ b/kernel_headers/linux/msm_ipc.h @@ -0,0 +1,91 @@ +#ifndef _MSM_IPC_H_ +#define _MSM_IPC_H_ + +#include +#include + +struct msm_ipc_port_addr { + uint32_t node_id; + uint32_t port_id; +}; + +struct msm_ipc_port_name { + uint32_t service; + uint32_t instance; +}; + +struct msm_ipc_addr { + unsigned char addrtype; + union { + struct msm_ipc_port_addr port_addr; + struct msm_ipc_port_name port_name; + } addr; +}; + +#define MSM_IPC_WAIT_FOREVER (~0) /* timeout for permanent subscription */ + +/* + * Socket API + */ + +#ifndef AF_MSM_IPC +#define AF_MSM_IPC 27 +#endif + +#ifndef PF_MSM_IPC +#define PF_MSM_IPC AF_MSM_IPC +#endif + +#define MSM_IPC_ADDR_NAME 1 +#define MSM_IPC_ADDR_ID 2 + +struct sockaddr_msm_ipc { + unsigned short family; + struct msm_ipc_addr address; + unsigned char reserved; +}; + +struct config_sec_rules_args { + int num_group_info; + uint32_t service_id; + uint32_t instance_id; + unsigned reserved; + gid_t group_id[0]; +}; + +#define IPC_ROUTER_IOCTL_MAGIC (0xC3) + +#define IPC_ROUTER_IOCTL_GET_VERSION \ + _IOR(IPC_ROUTER_IOCTL_MAGIC, 0, unsigned int) + +#define IPC_ROUTER_IOCTL_GET_MTU \ + _IOR(IPC_ROUTER_IOCTL_MAGIC, 1, unsigned int) + +#define IPC_ROUTER_IOCTL_LOOKUP_SERVER \ + _IOWR(IPC_ROUTER_IOCTL_MAGIC, 2, struct sockaddr_msm_ipc) + +#define IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE \ + _IOR(IPC_ROUTER_IOCTL_MAGIC, 3, unsigned int) + +#define IPC_ROUTER_IOCTL_BIND_CONTROL_PORT \ + _IOR(IPC_ROUTER_IOCTL_MAGIC, 4, unsigned int) + +#define IPC_ROUTER_IOCTL_CONFIG_SEC_RULES \ + _IOR(IPC_ROUTER_IOCTL_MAGIC, 5, struct config_sec_rules_args) + +struct msm_ipc_server_info { + uint32_t node_id; + uint32_t port_id; + uint32_t service; + uint32_t instance; +}; + +struct server_lookup_args { + struct msm_ipc_port_name port_name; + int num_entries_in_array; + int num_entries_found; + uint32_t lookup_mask; + struct msm_ipc_server_info srv_info[0]; +}; + +#endif diff --git a/kernel_headers/linux/msm_kgsl.h b/kernel_headers/linux/msm_kgsl.h new file mode 100644 index 0000000..99a58bb --- /dev/null +++ b/kernel_headers/linux/msm_kgsl.h @@ -0,0 +1,1097 @@ +#ifndef _MSM_KGSL_H +#define _MSM_KGSL_H + +/* + * The KGSL version has proven not to be very useful in userspace if features + * are cherry picked into other trees out of order so it is frozen as of 3.14. + * It is left here for backwards compatabilty and as a reminder that + * software releases are never linear. Also, I like pie. + */ + +#define KGSL_VERSION_MAJOR 3 +#define KGSL_VERSION_MINOR 14 + +/* + * We have traditionally mixed context and issueibcmds / command batch flags + * together into a big flag stew. This worked fine until we started adding a + * lot more command batch flags and we started running out of bits. Turns out + * we have a bit of room in the context type / priority mask that we could use + * for command batches, but that means we need to split out the flags into two + * coherent sets. + * + * If any future definitions are for both context and cmdbatch add both defines + * and link the cmdbatch to the context define as we do below. Otherwise feel + * free to add exclusive bits to either set. + */ + +/* --- context flags --- */ +#define KGSL_CONTEXT_SAVE_GMEM 0x00000001 +#define KGSL_CONTEXT_NO_GMEM_ALLOC 0x00000002 +/* This is a cmdbatch exclusive flag - use the CMDBATCH equivalent instead */ +#define KGSL_CONTEXT_SUBMIT_IB_LIST 0x00000004 +#define KGSL_CONTEXT_CTX_SWITCH 0x00000008 +#define KGSL_CONTEXT_PREAMBLE 0x00000010 +#define KGSL_CONTEXT_TRASH_STATE 0x00000020 +#define KGSL_CONTEXT_PER_CONTEXT_TS 0x00000040 +#define KGSL_CONTEXT_USER_GENERATED_TS 0x00000080 +/* This is a cmdbatch exclusive flag - use the CMDBATCH equivalent instead */ +#define KGSL_CONTEXT_END_OF_FRAME 0x00000100 +#define KGSL_CONTEXT_NO_FAULT_TOLERANCE 0x00000200 +/* This is a cmdbatch exclusive flag - use the CMDBATCH equivalent instead */ +#define KGSL_CONTEXT_SYNC 0x00000400 +#define KGSL_CONTEXT_PWR_CONSTRAINT 0x00000800 + +#define KGSL_CONTEXT_PRIORITY_MASK 0x0000F000 +#define KGSL_CONTEXT_PRIORITY_SHIFT 12 +#define KGSL_CONTEXT_PRIORITY_UNDEF 0 + +#define KGSL_CONTEXT_IFH_NOP 0x00010000 +#define KGSL_CONTEXT_SECURE 0x00020000 + +#define KGSL_CONTEXT_TYPE_MASK 0x01F00000 +#define KGSL_CONTEXT_TYPE_SHIFT 20 +#define KGSL_CONTEXT_TYPE_ANY 0 +#define KGSL_CONTEXT_TYPE_GL 1 +#define KGSL_CONTEXT_TYPE_CL 2 +#define KGSL_CONTEXT_TYPE_C2D 3 +#define KGSL_CONTEXT_TYPE_RS 4 +#define KGSL_CONTEXT_TYPE_UNKNOWN 0x1E + +#define KGSL_CONTEXT_INVALID 0xffffffff + +/* + * --- command batch flags --- + * The bits that are linked to a KGSL_CONTEXT equivalent are either legacy + * definitions or bits that are valid for both contexts and cmdbatches. To be + * safe the other 8 bits that are still available in the context field should be + * omitted here in case we need to share - the other bits are available for + * cmdbatch only flags as needed + */ +#define KGSL_CMDBATCH_MEMLIST 0x00000001 +#define KGSL_CMDBATCH_MARKER 0x00000002 +#define KGSL_CMDBATCH_SUBMIT_IB_LIST KGSL_CONTEXT_SUBMIT_IB_LIST /* 0x004 */ +#define KGSL_CMDBATCH_CTX_SWITCH KGSL_CONTEXT_CTX_SWITCH /* 0x008 */ +#define KGSL_CMDBATCH_PROFILING 0x00000010 +#define KGSL_CMDBATCH_END_OF_FRAME KGSL_CONTEXT_END_OF_FRAME /* 0x100 */ +#define KGSL_CMDBATCH_SYNC KGSL_CONTEXT_SYNC /* 0x400 */ +#define KGSL_CMDBATCH_PWR_CONSTRAINT KGSL_CONTEXT_PWR_CONSTRAINT /* 0x800 */ + +/* + * Reserve bits [16:19] and bits [28:31] for possible bits shared between + * contexts and command batches. Update this comment as new flags are added. + */ + +/* --- Memory allocation flags --- */ + +/* General allocation hints */ +#define KGSL_MEMFLAGS_GPUREADONLY 0x01000000 +#define KGSL_MEMFLAGS_USE_CPU_MAP 0x10000000 + +/* Memory is secure */ +#define KGSL_MEMFLAGS_SECURE 0x00000008 + +/* Memory caching hints */ +#define KGSL_CACHEMODE_MASK 0x0C000000 +#define KGSL_CACHEMODE_SHIFT 26 + +#define KGSL_CACHEMODE_WRITECOMBINE 0 +#define KGSL_CACHEMODE_UNCACHED 1 +#define KGSL_CACHEMODE_WRITETHROUGH 2 +#define KGSL_CACHEMODE_WRITEBACK 3 + +/* Memory types for which allocations are made */ +#define KGSL_MEMTYPE_MASK 0x0000FF00 +#define KGSL_MEMTYPE_SHIFT 8 + +#define KGSL_MEMTYPE_OBJECTANY 0 +#define KGSL_MEMTYPE_FRAMEBUFFER 1 +#define KGSL_MEMTYPE_RENDERBUFFER 2 +#define KGSL_MEMTYPE_ARRAYBUFFER 3 +#define KGSL_MEMTYPE_ELEMENTARRAYBUFFER 4 +#define KGSL_MEMTYPE_VERTEXARRAYBUFFER 5 +#define KGSL_MEMTYPE_TEXTURE 6 +#define KGSL_MEMTYPE_SURFACE 7 +#define KGSL_MEMTYPE_EGL_SURFACE 8 +#define KGSL_MEMTYPE_GL 9 +#define KGSL_MEMTYPE_CL 10 +#define KGSL_MEMTYPE_CL_BUFFER_MAP 11 +#define KGSL_MEMTYPE_CL_BUFFER_NOMAP 12 +#define KGSL_MEMTYPE_CL_IMAGE_MAP 13 +#define KGSL_MEMTYPE_CL_IMAGE_NOMAP 14 +#define KGSL_MEMTYPE_CL_KERNEL_STACK 15 +#define KGSL_MEMTYPE_COMMAND 16 +#define KGSL_MEMTYPE_2D 17 +#define KGSL_MEMTYPE_EGL_IMAGE 18 +#define KGSL_MEMTYPE_EGL_SHADOW 19 +#define KGSL_MEMTYPE_MULTISAMPLE 20 +#define KGSL_MEMTYPE_KERNEL 255 + +/* + * Alignment hint, passed as the power of 2 exponent. + * i.e 4k (2^12) would be 12, 64k (2^16)would be 16. + */ +#define KGSL_MEMALIGN_MASK 0x00FF0000 +#define KGSL_MEMALIGN_SHIFT 16 + +enum kgsl_user_mem_type { + KGSL_USER_MEM_TYPE_PMEM = 0x00000000, + KGSL_USER_MEM_TYPE_ASHMEM = 0x00000001, + KGSL_USER_MEM_TYPE_ADDR = 0x00000002, + KGSL_USER_MEM_TYPE_ION = 0x00000003, + KGSL_USER_MEM_TYPE_MAX = 0x00000007, +}; +#define KGSL_MEMFLAGS_USERMEM_MASK 0x000000e0 +#define KGSL_MEMFLAGS_USERMEM_SHIFT 5 + +/* + * Unfortunately, enum kgsl_user_mem_type starts at 0 which does not + * leave a good value for allocated memory. In the flags we use + * 0 to indicate allocated memory and thus need to add 1 to the enum + * values. + */ +#define KGSL_USERMEM_FLAG(x) (((x) + 1) << KGSL_MEMFLAGS_USERMEM_SHIFT) + +#define KGSL_MEMFLAGS_NOT_USERMEM 0 +#define KGSL_MEMFLAGS_USERMEM_PMEM KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_PMEM) +#define KGSL_MEMFLAGS_USERMEM_ASHMEM \ + KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_ASHMEM) +#define KGSL_MEMFLAGS_USERMEM_ADDR KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_ADDR) +#define KGSL_MEMFLAGS_USERMEM_ION KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_ION) + +/* --- generic KGSL flag values --- */ + +#define KGSL_FLAGS_NORMALMODE 0x00000000 +#define KGSL_FLAGS_SAFEMODE 0x00000001 +#define KGSL_FLAGS_INITIALIZED0 0x00000002 +#define KGSL_FLAGS_INITIALIZED 0x00000004 +#define KGSL_FLAGS_STARTED 0x00000008 +#define KGSL_FLAGS_ACTIVE 0x00000010 +#define KGSL_FLAGS_RESERVED0 0x00000020 +#define KGSL_FLAGS_RESERVED1 0x00000040 +#define KGSL_FLAGS_RESERVED2 0x00000080 +#define KGSL_FLAGS_SOFT_RESET 0x00000100 +#define KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS 0x00000200 + +/* Clock flags to show which clocks should be controled by a given platform */ +#define KGSL_CLK_SRC 0x00000001 +#define KGSL_CLK_CORE 0x00000002 +#define KGSL_CLK_IFACE 0x00000004 +#define KGSL_CLK_MEM 0x00000008 +#define KGSL_CLK_MEM_IFACE 0x00000010 +#define KGSL_CLK_AXI 0x00000020 + +/* Server Side Sync Timeout in milliseconds */ +#define KGSL_SYNCOBJ_SERVER_TIMEOUT 2000 + +/* + * Reset status values for context + */ +enum kgsl_ctx_reset_stat { + KGSL_CTX_STAT_NO_ERROR = 0x00000000, + KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 0x00000001, + KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 0x00000002, + KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 0x00000003 +}; + +#define KGSL_CONVERT_TO_MBPS(val) \ + (val*1000*1000U) + +/* device id */ +enum kgsl_deviceid { + KGSL_DEVICE_3D0 = 0x00000000, + KGSL_DEVICE_2D0 = 0x00000001, + KGSL_DEVICE_2D1 = 0x00000002, + KGSL_DEVICE_MAX = 0x00000003 +}; + +struct kgsl_devinfo { + + unsigned int device_id; + /* chip revision id + * coreid:8 majorrev:8 minorrev:8 patch:8 + */ + unsigned int chip_id; + unsigned int mmu_enabled; + unsigned long gmem_gpubaseaddr; + /* + * This field contains the adreno revision + * number 200, 205, 220, etc... + */ + unsigned int gpu_id; + size_t gmem_sizebytes; +}; + +/* this structure defines the region of memory that can be mmap()ed from this + driver. The timestamp fields are __volatile__ because they are written by the + GPU +*/ +struct kgsl_devmemstore { + __volatile__ unsigned int soptimestamp; + unsigned int sbz; + __volatile__ unsigned int eoptimestamp; + unsigned int sbz2; + __volatile__ unsigned int ts_cmp_enable; + unsigned int sbz3; + __volatile__ unsigned int ref_wait_ts; + unsigned int sbz4; + unsigned int current_context; + unsigned int sbz5; +}; + +#define KGSL_MEMSTORE_OFFSET(ctxt_id, field) \ + ((ctxt_id)*sizeof(struct kgsl_devmemstore) + \ + offsetof(struct kgsl_devmemstore, field)) + +/* timestamp id*/ +enum kgsl_timestamp_type { + KGSL_TIMESTAMP_CONSUMED = 0x00000001, /* start-of-pipeline timestamp */ + KGSL_TIMESTAMP_RETIRED = 0x00000002, /* end-of-pipeline timestamp*/ + KGSL_TIMESTAMP_QUEUED = 0x00000003, +}; + +/* property types - used with kgsl_device_getproperty */ +enum kgsl_property_type { + KGSL_PROP_DEVICE_INFO = 0x00000001, + KGSL_PROP_DEVICE_SHADOW = 0x00000002, + KGSL_PROP_DEVICE_POWER = 0x00000003, + KGSL_PROP_SHMEM = 0x00000004, + KGSL_PROP_SHMEM_APERTURES = 0x00000005, + KGSL_PROP_MMU_ENABLE = 0x00000006, + KGSL_PROP_INTERRUPT_WAITS = 0x00000007, + KGSL_PROP_VERSION = 0x00000008, + KGSL_PROP_GPU_RESET_STAT = 0x00000009, + KGSL_PROP_PWRCTRL = 0x0000000E, + KGSL_PROP_PWR_CONSTRAINT = 0x00000012, +}; + +struct kgsl_shadowprop { + unsigned long gpuaddr; + size_t size; + unsigned int flags; /* contains KGSL_FLAGS_ values */ +}; + +struct kgsl_version { + unsigned int drv_major; + unsigned int drv_minor; + unsigned int dev_major; + unsigned int dev_minor; +}; + +/* Performance counter groups */ + +#define KGSL_PERFCOUNTER_GROUP_CP 0x0 +#define KGSL_PERFCOUNTER_GROUP_RBBM 0x1 +#define KGSL_PERFCOUNTER_GROUP_PC 0x2 +#define KGSL_PERFCOUNTER_GROUP_VFD 0x3 +#define KGSL_PERFCOUNTER_GROUP_HLSQ 0x4 +#define KGSL_PERFCOUNTER_GROUP_VPC 0x5 +#define KGSL_PERFCOUNTER_GROUP_TSE 0x6 +#define KGSL_PERFCOUNTER_GROUP_RAS 0x7 +#define KGSL_PERFCOUNTER_GROUP_UCHE 0x8 +#define KGSL_PERFCOUNTER_GROUP_TP 0x9 +#define KGSL_PERFCOUNTER_GROUP_SP 0xA +#define KGSL_PERFCOUNTER_GROUP_RB 0xB +#define KGSL_PERFCOUNTER_GROUP_PWR 0xC +#define KGSL_PERFCOUNTER_GROUP_VBIF 0xD +#define KGSL_PERFCOUNTER_GROUP_VBIF_PWR 0xE +#define KGSL_PERFCOUNTER_GROUP_MH 0xF +#define KGSL_PERFCOUNTER_GROUP_PA_SU 0x10 +#define KGSL_PERFCOUNTER_GROUP_SQ 0x11 +#define KGSL_PERFCOUNTER_GROUP_SX 0x12 +#define KGSL_PERFCOUNTER_GROUP_TCF 0x13 +#define KGSL_PERFCOUNTER_GROUP_TCM 0x14 +#define KGSL_PERFCOUNTER_GROUP_TCR 0x15 +#define KGSL_PERFCOUNTER_GROUP_L2 0x16 +#define KGSL_PERFCOUNTER_GROUP_VSC 0x17 +#define KGSL_PERFCOUNTER_GROUP_CCU 0x18 +#define KGSL_PERFCOUNTER_GROUP_ALWAYSON 0x1B +#define KGSL_PERFCOUNTER_GROUP_MAX 0x1C + +#define KGSL_PERFCOUNTER_NOT_USED 0xFFFFFFFF +#define KGSL_PERFCOUNTER_BROKEN 0xFFFFFFFE + +/* structure holds list of ibs */ +struct kgsl_ibdesc { + unsigned long gpuaddr; + unsigned long __pad; + size_t sizedwords; + unsigned int ctrl; +}; + +/** + * struct kgsl_cmdbatch_profiling_buffer + * @wall_clock_s: Wall clock at ringbuffer submission time (seconds) + * @wall_clock_ns: Wall clock at ringbuffer submission time (nanoseconds) + * @gpu_ticks_queued: GPU ticks at ringbuffer submission + * @gpu_ticks_submitted: GPU ticks when starting cmdbatch execution + * @gpu_ticks_retired: GPU ticks when finishing cmdbatch execution + * + * This structure defines the profiling buffer used to measure cmdbatch + * execution time + */ +struct kgsl_cmdbatch_profiling_buffer { + uint64_t wall_clock_s; + uint64_t wall_clock_ns; + uint64_t gpu_ticks_queued; + uint64_t gpu_ticks_submitted; + uint64_t gpu_ticks_retired; +}; + +/* ioctls */ +#define KGSL_IOC_TYPE 0x09 + +/* get misc info about the GPU + type should be a value from enum kgsl_property_type + value points to a structure that varies based on type + sizebytes is sizeof() that structure + for KGSL_PROP_DEVICE_INFO, use struct kgsl_devinfo + this structure contaings hardware versioning info. + for KGSL_PROP_DEVICE_SHADOW, use struct kgsl_shadowprop + this is used to find mmap() offset and sizes for mapping + struct kgsl_memstore into userspace. +*/ +struct kgsl_device_getproperty { + unsigned int type; + void *value; + size_t sizebytes; +}; + +#define IOCTL_KGSL_DEVICE_GETPROPERTY \ + _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty) + +/* IOCTL_KGSL_DEVICE_READ (0x3) - removed 03/2012 + */ + +/* block until the GPU has executed past a given timestamp + * timeout is in milliseconds. + */ +struct kgsl_device_waittimestamp { + unsigned int timestamp; + unsigned int timeout; +}; + +#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP \ + _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp) + +struct kgsl_device_waittimestamp_ctxtid { + unsigned int context_id; + unsigned int timestamp; + unsigned int timeout; +}; + +#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID \ + _IOW(KGSL_IOC_TYPE, 0x7, struct kgsl_device_waittimestamp_ctxtid) + +/* DEPRECATED: issue indirect commands to the GPU. + * drawctxt_id must have been created with IOCTL_KGSL_DRAWCTXT_CREATE + * ibaddr and sizedwords must specify a subset of a buffer created + * with IOCTL_KGSL_SHAREDMEM_FROM_PMEM + * flags may be a mask of KGSL_CONTEXT_ values + * timestamp is a returned counter value which can be passed to + * other ioctls to determine when the commands have been executed by + * the GPU. + * + * This fucntion is deprecated - consider using IOCTL_KGSL_SUBMIT_COMMANDS + * instead + */ +struct kgsl_ringbuffer_issueibcmds { + unsigned int drawctxt_id; + unsigned long ibdesc_addr; + unsigned int numibs; + unsigned int timestamp; /*output param */ + unsigned int flags; +}; + +#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS \ + _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds) + +/* read the most recently executed timestamp value + * type should be a value from enum kgsl_timestamp_type + */ +struct kgsl_cmdstream_readtimestamp { + unsigned int type; + unsigned int timestamp; /*output param */ +}; + +#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_OLD \ + _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp) + +#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP \ + _IOWR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp) + +/* free memory when the GPU reaches a given timestamp. + * gpuaddr specify a memory region created by a + * IOCTL_KGSL_SHAREDMEM_FROM_PMEM call + * type should be a value from enum kgsl_timestamp_type + */ +struct kgsl_cmdstream_freememontimestamp { + unsigned long gpuaddr; + unsigned int type; + unsigned int timestamp; +}; + +#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP \ + _IOW(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp) + +/* Previous versions of this header had incorrectly defined + IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP as a read-only ioctl instead + of a write only ioctl. To ensure binary compatability, the following + #define will be used to intercept the incorrect ioctl +*/ + +#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_OLD \ + _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp) + +/* create a draw context, which is used to preserve GPU state. + * The flags field may contain a mask KGSL_CONTEXT_* values + */ +struct kgsl_drawctxt_create { + unsigned int flags; + unsigned int drawctxt_id; /*output param */ +}; + +#define IOCTL_KGSL_DRAWCTXT_CREATE \ + _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create) + +/* destroy a draw context */ +struct kgsl_drawctxt_destroy { + unsigned int drawctxt_id; +}; + +#define IOCTL_KGSL_DRAWCTXT_DESTROY \ + _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy) + +/* add a block of pmem, fb, ashmem or user allocated address + * into the GPU address space */ +struct kgsl_map_user_mem { + int fd; + unsigned long gpuaddr; /*output param */ + size_t len; + size_t offset; + unsigned long hostptr; /*input param */ + enum kgsl_user_mem_type memtype; + unsigned int flags; +}; + +#define IOCTL_KGSL_MAP_USER_MEM \ + _IOWR(KGSL_IOC_TYPE, 0x15, struct kgsl_map_user_mem) + +struct kgsl_cmdstream_readtimestamp_ctxtid { + unsigned int context_id; + unsigned int type; + unsigned int timestamp; /*output param */ +}; + +#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_CTXTID \ + _IOWR(KGSL_IOC_TYPE, 0x16, struct kgsl_cmdstream_readtimestamp_ctxtid) + +struct kgsl_cmdstream_freememontimestamp_ctxtid { + unsigned int context_id; + unsigned long gpuaddr; + unsigned int type; + unsigned int timestamp; +}; + +#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_CTXTID \ + _IOW(KGSL_IOC_TYPE, 0x17, \ + struct kgsl_cmdstream_freememontimestamp_ctxtid) + +/* add a block of pmem or fb into the GPU address space */ +struct kgsl_sharedmem_from_pmem { + int pmem_fd; + unsigned long gpuaddr; /*output param */ + unsigned int len; + unsigned int offset; +}; + +#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM \ + _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem) + +/* remove memory from the GPU's address space */ +struct kgsl_sharedmem_free { + unsigned long gpuaddr; +}; + +#define IOCTL_KGSL_SHAREDMEM_FREE \ + _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free) + +struct kgsl_cff_user_event { + unsigned char cff_opcode; + unsigned int op1; + unsigned int op2; + unsigned int op3; + unsigned int op4; + unsigned int op5; + unsigned int __pad[2]; +}; + +#define IOCTL_KGSL_CFF_USER_EVENT \ + _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_cff_user_event) + +struct kgsl_gmem_desc { + unsigned int x; + unsigned int y; + unsigned int width; + unsigned int height; + unsigned int pitch; +}; + +struct kgsl_buffer_desc { + void *hostptr; + unsigned long gpuaddr; + int size; + unsigned int format; + unsigned int pitch; + unsigned int enabled; +}; + +struct kgsl_bind_gmem_shadow { + unsigned int drawctxt_id; + struct kgsl_gmem_desc gmem_desc; + unsigned int shadow_x; + unsigned int shadow_y; + struct kgsl_buffer_desc shadow_buffer; + unsigned int buffer_id; +}; + +#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW \ + _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow) + +/* add a block of memory into the GPU address space */ + +/* + * IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC deprecated 09/2012 + * use IOCTL_KGSL_GPUMEM_ALLOC instead + */ + +struct kgsl_sharedmem_from_vmalloc { + unsigned long gpuaddr; /*output param */ + unsigned int hostptr; + unsigned int flags; +}; + +#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC \ + _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc) + +/* + * This is being deprecated in favor of IOCTL_KGSL_GPUMEM_CACHE_SYNC which + * supports both directions (flush and invalidate). This code will still + * work, but by definition it will do a flush of the cache which might not be + * what you want to have happen on a buffer following a GPU operation. It is + * safer to go with IOCTL_KGSL_GPUMEM_CACHE_SYNC + */ + +#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE \ + _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free) + +struct kgsl_drawctxt_set_bin_base_offset { + unsigned int drawctxt_id; + unsigned int offset; +}; + +#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET \ + _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset) + +enum kgsl_cmdwindow_type { + KGSL_CMDWINDOW_MIN = 0x00000000, + KGSL_CMDWINDOW_2D = 0x00000000, + KGSL_CMDWINDOW_3D = 0x00000001, /* legacy */ + KGSL_CMDWINDOW_MMU = 0x00000002, + KGSL_CMDWINDOW_ARBITER = 0x000000FF, + KGSL_CMDWINDOW_MAX = 0x000000FF, +}; + +/* write to the command window */ +struct kgsl_cmdwindow_write { + enum kgsl_cmdwindow_type target; + unsigned int addr; + unsigned int data; +}; + +#define IOCTL_KGSL_CMDWINDOW_WRITE \ + _IOW(KGSL_IOC_TYPE, 0x2e, struct kgsl_cmdwindow_write) + +struct kgsl_gpumem_alloc { + unsigned long gpuaddr; /* output param */ + size_t size; + unsigned int flags; +}; + +#define IOCTL_KGSL_GPUMEM_ALLOC \ + _IOWR(KGSL_IOC_TYPE, 0x2f, struct kgsl_gpumem_alloc) + +struct kgsl_cff_syncmem { + unsigned long gpuaddr; + size_t len; + unsigned int __pad[2]; /* For future binary compatibility */ +}; + +#define IOCTL_KGSL_CFF_SYNCMEM \ + _IOW(KGSL_IOC_TYPE, 0x30, struct kgsl_cff_syncmem) + +/* + * A timestamp event allows the user space to register an action following an + * expired timestamp. Note IOCTL_KGSL_TIMESTAMP_EVENT has been redefined to + * _IOWR to support fences which need to return a fd for the priv parameter. + */ + +struct kgsl_timestamp_event { + int type; /* Type of event (see list below) */ + unsigned int timestamp; /* Timestamp to trigger event on */ + unsigned int context_id; /* Context for the timestamp */ + void *priv; /* Pointer to the event specific blob */ + size_t len; /* Size of the event specific blob */ +}; + +#define IOCTL_KGSL_TIMESTAMP_EVENT_OLD \ + _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_timestamp_event) + +/* A genlock timestamp event releases an existing lock on timestamp expire */ + +#define KGSL_TIMESTAMP_EVENT_GENLOCK 1 + +struct kgsl_timestamp_event_genlock { + int handle; /* Handle of the genlock lock to release */ +}; + +/* A fence timestamp event releases an existing lock on timestamp expire */ + +#define KGSL_TIMESTAMP_EVENT_FENCE 2 + +struct kgsl_timestamp_event_fence { + int fence_fd; /* Fence to signal */ +}; + +/* + * Set a property within the kernel. Uses the same structure as + * IOCTL_KGSL_GETPROPERTY + */ + +#define IOCTL_KGSL_SETPROPERTY \ + _IOW(KGSL_IOC_TYPE, 0x32, struct kgsl_device_getproperty) + +#define IOCTL_KGSL_TIMESTAMP_EVENT \ + _IOWR(KGSL_IOC_TYPE, 0x33, struct kgsl_timestamp_event) + +/** + * struct kgsl_gpumem_alloc_id - argument to IOCTL_KGSL_GPUMEM_ALLOC_ID + * @id: returned id value for this allocation. + * @flags: mask of KGSL_MEM* values requested and actual flags on return. + * @size: requested size of the allocation and actual size on return. + * @mmapsize: returned size to pass to mmap() which may be larger than 'size' + * @gpuaddr: returned GPU address for the allocation + * + * Allocate memory for access by the GPU. The flags and size fields are echoed + * back by the kernel, so that the caller can know if the request was + * adjusted. + * + * Supported flags: + * KGSL_MEMFLAGS_GPUREADONLY: the GPU will be unable to write to the buffer + * KGSL_MEMTYPE*: usage hint for debugging aid + * KGSL_MEMALIGN*: alignment hint, may be ignored or adjusted by the kernel. + * KGSL_MEMFLAGS_USE_CPU_MAP: If set on call and return, the returned GPU + * address will be 0. Calling mmap() will set the GPU address. + */ +struct kgsl_gpumem_alloc_id { + unsigned int id; + unsigned int flags; + size_t size; + size_t mmapsize; + unsigned long gpuaddr; +/* private: reserved for future use*/ + unsigned long __pad[2]; +}; + +#define IOCTL_KGSL_GPUMEM_ALLOC_ID \ + _IOWR(KGSL_IOC_TYPE, 0x34, struct kgsl_gpumem_alloc_id) + +/** + * struct kgsl_gpumem_free_id - argument to IOCTL_KGSL_GPUMEM_FREE_ID + * @id: GPU allocation id to free + * + * Free an allocation by id, in case a GPU address has not been assigned or + * is unknown. Freeing an allocation by id with this ioctl or by GPU address + * with IOCTL_KGSL_SHAREDMEM_FREE are equivalent. + */ +struct kgsl_gpumem_free_id { + unsigned int id; +/* private: reserved for future use*/ + unsigned int __pad; +}; + +#define IOCTL_KGSL_GPUMEM_FREE_ID \ + _IOWR(KGSL_IOC_TYPE, 0x35, struct kgsl_gpumem_free_id) + +/** + * struct kgsl_gpumem_get_info - argument to IOCTL_KGSL_GPUMEM_GET_INFO + * @gpuaddr: GPU address to query. Also set on return. + * @id: GPU allocation id to query. Also set on return. + * @flags: returned mask of KGSL_MEM* values. + * @size: returned size of the allocation. + * @mmapsize: returned size to pass mmap(), which may be larger than 'size' + * @useraddr: returned address of the userspace mapping for this buffer + * + * This ioctl allows querying of all user visible attributes of an existing + * allocation, by either the GPU address or the id returned by a previous + * call to IOCTL_KGSL_GPUMEM_ALLOC_ID. Legacy allocation ioctls may not + * return all attributes so this ioctl can be used to look them up if needed. + * + */ +struct kgsl_gpumem_get_info { + unsigned long gpuaddr; + unsigned int id; + unsigned int flags; + size_t size; + size_t mmapsize; + unsigned long useraddr; +/* private: reserved for future use*/ + unsigned long __pad[4]; +}; + +#define IOCTL_KGSL_GPUMEM_GET_INFO\ + _IOWR(KGSL_IOC_TYPE, 0x36, struct kgsl_gpumem_get_info) + +/** + * struct kgsl_gpumem_sync_cache - argument to IOCTL_KGSL_GPUMEM_SYNC_CACHE + * @gpuaddr: GPU address of the buffer to sync. + * @id: id of the buffer to sync. Either gpuaddr or id is sufficient. + * @op: a mask of KGSL_GPUMEM_CACHE_* values + * @offset: offset into the buffer + * @length: number of bytes starting from offset to perform + * the cache operation on + * + * Sync the L2 cache for memory headed to and from the GPU - this replaces + * KGSL_SHAREDMEM_FLUSH_CACHE since it can handle cache management for both + * directions + * + */ +struct kgsl_gpumem_sync_cache { + unsigned long gpuaddr; + unsigned int id; + unsigned int op; + size_t offset; + size_t length; +}; + +#define KGSL_GPUMEM_CACHE_CLEAN (1 << 0) +#define KGSL_GPUMEM_CACHE_TO_GPU KGSL_GPUMEM_CACHE_CLEAN + +#define KGSL_GPUMEM_CACHE_INV (1 << 1) +#define KGSL_GPUMEM_CACHE_FROM_GPU KGSL_GPUMEM_CACHE_INV + +#define KGSL_GPUMEM_CACHE_FLUSH \ + (KGSL_GPUMEM_CACHE_CLEAN | KGSL_GPUMEM_CACHE_INV) + +/* Flag to ensure backwards compatibility of kgsl_gpumem_sync_cache struct */ +#define KGSL_GPUMEM_CACHE_RANGE (1 << 31U) + +#define IOCTL_KGSL_GPUMEM_SYNC_CACHE \ + _IOW(KGSL_IOC_TYPE, 0x37, struct kgsl_gpumem_sync_cache) + +/** + * struct kgsl_perfcounter_get - argument to IOCTL_KGSL_PERFCOUNTER_GET + * @groupid: Performance counter group ID + * @countable: Countable to select within the group + * @offset: Return offset of the reserved LO counter + * @offset_hi: Return offset of the reserved HI counter + * + * Get an available performance counter from a specified groupid. The offset + * of the performance counter will be returned after successfully assigning + * the countable to the counter for the specified group. An error will be + * returned and an offset of 0 if the groupid is invalid or there are no + * more counters left. After successfully getting a perfcounter, the user + * must call kgsl_perfcounter_put(groupid, contable) when finished with + * the perfcounter to clear up perfcounter resources. + * + */ +struct kgsl_perfcounter_get { + unsigned int groupid; + unsigned int countable; + unsigned int offset; + unsigned int offset_hi; +/* private: reserved for future use */ + unsigned int __pad; /* For future binary compatibility */ +}; + +#define IOCTL_KGSL_PERFCOUNTER_GET \ + _IOWR(KGSL_IOC_TYPE, 0x38, struct kgsl_perfcounter_get) + +/** + * struct kgsl_perfcounter_put - argument to IOCTL_KGSL_PERFCOUNTER_PUT + * @groupid: Performance counter group ID + * @countable: Countable to release within the group + * + * Put an allocated performance counter to allow others to have access to the + * resource that was previously taken. This is only to be called after + * successfully getting a performance counter from kgsl_perfcounter_get(). + * + */ +struct kgsl_perfcounter_put { + unsigned int groupid; + unsigned int countable; +/* private: reserved for future use */ + unsigned int __pad[2]; /* For future binary compatibility */ +}; + +#define IOCTL_KGSL_PERFCOUNTER_PUT \ + _IOW(KGSL_IOC_TYPE, 0x39, struct kgsl_perfcounter_put) + +/** + * struct kgsl_perfcounter_query - argument to IOCTL_KGSL_PERFCOUNTER_QUERY + * @groupid: Performance counter group ID + * @countable: Return active countables array + * @size: Size of active countables array + * @max_counters: Return total number counters for the group ID + * + * Query the available performance counters given a groupid. The array + * *countables is used to return the current active countables in counters. + * The size of the array is passed in so the kernel will only write at most + * size or counter->size for the group id. The total number of available + * counters for the group ID is returned in max_counters. + * If the array or size passed in are invalid, then only the maximum number + * of counters will be returned, no data will be written to *countables. + * If the groupid is invalid an error code will be returned. + * + */ +struct kgsl_perfcounter_query { + unsigned int groupid; + /* Array to return the current countable for up to size counters */ + unsigned int *countables; + unsigned int count; + unsigned int max_counters; +/* private: reserved for future use */ + unsigned int __pad[2]; /* For future binary compatibility */ +}; + +#define IOCTL_KGSL_PERFCOUNTER_QUERY \ + _IOWR(KGSL_IOC_TYPE, 0x3A, struct kgsl_perfcounter_query) + +/** + * struct kgsl_perfcounter_query - argument to IOCTL_KGSL_PERFCOUNTER_QUERY + * @groupid: Performance counter group IDs + * @countable: Performance counter countable IDs + * @value: Return performance counter reads + * @size: Size of all arrays (groupid/countable pair and return value) + * + * Read in the current value of a performance counter given by the groupid + * and countable. + * + */ + +struct kgsl_perfcounter_read_group { + unsigned int groupid; + unsigned int countable; + unsigned long long value; +}; + +struct kgsl_perfcounter_read { + struct kgsl_perfcounter_read_group *reads; + unsigned int count; +/* private: reserved for future use */ + unsigned int __pad[2]; /* For future binary compatibility */ +}; + +#define IOCTL_KGSL_PERFCOUNTER_READ \ + _IOWR(KGSL_IOC_TYPE, 0x3B, struct kgsl_perfcounter_read) +/* + * struct kgsl_gpumem_sync_cache_bulk - argument to + * IOCTL_KGSL_GPUMEM_SYNC_CACHE_BULK + * @id_list: list of GPU buffer ids of the buffers to sync + * @count: number of GPU buffer ids in id_list + * @op: a mask of KGSL_GPUMEM_CACHE_* values + * + * Sync the cache for memory headed to and from the GPU. Certain + * optimizations can be made on the cache operation based on the total + * size of the working set of memory to be managed. + */ +struct kgsl_gpumem_sync_cache_bulk { + unsigned int *id_list; + unsigned int count; + unsigned int op; +/* private: reserved for future use */ + unsigned int __pad[2]; /* For future binary compatibility */ +}; + +#define IOCTL_KGSL_GPUMEM_SYNC_CACHE_BULK \ + _IOWR(KGSL_IOC_TYPE, 0x3C, struct kgsl_gpumem_sync_cache_bulk) + +/* + * struct kgsl_cmd_syncpoint_timestamp + * @context_id: ID of a KGSL context + * @timestamp: GPU timestamp + * + * This structure defines a syncpoint comprising a context/timestamp pair. A + * list of these may be passed by IOCTL_KGSL_SUBMIT_COMMANDS to define + * dependencies that must be met before the command can be submitted to the + * hardware + */ +struct kgsl_cmd_syncpoint_timestamp { + unsigned int context_id; + unsigned int timestamp; +}; + +#define KGSL_CMD_SYNCPOINT_TYPE_TIMESTAMP 0 + +struct kgsl_cmd_syncpoint_fence { + int fd; +}; + +#define KGSL_CMD_SYNCPOINT_TYPE_FENCE 1 + +/** + * struct kgsl_cmd_syncpoint - Define a sync point for a command batch + * @type: type of sync point defined here + * @priv: Pointer to the type specific buffer + * @size: Size of the type specific buffer + * + * This structure contains pointers defining a specific command sync point. + * The pointer and size should point to a type appropriate structure. + */ +struct kgsl_cmd_syncpoint { + int type; + void *priv; + size_t size; +}; + +/* Flag to indicate that the cmdlist may contain memlists */ +#define KGSL_IBDESC_MEMLIST 0x1 + +/* Flag to point out the cmdbatch profiling buffer in the memlist */ +#define KGSL_IBDESC_PROFILING_BUFFER 0x2 + +/** + * struct kgsl_submit_commands - Argument to IOCTL_KGSL_SUBMIT_COMMANDS + * @context_id: KGSL context ID that owns the commands + * @flags: + * @cmdlist: User pointer to a list of kgsl_ibdesc structures + * @numcmds: Number of commands listed in cmdlist + * @synclist: User pointer to a list of kgsl_cmd_syncpoint structures + * @numsyncs: Number of sync points listed in synclist + * @timestamp: On entry the a user defined timestamp, on exist the timestamp + * assigned to the command batch + * + * This structure specifies a command to send to the GPU hardware. This is + * similar to kgsl_issueibcmds expect that it doesn't support the legacy way to + * submit IB lists and it adds sync points to block the IB until the + * dependencies are satisified. This entry point is the new and preferred way + * to submit commands to the GPU. The memory list can be used to specify all + * memory that is referrenced in the current set of commands. + */ + +struct kgsl_submit_commands { + unsigned int context_id; + unsigned int flags; + struct kgsl_ibdesc *cmdlist; + unsigned int numcmds; + struct kgsl_cmd_syncpoint *synclist; + unsigned int numsyncs; + unsigned int timestamp; +/* private: reserved for future use */ + unsigned int __pad[4]; +}; + +#define IOCTL_KGSL_SUBMIT_COMMANDS \ + _IOWR(KGSL_IOC_TYPE, 0x3D, struct kgsl_submit_commands) + +/** + * struct kgsl_device_constraint - device constraint argument + * @context_id: KGSL context ID + * @type: type of constraint i.e pwrlevel/none + * @data: constraint data + * @size: size of the constraint data + */ +struct kgsl_device_constraint { + unsigned int type; + unsigned int context_id; + void *data; + size_t size; +}; + +/* Constraint Type*/ +#define KGSL_CONSTRAINT_NONE 0 +#define KGSL_CONSTRAINT_PWRLEVEL 1 + +/* PWRLEVEL constraint level*/ +/* set to min frequency */ +#define KGSL_CONSTRAINT_PWR_MIN 0 +/* set to max frequency */ +#define KGSL_CONSTRAINT_PWR_MAX 1 + +struct kgsl_device_constraint_pwrlevel { + unsigned int level; +}; + +/** + * struct kgsl_syncsource_create - Argument to IOCTL_KGSL_SYNCSOURCE_CREATE + * @id: returned id for the syncsource that was created. + * + * This ioctl creates a userspace sync timeline. + */ + +struct kgsl_syncsource_create { + unsigned int id; +/* private: reserved for future use */ + unsigned int __pad[3]; +}; + +#define IOCTL_KGSL_SYNCSOURCE_CREATE \ + _IOWR(KGSL_IOC_TYPE, 0x40, struct kgsl_syncsource_create) + +/** + * struct kgsl_syncsource_destroy - Argument to IOCTL_KGSL_SYNCSOURCE_DESTROY + * @id: syncsource id to destroy + * + * This ioctl creates a userspace sync timeline. + */ + +struct kgsl_syncsource_destroy { + unsigned int id; +/* private: reserved for future use */ + unsigned int __pad[3]; +}; + +#define IOCTL_KGSL_SYNCSOURCE_DESTROY \ + _IOWR(KGSL_IOC_TYPE, 0x41, struct kgsl_syncsource_destroy) + +/** + * struct kgsl_syncsource_create_fence - Argument to + * IOCTL_KGSL_SYNCSOURCE_CREATE_FENCE + * @id: syncsource id + * @fence_fd: returned sync_fence fd + * + * Create a fence that may be signaled by userspace by calling + * IOCTL_KGSL_SYNCSOURCE_SIGNAL_FENCE. There are no order dependencies between + * these fences. + */ +struct kgsl_syncsource_create_fence { + unsigned int id; + int fence_fd; +/* private: reserved for future use */ + unsigned int __pad[4]; +}; + +/** + * struct kgsl_syncsource_signal_fence - Argument to + * IOCTL_KGSL_SYNCSOURCE_SIGNAL_FENCE + * @id: syncsource id + * @fence_fd: sync_fence fd to signal + * + * Signal a fence that was created by a IOCTL_KGSL_SYNCSOURCE_CREATE_FENCE + * call using the same syncsource id. This allows a fence to be shared + * to other processes but only signaled by the process owning the fd + * used to create the fence. + */ +#define IOCTL_KGSL_SYNCSOURCE_CREATE_FENCE \ + _IOWR(KGSL_IOC_TYPE, 0x42, struct kgsl_syncsource_create_fence) + +struct kgsl_syncsource_signal_fence { + unsigned int id; + int fence_fd; +/* private: reserved for future use */ + unsigned int __pad[4]; +}; + +#define IOCTL_KGSL_SYNCSOURCE_SIGNAL_FENCE \ + _IOWR(KGSL_IOC_TYPE, 0x43, struct kgsl_syncsource_signal_fence) + +#endif /* _MSM_KGSL_H */ diff --git a/kernel_headers/linux/msm_mdp.h b/kernel_headers/linux/msm_mdp.h new file mode 100644 index 0000000..1029a5f --- /dev/null +++ b/kernel_headers/linux/msm_mdp.h @@ -0,0 +1,1161 @@ +#ifndef _MSM_MDP_H_ +#define _MSM_MDP_H_ + +#include +#include + +#define MSMFB_IOCTL_MAGIC 'm' +#define MSMFB_GRP_DISP _IOW(MSMFB_IOCTL_MAGIC, 1, unsigned int) +#define MSMFB_BLIT _IOW(MSMFB_IOCTL_MAGIC, 2, unsigned int) +#define MSMFB_SUSPEND_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 128, unsigned int) +#define MSMFB_RESUME_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 129, unsigned int) +#define MSMFB_CURSOR _IOW(MSMFB_IOCTL_MAGIC, 130, struct fb_cursor) +#define MSMFB_SET_LUT _IOW(MSMFB_IOCTL_MAGIC, 131, struct fb_cmap) +#define MSMFB_HISTOGRAM _IOWR(MSMFB_IOCTL_MAGIC, 132, struct mdp_histogram_data) +/* new ioctls's for set/get ccs matrix */ +#define MSMFB_GET_CCS_MATRIX _IOWR(MSMFB_IOCTL_MAGIC, 133, struct mdp_ccs) +#define MSMFB_SET_CCS_MATRIX _IOW(MSMFB_IOCTL_MAGIC, 134, struct mdp_ccs) +#define MSMFB_OVERLAY_SET _IOWR(MSMFB_IOCTL_MAGIC, 135, \ + struct mdp_overlay) +#define MSMFB_OVERLAY_UNSET _IOW(MSMFB_IOCTL_MAGIC, 136, unsigned int) + +#define MSMFB_OVERLAY_PLAY _IOW(MSMFB_IOCTL_MAGIC, 137, \ + struct msmfb_overlay_data) +#define MSMFB_OVERLAY_QUEUE MSMFB_OVERLAY_PLAY + +#define MSMFB_GET_PAGE_PROTECTION _IOR(MSMFB_IOCTL_MAGIC, 138, \ + struct mdp_page_protection) +#define MSMFB_SET_PAGE_PROTECTION _IOW(MSMFB_IOCTL_MAGIC, 139, \ + struct mdp_page_protection) +#define MSMFB_OVERLAY_GET _IOR(MSMFB_IOCTL_MAGIC, 140, \ + struct mdp_overlay) +#define MSMFB_OVERLAY_PLAY_ENABLE _IOW(MSMFB_IOCTL_MAGIC, 141, unsigned int) +#define MSMFB_OVERLAY_BLT _IOWR(MSMFB_IOCTL_MAGIC, 142, \ + struct msmfb_overlay_blt) +#define MSMFB_OVERLAY_BLT_OFFSET _IOW(MSMFB_IOCTL_MAGIC, 143, unsigned int) +#define MSMFB_HISTOGRAM_START _IOR(MSMFB_IOCTL_MAGIC, 144, \ + struct mdp_histogram_start_req) +#define MSMFB_HISTOGRAM_STOP _IOR(MSMFB_IOCTL_MAGIC, 145, unsigned int) +#define MSMFB_NOTIFY_UPDATE _IOWR(MSMFB_IOCTL_MAGIC, 146, unsigned int) + +#define MSMFB_OVERLAY_3D _IOWR(MSMFB_IOCTL_MAGIC, 147, \ + struct msmfb_overlay_3d) + +#define MSMFB_MIXER_INFO _IOWR(MSMFB_IOCTL_MAGIC, 148, \ + struct msmfb_mixer_info_req) +#define MSMFB_OVERLAY_PLAY_WAIT _IOWR(MSMFB_IOCTL_MAGIC, 149, \ + struct msmfb_overlay_data) +#define MSMFB_WRITEBACK_INIT _IO(MSMFB_IOCTL_MAGIC, 150) +#define MSMFB_WRITEBACK_START _IO(MSMFB_IOCTL_MAGIC, 151) +#define MSMFB_WRITEBACK_STOP _IO(MSMFB_IOCTL_MAGIC, 152) +#define MSMFB_WRITEBACK_QUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 153, \ + struct msmfb_data) +#define MSMFB_WRITEBACK_DEQUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 154, \ + struct msmfb_data) +#define MSMFB_WRITEBACK_TERMINATE _IO(MSMFB_IOCTL_MAGIC, 155) +#define MSMFB_MDP_PP _IOWR(MSMFB_IOCTL_MAGIC, 156, struct msmfb_mdp_pp) +#define MSMFB_OVERLAY_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 160, unsigned int) +#define MSMFB_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 161, unsigned int) +#define MSMFB_BUFFER_SYNC _IOW(MSMFB_IOCTL_MAGIC, 162, struct mdp_buf_sync) +#define MSMFB_OVERLAY_COMMIT _IO(MSMFB_IOCTL_MAGIC, 163) +#define MSMFB_DISPLAY_COMMIT _IOW(MSMFB_IOCTL_MAGIC, 164, \ + struct mdp_display_commit) +#define MSMFB_METADATA_SET _IOW(MSMFB_IOCTL_MAGIC, 165, struct msmfb_metadata) +#define MSMFB_METADATA_GET _IOW(MSMFB_IOCTL_MAGIC, 166, struct msmfb_metadata) +#define MSMFB_WRITEBACK_SET_MIRRORING_HINT _IOW(MSMFB_IOCTL_MAGIC, 167, \ + unsigned int) +#define MSMFB_ASYNC_BLIT _IOW(MSMFB_IOCTL_MAGIC, 168, unsigned int) +#define MSMFB_OVERLAY_PREPARE _IOWR(MSMFB_IOCTL_MAGIC, 169, \ + struct mdp_overlay_list) +#define MSMFB_LPM_ENABLE _IOWR(MSMFB_IOCTL_MAGIC, 170, unsigned int) +#define MSMFB_REG_READ _IOWR(MSMFB_IOCTL_MAGIC, 64, struct msmfb_reg_access) +#define MSMFB_REG_WRITE _IOW(MSMFB_IOCTL_MAGIC, 65, struct msmfb_reg_access) + +#define FB_TYPE_3D_PANEL 0x10101010 +#define MDP_IMGTYPE2_START 0x10000 +#define MSMFB_DRIVER_VERSION 0xF9E8D701 + +/* HW Revisions for different MDSS targets */ +#define MDSS_GET_MAJOR(rev) ((rev) >> 28) +#define MDSS_GET_MINOR(rev) (((rev) >> 16) & 0xFFF) +#define MDSS_GET_STEP(rev) ((rev) & 0xFFFF) +#define MDSS_GET_MAJOR_MINOR(rev) ((rev) >> 16) + +#define IS_MDSS_MAJOR_MINOR_SAME(rev1, rev2) \ + (MDSS_GET_MAJOR_MINOR((rev1)) == MDSS_GET_MAJOR_MINOR((rev2))) + +#define MDSS_MDP_REV(major, minor, step) \ + ((((major) & 0x000F) << 28) | \ + (((minor) & 0x0FFF) << 16) | \ + ((step) & 0xFFFF)) + +#define MDSS_MDP_HW_REV_100 MDSS_MDP_REV(1, 0, 0) /* 8974 v1.0 */ +#define MDSS_MDP_HW_REV_101 MDSS_MDP_REV(1, 1, 0) /* 8x26 v1.0 */ +#define MDSS_MDP_HW_REV_101_1 MDSS_MDP_REV(1, 1, 1) /* 8x26 v2.0, 8926 v1.0 */ +#define MDSS_MDP_HW_REV_101_2 MDSS_MDP_REV(1, 1, 2) /* 8926 v2.0 */ +#define MDSS_MDP_HW_REV_102 MDSS_MDP_REV(1, 2, 0) /* 8974 v2.0 */ +#define MDSS_MDP_HW_REV_102_1 MDSS_MDP_REV(1, 2, 1) /* 8974 v3.0 (Pro) */ +#define MDSS_MDP_HW_REV_103 MDSS_MDP_REV(1, 3, 0) /* 8084 v1.0 */ +#define MDSS_MDP_HW_REV_103_1 MDSS_MDP_REV(1, 3, 1) /* 8084 v1.1 */ +#define MDSS_MDP_HW_REV_105 MDSS_MDP_REV(1, 5, 0) /* 8994 v1.0 */ +#define MDSS_MDP_HW_REV_106 MDSS_MDP_REV(1, 6, 0) /* 8916 v1.0 */ +#define MDSS_MDP_HW_REV_107 MDSS_MDP_REV(1, 7, 0) +#define MDSS_MDP_HW_REV_108 MDSS_MDP_REV(1, 8, 0) /* 8939 v1.0 */ +#define MDSS_MDP_HW_REV_109 MDSS_MDP_REV(1, 9, 0) /* 8994 v2.0 */ +#define MDSS_MDP_HW_REV_110 MDSS_MDP_REV(1, 10, 0) /* 8992 v1.0 */ +#define MDSS_MDP_HW_REV_200 MDSS_MDP_REV(2, 0, 0) /* 8092 v1.0 */ + +enum { + NOTIFY_UPDATE_START, + NOTIFY_UPDATE_STOP, + NOTIFY_UPDATE_POWER_OFF, +}; + +enum { + NOTIFY_TYPE_NO_UPDATE, + NOTIFY_TYPE_SUSPEND, + NOTIFY_TYPE_UPDATE, + NOTIFY_TYPE_BL_UPDATE, +}; + +enum { + MDP_RGB_565, /* RGB 565 planer */ + MDP_XRGB_8888, /* RGB 888 padded */ + MDP_Y_CBCR_H2V2, /* Y and CbCr, pseudo planer w/ Cb is in MSB */ + MDP_Y_CBCR_H2V2_ADRENO, + MDP_ARGB_8888, /* ARGB 888 */ + MDP_RGB_888, /* RGB 888 planer */ + MDP_Y_CRCB_H2V2, /* Y and CrCb, pseudo planer w/ Cr is in MSB */ + MDP_YCRYCB_H2V1, /* YCrYCb interleave */ + MDP_CBYCRY_H2V1, /* CbYCrY interleave */ + MDP_Y_CRCB_H2V1, /* Y and CrCb, pseduo planer w/ Cr is in MSB */ + MDP_Y_CBCR_H2V1, /* Y and CrCb, pseduo planer w/ Cr is in MSB */ + MDP_Y_CRCB_H1V2, + MDP_Y_CBCR_H1V2, + MDP_RGBA_8888, /* ARGB 888 */ + MDP_BGRA_8888, /* ABGR 888 */ + MDP_RGBX_8888, /* RGBX 888 */ + MDP_Y_CRCB_H2V2_TILE, /* Y and CrCb, pseudo planer tile */ + MDP_Y_CBCR_H2V2_TILE, /* Y and CbCr, pseudo planer tile */ + MDP_Y_CR_CB_H2V2, /* Y, Cr and Cb, planar */ + MDP_Y_CR_CB_GH2V2, /* Y, Cr and Cb, planar aligned to Android YV12 */ + MDP_Y_CB_CR_H2V2, /* Y, Cb and Cr, planar */ + MDP_Y_CRCB_H1V1, /* Y and CrCb, pseduo planer w/ Cr is in MSB */ + MDP_Y_CBCR_H1V1, /* Y and CbCr, pseduo planer w/ Cb is in MSB */ + MDP_YCRCB_H1V1, /* YCrCb interleave */ + MDP_YCBCR_H1V1, /* YCbCr interleave */ + MDP_BGR_565, /* BGR 565 planer */ + MDP_BGR_888, /* BGR 888 */ + MDP_Y_CBCR_H2V2_VENUS, + MDP_BGRX_8888, /* BGRX 8888 */ + MDP_RGBA_8888_TILE, /* RGBA 8888 in tile format */ + MDP_ARGB_8888_TILE, /* ARGB 8888 in tile format */ + MDP_ABGR_8888_TILE, /* ABGR 8888 in tile format */ + MDP_BGRA_8888_TILE, /* BGRA 8888 in tile format */ + MDP_RGBX_8888_TILE, /* RGBX 8888 in tile format */ + MDP_XRGB_8888_TILE, /* XRGB 8888 in tile format */ + MDP_XBGR_8888_TILE, /* XBGR 8888 in tile format */ + MDP_BGRX_8888_TILE, /* BGRX 8888 in tile format */ + MDP_YCBYCR_H2V1, /* YCbYCr interleave */ + MDP_RGB_565_TILE, /* RGB 565 in tile format */ + MDP_BGR_565_TILE, /* BGR 565 in tile format */ + MDP_ARGB_1555, /*ARGB 1555*/ + MDP_RGBA_5551, /*RGBA 5551*/ + MDP_ARGB_4444, /*ARGB 4444*/ + MDP_RGBA_4444, /*RGBA 4444*/ + MDP_IMGTYPE_LIMIT, + MDP_RGB_BORDERFILL, /* border fill pipe */ + MDP_FB_FORMAT = MDP_IMGTYPE2_START, /* framebuffer format */ + MDP_IMGTYPE_LIMIT2 /* Non valid image type after this enum */ +}; + +enum { + PMEM_IMG, + FB_IMG, +}; + +enum { + HSIC_HUE = 0, + HSIC_SAT, + HSIC_INT, + HSIC_CON, + NUM_HSIC_PARAM, +}; + +#define MDSS_MDP_ROT_ONLY 0x80 +#define MDSS_MDP_RIGHT_MIXER 0x100 +#define MDSS_MDP_DUAL_PIPE 0x200 + +/* mdp_blit_req flag values */ +#define MDP_ROT_NOP 0 +#define MDP_FLIP_LR 0x1 +#define MDP_FLIP_UD 0x2 +#define MDP_ROT_90 0x4 +#define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR) +#define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR) +#define MDP_DITHER 0x8 +#define MDP_BLUR 0x10 +#define MDP_BLEND_FG_PREMULT 0x20000 +#define MDP_IS_FG 0x40000 +#define MDP_SOLID_FILL 0x00000020 +#define MDP_VPU_PIPE 0x00000040 +#define MDP_DEINTERLACE 0x80000000 +#define MDP_SHARPENING 0x40000000 +#define MDP_NO_DMA_BARRIER_START 0x20000000 +#define MDP_NO_DMA_BARRIER_END 0x10000000 +#define MDP_NO_BLIT 0x08000000 +#define MDP_BLIT_WITH_DMA_BARRIERS 0x000 +#define MDP_BLIT_WITH_NO_DMA_BARRIERS \ + (MDP_NO_DMA_BARRIER_START | MDP_NO_DMA_BARRIER_END) +#define MDP_BLIT_SRC_GEM 0x04000000 +#define MDP_BLIT_DST_GEM 0x02000000 +#define MDP_BLIT_NON_CACHED 0x01000000 +#define MDP_OV_PIPE_SHARE 0x00800000 +#define MDP_DEINTERLACE_ODD 0x00400000 +#define MDP_OV_PLAY_NOWAIT 0x00200000 +#define MDP_SOURCE_ROTATED_90 0x00100000 +#define MDP_OVERLAY_PP_CFG_EN 0x00080000 +#define MDP_BACKEND_COMPOSITION 0x00040000 +#define MDP_BORDERFILL_SUPPORTED 0x00010000 +#define MDP_SECURE_OVERLAY_SESSION 0x00008000 +#define MDP_SECURE_DISPLAY_OVERLAY_SESSION 0x00002000 +#define MDP_OV_PIPE_FORCE_DMA 0x00004000 +#define MDP_MEMORY_ID_TYPE_FB 0x00001000 +#define MDP_BWC_EN 0x00000400 +#define MDP_DECIMATION_EN 0x00000800 +#define MDP_SMP_FORCE_ALLOC 0x00200000 +#define MDP_TRANSP_NOP 0xffffffff +#define MDP_ALPHA_NOP 0xff + +#define MDP_FB_PAGE_PROTECTION_NONCACHED (0) +#define MDP_FB_PAGE_PROTECTION_WRITECOMBINE (1) +#define MDP_FB_PAGE_PROTECTION_WRITETHROUGHCACHE (2) +#define MDP_FB_PAGE_PROTECTION_WRITEBACKCACHE (3) +#define MDP_FB_PAGE_PROTECTION_WRITEBACKWACACHE (4) +/* Sentinel: Don't use! */ +#define MDP_FB_PAGE_PROTECTION_INVALID (5) +/* Count of the number of MDP_FB_PAGE_PROTECTION_... values. */ +#define MDP_NUM_FB_PAGE_PROTECTION_VALUES (5) + +struct mdp_rect { + uint32_t x; + uint32_t y; + uint32_t w; + uint32_t h; +}; + +struct mdp_img { + uint32_t width; + uint32_t height; + uint32_t format; + uint32_t offset; + int memory_id; /* the file descriptor */ + uint32_t priv; +}; + +/* + * {3x3} + {3} ccs matrix + */ + +#define MDP_CCS_RGB2YUV 0 +#define MDP_CCS_YUV2RGB 1 + +#define MDP_CCS_SIZE 9 +#define MDP_BV_SIZE 3 + +struct mdp_ccs { + int direction; /* MDP_CCS_RGB2YUV or YUV2RGB */ + uint16_t ccs[MDP_CCS_SIZE]; /* 3x3 color coefficients */ + uint16_t bv[MDP_BV_SIZE]; /* 1x3 bias vector */ +}; + +struct mdp_csc { + int id; + uint32_t csc_mv[9]; + uint32_t csc_pre_bv[3]; + uint32_t csc_post_bv[3]; + uint32_t csc_pre_lv[6]; + uint32_t csc_post_lv[6]; +}; + +/* The version of the mdp_blit_req structure so that + * user applications can selectively decide which functionality + * to include + */ + +#define MDP_BLIT_REQ_VERSION 2 + +struct color { + uint32_t r; + uint32_t g; + uint32_t b; + uint32_t alpha; +}; + +struct mdp_blit_req { + struct mdp_img src; + struct mdp_img dst; + struct mdp_rect src_rect; + struct mdp_rect dst_rect; + struct color const_color; + uint32_t alpha; + uint32_t transp_mask; + uint32_t flags; + int sharpening_strength; /* -127 <--> 127, default 64 */ + uint8_t color_space; +}; + +struct mdp_blit_req_list { + uint32_t count; + struct mdp_blit_req req[]; +}; + +#define MSMFB_DATA_VERSION 2 + +struct msmfb_data { + uint32_t offset; + int memory_id; + int id; + uint32_t flags; + uint32_t priv; + uint32_t iova; +}; + +#define MSMFB_NEW_REQUEST -1 + +struct msmfb_overlay_data { + uint32_t id; + struct msmfb_data data; + uint32_t version_key; + struct msmfb_data plane1_data; + struct msmfb_data plane2_data; + struct msmfb_data dst_data; +}; + +struct msmfb_img { + uint32_t width; + uint32_t height; + uint32_t format; +}; + +#define MSMFB_WRITEBACK_DEQUEUE_BLOCKING 0x1 +struct msmfb_writeback_data { + struct msmfb_data buf_info; + struct msmfb_img img; +}; + +#define MDP_PP_OPS_ENABLE 0x1 +#define MDP_PP_OPS_READ 0x2 +#define MDP_PP_OPS_WRITE 0x4 +#define MDP_PP_OPS_DISABLE 0x8 +#define MDP_PP_IGC_FLAG_ROM0 0x10 +#define MDP_PP_IGC_FLAG_ROM1 0x20 + +#define MDP_PP_PA_HUE_ENABLE 0x10 +#define MDP_PP_PA_SAT_ENABLE 0x20 +#define MDP_PP_PA_VAL_ENABLE 0x40 +#define MDP_PP_PA_CONT_ENABLE 0x80 +#define MDP_PP_PA_SIX_ZONE_ENABLE 0x100 +#define MDP_PP_PA_SKIN_ENABLE 0x200 +#define MDP_PP_PA_SKY_ENABLE 0x400 +#define MDP_PP_PA_FOL_ENABLE 0x800 +#define MDP_PP_PA_HUE_MASK 0x1000 +#define MDP_PP_PA_SAT_MASK 0x2000 +#define MDP_PP_PA_VAL_MASK 0x4000 +#define MDP_PP_PA_CONT_MASK 0x8000 +#define MDP_PP_PA_SIX_ZONE_HUE_MASK 0x10000 +#define MDP_PP_PA_SIX_ZONE_SAT_MASK 0x20000 +#define MDP_PP_PA_SIX_ZONE_VAL_MASK 0x40000 +#define MDP_PP_PA_MEM_COL_SKIN_MASK 0x80000 +#define MDP_PP_PA_MEM_COL_SKY_MASK 0x100000 +#define MDP_PP_PA_MEM_COL_FOL_MASK 0x200000 +#define MDP_PP_PA_MEM_PROTECT_EN 0x400000 +#define MDP_PP_PA_SAT_ZERO_EXP_EN 0x800000 + +#define MDSS_PP_DSPP_CFG 0x000 +#define MDSS_PP_SSPP_CFG 0x100 +#define MDSS_PP_LM_CFG 0x200 +#define MDSS_PP_WB_CFG 0x300 + +#define MDSS_PP_ARG_MASK 0x3C00 +#define MDSS_PP_ARG_NUM 4 +#define MDSS_PP_ARG_SHIFT 10 +#define MDSS_PP_LOCATION_MASK 0x0300 +#define MDSS_PP_LOGICAL_MASK 0x00FF + +#define MDSS_PP_ADD_ARG(var, arg) ((var) | (0x1 << (MDSS_PP_ARG_SHIFT + (arg)))) +#define PP_ARG(x, var) ((var) & (0x1 << (MDSS_PP_ARG_SHIFT + (x)))) +#define PP_LOCAT(var) ((var) & MDSS_PP_LOCATION_MASK) +#define PP_BLOCK(var) ((var) & MDSS_PP_LOGICAL_MASK) + + +struct mdp_qseed_cfg { + uint32_t table_num; + uint32_t ops; + uint32_t len; + uint32_t *data; +}; + +struct mdp_sharp_cfg { + uint32_t flags; + uint32_t strength; + uint32_t edge_thr; + uint32_t smooth_thr; + uint32_t noise_thr; +}; + +struct mdp_qseed_cfg_data { + uint32_t block; + struct mdp_qseed_cfg qseed_data; +}; + +#define MDP_OVERLAY_PP_CSC_CFG 0x1 +#define MDP_OVERLAY_PP_QSEED_CFG 0x2 +#define MDP_OVERLAY_PP_PA_CFG 0x4 +#define MDP_OVERLAY_PP_IGC_CFG 0x8 +#define MDP_OVERLAY_PP_SHARP_CFG 0x10 +#define MDP_OVERLAY_PP_HIST_CFG 0x20 +#define MDP_OVERLAY_PP_HIST_LUT_CFG 0x40 +#define MDP_OVERLAY_PP_PA_V2_CFG 0x80 + +#define MDP_CSC_FLAG_ENABLE 0x1 +#define MDP_CSC_FLAG_YUV_IN 0x2 +#define MDP_CSC_FLAG_YUV_OUT 0x4 + +struct mdp_csc_cfg { + /* flags for enable CSC, toggling RGB,YUV input/output */ + uint32_t flags; + uint32_t csc_mv[9]; + uint32_t csc_pre_bv[3]; + uint32_t csc_post_bv[3]; + uint32_t csc_pre_lv[6]; + uint32_t csc_post_lv[6]; +}; + +struct mdp_csc_cfg_data { + uint32_t block; + struct mdp_csc_cfg csc_data; +}; + +struct mdp_pa_cfg { + uint32_t flags; + uint32_t hue_adj; + uint32_t sat_adj; + uint32_t val_adj; + uint32_t cont_adj; +}; + +struct mdp_pa_mem_col_cfg { + uint32_t color_adjust_p0; + uint32_t color_adjust_p1; + uint32_t hue_region; + uint32_t sat_region; + uint32_t val_region; +}; + +#define MDP_SIX_ZONE_LUT_SIZE 384 + +struct mdp_pa_v2_data { + /* Mask bits for PA features */ + uint32_t flags; + uint32_t global_hue_adj; + uint32_t global_sat_adj; + uint32_t global_val_adj; + uint32_t global_cont_adj; + struct mdp_pa_mem_col_cfg skin_cfg; + struct mdp_pa_mem_col_cfg sky_cfg; + struct mdp_pa_mem_col_cfg fol_cfg; + uint32_t six_zone_len; + uint32_t six_zone_thresh; + uint32_t *six_zone_curve_p0; + uint32_t *six_zone_curve_p1; +}; + +struct mdp_igc_lut_data { + uint32_t block; + uint32_t len, ops; + uint32_t *c0_c1_data; + uint32_t *c2_data; +}; + +struct mdp_histogram_cfg { + uint32_t ops; + uint32_t block; + uint8_t frame_cnt; + uint8_t bit_mask; + uint16_t num_bins; +}; + +struct mdp_hist_lut_data { + uint32_t block; + uint32_t ops; + uint32_t len; + uint32_t *data; +}; + +struct mdp_overlay_pp_params { + uint32_t config_ops; + struct mdp_csc_cfg csc_cfg; + struct mdp_qseed_cfg qseed_cfg[2]; + struct mdp_pa_cfg pa_cfg; + struct mdp_pa_v2_data pa_v2_cfg; + struct mdp_igc_lut_data igc_cfg; + struct mdp_sharp_cfg sharp_cfg; + struct mdp_histogram_cfg hist_cfg; + struct mdp_hist_lut_data hist_lut_cfg; +}; + +/** + * enum mdss_mdp_blend_op - Different blend operations set by userspace + * + * @BLEND_OP_NOT_DEFINED: No blend operation defined for the layer. + * @BLEND_OP_OPAQUE: Apply a constant blend operation. The layer + * would appear opaque in case fg plane alpha is + * 0xff. + * @BLEND_OP_PREMULTIPLIED: Apply source over blend rule. Layer already has + * alpha pre-multiplication done. If fg plane alpha + * is less than 0xff, apply modulation as well. This + * operation is intended on layers having alpha + * channel. + * @BLEND_OP_COVERAGE: Apply source over blend rule. Layer is not alpha + * pre-multiplied. Apply pre-multiplication. If fg + * plane alpha is less than 0xff, apply modulation as + * well. + * @BLEND_OP_MAX: Used to track maximum blend operation possible by + * mdp. + */ +enum mdss_mdp_blend_op { + BLEND_OP_NOT_DEFINED = 0, + BLEND_OP_OPAQUE, + BLEND_OP_PREMULTIPLIED, + BLEND_OP_COVERAGE, + BLEND_OP_MAX, +}; + +#define MAX_PLANES 4 +struct mdp_scale_data { + uint8_t enable_pxl_ext; + + int init_phase_x[MAX_PLANES]; + int phase_step_x[MAX_PLANES]; + int init_phase_y[MAX_PLANES]; + int phase_step_y[MAX_PLANES]; + + int num_ext_pxls_left[MAX_PLANES]; + int num_ext_pxls_right[MAX_PLANES]; + int num_ext_pxls_top[MAX_PLANES]; + int num_ext_pxls_btm[MAX_PLANES]; + + int left_ftch[MAX_PLANES]; + int left_rpt[MAX_PLANES]; + int right_ftch[MAX_PLANES]; + int right_rpt[MAX_PLANES]; + + int top_rpt[MAX_PLANES]; + int btm_rpt[MAX_PLANES]; + int top_ftch[MAX_PLANES]; + int btm_ftch[MAX_PLANES]; + + uint32_t roi_w[MAX_PLANES]; +}; + +/** + * enum mdp_overlay_pipe_type - Different pipe type set by userspace + * + * @PIPE_TYPE_AUTO: Not specified, pipe will be selected according to flags. + * @PIPE_TYPE_VIG: VIG pipe. + * @PIPE_TYPE_RGB: RGB pipe. + * @PIPE_TYPE_DMA: DMA pipe. + * @PIPE_TYPE_CURSOR: CURSOR pipe. + * @PIPE_TYPE_MAX: Used to track maximum number of pipe type. + */ +enum mdp_overlay_pipe_type { + PIPE_TYPE_AUTO = 0, + PIPE_TYPE_VIG, + PIPE_TYPE_RGB, + PIPE_TYPE_DMA, + PIPE_TYPE_CURSOR, + PIPE_TYPE_MAX, +}; + +/** + * struct mdp_overlay - overlay surface structure + * @src: Source image information (width, height, format). + * @src_rect: Source crop rectangle, portion of image that will be fetched. + * This should always be within boundaries of source image. + * @dst_rect: Destination rectangle, the position and size of image on screen. + * This should always be within panel boundaries. + * @z_order: Blending stage to occupy in display, if multiple layers are + * present, highest z_order usually means the top most visible + * layer. The range acceptable is from 0-3 to support blending + * up to 4 layers. + * @is_fg: This flag is used to disable blending of any layers with z_order + * less than this overlay. It means that any layers with z_order + * less than this layer will not be blended and will be replaced + * by the background border color. + * @alpha: Used to set plane opacity. The range can be from 0-255, where + * 0 means completely transparent and 255 means fully opaque. + * @transp_mask: Color used as color key for transparency. Any pixel in fetched + * image matching this color will be transparent when blending. + * The color should be in same format as the source image format. + * @flags: This is used to customize operation of overlay. See MDP flags + * for more information. + * @pipe_type: Used to specify the type of overlay pipe. + * @user_data: DEPRECATED* Used to store user application specific information. + * @bg_color: Solid color used to fill the overlay surface when no source + * buffer is provided. + * @horz_deci: Horizontal decimation value, this indicates the amount of pixels + * dropped for each pixel that is fetched from a line. The value + * given should be power of two of decimation amount. + * 0: no decimation + * 1: decimate by 2 (drop 1 pixel for each pixel fetched) + * 2: decimate by 4 (drop 3 pixels for each pixel fetched) + * 3: decimate by 8 (drop 7 pixels for each pixel fetched) + * 4: decimate by 16 (drop 15 pixels for each pixel fetched) + * @vert_deci: Vertical decimation value, this indicates the amount of lines + * dropped for each line that is fetched from overlay. The value + * given should be power of two of decimation amount. + * 0: no decimation + * 1: decimation by 2 (drop 1 line for each line fetched) + * 2: decimation by 4 (drop 3 lines for each line fetched) + * 3: decimation by 8 (drop 7 lines for each line fetched) + * 4: decimation by 16 (drop 15 lines for each line fetched) + * @overlay_pp_cfg: Overlay post processing configuration, for more information + * see struct mdp_overlay_pp_params. + * @priority: Priority is returned by the driver when overlay is set for the + * first time. It indicates the priority of the underlying pipe + * serving the overlay. This priority can be used by user-space + * in source split when pipes are re-used and shuffled around to + * reduce fallbacks. + */ +struct mdp_overlay { + struct msmfb_img src; + struct mdp_rect src_rect; + struct mdp_rect dst_rect; + uint32_t z_order; /* stage number */ + uint32_t is_fg; /* control alpha & transp */ + uint32_t alpha; + uint32_t blend_op; + uint32_t transp_mask; + uint32_t flags; + uint32_t pipe_type; + uint32_t id; + uint8_t priority; + uint32_t user_data[6]; + uint32_t bg_color; + uint8_t horz_deci; + uint8_t vert_deci; + struct mdp_overlay_pp_params overlay_pp_cfg; + struct mdp_scale_data scale; + uint8_t color_space; +}; + +struct msmfb_overlay_3d { + uint32_t is_3d; + uint32_t width; + uint32_t height; +}; + + +struct msmfb_overlay_blt { + uint32_t enable; + uint32_t offset; + uint32_t width; + uint32_t height; + uint32_t bpp; +}; + +struct mdp_histogram { + uint32_t frame_cnt; + uint32_t bin_cnt; + uint32_t *r; + uint32_t *g; + uint32_t *b; +}; + +#define MISR_CRC_BATCH_SIZE 32 +enum { + DISPLAY_MISR_EDP, + DISPLAY_MISR_DSI0, + DISPLAY_MISR_DSI1, + DISPLAY_MISR_HDMI, + DISPLAY_MISR_LCDC, + DISPLAY_MISR_MDP, + DISPLAY_MISR_ATV, + DISPLAY_MISR_DSI_CMD, + DISPLAY_MISR_MAX +}; + +enum { + MISR_OP_NONE, + MISR_OP_SFM, + MISR_OP_MFM, + MISR_OP_BM, + MISR_OP_MAX +}; + +struct mdp_misr { + uint32_t block_id; + uint32_t frame_count; + uint32_t crc_op_mode; + uint32_t crc_value[MISR_CRC_BATCH_SIZE]; +}; + +/* + + mdp_block_type defines the identifiers for pipes in MDP 4.3 and up + + MDP_BLOCK_RESERVED is provided for backward compatibility and is + deprecated. It corresponds to DMA_P. So MDP_BLOCK_DMA_P should be used + instead. + + MDP_LOGICAL_BLOCK_DISP_0 identifies the display pipe which fb0 uses, + same for others. + +*/ + +enum { + MDP_BLOCK_RESERVED = 0, + MDP_BLOCK_OVERLAY_0, + MDP_BLOCK_OVERLAY_1, + MDP_BLOCK_VG_1, + MDP_BLOCK_VG_2, + MDP_BLOCK_RGB_1, + MDP_BLOCK_RGB_2, + MDP_BLOCK_DMA_P, + MDP_BLOCK_DMA_S, + MDP_BLOCK_DMA_E, + MDP_BLOCK_OVERLAY_2, + MDP_LOGICAL_BLOCK_DISP_0 = 0x10, + MDP_LOGICAL_BLOCK_DISP_1, + MDP_LOGICAL_BLOCK_DISP_2, + MDP_BLOCK_MAX, +}; + +/* + * mdp_histogram_start_req is used to provide the parameters for + * histogram start request + */ + +struct mdp_histogram_start_req { + uint32_t block; + uint8_t frame_cnt; + uint8_t bit_mask; + uint16_t num_bins; +}; + +/* + * mdp_histogram_data is used to return the histogram data, once + * the histogram is done/stopped/cance + */ + +struct mdp_histogram_data { + uint32_t block; + uint32_t bin_cnt; + uint32_t *c0; + uint32_t *c1; + uint32_t *c2; + uint32_t *extra_info; +}; + +struct mdp_pcc_coeff { + uint32_t c, r, g, b, rr, gg, bb, rg, gb, rb, rgb_0, rgb_1; +}; + +struct mdp_pcc_cfg_data { + uint32_t block; + uint32_t ops; + struct mdp_pcc_coeff r, g, b; +}; + +#define MDP_GAMUT_TABLE_NUM 8 + +enum { + mdp_lut_igc, + mdp_lut_pgc, + mdp_lut_hist, + mdp_lut_max, +}; + +struct mdp_ar_gc_lut_data { + uint32_t x_start; + uint32_t slope; + uint32_t offset; +}; + +struct mdp_pgc_lut_data { + uint32_t block; + uint32_t flags; + uint8_t num_r_stages; + uint8_t num_g_stages; + uint8_t num_b_stages; + struct mdp_ar_gc_lut_data *r_data; + struct mdp_ar_gc_lut_data *g_data; + struct mdp_ar_gc_lut_data *b_data; +}; + + +struct mdp_lut_cfg_data { + uint32_t lut_type; + union { + struct mdp_igc_lut_data igc_lut_data; + struct mdp_pgc_lut_data pgc_lut_data; + struct mdp_hist_lut_data hist_lut_data; + } data; +}; + +struct mdp_bl_scale_data { + uint32_t min_lvl; + uint32_t scale; +}; + +struct mdp_pa_cfg_data { + uint32_t block; + struct mdp_pa_cfg pa_data; +}; + +struct mdp_pa_v2_cfg_data { + uint32_t block; + struct mdp_pa_v2_data pa_v2_data; +}; + +struct mdp_dither_cfg_data { + uint32_t block; + uint32_t flags; + uint32_t g_y_depth; + uint32_t r_cr_depth; + uint32_t b_cb_depth; +}; + +struct mdp_gamut_cfg_data { + uint32_t block; + uint32_t flags; + uint32_t gamut_first; + uint32_t tbl_size[MDP_GAMUT_TABLE_NUM]; + uint16_t *r_tbl[MDP_GAMUT_TABLE_NUM]; + uint16_t *g_tbl[MDP_GAMUT_TABLE_NUM]; + uint16_t *b_tbl[MDP_GAMUT_TABLE_NUM]; +}; + +struct mdp_calib_config_data { + uint32_t ops; + uint32_t addr; + uint32_t data; +}; + +struct mdp_calib_config_buffer { + uint32_t ops; + uint32_t size; + uint32_t *buffer; +}; + +struct mdp_calib_dcm_state { + uint32_t ops; + uint32_t dcm_state; +}; + +struct mdp_pp_init_data { + uint32_t init_request; +}; + +enum { + MDP_PP_DISABLE, + MDP_PP_ENABLE, +}; + +enum { + DCM_UNINIT, + DCM_UNBLANK, + DCM_ENTER, + DCM_EXIT, + DCM_BLANK, + DTM_ENTER, + DTM_EXIT, +}; + +#define MDSS_PP_SPLIT_LEFT_ONLY 0x10000000 +#define MDSS_PP_SPLIT_RIGHT_ONLY 0x20000000 +#define MDSS_PP_SPLIT_MASK 0x30000000 + +#define MDSS_MAX_BL_BRIGHTNESS 255 +#define AD_BL_LIN_LEN 256 +#define AD_BL_ATT_LUT_LEN 33 + +#define MDSS_AD_MODE_AUTO_BL 0x0 +#define MDSS_AD_MODE_AUTO_STR 0x1 +#define MDSS_AD_MODE_TARG_STR 0x3 +#define MDSS_AD_MODE_MAN_STR 0x7 +#define MDSS_AD_MODE_CALIB 0xF + +#define MDP_PP_AD_INIT 0x10 +#define MDP_PP_AD_CFG 0x20 + +struct mdss_ad_init { + uint32_t asym_lut[33]; + uint32_t color_corr_lut[33]; + uint8_t i_control[2]; + uint16_t black_lvl; + uint16_t white_lvl; + uint8_t var; + uint8_t limit_ampl; + uint8_t i_dither; + uint8_t slope_max; + uint8_t slope_min; + uint8_t dither_ctl; + uint8_t format; + uint8_t auto_size; + uint16_t frame_w; + uint16_t frame_h; + uint8_t logo_v; + uint8_t logo_h; + uint32_t alpha; + uint32_t alpha_base; + uint32_t bl_lin_len; + uint32_t bl_att_len; + uint32_t *bl_lin; + uint32_t *bl_lin_inv; + uint32_t *bl_att_lut; +}; + +#define MDSS_AD_BL_CTRL_MODE_EN 1 +#define MDSS_AD_BL_CTRL_MODE_DIS 0 +struct mdss_ad_cfg { + uint32_t mode; + uint32_t al_calib_lut[33]; + uint16_t backlight_min; + uint16_t backlight_max; + uint16_t backlight_scale; + uint16_t amb_light_min; + uint16_t filter[2]; + uint16_t calib[4]; + uint8_t strength_limit; + uint8_t t_filter_recursion; + uint16_t stab_itr; + uint32_t bl_ctrl_mode; +}; + +/* ops uses standard MDP_PP_* flags */ +struct mdss_ad_init_cfg { + uint32_t ops; + union { + struct mdss_ad_init init; + struct mdss_ad_cfg cfg; + } params; +}; + +/* mode uses MDSS_AD_MODE_* flags */ +struct mdss_ad_input { + uint32_t mode; + union { + uint32_t amb_light; + uint32_t strength; + uint32_t calib_bl; + } in; + uint32_t output; +}; + +#define MDSS_CALIB_MODE_BL 0x1 +struct mdss_calib_cfg { + uint32_t ops; + uint32_t calib_mask; +}; + +enum { + mdp_op_pcc_cfg, + mdp_op_csc_cfg, + mdp_op_lut_cfg, + mdp_op_qseed_cfg, + mdp_bl_scale_cfg, + mdp_op_pa_cfg, + mdp_op_pa_v2_cfg, + mdp_op_dither_cfg, + mdp_op_gamut_cfg, + mdp_op_calib_cfg, + mdp_op_ad_cfg, + mdp_op_ad_input, + mdp_op_calib_mode, + mdp_op_calib_buffer, + mdp_op_calib_dcm_state, + mdp_op_max, + mdp_op_pp_init_cfg, +}; + +enum { + WB_FORMAT_NV12, + WB_FORMAT_RGB_565, + WB_FORMAT_RGB_888, + WB_FORMAT_xRGB_8888, + WB_FORMAT_ARGB_8888, + WB_FORMAT_BGRA_8888, + WB_FORMAT_BGRX_8888, + WB_FORMAT_ARGB_8888_INPUT_ALPHA /* Need to support */ +}; + +struct msmfb_mdp_pp { + uint32_t op; + union { + struct mdp_pcc_cfg_data pcc_cfg_data; + struct mdp_csc_cfg_data csc_cfg_data; + struct mdp_lut_cfg_data lut_cfg_data; + struct mdp_qseed_cfg_data qseed_cfg_data; + struct mdp_bl_scale_data bl_scale_data; + struct mdp_pa_cfg_data pa_cfg_data; + struct mdp_pa_v2_cfg_data pa_v2_cfg_data; + struct mdp_dither_cfg_data dither_cfg_data; + struct mdp_gamut_cfg_data gamut_cfg_data; + struct mdp_calib_config_data calib_cfg; + struct mdss_ad_init_cfg ad_init_cfg; + struct mdss_calib_cfg mdss_calib_cfg; + struct mdss_ad_input ad_input; + struct mdp_calib_config_buffer calib_buffer; + struct mdp_calib_dcm_state calib_dcm; + struct mdp_pp_init_data init_data; + } data; +}; + +#define FB_METADATA_VIDEO_INFO_CODE_SUPPORT 1 +enum { + metadata_op_none, + metadata_op_base_blend, + metadata_op_frame_rate, + metadata_op_vic, + metadata_op_wb_format, + metadata_op_wb_secure, + metadata_op_get_caps, + metadata_op_crc, + metadata_op_get_ion_fd, + metadata_op_max +}; + +struct mdp_blend_cfg { + uint32_t is_premultiplied; +}; + +struct mdp_mixer_cfg { + uint32_t writeback_format; + uint32_t alpha; +}; + +struct mdss_hw_caps { + uint32_t mdp_rev; + uint8_t rgb_pipes; + uint8_t vig_pipes; + uint8_t dma_pipes; + uint8_t max_smp_cnt; + uint8_t smp_per_pipe; + uint32_t features; +}; + +struct msmfb_metadata { + uint32_t op; + uint32_t flags; + union { + struct mdp_misr misr_request; + struct mdp_blend_cfg blend_cfg; + struct mdp_mixer_cfg mixer_cfg; + uint32_t panel_frame_rate; + uint32_t video_info_code; + struct mdss_hw_caps caps; + uint8_t secure_en; + int fbmem_ionfd; + } data; +}; + +#define MDP_MAX_FENCE_FD 32 +#define MDP_BUF_SYNC_FLAG_WAIT 1 +#define MDP_BUF_SYNC_FLAG_RETIRE_FENCE 0x10 + +struct mdp_buf_sync { + uint32_t flags; + uint32_t acq_fen_fd_cnt; + uint32_t session_id; + int *acq_fen_fd; + int *rel_fen_fd; + int *retire_fen_fd; +}; + +struct mdp_async_blit_req_list { + struct mdp_buf_sync sync; + uint32_t count; + struct mdp_blit_req req[]; +}; + +#define MDP_DISPLAY_COMMIT_OVERLAY 1 + +struct mdp_display_commit { + uint32_t flags; + uint32_t wait_for_finish; + struct fb_var_screeninfo var; + struct mdp_rect l_roi; + struct mdp_rect r_roi; +}; + +/** + * struct mdp_overlay_list - argument for ioctl MSMFB_OVERLAY_PREPARE + * @num_overlays: Number of overlay layers as part of the frame. + * @overlay_list: Pointer to a list of overlay structures identifying + * the layers as part of the frame + * @flags: Flags can be used to extend behavior. + * @processed_overlays: Output parameter indicating how many pipes were + * successful. If there are no errors this number should + * match num_overlays. Otherwise it will indicate the last + * successful index for overlay that couldn't be set. + */ +struct mdp_overlay_list { + uint32_t num_overlays; + struct mdp_overlay **overlay_list; + uint32_t flags; + uint32_t processed_overlays; +}; + +struct mdp_page_protection { + uint32_t page_protection; +}; + + +struct mdp_mixer_info { + int pndx; + int pnum; + int ptype; + int mixer_num; + int z_order; +}; + +#define MAX_PIPE_PER_MIXER 7 + +struct msmfb_mixer_info_req { + int mixer_num; + int cnt; + struct mdp_mixer_info info[MAX_PIPE_PER_MIXER]; +}; + +struct msmfb_reg_access { + uint8_t address; + uint8_t use_hs_mode; + uint32_t buffer_size; + uint8_t *buffer; +}; + +enum { + DISPLAY_SUBSYSTEM_ID, + ROTATOR_SUBSYSTEM_ID, +}; + +enum { + MDP_IOMMU_DOMAIN_CP, + MDP_IOMMU_DOMAIN_NS, +}; + +enum { + MDP_WRITEBACK_MIRROR_OFF, + MDP_WRITEBACK_MIRROR_ON, + MDP_WRITEBACK_MIRROR_PAUSE, + MDP_WRITEBACK_MIRROR_RESUME, +}; + +enum { + MDP_CSC_ITU_R_601, + MDP_CSC_ITU_R_601_FR, + MDP_CSC_ITU_R_709, +}; +#endif /* _MSM_MDP_H_*/ diff --git a/kernel_headers/linux/msm_pft.h b/kernel_headers/linux/msm_pft.h new file mode 100644 index 0000000..4daf46b --- /dev/null +++ b/kernel_headers/linux/msm_pft.h @@ -0,0 +1,134 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef MSM_PFT_H_ +#define MSM_PFT_H_ + +#include + +/** + * enum pft_command_opcode - PFT driver command ID + * + * @PFT_CMD_OPCODE_SET_STATE - + * command ID to set PFT driver state + * @PFT_CMD_OPCODE_UPDATE_REG_APP_UID - + * command ID to update the list of registered application + * UID + * @PFT_CMD_OPCODE_PERFORM_IN_PLACE_FILE_ENC - + * command ID to perfrom in-place file encryption + */ +enum pft_command_opcode { + PFT_CMD_OPCODE_SET_STATE, + PFT_CMD_OPCODE_UPDATE_REG_APP_UID, + PFT_CMD_OPCODE_PERFORM_IN_PLACE_FILE_ENC, + /* */ + PFT_CMD_OPCODE_MAX_COMMAND_INDEX +}; + +/** + * enum pft_state - PFT driver operational states + * + * @PFT_STATE_DEACTIVATED - driver is deativated. + * @PFT_STATE_DEACTIVATING - driver is in the process of being deativated. + * @PFT_STATE_KEY_REMOVED - driver is active but no encryption key is loaded. + * @PFT_STATE_REMOVING_KEY - driver is active, but the encryption key is being + * removed. + * @PFT_STATE_KEY_LOADED - driver is active, and the encryption key is loaded + * to encryption block, hence registered apps can perform file operations + * on encrypted files. + */ +enum pft_state { + PFT_STATE_DEACTIVATED, + PFT_STATE_DEACTIVATING, + PFT_STATE_KEY_REMOVED, + PFT_STATE_REMOVING_KEY, + PFT_STATE_KEY_LOADED, + /* Internal */ + PFT_STATE_MAX_INDEX +}; + +/** + * enum pft_command_response_code - PFT response on the previous + * command + * + * @PFT_CMD_RESP_SUCCESS - The command was properly processed + * without an error. + * @PFT_CMD_RESP_GENERAL_ERROR - + * Indicates an error that cannot be better described by a + * more specific errors below. + * @PFT_CMD_RESP_INVALID_COMMAND - Invalid or unsupported + * command id. + * @PFT_CMD_RESP_INVALID_CMD_PARAMS - Invalid command + * parameters. + * @PFT_CMD_RESP_INVALID_STATE - Invalid state + * @PFT_CMD_RESP_ALREADY_IN_STATE - Used to indicates that + * the new state is equal to the existing one. + * @PFT_CMD_RESP_INPLACE_FILE_IS_OPEN - Used to indicates + * that the file that should be encrypted is already open + * and can be encrypted. + * @PFT_CMD_RESP_ENT_FILES_CLOSING_FAILURE + * Indicates about failure of the PFT to close Enterprise files + * @PFT_CMD_RESP_MAX_INDEX + */ +enum pft_command_response_code { + PFT_CMD_RESP_SUCCESS, + PFT_CMD_RESP_GENERAL_ERROR, + PFT_CMD_RESP_INVALID_COMMAND, + PFT_CMD_RESP_INVALID_CMD_PARAMS, + PFT_CMD_RESP_INVALID_STATE, + PFT_CMD_RESP_ALREADY_IN_STATE, + PFT_CMD_RESP_INPLACE_FILE_IS_OPEN, + PFT_CMD_RESP_ENT_FILES_CLOSING_FAILURE, + /* Internal */ + PFT_CMD_RESP_MAX_INDEX +}; + +/** + * struct pft_command_response - response structure + * + * @command_id - see enum pft_command_response_code + * @error_codee - see enum pft_command_response_code + */ +struct pft_command_response { + __u32 command_id; + __u32 error_code; +}; + +/** + * struct pft_command - pft command + * + * @opcode - see enum pft_command_opcode. + * @set_state.state - see enum pft_state. + * @update_app_list.count - number of items in the + * registered applications list. + * @update_app_list.table - registered applications array + * @preform_in_place_file_enc.file_descriptor - file descriptor + * of the opened file to be in-placed encrypted. + */ +struct pft_command { + __u32 opcode; + union { + struct { + /* @see pft_state */ + __u32 state; + } set_state; + struct { + __u32 items_count; /* number of items */ + __u32 table[0]; /* array of UIDs */ + } update_app_list; + struct { + __u32 file_descriptor; + } preform_in_place_file_enc; + }; +}; + +#endif /* MSM_PFT_H_ */ diff --git a/kernel_headers/linux/msm_q6vdec.h b/kernel_headers/linux/msm_q6vdec.h new file mode 100644 index 0000000..47b8163 --- /dev/null +++ b/kernel_headers/linux/msm_q6vdec.h @@ -0,0 +1,277 @@ +#ifndef _MSM_VDEC_H_ +#define _MSM_VDEC_H_ + +#include + +#define VDEC_IOCTL_MAGIC 'v' + +#define VDEC_IOCTL_INITIALIZE _IOWR(VDEC_IOCTL_MAGIC, 1, struct vdec_init) +#define VDEC_IOCTL_SETBUFFERS _IOW(VDEC_IOCTL_MAGIC, 2, struct vdec_buffer) +#define VDEC_IOCTL_QUEUE _IOWR(VDEC_IOCTL_MAGIC, 3, \ + struct vdec_input_buf) +#define VDEC_IOCTL_REUSEFRAMEBUFFER _IOW(VDEC_IOCTL_MAGIC, 4, unsigned int) +#define VDEC_IOCTL_FLUSH _IOW(VDEC_IOCTL_MAGIC, 5, unsigned int) +#define VDEC_IOCTL_EOS _IO(VDEC_IOCTL_MAGIC, 6) +#define VDEC_IOCTL_GETMSG _IOR(VDEC_IOCTL_MAGIC, 7, struct vdec_msg) +#define VDEC_IOCTL_CLOSE _IO(VDEC_IOCTL_MAGIC, 8) +#define VDEC_IOCTL_FREEBUFFERS _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_buf_info) +#define VDEC_IOCTL_GETDECATTRIBUTES _IOR(VDEC_IOCTL_MAGIC, 10, \ + struct vdec_dec_attributes) +#define VDEC_IOCTL_GETVERSION _IOR(VDEC_IOCTL_MAGIC, 11, struct vdec_version) +#define VDEC_IOCTL_SETPROPERTY _IOW \ + (VDEC_IOCTL_MAGIC, 12, struct vdec_property_info) +#define VDEC_IOCTL_GETPROPERTY _IOR \ + (VDEC_IOCTL_MAGIC, 13, struct vdec_property_info) +#define VDEC_IOCTL_PERFORMANCE_CHANGE_REQ _IOW(VDEC_IOCTL_MAGIC, 14, \ + unsigned int) + +enum { + VDEC_FRAME_DECODE_OK, + VDEC_FRAME_DECODE_ERR, + VDEC_FATAL_ERR, + VDEC_FLUSH_FINISH, + VDEC_EOS, + VDEC_FRAME_FLUSH, + VDEC_STREAM_SWITCH, + VDEC_SUSPEND_FINISH, + VDEC_BUFFER_CONSUMED +}; + +enum { + VDEC_FLUSH_INPUT, + VDEC_FLUSH_OUTPUT, + VDEC_FLUSH_ALL +}; + +enum { + VDEC_BUFFER_TYPE_INPUT, + VDEC_BUFFER_TYPE_OUTPUT, + VDEC_BUFFER_TYPE_INTERNAL1, + VDEC_BUFFER_TYPE_INTERNAL2, +}; + +enum { + VDEC_QUEUE_SUCCESS, + VDEC_QUEUE_FAILED, + VDEC_QUEUE_BADSTATE, +}; + +enum { + VDEC_COLOR_FORMAT_NV21 = 0x01, + VDEC_COLOR_FORMAT_NV21_YAMOTO = 0x02 + }; + +enum vdec_property_id { + VDEC_FOURCC, + VDEC_PROFILE, + VDEC_LEVEL, + VDEC_DIMENSIONS, + VDEC_CWIN, + VDEC_INPUT_BUF_REQ, + VDEC_OUTPUT_BUF_REQ, + VDEC_LUMA_CHROMA_STRIDE, + VDEC_NUM_DAL_PORTS, + VDEC_PRIORITY, + VDEC_FRAME_ALIGNMENT +}; + +enum { + PERF_REQUEST_SET_MIN = 0, + PERF_REQUEST_LOWER, + PERF_REQUEST_RAISE, + PERF_REQUEST_SET_MAX +}; + +struct vdec_input_buf_info { + u32 offset; + u32 data; + u32 size; + int timestamp_lo; + int timestamp_hi; + int avsync_state; + u32 flags; +}; + +struct vdec_buf_desc { + u32 bufsize; + u32 num_min_buffers; + u32 num_max_buffers; +}; + +struct vdec_buf_req { + u32 max_input_queue_size; + struct vdec_buf_desc input; + struct vdec_buf_desc output; + struct vdec_buf_desc dec_req1; + struct vdec_buf_desc dec_req2; +}; + +struct vdec_region_info { + u32 src_id; + u32 offset; + u32 size; +}; + +struct vdec_config { + u32 fourcc; /* video format */ + u32 width; /* source width */ + u32 height; /* source height */ + u32 order; /* render decoder order */ + u32 notify_enable; /* enable notify input buffer done event */ + u32 vc1_rowbase; + u32 h264_startcode_detect; + u32 h264_nal_len_size; + u32 postproc_flag; + u32 fruc_enable; + u32 color_format; /* used to set YUV color format */ +}; + +struct vdec_vc1_panscan_regions { + int num; + int width[4]; + int height[4]; + int xoffset[4]; + int yoffset[4]; +}; + +struct vdec_cropping_window { + u32 x1; + u32 y1; + u32 x2; + u32 y2; +}; + +struct vdec_frame_info { + u32 status; /* video decode status */ + u32 offset; /* buffer offset */ + u32 data1; /* user data field 1 */ + u32 data2; /* user data field 2 */ + int timestamp_lo; /* lower 32 bits timestamp, in msec */ + int timestamp_hi; /* higher 32 bits timestamp, in msec */ + int cal_timestamp_lo; /* lower 32 bits cal timestamp, in msec */ + int cal_timestamp_hi; /* higher 32 bits cal timestamp, in msec */ + u32 dec_width; /* frame roi width */ + u32 dec_height; /* frame roi height */ + struct vdec_cropping_window cwin; /* The frame cropping window */ + u32 picture_type[2]; /* picture coding type */ + u32 picture_format; /* picture coding format */ + u32 vc1_rangeY; /* luma range mapping */ + u32 vc1_rangeUV; /* chroma range mapping */ + u32 picture_resolution; /* scaling factor */ + u32 frame_disp_repeat; /* how often repeated by disp */ + u32 repeat_first_field; /* repeat 1st field after 2nd */ + u32 top_field_first; /* top field displayed first */ + u32 interframe_interp; /* not for inter-frame interp */ + struct vdec_vc1_panscan_regions panscan; /* pan region */ + u32 concealed_macblk_num; /* number of concealed macro blk */ + u32 flags; /* input flags */ + u32 performance_stats; /* performance statistics returned by decoder */ + u32 data3; /* user data field 3 */ +}; + +struct vdec_buf_info { + u32 buf_type; + struct vdec_region_info region; + u32 num_buf; + u32 islast; +}; + +struct vdec_buffer { + u32 pmem_id; + struct vdec_buf_info buf; +}; + +struct vdec_sequence { + u8 *header; + u32 len; +}; + +struct vdec_config_sps { + struct vdec_config cfg; + struct vdec_sequence seq; +}; + +#define VDEC_MSG_REUSEINPUTBUFFER 1 +#define VDEC_MSG_FRAMEDONE 2 + +struct vdec_msg { + u32 id; + + union { + /* id = VDEC_MSG_REUSEINPUTBUFFER */ + u32 buf_id; + /* id = VDEC_MSG_FRAMEDONE */ + struct vdec_frame_info vfr_info; + }; +}; + +struct vdec_init { + struct vdec_config_sps sps_cfg; + struct vdec_buf_req *buf_req; +}; + +struct vdec_input_buf { + u32 pmem_id; + struct vdec_input_buf_info buffer; + struct vdec_queue_status *queue_status; +}; + +struct vdec_queue_status { + u32 status; +}; + +struct vdec_dec_attributes { + u32 fourcc; + u32 profile; + u32 level; + u32 dec_pic_width; + u32 dec_pic_height; + struct vdec_buf_desc input; + struct vdec_buf_desc output; + struct vdec_buf_desc dec_req1; + struct vdec_buf_desc dec_req2; +}; + +struct vdec_version { + u32 major; + u32 minor; +}; + +struct dal_vdec_rectangle { + u32 width; + u32 height; +}; + +struct stride_type { + u32 luma; + u32 chroma; +}; + +struct frame_alignment_type { + u32 luma_width; + u32 luma_height; + u32 chroma_width; + u32 chroma_height; + u32 chroma_offset; +}; + +union vdec_property { + u32 fourcc; + u32 profile; + u32 level; + struct dal_vdec_rectangle dim; + struct vdec_cropping_window cw; + struct vdec_buf_desc input_req; + struct vdec_buf_desc output_req; + struct stride_type stride; + u32 num_dal_ports; + u32 priority; + struct frame_alignment_type frame_alignment; + u32 def_type; +}; + +struct vdec_property_info { + enum vdec_property_id id; + union vdec_property property; +}; +#endif /* _MSM_VDEC_H_ */ diff --git a/kernel_headers/linux/msm_q6venc.h b/kernel_headers/linux/msm_q6venc.h new file mode 100644 index 0000000..c6bf20c --- /dev/null +++ b/kernel_headers/linux/msm_q6venc.h @@ -0,0 +1,303 @@ +#ifndef _MSM_VENC_H_ +#define _MSM_VENC_H_ + +#include + +#define VENC_MAX_RECON_BUFFERS 2 + +#define VENC_FLAG_EOS 0x00000001 +#define VENC_FLAG_END_OF_FRAME 0x00000010 +#define VENC_FLAG_SYNC_FRAME 0x00000020 +#define VENC_FLAG_EXTRA_DATA 0x00000040 +#define VENC_FLAG_CODEC_CONFIG 0x00000080 + +enum venc_flush_type { + VENC_FLUSH_INPUT, + VENC_FLUSH_OUTPUT, + VENC_FLUSH_ALL +}; + +enum venc_state_type { + VENC_STATE_PAUSE = 0x1, + VENC_STATE_START = 0x2, + VENC_STATE_STOP = 0x4 +}; + +enum venc_event_type_enum { + VENC_EVENT_START_STATUS, + VENC_EVENT_STOP_STATUS, + VENC_EVENT_SUSPEND_STATUS, + VENC_EVENT_RESUME_STATUS, + VENC_EVENT_FLUSH_STATUS, + VENC_EVENT_RELEASE_INPUT, + VENC_EVENT_DELIVER_OUTPUT, + VENC_EVENT_UNKNOWN_STATUS +}; + +enum venc_status_code { + VENC_STATUS_SUCCESS, + VENC_STATUS_ERROR, + VENC_STATUS_INVALID_STATE, + VENC_STATUS_FLUSHING, + VENC_STATUS_INVALID_PARAM, + VENC_STATUS_CMD_QUEUE_FULL, + VENC_STATUS_CRITICAL, + VENC_STATUS_INSUFFICIENT_RESOURCES, + VENC_STATUS_TIMEOUT +}; + +enum venc_msg_code { + VENC_MSG_INDICATION, + VENC_MSG_INPUT_BUFFER_DONE, + VENC_MSG_OUTPUT_BUFFER_DONE, + VENC_MSG_NEED_OUTPUT_BUFFER, + VENC_MSG_FLUSH, + VENC_MSG_START, + VENC_MSG_STOP, + VENC_MSG_PAUSE, + VENC_MSG_RESUME, + VENC_MSG_STOP_READING_MSG +}; + +enum venc_error_code { + VENC_S_SUCCESS, + VENC_S_EFAIL, + VENC_S_EFATAL, + VENC_S_EBADPARAM, + VENC_S_EINVALSTATE, + VENC_S_ENOSWRES, + VENC_S_ENOHWRES, + VENC_S_EBUFFREQ, + VENC_S_EINVALCMD, + VENC_S_ETIMEOUT, + VENC_S_ENOREATMPT, + VENC_S_ENOPREREQ, + VENC_S_ECMDQFULL, + VENC_S_ENOTSUPP, + VENC_S_ENOTIMPL, + VENC_S_ENOTPMEM, + VENC_S_EFLUSHED, + VENC_S_EINSUFBUF, + VENC_S_ESAMESTATE, + VENC_S_EINVALTRANS +}; + +enum venc_mem_region_enum { + VENC_PMEM_EBI1, + VENC_PMEM_SMI +}; + +struct venc_buf_type { + u32 region; + u32 phys; + u32 size; + int offset; +}; + +struct venc_qp_range { + u32 min_qp; + u32 max_qp; +}; + +struct venc_frame_rate { + u32 frame_rate_num; + u32 frame_rate_den; +}; + +struct venc_slice_info { + u32 slice_mode; + u32 units_per_slice; +}; + +struct venc_extra_data { + u32 slice_extra_data_flag; + u32 slice_client_data1; + u32 slice_client_data2; + u32 slice_client_data3; + u32 none_extra_data_flag; + u32 none_client_data1; + u32 none_client_data2; + u32 none_client_data3; +}; + +struct venc_common_config { + u32 standard; + u32 input_frame_height; + u32 input_frame_width; + u32 output_frame_height; + u32 output_frame_width; + u32 rotation_angle; + u32 intra_period; + u32 rate_control; + struct venc_frame_rate frame_rate; + u32 bitrate; + struct venc_qp_range qp_range; + u32 iframe_qp; + u32 pframe_qp; + struct venc_slice_info slice_config; + struct venc_extra_data extra_data; +}; + +struct venc_nonio_buf_config { + struct venc_buf_type recon_buf1; + struct venc_buf_type recon_buf2; + struct venc_buf_type wb_buf; + struct venc_buf_type cmd_buf; + struct venc_buf_type vlc_buf; +}; + +struct venc_mpeg4_config { + u32 profile; + u32 level; + u32 time_resolution; + u32 ac_prediction; + u32 hec_interval; + u32 data_partition; + u32 short_header; + u32 rvlc_enable; +}; + +struct venc_h263_config { + u32 profile; + u32 level; +}; + +struct venc_h264_config { + u32 profile; + u32 level; + u32 max_nal; + u32 idr_period; +}; + +struct venc_pmem { + int src; + int fd; + u32 offset; + void *virt; + void *phys; + u32 size; +}; + +struct venc_buffer { + unsigned char *ptr_buffer; + u32 size; + u32 len; + u32 offset; + long long time_stamp; + u32 flags; + u32 client_data; + +}; + +struct venc_buffers { + struct venc_pmem recon_buf[VENC_MAX_RECON_BUFFERS]; + struct venc_pmem wb_buf; + struct venc_pmem cmd_buf; + struct venc_pmem vlc_buf; +}; + +struct venc_buffer_flush { + u32 flush_mode; +}; + +union venc_msg_data { + struct venc_buffer buf; + struct venc_buffer_flush flush_ret; + +}; + +struct venc_msg { + u32 status_code; + u32 msg_code; + u32 msg_data_size; + union venc_msg_data msg_data; +}; + +union venc_codec_config { + struct venc_mpeg4_config mpeg4_params; + struct venc_h263_config h263_params; + struct venc_h264_config h264_params; +}; + +struct venc_q6_config { + struct venc_common_config config_params; + union venc_codec_config codec_params; + struct venc_nonio_buf_config buf_params; + void *callback_event; +}; + +struct venc_hdr_config { + struct venc_common_config config_params; + union venc_codec_config codec_params; +}; + +struct venc_init_config { + struct venc_q6_config q6_config; + struct venc_buffers q6_bufs; +}; + +struct venc_seq_config { + int size; + struct venc_pmem buf; + struct venc_q6_config q6_config; +}; + +struct venc_version { + u32 major; + u32 minor; +}; + +#define VENC_IOCTL_MAGIC 'V' + +#define VENC_IOCTL_CMD_READ_NEXT_MSG \ + _IOWR(VENC_IOCTL_MAGIC, 1, struct venc_msg) + +#define VENC_IOCTL_CMD_STOP_READ_MSG _IO(VENC_IOCTL_MAGIC, 2) + +#define VENC_IOCTL_SET_INPUT_BUFFER \ + _IOW(VENC_IOCTL_MAGIC, 3, struct venc_pmem) + +#define VENC_IOCTL_SET_OUTPUT_BUFFER \ + _IOW(VENC_IOCTL_MAGIC, 4, struct venc_pmem) + +#define VENC_IOCTL_CMD_START _IOW(VENC_IOCTL_MAGIC, 5, struct venc_init_config) + +#define VENC_IOCTL_CMD_ENCODE_FRAME \ + _IOW(VENC_IOCTL_MAGIC, 6, struct venc_buffer) + +#define VENC_IOCTL_CMD_FILL_OUTPUT_BUFFER \ + _IOW(VENC_IOCTL_MAGIC, 7, struct venc_buffer) + +#define VENC_IOCTL_CMD_FLUSH \ + _IOW(VENC_IOCTL_MAGIC, 8, struct venc_buffer_flush) + +#define VENC_IOCTL_CMD_PAUSE _IO(VENC_IOCTL_MAGIC, 9) + +#define VENC_IOCTL_CMD_RESUME _IO(VENC_IOCTL_MAGIC, 10) + +#define VENC_IOCTL_CMD_STOP _IO(VENC_IOCTL_MAGIC, 11) + +#define VENC_IOCTL_SET_INTRA_PERIOD \ + _IOW(VENC_IOCTL_MAGIC, 12, int) + +#define VENC_IOCTL_CMD_REQUEST_IFRAME _IO(VENC_IOCTL_MAGIC, 13) + +#define VENC_IOCTL_GET_SEQUENCE_HDR \ + _IOWR(VENC_IOCTL_MAGIC, 14, struct venc_seq_config) + +#define VENC_IOCTL_SET_INTRA_REFRESH \ + _IOW(VENC_IOCTL_MAGIC, 15, int) + +#define VENC_IOCTL_SET_FRAME_RATE \ + _IOW(VENC_IOCTL_MAGIC, 16, struct venc_frame_rate) + +#define VENC_IOCTL_SET_TARGET_BITRATE \ + _IOW(VENC_IOCTL_MAGIC, 17, int) + +#define VENC_IOCTL_SET_QP_RANGE \ + _IOW(VENC_IOCTL_MAGIC, 18, struct venc_qp_range) + +#define VENC_IOCTL_GET_VERSION \ + _IOR(VENC_IOCTL_MAGIC, 19, struct venc_version) + +#endif diff --git a/kernel_headers/linux/msm_rmnet.h b/kernel_headers/linux/msm_rmnet.h new file mode 100644 index 0000000..53ca67c --- /dev/null +++ b/kernel_headers/linux/msm_rmnet.h @@ -0,0 +1,146 @@ +#ifndef _MSM_RMNET_H_ +#define _MSM_RMNET_H_ + +/* Bitmap macros for RmNET driver operation mode. */ +#define RMNET_MODE_NONE (0x00) +#define RMNET_MODE_LLP_ETH (0x01) +#define RMNET_MODE_LLP_IP (0x02) +#define RMNET_MODE_QOS (0x04) +#define RMNET_MODE_MASK (RMNET_MODE_LLP_ETH | \ + RMNET_MODE_LLP_IP | \ + RMNET_MODE_QOS) + +#define RMNET_IS_MODE_QOS(mode) \ + ((mode & RMNET_MODE_QOS) == RMNET_MODE_QOS) +#define RMNET_IS_MODE_IP(mode) \ + ((mode & RMNET_MODE_LLP_IP) == RMNET_MODE_LLP_IP) + +/* IOCTL command enum + * Values chosen to not conflict with other drivers in the ecosystem */ +enum rmnet_ioctl_cmds_e { + RMNET_IOCTL_SET_LLP_ETHERNET = 0x000089F1, /* Set Ethernet protocol */ + RMNET_IOCTL_SET_LLP_IP = 0x000089F2, /* Set RAWIP protocol */ + RMNET_IOCTL_GET_LLP = 0x000089F3, /* Get link protocol */ + RMNET_IOCTL_SET_QOS_ENABLE = 0x000089F4, /* Set QoS header enabled */ + RMNET_IOCTL_SET_QOS_DISABLE = 0x000089F5, /* Set QoS header disabled*/ + RMNET_IOCTL_GET_QOS = 0x000089F6, /* Get QoS header state */ + RMNET_IOCTL_GET_OPMODE = 0x000089F7, /* Get operation mode */ + RMNET_IOCTL_OPEN = 0x000089F8, /* Open transport port */ + RMNET_IOCTL_CLOSE = 0x000089F9, /* Close transport port */ + RMNET_IOCTL_FLOW_ENABLE = 0x000089FA, /* Flow enable */ + RMNET_IOCTL_FLOW_DISABLE = 0x000089FB, /* Flow disable */ + RMNET_IOCTL_FLOW_SET_HNDL = 0x000089FC, /* Set flow handle */ + RMNET_IOCTL_EXTENDED = 0x000089FD, /* Extended IOCTLs */ + RMNET_IOCTL_MAX +}; + +enum rmnet_ioctl_extended_cmds_e { +/* RmNet Data Required IOCTLs */ + RMNET_IOCTL_GET_SUPPORTED_FEATURES = 0x0000, /* Get features */ + RMNET_IOCTL_SET_MRU = 0x0001, /* Set MRU */ + RMNET_IOCTL_GET_MRU = 0x0002, /* Get MRU */ + RMNET_IOCTL_GET_EPID = 0x0003, /* Get endpoint ID */ + RMNET_IOCTL_GET_DRIVER_NAME = 0x0004, /* Get driver name */ + RMNET_IOCTL_ADD_MUX_CHANNEL = 0x0005, /* Add MUX ID */ + RMNET_IOCTL_SET_EGRESS_DATA_FORMAT = 0x0006, /* Set EDF */ + RMNET_IOCTL_SET_INGRESS_DATA_FORMAT = 0x0007, /* Set IDF */ + RMNET_IOCTL_SET_AGGREGATION_COUNT = 0x0008, /* Set agg count */ + RMNET_IOCTL_GET_AGGREGATION_COUNT = 0x0009, /* Get agg count */ + RMNET_IOCTL_SET_AGGREGATION_SIZE = 0x000A, /* Set agg size */ + RMNET_IOCTL_GET_AGGREGATION_SIZE = 0x000B, /* Get agg size */ + RMNET_IOCTL_FLOW_CONTROL = 0x000C, /* Do flow control */ + RMNET_IOCTL_GET_DFLT_CONTROL_CHANNEL = 0x000D, /* For legacy use */ + RMNET_IOCTL_GET_HWSW_MAP = 0x000E, /* Get HW/SW map */ + RMNET_IOCTL_SET_RX_HEADROOM = 0x000F, /* RX Headroom */ + RMNET_IOCTL_GET_EP_PAIR = 0x0010, /* Endpoint pair */ + RMNET_IOCTL_SET_QOS_VERSION = 0x0011, /* 8/6 byte QoS hdr*/ + RMNET_IOCTL_GET_QOS_VERSION = 0x0012, /* 8/6 byte QoS hdr*/ + RMNET_IOCTL_GET_SUPPORTED_QOS_MODES = 0x0013, /* Get QoS modes */ + RMNET_IOCTL_SET_SLEEP_STATE = 0x0014, /* Set sleep state */ + RMNET_IOCTL_EXTENDED_MAX = 0x0015 +}; + +/* Return values for the RMNET_IOCTL_GET_SUPPORTED_FEATURES IOCTL */ +#define RMNET_IOCTL_FEAT_NOTIFY_MUX_CHANNEL (1<<0) +#define RMNET_IOCTL_FEAT_SET_EGRESS_DATA_FORMAT (1<<1) +#define RMNET_IOCTL_FEAT_SET_INGRESS_DATA_FORMAT (1<<2) +#define RMNET_IOCTL_FEAT_SET_AGGREGATION_COUNT (1<<3) +#define RMNET_IOCTL_FEAT_GET_AGGREGATION_COUNT (1<<4) +#define RMNET_IOCTL_FEAT_SET_AGGREGATION_SIZE (1<<5) +#define RMNET_IOCTL_FEAT_GET_AGGREGATION_SIZE (1<<6) +#define RMNET_IOCTL_FEAT_FLOW_CONTROL (1<<7) +#define RMNET_IOCTL_FEAT_GET_DFLT_CONTROL_CHANNEL (1<<8) +#define RMNET_IOCTL_FEAT_GET_HWSW_MAP (1<<9) + +/* Input values for the RMNET_IOCTL_SET_EGRESS_DATA_FORMAT IOCTL */ +#define RMNET_IOCTL_EGRESS_FORMAT_MAP (1<<1) +#define RMNET_IOCTL_EGRESS_FORMAT_AGGREGATION (1<<2) +#define RMNET_IOCTL_EGRESS_FORMAT_MUXING (1<<3) +#define RMNET_IOCTL_EGRESS_FORMAT_CHECKSUM (1<<4) + +/* Input values for the RMNET_IOCTL_SET_INGRESS_DATA_FORMAT IOCTL */ +#define RMNET_IOCTL_INGRESS_FORMAT_MAP (1<<1) +#define RMNET_IOCTL_INGRESS_FORMAT_DEAGGREGATION (1<<2) +#define RMNET_IOCTL_INGRESS_FORMAT_DEMUXING (1<<3) +#define RMNET_IOCTL_INGRESS_FORMAT_CHECKSUM (1<<4) + +/* User space may not have this defined. */ +#ifndef IFNAMSIZ +#define IFNAMSIZ 16 +#endif + +struct rmnet_ioctl_extended_s { + uint32_t extended_ioctl; + union { + uint32_t data; /* Generic data field for most extended IOCTLs */ + + /* Return values for + * RMNET_IOCTL_GET_DRIVER_NAME + * RMNET_IOCTL_GET_DFLT_CONTROL_CHANNEL */ + int8_t if_name[IFNAMSIZ]; + + /* Input values for the RMNET_IOCTL_ADD_MUX_CHANNEL IOCTL */ + struct { + uint32_t mux_id; + int8_t vchannel_name[IFNAMSIZ]; + } rmnet_mux_val; + + /* Input values for the RMNET_IOCTL_FLOW_CONTROL IOCTL */ + struct { + uint8_t flow_mode; + uint8_t mux_id; + } flow_control_prop; + + /* Return values for RMNET_IOCTL_GET_EP_PAIR */ + struct { + uint32_t consumer_pipe_num; + uint32_t producer_pipe_num; + } ipa_ep_pair; + } u; +}; + +struct rmnet_ioctl_data_s { + union { + uint32_t operation_mode; + uint32_t tcm_handle; + } u; +}; + +#define RMNET_IOCTL_QOS_MODE_6 (1<<0) +#define RMNET_IOCTL_QOS_MODE_8 (1<<1) + +/* QMI QoS header definition */ +#define QMI_QOS_HDR_S __attribute((__packed__)) qmi_qos_hdr_s +struct QMI_QOS_HDR_S { + unsigned char version; + unsigned char flags; + uint32_t flow_id; +}; + +/* QMI QoS 8-byte header. */ +struct qmi_qos_hdr8_s { + struct QMI_QOS_HDR_S hdr; + uint8_t reserved[2]; +} __attribute((__packed__)); + +#endif /* _MSM_RMNET_H_ */ diff --git a/kernel_headers/linux/msm_rotator.h b/kernel_headers/linux/msm_rotator.h new file mode 100644 index 0000000..17ae867 --- /dev/null +++ b/kernel_headers/linux/msm_rotator.h @@ -0,0 +1,62 @@ +#ifndef __MSM_ROTATOR_H__ +#define __MSM_ROTATOR_H__ + +#include +#include + +#define MSM_ROTATOR_IOCTL_MAGIC 'R' + +#define MSM_ROTATOR_IOCTL_START \ + _IOWR(MSM_ROTATOR_IOCTL_MAGIC, 1, struct msm_rotator_img_info) +#define MSM_ROTATOR_IOCTL_ROTATE \ + _IOW(MSM_ROTATOR_IOCTL_MAGIC, 2, struct msm_rotator_data_info) +#define MSM_ROTATOR_IOCTL_FINISH \ + _IOW(MSM_ROTATOR_IOCTL_MAGIC, 3, int) + +#define ROTATOR_VERSION_01 0xA5B4C301 + +enum rotator_clk_type { + ROTATOR_CORE_CLK, + ROTATOR_PCLK, + ROTATOR_IMEM_CLK +}; + +struct msm_rotator_img_info { + unsigned int session_id; + struct msmfb_img src; + struct msmfb_img dst; + struct mdp_rect src_rect; + unsigned int dst_x; + unsigned int dst_y; + unsigned char rotations; + int enable; + unsigned int downscale_ratio; + unsigned int secure; +}; + +struct msm_rotator_data_info { + int session_id; + struct msmfb_data src; + struct msmfb_data dst; + unsigned int version_key; + struct msmfb_data src_chroma; + struct msmfb_data dst_chroma; +}; + +struct msm_rot_clocks { + const char *clk_name; + enum rotator_clk_type clk_type; + unsigned int clk_rate; +}; + +struct msm_rotator_platform_data { + unsigned int number_of_clocks; + unsigned int hardware_version_number; + struct msm_rot_clocks *rotator_clks; +#ifdef CONFIG_MSM_BUS_SCALING + struct msm_bus_scale_pdata *bus_scale_table; +#endif + char rot_iommu_split_domain; +}; +#endif + diff --git a/kernel_headers/linux/msm_thermal_ioctl.h b/kernel_headers/linux/msm_thermal_ioctl.h new file mode 100644 index 0000000..42afaa1 --- /dev/null +++ b/kernel_headers/linux/msm_thermal_ioctl.h @@ -0,0 +1,82 @@ +#ifndef _MSM_THERMAL_IOCTL_H +#define _MSM_THERMAL_IOCTL_H + +#include + +#define MSM_THERMAL_IOCTL_NAME "msm_thermal_query" +#define MSM_IOCTL_FREQ_SIZE 16 + +struct __attribute__((__packed__)) cpu_freq_arg { + uint32_t cpu_num; + uint32_t freq_req; +}; + +struct __attribute__((__packed__)) clock_plan_arg { + uint32_t cluster_num; + /* + ** A value of zero for freq_table_len, will fetch the length of the + ** cluster frequency table. A non-zero value will fetch the frequency + ** table contents. + */ + uint32_t freq_table_len; + /* + ** For clusters with frequency table length greater than + ** MSM_IOCTL_FREQ_SIZE, the frequency table is fetched from kernel + ** in multiple sets or iterations. The set_idx variable, + ** indicates, which set/part of frequency table the user is requesting. + ** The set index value starts from zero. A set index value of 'Z', + ** will fetch MSM_IOCTL_FREQ_SIZE or maximum available number of + ** frequency values (if it is less than MSM_IOCTL_FREQ_SIZE) + ** from the frequency table, starting from the index + ** (Z * MSM_IOCTL_FREQ_SIZE). + ** For example, in a device supporting 19 different frequencies, a set + ** index value of 0 will fetch the first 16 (MSM_IOCTL_FREQ_SIZE) + ** frequencies starting from the index 0 and a set value of 1 will fetch + ** the remaining 3 frequencies starting from the index 16. + ** A successful get, will populate the freq_table_len with the + ** number of frequency table entries fetched. + */ + uint32_t set_idx; + unsigned int freq_table[MSM_IOCTL_FREQ_SIZE]; +}; + +struct __attribute__((__packed__)) msm_thermal_ioctl { + uint32_t size; + union { + struct cpu_freq_arg cpu_freq; + struct clock_plan_arg clock_freq; + }; +}; + +enum { + /*Set CPU Frequency*/ + MSM_SET_CPU_MAX_FREQ = 0x00, + MSM_SET_CPU_MIN_FREQ = 0x01, + /*Set cluster frequency*/ + MSM_SET_CLUSTER_MAX_FREQ = 0x02, + MSM_SET_CLUSTER_MIN_FREQ = 0x03, + /*Get cluster frequency plan*/ + MSM_GET_CLUSTER_FREQ_PLAN = 0x04, + + MSM_CMD_MAX_NR, +}; + +#define MSM_THERMAL_MAGIC_NUM 0xCA /*Unique magic number*/ + +#define MSM_THERMAL_SET_CPU_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM,\ + MSM_SET_CPU_MAX_FREQ, struct msm_thermal_ioctl) + +#define MSM_THERMAL_SET_CPU_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM,\ + MSM_SET_CPU_MIN_FREQ, struct msm_thermal_ioctl) + +#define MSM_THERMAL_SET_CLUSTER_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM,\ + MSM_SET_CLUSTER_MAX_FREQ, struct msm_thermal_ioctl) + +#define MSM_THERMAL_SET_CLUSTER_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM,\ + MSM_SET_CLUSTER_MIN_FREQ, struct msm_thermal_ioctl) + +#define MSM_THERMAL_GET_CLUSTER_FREQUENCY_PLAN _IOR(MSM_THERMAL_MAGIC_NUM,\ + MSM_GET_CLUSTER_FREQ_PLAN, struct msm_thermal_ioctl) + + +#endif diff --git a/kernel_headers/linux/msm_vidc_dec.h b/kernel_headers/linux/msm_vidc_dec.h new file mode 100644 index 0000000..a0b73c7 --- /dev/null +++ b/kernel_headers/linux/msm_vidc_dec.h @@ -0,0 +1,602 @@ +#ifndef _MSM_VIDC_DEC_H_ +#define _MSM_VIDC_DEC_H_ + +#include +#include + +/* STATUS CODES */ +/* Base value for status codes */ +#define VDEC_S_BASE 0x40000000 +/* Success */ +#define VDEC_S_SUCCESS (VDEC_S_BASE) +/* General failure */ +#define VDEC_S_EFAIL (VDEC_S_BASE + 1) +/* Fatal irrecoverable failure. Need to tear down session. */ +#define VDEC_S_EFATAL (VDEC_S_BASE + 2) +/* Error detected in the passed parameters */ +#define VDEC_S_EBADPARAM (VDEC_S_BASE + 3) +/* Command called in invalid state. */ +#define VDEC_S_EINVALSTATE (VDEC_S_BASE + 4) + /* Insufficient OS resources - thread, memory etc. */ +#define VDEC_S_ENOSWRES (VDEC_S_BASE + 5) + /* Insufficient HW resources - core capacity maxed out. */ +#define VDEC_S_ENOHWRES (VDEC_S_BASE + 6) +/* Invalid command called */ +#define VDEC_S_EINVALCMD (VDEC_S_BASE + 7) +/* Command timeout. */ +#define VDEC_S_ETIMEOUT (VDEC_S_BASE + 8) +/* Pre-requirement is not met for API. */ +#define VDEC_S_ENOPREREQ (VDEC_S_BASE + 9) +/* Command queue is full. */ +#define VDEC_S_ECMDQFULL (VDEC_S_BASE + 10) +/* Command is not supported by this driver */ +#define VDEC_S_ENOTSUPP (VDEC_S_BASE + 11) +/* Command is not implemented by thedriver. */ +#define VDEC_S_ENOTIMPL (VDEC_S_BASE + 12) +/* Command is not implemented by the driver. */ +#define VDEC_S_BUSY (VDEC_S_BASE + 13) +#define VDEC_S_INPUT_BITSTREAM_ERR (VDEC_S_BASE + 14) + +#define VDEC_INTF_VER 1 +#define VDEC_MSG_BASE 0x0000000 +/* Codes to identify asynchronous message responses and events that driver + wants to communicate to the app.*/ +#define VDEC_MSG_INVALID (VDEC_MSG_BASE + 0) +#define VDEC_MSG_RESP_INPUT_BUFFER_DONE (VDEC_MSG_BASE + 1) +#define VDEC_MSG_RESP_OUTPUT_BUFFER_DONE (VDEC_MSG_BASE + 2) +#define VDEC_MSG_RESP_INPUT_FLUSHED (VDEC_MSG_BASE + 3) +#define VDEC_MSG_RESP_OUTPUT_FLUSHED (VDEC_MSG_BASE + 4) +#define VDEC_MSG_RESP_FLUSH_INPUT_DONE (VDEC_MSG_BASE + 5) +#define VDEC_MSG_RESP_FLUSH_OUTPUT_DONE (VDEC_MSG_BASE + 6) +#define VDEC_MSG_RESP_START_DONE (VDEC_MSG_BASE + 7) +#define VDEC_MSG_RESP_STOP_DONE (VDEC_MSG_BASE + 8) +#define VDEC_MSG_RESP_PAUSE_DONE (VDEC_MSG_BASE + 9) +#define VDEC_MSG_RESP_RESUME_DONE (VDEC_MSG_BASE + 10) +#define VDEC_MSG_RESP_RESOURCE_LOADED (VDEC_MSG_BASE + 11) +#define VDEC_EVT_RESOURCES_LOST (VDEC_MSG_BASE + 12) +#define VDEC_MSG_EVT_CONFIG_CHANGED (VDEC_MSG_BASE + 13) +#define VDEC_MSG_EVT_HW_ERROR (VDEC_MSG_BASE + 14) +#define VDEC_MSG_EVT_INFO_CONFIG_CHANGED (VDEC_MSG_BASE + 15) +#define VDEC_MSG_EVT_INFO_FIELD_DROPPED (VDEC_MSG_BASE + 16) +#define VDEC_MSG_EVT_HW_OVERLOAD (VDEC_MSG_BASE + 17) +#define VDEC_MSG_EVT_MAX_CLIENTS (VDEC_MSG_BASE + 18) +#define VDEC_MSG_EVT_HW_UNSUPPORTED (VDEC_MSG_BASE + 19) + +/*Buffer flags bits masks.*/ +#define VDEC_BUFFERFLAG_EOS 0x00000001 +#define VDEC_BUFFERFLAG_DECODEONLY 0x00000004 +#define VDEC_BUFFERFLAG_DATACORRUPT 0x00000008 +#define VDEC_BUFFERFLAG_ENDOFFRAME 0x00000010 +#define VDEC_BUFFERFLAG_SYNCFRAME 0x00000020 +#define VDEC_BUFFERFLAG_EXTRADATA 0x00000040 +#define VDEC_BUFFERFLAG_CODECCONFIG 0x00000080 + +/*Post processing flags bit masks*/ +#define VDEC_EXTRADATA_NONE 0x001 +#define VDEC_EXTRADATA_QP 0x004 +#define VDEC_EXTRADATA_MB_ERROR_MAP 0x008 +#define VDEC_EXTRADATA_SEI 0x010 +#define VDEC_EXTRADATA_VUI 0x020 +#define VDEC_EXTRADATA_VC1 0x040 + +#define VDEC_EXTRADATA_EXT_DATA 0x0800 +#define VDEC_EXTRADATA_USER_DATA 0x1000 +#define VDEC_EXTRADATA_EXT_BUFFER 0x2000 + +#define VDEC_CMDBASE 0x800 +#define VDEC_CMD_SET_INTF_VERSION (VDEC_CMDBASE) + +#define VDEC_IOCTL_MAGIC 'v' + +struct vdec_ioctl_msg { + void *in; + void *out; +}; + +/* CMD params: InputParam:enum vdec_codec + OutputParam: struct vdec_profile_level*/ +#define VDEC_IOCTL_GET_PROFILE_LEVEL_SUPPORTED \ + _IOWR(VDEC_IOCTL_MAGIC, 0, struct vdec_ioctl_msg) + +/*CMD params:InputParam: NULL + OutputParam: uint32_t(bitmask)*/ +#define VDEC_IOCTL_GET_INTERLACE_FORMAT \ + _IOR(VDEC_IOCTL_MAGIC, 1, struct vdec_ioctl_msg) + +/* CMD params: InputParam: enum vdec_codec + OutputParam: struct vdec_profile_level*/ +#define VDEC_IOCTL_GET_CURRENT_PROFILE_LEVEL \ + _IOWR(VDEC_IOCTL_MAGIC, 2, struct vdec_ioctl_msg) + +/*CMD params: SET: InputParam: enum vdec_output_fromat OutputParam: NULL + GET: InputParam: NULL OutputParam: enum vdec_output_fromat*/ +#define VDEC_IOCTL_SET_OUTPUT_FORMAT \ + _IOWR(VDEC_IOCTL_MAGIC, 3, struct vdec_ioctl_msg) +#define VDEC_IOCTL_GET_OUTPUT_FORMAT \ + _IOWR(VDEC_IOCTL_MAGIC, 4, struct vdec_ioctl_msg) + +/*CMD params: SET: InputParam: enum vdec_codec OutputParam: NULL + GET: InputParam: NULL OutputParam: enum vdec_codec*/ +#define VDEC_IOCTL_SET_CODEC \ + _IOW(VDEC_IOCTL_MAGIC, 5, struct vdec_ioctl_msg) +#define VDEC_IOCTL_GET_CODEC \ + _IOR(VDEC_IOCTL_MAGIC, 6, struct vdec_ioctl_msg) + +/*CMD params: SET: InputParam: struct vdec_picsize outputparam: NULL + GET: InputParam: NULL outputparam: struct vdec_picsize*/ +#define VDEC_IOCTL_SET_PICRES \ + _IOW(VDEC_IOCTL_MAGIC, 7, struct vdec_ioctl_msg) +#define VDEC_IOCTL_GET_PICRES \ + _IOR(VDEC_IOCTL_MAGIC, 8, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_EXTRADATA \ + _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_ioctl_msg) +#define VDEC_IOCTL_GET_EXTRADATA \ + _IOR(VDEC_IOCTL_MAGIC, 10, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_SEQUENCE_HEADER \ + _IOW(VDEC_IOCTL_MAGIC, 11, struct vdec_ioctl_msg) + +/* CMD params: SET: InputParam - vdec_allocatorproperty, OutputParam - NULL + GET: InputParam - NULL, OutputParam - vdec_allocatorproperty*/ +#define VDEC_IOCTL_SET_BUFFER_REQ \ + _IOW(VDEC_IOCTL_MAGIC, 12, struct vdec_ioctl_msg) +#define VDEC_IOCTL_GET_BUFFER_REQ \ + _IOR(VDEC_IOCTL_MAGIC, 13, struct vdec_ioctl_msg) +/* CMD params: InputParam - vdec_buffer, OutputParam - uint8_t** */ +#define VDEC_IOCTL_ALLOCATE_BUFFER \ + _IOWR(VDEC_IOCTL_MAGIC, 14, struct vdec_ioctl_msg) +/* CMD params: InputParam - uint8_t *, OutputParam - NULL.*/ +#define VDEC_IOCTL_FREE_BUFFER \ + _IOW(VDEC_IOCTL_MAGIC, 15, struct vdec_ioctl_msg) + +/*CMD params: CMD: InputParam - struct vdec_setbuffer_cmd, OutputParam - NULL*/ +#define VDEC_IOCTL_SET_BUFFER \ + _IOW(VDEC_IOCTL_MAGIC, 16, struct vdec_ioctl_msg) + +/* CMD params: InputParam - struct vdec_fillbuffer_cmd, OutputParam - NULL*/ +#define VDEC_IOCTL_FILL_OUTPUT_BUFFER \ + _IOW(VDEC_IOCTL_MAGIC, 17, struct vdec_ioctl_msg) + +/*CMD params: InputParam - struct vdec_frameinfo , OutputParam - NULL*/ +#define VDEC_IOCTL_DECODE_FRAME \ + _IOW(VDEC_IOCTL_MAGIC, 18, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_LOAD_RESOURCES _IO(VDEC_IOCTL_MAGIC, 19) +#define VDEC_IOCTL_CMD_START _IO(VDEC_IOCTL_MAGIC, 20) +#define VDEC_IOCTL_CMD_STOP _IO(VDEC_IOCTL_MAGIC, 21) +#define VDEC_IOCTL_CMD_PAUSE _IO(VDEC_IOCTL_MAGIC, 22) +#define VDEC_IOCTL_CMD_RESUME _IO(VDEC_IOCTL_MAGIC, 23) + +/*CMD params: InputParam - enum vdec_bufferflush , OutputParam - NULL */ +#define VDEC_IOCTL_CMD_FLUSH _IOW(VDEC_IOCTL_MAGIC, 24, struct vdec_ioctl_msg) + +/* ======================================================== + * IOCTL for getting asynchronous notification from driver + * ========================================================*/ + +/*IOCTL params: InputParam - NULL, OutputParam - struct vdec_msginfo*/ +#define VDEC_IOCTL_GET_NEXT_MSG \ + _IOR(VDEC_IOCTL_MAGIC, 25, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_STOP_NEXT_MSG _IO(VDEC_IOCTL_MAGIC, 26) + +#define VDEC_IOCTL_GET_NUMBER_INSTANCES \ + _IOR(VDEC_IOCTL_MAGIC, 27, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_PICTURE_ORDER \ + _IOW(VDEC_IOCTL_MAGIC, 28, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_FRAME_RATE \ + _IOW(VDEC_IOCTL_MAGIC, 29, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_H264_MV_BUFFER \ + _IOW(VDEC_IOCTL_MAGIC, 30, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_FREE_H264_MV_BUFFER \ + _IOW(VDEC_IOCTL_MAGIC, 31, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_GET_MV_BUFFER_SIZE \ + _IOR(VDEC_IOCTL_MAGIC, 32, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_IDR_ONLY_DECODING \ + _IO(VDEC_IOCTL_MAGIC, 33) + +#define VDEC_IOCTL_SET_CONT_ON_RECONFIG \ + _IO(VDEC_IOCTL_MAGIC, 34) + +#define VDEC_IOCTL_SET_DISABLE_DMX \ + _IOW(VDEC_IOCTL_MAGIC, 35, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_GET_DISABLE_DMX \ + _IOR(VDEC_IOCTL_MAGIC, 36, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_GET_DISABLE_DMX_SUPPORT \ + _IOR(VDEC_IOCTL_MAGIC, 37, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_PERF_CLK \ + _IOR(VDEC_IOCTL_MAGIC, 38, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_SET_META_BUFFERS \ + _IOW(VDEC_IOCTL_MAGIC, 39, struct vdec_ioctl_msg) + +#define VDEC_IOCTL_FREE_META_BUFFERS \ + _IO(VDEC_IOCTL_MAGIC, 40) + +enum vdec_picture { + PICTURE_TYPE_I, + PICTURE_TYPE_P, + PICTURE_TYPE_B, + PICTURE_TYPE_BI, + PICTURE_TYPE_SKIP, + PICTURE_TYPE_IDR, + PICTURE_TYPE_UNKNOWN +}; + +enum vdec_buffer { + VDEC_BUFFER_TYPE_INPUT, + VDEC_BUFFER_TYPE_OUTPUT +}; + +struct vdec_allocatorproperty { + enum vdec_buffer buffer_type; + uint32_t mincount; + uint32_t maxcount; + uint32_t actualcount; + size_t buffer_size; + uint32_t alignment; + uint32_t buf_poolid; + size_t meta_buffer_size; +}; + +struct vdec_bufferpayload { + void *bufferaddr; + size_t buffer_len; + int pmem_fd; + size_t offset; + size_t mmaped_size; +}; + +struct vdec_setbuffer_cmd { + enum vdec_buffer buffer_type; + struct vdec_bufferpayload buffer; +}; + +struct vdec_fillbuffer_cmd { + struct vdec_bufferpayload buffer; + void *client_data; +}; + +enum vdec_bufferflush { + VDEC_FLUSH_TYPE_INPUT, + VDEC_FLUSH_TYPE_OUTPUT, + VDEC_FLUSH_TYPE_ALL +}; + +enum vdec_codec { + VDEC_CODECTYPE_H264 = 0x1, + VDEC_CODECTYPE_H263 = 0x2, + VDEC_CODECTYPE_MPEG4 = 0x3, + VDEC_CODECTYPE_DIVX_3 = 0x4, + VDEC_CODECTYPE_DIVX_4 = 0x5, + VDEC_CODECTYPE_DIVX_5 = 0x6, + VDEC_CODECTYPE_DIVX_6 = 0x7, + VDEC_CODECTYPE_XVID = 0x8, + VDEC_CODECTYPE_MPEG1 = 0x9, + VDEC_CODECTYPE_MPEG2 = 0xa, + VDEC_CODECTYPE_VC1 = 0xb, + VDEC_CODECTYPE_VC1_RCV = 0xc, + VDEC_CODECTYPE_HEVC = 0xd, + VDEC_CODECTYPE_MVC = 0xe, +}; + +enum vdec_mpeg2_profile { + VDEC_MPEG2ProfileSimple = 0x1, + VDEC_MPEG2ProfileMain = 0x2, + VDEC_MPEG2Profile422 = 0x4, + VDEC_MPEG2ProfileSNR = 0x8, + VDEC_MPEG2ProfileSpatial = 0x10, + VDEC_MPEG2ProfileHigh = 0x20, + VDEC_MPEG2ProfileKhronosExtensions = 0x6F000000, + VDEC_MPEG2ProfileVendorStartUnused = 0x7F000000, + VDEC_MPEG2ProfileMax = 0x7FFFFFFF +}; + +enum vdec_mpeg2_level { + + VDEC_MPEG2LevelLL = 0x1, + VDEC_MPEG2LevelML = 0x2, + VDEC_MPEG2LevelH14 = 0x4, + VDEC_MPEG2LevelHL = 0x8, + VDEC_MPEG2LevelKhronosExtensions = 0x6F000000, + VDEC_MPEG2LevelVendorStartUnused = 0x7F000000, + VDEC_MPEG2LevelMax = 0x7FFFFFFF +}; + +enum vdec_mpeg4_profile { + VDEC_MPEG4ProfileSimple = 0x01, + VDEC_MPEG4ProfileSimpleScalable = 0x02, + VDEC_MPEG4ProfileCore = 0x04, + VDEC_MPEG4ProfileMain = 0x08, + VDEC_MPEG4ProfileNbit = 0x10, + VDEC_MPEG4ProfileScalableTexture = 0x20, + VDEC_MPEG4ProfileSimpleFace = 0x40, + VDEC_MPEG4ProfileSimpleFBA = 0x80, + VDEC_MPEG4ProfileBasicAnimated = 0x100, + VDEC_MPEG4ProfileHybrid = 0x200, + VDEC_MPEG4ProfileAdvancedRealTime = 0x400, + VDEC_MPEG4ProfileCoreScalable = 0x800, + VDEC_MPEG4ProfileAdvancedCoding = 0x1000, + VDEC_MPEG4ProfileAdvancedCore = 0x2000, + VDEC_MPEG4ProfileAdvancedScalable = 0x4000, + VDEC_MPEG4ProfileAdvancedSimple = 0x8000, + VDEC_MPEG4ProfileKhronosExtensions = 0x6F000000, + VDEC_MPEG4ProfileVendorStartUnused = 0x7F000000, + VDEC_MPEG4ProfileMax = 0x7FFFFFFF +}; + +enum vdec_mpeg4_level { + VDEC_MPEG4Level0 = 0x01, + VDEC_MPEG4Level0b = 0x02, + VDEC_MPEG4Level1 = 0x04, + VDEC_MPEG4Level2 = 0x08, + VDEC_MPEG4Level3 = 0x10, + VDEC_MPEG4Level4 = 0x20, + VDEC_MPEG4Level4a = 0x40, + VDEC_MPEG4Level5 = 0x80, + VDEC_MPEG4LevelKhronosExtensions = 0x6F000000, + VDEC_MPEG4LevelVendorStartUnused = 0x7F000000, + VDEC_MPEG4LevelMax = 0x7FFFFFFF +}; + +enum vdec_avc_profile { + VDEC_AVCProfileBaseline = 0x01, + VDEC_AVCProfileMain = 0x02, + VDEC_AVCProfileExtended = 0x04, + VDEC_AVCProfileHigh = 0x08, + VDEC_AVCProfileHigh10 = 0x10, + VDEC_AVCProfileHigh422 = 0x20, + VDEC_AVCProfileHigh444 = 0x40, + VDEC_AVCProfileKhronosExtensions = 0x6F000000, + VDEC_AVCProfileVendorStartUnused = 0x7F000000, + VDEC_AVCProfileMax = 0x7FFFFFFF +}; + +enum vdec_avc_level { + VDEC_AVCLevel1 = 0x01, + VDEC_AVCLevel1b = 0x02, + VDEC_AVCLevel11 = 0x04, + VDEC_AVCLevel12 = 0x08, + VDEC_AVCLevel13 = 0x10, + VDEC_AVCLevel2 = 0x20, + VDEC_AVCLevel21 = 0x40, + VDEC_AVCLevel22 = 0x80, + VDEC_AVCLevel3 = 0x100, + VDEC_AVCLevel31 = 0x200, + VDEC_AVCLevel32 = 0x400, + VDEC_AVCLevel4 = 0x800, + VDEC_AVCLevel41 = 0x1000, + VDEC_AVCLevel42 = 0x2000, + VDEC_AVCLevel5 = 0x4000, + VDEC_AVCLevel51 = 0x8000, + VDEC_AVCLevelKhronosExtensions = 0x6F000000, + VDEC_AVCLevelVendorStartUnused = 0x7F000000, + VDEC_AVCLevelMax = 0x7FFFFFFF +}; + +enum vdec_divx_profile { + VDEC_DIVXProfile_qMobile = 0x01, + VDEC_DIVXProfile_Mobile = 0x02, + VDEC_DIVXProfile_HD = 0x04, + VDEC_DIVXProfile_Handheld = 0x08, + VDEC_DIVXProfile_Portable = 0x10, + VDEC_DIVXProfile_HomeTheater = 0x20 +}; + +enum vdec_xvid_profile { + VDEC_XVIDProfile_Simple = 0x1, + VDEC_XVIDProfile_Advanced_Realtime_Simple = 0x2, + VDEC_XVIDProfile_Advanced_Simple = 0x4 +}; + +enum vdec_xvid_level { + VDEC_XVID_LEVEL_S_L0 = 0x1, + VDEC_XVID_LEVEL_S_L1 = 0x2, + VDEC_XVID_LEVEL_S_L2 = 0x4, + VDEC_XVID_LEVEL_S_L3 = 0x8, + VDEC_XVID_LEVEL_ARTS_L1 = 0x10, + VDEC_XVID_LEVEL_ARTS_L2 = 0x20, + VDEC_XVID_LEVEL_ARTS_L3 = 0x40, + VDEC_XVID_LEVEL_ARTS_L4 = 0x80, + VDEC_XVID_LEVEL_AS_L0 = 0x100, + VDEC_XVID_LEVEL_AS_L1 = 0x200, + VDEC_XVID_LEVEL_AS_L2 = 0x400, + VDEC_XVID_LEVEL_AS_L3 = 0x800, + VDEC_XVID_LEVEL_AS_L4 = 0x1000 +}; + +enum vdec_h263profile { + VDEC_H263ProfileBaseline = 0x01, + VDEC_H263ProfileH320Coding = 0x02, + VDEC_H263ProfileBackwardCompatible = 0x04, + VDEC_H263ProfileISWV2 = 0x08, + VDEC_H263ProfileISWV3 = 0x10, + VDEC_H263ProfileHighCompression = 0x20, + VDEC_H263ProfileInternet = 0x40, + VDEC_H263ProfileInterlace = 0x80, + VDEC_H263ProfileHighLatency = 0x100, + VDEC_H263ProfileKhronosExtensions = 0x6F000000, + VDEC_H263ProfileVendorStartUnused = 0x7F000000, + VDEC_H263ProfileMax = 0x7FFFFFFF +}; + +enum vdec_h263level { + VDEC_H263Level10 = 0x01, + VDEC_H263Level20 = 0x02, + VDEC_H263Level30 = 0x04, + VDEC_H263Level40 = 0x08, + VDEC_H263Level45 = 0x10, + VDEC_H263Level50 = 0x20, + VDEC_H263Level60 = 0x40, + VDEC_H263Level70 = 0x80, + VDEC_H263LevelKhronosExtensions = 0x6F000000, + VDEC_H263LevelVendorStartUnused = 0x7F000000, + VDEC_H263LevelMax = 0x7FFFFFFF +}; + +enum vdec_wmv_format { + VDEC_WMVFormatUnused = 0x01, + VDEC_WMVFormat7 = 0x02, + VDEC_WMVFormat8 = 0x04, + VDEC_WMVFormat9 = 0x08, + VDEC_WMFFormatKhronosExtensions = 0x6F000000, + VDEC_WMFFormatVendorStartUnused = 0x7F000000, + VDEC_WMVFormatMax = 0x7FFFFFFF +}; + +enum vdec_vc1_profile { + VDEC_VC1ProfileSimple = 0x1, + VDEC_VC1ProfileMain = 0x2, + VDEC_VC1ProfileAdvanced = 0x4 +}; + +enum vdec_vc1_level { + VDEC_VC1_LEVEL_S_Low = 0x1, + VDEC_VC1_LEVEL_S_Medium = 0x2, + VDEC_VC1_LEVEL_M_Low = 0x4, + VDEC_VC1_LEVEL_M_Medium = 0x8, + VDEC_VC1_LEVEL_M_High = 0x10, + VDEC_VC1_LEVEL_A_L0 = 0x20, + VDEC_VC1_LEVEL_A_L1 = 0x40, + VDEC_VC1_LEVEL_A_L2 = 0x80, + VDEC_VC1_LEVEL_A_L3 = 0x100, + VDEC_VC1_LEVEL_A_L4 = 0x200 +}; + +struct vdec_profile_level { + uint32_t profiles; + uint32_t levels; +}; + +enum vdec_interlaced_format { + VDEC_InterlaceFrameProgressive = 0x1, + VDEC_InterlaceInterleaveFrameTopFieldFirst = 0x2, + VDEC_InterlaceInterleaveFrameBottomFieldFirst = 0x4 +}; + +enum vdec_output_fromat { + VDEC_YUV_FORMAT_NV12 = 0x1, + VDEC_YUV_FORMAT_TILE_4x2 = 0x2 +}; + +enum vdec_output_order { + VDEC_ORDER_DISPLAY = 0x1, + VDEC_ORDER_DECODE = 0x2 +}; + +struct vdec_picsize { + uint32_t frame_width; + uint32_t frame_height; + uint32_t stride; + uint32_t scan_lines; +}; + +struct vdec_seqheader { + void *ptr_seqheader; + size_t seq_header_len; + int pmem_fd; + size_t pmem_offset; +}; + +struct vdec_mberror { + void *ptr_errormap; + size_t err_mapsize; +}; + +struct vdec_input_frameinfo { + void *bufferaddr; + size_t offset; + size_t datalen; + uint32_t flags; + int64_t timestamp; + void *client_data; + int pmem_fd; + size_t pmem_offset; + void *desc_addr; + uint32_t desc_size; +}; + +struct vdec_framesize { + uint32_t left; + uint32_t top; + uint32_t right; + uint32_t bottom; +}; + +struct vdec_aspectratioinfo { + uint32_t aspect_ratio; + uint32_t par_width; + uint32_t par_height; +}; + +struct vdec_sep_metadatainfo { + void *metabufaddr; + uint32_t size; +}; + +struct vdec_output_frameinfo { + void *bufferaddr; + size_t offset; + size_t len; + uint32_t flags; + int64_t time_stamp; + enum vdec_picture pic_type; + void *client_data; + void *input_frame_clientdata; + struct vdec_picsize picsize; + struct vdec_framesize framesize; + enum vdec_interlaced_format interlaced_format; + struct vdec_aspectratioinfo aspect_ratio_info; + struct vdec_sep_metadatainfo metadata_info; +}; + +union vdec_msgdata { + struct vdec_output_frameinfo output_frame; + void *input_frame_clientdata; +}; + +struct vdec_msginfo { + uint32_t status_code; + uint32_t msgcode; + union vdec_msgdata msgdata; + size_t msgdatasize; +}; + +struct vdec_framerate { + unsigned long fps_denominator; + unsigned long fps_numerator; +}; + +struct vdec_h264_mv{ + size_t size; + int count; + int pmem_fd; + int offset; +}; + +struct vdec_mv_buff_size{ + int width; + int height; + int size; + int alignment; +}; + +struct vdec_meta_buffers { + size_t size; + int count; + int pmem_fd; + int pmem_fd_iommu; + int offset; +}; + +#endif /* end of macro _VDECDECODER_H_ */ diff --git a/kernel_headers/linux/msm_vidc_enc.h b/kernel_headers/linux/msm_vidc_enc.h new file mode 100644 index 0000000..a3d7ac0 --- /dev/null +++ b/kernel_headers/linux/msm_vidc_enc.h @@ -0,0 +1,700 @@ +#ifndef _MSM_VIDC_ENC_H_ +#define _MSM_VIDC_ENC_H_ + +#include +#include + +/** STATUS CODES*/ +/* Base value for status codes */ +#define VEN_S_BASE 0x00000000 +#define VEN_S_SUCCESS (VEN_S_BASE)/* Success */ +#define VEN_S_EFAIL (VEN_S_BASE+1)/* General failure */ +#define VEN_S_EFATAL (VEN_S_BASE+2)/* Fatal irrecoverable failure*/ +#define VEN_S_EBADPARAM (VEN_S_BASE+3)/* Error passed parameters*/ +/*Command called in invalid state*/ +#define VEN_S_EINVALSTATE (VEN_S_BASE+4) +#define VEN_S_ENOSWRES (VEN_S_BASE+5)/* Insufficient OS resources*/ +#define VEN_S_ENOHWRES (VEN_S_BASE+6)/*Insufficient HW resources */ +#define VEN_S_EBUFFREQ (VEN_S_BASE+7)/* Buffer requirements were not met*/ +#define VEN_S_EINVALCMD (VEN_S_BASE+8)/* Invalid command called */ +#define VEN_S_ETIMEOUT (VEN_S_BASE+9)/* Command timeout. */ +/*Re-attempt was made when multiple invocation not supported for API.*/ +#define VEN_S_ENOREATMPT (VEN_S_BASE+10) +#define VEN_S_ENOPREREQ (VEN_S_BASE+11)/*Pre-requirement is not met for API*/ +#define VEN_S_ECMDQFULL (VEN_S_BASE+12)/*Command queue is full*/ +#define VEN_S_ENOTSUPP (VEN_S_BASE+13)/*Command not supported*/ +#define VEN_S_ENOTIMPL (VEN_S_BASE+14)/*Command not implemented.*/ +#define VEN_S_ENOTPMEM (VEN_S_BASE+15)/*Buffer is not from PMEM*/ +#define VEN_S_EFLUSHED (VEN_S_BASE+16)/*returned buffer was flushed*/ +#define VEN_S_EINSUFBUF (VEN_S_BASE+17)/*provided buffer size insufficient*/ +#define VEN_S_ESAMESTATE (VEN_S_BASE+18) +#define VEN_S_EINVALTRANS (VEN_S_BASE+19) + +#define VEN_INTF_VER 1 + +/*Asynchronous messages from driver*/ +#define VEN_MSG_INDICATION 0 +#define VEN_MSG_INPUT_BUFFER_DONE 1 +#define VEN_MSG_OUTPUT_BUFFER_DONE 2 +#define VEN_MSG_NEED_OUTPUT_BUFFER 3 +#define VEN_MSG_FLUSH_INPUT_DONE 4 +#define VEN_MSG_FLUSH_OUPUT_DONE 5 +#define VEN_MSG_START 6 +#define VEN_MSG_STOP 7 +#define VEN_MSG_PAUSE 8 +#define VEN_MSG_RESUME 9 +#define VEN_MSG_STOP_READING_MSG 10 +#define VEN_MSG_LTRUSE_FAILED 11 +#define VEN_MSG_HW_OVERLOAD 12 +#define VEN_MSG_MAX_CLIENTS 13 + + +/*Buffer flags bits masks*/ +#define VEN_BUFFLAG_EOS 0x00000001 +#define VEN_BUFFLAG_ENDOFFRAME 0x00000010 +#define VEN_BUFFLAG_SYNCFRAME 0x00000020 +#define VEN_BUFFLAG_EXTRADATA 0x00000040 +#define VEN_BUFFLAG_CODECCONFIG 0x00000080 + +/*Post processing flags bit masks*/ +#define VEN_EXTRADATA_NONE 0x001 +#define VEN_EXTRADATA_QCOMFILLER 0x002 +#define VEN_EXTRADATA_SLICEINFO 0x100 +#define VEN_EXTRADATA_LTRINFO 0x200 +#define VEN_EXTRADATA_MBINFO 0x400 + +/*ENCODER CONFIGURATION CONSTANTS*/ + +/*Encoded video frame types*/ +#define VEN_FRAME_TYPE_I 1/* I frame type */ +#define VEN_FRAME_TYPE_P 2/* P frame type */ +#define VEN_FRAME_TYPE_B 3/* B frame type */ + +/*Video codec types*/ +#define VEN_CODEC_MPEG4 1/* MPEG4 Codec */ +#define VEN_CODEC_H264 2/* H.264 Codec */ +#define VEN_CODEC_H263 3/* H.263 Codec */ + +/*Video codec profile types.*/ +#define VEN_PROFILE_MPEG4_SP 1/* 1 - MPEG4 SP profile */ +#define VEN_PROFILE_MPEG4_ASP 2/* 2 - MPEG4 ASP profile */ +#define VEN_PROFILE_H264_BASELINE 3/* 3 - H264 Baseline profile */ +#define VEN_PROFILE_H264_MAIN 4/* 4 - H264 Main profile */ +#define VEN_PROFILE_H264_HIGH 5/* 5 - H264 High profile */ +#define VEN_PROFILE_H263_BASELINE 6/* 6 - H263 Baseline profile */ + +/*Video codec profile level types.*/ +#define VEN_LEVEL_MPEG4_0 0x1/* MPEG4 Level 0 */ +#define VEN_LEVEL_MPEG4_1 0x2/* MPEG4 Level 1 */ +#define VEN_LEVEL_MPEG4_2 0x3/* MPEG4 Level 2 */ +#define VEN_LEVEL_MPEG4_3 0x4/* MPEG4 Level 3 */ +#define VEN_LEVEL_MPEG4_4 0x5/* MPEG4 Level 4 */ +#define VEN_LEVEL_MPEG4_5 0x6/* MPEG4 Level 5 */ +#define VEN_LEVEL_MPEG4_3b 0x7/* MPEG4 Level 3b */ +#define VEN_LEVEL_MPEG4_6 0x8/* MPEG4 Level 6 */ + +#define VEN_LEVEL_H264_1 0x9/* H.264 Level 1 */ +#define VEN_LEVEL_H264_1b 0xA/* H.264 Level 1b */ +#define VEN_LEVEL_H264_1p1 0xB/* H.264 Level 1.1 */ +#define VEN_LEVEL_H264_1p2 0xC/* H.264 Level 1.2 */ +#define VEN_LEVEL_H264_1p3 0xD/* H.264 Level 1.3 */ +#define VEN_LEVEL_H264_2 0xE/* H.264 Level 2 */ +#define VEN_LEVEL_H264_2p1 0xF/* H.264 Level 2.1 */ +#define VEN_LEVEL_H264_2p2 0x10/* H.264 Level 2.2 */ +#define VEN_LEVEL_H264_3 0x11/* H.264 Level 3 */ +#define VEN_LEVEL_H264_3p1 0x12/* H.264 Level 3.1 */ +#define VEN_LEVEL_H264_3p2 0x13/* H.264 Level 3.2 */ +#define VEN_LEVEL_H264_4 0x14/* H.264 Level 4 */ + +#define VEN_LEVEL_H263_10 0x15/* H.263 Level 10 */ +#define VEN_LEVEL_H263_20 0x16/* H.263 Level 20 */ +#define VEN_LEVEL_H263_30 0x17/* H.263 Level 30 */ +#define VEN_LEVEL_H263_40 0x18/* H.263 Level 40 */ +#define VEN_LEVEL_H263_45 0x19/* H.263 Level 45 */ +#define VEN_LEVEL_H263_50 0x1A/* H.263 Level 50 */ +#define VEN_LEVEL_H263_60 0x1B/* H.263 Level 60 */ +#define VEN_LEVEL_H263_70 0x1C/* H.263 Level 70 */ + +/*Entropy coding model selection for H.264 encoder.*/ +#define VEN_ENTROPY_MODEL_CAVLC 1 +#define VEN_ENTROPY_MODEL_CABAC 2 +/*Cabac model number (0,1,2) for encoder.*/ +#define VEN_CABAC_MODEL_0 1/* CABAC Model 0. */ +#define VEN_CABAC_MODEL_1 2/* CABAC Model 1. */ +#define VEN_CABAC_MODEL_2 3/* CABAC Model 2. */ + +/*Deblocking filter control type for encoder.*/ +#define VEN_DB_DISABLE 1/* 1 - Disable deblocking filter*/ +#define VEN_DB_ALL_BLKG_BNDRY 2/* 2 - All blocking boundary filtering*/ +#define VEN_DB_SKIP_SLICE_BNDRY 3/* 3 - Filtering except sliceboundary*/ + +/*Different methods of Multi slice selection.*/ +#define VEN_MSLICE_OFF 1 +#define VEN_MSLICE_CNT_MB 2 /*number of MBscount per slice*/ +#define VEN_MSLICE_CNT_BYTE 3 /*number of bytes count per slice.*/ +#define VEN_MSLICE_GOB 4 /*Multi slice by GOB for H.263 only.*/ + +/*Different modes for Rate Control.*/ +#define VEN_RC_OFF 1 +#define VEN_RC_VBR_VFR 2 +#define VEN_RC_VBR_CFR 3 +#define VEN_RC_CBR_VFR 4 +#define VEN_RC_CBR_CFR 5 + +/*Different modes for flushing buffers*/ +#define VEN_FLUSH_INPUT 1 +#define VEN_FLUSH_OUTPUT 2 +#define VEN_FLUSH_ALL 3 + +/*Different input formats for YUV data.*/ +#define VEN_INPUTFMT_NV12 1/* NV12 Linear */ +#define VEN_INPUTFMT_NV21 2/* NV21 Linear */ +#define VEN_INPUTFMT_NV12_16M2KA 3/* NV12 Linear */ + +/*Different allowed rotation modes.*/ +#define VEN_ROTATION_0 1/* 0 degrees */ +#define VEN_ROTATION_90 2/* 90 degrees */ +#define VEN_ROTATION_180 3/* 180 degrees */ +#define VEN_ROTATION_270 4/* 270 degrees */ + +/*IOCTL timeout values*/ +#define VEN_TIMEOUT_INFINITE 0xffffffff + +/*Different allowed intra refresh modes.*/ +#define VEN_IR_OFF 1 +#define VEN_IR_CYCLIC 2 +#define VEN_IR_RANDOM 3 + +/*IOCTL BASE CODES Not to be used directly by the client.*/ +/* Base value for ioctls that are not related to encoder configuration.*/ +#define VEN_IOCTLBASE_NENC 0x800 +/* Base value for encoder configuration ioctls*/ +#define VEN_IOCTLBASE_ENC 0x850 + +struct venc_ioctl_msg{ + void *in; + void *out; +}; + +/*NON ENCODER CONFIGURATION IOCTLs*/ + +/*IOCTL params:SET: InputData - unsigned long, OutputData - NULL*/ +#define VEN_IOCTL_SET_INTF_VERSION \ + _IOW(VEN_IOCTLBASE_NENC, 0, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - venc_timeout, OutputData - venc_msg*/ +#define VEN_IOCTL_CMD_READ_NEXT_MSG \ + _IOWR(VEN_IOCTLBASE_NENC, 1, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - NULL, OutputData - NULL*/ +#define VEN_IOCTL_CMD_STOP_READ_MSG _IO(VEN_IOCTLBASE_NENC, 2) + +/*IOCTL params:SET: InputData - venc_allocatorproperty, OutputData - NULL + GET: InputData - NULL, OutputData - venc_allocatorproperty*/ +#define VEN_IOCTL_SET_INPUT_BUFFER_REQ \ + _IOW(VEN_IOCTLBASE_NENC, 3, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_INPUT_BUFFER_REQ \ + _IOR(VEN_IOCTLBASE_NENC, 4, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/ +#define VEN_IOCTL_CMD_ALLOC_INPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 5, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/ +#define VEN_IOCTL_SET_INPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 6, struct venc_ioctl_msg) + +/*IOCTL params: CMD: InputData - venc_bufferpayload, OutputData - NULL*/ +#define VEN_IOCTL_CMD_FREE_INPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 7, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_allocatorproperty, OutputData - NULL + GET: InputData - NULL, OutputData - venc_allocatorproperty*/ +#define VEN_IOCTL_SET_OUTPUT_BUFFER_REQ \ + _IOW(VEN_IOCTLBASE_NENC, 8, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_OUTPUT_BUFFER_REQ \ + _IOR(VEN_IOCTLBASE_NENC, 9, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/ +#define VEN_IOCTL_CMD_ALLOC_OUTPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 10, struct venc_ioctl_msg) + + +/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/ +#define VEN_IOCTL_SET_OUTPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 11, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL.*/ +#define VEN_IOCTL_CMD_FREE_OUTPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 12, struct venc_ioctl_msg) + + +/* Asynchronous respone message code:* VEN_MSG_START*/ +#define VEN_IOCTL_CMD_START _IO(VEN_IOCTLBASE_NENC, 13) + + +/*IOCTL params:CMD: InputData - venc_buffer, OutputData - NULL + Asynchronous respone message code:VEN_MSG_INPUT_BUFFER_DONE*/ +#define VEN_IOCTL_CMD_ENCODE_FRAME \ + _IOW(VEN_IOCTLBASE_NENC, 14, struct venc_ioctl_msg) + + +/*IOCTL params:CMD: InputData - venc_buffer, OutputData - NULL + Asynchronous response message code:VEN_MSG_OUTPUT_BUFFER_DONE*/ +#define VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 15, struct venc_ioctl_msg) + +/*IOCTL params:CMD: InputData - venc_bufferflush, OutputData - NULL + * Asynchronous response message code:VEN_MSG_INPUT_BUFFER_DONE*/ +#define VEN_IOCTL_CMD_FLUSH \ + _IOW(VEN_IOCTLBASE_NENC, 16, struct venc_ioctl_msg) + + +/*Asynchronous respone message code:VEN_MSG_PAUSE*/ +#define VEN_IOCTL_CMD_PAUSE _IO(VEN_IOCTLBASE_NENC, 17) + +/*Asynchronous respone message code:VEN_MSG_RESUME*/ +#define VEN_IOCTL_CMD_RESUME _IO(VEN_IOCTLBASE_NENC, 18) + +/* Asynchronous respone message code:VEN_MSG_STOP*/ +#define VEN_IOCTL_CMD_STOP _IO(VEN_IOCTLBASE_NENC, 19) + +#define VEN_IOCTL_SET_RECON_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 20, struct venc_ioctl_msg) + +#define VEN_IOCTL_FREE_RECON_BUFFER \ + _IOW(VEN_IOCTLBASE_NENC, 21, struct venc_ioctl_msg) + +#define VEN_IOCTL_GET_RECON_BUFFER_SIZE \ + _IOW(VEN_IOCTLBASE_NENC, 22, struct venc_ioctl_msg) + + + +/*ENCODER PROPERTY CONFIGURATION & CAPABILITY IOCTLs*/ + +/*IOCTL params:SET: InputData - venc_basecfg, OutputData - NULL + GET: InputData - NULL, OutputData - venc_basecfg*/ +#define VEN_IOCTL_SET_BASE_CFG \ + _IOW(VEN_IOCTLBASE_ENC, 1, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_BASE_CFG \ + _IOR(VEN_IOCTLBASE_ENC, 2, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL + GET: InputData - NULL, OutputData - venc_switch*/ +#define VEN_IOCTL_SET_LIVE_MODE \ + _IOW(VEN_IOCTLBASE_ENC, 3, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_LIVE_MODE \ + _IOR(VEN_IOCTLBASE_ENC, 4, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_profile, OutputData - NULL + GET: InputData - NULL, OutputData - venc_profile*/ +#define VEN_IOCTL_SET_CODEC_PROFILE \ + _IOW(VEN_IOCTLBASE_ENC, 5, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_CODEC_PROFILE \ + _IOR(VEN_IOCTLBASE_ENC, 6, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - ven_profilelevel, OutputData - NULL + GET: InputData - NULL, OutputData - ven_profilelevel*/ +#define VEN_IOCTL_SET_PROFILE_LEVEL \ + _IOW(VEN_IOCTLBASE_ENC, 7, struct venc_ioctl_msg) + +#define VEN_IOCTL_GET_PROFILE_LEVEL \ + _IOR(VEN_IOCTLBASE_ENC, 8, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL + GET: InputData - NULL, OutputData - venc_switch*/ +#define VEN_IOCTL_SET_SHORT_HDR \ + _IOW(VEN_IOCTLBASE_ENC, 9, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_SHORT_HDR \ + _IOR(VEN_IOCTLBASE_ENC, 10, struct venc_ioctl_msg) + + +/*IOCTL params: SET: InputData - venc_sessionqp, OutputData - NULL + GET: InputData - NULL, OutputData - venc_sessionqp*/ +#define VEN_IOCTL_SET_SESSION_QP \ + _IOW(VEN_IOCTLBASE_ENC, 11, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_SESSION_QP \ + _IOR(VEN_IOCTLBASE_ENC, 12, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_intraperiod, OutputData - NULL + GET: InputData - NULL, OutputData - venc_intraperiod*/ +#define VEN_IOCTL_SET_INTRA_PERIOD \ + _IOW(VEN_IOCTLBASE_ENC, 13, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_INTRA_PERIOD \ + _IOR(VEN_IOCTLBASE_ENC, 14, struct venc_ioctl_msg) + + +/* Request an Iframe*/ +#define VEN_IOCTL_CMD_REQUEST_IFRAME _IO(VEN_IOCTLBASE_ENC, 15) + +/*IOCTL params:GET: InputData - NULL, OutputData - venc_capability*/ +#define VEN_IOCTL_GET_CAPABILITY \ + _IOR(VEN_IOCTLBASE_ENC, 16, struct venc_ioctl_msg) + + +/*IOCTL params:GET: InputData - NULL, OutputData - venc_seqheader*/ +#define VEN_IOCTL_GET_SEQUENCE_HDR \ + _IOR(VEN_IOCTLBASE_ENC, 17, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_entropycfg, OutputData - NULL + GET: InputData - NULL, OutputData - venc_entropycfg*/ +#define VEN_IOCTL_SET_ENTROPY_CFG \ + _IOW(VEN_IOCTLBASE_ENC, 18, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_ENTROPY_CFG \ + _IOR(VEN_IOCTLBASE_ENC, 19, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_dbcfg, OutputData - NULL + GET: InputData - NULL, OutputData - venc_dbcfg*/ +#define VEN_IOCTL_SET_DEBLOCKING_CFG \ + _IOW(VEN_IOCTLBASE_ENC, 20, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_DEBLOCKING_CFG \ + _IOR(VEN_IOCTLBASE_ENC, 21, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_intrarefresh, OutputData - NULL + GET: InputData - NULL, OutputData - venc_intrarefresh*/ +#define VEN_IOCTL_SET_INTRA_REFRESH \ + _IOW(VEN_IOCTLBASE_ENC, 22, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_INTRA_REFRESH \ + _IOR(VEN_IOCTLBASE_ENC, 23, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_multiclicecfg, OutputData - NULL + GET: InputData - NULL, OutputData - venc_multiclicecfg*/ +#define VEN_IOCTL_SET_MULTI_SLICE_CFG \ + _IOW(VEN_IOCTLBASE_ENC, 24, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_MULTI_SLICE_CFG \ + _IOR(VEN_IOCTLBASE_ENC, 25, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_ratectrlcfg, OutputData - NULL + GET: InputData - NULL, OutputData - venc_ratectrlcfg*/ +#define VEN_IOCTL_SET_RATE_CTRL_CFG \ + _IOW(VEN_IOCTLBASE_ENC, 26, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_RATE_CTRL_CFG \ + _IOR(VEN_IOCTLBASE_ENC, 27, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_voptimingcfg, OutputData - NULL + GET: InputData - NULL, OutputData - venc_voptimingcfg*/ +#define VEN_IOCTL_SET_VOP_TIMING_CFG \ + _IOW(VEN_IOCTLBASE_ENC, 28, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_VOP_TIMING_CFG \ + _IOR(VEN_IOCTLBASE_ENC, 29, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_framerate, OutputData - NULL + GET: InputData - NULL, OutputData - venc_framerate*/ +#define VEN_IOCTL_SET_FRAME_RATE \ + _IOW(VEN_IOCTLBASE_ENC, 30, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_FRAME_RATE \ + _IOR(VEN_IOCTLBASE_ENC, 31, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_targetbitrate, OutputData - NULL + GET: InputData - NULL, OutputData - venc_targetbitrate*/ +#define VEN_IOCTL_SET_TARGET_BITRATE \ + _IOW(VEN_IOCTLBASE_ENC, 32, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_TARGET_BITRATE \ + _IOR(VEN_IOCTLBASE_ENC, 33, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_rotation, OutputData - NULL + GET: InputData - NULL, OutputData - venc_rotation*/ +#define VEN_IOCTL_SET_ROTATION \ + _IOW(VEN_IOCTLBASE_ENC, 34, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_ROTATION \ + _IOR(VEN_IOCTLBASE_ENC, 35, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_headerextension, OutputData - NULL + GET: InputData - NULL, OutputData - venc_headerextension*/ +#define VEN_IOCTL_SET_HEC \ + _IOW(VEN_IOCTLBASE_ENC, 36, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_HEC \ + _IOR(VEN_IOCTLBASE_ENC, 37, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL + GET: InputData - NULL, OutputData - venc_switch*/ +#define VEN_IOCTL_SET_DATA_PARTITION \ + _IOW(VEN_IOCTLBASE_ENC, 38, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_DATA_PARTITION \ + _IOR(VEN_IOCTLBASE_ENC, 39, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL + GET: InputData - NULL, OutputData - venc_switch*/ +#define VEN_IOCTL_SET_RVLC \ + _IOW(VEN_IOCTLBASE_ENC, 40, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_RVLC \ + _IOR(VEN_IOCTLBASE_ENC, 41, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL + GET: InputData - NULL, OutputData - venc_switch*/ +#define VEN_IOCTL_SET_AC_PREDICTION \ + _IOW(VEN_IOCTLBASE_ENC, 42, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_AC_PREDICTION \ + _IOR(VEN_IOCTLBASE_ENC, 43, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - venc_qprange, OutputData - NULL + GET: InputData - NULL, OutputData - venc_qprange*/ +#define VEN_IOCTL_SET_QP_RANGE \ + _IOW(VEN_IOCTLBASE_ENC, 44, struct venc_ioctl_msg) +#define VEN_IOCTL_GET_QP_RANGE \ + _IOR(VEN_IOCTLBASE_ENC, 45, struct venc_ioctl_msg) + +#define VEN_IOCTL_GET_NUMBER_INSTANCES \ + _IOR(VEN_IOCTLBASE_ENC, 46, struct venc_ioctl_msg) + +#define VEN_IOCTL_SET_METABUFFER_MODE \ + _IOW(VEN_IOCTLBASE_ENC, 47, struct venc_ioctl_msg) + + +/*IOCTL params:SET: InputData - unsigned int, OutputData - NULL.*/ +#define VEN_IOCTL_SET_EXTRADATA \ + _IOW(VEN_IOCTLBASE_ENC, 48, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - unsigned int.*/ +#define VEN_IOCTL_GET_EXTRADATA \ + _IOR(VEN_IOCTLBASE_ENC, 49, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - NULL, OutputData - NULL.*/ +#define VEN_IOCTL_SET_SLICE_DELIVERY_MODE \ + _IO(VEN_IOCTLBASE_ENC, 50) + +#define VEN_IOCTL_SET_H263_PLUSPTYPE \ + _IOW(VEN_IOCTLBASE_ENC, 51, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_range, OutputData - NULL.*/ +#define VEN_IOCTL_SET_CAPABILITY_LTRCOUNT \ + _IOW(VEN_IOCTLBASE_ENC, 52, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - venc_range.*/ +#define VEN_IOCTL_GET_CAPABILITY_LTRCOUNT \ + _IOR(VEN_IOCTLBASE_ENC, 53, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_ltrmode, OutputData - NULL.*/ +#define VEN_IOCTL_SET_LTRMODE \ + _IOW(VEN_IOCTLBASE_ENC, 54, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrmode.*/ +#define VEN_IOCTL_GET_LTRMODE \ + _IOR(VEN_IOCTLBASE_ENC, 55, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_ltrcount, OutputData - NULL.*/ +#define VEN_IOCTL_SET_LTRCOUNT \ + _IOW(VEN_IOCTLBASE_ENC, 56, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrcount.*/ +#define VEN_IOCTL_GET_LTRCOUNT \ + _IOR(VEN_IOCTLBASE_ENC, 57, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_ltrperiod, OutputData - NULL.*/ +#define VEN_IOCTL_SET_LTRPERIOD \ + _IOW(VEN_IOCTLBASE_ENC, 58, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrperiod.*/ +#define VEN_IOCTL_GET_LTRPERIOD \ + _IOR(VEN_IOCTLBASE_ENC, 59, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_ltruse, OutputData - NULL.*/ +#define VEN_IOCTL_SET_LTRUSE \ + _IOW(VEN_IOCTLBASE_ENC, 60, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltruse.*/ +#define VEN_IOCTL_GET_LTRUSE \ + _IOR(VEN_IOCTLBASE_ENC, 61, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - venc_ltrmark, OutputData - NULL.*/ +#define VEN_IOCTL_SET_LTRMARK \ + _IOW(VEN_IOCTLBASE_ENC, 62, struct venc_ioctl_msg) +/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrmark.*/ +#define VEN_IOCTL_GET_LTRMARK \ + _IOR(VEN_IOCTLBASE_ENC, 63, struct venc_ioctl_msg) + +/*IOCTL params:SET: InputData - unsigned int, OutputData - NULL*/ +#define VEN_IOCTL_SET_SPS_PPS_FOR_IDR \ + _IOW(VEN_IOCTLBASE_ENC, 64, struct venc_ioctl_msg) + +struct venc_range { + unsigned long max; + unsigned long min; + unsigned long step_size; +}; + +struct venc_switch{ + unsigned char status; +}; + +struct venc_allocatorproperty{ + unsigned long mincount; + unsigned long maxcount; + unsigned long actualcount; + unsigned long datasize; + unsigned long suffixsize; + unsigned long alignment; + unsigned long bufpoolid; +}; + +struct venc_bufferpayload{ + unsigned char *pbuffer; + size_t sz; + int fd; + unsigned int offset; + unsigned int maped_size; + unsigned long filled_len; +}; + +struct venc_buffer{ + unsigned char *ptrbuffer; + unsigned long sz; + unsigned long len; + unsigned long offset; + long long timestamp; + unsigned long flags; + void *clientdata; +}; + +struct venc_basecfg{ + unsigned long input_width; + unsigned long input_height; + unsigned long dvs_width; + unsigned long dvs_height; + unsigned long codectype; + unsigned long fps_num; + unsigned long fps_den; + unsigned long targetbitrate; + unsigned long inputformat; +}; + +struct venc_profile{ + unsigned long profile; +}; +struct ven_profilelevel{ + unsigned long level; +}; + +struct venc_sessionqp{ + unsigned long iframeqp; + unsigned long pframqp; +}; + +struct venc_qprange{ + unsigned long maxqp; + unsigned long minqp; +}; + +struct venc_plusptype { + unsigned long plusptype_enable; +}; + +struct venc_intraperiod{ + unsigned long num_pframes; + unsigned long num_bframes; +}; +struct venc_seqheader{ + unsigned char *hdrbufptr; + unsigned long bufsize; + unsigned long hdrlen; +}; + +struct venc_capability{ + unsigned long codec_types; + unsigned long maxframe_width; + unsigned long maxframe_height; + unsigned long maxtarget_bitrate; + unsigned long maxframe_rate; + unsigned long input_formats; + unsigned char dvs; +}; + +struct venc_entropycfg{ + unsigned longentropysel; + unsigned long cabacmodel; +}; + +struct venc_dbcfg{ + unsigned long db_mode; + unsigned long slicealpha_offset; + unsigned long slicebeta_offset; +}; + +struct venc_intrarefresh{ + unsigned long irmode; + unsigned long mbcount; +}; + +struct venc_multiclicecfg{ + unsigned long mslice_mode; + unsigned long mslice_size; +}; + +struct venc_bufferflush{ + unsigned long flush_mode; +}; + +struct venc_ratectrlcfg{ + unsigned long rcmode; +}; + +struct venc_voptimingcfg{ + unsigned long voptime_resolution; +}; +struct venc_framerate{ + unsigned long fps_denominator; + unsigned long fps_numerator; +}; + +struct venc_targetbitrate{ + unsigned long target_bitrate; +}; + + +struct venc_rotation{ + unsigned long rotation; +}; + +struct venc_timeout{ + unsigned long millisec; +}; + +struct venc_headerextension{ + unsigned long header_extension; +}; + +struct venc_msg{ + unsigned long statuscode; + unsigned long msgcode; + struct venc_buffer buf; + unsigned long msgdata_size; +}; + +struct venc_recon_addr{ + unsigned char *pbuffer; + unsigned long buffer_size; + unsigned long pmem_fd; + unsigned long offset; +}; + +struct venc_recon_buff_size{ + int width; + int height; + int size; + int alignment; +}; + +struct venc_ltrmode { + unsigned long ltr_mode; +}; + +struct venc_ltrcount { + unsigned long ltr_count; +}; + +struct venc_ltrperiod { + unsigned long ltr_period; +}; + +struct venc_ltruse { + unsigned long ltr_id; + unsigned long ltr_frames; +}; + +#endif /* _MSM_VIDC_ENC_H_ */ diff --git a/kernel_headers/linux/mtio.h b/kernel_headers/linux/mtio.h new file mode 100644 index 0000000..18543e2 --- /dev/null +++ b/kernel_headers/linux/mtio.h @@ -0,0 +1,208 @@ +/* + * linux/mtio.h header file for Linux. Written by H. Bergman + * + * Modified for special ioctls provided by zftape in September 1997 + * by C.-J. Heine. + */ + +#ifndef _LINUX_MTIO_H +#define _LINUX_MTIO_H + +#include +#include + +/* + * Structures and definitions for mag tape io control commands + */ + +/* structure for MTIOCTOP - mag tape op command */ +struct mtop { + short mt_op; /* operations defined below */ + int mt_count; /* how many of them */ +}; + +/* Magnetic Tape operations [Not all operations supported by all drivers]: */ +#define MTRESET 0 /* +reset drive in case of problems */ +#define MTFSF 1 /* forward space over FileMark, + * position at first record of next file + */ +#define MTBSF 2 /* backward space FileMark (position before FM) */ +#define MTFSR 3 /* forward space record */ +#define MTBSR 4 /* backward space record */ +#define MTWEOF 5 /* write an end-of-file record (mark) */ +#define MTREW 6 /* rewind */ +#define MTOFFL 7 /* rewind and put the drive offline (eject?) */ +#define MTNOP 8 /* no op, set status only (read with MTIOCGET) */ +#define MTRETEN 9 /* retension tape */ +#define MTBSFM 10 /* +backward space FileMark, position at FM */ +#define MTFSFM 11 /* +forward space FileMark, position at FM */ +#define MTEOM 12 /* goto end of recorded media (for appending files). + * MTEOM positions after the last FM, ready for + * appending another file. + */ +#define MTERASE 13 /* erase tape -- be careful! */ + +#define MTRAS1 14 /* run self test 1 (nondestructive) */ +#define MTRAS2 15 /* run self test 2 (destructive) */ +#define MTRAS3 16 /* reserved for self test 3 */ + +#define MTSETBLK 20 /* set block length (SCSI) */ +#define MTSETDENSITY 21 /* set tape density (SCSI) */ +#define MTSEEK 22 /* seek to block (Tandberg, etc.) */ +#define MTTELL 23 /* tell block (Tandberg, etc.) */ +#define MTSETDRVBUFFER 24 /* set the drive buffering according to SCSI-2 */ + /* ordinary buffered operation with code 1 */ +#define MTFSS 25 /* space forward over setmarks */ +#define MTBSS 26 /* space backward over setmarks */ +#define MTWSM 27 /* write setmarks */ + +#define MTLOCK 28 /* lock the drive door */ +#define MTUNLOCK 29 /* unlock the drive door */ +#define MTLOAD 30 /* execute the SCSI load command */ +#define MTUNLOAD 31 /* execute the SCSI unload command */ +#define MTCOMPRESSION 32/* control compression with SCSI mode page 15 */ +#define MTSETPART 33 /* Change the active tape partition */ +#define MTMKPART 34 /* Format the tape with one or two partitions */ +#define MTWEOFI 35 /* write an end-of-file record (mark) in immediate mode */ + +/* structure for MTIOCGET - mag tape get status command */ + +struct mtget { + long mt_type; /* type of magtape device */ + long mt_resid; /* residual count: (not sure) + * number of bytes ignored, or + * number of files not skipped, or + * number of records not skipped. + */ + /* the following registers are device dependent */ + long mt_dsreg; /* status register */ + long mt_gstat; /* generic (device independent) status */ + long mt_erreg; /* error register */ + /* The next two fields are not always used */ + __kernel_daddr_t mt_fileno; /* number of current file on tape */ + __kernel_daddr_t mt_blkno; /* current block number */ +}; + + + +/* + * Constants for mt_type. Not all of these are supported, + * and these are not all of the ones that are supported. + */ +#define MT_ISUNKNOWN 0x01 +#define MT_ISQIC02 0x02 /* Generic QIC-02 tape streamer */ +#define MT_ISWT5150 0x03 /* Wangtek 5150EQ, QIC-150, QIC-02 */ +#define MT_ISARCHIVE_5945L2 0x04 /* Archive 5945L-2, QIC-24, QIC-02? */ +#define MT_ISCMSJ500 0x05 /* CMS Jumbo 500 (QIC-02?) */ +#define MT_ISTDC3610 0x06 /* Tandberg 6310, QIC-24 */ +#define MT_ISARCHIVE_VP60I 0x07 /* Archive VP60i, QIC-02 */ +#define MT_ISARCHIVE_2150L 0x08 /* Archive Viper 2150L */ +#define MT_ISARCHIVE_2060L 0x09 /* Archive Viper 2060L */ +#define MT_ISARCHIVESC499 0x0A /* Archive SC-499 QIC-36 controller */ +#define MT_ISQIC02_ALL_FEATURES 0x0F /* Generic QIC-02 with all features */ +#define MT_ISWT5099EEN24 0x11 /* Wangtek 5099-een24, 60MB, QIC-24 */ +#define MT_ISTEAC_MT2ST 0x12 /* Teac MT-2ST 155mb drive, Teac DC-1 card (Wangtek type) */ +#define MT_ISEVEREX_FT40A 0x32 /* Everex FT40A (QIC-40) */ +#define MT_ISDDS1 0x51 /* DDS device without partitions */ +#define MT_ISDDS2 0x52 /* DDS device with partitions */ +#define MT_ISONSTREAM_SC 0x61 /* OnStream SCSI tape drives (SC-x0) + and SCSI emulated (DI, DP, USB) */ +#define MT_ISSCSI1 0x71 /* Generic ANSI SCSI-1 tape unit */ +#define MT_ISSCSI2 0x72 /* Generic ANSI SCSI-2 tape unit */ + +/* QIC-40/80/3010/3020 ftape supported drives. + * 20bit vendor ID + 0x800000 (see ftape-vendors.h) + */ +#define MT_ISFTAPE_UNKNOWN 0x800000 /* obsolete */ +#define MT_ISFTAPE_FLAG 0x800000 + + +/* structure for MTIOCPOS - mag tape get position command */ + +struct mtpos { + long mt_blkno; /* current block number */ +}; + + +/* mag tape io control commands */ +#define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */ +#define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */ +#define MTIOCPOS _IOR('m', 3, struct mtpos) /* get tape position */ + + +/* Generic Mag Tape (device independent) status macros for examining + * mt_gstat -- HP-UX compatible. + * There is room for more generic status bits here, but I don't + * know which of them are reserved. At least three or so should + * be added to make this really useful. + */ +#define GMT_EOF(x) ((x) & 0x80000000) +#define GMT_BOT(x) ((x) & 0x40000000) +#define GMT_EOT(x) ((x) & 0x20000000) +#define GMT_SM(x) ((x) & 0x10000000) /* DDS setmark */ +#define GMT_EOD(x) ((x) & 0x08000000) /* DDS EOD */ +#define GMT_WR_PROT(x) ((x) & 0x04000000) +/* #define GMT_ ? ((x) & 0x02000000) */ +#define GMT_ONLINE(x) ((x) & 0x01000000) +#define GMT_D_6250(x) ((x) & 0x00800000) +#define GMT_D_1600(x) ((x) & 0x00400000) +#define GMT_D_800(x) ((x) & 0x00200000) +/* #define GMT_ ? ((x) & 0x00100000) */ +/* #define GMT_ ? ((x) & 0x00080000) */ +#define GMT_DR_OPEN(x) ((x) & 0x00040000) /* door open (no tape) */ +/* #define GMT_ ? ((x) & 0x00020000) */ +#define GMT_IM_REP_EN(x) ((x) & 0x00010000) /* immediate report mode */ +#define GMT_CLN(x) ((x) & 0x00008000) /* cleaning requested */ +/* 15 generic status bits unused */ + + +/* SCSI-tape specific definitions */ +/* Bitfield shifts in the status */ +#define MT_ST_BLKSIZE_SHIFT 0 +#define MT_ST_BLKSIZE_MASK 0xffffff +#define MT_ST_DENSITY_SHIFT 24 +#define MT_ST_DENSITY_MASK 0xff000000 + +#define MT_ST_SOFTERR_SHIFT 0 +#define MT_ST_SOFTERR_MASK 0xffff + +/* Bitfields for the MTSETDRVBUFFER ioctl */ +#define MT_ST_OPTIONS 0xf0000000 +#define MT_ST_BOOLEANS 0x10000000 +#define MT_ST_SETBOOLEANS 0x30000000 +#define MT_ST_CLEARBOOLEANS 0x40000000 +#define MT_ST_WRITE_THRESHOLD 0x20000000 +#define MT_ST_DEF_BLKSIZE 0x50000000 +#define MT_ST_DEF_OPTIONS 0x60000000 +#define MT_ST_TIMEOUTS 0x70000000 +#define MT_ST_SET_TIMEOUT (MT_ST_TIMEOUTS | 0x000000) +#define MT_ST_SET_LONG_TIMEOUT (MT_ST_TIMEOUTS | 0x100000) +#define MT_ST_SET_CLN 0x80000000 + +#define MT_ST_BUFFER_WRITES 0x1 +#define MT_ST_ASYNC_WRITES 0x2 +#define MT_ST_READ_AHEAD 0x4 +#define MT_ST_DEBUGGING 0x8 +#define MT_ST_TWO_FM 0x10 +#define MT_ST_FAST_MTEOM 0x20 +#define MT_ST_AUTO_LOCK 0x40 +#define MT_ST_DEF_WRITES 0x80 +#define MT_ST_CAN_BSR 0x100 +#define MT_ST_NO_BLKLIMS 0x200 +#define MT_ST_CAN_PARTITIONS 0x400 +#define MT_ST_SCSI2LOGICAL 0x800 +#define MT_ST_SYSV 0x1000 +#define MT_ST_NOWAIT 0x2000 +#define MT_ST_SILI 0x4000 +#define MT_ST_NOWAIT_EOF 0x8000 + +/* The mode parameters to be controlled. Parameter chosen with bits 20-28 */ +#define MT_ST_CLEAR_DEFAULT 0xfffff +#define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000) +#define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000) +#define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000) + +/* The offset for the arguments for the special HP changer load command. */ +#define MT_ST_HPLOADER_OFFSET 10000 + +#endif /* _LINUX_MTIO_H */ diff --git a/kernel_headers/linux/n_r3964.h b/kernel_headers/linux/n_r3964.h new file mode 100644 index 0000000..168a0f9 --- /dev/null +++ b/kernel_headers/linux/n_r3964.h @@ -0,0 +1,98 @@ +/* r3964 linediscipline for linux + * + * ----------------------------------------------------------- + * Copyright by + * Philips Automation Projects + * Kassel (Germany) + * ----------------------------------------------------------- + * This software may be used and distributed according to the terms of + * the GNU General Public License, incorporated herein by reference. + * + * Author: + * L. Haag + * + * $Log: r3964.h,v $ + * Revision 1.4 2005/12/21 19:54:24 Kurt Huwig + * Fixed HZ usage on 2.6 kernels + * Removed unnecessary include + * + * Revision 1.3 2001/03/18 13:02:24 dwmw2 + * Fix timer usage, use spinlocks properly. + * + * Revision 1.2 2001/03/18 12:53:15 dwmw2 + * Merge changes in 2.4.2 + * + * Revision 1.1.1.1 1998/10/13 16:43:14 dwmw2 + * This'll screw the version control + * + * Revision 1.6 1998/09/30 00:40:38 dwmw2 + * Updated to use kernel's N_R3964 if available + * + * Revision 1.4 1998/04/02 20:29:44 lhaag + * select, blocking, ... + * + * Revision 1.3 1998/02/12 18:58:43 root + * fixed some memory leaks + * calculation of checksum characters + * + * Revision 1.2 1998/02/07 13:03:17 root + * ioctl read_telegram + * + * Revision 1.1 1998/02/06 19:19:43 root + * Initial revision + * + * + */ + +#ifndef __LINUX_N_R3964_H__ +#define __LINUX_N_R3964_H__ + +/* line disciplines for r3964 protocol */ + + +/* + * Ioctl-commands + */ + +#define R3964_ENABLE_SIGNALS 0x5301 +#define R3964_SETPRIORITY 0x5302 +#define R3964_USE_BCC 0x5303 +#define R3964_READ_TELEGRAM 0x5304 + +/* Options for R3964_SETPRIORITY */ +#define R3964_MASTER 0 +#define R3964_SLAVE 1 + +/* Options for R3964_ENABLE_SIGNALS */ +#define R3964_SIG_ACK 0x0001 +#define R3964_SIG_DATA 0x0002 +#define R3964_SIG_ALL 0x000f +#define R3964_SIG_NONE 0x0000 +#define R3964_USE_SIGIO 0x1000 + +/* + * r3964 operation states: + */ + +/* types for msg_id: */ +enum {R3964_MSG_ACK=1, R3964_MSG_DATA }; + +#define R3964_MAX_MSG_COUNT 32 + +/* error codes for client messages */ +#define R3964_OK 0 /* no error. */ +#define R3964_TX_FAIL -1 /* transmission error, block NOT sent */ +#define R3964_OVERFLOW -2 /* msg queue overflow */ + +/* the client gets this struct when calling read(fd,...): */ +struct r3964_client_message { + int msg_id; + int arg; + int error_code; +}; + +#define R3964_MTU 256 + + + +#endif /* __LINUX_N_R3964_H__ */ diff --git a/kernel_headers/linux/nbd.h b/kernel_headers/linux/nbd.h new file mode 100644 index 0000000..e2c8025 --- /dev/null +++ b/kernel_headers/linux/nbd.h @@ -0,0 +1,78 @@ +/* + * 1999 Copyright (C) Pavel Machek, pavel@ucw.cz. This code is GPL. + * 1999/11/04 Copyright (C) 1999 VMware, Inc. (Regis "HPReg" Duchesne) + * Made nbd_end_request() use the io_request_lock + * 2001 Copyright (C) Steven Whitehouse + * New nbd_end_request() for compatibility with new linux block + * layer code. + * 2003/06/24 Louis D. Langholtz + * Removed unneeded blksize_bits field from nbd_device struct. + * Cleanup PARANOIA usage & code. + * 2004/02/19 Paul Clements + * Removed PARANOIA, plus various cleanup and comments + */ + +#ifndef LINUX_NBD_H +#define LINUX_NBD_H + +#include + +#define NBD_SET_SOCK _IO( 0xab, 0 ) +#define NBD_SET_BLKSIZE _IO( 0xab, 1 ) +#define NBD_SET_SIZE _IO( 0xab, 2 ) +#define NBD_DO_IT _IO( 0xab, 3 ) +#define NBD_CLEAR_SOCK _IO( 0xab, 4 ) +#define NBD_CLEAR_QUE _IO( 0xab, 5 ) +#define NBD_PRINT_DEBUG _IO( 0xab, 6 ) +#define NBD_SET_SIZE_BLOCKS _IO( 0xab, 7 ) +#define NBD_DISCONNECT _IO( 0xab, 8 ) +#define NBD_SET_TIMEOUT _IO( 0xab, 9 ) +#define NBD_SET_FLAGS _IO( 0xab, 10) + +enum { + NBD_CMD_READ = 0, + NBD_CMD_WRITE = 1, + NBD_CMD_DISC = 2, + NBD_CMD_FLUSH = 3, + NBD_CMD_TRIM = 4 +}; + +/* values for flags field */ +#define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */ +#define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */ +#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */ +/* there is a gap here to match userspace */ +#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */ + +#define nbd_cmd(req) ((req)->cmd[0]) + +/* userspace doesn't need the nbd_device structure */ + +/* These are sent over the network in the request/reply magic fields */ + +#define NBD_REQUEST_MAGIC 0x25609513 +#define NBD_REPLY_MAGIC 0x67446698 +/* Do *not* use magics: 0x12560953 0x96744668. */ + +/* + * This is the packet used for communication between client and + * server. All data are in network byte order. + */ +struct nbd_request { + __be32 magic; + __be32 type; /* == READ || == WRITE */ + char handle[8]; + __be64 from; + __be32 len; +} __attribute__((packed)); + +/* + * This is the reply packet that nbd-server sends back to the client after + * it has completed an I/O request (or an error occurs). + */ +struct nbd_reply { + __be32 magic; + __be32 error; /* 0 = ok, else error */ + char handle[8]; /* handle you got from request */ +}; +#endif /* LINUX_NBD_H */ diff --git a/kernel_headers/linux/ncp.h b/kernel_headers/linux/ncp.h new file mode 100644 index 0000000..4482ad7 --- /dev/null +++ b/kernel_headers/linux/ncp.h @@ -0,0 +1,198 @@ +/* + * ncp.h + * + * Copyright (C) 1995 by Volker Lendecke + * Modified for sparc by J.F. Chadima + * Modified for __constant_ntoh by Frank A. Vorstenbosch + * + */ + +#ifndef _LINUX_NCP_H +#define _LINUX_NCP_H + +#include + +#define NCP_PTYPE (0x11) +#define NCP_PORT (0x0451) + +#define NCP_ALLOC_SLOT_REQUEST (0x1111) +#define NCP_REQUEST (0x2222) +#define NCP_DEALLOC_SLOT_REQUEST (0x5555) + +struct ncp_request_header { + __u16 type; + __u8 sequence; + __u8 conn_low; + __u8 task; + __u8 conn_high; + __u8 function; + __u8 data[0]; +} __attribute__((packed)); + +#define NCP_REPLY (0x3333) +#define NCP_WATCHDOG (0x3E3E) +#define NCP_POSITIVE_ACK (0x9999) + +struct ncp_reply_header { + __u16 type; + __u8 sequence; + __u8 conn_low; + __u8 task; + __u8 conn_high; + __u8 completion_code; + __u8 connection_state; + __u8 data[0]; +} __attribute__((packed)); + +#define NCP_VOLNAME_LEN (16) +#define NCP_NUMBER_OF_VOLUMES (256) +struct ncp_volume_info { + __u32 total_blocks; + __u32 free_blocks; + __u32 purgeable_blocks; + __u32 not_yet_purgeable_blocks; + __u32 total_dir_entries; + __u32 available_dir_entries; + __u8 sectors_per_block; + char volume_name[NCP_VOLNAME_LEN + 1]; +}; + +#define AR_READ (cpu_to_le16(1)) +#define AR_WRITE (cpu_to_le16(2)) +#define AR_EXCLUSIVE (cpu_to_le16(0x20)) + +#define NCP_FILE_ID_LEN 6 + +/* Defines for Name Spaces */ +#define NW_NS_DOS 0 +#define NW_NS_MAC 1 +#define NW_NS_NFS 2 +#define NW_NS_FTAM 3 +#define NW_NS_OS2 4 + +/* Defines for ReturnInformationMask */ +#define RIM_NAME (cpu_to_le32(1)) +#define RIM_SPACE_ALLOCATED (cpu_to_le32(2)) +#define RIM_ATTRIBUTES (cpu_to_le32(4)) +#define RIM_DATA_SIZE (cpu_to_le32(8)) +#define RIM_TOTAL_SIZE (cpu_to_le32(0x10)) +#define RIM_EXT_ATTR_INFO (cpu_to_le32(0x20)) +#define RIM_ARCHIVE (cpu_to_le32(0x40)) +#define RIM_MODIFY (cpu_to_le32(0x80)) +#define RIM_CREATION (cpu_to_le32(0x100)) +#define RIM_OWNING_NAMESPACE (cpu_to_le32(0x200)) +#define RIM_DIRECTORY (cpu_to_le32(0x400)) +#define RIM_RIGHTS (cpu_to_le32(0x800)) +#define RIM_ALL (cpu_to_le32(0xFFF)) +#define RIM_COMPRESSED_INFO (cpu_to_le32(0x80000000)) + +/* Defines for NSInfoBitMask */ +#define NSIBM_NFS_NAME 0x0001 +#define NSIBM_NFS_MODE 0x0002 +#define NSIBM_NFS_GID 0x0004 +#define NSIBM_NFS_NLINKS 0x0008 +#define NSIBM_NFS_RDEV 0x0010 +#define NSIBM_NFS_LINK 0x0020 +#define NSIBM_NFS_CREATED 0x0040 +#define NSIBM_NFS_UID 0x0080 +#define NSIBM_NFS_ACSFLAG 0x0100 +#define NSIBM_NFS_MYFLAG 0x0200 + +/* open/create modes */ +#define OC_MODE_OPEN 0x01 +#define OC_MODE_TRUNCATE 0x02 +#define OC_MODE_REPLACE 0x02 +#define OC_MODE_CREATE 0x08 + +/* open/create results */ +#define OC_ACTION_NONE 0x00 +#define OC_ACTION_OPEN 0x01 +#define OC_ACTION_CREATE 0x02 +#define OC_ACTION_TRUNCATE 0x04 +#define OC_ACTION_REPLACE 0x04 + +/* access rights attributes */ +#ifndef AR_READ_ONLY +#define AR_READ_ONLY 0x0001 +#define AR_WRITE_ONLY 0x0002 +#define AR_DENY_READ 0x0004 +#define AR_DENY_WRITE 0x0008 +#define AR_COMPATIBILITY 0x0010 +#define AR_WRITE_THROUGH 0x0040 +#define AR_OPEN_COMPRESSED 0x0100 +#endif + +struct nw_nfs_info { + __u32 mode; + __u32 rdev; +}; + +struct nw_info_struct { + __u32 spaceAlloc; + __le32 attributes; + __u16 flags; + __le32 dataStreamSize; + __le32 totalStreamSize; + __u16 numberOfStreams; + __le16 creationTime; + __le16 creationDate; + __u32 creatorID; + __le16 modifyTime; + __le16 modifyDate; + __u32 modifierID; + __le16 lastAccessDate; + __u16 archiveTime; + __u16 archiveDate; + __u32 archiverID; + __u16 inheritedRightsMask; + __le32 dirEntNum; + __le32 DosDirNum; + __u32 volNumber; + __u32 EADataSize; + __u32 EAKeyCount; + __u32 EAKeySize; + __u32 NSCreator; + __u8 nameLen; + __u8 entryName[256]; + /* libncp may depend on there being nothing after entryName */ +} __attribute__((packed)); + +/* modify mask - use with MODIFY_DOS_INFO structure */ +#define DM_ATTRIBUTES (cpu_to_le32(0x02)) +#define DM_CREATE_DATE (cpu_to_le32(0x04)) +#define DM_CREATE_TIME (cpu_to_le32(0x08)) +#define DM_CREATOR_ID (cpu_to_le32(0x10)) +#define DM_ARCHIVE_DATE (cpu_to_le32(0x20)) +#define DM_ARCHIVE_TIME (cpu_to_le32(0x40)) +#define DM_ARCHIVER_ID (cpu_to_le32(0x80)) +#define DM_MODIFY_DATE (cpu_to_le32(0x0100)) +#define DM_MODIFY_TIME (cpu_to_le32(0x0200)) +#define DM_MODIFIER_ID (cpu_to_le32(0x0400)) +#define DM_LAST_ACCESS_DATE (cpu_to_le32(0x0800)) +#define DM_INHERITED_RIGHTS_MASK (cpu_to_le32(0x1000)) +#define DM_MAXIMUM_SPACE (cpu_to_le32(0x2000)) + +struct nw_modify_dos_info { + __le32 attributes; + __le16 creationDate; + __le16 creationTime; + __u32 creatorID; + __le16 modifyDate; + __le16 modifyTime; + __u32 modifierID; + __u16 archiveDate; + __u16 archiveTime; + __u32 archiverID; + __le16 lastAccessDate; + __u16 inheritanceGrantMask; + __u16 inheritanceRevokeMask; + __u32 maximumSpace; +} __attribute__((packed)); + +struct nw_search_sequence { + __u8 volNumber; + __u32 dirBase; + __u32 sequence; +} __attribute__((packed)); + +#endif /* _LINUX_NCP_H */ diff --git a/kernel_headers/linux/ncp_fs.h b/kernel_headers/linux/ncp_fs.h new file mode 100644 index 0000000..9b84469 --- /dev/null +++ b/kernel_headers/linux/ncp_fs.h @@ -0,0 +1,146 @@ +/* + * ncp_fs.h + * + * Copyright (C) 1995, 1996 by Volker Lendecke + * + */ + +#ifndef _LINUX_NCP_FS_H +#define _LINUX_NCP_FS_H + +#include +#include +#include +#include + +#include +#include + +/* + * ioctl commands + */ + +struct ncp_ioctl_request { + unsigned int function; + unsigned int size; + char *data; +}; + +struct ncp_fs_info { + int version; + struct sockaddr_ipx addr; + __kernel_uid_t mounted_uid; + int connection; /* Connection number the server assigned us */ + int buffer_size; /* The negotiated buffer size, to be + used for read/write requests! */ + + int volume_number; + __le32 directory_id; +}; + +struct ncp_fs_info_v2 { + int version; + unsigned long mounted_uid; + unsigned int connection; + unsigned int buffer_size; + + unsigned int volume_number; + __le32 directory_id; + + __u32 dummy1; + __u32 dummy2; + __u32 dummy3; +}; + +struct ncp_sign_init +{ + char sign_root[8]; + char sign_last[16]; +}; + +struct ncp_lock_ioctl +{ +#define NCP_LOCK_LOG 0 +#define NCP_LOCK_SH 1 +#define NCP_LOCK_EX 2 +#define NCP_LOCK_CLEAR 256 + int cmd; + int origin; + unsigned int offset; + unsigned int length; +#define NCP_LOCK_DEFAULT_TIMEOUT 18 +#define NCP_LOCK_MAX_TIMEOUT 180 + int timeout; +}; + +struct ncp_setroot_ioctl +{ + int volNumber; + int namespace; + __le32 dirEntNum; +}; + +struct ncp_objectname_ioctl +{ +#define NCP_AUTH_NONE 0x00 +#define NCP_AUTH_BIND 0x31 +#define NCP_AUTH_NDS 0x32 + int auth_type; + size_t object_name_len; + void * object_name; /* a userspace data, in most cases user name */ +}; + +struct ncp_privatedata_ioctl +{ + size_t len; + void * data; /* ~1000 for NDS */ +}; + +/* NLS charsets by ioctl */ +#define NCP_IOCSNAME_LEN 20 +struct ncp_nls_ioctl +{ + unsigned char codepage[NCP_IOCSNAME_LEN+1]; + unsigned char iocharset[NCP_IOCSNAME_LEN+1]; +}; + +#define NCP_IOC_NCPREQUEST _IOR('n', 1, struct ncp_ioctl_request) +#define NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_old_uid_t) +#define NCP_IOC_GETMOUNTUID2 _IOW('n', 2, unsigned long) + +#define NCP_IOC_CONN_LOGGED_IN _IO('n', 3) + +#define NCP_GET_FS_INFO_VERSION (1) +#define NCP_IOC_GET_FS_INFO _IOWR('n', 4, struct ncp_fs_info) +#define NCP_GET_FS_INFO_VERSION_V2 (2) +#define NCP_IOC_GET_FS_INFO_V2 _IOWR('n', 4, struct ncp_fs_info_v2) + +#define NCP_IOC_SIGN_INIT _IOR('n', 5, struct ncp_sign_init) +#define NCP_IOC_SIGN_WANTED _IOR('n', 6, int) +#define NCP_IOC_SET_SIGN_WANTED _IOW('n', 6, int) + +#define NCP_IOC_LOCKUNLOCK _IOR('n', 7, struct ncp_lock_ioctl) + +#define NCP_IOC_GETROOT _IOW('n', 8, struct ncp_setroot_ioctl) +#define NCP_IOC_SETROOT _IOR('n', 8, struct ncp_setroot_ioctl) + +#define NCP_IOC_GETOBJECTNAME _IOWR('n', 9, struct ncp_objectname_ioctl) +#define NCP_IOC_SETOBJECTNAME _IOR('n', 9, struct ncp_objectname_ioctl) +#define NCP_IOC_GETPRIVATEDATA _IOWR('n', 10, struct ncp_privatedata_ioctl) +#define NCP_IOC_SETPRIVATEDATA _IOR('n', 10, struct ncp_privatedata_ioctl) + +#define NCP_IOC_GETCHARSETS _IOWR('n', 11, struct ncp_nls_ioctl) +#define NCP_IOC_SETCHARSETS _IOR('n', 11, struct ncp_nls_ioctl) + +#define NCP_IOC_GETDENTRYTTL _IOW('n', 12, __u32) +#define NCP_IOC_SETDENTRYTTL _IOR('n', 12, __u32) + +/* + * The packet size to allocate. One page should be enough. + */ +#define NCP_PACKET_SIZE 4070 + +#define NCP_MAXPATHLEN 255 +#define NCP_MAXNAMELEN 14 + +#endif /* _LINUX_NCP_FS_H */ diff --git a/kernel_headers/linux/ncp_mount.h b/kernel_headers/linux/ncp_mount.h new file mode 100644 index 0000000..dfcbea2 --- /dev/null +++ b/kernel_headers/linux/ncp_mount.h @@ -0,0 +1,71 @@ +/* + * ncp_mount.h + * + * Copyright (C) 1995, 1996 by Volker Lendecke + * + */ + +#ifndef _LINUX_NCP_MOUNT_H +#define _LINUX_NCP_MOUNT_H + +#include +#include + +#define NCP_MOUNT_VERSION 3 /* Binary */ + +/* Values for flags */ +#define NCP_MOUNT_SOFT 0x0001 +#define NCP_MOUNT_INTR 0x0002 +#define NCP_MOUNT_STRONG 0x0004 /* enable delete/rename of r/o files */ +#define NCP_MOUNT_NO_OS2 0x0008 /* do not use OS/2 (LONG) namespace */ +#define NCP_MOUNT_NO_NFS 0x0010 /* do not use NFS namespace */ +#define NCP_MOUNT_EXTRAS 0x0020 +#define NCP_MOUNT_SYMLINKS 0x0040 /* enable symlinks */ +#define NCP_MOUNT_NFS_EXTRAS 0x0080 /* Enable use of NFS NS meta-info */ + +struct ncp_mount_data { + int version; + unsigned int ncp_fd; /* The socket to the ncp port */ + __kernel_uid_t mounted_uid; /* Who may umount() this filesystem? */ + __kernel_pid_t wdog_pid; /* Who cares for our watchdog packets? */ + + unsigned char mounted_vol[NCP_VOLNAME_LEN + 1]; + unsigned int time_out; /* How long should I wait after + sending a NCP request? */ + unsigned int retry_count; /* And how often should I retry? */ + unsigned int flags; + + __kernel_uid_t uid; + __kernel_gid_t gid; + __kernel_mode_t file_mode; + __kernel_mode_t dir_mode; +}; + +#define NCP_MOUNT_VERSION_V4 (4) /* Binary or text */ + +struct ncp_mount_data_v4 { + int version; + unsigned long flags; /* NCP_MOUNT_* flags */ + /* MIPS uses long __kernel_uid_t, but... */ + /* we neever pass -1, so it is safe */ + unsigned long mounted_uid; /* Who may umount() this filesystem? */ + /* MIPS uses long __kernel_pid_t */ + long wdog_pid; /* Who cares for our watchdog packets? */ + + unsigned int ncp_fd; /* The socket to the ncp port */ + unsigned int time_out; /* How long should I wait after + sending a NCP request? */ + unsigned int retry_count; /* And how often should I retry? */ + + /* MIPS uses long __kernel_uid_t... */ + /* we never pass -1, so it is safe */ + unsigned long uid; + unsigned long gid; + /* MIPS uses unsigned long __kernel_mode_t */ + unsigned long file_mode; + unsigned long dir_mode; +}; + +#define NCP_MOUNT_VERSION_V5 (5) /* Text only */ + +#endif diff --git a/kernel_headers/linux/ncp_no.h b/kernel_headers/linux/ncp_no.h new file mode 100644 index 0000000..cddaa48 --- /dev/null +++ b/kernel_headers/linux/ncp_no.h @@ -0,0 +1,19 @@ +#ifndef _NCP_NO +#define _NCP_NO + +/* these define the attribute byte as seen by NCP */ +#define aRONLY (__cpu_to_le32(1)) +#define aHIDDEN (__cpu_to_le32(2)) +#define aSYSTEM (__cpu_to_le32(4)) +#define aEXECUTE (__cpu_to_le32(8)) +#define aDIR (__cpu_to_le32(0x10)) +#define aARCH (__cpu_to_le32(0x20)) +#define aSHARED (__cpu_to_le32(0x80)) +#define aDONTSUBALLOCATE (__cpu_to_le32(1L<<11)) +#define aTRANSACTIONAL (__cpu_to_le32(1L<<12)) +#define aPURGE (__cpu_to_le32(1L<<16)) +#define aRENAMEINHIBIT (__cpu_to_le32(1L<<17)) +#define aDELETEINHIBIT (__cpu_to_le32(1L<<18)) +#define aDONTCOMPRESS (__cpu_to_le32(1L<<27)) + +#endif /* _NCP_NO */ diff --git a/kernel_headers/linux/neighbour.h b/kernel_headers/linux/neighbour.h new file mode 100644 index 0000000..f175212 --- /dev/null +++ b/kernel_headers/linux/neighbour.h @@ -0,0 +1,163 @@ +#ifndef __LINUX_NEIGHBOUR_H +#define __LINUX_NEIGHBOUR_H + +#include +#include + +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; +}; + +enum { + NDA_UNSPEC, + NDA_DST, + NDA_LLADDR, + NDA_CACHEINFO, + NDA_PROBES, + NDA_VLAN, + NDA_PORT, + NDA_VNI, + NDA_IFINDEX, + __NDA_MAX +}; + +#define NDA_MAX (__NDA_MAX - 1) + +/* + * Neighbor Cache Entry Flags + */ + +#define NTF_USE 0x01 +#define NTF_PROXY 0x08 /* == ATF_PUBL */ +#define NTF_ROUTER 0x80 + +#define NTF_SELF 0x02 +#define NTF_MASTER 0x04 + +/* + * Neighbor Cache Entry States. + */ + +#define NUD_INCOMPLETE 0x01 +#define NUD_REACHABLE 0x02 +#define NUD_STALE 0x04 +#define NUD_DELAY 0x08 +#define NUD_PROBE 0x10 +#define NUD_FAILED 0x20 + +/* Dummy states */ +#define NUD_NOARP 0x40 +#define NUD_PERMANENT 0x80 +#define NUD_NONE 0x00 + +/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change + and make no address resolution or NUD. + NUD_PERMANENT is also cannot be deleted by garbage collectors. + */ + +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; +}; + +/***************************************************************** + * Neighbour tables specific messages. + * + * To retrieve the neighbour tables send RTM_GETNEIGHTBL with the + * NLM_F_DUMP flag set. Every neighbour table configuration is + * spread over multiple messages to avoid running into message + * size limits on systems with many interfaces. The first message + * in the sequence transports all not device specific data such as + * statistics, configuration, and the default parameter set. + * This message is followed by 0..n messages carrying device + * specific parameter sets. + * Although the ordering should be sufficient, NDTA_NAME can be + * used to identify sequences. The initial message can be identified + * by checking for NDTA_CONFIG. The device specific messages do + * not contain this TLV but have NDTPA_IFINDEX set to the + * corresponding interface index. + * + * To change neighbour table attributes, send RTM_SETNEIGHTBL + * with NDTA_NAME set. Changeable attribute include NDTA_THRESH[1-3], + * NDTA_GC_INTERVAL, and all TLVs in NDTA_PARMS unless marked + * otherwise. Device specific parameter sets can be changed by + * setting NDTPA_IFINDEX to the interface index of the corresponding + * device. + ****/ + +struct ndt_stats { + __u64 ndts_allocs; + __u64 ndts_destroys; + __u64 ndts_hash_grows; + __u64 ndts_res_failed; + __u64 ndts_lookups; + __u64 ndts_hits; + __u64 ndts_rcv_probes_mcast; + __u64 ndts_rcv_probes_ucast; + __u64 ndts_periodic_gc_runs; + __u64 ndts_forced_gc_runs; +}; + +enum { + NDTPA_UNSPEC, + NDTPA_IFINDEX, /* u32, unchangeable */ + NDTPA_REFCNT, /* u32, read-only */ + NDTPA_REACHABLE_TIME, /* u64, read-only, msecs */ + NDTPA_BASE_REACHABLE_TIME, /* u64, msecs */ + NDTPA_RETRANS_TIME, /* u64, msecs */ + NDTPA_GC_STALETIME, /* u64, msecs */ + NDTPA_DELAY_PROBE_TIME, /* u64, msecs */ + NDTPA_QUEUE_LEN, /* u32 */ + NDTPA_APP_PROBES, /* u32 */ + NDTPA_UCAST_PROBES, /* u32 */ + NDTPA_MCAST_PROBES, /* u32 */ + NDTPA_ANYCAST_DELAY, /* u64, msecs */ + NDTPA_PROXY_DELAY, /* u64, msecs */ + NDTPA_PROXY_QLEN, /* u32 */ + NDTPA_LOCKTIME, /* u64, msecs */ + NDTPA_QUEUE_LENBYTES, /* u32 */ + __NDTPA_MAX +}; +#define NDTPA_MAX (__NDTPA_MAX - 1) + +struct ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; +}; + +struct ndt_config { + __u16 ndtc_key_len; + __u16 ndtc_entry_size; + __u32 ndtc_entries; + __u32 ndtc_last_flush; /* delta to now in msecs */ + __u32 ndtc_last_rand; /* delta to now in msecs */ + __u32 ndtc_hash_rnd; + __u32 ndtc_hash_mask; + __u32 ndtc_hash_chain_gc; + __u32 ndtc_proxy_qlen; +}; + +enum { + NDTA_UNSPEC, + NDTA_NAME, /* char *, unchangeable */ + NDTA_THRESH1, /* u32 */ + NDTA_THRESH2, /* u32 */ + NDTA_THRESH3, /* u32 */ + NDTA_CONFIG, /* struct ndt_config, read-only */ + NDTA_PARMS, /* nested TLV NDTPA_* */ + NDTA_STATS, /* struct ndt_stats, read-only */ + NDTA_GC_INTERVAL, /* u64, msecs */ + __NDTA_MAX +}; +#define NDTA_MAX (__NDTA_MAX - 1) + +#endif diff --git a/kernel_headers/linux/net.h b/kernel_headers/linux/net.h new file mode 100644 index 0000000..24eaec3 --- /dev/null +++ b/kernel_headers/linux/net.h @@ -0,0 +1,57 @@ +/* + * NET An implementation of the SOCKET network access protocol. + * This is the master header file for the Linux NET layer, + * or, in plain English: the networking handling part of the + * kernel. + * + * Version: @(#)net.h 1.0.3 05/25/93 + * + * Authors: Orest Zborowski, + * Ross Biro + * Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_NET_H +#define _LINUX_NET_H + +#include +#include + +#define NPROTO AF_MAX + +#define SYS_SOCKET 1 /* sys_socket(2) */ +#define SYS_BIND 2 /* sys_bind(2) */ +#define SYS_CONNECT 3 /* sys_connect(2) */ +#define SYS_LISTEN 4 /* sys_listen(2) */ +#define SYS_ACCEPT 5 /* sys_accept(2) */ +#define SYS_GETSOCKNAME 6 /* sys_getsockname(2) */ +#define SYS_GETPEERNAME 7 /* sys_getpeername(2) */ +#define SYS_SOCKETPAIR 8 /* sys_socketpair(2) */ +#define SYS_SEND 9 /* sys_send(2) */ +#define SYS_RECV 10 /* sys_recv(2) */ +#define SYS_SENDTO 11 /* sys_sendto(2) */ +#define SYS_RECVFROM 12 /* sys_recvfrom(2) */ +#define SYS_SHUTDOWN 13 /* sys_shutdown(2) */ +#define SYS_SETSOCKOPT 14 /* sys_setsockopt(2) */ +#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */ +#define SYS_SENDMSG 16 /* sys_sendmsg(2) */ +#define SYS_RECVMSG 17 /* sys_recvmsg(2) */ +#define SYS_ACCEPT4 18 /* sys_accept4(2) */ +#define SYS_RECVMMSG 19 /* sys_recvmmsg(2) */ +#define SYS_SENDMMSG 20 /* sys_sendmmsg(2) */ + +typedef enum { + SS_FREE = 0, /* not allocated */ + SS_UNCONNECTED, /* unconnected to any socket */ + SS_CONNECTING, /* in process of connecting */ + SS_CONNECTED, /* connected to socket */ + SS_DISCONNECTING /* in process of disconnecting */ +} socket_state; + +#define __SO_ACCEPTCON (1 << 16) /* performed a listen */ + +#endif /* _LINUX_NET_H */ diff --git a/kernel_headers/linux/net_dropmon.h b/kernel_headers/linux/net_dropmon.h new file mode 100644 index 0000000..2a73946 --- /dev/null +++ b/kernel_headers/linux/net_dropmon.h @@ -0,0 +1,64 @@ +#ifndef __NET_DROPMON_H +#define __NET_DROPMON_H + +#include +#include + +struct net_dm_drop_point { + __u8 pc[8]; + __u32 count; +}; + +#define is_drop_point_hw(x) do {\ + int ____i, ____j;\ + for (____i = 0; ____i < 8; i ____i++)\ + ____j |= x[____i];\ + ____j;\ +} while (0) + +#define NET_DM_CFG_VERSION 0 +#define NET_DM_CFG_ALERT_COUNT 1 +#define NET_DM_CFG_ALERT_DELAY 2 +#define NET_DM_CFG_MAX 3 + +struct net_dm_config_entry { + __u32 type; + __u64 data __attribute__((aligned(8))); +}; + +struct net_dm_config_msg { + __u32 entries; + struct net_dm_config_entry options[0]; +}; + +struct net_dm_alert_msg { + __u32 entries; + struct net_dm_drop_point points[0]; +}; + +struct net_dm_user_msg { + union { + struct net_dm_config_msg user; + struct net_dm_alert_msg alert; + } u; +}; + + +/* These are the netlink message types for this protocol */ + +enum { + NET_DM_CMD_UNSPEC = 0, + NET_DM_CMD_ALERT, + NET_DM_CMD_CONFIG, + NET_DM_CMD_START, + NET_DM_CMD_STOP, + _NET_DM_CMD_MAX, +}; + +#define NET_DM_CMD_MAX (_NET_DM_CMD_MAX - 1) + +/* + * Our group identifiers + */ +#define NET_DM_GRP_ALERT 1 +#endif diff --git a/kernel_headers/linux/net_map.h b/kernel_headers/linux/net_map.h new file mode 100644 index 0000000..e2ed7e8 --- /dev/null +++ b/kernel_headers/linux/net_map.h @@ -0,0 +1,32 @@ +#ifndef _NET_MAP_H_ +#define _NET_MAP_H_ + +struct rmnet_map_header_s { +#if defined(__LITTLE_ENDIAN_BITFIELD) + uint8_t pad_len:6; + uint8_t reserved_bit:1; + uint8_t cd_bit:1; +#elif defined(__BIG_ENDIAN_BITFIELD) + uint8_t cd_bit:1; + uint8_t reserved_bit:1; + uint8_t pad_len:6; +#else +#error "Please fix " +#endif + uint8_t mux_id; + uint16_t pkt_len; +} __aligned(1); + +#define RMNET_MAP_GET_MUX_ID(Y) (((struct rmnet_map_header_s *)Y->data)->mux_id) +#define RMNET_MAP_GET_CD_BIT(Y) (((struct rmnet_map_header_s *)Y->data)->cd_bit) +#define RMNET_MAP_GET_PAD(Y) (((struct rmnet_map_header_s *)Y->data)->pad_len) +#define RMNET_MAP_GET_CMD_START(Y) ((struct rmnet_map_control_command_s *) \ + (Y->data + sizeof(struct rmnet_map_header_s))) +#define RMNET_MAP_GET_LENGTH(Y) (ntohs( \ + ((struct rmnet_map_header_s *)Y->data)->pkt_len)) + +#define RMNET_IP_VER_MASK 0xF0 +#define RMNET_IPV4 0x40 +#define RMNET_IPV6 0x60 + +#endif /* _NET_MAP_H_ */ diff --git a/kernel_headers/linux/net_tstamp.h b/kernel_headers/linux/net_tstamp.h new file mode 100644 index 0000000..ae5df12 --- /dev/null +++ b/kernel_headers/linux/net_tstamp.h @@ -0,0 +1,113 @@ +/* + * Userspace API for hardware time stamping of network packets + * + * Copyright (C) 2008,2009 Intel Corporation + * Author: Patrick Ohly + * + */ + +#ifndef _NET_TIMESTAMPING_H +#define _NET_TIMESTAMPING_H + +#include /* for SO_TIMESTAMPING */ + +/* SO_TIMESTAMPING gets an integer bit field comprised of these values */ +enum { + SOF_TIMESTAMPING_TX_HARDWARE = (1<<0), + SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1), + SOF_TIMESTAMPING_RX_HARDWARE = (1<<2), + SOF_TIMESTAMPING_RX_SOFTWARE = (1<<3), + SOF_TIMESTAMPING_SOFTWARE = (1<<4), + SOF_TIMESTAMPING_SYS_HARDWARE = (1<<5), + SOF_TIMESTAMPING_RAW_HARDWARE = (1<<6), + SOF_TIMESTAMPING_MASK = + (SOF_TIMESTAMPING_RAW_HARDWARE - 1) | + SOF_TIMESTAMPING_RAW_HARDWARE +}; + +/** + * struct hwtstamp_config - %SIOCSHWTSTAMP parameter + * + * @flags: no flags defined right now, must be zero + * @tx_type: one of HWTSTAMP_TX_* + * @rx_type: one of one of HWTSTAMP_FILTER_* + * + * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to + * this structure. dev_ifsioc() in the kernel takes care of the + * translation between 32 bit userspace and 64 bit kernel. The + * structure is intentionally chosen so that it has the same layout on + * 32 and 64 bit systems, don't break this! + */ +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; +}; + +/* possible values for hwtstamp_config->tx_type */ +enum hwtstamp_tx_types { + /* + * No outgoing packet will need hardware time stamping; + * should a packet arrive which asks for it, no hardware + * time stamping will be done. + */ + HWTSTAMP_TX_OFF, + + /* + * Enables hardware time stamping for outgoing packets; + * the sender of the packet decides which are to be + * time stamped by setting %SOF_TIMESTAMPING_TX_SOFTWARE + * before sending the packet. + */ + HWTSTAMP_TX_ON, + + /* + * Enables time stamping for outgoing packets just as + * HWTSTAMP_TX_ON does, but also enables time stamp insertion + * directly into Sync packets. In this case, transmitted Sync + * packets will not received a time stamp via the socket error + * queue. + */ + HWTSTAMP_TX_ONESTEP_SYNC, +}; + +/* possible values for hwtstamp_config->rx_filter */ +enum hwtstamp_rx_filters { + /* time stamp no incoming packet at all */ + HWTSTAMP_FILTER_NONE, + + /* time stamp any incoming packet */ + HWTSTAMP_FILTER_ALL, + + /* return value: time stamp all packets requested plus some others */ + HWTSTAMP_FILTER_SOME, + + /* PTP v1, UDP, any kind of event packet */ + HWTSTAMP_FILTER_PTP_V1_L4_EVENT, + /* PTP v1, UDP, Sync packet */ + HWTSTAMP_FILTER_PTP_V1_L4_SYNC, + /* PTP v1, UDP, Delay_req packet */ + HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ, + /* PTP v2, UDP, any kind of event packet */ + HWTSTAMP_FILTER_PTP_V2_L4_EVENT, + /* PTP v2, UDP, Sync packet */ + HWTSTAMP_FILTER_PTP_V2_L4_SYNC, + /* PTP v2, UDP, Delay_req packet */ + HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ, + + /* 802.AS1, Ethernet, any kind of event packet */ + HWTSTAMP_FILTER_PTP_V2_L2_EVENT, + /* 802.AS1, Ethernet, Sync packet */ + HWTSTAMP_FILTER_PTP_V2_L2_SYNC, + /* 802.AS1, Ethernet, Delay_req packet */ + HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ, + + /* PTP v2/802.AS1, any layer, any kind of event packet */ + HWTSTAMP_FILTER_PTP_V2_EVENT, + /* PTP v2/802.AS1, any layer, Sync packet */ + HWTSTAMP_FILTER_PTP_V2_SYNC, + /* PTP v2/802.AS1, any layer, Delay_req packet */ + HWTSTAMP_FILTER_PTP_V2_DELAY_REQ, +}; + +#endif /* _NET_TIMESTAMPING_H */ diff --git a/kernel_headers/linux/netconf.h b/kernel_headers/linux/netconf.h new file mode 100644 index 0000000..52c4424 --- /dev/null +++ b/kernel_headers/linux/netconf.h @@ -0,0 +1,24 @@ +#ifndef _LINUX_NETCONF_H_ +#define _LINUX_NETCONF_H_ + +#include +#include + +struct netconfmsg { + __u8 ncm_family; +}; + +enum { + NETCONFA_UNSPEC, + NETCONFA_IFINDEX, + NETCONFA_FORWARDING, + NETCONFA_RP_FILTER, + NETCONFA_MC_FORWARDING, + __NETCONFA_MAX +}; +#define NETCONFA_MAX (__NETCONFA_MAX - 1) + +#define NETCONFA_IFINDEX_ALL -1 +#define NETCONFA_IFINDEX_DEFAULT -2 + +#endif /* _LINUX_NETCONF_H_ */ diff --git a/kernel_headers/linux/netdevice.h b/kernel_headers/linux/netdevice.h new file mode 100644 index 0000000..adc7260 --- /dev/null +++ b/kernel_headers/linux/netdevice.h @@ -0,0 +1,53 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions for the Interfaces handler. + * + * Version: @(#)dev.h 1.0.10 08/12/93 + * + * Authors: Ross Biro + * Fred N. van Kempen, + * Corey Minyard + * Donald J. Becker, + * Alan Cox, + * Bjorn Ekwall. + * Pekka Riikonen + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * Moved to /usr/include/linux for NET3 + */ +#ifndef _LINUX_NETDEVICE_H +#define _LINUX_NETDEVICE_H + +#include +#include +#include +#include + + +#define MAX_ADDR_LEN 32 /* Largest hardware address length */ + +/* Initial net device group. All devices belong to group 0 by default. */ +#define INIT_NETDEV_GROUP 0 + + + +/* Media selection options. */ +enum { + IF_PORT_UNKNOWN = 0, + IF_PORT_10BASE2, + IF_PORT_10BASET, + IF_PORT_AUI, + IF_PORT_100BASET, + IF_PORT_100BASETX, + IF_PORT_100BASEFX +}; + + +#endif /* _LINUX_NETDEVICE_H */ diff --git a/kernel_headers/linux/netfilter.h b/kernel_headers/linux/netfilter.h new file mode 100644 index 0000000..f05c3d9 --- /dev/null +++ b/kernel_headers/linux/netfilter.h @@ -0,0 +1,70 @@ +#ifndef __LINUX_NETFILTER_H +#define __LINUX_NETFILTER_H + +#include + +#include + + +/* Responses from hook functions. */ +#define NF_DROP 0 +#define NF_ACCEPT 1 +#define NF_STOLEN 2 +#define NF_QUEUE 3 +#define NF_REPEAT 4 +#define NF_STOP 5 +#define NF_MAX_VERDICT NF_STOP + +/* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function + * arguments. */ +#define NF_VERDICT_MASK 0x000000ff + +/* extra verdict flags have mask 0x0000ff00 */ +#define NF_VERDICT_FLAG_QUEUE_BYPASS 0x00008000 + +/* queue number (NF_QUEUE) or errno (NF_DROP) */ +#define NF_VERDICT_QMASK 0xffff0000 +#define NF_VERDICT_QBITS 16 + +#define NF_QUEUE_NR(x) ((((x) << 16) & NF_VERDICT_QMASK) | NF_QUEUE) + +#define NF_DROP_ERR(x) (((-x) << 16) | NF_DROP) + +/* only for userspace compatibility */ +/* Generic cache responses from hook functions. + <= 0x2000 is used for protocol-flags. */ +#define NFC_UNKNOWN 0x4000 +#define NFC_ALTERED 0x8000 + +/* NF_VERDICT_BITS should be 8 now, but userspace might break if this changes */ +#define NF_VERDICT_BITS 16 + +enum nf_inet_hooks { + NF_INET_PRE_ROUTING, + NF_INET_LOCAL_IN, + NF_INET_FORWARD, + NF_INET_LOCAL_OUT, + NF_INET_POST_ROUTING, + NF_INET_NUMHOOKS +}; + +enum { + NFPROTO_UNSPEC = 0, + NFPROTO_IPV4 = 2, + NFPROTO_ARP = 3, + NFPROTO_BRIDGE = 7, + NFPROTO_IPV6 = 10, + NFPROTO_DECNET = 12, + NFPROTO_NUMPROTO, +}; + +union nf_inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; +}; + +#endif /* __LINUX_NETFILTER_H */ diff --git a/kernel_headers/linux/netfilter/..install.cmd b/kernel_headers/linux/netfilter/..install.cmd new file mode 100644 index 0000000..e61c4cb --- /dev/null +++ b/kernel_headers/linux/netfilter/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/netfilter nf_conntrack_common.h nf_conntrack_ftp.h nf_conntrack_sctp.h nf_conntrack_tcp.h nf_conntrack_tuple_common.h nf_nat.h nfnetlink.h nfnetlink_acct.h nfnetlink_compat.h nfnetlink_conntrack.h nfnetlink_cthelper.h nfnetlink_cttimeout.h nfnetlink_log.h nfnetlink_queue.h x_tables.h xt_AUDIT.h xt_CHECKSUM.h xt_CLASSIFY.h xt_CONNMARK.h xt_CONNSECMARK.h xt_CT.h xt_DSCP.h xt_IDLETIMER.h xt_LED.h xt_LOG.h xt_MARK.h xt_NFLOG.h xt_NFQUEUE.h xt_RATEEST.h xt_SECMARK.h xt_TCPMSS.h xt_TCPOPTSTRIP.h xt_TEE.h xt_TPROXY.h xt_addrtype.h xt_bpf.h xt_cluster.h xt_comment.h xt_connbytes.h xt_connlabel.h xt_connlimit.h xt_connmark.h xt_conntrack.h xt_cpu.h xt_dccp.h xt_devgroup.h xt_dscp.h xt_ecn.h xt_esp.h xt_hashlimit.h xt_helper.h xt_iprange.h xt_ipvs.h xt_length.h xt_limit.h xt_mac.h xt_mark.h xt_multiport.h xt_nfacct.h xt_osf.h xt_owner.h xt_physdev.h xt_pkttype.h xt_policy.h xt_quota.h xt_rateest.h xt_realm.h xt_recent.h xt_sctp.h xt_set.h xt_socket.h xt_state.h xt_statistic.h xt_string.h xt_tcpmss.h xt_tcpudp.h xt_time.h xt_u32.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter /android/kernels/moto/surnia/kernel-msm/include/linux/netfilter ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/netfilter ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/.install diff --git a/kernel_headers/linux/netfilter/.install b/kernel_headers/linux/netfilter/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/netfilter/ipset/..install.cmd b/kernel_headers/linux/netfilter/ipset/..install.cmd new file mode 100644 index 0000000..10f1694 --- /dev/null +++ b/kernel_headers/linux/netfilter/ipset/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/ipset/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/ipset /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/netfilter/ipset ip_set.h ip_set_bitmap.h ip_set_hash.h ip_set_list.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/ipset /android/kernels/moto/surnia/kernel-msm/include/linux/netfilter/ipset ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/ipset /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/netfilter/ipset ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/ipset/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter/ipset/.install diff --git a/kernel_headers/linux/netfilter/ipset/.install b/kernel_headers/linux/netfilter/ipset/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/netfilter/ipset/ip_set.h b/kernel_headers/linux/netfilter/ipset/ip_set.h new file mode 100644 index 0000000..412c645 --- /dev/null +++ b/kernel_headers/linux/netfilter/ipset/ip_set.h @@ -0,0 +1,259 @@ +/* Copyright (C) 2000-2002 Joakim Axelsson + * Patrick Schaaf + * Martin Josefsson + * Copyright (C) 2003-2011 Jozsef Kadlecsik + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef _IP_SET_H +#define _IP_SET_H + + +#include + +/* The protocol version */ +#define IPSET_PROTOCOL 6 + +/* The max length of strings including NUL: set and type identifiers */ +#define IPSET_MAXNAMELEN 32 + +/* Message types and commands */ +enum ipset_cmd { + IPSET_CMD_NONE, + IPSET_CMD_PROTOCOL, /* 1: Return protocol version */ + IPSET_CMD_CREATE, /* 2: Create a new (empty) set */ + IPSET_CMD_DESTROY, /* 3: Destroy a (empty) set */ + IPSET_CMD_FLUSH, /* 4: Remove all elements from a set */ + IPSET_CMD_RENAME, /* 5: Rename a set */ + IPSET_CMD_SWAP, /* 6: Swap two sets */ + IPSET_CMD_LIST, /* 7: List sets */ + IPSET_CMD_SAVE, /* 8: Save sets */ + IPSET_CMD_ADD, /* 9: Add an element to a set */ + IPSET_CMD_DEL, /* 10: Delete an element from a set */ + IPSET_CMD_TEST, /* 11: Test an element in a set */ + IPSET_CMD_HEADER, /* 12: Get set header data only */ + IPSET_CMD_TYPE, /* 13: Get set type */ + IPSET_MSG_MAX, /* Netlink message commands */ + + /* Commands in userspace: */ + IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 14: Enter restore mode */ + IPSET_CMD_HELP, /* 15: Get help */ + IPSET_CMD_VERSION, /* 16: Get program version */ + IPSET_CMD_QUIT, /* 17: Quit from interactive mode */ + + IPSET_CMD_MAX, + + IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 18: Commit buffered commands */ +}; + +/* Attributes at command level */ +enum { + IPSET_ATTR_UNSPEC, + IPSET_ATTR_PROTOCOL, /* 1: Protocol version */ + IPSET_ATTR_SETNAME, /* 2: Name of the set */ + IPSET_ATTR_TYPENAME, /* 3: Typename */ + IPSET_ATTR_SETNAME2 = IPSET_ATTR_TYPENAME, /* Setname at rename/swap */ + IPSET_ATTR_REVISION, /* 4: Settype revision */ + IPSET_ATTR_FAMILY, /* 5: Settype family */ + IPSET_ATTR_FLAGS, /* 6: Flags at command level */ + IPSET_ATTR_DATA, /* 7: Nested attributes */ + IPSET_ATTR_ADT, /* 8: Multiple data containers */ + IPSET_ATTR_LINENO, /* 9: Restore lineno */ + IPSET_ATTR_PROTOCOL_MIN, /* 10: Minimal supported version number */ + IPSET_ATTR_REVISION_MIN = IPSET_ATTR_PROTOCOL_MIN, /* type rev min */ + __IPSET_ATTR_CMD_MAX, +}; +#define IPSET_ATTR_CMD_MAX (__IPSET_ATTR_CMD_MAX - 1) + +/* CADT specific attributes */ +enum { + IPSET_ATTR_IP = IPSET_ATTR_UNSPEC + 1, + IPSET_ATTR_IP_FROM = IPSET_ATTR_IP, + IPSET_ATTR_IP_TO, /* 2 */ + IPSET_ATTR_CIDR, /* 3 */ + IPSET_ATTR_PORT, /* 4 */ + IPSET_ATTR_PORT_FROM = IPSET_ATTR_PORT, + IPSET_ATTR_PORT_TO, /* 5 */ + IPSET_ATTR_TIMEOUT, /* 6 */ + IPSET_ATTR_PROTO, /* 7 */ + IPSET_ATTR_CADT_FLAGS, /* 8 */ + IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */ + /* Reserve empty slots */ + IPSET_ATTR_CADT_MAX = 16, + /* Create-only specific attributes */ + IPSET_ATTR_GC, + IPSET_ATTR_HASHSIZE, + IPSET_ATTR_MAXELEM, + IPSET_ATTR_NETMASK, + IPSET_ATTR_PROBES, + IPSET_ATTR_RESIZE, + IPSET_ATTR_SIZE, + /* Kernel-only */ + IPSET_ATTR_ELEMENTS, + IPSET_ATTR_REFERENCES, + IPSET_ATTR_MEMSIZE, + + __IPSET_ATTR_CREATE_MAX, +}; +#define IPSET_ATTR_CREATE_MAX (__IPSET_ATTR_CREATE_MAX - 1) + +/* ADT specific attributes */ +enum { + IPSET_ATTR_ETHER = IPSET_ATTR_CADT_MAX + 1, + IPSET_ATTR_NAME, + IPSET_ATTR_NAMEREF, + IPSET_ATTR_IP2, + IPSET_ATTR_CIDR2, + IPSET_ATTR_IP2_TO, + IPSET_ATTR_IFACE, + IPSET_ATTR_BYTES, + IPSET_ATTR_PACKETS, + __IPSET_ATTR_ADT_MAX, +}; +#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1) + +/* IP specific attributes */ +enum { + IPSET_ATTR_IPADDR_IPV4 = IPSET_ATTR_UNSPEC + 1, + IPSET_ATTR_IPADDR_IPV6, + __IPSET_ATTR_IPADDR_MAX, +}; +#define IPSET_ATTR_IPADDR_MAX (__IPSET_ATTR_IPADDR_MAX - 1) + +/* Error codes */ +enum ipset_errno { + IPSET_ERR_PRIVATE = 4096, + IPSET_ERR_PROTOCOL, + IPSET_ERR_FIND_TYPE, + IPSET_ERR_MAX_SETS, + IPSET_ERR_BUSY, + IPSET_ERR_EXIST_SETNAME2, + IPSET_ERR_TYPE_MISMATCH, + IPSET_ERR_EXIST, + IPSET_ERR_INVALID_CIDR, + IPSET_ERR_INVALID_NETMASK, + IPSET_ERR_INVALID_FAMILY, + IPSET_ERR_TIMEOUT, + IPSET_ERR_REFERENCED, + IPSET_ERR_IPADDR_IPV4, + IPSET_ERR_IPADDR_IPV6, + IPSET_ERR_COUNTER, + + /* Type specific error codes */ + IPSET_ERR_TYPE_SPECIFIC = 4352, +}; + +/* Flags at command level or match/target flags, lower half of cmdattrs*/ +enum ipset_cmd_flags { + IPSET_FLAG_BIT_EXIST = 0, + IPSET_FLAG_EXIST = (1 << IPSET_FLAG_BIT_EXIST), + IPSET_FLAG_BIT_LIST_SETNAME = 1, + IPSET_FLAG_LIST_SETNAME = (1 << IPSET_FLAG_BIT_LIST_SETNAME), + IPSET_FLAG_BIT_LIST_HEADER = 2, + IPSET_FLAG_LIST_HEADER = (1 << IPSET_FLAG_BIT_LIST_HEADER), + IPSET_FLAG_BIT_SKIP_COUNTER_UPDATE = 3, + IPSET_FLAG_SKIP_COUNTER_UPDATE = + (1 << IPSET_FLAG_BIT_SKIP_COUNTER_UPDATE), + IPSET_FLAG_BIT_SKIP_SUBCOUNTER_UPDATE = 4, + IPSET_FLAG_SKIP_SUBCOUNTER_UPDATE = + (1 << IPSET_FLAG_BIT_SKIP_SUBCOUNTER_UPDATE), + IPSET_FLAG_BIT_MATCH_COUNTERS = 5, + IPSET_FLAG_MATCH_COUNTERS = (1 << IPSET_FLAG_BIT_MATCH_COUNTERS), + IPSET_FLAG_BIT_RETURN_NOMATCH = 7, + IPSET_FLAG_RETURN_NOMATCH = (1 << IPSET_FLAG_BIT_RETURN_NOMATCH), + IPSET_FLAG_CMD_MAX = 15, +}; + +/* Flags at CADT attribute level, upper half of cmdattrs */ +enum ipset_cadt_flags { + IPSET_FLAG_BIT_BEFORE = 0, + IPSET_FLAG_BEFORE = (1 << IPSET_FLAG_BIT_BEFORE), + IPSET_FLAG_BIT_PHYSDEV = 1, + IPSET_FLAG_PHYSDEV = (1 << IPSET_FLAG_BIT_PHYSDEV), + IPSET_FLAG_BIT_NOMATCH = 2, + IPSET_FLAG_NOMATCH = (1 << IPSET_FLAG_BIT_NOMATCH), + IPSET_FLAG_BIT_WITH_COUNTERS = 3, + IPSET_FLAG_WITH_COUNTERS = (1 << IPSET_FLAG_BIT_WITH_COUNTERS), + IPSET_FLAG_CADT_MAX = 15, +}; + +/* Commands with settype-specific attributes */ +enum ipset_adt { + IPSET_ADD, + IPSET_DEL, + IPSET_TEST, + IPSET_ADT_MAX, + IPSET_CREATE = IPSET_ADT_MAX, + IPSET_CADT_MAX, +}; + +/* Sets are identified by an index in kernel space. Tweak with ip_set_id_t + * and IPSET_INVALID_ID if you want to increase the max number of sets. + */ +typedef __u16 ip_set_id_t; + +#define IPSET_INVALID_ID 65535 + +enum ip_set_dim { + IPSET_DIM_ZERO = 0, + IPSET_DIM_ONE, + IPSET_DIM_TWO, + IPSET_DIM_THREE, + /* Max dimension in elements. + * If changed, new revision of iptables match/target is required. + */ + IPSET_DIM_MAX = 6, + /* Backward compatibility: set match revision 2 */ + IPSET_BIT_RETURN_NOMATCH = 7, +}; + +/* Option flags for kernel operations */ +enum ip_set_kopt { + IPSET_INV_MATCH = (1 << IPSET_DIM_ZERO), + IPSET_DIM_ONE_SRC = (1 << IPSET_DIM_ONE), + IPSET_DIM_TWO_SRC = (1 << IPSET_DIM_TWO), + IPSET_DIM_THREE_SRC = (1 << IPSET_DIM_THREE), + IPSET_RETURN_NOMATCH = (1 << IPSET_BIT_RETURN_NOMATCH), +}; + +enum { + IPSET_COUNTER_NONE = 0, + IPSET_COUNTER_EQ, + IPSET_COUNTER_NE, + IPSET_COUNTER_LT, + IPSET_COUNTER_GT, +}; + +struct ip_set_counter_match { + __u8 op; + __u64 value; +}; + +/* Interface to iptables/ip6tables */ + +#define SO_IP_SET 83 + +union ip_set_name_index { + char name[IPSET_MAXNAMELEN]; + ip_set_id_t index; +}; + +#define IP_SET_OP_GET_BYNAME 0x00000006 /* Get set index by name */ +struct ip_set_req_get_set { + unsigned int op; + unsigned int version; + union ip_set_name_index set; +}; + +#define IP_SET_OP_GET_BYINDEX 0x00000007 /* Get set name by index */ +/* Uses ip_set_req_get_set */ + +#define IP_SET_OP_VERSION 0x00000100 /* Ask kernel version */ +struct ip_set_req_version { + unsigned int op; + unsigned int version; +}; + +#endif /* _IP_SET_H */ diff --git a/kernel_headers/linux/netfilter/ipset/ip_set_bitmap.h b/kernel_headers/linux/netfilter/ipset/ip_set_bitmap.h new file mode 100644 index 0000000..061a28e --- /dev/null +++ b/kernel_headers/linux/netfilter/ipset/ip_set_bitmap.h @@ -0,0 +1,13 @@ +#ifndef __IP_SET_BITMAP_H +#define __IP_SET_BITMAP_H + +/* Bitmap type specific error codes */ +enum { + /* The element is out of the range of the set */ + IPSET_ERR_BITMAP_RANGE = IPSET_ERR_TYPE_SPECIFIC, + /* The range exceeds the size limit of the set type */ + IPSET_ERR_BITMAP_RANGE_SIZE, +}; + + +#endif /* __IP_SET_BITMAP_H */ diff --git a/kernel_headers/linux/netfilter/ipset/ip_set_hash.h b/kernel_headers/linux/netfilter/ipset/ip_set_hash.h new file mode 100644 index 0000000..34ac6ce --- /dev/null +++ b/kernel_headers/linux/netfilter/ipset/ip_set_hash.h @@ -0,0 +1,21 @@ +#ifndef __IP_SET_HASH_H +#define __IP_SET_HASH_H + +/* Hash type specific error codes */ +enum { + /* Hash is full */ + IPSET_ERR_HASH_FULL = IPSET_ERR_TYPE_SPECIFIC, + /* Null-valued element */ + IPSET_ERR_HASH_ELEM, + /* Invalid protocol */ + IPSET_ERR_INVALID_PROTO, + /* Protocol missing but must be specified */ + IPSET_ERR_MISSING_PROTO, + /* Range not supported */ + IPSET_ERR_HASH_RANGE_UNSUPPORTED, + /* Invalid range */ + IPSET_ERR_HASH_RANGE, +}; + + +#endif /* __IP_SET_HASH_H */ diff --git a/kernel_headers/linux/netfilter/ipset/ip_set_list.h b/kernel_headers/linux/netfilter/ipset/ip_set_list.h new file mode 100644 index 0000000..75e6175 --- /dev/null +++ b/kernel_headers/linux/netfilter/ipset/ip_set_list.h @@ -0,0 +1,21 @@ +#ifndef __IP_SET_LIST_H +#define __IP_SET_LIST_H + +/* List type specific error codes */ +enum { + /* Set name to be added/deleted/tested does not exist. */ + IPSET_ERR_NAME = IPSET_ERR_TYPE_SPECIFIC, + /* list:set type is not permitted to add */ + IPSET_ERR_LOOP, + /* Missing reference set */ + IPSET_ERR_BEFORE, + /* Reference set does not exist */ + IPSET_ERR_NAMEREF, + /* Set is full */ + IPSET_ERR_LIST_FULL, + /* Reference set is not added to the set */ + IPSET_ERR_REF_EXIST, +}; + + +#endif /* __IP_SET_LIST_H */ diff --git a/kernel_headers/linux/netfilter/nf_conntrack_common.h b/kernel_headers/linux/netfilter/nf_conntrack_common.h new file mode 100644 index 0000000..7f038b5 --- /dev/null +++ b/kernel_headers/linux/netfilter/nf_conntrack_common.h @@ -0,0 +1,118 @@ +#ifndef _NF_CONNTRACK_COMMON_H +#define _NF_CONNTRACK_COMMON_H +/* Connection state tracking for netfilter. This is separated from, + but required by, the NAT layer; it can also be used by an iptables + extension. */ +enum ip_conntrack_info { + /* Part of an established connection (either direction). */ + IP_CT_ESTABLISHED, + + /* Like NEW, but related to an existing connection, or ICMP error + (in either direction). */ + IP_CT_RELATED, + + /* Started a new connection to track (only + IP_CT_DIR_ORIGINAL); may be a retransmission. */ + IP_CT_NEW, + + /* >= this indicates reply direction */ + IP_CT_IS_REPLY, + + IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY, + IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY, + IP_CT_NEW_REPLY = IP_CT_NEW + IP_CT_IS_REPLY, + /* Number of distinct IP_CT types (no NEW in reply dirn). */ + IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1 +}; + +/* Bitset representing status of connection. */ +enum ip_conntrack_status { + /* It's an expected connection: bit 0 set. This bit never changed */ + IPS_EXPECTED_BIT = 0, + IPS_EXPECTED = (1 << IPS_EXPECTED_BIT), + + /* We've seen packets both ways: bit 1 set. Can be set, not unset. */ + IPS_SEEN_REPLY_BIT = 1, + IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT), + + /* Conntrack should never be early-expired. */ + IPS_ASSURED_BIT = 2, + IPS_ASSURED = (1 << IPS_ASSURED_BIT), + + /* Connection is confirmed: originating packet has left box */ + IPS_CONFIRMED_BIT = 3, + IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT), + + /* Connection needs src nat in orig dir. This bit never changed. */ + IPS_SRC_NAT_BIT = 4, + IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT), + + /* Connection needs dst nat in orig dir. This bit never changed. */ + IPS_DST_NAT_BIT = 5, + IPS_DST_NAT = (1 << IPS_DST_NAT_BIT), + + /* Both together. */ + IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT), + + /* Connection needs TCP sequence adjusted. */ + IPS_SEQ_ADJUST_BIT = 6, + IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT), + + /* NAT initialization bits. */ + IPS_SRC_NAT_DONE_BIT = 7, + IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT), + + IPS_DST_NAT_DONE_BIT = 8, + IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT), + + /* Both together */ + IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE), + + /* Connection is dying (removed from lists), can not be unset. */ + IPS_DYING_BIT = 9, + IPS_DYING = (1 << IPS_DYING_BIT), + + /* Connection has fixed timeout. */ + IPS_FIXED_TIMEOUT_BIT = 10, + IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT), + + /* Conntrack is a template */ + IPS_TEMPLATE_BIT = 11, + IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT), + + /* Conntrack is a fake untracked entry */ + IPS_UNTRACKED_BIT = 12, + IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT), + + /* Conntrack got a helper explicitly attached via CT target. */ + IPS_HELPER_BIT = 13, + IPS_HELPER = (1 << IPS_HELPER_BIT), +}; + +/* Connection tracking event types */ +enum ip_conntrack_events { + IPCT_NEW, /* new conntrack */ + IPCT_RELATED, /* related conntrack */ + IPCT_DESTROY, /* destroyed conntrack */ + IPCT_REPLY, /* connection has seen two-way traffic */ + IPCT_ASSURED, /* connection status has changed to assured */ + IPCT_PROTOINFO, /* protocol information has changed */ + IPCT_HELPER, /* new helper has been set */ + IPCT_MARK, /* new mark has been set */ + IPCT_NATSEQADJ, /* NAT is doing sequence adjustment */ + IPCT_SECMARK, /* new security mark has been set */ + IPCT_LABEL, /* new connlabel has been set */ +}; + +enum ip_conntrack_expect_events { + IPEXP_NEW, /* new expectation */ + IPEXP_DESTROY, /* destroyed expectation */ +}; + +/* expectation flags */ +#define NF_CT_EXPECT_PERMANENT 0x1 +#define NF_CT_EXPECT_INACTIVE 0x2 +#define NF_CT_EXPECT_USERSPACE 0x4 + + +#endif /* _NF_CONNTRACK_COMMON_H */ diff --git a/kernel_headers/linux/netfilter/nf_conntrack_ftp.h b/kernel_headers/linux/netfilter/nf_conntrack_ftp.h new file mode 100644 index 0000000..a222fac --- /dev/null +++ b/kernel_headers/linux/netfilter/nf_conntrack_ftp.h @@ -0,0 +1,18 @@ +#ifndef _NF_CONNTRACK_FTP_H +#define _NF_CONNTRACK_FTP_H +/* FTP tracking. */ + +/* This enum is exposed to userspace */ +enum nf_ct_ftp_type { + /* PORT command from client */ + NF_CT_FTP_PORT, + /* PASV response from server */ + NF_CT_FTP_PASV, + /* EPRT command from client */ + NF_CT_FTP_EPRT, + /* EPSV response from server */ + NF_CT_FTP_EPSV, +}; + + +#endif /* _NF_CONNTRACK_FTP_H */ diff --git a/kernel_headers/linux/netfilter/nf_conntrack_sctp.h b/kernel_headers/linux/netfilter/nf_conntrack_sctp.h new file mode 100644 index 0000000..ceeefe6 --- /dev/null +++ b/kernel_headers/linux/netfilter/nf_conntrack_sctp.h @@ -0,0 +1,25 @@ +#ifndef _NF_CONNTRACK_SCTP_H +#define _NF_CONNTRACK_SCTP_H +/* SCTP tracking. */ + +#include + +enum sctp_conntrack { + SCTP_CONNTRACK_NONE, + SCTP_CONNTRACK_CLOSED, + SCTP_CONNTRACK_COOKIE_WAIT, + SCTP_CONNTRACK_COOKIE_ECHOED, + SCTP_CONNTRACK_ESTABLISHED, + SCTP_CONNTRACK_SHUTDOWN_SENT, + SCTP_CONNTRACK_SHUTDOWN_RECD, + SCTP_CONNTRACK_SHUTDOWN_ACK_SENT, + SCTP_CONNTRACK_MAX +}; + +struct ip_ct_sctp { + enum sctp_conntrack state; + + __be32 vtag[IP_CT_DIR_MAX]; +}; + +#endif /* _NF_CONNTRACK_SCTP_H */ diff --git a/kernel_headers/linux/netfilter/nf_conntrack_tcp.h b/kernel_headers/linux/netfilter/nf_conntrack_tcp.h new file mode 100644 index 0000000..08c2fb3 --- /dev/null +++ b/kernel_headers/linux/netfilter/nf_conntrack_tcp.h @@ -0,0 +1,51 @@ +#ifndef _NF_CONNTRACK_TCP_H +#define _NF_CONNTRACK_TCP_H +/* TCP tracking. */ + +#include + +/* This is exposed to userspace (ctnetlink) */ +enum tcp_conntrack { + TCP_CONNTRACK_NONE, + TCP_CONNTRACK_SYN_SENT, + TCP_CONNTRACK_SYN_RECV, + TCP_CONNTRACK_ESTABLISHED, + TCP_CONNTRACK_FIN_WAIT, + TCP_CONNTRACK_CLOSE_WAIT, + TCP_CONNTRACK_LAST_ACK, + TCP_CONNTRACK_TIME_WAIT, + TCP_CONNTRACK_CLOSE, + TCP_CONNTRACK_LISTEN, /* obsolete */ +#define TCP_CONNTRACK_SYN_SENT2 TCP_CONNTRACK_LISTEN + TCP_CONNTRACK_MAX, + TCP_CONNTRACK_IGNORE, + TCP_CONNTRACK_RETRANS, + TCP_CONNTRACK_UNACK, + TCP_CONNTRACK_TIMEOUT_MAX +}; + +/* Window scaling is advertised by the sender */ +#define IP_CT_TCP_FLAG_WINDOW_SCALE 0x01 + +/* SACK is permitted by the sender */ +#define IP_CT_TCP_FLAG_SACK_PERM 0x02 + +/* This sender sent FIN first */ +#define IP_CT_TCP_FLAG_CLOSE_INIT 0x04 + +/* Be liberal in window checking */ +#define IP_CT_TCP_FLAG_BE_LIBERAL 0x08 + +/* Has unacknowledged data */ +#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 + +/* The field td_maxack has been set */ +#define IP_CT_TCP_FLAG_MAXACK_SET 0x20 + +struct nf_ct_tcp_flags { + __u8 flags; + __u8 mask; +}; + + +#endif /* _NF_CONNTRACK_TCP_H */ diff --git a/kernel_headers/linux/netfilter/nf_conntrack_tuple_common.h b/kernel_headers/linux/netfilter/nf_conntrack_tuple_common.h new file mode 100644 index 0000000..2f6bbc5 --- /dev/null +++ b/kernel_headers/linux/netfilter/nf_conntrack_tuple_common.h @@ -0,0 +1,39 @@ +#ifndef _NF_CONNTRACK_TUPLE_COMMON_H +#define _NF_CONNTRACK_TUPLE_COMMON_H + +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL, + IP_CT_DIR_REPLY, + IP_CT_DIR_MAX +}; + +/* The protocol-specific manipulable parts of the tuple: always in + * network order + */ +union nf_conntrack_man_proto { + /* Add other protocols here. */ + __be16 all; + + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + __be16 id; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; /* GRE key is 32bit, PPtP only uses 16bit */ + } gre; +}; + +#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL) + +#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */ diff --git a/kernel_headers/linux/netfilter/nf_nat.h b/kernel_headers/linux/netfilter/nf_nat.h new file mode 100644 index 0000000..bf0cc37 --- /dev/null +++ b/kernel_headers/linux/netfilter/nf_nat.h @@ -0,0 +1,33 @@ +#ifndef _NETFILTER_NF_NAT_H +#define _NETFILTER_NF_NAT_H + +#include +#include + +#define NF_NAT_RANGE_MAP_IPS 1 +#define NF_NAT_RANGE_PROTO_SPECIFIED 2 +#define NF_NAT_RANGE_PROTO_RANDOM 4 +#define NF_NAT_RANGE_PERSISTENT 8 + +struct nf_nat_ipv4_range { + unsigned int flags; + __be32 min_ip; + __be32 max_ip; + union nf_conntrack_man_proto min; + union nf_conntrack_man_proto max; +}; + +struct nf_nat_ipv4_multi_range_compat { + unsigned int rangesize; + struct nf_nat_ipv4_range range[1]; +}; + +struct nf_nat_range { + unsigned int flags; + union nf_inet_addr min_addr; + union nf_inet_addr max_addr; + union nf_conntrack_man_proto min_proto; + union nf_conntrack_man_proto max_proto; +}; + +#endif /* _NETFILTER_NF_NAT_H */ diff --git a/kernel_headers/linux/netfilter/nfnetlink.h b/kernel_headers/linux/netfilter/nfnetlink.h new file mode 100644 index 0000000..9cd235b --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink.h @@ -0,0 +1,56 @@ +#ifndef _NFNETLINK_H +#define _NFNETLINK_H +#include +#include + +enum nfnetlink_groups { + NFNLGRP_NONE, +#define NFNLGRP_NONE NFNLGRP_NONE + NFNLGRP_CONNTRACK_NEW, +#define NFNLGRP_CONNTRACK_NEW NFNLGRP_CONNTRACK_NEW + NFNLGRP_CONNTRACK_UPDATE, +#define NFNLGRP_CONNTRACK_UPDATE NFNLGRP_CONNTRACK_UPDATE + NFNLGRP_CONNTRACK_DESTROY, +#define NFNLGRP_CONNTRACK_DESTROY NFNLGRP_CONNTRACK_DESTROY + NFNLGRP_CONNTRACK_EXP_NEW, +#define NFNLGRP_CONNTRACK_EXP_NEW NFNLGRP_CONNTRACK_EXP_NEW + NFNLGRP_CONNTRACK_EXP_UPDATE, +#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE + NFNLGRP_CONNTRACK_EXP_DESTROY, +#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY + __NFNLGRP_MAX, +}; +#define NFNLGRP_MAX (__NFNLGRP_MAX - 1) + +/* General form of address family dependent message. + */ +struct nfgenmsg { + __u8 nfgen_family; /* AF_xxx */ + __u8 version; /* nfnetlink version */ + __be16 res_id; /* resource id */ +}; + +#define NFNETLINK_V0 0 + +/* netfilter netlink message types are split in two pieces: + * 8 bit subsystem, 8bit operation. + */ + +#define NFNL_SUBSYS_ID(x) ((x & 0xff00) >> 8) +#define NFNL_MSG_TYPE(x) (x & 0x00ff) + +/* No enum here, otherwise __stringify() trick of MODULE_ALIAS_NFNL_SUBSYS() + * won't work anymore */ +#define NFNL_SUBSYS_NONE 0 +#define NFNL_SUBSYS_CTNETLINK 1 +#define NFNL_SUBSYS_CTNETLINK_EXP 2 +#define NFNL_SUBSYS_QUEUE 3 +#define NFNL_SUBSYS_ULOG 4 +#define NFNL_SUBSYS_OSF 5 +#define NFNL_SUBSYS_IPSET 6 +#define NFNL_SUBSYS_ACCT 7 +#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8 +#define NFNL_SUBSYS_CTHELPER 9 +#define NFNL_SUBSYS_COUNT 10 + +#endif /* _NFNETLINK_H */ diff --git a/kernel_headers/linux/netfilter/nfnetlink_acct.h b/kernel_headers/linux/netfilter/nfnetlink_acct.h new file mode 100644 index 0000000..e09d8be --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_acct.h @@ -0,0 +1,27 @@ +#ifndef _NFNL_ACCT_H_ +#define _NFNL_ACCT_H_ + +#ifndef NFACCT_NAME_MAX +#define NFACCT_NAME_MAX 32 +#endif + +enum nfnl_acct_msg_types { + NFNL_MSG_ACCT_NEW, + NFNL_MSG_ACCT_GET, + NFNL_MSG_ACCT_GET_CTRZERO, + NFNL_MSG_ACCT_DEL, + NFNL_MSG_ACCT_MAX +}; + +enum nfnl_acct_type { + NFACCT_UNSPEC, + NFACCT_NAME, + NFACCT_PKTS, + NFACCT_BYTES, + NFACCT_USE, + __NFACCT_MAX +}; +#define NFACCT_MAX (__NFACCT_MAX - 1) + + +#endif /* _NFNL_ACCT_H_ */ diff --git a/kernel_headers/linux/netfilter/nfnetlink_compat.h b/kernel_headers/linux/netfilter/nfnetlink_compat.h new file mode 100644 index 0000000..74b9e55 --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_compat.h @@ -0,0 +1,61 @@ +#ifndef _NFNETLINK_COMPAT_H +#define _NFNETLINK_COMPAT_H + +#include + +/* Old nfnetlink macros for userspace */ + +/* nfnetlink groups: Up to 32 maximum */ +#define NF_NETLINK_CONNTRACK_NEW 0x00000001 +#define NF_NETLINK_CONNTRACK_UPDATE 0x00000002 +#define NF_NETLINK_CONNTRACK_DESTROY 0x00000004 +#define NF_NETLINK_CONNTRACK_EXP_NEW 0x00000008 +#define NF_NETLINK_CONNTRACK_EXP_UPDATE 0x00000010 +#define NF_NETLINK_CONNTRACK_EXP_DESTROY 0x00000020 + +/* Generic structure for encapsulation optional netfilter information. + * It is reminiscent of sockaddr, but with sa_family replaced + * with attribute type. + * ! This should someday be put somewhere generic as now rtnetlink and + * ! nfnetlink use the same attributes methods. - J. Schulist. + */ + +struct nfattr { + __u16 nfa_len; + __u16 nfa_type; /* we use 15 bits for the type, and the highest + * bit to indicate whether the payload is nested */ +}; + +/* FIXME: Apart from NFNL_NFA_NESTED shamelessly copy and pasted from + * rtnetlink.h, it's time to put this in a generic file */ + +#define NFNL_NFA_NEST 0x8000 +#define NFA_TYPE(attr) ((attr)->nfa_type & 0x7fff) + +#define NFA_ALIGNTO 4 +#define NFA_ALIGN(len) (((len) + NFA_ALIGNTO - 1) & ~(NFA_ALIGNTO - 1)) +#define NFA_OK(nfa,len) ((len) > 0 && (nfa)->nfa_len >= sizeof(struct nfattr) \ + && (nfa)->nfa_len <= (len)) +#define NFA_NEXT(nfa,attrlen) ((attrlen) -= NFA_ALIGN((nfa)->nfa_len), \ + (struct nfattr *)(((char *)(nfa)) + NFA_ALIGN((nfa)->nfa_len))) +#define NFA_LENGTH(len) (NFA_ALIGN(sizeof(struct nfattr)) + (len)) +#define NFA_SPACE(len) NFA_ALIGN(NFA_LENGTH(len)) +#define NFA_DATA(nfa) ((void *)(((char *)(nfa)) + NFA_LENGTH(0))) +#define NFA_PAYLOAD(nfa) ((int)((nfa)->nfa_len) - NFA_LENGTH(0)) +#define NFA_NEST(skb, type) \ +({ struct nfattr *__start = (struct nfattr *)skb_tail_pointer(skb); \ + NFA_PUT(skb, (NFNL_NFA_NEST | type), 0, NULL); \ + __start; }) +#define NFA_NEST_END(skb, start) \ +({ (start)->nfa_len = skb_tail_pointer(skb) - (unsigned char *)(start); \ + (skb)->len; }) +#define NFA_NEST_CANCEL(skb, start) \ +({ if (start) \ + skb_trim(skb, (unsigned char *) (start) - (skb)->data); \ + -1; }) + +#define NFM_NFA(n) ((struct nfattr *)(((char *)(n)) \ + + NLMSG_ALIGN(sizeof(struct nfgenmsg)))) +#define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg)) + +#endif /* _NFNETLINK_COMPAT_H */ diff --git a/kernel_headers/linux/netfilter/nfnetlink_conntrack.h b/kernel_headers/linux/netfilter/nfnetlink_conntrack.h new file mode 100644 index 0000000..08fabc6 --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_conntrack.h @@ -0,0 +1,252 @@ +#ifndef _IPCONNTRACK_NETLINK_H +#define _IPCONNTRACK_NETLINK_H +#include + +enum cntl_msg_types { + IPCTNL_MSG_CT_NEW, + IPCTNL_MSG_CT_GET, + IPCTNL_MSG_CT_DELETE, + IPCTNL_MSG_CT_GET_CTRZERO, + IPCTNL_MSG_CT_GET_STATS_CPU, + IPCTNL_MSG_CT_GET_STATS, + IPCTNL_MSG_CT_GET_DYING, + IPCTNL_MSG_CT_GET_UNCONFIRMED, + + IPCTNL_MSG_MAX +}; + +enum ctnl_exp_msg_types { + IPCTNL_MSG_EXP_NEW, + IPCTNL_MSG_EXP_GET, + IPCTNL_MSG_EXP_DELETE, + IPCTNL_MSG_EXP_GET_STATS_CPU, + + IPCTNL_MSG_EXP_MAX +}; + + +enum ctattr_type { + CTA_UNSPEC, + CTA_TUPLE_ORIG, + CTA_TUPLE_REPLY, + CTA_STATUS, + CTA_PROTOINFO, + CTA_HELP, + CTA_NAT_SRC, +#define CTA_NAT CTA_NAT_SRC /* backwards compatibility */ + CTA_TIMEOUT, + CTA_MARK, + CTA_COUNTERS_ORIG, + CTA_COUNTERS_REPLY, + CTA_USE, + CTA_ID, + CTA_NAT_DST, + CTA_TUPLE_MASTER, + CTA_NAT_SEQ_ADJ_ORIG, + CTA_NAT_SEQ_ADJ_REPLY, + CTA_SECMARK, /* obsolete */ + CTA_ZONE, + CTA_SECCTX, + CTA_TIMESTAMP, + CTA_MARK_MASK, + CTA_LABELS, + CTA_LABELS_MASK, + __CTA_MAX +}; +#define CTA_MAX (__CTA_MAX - 1) + +enum ctattr_tuple { + CTA_TUPLE_UNSPEC, + CTA_TUPLE_IP, + CTA_TUPLE_PROTO, + __CTA_TUPLE_MAX +}; +#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) + +enum ctattr_ip { + CTA_IP_UNSPEC, + CTA_IP_V4_SRC, + CTA_IP_V4_DST, + CTA_IP_V6_SRC, + CTA_IP_V6_DST, + __CTA_IP_MAX +}; +#define CTA_IP_MAX (__CTA_IP_MAX - 1) + +enum ctattr_l4proto { + CTA_PROTO_UNSPEC, + CTA_PROTO_NUM, + CTA_PROTO_SRC_PORT, + CTA_PROTO_DST_PORT, + CTA_PROTO_ICMP_ID, + CTA_PROTO_ICMP_TYPE, + CTA_PROTO_ICMP_CODE, + CTA_PROTO_ICMPV6_ID, + CTA_PROTO_ICMPV6_TYPE, + CTA_PROTO_ICMPV6_CODE, + __CTA_PROTO_MAX +}; +#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1) + +enum ctattr_protoinfo { + CTA_PROTOINFO_UNSPEC, + CTA_PROTOINFO_TCP, + CTA_PROTOINFO_DCCP, + CTA_PROTOINFO_SCTP, + __CTA_PROTOINFO_MAX +}; +#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1) + +enum ctattr_protoinfo_tcp { + CTA_PROTOINFO_TCP_UNSPEC, + CTA_PROTOINFO_TCP_STATE, + CTA_PROTOINFO_TCP_WSCALE_ORIGINAL, + CTA_PROTOINFO_TCP_WSCALE_REPLY, + CTA_PROTOINFO_TCP_FLAGS_ORIGINAL, + CTA_PROTOINFO_TCP_FLAGS_REPLY, + __CTA_PROTOINFO_TCP_MAX +}; +#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1) + +enum ctattr_protoinfo_dccp { + CTA_PROTOINFO_DCCP_UNSPEC, + CTA_PROTOINFO_DCCP_STATE, + CTA_PROTOINFO_DCCP_ROLE, + CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ, + __CTA_PROTOINFO_DCCP_MAX, +}; +#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1) + +enum ctattr_protoinfo_sctp { + CTA_PROTOINFO_SCTP_UNSPEC, + CTA_PROTOINFO_SCTP_STATE, + CTA_PROTOINFO_SCTP_VTAG_ORIGINAL, + CTA_PROTOINFO_SCTP_VTAG_REPLY, + __CTA_PROTOINFO_SCTP_MAX +}; +#define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1) + +enum ctattr_counters { + CTA_COUNTERS_UNSPEC, + CTA_COUNTERS_PACKETS, /* 64bit counters */ + CTA_COUNTERS_BYTES, /* 64bit counters */ + CTA_COUNTERS32_PACKETS, /* old 32bit counters, unused */ + CTA_COUNTERS32_BYTES, /* old 32bit counters, unused */ + __CTA_COUNTERS_MAX +}; +#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) + +enum ctattr_tstamp { + CTA_TIMESTAMP_UNSPEC, + CTA_TIMESTAMP_START, + CTA_TIMESTAMP_STOP, + __CTA_TIMESTAMP_MAX +}; +#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1) + +enum ctattr_nat { + CTA_NAT_UNSPEC, + CTA_NAT_V4_MINIP, +#define CTA_NAT_MINIP CTA_NAT_V4_MINIP + CTA_NAT_V4_MAXIP, +#define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP + CTA_NAT_PROTO, + CTA_NAT_V6_MINIP, + CTA_NAT_V6_MAXIP, + __CTA_NAT_MAX +}; +#define CTA_NAT_MAX (__CTA_NAT_MAX - 1) + +enum ctattr_protonat { + CTA_PROTONAT_UNSPEC, + CTA_PROTONAT_PORT_MIN, + CTA_PROTONAT_PORT_MAX, + __CTA_PROTONAT_MAX +}; +#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) + +enum ctattr_natseq { + CTA_NAT_SEQ_UNSPEC, + CTA_NAT_SEQ_CORRECTION_POS, + CTA_NAT_SEQ_OFFSET_BEFORE, + CTA_NAT_SEQ_OFFSET_AFTER, + __CTA_NAT_SEQ_MAX +}; +#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1) + +enum ctattr_expect { + CTA_EXPECT_UNSPEC, + CTA_EXPECT_MASTER, + CTA_EXPECT_TUPLE, + CTA_EXPECT_MASK, + CTA_EXPECT_TIMEOUT, + CTA_EXPECT_ID, + CTA_EXPECT_HELP_NAME, + CTA_EXPECT_ZONE, + CTA_EXPECT_FLAGS, + CTA_EXPECT_CLASS, + CTA_EXPECT_NAT, + CTA_EXPECT_FN, + __CTA_EXPECT_MAX +}; +#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1) + +enum ctattr_expect_nat { + CTA_EXPECT_NAT_UNSPEC, + CTA_EXPECT_NAT_DIR, + CTA_EXPECT_NAT_TUPLE, + __CTA_EXPECT_NAT_MAX +}; +#define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1) + +enum ctattr_help { + CTA_HELP_UNSPEC, + CTA_HELP_NAME, + CTA_HELP_INFO, + __CTA_HELP_MAX +}; +#define CTA_HELP_MAX (__CTA_HELP_MAX - 1) + +enum ctattr_secctx { + CTA_SECCTX_UNSPEC, + CTA_SECCTX_NAME, + __CTA_SECCTX_MAX +}; +#define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1) + +enum ctattr_stats_cpu { + CTA_STATS_UNSPEC, + CTA_STATS_SEARCHED, + CTA_STATS_FOUND, + CTA_STATS_NEW, + CTA_STATS_INVALID, + CTA_STATS_IGNORE, + CTA_STATS_DELETE, + CTA_STATS_DELETE_LIST, + CTA_STATS_INSERT, + CTA_STATS_INSERT_FAILED, + CTA_STATS_DROP, + CTA_STATS_EARLY_DROP, + CTA_STATS_ERROR, + CTA_STATS_SEARCH_RESTART, + __CTA_STATS_MAX, +}; +#define CTA_STATS_MAX (__CTA_STATS_MAX - 1) + +enum ctattr_stats_global { + CTA_STATS_GLOBAL_UNSPEC, + CTA_STATS_GLOBAL_ENTRIES, + __CTA_STATS_GLOBAL_MAX, +}; +#define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1) + +enum ctattr_expect_stats { + CTA_STATS_EXP_UNSPEC, + CTA_STATS_EXP_NEW, + CTA_STATS_EXP_CREATE, + CTA_STATS_EXP_DELETE, + __CTA_STATS_EXP_MAX, +}; +#define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1) + +#endif /* _IPCONNTRACK_NETLINK_H */ diff --git a/kernel_headers/linux/netfilter/nfnetlink_cthelper.h b/kernel_headers/linux/netfilter/nfnetlink_cthelper.h new file mode 100644 index 0000000..33659f6 --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_cthelper.h @@ -0,0 +1,55 @@ +#ifndef _NFNL_CTHELPER_H_ +#define _NFNL_CTHELPER_H_ + +#define NFCT_HELPER_STATUS_DISABLED 0 +#define NFCT_HELPER_STATUS_ENABLED 1 + +enum nfnl_acct_msg_types { + NFNL_MSG_CTHELPER_NEW, + NFNL_MSG_CTHELPER_GET, + NFNL_MSG_CTHELPER_DEL, + NFNL_MSG_CTHELPER_MAX +}; + +enum nfnl_cthelper_type { + NFCTH_UNSPEC, + NFCTH_NAME, + NFCTH_TUPLE, + NFCTH_QUEUE_NUM, + NFCTH_POLICY, + NFCTH_PRIV_DATA_LEN, + NFCTH_STATUS, + __NFCTH_MAX +}; +#define NFCTH_MAX (__NFCTH_MAX - 1) + +enum nfnl_cthelper_policy_type { + NFCTH_POLICY_SET_UNSPEC, + NFCTH_POLICY_SET_NUM, + NFCTH_POLICY_SET, + NFCTH_POLICY_SET1 = NFCTH_POLICY_SET, + NFCTH_POLICY_SET2, + NFCTH_POLICY_SET3, + NFCTH_POLICY_SET4, + __NFCTH_POLICY_SET_MAX +}; +#define NFCTH_POLICY_SET_MAX (__NFCTH_POLICY_SET_MAX - 1) + +enum nfnl_cthelper_pol_type { + NFCTH_POLICY_UNSPEC, + NFCTH_POLICY_NAME, + NFCTH_POLICY_EXPECT_MAX, + NFCTH_POLICY_EXPECT_TIMEOUT, + __NFCTH_POLICY_MAX +}; +#define NFCTH_POLICY_MAX (__NFCTH_POLICY_MAX - 1) + +enum nfnl_cthelper_tuple_type { + NFCTH_TUPLE_UNSPEC, + NFCTH_TUPLE_L3PROTONUM, + NFCTH_TUPLE_L4PROTONUM, + __NFCTH_TUPLE_MAX, +}; +#define NFCTH_TUPLE_MAX (__NFCTH_TUPLE_MAX - 1) + +#endif /* _NFNL_CTHELPER_H */ diff --git a/kernel_headers/linux/netfilter/nfnetlink_cttimeout.h b/kernel_headers/linux/netfilter/nfnetlink_cttimeout.h new file mode 100644 index 0000000..a2810a7 --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_cttimeout.h @@ -0,0 +1,114 @@ +#ifndef _CTTIMEOUT_NETLINK_H +#define _CTTIMEOUT_NETLINK_H +#include + +enum ctnl_timeout_msg_types { + IPCTNL_MSG_TIMEOUT_NEW, + IPCTNL_MSG_TIMEOUT_GET, + IPCTNL_MSG_TIMEOUT_DELETE, + + IPCTNL_MSG_TIMEOUT_MAX +}; + +enum ctattr_timeout { + CTA_TIMEOUT_UNSPEC, + CTA_TIMEOUT_NAME, + CTA_TIMEOUT_L3PROTO, + CTA_TIMEOUT_L4PROTO, + CTA_TIMEOUT_DATA, + CTA_TIMEOUT_USE, + __CTA_TIMEOUT_MAX +}; +#define CTA_TIMEOUT_MAX (__CTA_TIMEOUT_MAX - 1) + +enum ctattr_timeout_generic { + CTA_TIMEOUT_GENERIC_UNSPEC, + CTA_TIMEOUT_GENERIC_TIMEOUT, + __CTA_TIMEOUT_GENERIC_MAX +}; +#define CTA_TIMEOUT_GENERIC_MAX (__CTA_TIMEOUT_GENERIC_MAX - 1) + +enum ctattr_timeout_tcp { + CTA_TIMEOUT_TCP_UNSPEC, + CTA_TIMEOUT_TCP_SYN_SENT, + CTA_TIMEOUT_TCP_SYN_RECV, + CTA_TIMEOUT_TCP_ESTABLISHED, + CTA_TIMEOUT_TCP_FIN_WAIT, + CTA_TIMEOUT_TCP_CLOSE_WAIT, + CTA_TIMEOUT_TCP_LAST_ACK, + CTA_TIMEOUT_TCP_TIME_WAIT, + CTA_TIMEOUT_TCP_CLOSE, + CTA_TIMEOUT_TCP_SYN_SENT2, + CTA_TIMEOUT_TCP_RETRANS, + CTA_TIMEOUT_TCP_UNACK, + __CTA_TIMEOUT_TCP_MAX +}; +#define CTA_TIMEOUT_TCP_MAX (__CTA_TIMEOUT_TCP_MAX - 1) + +enum ctattr_timeout_udp { + CTA_TIMEOUT_UDP_UNSPEC, + CTA_TIMEOUT_UDP_UNREPLIED, + CTA_TIMEOUT_UDP_REPLIED, + __CTA_TIMEOUT_UDP_MAX +}; +#define CTA_TIMEOUT_UDP_MAX (__CTA_TIMEOUT_UDP_MAX - 1) + +enum ctattr_timeout_udplite { + CTA_TIMEOUT_UDPLITE_UNSPEC, + CTA_TIMEOUT_UDPLITE_UNREPLIED, + CTA_TIMEOUT_UDPLITE_REPLIED, + __CTA_TIMEOUT_UDPLITE_MAX +}; +#define CTA_TIMEOUT_UDPLITE_MAX (__CTA_TIMEOUT_UDPLITE_MAX - 1) + +enum ctattr_timeout_icmp { + CTA_TIMEOUT_ICMP_UNSPEC, + CTA_TIMEOUT_ICMP_TIMEOUT, + __CTA_TIMEOUT_ICMP_MAX +}; +#define CTA_TIMEOUT_ICMP_MAX (__CTA_TIMEOUT_ICMP_MAX - 1) + +enum ctattr_timeout_dccp { + CTA_TIMEOUT_DCCP_UNSPEC, + CTA_TIMEOUT_DCCP_REQUEST, + CTA_TIMEOUT_DCCP_RESPOND, + CTA_TIMEOUT_DCCP_PARTOPEN, + CTA_TIMEOUT_DCCP_OPEN, + CTA_TIMEOUT_DCCP_CLOSEREQ, + CTA_TIMEOUT_DCCP_CLOSING, + CTA_TIMEOUT_DCCP_TIMEWAIT, + __CTA_TIMEOUT_DCCP_MAX +}; +#define CTA_TIMEOUT_DCCP_MAX (__CTA_TIMEOUT_DCCP_MAX - 1) + +enum ctattr_timeout_sctp { + CTA_TIMEOUT_SCTP_UNSPEC, + CTA_TIMEOUT_SCTP_CLOSED, + CTA_TIMEOUT_SCTP_COOKIE_WAIT, + CTA_TIMEOUT_SCTP_COOKIE_ECHOED, + CTA_TIMEOUT_SCTP_ESTABLISHED, + CTA_TIMEOUT_SCTP_SHUTDOWN_SENT, + CTA_TIMEOUT_SCTP_SHUTDOWN_RECD, + CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, + __CTA_TIMEOUT_SCTP_MAX +}; +#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) + +enum ctattr_timeout_icmpv6 { + CTA_TIMEOUT_ICMPV6_UNSPEC, + CTA_TIMEOUT_ICMPV6_TIMEOUT, + __CTA_TIMEOUT_ICMPV6_MAX +}; +#define CTA_TIMEOUT_ICMPV6_MAX (__CTA_TIMEOUT_ICMPV6_MAX - 1) + +enum ctattr_timeout_gre { + CTA_TIMEOUT_GRE_UNSPEC, + CTA_TIMEOUT_GRE_UNREPLIED, + CTA_TIMEOUT_GRE_REPLIED, + __CTA_TIMEOUT_GRE_MAX +}; +#define CTA_TIMEOUT_GRE_MAX (__CTA_TIMEOUT_GRE_MAX - 1) + +#define CTNL_TIMEOUT_NAME_MAX 32 + +#endif diff --git a/kernel_headers/linux/netfilter/nfnetlink_log.h b/kernel_headers/linux/netfilter/nfnetlink_log.h new file mode 100644 index 0000000..90c2c95 --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_log.h @@ -0,0 +1,97 @@ +#ifndef _NFNETLINK_LOG_H +#define _NFNETLINK_LOG_H + +/* This file describes the netlink messages (i.e. 'protocol packets'), + * and not any kind of function definitions. It is shared between kernel and + * userspace. Don't put kernel specific stuff in here */ + +#include +#include + +enum nfulnl_msg_types { + NFULNL_MSG_PACKET, /* packet from kernel to userspace */ + NFULNL_MSG_CONFIG, /* connect to a particular queue */ + + NFULNL_MSG_MAX +}; + +struct nfulnl_msg_packet_hdr { + __be16 hw_protocol; /* hw protocol (network order) */ + __u8 hook; /* netfilter hook */ + __u8 _pad; +}; + +struct nfulnl_msg_packet_hw { + __be16 hw_addrlen; + __u16 _pad; + __u8 hw_addr[8]; +}; + +struct nfulnl_msg_packet_timestamp { + __aligned_be64 sec; + __aligned_be64 usec; +}; + +enum nfulnl_attr_type { + NFULA_UNSPEC, + NFULA_PACKET_HDR, + NFULA_MARK, /* __u32 nfmark */ + NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */ + NFULA_IFINDEX_INDEV, /* __u32 ifindex */ + NFULA_IFINDEX_OUTDEV, /* __u32 ifindex */ + NFULA_IFINDEX_PHYSINDEV, /* __u32 ifindex */ + NFULA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */ + NFULA_HWADDR, /* nfulnl_msg_packet_hw */ + NFULA_PAYLOAD, /* opaque data payload */ + NFULA_PREFIX, /* string prefix */ + NFULA_UID, /* user id of socket */ + NFULA_SEQ, /* instance-local sequence number */ + NFULA_SEQ_GLOBAL, /* global sequence number */ + NFULA_GID, /* group id of socket */ + NFULA_HWTYPE, /* hardware type */ + NFULA_HWHEADER, /* hardware header */ + NFULA_HWLEN, /* hardware header length */ + + __NFULA_MAX +}; +#define NFULA_MAX (__NFULA_MAX - 1) + +enum nfulnl_msg_config_cmds { + NFULNL_CFG_CMD_NONE, + NFULNL_CFG_CMD_BIND, + NFULNL_CFG_CMD_UNBIND, + NFULNL_CFG_CMD_PF_BIND, + NFULNL_CFG_CMD_PF_UNBIND, +}; + +struct nfulnl_msg_config_cmd { + __u8 command; /* nfulnl_msg_config_cmds */ +} __attribute__ ((packed)); + +struct nfulnl_msg_config_mode { + __be32 copy_range; + __u8 copy_mode; + __u8 _pad; +} __attribute__ ((packed)); + +enum nfulnl_attr_config { + NFULA_CFG_UNSPEC, + NFULA_CFG_CMD, /* nfulnl_msg_config_cmd */ + NFULA_CFG_MODE, /* nfulnl_msg_config_mode */ + NFULA_CFG_NLBUFSIZ, /* __u32 buffer size */ + NFULA_CFG_TIMEOUT, /* __u32 in 1/100 s */ + NFULA_CFG_QTHRESH, /* __u32 */ + NFULA_CFG_FLAGS, /* __u16 */ + __NFULA_CFG_MAX +}; +#define NFULA_CFG_MAX (__NFULA_CFG_MAX -1) + +#define NFULNL_COPY_NONE 0x00 +#define NFULNL_COPY_META 0x01 +#define NFULNL_COPY_PACKET 0x02 +/* 0xff is reserved, don't use it for new copy modes. */ + +#define NFULNL_CFG_F_SEQ 0x0001 +#define NFULNL_CFG_F_SEQ_GLOBAL 0x0002 + +#endif /* _NFNETLINK_LOG_H */ diff --git a/kernel_headers/linux/netfilter/nfnetlink_queue.h b/kernel_headers/linux/netfilter/nfnetlink_queue.h new file mode 100644 index 0000000..a2308ae --- /dev/null +++ b/kernel_headers/linux/netfilter/nfnetlink_queue.h @@ -0,0 +1,109 @@ +#ifndef _NFNETLINK_QUEUE_H +#define _NFNETLINK_QUEUE_H + +#include +#include + +enum nfqnl_msg_types { + NFQNL_MSG_PACKET, /* packet from kernel to userspace */ + NFQNL_MSG_VERDICT, /* verdict from userspace to kernel */ + NFQNL_MSG_CONFIG, /* connect to a particular queue */ + NFQNL_MSG_VERDICT_BATCH, /* batchv from userspace to kernel */ + + NFQNL_MSG_MAX +}; + +struct nfqnl_msg_packet_hdr { + __be32 packet_id; /* unique ID of packet in queue */ + __be16 hw_protocol; /* hw protocol (network order) */ + __u8 hook; /* netfilter hook */ +} __attribute__ ((packed)); + +struct nfqnl_msg_packet_hw { + __be16 hw_addrlen; + __u16 _pad; + __u8 hw_addr[8]; +}; + +struct nfqnl_msg_packet_timestamp { + __aligned_be64 sec; + __aligned_be64 usec; +}; + +enum nfqnl_attr_type { + NFQA_UNSPEC, + NFQA_PACKET_HDR, + NFQA_VERDICT_HDR, /* nfqnl_msg_verdict_hrd */ + NFQA_MARK, /* __u32 nfmark */ + NFQA_TIMESTAMP, /* nfqnl_msg_packet_timestamp */ + NFQA_IFINDEX_INDEV, /* __u32 ifindex */ + NFQA_IFINDEX_OUTDEV, /* __u32 ifindex */ + NFQA_IFINDEX_PHYSINDEV, /* __u32 ifindex */ + NFQA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */ + NFQA_HWADDR, /* nfqnl_msg_packet_hw */ + NFQA_PAYLOAD, /* opaque data payload */ + NFQA_CT, /* nf_conntrack_netlink.h */ + NFQA_CT_INFO, /* enum ip_conntrack_info */ + NFQA_CAP_LEN, /* __u32 length of captured packet */ + NFQA_SKB_INFO, /* __u32 skb meta information */ + + __NFQA_MAX +}; +#define NFQA_MAX (__NFQA_MAX - 1) + +struct nfqnl_msg_verdict_hdr { + __be32 verdict; + __be32 id; +}; + + +enum nfqnl_msg_config_cmds { + NFQNL_CFG_CMD_NONE, + NFQNL_CFG_CMD_BIND, + NFQNL_CFG_CMD_UNBIND, + NFQNL_CFG_CMD_PF_BIND, + NFQNL_CFG_CMD_PF_UNBIND, +}; + +struct nfqnl_msg_config_cmd { + __u8 command; /* nfqnl_msg_config_cmds */ + __u8 _pad; + __be16 pf; /* AF_xxx for PF_[UN]BIND */ +}; + +enum nfqnl_config_mode { + NFQNL_COPY_NONE, + NFQNL_COPY_META, + NFQNL_COPY_PACKET, +}; + +struct nfqnl_msg_config_params { + __be32 copy_range; + __u8 copy_mode; /* enum nfqnl_config_mode */ +} __attribute__ ((packed)); + + +enum nfqnl_attr_config { + NFQA_CFG_UNSPEC, + NFQA_CFG_CMD, /* nfqnl_msg_config_cmd */ + NFQA_CFG_PARAMS, /* nfqnl_msg_config_params */ + NFQA_CFG_QUEUE_MAXLEN, /* __u32 */ + NFQA_CFG_MASK, /* identify which flags to change */ + NFQA_CFG_FLAGS, /* value of these flags (__u32) */ + __NFQA_CFG_MAX +}; +#define NFQA_CFG_MAX (__NFQA_CFG_MAX-1) + +/* Flags for NFQA_CFG_FLAGS */ +#define NFQA_CFG_F_FAIL_OPEN (1 << 0) +#define NFQA_CFG_F_CONNTRACK (1 << 1) +#define NFQA_CFG_F_GSO (1 << 2) +#define NFQA_CFG_F_MAX (1 << 3) + +/* flags for NFQA_SKB_INFO */ +/* packet appears to have wrong checksums, but they are ok */ +#define NFQA_SKB_CSUMNOTREADY (1 << 0) +/* packet is GSO (i.e., exceeds device mtu) */ +#define NFQA_SKB_GSO (1 << 1) + +#endif /* _NFNETLINK_QUEUE_H */ diff --git a/kernel_headers/linux/netfilter/x_tables.h b/kernel_headers/linux/netfilter/x_tables.h new file mode 100644 index 0000000..4120970 --- /dev/null +++ b/kernel_headers/linux/netfilter/x_tables.h @@ -0,0 +1,185 @@ +#ifndef _X_TABLES_H +#define _X_TABLES_H +#include +#include + +#define XT_FUNCTION_MAXNAMELEN 30 +#define XT_EXTENSION_MAXNAMELEN 29 +#define XT_TABLE_MAXNAMELEN 32 + +struct xt_entry_match { + union { + struct { + __u16 match_size; + + /* Used by userspace */ + char name[XT_EXTENSION_MAXNAMELEN]; + __u8 revision; + } user; + struct { + __u16 match_size; + + /* Used inside the kernel */ + struct xt_match *match; + } kernel; + + /* Total length */ + __u16 match_size; + } u; + + unsigned char data[0]; +}; + +struct xt_entry_target { + union { + struct { + __u16 target_size; + + /* Used by userspace */ + char name[XT_EXTENSION_MAXNAMELEN]; + __u8 revision; + } user; + struct { + __u16 target_size; + + /* Used inside the kernel */ + struct xt_target *target; + } kernel; + + /* Total length */ + __u16 target_size; + } u; + + unsigned char data[0]; +}; + +#define XT_TARGET_INIT(__name, __size) \ +{ \ + .target.u.user = { \ + .target_size = XT_ALIGN(__size), \ + .name = __name, \ + }, \ +} + +struct xt_standard_target { + struct xt_entry_target target; + int verdict; +}; + +struct xt_error_target { + struct xt_entry_target target; + char errorname[XT_FUNCTION_MAXNAMELEN]; +}; + +/* The argument to IPT_SO_GET_REVISION_*. Returns highest revision + * kernel supports, if >= revision. */ +struct xt_get_revision { + char name[XT_EXTENSION_MAXNAMELEN]; + __u8 revision; +}; + +/* CONTINUE verdict for targets */ +#define XT_CONTINUE 0xFFFFFFFF + +/* For standard target */ +#define XT_RETURN (-NF_REPEAT - 1) + +/* this is a dummy structure to find out the alignment requirement for a struct + * containing all the fundamental data types that are used in ipt_entry, + * ip6t_entry and arpt_entry. This sucks, and it is a hack. It will be my + * personal pleasure to remove it -HW + */ +struct _xt_align { + __u8 u8; + __u16 u16; + __u32 u32; + __u64 u64; +}; + +#define XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _xt_align)) + +/* Standard return verdict, or do jump. */ +#define XT_STANDARD_TARGET "" +/* Error verdict. */ +#define XT_ERROR_TARGET "ERROR" + +#define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0) +#define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) + +struct xt_counters { + __u64 pcnt, bcnt; /* Packet and byte counters */ +}; + +/* The argument to IPT_SO_ADD_COUNTERS. */ +struct xt_counters_info { + /* Which table. */ + char name[XT_TABLE_MAXNAMELEN]; + + unsigned int num_counters; + + /* The counters (actually `number' of these). */ + struct xt_counters counters[0]; +}; + +#define XT_INV_PROTO 0x40 /* Invert the sense of PROTO. */ + +/* fn returns 0 to continue iteration */ +#define XT_MATCH_ITERATE(type, e, fn, args...) \ +({ \ + unsigned int __i; \ + int __ret = 0; \ + struct xt_entry_match *__m; \ + \ + for (__i = sizeof(type); \ + __i < (e)->target_offset; \ + __i += __m->u.match_size) { \ + __m = (void *)e + __i; \ + \ + __ret = fn(__m , ## args); \ + if (__ret != 0) \ + break; \ + } \ + __ret; \ +}) + +/* fn returns 0 to continue iteration */ +#define XT_ENTRY_ITERATE_CONTINUE(type, entries, size, n, fn, args...) \ +({ \ + unsigned int __i, __n; \ + int __ret = 0; \ + type *__entry; \ + \ + for (__i = 0, __n = 0; __i < (size); \ + __i += __entry->next_offset, __n++) { \ + __entry = (void *)(entries) + __i; \ + if (__n < n) \ + continue; \ + \ + __ret = fn(__entry , ## args); \ + if (__ret != 0) \ + break; \ + } \ + __ret; \ +}) + +/* fn returns 0 to continue iteration */ +#define XT_ENTRY_ITERATE(type, entries, size, fn, args...) \ + XT_ENTRY_ITERATE_CONTINUE(type, entries, size, 0, fn, args) + + +/* pos is normally a struct ipt_entry/ip6t_entry/etc. */ +#define xt_entry_foreach(pos, ehead, esize) \ + for ((pos) = (typeof(pos))(ehead); \ + (pos) < (typeof(pos))((char *)(ehead) + (esize)); \ + (pos) = (typeof(pos))((char *)(pos) + (pos)->next_offset)) + +/* can only be xt_entry_match, so no use of typeof here */ +#define xt_ematch_foreach(pos, entry) \ + for ((pos) = (struct xt_entry_match *)entry->elems; \ + (pos) < (struct xt_entry_match *)((char *)(entry) + \ + (entry)->target_offset); \ + (pos) = (struct xt_entry_match *)((char *)(pos) + \ + (pos)->u.match_size)) + + +#endif /* _X_TABLES_H */ diff --git a/kernel_headers/linux/netfilter/xt_AUDIT.h b/kernel_headers/linux/netfilter/xt_AUDIT.h new file mode 100644 index 0000000..38751d2 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_AUDIT.h @@ -0,0 +1,30 @@ +/* + * Header file for iptables xt_AUDIT target + * + * (C) 2010-2011 Thomas Graf + * (C) 2010-2011 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _XT_AUDIT_TARGET_H +#define _XT_AUDIT_TARGET_H + +#include + +enum { + XT_AUDIT_TYPE_ACCEPT = 0, + XT_AUDIT_TYPE_DROP, + XT_AUDIT_TYPE_REJECT, + __XT_AUDIT_TYPE_MAX, +}; + +#define XT_AUDIT_TYPE_MAX (__XT_AUDIT_TYPE_MAX - 1) + +struct xt_audit_info { + __u8 type; /* XT_AUDIT_TYPE_* */ +}; + +#endif /* _XT_AUDIT_TARGET_H */ diff --git a/kernel_headers/linux/netfilter/xt_CHECKSUM.h b/kernel_headers/linux/netfilter/xt_CHECKSUM.h new file mode 100644 index 0000000..9a2e466 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_CHECKSUM.h @@ -0,0 +1,20 @@ +/* Header file for iptables ipt_CHECKSUM target + * + * (C) 2002 by Harald Welte + * (C) 2010 Red Hat Inc + * Author: Michael S. Tsirkin + * + * This software is distributed under GNU GPL v2, 1991 +*/ +#ifndef _XT_CHECKSUM_TARGET_H +#define _XT_CHECKSUM_TARGET_H + +#include + +#define XT_CHECKSUM_OP_FILL 0x01 /* fill in checksum in IP header */ + +struct xt_CHECKSUM_info { + __u8 operation; /* bitset of operations */ +}; + +#endif /* _XT_CHECKSUM_TARGET_H */ diff --git a/kernel_headers/linux/netfilter/xt_CLASSIFY.h b/kernel_headers/linux/netfilter/xt_CLASSIFY.h new file mode 100644 index 0000000..a813bf1 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_CLASSIFY.h @@ -0,0 +1,10 @@ +#ifndef _XT_CLASSIFY_H +#define _XT_CLASSIFY_H + +#include + +struct xt_classify_target_info { + __u32 priority; +}; + +#endif /*_XT_CLASSIFY_H */ diff --git a/kernel_headers/linux/netfilter/xt_CONNMARK.h b/kernel_headers/linux/netfilter/xt_CONNMARK.h new file mode 100644 index 0000000..2f2e48e --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_CONNMARK.h @@ -0,0 +1,6 @@ +#ifndef _XT_CONNMARK_H_target +#define _XT_CONNMARK_H_target + +#include + +#endif /*_XT_CONNMARK_H_target*/ diff --git a/kernel_headers/linux/netfilter/xt_CONNSECMARK.h b/kernel_headers/linux/netfilter/xt_CONNSECMARK.h new file mode 100644 index 0000000..b973ff8 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_CONNSECMARK.h @@ -0,0 +1,15 @@ +#ifndef _XT_CONNSECMARK_H_target +#define _XT_CONNSECMARK_H_target + +#include + +enum { + CONNSECMARK_SAVE = 1, + CONNSECMARK_RESTORE, +}; + +struct xt_connsecmark_target_info { + __u8 mode; +}; + +#endif /*_XT_CONNSECMARK_H_target */ diff --git a/kernel_headers/linux/netfilter/xt_CT.h b/kernel_headers/linux/netfilter/xt_CT.h new file mode 100644 index 0000000..5a688c1 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_CT.h @@ -0,0 +1,35 @@ +#ifndef _XT_CT_H +#define _XT_CT_H + +#include + +enum { + XT_CT_NOTRACK = 1 << 0, + XT_CT_NOTRACK_ALIAS = 1 << 1, + XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS, +}; + +struct xt_ct_target_info { + __u16 flags; + __u16 zone; + __u32 ct_events; + __u32 exp_events; + char helper[16]; + + /* Used internally by the kernel */ + struct nf_conn *ct __attribute__((aligned(8))); +}; + +struct xt_ct_target_info_v1 { + __u16 flags; + __u16 zone; + __u32 ct_events; + __u32 exp_events; + char helper[16]; + char timeout[32]; + + /* Used internally by the kernel */ + struct nf_conn *ct __attribute__((aligned(8))); +}; + +#endif /* _XT_CT_H */ diff --git a/kernel_headers/linux/netfilter/xt_DSCP.h b/kernel_headers/linux/netfilter/xt_DSCP.h new file mode 100644 index 0000000..648e0b3 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_DSCP.h @@ -0,0 +1,26 @@ +/* x_tables module for setting the IPv4/IPv6 DSCP field + * + * (C) 2002 Harald Welte + * based on ipt_FTOS.c (C) 2000 by Matthew G. Marsh + * This software is distributed under GNU GPL v2, 1991 + * + * See RFC2474 for a description of the DSCP field within the IP Header. + * + * xt_DSCP.h,v 1.7 2002/03/14 12:03:13 laforge Exp +*/ +#ifndef _XT_DSCP_TARGET_H +#define _XT_DSCP_TARGET_H +#include +#include + +/* target info */ +struct xt_DSCP_info { + __u8 dscp; +}; + +struct xt_tos_target_info { + __u8 tos_value; + __u8 tos_mask; +}; + +#endif /* _XT_DSCP_TARGET_H */ diff --git a/kernel_headers/linux/netfilter/xt_IDLETIMER.h b/kernel_headers/linux/netfilter/xt_IDLETIMER.h new file mode 100644 index 0000000..faaa28b --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_IDLETIMER.h @@ -0,0 +1,53 @@ +/* + * linux/include/linux/netfilter/xt_IDLETIMER.h + * + * Header file for Xtables timer target module. + * + * Copyright (C) 2004, 2010 Nokia Corporation + * + * Written by Timo Teras + * + * Converted to x_tables and forward-ported to 2.6.34 + * by Luciano Coelho + * + * Contact: Luciano Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef _XT_IDLETIMER_H +#define _XT_IDLETIMER_H + +#include + +#define MAX_IDLETIMER_LABEL_SIZE 28 +#define NLMSG_MAX_SIZE 64 + +#define NL_EVENT_TYPE_INACTIVE 0 +#define NL_EVENT_TYPE_ACTIVE 1 + +struct idletimer_tg_info { + __u32 timeout; + + char label[MAX_IDLETIMER_LABEL_SIZE]; + + /* Use netlink messages for notification in addition to sysfs */ + __u8 send_nl_msg; + + /* for kernel module internal use only */ + struct idletimer_tg *timer __attribute__((aligned(8))); +}; + +#endif diff --git a/kernel_headers/linux/netfilter/xt_LED.h b/kernel_headers/linux/netfilter/xt_LED.h new file mode 100644 index 0000000..f5509e7 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_LED.h @@ -0,0 +1,15 @@ +#ifndef _XT_LED_H +#define _XT_LED_H + +#include + +struct xt_led_info { + char id[27]; /* Unique ID for this trigger in the LED class */ + __u8 always_blink; /* Blink even if the LED is already on */ + __u32 delay; /* Delay until LED is switched off after trigger */ + + /* Kernel data used in the module */ + void *internal_data __attribute__((aligned(8))); +}; + +#endif /* _XT_LED_H */ diff --git a/kernel_headers/linux/netfilter/xt_LOG.h b/kernel_headers/linux/netfilter/xt_LOG.h new file mode 100644 index 0000000..cac0790 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_LOG.h @@ -0,0 +1,19 @@ +#ifndef _XT_LOG_H +#define _XT_LOG_H + +/* make sure not to change this without changing nf_log.h:NF_LOG_* (!) */ +#define XT_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */ +#define XT_LOG_TCPOPT 0x02 /* Log TCP options */ +#define XT_LOG_IPOPT 0x04 /* Log IP options */ +#define XT_LOG_UID 0x08 /* Log UID owning local socket */ +#define XT_LOG_NFLOG 0x10 /* Unsupported, don't reuse */ +#define XT_LOG_MACDECODE 0x20 /* Decode MAC header */ +#define XT_LOG_MASK 0x2f + +struct xt_log_info { + unsigned char level; + unsigned char logflags; + char prefix[30]; +}; + +#endif /* _XT_LOG_H */ diff --git a/kernel_headers/linux/netfilter/xt_MARK.h b/kernel_headers/linux/netfilter/xt_MARK.h new file mode 100644 index 0000000..41c456d --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_MARK.h @@ -0,0 +1,6 @@ +#ifndef _XT_MARK_H_target +#define _XT_MARK_H_target + +#include + +#endif /*_XT_MARK_H_target */ diff --git a/kernel_headers/linux/netfilter/xt_NFLOG.h b/kernel_headers/linux/netfilter/xt_NFLOG.h new file mode 100644 index 0000000..87b5831 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_NFLOG.h @@ -0,0 +1,20 @@ +#ifndef _XT_NFLOG_TARGET +#define _XT_NFLOG_TARGET + +#include + +#define XT_NFLOG_DEFAULT_GROUP 0x1 +#define XT_NFLOG_DEFAULT_THRESHOLD 0 + +#define XT_NFLOG_MASK 0x0 + +struct xt_nflog_info { + __u32 len; + __u16 group; + __u16 threshold; + __u16 flags; + __u16 pad; + char prefix[64]; +}; + +#endif /* _XT_NFLOG_TARGET */ diff --git a/kernel_headers/linux/netfilter/xt_NFQUEUE.h b/kernel_headers/linux/netfilter/xt_NFQUEUE.h new file mode 100644 index 0000000..8bb5fe6 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_NFQUEUE.h @@ -0,0 +1,38 @@ +/* iptables module for using NFQUEUE mechanism + * + * (C) 2005 Harald Welte + * + * This software is distributed under GNU GPL v2, 1991 + * +*/ +#ifndef _XT_NFQ_TARGET_H +#define _XT_NFQ_TARGET_H + +#include + +/* target info */ +struct xt_NFQ_info { + __u16 queuenum; +}; + +struct xt_NFQ_info_v1 { + __u16 queuenum; + __u16 queues_total; +}; + +struct xt_NFQ_info_v2 { + __u16 queuenum; + __u16 queues_total; + __u16 bypass; +}; + +struct xt_NFQ_info_v3 { + __u16 queuenum; + __u16 queues_total; + __u16 flags; +#define NFQ_FLAG_BYPASS 0x01 /* for compatibility with v2 */ +#define NFQ_FLAG_CPU_FANOUT 0x02 /* use current CPU (no hashing) */ +#define NFQ_FLAG_MASK 0x03 +}; + +#endif /* _XT_NFQ_TARGET_H */ diff --git a/kernel_headers/linux/netfilter/xt_RATEEST.h b/kernel_headers/linux/netfilter/xt_RATEEST.h new file mode 100644 index 0000000..6605e20 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_RATEEST.h @@ -0,0 +1,15 @@ +#ifndef _XT_RATEEST_TARGET_H +#define _XT_RATEEST_TARGET_H + +#include + +struct xt_rateest_target_info { + char name[IFNAMSIZ]; + __s8 interval; + __u8 ewma_log; + + /* Used internally by the kernel */ + struct xt_rateest *est __attribute__((aligned(8))); +}; + +#endif /* _XT_RATEEST_TARGET_H */ diff --git a/kernel_headers/linux/netfilter/xt_SECMARK.h b/kernel_headers/linux/netfilter/xt_SECMARK.h new file mode 100644 index 0000000..989092b --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_SECMARK.h @@ -0,0 +1,22 @@ +#ifndef _XT_SECMARK_H_target +#define _XT_SECMARK_H_target + +#include + +/* + * This is intended for use by various security subsystems (but not + * at the same time). + * + * 'mode' refers to the specific security subsystem which the + * packets are being marked for. + */ +#define SECMARK_MODE_SEL 0x01 /* SELinux */ +#define SECMARK_SECCTX_MAX 256 + +struct xt_secmark_target_info { + __u8 mode; + __u32 secid; + char secctx[SECMARK_SECCTX_MAX]; +}; + +#endif /*_XT_SECMARK_H_target */ diff --git a/kernel_headers/linux/netfilter/xt_TCPMSS.h b/kernel_headers/linux/netfilter/xt_TCPMSS.h new file mode 100644 index 0000000..9a6960a --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_TCPMSS.h @@ -0,0 +1,12 @@ +#ifndef _XT_TCPMSS_H +#define _XT_TCPMSS_H + +#include + +struct xt_tcpmss_info { + __u16 mss; +}; + +#define XT_TCPMSS_CLAMP_PMTU 0xffff + +#endif /* _XT_TCPMSS_H */ diff --git a/kernel_headers/linux/netfilter/xt_TCPOPTSTRIP.h b/kernel_headers/linux/netfilter/xt_TCPOPTSTRIP.h new file mode 100644 index 0000000..7157318 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_TCPOPTSTRIP.h @@ -0,0 +1,15 @@ +#ifndef _XT_TCPOPTSTRIP_H +#define _XT_TCPOPTSTRIP_H + +#include + +#define tcpoptstrip_set_bit(bmap, idx) \ + (bmap[(idx) >> 5] |= 1U << (idx & 31)) +#define tcpoptstrip_test_bit(bmap, idx) \ + (((1U << (idx & 31)) & bmap[(idx) >> 5]) != 0) + +struct xt_tcpoptstrip_target_info { + __u32 strip_bmap[8]; +}; + +#endif /* _XT_TCPOPTSTRIP_H */ diff --git a/kernel_headers/linux/netfilter/xt_TEE.h b/kernel_headers/linux/netfilter/xt_TEE.h new file mode 100644 index 0000000..5c21d5c --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_TEE.h @@ -0,0 +1,12 @@ +#ifndef _XT_TEE_TARGET_H +#define _XT_TEE_TARGET_H + +struct xt_tee_tginfo { + union nf_inet_addr gw; + char oif[16]; + + /* used internally by the kernel */ + struct xt_tee_priv *priv __attribute__((aligned(8))); +}; + +#endif /* _XT_TEE_TARGET_H */ diff --git a/kernel_headers/linux/netfilter/xt_TPROXY.h b/kernel_headers/linux/netfilter/xt_TPROXY.h new file mode 100644 index 0000000..902043c --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_TPROXY.h @@ -0,0 +1,23 @@ +#ifndef _XT_TPROXY_H +#define _XT_TPROXY_H + +#include + +/* TPROXY target is capable of marking the packet to perform + * redirection. We can get rid of that whenever we get support for + * mutliple targets in the same rule. */ +struct xt_tproxy_target_info { + __u32 mark_mask; + __u32 mark_value; + __be32 laddr; + __be16 lport; +}; + +struct xt_tproxy_target_info_v1 { + __u32 mark_mask; + __u32 mark_value; + union nf_inet_addr laddr; + __be16 lport; +}; + +#endif /* _XT_TPROXY_H */ diff --git a/kernel_headers/linux/netfilter/xt_addrtype.h b/kernel_headers/linux/netfilter/xt_addrtype.h new file mode 100644 index 0000000..b156baa --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_addrtype.h @@ -0,0 +1,44 @@ +#ifndef _XT_ADDRTYPE_H +#define _XT_ADDRTYPE_H + +#include + +enum { + XT_ADDRTYPE_INVERT_SOURCE = 0x0001, + XT_ADDRTYPE_INVERT_DEST = 0x0002, + XT_ADDRTYPE_LIMIT_IFACE_IN = 0x0004, + XT_ADDRTYPE_LIMIT_IFACE_OUT = 0x0008, +}; + + +/* rtn_type enum values from rtnetlink.h, but shifted */ +enum { + XT_ADDRTYPE_UNSPEC = 1 << 0, + XT_ADDRTYPE_UNICAST = 1 << 1, /* 1 << RTN_UNICAST */ + XT_ADDRTYPE_LOCAL = 1 << 2, /* 1 << RTN_LOCAL, etc */ + XT_ADDRTYPE_BROADCAST = 1 << 3, + XT_ADDRTYPE_ANYCAST = 1 << 4, + XT_ADDRTYPE_MULTICAST = 1 << 5, + XT_ADDRTYPE_BLACKHOLE = 1 << 6, + XT_ADDRTYPE_UNREACHABLE = 1 << 7, + XT_ADDRTYPE_PROHIBIT = 1 << 8, + XT_ADDRTYPE_THROW = 1 << 9, + XT_ADDRTYPE_NAT = 1 << 10, + XT_ADDRTYPE_XRESOLVE = 1 << 11, +}; + +struct xt_addrtype_info_v1 { + __u16 source; /* source-type mask */ + __u16 dest; /* dest-type mask */ + __u32 flags; +}; + +/* revision 0 */ +struct xt_addrtype_info { + __u16 source; /* source-type mask */ + __u16 dest; /* dest-type mask */ + __u32 invert_source; + __u32 invert_dest; +}; + +#endif diff --git a/kernel_headers/linux/netfilter/xt_bpf.h b/kernel_headers/linux/netfilter/xt_bpf.h new file mode 100644 index 0000000..5dda450 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_bpf.h @@ -0,0 +1,17 @@ +#ifndef _XT_BPF_H +#define _XT_BPF_H + +#include +#include + +#define XT_BPF_MAX_NUM_INSTR 64 + +struct xt_bpf_info { + __u16 bpf_program_num_elem; + struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR]; + + /* only used in the kernel */ + struct sk_filter *filter __attribute__((aligned(8))); +}; + +#endif /*_XT_BPF_H */ diff --git a/kernel_headers/linux/netfilter/xt_cluster.h b/kernel_headers/linux/netfilter/xt_cluster.h new file mode 100644 index 0000000..9b883c8 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_cluster.h @@ -0,0 +1,19 @@ +#ifndef _XT_CLUSTER_MATCH_H +#define _XT_CLUSTER_MATCH_H + +#include + +enum xt_cluster_flags { + XT_CLUSTER_F_INV = (1 << 0) +}; + +struct xt_cluster_match_info { + __u32 total_nodes; + __u32 node_mask; + __u32 hash_seed; + __u32 flags; +}; + +#define XT_CLUSTER_NODES_MAX 32 + +#endif /* _XT_CLUSTER_MATCH_H */ diff --git a/kernel_headers/linux/netfilter/xt_comment.h b/kernel_headers/linux/netfilter/xt_comment.h new file mode 100644 index 0000000..0ea5e79 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_comment.h @@ -0,0 +1,10 @@ +#ifndef _XT_COMMENT_H +#define _XT_COMMENT_H + +#define XT_MAX_COMMENT_LEN 256 + +struct xt_comment_info { + char comment[XT_MAX_COMMENT_LEN]; +}; + +#endif /* XT_COMMENT_H */ diff --git a/kernel_headers/linux/netfilter/xt_connbytes.h b/kernel_headers/linux/netfilter/xt_connbytes.h new file mode 100644 index 0000000..f1d6c15 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_connbytes.h @@ -0,0 +1,26 @@ +#ifndef _XT_CONNBYTES_H +#define _XT_CONNBYTES_H + +#include + +enum xt_connbytes_what { + XT_CONNBYTES_PKTS, + XT_CONNBYTES_BYTES, + XT_CONNBYTES_AVGPKT, +}; + +enum xt_connbytes_direction { + XT_CONNBYTES_DIR_ORIGINAL, + XT_CONNBYTES_DIR_REPLY, + XT_CONNBYTES_DIR_BOTH, +}; + +struct xt_connbytes_info { + struct { + __aligned_u64 from; /* count to be matched */ + __aligned_u64 to; /* count to be matched */ + } count; + __u8 what; /* ipt_connbytes_what */ + __u8 direction; /* ipt_connbytes_direction */ +}; +#endif diff --git a/kernel_headers/linux/netfilter/xt_connlabel.h b/kernel_headers/linux/netfilter/xt_connlabel.h new file mode 100644 index 0000000..c4bc9ee --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_connlabel.h @@ -0,0 +1,12 @@ +#include + +#define XT_CONNLABEL_MAXBIT 127 +enum xt_connlabel_mtopts { + XT_CONNLABEL_OP_INVERT = 1 << 0, + XT_CONNLABEL_OP_SET = 1 << 1, +}; + +struct xt_connlabel_mtinfo { + __u16 bit; + __u16 options; +}; diff --git a/kernel_headers/linux/netfilter/xt_connlimit.h b/kernel_headers/linux/netfilter/xt_connlimit.h new file mode 100644 index 0000000..cdcc117 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_connlimit.h @@ -0,0 +1,30 @@ +#ifndef _XT_CONNLIMIT_H +#define _XT_CONNLIMIT_H + +#include +#include + +struct xt_connlimit_data; + +enum { + XT_CONNLIMIT_INVERT = 1 << 0, + XT_CONNLIMIT_DADDR = 1 << 1, +}; + +struct xt_connlimit_info { + union { + union nf_inet_addr mask; + union { + __be32 v4_mask; + __be32 v6_mask[4]; + }; + }; + unsigned int limit; + /* revision 1 */ + __u32 flags; + + /* Used internally by the kernel */ + struct xt_connlimit_data *data __attribute__((aligned(8))); +}; + +#endif /* _XT_CONNLIMIT_H */ diff --git a/kernel_headers/linux/netfilter/xt_connmark.h b/kernel_headers/linux/netfilter/xt_connmark.h new file mode 100644 index 0000000..efc17a8 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_connmark.h @@ -0,0 +1,31 @@ +#ifndef _XT_CONNMARK_H +#define _XT_CONNMARK_H + +#include + +/* Copyright (C) 2002,2004 MARA Systems AB + * by Henrik Nordstrom + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +enum { + XT_CONNMARK_SET = 0, + XT_CONNMARK_SAVE, + XT_CONNMARK_RESTORE +}; + +struct xt_connmark_tginfo1 { + __u32 ctmark, ctmask, nfmask; + __u8 mode; +}; + +struct xt_connmark_mtinfo1 { + __u32 mark, mask; + __u8 invert; +}; + +#endif /*_XT_CONNMARK_H*/ diff --git a/kernel_headers/linux/netfilter/xt_conntrack.h b/kernel_headers/linux/netfilter/xt_conntrack.h new file mode 100644 index 0000000..e5bd308 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_conntrack.h @@ -0,0 +1,78 @@ +/* Header file for kernel module to match connection tracking information. + * GPL (C) 2001 Marc Boucher (marc@mbsi.ca). + */ + +#ifndef _XT_CONNTRACK_H +#define _XT_CONNTRACK_H + +#include +#include +#include + +#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1)) +#define XT_CONNTRACK_STATE_INVALID (1 << 0) + +#define XT_CONNTRACK_STATE_SNAT (1 << (IP_CT_NUMBER + 1)) +#define XT_CONNTRACK_STATE_DNAT (1 << (IP_CT_NUMBER + 2)) +#define XT_CONNTRACK_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 3)) + +/* flags, invflags: */ +enum { + XT_CONNTRACK_STATE = 1 << 0, + XT_CONNTRACK_PROTO = 1 << 1, + XT_CONNTRACK_ORIGSRC = 1 << 2, + XT_CONNTRACK_ORIGDST = 1 << 3, + XT_CONNTRACK_REPLSRC = 1 << 4, + XT_CONNTRACK_REPLDST = 1 << 5, + XT_CONNTRACK_STATUS = 1 << 6, + XT_CONNTRACK_EXPIRES = 1 << 7, + XT_CONNTRACK_ORIGSRC_PORT = 1 << 8, + XT_CONNTRACK_ORIGDST_PORT = 1 << 9, + XT_CONNTRACK_REPLSRC_PORT = 1 << 10, + XT_CONNTRACK_REPLDST_PORT = 1 << 11, + XT_CONNTRACK_DIRECTION = 1 << 12, + XT_CONNTRACK_STATE_ALIAS = 1 << 13, +}; + +struct xt_conntrack_mtinfo1 { + union nf_inet_addr origsrc_addr, origsrc_mask; + union nf_inet_addr origdst_addr, origdst_mask; + union nf_inet_addr replsrc_addr, replsrc_mask; + union nf_inet_addr repldst_addr, repldst_mask; + __u32 expires_min, expires_max; + __u16 l4proto; + __be16 origsrc_port, origdst_port; + __be16 replsrc_port, repldst_port; + __u16 match_flags, invert_flags; + __u8 state_mask, status_mask; +}; + +struct xt_conntrack_mtinfo2 { + union nf_inet_addr origsrc_addr, origsrc_mask; + union nf_inet_addr origdst_addr, origdst_mask; + union nf_inet_addr replsrc_addr, replsrc_mask; + union nf_inet_addr repldst_addr, repldst_mask; + __u32 expires_min, expires_max; + __u16 l4proto; + __be16 origsrc_port, origdst_port; + __be16 replsrc_port, repldst_port; + __u16 match_flags, invert_flags; + __u16 state_mask, status_mask; +}; + +struct xt_conntrack_mtinfo3 { + union nf_inet_addr origsrc_addr, origsrc_mask; + union nf_inet_addr origdst_addr, origdst_mask; + union nf_inet_addr replsrc_addr, replsrc_mask; + union nf_inet_addr repldst_addr, repldst_mask; + __u32 expires_min, expires_max; + __u16 l4proto; + __u16 origsrc_port, origdst_port; + __u16 replsrc_port, repldst_port; + __u16 match_flags, invert_flags; + __u16 state_mask, status_mask; + __u16 origsrc_port_high, origdst_port_high; + __u16 replsrc_port_high, repldst_port_high; +}; + +#endif /*_XT_CONNTRACK_H*/ diff --git a/kernel_headers/linux/netfilter/xt_cpu.h b/kernel_headers/linux/netfilter/xt_cpu.h new file mode 100644 index 0000000..93c7f11 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_cpu.h @@ -0,0 +1,11 @@ +#ifndef _XT_CPU_H +#define _XT_CPU_H + +#include + +struct xt_cpu_info { + __u32 cpu; + __u32 invert; +}; + +#endif /*_XT_CPU_H*/ diff --git a/kernel_headers/linux/netfilter/xt_dccp.h b/kernel_headers/linux/netfilter/xt_dccp.h new file mode 100644 index 0000000..a579e1b --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_dccp.h @@ -0,0 +1,25 @@ +#ifndef _XT_DCCP_H_ +#define _XT_DCCP_H_ + +#include + +#define XT_DCCP_SRC_PORTS 0x01 +#define XT_DCCP_DEST_PORTS 0x02 +#define XT_DCCP_TYPE 0x04 +#define XT_DCCP_OPTION 0x08 + +#define XT_DCCP_VALID_FLAGS 0x0f + +struct xt_dccp_info { + __u16 dpts[2]; /* Min, Max */ + __u16 spts[2]; /* Min, Max */ + + __u16 flags; + __u16 invflags; + + __u16 typemask; + __u8 option; +}; + +#endif /* _XT_DCCP_H_ */ + diff --git a/kernel_headers/linux/netfilter/xt_devgroup.h b/kernel_headers/linux/netfilter/xt_devgroup.h new file mode 100644 index 0000000..1babde0 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_devgroup.h @@ -0,0 +1,21 @@ +#ifndef _XT_DEVGROUP_H +#define _XT_DEVGROUP_H + +#include + +enum xt_devgroup_flags { + XT_DEVGROUP_MATCH_SRC = 0x1, + XT_DEVGROUP_INVERT_SRC = 0x2, + XT_DEVGROUP_MATCH_DST = 0x4, + XT_DEVGROUP_INVERT_DST = 0x8, +}; + +struct xt_devgroup_info { + __u32 flags; + __u32 src_group; + __u32 src_mask; + __u32 dst_group; + __u32 dst_mask; +}; + +#endif /* _XT_DEVGROUP_H */ diff --git a/kernel_headers/linux/netfilter/xt_dscp.h b/kernel_headers/linux/netfilter/xt_dscp.h new file mode 100644 index 0000000..15f8932 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_dscp.h @@ -0,0 +1,31 @@ +/* x_tables module for matching the IPv4/IPv6 DSCP field + * + * (C) 2002 Harald Welte + * This software is distributed under GNU GPL v2, 1991 + * + * See RFC2474 for a description of the DSCP field within the IP Header. + * + * xt_dscp.h,v 1.3 2002/08/05 19:00:21 laforge Exp +*/ +#ifndef _XT_DSCP_H +#define _XT_DSCP_H + +#include + +#define XT_DSCP_MASK 0xfc /* 11111100 */ +#define XT_DSCP_SHIFT 2 +#define XT_DSCP_MAX 0x3f /* 00111111 */ + +/* match info */ +struct xt_dscp_info { + __u8 dscp; + __u8 invert; +}; + +struct xt_tos_match_info { + __u8 tos_mask; + __u8 tos_value; + __u8 invert; +}; + +#endif /* _XT_DSCP_H */ diff --git a/kernel_headers/linux/netfilter/xt_ecn.h b/kernel_headers/linux/netfilter/xt_ecn.h new file mode 100644 index 0000000..7158fca --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_ecn.h @@ -0,0 +1,35 @@ +/* iptables module for matching the ECN header in IPv4 and TCP header + * + * (C) 2002 Harald Welte + * + * This software is distributed under GNU GPL v2, 1991 + * + * ipt_ecn.h,v 1.4 2002/08/05 19:39:00 laforge Exp +*/ +#ifndef _XT_ECN_H +#define _XT_ECN_H + +#include +#include + +#define XT_ECN_IP_MASK (~XT_DSCP_MASK) + +#define XT_ECN_OP_MATCH_IP 0x01 +#define XT_ECN_OP_MATCH_ECE 0x10 +#define XT_ECN_OP_MATCH_CWR 0x20 + +#define XT_ECN_OP_MATCH_MASK 0xce + +/* match info */ +struct xt_ecn_info { + __u8 operation; + __u8 invert; + __u8 ip_ect; + union { + struct { + __u8 ect; + } tcp; + } proto; +}; + +#endif /* _XT_ECN_H */ diff --git a/kernel_headers/linux/netfilter/xt_esp.h b/kernel_headers/linux/netfilter/xt_esp.h new file mode 100644 index 0000000..ee68824 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_esp.h @@ -0,0 +1,15 @@ +#ifndef _XT_ESP_H +#define _XT_ESP_H + +#include + +struct xt_esp { + __u32 spis[2]; /* Security Parameter Index */ + __u8 invflags; /* Inverse flags */ +}; + +/* Values for "invflags" field in struct xt_esp. */ +#define XT_ESP_INV_SPI 0x01 /* Invert the sense of spi. */ +#define XT_ESP_INV_MASK 0x01 /* All possible flags. */ + +#endif /*_XT_ESP_H*/ diff --git a/kernel_headers/linux/netfilter/xt_hashlimit.h b/kernel_headers/linux/netfilter/xt_hashlimit.h new file mode 100644 index 0000000..33511b7 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_hashlimit.h @@ -0,0 +1,73 @@ +#ifndef _XT_HASHLIMIT_H +#define _XT_HASHLIMIT_H + +#include + +/* timings are in milliseconds. */ +#define XT_HASHLIMIT_SCALE 10000 +/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 + * seconds, or one packet every 59 hours. + */ + +/* packet length accounting is done in 16-byte steps */ +#define XT_HASHLIMIT_BYTE_SHIFT 4 + +/* details of this structure hidden by the implementation */ +struct xt_hashlimit_htable; + +enum { + XT_HASHLIMIT_HASH_DIP = 1 << 0, + XT_HASHLIMIT_HASH_DPT = 1 << 1, + XT_HASHLIMIT_HASH_SIP = 1 << 2, + XT_HASHLIMIT_HASH_SPT = 1 << 3, + XT_HASHLIMIT_INVERT = 1 << 4, + XT_HASHLIMIT_BYTES = 1 << 5, +}; + +struct hashlimit_cfg { + __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */ + __u32 avg; /* Average secs between packets * scale */ + __u32 burst; /* Period multiplier for upper limit. */ + + /* user specified */ + __u32 size; /* how many buckets */ + __u32 max; /* max number of entries */ + __u32 gc_interval; /* gc interval */ + __u32 expire; /* when do entries expire? */ +}; + +struct xt_hashlimit_info { + char name [IFNAMSIZ]; /* name */ + struct hashlimit_cfg cfg; + + /* Used internally by the kernel */ + struct xt_hashlimit_htable *hinfo; + union { + void *ptr; + struct xt_hashlimit_info *master; + } u; +}; + +struct hashlimit_cfg1 { + __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */ + __u32 avg; /* Average secs between packets * scale */ + __u32 burst; /* Period multiplier for upper limit. */ + + /* user specified */ + __u32 size; /* how many buckets */ + __u32 max; /* max number of entries */ + __u32 gc_interval; /* gc interval */ + __u32 expire; /* when do entries expire? */ + + __u8 srcmask, dstmask; +}; + +struct xt_hashlimit_mtinfo1 { + char name[IFNAMSIZ]; + struct hashlimit_cfg1 cfg; + + /* Used internally by the kernel */ + struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); +}; + +#endif /* _XT_HASHLIMIT_H */ diff --git a/kernel_headers/linux/netfilter/xt_helper.h b/kernel_headers/linux/netfilter/xt_helper.h new file mode 100644 index 0000000..6b42763 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_helper.h @@ -0,0 +1,8 @@ +#ifndef _XT_HELPER_H +#define _XT_HELPER_H + +struct xt_helper_info { + int invert; + char name[30]; +}; +#endif /* _XT_HELPER_H */ diff --git a/kernel_headers/linux/netfilter/xt_iprange.h b/kernel_headers/linux/netfilter/xt_iprange.h new file mode 100644 index 0000000..25fd7cf --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_iprange.h @@ -0,0 +1,20 @@ +#ifndef _LINUX_NETFILTER_XT_IPRANGE_H +#define _LINUX_NETFILTER_XT_IPRANGE_H 1 + +#include +#include + +enum { + IPRANGE_SRC = 1 << 0, /* match source IP address */ + IPRANGE_DST = 1 << 1, /* match destination IP address */ + IPRANGE_SRC_INV = 1 << 4, /* negate the condition */ + IPRANGE_DST_INV = 1 << 5, /* -"- */ +}; + +struct xt_iprange_mtinfo { + union nf_inet_addr src_min, src_max; + union nf_inet_addr dst_min, dst_max; + __u8 flags; +}; + +#endif /* _LINUX_NETFILTER_XT_IPRANGE_H */ diff --git a/kernel_headers/linux/netfilter/xt_ipvs.h b/kernel_headers/linux/netfilter/xt_ipvs.h new file mode 100644 index 0000000..eff34ac --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_ipvs.h @@ -0,0 +1,29 @@ +#ifndef _XT_IPVS_H +#define _XT_IPVS_H + +#include + +enum { + XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */ + XT_IPVS_PROTO = 1 << 1, + XT_IPVS_VADDR = 1 << 2, + XT_IPVS_VPORT = 1 << 3, + XT_IPVS_DIR = 1 << 4, + XT_IPVS_METHOD = 1 << 5, + XT_IPVS_VPORTCTL = 1 << 6, + XT_IPVS_MASK = (1 << 7) - 1, + XT_IPVS_ONCE_MASK = XT_IPVS_MASK & ~XT_IPVS_IPVS_PROPERTY +}; + +struct xt_ipvs_mtinfo { + union nf_inet_addr vaddr, vmask; + __be16 vport; + __u8 l4proto; + __u8 fwd_method; + __be16 vportctl; + + __u8 invert; + __u8 bitmask; +}; + +#endif /* _XT_IPVS_H */ diff --git a/kernel_headers/linux/netfilter/xt_length.h b/kernel_headers/linux/netfilter/xt_length.h new file mode 100644 index 0000000..b82ed7c --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_length.h @@ -0,0 +1,11 @@ +#ifndef _XT_LENGTH_H +#define _XT_LENGTH_H + +#include + +struct xt_length_info { + __u16 min, max; + __u8 invert; +}; + +#endif /*_XT_LENGTH_H*/ diff --git a/kernel_headers/linux/netfilter/xt_limit.h b/kernel_headers/linux/netfilter/xt_limit.h new file mode 100644 index 0000000..bb47fc4 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_limit.h @@ -0,0 +1,24 @@ +#ifndef _XT_RATE_H +#define _XT_RATE_H + +#include + +/* timings are in milliseconds. */ +#define XT_LIMIT_SCALE 10000 + +struct xt_limit_priv; + +/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 + seconds, or one every 59 hours. */ +struct xt_rateinfo { + __u32 avg; /* Average secs between packets * scale */ + __u32 burst; /* Period multiplier for upper limit. */ + + /* Used internally by the kernel */ + unsigned long prev; /* moved to xt_limit_priv */ + __u32 credit; /* moved to xt_limit_priv */ + __u32 credit_cap, cost; + + struct xt_limit_priv *master; +}; +#endif /*_XT_RATE_H*/ diff --git a/kernel_headers/linux/netfilter/xt_mac.h b/kernel_headers/linux/netfilter/xt_mac.h new file mode 100644 index 0000000..b892cdc --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_mac.h @@ -0,0 +1,8 @@ +#ifndef _XT_MAC_H +#define _XT_MAC_H + +struct xt_mac_info { + unsigned char srcaddr[ETH_ALEN]; + int invert; +}; +#endif /*_XT_MAC_H*/ diff --git a/kernel_headers/linux/netfilter/xt_mark.h b/kernel_headers/linux/netfilter/xt_mark.h new file mode 100644 index 0000000..ecadc40 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_mark.h @@ -0,0 +1,15 @@ +#ifndef _XT_MARK_H +#define _XT_MARK_H + +#include + +struct xt_mark_tginfo2 { + __u32 mark, mask; +}; + +struct xt_mark_mtinfo1 { + __u32 mark, mask; + __u8 invert; +}; + +#endif /*_XT_MARK_H*/ diff --git a/kernel_headers/linux/netfilter/xt_multiport.h b/kernel_headers/linux/netfilter/xt_multiport.h new file mode 100644 index 0000000..5b7e72d --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_multiport.h @@ -0,0 +1,29 @@ +#ifndef _XT_MULTIPORT_H +#define _XT_MULTIPORT_H + +#include + +enum xt_multiport_flags { + XT_MULTIPORT_SOURCE, + XT_MULTIPORT_DESTINATION, + XT_MULTIPORT_EITHER +}; + +#define XT_MULTI_PORTS 15 + +/* Must fit inside union xt_matchinfo: 16 bytes */ +struct xt_multiport { + __u8 flags; /* Type of comparison */ + __u8 count; /* Number of ports */ + __u16 ports[XT_MULTI_PORTS]; /* Ports */ +}; + +struct xt_multiport_v1 { + __u8 flags; /* Type of comparison */ + __u8 count; /* Number of ports */ + __u16 ports[XT_MULTI_PORTS]; /* Ports */ + __u8 pflags[XT_MULTI_PORTS]; /* Port flags */ + __u8 invert; /* Invert flag */ +}; + +#endif /*_XT_MULTIPORT_H*/ diff --git a/kernel_headers/linux/netfilter/xt_nfacct.h b/kernel_headers/linux/netfilter/xt_nfacct.h new file mode 100644 index 0000000..3e19c8a --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_nfacct.h @@ -0,0 +1,13 @@ +#ifndef _XT_NFACCT_MATCH_H +#define _XT_NFACCT_MATCH_H + +#include + +struct nf_acct; + +struct xt_nfacct_match_info { + char name[NFACCT_NAME_MAX]; + struct nf_acct *nfacct; +}; + +#endif /* _XT_NFACCT_MATCH_H */ diff --git a/kernel_headers/linux/netfilter/xt_osf.h b/kernel_headers/linux/netfilter/xt_osf.h new file mode 100644 index 0000000..18afa49 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_osf.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2003+ Evgeniy Polyakov + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _XT_OSF_H +#define _XT_OSF_H + +#include + +#define MAXGENRELEN 32 + +#define XT_OSF_GENRE (1<<0) +#define XT_OSF_TTL (1<<1) +#define XT_OSF_LOG (1<<2) +#define XT_OSF_INVERT (1<<3) + +#define XT_OSF_LOGLEVEL_ALL 0 /* log all matched fingerprints */ +#define XT_OSF_LOGLEVEL_FIRST 1 /* log only the first matced fingerprint */ +#define XT_OSF_LOGLEVEL_ALL_KNOWN 2 /* do not log unknown packets */ + +#define XT_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */ +#define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */ +#define XT_OSF_TTL_NOCHECK 2 /* Do not compare ip and fingerprint TTL at all */ + +struct xt_osf_info { + char genre[MAXGENRELEN]; + __u32 len; + __u32 flags; + __u32 loglevel; + __u32 ttl; +}; + +/* + * Wildcard MSS (kind of). + * It is used to implement a state machine for the different wildcard values + * of the MSS and window sizes. + */ +struct xt_osf_wc { + __u32 wc; + __u32 val; +}; + +/* + * This struct represents IANA options + * http://www.iana.org/assignments/tcp-parameters + */ +struct xt_osf_opt { + __u16 kind, length; + struct xt_osf_wc wc; +}; + +struct xt_osf_user_finger { + struct xt_osf_wc wss; + + __u8 ttl, df; + __u16 ss, mss; + __u16 opt_num; + + char genre[MAXGENRELEN]; + char version[MAXGENRELEN]; + char subtype[MAXGENRELEN]; + + /* MAX_IPOPTLEN is maximum if all options are NOPs or EOLs */ + struct xt_osf_opt opt[MAX_IPOPTLEN]; +}; + +struct xt_osf_nlmsg { + struct xt_osf_user_finger f; + struct iphdr ip; + struct tcphdr tcp; +}; + +/* Defines for IANA option kinds */ + +enum iana_options { + OSFOPT_EOL = 0, /* End of options */ + OSFOPT_NOP, /* NOP */ + OSFOPT_MSS, /* Maximum segment size */ + OSFOPT_WSO, /* Window scale option */ + OSFOPT_SACKP, /* SACK permitted */ + OSFOPT_SACK, /* SACK */ + OSFOPT_ECHO, + OSFOPT_ECHOREPLY, + OSFOPT_TS, /* Timestamp option */ + OSFOPT_POCP, /* Partial Order Connection Permitted */ + OSFOPT_POSP, /* Partial Order Service Profile */ + + /* Others are not used in the current OSF */ + OSFOPT_EMPTY = 255, +}; + +/* + * Initial window size option state machine: multiple of mss, mtu or + * plain numeric value. Can also be made as plain numeric value which + * is not a multiple of specified value. + */ +enum xt_osf_window_size_options { + OSF_WSS_PLAIN = 0, + OSF_WSS_MSS, + OSF_WSS_MTU, + OSF_WSS_MODULO, + OSF_WSS_MAX, +}; + +/* + * Add/remove fingerprint from the kernel. + */ +enum xt_osf_msg_types { + OSF_MSG_ADD, + OSF_MSG_REMOVE, + OSF_MSG_MAX, +}; + +enum xt_osf_attr_type { + OSF_ATTR_UNSPEC, + OSF_ATTR_FINGER, + OSF_ATTR_MAX, +}; + +#endif /* _XT_OSF_H */ diff --git a/kernel_headers/linux/netfilter/xt_owner.h b/kernel_headers/linux/netfilter/xt_owner.h new file mode 100644 index 0000000..2081761 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_owner.h @@ -0,0 +1,18 @@ +#ifndef _XT_OWNER_MATCH_H +#define _XT_OWNER_MATCH_H + +#include + +enum { + XT_OWNER_UID = 1 << 0, + XT_OWNER_GID = 1 << 1, + XT_OWNER_SOCKET = 1 << 2, +}; + +struct xt_owner_match_info { + __u32 uid_min, uid_max; + __u32 gid_min, gid_max; + __u8 match, invert; +}; + +#endif /* _XT_OWNER_MATCH_H */ diff --git a/kernel_headers/linux/netfilter/xt_physdev.h b/kernel_headers/linux/netfilter/xt_physdev.h new file mode 100644 index 0000000..8ab7eb7 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_physdev.h @@ -0,0 +1,23 @@ +#ifndef _XT_PHYSDEV_H +#define _XT_PHYSDEV_H + +#include + + +#define XT_PHYSDEV_OP_IN 0x01 +#define XT_PHYSDEV_OP_OUT 0x02 +#define XT_PHYSDEV_OP_BRIDGED 0x04 +#define XT_PHYSDEV_OP_ISIN 0x08 +#define XT_PHYSDEV_OP_ISOUT 0x10 +#define XT_PHYSDEV_OP_MASK (0x20 - 1) + +struct xt_physdev_info { + char physindev[IFNAMSIZ]; + char in_mask[IFNAMSIZ]; + char physoutdev[IFNAMSIZ]; + char out_mask[IFNAMSIZ]; + __u8 invert; + __u8 bitmask; +}; + +#endif /* _XT_PHYSDEV_H */ diff --git a/kernel_headers/linux/netfilter/xt_pkttype.h b/kernel_headers/linux/netfilter/xt_pkttype.h new file mode 100644 index 0000000..f265cf5 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_pkttype.h @@ -0,0 +1,8 @@ +#ifndef _XT_PKTTYPE_H +#define _XT_PKTTYPE_H + +struct xt_pkttype_info { + int pkttype; + int invert; +}; +#endif /*_XT_PKTTYPE_H*/ diff --git a/kernel_headers/linux/netfilter/xt_policy.h b/kernel_headers/linux/netfilter/xt_policy.h new file mode 100644 index 0000000..d246eac --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_policy.h @@ -0,0 +1,58 @@ +#ifndef _XT_POLICY_H +#define _XT_POLICY_H + +#include + +#define XT_POLICY_MAX_ELEM 4 + +enum xt_policy_flags { + XT_POLICY_MATCH_IN = 0x1, + XT_POLICY_MATCH_OUT = 0x2, + XT_POLICY_MATCH_NONE = 0x4, + XT_POLICY_MATCH_STRICT = 0x8, +}; + +enum xt_policy_modes { + XT_POLICY_MODE_TRANSPORT, + XT_POLICY_MODE_TUNNEL +}; + +struct xt_policy_spec { + __u8 saddr:1, + daddr:1, + proto:1, + mode:1, + spi:1, + reqid:1; +}; + +union xt_policy_addr { + struct in_addr a4; + struct in6_addr a6; +}; + +struct xt_policy_elem { + union { + struct { + union xt_policy_addr saddr; + union xt_policy_addr smask; + union xt_policy_addr daddr; + union xt_policy_addr dmask; + }; + }; + __be32 spi; + __u32 reqid; + __u8 proto; + __u8 mode; + + struct xt_policy_spec match; + struct xt_policy_spec invert; +}; + +struct xt_policy_info { + struct xt_policy_elem pol[XT_POLICY_MAX_ELEM]; + __u16 flags; + __u16 len; +}; + +#endif /* _XT_POLICY_H */ diff --git a/kernel_headers/linux/netfilter/xt_quota.h b/kernel_headers/linux/netfilter/xt_quota.h new file mode 100644 index 0000000..9314723 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_quota.h @@ -0,0 +1,22 @@ +#ifndef _XT_QUOTA_H +#define _XT_QUOTA_H + +#include + +enum xt_quota_flags { + XT_QUOTA_INVERT = 0x1, +}; +#define XT_QUOTA_MASK 0x1 + +struct xt_quota_priv; + +struct xt_quota_info { + __u32 flags; + __u32 pad; + __aligned_u64 quota; + + /* Used internally by the kernel */ + struct xt_quota_priv *master; +}; + +#endif /* _XT_QUOTA_H */ diff --git a/kernel_headers/linux/netfilter/xt_rateest.h b/kernel_headers/linux/netfilter/xt_rateest.h new file mode 100644 index 0000000..d40a619 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_rateest.h @@ -0,0 +1,37 @@ +#ifndef _XT_RATEEST_MATCH_H +#define _XT_RATEEST_MATCH_H + +#include + +enum xt_rateest_match_flags { + XT_RATEEST_MATCH_INVERT = 1<<0, + XT_RATEEST_MATCH_ABS = 1<<1, + XT_RATEEST_MATCH_REL = 1<<2, + XT_RATEEST_MATCH_DELTA = 1<<3, + XT_RATEEST_MATCH_BPS = 1<<4, + XT_RATEEST_MATCH_PPS = 1<<5, +}; + +enum xt_rateest_match_mode { + XT_RATEEST_MATCH_NONE, + XT_RATEEST_MATCH_EQ, + XT_RATEEST_MATCH_LT, + XT_RATEEST_MATCH_GT, +}; + +struct xt_rateest_match_info { + char name1[IFNAMSIZ]; + char name2[IFNAMSIZ]; + __u16 flags; + __u16 mode; + __u32 bps1; + __u32 pps1; + __u32 bps2; + __u32 pps2; + + /* Used internally by the kernel */ + struct xt_rateest *est1 __attribute__((aligned(8))); + struct xt_rateest *est2 __attribute__((aligned(8))); +}; + +#endif /* _XT_RATEEST_MATCH_H */ diff --git a/kernel_headers/linux/netfilter/xt_realm.h b/kernel_headers/linux/netfilter/xt_realm.h new file mode 100644 index 0000000..d4a82ee --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_realm.h @@ -0,0 +1,12 @@ +#ifndef _XT_REALM_H +#define _XT_REALM_H + +#include + +struct xt_realm_info { + __u32 id; + __u32 mask; + __u8 invert; +}; + +#endif /* _XT_REALM_H */ diff --git a/kernel_headers/linux/netfilter/xt_recent.h b/kernel_headers/linux/netfilter/xt_recent.h new file mode 100644 index 0000000..6ef36c1 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_recent.h @@ -0,0 +1,45 @@ +#ifndef _LINUX_NETFILTER_XT_RECENT_H +#define _LINUX_NETFILTER_XT_RECENT_H 1 + +#include + +enum { + XT_RECENT_CHECK = 1 << 0, + XT_RECENT_SET = 1 << 1, + XT_RECENT_UPDATE = 1 << 2, + XT_RECENT_REMOVE = 1 << 3, + XT_RECENT_TTL = 1 << 4, + XT_RECENT_REAP = 1 << 5, + + XT_RECENT_SOURCE = 0, + XT_RECENT_DEST = 1, + + XT_RECENT_NAME_LEN = 200, +}; + +/* Only allowed with --rcheck and --update */ +#define XT_RECENT_MODIFIERS (XT_RECENT_TTL|XT_RECENT_REAP) + +#define XT_RECENT_VALID_FLAGS (XT_RECENT_CHECK|XT_RECENT_SET|XT_RECENT_UPDATE|\ + XT_RECENT_REMOVE|XT_RECENT_TTL|XT_RECENT_REAP) + +struct xt_recent_mtinfo { + __u32 seconds; + __u32 hit_count; + __u8 check_set; + __u8 invert; + char name[XT_RECENT_NAME_LEN]; + __u8 side; +}; + +struct xt_recent_mtinfo_v1 { + __u32 seconds; + __u32 hit_count; + __u8 check_set; + __u8 invert; + char name[XT_RECENT_NAME_LEN]; + __u8 side; + union nf_inet_addr mask; +}; + +#endif /* _LINUX_NETFILTER_XT_RECENT_H */ diff --git a/kernel_headers/linux/netfilter/xt_sctp.h b/kernel_headers/linux/netfilter/xt_sctp.h new file mode 100644 index 0000000..a501e61 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_sctp.h @@ -0,0 +1,92 @@ +#ifndef _XT_SCTP_H_ +#define _XT_SCTP_H_ + +#include + +#define XT_SCTP_SRC_PORTS 0x01 +#define XT_SCTP_DEST_PORTS 0x02 +#define XT_SCTP_CHUNK_TYPES 0x04 + +#define XT_SCTP_VALID_FLAGS 0x07 + +struct xt_sctp_flag_info { + __u8 chunktype; + __u8 flag; + __u8 flag_mask; +}; + +#define XT_NUM_SCTP_FLAGS 4 + +struct xt_sctp_info { + __u16 dpts[2]; /* Min, Max */ + __u16 spts[2]; /* Min, Max */ + + __u32 chunkmap[256 / sizeof (__u32)]; /* Bit mask of chunks to be matched according to RFC 2960 */ + +#define SCTP_CHUNK_MATCH_ANY 0x01 /* Match if any of the chunk types are present */ +#define SCTP_CHUNK_MATCH_ALL 0x02 /* Match if all of the chunk types are present */ +#define SCTP_CHUNK_MATCH_ONLY 0x04 /* Match if these are the only chunk types present */ + + __u32 chunk_match_type; + struct xt_sctp_flag_info flag_info[XT_NUM_SCTP_FLAGS]; + int flag_count; + + __u32 flags; + __u32 invflags; +}; + +#define bytes(type) (sizeof(type) * 8) + +#define SCTP_CHUNKMAP_SET(chunkmap, type) \ + do { \ + (chunkmap)[type / bytes(__u32)] |= \ + 1 << (type % bytes(__u32)); \ + } while (0) + +#define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \ + do { \ + (chunkmap)[type / bytes(__u32)] &= \ + ~(1 << (type % bytes(__u32))); \ + } while (0) + +#define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \ +({ \ + ((chunkmap)[type / bytes (__u32)] & \ + (1 << (type % bytes (__u32)))) ? 1: 0; \ +}) + +#define SCTP_CHUNKMAP_RESET(chunkmap) \ + memset((chunkmap), 0, sizeof(chunkmap)) + +#define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ + memset((chunkmap), ~0U, sizeof(chunkmap)) + +#define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ + memcpy((destmap), (srcmap), sizeof(srcmap)) + +#define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) \ + __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap)) +static __inline__ bool +__sctp_chunkmap_is_clear(const __u32 *chunkmap, unsigned int n) +{ + unsigned int i; + for (i = 0; i < n; ++i) + if (chunkmap[i]) + return false; + return true; +} + +#define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) \ + __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap)) +static __inline__ bool +__sctp_chunkmap_is_all_set(const __u32 *chunkmap, unsigned int n) +{ + unsigned int i; + for (i = 0; i < n; ++i) + if (chunkmap[i] != ~0U) + return false; + return true; +} + +#endif /* _XT_SCTP_H_ */ + diff --git a/kernel_headers/linux/netfilter/xt_set.h b/kernel_headers/linux/netfilter/xt_set.h new file mode 100644 index 0000000..964d3d4 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_set.h @@ -0,0 +1,74 @@ +#ifndef _XT_SET_H +#define _XT_SET_H + +#include +#include + +/* Revision 0 interface: backward compatible with netfilter/iptables */ + +/* + * Option flags for kernel operations (xt_set_info_v0) + */ +#define IPSET_SRC 0x01 /* Source match/add */ +#define IPSET_DST 0x02 /* Destination match/add */ +#define IPSET_MATCH_INV 0x04 /* Inverse matching */ + +struct xt_set_info_v0 { + ip_set_id_t index; + union { + __u32 flags[IPSET_DIM_MAX + 1]; + struct { + __u32 __flags[IPSET_DIM_MAX]; + __u8 dim; + __u8 flags; + } compat; + } u; +}; + +/* match and target infos */ +struct xt_set_info_match_v0 { + struct xt_set_info_v0 match_set; +}; + +struct xt_set_info_target_v0 { + struct xt_set_info_v0 add_set; + struct xt_set_info_v0 del_set; +}; + +/* Revision 1 match and target */ + +struct xt_set_info { + ip_set_id_t index; + __u8 dim; + __u8 flags; +}; + +/* match and target infos */ +struct xt_set_info_match_v1 { + struct xt_set_info match_set; +}; + +struct xt_set_info_target_v1 { + struct xt_set_info add_set; + struct xt_set_info del_set; +}; + +/* Revision 2 target */ + +struct xt_set_info_target_v2 { + struct xt_set_info add_set; + struct xt_set_info del_set; + __u32 flags; + __u32 timeout; +}; + +/* Revision 3 match */ + +struct xt_set_info_match_v3 { + struct xt_set_info match_set; + struct ip_set_counter_match packets; + struct ip_set_counter_match bytes; + __u32 flags; +}; + +#endif /*_XT_SET_H*/ diff --git a/kernel_headers/linux/netfilter/xt_socket.h b/kernel_headers/linux/netfilter/xt_socket.h new file mode 100644 index 0000000..6359456 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_socket.h @@ -0,0 +1,20 @@ +#ifndef _XT_SOCKET_H +#define _XT_SOCKET_H + +#include + +enum { + XT_SOCKET_TRANSPARENT = 1 << 0, +}; + +struct xt_socket_mtinfo1 { + __u8 flags; +}; + +void xt_socket_put_sk(struct sock *sk); +struct sock *xt_socket_get4_sk(const struct sk_buff *skb, + struct xt_action_param *par); +struct sock *xt_socket_get6_sk(const struct sk_buff *skb, + struct xt_action_param *par); + +#endif /* _XT_SOCKET_H */ diff --git a/kernel_headers/linux/netfilter/xt_state.h b/kernel_headers/linux/netfilter/xt_state.h new file mode 100644 index 0000000..7b32de8 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_state.h @@ -0,0 +1,12 @@ +#ifndef _XT_STATE_H +#define _XT_STATE_H + +#define XT_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1)) +#define XT_STATE_INVALID (1 << 0) + +#define XT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1)) + +struct xt_state_info { + unsigned int statemask; +}; +#endif /*_XT_STATE_H*/ diff --git a/kernel_headers/linux/netfilter/xt_statistic.h b/kernel_headers/linux/netfilter/xt_statistic.h new file mode 100644 index 0000000..4e983ef --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_statistic.h @@ -0,0 +1,36 @@ +#ifndef _XT_STATISTIC_H +#define _XT_STATISTIC_H + +#include + +enum xt_statistic_mode { + XT_STATISTIC_MODE_RANDOM, + XT_STATISTIC_MODE_NTH, + __XT_STATISTIC_MODE_MAX +}; +#define XT_STATISTIC_MODE_MAX (__XT_STATISTIC_MODE_MAX - 1) + +enum xt_statistic_flags { + XT_STATISTIC_INVERT = 0x1, +}; +#define XT_STATISTIC_MASK 0x1 + +struct xt_statistic_priv; + +struct xt_statistic_info { + __u16 mode; + __u16 flags; + union { + struct { + __u32 probability; + } random; + struct { + __u32 every; + __u32 packet; + __u32 count; /* unused */ + } nth; + } u; + struct xt_statistic_priv *master __attribute__((aligned(8))); +}; + +#endif /* _XT_STATISTIC_H */ diff --git a/kernel_headers/linux/netfilter/xt_string.h b/kernel_headers/linux/netfilter/xt_string.h new file mode 100644 index 0000000..235347c --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_string.h @@ -0,0 +1,34 @@ +#ifndef _XT_STRING_H +#define _XT_STRING_H + +#include + +#define XT_STRING_MAX_PATTERN_SIZE 128 +#define XT_STRING_MAX_ALGO_NAME_SIZE 16 + +enum { + XT_STRING_FLAG_INVERT = 0x01, + XT_STRING_FLAG_IGNORECASE = 0x02 +}; + +struct xt_string_info { + __u16 from_offset; + __u16 to_offset; + char algo[XT_STRING_MAX_ALGO_NAME_SIZE]; + char pattern[XT_STRING_MAX_PATTERN_SIZE]; + __u8 patlen; + union { + struct { + __u8 invert; + } v0; + + struct { + __u8 flags; + } v1; + } u; + + /* Used internally by the kernel */ + struct ts_config __attribute__((aligned(8))) *config; +}; + +#endif /*_XT_STRING_H*/ diff --git a/kernel_headers/linux/netfilter/xt_tcpmss.h b/kernel_headers/linux/netfilter/xt_tcpmss.h new file mode 100644 index 0000000..fbac56b --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_tcpmss.h @@ -0,0 +1,11 @@ +#ifndef _XT_TCPMSS_MATCH_H +#define _XT_TCPMSS_MATCH_H + +#include + +struct xt_tcpmss_match_info { + __u16 mss_min, mss_max; + __u8 invert; +}; + +#endif /*_XT_TCPMSS_MATCH_H*/ diff --git a/kernel_headers/linux/netfilter/xt_tcpudp.h b/kernel_headers/linux/netfilter/xt_tcpudp.h new file mode 100644 index 0000000..38aa7b3 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_tcpudp.h @@ -0,0 +1,36 @@ +#ifndef _XT_TCPUDP_H +#define _XT_TCPUDP_H + +#include + +/* TCP matching stuff */ +struct xt_tcp { + __u16 spts[2]; /* Source port range. */ + __u16 dpts[2]; /* Destination port range. */ + __u8 option; /* TCP Option iff non-zero*/ + __u8 flg_mask; /* TCP flags mask byte */ + __u8 flg_cmp; /* TCP flags compare byte */ + __u8 invflags; /* Inverse flags */ +}; + +/* Values for "inv" field in struct ipt_tcp. */ +#define XT_TCP_INV_SRCPT 0x01 /* Invert the sense of source ports. */ +#define XT_TCP_INV_DSTPT 0x02 /* Invert the sense of dest ports. */ +#define XT_TCP_INV_FLAGS 0x04 /* Invert the sense of TCP flags. */ +#define XT_TCP_INV_OPTION 0x08 /* Invert the sense of option test. */ +#define XT_TCP_INV_MASK 0x0F /* All possible flags. */ + +/* UDP matching stuff */ +struct xt_udp { + __u16 spts[2]; /* Source port range. */ + __u16 dpts[2]; /* Destination port range. */ + __u8 invflags; /* Inverse flags */ +}; + +/* Values for "invflags" field in struct ipt_udp. */ +#define XT_UDP_INV_SRCPT 0x01 /* Invert the sense of source ports. */ +#define XT_UDP_INV_DSTPT 0x02 /* Invert the sense of dest ports. */ +#define XT_UDP_INV_MASK 0x03 /* All possible flags. */ + + +#endif diff --git a/kernel_headers/linux/netfilter/xt_time.h b/kernel_headers/linux/netfilter/xt_time.h new file mode 100644 index 0000000..0958860 --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_time.h @@ -0,0 +1,32 @@ +#ifndef _XT_TIME_H +#define _XT_TIME_H 1 + +#include + +struct xt_time_info { + __u32 date_start; + __u32 date_stop; + __u32 daytime_start; + __u32 daytime_stop; + __u32 monthdays_match; + __u8 weekdays_match; + __u8 flags; +}; + +enum { + /* Match against local time (instead of UTC) */ + XT_TIME_LOCAL_TZ = 1 << 0, + + /* treat timestart > timestop (e.g. 23:00-01:00) as single period */ + XT_TIME_CONTIGUOUS = 1 << 1, + + /* Shortcuts */ + XT_TIME_ALL_MONTHDAYS = 0xFFFFFFFE, + XT_TIME_ALL_WEEKDAYS = 0xFE, + XT_TIME_MIN_DAYTIME = 0, + XT_TIME_MAX_DAYTIME = 24 * 60 * 60 - 1, +}; + +#define XT_TIME_ALL_FLAGS (XT_TIME_LOCAL_TZ|XT_TIME_CONTIGUOUS) + +#endif /* _XT_TIME_H */ diff --git a/kernel_headers/linux/netfilter/xt_u32.h b/kernel_headers/linux/netfilter/xt_u32.h new file mode 100644 index 0000000..04d1bfe --- /dev/null +++ b/kernel_headers/linux/netfilter/xt_u32.h @@ -0,0 +1,42 @@ +#ifndef _XT_U32_H +#define _XT_U32_H 1 + +#include + +enum xt_u32_ops { + XT_U32_AND, + XT_U32_LEFTSH, + XT_U32_RIGHTSH, + XT_U32_AT, +}; + +struct xt_u32_location_element { + __u32 number; + __u8 nextop; +}; + +struct xt_u32_value_element { + __u32 min; + __u32 max; +}; + +/* + * Any way to allow for an arbitrary number of elements? + * For now, I settle with a limit of 10 each. + */ +#define XT_U32_MAXSIZE 10 + +struct xt_u32_test { + struct xt_u32_location_element location[XT_U32_MAXSIZE+1]; + struct xt_u32_value_element value[XT_U32_MAXSIZE+1]; + __u8 nnums; + __u8 nvalues; +}; + +struct xt_u32 { + struct xt_u32_test tests[XT_U32_MAXSIZE+1]; + __u8 ntests; + __u8 invert; +}; + +#endif /* _XT_U32_H */ diff --git a/kernel_headers/linux/netfilter_arp.h b/kernel_headers/linux/netfilter_arp.h new file mode 100644 index 0000000..92bc6dd --- /dev/null +++ b/kernel_headers/linux/netfilter_arp.h @@ -0,0 +1,19 @@ +#ifndef __LINUX_ARP_NETFILTER_H +#define __LINUX_ARP_NETFILTER_H + +/* ARP-specific defines for netfilter. + * (C)2002 Rusty Russell IBM -- This code is GPL. + */ + +#include + +/* There is no PF_ARP. */ +#define NF_ARP 0 + +/* ARP Hooks */ +#define NF_ARP_IN 0 +#define NF_ARP_OUT 1 +#define NF_ARP_FORWARD 2 +#define NF_ARP_NUMHOOKS 3 + +#endif /* __LINUX_ARP_NETFILTER_H */ diff --git a/kernel_headers/linux/netfilter_arp/..install.cmd b/kernel_headers/linux/netfilter_arp/..install.cmd new file mode 100644 index 0000000..54d0e2a --- /dev/null +++ b/kernel_headers/linux/netfilter_arp/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_arp/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_arp /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/netfilter_arp arp_tables.h arpt_mangle.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_arp /android/kernels/moto/surnia/kernel-msm/include/linux/netfilter_arp ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_arp /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/netfilter_arp ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_arp/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_arp/.install diff --git a/kernel_headers/linux/netfilter_arp/.install b/kernel_headers/linux/netfilter_arp/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/netfilter_arp/arp_tables.h b/kernel_headers/linux/netfilter_arp/arp_tables.h new file mode 100644 index 0000000..bb1ec64 --- /dev/null +++ b/kernel_headers/linux/netfilter_arp/arp_tables.h @@ -0,0 +1,204 @@ +/* + * Format of an ARP firewall descriptor + * + * src, tgt, src_mask, tgt_mask, arpop, arpop_mask are always stored in + * network byte order. + * flags are stored in host byte order (of course). + */ + +#ifndef _ARPTABLES_H +#define _ARPTABLES_H + +#include + +#include + +#include + +#define ARPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN +#define ARPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN +#define arpt_entry_target xt_entry_target +#define arpt_standard_target xt_standard_target +#define arpt_error_target xt_error_target +#define ARPT_CONTINUE XT_CONTINUE +#define ARPT_RETURN XT_RETURN +#define arpt_counters_info xt_counters_info +#define arpt_counters xt_counters +#define ARPT_STANDARD_TARGET XT_STANDARD_TARGET +#define ARPT_ERROR_TARGET XT_ERROR_TARGET +#define ARPT_ENTRY_ITERATE(entries, size, fn, args...) \ + XT_ENTRY_ITERATE(struct arpt_entry, entries, size, fn, ## args) + +#define ARPT_DEV_ADDR_LEN_MAX 16 + +struct arpt_devaddr_info { + char addr[ARPT_DEV_ADDR_LEN_MAX]; + char mask[ARPT_DEV_ADDR_LEN_MAX]; +}; + +/* Yes, Virginia, you have to zero the padding. */ +struct arpt_arp { + /* Source and target IP addr */ + struct in_addr src, tgt; + /* Mask for src and target IP addr */ + struct in_addr smsk, tmsk; + + /* Device hw address length, src+target device addresses */ + __u8 arhln, arhln_mask; + struct arpt_devaddr_info src_devaddr; + struct arpt_devaddr_info tgt_devaddr; + + /* ARP operation code. */ + __be16 arpop, arpop_mask; + + /* ARP hardware address and protocol address format. */ + __be16 arhrd, arhrd_mask; + __be16 arpro, arpro_mask; + + /* The protocol address length is only accepted if it is 4 + * so there is no use in offering a way to do filtering on it. + */ + + char iniface[IFNAMSIZ], outiface[IFNAMSIZ]; + unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ]; + + /* Flags word */ + __u8 flags; + /* Inverse flags */ + __u16 invflags; +}; + +/* Values for "flag" field in struct arpt_ip (general arp structure). + * No flags defined yet. + */ +#define ARPT_F_MASK 0x00 /* All possible flag bits mask. */ + +/* Values for "inv" field in struct arpt_arp. */ +#define ARPT_INV_VIA_IN 0x0001 /* Invert the sense of IN IFACE. */ +#define ARPT_INV_VIA_OUT 0x0002 /* Invert the sense of OUT IFACE */ +#define ARPT_INV_SRCIP 0x0004 /* Invert the sense of SRC IP. */ +#define ARPT_INV_TGTIP 0x0008 /* Invert the sense of TGT IP. */ +#define ARPT_INV_SRCDEVADDR 0x0010 /* Invert the sense of SRC DEV ADDR. */ +#define ARPT_INV_TGTDEVADDR 0x0020 /* Invert the sense of TGT DEV ADDR. */ +#define ARPT_INV_ARPOP 0x0040 /* Invert the sense of ARP OP. */ +#define ARPT_INV_ARPHRD 0x0080 /* Invert the sense of ARP HRD. */ +#define ARPT_INV_ARPPRO 0x0100 /* Invert the sense of ARP PRO. */ +#define ARPT_INV_ARPHLN 0x0200 /* Invert the sense of ARP HLN. */ +#define ARPT_INV_MASK 0x03FF /* All possible flag bits mask. */ + +/* This structure defines each of the firewall rules. Consists of 3 + parts which are 1) general ARP header stuff 2) match specific + stuff 3) the target to perform if the rule matches */ +struct arpt_entry +{ + struct arpt_arp arp; + + /* Size of arpt_entry + matches */ + __u16 target_offset; + /* Size of arpt_entry + matches + target */ + __u16 next_offset; + + /* Back pointer */ + unsigned int comefrom; + + /* Packet and byte counters. */ + struct xt_counters counters; + + /* The matches (if any), then the target. */ + unsigned char elems[0]; +}; + +/* + * New IP firewall options for [gs]etsockopt at the RAW IP level. + * Unlike BSD Linux inherits IP options so you don't have to use a raw + * socket for this. Instead we check rights in the calls. + * + * ATTENTION: check linux/in.h before adding new number here. + */ +#define ARPT_BASE_CTL 96 + +#define ARPT_SO_SET_REPLACE (ARPT_BASE_CTL) +#define ARPT_SO_SET_ADD_COUNTERS (ARPT_BASE_CTL + 1) +#define ARPT_SO_SET_MAX ARPT_SO_SET_ADD_COUNTERS + +#define ARPT_SO_GET_INFO (ARPT_BASE_CTL) +#define ARPT_SO_GET_ENTRIES (ARPT_BASE_CTL + 1) +/* #define ARPT_SO_GET_REVISION_MATCH (APRT_BASE_CTL + 2) */ +#define ARPT_SO_GET_REVISION_TARGET (ARPT_BASE_CTL + 3) +#define ARPT_SO_GET_MAX (ARPT_SO_GET_REVISION_TARGET) + +/* The argument to ARPT_SO_GET_INFO */ +struct arpt_getinfo { + /* Which table: caller fills this in. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* Kernel fills these in. */ + /* Which hook entry points are valid: bitmask */ + unsigned int valid_hooks; + + /* Hook entry points: one per netfilter hook. */ + unsigned int hook_entry[NF_ARP_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_ARP_NUMHOOKS]; + + /* Number of entries */ + unsigned int num_entries; + + /* Size of entries. */ + unsigned int size; +}; + +/* The argument to ARPT_SO_SET_REPLACE. */ +struct arpt_replace { + /* Which table. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* Which hook entry points are valid: bitmask. You can't + change this. */ + unsigned int valid_hooks; + + /* Number of entries */ + unsigned int num_entries; + + /* Total size of new entries */ + unsigned int size; + + /* Hook entry points. */ + unsigned int hook_entry[NF_ARP_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_ARP_NUMHOOKS]; + + /* Information about old entries: */ + /* Number of counters (must be equal to current number of entries). */ + unsigned int num_counters; + /* The old entries' counters. */ + struct xt_counters *counters; + + /* The entries (hang off end: not really an array). */ + struct arpt_entry entries[0]; +}; + +/* The argument to ARPT_SO_GET_ENTRIES. */ +struct arpt_get_entries { + /* Which table: user fills this in. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* User fills this in: total entry size. */ + unsigned int size; + + /* The entries. */ + struct arpt_entry entrytable[0]; +}; + +/* Helper functions */ +static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e) +{ + return (void *)e + e->target_offset; +} + +/* + * Main firewall chains definitions and global var's definitions. + */ +#endif /* _ARPTABLES_H */ diff --git a/kernel_headers/linux/netfilter_arp/arpt_mangle.h b/kernel_headers/linux/netfilter_arp/arpt_mangle.h new file mode 100644 index 0000000..250f502 --- /dev/null +++ b/kernel_headers/linux/netfilter_arp/arpt_mangle.h @@ -0,0 +1,26 @@ +#ifndef _ARPT_MANGLE_H +#define _ARPT_MANGLE_H +#include + +#define ARPT_MANGLE_ADDR_LEN_MAX sizeof(struct in_addr) +struct arpt_mangle +{ + char src_devaddr[ARPT_DEV_ADDR_LEN_MAX]; + char tgt_devaddr[ARPT_DEV_ADDR_LEN_MAX]; + union { + struct in_addr src_ip; + } u_s; + union { + struct in_addr tgt_ip; + } u_t; + u_int8_t flags; + int target; +}; + +#define ARPT_MANGLE_SDEV 0x01 +#define ARPT_MANGLE_TDEV 0x02 +#define ARPT_MANGLE_SIP 0x04 +#define ARPT_MANGLE_TIP 0x08 +#define ARPT_MANGLE_MASK 0x0f + +#endif /* _ARPT_MANGLE_H */ diff --git a/kernel_headers/linux/netfilter_bridge.h b/kernel_headers/linux/netfilter_bridge.h new file mode 100644 index 0000000..c4dbfd9 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge.h @@ -0,0 +1,27 @@ +#ifndef __LINUX_BRIDGE_NETFILTER_H +#define __LINUX_BRIDGE_NETFILTER_H + +/* bridge-specific defines for netfilter. + */ + +#include +#include +#include +#include + +/* Bridge Hooks */ +/* After promisc drops, checksum checks. */ +#define NF_BR_PRE_ROUTING 0 +/* If the packet is destined for this box. */ +#define NF_BR_LOCAL_IN 1 +/* If the packet is destined for another interface. */ +#define NF_BR_FORWARD 2 +/* Packets coming from a local process. */ +#define NF_BR_LOCAL_OUT 3 +/* Packets about to hit the wire. */ +#define NF_BR_POST_ROUTING 4 +/* Not really a hook, but used for the ebtables broute table */ +#define NF_BR_BROUTING 5 +#define NF_BR_NUMHOOKS 6 + +#endif /* __LINUX_BRIDGE_NETFILTER_H */ diff --git a/kernel_headers/linux/netfilter_bridge/..install.cmd b/kernel_headers/linux/netfilter_bridge/..install.cmd new file mode 100644 index 0000000..a6ae3e8 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_bridge/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_bridge /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/netfilter_bridge ebt_802_3.h ebt_among.h ebt_arp.h ebt_arpreply.h ebt_ip.h ebt_ip6.h ebt_limit.h ebt_log.h ebt_mark_m.h ebt_mark_t.h ebt_nat.h ebt_nflog.h ebt_pkttype.h ebt_redirect.h ebt_stp.h ebt_ulog.h ebt_vlan.h ebtables.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_bridge /android/kernels/moto/surnia/kernel-msm/include/linux/netfilter_bridge ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_bridge /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/netfilter_bridge ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_bridge/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_bridge/.install diff --git a/kernel_headers/linux/netfilter_bridge/.install b/kernel_headers/linux/netfilter_bridge/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/netfilter_bridge/ebt_802_3.h b/kernel_headers/linux/netfilter_bridge/ebt_802_3.h new file mode 100644 index 0000000..a947464 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_802_3.h @@ -0,0 +1,62 @@ +#ifndef __LINUX_BRIDGE_EBT_802_3_H +#define __LINUX_BRIDGE_EBT_802_3_H + +#include + +#define EBT_802_3_SAP 0x01 +#define EBT_802_3_TYPE 0x02 + +#define EBT_802_3_MATCH "802_3" + +/* + * If frame has DSAP/SSAP value 0xaa you must check the SNAP type + * to discover what kind of packet we're carrying. + */ +#define CHECK_TYPE 0xaa + +/* + * Control field may be one or two bytes. If the first byte has + * the value 0x03 then the entire length is one byte, otherwise it is two. + * One byte controls are used in Unnumbered Information frames. + * Two byte controls are used in Numbered Information frames. + */ +#define IS_UI 0x03 + +#define EBT_802_3_MASK (EBT_802_3_SAP | EBT_802_3_TYPE | EBT_802_3) + +/* ui has one byte ctrl, ni has two */ +struct hdr_ui { + __u8 dsap; + __u8 ssap; + __u8 ctrl; + __u8 orig[3]; + __be16 type; +}; + +struct hdr_ni { + __u8 dsap; + __u8 ssap; + __be16 ctrl; + __u8 orig[3]; + __be16 type; +}; + +struct ebt_802_3_hdr { + __u8 daddr[6]; + __u8 saddr[6]; + __be16 len; + union { + struct hdr_ui ui; + struct hdr_ni ni; + } llc; +}; + + +struct ebt_802_3_info { + __u8 sap; + __be16 type; + __u8 bitmask; + __u8 invflags; +}; + +#endif /* __LINUX_BRIDGE_EBT_802_3_H */ diff --git a/kernel_headers/linux/netfilter_bridge/ebt_among.h b/kernel_headers/linux/netfilter_bridge/ebt_among.h new file mode 100644 index 0000000..bd4e3ad --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_among.h @@ -0,0 +1,64 @@ +#ifndef __LINUX_BRIDGE_EBT_AMONG_H +#define __LINUX_BRIDGE_EBT_AMONG_H + +#include + +#define EBT_AMONG_DST 0x01 +#define EBT_AMONG_SRC 0x02 + +/* Grzegorz Borowiak 2003 + * + * Write-once-read-many hash table, used for checking if a given + * MAC address belongs to a set or not and possibly for checking + * if it is related with a given IPv4 address. + * + * The hash value of an address is its last byte. + * + * In real-world ethernet addresses, values of the last byte are + * evenly distributed and there is no need to consider other bytes. + * It would only slow the routines down. + * + * For MAC address comparison speedup reasons, we introduce a trick. + * MAC address is mapped onto an array of two 32-bit integers. + * This pair of integers is compared with MAC addresses in the + * hash table, which are stored also in form of pairs of integers + * (in `cmp' array). This is quick as it requires only two elementary + * number comparisons in worst case. Further, we take advantage of + * fact that entropy of 3 last bytes of address is larger than entropy + * of 3 first bytes. So first we compare 4 last bytes of addresses and + * if they are the same we compare 2 first. + * + * Yes, it is a memory overhead, but in 2003 AD, who cares? + */ + +struct ebt_mac_wormhash_tuple { + __u32 cmp[2]; + __be32 ip; +}; + +struct ebt_mac_wormhash { + int table[257]; + int poolsize; + struct ebt_mac_wormhash_tuple pool[0]; +}; + +#define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \ + + (x)->poolsize * sizeof(struct ebt_mac_wormhash_tuple) : 0) + +struct ebt_among_info { + int wh_dst_ofs; + int wh_src_ofs; + int bitmask; +}; + +#define EBT_AMONG_DST_NEG 0x1 +#define EBT_AMONG_SRC_NEG 0x2 + +#define ebt_among_wh_dst(x) ((x)->wh_dst_ofs ? \ + (struct ebt_mac_wormhash*)((char*)(x) + (x)->wh_dst_ofs) : NULL) +#define ebt_among_wh_src(x) ((x)->wh_src_ofs ? \ + (struct ebt_mac_wormhash*)((char*)(x) + (x)->wh_src_ofs) : NULL) + +#define EBT_AMONG_MATCH "among" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_arp.h b/kernel_headers/linux/netfilter_bridge/ebt_arp.h new file mode 100644 index 0000000..522f3e4 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_arp.h @@ -0,0 +1,36 @@ +#ifndef __LINUX_BRIDGE_EBT_ARP_H +#define __LINUX_BRIDGE_EBT_ARP_H + +#include + +#define EBT_ARP_OPCODE 0x01 +#define EBT_ARP_HTYPE 0x02 +#define EBT_ARP_PTYPE 0x04 +#define EBT_ARP_SRC_IP 0x08 +#define EBT_ARP_DST_IP 0x10 +#define EBT_ARP_SRC_MAC 0x20 +#define EBT_ARP_DST_MAC 0x40 +#define EBT_ARP_GRAT 0x80 +#define EBT_ARP_MASK (EBT_ARP_OPCODE | EBT_ARP_HTYPE | EBT_ARP_PTYPE | \ + EBT_ARP_SRC_IP | EBT_ARP_DST_IP | EBT_ARP_SRC_MAC | EBT_ARP_DST_MAC | \ + EBT_ARP_GRAT) +#define EBT_ARP_MATCH "arp" + +struct ebt_arp_info +{ + __be16 htype; + __be16 ptype; + __be16 opcode; + __be32 saddr; + __be32 smsk; + __be32 daddr; + __be32 dmsk; + unsigned char smaddr[ETH_ALEN]; + unsigned char smmsk[ETH_ALEN]; + unsigned char dmaddr[ETH_ALEN]; + unsigned char dmmsk[ETH_ALEN]; + __u8 bitmask; + __u8 invflags; +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_arpreply.h b/kernel_headers/linux/netfilter_bridge/ebt_arpreply.h new file mode 100644 index 0000000..7e77896 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_arpreply.h @@ -0,0 +1,10 @@ +#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H +#define __LINUX_BRIDGE_EBT_ARPREPLY_H + +struct ebt_arpreply_info { + unsigned char mac[ETH_ALEN]; + int target; +}; +#define EBT_ARPREPLY_TARGET "arpreply" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_ip.h b/kernel_headers/linux/netfilter_bridge/ebt_ip.h new file mode 100644 index 0000000..c4bbc41 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_ip.h @@ -0,0 +1,44 @@ +/* + * ebt_ip + * + * Authors: + * Bart De Schuymer + * + * April, 2002 + * + * Changes: + * added ip-sport and ip-dport + * Innominate Security Technologies AG + * September, 2002 + */ + +#ifndef __LINUX_BRIDGE_EBT_IP_H +#define __LINUX_BRIDGE_EBT_IP_H + +#include + +#define EBT_IP_SOURCE 0x01 +#define EBT_IP_DEST 0x02 +#define EBT_IP_TOS 0x04 +#define EBT_IP_PROTO 0x08 +#define EBT_IP_SPORT 0x10 +#define EBT_IP_DPORT 0x20 +#define EBT_IP_MASK (EBT_IP_SOURCE | EBT_IP_DEST | EBT_IP_TOS | EBT_IP_PROTO |\ + EBT_IP_SPORT | EBT_IP_DPORT ) +#define EBT_IP_MATCH "ip" + +/* the same values are used for the invflags */ +struct ebt_ip_info { + __be32 saddr; + __be32 daddr; + __be32 smsk; + __be32 dmsk; + __u8 tos; + __u8 protocol; + __u8 bitmask; + __u8 invflags; + __u16 sport[2]; + __u16 dport[2]; +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_ip6.h b/kernel_headers/linux/netfilter_bridge/ebt_ip6.h new file mode 100644 index 0000000..42b8896 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_ip6.h @@ -0,0 +1,50 @@ +/* + * ebt_ip6 + * + * Authors: + * Kuo-Lang Tseng + * Manohar Castelino + * + * Jan 11, 2008 + * + */ + +#ifndef __LINUX_BRIDGE_EBT_IP6_H +#define __LINUX_BRIDGE_EBT_IP6_H + +#include + +#define EBT_IP6_SOURCE 0x01 +#define EBT_IP6_DEST 0x02 +#define EBT_IP6_TCLASS 0x04 +#define EBT_IP6_PROTO 0x08 +#define EBT_IP6_SPORT 0x10 +#define EBT_IP6_DPORT 0x20 +#define EBT_IP6_ICMP6 0x40 + +#define EBT_IP6_MASK (EBT_IP6_SOURCE | EBT_IP6_DEST | EBT_IP6_TCLASS |\ + EBT_IP6_PROTO | EBT_IP6_SPORT | EBT_IP6_DPORT | \ + EBT_IP6_ICMP6) +#define EBT_IP6_MATCH "ip6" + +/* the same values are used for the invflags */ +struct ebt_ip6_info { + struct in6_addr saddr; + struct in6_addr daddr; + struct in6_addr smsk; + struct in6_addr dmsk; + __u8 tclass; + __u8 protocol; + __u8 bitmask; + __u8 invflags; + union { + __u16 sport[2]; + __u8 icmpv6_type[2]; + }; + union { + __u16 dport[2]; + __u8 icmpv6_code[2]; + }; +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_limit.h b/kernel_headers/linux/netfilter_bridge/ebt_limit.h new file mode 100644 index 0000000..66d80b3 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_limit.h @@ -0,0 +1,24 @@ +#ifndef __LINUX_BRIDGE_EBT_LIMIT_H +#define __LINUX_BRIDGE_EBT_LIMIT_H + +#include + +#define EBT_LIMIT_MATCH "limit" + +/* timings are in milliseconds. */ +#define EBT_LIMIT_SCALE 10000 + +/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 + seconds, or one every 59 hours. */ + +struct ebt_limit_info { + __u32 avg; /* Average secs between packets * scale */ + __u32 burst; /* Period multiplier for upper limit. */ + + /* Used internally by the kernel */ + unsigned long prev; + __u32 credit; + __u32 credit_cap, cost; +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_log.h b/kernel_headers/linux/netfilter_bridge/ebt_log.h new file mode 100644 index 0000000..7e7f1d1 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_log.h @@ -0,0 +1,20 @@ +#ifndef __LINUX_BRIDGE_EBT_LOG_H +#define __LINUX_BRIDGE_EBT_LOG_H + +#include + +#define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */ +#define EBT_LOG_ARP 0x02 +#define EBT_LOG_NFLOG 0x04 +#define EBT_LOG_IP6 0x08 +#define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP | EBT_LOG_IP6) +#define EBT_LOG_PREFIX_SIZE 30 +#define EBT_LOG_WATCHER "log" + +struct ebt_log_info { + __u8 loglevel; + __u8 prefix[EBT_LOG_PREFIX_SIZE]; + __u32 bitmask; +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_mark_m.h b/kernel_headers/linux/netfilter_bridge/ebt_mark_m.h new file mode 100644 index 0000000..410f9e5 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_mark_m.h @@ -0,0 +1,16 @@ +#ifndef __LINUX_BRIDGE_EBT_MARK_M_H +#define __LINUX_BRIDGE_EBT_MARK_M_H + +#include + +#define EBT_MARK_AND 0x01 +#define EBT_MARK_OR 0x02 +#define EBT_MARK_MASK (EBT_MARK_AND | EBT_MARK_OR) +struct ebt_mark_m_info { + unsigned long mark, mask; + __u8 invert; + __u8 bitmask; +}; +#define EBT_MARK_MATCH "mark_m" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_mark_t.h b/kernel_headers/linux/netfilter_bridge/ebt_mark_t.h new file mode 100644 index 0000000..7d5a268 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_mark_t.h @@ -0,0 +1,23 @@ +#ifndef __LINUX_BRIDGE_EBT_MARK_T_H +#define __LINUX_BRIDGE_EBT_MARK_T_H + +/* The target member is reused for adding new actions, the + * value of the real target is -1 to -NUM_STANDARD_TARGETS. + * For backward compatibility, the 4 lsb (2 would be enough, + * but let's play it safe) are kept to designate this target. + * The remaining bits designate the action. By making the set + * action 0xfffffff0, the result will look ok for older + * versions. [September 2006] */ +#define MARK_SET_VALUE (0xfffffff0) +#define MARK_OR_VALUE (0xffffffe0) +#define MARK_AND_VALUE (0xffffffd0) +#define MARK_XOR_VALUE (0xffffffc0) + +struct ebt_mark_t_info { + unsigned long mark; + /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */ + int target; +}; +#define EBT_MARK_TARGET "mark" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_nat.h b/kernel_headers/linux/netfilter_bridge/ebt_nat.h new file mode 100644 index 0000000..5e74e3b --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_nat.h @@ -0,0 +1,13 @@ +#ifndef __LINUX_BRIDGE_EBT_NAT_H +#define __LINUX_BRIDGE_EBT_NAT_H + +#define NAT_ARP_BIT (0x00000010) +struct ebt_nat_info { + unsigned char mac[ETH_ALEN]; + /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */ + int target; +}; +#define EBT_SNAT_TARGET "snat" +#define EBT_DNAT_TARGET "dnat" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_nflog.h b/kernel_headers/linux/netfilter_bridge/ebt_nflog.h new file mode 100644 index 0000000..df829fc --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_nflog.h @@ -0,0 +1,23 @@ +#ifndef __LINUX_BRIDGE_EBT_NFLOG_H +#define __LINUX_BRIDGE_EBT_NFLOG_H + +#include + +#define EBT_NFLOG_MASK 0x0 + +#define EBT_NFLOG_PREFIX_SIZE 64 +#define EBT_NFLOG_WATCHER "nflog" + +#define EBT_NFLOG_DEFAULT_GROUP 0x1 +#define EBT_NFLOG_DEFAULT_THRESHOLD 1 + +struct ebt_nflog_info { + __u32 len; + __u16 group; + __u16 threshold; + __u16 flags; + __u16 pad; + char prefix[EBT_NFLOG_PREFIX_SIZE]; +}; + +#endif /* __LINUX_BRIDGE_EBT_NFLOG_H */ diff --git a/kernel_headers/linux/netfilter_bridge/ebt_pkttype.h b/kernel_headers/linux/netfilter_bridge/ebt_pkttype.h new file mode 100644 index 0000000..c241bad --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_pkttype.h @@ -0,0 +1,12 @@ +#ifndef __LINUX_BRIDGE_EBT_PKTTYPE_H +#define __LINUX_BRIDGE_EBT_PKTTYPE_H + +#include + +struct ebt_pkttype_info { + __u8 pkt_type; + __u8 invert; +}; +#define EBT_PKTTYPE_MATCH "pkttype" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_redirect.h b/kernel_headers/linux/netfilter_bridge/ebt_redirect.h new file mode 100644 index 0000000..dd9622c --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_redirect.h @@ -0,0 +1,10 @@ +#ifndef __LINUX_BRIDGE_EBT_REDIRECT_H +#define __LINUX_BRIDGE_EBT_REDIRECT_H + +struct ebt_redirect_info { + /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */ + int target; +}; +#define EBT_REDIRECT_TARGET "redirect" + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_stp.h b/kernel_headers/linux/netfilter_bridge/ebt_stp.h new file mode 100644 index 0000000..1025b9f --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_stp.h @@ -0,0 +1,46 @@ +#ifndef __LINUX_BRIDGE_EBT_STP_H +#define __LINUX_BRIDGE_EBT_STP_H + +#include + +#define EBT_STP_TYPE 0x0001 + +#define EBT_STP_FLAGS 0x0002 +#define EBT_STP_ROOTPRIO 0x0004 +#define EBT_STP_ROOTADDR 0x0008 +#define EBT_STP_ROOTCOST 0x0010 +#define EBT_STP_SENDERPRIO 0x0020 +#define EBT_STP_SENDERADDR 0x0040 +#define EBT_STP_PORT 0x0080 +#define EBT_STP_MSGAGE 0x0100 +#define EBT_STP_MAXAGE 0x0200 +#define EBT_STP_HELLOTIME 0x0400 +#define EBT_STP_FWDD 0x0800 + +#define EBT_STP_MASK 0x0fff +#define EBT_STP_CONFIG_MASK 0x0ffe + +#define EBT_STP_MATCH "stp" + +struct ebt_stp_config_info { + __u8 flags; + __u16 root_priol, root_priou; + char root_addr[6], root_addrmsk[6]; + __u32 root_costl, root_costu; + __u16 sender_priol, sender_priou; + char sender_addr[6], sender_addrmsk[6]; + __u16 portl, portu; + __u16 msg_agel, msg_ageu; + __u16 max_agel, max_ageu; + __u16 hello_timel, hello_timeu; + __u16 forward_delayl, forward_delayu; +}; + +struct ebt_stp_info { + __u8 type; + struct ebt_stp_config_info config; + __u16 bitmask; + __u16 invflags; +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebt_ulog.h b/kernel_headers/linux/netfilter_bridge/ebt_ulog.h new file mode 100644 index 0000000..89a6bec --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_ulog.h @@ -0,0 +1,38 @@ +#ifndef _EBT_ULOG_H +#define _EBT_ULOG_H + +#include + +#define EBT_ULOG_DEFAULT_NLGROUP 0 +#define EBT_ULOG_DEFAULT_QTHRESHOLD 1 +#define EBT_ULOG_MAXNLGROUPS 32 /* hardcoded netlink max */ +#define EBT_ULOG_PREFIX_LEN 32 +#define EBT_ULOG_MAX_QLEN 50 +#define EBT_ULOG_WATCHER "ulog" +#define EBT_ULOG_VERSION 1 + +struct ebt_ulog_info { + __u32 nlgroup; + unsigned int cprange; + unsigned int qthreshold; + char prefix[EBT_ULOG_PREFIX_LEN]; +}; + +typedef struct ebt_ulog_packet_msg { + int version; + char indev[IFNAMSIZ]; + char outdev[IFNAMSIZ]; + char physindev[IFNAMSIZ]; + char physoutdev[IFNAMSIZ]; + char prefix[EBT_ULOG_PREFIX_LEN]; + struct timeval stamp; + unsigned long mark; + unsigned int hook; + size_t data_len; + /* The complete packet, including Ethernet header and perhaps + * the VLAN header is appended */ + unsigned char data[0] __attribute__ + ((aligned (__alignof__(struct ebt_ulog_info)))); +} ebt_ulog_packet_msg_t; + +#endif /* _EBT_ULOG_H */ diff --git a/kernel_headers/linux/netfilter_bridge/ebt_vlan.h b/kernel_headers/linux/netfilter_bridge/ebt_vlan.h new file mode 100644 index 0000000..967d1d5 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebt_vlan.h @@ -0,0 +1,22 @@ +#ifndef __LINUX_BRIDGE_EBT_VLAN_H +#define __LINUX_BRIDGE_EBT_VLAN_H + +#include + +#define EBT_VLAN_ID 0x01 +#define EBT_VLAN_PRIO 0x02 +#define EBT_VLAN_ENCAP 0x04 +#define EBT_VLAN_MASK (EBT_VLAN_ID | EBT_VLAN_PRIO | EBT_VLAN_ENCAP) +#define EBT_VLAN_MATCH "vlan" + +struct ebt_vlan_info { + __u16 id; /* VLAN ID {1-4095} */ + __u8 prio; /* VLAN User Priority {0-7} */ + __be16 encap; /* VLAN Encapsulated frame code {0-65535} */ + __u8 bitmask; /* Args bitmask bit 1=1 - ID arg, + bit 2=1 User-Priority arg, bit 3=1 encap*/ + __u8 invflags; /* Inverse bitmask bit 1=1 - inversed ID arg, + bit 2=1 - inversed Pirority arg */ +}; + +#endif diff --git a/kernel_headers/linux/netfilter_bridge/ebtables.h b/kernel_headers/linux/netfilter_bridge/ebtables.h new file mode 100644 index 0000000..fb627f9 --- /dev/null +++ b/kernel_headers/linux/netfilter_bridge/ebtables.h @@ -0,0 +1,268 @@ +/* + * ebtables + * + * Authors: + * Bart De Schuymer + * + * ebtables.c,v 2.0, April, 2002 + * + * This code is stongly inspired on the iptables code which is + * Copyright (C) 1999 Paul `Rusty' Russell & Michael J. Neuling + */ + +#ifndef __LINUX_BRIDGE_EFF_H +#define __LINUX_BRIDGE_EFF_H +#include +#include +#include + +#define EBT_TABLE_MAXNAMELEN 32 +#define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN +#define EBT_FUNCTION_MAXNAMELEN EBT_TABLE_MAXNAMELEN + +/* verdicts >0 are "branches" */ +#define EBT_ACCEPT -1 +#define EBT_DROP -2 +#define EBT_CONTINUE -3 +#define EBT_RETURN -4 +#define NUM_STANDARD_TARGETS 4 +/* ebtables target modules store the verdict inside an int. We can + * reclaim a part of this int for backwards compatible extensions. + * The 4 lsb are more than enough to store the verdict. */ +#define EBT_VERDICT_BITS 0x0000000F + +struct xt_match; +struct xt_target; + +struct ebt_counter { + uint64_t pcnt; + uint64_t bcnt; +}; + +struct ebt_replace { + char name[EBT_TABLE_MAXNAMELEN]; + unsigned int valid_hooks; + /* nr of rules in the table */ + unsigned int nentries; + /* total size of the entries */ + unsigned int entries_size; + /* start of the chains */ + struct ebt_entries *hook_entry[NF_BR_NUMHOOKS]; + /* nr of counters userspace expects back */ + unsigned int num_counters; + /* where the kernel will put the old counters */ + struct ebt_counter *counters; + char *entries; +}; + +struct ebt_replace_kernel { + char name[EBT_TABLE_MAXNAMELEN]; + unsigned int valid_hooks; + /* nr of rules in the table */ + unsigned int nentries; + /* total size of the entries */ + unsigned int entries_size; + /* start of the chains */ + struct ebt_entries *hook_entry[NF_BR_NUMHOOKS]; + /* nr of counters userspace expects back */ + unsigned int num_counters; + /* where the kernel will put the old counters */ + struct ebt_counter *counters; + char *entries; +}; + +struct ebt_entries { + /* this field is always set to zero + * See EBT_ENTRY_OR_ENTRIES. + * Must be same size as ebt_entry.bitmask */ + unsigned int distinguisher; + /* the chain name */ + char name[EBT_CHAIN_MAXNAMELEN]; + /* counter offset for this chain */ + unsigned int counter_offset; + /* one standard (accept, drop, return) per hook */ + int policy; + /* nr. of entries */ + unsigned int nentries; + /* entry list */ + char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); +}; + +/* used for the bitmask of struct ebt_entry */ + +/* This is a hack to make a difference between an ebt_entry struct and an + * ebt_entries struct when traversing the entries from start to end. + * Using this simplifies the code a lot, while still being able to use + * ebt_entries. + * Contrary, iptables doesn't use something like ebt_entries and therefore uses + * different techniques for naming the policy and such. So, iptables doesn't + * need a hack like this. + */ +#define EBT_ENTRY_OR_ENTRIES 0x01 +/* these are the normal masks */ +#define EBT_NOPROTO 0x02 +#define EBT_802_3 0x04 +#define EBT_SOURCEMAC 0x08 +#define EBT_DESTMAC 0x10 +#define EBT_F_MASK (EBT_NOPROTO | EBT_802_3 | EBT_SOURCEMAC | EBT_DESTMAC \ + | EBT_ENTRY_OR_ENTRIES) + +#define EBT_IPROTO 0x01 +#define EBT_IIN 0x02 +#define EBT_IOUT 0x04 +#define EBT_ISOURCE 0x8 +#define EBT_IDEST 0x10 +#define EBT_ILOGICALIN 0x20 +#define EBT_ILOGICALOUT 0x40 +#define EBT_INV_MASK (EBT_IPROTO | EBT_IIN | EBT_IOUT | EBT_ILOGICALIN \ + | EBT_ILOGICALOUT | EBT_ISOURCE | EBT_IDEST) + +struct ebt_entry_match { + union { + char name[EBT_FUNCTION_MAXNAMELEN]; + struct xt_match *match; + } u; + /* size of data */ + unsigned int match_size; + unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); +}; + +struct ebt_entry_watcher { + union { + char name[EBT_FUNCTION_MAXNAMELEN]; + struct xt_target *watcher; + } u; + /* size of data */ + unsigned int watcher_size; + unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); +}; + +struct ebt_entry_target { + union { + char name[EBT_FUNCTION_MAXNAMELEN]; + struct xt_target *target; + } u; + /* size of data */ + unsigned int target_size; + unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); +}; + +#define EBT_STANDARD_TARGET "standard" +struct ebt_standard_target { + struct ebt_entry_target target; + int verdict; +}; + +/* one entry */ +struct ebt_entry { + /* this needs to be the first field */ + unsigned int bitmask; + unsigned int invflags; + __be16 ethproto; + /* the physical in-dev */ + char in[IFNAMSIZ]; + /* the logical in-dev */ + char logical_in[IFNAMSIZ]; + /* the physical out-dev */ + char out[IFNAMSIZ]; + /* the logical out-dev */ + char logical_out[IFNAMSIZ]; + unsigned char sourcemac[ETH_ALEN]; + unsigned char sourcemsk[ETH_ALEN]; + unsigned char destmac[ETH_ALEN]; + unsigned char destmsk[ETH_ALEN]; + /* sizeof ebt_entry + matches */ + unsigned int watchers_offset; + /* sizeof ebt_entry + matches + watchers */ + unsigned int target_offset; + /* sizeof ebt_entry + matches + watchers + target */ + unsigned int next_offset; + unsigned char elems[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); +}; + +/* {g,s}etsockopt numbers */ +#define EBT_BASE_CTL 128 + +#define EBT_SO_SET_ENTRIES (EBT_BASE_CTL) +#define EBT_SO_SET_COUNTERS (EBT_SO_SET_ENTRIES+1) +#define EBT_SO_SET_MAX (EBT_SO_SET_COUNTERS+1) + +#define EBT_SO_GET_INFO (EBT_BASE_CTL) +#define EBT_SO_GET_ENTRIES (EBT_SO_GET_INFO+1) +#define EBT_SO_GET_INIT_INFO (EBT_SO_GET_ENTRIES+1) +#define EBT_SO_GET_INIT_ENTRIES (EBT_SO_GET_INIT_INFO+1) +#define EBT_SO_GET_MAX (EBT_SO_GET_INIT_ENTRIES+1) + + +/* blatently stolen from ip_tables.h + * fn returns 0 to continue iteration */ +#define EBT_MATCH_ITERATE(e, fn, args...) \ +({ \ + unsigned int __i; \ + int __ret = 0; \ + struct ebt_entry_match *__match; \ + \ + for (__i = sizeof(struct ebt_entry); \ + __i < (e)->watchers_offset; \ + __i += __match->match_size + \ + sizeof(struct ebt_entry_match)) { \ + __match = (void *)(e) + __i; \ + \ + __ret = fn(__match , ## args); \ + if (__ret != 0) \ + break; \ + } \ + if (__ret == 0) { \ + if (__i != (e)->watchers_offset) \ + __ret = -EINVAL; \ + } \ + __ret; \ +}) + +#define EBT_WATCHER_ITERATE(e, fn, args...) \ +({ \ + unsigned int __i; \ + int __ret = 0; \ + struct ebt_entry_watcher *__watcher; \ + \ + for (__i = e->watchers_offset; \ + __i < (e)->target_offset; \ + __i += __watcher->watcher_size + \ + sizeof(struct ebt_entry_watcher)) { \ + __watcher = (void *)(e) + __i; \ + \ + __ret = fn(__watcher , ## args); \ + if (__ret != 0) \ + break; \ + } \ + if (__ret == 0) { \ + if (__i != (e)->target_offset) \ + __ret = -EINVAL; \ + } \ + __ret; \ +}) + +#define EBT_ENTRY_ITERATE(entries, size, fn, args...) \ +({ \ + unsigned int __i; \ + int __ret = 0; \ + struct ebt_entry *__entry; \ + \ + for (__i = 0; __i < (size);) { \ + __entry = (void *)(entries) + __i; \ + __ret = fn(__entry , ## args); \ + if (__ret != 0) \ + break; \ + if (__entry->bitmask != 0) \ + __i += __entry->next_offset; \ + else \ + __i += sizeof(struct ebt_entries); \ + } \ + if (__ret == 0) { \ + if (__i != (size)) \ + __ret = -EINVAL; \ + } \ + __ret; \ +}) + +#endif /* __LINUX_BRIDGE_EFF_H */ diff --git a/kernel_headers/linux/netfilter_decnet.h b/kernel_headers/linux/netfilter_decnet.h new file mode 100644 index 0000000..f1e80a9 --- /dev/null +++ b/kernel_headers/linux/netfilter_decnet.h @@ -0,0 +1,75 @@ +#ifndef __LINUX_DECNET_NETFILTER_H +#define __LINUX_DECNET_NETFILTER_H + +/* DECnet-specific defines for netfilter. + * This file (C) Steve Whitehouse 1999 derived from the + * ipv4 netfilter header file which is + * (C)1998 Rusty Russell -- This code is GPL. + */ + +#include + +/* only for userspace compatibility */ + +#include /* for INT_MIN, INT_MAX */ + +/* IP Cache bits. */ +/* Src IP address. */ +#define NFC_DN_SRC 0x0001 +/* Dest IP address. */ +#define NFC_DN_DST 0x0002 +/* Input device. */ +#define NFC_DN_IF_IN 0x0004 +/* Output device. */ +#define NFC_DN_IF_OUT 0x0008 + +/* DECnet Hooks */ +/* After promisc drops, checksum checks. */ +#define NF_DN_PRE_ROUTING 0 +/* If the packet is destined for this box. */ +#define NF_DN_LOCAL_IN 1 +/* If the packet is destined for another interface. */ +#define NF_DN_FORWARD 2 +/* Packets coming from a local process. */ +#define NF_DN_LOCAL_OUT 3 +/* Packets about to hit the wire. */ +#define NF_DN_POST_ROUTING 4 +/* Input Hello Packets */ +#define NF_DN_HELLO 5 +/* Input Routing Packets */ +#define NF_DN_ROUTE 6 +#define NF_DN_NUMHOOKS 7 + +enum nf_dn_hook_priorities { + NF_DN_PRI_FIRST = INT_MIN, + NF_DN_PRI_CONNTRACK = -200, + NF_DN_PRI_MANGLE = -150, + NF_DN_PRI_NAT_DST = -100, + NF_DN_PRI_FILTER = 0, + NF_DN_PRI_NAT_SRC = 100, + NF_DN_PRI_DNRTMSG = 200, + NF_DN_PRI_LAST = INT_MAX, +}; + +struct nf_dn_rtmsg { + int nfdn_ifindex; +}; + +#define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg))) + +/* backwards compatibility for userspace */ +#define DNRMG_L1_GROUP 0x01 +#define DNRMG_L2_GROUP 0x02 + +enum { + DNRNG_NLGRP_NONE, +#define DNRNG_NLGRP_NONE DNRNG_NLGRP_NONE + DNRNG_NLGRP_L1, +#define DNRNG_NLGRP_L1 DNRNG_NLGRP_L1 + DNRNG_NLGRP_L2, +#define DNRNG_NLGRP_L2 DNRNG_NLGRP_L2 + __DNRNG_NLGRP_MAX +}; +#define DNRNG_NLGRP_MAX (__DNRNG_NLGRP_MAX - 1) + +#endif /*__LINUX_DECNET_NETFILTER_H*/ diff --git a/kernel_headers/linux/netfilter_ipv4.h b/kernel_headers/linux/netfilter_ipv4.h new file mode 100644 index 0000000..a5f4dc7 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4.h @@ -0,0 +1,79 @@ +/* IPv4-specific defines for netfilter. + * (C)1998 Rusty Russell -- This code is GPL. + */ +#ifndef __LINUX_IP_NETFILTER_H +#define __LINUX_IP_NETFILTER_H + + +#include + +/* only for userspace compatibility */ + +#include /* for INT_MIN, INT_MAX */ + +/* IP Cache bits. */ +/* Src IP address. */ +#define NFC_IP_SRC 0x0001 +/* Dest IP address. */ +#define NFC_IP_DST 0x0002 +/* Input device. */ +#define NFC_IP_IF_IN 0x0004 +/* Output device. */ +#define NFC_IP_IF_OUT 0x0008 +/* TOS. */ +#define NFC_IP_TOS 0x0010 +/* Protocol. */ +#define NFC_IP_PROTO 0x0020 +/* IP options. */ +#define NFC_IP_OPTIONS 0x0040 +/* Frag & flags. */ +#define NFC_IP_FRAG 0x0080 + +/* Per-protocol information: only matters if proto match. */ +/* TCP flags. */ +#define NFC_IP_TCPFLAGS 0x0100 +/* Source port. */ +#define NFC_IP_SRC_PT 0x0200 +/* Dest port. */ +#define NFC_IP_DST_PT 0x0400 +/* Something else about the proto */ +#define NFC_IP_PROTO_UNKNOWN 0x2000 + +/* IP Hooks */ +/* After promisc drops, checksum checks. */ +#define NF_IP_PRE_ROUTING 0 +/* If the packet is destined for this box. */ +#define NF_IP_LOCAL_IN 1 +/* If the packet is destined for another interface. */ +#define NF_IP_FORWARD 2 +/* Packets coming from a local process. */ +#define NF_IP_LOCAL_OUT 3 +/* Packets about to hit the wire. */ +#define NF_IP_POST_ROUTING 4 +#define NF_IP_NUMHOOKS 5 + +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = INT_MIN, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = INT_MAX, + NF_IP_PRI_LAST = INT_MAX, +}; + +/* Arguments for setsockopt SOL_IP: */ +/* 2.0 firewalling went from 64 through 71 (and +256, +512, etc). */ +/* 2.2 firewalling (+ masq) went from 64 through 76 */ +/* 2.4 firewalling went 64 through 67. */ +#define SO_ORIGINAL_DST 80 + + +#endif /* __LINUX_IP_NETFILTER_H */ diff --git a/kernel_headers/linux/netfilter_ipv4/..install.cmd b/kernel_headers/linux/netfilter_ipv4/..install.cmd new file mode 100644 index 0000000..c6271c1 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv4/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv4 /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/netfilter_ipv4 ip_tables.h ipt_CLUSTERIP.h ipt_ECN.h ipt_LOG.h ipt_REJECT.h ipt_TTL.h ipt_ULOG.h ipt_ah.h ipt_ecn.h ipt_ttl.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv4 /android/kernels/moto/surnia/kernel-msm/include/linux/netfilter_ipv4 ipt_NATTYPE.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv4 /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/netfilter_ipv4 ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv4/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv4/.install diff --git a/kernel_headers/linux/netfilter_ipv4/.install b/kernel_headers/linux/netfilter_ipv4/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/netfilter_ipv4/ip_tables.h b/kernel_headers/linux/netfilter_ipv4/ip_tables.h new file mode 100644 index 0000000..38542b4 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ip_tables.h @@ -0,0 +1,227 @@ +/* + * 25-Jul-1998 Major changes to allow for ip chain table + * + * 3-Jan-2000 Named tables to allow packet selection for different uses. + */ + +/* + * Format of an IP firewall descriptor + * + * src, dst, src_mask, dst_mask are always stored in network byte order. + * flags are stored in host byte order (of course). + * Port numbers are stored in HOST byte order. + */ + +#ifndef _IPTABLES_H +#define _IPTABLES_H + +#include + +#include + +#include + +#define IPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN +#define IPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN +#define ipt_match xt_match +#define ipt_target xt_target +#define ipt_table xt_table +#define ipt_get_revision xt_get_revision +#define ipt_entry_match xt_entry_match +#define ipt_entry_target xt_entry_target +#define ipt_standard_target xt_standard_target +#define ipt_error_target xt_error_target +#define ipt_counters xt_counters +#define IPT_CONTINUE XT_CONTINUE +#define IPT_RETURN XT_RETURN + +/* This group is older than old (iptables < v1.4.0-rc1~89) */ +#include +#define ipt_udp xt_udp +#define ipt_tcp xt_tcp +#define IPT_TCP_INV_SRCPT XT_TCP_INV_SRCPT +#define IPT_TCP_INV_DSTPT XT_TCP_INV_DSTPT +#define IPT_TCP_INV_FLAGS XT_TCP_INV_FLAGS +#define IPT_TCP_INV_OPTION XT_TCP_INV_OPTION +#define IPT_TCP_INV_MASK XT_TCP_INV_MASK +#define IPT_UDP_INV_SRCPT XT_UDP_INV_SRCPT +#define IPT_UDP_INV_DSTPT XT_UDP_INV_DSTPT +#define IPT_UDP_INV_MASK XT_UDP_INV_MASK + +/* The argument to IPT_SO_ADD_COUNTERS. */ +#define ipt_counters_info xt_counters_info +/* Standard return verdict, or do jump. */ +#define IPT_STANDARD_TARGET XT_STANDARD_TARGET +/* Error verdict. */ +#define IPT_ERROR_TARGET XT_ERROR_TARGET + +/* fn returns 0 to continue iteration */ +#define IPT_MATCH_ITERATE(e, fn, args...) \ + XT_MATCH_ITERATE(struct ipt_entry, e, fn, ## args) + +/* fn returns 0 to continue iteration */ +#define IPT_ENTRY_ITERATE(entries, size, fn, args...) \ + XT_ENTRY_ITERATE(struct ipt_entry, entries, size, fn, ## args) + +/* Yes, Virginia, you have to zero the padding. */ +struct ipt_ip { + /* Source and destination IP addr */ + struct in_addr src, dst; + /* Mask for src and dest IP addr */ + struct in_addr smsk, dmsk; + char iniface[IFNAMSIZ], outiface[IFNAMSIZ]; + unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ]; + + /* Protocol, 0 = ANY */ + __u16 proto; + + /* Flags word */ + __u8 flags; + /* Inverse flags */ + __u8 invflags; +}; + +/* Values for "flag" field in struct ipt_ip (general ip structure). */ +#define IPT_F_FRAG 0x01 /* Set if rule is a fragment rule */ +#define IPT_F_GOTO 0x02 /* Set if jump is a goto */ +#define IPT_F_MASK 0x03 /* All possible flag bits mask. */ + +/* Values for "inv" field in struct ipt_ip. */ +#define IPT_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */ +#define IPT_INV_VIA_OUT 0x02 /* Invert the sense of OUT IFACE */ +#define IPT_INV_TOS 0x04 /* Invert the sense of TOS. */ +#define IPT_INV_SRCIP 0x08 /* Invert the sense of SRC IP. */ +#define IPT_INV_DSTIP 0x10 /* Invert the sense of DST OP. */ +#define IPT_INV_FRAG 0x20 /* Invert the sense of FRAG. */ +#define IPT_INV_PROTO XT_INV_PROTO +#define IPT_INV_MASK 0x7F /* All possible flag bits mask. */ + +/* This structure defines each of the firewall rules. Consists of 3 + parts which are 1) general IP header stuff 2) match specific + stuff 3) the target to perform if the rule matches */ +struct ipt_entry { + struct ipt_ip ip; + + /* Mark with fields that we care about. */ + unsigned int nfcache; + + /* Size of ipt_entry + matches */ + __u16 target_offset; + /* Size of ipt_entry + matches + target */ + __u16 next_offset; + + /* Back pointer */ + unsigned int comefrom; + + /* Packet and byte counters. */ + struct xt_counters counters; + + /* The matches (if any), then the target. */ + unsigned char elems[0]; +}; + +/* + * New IP firewall options for [gs]etsockopt at the RAW IP level. + * Unlike BSD Linux inherits IP options so you don't have to use a raw + * socket for this. Instead we check rights in the calls. + * + * ATTENTION: check linux/in.h before adding new number here. + */ +#define IPT_BASE_CTL 64 + +#define IPT_SO_SET_REPLACE (IPT_BASE_CTL) +#define IPT_SO_SET_ADD_COUNTERS (IPT_BASE_CTL + 1) +#define IPT_SO_SET_MAX IPT_SO_SET_ADD_COUNTERS + +#define IPT_SO_GET_INFO (IPT_BASE_CTL) +#define IPT_SO_GET_ENTRIES (IPT_BASE_CTL + 1) +#define IPT_SO_GET_REVISION_MATCH (IPT_BASE_CTL + 2) +#define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3) +#define IPT_SO_GET_MAX IPT_SO_GET_REVISION_TARGET + +/* ICMP matching stuff */ +struct ipt_icmp { + __u8 type; /* type to match */ + __u8 code[2]; /* range of code */ + __u8 invflags; /* Inverse flags */ +}; + +/* Values for "inv" field for struct ipt_icmp. */ +#define IPT_ICMP_INV 0x01 /* Invert the sense of type/code test */ + +/* The argument to IPT_SO_GET_INFO */ +struct ipt_getinfo { + /* Which table: caller fills this in. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* Kernel fills these in. */ + /* Which hook entry points are valid: bitmask */ + unsigned int valid_hooks; + + /* Hook entry points: one per netfilter hook. */ + unsigned int hook_entry[NF_INET_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_INET_NUMHOOKS]; + + /* Number of entries */ + unsigned int num_entries; + + /* Size of entries. */ + unsigned int size; +}; + +/* The argument to IPT_SO_SET_REPLACE. */ +struct ipt_replace { + /* Which table. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* Which hook entry points are valid: bitmask. You can't + change this. */ + unsigned int valid_hooks; + + /* Number of entries */ + unsigned int num_entries; + + /* Total size of new entries */ + unsigned int size; + + /* Hook entry points. */ + unsigned int hook_entry[NF_INET_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_INET_NUMHOOKS]; + + /* Information about old entries: */ + /* Number of counters (must be equal to current number of entries). */ + unsigned int num_counters; + /* The old entries' counters. */ + struct xt_counters *counters; + + /* The entries (hang off end: not really an array). */ + struct ipt_entry entries[0]; +}; + +/* The argument to IPT_SO_GET_ENTRIES. */ +struct ipt_get_entries { + /* Which table: user fills this in. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* User fills this in: total entry size. */ + unsigned int size; + + /* The entries. */ + struct ipt_entry entrytable[0]; +}; + +/* Helper functions */ +static __inline__ struct xt_entry_target * +ipt_get_target(struct ipt_entry *e) +{ + return (void *)e + e->target_offset; +} + +/* + * Main firewall chains definitions and global var's definitions. + */ +#endif /* _IPTABLES_H */ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/kernel_headers/linux/netfilter_ipv4/ipt_CLUSTERIP.h new file mode 100644 index 0000000..c6a204c --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_CLUSTERIP.h @@ -0,0 +1,36 @@ +#ifndef _IPT_CLUSTERIP_H_target +#define _IPT_CLUSTERIP_H_target + +#include + +enum clusterip_hashmode { + CLUSTERIP_HASHMODE_SIP = 0, + CLUSTERIP_HASHMODE_SIP_SPT, + CLUSTERIP_HASHMODE_SIP_SPT_DPT, +}; + +#define CLUSTERIP_HASHMODE_MAX CLUSTERIP_HASHMODE_SIP_SPT_DPT + +#define CLUSTERIP_MAX_NODES 16 + +#define CLUSTERIP_FLAG_NEW 0x00000001 + +struct clusterip_config; + +struct ipt_clusterip_tgt_info { + + __u32 flags; + + /* only relevant for new ones */ + __u8 clustermac[6]; + __u16 num_total_nodes; + __u16 num_local_nodes; + __u16 local_nodes[CLUSTERIP_MAX_NODES]; + __u32 hash_mode; + __u32 hash_initval; + + /* Used internally by the kernel */ + struct clusterip_config *config; +}; + +#endif /*_IPT_CLUSTERIP_H_target*/ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_ECN.h b/kernel_headers/linux/netfilter_ipv4/ipt_ECN.h new file mode 100644 index 0000000..bb88d53 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_ECN.h @@ -0,0 +1,33 @@ +/* Header file for iptables ipt_ECN target + * + * (C) 2002 by Harald Welte + * + * This software is distributed under GNU GPL v2, 1991 + * + * ipt_ECN.h,v 1.3 2002/05/29 12:17:40 laforge Exp +*/ +#ifndef _IPT_ECN_TARGET_H +#define _IPT_ECN_TARGET_H + +#include +#include + +#define IPT_ECN_IP_MASK (~XT_DSCP_MASK) + +#define IPT_ECN_OP_SET_IP 0x01 /* set ECN bits of IPv4 header */ +#define IPT_ECN_OP_SET_ECE 0x10 /* set ECE bit of TCP header */ +#define IPT_ECN_OP_SET_CWR 0x20 /* set CWR bit of TCP header */ + +#define IPT_ECN_OP_MASK 0xce + +struct ipt_ECN_info { + __u8 operation; /* bitset of operations */ + __u8 ip_ect; /* ECT codepoint of IPv4 header, pre-shifted */ + union { + struct { + __u8 ece:1, cwr:1; /* TCP ECT bits */ + } tcp; + } proto; +}; + +#endif /* _IPT_ECN_TARGET_H */ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_LOG.h b/kernel_headers/linux/netfilter_ipv4/ipt_LOG.h new file mode 100644 index 0000000..5d81520 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_LOG.h @@ -0,0 +1,21 @@ +#ifndef _IPT_LOG_H +#define _IPT_LOG_H + +#warning "Please update iptables, this file will be removed soon!" + +/* make sure not to change this without changing netfilter.h:NF_LOG_* (!) */ +#define IPT_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */ +#define IPT_LOG_TCPOPT 0x02 /* Log TCP options */ +#define IPT_LOG_IPOPT 0x04 /* Log IP options */ +#define IPT_LOG_UID 0x08 /* Log UID owning local socket */ +#define IPT_LOG_NFLOG 0x10 /* Unsupported, don't reuse */ +#define IPT_LOG_MACDECODE 0x20 /* Decode MAC header */ +#define IPT_LOG_MASK 0x2f + +struct ipt_log_info { + unsigned char level; + unsigned char logflags; + char prefix[30]; +}; + +#endif /*_IPT_LOG_H*/ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_NATTYPE.h b/kernel_headers/linux/netfilter_ipv4/ipt_NATTYPE.h new file mode 100644 index 0000000..594b62a --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_NATTYPE.h @@ -0,0 +1,28 @@ +#ifndef _IPT_NATTYPE_H_target +#define _IPT_NATTYPE_H_target + +#define NATTYPE_TIMEOUT 300 + +enum nattype_mode { + MODE_DNAT, + MODE_FORWARD_IN, + MODE_FORWARD_OUT +}; + +enum nattype_type { + TYPE_PORT_ADDRESS_RESTRICTED, + TYPE_ENDPOINT_INDEPENDENT, + TYPE_ADDRESS_RESTRICTED +}; + + +struct ipt_nattype_info { + u_int16_t mode; + u_int16_t type; +}; + +extern bool nattype_refresh_timer(unsigned long nattype, +unsigned long timeout_value); + +#endif /*_IPT_NATTYPE_H_target*/ + diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_REJECT.h b/kernel_headers/linux/netfilter_ipv4/ipt_REJECT.h new file mode 100644 index 0000000..4293a1a --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_REJECT.h @@ -0,0 +1,20 @@ +#ifndef _IPT_REJECT_H +#define _IPT_REJECT_H + +enum ipt_reject_with { + IPT_ICMP_NET_UNREACHABLE, + IPT_ICMP_HOST_UNREACHABLE, + IPT_ICMP_PROT_UNREACHABLE, + IPT_ICMP_PORT_UNREACHABLE, + IPT_ICMP_ECHOREPLY, + IPT_ICMP_NET_PROHIBITED, + IPT_ICMP_HOST_PROHIBITED, + IPT_TCP_RESET, + IPT_ICMP_ADMIN_PROHIBITED +}; + +struct ipt_reject_info { + enum ipt_reject_with with; /* reject type */ +}; + +#endif /*_IPT_REJECT_H*/ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_TTL.h b/kernel_headers/linux/netfilter_ipv4/ipt_TTL.h new file mode 100644 index 0000000..f6ac169 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_TTL.h @@ -0,0 +1,23 @@ +/* TTL modification module for IP tables + * (C) 2000 by Harald Welte */ + +#ifndef _IPT_TTL_H +#define _IPT_TTL_H + +#include + +enum { + IPT_TTL_SET = 0, + IPT_TTL_INC, + IPT_TTL_DEC +}; + +#define IPT_TTL_MAXMODE IPT_TTL_DEC + +struct ipt_TTL_info { + __u8 mode; + __u8 ttl; +}; + + +#endif diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_ULOG.h b/kernel_headers/linux/netfilter_ipv4/ipt_ULOG.h new file mode 100644 index 0000000..417aad2 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_ULOG.h @@ -0,0 +1,49 @@ +/* Header file for IP tables userspace logging, Version 1.8 + * + * (C) 2000-2002 by Harald Welte + * + * Distributed under the terms of GNU GPL */ + +#ifndef _IPT_ULOG_H +#define _IPT_ULOG_H + +#ifndef NETLINK_NFLOG +#define NETLINK_NFLOG 5 +#endif + +#define ULOG_DEFAULT_NLGROUP 1 +#define ULOG_DEFAULT_QTHRESHOLD 1 + +#define ULOG_MAC_LEN 80 +#define ULOG_PREFIX_LEN 32 + +#define ULOG_MAX_QLEN 50 +/* Why 50? Well... there is a limit imposed by the slab cache 131000 + * bytes. So the multipart netlink-message has to be < 131000 bytes. + * Assuming a standard ethernet-mtu of 1500, we could define this up + * to 80... but even 50 seems to be big enough. */ + +/* private data structure for each rule with a ULOG target */ +struct ipt_ulog_info { + unsigned int nl_group; + size_t copy_range; + size_t qthreshold; + char prefix[ULOG_PREFIX_LEN]; +}; + +/* Format of the ULOG packets passed through netlink */ +typedef struct ulog_packet_msg { + unsigned long mark; + long timestamp_sec; + long timestamp_usec; + unsigned int hook; + char indev_name[IFNAMSIZ]; + char outdev_name[IFNAMSIZ]; + size_t data_len; + char prefix[ULOG_PREFIX_LEN]; + unsigned char mac_len; + unsigned char mac[ULOG_MAC_LEN]; + unsigned char payload[0]; +} ulog_packet_msg_t; + +#endif /*_IPT_ULOG_H*/ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_ah.h b/kernel_headers/linux/netfilter_ipv4/ipt_ah.h new file mode 100644 index 0000000..4e02bb0 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_ah.h @@ -0,0 +1,17 @@ +#ifndef _IPT_AH_H +#define _IPT_AH_H + +#include + +struct ipt_ah { + __u32 spis[2]; /* Security Parameter Index */ + __u8 invflags; /* Inverse flags */ +}; + + + +/* Values for "invflags" field in struct ipt_ah. */ +#define IPT_AH_INV_SPI 0x01 /* Invert the sense of spi. */ +#define IPT_AH_INV_MASK 0x01 /* All possible flags. */ + +#endif /*_IPT_AH_H*/ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_ecn.h b/kernel_headers/linux/netfilter_ipv4/ipt_ecn.h new file mode 100644 index 0000000..0e0c063 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_ecn.h @@ -0,0 +1,15 @@ +#ifndef _IPT_ECN_H +#define _IPT_ECN_H + +#include +#define ipt_ecn_info xt_ecn_info + +enum { + IPT_ECN_IP_MASK = XT_ECN_IP_MASK, + IPT_ECN_OP_MATCH_IP = XT_ECN_OP_MATCH_IP, + IPT_ECN_OP_MATCH_ECE = XT_ECN_OP_MATCH_ECE, + IPT_ECN_OP_MATCH_CWR = XT_ECN_OP_MATCH_CWR, + IPT_ECN_OP_MATCH_MASK = XT_ECN_OP_MATCH_MASK, +}; + +#endif /* IPT_ECN_H */ diff --git a/kernel_headers/linux/netfilter_ipv4/ipt_ttl.h b/kernel_headers/linux/netfilter_ipv4/ipt_ttl.h new file mode 100644 index 0000000..37bee44 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv4/ipt_ttl.h @@ -0,0 +1,23 @@ +/* IP tables module for matching the value of the TTL + * (C) 2000 by Harald Welte */ + +#ifndef _IPT_TTL_H +#define _IPT_TTL_H + +#include + +enum { + IPT_TTL_EQ = 0, /* equals */ + IPT_TTL_NE, /* not equals */ + IPT_TTL_LT, /* less than */ + IPT_TTL_GT, /* greater than */ +}; + + +struct ipt_ttl_info { + __u8 mode; + __u8 ttl; +}; + + +#endif diff --git a/kernel_headers/linux/netfilter_ipv6.h b/kernel_headers/linux/netfilter_ipv6.h new file mode 100644 index 0000000..8483d1d --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6.h @@ -0,0 +1,77 @@ +/* IPv6-specific defines for netfilter. + * (C)1998 Rusty Russell -- This code is GPL. + * (C)1999 David Jeffery + * this header was blatantly ripped from netfilter_ipv4.h + * it's amazing what adding a bunch of 6s can do =8^) + */ +#ifndef __LINUX_IP6_NETFILTER_H +#define __LINUX_IP6_NETFILTER_H + + +#include + +/* only for userspace compatibility */ + +#include /* for INT_MIN, INT_MAX */ + +/* IP Cache bits. */ +/* Src IP address. */ +#define NFC_IP6_SRC 0x0001 +/* Dest IP address. */ +#define NFC_IP6_DST 0x0002 +/* Input device. */ +#define NFC_IP6_IF_IN 0x0004 +/* Output device. */ +#define NFC_IP6_IF_OUT 0x0008 +/* TOS. */ +#define NFC_IP6_TOS 0x0010 +/* Protocol. */ +#define NFC_IP6_PROTO 0x0020 +/* IP options. */ +#define NFC_IP6_OPTIONS 0x0040 +/* Frag & flags. */ +#define NFC_IP6_FRAG 0x0080 + + +/* Per-protocol information: only matters if proto match. */ +/* TCP flags. */ +#define NFC_IP6_TCPFLAGS 0x0100 +/* Source port. */ +#define NFC_IP6_SRC_PT 0x0200 +/* Dest port. */ +#define NFC_IP6_DST_PT 0x0400 +/* Something else about the proto */ +#define NFC_IP6_PROTO_UNKNOWN 0x2000 + +/* IP6 Hooks */ +/* After promisc drops, checksum checks. */ +#define NF_IP6_PRE_ROUTING 0 +/* If the packet is destined for this box. */ +#define NF_IP6_LOCAL_IN 1 +/* If the packet is destined for another interface. */ +#define NF_IP6_FORWARD 2 +/* Packets coming from a local process. */ +#define NF_IP6_LOCAL_OUT 3 +/* Packets about to hit the wire. */ +#define NF_IP6_POST_ROUTING 4 +#define NF_IP6_NUMHOOKS 5 + + +enum nf_ip6_hook_priorities { + NF_IP6_PRI_FIRST = INT_MIN, + NF_IP6_PRI_CONNTRACK_DEFRAG = -400, + NF_IP6_PRI_RAW = -300, + NF_IP6_PRI_SELINUX_FIRST = -225, + NF_IP6_PRI_CONNTRACK = -200, + NF_IP6_PRI_MANGLE = -150, + NF_IP6_PRI_NAT_DST = -100, + NF_IP6_PRI_FILTER = 0, + NF_IP6_PRI_SECURITY = 50, + NF_IP6_PRI_NAT_SRC = 100, + NF_IP6_PRI_SELINUX_LAST = 225, + NF_IP6_PRI_CONNTRACK_HELPER = 300, + NF_IP6_PRI_LAST = INT_MAX, +}; + + +#endif /* __LINUX_IP6_NETFILTER_H */ diff --git a/kernel_headers/linux/netfilter_ipv6/..install.cmd b/kernel_headers/linux/netfilter_ipv6/..install.cmd new file mode 100644 index 0000000..a37e961 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv6/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv6 /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/netfilter_ipv6 ip6_tables.h ip6t_HL.h ip6t_LOG.h ip6t_NPT.h ip6t_REJECT.h ip6t_ah.h ip6t_frag.h ip6t_hl.h ip6t_ipv6header.h ip6t_mh.h ip6t_opts.h ip6t_rt.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv6 /android/kernels/moto/surnia/kernel-msm/include/linux/netfilter_ipv6 ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv6 /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/netfilter_ipv6 ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv6/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/netfilter_ipv6/.install diff --git a/kernel_headers/linux/netfilter_ipv6/.install b/kernel_headers/linux/netfilter_ipv6/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/netfilter_ipv6/ip6_tables.h b/kernel_headers/linux/netfilter_ipv6/ip6_tables.h new file mode 100644 index 0000000..640a1d0 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6_tables.h @@ -0,0 +1,268 @@ +/* + * 25-Jul-1998 Major changes to allow for ip chain table + * + * 3-Jan-2000 Named tables to allow packet selection for different uses. + */ + +/* + * Format of an IP6 firewall descriptor + * + * src, dst, src_mask, dst_mask are always stored in network byte order. + * flags are stored in host byte order (of course). + * Port numbers are stored in HOST byte order. + */ + +#ifndef _IP6_TABLES_H +#define _IP6_TABLES_H + +#include + +#include + +#include + +#define IP6T_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN +#define IP6T_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN +#define ip6t_match xt_match +#define ip6t_target xt_target +#define ip6t_table xt_table +#define ip6t_get_revision xt_get_revision +#define ip6t_entry_match xt_entry_match +#define ip6t_entry_target xt_entry_target +#define ip6t_standard_target xt_standard_target +#define ip6t_error_target xt_error_target +#define ip6t_counters xt_counters +#define IP6T_CONTINUE XT_CONTINUE +#define IP6T_RETURN XT_RETURN + +/* Pre-iptables-1.4.0 */ +#include +#define ip6t_tcp xt_tcp +#define ip6t_udp xt_udp +#define IP6T_TCP_INV_SRCPT XT_TCP_INV_SRCPT +#define IP6T_TCP_INV_DSTPT XT_TCP_INV_DSTPT +#define IP6T_TCP_INV_FLAGS XT_TCP_INV_FLAGS +#define IP6T_TCP_INV_OPTION XT_TCP_INV_OPTION +#define IP6T_TCP_INV_MASK XT_TCP_INV_MASK +#define IP6T_UDP_INV_SRCPT XT_UDP_INV_SRCPT +#define IP6T_UDP_INV_DSTPT XT_UDP_INV_DSTPT +#define IP6T_UDP_INV_MASK XT_UDP_INV_MASK + +#define ip6t_counters_info xt_counters_info +#define IP6T_STANDARD_TARGET XT_STANDARD_TARGET +#define IP6T_ERROR_TARGET XT_ERROR_TARGET +#define IP6T_MATCH_ITERATE(e, fn, args...) \ + XT_MATCH_ITERATE(struct ip6t_entry, e, fn, ## args) +#define IP6T_ENTRY_ITERATE(entries, size, fn, args...) \ + XT_ENTRY_ITERATE(struct ip6t_entry, entries, size, fn, ## args) + +/* Yes, Virginia, you have to zero the padding. */ +struct ip6t_ip6 { + /* Source and destination IP6 addr */ + struct in6_addr src, dst; + /* Mask for src and dest IP6 addr */ + struct in6_addr smsk, dmsk; + char iniface[IFNAMSIZ], outiface[IFNAMSIZ]; + unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ]; + + /* Upper protocol number + * - The allowed value is 0 (any) or protocol number of last parsable + * header, which is 50 (ESP), 59 (No Next Header), 135 (MH), or + * the non IPv6 extension headers. + * - The protocol numbers of IPv6 extension headers except of ESP and + * MH do not match any packets. + * - You also need to set IP6T_FLAGS_PROTO to "flags" to check protocol. + */ + __u16 proto; + /* TOS to match iff flags & IP6T_F_TOS */ + __u8 tos; + + /* Flags word */ + __u8 flags; + /* Inverse flags */ + __u8 invflags; +}; + +/* Values for "flag" field in struct ip6t_ip6 (general ip6 structure). */ +#define IP6T_F_PROTO 0x01 /* Set if rule cares about upper + protocols */ +#define IP6T_F_TOS 0x02 /* Match the TOS. */ +#define IP6T_F_GOTO 0x04 /* Set if jump is a goto */ +#define IP6T_F_MASK 0x07 /* All possible flag bits mask. */ + +/* Values for "inv" field in struct ip6t_ip6. */ +#define IP6T_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */ +#define IP6T_INV_VIA_OUT 0x02 /* Invert the sense of OUT IFACE */ +#define IP6T_INV_TOS 0x04 /* Invert the sense of TOS. */ +#define IP6T_INV_SRCIP 0x08 /* Invert the sense of SRC IP. */ +#define IP6T_INV_DSTIP 0x10 /* Invert the sense of DST OP. */ +#define IP6T_INV_FRAG 0x20 /* Invert the sense of FRAG. */ +#define IP6T_INV_PROTO XT_INV_PROTO +#define IP6T_INV_MASK 0x7F /* All possible flag bits mask. */ + +/* This structure defines each of the firewall rules. Consists of 3 + parts which are 1) general IP header stuff 2) match specific + stuff 3) the target to perform if the rule matches */ +struct ip6t_entry { + struct ip6t_ip6 ipv6; + + /* Mark with fields that we care about. */ + unsigned int nfcache; + + /* Size of ipt_entry + matches */ + __u16 target_offset; + /* Size of ipt_entry + matches + target */ + __u16 next_offset; + + /* Back pointer */ + unsigned int comefrom; + + /* Packet and byte counters. */ + struct xt_counters counters; + + /* The matches (if any), then the target. */ + unsigned char elems[0]; +}; + +/* Standard entry */ +struct ip6t_standard { + struct ip6t_entry entry; + struct xt_standard_target target; +}; + +struct ip6t_error { + struct ip6t_entry entry; + struct xt_error_target target; +}; + +#define IP6T_ENTRY_INIT(__size) \ +{ \ + .target_offset = sizeof(struct ip6t_entry), \ + .next_offset = (__size), \ +} + +#define IP6T_STANDARD_INIT(__verdict) \ +{ \ + .entry = IP6T_ENTRY_INIT(sizeof(struct ip6t_standard)), \ + .target = XT_TARGET_INIT(XT_STANDARD_TARGET, \ + sizeof(struct xt_standard_target)), \ + .target.verdict = -(__verdict) - 1, \ +} + +#define IP6T_ERROR_INIT \ +{ \ + .entry = IP6T_ENTRY_INIT(sizeof(struct ip6t_error)), \ + .target = XT_TARGET_INIT(XT_ERROR_TARGET, \ + sizeof(struct xt_error_target)), \ + .target.errorname = "ERROR", \ +} + +/* + * New IP firewall options for [gs]etsockopt at the RAW IP level. + * Unlike BSD Linux inherits IP options so you don't have to use + * a raw socket for this. Instead we check rights in the calls. + * + * ATTENTION: check linux/in6.h before adding new number here. + */ +#define IP6T_BASE_CTL 64 + +#define IP6T_SO_SET_REPLACE (IP6T_BASE_CTL) +#define IP6T_SO_SET_ADD_COUNTERS (IP6T_BASE_CTL + 1) +#define IP6T_SO_SET_MAX IP6T_SO_SET_ADD_COUNTERS + +#define IP6T_SO_GET_INFO (IP6T_BASE_CTL) +#define IP6T_SO_GET_ENTRIES (IP6T_BASE_CTL + 1) +#define IP6T_SO_GET_REVISION_MATCH (IP6T_BASE_CTL + 4) +#define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5) +#define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET + +/* obtain original address if REDIRECT'd connection */ +#define IP6T_SO_ORIGINAL_DST 80 + +/* ICMP matching stuff */ +struct ip6t_icmp { + __u8 type; /* type to match */ + __u8 code[2]; /* range of code */ + __u8 invflags; /* Inverse flags */ +}; + +/* Values for "inv" field for struct ipt_icmp. */ +#define IP6T_ICMP_INV 0x01 /* Invert the sense of type/code test */ + +/* The argument to IP6T_SO_GET_INFO */ +struct ip6t_getinfo { + /* Which table: caller fills this in. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* Kernel fills these in. */ + /* Which hook entry points are valid: bitmask */ + unsigned int valid_hooks; + + /* Hook entry points: one per netfilter hook. */ + unsigned int hook_entry[NF_INET_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_INET_NUMHOOKS]; + + /* Number of entries */ + unsigned int num_entries; + + /* Size of entries. */ + unsigned int size; +}; + +/* The argument to IP6T_SO_SET_REPLACE. */ +struct ip6t_replace { + /* Which table. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* Which hook entry points are valid: bitmask. You can't + change this. */ + unsigned int valid_hooks; + + /* Number of entries */ + unsigned int num_entries; + + /* Total size of new entries */ + unsigned int size; + + /* Hook entry points. */ + unsigned int hook_entry[NF_INET_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_INET_NUMHOOKS]; + + /* Information about old entries: */ + /* Number of counters (must be equal to current number of entries). */ + unsigned int num_counters; + /* The old entries' counters. */ + struct xt_counters *counters; + + /* The entries (hang off end: not really an array). */ + struct ip6t_entry entries[0]; +}; + +/* The argument to IP6T_SO_GET_ENTRIES. */ +struct ip6t_get_entries { + /* Which table: user fills this in. */ + char name[XT_TABLE_MAXNAMELEN]; + + /* User fills this in: total entry size. */ + unsigned int size; + + /* The entries. */ + struct ip6t_entry entrytable[0]; +}; + +/* Helper functions */ +static __inline__ struct xt_entry_target * +ip6t_get_target(struct ip6t_entry *e) +{ + return (void *)e + e->target_offset; +} + +/* + * Main firewall chains definitions and global var's definitions. + */ + +#endif /* _IP6_TABLES_H */ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_HL.h b/kernel_headers/linux/netfilter_ipv6/ip6t_HL.h new file mode 100644 index 0000000..ebd8ead --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_HL.h @@ -0,0 +1,24 @@ +/* Hop Limit modification module for ip6tables + * Maciej Soltysiak + * Based on HW's TTL module */ + +#ifndef _IP6T_HL_H +#define _IP6T_HL_H + +#include + +enum { + IP6T_HL_SET = 0, + IP6T_HL_INC, + IP6T_HL_DEC +}; + +#define IP6T_HL_MAXMODE IP6T_HL_DEC + +struct ip6t_HL_info { + __u8 mode; + __u8 hop_limit; +}; + + +#endif diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_LOG.h b/kernel_headers/linux/netfilter_ipv6/ip6t_LOG.h new file mode 100644 index 0000000..3dd0bc4 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_LOG.h @@ -0,0 +1,21 @@ +#ifndef _IP6T_LOG_H +#define _IP6T_LOG_H + +#warning "Please update iptables, this file will be removed soon!" + +/* make sure not to change this without changing netfilter.h:NF_LOG_* (!) */ +#define IP6T_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */ +#define IP6T_LOG_TCPOPT 0x02 /* Log TCP options */ +#define IP6T_LOG_IPOPT 0x04 /* Log IP options */ +#define IP6T_LOG_UID 0x08 /* Log UID owning local socket */ +#define IP6T_LOG_NFLOG 0x10 /* Unsupported, don't use */ +#define IP6T_LOG_MACDECODE 0x20 /* Decode MAC header */ +#define IP6T_LOG_MASK 0x2f + +struct ip6t_log_info { + unsigned char level; + unsigned char logflags; + char prefix[30]; +}; + +#endif /*_IPT_LOG_H*/ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_NPT.h b/kernel_headers/linux/netfilter_ipv6/ip6t_NPT.h new file mode 100644 index 0000000..f763355 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_NPT.h @@ -0,0 +1,16 @@ +#ifndef __NETFILTER_IP6T_NPT +#define __NETFILTER_IP6T_NPT + +#include +#include + +struct ip6t_npt_tginfo { + union nf_inet_addr src_pfx; + union nf_inet_addr dst_pfx; + __u8 src_pfx_len; + __u8 dst_pfx_len; + /* Used internally by the kernel */ + __sum16 adjustment; +}; + +#endif /* __NETFILTER_IP6T_NPT */ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_REJECT.h b/kernel_headers/linux/netfilter_ipv6/ip6t_REJECT.h new file mode 100644 index 0000000..205ed62 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_REJECT.h @@ -0,0 +1,20 @@ +#ifndef _IP6T_REJECT_H +#define _IP6T_REJECT_H + +#include + +enum ip6t_reject_with { + IP6T_ICMP6_NO_ROUTE, + IP6T_ICMP6_ADM_PROHIBITED, + IP6T_ICMP6_NOT_NEIGHBOUR, + IP6T_ICMP6_ADDR_UNREACH, + IP6T_ICMP6_PORT_UNREACH, + IP6T_ICMP6_ECHOREPLY, + IP6T_TCP_RESET +}; + +struct ip6t_reject_info { + __u32 with; /* reject type */ +}; + +#endif /*_IP6T_REJECT_H*/ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_ah.h b/kernel_headers/linux/netfilter_ipv6/ip6t_ah.h new file mode 100644 index 0000000..5da2b65 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_ah.h @@ -0,0 +1,22 @@ +#ifndef _IP6T_AH_H +#define _IP6T_AH_H + +#include + +struct ip6t_ah { + __u32 spis[2]; /* Security Parameter Index */ + __u32 hdrlen; /* Header Length */ + __u8 hdrres; /* Test of the Reserved Filed */ + __u8 invflags; /* Inverse flags */ +}; + +#define IP6T_AH_SPI 0x01 +#define IP6T_AH_LEN 0x02 +#define IP6T_AH_RES 0x04 + +/* Values for "invflags" field in struct ip6t_ah. */ +#define IP6T_AH_INV_SPI 0x01 /* Invert the sense of spi. */ +#define IP6T_AH_INV_LEN 0x02 /* Invert the sense of length. */ +#define IP6T_AH_INV_MASK 0x03 /* All possible flags. */ + +#endif /*_IP6T_AH_H*/ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_frag.h b/kernel_headers/linux/netfilter_ipv6/ip6t_frag.h new file mode 100644 index 0000000..dfd8bc2 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_frag.h @@ -0,0 +1,25 @@ +#ifndef _IP6T_FRAG_H +#define _IP6T_FRAG_H + +#include + +struct ip6t_frag { + __u32 ids[2]; /* Identification range */ + __u32 hdrlen; /* Header Length */ + __u8 flags; /* Flags */ + __u8 invflags; /* Inverse flags */ +}; + +#define IP6T_FRAG_IDS 0x01 +#define IP6T_FRAG_LEN 0x02 +#define IP6T_FRAG_RES 0x04 +#define IP6T_FRAG_FST 0x08 +#define IP6T_FRAG_MF 0x10 +#define IP6T_FRAG_NMF 0x20 + +/* Values for "invflags" field in struct ip6t_frag. */ +#define IP6T_FRAG_INV_IDS 0x01 /* Invert the sense of ids. */ +#define IP6T_FRAG_INV_LEN 0x02 /* Invert the sense of length. */ +#define IP6T_FRAG_INV_MASK 0x03 /* All possible flags. */ + +#endif /*_IP6T_FRAG_H*/ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_hl.h b/kernel_headers/linux/netfilter_ipv6/ip6t_hl.h new file mode 100644 index 0000000..6e76dbc --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_hl.h @@ -0,0 +1,24 @@ +/* ip6tables module for matching the Hop Limit value + * Maciej Soltysiak + * Based on HW's ttl module */ + +#ifndef _IP6T_HL_H +#define _IP6T_HL_H + +#include + +enum { + IP6T_HL_EQ = 0, /* equals */ + IP6T_HL_NE, /* not equals */ + IP6T_HL_LT, /* less than */ + IP6T_HL_GT, /* greater than */ +}; + + +struct ip6t_hl_info { + __u8 mode; + __u8 hop_limit; +}; + + +#endif diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_ipv6header.h b/kernel_headers/linux/netfilter_ipv6/ip6t_ipv6header.h new file mode 100644 index 0000000..efae3a2 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_ipv6header.h @@ -0,0 +1,28 @@ +/* ipv6header match - matches IPv6 packets based +on whether they contain certain headers */ + +/* Original idea: Brad Chapman + * Rewritten by: Andras Kis-Szabo */ + + +#ifndef __IPV6HEADER_H +#define __IPV6HEADER_H + +#include + +struct ip6t_ipv6header_info { + __u8 matchflags; + __u8 invflags; + __u8 modeflag; +}; + +#define MASK_HOPOPTS 128 +#define MASK_DSTOPTS 64 +#define MASK_ROUTING 32 +#define MASK_FRAGMENT 16 +#define MASK_AH 8 +#define MASK_ESP 4 +#define MASK_NONE 2 +#define MASK_PROTO 1 + +#endif /* __IPV6HEADER_H */ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_mh.h b/kernel_headers/linux/netfilter_ipv6/ip6t_mh.h new file mode 100644 index 0000000..a7729a5 --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_mh.h @@ -0,0 +1,16 @@ +#ifndef _IP6T_MH_H +#define _IP6T_MH_H + +#include + +/* MH matching stuff */ +struct ip6t_mh { + __u8 types[2]; /* MH type range */ + __u8 invflags; /* Inverse flags */ +}; + +/* Values for "invflags" field in struct ip6t_mh. */ +#define IP6T_MH_INV_TYPE 0x01 /* Invert the sense of type. */ +#define IP6T_MH_INV_MASK 0x01 /* All possible flags. */ + +#endif /*_IP6T_MH_H*/ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_opts.h b/kernel_headers/linux/netfilter_ipv6/ip6t_opts.h new file mode 100644 index 0000000..17d419a --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_opts.h @@ -0,0 +1,24 @@ +#ifndef _IP6T_OPTS_H +#define _IP6T_OPTS_H + +#include + +#define IP6T_OPTS_OPTSNR 16 + +struct ip6t_opts { + __u32 hdrlen; /* Header Length */ + __u8 flags; /* */ + __u8 invflags; /* Inverse flags */ + __u16 opts[IP6T_OPTS_OPTSNR]; /* opts */ + __u8 optsnr; /* Nr of OPts */ +}; + +#define IP6T_OPTS_LEN 0x01 +#define IP6T_OPTS_OPTS 0x02 +#define IP6T_OPTS_NSTRICT 0x04 + +/* Values for "invflags" field in struct ip6t_rt. */ +#define IP6T_OPTS_INV_LEN 0x01 /* Invert the sense of length. */ +#define IP6T_OPTS_INV_MASK 0x01 /* All possible flags. */ + +#endif /*_IP6T_OPTS_H*/ diff --git a/kernel_headers/linux/netfilter_ipv6/ip6t_rt.h b/kernel_headers/linux/netfilter_ipv6/ip6t_rt.h new file mode 100644 index 0000000..7605a5f --- /dev/null +++ b/kernel_headers/linux/netfilter_ipv6/ip6t_rt.h @@ -0,0 +1,33 @@ +#ifndef _IP6T_RT_H +#define _IP6T_RT_H + +#include +/*#include */ + +#define IP6T_RT_HOPS 16 + +struct ip6t_rt { + __u32 rt_type; /* Routing Type */ + __u32 segsleft[2]; /* Segments Left */ + __u32 hdrlen; /* Header Length */ + __u8 flags; /* */ + __u8 invflags; /* Inverse flags */ + struct in6_addr addrs[IP6T_RT_HOPS]; /* Hops */ + __u8 addrnr; /* Nr of Addresses */ +}; + +#define IP6T_RT_TYP 0x01 +#define IP6T_RT_SGS 0x02 +#define IP6T_RT_LEN 0x04 +#define IP6T_RT_RES 0x08 +#define IP6T_RT_FST_MASK 0x30 +#define IP6T_RT_FST 0x10 +#define IP6T_RT_FST_NSTRICT 0x20 + +/* Values for "invflags" field in struct ip6t_rt. */ +#define IP6T_RT_INV_TYP 0x01 /* Invert the sense of type. */ +#define IP6T_RT_INV_SGS 0x02 /* Invert the sense of Segments. */ +#define IP6T_RT_INV_LEN 0x04 /* Invert the sense of length. */ +#define IP6T_RT_INV_MASK 0x07 /* All possible flags. */ + +#endif /*_IP6T_RT_H*/ diff --git a/kernel_headers/linux/netlink.h b/kernel_headers/linux/netlink.h new file mode 100644 index 0000000..df8fb3c --- /dev/null +++ b/kernel_headers/linux/netlink.h @@ -0,0 +1,184 @@ +#ifndef __LINUX_NETLINK_H +#define __LINUX_NETLINK_H + +#include /* for __kernel_sa_family_t */ +#include + +#define NETLINK_ROUTE 0 /* Routing/device hook */ +#define NETLINK_UNUSED 1 /* Unused number */ +#define NETLINK_USERSOCK 2 /* Reserved for user mode socket protocols */ +#define NETLINK_FIREWALL 3 /* Unused number, formerly ip_queue */ +#define NETLINK_SOCK_DIAG 4 /* socket monitoring */ +#define NETLINK_NFLOG 5 /* netfilter/iptables ULOG */ +#define NETLINK_XFRM 6 /* ipsec */ +#define NETLINK_SELINUX 7 /* SELinux event notifications */ +#define NETLINK_ISCSI 8 /* Open-iSCSI */ +#define NETLINK_AUDIT 9 /* auditing */ +#define NETLINK_FIB_LOOKUP 10 +#define NETLINK_CONNECTOR 11 +#define NETLINK_NETFILTER 12 /* netfilter subsystem */ +#define NETLINK_IP6_FW 13 +#define NETLINK_DNRTMSG 14 /* DECnet routing messages */ +#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ +#define NETLINK_GENERIC 16 +/* leave room for NETLINK_DM (DM Events) */ +#define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */ +#define NETLINK_ECRYPTFS 19 +#define NETLINK_RDMA 20 +#define NETLINK_CRYPTO 21 /* Crypto layer */ +#define NETLINK_SOCKEV 22 /* Socket Administrative Events */ +#define NETLINK_INET_DIAG NETLINK_SOCK_DIAG + +#define MAX_LINKS 32 + +struct sockaddr_nl { + __kernel_sa_family_t nl_family; /* AF_NETLINK */ + unsigned short nl_pad; /* zero */ + __u32 nl_pid; /* port ID */ + __u32 nl_groups; /* multicast groups mask */ +}; + +struct nlmsghdr { + __u32 nlmsg_len; /* Length of message including header */ + __u16 nlmsg_type; /* Message content */ + __u16 nlmsg_flags; /* Additional flags */ + __u32 nlmsg_seq; /* Sequence number */ + __u32 nlmsg_pid; /* Sending process port ID */ +}; + +/* Flags values */ + +#define NLM_F_REQUEST 1 /* It is request message. */ +#define NLM_F_MULTI 2 /* Multipart message, terminated by NLMSG_DONE */ +#define NLM_F_ACK 4 /* Reply with ack, with zero or error code */ +#define NLM_F_ECHO 8 /* Echo this request */ +#define NLM_F_DUMP_INTR 16 /* Dump was inconsistent due to sequence change */ + +/* Modifiers to GET request */ +#define NLM_F_ROOT 0x100 /* specify tree root */ +#define NLM_F_MATCH 0x200 /* return all matching */ +#define NLM_F_ATOMIC 0x400 /* atomic GET */ +#define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH) + +/* Modifiers to NEW request */ +#define NLM_F_REPLACE 0x100 /* Override existing */ +#define NLM_F_EXCL 0x200 /* Do not touch, if it exists */ +#define NLM_F_CREATE 0x400 /* Create, if it does not exist */ +#define NLM_F_APPEND 0x800 /* Add to end of list */ + +/* + 4.4BSD ADD NLM_F_CREATE|NLM_F_EXCL + 4.4BSD CHANGE NLM_F_REPLACE + + True CHANGE NLM_F_CREATE|NLM_F_REPLACE + Append NLM_F_CREATE + Check NLM_F_EXCL + */ + +#define NLMSG_ALIGNTO 4U +#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) ) +#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) +#define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN) +#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len)) +#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0))) +#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \ + (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len))) +#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ + (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ + (nlh)->nlmsg_len <= (len)) +#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len))) + +#define NLMSG_NOOP 0x1 /* Nothing. */ +#define NLMSG_ERROR 0x2 /* Error */ +#define NLMSG_DONE 0x3 /* End of a dump */ +#define NLMSG_OVERRUN 0x4 /* Data lost */ + +#define NLMSG_MIN_TYPE 0x10 /* < 0x10: reserved control messages */ + +struct nlmsgerr { + int error; + struct nlmsghdr msg; +}; + +#define NETLINK_ADD_MEMBERSHIP 1 +#define NETLINK_DROP_MEMBERSHIP 2 +#define NETLINK_PKTINFO 3 +#define NETLINK_BROADCAST_ERROR 4 +#define NETLINK_NO_ENOBUFS 5 +#define NETLINK_RX_RING 6 +#define NETLINK_TX_RING 7 + +struct nl_pktinfo { + __u32 group; +}; + +struct nl_mmap_req { + unsigned int nm_block_size; + unsigned int nm_block_nr; + unsigned int nm_frame_size; + unsigned int nm_frame_nr; +}; + +struct nl_mmap_hdr { + unsigned int nm_status; + unsigned int nm_len; + __u32 nm_group; + /* credentials */ + __u32 nm_pid; + __u32 nm_uid; + __u32 nm_gid; +}; + +enum nl_mmap_status { + NL_MMAP_STATUS_UNUSED, + NL_MMAP_STATUS_RESERVED, + NL_MMAP_STATUS_VALID, + NL_MMAP_STATUS_COPY, + NL_MMAP_STATUS_SKIP, +}; + +#define NL_MMAP_MSG_ALIGNMENT NLMSG_ALIGNTO +#define NL_MMAP_MSG_ALIGN(sz) __ALIGN_KERNEL(sz, NL_MMAP_MSG_ALIGNMENT) +#define NL_MMAP_HDRLEN NL_MMAP_MSG_ALIGN(sizeof(struct nl_mmap_hdr)) + +#define NET_MAJOR 36 /* Major 36 is reserved for networking */ + +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED, +}; + +/* + * <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)--> + * +---------------------+- - -+- - - - - - - - - -+- - -+ + * | Header | Pad | Payload | Pad | + * | (struct nlattr) | ing | | ing | + * +---------------------+- - -+- - - - - - - - - -+- - -+ + * <-------------- nlattr->nla_len --------------> + */ + +struct nlattr { + __u16 nla_len; + __u16 nla_type; +}; + +/* + * nla_type (16 bits) + * +---+---+-------------------------------+ + * | N | O | Attribute Type | + * +---+---+-------------------------------+ + * N := Carries nested attributes + * O := Payload stored in network byte order + * + * Note: The N and O flag are mutually exclusive. + */ +#define NLA_F_NESTED (1 << 15) +#define NLA_F_NET_BYTEORDER (1 << 14) +#define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER) + +#define NLA_ALIGNTO 4 +#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1)) +#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr))) + + +#endif /* __LINUX_NETLINK_H */ diff --git a/kernel_headers/linux/netlink_diag.h b/kernel_headers/linux/netlink_diag.h new file mode 100644 index 0000000..4e31db4 --- /dev/null +++ b/kernel_headers/linux/netlink_diag.h @@ -0,0 +1,52 @@ +#ifndef __NETLINK_DIAG_H__ +#define __NETLINK_DIAG_H__ + +#include + +struct netlink_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 ndiag_ino; + __u32 ndiag_show; + __u32 ndiag_cookie[2]; +}; + +struct netlink_diag_msg { + __u8 ndiag_family; + __u8 ndiag_type; + __u8 ndiag_protocol; + __u8 ndiag_state; + + __u32 ndiag_portid; + __u32 ndiag_dst_portid; + __u32 ndiag_dst_group; + __u32 ndiag_ino; + __u32 ndiag_cookie[2]; +}; + +struct netlink_diag_ring { + __u32 ndr_block_size; + __u32 ndr_block_nr; + __u32 ndr_frame_size; + __u32 ndr_frame_nr; +}; + +enum { + NETLINK_DIAG_MEMINFO, + NETLINK_DIAG_GROUPS, + NETLINK_DIAG_RX_RING, + NETLINK_DIAG_TX_RING, + + __NETLINK_DIAG_MAX, +}; + +#define NETLINK_DIAG_MAX (__NETLINK_DIAG_MAX - 1) + +#define NDIAG_PROTO_ALL ((__u8) ~0) + +#define NDIAG_SHOW_MEMINFO 0x00000001 /* show memory info of a socket */ +#define NDIAG_SHOW_GROUPS 0x00000002 /* show groups of a netlink socket */ +#define NDIAG_SHOW_RING_CFG 0x00000004 /* show ring configuration */ + +#endif diff --git a/kernel_headers/linux/netrom.h b/kernel_headers/linux/netrom.h new file mode 100644 index 0000000..af7313c --- /dev/null +++ b/kernel_headers/linux/netrom.h @@ -0,0 +1,36 @@ +/* + * These are the public elements of the Linux kernel NET/ROM implementation. + * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the + * definition of the ax25_address structure. + */ + +#ifndef NETROM_KERNEL_H +#define NETROM_KERNEL_H + +#include + +#define NETROM_MTU 236 + +#define NETROM_T1 1 +#define NETROM_T2 2 +#define NETROM_N2 3 +#define NETROM_T4 6 +#define NETROM_IDLE 7 + +#define SIOCNRDECOBS (SIOCPROTOPRIVATE+2) + +struct nr_route_struct { +#define NETROM_NEIGH 0 +#define NETROM_NODE 1 + int type; + ax25_address callsign; + char device[16]; + unsigned int quality; + char mnemonic[7]; + ax25_address neighbour; + unsigned int obs_count; + unsigned int ndigis; + ax25_address digipeaters[AX25_MAX_DIGIS]; +}; + +#endif diff --git a/kernel_headers/linux/nfc.h b/kernel_headers/linux/nfc.h new file mode 100644 index 0000000..7c6f627 --- /dev/null +++ b/kernel_headers/linux/nfc.h @@ -0,0 +1,242 @@ +/* + * Copyright (C) 2011 Instituto Nokia de Tecnologia + * + * Authors: + * Lauro Ramos Venancio + * Aloisio Almeida Jr + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef __LINUX_NFC_H +#define __LINUX_NFC_H + +#include +#include + +#define NFC_GENL_NAME "nfc" +#define NFC_GENL_VERSION 1 + +#define NFC_GENL_MCAST_EVENT_NAME "events" + +/** + * enum nfc_commands - supported nfc commands + * + * @NFC_CMD_UNSPEC: unspecified command + * + * @NFC_CMD_GET_DEVICE: request information about a device (requires + * %NFC_ATTR_DEVICE_INDEX) or dump request to get a list of all nfc devices + * @NFC_CMD_DEV_UP: turn on the nfc device + * (requires %NFC_ATTR_DEVICE_INDEX) + * @NFC_CMD_DEV_DOWN: turn off the nfc device + * (requires %NFC_ATTR_DEVICE_INDEX) + * @NFC_CMD_START_POLL: start polling for targets using the given protocols + * (requires %NFC_ATTR_DEVICE_INDEX and %NFC_ATTR_PROTOCOLS) + * @NFC_CMD_STOP_POLL: stop polling for targets (requires + * %NFC_ATTR_DEVICE_INDEX) + * @NFC_CMD_GET_TARGET: dump all targets found by the previous poll (requires + * %NFC_ATTR_DEVICE_INDEX) + * @NFC_EVENT_TARGETS_FOUND: event emitted when a new target is found + * (it sends %NFC_ATTR_DEVICE_INDEX) + * @NFC_EVENT_DEVICE_ADDED: event emitted when a new device is registred + * (it sends %NFC_ATTR_DEVICE_NAME, %NFC_ATTR_DEVICE_INDEX and + * %NFC_ATTR_PROTOCOLS) + * @NFC_EVENT_DEVICE_REMOVED: event emitted when a device is removed + * (it sends %NFC_ATTR_DEVICE_INDEX) + * @NFC_EVENT_TM_ACTIVATED: event emitted when the adapter is activated in + * target mode. + * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated + * from target mode. + * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device + * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for + * a device. LTO must be set before the link is up otherwise -EINPROGRESS + * is returned. RW and MIUX can be set at anytime and will be passed in + * subsequent CONNECT and CC messages. + * If one of the passed parameters is wrong none is set and -EINVAL is + * returned. + * @NFC_CMD_ENABLE_SE: Enable the physical link to a specific secure element. + * Once enabled a secure element will handle card emulation mode, i.e. + * starting a poll from a device which has a secure element enabled means + * we want to do SE based card emulation. + * @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element. + */ +enum nfc_commands { + NFC_CMD_UNSPEC, + NFC_CMD_GET_DEVICE, + NFC_CMD_DEV_UP, + NFC_CMD_DEV_DOWN, + NFC_CMD_DEP_LINK_UP, + NFC_CMD_DEP_LINK_DOWN, + NFC_CMD_START_POLL, + NFC_CMD_STOP_POLL, + NFC_CMD_GET_TARGET, + NFC_EVENT_TARGETS_FOUND, + NFC_EVENT_DEVICE_ADDED, + NFC_EVENT_DEVICE_REMOVED, + NFC_EVENT_TARGET_LOST, + NFC_EVENT_TM_ACTIVATED, + NFC_EVENT_TM_DEACTIVATED, + NFC_CMD_LLC_GET_PARAMS, + NFC_CMD_LLC_SET_PARAMS, + NFC_CMD_ENABLE_SE, + NFC_CMD_DISABLE_SE, + NFC_CMD_LLC_SDREQ, + NFC_EVENT_LLC_SDRES, +/* private: internal use only */ + __NFC_CMD_AFTER_LAST +}; +#define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1) + +/** + * enum nfc_attrs - supported nfc attributes + * + * @NFC_ATTR_UNSPEC: unspecified attribute + * + * @NFC_ATTR_DEVICE_INDEX: index of nfc device + * @NFC_ATTR_DEVICE_NAME: device name, max 8 chars + * @NFC_ATTR_PROTOCOLS: nfc protocols - bitwise or-ed combination from + * NFC_PROTO_*_MASK constants + * @NFC_ATTR_TARGET_INDEX: index of the nfc target + * @NFC_ATTR_TARGET_SENS_RES: NFC-A targets extra information such as NFCID + * @NFC_ATTR_TARGET_SEL_RES: NFC-A targets extra information (useful if the + * target is not NFC-Forum compliant) + * @NFC_ATTR_TARGET_NFCID1: NFC-A targets identifier, max 10 bytes + * @NFC_ATTR_TARGET_SENSB_RES: NFC-B targets extra information, max 12 bytes + * @NFC_ATTR_TARGET_SENSF_RES: NFC-F targets extra information, max 18 bytes + * @NFC_ATTR_COMM_MODE: Passive or active mode + * @NFC_ATTR_RF_MODE: Initiator or target + * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for + * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for + * @NFC_ATTR_LLC_PARAM_LTO: Link TimeOut parameter + * @NFC_ATTR_LLC_PARAM_RW: Receive Window size parameter + * @NFC_ATTR_LLC_PARAM_MIUX: MIU eXtension parameter + * @NFC_ATTR_SE: Available Secure Elements + */ +enum nfc_attrs { + NFC_ATTR_UNSPEC, + NFC_ATTR_DEVICE_INDEX, + NFC_ATTR_DEVICE_NAME, + NFC_ATTR_PROTOCOLS, + NFC_ATTR_TARGET_INDEX, + NFC_ATTR_TARGET_SENS_RES, + NFC_ATTR_TARGET_SEL_RES, + NFC_ATTR_TARGET_NFCID1, + NFC_ATTR_TARGET_SENSB_RES, + NFC_ATTR_TARGET_SENSF_RES, + NFC_ATTR_COMM_MODE, + NFC_ATTR_RF_MODE, + NFC_ATTR_DEVICE_POWERED, + NFC_ATTR_IM_PROTOCOLS, + NFC_ATTR_TM_PROTOCOLS, + NFC_ATTR_LLC_PARAM_LTO, + NFC_ATTR_LLC_PARAM_RW, + NFC_ATTR_LLC_PARAM_MIUX, + NFC_ATTR_SE, + NFC_ATTR_LLC_SDP, +/* private: internal use only */ + __NFC_ATTR_AFTER_LAST +}; +#define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1) + +enum nfc_sdp_attr { + NFC_SDP_ATTR_UNSPEC, + NFC_SDP_ATTR_URI, + NFC_SDP_ATTR_SAP, +/* private: internal use only */ + __NFC_SDP_ATTR_AFTER_LAST +}; +#define NFC_SDP_ATTR_MAX (__NFC_SDP_ATTR_AFTER_LAST - 1) + +#define NFC_DEVICE_NAME_MAXSIZE 8 +#define NFC_NFCID1_MAXSIZE 10 +#define NFC_SENSB_RES_MAXSIZE 12 +#define NFC_SENSF_RES_MAXSIZE 18 +#define NFC_GB_MAXSIZE 48 + +/* NFC protocols */ +#define NFC_PROTO_JEWEL 1 +#define NFC_PROTO_MIFARE 2 +#define NFC_PROTO_FELICA 3 +#define NFC_PROTO_ISO14443 4 +#define NFC_PROTO_NFC_DEP 5 +#define NFC_PROTO_ISO14443_B 6 + +#define NFC_PROTO_MAX 7 + +/* NFC communication modes */ +#define NFC_COMM_ACTIVE 0 +#define NFC_COMM_PASSIVE 1 + +/* NFC RF modes */ +#define NFC_RF_INITIATOR 0 +#define NFC_RF_TARGET 1 +#define NFC_RF_NONE 2 + +/* NFC protocols masks used in bitsets */ +#define NFC_PROTO_JEWEL_MASK (1 << NFC_PROTO_JEWEL) +#define NFC_PROTO_MIFARE_MASK (1 << NFC_PROTO_MIFARE) +#define NFC_PROTO_FELICA_MASK (1 << NFC_PROTO_FELICA) +#define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443) +#define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) +#define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) + +/* NFC Secure Elements */ +#define NFC_SE_NONE 0x0 +#define NFC_SE_UICC 0x1 +#define NFC_SE_EMBEDDED 0x2 + +struct sockaddr_nfc { + sa_family_t sa_family; + __u32 dev_idx; + __u32 target_idx; + __u32 nfc_protocol; +}; + +#define NFC_LLCP_MAX_SERVICE_NAME 63 +struct sockaddr_nfc_llcp { + sa_family_t sa_family; + __u32 dev_idx; + __u32 target_idx; + __u32 nfc_protocol; + __u8 dsap; /* Destination SAP, if known */ + __u8 ssap; /* Source SAP to be bound to */ + char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */; + size_t service_name_len; +}; + +/* NFC socket protocols */ +#define NFC_SOCKPROTO_RAW 0 +#define NFC_SOCKPROTO_LLCP 1 +#define NFC_SOCKPROTO_MAX 2 + +#define NFC_HEADER_SIZE 1 + +/** + * Pseudo-header info for raw socket packets + * First byte is the adapter index + * Second byte contains flags + * - 0x01 - Direction (0=RX, 1=TX) + * - 0x02-0x80 - Reserved + **/ +#define NFC_LLCP_RAW_HEADER_SIZE 2 +#define NFC_LLCP_DIRECTION_RX 0x00 +#define NFC_LLCP_DIRECTION_TX 0x01 + +/* socket option names */ +#define NFC_LLCP_RW 0 +#define NFC_LLCP_MIUX 1 +#define NFC_LLCP_REMOTE_MIU 2 +#define NFC_LLCP_REMOTE_LTO 3 +#define NFC_LLCP_REMOTE_RW 4 + +#endif /*__LINUX_NFC_H */ diff --git a/kernel_headers/linux/nfs.h b/kernel_headers/linux/nfs.h new file mode 100644 index 0000000..eb98d3a --- /dev/null +++ b/kernel_headers/linux/nfs.h @@ -0,0 +1,131 @@ +/* + * NFS protocol definitions + * + * This file contains constants mostly for Version 2 of the protocol, + * but also has a couple of NFSv3 bits in (notably the error codes). + */ +#ifndef _LINUX_NFS_H +#define _LINUX_NFS_H + +#define NFS_PROGRAM 100003 +#define NFS_PORT 2049 +#define NFS_MAXDATA 8192 +#define NFS_MAXPATHLEN 1024 +#define NFS_MAXNAMLEN 255 +#define NFS_MAXGROUPS 16 +#define NFS_FHSIZE 32 +#define NFS_COOKIESIZE 4 +#define NFS_FIFO_DEV (-1) +#define NFSMODE_FMT 0170000 +#define NFSMODE_DIR 0040000 +#define NFSMODE_CHR 0020000 +#define NFSMODE_BLK 0060000 +#define NFSMODE_REG 0100000 +#define NFSMODE_LNK 0120000 +#define NFSMODE_SOCK 0140000 +#define NFSMODE_FIFO 0010000 + +#define NFS_MNT_PROGRAM 100005 +#define NFS_MNT_VERSION 1 +#define NFS_MNT3_VERSION 3 + +#define NFS_PIPE_DIRNAME "nfs" + +/* + * NFS stats. The good thing with these values is that NFSv3 errors are + * a superset of NFSv2 errors (with the exception of NFSERR_WFLUSH which + * no-one uses anyway), so we can happily mix code as long as we make sure + * no NFSv3 errors are returned to NFSv2 clients. + * Error codes that have a `--' in the v2 column are not part of the + * standard, but seem to be widely used nevertheless. + */ + enum nfs_stat { + NFS_OK = 0, /* v2 v3 v4 */ + NFSERR_PERM = 1, /* v2 v3 v4 */ + NFSERR_NOENT = 2, /* v2 v3 v4 */ + NFSERR_IO = 5, /* v2 v3 v4 */ + NFSERR_NXIO = 6, /* v2 v3 v4 */ + NFSERR_EAGAIN = 11, /* v2 v3 */ + NFSERR_ACCES = 13, /* v2 v3 v4 */ + NFSERR_EXIST = 17, /* v2 v3 v4 */ + NFSERR_XDEV = 18, /* v3 v4 */ + NFSERR_NODEV = 19, /* v2 v3 v4 */ + NFSERR_NOTDIR = 20, /* v2 v3 v4 */ + NFSERR_ISDIR = 21, /* v2 v3 v4 */ + NFSERR_INVAL = 22, /* v2 v3 v4 */ + NFSERR_FBIG = 27, /* v2 v3 v4 */ + NFSERR_NOSPC = 28, /* v2 v3 v4 */ + NFSERR_ROFS = 30, /* v2 v3 v4 */ + NFSERR_MLINK = 31, /* v3 v4 */ + NFSERR_OPNOTSUPP = 45, /* v2 v3 */ + NFSERR_NAMETOOLONG = 63, /* v2 v3 v4 */ + NFSERR_NOTEMPTY = 66, /* v2 v3 v4 */ + NFSERR_DQUOT = 69, /* v2 v3 v4 */ + NFSERR_STALE = 70, /* v2 v3 v4 */ + NFSERR_REMOTE = 71, /* v2 v3 */ + NFSERR_WFLUSH = 99, /* v2 */ + NFSERR_BADHANDLE = 10001, /* v3 v4 */ + NFSERR_NOT_SYNC = 10002, /* v3 */ + NFSERR_BAD_COOKIE = 10003, /* v3 v4 */ + NFSERR_NOTSUPP = 10004, /* v3 v4 */ + NFSERR_TOOSMALL = 10005, /* v3 v4 */ + NFSERR_SERVERFAULT = 10006, /* v3 v4 */ + NFSERR_BADTYPE = 10007, /* v3 v4 */ + NFSERR_JUKEBOX = 10008, /* v3 v4 */ + NFSERR_SAME = 10009, /* v4 */ + NFSERR_DENIED = 10010, /* v4 */ + NFSERR_EXPIRED = 10011, /* v4 */ + NFSERR_LOCKED = 10012, /* v4 */ + NFSERR_GRACE = 10013, /* v4 */ + NFSERR_FHEXPIRED = 10014, /* v4 */ + NFSERR_SHARE_DENIED = 10015, /* v4 */ + NFSERR_WRONGSEC = 10016, /* v4 */ + NFSERR_CLID_INUSE = 10017, /* v4 */ + NFSERR_RESOURCE = 10018, /* v4 */ + NFSERR_MOVED = 10019, /* v4 */ + NFSERR_NOFILEHANDLE = 10020, /* v4 */ + NFSERR_MINOR_VERS_MISMATCH = 10021, /* v4 */ + NFSERR_STALE_CLIENTID = 10022, /* v4 */ + NFSERR_STALE_STATEID = 10023, /* v4 */ + NFSERR_OLD_STATEID = 10024, /* v4 */ + NFSERR_BAD_STATEID = 10025, /* v4 */ + NFSERR_BAD_SEQID = 10026, /* v4 */ + NFSERR_NOT_SAME = 10027, /* v4 */ + NFSERR_LOCK_RANGE = 10028, /* v4 */ + NFSERR_SYMLINK = 10029, /* v4 */ + NFSERR_RESTOREFH = 10030, /* v4 */ + NFSERR_LEASE_MOVED = 10031, /* v4 */ + NFSERR_ATTRNOTSUPP = 10032, /* v4 */ + NFSERR_NO_GRACE = 10033, /* v4 */ + NFSERR_RECLAIM_BAD = 10034, /* v4 */ + NFSERR_RECLAIM_CONFLICT = 10035,/* v4 */ + NFSERR_BAD_XDR = 10036, /* v4 */ + NFSERR_LOCKS_HELD = 10037, /* v4 */ + NFSERR_OPENMODE = 10038, /* v4 */ + NFSERR_BADOWNER = 10039, /* v4 */ + NFSERR_BADCHAR = 10040, /* v4 */ + NFSERR_BADNAME = 10041, /* v4 */ + NFSERR_BAD_RANGE = 10042, /* v4 */ + NFSERR_LOCK_NOTSUPP = 10043, /* v4 */ + NFSERR_OP_ILLEGAL = 10044, /* v4 */ + NFSERR_DEADLOCK = 10045, /* v4 */ + NFSERR_FILE_OPEN = 10046, /* v4 */ + NFSERR_ADMIN_REVOKED = 10047, /* v4 */ + NFSERR_CB_PATH_DOWN = 10048, /* v4 */ +}; + +/* NFSv2 file types - beware, these are not the same in NFSv3 */ + +enum nfs_ftype { + NFNON = 0, + NFREG = 1, + NFDIR = 2, + NFBLK = 3, + NFCHR = 4, + NFLNK = 5, + NFSOCK = 6, + NFBAD = 7, + NFFIFO = 8 +}; + +#endif /* _LINUX_NFS_H */ diff --git a/kernel_headers/linux/nfs2.h b/kernel_headers/linux/nfs2.h new file mode 100644 index 0000000..fde24b3 --- /dev/null +++ b/kernel_headers/linux/nfs2.h @@ -0,0 +1,67 @@ +/* + * NFS protocol definitions + * + * This file contains constants for Version 2 of the protocol. + */ +#ifndef _LINUX_NFS2_H +#define _LINUX_NFS2_H + +#define NFS2_PORT 2049 +#define NFS2_MAXDATA 8192 +#define NFS2_MAXPATHLEN 1024 +#define NFS2_MAXNAMLEN 255 +#define NFS2_MAXGROUPS 16 +#define NFS2_FHSIZE 32 +#define NFS2_COOKIESIZE 4 +#define NFS2_FIFO_DEV (-1) +#define NFS2MODE_FMT 0170000 +#define NFS2MODE_DIR 0040000 +#define NFS2MODE_CHR 0020000 +#define NFS2MODE_BLK 0060000 +#define NFS2MODE_REG 0100000 +#define NFS2MODE_LNK 0120000 +#define NFS2MODE_SOCK 0140000 +#define NFS2MODE_FIFO 0010000 + + +/* NFSv2 file types - beware, these are not the same in NFSv3 */ +enum nfs2_ftype { + NF2NON = 0, + NF2REG = 1, + NF2DIR = 2, + NF2BLK = 3, + NF2CHR = 4, + NF2LNK = 5, + NF2SOCK = 6, + NF2BAD = 7, + NF2FIFO = 8 +}; + +struct nfs2_fh { + char data[NFS2_FHSIZE]; +}; + +/* + * Procedure numbers for NFSv2 + */ +#define NFS2_VERSION 2 +#define NFSPROC_NULL 0 +#define NFSPROC_GETATTR 1 +#define NFSPROC_SETATTR 2 +#define NFSPROC_ROOT 3 +#define NFSPROC_LOOKUP 4 +#define NFSPROC_READLINK 5 +#define NFSPROC_READ 6 +#define NFSPROC_WRITECACHE 7 +#define NFSPROC_WRITE 8 +#define NFSPROC_CREATE 9 +#define NFSPROC_REMOVE 10 +#define NFSPROC_RENAME 11 +#define NFSPROC_LINK 12 +#define NFSPROC_SYMLINK 13 +#define NFSPROC_MKDIR 14 +#define NFSPROC_RMDIR 15 +#define NFSPROC_READDIR 16 +#define NFSPROC_STATFS 17 + +#endif /* _LINUX_NFS2_H */ diff --git a/kernel_headers/linux/nfs3.h b/kernel_headers/linux/nfs3.h new file mode 100644 index 0000000..bacfe41 --- /dev/null +++ b/kernel_headers/linux/nfs3.h @@ -0,0 +1,97 @@ +/* + * NFSv3 protocol definitions + */ +#ifndef _LINUX_NFS3_H +#define _LINUX_NFS3_H + +#define NFS3_PORT 2049 +#define NFS3_MAXDATA 32768 +#define NFS3_MAXPATHLEN PATH_MAX +#define NFS3_MAXNAMLEN NAME_MAX +#define NFS3_MAXGROUPS 16 +#define NFS3_FHSIZE 64 +#define NFS3_COOKIESIZE 4 +#define NFS3_CREATEVERFSIZE 8 +#define NFS3_COOKIEVERFSIZE 8 +#define NFS3_WRITEVERFSIZE 8 +#define NFS3_FIFO_DEV (-1) +#define NFS3MODE_FMT 0170000 +#define NFS3MODE_DIR 0040000 +#define NFS3MODE_CHR 0020000 +#define NFS3MODE_BLK 0060000 +#define NFS3MODE_REG 0100000 +#define NFS3MODE_LNK 0120000 +#define NFS3MODE_SOCK 0140000 +#define NFS3MODE_FIFO 0010000 + +/* Flags for access() call */ +#define NFS3_ACCESS_READ 0x0001 +#define NFS3_ACCESS_LOOKUP 0x0002 +#define NFS3_ACCESS_MODIFY 0x0004 +#define NFS3_ACCESS_EXTEND 0x0008 +#define NFS3_ACCESS_DELETE 0x0010 +#define NFS3_ACCESS_EXECUTE 0x0020 +#define NFS3_ACCESS_FULL 0x003f + +/* Flags for create mode */ +enum nfs3_createmode { + NFS3_CREATE_UNCHECKED = 0, + NFS3_CREATE_GUARDED = 1, + NFS3_CREATE_EXCLUSIVE = 2 +}; + +/* NFSv3 file system properties */ +#define NFS3_FSF_LINK 0x0001 +#define NFS3_FSF_SYMLINK 0x0002 +#define NFS3_FSF_HOMOGENEOUS 0x0008 +#define NFS3_FSF_CANSETTIME 0x0010 +/* Some shorthands. See fs/nfsd/nfs3proc.c */ +#define NFS3_FSF_DEFAULT 0x001B +#define NFS3_FSF_BILLYBOY 0x0018 +#define NFS3_FSF_READONLY 0x0008 + +enum nfs3_ftype { + NF3NON = 0, + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7, /* changed from NFSv2 (was 8) */ + NF3BAD = 8 +}; + +struct nfs3_fh { + unsigned short size; + unsigned char data[NFS3_FHSIZE]; +}; + +#define NFS3_VERSION 3 +#define NFS3PROC_NULL 0 +#define NFS3PROC_GETATTR 1 +#define NFS3PROC_SETATTR 2 +#define NFS3PROC_LOOKUP 3 +#define NFS3PROC_ACCESS 4 +#define NFS3PROC_READLINK 5 +#define NFS3PROC_READ 6 +#define NFS3PROC_WRITE 7 +#define NFS3PROC_CREATE 8 +#define NFS3PROC_MKDIR 9 +#define NFS3PROC_SYMLINK 10 +#define NFS3PROC_MKNOD 11 +#define NFS3PROC_REMOVE 12 +#define NFS3PROC_RMDIR 13 +#define NFS3PROC_RENAME 14 +#define NFS3PROC_LINK 15 +#define NFS3PROC_READDIR 16 +#define NFS3PROC_READDIRPLUS 17 +#define NFS3PROC_FSSTAT 18 +#define NFS3PROC_FSINFO 19 +#define NFS3PROC_PATHCONF 20 +#define NFS3PROC_COMMIT 21 + +#define NFS_MNT3_VERSION 3 + + +#endif /* _LINUX_NFS3_H */ diff --git a/kernel_headers/linux/nfs4.h b/kernel_headers/linux/nfs4.h new file mode 100644 index 0000000..454cfe1 --- /dev/null +++ b/kernel_headers/linux/nfs4.h @@ -0,0 +1,178 @@ +/* + * include/linux/nfs4.h + * + * NFSv4 protocol definitions. + * + * Copyright (c) 2002 The Regents of the University of Michigan. + * All rights reserved. + * + * Kendrick Smith + * Andy Adamson + */ + +#ifndef _LINUX_NFS4_H +#define _LINUX_NFS4_H + +#include + +#define NFS4_BITMAP_SIZE 2 +#define NFS4_VERIFIER_SIZE 8 +#define NFS4_STATEID_SEQID_SIZE 4 +#define NFS4_STATEID_OTHER_SIZE 12 +#define NFS4_STATEID_SIZE (NFS4_STATEID_SEQID_SIZE + NFS4_STATEID_OTHER_SIZE) +#define NFS4_FHSIZE 128 +#define NFS4_MAXPATHLEN PATH_MAX +#define NFS4_MAXNAMLEN NAME_MAX +#define NFS4_OPAQUE_LIMIT 1024 +#define NFS4_MAX_SESSIONID_LEN 16 + +#define NFS4_ACCESS_READ 0x0001 +#define NFS4_ACCESS_LOOKUP 0x0002 +#define NFS4_ACCESS_MODIFY 0x0004 +#define NFS4_ACCESS_EXTEND 0x0008 +#define NFS4_ACCESS_DELETE 0x0010 +#define NFS4_ACCESS_EXECUTE 0x0020 + +#define NFS4_FH_PERSISTENT 0x0000 +#define NFS4_FH_NOEXPIRE_WITH_OPEN 0x0001 +#define NFS4_FH_VOLATILE_ANY 0x0002 +#define NFS4_FH_VOL_MIGRATION 0x0004 +#define NFS4_FH_VOL_RENAME 0x0008 + +#define NFS4_OPEN_RESULT_CONFIRM 0x0002 +#define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004 + +#define NFS4_SHARE_ACCESS_MASK 0x000F +#define NFS4_SHARE_ACCESS_READ 0x0001 +#define NFS4_SHARE_ACCESS_WRITE 0x0002 +#define NFS4_SHARE_ACCESS_BOTH 0x0003 +#define NFS4_SHARE_DENY_READ 0x0001 +#define NFS4_SHARE_DENY_WRITE 0x0002 +#define NFS4_SHARE_DENY_BOTH 0x0003 + +/* nfs41 */ +#define NFS4_SHARE_WANT_MASK 0xFF00 +#define NFS4_SHARE_WANT_NO_PREFERENCE 0x0000 +#define NFS4_SHARE_WANT_READ_DELEG 0x0100 +#define NFS4_SHARE_WANT_WRITE_DELEG 0x0200 +#define NFS4_SHARE_WANT_ANY_DELEG 0x0300 +#define NFS4_SHARE_WANT_NO_DELEG 0x0400 +#define NFS4_SHARE_WANT_CANCEL 0x0500 + +#define NFS4_SHARE_WHEN_MASK 0xF0000 +#define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000 +#define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED 0x20000 + +#define NFS4_CDFC4_FORE 0x1 +#define NFS4_CDFC4_BACK 0x2 +#define NFS4_CDFC4_BOTH 0x3 +#define NFS4_CDFC4_FORE_OR_BOTH 0x3 +#define NFS4_CDFC4_BACK_OR_BOTH 0x7 + +#define NFS4_CDFS4_FORE 0x1 +#define NFS4_CDFS4_BACK 0x2 +#define NFS4_CDFS4_BOTH 0x3 + +#define NFS4_SET_TO_SERVER_TIME 0 +#define NFS4_SET_TO_CLIENT_TIME 1 + +#define NFS4_ACE_ACCESS_ALLOWED_ACE_TYPE 0 +#define NFS4_ACE_ACCESS_DENIED_ACE_TYPE 1 +#define NFS4_ACE_SYSTEM_AUDIT_ACE_TYPE 2 +#define NFS4_ACE_SYSTEM_ALARM_ACE_TYPE 3 + +#define ACL4_SUPPORT_ALLOW_ACL 0x01 +#define ACL4_SUPPORT_DENY_ACL 0x02 +#define ACL4_SUPPORT_AUDIT_ACL 0x04 +#define ACL4_SUPPORT_ALARM_ACL 0x08 + +#define NFS4_ACE_FILE_INHERIT_ACE 0x00000001 +#define NFS4_ACE_DIRECTORY_INHERIT_ACE 0x00000002 +#define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE 0x00000004 +#define NFS4_ACE_INHERIT_ONLY_ACE 0x00000008 +#define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010 +#define NFS4_ACE_FAILED_ACCESS_ACE_FLAG 0x00000020 +#define NFS4_ACE_IDENTIFIER_GROUP 0x00000040 + +#define NFS4_ACE_READ_DATA 0x00000001 +#define NFS4_ACE_LIST_DIRECTORY 0x00000001 +#define NFS4_ACE_WRITE_DATA 0x00000002 +#define NFS4_ACE_ADD_FILE 0x00000002 +#define NFS4_ACE_APPEND_DATA 0x00000004 +#define NFS4_ACE_ADD_SUBDIRECTORY 0x00000004 +#define NFS4_ACE_READ_NAMED_ATTRS 0x00000008 +#define NFS4_ACE_WRITE_NAMED_ATTRS 0x00000010 +#define NFS4_ACE_EXECUTE 0x00000020 +#define NFS4_ACE_DELETE_CHILD 0x00000040 +#define NFS4_ACE_READ_ATTRIBUTES 0x00000080 +#define NFS4_ACE_WRITE_ATTRIBUTES 0x00000100 +#define NFS4_ACE_DELETE 0x00010000 +#define NFS4_ACE_READ_ACL 0x00020000 +#define NFS4_ACE_WRITE_ACL 0x00040000 +#define NFS4_ACE_WRITE_OWNER 0x00080000 +#define NFS4_ACE_SYNCHRONIZE 0x00100000 +#define NFS4_ACE_GENERIC_READ 0x00120081 +#define NFS4_ACE_GENERIC_WRITE 0x00160106 +#define NFS4_ACE_GENERIC_EXECUTE 0x001200A0 +#define NFS4_ACE_MASK_ALL 0x001F01FF + +#define EXCHGID4_FLAG_SUPP_MOVED_REFER 0x00000001 +#define EXCHGID4_FLAG_SUPP_MOVED_MIGR 0x00000002 +#define EXCHGID4_FLAG_BIND_PRINC_STATEID 0x00000100 + +#define EXCHGID4_FLAG_USE_NON_PNFS 0x00010000 +#define EXCHGID4_FLAG_USE_PNFS_MDS 0x00020000 +#define EXCHGID4_FLAG_USE_PNFS_DS 0x00040000 +#define EXCHGID4_FLAG_MASK_PNFS 0x00070000 + +#define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A 0x40000000 +#define EXCHGID4_FLAG_CONFIRMED_R 0x80000000 +/* + * Since the validity of these bits depends on whether + * they're set in the argument or response, have separate + * invalid flag masks for arg (_A) and resp (_R). + */ +#define EXCHGID4_FLAG_MASK_A 0x40070103 +#define EXCHGID4_FLAG_MASK_R 0x80070103 + +#define SEQ4_STATUS_CB_PATH_DOWN 0x00000001 +#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING 0x00000002 +#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED 0x00000004 +#define SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED 0x00000008 +#define SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED 0x00000010 +#define SEQ4_STATUS_ADMIN_STATE_REVOKED 0x00000020 +#define SEQ4_STATUS_RECALLABLE_STATE_REVOKED 0x00000040 +#define SEQ4_STATUS_LEASE_MOVED 0x00000080 +#define SEQ4_STATUS_RESTART_RECLAIM_NEEDED 0x00000100 +#define SEQ4_STATUS_CB_PATH_DOWN_SESSION 0x00000200 +#define SEQ4_STATUS_BACKCHANNEL_FAULT 0x00000400 + +#define NFS4_SECINFO_STYLE4_CURRENT_FH 0 +#define NFS4_SECINFO_STYLE4_PARENT 1 + +#define NFS4_MAX_UINT64 (~(u64)0) + +/* An NFS4 sessions server must support at least NFS4_MAX_OPS operations. + * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly. + */ +#define NFS4_MAX_OPS 8 + +/* Our NFS4 client back channel server only wants the cb_sequene and the + * actual operation per compound + */ +#define NFS4_MAX_BACK_CHANNEL_OPS 2 + +enum nfs4_acl_whotype { + NFS4_ACL_WHO_NAMED = 0, + NFS4_ACL_WHO_OWNER, + NFS4_ACL_WHO_GROUP, + NFS4_ACL_WHO_EVERYONE, +}; + +#endif /* _LINUX_NFS4_H */ + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */ diff --git a/kernel_headers/linux/nfs4_mount.h b/kernel_headers/linux/nfs4_mount.h new file mode 100644 index 0000000..f4ff32d --- /dev/null +++ b/kernel_headers/linux/nfs4_mount.h @@ -0,0 +1,71 @@ +#ifndef _LINUX_NFS4_MOUNT_H +#define _LINUX_NFS4_MOUNT_H + +/* + * linux/include/linux/nfs4_mount.h + * + * Copyright (C) 2002 Trond Myklebust + * + * structure passed from user-space to kernel-space during an nfsv4 mount + */ + +/* + * WARNING! Do not delete or change the order of these fields. If + * a new field is required then add it to the end. The version field + * tracks which fields are present. This will ensure some measure of + * mount-to-kernel version compatibility. Some of these aren't used yet + * but here they are anyway. + */ +#define NFS4_MOUNT_VERSION 1 + +struct nfs_string { + unsigned int len; + const char * data; +}; + +struct nfs4_mount_data { + int version; /* 1 */ + int flags; /* 1 */ + int rsize; /* 1 */ + int wsize; /* 1 */ + int timeo; /* 1 */ + int retrans; /* 1 */ + int acregmin; /* 1 */ + int acregmax; /* 1 */ + int acdirmin; /* 1 */ + int acdirmax; /* 1 */ + + /* see the definition of 'struct clientaddr4' in RFC3010 */ + struct nfs_string client_addr; /* 1 */ + + /* Mount path */ + struct nfs_string mnt_path; /* 1 */ + + /* Server details */ + struct nfs_string hostname; /* 1 */ + /* Server IP address */ + unsigned int host_addrlen; /* 1 */ + struct sockaddr * host_addr; /* 1 */ + + /* Transport protocol to use */ + int proto; /* 1 */ + + /* Pseudo-flavours to use for authentication. See RFC2623 */ + int auth_flavourlen; /* 1 */ + int *auth_flavours; /* 1 */ +}; + +/* bits in the flags field */ +/* Note: the fields that correspond to existing NFSv2/v3 mount options + * should mirror the values from include/linux/nfs_mount.h + */ + +#define NFS4_MOUNT_SOFT 0x0001 /* 1 */ +#define NFS4_MOUNT_INTR 0x0002 /* 1 */ +#define NFS4_MOUNT_NOCTO 0x0010 /* 1 */ +#define NFS4_MOUNT_NOAC 0x0020 /* 1 */ +#define NFS4_MOUNT_STRICTLOCK 0x1000 /* 1 */ +#define NFS4_MOUNT_UNSHARED 0x8000 /* 1 */ +#define NFS4_MOUNT_FLAGMASK 0x9033 + +#endif diff --git a/kernel_headers/linux/nfs_fs.h b/kernel_headers/linux/nfs_fs.h new file mode 100644 index 0000000..99e509a --- /dev/null +++ b/kernel_headers/linux/nfs_fs.h @@ -0,0 +1,61 @@ +/* + * linux/include/linux/nfs_fs.h + * + * Copyright (C) 1992 Rick Sladkey + * + * OS-specific nfs filesystem definitions and declarations + */ + +#ifndef _LINUX_NFS_FS_H +#define _LINUX_NFS_FS_H + +#include + +/* Default timeout values */ +#define NFS_DEF_UDP_TIMEO (11) +#define NFS_DEF_UDP_RETRANS (3) +#define NFS_DEF_TCP_TIMEO (600) +#define NFS_DEF_TCP_RETRANS (2) + +#define NFS_MAX_UDP_TIMEOUT (60*HZ) +#define NFS_MAX_TCP_TIMEOUT (600*HZ) + +#define NFS_DEF_ACREGMIN (3) +#define NFS_DEF_ACREGMAX (60) +#define NFS_DEF_ACDIRMIN (30) +#define NFS_DEF_ACDIRMAX (60) + +/* + * When flushing a cluster of dirty pages, there can be different + * strategies: + */ +#define FLUSH_SYNC 1 /* file being synced, or contention */ +#define FLUSH_STABLE 4 /* commit to stable storage */ +#define FLUSH_LOWPRI 8 /* low priority background flush */ +#define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */ +#define FLUSH_COND_STABLE 32 /* conditional stable write - only stable + * if everything fits in one RPC */ + + +/* + * NFS debug flags + */ +#define NFSDBG_VFS 0x0001 +#define NFSDBG_DIRCACHE 0x0002 +#define NFSDBG_LOOKUPCACHE 0x0004 +#define NFSDBG_PAGECACHE 0x0008 +#define NFSDBG_PROC 0x0010 +#define NFSDBG_XDR 0x0020 +#define NFSDBG_FILE 0x0040 +#define NFSDBG_ROOT 0x0080 +#define NFSDBG_CALLBACK 0x0100 +#define NFSDBG_CLIENT 0x0200 +#define NFSDBG_MOUNT 0x0400 +#define NFSDBG_FSCACHE 0x0800 +#define NFSDBG_PNFS 0x1000 +#define NFSDBG_PNFS_LD 0x2000 +#define NFSDBG_STATE 0x4000 +#define NFSDBG_ALL 0xFFFF + + +#endif /* _LINUX_NFS_FS_H */ diff --git a/kernel_headers/linux/nfs_idmap.h b/kernel_headers/linux/nfs_idmap.h new file mode 100644 index 0000000..05f843c --- /dev/null +++ b/kernel_headers/linux/nfs_idmap.h @@ -0,0 +1,65 @@ +/* + * include/linux/nfs_idmap.h + * + * UID and GID to name mapping for clients. + * + * Copyright (c) 2002 The Regents of the University of Michigan. + * All rights reserved. + * + * Marius Aamodt Eriksen + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef NFS_IDMAP_H +#define NFS_IDMAP_H + +#include + +/* XXX from bits/utmp.h */ +#define IDMAP_NAMESZ 128 + +#define IDMAP_TYPE_USER 0 +#define IDMAP_TYPE_GROUP 1 + +#define IDMAP_CONV_IDTONAME 0 +#define IDMAP_CONV_NAMETOID 1 + +#define IDMAP_STATUS_INVALIDMSG 0x01 +#define IDMAP_STATUS_AGAIN 0x02 +#define IDMAP_STATUS_LOOKUPFAIL 0x04 +#define IDMAP_STATUS_SUCCESS 0x08 + +struct idmap_msg { + __u8 im_type; + __u8 im_conv; + char im_name[IDMAP_NAMESZ]; + __u32 im_id; + __u8 im_status; +}; + + +#endif /* NFS_IDMAP_H */ diff --git a/kernel_headers/linux/nfs_mount.h b/kernel_headers/linux/nfs_mount.h new file mode 100644 index 0000000..576bddd --- /dev/null +++ b/kernel_headers/linux/nfs_mount.h @@ -0,0 +1,77 @@ +#ifndef _LINUX_NFS_MOUNT_H +#define _LINUX_NFS_MOUNT_H + +/* + * linux/include/linux/nfs_mount.h + * + * Copyright (C) 1992 Rick Sladkey + * + * structure passed from user-space to kernel-space during an nfs mount + */ +#include +#include +#include +#include + +/* + * WARNING! Do not delete or change the order of these fields. If + * a new field is required then add it to the end. The version field + * tracks which fields are present. This will ensure some measure of + * mount-to-kernel version compatibility. Some of these aren't used yet + * but here they are anyway. + */ +#define NFS_MOUNT_VERSION 6 +#define NFS_MAX_CONTEXT_LEN 256 + +struct nfs_mount_data { + int version; /* 1 */ + int fd; /* 1 */ + struct nfs2_fh old_root; /* 1 */ + int flags; /* 1 */ + int rsize; /* 1 */ + int wsize; /* 1 */ + int timeo; /* 1 */ + int retrans; /* 1 */ + int acregmin; /* 1 */ + int acregmax; /* 1 */ + int acdirmin; /* 1 */ + int acdirmax; /* 1 */ + struct sockaddr_in addr; /* 1 */ + char hostname[NFS_MAXNAMLEN + 1]; /* 1 */ + int namlen; /* 2 */ + unsigned int bsize; /* 3 */ + struct nfs3_fh root; /* 4 */ + int pseudoflavor; /* 5 */ + char context[NFS_MAX_CONTEXT_LEN + 1]; /* 6 */ +}; + +/* bits in the flags field visible to user space */ + +#define NFS_MOUNT_SOFT 0x0001 /* 1 */ +#define NFS_MOUNT_INTR 0x0002 /* 1 */ /* now unused, but ABI */ +#define NFS_MOUNT_SECURE 0x0004 /* 1 */ +#define NFS_MOUNT_POSIX 0x0008 /* 1 */ +#define NFS_MOUNT_NOCTO 0x0010 /* 1 */ +#define NFS_MOUNT_NOAC 0x0020 /* 1 */ +#define NFS_MOUNT_TCP 0x0040 /* 2 */ +#define NFS_MOUNT_VER3 0x0080 /* 3 */ +#define NFS_MOUNT_KERBEROS 0x0100 /* 3 */ +#define NFS_MOUNT_NONLM 0x0200 /* 3 */ +#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */ +#define NFS_MOUNT_NOACL 0x0800 /* 4 */ +#define NFS_MOUNT_STRICTLOCK 0x1000 /* reserved for NFSv4 */ +#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */ +#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */ +#define NFS_MOUNT_UNSHARED 0x8000 /* 5 */ +#define NFS_MOUNT_FLAGMASK 0xFFFF + +/* The following are for internal use only */ +#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000 +#define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000 +#define NFS_MOUNT_NORESVPORT 0x40000 +#define NFS_MOUNT_LEGACY_INTERFACE 0x80000 + +#define NFS_MOUNT_LOCAL_FLOCK 0x100000 +#define NFS_MOUNT_LOCAL_FCNTL 0x200000 + +#endif diff --git a/kernel_headers/linux/nfsacl.h b/kernel_headers/linux/nfsacl.h new file mode 100644 index 0000000..1b16be3 --- /dev/null +++ b/kernel_headers/linux/nfsacl.h @@ -0,0 +1,29 @@ +/* + * File: linux/nfsacl.h + * + * (C) 2003 Andreas Gruenbacher + */ +#ifndef __LINUX_NFSACL_H +#define __LINUX_NFSACL_H + +#define NFS_ACL_PROGRAM 100227 + +#define ACLPROC2_GETACL 1 +#define ACLPROC2_SETACL 2 +#define ACLPROC2_GETATTR 3 +#define ACLPROC2_ACCESS 4 + +#define ACLPROC3_GETACL 1 +#define ACLPROC3_SETACL 2 + + +/* Flags for the getacl/setacl mode */ +#define NFS_ACL 0x0001 +#define NFS_ACLCNT 0x0002 +#define NFS_DFACL 0x0004 +#define NFS_DFACLCNT 0x0008 + +/* Flag for Default ACL entries */ +#define NFS_ACL_DEFAULT 0x1000 + +#endif /* __LINUX_NFSACL_H */ diff --git a/kernel_headers/linux/nfsd/..install.cmd b/kernel_headers/linux/nfsd/..install.cmd new file mode 100644 index 0000000..c87f82c --- /dev/null +++ b/kernel_headers/linux/nfsd/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/nfsd/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/nfsd /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/nfsd cld.h debug.h export.h nfsfh.h stats.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/nfsd /android/kernels/moto/surnia/kernel-msm/include/linux/nfsd ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/nfsd /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/nfsd ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/nfsd/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/nfsd/.install diff --git a/kernel_headers/linux/nfsd/.install b/kernel_headers/linux/nfsd/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/nfsd/cld.h b/kernel_headers/linux/nfsd/cld.h new file mode 100644 index 0000000..f14a9ab --- /dev/null +++ b/kernel_headers/linux/nfsd/cld.h @@ -0,0 +1,56 @@ +/* + * Upcall description for nfsdcld communication + * + * Copyright (c) 2012 Red Hat, Inc. + * Author(s): Jeff Layton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _NFSD_CLD_H +#define _NFSD_CLD_H + +/* latest upcall version available */ +#define CLD_UPCALL_VERSION 1 + +/* defined by RFC3530 */ +#define NFS4_OPAQUE_LIMIT 1024 + +enum cld_command { + Cld_Create, /* create a record for this cm_id */ + Cld_Remove, /* remove record of this cm_id */ + Cld_Check, /* is this cm_id allowed? */ + Cld_GraceDone, /* grace period is complete */ +}; + +/* representation of long-form NFSv4 client ID */ +struct cld_name { + uint16_t cn_len; /* length of cm_id */ + unsigned char cn_id[NFS4_OPAQUE_LIMIT]; /* client-provided */ +} __attribute__((packed)); + +/* message struct for communication with userspace */ +struct cld_msg { + uint8_t cm_vers; /* upcall version */ + uint8_t cm_cmd; /* upcall command */ + int16_t cm_status; /* return code */ + uint32_t cm_xid; /* transaction id */ + union { + int64_t cm_gracetime; /* grace period start time */ + struct cld_name cm_name; + } __attribute__((packed)) cm_u; +} __attribute__((packed)); + +#endif /* !_NFSD_CLD_H */ diff --git a/kernel_headers/linux/nfsd/debug.h b/kernel_headers/linux/nfsd/debug.h new file mode 100644 index 0000000..7d58c12 --- /dev/null +++ b/kernel_headers/linux/nfsd/debug.h @@ -0,0 +1,40 @@ +/* + * linux/include/linux/nfsd/debug.h + * + * Debugging-related stuff for nfsd + * + * Copyright (C) 1995 Olaf Kirch + */ + +#ifndef LINUX_NFSD_DEBUG_H +#define LINUX_NFSD_DEBUG_H + +#include + +/* + * Enable debugging for nfsd. + * Requires RPC_DEBUG. + */ +#ifdef RPC_DEBUG +# define NFSD_DEBUG 1 +#endif + +/* + * knfsd debug flags + */ +#define NFSDDBG_SOCK 0x0001 +#define NFSDDBG_FH 0x0002 +#define NFSDDBG_EXPORT 0x0004 +#define NFSDDBG_SVC 0x0008 +#define NFSDDBG_PROC 0x0010 +#define NFSDDBG_FILEOP 0x0020 +#define NFSDDBG_AUTH 0x0040 +#define NFSDDBG_REPCACHE 0x0080 +#define NFSDDBG_XDR 0x0100 +#define NFSDDBG_LOCKD 0x0200 +#define NFSDDBG_ALL 0x7FFF +#define NFSDDBG_NOCHANGE 0xFFFF + + + +#endif /* LINUX_NFSD_DEBUG_H */ diff --git a/kernel_headers/linux/nfsd/export.h b/kernel_headers/linux/nfsd/export.h new file mode 100644 index 0000000..44cdb25 --- /dev/null +++ b/kernel_headers/linux/nfsd/export.h @@ -0,0 +1,58 @@ +/* + * include/linux/nfsd/export.h + * + * Public declarations for NFS exports. The definitions for the + * syscall interface are in nfsctl.h + * + * Copyright (C) 1995-1997 Olaf Kirch + */ + +#ifndef NFSD_EXPORT_H +#define NFSD_EXPORT_H + +# include + +/* + * Important limits for the exports stuff. + */ +#define NFSCLNT_IDMAX 1024 +#define NFSCLNT_ADDRMAX 16 +#define NFSCLNT_KEYMAX 32 + +/* + * Export flags. + */ +#define NFSEXP_READONLY 0x0001 +#define NFSEXP_INSECURE_PORT 0x0002 +#define NFSEXP_ROOTSQUASH 0x0004 +#define NFSEXP_ALLSQUASH 0x0008 +#define NFSEXP_ASYNC 0x0010 +#define NFSEXP_GATHERED_WRITES 0x0020 +/* 40 80 100 currently unused */ +#define NFSEXP_NOHIDE 0x0200 +#define NFSEXP_NOSUBTREECHECK 0x0400 +#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */ +#define NFSEXP_MSNFS 0x1000 /* do silly things that MS clients expect; no longer supported */ +#define NFSEXP_FSID 0x2000 +#define NFSEXP_CROSSMOUNT 0x4000 +#define NFSEXP_NOACL 0x8000 /* reserved for possible ACL related use */ +/* + * The NFSEXP_V4ROOT flag causes the kernel to give access only to NFSv4 + * clients, and only to the single directory that is the root of the + * export; further lookup and readdir operations are treated as if every + * subdirectory was a mountpoint, and ignored if they are not themselves + * exported. This is used by nfsd and mountd to construct the NFSv4 + * pseudofilesystem, which provides access only to paths leading to each + * exported filesystem. + */ +#define NFSEXP_V4ROOT 0x10000 +/* All flags that we claim to support. (Note we don't support NOACL.) */ +#define NFSEXP_ALLFLAGS 0x17E3F + +/* The flags that may vary depending on security flavor: */ +#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ + | NFSEXP_ALLSQUASH \ + | NFSEXP_INSECURE_PORT) + + +#endif /* NFSD_EXPORT_H */ diff --git a/kernel_headers/linux/nfsd/nfsfh.h b/kernel_headers/linux/nfsd/nfsfh.h new file mode 100644 index 0000000..07f80e6 --- /dev/null +++ b/kernel_headers/linux/nfsd/nfsfh.h @@ -0,0 +1,122 @@ +/* + * include/linux/nfsd/nfsfh.h + * + * This file describes the layout of the file handles as passed + * over the wire. + * + * Earlier versions of knfsd used to sign file handles using keyed MD5 + * or SHA. I've removed this code, because it doesn't give you more + * security than blocking external access to port 2049 on your firewall. + * + * Copyright (C) 1995, 1996, 1997 Olaf Kirch + */ + +#ifndef _LINUX_NFSD_FH_H +#define _LINUX_NFSD_FH_H + +#include +#include +#include +#include +#include + +/* + * This is the old "dentry style" Linux NFSv2 file handle. + * + * The xino and xdev fields are currently used to transport the + * ino/dev of the exported inode. + */ +struct nfs_fhbase_old { + __u32 fb_dcookie; /* dentry cookie - always 0xfeebbaca */ + __u32 fb_ino; /* our inode number */ + __u32 fb_dirino; /* dir inode number, 0 for directories */ + __u32 fb_dev; /* our device */ + __u32 fb_xdev; + __u32 fb_xino; + __u32 fb_generation; +}; + +/* + * This is the new flexible, extensible style NFSv2/v3 file handle. + * by Neil Brown - March 2000 + * + * The file handle starts with a sequence of four-byte words. + * The first word contains a version number (1) and three descriptor bytes + * that tell how the remaining 3 variable length fields should be handled. + * These three bytes are auth_type, fsid_type and fileid_type. + * + * All four-byte values are in host-byte-order. + * + * The auth_type field specifies how the filehandle can be authenticated + * This might allow a file to be confirmed to be in a writable part of a + * filetree without checking the path from it up to the root. + * Current values: + * 0 - No authentication. fb_auth is 0 bytes long + * Possible future values: + * 1 - 4 bytes taken from MD5 hash of the remainer of the file handle + * prefixed by a secret and with the important export flags. + * + * The fsid_type identifies how the filesystem (or export point) is + * encoded. + * Current values: + * 0 - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number + * NOTE: we cannot use the kdev_t device id value, because kdev_t.h + * says we mustn't. We must break it up and reassemble. + * 1 - 4 byte user specified identifier + * 2 - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED + * 3 - 4 byte device id, encoded for user-space, 4 byte inode number + * 4 - 4 byte inode number and 4 byte uuid + * 5 - 8 byte uuid + * 6 - 16 byte uuid + * 7 - 8 byte inode number and 16 byte uuid + * + * The fileid_type identified how the file within the filesystem is encoded. + * This is (will be) passed to, and set by, the underlying filesystem if it supports + * filehandle operations. The filesystem must not use the value '0' or '0xff' and may + * only use the values 1 and 2 as defined below: + * Current values: + * 0 - The root, or export point, of the filesystem. fb_fileid is 0 bytes. + * 1 - 32bit inode number, 32 bit generation number. + * 2 - 32bit inode number, 32 bit generation number, 32 bit parent directory inode number. + * + */ +struct nfs_fhbase_new { + __u8 fb_version; /* == 1, even => nfs_fhbase_old */ + __u8 fb_auth_type; + __u8 fb_fsid_type; + __u8 fb_fileid_type; + __u32 fb_auth[1]; +/* __u32 fb_fsid[0]; floating */ +/* __u32 fb_fileid[0]; floating */ +}; + +struct knfsd_fh { + unsigned int fh_size; /* significant for NFSv3. + * Points to the current size while building + * a new file handle + */ + union { + struct nfs_fhbase_old fh_old; + __u32 fh_pad[NFS4_FHSIZE/4]; + struct nfs_fhbase_new fh_new; + } fh_base; +}; + +#define ofh_dcookie fh_base.fh_old.fb_dcookie +#define ofh_ino fh_base.fh_old.fb_ino +#define ofh_dirino fh_base.fh_old.fb_dirino +#define ofh_dev fh_base.fh_old.fb_dev +#define ofh_xdev fh_base.fh_old.fb_xdev +#define ofh_xino fh_base.fh_old.fb_xino +#define ofh_generation fh_base.fh_old.fb_generation + +#define fh_version fh_base.fh_new.fb_version +#define fh_fsid_type fh_base.fh_new.fb_fsid_type +#define fh_auth_type fh_base.fh_new.fb_auth_type +#define fh_fileid_type fh_base.fh_new.fb_fileid_type +#define fh_auth fh_base.fh_new.fb_auth +#define fh_fsid fh_base.fh_new.fb_auth + + + +#endif /* _LINUX_NFSD_FH_H */ diff --git a/kernel_headers/linux/nfsd/stats.h b/kernel_headers/linux/nfsd/stats.h new file mode 100644 index 0000000..b7024e8 --- /dev/null +++ b/kernel_headers/linux/nfsd/stats.h @@ -0,0 +1,17 @@ +/* + * linux/include/linux/nfsd/stats.h + * + * Statistics for NFS server. + * + * Copyright (C) 1995, 1996 Olaf Kirch + */ + +#ifndef LINUX_NFSD_STATS_H +#define LINUX_NFSD_STATS_H + +#include + +/* thread usage wraps very million seconds (approx one fortnight) */ +#define NFSD_USAGE_WRAP (HZ*1000000) + +#endif /* LINUX_NFSD_STATS_H */ diff --git a/kernel_headers/linux/nl80211.h b/kernel_headers/linux/nl80211.h new file mode 100644 index 0000000..8a84560 --- /dev/null +++ b/kernel_headers/linux/nl80211.h @@ -0,0 +1,4075 @@ +#ifndef __LINUX_NL80211_H +#define __LINUX_NL80211_H +/* + * 802.11 netlink interface public header + * + * Copyright 2006-2010 Johannes Berg + * Copyright 2008 Michael Wu + * Copyright 2008 Luis Carlos Cobo + * Copyright 2008 Michael Buesch + * Copyright 2008, 2009 Luis R. Rodriguez + * Copyright 2008 Jouni Malinen + * Copyright 2008 Colin McCabe + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include + +/** + * DOC: Station handling + * + * Stations are added per interface, but a special case exists with VLAN + * interfaces. When a station is bound to an AP interface, it may be moved + * into a VLAN identified by a VLAN interface index (%NL80211_ATTR_STA_VLAN). + * The station is still assumed to belong to the AP interface it was added + * to. + * + * Station handling varies per interface type and depending on the driver's + * capabilities. + * + * For drivers supporting TDLS with external setup (WIPHY_FLAG_SUPPORTS_TDLS + * and WIPHY_FLAG_TDLS_EXTERNAL_SETUP), the station lifetime is as follows: + * - a setup station entry is added, not yet authorized, without any rate + * or capability information, this just exists to avoid race conditions + * - when the TDLS setup is done, a single NL80211_CMD_SET_STATION is valid + * to add rate and capability information to the station and at the same + * time mark it authorized. + * - %NL80211_TDLS_ENABLE_LINK is then used + * - after this, the only valid operation is to remove it by tearing down + * the TDLS link (%NL80211_TDLS_DISABLE_LINK) + * + * TODO: need more info for other interface types + */ + +/** + * DOC: Frame transmission/registration support + * + * Frame transmission and registration support exists to allow userspace + * management entities such as wpa_supplicant react to management frames + * that are not being handled by the kernel. This includes, for example, + * certain classes of action frames that cannot be handled in the kernel + * for various reasons. + * + * Frame registration is done on a per-interface basis and registrations + * cannot be removed other than by closing the socket. It is possible to + * specify a registration filter to register, for example, only for a + * certain type of action frame. In particular with action frames, those + * that userspace registers for will not be returned as unhandled by the + * driver, so that the registered application has to take responsibility + * for doing that. + * + * The type of frame that can be registered for is also dependent on the + * driver and interface type. The frame types are advertised in wiphy + * attributes so applications know what to expect. + * + * NOTE: When an interface changes type while registrations are active, + * these registrations are ignored until the interface type is + * changed again. This means that changing the interface type can + * lead to a situation that couldn't otherwise be produced, but + * any such registrations will be dormant in the sense that they + * will not be serviced, i.e. they will not receive any frames. + * + * Frame transmission allows userspace to send for example the required + * responses to action frames. It is subject to some sanity checking, + * but many frames can be transmitted. When a frame was transmitted, its + * status is indicated to the sending socket. + * + * For more technical details, see the corresponding command descriptions + * below. + */ + +/** + * DOC: Virtual interface / concurrency capabilities + * + * Some devices are able to operate with virtual MACs, they can have + * more than one virtual interface. The capability handling for this + * is a bit complex though, as there may be a number of restrictions + * on the types of concurrency that are supported. + * + * To start with, each device supports the interface types listed in + * the %NL80211_ATTR_SUPPORTED_IFTYPES attribute, but by listing the + * types there no concurrency is implied. + * + * Once concurrency is desired, more attributes must be observed: + * To start with, since some interface types are purely managed in + * software, like the AP-VLAN type in mac80211 for example, there's + * an additional list of these, they can be added at any time and + * are only restricted by some semantic restrictions (e.g. AP-VLAN + * cannot be added without a corresponding AP interface). This list + * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute. + * + * Further, the list of supported combinations is exported. This is + * in the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute. Basically, + * it exports a list of "groups", and at any point in time the + * interfaces that are currently active must fall into any one of + * the advertised groups. Within each group, there are restrictions + * on the number of interfaces of different types that are supported + * and also the number of different channels, along with potentially + * some other restrictions. See &enum nl80211_if_combination_attrs. + * + * All together, these attributes define the concurrency of virtual + * interfaces that a given device supports. + */ + +/** + * enum nl80211_commands - supported nl80211 commands + * + * @NL80211_CMD_UNSPEC: unspecified command to catch errors + * + * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request + * to get a list of all present wiphys. + * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or + * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, + * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the + * attributes determining the channel width; this is used for setting + * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT, + * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, + * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. + * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL + * instead, the support here is for backward compatibility only. + * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request + * or rename notification. Has attributes %NL80211_ATTR_WIPHY and + * %NL80211_ATTR_WIPHY_NAME. + * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes + * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. + * + * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; + * either a dump request on a %NL80211_ATTR_WIPHY or a specific get + * on an %NL80211_ATTR_IFINDEX is supported. + * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires + * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. + * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response + * to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX, + * %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also + * be sent from userspace to request creation of a new virtual interface, + * then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and + * %NL80211_ATTR_IFNAME. + * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes + * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from + * userspace to request deletion of a virtual interface, then requires + * attribute %NL80211_ATTR_IFINDEX. + * + * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified + * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. + * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, + * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD. + * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, + * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER, + * and %NL80211_ATTR_KEY_SEQ attributes. + * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX + * or %NL80211_ATTR_MAC. + * + * @NL80211_CMD_GET_BEACON: (not used) + * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface + * using the %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL + * attributes. For drivers that generate the beacon and probe responses + * internally, the following attributes must be provided: %NL80211_ATTR_IE, + * %NL80211_ATTR_IE_PROBE_RESP and %NL80211_ATTR_IE_ASSOC_RESP. + * @NL80211_CMD_START_AP: Start AP operation on an AP interface, parameters + * are like for %NL80211_CMD_SET_BEACON, and additionally parameters that + * do not change are used, these include %NL80211_ATTR_BEACON_INTERVAL, + * %NL80211_ATTR_DTIM_PERIOD, %NL80211_ATTR_SSID, + * %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE, + * %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS, + * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, + * %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT, + * %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS. + * The channel to use can be set on the interface or be given using the + * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. + * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP + * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface + * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP + * + * @NL80211_CMD_GET_STATION: Get station attributes for station identified by + * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_SET_STATION: Set station attributes for station identified by + * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the + * the interface identified by %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC + * or, if no MAC address given, all stations, on the interface identified + * by %NL80211_ATTR_IFINDEX. + * + * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to + * destination %NL80211_ATTR_MAC on the interface identified by + * %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_SET_MPATH: Set mesh path attributes for mesh path to + * destination %NL80211_ATTR_MAC on the interface identified by + * %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_NEW_MPATH: Create a new mesh path for the destination given by + * %NL80211_ATTR_MAC via %NL80211_ATTR_MPATH_NEXT_HOP. + * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by + * %NL80211_ATTR_MAC. + * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the + * the interface identified by %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC + * or, if no MAC address given, all mesh paths, on the interface identified + * by %NL80211_ATTR_IFINDEX. + * @NL80211_CMD_SET_BSS: Set BSS attributes for BSS identified by + * %NL80211_ATTR_IFINDEX. + * + * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set + * regulatory domain. + * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command + * after being queried by the kernel. CRDA replies by sending a regulatory + * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our + * current alpha2 if it found a match. It also provides + * NL80211_ATTR_REG_RULE_FLAGS, and a set of regulatory rules. Each + * regulatory rule is a nested set of attributes given by + * %NL80211_ATTR_REG_RULE_FREQ_[START|END] and + * %NL80211_ATTR_FREQ_RANGE_MAX_BW with an attached power rule given by + * %NL80211_ATTR_REG_RULE_POWER_MAX_ANT_GAIN and + * %NL80211_ATTR_REG_RULE_POWER_MAX_EIRP. + * @NL80211_CMD_REQ_SET_REG: ask the wireless core to set the regulatory domain + * to the specified ISO/IEC 3166-1 alpha2 country code. The core will + * store this as a valid request and then query userspace for it. + * + * @NL80211_CMD_GET_MESH_CONFIG: Get mesh networking properties for the + * interface identified by %NL80211_ATTR_IFINDEX + * + * @NL80211_CMD_SET_MESH_CONFIG: Set mesh networking properties for the + * interface identified by %NL80211_ATTR_IFINDEX + * + * @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The + * interface is identified with %NL80211_ATTR_IFINDEX and the management + * frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be + * added to the end of the specified management frame is specified with + * %NL80211_ATTR_IE. If the command succeeds, the requested data will be + * added to all specified management frames generated by + * kernel/firmware/driver. + * Note: This command has been removed and it is only reserved at this + * point to avoid re-using existing command number. The functionality this + * command was planned for has been provided with cleaner design with the + * option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN, + * NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE, + * NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE. + * + * @NL80211_CMD_GET_SCAN: get scan results + * @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters + * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the + * probe requests at CCK rate or not. + * @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to + * NL80211_CMD_GET_SCAN and on the "scan" multicast group) + * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons, + * partial scan results may be available + * + * @NL80211_CMD_START_SCHED_SCAN: start a scheduled scan at certain + * intervals, as specified by %NL80211_ATTR_SCHED_SCAN_INTERVAL. + * Like with normal scans, if SSIDs (%NL80211_ATTR_SCAN_SSIDS) + * are passed, they are used in the probe requests. For + * broadcast, a broadcast SSID must be passed (ie. an empty + * string). If no SSID is passed, no probe requests are sent and + * a passive scan is performed. %NL80211_ATTR_SCAN_FREQUENCIES, + * if passed, define which channels should be scanned; if not + * passed, all channels allowed for the current regulatory domain + * are used. Extra IEs can also be passed from the userspace by + * using the %NL80211_ATTR_IE attribute. + * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT + * if scheduled scan is not running. + * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan + * results available. + * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has + * stopped. The driver may issue this event at any time during a + * scheduled scan. One reason for stopping the scan is if the hardware + * does not support starting an association or a normal scan while running + * a scheduled scan. This event is also sent when the + * %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface + * is brought down while a scheduled scan was running. + * + * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation + * or noise level + * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to + * NL80211_CMD_GET_SURVEY and on the "scan" multicast group) + * + * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry, using %NL80211_ATTR_MAC + * (for the BSSID) and %NL80211_ATTR_PMKID. + * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC + * (for the BSSID) and %NL80211_ATTR_PMKID. + * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries. + * + * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain + * has been changed and provides details of the request information + * that caused the change such as who initiated the regulatory request + * (%NL80211_ATTR_REG_INITIATOR), the wiphy_idx + * (%NL80211_ATTR_REG_ALPHA2) on which the request was made from if + * the initiator was %NL80211_REGDOM_SET_BY_COUNTRY_IE or + * %NL80211_REGDOM_SET_BY_DRIVER, the type of regulatory domain + * set (%NL80211_ATTR_REG_TYPE), if the type of regulatory domain is + * %NL80211_REG_TYPE_COUNTRY the alpha2 to which we have moved on + * to (%NL80211_ATTR_REG_ALPHA2). + * @NL80211_CMD_REG_BEACON_HINT: indicates to userspace that an AP beacon + * has been found while world roaming thus enabling active scan or + * any mode of operation that initiates TX (beacons) on a channel + * where we would not have been able to do either before. As an example + * if you are world roaming (regulatory domain set to world or if your + * driver is using a custom world roaming regulatory domain) and while + * doing a passive scan on the 5 GHz band you find an AP there (if not + * on a DFS channel) you will now be able to actively scan for that AP + * or use AP mode on your card on that same channel. Note that this will + * never be used for channels 1-11 on the 2 GHz band as they are always + * enabled world wide. This beacon hint is only sent if your device had + * either disabled active scanning or beaconing on a channel. We send to + * userspace the wiphy on which we removed a restriction from + * (%NL80211_ATTR_WIPHY) and the channel on which this occurred + * before (%NL80211_ATTR_FREQ_BEFORE) and after (%NL80211_ATTR_FREQ_AFTER) + * the beacon hint was processed. + * + * @NL80211_CMD_AUTHENTICATE: authentication request and notification. + * This command is used both as a command (request to authenticate) and + * as an event on the "mlme" multicast group indicating completion of the + * authentication process. + * When used as a command, %NL80211_ATTR_IFINDEX is used to identify the + * interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and + * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify + * the SSID (mainly for association, but is included in authentication + * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used + * to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE + * is used to specify the authentication type. %NL80211_ATTR_IE is used to + * define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs) + * to be added to the frame. + * When used as an event, this reports reception of an Authentication + * frame in station and IBSS modes when the local MLME processed the + * frame, i.e., it was for the local STA and was received in correct + * state. This is similar to MLME-AUTHENTICATE.confirm primitive in the + * MLME SAP interface (kernel providing MLME, userspace SME). The + * included %NL80211_ATTR_FRAME attribute contains the management frame + * (including both the header and frame body, but not FCS). This event is + * also used to indicate if the authentication attempt timed out. In that + * case the %NL80211_ATTR_FRAME attribute is replaced with a + * %NL80211_ATTR_TIMED_OUT flag (and %NL80211_ATTR_MAC to indicate which + * pending authentication timed out). + * @NL80211_CMD_ASSOCIATE: association request and notification; like + * NL80211_CMD_AUTHENTICATE but for Association and Reassociation + * (similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request, + * MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). + * @NL80211_CMD_DEAUTHENTICATE: deauthentication request and notification; like + * NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to + * MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication + * primitives). + * @NL80211_CMD_DISASSOCIATE: disassociation request and notification; like + * NL80211_CMD_AUTHENTICATE but for Disassociation frames (similar to + * MLME-DISASSOCIATE.request and MLME-DISASSOCIATE.indication primitives). + * + * @NL80211_CMD_MICHAEL_MIC_FAILURE: notification of a locally detected Michael + * MIC (part of TKIP) failure; sent on the "mlme" multicast group; the + * event includes %NL80211_ATTR_MAC to describe the source MAC address of + * the frame with invalid MIC, %NL80211_ATTR_KEY_TYPE to show the key + * type, %NL80211_ATTR_KEY_IDX to indicate the key identifier, and + * %NL80211_ATTR_KEY_SEQ to indicate the TSC value of the frame; this + * event matches with MLME-MICHAELMICFAILURE.indication() primitive + * + * @NL80211_CMD_JOIN_IBSS: Join a new IBSS -- given at least an SSID and a + * FREQ attribute (for the initial frequency if no peer can be found) + * and optionally a MAC (as BSSID) and FREQ_FIXED attribute if those + * should be fixed rather than automatically determined. Can only be + * executed on a network interface that is UP, and fixed BSSID/FREQ + * may be rejected. Another optional parameter is the beacon interval, + * given in the %NL80211_ATTR_BEACON_INTERVAL attribute, which if not + * given defaults to 100 TU (102.4ms). + * @NL80211_CMD_LEAVE_IBSS: Leave the IBSS -- no special arguments, the IBSS is + * determined by the network interface. + * + * @NL80211_CMD_TESTMODE: testmode command, takes a wiphy (or ifindex) attribute + * to identify the device, and the TESTDATA blob attribute to pass through + * to the driver. + * + * @NL80211_CMD_CONNECT: connection request and notification; this command + * requests to connect to a specified network but without separating + * auth and assoc steps. For this, you need to specify the SSID in a + * %NL80211_ATTR_SSID attribute, and can optionally specify the association + * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, + * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, + * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, + * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and + * %NL80211_ATTR_WIPHY_FREQ_HINT. + * If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are + * restrictions on BSS selection, i.e., they effectively prevent roaming + * within the ESS. %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT + * can be included to provide a recommendation of the initial BSS while + * allowing the driver to roam to other BSSes within the ESS and also to + * ignore this recommendation if the indicated BSS is not ideal. Only one + * set of BSSID,frequency parameters is used (i.e., either the enforcing + * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict + * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT). + * Background scan period can optionally be + * specified in %NL80211_ATTR_BG_SCAN_PERIOD, + * if not specified default background scan configuration + * in driver is used and if period value is 0, bg scan will be disabled. + * This attribute is ignored if driver does not support roam scan. + * It is also sent as an event, with the BSSID and response IEs when the + * connection is established or failed to be established. This can be + * determined by the STATUS_CODE attribute. + * @NL80211_CMD_ROAM: request that the card roam (currently not implemented), + * sent as an event when the card/driver roamed by itself. + * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify + * userspace that a connection was dropped by the AP or due to other + * reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and + * %NL80211_ATTR_REASON_CODE attributes are used. + * + * @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices + * associated with this wiphy must be down and will follow. + * + * @NL80211_CMD_REMAIN_ON_CHANNEL: Request to remain awake on the specified + * channel for the specified amount of time. This can be used to do + * off-channel operations like transmit a Public Action frame and wait for + * a response while being associated to an AP on another channel. + * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus + * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the + * frequency for the operation. + * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds + * to remain on the channel. This command is also used as an event to + * notify when the requested duration starts (it may take a while for the + * driver to schedule this time due to other concurrent needs for the + * radio). + * When called, this operation returns a cookie (%NL80211_ATTR_COOKIE) + * that will be included with any events pertaining to this request; + * the cookie is also used to cancel the request. + * @NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL: This command can be used to cancel a + * pending remain-on-channel duration if the desired operation has been + * completed prior to expiration of the originally requested duration. + * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the + * radio. The %NL80211_ATTR_COOKIE attribute must be given as well to + * uniquely identify the request. + * This command is also used as an event to notify when a requested + * remain-on-channel duration has expired. + * + * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX + * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface + * and @NL80211_ATTR_TX_RATES the set of allowed rates. + * + * @NL80211_CMD_REGISTER_FRAME: Register for receiving certain mgmt frames + * (via @NL80211_CMD_FRAME) for processing in userspace. This command + * requires an interface index, a frame type attribute (optional for + * backward compatibility reasons, if not given assumes action frames) + * and a match attribute containing the first few bytes of the frame + * that should match, e.g. a single byte for only a category match or + * four bytes for vendor frames including the OUI. The registration + * cannot be dropped, but is removed automatically when the netlink + * socket is closed. Multiple registrations can be made. + * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for + * backward compatibility + * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This + * command is used both as a request to transmit a management frame and + * as an event indicating reception of a frame that was not processed in + * kernel code, but is for us (i.e., which may need to be processed in a + * user space application). %NL80211_ATTR_FRAME is used to specify the + * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used + * to indicate on which channel the frame is to be transmitted or was + * received. If this channel is not the current channel (remain-on-channel + * or the operational channel) the device will switch to the given channel + * and transmit the frame, optionally waiting for a response for the time + * specified using %NL80211_ATTR_DURATION. When called, this operation + * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the + * TX status event pertaining to the TX request. + * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the + * management frames at CCK rate or not in 2GHz band. + * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this + * command may be used with the corresponding cookie to cancel the wait + * time if it is known that it is no longer necessary. + * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility. + * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame + * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies + * the TX command and %NL80211_ATTR_FRAME includes the contents of the + * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged + * the frame. + * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for + * backward compatibility. + * + * @NL80211_CMD_SET_POWER_SAVE: Set powersave, using %NL80211_ATTR_PS_STATE + * @NL80211_CMD_GET_POWER_SAVE: Get powersave status in %NL80211_ATTR_PS_STATE + * + * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command + * is used to configure connection quality monitoring notification trigger + * levels. + * @NL80211_CMD_NOTIFY_CQM: Connection quality monitor notification. This + * command is used as an event to indicate the that a trigger level was + * reached. + * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ + * and the attributes determining channel width) the given interface + * (identifed by %NL80211_ATTR_IFINDEX) shall operate on. + * In case multiple channels are supported by the device, the mechanism + * with which it switches channels is implementation-defined. + * When a monitor interface is given, it can only switch channel while + * no other interfaces are operating to avoid disturbing the operation + * of any other interfaces, and other interfaces will again take + * precedence when they are used. + * + * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface. + * + * @NL80211_CMD_JOIN_MESH: Join a mesh. The mesh ID must be given, and initial + * mesh config parameters may be given. + * @NL80211_CMD_LEAVE_MESH: Leave the mesh network -- no special arguments, the + * network is determined by the network interface. + * + * @NL80211_CMD_UNPROT_DEAUTHENTICATE: Unprotected deauthentication frame + * notification. This event is used to indicate that an unprotected + * deauthentication frame was dropped when MFP is in use. + * @NL80211_CMD_UNPROT_DISASSOCIATE: Unprotected disassociation frame + * notification. This event is used to indicate that an unprotected + * disassociation frame was dropped when MFP is in use. + * + * @NL80211_CMD_NEW_PEER_CANDIDATE: Notification on the reception of a + * beacon or probe response from a compatible mesh peer. This is only + * sent while no station information (sta_info) exists for the new peer + * candidate and when @NL80211_MESH_SETUP_USERSPACE_AUTH, + * @NL80211_MESH_SETUP_USERSPACE_AMPE, or + * @NL80211_MESH_SETUP_USERSPACE_MPM is set. On reception of this + * notification, userspace may decide to create a new station + * (@NL80211_CMD_NEW_STATION). To stop this notification from + * reoccurring, the userspace authentication daemon may want to create the + * new station with the AUTHENTICATED flag unset and maybe change it later + * depending on the authentication result. + * + * @NL80211_CMD_GET_WOWLAN: get Wake-on-Wireless-LAN (WoWLAN) settings. + * @NL80211_CMD_SET_WOWLAN: set Wake-on-Wireless-LAN (WoWLAN) settings. + * Since wireless is more complex than wired ethernet, it supports + * various triggers. These triggers can be configured through this + * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For + * more background information, see + * http://wireless.kernel.org/en/users/Documentation/WoWLAN. + * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification + * from the driver reporting the wakeup reason. In this case, the + * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason + * for the wakeup, if it was caused by wireless. If it is not present + * in the wakeup notification, the wireless device didn't cause the + * wakeup but reports that it was woken up. + * + * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver + * the necessary information for supporting GTK rekey offload. This + * feature is typically used during WoWLAN. The configuration data + * is contained in %NL80211_ATTR_REKEY_DATA (which is nested and + * contains the data in sub-attributes). After rekeying happened, + * this command may also be sent by the driver as an MLME event to + * inform userspace of the new replay counter. + * + * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace + * of PMKSA caching dandidates. + * + * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). + * In addition, this can be used as an event to request userspace to take + * actions on TDLS links (set up a new link or tear down an existing one). + * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested + * operation, %NL80211_ATTR_MAC contains the peer MAC address, and + * %NL80211_ATTR_REASON_CODE the reason code to be used (only with + * %NL80211_TDLS_TEARDOWN). + * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. + * + * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP + * (or GO) interface (i.e. hostapd) to ask for unexpected frames to + * implement sending deauth to stations that send unexpected class 3 + * frames. Also used as the event sent by the kernel when such a frame + * is received. + * For the event, the %NL80211_ATTR_MAC attribute carries the TA and + * other attributes like the interface index are present. + * If used as the command it must have an interface index and you can + * only unsubscribe from the event by closing the socket. Subscription + * is also for %NL80211_CMD_UNEXPECTED_4ADDR_FRAME events. + * + * @NL80211_CMD_UNEXPECTED_4ADDR_FRAME: Sent as an event indicating that the + * associated station identified by %NL80211_ATTR_MAC sent a 4addr frame + * and wasn't already in a 4-addr VLAN. The event will be sent similarly + * to the %NL80211_CMD_UNEXPECTED_FRAME event, to the same listener. + * + * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface + * by sending a null data frame to it and reporting when the frame is + * acknowleged. This is used to allow timing out inactive clients. Uses + * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a + * direct reply with an %NL80211_ATTR_COOKIE that is later used to match + * up the event with the request. The event includes the same data and + * has %NL80211_ATTR_ACK set if the frame was ACKed. + * + * @NL80211_CMD_REGISTER_BEACONS: Register this socket to receive beacons from + * other BSSes when any interfaces are in AP mode. This helps implement + * OLBC handling in hostapd. Beacons are reported in %NL80211_CMD_FRAME + * messages. Note that per PHY only one application may register. + * + * @NL80211_CMD_SET_NOACK_MAP: sets a bitmap for the individual TIDs whether + * No Acknowledgement Policy should be applied. + * + * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels + * independently of the userspace SME, send this event indicating + * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the + * attributes determining channel width. + * + * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by + * its %NL80211_ATTR_WDEV identifier. It must have been created with + * %NL80211_CMD_NEW_INTERFACE previously. After it has been started, the + * P2P Device can be used for P2P operations, e.g. remain-on-channel and + * public action frame TX. + * @NL80211_CMD_STOP_P2P_DEVICE: Stop the given P2P Device, identified by + * its %NL80211_ATTR_WDEV identifier. + * + * @NL80211_CMD_CONN_FAILED: connection request to an AP failed; used to + * notify userspace that AP has rejected the connection request from a + * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON + * is used for this. + * + * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames + * for IBSS or MESH vif. + * + * @NL80211_CMD_SET_MAC_ACL: sets ACL for MAC address based access control. + * This is to be used with the drivers advertising the support of MAC + * address based access control. List of MAC addresses is passed in + * %NL80211_ATTR_MAC_ADDRS and ACL policy is passed in + * %NL80211_ATTR_ACL_POLICY. Driver will enable ACL with this list, if it + * is not already done. The new list will replace any existing list. Driver + * will clear its ACL when the list of MAC addresses passed is empty. This + * command is used in AP/P2P GO mode. Driver has to make sure to clear its + * ACL list during %NL80211_CMD_STOP_AP. + * + * @NL80211_CMD_RADAR_DETECT: Start a Channel availability check (CAC). Once + * a radar is detected or the channel availability scan (CAC) has finished + * or was aborted, or a radar was detected, usermode will be notified with + * this event. This command is also used to notify userspace about radars + * while operating on this channel. + * %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the + * event. + * + * @NL80211_CMD_GET_PROTOCOL_FEATURES: Get global nl80211 protocol features, + * i.e. features for the nl80211 protocol rather than device features. + * Returns the features in the %NL80211_ATTR_PROTOCOL_FEATURES bitmap. + * + * @NL80211_CMD_UPDATE_FT_IES: Pass down the most up-to-date Fast Transition + * Information Element to the WLAN driver + * + * @NL80211_CMD_FT_EVENT: Send a Fast transition event from the WLAN driver + * to the supplicant. This will carry the target AP's MAC address along + * with the relevant Information Elements. This event is used to report + * received FT IEs (MDIE, FTIE, RSN IE, TIE, RICIE). + * + * @NL80211_CMD_CRIT_PROTOCOL_START: Indicates user-space will start running + * a critical protocol that needs more reliability in the connection to + * complete. + * + * @NL80211_CMD_CRIT_PROTOCOL_STOP: Indicates the connection reliability can + * return back to normal. + * + * @NL80211_CMD_GET_COALESCE: Get currently supported coalesce rules. + * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules. + * + * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the + * the new channel information (Channel Switch Announcement - CSA) + * in the beacon for some time (as defined in the + * %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the + * new channel. Userspace provides the new channel information (using + * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel + * width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform + * other station that transmission must be blocked until the channel + * switch is complete. + * + * @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified + * by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in + * %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in + * %NL80211_ATTR_VENDOR_DATA. + * For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is + * used in the wiphy data as a nested attribute containing descriptions + * (&struct nl80211_vendor_cmd_info) of the supported vendor commands. + * This may also be sent as an event with the same attributes. + * + * @NL80211_CMD_SET_QOS_MAP: Set Interworking QoS mapping for IP DSCP values. + * The QoS mapping information is included in %NL80211_ATTR_QOS_MAP. If + * that attribute is not included, QoS mapping is disabled. Since this + * QoS mapping is relevant for IP packets, it is only valid during an + * association. This is cleared on disassociation and AP restart. + * + * @NL80211_CMD_AUTHORIZATION_EVENT: Indicates that the device offloaded + * the establishment of temporal keys for an RSN connection. This is + * used as part of key managment offload, where a device operating as a + * station is capable of doing the exchange necessary to establish + * temporal keys during initial RSN connection or after roaming. This + * event might also be sent after the device handles a PTK rekeying + * operation. The supplicant should expect to do the exchange itself, + * by preparing to process the EAPOL-Key frames, until + * NL80211_CMD_AUTHORIZATION_EVENT is sent with success status. The + * NL80211_ATTR_AUTHORIZATION_STATUS attribute provides the status of + * the offload and NL80211_KEY_REPLAY_CTR provides the Key Replay + * Counter value last used in a valid EAPOL-Key frame. + * + * @NL80211_CMD_KEY_MGMT_SET_PMK: Used to pass the PMK to the device for + * key management offload. This will be used in the case of key + * management offload on an already established PMKSA. The PMK is passed + * in NL80211_ATTR_PMK once it is known by the supplicant. If connection + * is FT (802.11r) enabled with 802.1X, then the second 256 bits of the + * MSK is passed instead of the PMK. + * + * @NL80211_CMD_MAX: highest used command number + * @__NL80211_CMD_AFTER_LAST: internal use + */ +enum nl80211_commands { +/* don't change the order or add anything between, this is ABI! */ + NL80211_CMD_UNSPEC, + + NL80211_CMD_GET_WIPHY, /* can dump */ + NL80211_CMD_SET_WIPHY, + NL80211_CMD_NEW_WIPHY, + NL80211_CMD_DEL_WIPHY, + + NL80211_CMD_GET_INTERFACE, /* can dump */ + NL80211_CMD_SET_INTERFACE, + NL80211_CMD_NEW_INTERFACE, + NL80211_CMD_DEL_INTERFACE, + + NL80211_CMD_GET_KEY, + NL80211_CMD_SET_KEY, + NL80211_CMD_NEW_KEY, + NL80211_CMD_DEL_KEY, + + NL80211_CMD_GET_BEACON, + NL80211_CMD_SET_BEACON, + NL80211_CMD_START_AP, + NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP, + NL80211_CMD_STOP_AP, + NL80211_CMD_DEL_BEACON = NL80211_CMD_STOP_AP, + + NL80211_CMD_GET_STATION, + NL80211_CMD_SET_STATION, + NL80211_CMD_NEW_STATION, + NL80211_CMD_DEL_STATION, + + NL80211_CMD_GET_MPATH, + NL80211_CMD_SET_MPATH, + NL80211_CMD_NEW_MPATH, + NL80211_CMD_DEL_MPATH, + + NL80211_CMD_SET_BSS, + + NL80211_CMD_SET_REG, + NL80211_CMD_REQ_SET_REG, + + NL80211_CMD_GET_MESH_CONFIG, + NL80211_CMD_SET_MESH_CONFIG, + + NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */, + + NL80211_CMD_GET_REG, + + NL80211_CMD_GET_SCAN, + NL80211_CMD_TRIGGER_SCAN, + NL80211_CMD_NEW_SCAN_RESULTS, + NL80211_CMD_SCAN_ABORTED, + + NL80211_CMD_REG_CHANGE, + + NL80211_CMD_AUTHENTICATE, + NL80211_CMD_ASSOCIATE, + NL80211_CMD_DEAUTHENTICATE, + NL80211_CMD_DISASSOCIATE, + + NL80211_CMD_MICHAEL_MIC_FAILURE, + + NL80211_CMD_REG_BEACON_HINT, + + NL80211_CMD_JOIN_IBSS, + NL80211_CMD_LEAVE_IBSS, + + NL80211_CMD_TESTMODE, + + NL80211_CMD_CONNECT, + NL80211_CMD_ROAM, + NL80211_CMD_DISCONNECT, + + NL80211_CMD_SET_WIPHY_NETNS, + + NL80211_CMD_GET_SURVEY, + NL80211_CMD_NEW_SURVEY_RESULTS, + + NL80211_CMD_SET_PMKSA, + NL80211_CMD_DEL_PMKSA, + NL80211_CMD_FLUSH_PMKSA, + + NL80211_CMD_REMAIN_ON_CHANNEL, + NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, + + NL80211_CMD_SET_TX_BITRATE_MASK, + + NL80211_CMD_REGISTER_FRAME, + NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME, + NL80211_CMD_FRAME, + NL80211_CMD_ACTION = NL80211_CMD_FRAME, + NL80211_CMD_FRAME_TX_STATUS, + NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS, + + NL80211_CMD_SET_POWER_SAVE, + NL80211_CMD_GET_POWER_SAVE, + + NL80211_CMD_SET_CQM, + NL80211_CMD_NOTIFY_CQM, + + NL80211_CMD_SET_CHANNEL, + NL80211_CMD_SET_WDS_PEER, + + NL80211_CMD_FRAME_WAIT_CANCEL, + + NL80211_CMD_JOIN_MESH, + NL80211_CMD_LEAVE_MESH, + + NL80211_CMD_UNPROT_DEAUTHENTICATE, + NL80211_CMD_UNPROT_DISASSOCIATE, + + NL80211_CMD_NEW_PEER_CANDIDATE, + + NL80211_CMD_GET_WOWLAN, + NL80211_CMD_SET_WOWLAN, + + NL80211_CMD_START_SCHED_SCAN, + NL80211_CMD_STOP_SCHED_SCAN, + NL80211_CMD_SCHED_SCAN_RESULTS, + NL80211_CMD_SCHED_SCAN_STOPPED, + + NL80211_CMD_SET_REKEY_OFFLOAD, + + NL80211_CMD_PMKSA_CANDIDATE, + + NL80211_CMD_TDLS_OPER, + NL80211_CMD_TDLS_MGMT, + + NL80211_CMD_UNEXPECTED_FRAME, + + NL80211_CMD_PROBE_CLIENT, + + NL80211_CMD_REGISTER_BEACONS, + + NL80211_CMD_UNEXPECTED_4ADDR_FRAME, + + NL80211_CMD_SET_NOACK_MAP, + + NL80211_CMD_CH_SWITCH_NOTIFY, + + NL80211_CMD_START_P2P_DEVICE, + NL80211_CMD_STOP_P2P_DEVICE, + + NL80211_CMD_CONN_FAILED, + + NL80211_CMD_SET_MCAST_RATE, + + NL80211_CMD_SET_MAC_ACL, + + NL80211_CMD_RADAR_DETECT, + + NL80211_CMD_GET_PROTOCOL_FEATURES, + + NL80211_CMD_UPDATE_FT_IES, + NL80211_CMD_FT_EVENT, + + NL80211_CMD_CRIT_PROTOCOL_START, + NL80211_CMD_CRIT_PROTOCOL_STOP, + + NL80211_CMD_GET_COALESCE, + NL80211_CMD_SET_COALESCE, + + NL80211_CMD_CHANNEL_SWITCH, + + NL80211_CMD_VENDOR, + + NL80211_CMD_SET_QOS_MAP, + + NL80211_CMD_AUTHORIZATION_EVENT, + NL80211_CMD_KEY_MGMT_SET_PMK, + + /* add new commands above here */ + + /* used to define NL80211_CMD_MAX below */ + __NL80211_CMD_AFTER_LAST, + NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 +}; + +/* + * Allow user space programs to use #ifdef on new commands by defining them + * here + */ +#define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS +#define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE +#define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE +#define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE +#define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE +#define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE +#define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE +#define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT + +#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS + +/* source-level API compatibility */ +#define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG +#define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG +#define NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE NL80211_MESH_SETUP_IE + +/** + * enum nl80211_attrs - nl80211 netlink attributes + * + * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors + * + * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. + * /sys/class/ieee80211//index + * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) + * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters + * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, + * defines the channel together with the (deprecated) + * %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes + * %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 + * and %NL80211_ATTR_CENTER_FREQ2 + * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values + * of &enum nl80211_chan_width, describing the channel width. See the + * documentation of the enum for more information. + * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the + * channel, used for anything but 20 MHz bandwidth + * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the + * channel, used only for 80+80 MHz bandwidth + * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ + * if HT20 or HT40 are to be used (i.e., HT disabled if not included): + * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including + * this attribute) + * NL80211_CHAN_HT20 = HT20 only + * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel + * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel + * This attribute is now deprecated. + * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is + * less than or equal to the RTS threshold; allowed range: 1..255; + * dot11ShortRetryLimit; u8 + * @NL80211_ATTR_WIPHY_RETRY_LONG: TX retry limit for frames whose length is + * greater than the RTS threshold; allowed range: 1..255; + * dot11ShortLongLimit; u8 + * @NL80211_ATTR_WIPHY_FRAG_THRESHOLD: fragmentation threshold, i.e., maximum + * length in octets for frames; allowed range: 256..8000, disable + * fragmentation with (u32)-1; dot11FragmentationThreshold; u32 + * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length + * larger than or equal to this use RTS/CTS handshake); allowed range: + * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32 + * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11 + * section 7.3.2.9; dot11CoverageClass; u8 + * + * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on + * @NL80211_ATTR_IFNAME: network interface name + * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype + * + * @NL80211_ATTR_WDEV: wireless device identifier, used for pseudo-devices + * that don't have a netdev (u64) + * + * @NL80211_ATTR_MAC: MAC address (various uses) + * + * @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of + * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC + * keys + * @NL80211_ATTR_KEY_IDX: key ID (u8, 0-3) + * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 + * section 7.3.2.25.1, e.g. 0x000FAC04) + * @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and + * CCMP keys, each six bytes in little endian + * @NL80211_ATTR_KEY_DEFAULT: Flag attribute indicating the key is default key + * @NL80211_ATTR_KEY_DEFAULT_MGMT: Flag attribute indicating the key is the + * default management key + * @NL80211_ATTR_CIPHER_SUITES_PAIRWISE: For crypto settings for connect or + * other commands, indicates which pairwise cipher suites are used + * @NL80211_ATTR_CIPHER_SUITE_GROUP: For crypto settings for connect or + * other commands, indicates which group cipher suite is used + * + * @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU + * @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing + * @NL80211_ATTR_BEACON_HEAD: portion of the beacon before the TIM IE + * @NL80211_ATTR_BEACON_TAIL: portion of the beacon after the TIM IE + * + * @NL80211_ATTR_STA_AID: Association ID for the station (u16) + * @NL80211_ATTR_STA_FLAGS: flags, nested element with NLA_FLAG attributes of + * &enum nl80211_sta_flags (deprecated, use %NL80211_ATTR_STA_FLAGS2) + * @NL80211_ATTR_STA_LISTEN_INTERVAL: listen interval as defined by + * IEEE 802.11 7.3.1.6 (u16). + * @NL80211_ATTR_STA_SUPPORTED_RATES: supported rates, array of supported + * rates as defined by IEEE 802.11 7.3.2.2 but without the length + * restriction (at most %NL80211_MAX_SUPP_RATES). + * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station + * to, or the AP interface the station was originally added to to. + * @NL80211_ATTR_STA_INFO: information about a station, part of station info + * given for %NL80211_CMD_GET_STATION, nested attribute containing + * info as possible, see &enum nl80211_sta_info. + * + * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands, + * consisting of a nested array. + * + * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes). + * @NL80211_ATTR_STA_PLINK_ACTION: action to perform on the mesh peer link + * (see &enum nl80211_plink_action). + * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path. + * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path + * info given for %NL80211_CMD_GET_MPATH, nested attribute described at + * &enum nl80211_mpath_info. + * + * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of + * &enum nl80211_mntr_flags. + * + * @NL80211_ATTR_REG_ALPHA2: an ISO-3166-alpha2 country code for which the + * current regulatory domain should be set to or is already set to. + * For example, 'CR', for Costa Rica. This attribute is used by the kernel + * to query the CRDA to retrieve one regulatory domain. This attribute can + * also be used by userspace to query the kernel for the currently set + * regulatory domain. We chose an alpha2 as that is also used by the + * IEEE-802.11d country information element to identify a country. + * Users can also simply ask the wireless core to set regulatory domain + * to a specific alpha2. + * @NL80211_ATTR_REG_RULES: a nested array of regulatory domain regulatory + * rules. + * + * @NL80211_ATTR_BSS_CTS_PROT: whether CTS protection is enabled (u8, 0 or 1) + * @NL80211_ATTR_BSS_SHORT_PREAMBLE: whether short preamble is enabled + * (u8, 0 or 1) + * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled + * (u8, 0 or 1) + * @NL80211_ATTR_BSS_BASIC_RATES: basic rates, array of basic + * rates in format defined by IEEE 802.11 7.3.2.2 but without the length + * restriction (at most %NL80211_MAX_SUPP_RATES). + * + * @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from + * association request when used with NL80211_CMD_NEW_STATION) + * + * @NL80211_ATTR_SUPPORTED_IFTYPES: nested attribute containing all + * supported interface types, each a flag attribute with the number + * of the interface mode. + * + * @NL80211_ATTR_MGMT_SUBTYPE: Management frame subtype for + * %NL80211_CMD_SET_MGMT_EXTRA_IE. + * + * @NL80211_ATTR_IE: Information element(s) data (used, e.g., with + * %NL80211_CMD_SET_MGMT_EXTRA_IE). + * + * @NL80211_ATTR_MAX_NUM_SCAN_SSIDS: number of SSIDs you can scan with + * a single scan request, a wiphy attribute. + * @NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS: number of SSIDs you can + * scan with a single scheduled scan request, a wiphy attribute. + * @NL80211_ATTR_MAX_SCAN_IE_LEN: maximum length of information elements + * that can be added to a scan request + * @NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN: maximum length of information + * elements that can be added to a scheduled scan request + * @NL80211_ATTR_MAX_MATCH_SETS: maximum number of sets that can be + * used with @NL80211_ATTR_SCHED_SCAN_MATCH, a wiphy attribute. + * + * @NL80211_ATTR_SCAN_FREQUENCIES: nested attribute with frequencies (in MHz) + * @NL80211_ATTR_SCAN_SSIDS: nested attribute with SSIDs, leave out for passive + * scanning and include a zero-length SSID (wildcard) for wildcard scan + * @NL80211_ATTR_BSS: scan result BSS + * + * @NL80211_ATTR_REG_INITIATOR: indicates who requested the regulatory domain + * currently in effect. This could be any of the %NL80211_REGDOM_SET_BY_* + * @NL80211_ATTR_REG_TYPE: indicates the type of the regulatory domain currently + * set. This can be one of the nl80211_reg_type (%NL80211_REGDOM_TYPE_*) + * + * @NL80211_ATTR_SUPPORTED_COMMANDS: wiphy attribute that specifies + * an array of command numbers (i.e. a mapping index to command number) + * that the driver for the given wiphy supports. + * + * @NL80211_ATTR_FRAME: frame data (binary attribute), including frame header + * and body, but not FCS; used, e.g., with NL80211_CMD_AUTHENTICATE and + * NL80211_CMD_ASSOCIATE events + * @NL80211_ATTR_SSID: SSID (binary attribute, 0..32 octets) + * @NL80211_ATTR_AUTH_TYPE: AuthenticationType, see &enum nl80211_auth_type, + * represented as a u32 + * @NL80211_ATTR_REASON_CODE: ReasonCode for %NL80211_CMD_DEAUTHENTICATE and + * %NL80211_CMD_DISASSOCIATE, u16 + * + * @NL80211_ATTR_KEY_TYPE: Key Type, see &enum nl80211_key_type, represented as + * a u32 + * + * @NL80211_ATTR_FREQ_BEFORE: A channel which has suffered a regulatory change + * due to considerations from a beacon hint. This attribute reflects + * the state of the channel _before_ the beacon hint processing. This + * attributes consists of a nested attribute containing + * NL80211_FREQUENCY_ATTR_* + * @NL80211_ATTR_FREQ_AFTER: A channel which has suffered a regulatory change + * due to considerations from a beacon hint. This attribute reflects + * the state of the channel _after_ the beacon hint processing. This + * attributes consists of a nested attribute containing + * NL80211_FREQUENCY_ATTR_* + * + * @NL80211_ATTR_CIPHER_SUITES: a set of u32 values indicating the supported + * cipher suites + * + * @NL80211_ATTR_FREQ_FIXED: a flag indicating the IBSS should not try to look + * for other networks on different channels + * + * @NL80211_ATTR_TIMED_OUT: a flag indicating than an operation timed out; this + * is used, e.g., with %NL80211_CMD_AUTHENTICATE event + * + * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is + * used for the association (&enum nl80211_mfp, represented as a u32); + * this attribute can be used + * with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests + * + * @NL80211_ATTR_STA_FLAGS2: Attribute containing a + * &struct nl80211_sta_flag_update. + * + * @NL80211_ATTR_CONTROL_PORT: A flag indicating whether user space controls + * IEEE 802.1X port, i.e., sets/clears %NL80211_STA_FLAG_AUTHORIZED, in + * station mode. If the flag is included in %NL80211_CMD_ASSOCIATE + * request, the driver will assume that the port is unauthorized until + * authorized by user space. Otherwise, port is marked authorized by + * default in station mode. + * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the + * ethertype that will be used for key negotiation. It can be + * specified with the associate and connect commands. If it is not + * specified, the value defaults to 0x888E (PAE, 802.1X). This + * attribute is also used as a flag in the wiphy information to + * indicate that protocols other than PAE are supported. + * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with + * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom + * ethertype frames used for key negotiation must not be encrypted. + * + * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. + * We recommend using nested, driver-specific attributes within this. + * + * @NL80211_ATTR_DISCONNECTED_BY_AP: A flag indicating that the DISCONNECT + * event was due to the AP disconnecting the station, and not due to + * a local disconnect request. + * @NL80211_ATTR_STATUS_CODE: StatusCode for the %NL80211_CMD_CONNECT + * event (u16) + * @NL80211_ATTR_PRIVACY: Flag attribute, used with connect(), indicating + * that protected APs should be used. This is also used with NEW_BEACON to + * indicate that the BSS is to use protection. + * + * @NL80211_ATTR_CIPHERS_PAIRWISE: Used with CONNECT, ASSOCIATE, and NEW_BEACON + * to indicate which unicast key ciphers will be used with the connection + * (an array of u32). + * @NL80211_ATTR_CIPHER_GROUP: Used with CONNECT, ASSOCIATE, and NEW_BEACON to + * indicate which group key cipher will be used with the connection (a + * u32). + * @NL80211_ATTR_WPA_VERSIONS: Used with CONNECT, ASSOCIATE, and NEW_BEACON to + * indicate which WPA version(s) the AP we want to associate with is using + * (a u32 with flags from &enum nl80211_wpa_versions). + * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to + * indicate which key management algorithm(s) to use (an array of u32). + * + * @NL80211_ATTR_REQ_IE: (Re)association request information elements as + * sent out by the card, for ROAM and successful CONNECT events. + * @NL80211_ATTR_RESP_IE: (Re)association response information elements as + * sent by peer, for ROAM and successful CONNECT events. + * + * @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used by in ASSOCIATE + * commands to specify using a reassociate frame + * + * @NL80211_ATTR_KEY: key information in a nested attribute with + * %NL80211_KEY_* sub-attributes + * @NL80211_ATTR_KEYS: array of keys for static WEP keys for connect() + * and join_ibss(), key information is in a nested attribute each + * with %NL80211_KEY_* sub-attributes + * + * @NL80211_ATTR_PID: Process ID of a network namespace. + * + * @NL80211_ATTR_GENERATION: Used to indicate consistent snapshots for + * dumps. This number increases whenever the object list being + * dumped changes, and as such userspace can verify that it has + * obtained a complete and consistent snapshot by verifying that + * all dump messages contain the same generation number. If it + * changed then the list changed and the dump should be repeated + * completely from scratch. + * + * @NL80211_ATTR_4ADDR: Use 4-address frames on a virtual interface + * + * @NL80211_ATTR_SURVEY_INFO: survey information about a channel, part of + * the survey response for %NL80211_CMD_GET_SURVEY, nested attribute + * containing info as possible, see &enum survey_info. + * + * @NL80211_ATTR_PMKID: PMK material for PMKSA caching. + * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can + * cache, a wiphy attribute. + * + * @NL80211_ATTR_DURATION: Duration of an operation in milliseconds, u32. + * @NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION: Device attribute that + * specifies the maximum duration that can be requested with the + * remain-on-channel operation, in milliseconds, u32. + * + * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects. + * + * @NL80211_ATTR_TX_RATES: Nested set of attributes + * (enum nl80211_tx_rate_attributes) describing TX rates per band. The + * enum nl80211_band value is used as the index (nla_type() of the nested + * data. If a band is not included, it will be configured to allow all + * rates based on negotiated supported rates information. This attribute + * is used with %NL80211_CMD_SET_TX_BITRATE_MASK. + * + * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain + * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. + * @NL80211_ATTR_FRAME_TYPE: A u16 indicating the frame type/subtype for the + * @NL80211_CMD_REGISTER_FRAME command. + * @NL80211_ATTR_TX_FRAME_TYPES: wiphy capability attribute, which is a + * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing + * information about which frame types can be transmitted with + * %NL80211_CMD_FRAME. + * @NL80211_ATTR_RX_FRAME_TYPES: wiphy capability attribute, which is a + * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing + * information about which frame types can be registered for RX. + * + * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was + * acknowledged by the recipient. + * + * @NL80211_ATTR_PS_STATE: powersave state, using &enum nl80211_ps_state values. + * + * @NL80211_ATTR_CQM: connection quality monitor configuration in a + * nested attribute with %NL80211_ATTR_CQM_* sub-attributes. + * + * @NL80211_ATTR_LOCAL_STATE_CHANGE: Flag attribute to indicate that a command + * is requesting a local authentication/association state change without + * invoking actual management frame exchange. This can be used with + * NL80211_CMD_AUTHENTICATE, NL80211_CMD_DEAUTHENTICATE, + * NL80211_CMD_DISASSOCIATE. + * + * @NL80211_ATTR_AP_ISOLATE: (AP mode) Do not forward traffic between stations + * connected to this BSS. + * + * @NL80211_ATTR_WIPHY_TX_POWER_SETTING: Transmit power setting type. See + * &enum nl80211_tx_power_setting for possible values. + * @NL80211_ATTR_WIPHY_TX_POWER_LEVEL: Transmit power level in signed mBm units. + * This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING + * for non-automatic settings. + * + * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly + * means support for per-station GTKs. + * + * @NL80211_ATTR_WIPHY_ANTENNA_TX: Bitmap of allowed antennas for transmitting. + * This can be used to mask out antennas which are not attached or should + * not be used for transmitting. If an antenna is not selected in this + * bitmap the hardware is not allowed to transmit on this antenna. + * + * Each bit represents one antenna, starting with antenna 1 at the first + * bit. Depending on which antennas are selected in the bitmap, 802.11n + * drivers can derive which chainmasks to use (if all antennas belonging to + * a particular chain are disabled this chain should be disabled) and if + * a chain has diversity antennas wether diversity should be used or not. + * HT capabilities (STBC, TX Beamforming, Antenna selection) can be + * derived from the available chains after applying the antenna mask. + * Non-802.11n drivers can derive wether to use diversity or not. + * Drivers may reject configurations or RX/TX mask combinations they cannot + * support by returning -EINVAL. + * + * @NL80211_ATTR_WIPHY_ANTENNA_RX: Bitmap of allowed antennas for receiving. + * This can be used to mask out antennas which are not attached or should + * not be used for receiving. If an antenna is not selected in this bitmap + * the hardware should not be configured to receive on this antenna. + * For a more detailed description see @NL80211_ATTR_WIPHY_ANTENNA_TX. + * + * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX: Bitmap of antennas which are available + * for configuration as TX antennas via the above parameters. + * + * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX: Bitmap of antennas which are available + * for configuration as RX antennas via the above parameters. + * + * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS + * + * @NL80211_ATTR_OFFCHANNEL_TX_OK: For management frame TX, the frame may be + * transmitted on another channel when the channel given doesn't match + * the current channel. If the current channel doesn't match and this + * flag isn't set, the frame will be rejected. This is also used as an + * nl80211 capability flag. + * + * @NL80211_ATTR_BSS_HT_OPMODE: HT operation mode (u16) + * + * @NL80211_ATTR_KEY_DEFAULT_TYPES: A nested attribute containing flags + * attributes, specifying what a key should be set as default as. + * See &enum nl80211_key_default_types. + * + * @NL80211_ATTR_MESH_SETUP: Optional mesh setup parameters. These cannot be + * changed once the mesh is active. + * @NL80211_ATTR_MESH_CONFIG: Mesh configuration parameters, a nested attribute + * containing attributes from &enum nl80211_meshconf_params. + * @NL80211_ATTR_SUPPORT_MESH_AUTH: Currently, this means the underlying driver + * allows auth frames in a mesh to be passed to userspace for processing via + * the @NL80211_MESH_SETUP_USERSPACE_AUTH flag. + * @NL80211_ATTR_STA_PLINK_STATE: The state of a mesh peer link as defined in + * &enum nl80211_plink_state. Used when userspace is driving the peer link + * management state machine. @NL80211_MESH_SETUP_USERSPACE_AMPE or + * @NL80211_MESH_SETUP_USERSPACE_MPM must be enabled. + * + * @NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED: indicates, as part of the wiphy + * capabilities, the supported WoWLAN triggers + * @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to + * indicate which WoW triggers should be enabled. This is also + * used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN + * triggers. + * + * @NL80211_ATTR_SCHED_SCAN_INTERVAL: Interval between scheduled scan + * cycles, in msecs. + * + * @NL80211_ATTR_SCHED_SCAN_MATCH: Nested attribute with one or more + * sets of attributes to match during scheduled scans. Only BSSs + * that match any of the sets will be reported. These are + * pass-thru filter rules. + * For a match to succeed, the BSS must match all attributes of a + * set. Since not every hardware supports matching all types of + * attributes, there is no guarantee that the reported BSSs are + * fully complying with the match sets and userspace needs to be + * able to ignore them by itself. + * Thus, the implementation is somewhat hardware-dependent, but + * this is only an optimization and the userspace application + * needs to handle all the non-filtered results anyway. + * If the match attributes don't make sense when combined with + * the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID + * is included in the probe request, but the match attributes + * will never let it go through), -EINVAL may be returned. + * If ommited, no filtering is done. + * + * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported + * interface combinations. In each nested item, it contains attributes + * defined in &enum nl80211_if_combination_attrs. + * @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like + * %NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that + * are managed in software: interfaces of these types aren't subject to + * any restrictions in their number or combinations. + * + * @NL80211_ATTR_REKEY_DATA: nested attribute containing the information + * necessary for GTK rekeying in the device, see &enum nl80211_rekey_data. + * + * @NL80211_ATTR_SCAN_SUPP_RATES: rates per to be advertised as supported in scan, + * nested array attribute containing an entry for each band, with the entry + * being a list of supported rates as defined by IEEE 802.11 7.3.2.2 but + * without the length restriction (at most %NL80211_MAX_SUPP_RATES). + * + * @NL80211_ATTR_HIDDEN_SSID: indicates whether SSID is to be hidden from Beacon + * and Probe Response (when response to wildcard Probe Request); see + * &enum nl80211_hidden_ssid, represented as a u32 + * + * @NL80211_ATTR_IE_PROBE_RESP: Information element(s) for Probe Response frame. + * This is used with %NL80211_CMD_NEW_BEACON and %NL80211_CMD_SET_BEACON to + * provide extra IEs (e.g., WPS/P2P IE) into Probe Response frames when the + * driver (or firmware) replies to Probe Request frames. + * @NL80211_ATTR_IE_ASSOC_RESP: Information element(s) for (Re)Association + * Response frames. This is used with %NL80211_CMD_NEW_BEACON and + * %NL80211_CMD_SET_BEACON to provide extra IEs (e.g., WPS/P2P IE) into + * (Re)Association Response frames when the driver (or firmware) replies to + * (Re)Association Request frames. + * + * @NL80211_ATTR_STA_WME: Nested attribute containing the wme configuration + * of the station, see &enum nl80211_sta_wme_attr. + * @NL80211_ATTR_SUPPORT_AP_UAPSD: the device supports uapsd when working + * as AP. + * + * @NL80211_ATTR_ROAM_SUPPORT: Indicates whether the firmware is capable of + * roaming to another AP in the same ESS if the signal lever is low. + * + * @NL80211_ATTR_PMKSA_CANDIDATE: Nested attribute containing the PMKSA caching + * candidate information, see &enum nl80211_pmksa_candidate_attr. + * + * @NL80211_ATTR_TX_NO_CCK_RATE: Indicates whether to use CCK rate or not + * for management frames transmission. In order to avoid p2p probe/action + * frames are being transmitted at CCK rate in 2GHz band, the user space + * applications use this attribute. + * This attribute is used with %NL80211_CMD_TRIGGER_SCAN and + * %NL80211_CMD_FRAME commands. + * + * @NL80211_ATTR_TDLS_ACTION: Low level TDLS action code (e.g. link setup + * request, link setup confirm, link teardown, etc.). Values are + * described in the TDLS (802.11z) specification. + * @NL80211_ATTR_TDLS_DIALOG_TOKEN: Non-zero token for uniquely identifying a + * TDLS conversation between two devices. + * @NL80211_ATTR_TDLS_OPERATION: High level TDLS operation; see + * &enum nl80211_tdls_operation, represented as a u8. + * @NL80211_ATTR_TDLS_SUPPORT: A flag indicating the device can operate + * as a TDLS peer sta. + * @NL80211_ATTR_TDLS_EXTERNAL_SETUP: The TDLS discovery/setup and teardown + * procedures should be performed by sending TDLS packets via + * %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be + * used for asking the driver to perform a TDLS operation. + * + * @NL80211_ATTR_DEVICE_AP_SME: This u32 attribute may be listed for devices + * that have AP support to indicate that they have the AP SME integrated + * with support for the features listed in this attribute, see + * &enum nl80211_ap_sme_features. + * + * @NL80211_ATTR_DONT_WAIT_FOR_ACK: Used with %NL80211_CMD_FRAME, this tells + * the driver to not wait for an acknowledgement. Note that due to this, + * it will also not give a status callback nor return a cookie. This is + * mostly useful for probe responses to save airtime. + * + * @NL80211_ATTR_FEATURE_FLAGS: This u32 attribute contains flags from + * &enum nl80211_feature_flags and is advertised in wiphy information. + * @NL80211_ATTR_PROBE_RESP_OFFLOAD: Indicates that the HW responds to probe + * requests while operating in AP-mode. + * This attribute holds a bitmap of the supported protocols for + * offloading (see &enum nl80211_probe_resp_offload_support_attr). + * + * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire + * probe-response frame. The DA field in the 802.11 header is zero-ed out, + * to be filled by the FW. + * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable + * this feature. Currently, only supported in mac80211 drivers. + * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the + * ATTR_HT_CAPABILITY to which attention should be paid. + * Currently, only mac80211 NICs support this feature. + * The values that may be configured are: + * MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40 + * AMPDU density and AMPDU factor. + * All values are treated as suggestions and may be ignored + * by the driver as required. The actual values may be seen in + * the station debugfs ht_caps file. + * + * @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country + * abides to when initiating radiation on DFS channels. A country maps + * to one DFS region. + * + * @NL80211_ATTR_NOACK_MAP: This u16 bitmap contains the No Ack Policy of + * up to 16 TIDs. + * + * @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be + * used by the drivers which has MLME in firmware and does not have support + * to report per station tx/rx activity to free up the staion entry from + * the list. This needs to be used when the driver advertises the + * capability to timeout the stations. + * + * @NL80211_ATTR_RX_SIGNAL_DBM: signal strength in dBm (as a 32-bit int); + * this attribute is (depending on the driver capabilities) added to + * received frames indicated with %NL80211_CMD_FRAME. + * + * @NL80211_ATTR_BG_SCAN_PERIOD: Background scan period in seconds + * or 0 to disable background scan. + * + * @NL80211_ATTR_USER_REG_HINT_TYPE: type of regulatory hint passed from + * userspace. If unset it is assumed the hint comes directly from + * a user. If set code could specify exactly what type of source + * was used to provide the hint. For the different types of + * allowed user regulatory hints see nl80211_user_reg_hint_type. + * + * @NL80211_ATTR_CONN_FAILED_REASON: The reason for which AP has rejected + * the connection request from a station. nl80211_connect_failed_reason + * enum has different reasons of connection failure. + * + * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts + * with the Authentication transaction sequence number field. + * + * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from + * association request when used with NL80211_CMD_NEW_STATION) + * + * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) + * + * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with + * the START_AP and SET_BSS commands + * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the + * START_AP and SET_BSS commands. This can have the values 0 or 1; + * if not given in START_AP 0 is assumed, if not given in SET_BSS + * no change is made. + * + * @NL80211_ATTR_LOCAL_MESH_POWER_MODE: local mesh STA link-specific power mode + * defined in &enum nl80211_mesh_power_mode. + * + * @NL80211_ATTR_ACL_POLICY: ACL policy, see &enum nl80211_acl_policy, + * carried in a u32 attribute + * + * @NL80211_ATTR_MAC_ADDRS: Array of nested MAC addresses, used for + * MAC ACL. + * + * @NL80211_ATTR_MAC_ACL_MAX: u32 attribute to advertise the maximum + * number of MAC addresses that a device can support for MAC + * ACL. + * + * @NL80211_ATTR_RADAR_EVENT: Type of radar event for notification to userspace, + * contains a value of enum nl80211_radar_event (u32). + * + * @NL80211_ATTR_EXT_CAPA: 802.11 extended capabilities that the kernel driver + * has and handles. The format is the same as the IE contents. See + * 802.11-2012 8.4.2.29 for more information. + * @NL80211_ATTR_EXT_CAPA_MASK: Extended capabilities that the kernel driver + * has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields. + * + * @NL80211_ATTR_STA_CAPABILITY: Station capabilities (u16) are advertised to + * the driver, e.g., to enable TDLS power save (PU-APSD). + * + * @NL80211_ATTR_STA_EXT_CAPABILITY: Station extended capabilities are + * advertised to the driver, e.g., to enable TDLS off channel operations + * and PU-APSD. + * + * @NL80211_ATTR_PROTOCOL_FEATURES: global nl80211 feature flags, see + * &enum nl80211_protocol_features, the attribute is a u32. + * + * @NL80211_ATTR_SPLIT_WIPHY_DUMP: flag attribute, userspace supports + * receiving the data for a single wiphy split across multiple + * messages, given with wiphy dump message + * + * @NL80211_ATTR_MDID: Mobility Domain Identifier + * + * @NL80211_ATTR_IE_RIC: Resource Information Container Information + * Element + * + * @NL80211_ATTR_CRIT_PROT_ID: critical protocol identifier requiring increased + * reliability, see &enum nl80211_crit_proto_id (u16). + * @NL80211_ATTR_MAX_CRIT_PROT_DURATION: duration in milliseconds in which + * the connection should have increased reliability (u16). + * + * @NL80211_ATTR_PEER_AID: Association ID for the peer TDLS station (u16). + * This is similar to @NL80211_ATTR_STA_AID but with a difference of being + * allowed to be used with the first @NL80211_CMD_SET_STATION command to + * update a TDLS peer STA entry. + * + * @NL80211_ATTR_COALESCE_RULE: Coalesce rule information. + * + * @NL80211_ATTR_CH_SWITCH_COUNT: u32 attribute specifying the number of TBTT's + * until the channel switch event. + * @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission + * must be blocked on the current channel (before the channel switch + * operation). + * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information + * for the time while performing a channel switch. + * @NL80211_ATTR_CSA_C_OFF_BEACON: Offset of the channel switch counter + * field in the beacons tail (%NL80211_ATTR_BEACON_TAIL). + * @NL80211_ATTR_CSA_C_OFF_PRESP: Offset of the channel switch counter + * field in the probe response (%NL80211_ATTR_PROBE_RESP). + * + * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32. + * As specified in the &enum nl80211_rxmgmt_flags. + * + * @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels. + * + * @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported + * supported operating classes. + * + * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space + * controls DFS operation in IBSS mode. If the flag is included in + * %NL80211_CMD_JOIN_IBSS request, the driver will allow use of DFS + * channels and reports radar events to userspace. Userspace is required + * to react to radar events, e.g. initiate a channel switch or leave the + * IBSS network. + * + * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if + * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet) + * @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command + * @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this + * attribute is also used for vendor command feature advertisement + * @NL80211_ATTR_VENDOR_EVENTS: used for event list advertising in the wiphy + * info, containing a nested array of possible events + * + * @NL80211_ATTR_QOS_MAP: IP DSCP mapping for Interworking QoS mapping. This + * data is in the format defined for the payload of the QoS Map Set element + * in IEEE Std 802.11-2012, 8.4.2.97. + * + * @NL80211_ATTR_MAC_HINT: MAC address recommendation as initial BSS + * @NL80211_ATTR_WIPHY_FREQ_HINT: frequency of the recommended initial BSS + * + * @NL80211_ATTR_MAX_AP_ASSOC_STA: Device attribute that indicates how many + * associated stations are supported in AP mode (including P2P GO); u32. + * Since drivers may not have a fixed limit on the maximum number (e.g., + * other concurrent operations may affect this), drivers are allowed to + * advertise values that cannot always be met. In such cases, an attempt + * to add a new station entry with @NL80211_CMD_NEW_STATION may fail. + * + * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. + * As specified in the &enum nl80211_tdls_peer_capability. + * + * @NL80211_ATTR_AUTHORIZATION_STATUS: Status of key management offload. + * @NL80211_ATTR_KEY_REPLAY_CTR: Key Replay Counter value last used in a + * valid EAPOL-Key frame. + * @NL80211_ATTR_PSK: The Preshared Key to be used for the connection. + * @NL80211_ATTR_OFFLOAD_KEY_MGMT: Requests that device handle establishment + * of temporal keys if possible. + * @NL80211_ATTR_KEY_MGMT_OFFLOAD_SUPPORT: Supported types of device key + * management offload. + * @NL80211_ATTR_KEY_DERIVE_OFFLOAD_SUPPORT: Supported types of device key + * derivation used as part of key management offload. + * @NL80211_ATTR_PMK: The Pairwise Master Key to be used for the + * connection. + * @NL80211_ATTR_PMK_LEN: The length of the PMK. + * @NL80211_ATTR_PTK_KCK: Pairwise Transient Key, Key Confirmation Key. + * @NL80211_ATTR_PTK_KEK: Pairwise Transient Key, Key Encryption Key. + * + * @NL80211_ATTR_MAX: highest attribute number currently defined + * @__NL80211_ATTR_AFTER_LAST: internal use + */ +enum nl80211_attrs { +/* don't change the order or add anything between, this is ABI! */ + NL80211_ATTR_UNSPEC, + + NL80211_ATTR_WIPHY, + NL80211_ATTR_WIPHY_NAME, + + NL80211_ATTR_IFINDEX, + NL80211_ATTR_IFNAME, + NL80211_ATTR_IFTYPE, + + NL80211_ATTR_MAC, + + NL80211_ATTR_KEY_DATA, + NL80211_ATTR_KEY_IDX, + NL80211_ATTR_KEY_CIPHER, + NL80211_ATTR_KEY_SEQ, + NL80211_ATTR_KEY_DEFAULT, + + NL80211_ATTR_BEACON_INTERVAL, + NL80211_ATTR_DTIM_PERIOD, + NL80211_ATTR_BEACON_HEAD, + NL80211_ATTR_BEACON_TAIL, + + NL80211_ATTR_STA_AID, + NL80211_ATTR_STA_FLAGS, + NL80211_ATTR_STA_LISTEN_INTERVAL, + NL80211_ATTR_STA_SUPPORTED_RATES, + NL80211_ATTR_STA_VLAN, + NL80211_ATTR_STA_INFO, + + NL80211_ATTR_WIPHY_BANDS, + + NL80211_ATTR_MNTR_FLAGS, + + NL80211_ATTR_MESH_ID, + NL80211_ATTR_STA_PLINK_ACTION, + NL80211_ATTR_MPATH_NEXT_HOP, + NL80211_ATTR_MPATH_INFO, + + NL80211_ATTR_BSS_CTS_PROT, + NL80211_ATTR_BSS_SHORT_PREAMBLE, + NL80211_ATTR_BSS_SHORT_SLOT_TIME, + + NL80211_ATTR_HT_CAPABILITY, + + NL80211_ATTR_SUPPORTED_IFTYPES, + + NL80211_ATTR_REG_ALPHA2, + NL80211_ATTR_REG_RULES, + + NL80211_ATTR_MESH_CONFIG, + + NL80211_ATTR_BSS_BASIC_RATES, + + NL80211_ATTR_WIPHY_TXQ_PARAMS, + NL80211_ATTR_WIPHY_FREQ, + NL80211_ATTR_WIPHY_CHANNEL_TYPE, + + NL80211_ATTR_KEY_DEFAULT_MGMT, + + NL80211_ATTR_MGMT_SUBTYPE, + NL80211_ATTR_IE, + + NL80211_ATTR_MAX_NUM_SCAN_SSIDS, + + NL80211_ATTR_SCAN_FREQUENCIES, + NL80211_ATTR_SCAN_SSIDS, + NL80211_ATTR_GENERATION, /* replaces old SCAN_GENERATION */ + NL80211_ATTR_BSS, + + NL80211_ATTR_REG_INITIATOR, + NL80211_ATTR_REG_TYPE, + + NL80211_ATTR_SUPPORTED_COMMANDS, + + NL80211_ATTR_FRAME, + NL80211_ATTR_SSID, + NL80211_ATTR_AUTH_TYPE, + NL80211_ATTR_REASON_CODE, + + NL80211_ATTR_KEY_TYPE, + + NL80211_ATTR_MAX_SCAN_IE_LEN, + NL80211_ATTR_CIPHER_SUITES, + + NL80211_ATTR_FREQ_BEFORE, + NL80211_ATTR_FREQ_AFTER, + + NL80211_ATTR_FREQ_FIXED, + + + NL80211_ATTR_WIPHY_RETRY_SHORT, + NL80211_ATTR_WIPHY_RETRY_LONG, + NL80211_ATTR_WIPHY_FRAG_THRESHOLD, + NL80211_ATTR_WIPHY_RTS_THRESHOLD, + + NL80211_ATTR_TIMED_OUT, + + NL80211_ATTR_USE_MFP, + + NL80211_ATTR_STA_FLAGS2, + + NL80211_ATTR_CONTROL_PORT, + + NL80211_ATTR_TESTDATA, + + NL80211_ATTR_PRIVACY, + + NL80211_ATTR_DISCONNECTED_BY_AP, + NL80211_ATTR_STATUS_CODE, + + NL80211_ATTR_CIPHER_SUITES_PAIRWISE, + NL80211_ATTR_CIPHER_SUITE_GROUP, + NL80211_ATTR_WPA_VERSIONS, + NL80211_ATTR_AKM_SUITES, + + NL80211_ATTR_REQ_IE, + NL80211_ATTR_RESP_IE, + + NL80211_ATTR_PREV_BSSID, + + NL80211_ATTR_KEY, + NL80211_ATTR_KEYS, + + NL80211_ATTR_PID, + + NL80211_ATTR_4ADDR, + + NL80211_ATTR_SURVEY_INFO, + + NL80211_ATTR_PMKID, + NL80211_ATTR_MAX_NUM_PMKIDS, + + NL80211_ATTR_DURATION, + + NL80211_ATTR_COOKIE, + + NL80211_ATTR_WIPHY_COVERAGE_CLASS, + + NL80211_ATTR_TX_RATES, + + NL80211_ATTR_FRAME_MATCH, + + NL80211_ATTR_ACK, + + NL80211_ATTR_PS_STATE, + + NL80211_ATTR_CQM, + + NL80211_ATTR_LOCAL_STATE_CHANGE, + + NL80211_ATTR_AP_ISOLATE, + + NL80211_ATTR_WIPHY_TX_POWER_SETTING, + NL80211_ATTR_WIPHY_TX_POWER_LEVEL, + + NL80211_ATTR_TX_FRAME_TYPES, + NL80211_ATTR_RX_FRAME_TYPES, + NL80211_ATTR_FRAME_TYPE, + + NL80211_ATTR_CONTROL_PORT_ETHERTYPE, + NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, + + NL80211_ATTR_SUPPORT_IBSS_RSN, + + NL80211_ATTR_WIPHY_ANTENNA_TX, + NL80211_ATTR_WIPHY_ANTENNA_RX, + + NL80211_ATTR_MCAST_RATE, + + NL80211_ATTR_OFFCHANNEL_TX_OK, + + NL80211_ATTR_BSS_HT_OPMODE, + + NL80211_ATTR_KEY_DEFAULT_TYPES, + + NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION, + + NL80211_ATTR_MESH_SETUP, + + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX, + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX, + + NL80211_ATTR_SUPPORT_MESH_AUTH, + NL80211_ATTR_STA_PLINK_STATE, + + NL80211_ATTR_WOWLAN_TRIGGERS, + NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, + + NL80211_ATTR_SCHED_SCAN_INTERVAL, + + NL80211_ATTR_INTERFACE_COMBINATIONS, + NL80211_ATTR_SOFTWARE_IFTYPES, + + NL80211_ATTR_REKEY_DATA, + + NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS, + NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, + + NL80211_ATTR_SCAN_SUPP_RATES, + + NL80211_ATTR_HIDDEN_SSID, + + NL80211_ATTR_IE_PROBE_RESP, + NL80211_ATTR_IE_ASSOC_RESP, + + NL80211_ATTR_STA_WME, + NL80211_ATTR_SUPPORT_AP_UAPSD, + + NL80211_ATTR_ROAM_SUPPORT, + + NL80211_ATTR_SCHED_SCAN_MATCH, + NL80211_ATTR_MAX_MATCH_SETS, + + NL80211_ATTR_PMKSA_CANDIDATE, + + NL80211_ATTR_TX_NO_CCK_RATE, + + NL80211_ATTR_TDLS_ACTION, + NL80211_ATTR_TDLS_DIALOG_TOKEN, + NL80211_ATTR_TDLS_OPERATION, + NL80211_ATTR_TDLS_SUPPORT, + NL80211_ATTR_TDLS_EXTERNAL_SETUP, + + NL80211_ATTR_DEVICE_AP_SME, + + NL80211_ATTR_DONT_WAIT_FOR_ACK, + + NL80211_ATTR_FEATURE_FLAGS, + + NL80211_ATTR_PROBE_RESP_OFFLOAD, + + NL80211_ATTR_PROBE_RESP, + + NL80211_ATTR_DFS_REGION, + + NL80211_ATTR_DISABLE_HT, + NL80211_ATTR_HT_CAPABILITY_MASK, + + NL80211_ATTR_NOACK_MAP, + + NL80211_ATTR_INACTIVITY_TIMEOUT, + + NL80211_ATTR_RX_SIGNAL_DBM, + + NL80211_ATTR_BG_SCAN_PERIOD, + + NL80211_ATTR_WDEV, + + NL80211_ATTR_USER_REG_HINT_TYPE, + + NL80211_ATTR_CONN_FAILED_REASON, + + NL80211_ATTR_SAE_DATA, + + NL80211_ATTR_VHT_CAPABILITY, + + NL80211_ATTR_SCAN_FLAGS, + + NL80211_ATTR_CHANNEL_WIDTH, + NL80211_ATTR_CENTER_FREQ1, + NL80211_ATTR_CENTER_FREQ2, + + NL80211_ATTR_P2P_CTWINDOW, + NL80211_ATTR_P2P_OPPPS, + + NL80211_ATTR_LOCAL_MESH_POWER_MODE, + + NL80211_ATTR_ACL_POLICY, + + NL80211_ATTR_MAC_ADDRS, + + NL80211_ATTR_MAC_ACL_MAX, + + NL80211_ATTR_RADAR_EVENT, + + NL80211_ATTR_EXT_CAPA, + NL80211_ATTR_EXT_CAPA_MASK, + + NL80211_ATTR_STA_CAPABILITY, + NL80211_ATTR_STA_EXT_CAPABILITY, + + NL80211_ATTR_PROTOCOL_FEATURES, + NL80211_ATTR_SPLIT_WIPHY_DUMP, + + NL80211_ATTR_DISABLE_VHT, + NL80211_ATTR_VHT_CAPABILITY_MASK, + + NL80211_ATTR_MDID, + NL80211_ATTR_IE_RIC, + + NL80211_ATTR_CRIT_PROT_ID, + NL80211_ATTR_MAX_CRIT_PROT_DURATION, + + NL80211_ATTR_PEER_AID, + + NL80211_ATTR_COALESCE_RULE, + + NL80211_ATTR_CH_SWITCH_COUNT, + NL80211_ATTR_CH_SWITCH_BLOCK_TX, + NL80211_ATTR_CSA_IES, + NL80211_ATTR_CSA_C_OFF_BEACON, + NL80211_ATTR_CSA_C_OFF_PRESP, + + NL80211_ATTR_RXMGMT_FLAGS, + + NL80211_ATTR_STA_SUPPORTED_CHANNELS, + + NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES, + + NL80211_ATTR_HANDLE_DFS, + + NL80211_ATTR_SUPPORT_5_MHZ, + NL80211_ATTR_SUPPORT_10_MHZ, + + NL80211_ATTR_OPMODE_NOTIF, + + NL80211_ATTR_VENDOR_ID, + NL80211_ATTR_VENDOR_SUBCMD, + NL80211_ATTR_VENDOR_DATA, + + NL80211_ATTR_VENDOR_EVENTS, + + NL80211_ATTR_QOS_MAP, + + NL80211_ATTR_MAC_HINT, + NL80211_ATTR_WIPHY_FREQ_HINT, + + NL80211_ATTR_MAX_AP_ASSOC_STA, + + NL80211_ATTR_TDLS_PEER_CAPABILITY, + + NL80211_ATTR_AUTHORIZATION_STATUS, + NL80211_ATTR_KEY_REPLAY_CTR, + NL80211_ATTR_PSK, + NL80211_ATTR_OFFLOAD_KEY_MGMT, + NL80211_ATTR_KEY_MGMT_OFFLOAD_SUPPORT, + NL80211_ATTR_KEY_DERIVE_OFFLOAD_SUPPORT, + NL80211_ATTR_PMK, + NL80211_ATTR_PMK_LEN, + NL80211_ATTR_PTK_KCK, + NL80211_ATTR_PTK_KEK, + + /* add attributes here, update the policy in nl80211.c */ + + __NL80211_ATTR_AFTER_LAST, + NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 +}; + +/* source-level API compatibility */ +#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION +#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG + +/* + * Allow user space programs to use #ifdef on new attributes by defining them + * here + */ +#define NL80211_CMD_CONNECT NL80211_CMD_CONNECT +#define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY +#define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES +#define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS +#define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ +#define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE +#define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE +#define NL80211_ATTR_IE NL80211_ATTR_IE +#define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR +#define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE +#define NL80211_ATTR_FRAME NL80211_ATTR_FRAME +#define NL80211_ATTR_SSID NL80211_ATTR_SSID +#define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE +#define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE +#define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE +#define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP +#define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS +#define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES +#define NL80211_ATTR_KEY NL80211_ATTR_KEY +#define NL80211_ATTR_KEYS NL80211_ATTR_KEYS +#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS + +#define NL80211_MAX_SUPP_RATES 32 +#define NL80211_MAX_SUPP_HT_RATES 77 +#define NL80211_MAX_SUPP_REG_RULES 32 +#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 +#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 +#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 +#define NL80211_HT_CAPABILITY_LEN 26 +#define NL80211_VHT_CAPABILITY_LEN 12 + +#define NL80211_MAX_NR_CIPHER_SUITES 5 +#define NL80211_MAX_NR_AKM_SUITES 2 + +#define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10 + +/* default RSSI threshold for scan results if none specified. */ +#define NL80211_SCAN_RSSI_THOLD_OFF -300 + +#define NL80211_CQM_TXE_MAX_INTVL 1800 + +/** + * enum nl80211_iftype - (virtual) interface types + * + * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides + * @NL80211_IFTYPE_ADHOC: independent BSS member + * @NL80211_IFTYPE_STATION: managed BSS member + * @NL80211_IFTYPE_AP: access point + * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points; VLAN interfaces + * are a bit special in that they must always be tied to a pre-existing + * AP type interface. + * @NL80211_IFTYPE_WDS: wireless distribution interface + * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames + * @NL80211_IFTYPE_MESH_POINT: mesh point + * @NL80211_IFTYPE_P2P_CLIENT: P2P client + * @NL80211_IFTYPE_P2P_GO: P2P group owner + * @NL80211_IFTYPE_P2P_DEVICE: P2P device interface type, this is not a netdev + * and therefore can't be created in the normal ways, use the + * %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE + * commands to create and destroy one + * @NL80211_IFTYPE_MAX: highest interface type number currently defined + * @NUM_NL80211_IFTYPES: number of defined interface types + * + * These values are used with the %NL80211_ATTR_IFTYPE + * to set the type of an interface. + * + */ +enum nl80211_iftype { + NL80211_IFTYPE_UNSPECIFIED, + NL80211_IFTYPE_ADHOC, + NL80211_IFTYPE_STATION, + NL80211_IFTYPE_AP, + NL80211_IFTYPE_AP_VLAN, + NL80211_IFTYPE_WDS, + NL80211_IFTYPE_MONITOR, + NL80211_IFTYPE_MESH_POINT, + NL80211_IFTYPE_P2P_CLIENT, + NL80211_IFTYPE_P2P_GO, + NL80211_IFTYPE_P2P_DEVICE, + + /* keep last */ + NUM_NL80211_IFTYPES, + NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1 +}; + +/** + * enum nl80211_sta_flags - station flags + * + * Station flags. When a station is added to an AP interface, it is + * assumed to be already associated (and hence authenticated.) + * + * @__NL80211_STA_FLAG_INVALID: attribute number 0 is reserved + * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X) + * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames + * with short barker preamble + * @NL80211_STA_FLAG_WME: station is WME/QoS capable + * @NL80211_STA_FLAG_MFP: station uses management frame protection + * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated + * @NL80211_STA_FLAG_TDLS_PEER: station is a TDLS peer -- this flag should + * only be used in managed mode (even in the flags mask). Note that the + * flag can't be changed, it is only valid while adding a station, and + * attempts to change it will silently be ignored (rather than rejected + * as errors.) + * @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers + * that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a + * previously added station into associated state + * @NL80211_STA_FLAG_MAX: highest station flag number currently defined + * @__NL80211_STA_FLAG_AFTER_LAST: internal use + */ +enum nl80211_sta_flags { + __NL80211_STA_FLAG_INVALID, + NL80211_STA_FLAG_AUTHORIZED, + NL80211_STA_FLAG_SHORT_PREAMBLE, + NL80211_STA_FLAG_WME, + NL80211_STA_FLAG_MFP, + NL80211_STA_FLAG_AUTHENTICATED, + NL80211_STA_FLAG_TDLS_PEER, + NL80211_STA_FLAG_ASSOCIATED, + + /* keep last */ + __NL80211_STA_FLAG_AFTER_LAST, + NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1 +}; + +#define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER + +/** + * struct nl80211_sta_flag_update - station flags mask/set + * @mask: mask of station flags to set + * @set: which values to set them to + * + * Both mask and set contain bits as per &enum nl80211_sta_flags. + */ +struct nl80211_sta_flag_update { + __u32 mask; + __u32 set; +} __attribute__((packed)); + +/** + * enum nl80211_rate_info - bitrate information + * + * These attribute types are used with %NL80211_STA_INFO_TXRATE + * when getting information about the bitrate of a station. + * There are 2 attributes for bitrate, a legacy one that represents + * a 16-bit value, and new one that represents a 32-bit value. + * If the rate value fits into 16 bit, both attributes are reported + * with the same value. If the rate is too high to fit into 16 bits + * (>6.5535Gbps) only 32-bit attribute is included. + * User space tools encouraged to use the 32-bit attribute and fall + * back to the 16-bit one for compatibility with older kernels. + * + * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved + * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) + * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) + * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate + * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval + * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) + * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined + * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) + * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) + * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate + * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate + * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate + * @__NL80211_RATE_INFO_AFTER_LAST: internal use + */ +enum nl80211_rate_info { + __NL80211_RATE_INFO_INVALID, + NL80211_RATE_INFO_BITRATE, + NL80211_RATE_INFO_MCS, + NL80211_RATE_INFO_40_MHZ_WIDTH, + NL80211_RATE_INFO_SHORT_GI, + NL80211_RATE_INFO_BITRATE32, + NL80211_RATE_INFO_VHT_MCS, + NL80211_RATE_INFO_VHT_NSS, + NL80211_RATE_INFO_80_MHZ_WIDTH, + NL80211_RATE_INFO_80P80_MHZ_WIDTH, + NL80211_RATE_INFO_160_MHZ_WIDTH, + + /* keep last */ + __NL80211_RATE_INFO_AFTER_LAST, + NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1 +}; + +/** + * enum nl80211_sta_bss_param - BSS information collected by STA + * + * These attribute types are used with %NL80211_STA_INFO_BSS_PARAM + * when getting information about the bitrate of a station. + * + * @__NL80211_STA_BSS_PARAM_INVALID: attribute number 0 is reserved + * @NL80211_STA_BSS_PARAM_CTS_PROT: whether CTS protection is enabled (flag) + * @NL80211_STA_BSS_PARAM_SHORT_PREAMBLE: whether short preamble is enabled + * (flag) + * @NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME: whether short slot time is enabled + * (flag) + * @NL80211_STA_BSS_PARAM_DTIM_PERIOD: DTIM period for beaconing (u8) + * @NL80211_STA_BSS_PARAM_BEACON_INTERVAL: Beacon interval (u16) + * @NL80211_STA_BSS_PARAM_MAX: highest sta_bss_param number currently defined + * @__NL80211_STA_BSS_PARAM_AFTER_LAST: internal use + */ +enum nl80211_sta_bss_param { + __NL80211_STA_BSS_PARAM_INVALID, + NL80211_STA_BSS_PARAM_CTS_PROT, + NL80211_STA_BSS_PARAM_SHORT_PREAMBLE, + NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME, + NL80211_STA_BSS_PARAM_DTIM_PERIOD, + NL80211_STA_BSS_PARAM_BEACON_INTERVAL, + + /* keep last */ + __NL80211_STA_BSS_PARAM_AFTER_LAST, + NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1 +}; + +/** + * enum nl80211_sta_info - station information + * + * These attribute types are used with %NL80211_ATTR_STA_INFO + * when getting information about a station. + * + * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved + * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) + * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) + * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) + * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station) + * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station) + * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) + * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute + * containing info as possible, see &enum nl80211_rate_info + * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) + * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this + * station) + * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station) + * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station) + * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) + * @NL80211_STA_INFO_LLID: the station's mesh LLID + * @NL80211_STA_INFO_PLID: the station's mesh PLID + * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station + * (see %enum nl80211_plink_state) + * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested + * attribute, like NL80211_STA_INFO_TX_BITRATE. + * @NL80211_STA_INFO_BSS_PARAM: current station's view of BSS, nested attribute + * containing info as possible, see &enum nl80211_sta_bss_param + * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected + * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. + * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) + * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) + * @NL80211_STA_INFO_LOCAL_PM: local mesh STA link-specific power mode + * @NL80211_STA_INFO_PEER_PM: peer mesh STA link-specific power mode + * @NL80211_STA_INFO_NONPEER_PM: neighbor mesh STA power save mode towards + * non-peer STA + * @__NL80211_STA_INFO_AFTER_LAST: internal + * @NL80211_STA_INFO_MAX: highest possible station info attribute + */ +enum nl80211_sta_info { + __NL80211_STA_INFO_INVALID, + NL80211_STA_INFO_INACTIVE_TIME, + NL80211_STA_INFO_RX_BYTES, + NL80211_STA_INFO_TX_BYTES, + NL80211_STA_INFO_LLID, + NL80211_STA_INFO_PLID, + NL80211_STA_INFO_PLINK_STATE, + NL80211_STA_INFO_SIGNAL, + NL80211_STA_INFO_TX_BITRATE, + NL80211_STA_INFO_RX_PACKETS, + NL80211_STA_INFO_TX_PACKETS, + NL80211_STA_INFO_TX_RETRIES, + NL80211_STA_INFO_TX_FAILED, + NL80211_STA_INFO_SIGNAL_AVG, + NL80211_STA_INFO_RX_BITRATE, + NL80211_STA_INFO_BSS_PARAM, + NL80211_STA_INFO_CONNECTED_TIME, + NL80211_STA_INFO_STA_FLAGS, + NL80211_STA_INFO_BEACON_LOSS, + NL80211_STA_INFO_T_OFFSET, + NL80211_STA_INFO_LOCAL_PM, + NL80211_STA_INFO_PEER_PM, + NL80211_STA_INFO_NONPEER_PM, + NL80211_STA_INFO_RX_BYTES64, + NL80211_STA_INFO_TX_BYTES64, + + /* keep last */ + __NL80211_STA_INFO_AFTER_LAST, + NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 +}; + +/** + * enum nl80211_mpath_flags - nl80211 mesh path flags + * + * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active + * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running + * @NL80211_MPATH_FLAG_SN_VALID: the mesh path contains a valid SN + * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set + * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded + */ +enum nl80211_mpath_flags { + NL80211_MPATH_FLAG_ACTIVE = 1<<0, + NL80211_MPATH_FLAG_RESOLVING = 1<<1, + NL80211_MPATH_FLAG_SN_VALID = 1<<2, + NL80211_MPATH_FLAG_FIXED = 1<<3, + NL80211_MPATH_FLAG_RESOLVED = 1<<4, +}; + +/** + * enum nl80211_mpath_info - mesh path information + * + * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting + * information about a mesh path. + * + * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved + * @NL80211_MPATH_INFO_FRAME_QLEN: number of queued frames for this destination + * @NL80211_MPATH_INFO_SN: destination sequence number + * @NL80211_MPATH_INFO_METRIC: metric (cost) of this mesh path + * @NL80211_MPATH_INFO_EXPTIME: expiration time for the path, in msec from now + * @NL80211_MPATH_INFO_FLAGS: mesh path flags, enumerated in + * &enum nl80211_mpath_flags; + * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec + * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries + * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number + * currently defind + * @__NL80211_MPATH_INFO_AFTER_LAST: internal use + */ +enum nl80211_mpath_info { + __NL80211_MPATH_INFO_INVALID, + NL80211_MPATH_INFO_FRAME_QLEN, + NL80211_MPATH_INFO_SN, + NL80211_MPATH_INFO_METRIC, + NL80211_MPATH_INFO_EXPTIME, + NL80211_MPATH_INFO_FLAGS, + NL80211_MPATH_INFO_DISCOVERY_TIMEOUT, + NL80211_MPATH_INFO_DISCOVERY_RETRIES, + + /* keep last */ + __NL80211_MPATH_INFO_AFTER_LAST, + NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 +}; + +/** + * enum nl80211_band_attr - band attributes + * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved + * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band, + * an array of nested frequency attributes + * @NL80211_BAND_ATTR_RATES: supported bitrates in this band, + * an array of nested bitrate attributes + * @NL80211_BAND_ATTR_HT_MCS_SET: 16-byte attribute containing the MCS set as + * defined in 802.11n + * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE + * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n + * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n + * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as + * defined in 802.11ac + * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE + * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined + * @__NL80211_BAND_ATTR_AFTER_LAST: internal use + */ +enum nl80211_band_attr { + __NL80211_BAND_ATTR_INVALID, + NL80211_BAND_ATTR_FREQS, + NL80211_BAND_ATTR_RATES, + + NL80211_BAND_ATTR_HT_MCS_SET, + NL80211_BAND_ATTR_HT_CAPA, + NL80211_BAND_ATTR_HT_AMPDU_FACTOR, + NL80211_BAND_ATTR_HT_AMPDU_DENSITY, + + NL80211_BAND_ATTR_VHT_MCS_SET, + NL80211_BAND_ATTR_VHT_CAPA, + + /* keep last */ + __NL80211_BAND_ATTR_AFTER_LAST, + NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 +}; + +#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA + +/** + * enum nl80211_frequency_attr - frequency attributes + * @__NL80211_FREQUENCY_ATTR_INVALID: attribute number 0 is reserved + * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz + * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current + * regulatory domain. + * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is + * permitted on this channel in current regulatory domain. + * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted + * on this channel in current regulatory domain. + * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory + * on this channel in current regulatory domain. + * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm + * (100 * dBm). + * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS + * (enum nl80211_dfs_state) + * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long + * this channel is in this DFS state. + * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this + * channel as the control channel + * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this + * channel as the control channel + * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel + * as the primary or any of the secondary channels isn't possible, + * this includes 80+80 channels + * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel + * using this channel as the primary or any of the secondary channels + * isn't possible + * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number + * currently defined + * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use + */ +enum nl80211_frequency_attr { + __NL80211_FREQUENCY_ATTR_INVALID, + NL80211_FREQUENCY_ATTR_FREQ, + NL80211_FREQUENCY_ATTR_DISABLED, + NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, + NL80211_FREQUENCY_ATTR_NO_IBSS, + NL80211_FREQUENCY_ATTR_RADAR, + NL80211_FREQUENCY_ATTR_MAX_TX_POWER, + NL80211_FREQUENCY_ATTR_DFS_STATE, + NL80211_FREQUENCY_ATTR_DFS_TIME, + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS, + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, + NL80211_FREQUENCY_ATTR_NO_80MHZ, + NL80211_FREQUENCY_ATTR_NO_160MHZ, + + /* keep last */ + __NL80211_FREQUENCY_ATTR_AFTER_LAST, + NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1 +}; + +#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER + +/** + * enum nl80211_bitrate_attr - bitrate attributes + * @__NL80211_BITRATE_ATTR_INVALID: attribute number 0 is reserved + * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps + * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported + * in 2.4 GHz band. + * @NL80211_BITRATE_ATTR_MAX: highest bitrate attribute number + * currently defined + * @__NL80211_BITRATE_ATTR_AFTER_LAST: internal use + */ +enum nl80211_bitrate_attr { + __NL80211_BITRATE_ATTR_INVALID, + NL80211_BITRATE_ATTR_RATE, + NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE, + + /* keep last */ + __NL80211_BITRATE_ATTR_AFTER_LAST, + NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1 +}; + +/** + * enum nl80211_initiator - Indicates the initiator of a reg domain request + * @NL80211_REGDOM_SET_BY_CORE: Core queried CRDA for a dynamic world + * regulatory domain. + * @NL80211_REGDOM_SET_BY_USER: User asked the wireless core to set the + * regulatory domain. + * @NL80211_REGDOM_SET_BY_DRIVER: a wireless drivers has hinted to the + * wireless core it thinks its knows the regulatory domain we should be in. + * @NL80211_REGDOM_SET_BY_COUNTRY_IE: the wireless core has received an + * 802.11 country information element with regulatory information it + * thinks we should consider. cfg80211 only processes the country + * code from the IE, and relies on the regulatory domain information + * structure passed by userspace (CRDA) from our wireless-regdb. + * If a channel is enabled but the country code indicates it should + * be disabled we disable the channel and re-enable it upon disassociation. + */ +enum nl80211_reg_initiator { + NL80211_REGDOM_SET_BY_CORE, + NL80211_REGDOM_SET_BY_USER, + NL80211_REGDOM_SET_BY_DRIVER, + NL80211_REGDOM_SET_BY_COUNTRY_IE, +}; + +/** + * enum nl80211_reg_type - specifies the type of regulatory domain + * @NL80211_REGDOM_TYPE_COUNTRY: the regulatory domain set is one that pertains + * to a specific country. When this is set you can count on the + * ISO / IEC 3166 alpha2 country code being valid. + * @NL80211_REGDOM_TYPE_WORLD: the regulatory set domain is the world regulatory + * domain. + * @NL80211_REGDOM_TYPE_CUSTOM_WORLD: the regulatory domain set is a custom + * driver specific world regulatory domain. These do not apply system-wide + * and are only applicable to the individual devices which have requested + * them to be applied. + * @NL80211_REGDOM_TYPE_INTERSECTION: the regulatory domain set is the product + * of an intersection between two regulatory domains -- the previously + * set regulatory domain on the system and the last accepted regulatory + * domain request to be processed. + */ +enum nl80211_reg_type { + NL80211_REGDOM_TYPE_COUNTRY, + NL80211_REGDOM_TYPE_WORLD, + NL80211_REGDOM_TYPE_CUSTOM_WORLD, + NL80211_REGDOM_TYPE_INTERSECTION, +}; + +/** + * enum nl80211_country_ie_pref - country IE processing preferences + * + * enumerates the different preferences a 802.11 card can advertize + * for parsing the country IEs. As per the current implementation + * country IEs are only used derive the apha2, the information + * for power settings that comes with the country IE is ignored + * and we use the power settings from regdb. + * + * @NL80211_COUNTRY_IE_FOLLOW_CORE - This is the default behaviour. + * It allows the core to update channel flags according to the + * ISO3166-alpha2 in the country IE. The applied power is - + * MIN(power specified by custom domain, power obtained from regdb) + * @NL80211_COUNTRY_IE_FOLLOW_POWER - for devices that have a + * preference that even though they may have programmed their own + * custom power setting prior to wiphy registration, they want + * to ensure their channel power settings are updated for this + * connection with the power settings derived from alpha2 of the + * country IE. + * @NL80211_COUNTRY_IE_IGNORE_CORE - for devices that have a preference to + * to ignore all country IE information processed by the core. + */ +enum nl80211_country_ie_pref { + NL80211_COUNTRY_IE_FOLLOW_CORE, + NL80211_COUNTRY_IE_FOLLOW_POWER, + NL80211_COUNTRY_IE_IGNORE_CORE, +}; + +/** + * enum nl80211_reg_rule_attr - regulatory rule attributes + * @__NL80211_REG_RULE_ATTR_INVALID: attribute number 0 is reserved + * @NL80211_ATTR_REG_RULE_FLAGS: a set of flags which specify additional + * considerations for a given frequency range. These are the + * &enum nl80211_reg_rule_flags. + * @NL80211_ATTR_FREQ_RANGE_START: starting frequencry for the regulatory + * rule in KHz. This is not a center of frequency but an actual regulatory + * band edge. + * @NL80211_ATTR_FREQ_RANGE_END: ending frequency for the regulatory rule + * in KHz. This is not a center a frequency but an actual regulatory + * band edge. + * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this + * frequency range, in KHz. + * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain + * for a given frequency range. The value is in mBi (100 * dBi). + * If you don't have one then don't send this. + * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for + * a given frequency range. The value is in mBm (100 * dBm). + * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number + * currently defined + * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use + */ +enum nl80211_reg_rule_attr { + __NL80211_REG_RULE_ATTR_INVALID, + NL80211_ATTR_REG_RULE_FLAGS, + + NL80211_ATTR_FREQ_RANGE_START, + NL80211_ATTR_FREQ_RANGE_END, + NL80211_ATTR_FREQ_RANGE_MAX_BW, + + NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, + NL80211_ATTR_POWER_RULE_MAX_EIRP, + + /* keep last */ + __NL80211_REG_RULE_ATTR_AFTER_LAST, + NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 +}; + +/** + * enum nl80211_sched_scan_match_attr - scheduled scan match attributes + * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved + * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, + * only report BSS with matching SSID. + * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a + * BSS in scan results. Filtering is turned off if not specified. Note that + * if this attribute is in a match set of its own, then it is treated as + * the default value for all matchsets with an SSID, rather than being a + * matchset of its own without an RSSI filter. This is due to problems with + * how this API was implemented in the past. Also, due to the same problem, + * the only way to create a matchset with only an RSSI filter (with this + * attribute) is if there's only a single matchset with the RSSI attribute. + * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter + * attribute number currently defined + * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use + */ +enum nl80211_sched_scan_match_attr { + __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID, + + NL80211_SCHED_SCAN_MATCH_ATTR_SSID, + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, + + /* keep last */ + __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, + NL80211_SCHED_SCAN_MATCH_ATTR_MAX = + __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1 +}; + +/* only for backward compatibility */ +#define NL80211_ATTR_SCHED_SCAN_MATCH_SSID NL80211_SCHED_SCAN_MATCH_ATTR_SSID + +/** + * enum nl80211_reg_rule_flags - regulatory rule flags + * + * @NL80211_RRF_NO_OFDM: OFDM modulation not allowed + * @NL80211_RRF_NO_CCK: CCK modulation not allowed + * @NL80211_RRF_NO_INDOOR: indoor operation not allowed + * @NL80211_RRF_NO_OUTDOOR: outdoor operation not allowed + * @NL80211_RRF_DFS: DFS support is required to be used + * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links + * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links + * @NL80211_RRF_PASSIVE_SCAN: passive scan is required + * @NL80211_RRF_NO_IBSS: no IBSS is allowed + */ +enum nl80211_reg_rule_flags { + NL80211_RRF_NO_OFDM = 1<<0, + NL80211_RRF_NO_CCK = 1<<1, + NL80211_RRF_NO_INDOOR = 1<<2, + NL80211_RRF_NO_OUTDOOR = 1<<3, + NL80211_RRF_DFS = 1<<4, + NL80211_RRF_PTP_ONLY = 1<<5, + NL80211_RRF_PTMP_ONLY = 1<<6, + NL80211_RRF_PASSIVE_SCAN = 1<<7, + NL80211_RRF_NO_IBSS = 1<<8, +}; + +/** + * enum nl80211_dfs_regions - regulatory DFS regions + * + * @NL80211_DFS_UNSET: Country has no DFS master region specified + * @NL80211_DFS_FCC: Country follows DFS master rules from FCC + * @NL80211_DFS_ETSI: Country follows DFS master rules from ETSI + * @NL80211_DFS_JP: Country follows DFS master rules from JP/MKK/Telec + */ +enum nl80211_dfs_regions { + NL80211_DFS_UNSET = 0, + NL80211_DFS_FCC = 1, + NL80211_DFS_ETSI = 2, + NL80211_DFS_JP = 3, +}; + +/** + * enum nl80211_user_reg_hint_type - type of user regulatory hint + * + * @NL80211_USER_REG_HINT_USER: a user sent the hint. This is always + * assumed if the attribute is not set. + * @NL80211_USER_REG_HINT_CELL_BASE: the hint comes from a cellular + * base station. Device drivers that have been tested to work + * properly to support this type of hint can enable these hints + * by setting the NL80211_FEATURE_CELL_BASE_REG_HINTS feature + * capability on the struct wiphy. The wireless core will + * ignore all cell base station hints until at least one device + * present has been registered with the wireless core that + * has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a + * supported feature. + */ +enum nl80211_user_reg_hint_type { + NL80211_USER_REG_HINT_USER = 0, + NL80211_USER_REG_HINT_CELL_BASE = 1, +}; + +/** + * enum nl80211_survey_info - survey information + * + * These attribute types are used with %NL80211_ATTR_SURVEY_INFO + * when getting information about a survey. + * + * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved + * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel + * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) + * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used + * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio + * spent on this channel + * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary + * channel was sensed busy (either due to activity or energy detect) + * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension + * channel was sensed busy + * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent + * receiving data + * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent + * transmitting data + * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number + * currently defined + * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use + */ +enum nl80211_survey_info { + __NL80211_SURVEY_INFO_INVALID, + NL80211_SURVEY_INFO_FREQUENCY, + NL80211_SURVEY_INFO_NOISE, + NL80211_SURVEY_INFO_IN_USE, + NL80211_SURVEY_INFO_CHANNEL_TIME, + NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY, + NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY, + NL80211_SURVEY_INFO_CHANNEL_TIME_RX, + NL80211_SURVEY_INFO_CHANNEL_TIME_TX, + + /* keep last */ + __NL80211_SURVEY_INFO_AFTER_LAST, + NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 +}; + +/** + * enum nl80211_mntr_flags - monitor configuration flags + * + * Monitor configuration flags. + * + * @__NL80211_MNTR_FLAG_INVALID: reserved + * + * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS + * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP + * @NL80211_MNTR_FLAG_CONTROL: pass control frames + * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering + * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing. + * overrides all other flags. + * + * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use + * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag + */ +enum nl80211_mntr_flags { + __NL80211_MNTR_FLAG_INVALID, + NL80211_MNTR_FLAG_FCSFAIL, + NL80211_MNTR_FLAG_PLCPFAIL, + NL80211_MNTR_FLAG_CONTROL, + NL80211_MNTR_FLAG_OTHER_BSS, + NL80211_MNTR_FLAG_COOK_FRAMES, + + /* keep last */ + __NL80211_MNTR_FLAG_AFTER_LAST, + NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 +}; + +/** + * enum nl80211_mesh_power_mode - mesh power save modes + * + * @NL80211_MESH_POWER_UNKNOWN: The mesh power mode of the mesh STA is + * not known or has not been set yet. + * @NL80211_MESH_POWER_ACTIVE: Active mesh power mode. The mesh STA is + * in Awake state all the time. + * @NL80211_MESH_POWER_LIGHT_SLEEP: Light sleep mode. The mesh STA will + * alternate between Active and Doze states, but will wake up for + * neighbor's beacons. + * @NL80211_MESH_POWER_DEEP_SLEEP: Deep sleep mode. The mesh STA will + * alternate between Active and Doze states, but may not wake up + * for neighbor's beacons. + * + * @__NL80211_MESH_POWER_AFTER_LAST - internal use + * @NL80211_MESH_POWER_MAX - highest possible power save level + */ + +enum nl80211_mesh_power_mode { + NL80211_MESH_POWER_UNKNOWN, + NL80211_MESH_POWER_ACTIVE, + NL80211_MESH_POWER_LIGHT_SLEEP, + NL80211_MESH_POWER_DEEP_SLEEP, + + __NL80211_MESH_POWER_AFTER_LAST, + NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1 +}; + +/** + * enum nl80211_meshconf_params - mesh configuration parameters + * + * Mesh configuration parameters. These can be changed while the mesh is + * active. + * + * @__NL80211_MESHCONF_INVALID: internal use + * + * @NL80211_MESHCONF_RETRY_TIMEOUT: specifies the initial retry timeout in + * millisecond units, used by the Peer Link Open message + * + * @NL80211_MESHCONF_CONFIRM_TIMEOUT: specifies the initial confirm timeout, in + * millisecond units, used by the peer link management to close a peer link + * + * @NL80211_MESHCONF_HOLDING_TIMEOUT: specifies the holding timeout, in + * millisecond units + * + * @NL80211_MESHCONF_MAX_PEER_LINKS: maximum number of peer links allowed + * on this mesh interface + * + * @NL80211_MESHCONF_MAX_RETRIES: specifies the maximum number of peer link + * open retries that can be sent to establish a new peer link instance in a + * mesh + * + * @NL80211_MESHCONF_TTL: specifies the value of TTL field set at a source mesh + * point. + * + * @NL80211_MESHCONF_AUTO_OPEN_PLINKS: whether we should automatically open + * peer links when we detect compatible mesh peers. Disabled if + * @NL80211_MESH_SETUP_USERSPACE_MPM or @NL80211_MESH_SETUP_USERSPACE_AMPE are + * set. + * + * @NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES: the number of action frames + * containing a PREQ that an MP can send to a particular destination (path + * target) + * + * @NL80211_MESHCONF_PATH_REFRESH_TIME: how frequently to refresh mesh paths + * (in milliseconds) + * + * @NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT: minimum length of time to wait + * until giving up on a path discovery (in milliseconds) + * + * @NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT: The time (in TUs) for which mesh + * points receiving a PREQ shall consider the forwarding information from + * the root to be valid. (TU = time unit) + * + * @NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL: The minimum interval of time (in + * TUs) during which an MP can send only one action frame containing a PREQ + * reference element + * + * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs) + * that it takes for an HWMP information element to propagate across the + * mesh + * + * @NL80211_MESHCONF_HWMP_ROOTMODE: whether root mode is enabled or not + * + * @NL80211_MESHCONF_ELEMENT_TTL: specifies the value of TTL field set at a + * source mesh point for path selection elements. + * + * @NL80211_MESHCONF_HWMP_RANN_INTERVAL: The interval of time (in TUs) between + * root announcements are transmitted. + * + * @NL80211_MESHCONF_GATE_ANNOUNCEMENTS: Advertise that this mesh station has + * access to a broader network beyond the MBSS. This is done via Root + * Announcement frames. + * + * @NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL: The minimum interval of time (in + * TUs) during which a mesh STA can send only one Action frame containing a + * PERR element. + * + * @NL80211_MESHCONF_FORWARDING: set Mesh STA as forwarding or non-forwarding + * or forwarding entity (default is TRUE - forwarding entity) + * + * @NL80211_MESHCONF_RSSI_THRESHOLD: RSSI threshold in dBm. This specifies the + * threshold for average signal strength of candidate station to establish + * a peer link. + * + * @NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR: maximum number of neighbors + * to synchronize to for 11s default synchronization method + * (see 11C.12.2.2) + * + * @NL80211_MESHCONF_HT_OPMODE: set mesh HT protection mode. + * + * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute + * + * @NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT: The time (in TUs) for + * which mesh STAs receiving a proactive PREQ shall consider the forwarding + * information to the root mesh STA to be valid. + * + * @NL80211_MESHCONF_HWMP_ROOT_INTERVAL: The interval of time (in TUs) between + * proactive PREQs are transmitted. + * + * @NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL: The minimum interval of time + * (in TUs) during which a mesh STA can send only one Action frame + * containing a PREQ element for root path confirmation. + * + * @NL80211_MESHCONF_POWER_MODE: Default mesh power mode for new peer links. + * type &enum nl80211_mesh_power_mode (u32) + * + * @NL80211_MESHCONF_AWAKE_WINDOW: awake window duration (in TUs) + * + * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use + */ +enum nl80211_meshconf_params { + __NL80211_MESHCONF_INVALID, + NL80211_MESHCONF_RETRY_TIMEOUT, + NL80211_MESHCONF_CONFIRM_TIMEOUT, + NL80211_MESHCONF_HOLDING_TIMEOUT, + NL80211_MESHCONF_MAX_PEER_LINKS, + NL80211_MESHCONF_MAX_RETRIES, + NL80211_MESHCONF_TTL, + NL80211_MESHCONF_AUTO_OPEN_PLINKS, + NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, + NL80211_MESHCONF_PATH_REFRESH_TIME, + NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, + NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, + NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL, + NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME, + NL80211_MESHCONF_HWMP_ROOTMODE, + NL80211_MESHCONF_ELEMENT_TTL, + NL80211_MESHCONF_HWMP_RANN_INTERVAL, + NL80211_MESHCONF_GATE_ANNOUNCEMENTS, + NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL, + NL80211_MESHCONF_FORWARDING, + NL80211_MESHCONF_RSSI_THRESHOLD, + NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR, + NL80211_MESHCONF_HT_OPMODE, + NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, + NL80211_MESHCONF_HWMP_ROOT_INTERVAL, + NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, + NL80211_MESHCONF_POWER_MODE, + NL80211_MESHCONF_AWAKE_WINDOW, + + /* keep last */ + __NL80211_MESHCONF_ATTR_AFTER_LAST, + NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1 +}; + +/** + * enum nl80211_mesh_setup_params - mesh setup parameters + * + * Mesh setup parameters. These are used to start/join a mesh and cannot be + * changed while the mesh is active. + * + * @__NL80211_MESH_SETUP_INVALID: Internal use + * + * @NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL: Enable this option to use a + * vendor specific path selection algorithm or disable it to use the + * default HWMP. + * + * @NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC: Enable this option to use a + * vendor specific path metric or disable it to use the default Airtime + * metric. + * + * @NL80211_MESH_SETUP_IE: Information elements for this mesh, for instance, a + * robust security network ie, or a vendor specific information element + * that vendors will use to identify the path selection methods and + * metrics in use. + * + * @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication + * daemon will be authenticating mesh candidates. + * + * @NL80211_MESH_SETUP_USERSPACE_AMPE: Enable this option if an authentication + * daemon will be securing peer link frames. AMPE is a secured version of + * Mesh Peering Management (MPM) and is implemented with the assistance of + * a userspace daemon. When this flag is set, the kernel will send peer + * management frames to a userspace daemon that will implement AMPE + * functionality (security capabilities selection, key confirmation, and + * key management). When the flag is unset (default), the kernel can + * autonomously complete (unsecured) mesh peering without the need of a + * userspace daemon. + * + * @NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC: Enable this option to use a + * vendor specific synchronization method or disable it to use the default + * neighbor offset synchronization + * + * @NL80211_MESH_SETUP_USERSPACE_MPM: Enable this option if userspace will + * implement an MPM which handles peer allocation and state. + * + * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number + * + * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use + */ +enum nl80211_mesh_setup_params { + __NL80211_MESH_SETUP_INVALID, + NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL, + NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC, + NL80211_MESH_SETUP_IE, + NL80211_MESH_SETUP_USERSPACE_AUTH, + NL80211_MESH_SETUP_USERSPACE_AMPE, + NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC, + NL80211_MESH_SETUP_USERSPACE_MPM, + + /* keep last */ + __NL80211_MESH_SETUP_ATTR_AFTER_LAST, + NL80211_MESH_SETUP_ATTR_MAX = __NL80211_MESH_SETUP_ATTR_AFTER_LAST - 1 +}; + +/** + * enum nl80211_txq_attr - TX queue parameter attributes + * @__NL80211_TXQ_ATTR_INVALID: Attribute number 0 is reserved + * @NL80211_TXQ_ATTR_AC: AC identifier (NL80211_AC_*) + * @NL80211_TXQ_ATTR_TXOP: Maximum burst time in units of 32 usecs, 0 meaning + * disabled + * @NL80211_TXQ_ATTR_CWMIN: Minimum contention window [a value of the form + * 2^n-1 in the range 1..32767] + * @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form + * 2^n-1 in the range 1..32767] + * @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255] + * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal + * @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number + */ +enum nl80211_txq_attr { + __NL80211_TXQ_ATTR_INVALID, + NL80211_TXQ_ATTR_AC, + NL80211_TXQ_ATTR_TXOP, + NL80211_TXQ_ATTR_CWMIN, + NL80211_TXQ_ATTR_CWMAX, + NL80211_TXQ_ATTR_AIFS, + + /* keep last */ + __NL80211_TXQ_ATTR_AFTER_LAST, + NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1 +}; + +enum nl80211_ac { + NL80211_AC_VO, + NL80211_AC_VI, + NL80211_AC_BE, + NL80211_AC_BK, + NL80211_NUM_ACS +}; + +/* backward compat */ +#define NL80211_TXQ_ATTR_QUEUE NL80211_TXQ_ATTR_AC +#define NL80211_TXQ_Q_VO NL80211_AC_VO +#define NL80211_TXQ_Q_VI NL80211_AC_VI +#define NL80211_TXQ_Q_BE NL80211_AC_BE +#define NL80211_TXQ_Q_BK NL80211_AC_BK + +/** + * enum nl80211_channel_type - channel type + * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel + * @NL80211_CHAN_HT20: 20 MHz HT channel + * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel + * below the control channel + * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel + * above the control channel + */ +enum nl80211_channel_type { + NL80211_CHAN_NO_HT, + NL80211_CHAN_HT20, + NL80211_CHAN_HT40MINUS, + NL80211_CHAN_HT40PLUS +}; + +/** + * enum nl80211_chan_width - channel width definitions + * + * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH + * attribute. + * + * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel + * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel + * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + * attribute must be provided as well + * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + * attribute must be provided as well + * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well + * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + * attribute must be provided as well + */ +enum nl80211_chan_width { + NL80211_CHAN_WIDTH_20_NOHT, + NL80211_CHAN_WIDTH_20, + NL80211_CHAN_WIDTH_40, + NL80211_CHAN_WIDTH_80, + NL80211_CHAN_WIDTH_80P80, + NL80211_CHAN_WIDTH_160, +}; + +/** + * enum nl80211_bss - netlink attributes for a BSS + * + * @__NL80211_BSS_INVALID: invalid + * @NL80211_BSS_BSSID: BSSID of the BSS (6 octets) + * @NL80211_BSS_FREQUENCY: frequency in MHz (u32) + * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64) + * (if @NL80211_BSS_PRESP_DATA is present then this is known to be + * from a probe response, otherwise it may be from the same beacon + * that the NL80211_BSS_BEACON_TSF will be from) + * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) + * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16) + * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the + * raw information elements from the probe response/beacon (bin); + * if the %NL80211_BSS_BEACON_IES attribute is present and the data is + * different then the IEs here are from a Probe Response frame; otherwise + * they are from a Beacon frame. + * However, if the driver does not indicate the source of the IEs, these + * IEs may be from either frame subtype. + * If present, the @NL80211_BSS_PRESP_DATA attribute indicates that the + * data here is known to be from a probe response, without any heuristics. + * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon + * in mBm (100 * dBm) (s32) + * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon + * in unspecified units, scaled to 0..100 (u8) + * @NL80211_BSS_STATUS: status, if this BSS is "used" + * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms + * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information + * elements from a Beacon frame (bin); not present if no Beacon frame has + * yet been received + * @NL80211_BSS_CHAN_WIDTH: channel width of the control channel + * (u32, enum nl80211_bss_scan_width) + * @NL80211_BSS_BEACON_TSF: TSF of the last received beacon (u64) + * (not present if no beacon frame has been received yet) + * @NL80211_BSS_PRESP_DATA: the data in @NL80211_BSS_INFORMATION_ELEMENTS and + * @NL80211_BSS_TSF is known to be from a probe response (flag attribute) + * @__NL80211_BSS_AFTER_LAST: internal + * @NL80211_BSS_MAX: highest BSS attribute + */ +enum nl80211_bss { + __NL80211_BSS_INVALID, + NL80211_BSS_BSSID, + NL80211_BSS_FREQUENCY, + NL80211_BSS_TSF, + NL80211_BSS_BEACON_INTERVAL, + NL80211_BSS_CAPABILITY, + NL80211_BSS_INFORMATION_ELEMENTS, + NL80211_BSS_SIGNAL_MBM, + NL80211_BSS_SIGNAL_UNSPEC, + NL80211_BSS_STATUS, + NL80211_BSS_SEEN_MS_AGO, + NL80211_BSS_BEACON_IES, + NL80211_BSS_CHAN_WIDTH, + NL80211_BSS_BEACON_TSF, + NL80211_BSS_PRESP_DATA, + + /* keep last */ + __NL80211_BSS_AFTER_LAST, + NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1 +}; + +/** + * enum nl80211_bss_status - BSS "status" + * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. + * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. + * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. + * + * The BSS status is a BSS attribute in scan dumps, which + * indicates the status the interface has wrt. this BSS. + */ +enum nl80211_bss_status { + NL80211_BSS_STATUS_AUTHENTICATED, + NL80211_BSS_STATUS_ASSOCIATED, + NL80211_BSS_STATUS_IBSS_JOINED, +}; + +/** + * enum nl80211_auth_type - AuthenticationType + * + * @NL80211_AUTHTYPE_OPEN_SYSTEM: Open System authentication + * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) + * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) + * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) + * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals + * @__NL80211_AUTHTYPE_NUM: internal + * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm + * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by + * trying multiple times); this is invalid in netlink -- leave out + * the attribute for this on CONNECT commands. + */ +enum nl80211_auth_type { + NL80211_AUTHTYPE_OPEN_SYSTEM, + NL80211_AUTHTYPE_SHARED_KEY, + NL80211_AUTHTYPE_FT, + NL80211_AUTHTYPE_NETWORK_EAP, + NL80211_AUTHTYPE_SAE, + + /* keep last */ + __NL80211_AUTHTYPE_NUM, + NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1, + NL80211_AUTHTYPE_AUTOMATIC +}; + +/** + * enum nl80211_key_type - Key Type + * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key + * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key + * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS) + * @NUM_NL80211_KEYTYPES: number of defined key types + */ +enum nl80211_key_type { + NL80211_KEYTYPE_GROUP, + NL80211_KEYTYPE_PAIRWISE, + NL80211_KEYTYPE_PEERKEY, + + NUM_NL80211_KEYTYPES +}; + +/** + * enum nl80211_mfp - Management frame protection state + * @NL80211_MFP_NO: Management frame protection not used + * @NL80211_MFP_REQUIRED: Management frame protection required + */ +enum nl80211_mfp { + NL80211_MFP_NO, + NL80211_MFP_REQUIRED, +}; + +enum nl80211_wpa_versions { + NL80211_WPA_VERSION_1 = 1 << 0, + NL80211_WPA_VERSION_2 = 1 << 1, +}; + +/** + * enum nl80211_key_default_types - key default types + * @__NL80211_KEY_DEFAULT_TYPE_INVALID: invalid + * @NL80211_KEY_DEFAULT_TYPE_UNICAST: key should be used as default + * unicast key + * @NL80211_KEY_DEFAULT_TYPE_MULTICAST: key should be used as default + * multicast key + * @NUM_NL80211_KEY_DEFAULT_TYPES: number of default types + */ +enum nl80211_key_default_types { + __NL80211_KEY_DEFAULT_TYPE_INVALID, + NL80211_KEY_DEFAULT_TYPE_UNICAST, + NL80211_KEY_DEFAULT_TYPE_MULTICAST, + + NUM_NL80211_KEY_DEFAULT_TYPES +}; + +/** + * enum nl80211_key_attributes - key attributes + * @__NL80211_KEY_INVALID: invalid + * @NL80211_KEY_DATA: (temporal) key data; for TKIP this consists of + * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC + * keys + * @NL80211_KEY_IDX: key ID (u8, 0-3) + * @NL80211_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 + * section 7.3.2.25.1, e.g. 0x000FAC04) + * @NL80211_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and + * CCMP keys, each six bytes in little endian + * @NL80211_KEY_DEFAULT: flag indicating default key + * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key + * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not + * specified the default depends on whether a MAC address was + * given with the command using the key or not (u32) + * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags + * attributes, specifying what a key should be set as default as. + * See &enum nl80211_key_default_types. + * @__NL80211_KEY_AFTER_LAST: internal + * @NL80211_KEY_MAX: highest key attribute + */ +enum nl80211_key_attributes { + __NL80211_KEY_INVALID, + NL80211_KEY_DATA, + NL80211_KEY_IDX, + NL80211_KEY_CIPHER, + NL80211_KEY_SEQ, + NL80211_KEY_DEFAULT, + NL80211_KEY_DEFAULT_MGMT, + NL80211_KEY_TYPE, + NL80211_KEY_DEFAULT_TYPES, + + /* keep last */ + __NL80211_KEY_AFTER_LAST, + NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 +}; + +/** + * enum nl80211_tx_rate_attributes - TX rate set attributes + * @__NL80211_TXRATE_INVALID: invalid + * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection + * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with + * 1 = 500 kbps) but without the IE length restriction (at most + * %NL80211_MAX_SUPP_RATES in a single array). + * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection + * in an array of MCS numbers. + * @__NL80211_TXRATE_AFTER_LAST: internal + * @NL80211_TXRATE_MAX: highest TX rate attribute + */ +enum nl80211_tx_rate_attributes { + __NL80211_TXRATE_INVALID, + NL80211_TXRATE_LEGACY, + NL80211_TXRATE_MCS, + + /* keep last */ + __NL80211_TXRATE_AFTER_LAST, + NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 +}; + +/** + * enum nl80211_band - Frequency band + * @NL80211_BAND_2GHZ: 2.4 GHz ISM band + * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz) + * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz) + */ +enum nl80211_band { + NL80211_BAND_2GHZ, + NL80211_BAND_5GHZ, + NL80211_BAND_60GHZ, +}; + +/** + * enum nl80211_ps_state - powersave state + * @NL80211_PS_DISABLED: powersave is disabled + * @NL80211_PS_ENABLED: powersave is enabled + */ +enum nl80211_ps_state { + NL80211_PS_DISABLED, + NL80211_PS_ENABLED, +}; + +/** + * enum nl80211_attr_cqm - connection quality monitor attributes + * @__NL80211_ATTR_CQM_INVALID: invalid + * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm. This value specifies + * the threshold for the RSSI level at which an event will be sent. Zero + * to disable. + * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm. This value specifies + * the minimum amount the RSSI level must change after an event before a + * new event may be issued (to reduce effects of RSSI oscillation). + * @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT: RSSI threshold event + * @NL80211_ATTR_CQM_PKT_LOSS_EVENT: a u32 value indicating that this many + * consecutive packets were not acknowledged by the peer + * @NL80211_ATTR_CQM_TXE_RATE: TX error rate in %. Minimum % of TX failures + * during the given %NL80211_ATTR_CQM_TXE_INTVL before an + * %NL80211_CMD_NOTIFY_CQM with reported %NL80211_ATTR_CQM_TXE_RATE and + * %NL80211_ATTR_CQM_TXE_PKTS is generated. + * @NL80211_ATTR_CQM_TXE_PKTS: number of attempted packets in a given + * %NL80211_ATTR_CQM_TXE_INTVL before %NL80211_ATTR_CQM_TXE_RATE is + * checked. + * @NL80211_ATTR_CQM_TXE_INTVL: interval in seconds. Specifies the periodic + * interval in which %NL80211_ATTR_CQM_TXE_PKTS and + * %NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an + * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. + * @__NL80211_ATTR_CQM_AFTER_LAST: internal + * @NL80211_ATTR_CQM_MAX: highest key attribute + */ +enum nl80211_attr_cqm { + __NL80211_ATTR_CQM_INVALID, + NL80211_ATTR_CQM_RSSI_THOLD, + NL80211_ATTR_CQM_RSSI_HYST, + NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT, + NL80211_ATTR_CQM_PKT_LOSS_EVENT, + NL80211_ATTR_CQM_TXE_RATE, + NL80211_ATTR_CQM_TXE_PKTS, + NL80211_ATTR_CQM_TXE_INTVL, + + /* keep last */ + __NL80211_ATTR_CQM_AFTER_LAST, + NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1 +}; + +/** + * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event + * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW: The RSSI level is lower than the + * configured threshold + * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the + * configured threshold + * @NL80211_CQM_RSSI_BEACON_LOSS_EVENT: The device experienced beacon loss. + * (Note that deauth/disassoc will still follow if the AP is not + * available. This event might get used as roaming event, etc.) + */ +enum nl80211_cqm_rssi_threshold_event { + NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW, + NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH, + NL80211_CQM_RSSI_BEACON_LOSS_EVENT, +}; + + +/** + * enum nl80211_tx_power_setting - TX power adjustment + * @NL80211_TX_POWER_AUTOMATIC: automatically determine transmit power + * @NL80211_TX_POWER_LIMITED: limit TX power by the mBm parameter + * @NL80211_TX_POWER_FIXED: fix TX power to the mBm parameter + */ +enum nl80211_tx_power_setting { + NL80211_TX_POWER_AUTOMATIC, + NL80211_TX_POWER_LIMITED, + NL80211_TX_POWER_FIXED, +}; + +/** + * enum nl80211_wowlan_packet_pattern_attr - WoWLAN packet pattern attribute + * @__NL80211_WOWLAN_PKTPAT_INVALID: invalid number for nested attribute + * @NL80211_WOWLAN_PKTPAT_PATTERN: the pattern, values where the mask has + * a zero bit are ignored + * @NL80211_WOWLAN_PKTPAT_MASK: pattern mask, must be long enough to have + * a bit for each byte in the pattern. The lowest-order bit corresponds + * to the first byte of the pattern, but the bytes of the pattern are + * in a little-endian-like format, i.e. the 9th byte of the pattern + * corresponds to the lowest-order bit in the second byte of the mask. + * For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where + * xx indicates "don't care") would be represented by a pattern of + * twelve zero bytes, and a mask of "0xed,0x01". + * Note that the pattern matching is done as though frames were not + * 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked + * first (including SNAP header unpacking) and then matched. + * @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after + * these fixed number of bytes of received packet + * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes + * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number + */ +enum nl80211_wowlan_packet_pattern_attr { + __NL80211_WOWLAN_PKTPAT_INVALID, + NL80211_WOWLAN_PKTPAT_MASK, + NL80211_WOWLAN_PKTPAT_PATTERN, + NL80211_WOWLAN_PKTPAT_OFFSET, + + NUM_NL80211_WOWLAN_PKTPAT, + MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1, +}; + +/** + * struct nl80211_wowlan_pattern_support - pattern support information + * @max_patterns: maximum number of patterns supported + * @min_pattern_len: minimum length of each pattern + * @max_pattern_len: maximum length of each pattern + * @max_pkt_offset: maximum Rx packet offset + * + * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when + * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the + * capability information given by the kernel to userspace. + */ +struct nl80211_wowlan_pattern_support { + __u32 max_patterns; + __u32 min_pattern_len; + __u32 max_pattern_len; + __u32 max_pkt_offset; +} __attribute__((packed)); + +/** + * enum nl80211_wowlan_triggers - WoWLAN trigger definitions + * @__NL80211_WOWLAN_TRIG_INVALID: invalid number for nested attributes + * @NL80211_WOWLAN_TRIG_ANY: wake up on any activity, do not really put + * the chip into a special state -- works best with chips that have + * support for low-power operation already (flag) + * @NL80211_WOWLAN_TRIG_DISCONNECT: wake up on disconnect, the way disconnect + * is detected is implementation-specific (flag) + * @NL80211_WOWLAN_TRIG_MAGIC_PKT: wake up on magic packet (6x 0xff, followed + * by 16 repetitions of MAC addr, anywhere in payload) (flag) + * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns + * which are passed in an array of nested attributes, each nested attribute + * defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern. + * Each pattern defines a wakeup packet. Packet offset is associated with + * each pattern which is used while matching the pattern. The matching is + * done on the MSDU, i.e. as though the packet was an 802.3 packet, so the + * pattern matching is done after the packet is converted to the MSDU. + * + * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute + * carrying a &struct nl80211_wowlan_pattern_support. + * + * When reporting wakeup. it is a u32 attribute containing the 0-based + * index of the pattern that caused the wakeup, in the patterns passed + * to the kernel when configuring. + * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be + * used when setting, used only to indicate that GTK rekeying is supported + * by the device (flag) + * @NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE: wake up on GTK rekey failure (if + * done by the device) (flag) + * @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST: wake up on EAP Identity Request + * packet (flag) + * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) + * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released + * (on devices that have rfkill in the device) (flag) + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains + * the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame + * may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN + * attribute contains the original length. + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11 + * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 + * attribute if the packet was truncated somewhere. + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the + * 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may + * be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute + * contains the original length. + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3 + * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 + * attribute if the packet was truncated somewhere. + * @NL80211_WOWLAN_TRIG_TCP_CONNECTION: TCP connection wake, see DOC section + * "TCP connection wakeup" for more details. This is a nested attribute + * containing the exact information for establishing and keeping alive + * the TCP connection. + * @NL80211_WOWLAN_TRIG_TCP_WAKEUP_MATCH: For wakeup reporting only, the + * wakeup packet was received on the TCP connection + * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST: For wakeup reporting only, the + * TCP connection was lost or failed to be established + * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only, + * the TCP connection ran out of tokens to use for data to send to the + * service + * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers + * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number + * + * These nested attributes are used to configure the wakeup triggers and + * to report the wakeup reason(s). + */ +enum nl80211_wowlan_triggers { + __NL80211_WOWLAN_TRIG_INVALID, + NL80211_WOWLAN_TRIG_ANY, + NL80211_WOWLAN_TRIG_DISCONNECT, + NL80211_WOWLAN_TRIG_MAGIC_PKT, + NL80211_WOWLAN_TRIG_PKT_PATTERN, + NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED, + NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE, + NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, + NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, + NL80211_WOWLAN_TRIG_RFKILL_RELEASE, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN, + NL80211_WOWLAN_TRIG_TCP_CONNECTION, + NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH, + NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST, + NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS, + + /* keep last */ + NUM_NL80211_WOWLAN_TRIG, + MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1 +}; + +/** + * DOC: TCP connection wakeup + * + * Some devices can establish a TCP connection in order to be woken up by a + * packet coming in from outside their network segment, or behind NAT. If + * configured, the device will establish a TCP connection to the given + * service, and periodically send data to that service. The first data + * packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK. + * The data packets can optionally include a (little endian) sequence + * number (in the TCP payload!) that is generated by the device, and, also + * optionally, a token from a list of tokens. This serves as a keep-alive + * with the service, and for NATed connections, etc. + * + * During this keep-alive period, the server doesn't send any data to the + * client. When receiving data, it is compared against the wakeup pattern + * (and mask) and if it matches, the host is woken up. Similarly, if the + * connection breaks or cannot be established to start with, the host is + * also woken up. + * + * Developer's note: ARP offload is required for this, otherwise TCP + * response packets might not go through correctly. + */ + +/** + * struct nl80211_wowlan_tcp_data_seq - WoWLAN TCP data sequence + * @start: starting value + * @offset: offset of sequence number in packet + * @len: length of the sequence value to write, 1 through 4 + * + * Note: don't confuse with the TCP sequence number(s), this is for the + * keepalive packet payload. The actual value is written into the packet + * in little endian. + */ +struct nl80211_wowlan_tcp_data_seq { + __u32 start, offset, len; +}; + +/** + * struct nl80211_wowlan_tcp_data_token - WoWLAN TCP data token config + * @offset: offset of token in packet + * @len: length of each token + * @token_stream: stream of data to be used for the tokens, the length must + * be a multiple of @len for this to make sense + */ +struct nl80211_wowlan_tcp_data_token { + __u32 offset, len; + __u8 token_stream[]; +}; + +/** + * struct nl80211_wowlan_tcp_data_token_feature - data token features + * @min_len: minimum token length + * @max_len: maximum token length + * @bufsize: total available token buffer size (max size of @token_stream) + */ +struct nl80211_wowlan_tcp_data_token_feature { + __u32 min_len, max_len, bufsize; +}; + +/** + * enum nl80211_wowlan_tcp_attrs - WoWLAN TCP connection parameters + * @__NL80211_WOWLAN_TCP_INVALID: invalid number for nested attributes + * @NL80211_WOWLAN_TCP_SRC_IPV4: source IPv4 address (in network byte order) + * @NL80211_WOWLAN_TCP_DST_IPV4: destination IPv4 address + * (in network byte order) + * @NL80211_WOWLAN_TCP_DST_MAC: destination MAC address, this is given because + * route lookup when configured might be invalid by the time we suspend, + * and doing a route lookup when suspending is no longer possible as it + * might require ARP querying. + * @NL80211_WOWLAN_TCP_SRC_PORT: source port (u16); optional, if not given a + * socket and port will be allocated + * @NL80211_WOWLAN_TCP_DST_PORT: destination port (u16) + * @NL80211_WOWLAN_TCP_DATA_PAYLOAD: data packet payload, at least one byte. + * For feature advertising, a u32 attribute holding the maximum length + * of the data payload. + * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ: data packet sequence configuration + * (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature + * advertising it is just a flag + * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN: data packet token configuration, + * see &struct nl80211_wowlan_tcp_data_token and for advertising see + * &struct nl80211_wowlan_tcp_data_token_feature. + * @NL80211_WOWLAN_TCP_DATA_INTERVAL: data interval in seconds, maximum + * interval in feature advertising (u32) + * @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a + * u32 attribute holding the maximum length + * @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for + * feature advertising. The mask works like @NL80211_WOWLAN_PKTPAT_MASK + * but on the TCP payload only. + * @NUM_NL80211_WOWLAN_TCP: number of TCP attributes + * @MAX_NL80211_WOWLAN_TCP: highest attribute number + */ +enum nl80211_wowlan_tcp_attrs { + __NL80211_WOWLAN_TCP_INVALID, + NL80211_WOWLAN_TCP_SRC_IPV4, + NL80211_WOWLAN_TCP_DST_IPV4, + NL80211_WOWLAN_TCP_DST_MAC, + NL80211_WOWLAN_TCP_SRC_PORT, + NL80211_WOWLAN_TCP_DST_PORT, + NL80211_WOWLAN_TCP_DATA_PAYLOAD, + NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ, + NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN, + NL80211_WOWLAN_TCP_DATA_INTERVAL, + NL80211_WOWLAN_TCP_WAKE_PAYLOAD, + NL80211_WOWLAN_TCP_WAKE_MASK, + + /* keep last */ + NUM_NL80211_WOWLAN_TCP, + MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1 +}; + +/** + * enum nl80211_iface_limit_attrs - limit attributes + * @NL80211_IFACE_LIMIT_UNSPEC: (reserved) + * @NL80211_IFACE_LIMIT_MAX: maximum number of interfaces that + * can be chosen from this set of interface types (u32) + * @NL80211_IFACE_LIMIT_TYPES: nested attribute containing a + * flag attribute for each interface type in this set + * @NUM_NL80211_IFACE_LIMIT: number of attributes + * @MAX_NL80211_IFACE_LIMIT: highest attribute number + */ +enum nl80211_iface_limit_attrs { + NL80211_IFACE_LIMIT_UNSPEC, + NL80211_IFACE_LIMIT_MAX, + NL80211_IFACE_LIMIT_TYPES, + + /* keep last */ + NUM_NL80211_IFACE_LIMIT, + MAX_NL80211_IFACE_LIMIT = NUM_NL80211_IFACE_LIMIT - 1 +}; + +/** + * enum nl80211_if_combination_attrs -- interface combination attributes + * + * @NL80211_IFACE_COMB_UNSPEC: (reserved) + * @NL80211_IFACE_COMB_LIMITS: Nested attributes containing the limits + * for given interface types, see &enum nl80211_iface_limit_attrs. + * @NL80211_IFACE_COMB_MAXNUM: u32 attribute giving the total number of + * interfaces that can be created in this group. This number doesn't + * apply to interfaces purely managed in software, which are listed + * in a separate attribute %NL80211_ATTR_INTERFACES_SOFTWARE. + * @NL80211_IFACE_COMB_STA_AP_BI_MATCH: flag attribute specifying that + * beacon intervals within this group must be all the same even for + * infrastructure and AP/GO combinations, i.e. the GO(s) must adopt + * the infrastructure network's beacon interval. + * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many + * different channels may be used within this group. + * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap + * of supported channel widths for radar detection. + * @NUM_NL80211_IFACE_COMB: number of attributes + * @MAX_NL80211_IFACE_COMB: highest attribute number + * + * Examples: + * limits = [ #{STA} <= 1, #{AP} <= 1 ], matching BI, channels = 1, max = 2 + * => allows an AP and a STA that must match BIs + * + * numbers = [ #{AP, P2P-GO} <= 8 ], channels = 1, max = 8 + * => allows 8 of AP/GO + * + * numbers = [ #{STA} <= 2 ], channels = 2, max = 2 + * => allows two STAs on different channels + * + * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4 + * => allows a STA plus three P2P interfaces + * + * The list of these four possiblities could completely be contained + * within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate + * that any of these groups must match. + * + * "Combinations" of just a single interface will not be listed here, + * a single interface of any valid interface type is assumed to always + * be possible by itself. This means that implicitly, for each valid + * interface type, the following group always exists: + * numbers = [ #{} <= 1 ], channels = 1, max = 1 + */ +enum nl80211_if_combination_attrs { + NL80211_IFACE_COMB_UNSPEC, + NL80211_IFACE_COMB_LIMITS, + NL80211_IFACE_COMB_MAXNUM, + NL80211_IFACE_COMB_STA_AP_BI_MATCH, + NL80211_IFACE_COMB_NUM_CHANNELS, + NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, + + /* keep last */ + NUM_NL80211_IFACE_COMB, + MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1 +}; + + +/** + * enum nl80211_plink_state - state of a mesh peer link finite state machine + * + * @NL80211_PLINK_LISTEN: initial state, considered the implicit + * state of non existant mesh peer links + * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to + * this mesh peer + * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received + * from this mesh peer + * @NL80211_PLINK_CNF_RCVD: mesh plink confirm frame has been + * received from this mesh peer + * @NL80211_PLINK_ESTAB: mesh peer link is established + * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled + * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh + * plink are discarded + * @NUM_NL80211_PLINK_STATES: number of peer link states + * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states + */ +enum nl80211_plink_state { + NL80211_PLINK_LISTEN, + NL80211_PLINK_OPN_SNT, + NL80211_PLINK_OPN_RCVD, + NL80211_PLINK_CNF_RCVD, + NL80211_PLINK_ESTAB, + NL80211_PLINK_HOLDING, + NL80211_PLINK_BLOCKED, + + /* keep last */ + NUM_NL80211_PLINK_STATES, + MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1 +}; + +/** + * enum nl80211_plink_action - actions to perform in mesh peers + * + * @NL80211_PLINK_ACTION_NO_ACTION: perform no action + * @NL80211_PLINK_ACTION_OPEN: start mesh peer link establishment + * @NL80211_PLINK_ACTION_BLOCK: block traffic from this mesh peer + * @NUM_NL80211_PLINK_ACTIONS: number of possible actions + */ +enum plink_actions { + NL80211_PLINK_ACTION_NO_ACTION, + NL80211_PLINK_ACTION_OPEN, + NL80211_PLINK_ACTION_BLOCK, + + NUM_NL80211_PLINK_ACTIONS, +}; + + +#define NL80211_KCK_LEN 16 +#define NL80211_KEK_LEN 16 +#define NL80211_REPLAY_CTR_LEN 8 + +/** + * enum nl80211_rekey_data - attributes for GTK rekey offload + * @__NL80211_REKEY_DATA_INVALID: invalid number for nested attributes + * @NL80211_REKEY_DATA_KEK: key encryption key (binary) + * @NL80211_REKEY_DATA_KCK: key confirmation key (binary) + * @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary) + * @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal) + * @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal) + */ +enum nl80211_rekey_data { + __NL80211_REKEY_DATA_INVALID, + NL80211_REKEY_DATA_KEK, + NL80211_REKEY_DATA_KCK, + NL80211_REKEY_DATA_REPLAY_CTR, + + /* keep last */ + NUM_NL80211_REKEY_DATA, + MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1 +}; + +/** + * enum nl80211_hidden_ssid - values for %NL80211_ATTR_HIDDEN_SSID + * @NL80211_HIDDEN_SSID_NOT_IN_USE: do not hide SSID (i.e., broadcast it in + * Beacon frames) + * @NL80211_HIDDEN_SSID_ZERO_LEN: hide SSID by using zero-length SSID element + * in Beacon frames + * @NL80211_HIDDEN_SSID_ZERO_CONTENTS: hide SSID by using correct length of SSID + * element in Beacon frames but zero out each byte in the SSID + */ +enum nl80211_hidden_ssid { + NL80211_HIDDEN_SSID_NOT_IN_USE, + NL80211_HIDDEN_SSID_ZERO_LEN, + NL80211_HIDDEN_SSID_ZERO_CONTENTS +}; + +/** + * enum nl80211_sta_wme_attr - station WME attributes + * @__NL80211_STA_WME_INVALID: invalid number for nested attribute + * @NL80211_STA_WME_UAPSD_QUEUES: bitmap of uapsd queues. the format + * is the same as the AC bitmap in the QoS info field. + * @NL80211_STA_WME_MAX_SP: max service period. the format is the same + * as the MAX_SP field in the QoS info field (but already shifted down). + * @__NL80211_STA_WME_AFTER_LAST: internal + * @NL80211_STA_WME_MAX: highest station WME attribute + */ +enum nl80211_sta_wme_attr { + __NL80211_STA_WME_INVALID, + NL80211_STA_WME_UAPSD_QUEUES, + NL80211_STA_WME_MAX_SP, + + /* keep last */ + __NL80211_STA_WME_AFTER_LAST, + NL80211_STA_WME_MAX = __NL80211_STA_WME_AFTER_LAST - 1 +}; + +/** + * enum nl80211_pmksa_candidate_attr - attributes for PMKSA caching candidates + * @__NL80211_PMKSA_CANDIDATE_INVALID: invalid number for nested attributes + * @NL80211_PMKSA_CANDIDATE_INDEX: candidate index (u32; the smaller, the higher + * priority) + * @NL80211_PMKSA_CANDIDATE_BSSID: candidate BSSID (6 octets) + * @NL80211_PMKSA_CANDIDATE_PREAUTH: RSN pre-authentication supported (flag) + * @NUM_NL80211_PMKSA_CANDIDATE: number of PMKSA caching candidate attributes + * (internal) + * @MAX_NL80211_PMKSA_CANDIDATE: highest PMKSA caching candidate attribute + * (internal) + */ +enum nl80211_pmksa_candidate_attr { + __NL80211_PMKSA_CANDIDATE_INVALID, + NL80211_PMKSA_CANDIDATE_INDEX, + NL80211_PMKSA_CANDIDATE_BSSID, + NL80211_PMKSA_CANDIDATE_PREAUTH, + + /* keep last */ + NUM_NL80211_PMKSA_CANDIDATE, + MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1 +}; + +/** + * enum nl80211_tdls_operation - values for %NL80211_ATTR_TDLS_OPERATION + * @NL80211_TDLS_DISCOVERY_REQ: Send a TDLS discovery request + * @NL80211_TDLS_SETUP: Setup TDLS link + * @NL80211_TDLS_TEARDOWN: Teardown a TDLS link which is already established + * @NL80211_TDLS_ENABLE_LINK: Enable TDLS link + * @NL80211_TDLS_DISABLE_LINK: Disable TDLS link + */ +enum nl80211_tdls_operation { + NL80211_TDLS_DISCOVERY_REQ, + NL80211_TDLS_SETUP, + NL80211_TDLS_TEARDOWN, + NL80211_TDLS_ENABLE_LINK, + NL80211_TDLS_DISABLE_LINK, +}; + +/* + * enum nl80211_ap_sme_features - device-integrated AP features + * Reserved for future use, no bits are defined in + * NL80211_ATTR_DEVICE_AP_SME yet. +enum nl80211_ap_sme_features { +}; + */ + +/** + * enum nl80211_feature_flags - device/driver features + * @NL80211_FEATURE_SK_TX_STATUS: This driver supports reflecting back + * TX status to the socket error queue when requested with the + * socket option. + * @NL80211_FEATURE_HT_IBSS: This driver supports IBSS with HT datarates. + * @NL80211_FEATURE_INACTIVITY_TIMER: This driver takes care of freeing up + * the connected inactive stations in AP mode. + * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested + * to work properly to suppport receiving regulatory hints from + * cellular base stations. + * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: If this is set, an active + * P2P Device (%NL80211_IFTYPE_P2P_DEVICE) requires its own channel + * in the interface combinations, even when it's only used for scan + * and remain-on-channel. This could be due to, for example, the + * remain-on-channel implementation requiring a channel context. + * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of + * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station + * mode + * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan + * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported + * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif + * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting + * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform + * OBSS scans and generate 20/40 BSS coex reports. This flag is used only + * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. + * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window + * setting + * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic + * powersave + * @NL80211_FEATURE_FULL_AP_CLIENT_STATE: The driver supports full state + * transitions for AP clients. Without this flag (and if the driver + * doesn't have the AP SME in the device) the driver supports adding + * stations only when they're associated and adds them in associated + * state (to later be transitioned into authorized), with this flag + * they should be added before even sending the authentication reply + * and then transitioned into authenticated, associated and authorized + * states using station flags. + * Note that even for drivers that support this, the default is to add + * stations in authenticated/associated state, so to add unauthenticated + * stations the authenticated/associated bits have to be set in the mask. + * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits + * (HT40, VHT 80/160 MHz) if this flag is set + * @NL80211_FEATURE_USERSPACE_MPM: This driver supports a userspace Mesh + * Peering Management entity which may be implemented by registering for + * beacons or NL80211_CMD_NEW_PEER_CANDIDATE events. The mesh beacon is + * still generated by the driver. + * @NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE: This driver supports dynamic + * channel bandwidth change (e.g., HT 20 <-> 40 MHz channel) during the + * lifetime of a BSS. + */ +enum nl80211_feature_flags { + NL80211_FEATURE_SK_TX_STATUS = 1 << 0, + NL80211_FEATURE_HT_IBSS = 1 << 1, + NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, + NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, + NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, + NL80211_FEATURE_SAE = 1 << 5, + NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, + NL80211_FEATURE_SCAN_FLUSH = 1 << 7, + NL80211_FEATURE_AP_SCAN = 1 << 8, + NL80211_FEATURE_VIF_TXPOWER = 1 << 9, + NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, + NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, + NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, + /* bit 13 is reserved */ + NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14, + NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15, + NL80211_FEATURE_USERSPACE_MPM = 1 << 16, + NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 1 << 18, +}; + +/** + * enum nl80211_probe_resp_offload_support_attr - optional supported + * protocols for probe-response offloading by the driver/FW. + * To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute. + * Each enum value represents a bit in the bitmap of supported + * protocols. Typically a subset of probe-requests belonging to a + * supported protocol will be excluded from offload and uploaded + * to the host. + * + * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS: Support for WPS ver. 1 + * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2: Support for WPS ver. 2 + * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P: Support for P2P + * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U: Support for 802.11u + */ +enum nl80211_probe_resp_offload_support_attr { + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 1<<0, + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 1<<1, + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 1<<2, + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3, +}; + +/** + * enum nl80211_connect_failed_reason - connection request failed reasons + * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be + * handled by the AP is reached. + * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Connection request is rejected due to ACL. + */ +enum nl80211_connect_failed_reason { + NL80211_CONN_FAIL_MAX_CLIENTS, + NL80211_CONN_FAIL_BLOCKED_CLIENT, +}; + +/** + * enum nl80211_scan_flags - scan request control flags + * + * Scan request control flags are used to control the handling + * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN + * requests. + * + * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority + * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning + * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured + * as AP and the beaconing has already been configured. This attribute is + * dangerous because will destroy stations performance as a lot of frames + * will be lost while scanning off-channel, therefore it must be used only + * when really needed + */ +enum nl80211_scan_flags { + NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, + NL80211_SCAN_FLAG_FLUSH = 1<<1, + NL80211_SCAN_FLAG_AP = 1<<2, +}; + +/** + * enum nl80211_acl_policy - access control policy + * + * Access control policy is applied on a MAC list set by + * %NL80211_CMD_START_AP and %NL80211_CMD_SET_MAC_ACL, to + * be used with %NL80211_ATTR_ACL_POLICY. + * + * @NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED: Deny stations which are + * listed in ACL, i.e. allow all the stations which are not listed + * in ACL to authenticate. + * @NL80211_ACL_POLICY_DENY_UNLESS_LISTED: Allow the stations which are listed + * in ACL, i.e. deny all the stations which are not listed in ACL. + */ +enum nl80211_acl_policy { + NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, + NL80211_ACL_POLICY_DENY_UNLESS_LISTED, +}; + +/** + * enum nl80211_radar_event - type of radar event for DFS operation + * + * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace + * about detected radars or success of the channel available check (CAC) + * + * @NL80211_RADAR_DETECTED: A radar pattern has been detected. The channel is + * now unusable. + * @NL80211_RADAR_CAC_FINISHED: Channel Availability Check has been finished, + * the channel is now available. + * @NL80211_RADAR_CAC_ABORTED: Channel Availability Check has been aborted, no + * change to the channel status. + * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is + * over, channel becomes usable. + */ +enum nl80211_radar_event { + NL80211_RADAR_DETECTED, + NL80211_RADAR_CAC_FINISHED, + NL80211_RADAR_CAC_ABORTED, + NL80211_RADAR_NOP_FINISHED, +}; + +/** + * enum nl80211_dfs_state - DFS states for channels + * + * Channel states used by the DFS code. + * + * @IEEE80211_DFS_USABLE: The channel can be used, but channel availability + * check (CAC) must be performed before using it for AP or IBSS. + * @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it + * is therefore marked as not available. + * @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available. + */ + +enum nl80211_dfs_state { + NL80211_DFS_USABLE, + NL80211_DFS_UNAVAILABLE, + NL80211_DFS_AVAILABLE, +}; + +/** + * enum enum nl80211_protocol_features - nl80211 protocol features + * @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting + * wiphy dumps (if requested by the application with the attribute + * %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the + * wiphy dump by %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFINDEX or + * %NL80211_ATTR_WDEV. + */ +enum nl80211_protocol_features { + NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1 << 0, +}; + +/** + * enum nl80211_crit_proto_id - nl80211 critical protocol identifiers + * + * @NL80211_CRIT_PROTO_UNSPEC: protocol unspecified. + * @NL80211_CRIT_PROTO_DHCP: BOOTP or DHCPv6 protocol. + * @NL80211_CRIT_PROTO_EAPOL: EAPOL protocol. + * @NL80211_CRIT_PROTO_APIPA: APIPA protocol. + * @NUM_NL80211_CRIT_PROTO: must be kept last. + */ +enum nl80211_crit_proto_id { + NL80211_CRIT_PROTO_UNSPEC, + NL80211_CRIT_PROTO_DHCP, + NL80211_CRIT_PROTO_EAPOL, + NL80211_CRIT_PROTO_APIPA, + /* add other protocols before this one */ + NUM_NL80211_CRIT_PROTO +}; + +/* maximum duration for critical protocol measures */ +#define NL80211_CRIT_PROTO_MAX_DURATION 5000 /* msec */ + +/* + * If this flag is unset, the lower 24 bits are an OUI, if set + * a Linux nl80211 vendor ID is used (no such IDs are allocated + * yet, so that's not valid so far) + */ +#define NL80211_VENDOR_ID_IS_LINUX 0x80000000 + +/** + * struct nl80211_vendor_cmd_info - vendor command data + * @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the + * value is a 24-bit OUI; if it is set then a separately allocated ID + * may be used, but no such IDs are allocated yet. New IDs should be + * added to this file when needed. + * @subcmd: sub-command ID for the command + */ +struct nl80211_vendor_cmd_info { + __u32 vendor_id; + __u32 subcmd; +}; + +/** + * enum nl80211_tdls_peer_capability - TDLS peer flags. + * + * Used by tdls_mgmt() to determine which conditional elements need + * to be added to TDLS Setup frames. + * + * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable. + * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable. + * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable. + */ +enum nl80211_tdls_peer_capability { + NL80211_TDLS_PEER_HT = 1<<0, + NL80211_TDLS_PEER_VHT = 1<<1, + NL80211_TDLS_PEER_WMM = 1<<2, +}; + +#define NL80211_KEY_LEN_PSK 32 +#define NL80211_KEY_LEN_PMK 32 +#define NL80211_KEY_REPLAY_CTR_LEN 8 +#define NL80211_KEY_LEN_PTK_KCK 16 +#define NL80211_KEY_LEN_PTK_KEK 16 + +/** + * enum nl80211_key_mgmt_offload_support - key management offload types + * + * Supported types of device key management offload. Allows device + * to advertise types of connections where it can offload establishment + * of temporal keys during initial RSN connection or after roaming. + * + * @NL80211_KEY_MGMT_OFFLOAD_SUPPORT_PSK: WPA/WPA2 PSK key management. + * The NL80211_ATTR_PSK attribute is passed in NL80211_CMD_CONNECT. + * @NL80211_KEY_MGMT_OFFLOAD_SUPPORT_FT_PSK: 802.11r (FT) PSK key + * management. The NL80211_ATTR_PSK attribute is passed in + * NL80211_CMD_CONNECT. + * @NL80211_KEY_MGMT_OFFLOAD_SUPPORT_PMKSA: Key management on already + * established PMKSA. The PMK will be passed using + * NL80211_CMD_KEY_MGMT_SET_PMK once it is known. + * @NL80211_KEY_MGMT_OFFLOAD_SUPPORT_FT_802_1X: 802.11r (FT) with + * 802.1X. The second 256 bits of the MSK is passed using + * NL80211_CMD_KEY_MGMT_SET_PMK once it is known. + */ +enum nl80211_key_mgmt_offload_support { + NL80211_KEY_MGMT_OFFLOAD_SUPPORT_PSK = 1 << 0, + NL80211_KEY_MGMT_OFFLOAD_SUPPORT_FT_PSK = 1 << 1, + NL80211_KEY_MGMT_OFFLOAD_SUPPORT_PMKSA = 1 << 2, + NL80211_KEY_MGMT_OFFLOAD_SUPPORT_FT_802_1X = 1 << 3, +}; + +/** + * enum nl80211_key_derive_offload_support - key derivation offload types + * + * Supported types of device key derivation used as part of key + * management offload. Assumes that GTK key derivation is supported + * by default for all supported key management offload types. + * + * @NL80211_KEY_DERIVE_OFFLOAD_SUPPORT_IGTK: IGTK key derivation. + * @NL80211_KEY_DERIVE_OFFLOAD_SUPPORT_SHA256: SHA-256 key derivation. + */ +enum nl80211_key_derive_offload_support { + NL80211_KEY_DERIVE_OFFLOAD_SUPPORT_IGTK = 1 << 0, + NL80211_KEY_DERIVE_OFFLOAD_SUPPORT_SHA256 = 1 << 1, +}; + +/** + * enum nl80211_authorization_status - key management offload status + * + * Status of key management offload. Provided as part of + * NL80211_CMD_AUTHORIZATION_EVENT. + * + * @NL80211_CONNECTED: Device did not successfully offload key + * management. Supplicant should expect to do the security + * exchange necessary to establish the temporal keys for the + * connection. + * @NL80211_AUTHORIZED: Device successfully offloaded key + * management and established temporal keys for the connection, + * signfiying that the initial connection, roaming, or PTK + * rekeying is complete. Supplicant should enter the + * authorized state for the port. + */ +enum nl80211_authorization_status { + NL80211_CONNECTED, + NL80211_AUTHORIZED, +}; + +#endif /* __LINUX_NL80211_H */ diff --git a/kernel_headers/linux/nubus.h b/kernel_headers/linux/nubus.h new file mode 100644 index 0000000..60b03e4 --- /dev/null +++ b/kernel_headers/linux/nubus.h @@ -0,0 +1,244 @@ +/* + nubus.h: various definitions and prototypes for NuBus drivers to use. + + Originally written by Alan Cox. + + Hacked to death by C. Scott Ananian and David Huggins-Daines. + + Some of the constants in here are from the corresponding + NetBSD/OpenBSD header file, by Allen Briggs. We figured out the + rest of them on our own. */ + +#ifndef LINUX_NUBUS_H +#define LINUX_NUBUS_H + +#include + +enum nubus_category { + NUBUS_CAT_BOARD = 0x0001, + NUBUS_CAT_DISPLAY = 0x0003, + NUBUS_CAT_NETWORK = 0x0004, + NUBUS_CAT_COMMUNICATIONS = 0x0006, + NUBUS_CAT_FONT = 0x0009, + NUBUS_CAT_CPU = 0x000A, + /* For lack of a better name */ + NUBUS_CAT_DUODOCK = 0x0020 +}; + +enum nubus_type_network { + NUBUS_TYPE_ETHERNET = 0x0001, + NUBUS_TYPE_RS232 = 0x0002 +}; + +enum nubus_type_display { + NUBUS_TYPE_VIDEO = 0x0001 +}; + +enum nubus_type_cpu { + NUBUS_TYPE_68020 = 0x0003, + NUBUS_TYPE_68030 = 0x0004, + NUBUS_TYPE_68040 = 0x0005 +}; + +/* Known tuples: (according to TattleTech and Slots) + * 68030 motherboards: <10,4,0,24> + * 68040 motherboards: <10,5,0,24> + * DuoDock Plus: <32,1,1,2> + * + * Toby Frame Buffer card: <3,1,1,1> + * RBV built-in video (IIci): <3,1,1,24> + * Valkyrie built-in video (Q630): <3,1,1,46> + * Macintosh Display Card: <3,1,1,25> + * Sonora built-in video (P460): <3,1,1,34> + * Jet framebuffer (DuoDock Plus): <3,1,1,41> + * + * SONIC comm-slot/on-board and DuoDock Ethernet: <4,1,1,272> + * SONIC LC-PDS Ethernet (Dayna, but like Apple 16-bit, sort of): <4,1,1,271> + * Apple SONIC LC-PDS Ethernet ("Apple Ethernet LC Twisted-Pair Card"): <4,1,0,281> + * Sonic Systems Ethernet A-Series Card: <4,1,268,256> + * Asante MacCon NuBus-A: <4,1,260,256> (alpha-1.0,1.1 revision) + * ROM on the above card: <2,1,0,0> + * Cabletron ethernet card: <4,1,1,265> + * Farallon ethernet card: <4,1,268,256> (identical to Sonic Systems card) + * Kinetics EtherPort IIN: <4,1,259,262> + * API Engineering EtherRun_LCa PDS enet card: <4,1,282,256> + * + * Add your devices to the list! You can obtain the "Slots" utility + * from Apple's FTP site at: + * ftp://dev.apple.com/devworld/Tool_Chest/Devices_-_Hardware/NuBus_Slot_Manager/ + * + * Alternately, TattleTech can be found at any Info-Mac mirror site. + * or from its distribution site: ftp://ftp.decismkr.com/dms + */ + +/* DrSW: Uniquely identifies the software interface to a board. This + is usually the one you want to look at when writing a driver. It's + not as useful as you think, though, because as we should know by + now (duh), "Apple Compatible" can mean a lot of things... */ + +/* Add known DrSW values here */ +enum nubus_drsw { + /* NUBUS_CAT_DISPLAY */ + NUBUS_DRSW_APPLE = 0x0001, + NUBUS_DRSW_APPLE_HIRES = 0x0013, /* MacII HiRes card driver */ + + /* NUBUS_CAT_NETWORK */ + NUBUS_DRSW_3COM = 0x0000, + NUBUS_DRSW_CABLETRON = 0x0001, + NUBUS_DRSW_SONIC_LC = 0x0001, + NUBUS_DRSW_KINETICS = 0x0103, + NUBUS_DRSW_ASANTE = 0x0104, + NUBUS_DRSW_TECHWORKS = 0x0109, + NUBUS_DRSW_DAYNA = 0x010b, + NUBUS_DRSW_FARALLON = 0x010c, + NUBUS_DRSW_APPLE_SN = 0x010f, + NUBUS_DRSW_DAYNA2 = 0x0115, + NUBUS_DRSW_FOCUS = 0x011a, + NUBUS_DRSW_ASANTE_CS = 0x011d, /* use asante SMC9194 driver */ + NUBUS_DRSW_DAYNA_LC = 0x011e, + + /* NUBUS_CAT_CPU */ + NUBUS_DRSW_NONE = 0x0000, +}; + +/* DrHW: Uniquely identifies the hardware interface to a board (or at + least, it should... some video cards are known to incorrectly + identify themselves as Toby cards) */ + +/* Add known DrHW values here */ +enum nubus_drhw { + /* NUBUS_CAT_DISPLAY */ + NUBUS_DRHW_APPLE_TFB = 0x0001, /* Toby frame buffer card */ + NUBUS_DRHW_APPLE_WVC = 0x0006, /* Apple Workstation Video Card */ + NUBUS_DRHW_SIGMA_CLRMAX = 0x0007, /* Sigma Design ColorMax */ + NUBUS_DRHW_APPLE_SE30 = 0x0009, /* Apple SE/30 video */ + NUBUS_DRHW_APPLE_HRVC = 0x0013, /* Mac II High-Res Video Card */ + NUBUS_DRHW_APPLE_PVC = 0x0017, /* Mac II Portrait Video Card */ + NUBUS_DRHW_APPLE_RBV1 = 0x0018, /* IIci RBV video */ + NUBUS_DRHW_APPLE_MDC = 0x0019, /* Macintosh Display Card */ + NUBUS_DRHW_APPLE_SONORA = 0x0022, /* Sonora built-in video */ + NUBUS_DRHW_APPLE_24AC = 0x002b, /* Mac 24AC Video Card */ + NUBUS_DRHW_APPLE_VALKYRIE = 0x002e, + NUBUS_DRHW_APPLE_JET = 0x0029, /* Jet framebuffer (DuoDock) */ + NUBUS_DRHW_SMAC_GFX = 0x0105, /* SuperMac GFX */ + NUBUS_DRHW_RASTER_CB264 = 0x013B, /* RasterOps ColorBoard 264 */ + NUBUS_DRHW_MICRON_XCEED = 0x0146, /* Micron Exceed color */ + NUBUS_DRHW_RDIUS_GSC = 0x0153, /* Radius GS/C */ + NUBUS_DRHW_SMAC_SPEC8 = 0x017B, /* SuperMac Spectrum/8 */ + NUBUS_DRHW_SMAC_SPEC24 = 0x017C, /* SuperMac Spectrum/24 */ + NUBUS_DRHW_RASTER_CB364 = 0x026F, /* RasterOps ColorBoard 364 */ + NUBUS_DRHW_RDIUS_DCGX = 0x027C, /* Radius DirectColor/GX */ + NUBUS_DRHW_RDIUS_PC8 = 0x0291, /* Radius PrecisionColor 8 */ + NUBUS_DRHW_LAPIS_PCS8 = 0x0292, /* Lapis ProColorServer 8 */ + NUBUS_DRHW_RASTER_24XLI = 0x02A0, /* RasterOps 8/24 XLi */ + NUBUS_DRHW_RASTER_PBPGT = 0x02A5, /* RasterOps PaintBoard Prism GT */ + NUBUS_DRHW_EMACH_FSX = 0x02AE, /* E-Machines Futura SX */ + NUBUS_DRHW_RASTER_24XLTV = 0x02B7, /* RasterOps 24XLTV */ + NUBUS_DRHW_SMAC_THUND24 = 0x02CB, /* SuperMac Thunder/24 */ + NUBUS_DRHW_SMAC_THUNDLGHT = 0x03D9, /* SuperMac ThunderLight */ + NUBUS_DRHW_RDIUS_PC24XP = 0x0406, /* Radius PrecisionColor 24Xp */ + NUBUS_DRHW_RDIUS_PC24X = 0x040A, /* Radius PrecisionColor 24X */ + NUBUS_DRHW_RDIUS_PC8XJ = 0x040B, /* Radius PrecisionColor 8XJ */ + + /* NUBUS_CAT_NETWORK */ + NUBUS_DRHW_INTERLAN = 0x0100, + NUBUS_DRHW_SMC9194 = 0x0101, + NUBUS_DRHW_KINETICS = 0x0106, + NUBUS_DRHW_CABLETRON = 0x0109, + NUBUS_DRHW_ASANTE_LC = 0x010f, + NUBUS_DRHW_SONIC = 0x0110, + NUBUS_DRHW_TECHWORKS = 0x0112, + NUBUS_DRHW_APPLE_SONIC_NB = 0x0118, + NUBUS_DRHW_APPLE_SONIC_LC = 0x0119, + NUBUS_DRHW_FOCUS = 0x011c, + NUBUS_DRHW_SONNET = 0x011d, +}; + +/* Resource IDs: These are the identifiers for the various weird and + wonderful tidbits of information that may or may not reside in the + NuBus ROM directory. */ +enum nubus_res_id { + NUBUS_RESID_TYPE = 0x0001, + NUBUS_RESID_NAME = 0x0002, + NUBUS_RESID_ICON = 0x0003, + NUBUS_RESID_DRVRDIR = 0x0004, + NUBUS_RESID_LOADREC = 0x0005, + NUBUS_RESID_BOOTREC = 0x0006, + NUBUS_RESID_FLAGS = 0x0007, + NUBUS_RESID_HWDEVID = 0x0008, + NUBUS_RESID_MINOR_BASEOS = 0x000a, + NUBUS_RESID_MINOR_LENGTH = 0x000b, + NUBUS_RESID_MAJOR_BASEOS = 0x000c, + NUBUS_RESID_MAJOR_LENGTH = 0x000d, + NUBUS_RESID_CICN = 0x000f, + NUBUS_RESID_ICL8 = 0x0010, + NUBUS_RESID_ICL4 = 0x0011, +}; + +/* Category-specific resources. */ +enum nubus_board_res_id { + NUBUS_RESID_BOARDID = 0x0020, + NUBUS_RESID_PRAMINITDATA = 0x0021, + NUBUS_RESID_PRIMARYINIT = 0x0022, + NUBUS_RESID_TIMEOUTCONST = 0x0023, + NUBUS_RESID_VENDORINFO = 0x0024, + NUBUS_RESID_BOARDFLAGS = 0x0025, + NUBUS_RESID_SECONDINIT = 0x0026, + + /* Not sure why Apple put these next two in here */ + NUBUS_RESID_VIDNAMES = 0x0041, + NUBUS_RESID_VIDMODES = 0x007e +}; + +/* Fields within the vendor info directory */ +enum nubus_vendor_res_id { + NUBUS_RESID_VEND_ID = 0x0001, + NUBUS_RESID_VEND_SERIAL = 0x0002, + NUBUS_RESID_VEND_REV = 0x0003, + NUBUS_RESID_VEND_PART = 0x0004, + NUBUS_RESID_VEND_DATE = 0x0005 +}; + +enum nubus_net_res_id { + NUBUS_RESID_MAC_ADDRESS = 0x0080 +}; + +enum nubus_cpu_res_id { + NUBUS_RESID_MEMINFO = 0x0081, + NUBUS_RESID_ROMINFO = 0x0082 +}; + +enum nubus_display_res_id { + NUBUS_RESID_GAMMADIR = 0x0040, + NUBUS_RESID_FIRSTMODE = 0x0080, + NUBUS_RESID_SECONDMODE = 0x0081, + NUBUS_RESID_THIRDMODE = 0x0082, + NUBUS_RESID_FOURTHMODE = 0x0083, + NUBUS_RESID_FIFTHMODE = 0x0084, + NUBUS_RESID_SIXTHMODE = 0x0085 +}; + +struct nubus_dir +{ + unsigned char *base; + unsigned char *ptr; + int done; + int mask; +}; + +struct nubus_dirent +{ + unsigned char *base; + unsigned char type; + __u32 data; /* Actually 24bits used */ + int mask; +}; + + +/* We'd like to get rid of this eventually. Only daynaport.c uses it now. */ +static __inline__ void *nubus_slot_addr(int slot) +{ + return (void *)(0xF0000000|(slot<<24)); +} + +#endif /* LINUX_NUBUS_H */ diff --git a/kernel_headers/linux/nvram.h b/kernel_headers/linux/nvram.h new file mode 100644 index 0000000..a05d28a --- /dev/null +++ b/kernel_headers/linux/nvram.h @@ -0,0 +1,16 @@ +#ifndef _LINUX_NVRAM_H +#define _LINUX_NVRAM_H + +#include + +/* /dev/nvram ioctls */ +#define NVRAM_INIT _IO('p', 0x40) /* initialize NVRAM and set checksum */ +#define NVRAM_SETCKS _IO('p', 0x41) /* recalculate checksum */ + +/* for all current systems, this is where NVRAM starts */ +#define NVRAM_FIRST_BYTE 14 +/* all these functions expect an NVRAM offset, not an absolute */ +#define NVRAM_OFFSET(x) ((x)-NVRAM_FIRST_BYTE) + + +#endif /* _LINUX_NVRAM_H */ diff --git a/kernel_headers/linux/omap3isp.h b/kernel_headers/linux/omap3isp.h new file mode 100644 index 0000000..cb3e8a5 --- /dev/null +++ b/kernel_headers/linux/omap3isp.h @@ -0,0 +1,646 @@ +/* + * omap3isp.h + * + * TI OMAP3 ISP - User-space API + * + * Copyright (C) 2010 Nokia Corporation + * Copyright (C) 2009 Texas Instruments, Inc. + * + * Contacts: Laurent Pinchart + * Sakari Ailus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef OMAP3_ISP_USER_H +#define OMAP3_ISP_USER_H + +#include +#include + +/* + * Private IOCTLs + * + * VIDIOC_OMAP3ISP_CCDC_CFG: Set CCDC configuration + * VIDIOC_OMAP3ISP_PRV_CFG: Set preview engine configuration + * VIDIOC_OMAP3ISP_AEWB_CFG: Set AEWB module configuration + * VIDIOC_OMAP3ISP_HIST_CFG: Set histogram module configuration + * VIDIOC_OMAP3ISP_AF_CFG: Set auto-focus module configuration + * VIDIOC_OMAP3ISP_STAT_REQ: Read statistics (AEWB/AF/histogram) data + * VIDIOC_OMAP3ISP_STAT_EN: Enable/disable a statistics module + */ + +#define VIDIOC_OMAP3ISP_CCDC_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct omap3isp_ccdc_update_config) +#define VIDIOC_OMAP3ISP_PRV_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct omap3isp_prev_update_config) +#define VIDIOC_OMAP3ISP_AEWB_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct omap3isp_h3a_aewb_config) +#define VIDIOC_OMAP3ISP_HIST_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct omap3isp_hist_config) +#define VIDIOC_OMAP3ISP_AF_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct omap3isp_h3a_af_config) +#define VIDIOC_OMAP3ISP_STAT_REQ \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct omap3isp_stat_data) +#define VIDIOC_OMAP3ISP_STAT_EN \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 7, unsigned long) + +/* + * Events + * + * V4L2_EVENT_OMAP3ISP_AEWB: AEWB statistics data ready + * V4L2_EVENT_OMAP3ISP_AF: AF statistics data ready + * V4L2_EVENT_OMAP3ISP_HIST: Histogram statistics data ready + */ + +#define V4L2_EVENT_OMAP3ISP_CLASS (V4L2_EVENT_PRIVATE_START | 0x100) +#define V4L2_EVENT_OMAP3ISP_AEWB (V4L2_EVENT_OMAP3ISP_CLASS | 0x1) +#define V4L2_EVENT_OMAP3ISP_AF (V4L2_EVENT_OMAP3ISP_CLASS | 0x2) +#define V4L2_EVENT_OMAP3ISP_HIST (V4L2_EVENT_OMAP3ISP_CLASS | 0x3) + +struct omap3isp_stat_event_status { + __u32 frame_number; + __u16 config_counter; + __u8 buf_err; +}; + +/* AE/AWB related structures and flags*/ + +/* H3A Range Constants */ +#define OMAP3ISP_AEWB_MAX_SATURATION_LIM 1023 +#define OMAP3ISP_AEWB_MIN_WIN_H 2 +#define OMAP3ISP_AEWB_MAX_WIN_H 256 +#define OMAP3ISP_AEWB_MIN_WIN_W 6 +#define OMAP3ISP_AEWB_MAX_WIN_W 256 +#define OMAP3ISP_AEWB_MIN_WINVC 1 +#define OMAP3ISP_AEWB_MIN_WINHC 1 +#define OMAP3ISP_AEWB_MAX_WINVC 128 +#define OMAP3ISP_AEWB_MAX_WINHC 36 +#define OMAP3ISP_AEWB_MAX_WINSTART 4095 +#define OMAP3ISP_AEWB_MIN_SUB_INC 2 +#define OMAP3ISP_AEWB_MAX_SUB_INC 32 +#define OMAP3ISP_AEWB_MAX_BUF_SIZE 83600 + +#define OMAP3ISP_AF_IIRSH_MIN 0 +#define OMAP3ISP_AF_IIRSH_MAX 4095 +#define OMAP3ISP_AF_PAXEL_HORIZONTAL_COUNT_MIN 1 +#define OMAP3ISP_AF_PAXEL_HORIZONTAL_COUNT_MAX 36 +#define OMAP3ISP_AF_PAXEL_VERTICAL_COUNT_MIN 1 +#define OMAP3ISP_AF_PAXEL_VERTICAL_COUNT_MAX 128 +#define OMAP3ISP_AF_PAXEL_INCREMENT_MIN 2 +#define OMAP3ISP_AF_PAXEL_INCREMENT_MAX 32 +#define OMAP3ISP_AF_PAXEL_HEIGHT_MIN 2 +#define OMAP3ISP_AF_PAXEL_HEIGHT_MAX 256 +#define OMAP3ISP_AF_PAXEL_WIDTH_MIN 16 +#define OMAP3ISP_AF_PAXEL_WIDTH_MAX 256 +#define OMAP3ISP_AF_PAXEL_HZSTART_MIN 1 +#define OMAP3ISP_AF_PAXEL_HZSTART_MAX 4095 +#define OMAP3ISP_AF_PAXEL_VTSTART_MIN 0 +#define OMAP3ISP_AF_PAXEL_VTSTART_MAX 4095 +#define OMAP3ISP_AF_THRESHOLD_MAX 255 +#define OMAP3ISP_AF_COEF_MAX 4095 +#define OMAP3ISP_AF_PAXEL_SIZE 48 +#define OMAP3ISP_AF_MAX_BUF_SIZE 221184 + +/** + * struct omap3isp_h3a_aewb_config - AE AWB configuration reset values + * saturation_limit: Saturation limit. + * @win_height: Window Height. Range 2 - 256, even values only. + * @win_width: Window Width. Range 6 - 256, even values only. + * @ver_win_count: Vertical Window Count. Range 1 - 128. + * @hor_win_count: Horizontal Window Count. Range 1 - 36. + * @ver_win_start: Vertical Window Start. Range 0 - 4095. + * @hor_win_start: Horizontal Window Start. Range 0 - 4095. + * @blk_ver_win_start: Black Vertical Windows Start. Range 0 - 4095. + * @blk_win_height: Black Window Height. Range 2 - 256, even values only. + * @subsample_ver_inc: Subsample Vertical points increment Range 2 - 32, even + * values only. + * @subsample_hor_inc: Subsample Horizontal points increment Range 2 - 32, even + * values only. + * @alaw_enable: AEW ALAW EN flag. + */ +struct omap3isp_h3a_aewb_config { + /* + * Common fields. + * They should be the first ones and must be in the same order as in + * ispstat_generic_config struct. + */ + __u32 buf_size; + __u16 config_counter; + + /* Private fields */ + __u16 saturation_limit; + __u16 win_height; + __u16 win_width; + __u16 ver_win_count; + __u16 hor_win_count; + __u16 ver_win_start; + __u16 hor_win_start; + __u16 blk_ver_win_start; + __u16 blk_win_height; + __u16 subsample_ver_inc; + __u16 subsample_hor_inc; + __u8 alaw_enable; +}; + +/** + * struct omap3isp_stat_data - Statistic data sent to or received from user + * @ts: Timestamp of returned framestats. + * @buf: Pointer to pass to user. + * @frame_number: Frame number of requested stats. + * @cur_frame: Current frame number being processed. + * @config_counter: Number of the configuration associated with the data. + */ +struct omap3isp_stat_data { + struct timeval ts; + void *buf; + __u32 buf_size; + __u16 frame_number; + __u16 cur_frame; + __u16 config_counter; +}; + + +/* Histogram related structs */ + +/* Flags for number of bins */ +#define OMAP3ISP_HIST_BINS_32 0 +#define OMAP3ISP_HIST_BINS_64 1 +#define OMAP3ISP_HIST_BINS_128 2 +#define OMAP3ISP_HIST_BINS_256 3 + +/* Number of bins * 4 colors * 4-bytes word */ +#define OMAP3ISP_HIST_MEM_SIZE_BINS(n) ((1 << ((n)+5))*4*4) + +#define OMAP3ISP_HIST_MEM_SIZE 1024 +#define OMAP3ISP_HIST_MIN_REGIONS 1 +#define OMAP3ISP_HIST_MAX_REGIONS 4 +#define OMAP3ISP_HIST_MAX_WB_GAIN 255 +#define OMAP3ISP_HIST_MIN_WB_GAIN 0 +#define OMAP3ISP_HIST_MAX_BIT_WIDTH 14 +#define OMAP3ISP_HIST_MIN_BIT_WIDTH 8 +#define OMAP3ISP_HIST_MAX_WG 4 +#define OMAP3ISP_HIST_MAX_BUF_SIZE 4096 + +/* Source */ +#define OMAP3ISP_HIST_SOURCE_CCDC 0 +#define OMAP3ISP_HIST_SOURCE_MEM 1 + +/* CFA pattern */ +#define OMAP3ISP_HIST_CFA_BAYER 0 +#define OMAP3ISP_HIST_CFA_FOVEONX3 1 + +struct omap3isp_hist_region { + __u16 h_start; + __u16 h_end; + __u16 v_start; + __u16 v_end; +}; + +struct omap3isp_hist_config { + /* + * Common fields. + * They should be the first ones and must be in the same order as in + * ispstat_generic_config struct. + */ + __u32 buf_size; + __u16 config_counter; + + __u8 num_acc_frames; /* Num of image frames to be processed and + accumulated for each histogram frame */ + __u16 hist_bins; /* number of bins: 32, 64, 128, or 256 */ + __u8 cfa; /* BAYER or FOVEON X3 */ + __u8 wg[OMAP3ISP_HIST_MAX_WG]; /* White Balance Gain */ + __u8 num_regions; /* number of regions to be configured */ + struct omap3isp_hist_region region[OMAP3ISP_HIST_MAX_REGIONS]; +}; + +/* Auto Focus related structs */ + +#define OMAP3ISP_AF_NUM_COEF 11 + +enum omap3isp_h3a_af_fvmode { + OMAP3ISP_AF_MODE_SUMMED = 0, + OMAP3ISP_AF_MODE_PEAK = 1 +}; + +/* Red, Green, and blue pixel location in the AF windows */ +enum omap3isp_h3a_af_rgbpos { + OMAP3ISP_AF_GR_GB_BAYER = 0, /* GR and GB as Bayer pattern */ + OMAP3ISP_AF_RG_GB_BAYER = 1, /* RG and GB as Bayer pattern */ + OMAP3ISP_AF_GR_BG_BAYER = 2, /* GR and BG as Bayer pattern */ + OMAP3ISP_AF_RG_BG_BAYER = 3, /* RG and BG as Bayer pattern */ + OMAP3ISP_AF_GG_RB_CUSTOM = 4, /* GG and RB as custom pattern */ + OMAP3ISP_AF_RB_GG_CUSTOM = 5 /* RB and GG as custom pattern */ +}; + +/* Contains the information regarding the Horizontal Median Filter */ +struct omap3isp_h3a_af_hmf { + __u8 enable; /* Status of Horizontal Median Filter */ + __u8 threshold; /* Threshold Value for Horizontal Median Filter */ +}; + +/* Contains the information regarding the IIR Filters */ +struct omap3isp_h3a_af_iir { + __u16 h_start; /* IIR horizontal start */ + __u16 coeff_set0[OMAP3ISP_AF_NUM_COEF]; /* Filter coefficient, set 0 */ + __u16 coeff_set1[OMAP3ISP_AF_NUM_COEF]; /* Filter coefficient, set 1 */ +}; + +/* Contains the information regarding the Paxels Structure in AF Engine */ +struct omap3isp_h3a_af_paxel { + __u16 h_start; /* Horizontal Start Position */ + __u16 v_start; /* Vertical Start Position */ + __u8 width; /* Width of the Paxel */ + __u8 height; /* Height of the Paxel */ + __u8 h_cnt; /* Horizontal Count */ + __u8 v_cnt; /* vertical Count */ + __u8 line_inc; /* Line Increment */ +}; + +/* Contains the parameters required for hardware set up of AF Engine */ +struct omap3isp_h3a_af_config { + /* + * Common fields. + * They should be the first ones and must be in the same order as in + * ispstat_generic_config struct. + */ + __u32 buf_size; + __u16 config_counter; + + struct omap3isp_h3a_af_hmf hmf; /* HMF configurations */ + struct omap3isp_h3a_af_iir iir; /* IIR filter configurations */ + struct omap3isp_h3a_af_paxel paxel; /* Paxel parameters */ + enum omap3isp_h3a_af_rgbpos rgb_pos; /* RGB Positions */ + enum omap3isp_h3a_af_fvmode fvmode; /* Accumulator mode */ + __u8 alaw_enable; /* AF ALAW status */ +}; + +/* ISP CCDC structs */ + +/* Abstraction layer CCDC configurations */ +#define OMAP3ISP_CCDC_ALAW (1 << 0) +#define OMAP3ISP_CCDC_LPF (1 << 1) +#define OMAP3ISP_CCDC_BLCLAMP (1 << 2) +#define OMAP3ISP_CCDC_BCOMP (1 << 3) +#define OMAP3ISP_CCDC_FPC (1 << 4) +#define OMAP3ISP_CCDC_CULL (1 << 5) +#define OMAP3ISP_CCDC_CONFIG_LSC (1 << 7) +#define OMAP3ISP_CCDC_TBL_LSC (1 << 8) + +#define OMAP3ISP_RGB_MAX 3 + +/* Enumeration constants for Alaw input width */ +enum omap3isp_alaw_ipwidth { + OMAP3ISP_ALAW_BIT12_3 = 0x3, + OMAP3ISP_ALAW_BIT11_2 = 0x4, + OMAP3ISP_ALAW_BIT10_1 = 0x5, + OMAP3ISP_ALAW_BIT9_0 = 0x6 +}; + +/** + * struct omap3isp_ccdc_lsc_config - LSC configuration + * @offset: Table Offset of the gain table. + * @gain_mode_n: Vertical dimension of a paxel in LSC configuration. + * @gain_mode_m: Horizontal dimension of a paxel in LSC configuration. + * @gain_format: Gain table format. + * @fmtsph: Start pixel horizontal from start of the HS sync pulse. + * @fmtlnh: Number of pixels in horizontal direction to use for the data + * reformatter. + * @fmtslv: Start line from start of VS sync pulse for the data reformatter. + * @fmtlnv: Number of lines in vertical direction for the data reformatter. + * @initial_x: X position, in pixels, of the first active pixel in reference + * to the first active paxel. Must be an even number. + * @initial_y: Y position, in pixels, of the first active pixel in reference + * to the first active paxel. Must be an even number. + * @size: Size of LSC gain table. Filled when loaded from userspace. + */ +struct omap3isp_ccdc_lsc_config { + __u16 offset; + __u8 gain_mode_n; + __u8 gain_mode_m; + __u8 gain_format; + __u16 fmtsph; + __u16 fmtlnh; + __u16 fmtslv; + __u16 fmtlnv; + __u8 initial_x; + __u8 initial_y; + __u32 size; +}; + +/** + * struct omap3isp_ccdc_bclamp - Optical & Digital black clamp subtract + * @obgain: Optical black average gain. + * @obstpixel: Start Pixel w.r.t. HS pulse in Optical black sample. + * @oblines: Optical Black Sample lines. + * @oblen: Optical Black Sample Length. + * @dcsubval: Digital Black Clamp subtract value. + */ +struct omap3isp_ccdc_bclamp { + __u8 obgain; + __u8 obstpixel; + __u8 oblines; + __u8 oblen; + __u16 dcsubval; +}; + +/** + * struct omap3isp_ccdc_fpc - Faulty Pixels Correction + * @fpnum: Number of faulty pixels to be corrected in the frame. + * @fpcaddr: Memory address of the FPC Table + */ +struct omap3isp_ccdc_fpc { + __u16 fpnum; + __u32 fpcaddr; +}; + +/** + * struct omap3isp_ccdc_blcomp - Black Level Compensation parameters + * @b_mg: B/Mg pixels. 2's complement. -128 to +127. + * @gb_g: Gb/G pixels. 2's complement. -128 to +127. + * @gr_cy: Gr/Cy pixels. 2's complement. -128 to +127. + * @r_ye: R/Ye pixels. 2's complement. -128 to +127. + */ +struct omap3isp_ccdc_blcomp { + __u8 b_mg; + __u8 gb_g; + __u8 gr_cy; + __u8 r_ye; +}; + +/** + * omap3isp_ccdc_culling - Culling parameters + * @v_pattern: Vertical culling pattern. + * @h_odd: Horizontal Culling pattern for odd lines. + * @h_even: Horizontal Culling pattern for even lines. + */ +struct omap3isp_ccdc_culling { + __u8 v_pattern; + __u16 h_odd; + __u16 h_even; +}; + +/** + * omap3isp_ccdc_update_config - CCDC configuration + * @update: Specifies which CCDC registers should be updated. + * @flag: Specifies which CCDC functions should be enabled. + * @alawip: Enable/Disable A-Law compression. + * @bclamp: Black clamp control register. + * @blcomp: Black level compensation value for RGrGbB Pixels. 2's complement. + * @fpc: Number of faulty pixels corrected in the frame, address of FPC table. + * @cull: Cull control register. + * @lsc: Pointer to LSC gain table. + */ +struct omap3isp_ccdc_update_config { + __u16 update; + __u16 flag; + enum omap3isp_alaw_ipwidth alawip; + struct omap3isp_ccdc_bclamp *bclamp; + struct omap3isp_ccdc_blcomp *blcomp; + struct omap3isp_ccdc_fpc *fpc; + struct omap3isp_ccdc_lsc_config *lsc_cfg; + struct omap3isp_ccdc_culling *cull; + __u8 *lsc; +}; + +/* Preview configurations */ +#define OMAP3ISP_PREV_LUMAENH (1 << 0) +#define OMAP3ISP_PREV_INVALAW (1 << 1) +#define OMAP3ISP_PREV_HRZ_MED (1 << 2) +#define OMAP3ISP_PREV_CFA (1 << 3) +#define OMAP3ISP_PREV_CHROMA_SUPP (1 << 4) +#define OMAP3ISP_PREV_WB (1 << 5) +#define OMAP3ISP_PREV_BLKADJ (1 << 6) +#define OMAP3ISP_PREV_RGB2RGB (1 << 7) +#define OMAP3ISP_PREV_COLOR_CONV (1 << 8) +#define OMAP3ISP_PREV_YC_LIMIT (1 << 9) +#define OMAP3ISP_PREV_DEFECT_COR (1 << 10) +/* Bit 11 was OMAP3ISP_PREV_GAMMABYPASS, now merged with OMAP3ISP_PREV_GAMMA */ +#define OMAP3ISP_PREV_DRK_FRM_CAPTURE (1 << 12) +#define OMAP3ISP_PREV_DRK_FRM_SUBTRACT (1 << 13) +#define OMAP3ISP_PREV_LENS_SHADING (1 << 14) +#define OMAP3ISP_PREV_NF (1 << 15) +#define OMAP3ISP_PREV_GAMMA (1 << 16) + +#define OMAP3ISP_PREV_NF_TBL_SIZE 64 +#define OMAP3ISP_PREV_CFA_TBL_SIZE 576 +#define OMAP3ISP_PREV_CFA_BLK_SIZE (OMAP3ISP_PREV_CFA_TBL_SIZE / 4) +#define OMAP3ISP_PREV_GAMMA_TBL_SIZE 1024 +#define OMAP3ISP_PREV_YENH_TBL_SIZE 128 + +#define OMAP3ISP_PREV_DETECT_CORRECT_CHANNELS 4 + +/** + * struct omap3isp_prev_hmed - Horizontal Median Filter + * @odddist: Distance between consecutive pixels of same color in the odd line. + * @evendist: Distance between consecutive pixels of same color in the even + * line. + * @thres: Horizontal median filter threshold. + */ +struct omap3isp_prev_hmed { + __u8 odddist; + __u8 evendist; + __u8 thres; +}; + +/* + * Enumeration for CFA Formats supported by preview + */ +enum omap3isp_cfa_fmt { + OMAP3ISP_CFAFMT_BAYER, + OMAP3ISP_CFAFMT_SONYVGA, + OMAP3ISP_CFAFMT_RGBFOVEON, + OMAP3ISP_CFAFMT_DNSPL, + OMAP3ISP_CFAFMT_HONEYCOMB, + OMAP3ISP_CFAFMT_RRGGBBFOVEON +}; + +/** + * struct omap3isp_prev_cfa - CFA Interpolation + * @format: CFA Format Enum value supported by preview. + * @gradthrs_vert: CFA Gradient Threshold - Vertical. + * @gradthrs_horz: CFA Gradient Threshold - Horizontal. + * @table: Pointer to the CFA table. + */ +struct omap3isp_prev_cfa { + enum omap3isp_cfa_fmt format; + __u8 gradthrs_vert; + __u8 gradthrs_horz; + __u32 table[4][OMAP3ISP_PREV_CFA_BLK_SIZE]; +}; + +/** + * struct omap3isp_prev_csup - Chrominance Suppression + * @gain: Gain. + * @thres: Threshold. + * @hypf_en: Flag to enable/disable the High Pass Filter. + */ +struct omap3isp_prev_csup { + __u8 gain; + __u8 thres; + __u8 hypf_en; +}; + +/** + * struct omap3isp_prev_wbal - White Balance + * @dgain: Digital gain (U10Q8). + * @coef3: White balance gain - COEF 3 (U8Q5). + * @coef2: White balance gain - COEF 2 (U8Q5). + * @coef1: White balance gain - COEF 1 (U8Q5). + * @coef0: White balance gain - COEF 0 (U8Q5). + */ +struct omap3isp_prev_wbal { + __u16 dgain; + __u8 coef3; + __u8 coef2; + __u8 coef1; + __u8 coef0; +}; + +/** + * struct omap3isp_prev_blkadj - Black Level Adjustment + * @red: Black level offset adjustment for Red in 2's complement format + * @green: Black level offset adjustment for Green in 2's complement format + * @blue: Black level offset adjustment for Blue in 2's complement format + */ +struct omap3isp_prev_blkadj { + /*Black level offset adjustment for Red in 2's complement format */ + __u8 red; + /*Black level offset adjustment for Green in 2's complement format */ + __u8 green; + /* Black level offset adjustment for Blue in 2's complement format */ + __u8 blue; +}; + +/** + * struct omap3isp_prev_rgbtorgb - RGB to RGB Blending + * @matrix: Blending values(S12Q8 format) + * [RR] [GR] [BR] + * [RG] [GG] [BG] + * [RB] [GB] [BB] + * @offset: Blending offset value for R,G,B in 2's complement integer format. + */ +struct omap3isp_prev_rgbtorgb { + __u16 matrix[OMAP3ISP_RGB_MAX][OMAP3ISP_RGB_MAX]; + __u16 offset[OMAP3ISP_RGB_MAX]; +}; + +/** + * struct omap3isp_prev_csc - Color Space Conversion from RGB-YCbYCr + * @matrix: Color space conversion coefficients(S10Q8) + * [CSCRY] [CSCGY] [CSCBY] + * [CSCRCB] [CSCGCB] [CSCBCB] + * [CSCRCR] [CSCGCR] [CSCBCR] + * @offset: CSC offset values for Y offset, CB offset and CR offset respectively + */ +struct omap3isp_prev_csc { + __u16 matrix[OMAP3ISP_RGB_MAX][OMAP3ISP_RGB_MAX]; + __s16 offset[OMAP3ISP_RGB_MAX]; +}; + +/** + * struct omap3isp_prev_yclimit - Y, C Value Limit + * @minC: Minimum C value + * @maxC: Maximum C value + * @minY: Minimum Y value + * @maxY: Maximum Y value + */ +struct omap3isp_prev_yclimit { + __u8 minC; + __u8 maxC; + __u8 minY; + __u8 maxY; +}; + +/** + * struct omap3isp_prev_dcor - Defect correction + * @couplet_mode_en: Flag to enable or disable the couplet dc Correction in NF + * @detect_correct: Thresholds for correction bit 0:10 detect 16:25 correct + */ +struct omap3isp_prev_dcor { + __u8 couplet_mode_en; + __u32 detect_correct[OMAP3ISP_PREV_DETECT_CORRECT_CHANNELS]; +}; + +/** + * struct omap3isp_prev_nf - Noise Filter + * @spread: Spread value to be used in Noise Filter + * @table: Pointer to the Noise Filter table + */ +struct omap3isp_prev_nf { + __u8 spread; + __u32 table[OMAP3ISP_PREV_NF_TBL_SIZE]; +}; + +/** + * struct omap3isp_prev_gtables - Gamma correction tables + * @red: Array for red gamma table. + * @green: Array for green gamma table. + * @blue: Array for blue gamma table. + */ +struct omap3isp_prev_gtables { + __u32 red[OMAP3ISP_PREV_GAMMA_TBL_SIZE]; + __u32 green[OMAP3ISP_PREV_GAMMA_TBL_SIZE]; + __u32 blue[OMAP3ISP_PREV_GAMMA_TBL_SIZE]; +}; + +/** + * struct omap3isp_prev_luma - Luma enhancement + * @table: Array for luma enhancement table. + */ +struct omap3isp_prev_luma { + __u32 table[OMAP3ISP_PREV_YENH_TBL_SIZE]; +}; + +/** + * struct omap3isp_prev_update_config - Preview engine configuration (user) + * @update: Specifies which ISP Preview registers should be updated. + * @flag: Specifies which ISP Preview functions should be enabled. + * @shading_shift: 3bit value of shift used in shading compensation. + * @luma: Pointer to luma enhancement structure. + * @hmed: Pointer to structure containing the odd and even distance. + * between the pixels in the image along with the filter threshold. + * @cfa: Pointer to structure containing the CFA interpolation table, CFA. + * format in the image, vertical and horizontal gradient threshold. + * @csup: Pointer to Structure for Chrominance Suppression coefficients. + * @wbal: Pointer to structure for White Balance. + * @blkadj: Pointer to structure for Black Adjustment. + * @rgb2rgb: Pointer to structure for RGB to RGB Blending. + * @csc: Pointer to structure for Color Space Conversion from RGB-YCbYCr. + * @yclimit: Pointer to structure for Y, C Value Limit. + * @dcor: Pointer to structure for defect correction. + * @nf: Pointer to structure for Noise Filter + * @gamma: Pointer to gamma structure. + */ +struct omap3isp_prev_update_config { + __u32 update; + __u32 flag; + __u32 shading_shift; + struct omap3isp_prev_luma *luma; + struct omap3isp_prev_hmed *hmed; + struct omap3isp_prev_cfa *cfa; + struct omap3isp_prev_csup *csup; + struct omap3isp_prev_wbal *wbal; + struct omap3isp_prev_blkadj *blkadj; + struct omap3isp_prev_rgbtorgb *rgb2rgb; + struct omap3isp_prev_csc *csc; + struct omap3isp_prev_yclimit *yclimit; + struct omap3isp_prev_dcor *dcor; + struct omap3isp_prev_nf *nf; + struct omap3isp_prev_gtables *gamma; +}; + +#endif /* OMAP3_ISP_USER_H */ diff --git a/kernel_headers/linux/omapfb.h b/kernel_headers/linux/omapfb.h new file mode 100644 index 0000000..9563f61 --- /dev/null +++ b/kernel_headers/linux/omapfb.h @@ -0,0 +1,222 @@ +/* + * File: include/linux/omapfb.h + * + * Framebuffer driver for TI OMAP boards + * + * Copyright (C) 2004 Nokia Corporation + * Author: Imre Deak + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __LINUX_OMAPFB_H__ +#define __LINUX_OMAPFB_H__ + +#include +#include +#include + +/* IOCTL commands. */ + +#define OMAP_IOW(num, dtype) _IOW('O', num, dtype) +#define OMAP_IOR(num, dtype) _IOR('O', num, dtype) +#define OMAP_IOWR(num, dtype) _IOWR('O', num, dtype) +#define OMAP_IO(num) _IO('O', num) + +#define OMAPFB_MIRROR OMAP_IOW(31, int) +#define OMAPFB_SYNC_GFX OMAP_IO(37) +#define OMAPFB_VSYNC OMAP_IO(38) +#define OMAPFB_SET_UPDATE_MODE OMAP_IOW(40, int) +#define OMAPFB_GET_CAPS OMAP_IOR(42, struct omapfb_caps) +#define OMAPFB_GET_UPDATE_MODE OMAP_IOW(43, int) +#define OMAPFB_LCD_TEST OMAP_IOW(45, int) +#define OMAPFB_CTRL_TEST OMAP_IOW(46, int) +#define OMAPFB_UPDATE_WINDOW_OLD OMAP_IOW(47, struct omapfb_update_window_old) +#define OMAPFB_SET_COLOR_KEY OMAP_IOW(50, struct omapfb_color_key) +#define OMAPFB_GET_COLOR_KEY OMAP_IOW(51, struct omapfb_color_key) +#define OMAPFB_SETUP_PLANE OMAP_IOW(52, struct omapfb_plane_info) +#define OMAPFB_QUERY_PLANE OMAP_IOW(53, struct omapfb_plane_info) +#define OMAPFB_UPDATE_WINDOW OMAP_IOW(54, struct omapfb_update_window) +#define OMAPFB_SETUP_MEM OMAP_IOW(55, struct omapfb_mem_info) +#define OMAPFB_QUERY_MEM OMAP_IOW(56, struct omapfb_mem_info) +#define OMAPFB_WAITFORVSYNC OMAP_IO(57) +#define OMAPFB_MEMORY_READ OMAP_IOR(58, struct omapfb_memory_read) +#define OMAPFB_GET_OVERLAY_COLORMODE OMAP_IOR(59, struct omapfb_ovl_colormode) +#define OMAPFB_WAITFORGO OMAP_IO(60) +#define OMAPFB_GET_VRAM_INFO OMAP_IOR(61, struct omapfb_vram_info) +#define OMAPFB_SET_TEARSYNC OMAP_IOW(62, struct omapfb_tearsync_info) +#define OMAPFB_GET_DISPLAY_INFO OMAP_IOR(63, struct omapfb_display_info) + +#define OMAPFB_CAPS_GENERIC_MASK 0x00000fff +#define OMAPFB_CAPS_LCDC_MASK 0x00fff000 +#define OMAPFB_CAPS_PANEL_MASK 0xff000000 + +#define OMAPFB_CAPS_MANUAL_UPDATE 0x00001000 +#define OMAPFB_CAPS_TEARSYNC 0x00002000 +#define OMAPFB_CAPS_PLANE_RELOCATE_MEM 0x00004000 +#define OMAPFB_CAPS_PLANE_SCALE 0x00008000 +#define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE 0x00010000 +#define OMAPFB_CAPS_WINDOW_SCALE 0x00020000 +#define OMAPFB_CAPS_WINDOW_OVERLAY 0x00040000 +#define OMAPFB_CAPS_WINDOW_ROTATE 0x00080000 +#define OMAPFB_CAPS_SET_BACKLIGHT 0x01000000 + +/* Values from DSP must map to lower 16-bits */ +#define OMAPFB_FORMAT_MASK 0x00ff +#define OMAPFB_FORMAT_FLAG_DOUBLE 0x0100 +#define OMAPFB_FORMAT_FLAG_TEARSYNC 0x0200 +#define OMAPFB_FORMAT_FLAG_FORCE_VSYNC 0x0400 +#define OMAPFB_FORMAT_FLAG_ENABLE_OVERLAY 0x0800 +#define OMAPFB_FORMAT_FLAG_DISABLE_OVERLAY 0x1000 + +#define OMAPFB_MEMTYPE_SDRAM 0 +#define OMAPFB_MEMTYPE_SRAM 1 +#define OMAPFB_MEMTYPE_MAX 1 + +#define OMAPFB_MEM_IDX_ENABLED 0x80 +#define OMAPFB_MEM_IDX_MASK 0x7f + +enum omapfb_color_format { + OMAPFB_COLOR_RGB565 = 0, + OMAPFB_COLOR_YUV422, + OMAPFB_COLOR_YUV420, + OMAPFB_COLOR_CLUT_8BPP, + OMAPFB_COLOR_CLUT_4BPP, + OMAPFB_COLOR_CLUT_2BPP, + OMAPFB_COLOR_CLUT_1BPP, + OMAPFB_COLOR_RGB444, + OMAPFB_COLOR_YUY422, + + OMAPFB_COLOR_ARGB16, + OMAPFB_COLOR_RGB24U, /* RGB24, 32-bit container */ + OMAPFB_COLOR_RGB24P, /* RGB24, 24-bit container */ + OMAPFB_COLOR_ARGB32, + OMAPFB_COLOR_RGBA32, + OMAPFB_COLOR_RGBX32, +}; + +struct omapfb_update_window { + __u32 x, y; + __u32 width, height; + __u32 format; + __u32 out_x, out_y; + __u32 out_width, out_height; + __u32 reserved[8]; +}; + +struct omapfb_update_window_old { + __u32 x, y; + __u32 width, height; + __u32 format; +}; + +enum omapfb_plane { + OMAPFB_PLANE_GFX = 0, + OMAPFB_PLANE_VID1, + OMAPFB_PLANE_VID2, +}; + +enum omapfb_channel_out { + OMAPFB_CHANNEL_OUT_LCD = 0, + OMAPFB_CHANNEL_OUT_DIGIT, +}; + +struct omapfb_plane_info { + __u32 pos_x; + __u32 pos_y; + __u8 enabled; + __u8 channel_out; + __u8 mirror; + __u8 mem_idx; + __u32 out_width; + __u32 out_height; + __u32 reserved2[12]; +}; + +struct omapfb_mem_info { + __u32 size; + __u8 type; + __u8 reserved[3]; +}; + +struct omapfb_caps { + __u32 ctrl; + __u32 plane_color; + __u32 wnd_color; +}; + +enum omapfb_color_key_type { + OMAPFB_COLOR_KEY_DISABLED = 0, + OMAPFB_COLOR_KEY_GFX_DST, + OMAPFB_COLOR_KEY_VID_SRC, +}; + +struct omapfb_color_key { + __u8 channel_out; + __u32 background; + __u32 trans_key; + __u8 key_type; +}; + +enum omapfb_update_mode { + OMAPFB_UPDATE_DISABLED = 0, + OMAPFB_AUTO_UPDATE, + OMAPFB_MANUAL_UPDATE +}; + +struct omapfb_memory_read { + __u16 x; + __u16 y; + __u16 w; + __u16 h; + size_t buffer_size; + void *buffer; +}; + +struct omapfb_ovl_colormode { + __u8 overlay_idx; + __u8 mode_idx; + __u32 bits_per_pixel; + __u32 nonstd; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; +}; + +struct omapfb_vram_info { + __u32 total; + __u32 free; + __u32 largest_free_block; + __u32 reserved[5]; +}; + +struct omapfb_tearsync_info { + __u8 enabled; + __u8 reserved1[3]; + __u16 line; + __u16 reserved2; +}; + +struct omapfb_display_info { + __u16 xres; + __u16 yres; + __u32 width; /* phys width of the display in micrometers */ + __u32 height; /* phys height of the display in micrometers */ + __u32 reserved[5]; +}; + + +#endif /* __LINUX_OMAPFB_H__ */ diff --git a/kernel_headers/linux/oneshot_sync.h b/kernel_headers/linux/oneshot_sync.h new file mode 100644 index 0000000..c55ef2f --- /dev/null +++ b/kernel_headers/linux/oneshot_sync.h @@ -0,0 +1,49 @@ +#ifndef ONESHOT_SYNC_H +#define ONESHOT_SYNC_H + +/** + * DOC: Oneshot sync Userspace API + * + * Opening a file descriptor from /dev/oneshot_sync creates a * sync timeline + * for userspace signaled fences. Userspace may create new fences from a + * /dev/oneshot_sync file descriptor and then signal them by passing the fence + * file descriptor in an ioctl() call on the fd used to create the fence. + * Unlike most sync timelines, there is no ordering on a oneshot timeline. + * Each fence may be signaled in any order without affecting the state of other + * fences on the timeline. + */ + +#define ONESHOT_SYNC_IOC_MAGIC '1' + +/** + * struct oneshot_sync_create_fence - argument to create fence ioctl + * @name: name of the new fence, to aid debugging. + * @fence_fd: returned sync_fence file descriptor + */ +struct oneshot_sync_create_fence { + char name[32]; + int fence_fd; +}; + +/** + * DOC: ONESHOT_SYNC_IOC_CREATE_FENCE - create a userspace signaled fence + * + * Create a fence that may be signaled by userspace by calling + * ONESHOT_SYNC_IOC_SIGNAL_FENCE. There are no order dependencies between + * these fences, but otherwise they behave like normal sync fences. + * Argument is struct oneshot_sync_create_fence. + */ +#define ONESHOT_SYNC_IOC_CREATE_FENCE _IOWR(ONESHOT_SYNC_IOC_MAGIC, 1,\ + struct oneshot_sync_create_fence) + +/** + * DOC: ONESHOT_SYNC_IOC_SIGNAL_FENCE - signal a fence + * + * Signal a fence that was created by a ONESHOT_SYNC_IOC_CREATE_FENCE + * call on the same file descriptor. This allows a fence to be shared + * to other processes but only signaled by the process owning the fd + * used to create the fence. Argument is the fence file descriptor. + */ +#define ONESHOT_SYNC_IOC_SIGNAL_FENCE _IOWR(ONESHOT_SYNC_IOC_MAGIC, 2,\ + int) +#endif diff --git a/kernel_headers/linux/oom.h b/kernel_headers/linux/oom.h new file mode 100644 index 0000000..ca6c46e --- /dev/null +++ b/kernel_headers/linux/oom.h @@ -0,0 +1,20 @@ +#ifndef __INCLUDE_LINUX_OOM_H +#define __INCLUDE_LINUX_OOM_H + +/* + * /proc//oom_score_adj set to OOM_SCORE_ADJ_MIN disables oom killing for + * pid. + */ +#define OOM_SCORE_ADJ_MIN (-1000) +#define OOM_SCORE_ADJ_MAX 1000 + +/* + * /proc//oom_adj set to -17 protects from the oom killer for legacy + * purposes. + */ +#define OOM_DISABLE (-17) +/* inclusive */ +#define OOM_ADJUST_MIN (-16) +#define OOM_ADJUST_MAX 15 + +#endif /* __INCLUDE_LINUX_OOM_H */ diff --git a/kernel_headers/linux/openvswitch.h b/kernel_headers/linux/openvswitch.h new file mode 100644 index 0000000..156e812 --- /dev/null +++ b/kernel_headers/linux/openvswitch.h @@ -0,0 +1,456 @@ + +/* + * Copyright (c) 2007-2011 Nicira Networks. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA + */ + +#ifndef __LINUX_OPENVSWITCH_H +#define __LINUX_OPENVSWITCH_H 1 + +#include +#include + +/** + * struct ovs_header - header for OVS Generic Netlink messages. + * @dp_ifindex: ifindex of local port for datapath (0 to make a request not + * specific to a datapath). + * + * Attributes following the header are specific to a particular OVS Generic + * Netlink family, but all of the OVS families use this header. + */ + +struct ovs_header { + int dp_ifindex; +}; + +/* Datapaths. */ + +#define OVS_DATAPATH_FAMILY "ovs_datapath" +#define OVS_DATAPATH_MCGROUP "ovs_datapath" +#define OVS_DATAPATH_VERSION 0x1 + +enum ovs_datapath_cmd { + OVS_DP_CMD_UNSPEC, + OVS_DP_CMD_NEW, + OVS_DP_CMD_DEL, + OVS_DP_CMD_GET, + OVS_DP_CMD_SET +}; + +/** + * enum ovs_datapath_attr - attributes for %OVS_DP_* commands. + * @OVS_DP_ATTR_NAME: Name of the network device that serves as the "local + * port". This is the name of the network device whose dp_ifindex is given in + * the &struct ovs_header. Always present in notifications. Required in + * %OVS_DP_NEW requests. May be used as an alternative to specifying + * dp_ifindex in other requests (with a dp_ifindex of 0). + * @OVS_DP_ATTR_UPCALL_PID: The Netlink socket in userspace that is initially + * set on the datapath port (for OVS_ACTION_ATTR_MISS). Only valid on + * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should + * not be sent. + * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the + * datapath. Always present in notifications. + * + * These attributes follow the &struct ovs_header within the Generic Netlink + * payload for %OVS_DP_* commands. + */ +enum ovs_datapath_attr { + OVS_DP_ATTR_UNSPEC, + OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */ + OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ + OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ + __OVS_DP_ATTR_MAX +}; + +#define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1) + +struct ovs_dp_stats { + __u64 n_hit; /* Number of flow table matches. */ + __u64 n_missed; /* Number of flow table misses. */ + __u64 n_lost; /* Number of misses not sent to userspace. */ + __u64 n_flows; /* Number of flows present */ +}; + +struct ovs_vport_stats { + __u64 rx_packets; /* total packets received */ + __u64 tx_packets; /* total packets transmitted */ + __u64 rx_bytes; /* total bytes received */ + __u64 tx_bytes; /* total bytes transmitted */ + __u64 rx_errors; /* bad packets received */ + __u64 tx_errors; /* packet transmit problems */ + __u64 rx_dropped; /* no space in linux buffers */ + __u64 tx_dropped; /* no space available in linux */ +}; + +/* Fixed logical ports. */ +#define OVSP_LOCAL ((__u32)0) + +/* Packet transfer. */ + +#define OVS_PACKET_FAMILY "ovs_packet" +#define OVS_PACKET_VERSION 0x1 + +enum ovs_packet_cmd { + OVS_PACKET_CMD_UNSPEC, + + /* Kernel-to-user notifications. */ + OVS_PACKET_CMD_MISS, /* Flow table miss. */ + OVS_PACKET_CMD_ACTION, /* OVS_ACTION_ATTR_USERSPACE action. */ + + /* Userspace commands. */ + OVS_PACKET_CMD_EXECUTE /* Apply actions to a packet. */ +}; + +/** + * enum ovs_packet_attr - attributes for %OVS_PACKET_* commands. + * @OVS_PACKET_ATTR_PACKET: Present for all notifications. Contains the entire + * packet as received, from the start of the Ethernet header onward. For + * %OVS_PACKET_CMD_ACTION, %OVS_PACKET_ATTR_PACKET reflects changes made by + * actions preceding %OVS_ACTION_ATTR_USERSPACE, but %OVS_PACKET_ATTR_KEY is + * the flow key extracted from the packet as originally received. + * @OVS_PACKET_ATTR_KEY: Present for all notifications. Contains the flow key + * extracted from the packet as nested %OVS_KEY_ATTR_* attributes. This allows + * userspace to adapt its flow setup strategy by comparing its notion of the + * flow key against the kernel's. + * @OVS_PACKET_ATTR_ACTIONS: Contains actions for the packet. Used + * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes. + * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION + * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an + * %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content + * specified there. + * + * These attributes follow the &struct ovs_header within the Generic Netlink + * payload for %OVS_PACKET_* commands. + */ +enum ovs_packet_attr { + OVS_PACKET_ATTR_UNSPEC, + OVS_PACKET_ATTR_PACKET, /* Packet data. */ + OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */ + OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ + OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */ + __OVS_PACKET_ATTR_MAX +}; + +#define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1) + +/* Virtual ports. */ + +#define OVS_VPORT_FAMILY "ovs_vport" +#define OVS_VPORT_MCGROUP "ovs_vport" +#define OVS_VPORT_VERSION 0x1 + +enum ovs_vport_cmd { + OVS_VPORT_CMD_UNSPEC, + OVS_VPORT_CMD_NEW, + OVS_VPORT_CMD_DEL, + OVS_VPORT_CMD_GET, + OVS_VPORT_CMD_SET +}; + +enum ovs_vport_type { + OVS_VPORT_TYPE_UNSPEC, + OVS_VPORT_TYPE_NETDEV, /* network device */ + OVS_VPORT_TYPE_INTERNAL, /* network device implemented by datapath */ + __OVS_VPORT_TYPE_MAX +}; + +#define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1) + +/** + * enum ovs_vport_attr - attributes for %OVS_VPORT_* commands. + * @OVS_VPORT_ATTR_PORT_NO: 32-bit port number within datapath. + * @OVS_VPORT_ATTR_TYPE: 32-bit %OVS_VPORT_TYPE_* constant describing the type + * of vport. + * @OVS_VPORT_ATTR_NAME: Name of vport. For a vport based on a network device + * this is the name of the network device. Maximum length %IFNAMSIZ-1 bytes + * plus a null terminator. + * @OVS_VPORT_ATTR_OPTIONS: Vport-specific configuration information. + * @OVS_VPORT_ATTR_UPCALL_PID: The Netlink socket in userspace that + * OVS_PACKET_CMD_MISS upcalls will be directed to for packets received on + * this port. A value of zero indicates that upcalls should not be sent. + * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for + * packets sent or received through the vport. + * + * These attributes follow the &struct ovs_header within the Generic Netlink + * payload for %OVS_VPORT_* commands. + * + * For %OVS_VPORT_CMD_NEW requests, the %OVS_VPORT_ATTR_TYPE and + * %OVS_VPORT_ATTR_NAME attributes are required. %OVS_VPORT_ATTR_PORT_NO is + * optional; if not specified a free port number is automatically selected. + * Whether %OVS_VPORT_ATTR_OPTIONS is required or optional depends on the type + * of vport. + * and other attributes are ignored. + * + * For other requests, if %OVS_VPORT_ATTR_NAME is specified then it is used to + * look up the vport to operate on; otherwise dp_idx from the &struct + * ovs_header plus %OVS_VPORT_ATTR_PORT_NO determine the vport. + */ +enum ovs_vport_attr { + OVS_VPORT_ATTR_UNSPEC, + OVS_VPORT_ATTR_PORT_NO, /* u32 port number within datapath */ + OVS_VPORT_ATTR_TYPE, /* u32 OVS_VPORT_TYPE_* constant. */ + OVS_VPORT_ATTR_NAME, /* string name, up to IFNAMSIZ bytes long */ + OVS_VPORT_ATTR_OPTIONS, /* nested attributes, varies by vport type */ + OVS_VPORT_ATTR_UPCALL_PID, /* u32 Netlink PID to receive upcalls */ + OVS_VPORT_ATTR_STATS, /* struct ovs_vport_stats */ + __OVS_VPORT_ATTR_MAX +}; + +#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) + +/* Flows. */ + +#define OVS_FLOW_FAMILY "ovs_flow" +#define OVS_FLOW_MCGROUP "ovs_flow" +#define OVS_FLOW_VERSION 0x1 + +enum ovs_flow_cmd { + OVS_FLOW_CMD_UNSPEC, + OVS_FLOW_CMD_NEW, + OVS_FLOW_CMD_DEL, + OVS_FLOW_CMD_GET, + OVS_FLOW_CMD_SET +}; + +struct ovs_flow_stats { + __u64 n_packets; /* Number of matched packets. */ + __u64 n_bytes; /* Number of matched bytes. */ +}; + +enum ovs_key_attr { + OVS_KEY_ATTR_UNSPEC, + OVS_KEY_ATTR_ENCAP, /* Nested set of encapsulated attributes. */ + OVS_KEY_ATTR_PRIORITY, /* u32 skb->priority */ + OVS_KEY_ATTR_IN_PORT, /* u32 OVS dp port number */ + OVS_KEY_ATTR_ETHERNET, /* struct ovs_key_ethernet */ + OVS_KEY_ATTR_VLAN, /* be16 VLAN TCI */ + OVS_KEY_ATTR_ETHERTYPE, /* be16 Ethernet type */ + OVS_KEY_ATTR_IPV4, /* struct ovs_key_ipv4 */ + OVS_KEY_ATTR_IPV6, /* struct ovs_key_ipv6 */ + OVS_KEY_ATTR_TCP, /* struct ovs_key_tcp */ + OVS_KEY_ATTR_UDP, /* struct ovs_key_udp */ + OVS_KEY_ATTR_ICMP, /* struct ovs_key_icmp */ + OVS_KEY_ATTR_ICMPV6, /* struct ovs_key_icmpv6 */ + OVS_KEY_ATTR_ARP, /* struct ovs_key_arp */ + OVS_KEY_ATTR_ND, /* struct ovs_key_nd */ + OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */ + __OVS_KEY_ATTR_MAX +}; + +#define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1) + +/** + * enum ovs_frag_type - IPv4 and IPv6 fragment type + * @OVS_FRAG_TYPE_NONE: Packet is not a fragment. + * @OVS_FRAG_TYPE_FIRST: Packet is a fragment with offset 0. + * @OVS_FRAG_TYPE_LATER: Packet is a fragment with nonzero offset. + * + * Used as the @ipv4_frag in &struct ovs_key_ipv4 and as @ipv6_frag &struct + * ovs_key_ipv6. + */ +enum ovs_frag_type { + OVS_FRAG_TYPE_NONE, + OVS_FRAG_TYPE_FIRST, + OVS_FRAG_TYPE_LATER, + __OVS_FRAG_TYPE_MAX +}; + +#define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1) + +struct ovs_key_ethernet { + __u8 eth_src[ETH_ALEN]; + __u8 eth_dst[ETH_ALEN]; +}; + +struct ovs_key_ipv4 { + __be32 ipv4_src; + __be32 ipv4_dst; + __u8 ipv4_proto; + __u8 ipv4_tos; + __u8 ipv4_ttl; + __u8 ipv4_frag; /* One of OVS_FRAG_TYPE_*. */ +}; + +struct ovs_key_ipv6 { + __be32 ipv6_src[4]; + __be32 ipv6_dst[4]; + __be32 ipv6_label; /* 20-bits in least-significant bits. */ + __u8 ipv6_proto; + __u8 ipv6_tclass; + __u8 ipv6_hlimit; + __u8 ipv6_frag; /* One of OVS_FRAG_TYPE_*. */ +}; + +struct ovs_key_tcp { + __be16 tcp_src; + __be16 tcp_dst; +}; + +struct ovs_key_udp { + __be16 udp_src; + __be16 udp_dst; +}; + +struct ovs_key_icmp { + __u8 icmp_type; + __u8 icmp_code; +}; + +struct ovs_key_icmpv6 { + __u8 icmpv6_type; + __u8 icmpv6_code; +}; + +struct ovs_key_arp { + __be32 arp_sip; + __be32 arp_tip; + __be16 arp_op; + __u8 arp_sha[ETH_ALEN]; + __u8 arp_tha[ETH_ALEN]; +}; + +struct ovs_key_nd { + __u32 nd_target[4]; + __u8 nd_sll[ETH_ALEN]; + __u8 nd_tll[ETH_ALEN]; +}; + +/** + * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. + * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow + * key. Always present in notifications. Required for all requests (except + * dumps). + * @OVS_FLOW_ATTR_ACTIONS: Nested %OVS_ACTION_ATTR_* attributes specifying + * the actions to take for packets that match the key. Always present in + * notifications. Required for %OVS_FLOW_CMD_NEW requests, optional for + * %OVS_FLOW_CMD_SET requests. + * @OVS_FLOW_ATTR_STATS: &struct ovs_flow_stats giving statistics for this + * flow. Present in notifications if the stats would be nonzero. Ignored in + * requests. + * @OVS_FLOW_ATTR_TCP_FLAGS: An 8-bit value giving the OR'd value of all of the + * TCP flags seen on packets in this flow. Only present in notifications for + * TCP flows, and only if it would be nonzero. Ignored in requests. + * @OVS_FLOW_ATTR_USED: A 64-bit integer giving the time, in milliseconds on + * the system monotonic clock, at which a packet was last processed for this + * flow. Only present in notifications if a packet has been processed for this + * flow. Ignored in requests. + * @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the + * last-used time, accumulated TCP flags, and statistics for this flow. + * Otherwise ignored in requests. Never present in notifications. + * + * These attributes follow the &struct ovs_header within the Generic Netlink + * payload for %OVS_FLOW_* commands. + */ +enum ovs_flow_attr { + OVS_FLOW_ATTR_UNSPEC, + OVS_FLOW_ATTR_KEY, /* Sequence of OVS_KEY_ATTR_* attributes. */ + OVS_FLOW_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ + OVS_FLOW_ATTR_STATS, /* struct ovs_flow_stats. */ + OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */ + OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */ + OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */ + __OVS_FLOW_ATTR_MAX +}; + +#define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) + +/** + * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action. + * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with + * @OVS_ACTION_ATTR_SAMPLE. A value of 0 samples no packets, a value of + * %UINT32_MAX samples all packets and intermediate values sample intermediate + * fractions of packets. + * @OVS_SAMPLE_ATTR_ACTIONS: Set of actions to execute in sampling event. + * Actions are passed as nested attributes. + * + * Executes the specified actions with the given probability on a per-packet + * basis. + */ +enum ovs_sample_attr { + OVS_SAMPLE_ATTR_UNSPEC, + OVS_SAMPLE_ATTR_PROBABILITY, /* u32 number */ + OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ + __OVS_SAMPLE_ATTR_MAX, +}; + +#define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1) + +/** + * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action. + * @OVS_USERSPACE_ATTR_PID: u32 Netlink PID to which the %OVS_PACKET_CMD_ACTION + * message should be sent. Required. + * @OVS_USERSPACE_ATTR_USERDATA: If present, its variable-length argument is + * copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA. + */ +enum ovs_userspace_attr { + OVS_USERSPACE_ATTR_UNSPEC, + OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */ + OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */ + __OVS_USERSPACE_ATTR_MAX +}; + +#define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1) + +/** + * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument. + * @vlan_tpid: Tag protocol identifier (TPID) to push. + * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set + * (but it will not be set in the 802.1Q header that is pushed). + * + * The @vlan_tpid value is typically %ETH_P_8021Q. The only acceptable TPID + * values are those that the kernel module also parses as 802.1Q headers, to + * prevent %OVS_ACTION_ATTR_PUSH_VLAN followed by %OVS_ACTION_ATTR_POP_VLAN + * from having surprising results. + */ +struct ovs_action_push_vlan { + __be16 vlan_tpid; /* 802.1Q TPID. */ + __be16 vlan_tci; /* 802.1Q TCI (VLAN ID and priority). */ +}; + +/** + * enum ovs_action_attr - Action types. + * + * @OVS_ACTION_ATTR_OUTPUT: Output packet to port. + * @OVS_ACTION_ATTR_USERSPACE: Send packet to userspace according to nested + * %OVS_USERSPACE_ATTR_* attributes. + * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The + * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its + * value. + * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the + * packet. + * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. + * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in + * the nested %OVS_SAMPLE_ATTR_* attributes. + * + * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all + * fields within a header are modifiable, e.g. the IPv4 protocol and fragment + * type may not be changed. + */ + +enum ovs_action_attr { + OVS_ACTION_ATTR_UNSPEC, + OVS_ACTION_ATTR_OUTPUT, /* u32 port number. */ + OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */ + OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */ + OVS_ACTION_ATTR_PUSH_VLAN, /* struct ovs_action_push_vlan. */ + OVS_ACTION_ATTR_POP_VLAN, /* No argument. */ + OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */ + __OVS_ACTION_ATTR_MAX +}; + +#define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) + +#endif /* _LINUX_OPENVSWITCH_H */ diff --git a/kernel_headers/linux/packet_diag.h b/kernel_headers/linux/packet_diag.h new file mode 100644 index 0000000..b2cc0cd --- /dev/null +++ b/kernel_headers/linux/packet_diag.h @@ -0,0 +1,79 @@ +#ifndef __PACKET_DIAG_H__ +#define __PACKET_DIAG_H__ + +#include + +struct packet_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 pdiag_ino; + __u32 pdiag_show; + __u32 pdiag_cookie[2]; +}; + +#define PACKET_SHOW_INFO 0x00000001 /* Basic packet_sk information */ +#define PACKET_SHOW_MCLIST 0x00000002 /* A set of packet_diag_mclist-s */ +#define PACKET_SHOW_RING_CFG 0x00000004 /* Rings configuration parameters */ +#define PACKET_SHOW_FANOUT 0x00000008 +#define PACKET_SHOW_MEMINFO 0x00000010 +#define PACKET_SHOW_FILTER 0x00000020 + +struct packet_diag_msg { + __u8 pdiag_family; + __u8 pdiag_type; + __u16 pdiag_num; + + __u32 pdiag_ino; + __u32 pdiag_cookie[2]; +}; + +enum { + PACKET_DIAG_INFO, + PACKET_DIAG_MCLIST, + PACKET_DIAG_RX_RING, + PACKET_DIAG_TX_RING, + PACKET_DIAG_FANOUT, + PACKET_DIAG_UID, + PACKET_DIAG_MEMINFO, + PACKET_DIAG_FILTER, + + __PACKET_DIAG_MAX, +}; + +#define PACKET_DIAG_MAX (__PACKET_DIAG_MAX - 1) + +struct packet_diag_info { + __u32 pdi_index; + __u32 pdi_version; + __u32 pdi_reserve; + __u32 pdi_copy_thresh; + __u32 pdi_tstamp; + __u32 pdi_flags; + +#define PDI_RUNNING 0x1 +#define PDI_AUXDATA 0x2 +#define PDI_ORIGDEV 0x4 +#define PDI_VNETHDR 0x8 +#define PDI_LOSS 0x10 +}; + +struct packet_diag_mclist { + __u32 pdmc_index; + __u32 pdmc_count; + __u16 pdmc_type; + __u16 pdmc_alen; + __u8 pdmc_addr[MAX_ADDR_LEN]; +}; + +struct packet_diag_ring { + __u32 pdr_block_size; + __u32 pdr_block_nr; + __u32 pdr_frame_size; + __u32 pdr_frame_nr; + __u32 pdr_retire_tmo; + __u32 pdr_sizeof_priv; + __u32 pdr_features; +}; + +#endif diff --git a/kernel_headers/linux/param.h b/kernel_headers/linux/param.h new file mode 100644 index 0000000..092e92f --- /dev/null +++ b/kernel_headers/linux/param.h @@ -0,0 +1,6 @@ +#ifndef _LINUX_PARAM_H +#define _LINUX_PARAM_H + +#include + +#endif diff --git a/kernel_headers/linux/parport.h b/kernel_headers/linux/parport.h new file mode 100644 index 0000000..4cd4442 --- /dev/null +++ b/kernel_headers/linux/parport.h @@ -0,0 +1,95 @@ +/* + * Any part of this program may be used in documents licensed under + * the GNU Free Documentation License, Version 1.1 or any later version + * published by the Free Software Foundation. + */ + +#ifndef _PARPORT_H_ +#define _PARPORT_H_ + +/* Start off with user-visible constants */ + +/* Maximum of 16 ports per machine */ +#define PARPORT_MAX 16 + +/* Magic numbers */ +#define PARPORT_IRQ_NONE -1 +#define PARPORT_DMA_NONE -1 +#define PARPORT_IRQ_AUTO -2 +#define PARPORT_DMA_AUTO -2 +#define PARPORT_DMA_NOFIFO -3 +#define PARPORT_DISABLE -2 +#define PARPORT_IRQ_PROBEONLY -3 +#define PARPORT_IOHI_AUTO -1 + +#define PARPORT_CONTROL_STROBE 0x1 +#define PARPORT_CONTROL_AUTOFD 0x2 +#define PARPORT_CONTROL_INIT 0x4 +#define PARPORT_CONTROL_SELECT 0x8 + +#define PARPORT_STATUS_ERROR 0x8 +#define PARPORT_STATUS_SELECT 0x10 +#define PARPORT_STATUS_PAPEROUT 0x20 +#define PARPORT_STATUS_ACK 0x40 +#define PARPORT_STATUS_BUSY 0x80 + +/* Type classes for Plug-and-Play probe. */ +typedef enum { + PARPORT_CLASS_LEGACY = 0, /* Non-IEEE1284 device */ + PARPORT_CLASS_PRINTER, + PARPORT_CLASS_MODEM, + PARPORT_CLASS_NET, + PARPORT_CLASS_HDC, /* Hard disk controller */ + PARPORT_CLASS_PCMCIA, + PARPORT_CLASS_MEDIA, /* Multimedia device */ + PARPORT_CLASS_FDC, /* Floppy disk controller */ + PARPORT_CLASS_PORTS, + PARPORT_CLASS_SCANNER, + PARPORT_CLASS_DIGCAM, + PARPORT_CLASS_OTHER, /* Anything else */ + PARPORT_CLASS_UNSPEC, /* No CLS field in ID */ + PARPORT_CLASS_SCSIADAPTER +} parport_device_class; + +/* The "modes" entry in parport is a bit field representing the + capabilities of the hardware. */ +#define PARPORT_MODE_PCSPP (1<<0) /* IBM PC registers available. */ +#define PARPORT_MODE_TRISTATE (1<<1) /* Can tristate. */ +#define PARPORT_MODE_EPP (1<<2) /* Hardware EPP. */ +#define PARPORT_MODE_ECP (1<<3) /* Hardware ECP. */ +#define PARPORT_MODE_COMPAT (1<<4) /* Hardware 'printer protocol'. */ +#define PARPORT_MODE_DMA (1<<5) /* Hardware can DMA. */ +#define PARPORT_MODE_SAFEININT (1<<6) /* SPP registers accessible in IRQ. */ + +/* IEEE1284 modes: + Nibble mode, byte mode, ECP, ECPRLE and EPP are their own + 'extensibility request' values. Others are special. + 'Real' ECP modes must have the IEEE1284_MODE_ECP bit set. */ +#define IEEE1284_MODE_NIBBLE 0 +#define IEEE1284_MODE_BYTE (1<<0) +#define IEEE1284_MODE_COMPAT (1<<8) +#define IEEE1284_MODE_BECP (1<<9) /* Bounded ECP mode */ +#define IEEE1284_MODE_ECP (1<<4) +#define IEEE1284_MODE_ECPRLE (IEEE1284_MODE_ECP | (1<<5)) +#define IEEE1284_MODE_ECPSWE (1<<10) /* Software-emulated */ +#define IEEE1284_MODE_EPP (1<<6) +#define IEEE1284_MODE_EPPSL (1<<11) /* EPP 1.7 */ +#define IEEE1284_MODE_EPPSWE (1<<12) /* Software-emulated */ +#define IEEE1284_DEVICEID (1<<2) /* This is a flag */ +#define IEEE1284_EXT_LINK (1<<14) /* This flag causes the + * extensibility link to + * be requested, using + * bits 0-6. */ + +/* For the benefit of parport_read/write, you can use these with + * parport_negotiate to use address operations. They have no effect + * other than to make parport_read/write use address transfers. */ +#define IEEE1284_ADDR (1<<13) /* This is a flag */ +#define IEEE1284_DATA 0 /* So is this */ + +/* Flags for block transfer operations. */ +#define PARPORT_EPP_FAST (1<<0) /* Unreliable counts. */ +#define PARPORT_W91284PIC (1<<1) /* have a Warp9 w91284pic in the device */ + +/* The rest is for the kernel only */ +#endif /* _PARPORT_H_ */ diff --git a/kernel_headers/linux/patchkey.h b/kernel_headers/linux/patchkey.h new file mode 100644 index 0000000..bb28430 --- /dev/null +++ b/kernel_headers/linux/patchkey.h @@ -0,0 +1,33 @@ +/* + * -- definition of _PATCHKEY macro + * + * Copyright (C) 2005 Stuart Brady + * + * This exists because awe_voice.h defined its own _PATCHKEY and it wasn't + * clear whether removing this would break anything in userspace. + * + * Do not include this file directly. Please use instead. + * For kernel code, use + */ + +#ifndef _LINUX_PATCHKEY_H_INDIRECT +#error "patchkey.h included directly" +#endif + +#ifndef _LINUX_PATCHKEY_H +#define _LINUX_PATCHKEY_H + +/* Endian macros. */ +# include + +#if defined(__BYTE_ORDER) +# if __BYTE_ORDER == __BIG_ENDIAN +# define _PATCHKEY(id) (0xfd00|id) +# elif __BYTE_ORDER == __LITTLE_ENDIAN +# define _PATCHKEY(id) ((id<<8)|0x00fd) +# else +# error "could not determine byte order" +# endif +#endif + +#endif /* _LINUX_PATCHKEY_H */ diff --git a/kernel_headers/linux/pci.h b/kernel_headers/linux/pci.h new file mode 100644 index 0000000..a5bb5c7 --- /dev/null +++ b/kernel_headers/linux/pci.h @@ -0,0 +1,41 @@ +/* + * pci.h + * + * PCI defines and function prototypes + * Copyright 1994, Drew Eckhardt + * Copyright 1997--1999 Martin Mares + * + * For more information, please consult the following manuals (look at + * http://www.pcisig.com/ for how to get them): + * + * PCI BIOS Specification + * PCI Local Bus Specification + * PCI to PCI Bridge Specification + * PCI System Design Guide + */ + +#ifndef LINUX_PCI_H +#define LINUX_PCI_H + +#include /* The pci register defines */ + +/* + * The PCI interface treats multi-function devices as independent + * devices. The slot/function address of each device is encoded + * in a single byte as follows: + * + * 7:3 = slot + * 2:0 = function + */ +#define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07)) +#define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f) +#define PCI_FUNC(devfn) ((devfn) & 0x07) + +/* Ioctls for /proc/bus/pci/X/Y nodes. */ +#define PCIIOC_BASE ('P' << 24 | 'C' << 16 | 'I' << 8) +#define PCIIOC_CONTROLLER (PCIIOC_BASE | 0x00) /* Get controller for PCI device. */ +#define PCIIOC_MMAP_IS_IO (PCIIOC_BASE | 0x01) /* Set mmap state to I/O space. */ +#define PCIIOC_MMAP_IS_MEM (PCIIOC_BASE | 0x02) /* Set mmap state to MEM space. */ +#define PCIIOC_WRITE_COMBINE (PCIIOC_BASE | 0x03) /* Enable/disable write-combining. */ + +#endif /* LINUX_PCI_H */ diff --git a/kernel_headers/linux/pci_regs.h b/kernel_headers/linux/pci_regs.h new file mode 100644 index 0000000..864e324 --- /dev/null +++ b/kernel_headers/linux/pci_regs.h @@ -0,0 +1,867 @@ +/* + * pci_regs.h + * + * PCI standard defines + * Copyright 1994, Drew Eckhardt + * Copyright 1997--1999 Martin Mares + * + * For more information, please consult the following manuals (look at + * http://www.pcisig.com/ for how to get them): + * + * PCI BIOS Specification + * PCI Local Bus Specification + * PCI to PCI Bridge Specification + * PCI System Design Guide + * + * For hypertransport information, please consult the following manuals + * from http://www.hypertransport.org + * + * The Hypertransport I/O Link Specification + */ + +#ifndef LINUX_PCI_REGS_H +#define LINUX_PCI_REGS_H + +/* + * Under PCI, each device has 256 bytes of configuration address space, + * of which the first 64 bytes are standardized as follows: + */ +#define PCI_STD_HEADER_SIZEOF 64 +#define PCI_VENDOR_ID 0x00 /* 16 bits */ +#define PCI_DEVICE_ID 0x02 /* 16 bits */ +#define PCI_COMMAND 0x04 /* 16 bits */ +#define PCI_COMMAND_IO 0x1 /* Enable response in I/O space */ +#define PCI_COMMAND_MEMORY 0x2 /* Enable response in Memory space */ +#define PCI_COMMAND_MASTER 0x4 /* Enable bus mastering */ +#define PCI_COMMAND_SPECIAL 0x8 /* Enable response to special cycles */ +#define PCI_COMMAND_INVALIDATE 0x10 /* Use memory write and invalidate */ +#define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */ +#define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */ +#define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */ +#define PCI_COMMAND_SERR 0x100 /* Enable SERR */ +#define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */ +#define PCI_COMMAND_INTX_DISABLE 0x400 /* INTx Emulation Disable */ + +#define PCI_STATUS 0x06 /* 16 bits */ +#define PCI_STATUS_INTERRUPT 0x08 /* Interrupt status */ +#define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */ +#define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */ +#define PCI_STATUS_UDF 0x40 /* Support User Definable Features [obsolete] */ +#define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */ +#define PCI_STATUS_PARITY 0x100 /* Detected parity error */ +#define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */ +#define PCI_STATUS_DEVSEL_FAST 0x000 +#define PCI_STATUS_DEVSEL_MEDIUM 0x200 +#define PCI_STATUS_DEVSEL_SLOW 0x400 +#define PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */ +#define PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */ +#define PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */ +#define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */ +#define PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */ + +#define PCI_CLASS_REVISION 0x08 /* High 24 bits are class, low 8 revision */ +#define PCI_REVISION_ID 0x08 /* Revision ID */ +#define PCI_CLASS_PROG 0x09 /* Reg. Level Programming Interface */ +#define PCI_CLASS_DEVICE 0x0a /* Device class */ + +#define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */ +#define PCI_LATENCY_TIMER 0x0d /* 8 bits */ +#define PCI_HEADER_TYPE 0x0e /* 8 bits */ +#define PCI_HEADER_TYPE_NORMAL 0 +#define PCI_HEADER_TYPE_BRIDGE 1 +#define PCI_HEADER_TYPE_CARDBUS 2 + +#define PCI_BIST 0x0f /* 8 bits */ +#define PCI_BIST_CODE_MASK 0x0f /* Return result */ +#define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */ +#define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */ + +/* + * Base addresses specify locations in memory or I/O space. + * Decoded size can be determined by writing a value of + * 0xffffffff to the register, and reading it back. Only + * 1 bits are decoded. + */ +#define PCI_BASE_ADDRESS_0 0x10 /* 32 bits */ +#define PCI_BASE_ADDRESS_1 0x14 /* 32 bits [htype 0,1 only] */ +#define PCI_BASE_ADDRESS_2 0x18 /* 32 bits [htype 0 only] */ +#define PCI_BASE_ADDRESS_3 0x1c /* 32 bits */ +#define PCI_BASE_ADDRESS_4 0x20 /* 32 bits */ +#define PCI_BASE_ADDRESS_5 0x24 /* 32 bits */ +#define PCI_BASE_ADDRESS_SPACE 0x01 /* 0 = memory, 1 = I/O */ +#define PCI_BASE_ADDRESS_SPACE_IO 0x01 +#define PCI_BASE_ADDRESS_SPACE_MEMORY 0x00 +#define PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06 +#define PCI_BASE_ADDRESS_MEM_TYPE_32 0x00 /* 32 bit address */ +#define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02 /* Below 1M [obsolete] */ +#define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04 /* 64 bit address */ +#define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08 /* prefetchable? */ +#define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL) +#define PCI_BASE_ADDRESS_IO_MASK (~0x03UL) +/* bit 1 is reserved if address_space = 1 */ + +/* Header type 0 (normal devices) */ +#define PCI_CARDBUS_CIS 0x28 +#define PCI_SUBSYSTEM_VENDOR_ID 0x2c +#define PCI_SUBSYSTEM_ID 0x2e +#define PCI_ROM_ADDRESS 0x30 /* Bits 31..11 are address, 10..1 reserved */ +#define PCI_ROM_ADDRESS_ENABLE 0x01 +#define PCI_ROM_ADDRESS_MASK (~0x7ffUL) + +#define PCI_CAPABILITY_LIST 0x34 /* Offset of first capability list entry */ + +/* 0x35-0x3b are reserved */ +#define PCI_INTERRUPT_LINE 0x3c /* 8 bits */ +#define PCI_INTERRUPT_PIN 0x3d /* 8 bits */ +#define PCI_MIN_GNT 0x3e /* 8 bits */ +#define PCI_MAX_LAT 0x3f /* 8 bits */ + +/* Header type 1 (PCI-to-PCI bridges) */ +#define PCI_PRIMARY_BUS 0x18 /* Primary bus number */ +#define PCI_SECONDARY_BUS 0x19 /* Secondary bus number */ +#define PCI_SUBORDINATE_BUS 0x1a /* Highest bus number behind the bridge */ +#define PCI_SEC_LATENCY_TIMER 0x1b /* Latency timer for secondary interface */ +#define PCI_IO_BASE 0x1c /* I/O range behind the bridge */ +#define PCI_IO_LIMIT 0x1d +#define PCI_IO_RANGE_TYPE_MASK 0x0fUL /* I/O bridging type */ +#define PCI_IO_RANGE_TYPE_16 0x00 +#define PCI_IO_RANGE_TYPE_32 0x01 +#define PCI_IO_RANGE_MASK (~0x0fUL) /* Standard 4K I/O windows */ +#define PCI_IO_1K_RANGE_MASK (~0x03UL) /* Intel 1K I/O windows */ +#define PCI_SEC_STATUS 0x1e /* Secondary status register, only bit 14 used */ +#define PCI_MEMORY_BASE 0x20 /* Memory range behind */ +#define PCI_MEMORY_LIMIT 0x22 +#define PCI_MEMORY_RANGE_TYPE_MASK 0x0fUL +#define PCI_MEMORY_RANGE_MASK (~0x0fUL) +#define PCI_PREF_MEMORY_BASE 0x24 /* Prefetchable memory range behind */ +#define PCI_PREF_MEMORY_LIMIT 0x26 +#define PCI_PREF_RANGE_TYPE_MASK 0x0fUL +#define PCI_PREF_RANGE_TYPE_32 0x00 +#define PCI_PREF_RANGE_TYPE_64 0x01 +#define PCI_PREF_RANGE_MASK (~0x0fUL) +#define PCI_PREF_BASE_UPPER32 0x28 /* Upper half of prefetchable memory range */ +#define PCI_PREF_LIMIT_UPPER32 0x2c +#define PCI_IO_BASE_UPPER16 0x30 /* Upper half of I/O addresses */ +#define PCI_IO_LIMIT_UPPER16 0x32 +/* 0x34 same as for htype 0 */ +/* 0x35-0x3b is reserved */ +#define PCI_ROM_ADDRESS1 0x38 /* Same as PCI_ROM_ADDRESS, but for htype 1 */ +/* 0x3c-0x3d are same as for htype 0 */ +#define PCI_BRIDGE_CONTROL 0x3e +#define PCI_BRIDGE_CTL_PARITY 0x01 /* Enable parity detection on secondary interface */ +#define PCI_BRIDGE_CTL_SERR 0x02 /* The same for SERR forwarding */ +#define PCI_BRIDGE_CTL_ISA 0x04 /* Enable ISA mode */ +#define PCI_BRIDGE_CTL_VGA 0x08 /* Forward VGA addresses */ +#define PCI_BRIDGE_CTL_MASTER_ABORT 0x20 /* Report master aborts */ +#define PCI_BRIDGE_CTL_BUS_RESET 0x40 /* Secondary bus reset */ +#define PCI_BRIDGE_CTL_FAST_BACK 0x80 /* Fast Back2Back enabled on secondary interface */ + +/* Header type 2 (CardBus bridges) */ +#define PCI_CB_CAPABILITY_LIST 0x14 +/* 0x15 reserved */ +#define PCI_CB_SEC_STATUS 0x16 /* Secondary status */ +#define PCI_CB_PRIMARY_BUS 0x18 /* PCI bus number */ +#define PCI_CB_CARD_BUS 0x19 /* CardBus bus number */ +#define PCI_CB_SUBORDINATE_BUS 0x1a /* Subordinate bus number */ +#define PCI_CB_LATENCY_TIMER 0x1b /* CardBus latency timer */ +#define PCI_CB_MEMORY_BASE_0 0x1c +#define PCI_CB_MEMORY_LIMIT_0 0x20 +#define PCI_CB_MEMORY_BASE_1 0x24 +#define PCI_CB_MEMORY_LIMIT_1 0x28 +#define PCI_CB_IO_BASE_0 0x2c +#define PCI_CB_IO_BASE_0_HI 0x2e +#define PCI_CB_IO_LIMIT_0 0x30 +#define PCI_CB_IO_LIMIT_0_HI 0x32 +#define PCI_CB_IO_BASE_1 0x34 +#define PCI_CB_IO_BASE_1_HI 0x36 +#define PCI_CB_IO_LIMIT_1 0x38 +#define PCI_CB_IO_LIMIT_1_HI 0x3a +#define PCI_CB_IO_RANGE_MASK (~0x03UL) +/* 0x3c-0x3d are same as for htype 0 */ +#define PCI_CB_BRIDGE_CONTROL 0x3e +#define PCI_CB_BRIDGE_CTL_PARITY 0x01 /* Similar to standard bridge control register */ +#define PCI_CB_BRIDGE_CTL_SERR 0x02 +#define PCI_CB_BRIDGE_CTL_ISA 0x04 +#define PCI_CB_BRIDGE_CTL_VGA 0x08 +#define PCI_CB_BRIDGE_CTL_MASTER_ABORT 0x20 +#define PCI_CB_BRIDGE_CTL_CB_RESET 0x40 /* CardBus reset */ +#define PCI_CB_BRIDGE_CTL_16BIT_INT 0x80 /* Enable interrupt for 16-bit cards */ +#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM0 0x100 /* Prefetch enable for both memory regions */ +#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM1 0x200 +#define PCI_CB_BRIDGE_CTL_POST_WRITES 0x400 +#define PCI_CB_SUBSYSTEM_VENDOR_ID 0x40 +#define PCI_CB_SUBSYSTEM_ID 0x42 +#define PCI_CB_LEGACY_MODE_BASE 0x44 /* 16-bit PC Card legacy mode base address (ExCa) */ +/* 0x48-0x7f reserved */ + +/* Capability lists */ + +#define PCI_CAP_LIST_ID 0 /* Capability ID */ +#define PCI_CAP_ID_PM 0x01 /* Power Management */ +#define PCI_CAP_ID_AGP 0x02 /* Accelerated Graphics Port */ +#define PCI_CAP_ID_VPD 0x03 /* Vital Product Data */ +#define PCI_CAP_ID_SLOTID 0x04 /* Slot Identification */ +#define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ +#define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */ +#define PCI_CAP_ID_PCIX 0x07 /* PCI-X */ +#define PCI_CAP_ID_HT 0x08 /* HyperTransport */ +#define PCI_CAP_ID_VNDR 0x09 /* Vendor specific */ +#define PCI_CAP_ID_DBG 0x0A /* Debug port */ +#define PCI_CAP_ID_CCRC 0x0B /* CompactPCI Central Resource Control */ +#define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */ +#define PCI_CAP_ID_SSVID 0x0D /* Bridge subsystem vendor/device ID */ +#define PCI_CAP_ID_AGP3 0x0E /* AGP Target PCI-PCI bridge */ +#define PCI_CAP_ID_SECDEV 0x0F /* Secure Device */ +#define PCI_CAP_ID_EXP 0x10 /* PCI Express */ +#define PCI_CAP_ID_MSIX 0x11 /* MSI-X */ +#define PCI_CAP_ID_SATA 0x12 /* SATA Data/Index Conf. */ +#define PCI_CAP_ID_AF 0x13 /* PCI Advanced Features */ +#define PCI_CAP_ID_MAX PCI_CAP_ID_AF +#define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */ +#define PCI_CAP_FLAGS 2 /* Capability defined flags (16 bits) */ +#define PCI_CAP_SIZEOF 4 + +/* Power Management Registers */ + +#define PCI_PM_PMC 2 /* PM Capabilities Register */ +#define PCI_PM_CAP_VER_MASK 0x0007 /* Version */ +#define PCI_PM_CAP_PME_CLOCK 0x0008 /* PME clock required */ +#define PCI_PM_CAP_RESERVED 0x0010 /* Reserved field */ +#define PCI_PM_CAP_DSI 0x0020 /* Device specific initialization */ +#define PCI_PM_CAP_AUX_POWER 0x01C0 /* Auxiliary power support mask */ +#define PCI_PM_CAP_D1 0x0200 /* D1 power state support */ +#define PCI_PM_CAP_D2 0x0400 /* D2 power state support */ +#define PCI_PM_CAP_PME 0x0800 /* PME pin supported */ +#define PCI_PM_CAP_PME_MASK 0xF800 /* PME Mask of all supported states */ +#define PCI_PM_CAP_PME_D0 0x0800 /* PME# from D0 */ +#define PCI_PM_CAP_PME_D1 0x1000 /* PME# from D1 */ +#define PCI_PM_CAP_PME_D2 0x2000 /* PME# from D2 */ +#define PCI_PM_CAP_PME_D3 0x4000 /* PME# from D3 (hot) */ +#define PCI_PM_CAP_PME_D3cold 0x8000 /* PME# from D3 (cold) */ +#define PCI_PM_CAP_PME_SHIFT 11 /* Start of the PME Mask in PMC */ +#define PCI_PM_CTRL 4 /* PM control and status register */ +#define PCI_PM_CTRL_STATE_MASK 0x0003 /* Current power state (D0 to D3) */ +#define PCI_PM_CTRL_NO_SOFT_RESET 0x0008 /* No reset for D3hot->D0 */ +#define PCI_PM_CTRL_PME_ENABLE 0x0100 /* PME pin enable */ +#define PCI_PM_CTRL_DATA_SEL_MASK 0x1e00 /* Data select (??) */ +#define PCI_PM_CTRL_DATA_SCALE_MASK 0x6000 /* Data scale (??) */ +#define PCI_PM_CTRL_PME_STATUS 0x8000 /* PME pin status */ +#define PCI_PM_PPB_EXTENSIONS 6 /* PPB support extensions (??) */ +#define PCI_PM_PPB_B2_B3 0x40 /* Stop clock when in D3hot (??) */ +#define PCI_PM_BPCC_ENABLE 0x80 /* Bus power/clock control enable (??) */ +#define PCI_PM_DATA_REGISTER 7 /* (??) */ +#define PCI_PM_SIZEOF 8 + +/* AGP registers */ + +#define PCI_AGP_VERSION 2 /* BCD version number */ +#define PCI_AGP_RFU 3 /* Rest of capability flags */ +#define PCI_AGP_STATUS 4 /* Status register */ +#define PCI_AGP_STATUS_RQ_MASK 0xff000000 /* Maximum number of requests - 1 */ +#define PCI_AGP_STATUS_SBA 0x0200 /* Sideband addressing supported */ +#define PCI_AGP_STATUS_64BIT 0x0020 /* 64-bit addressing supported */ +#define PCI_AGP_STATUS_FW 0x0010 /* FW transfers supported */ +#define PCI_AGP_STATUS_RATE4 0x0004 /* 4x transfer rate supported */ +#define PCI_AGP_STATUS_RATE2 0x0002 /* 2x transfer rate supported */ +#define PCI_AGP_STATUS_RATE1 0x0001 /* 1x transfer rate supported */ +#define PCI_AGP_COMMAND 8 /* Control register */ +#define PCI_AGP_COMMAND_RQ_MASK 0xff000000 /* Master: Maximum number of requests */ +#define PCI_AGP_COMMAND_SBA 0x0200 /* Sideband addressing enabled */ +#define PCI_AGP_COMMAND_AGP 0x0100 /* Allow processing of AGP transactions */ +#define PCI_AGP_COMMAND_64BIT 0x0020 /* Allow processing of 64-bit addresses */ +#define PCI_AGP_COMMAND_FW 0x0010 /* Force FW transfers */ +#define PCI_AGP_COMMAND_RATE4 0x0004 /* Use 4x rate */ +#define PCI_AGP_COMMAND_RATE2 0x0002 /* Use 2x rate */ +#define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 1x rate */ +#define PCI_AGP_SIZEOF 12 + +/* Vital Product Data */ + +#define PCI_VPD_ADDR 2 /* Address to access (15 bits!) */ +#define PCI_VPD_ADDR_MASK 0x7fff /* Address mask */ +#define PCI_VPD_ADDR_F 0x8000 /* Write 0, 1 indicates completion */ +#define PCI_VPD_DATA 4 /* 32-bits of data returned here */ +#define PCI_CAP_VPD_SIZEOF 8 + +/* Slot Identification */ + +#define PCI_SID_ESR 2 /* Expansion Slot Register */ +#define PCI_SID_ESR_NSLOTS 0x1f /* Number of expansion slots available */ +#define PCI_SID_ESR_FIC 0x20 /* First In Chassis Flag */ +#define PCI_SID_CHASSIS_NR 3 /* Chassis Number */ + +/* Message Signalled Interrupts registers */ + +#define PCI_MSI_FLAGS 2 /* Message Control */ +#define PCI_MSI_FLAGS_ENABLE 0x0001 /* MSI feature enabled */ +#define PCI_MSI_FLAGS_QMASK 0x000e /* Maximum queue size available */ +#define PCI_MSI_FLAGS_QSIZE 0x0070 /* Message queue size configured */ +#define PCI_MSI_FLAGS_64BIT 0x0080 /* 64-bit addresses allowed */ +#define PCI_MSI_FLAGS_MASKBIT 0x0100 /* Per-vector masking capable */ +#define PCI_MSI_RFU 3 /* Rest of capability flags */ +#define PCI_MSI_ADDRESS_LO 4 /* Lower 32 bits */ +#define PCI_MSI_ADDRESS_HI 8 /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */ +#define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit devices */ +#define PCI_MSI_MASK_32 12 /* Mask bits register for 32-bit devices */ +#define PCI_MSI_PENDING_32 16 /* Pending intrs for 32-bit devices */ +#define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit devices */ +#define PCI_MSI_MASK_64 16 /* Mask bits register for 64-bit devices */ +#define PCI_MSI_PENDING_64 20 /* Pending intrs for 64-bit devices */ + +/* MSI-X registers */ +#define PCI_MSIX_FLAGS 2 /* Message Control */ +#define PCI_MSIX_FLAGS_QSIZE 0x07FF /* Table size */ +#define PCI_MSIX_FLAGS_MASKALL 0x4000 /* Mask all vectors for this function */ +#define PCI_MSIX_FLAGS_ENABLE 0x8000 /* MSI-X enable */ +#define PCI_MSIX_TABLE 4 /* Table offset */ +#define PCI_MSIX_TABLE_BIR 0x00000007 /* BAR index */ +#define PCI_MSIX_TABLE_OFFSET 0xfffffff8 /* Offset into specified BAR */ +#define PCI_MSIX_PBA 8 /* Pending Bit Array offset */ +#define PCI_MSIX_PBA_BIR 0x00000007 /* BAR index */ +#define PCI_MSIX_PBA_OFFSET 0xfffffff8 /* Offset into specified BAR */ +#define PCI_MSIX_FLAGS_BIRMASK (7 << 0) /* deprecated */ +#define PCI_CAP_MSIX_SIZEOF 12 /* size of MSIX registers */ + +/* MSI-X entry's format */ +#define PCI_MSIX_ENTRY_SIZE 16 +#define PCI_MSIX_ENTRY_LOWER_ADDR 0 +#define PCI_MSIX_ENTRY_UPPER_ADDR 4 +#define PCI_MSIX_ENTRY_DATA 8 +#define PCI_MSIX_ENTRY_VECTOR_CTRL 12 +#define PCI_MSIX_ENTRY_CTRL_MASKBIT 1 + +/* CompactPCI Hotswap Register */ + +#define PCI_CHSWP_CSR 2 /* Control and Status Register */ +#define PCI_CHSWP_DHA 0x01 /* Device Hiding Arm */ +#define PCI_CHSWP_EIM 0x02 /* ENUM# Signal Mask */ +#define PCI_CHSWP_PIE 0x04 /* Pending Insert or Extract */ +#define PCI_CHSWP_LOO 0x08 /* LED On / Off */ +#define PCI_CHSWP_PI 0x30 /* Programming Interface */ +#define PCI_CHSWP_EXT 0x40 /* ENUM# status - extraction */ +#define PCI_CHSWP_INS 0x80 /* ENUM# status - insertion */ + +/* PCI Advanced Feature registers */ + +#define PCI_AF_LENGTH 2 +#define PCI_AF_CAP 3 +#define PCI_AF_CAP_TP 0x01 +#define PCI_AF_CAP_FLR 0x02 +#define PCI_AF_CTRL 4 +#define PCI_AF_CTRL_FLR 0x01 +#define PCI_AF_STATUS 5 +#define PCI_AF_STATUS_TP 0x01 +#define PCI_CAP_AF_SIZEOF 6 /* size of AF registers */ + +/* PCI-X registers (Type 0 (non-bridge) devices) */ + +#define PCI_X_CMD 2 /* Modes & Features */ +#define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */ +#define PCI_X_CMD_ERO 0x0002 /* Enable Relaxed Ordering */ +#define PCI_X_CMD_READ_512 0x0000 /* 512 byte maximum read byte count */ +#define PCI_X_CMD_READ_1K 0x0004 /* 1Kbyte maximum read byte count */ +#define PCI_X_CMD_READ_2K 0x0008 /* 2Kbyte maximum read byte count */ +#define PCI_X_CMD_READ_4K 0x000c /* 4Kbyte maximum read byte count */ +#define PCI_X_CMD_MAX_READ 0x000c /* Max Memory Read Byte Count */ + /* Max # of outstanding split transactions */ +#define PCI_X_CMD_SPLIT_1 0x0000 /* Max 1 */ +#define PCI_X_CMD_SPLIT_2 0x0010 /* Max 2 */ +#define PCI_X_CMD_SPLIT_3 0x0020 /* Max 3 */ +#define PCI_X_CMD_SPLIT_4 0x0030 /* Max 4 */ +#define PCI_X_CMD_SPLIT_8 0x0040 /* Max 8 */ +#define PCI_X_CMD_SPLIT_12 0x0050 /* Max 12 */ +#define PCI_X_CMD_SPLIT_16 0x0060 /* Max 16 */ +#define PCI_X_CMD_SPLIT_32 0x0070 /* Max 32 */ +#define PCI_X_CMD_MAX_SPLIT 0x0070 /* Max Outstanding Split Transactions */ +#define PCI_X_CMD_VERSION(x) (((x) >> 12) & 3) /* Version */ +#define PCI_X_STATUS 4 /* PCI-X capabilities */ +#define PCI_X_STATUS_DEVFN 0x000000ff /* A copy of devfn */ +#define PCI_X_STATUS_BUS 0x0000ff00 /* A copy of bus nr */ +#define PCI_X_STATUS_64BIT 0x00010000 /* 64-bit device */ +#define PCI_X_STATUS_133MHZ 0x00020000 /* 133 MHz capable */ +#define PCI_X_STATUS_SPL_DISC 0x00040000 /* Split Completion Discarded */ +#define PCI_X_STATUS_UNX_SPL 0x00080000 /* Unexpected Split Completion */ +#define PCI_X_STATUS_COMPLEX 0x00100000 /* Device Complexity */ +#define PCI_X_STATUS_MAX_READ 0x00600000 /* Designed Max Memory Read Count */ +#define PCI_X_STATUS_MAX_SPLIT 0x03800000 /* Designed Max Outstanding Split Transactions */ +#define PCI_X_STATUS_MAX_CUM 0x1c000000 /* Designed Max Cumulative Read Size */ +#define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg */ +#define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */ +#define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */ +#define PCI_X_ECC_CSR 8 /* ECC control and status */ +#define PCI_CAP_PCIX_SIZEOF_V0 8 /* size of registers for Version 0 */ +#define PCI_CAP_PCIX_SIZEOF_V1 24 /* size for Version 1 */ +#define PCI_CAP_PCIX_SIZEOF_V2 PCI_CAP_PCIX_SIZEOF_V1 /* Same for v2 */ + +/* PCI-X registers (Type 1 (bridge) devices) */ + +#define PCI_X_BRIDGE_SSTATUS 2 /* Secondary Status */ +#define PCI_X_SSTATUS_64BIT 0x0001 /* Secondary AD interface is 64 bits */ +#define PCI_X_SSTATUS_133MHZ 0x0002 /* 133 MHz capable */ +#define PCI_X_SSTATUS_FREQ 0x03c0 /* Secondary Bus Mode and Frequency */ +#define PCI_X_SSTATUS_VERS 0x3000 /* PCI-X Capability Version */ +#define PCI_X_SSTATUS_V1 0x1000 /* Mode 2, not Mode 1 */ +#define PCI_X_SSTATUS_V2 0x2000 /* Mode 1 or Modes 1 and 2 */ +#define PCI_X_SSTATUS_266MHZ 0x4000 /* 266 MHz capable */ +#define PCI_X_SSTATUS_533MHZ 0x8000 /* 533 MHz capable */ +#define PCI_X_BRIDGE_STATUS 4 /* Bridge Status */ + +/* PCI Bridge Subsystem ID registers */ + +#define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */ +#define PCI_SSVID_DEVICE_ID 6 /* PCI-Bridge subsystem device id register */ + +/* PCI Express capability registers */ + +#define PCI_EXP_FLAGS 2 /* Capabilities register */ +#define PCI_EXP_FLAGS_VERS 0x000f /* Capability version */ +#define PCI_EXP_FLAGS_TYPE 0x00f0 /* Device/Port type */ +#define PCI_EXP_TYPE_ENDPOINT 0x0 /* Express Endpoint */ +#define PCI_EXP_TYPE_LEG_END 0x1 /* Legacy Endpoint */ +#define PCI_EXP_TYPE_ROOT_PORT 0x4 /* Root Port */ +#define PCI_EXP_TYPE_UPSTREAM 0x5 /* Upstream Port */ +#define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */ +#define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */ +#define PCI_EXP_TYPE_PCIE_BRIDGE 0x8 /* PCI/PCI-X to PCIE Bridge */ +#define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */ +#define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ +#define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ +#define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ +#define PCI_EXP_DEVCAP 4 /* Device capabilities */ +#define PCI_EXP_DEVCAP_PAYLOAD 0x07 /* Max_Payload_Size */ +#define PCI_EXP_DEVCAP_PHANTOM 0x18 /* Phantom functions */ +#define PCI_EXP_DEVCAP_EXT_TAG 0x20 /* Extended tags */ +#define PCI_EXP_DEVCAP_L0S 0x1c0 /* L0s Acceptable Latency */ +#define PCI_EXP_DEVCAP_L1 0xe00 /* L1 Acceptable Latency */ +#define PCI_EXP_DEVCAP_ATN_BUT 0x1000 /* Attention Button Present */ +#define PCI_EXP_DEVCAP_ATN_IND 0x2000 /* Attention Indicator Present */ +#define PCI_EXP_DEVCAP_PWR_IND 0x4000 /* Power Indicator Present */ +#define PCI_EXP_DEVCAP_RBER 0x8000 /* Role-Based Error Reporting */ +#define PCI_EXP_DEVCAP_PWR_VAL 0x3fc0000 /* Slot Power Limit Value */ +#define PCI_EXP_DEVCAP_PWR_SCL 0xc000000 /* Slot Power Limit Scale */ +#define PCI_EXP_DEVCAP_FLR 0x10000000 /* Function Level Reset */ +#define PCI_EXP_DEVCTL 8 /* Device Control */ +#define PCI_EXP_DEVCTL_CERE 0x0001 /* Correctable Error Reporting En. */ +#define PCI_EXP_DEVCTL_NFERE 0x0002 /* Non-Fatal Error Reporting Enable */ +#define PCI_EXP_DEVCTL_FERE 0x0004 /* Fatal Error Reporting Enable */ +#define PCI_EXP_DEVCTL_URRE 0x0008 /* Unsupported Request Reporting En. */ +#define PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */ +#define PCI_EXP_DEVCTL_PAYLOAD 0x00e0 /* Max_Payload_Size */ +#define PCI_EXP_DEVCTL_EXT_TAG 0x0100 /* Extended Tag Field Enable */ +#define PCI_EXP_DEVCTL_PHANTOM 0x0200 /* Phantom Functions Enable */ +#define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */ +#define PCI_EXP_DEVCTL_NOSNOOP_EN 0x0800 /* Enable No Snoop */ +#define PCI_EXP_DEVCTL_READRQ 0x7000 /* Max_Read_Request_Size */ +#define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */ +#define PCI_EXP_DEVSTA 10 /* Device Status */ +#define PCI_EXP_DEVSTA_CED 0x01 /* Correctable Error Detected */ +#define PCI_EXP_DEVSTA_NFED 0x02 /* Non-Fatal Error Detected */ +#define PCI_EXP_DEVSTA_FED 0x04 /* Fatal Error Detected */ +#define PCI_EXP_DEVSTA_URD 0x08 /* Unsupported Request Detected */ +#define PCI_EXP_DEVSTA_AUXPD 0x10 /* AUX Power Detected */ +#define PCI_EXP_DEVSTA_TRPND 0x20 /* Transactions Pending */ +#define PCI_EXP_LNKCAP 12 /* Link Capabilities */ +#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ +#define PCI_EXP_LNKCAP_SLS_2_5GB 0x1 /* LNKCAP2 SLS Vector bit 0 (2.5GT/s) */ +#define PCI_EXP_LNKCAP_SLS_5_0GB 0x2 /* LNKCAP2 SLS Vector bit 1 (5.0GT/s) */ +#define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */ +#define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */ +#define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */ +#define PCI_EXP_LNKCAP_L1EL 0x00038000 /* L1 Exit Latency */ +#define PCI_EXP_LNKCAP_CLKPM 0x00040000 /* L1 Clock Power Management */ +#define PCI_EXP_LNKCAP_SDERC 0x00080000 /* Surprise Down Error Reporting Capable */ +#define PCI_EXP_LNKCAP_DLLLARC 0x00100000 /* Data Link Layer Link Active Reporting Capable */ +#define PCI_EXP_LNKCAP_LBNC 0x00200000 /* Link Bandwidth Notification Capability */ +#define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */ +#define PCI_EXP_LNKCTL 16 /* Link Control */ +#define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */ +#define PCI_EXP_LNKCTL_ASPM_L0S 0x01 /* L0s Enable */ +#define PCI_EXP_LNKCTL_ASPM_L1 0x02 /* L1 Enable */ +#define PCI_EXP_LNKCTL_RCB 0x0008 /* Read Completion Boundary */ +#define PCI_EXP_LNKCTL_LD 0x0010 /* Link Disable */ +#define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */ +#define PCI_EXP_LNKCTL_CCC 0x0040 /* Common Clock Configuration */ +#define PCI_EXP_LNKCTL_ES 0x0080 /* Extended Synch */ +#define PCI_EXP_LNKCTL_CLKREQ_EN 0x100 /* Enable clkreq */ +#define PCI_EXP_LNKCTL_HAWD 0x0200 /* Hardware Autonomous Width Disable */ +#define PCI_EXP_LNKCTL_LBMIE 0x0400 /* Link Bandwidth Management Interrupt Enable */ +#define PCI_EXP_LNKCTL_LABIE 0x0800 /* Lnk Autonomous Bandwidth Interrupt Enable */ +#define PCI_EXP_LNKSTA 18 /* Link Status */ +#define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ +#define PCI_EXP_LNKSTA_CLS_2_5GB 0x01 /* Current Link Speed 2.5GT/s */ +#define PCI_EXP_LNKSTA_CLS_5_0GB 0x02 /* Current Link Speed 5.0GT/s */ +#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Nogotiated Link Width */ +#define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */ +#define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */ +#define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ +#define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ +#define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ +#define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */ +#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ +#define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ +#define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ +#define PCI_EXP_SLTCAP_MRLSP 0x00000004 /* MRL Sensor Present */ +#define PCI_EXP_SLTCAP_AIP 0x00000008 /* Attention Indicator Present */ +#define PCI_EXP_SLTCAP_PIP 0x00000010 /* Power Indicator Present */ +#define PCI_EXP_SLTCAP_HPS 0x00000020 /* Hot-Plug Surprise */ +#define PCI_EXP_SLTCAP_HPC 0x00000040 /* Hot-Plug Capable */ +#define PCI_EXP_SLTCAP_SPLV 0x00007f80 /* Slot Power Limit Value */ +#define PCI_EXP_SLTCAP_SPLS 0x00018000 /* Slot Power Limit Scale */ +#define PCI_EXP_SLTCAP_EIP 0x00020000 /* Electromechanical Interlock Present */ +#define PCI_EXP_SLTCAP_NCCS 0x00040000 /* No Command Completed Support */ +#define PCI_EXP_SLTCAP_PSN 0xfff80000 /* Physical Slot Number */ +#define PCI_EXP_SLTCTL 24 /* Slot Control */ +#define PCI_EXP_SLTCTL_ABPE 0x0001 /* Attention Button Pressed Enable */ +#define PCI_EXP_SLTCTL_PFDE 0x0002 /* Power Fault Detected Enable */ +#define PCI_EXP_SLTCTL_MRLSCE 0x0004 /* MRL Sensor Changed Enable */ +#define PCI_EXP_SLTCTL_PDCE 0x0008 /* Presence Detect Changed Enable */ +#define PCI_EXP_SLTCTL_CCIE 0x0010 /* Command Completed Interrupt Enable */ +#define PCI_EXP_SLTCTL_HPIE 0x0020 /* Hot-Plug Interrupt Enable */ +#define PCI_EXP_SLTCTL_AIC 0x00c0 /* Attention Indicator Control */ +#define PCI_EXP_SLTCTL_PIC 0x0300 /* Power Indicator Control */ +#define PCI_EXP_SLTCTL_PCC 0x0400 /* Power Controller Control */ +#define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */ +#define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */ +#define PCI_EXP_SLTSTA 26 /* Slot Status */ +#define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */ +#define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */ +#define PCI_EXP_SLTSTA_MRLSC 0x0004 /* MRL Sensor Changed */ +#define PCI_EXP_SLTSTA_PDC 0x0008 /* Presence Detect Changed */ +#define PCI_EXP_SLTSTA_CC 0x0010 /* Command Completed */ +#define PCI_EXP_SLTSTA_MRLSS 0x0020 /* MRL Sensor State */ +#define PCI_EXP_SLTSTA_PDS 0x0040 /* Presence Detect State */ +#define PCI_EXP_SLTSTA_EIS 0x0080 /* Electromechanical Interlock Status */ +#define PCI_EXP_SLTSTA_DLLSC 0x0100 /* Data Link Layer State Changed */ +#define PCI_EXP_RTCTL 28 /* Root Control */ +#define PCI_EXP_RTCTL_SECEE 0x01 /* System Error on Correctable Error */ +#define PCI_EXP_RTCTL_SENFEE 0x02 /* System Error on Non-Fatal Error */ +#define PCI_EXP_RTCTL_SEFEE 0x04 /* System Error on Fatal Error */ +#define PCI_EXP_RTCTL_PMEIE 0x08 /* PME Interrupt Enable */ +#define PCI_EXP_RTCTL_CRSSVE 0x10 /* CRS Software Visibility Enable */ +#define PCI_EXP_RTCAP 30 /* Root Capabilities */ +#define PCI_EXP_RTSTA 32 /* Root Status */ +#define PCI_EXP_RTSTA_PME 0x10000 /* PME status */ +#define PCI_EXP_RTSTA_PENDING 0x20000 /* PME pending */ +/* + * Note that the following PCI Express 'Capability Structure' registers + * were introduced with 'Capability Version' 0x2 (v2). These registers + * do not exist on devices with Capability Version 1. Use pci_pcie_cap2() + * to use these fields safely. + */ +#define PCI_EXP_DEVCAP2 36 /* Device Capabilities 2 */ +#define PCI_EXP_DEVCAP2_ARI 0x20 /* Alternative Routing-ID */ +#define PCI_EXP_DEVCAP2_LTR 0x800 /* Latency tolerance reporting */ +#define PCI_EXP_OBFF_MASK 0xc0000 /* OBFF support mechanism */ +#define PCI_EXP_OBFF_MSG 0x40000 /* New message signaling */ +#define PCI_EXP_OBFF_WAKE 0x80000 /* Re-use WAKE# for OBFF */ +#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */ +#define PCI_EXP_DEVCTL2_ARI 0x20 /* Alternative Routing-ID */ +#define PCI_EXP_IDO_REQ_EN 0x100 /* ID-based ordering request enable */ +#define PCI_EXP_IDO_CMP_EN 0x200 /* ID-based ordering completion enable */ +#define PCI_EXP_LTR_EN 0x400 /* Latency tolerance reporting */ +#define PCI_EXP_OBFF_MSGA_EN 0x2000 /* OBFF enable with Message type A */ +#define PCI_EXP_OBFF_MSGB_EN 0x4000 /* OBFF enable with Message type B */ +#define PCI_EXP_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ +#define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */ +#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x02 /* Supported Link Speed 2.5GT/s */ +#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x04 /* Supported Link Speed 5.0GT/s */ +#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x08 /* Supported Link Speed 8.0GT/s */ +#define PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */ +#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ +#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ +#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ + +/* Extended Capabilities (PCI-X 2.0 and Express) */ +#define PCI_EXT_CAP_ID(header) (header & 0x0000ffff) +#define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf) +#define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc) + +#define PCI_EXT_CAP_ID_ERR 0x01 /* Advanced Error Reporting */ +#define PCI_EXT_CAP_ID_VC 0x02 /* Virtual Channel Capability */ +#define PCI_EXT_CAP_ID_DSN 0x03 /* Device Serial Number */ +#define PCI_EXT_CAP_ID_PWR 0x04 /* Power Budgeting */ +#define PCI_EXT_CAP_ID_RCLD 0x05 /* Root Complex Link Declaration */ +#define PCI_EXT_CAP_ID_RCILC 0x06 /* Root Complex Internal Link Control */ +#define PCI_EXT_CAP_ID_RCEC 0x07 /* Root Complex Event Collector */ +#define PCI_EXT_CAP_ID_MFVC 0x08 /* Multi-Function VC Capability */ +#define PCI_EXT_CAP_ID_VC9 0x09 /* same as _VC */ +#define PCI_EXT_CAP_ID_RCRB 0x0A /* Root Complex RB? */ +#define PCI_EXT_CAP_ID_VNDR 0x0B /* Vendor Specific */ +#define PCI_EXT_CAP_ID_CAC 0x0C /* Config Access - obsolete */ +#define PCI_EXT_CAP_ID_ACS 0x0D /* Access Control Services */ +#define PCI_EXT_CAP_ID_ARI 0x0E /* Alternate Routing ID */ +#define PCI_EXT_CAP_ID_ATS 0x0F /* Address Translation Services */ +#define PCI_EXT_CAP_ID_SRIOV 0x10 /* Single Root I/O Virtualization */ +#define PCI_EXT_CAP_ID_MRIOV 0x11 /* Multi Root I/O Virtualization */ +#define PCI_EXT_CAP_ID_MCAST 0x12 /* Multicast */ +#define PCI_EXT_CAP_ID_PRI 0x13 /* Page Request Interface */ +#define PCI_EXT_CAP_ID_AMD_XXX 0x14 /* reserved for AMD */ +#define PCI_EXT_CAP_ID_REBAR 0x15 /* resizable BAR */ +#define PCI_EXT_CAP_ID_DPA 0x16 /* dynamic power alloc */ +#define PCI_EXT_CAP_ID_TPH 0x17 /* TPH request */ +#define PCI_EXT_CAP_ID_LTR 0x18 /* latency tolerance reporting */ +#define PCI_EXT_CAP_ID_SECPCI 0x19 /* Secondary PCIe */ +#define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */ +#define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */ +#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PASID + +#define PCI_EXT_CAP_DSN_SIZEOF 12 +#define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40 + +/* Advanced Error Reporting */ +#define PCI_ERR_UNCOR_STATUS 4 /* Uncorrectable Error Status */ +#define PCI_ERR_UNC_TRAIN 0x00000001 /* Training */ +#define PCI_ERR_UNC_DLP 0x00000010 /* Data Link Protocol */ +#define PCI_ERR_UNC_SURPDN 0x00000020 /* Surprise Down */ +#define PCI_ERR_UNC_POISON_TLP 0x00001000 /* Poisoned TLP */ +#define PCI_ERR_UNC_FCP 0x00002000 /* Flow Control Protocol */ +#define PCI_ERR_UNC_COMP_TIME 0x00004000 /* Completion Timeout */ +#define PCI_ERR_UNC_COMP_ABORT 0x00008000 /* Completer Abort */ +#define PCI_ERR_UNC_UNX_COMP 0x00010000 /* Unexpected Completion */ +#define PCI_ERR_UNC_RX_OVER 0x00020000 /* Receiver Overflow */ +#define PCI_ERR_UNC_MALF_TLP 0x00040000 /* Malformed TLP */ +#define PCI_ERR_UNC_ECRC 0x00080000 /* ECRC Error Status */ +#define PCI_ERR_UNC_UNSUP 0x00100000 /* Unsupported Request */ +#define PCI_ERR_UNC_ACSV 0x00200000 /* ACS Violation */ +#define PCI_ERR_UNC_INTN 0x00400000 /* internal error */ +#define PCI_ERR_UNC_MCBTLP 0x00800000 /* MC blocked TLP */ +#define PCI_ERR_UNC_ATOMEG 0x01000000 /* Atomic egress blocked */ +#define PCI_ERR_UNC_TLPPRE 0x02000000 /* TLP prefix blocked */ +#define PCI_ERR_UNCOR_MASK 8 /* Uncorrectable Error Mask */ + /* Same bits as above */ +#define PCI_ERR_UNCOR_SEVER 12 /* Uncorrectable Error Severity */ + /* Same bits as above */ +#define PCI_ERR_COR_STATUS 16 /* Correctable Error Status */ +#define PCI_ERR_COR_RCVR 0x00000001 /* Receiver Error Status */ +#define PCI_ERR_COR_BAD_TLP 0x00000040 /* Bad TLP Status */ +#define PCI_ERR_COR_BAD_DLLP 0x00000080 /* Bad DLLP Status */ +#define PCI_ERR_COR_REP_ROLL 0x00000100 /* REPLAY_NUM Rollover */ +#define PCI_ERR_COR_REP_TIMER 0x00001000 /* Replay Timer Timeout */ +#define PCI_ERR_COR_ADV_NFAT 0x00002000 /* Advisory Non-Fatal */ +#define PCI_ERR_COR_INTERNAL 0x00004000 /* Corrected Internal */ +#define PCI_ERR_COR_LOG_OVER 0x00008000 /* Header Log Overflow */ +#define PCI_ERR_COR_MASK 20 /* Correctable Error Mask */ + /* Same bits as above */ +#define PCI_ERR_CAP 24 /* Advanced Error Capabilities */ +#define PCI_ERR_CAP_FEP(x) ((x) & 31) /* First Error Pointer */ +#define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */ +#define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */ +#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ +#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ +#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ +#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ +/* Correctable Err Reporting Enable */ +#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 +/* Non-fatal Err Reporting Enable */ +#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 +/* Fatal Err Reporting Enable */ +#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 +#define PCI_ERR_ROOT_STATUS 48 +#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ +/* Multi ERR_COR Received */ +#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 +/* ERR_FATAL/NONFATAL Recevied */ +#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 +/* Multi ERR_FATAL/NONFATAL Recevied */ +#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 +#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */ +#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ +#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ +#define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ + +/* Virtual Channel */ +#define PCI_VC_PORT_REG1 4 +#define PCI_VC_REG1_EVCC 0x7 /* extended vc count */ +#define PCI_VC_PORT_REG2 8 +#define PCI_VC_REG2_32_PHASE 0x2 +#define PCI_VC_REG2_64_PHASE 0x4 +#define PCI_VC_REG2_128_PHASE 0x8 +#define PCI_VC_PORT_CTRL 12 +#define PCI_VC_PORT_STATUS 14 +#define PCI_VC_RES_CAP 16 +#define PCI_VC_RES_CTRL 20 +#define PCI_VC_RES_STATUS 26 +#define PCI_CAP_VC_BASE_SIZEOF 0x10 +#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C + +/* Power Budgeting */ +#define PCI_PWR_DSR 4 /* Data Select Register */ +#define PCI_PWR_DATA 8 /* Data Register */ +#define PCI_PWR_DATA_BASE(x) ((x) & 0xff) /* Base Power */ +#define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3) /* Data Scale */ +#define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7) /* PM Sub State */ +#define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3) /* PM State */ +#define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7) /* Type */ +#define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7) /* Power Rail */ +#define PCI_PWR_CAP 12 /* Capability */ +#define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */ +#define PCI_EXT_CAP_PWR_SIZEOF 16 + +/* Vendor-Specific (VSEC, PCI_EXT_CAP_ID_VNDR) */ +#define PCI_VNDR_HEADER 4 /* Vendor-Specific Header */ +#define PCI_VNDR_HEADER_ID(x) ((x) & 0xffff) +#define PCI_VNDR_HEADER_REV(x) (((x) >> 16) & 0xf) +#define PCI_VNDR_HEADER_LEN(x) (((x) >> 20) & 0xfff) + +/* + * Hypertransport sub capability types + * + * Unfortunately there are both 3 bit and 5 bit capability types defined + * in the HT spec, catering for that is a little messy. You probably don't + * want to use these directly, just use pci_find_ht_capability() and it + * will do the right thing for you. + */ +#define HT_3BIT_CAP_MASK 0xE0 +#define HT_CAPTYPE_SLAVE 0x00 /* Slave/Primary link configuration */ +#define HT_CAPTYPE_HOST 0x20 /* Host/Secondary link configuration */ + +#define HT_5BIT_CAP_MASK 0xF8 +#define HT_CAPTYPE_IRQ 0x80 /* IRQ Configuration */ +#define HT_CAPTYPE_REMAPPING_40 0xA0 /* 40 bit address remapping */ +#define HT_CAPTYPE_REMAPPING_64 0xA2 /* 64 bit address remapping */ +#define HT_CAPTYPE_UNITID_CLUMP 0x90 /* Unit ID clumping */ +#define HT_CAPTYPE_EXTCONF 0x98 /* Extended Configuration Space Access */ +#define HT_CAPTYPE_MSI_MAPPING 0xA8 /* MSI Mapping Capability */ +#define HT_MSI_FLAGS 0x02 /* Offset to flags */ +#define HT_MSI_FLAGS_ENABLE 0x1 /* Mapping enable */ +#define HT_MSI_FLAGS_FIXED 0x2 /* Fixed mapping only */ +#define HT_MSI_FIXED_ADDR 0x00000000FEE00000ULL /* Fixed addr */ +#define HT_MSI_ADDR_LO 0x04 /* Offset to low addr bits */ +#define HT_MSI_ADDR_LO_MASK 0xFFF00000 /* Low address bit mask */ +#define HT_MSI_ADDR_HI 0x08 /* Offset to high addr bits */ +#define HT_CAPTYPE_DIRECT_ROUTE 0xB0 /* Direct routing configuration */ +#define HT_CAPTYPE_VCSET 0xB8 /* Virtual Channel configuration */ +#define HT_CAPTYPE_ERROR_RETRY 0xC0 /* Retry on error configuration */ +#define HT_CAPTYPE_GEN3 0xD0 /* Generation 3 hypertransport configuration */ +#define HT_CAPTYPE_PM 0xE0 /* Hypertransport powermanagement configuration */ +#define HT_CAP_SIZEOF_LONG 28 /* slave & primary */ +#define HT_CAP_SIZEOF_SHORT 24 /* host & secondary */ + +/* Alternative Routing-ID Interpretation */ +#define PCI_ARI_CAP 0x04 /* ARI Capability Register */ +#define PCI_ARI_CAP_MFVC 0x0001 /* MFVC Function Groups Capability */ +#define PCI_ARI_CAP_ACS 0x0002 /* ACS Function Groups Capability */ +#define PCI_ARI_CAP_NFN(x) (((x) >> 8) & 0xff) /* Next Function Number */ +#define PCI_ARI_CTRL 0x06 /* ARI Control Register */ +#define PCI_ARI_CTRL_MFVC 0x0001 /* MFVC Function Groups Enable */ +#define PCI_ARI_CTRL_ACS 0x0002 /* ACS Function Groups Enable */ +#define PCI_ARI_CTRL_FG(x) (((x) >> 4) & 7) /* Function Group */ +#define PCI_EXT_CAP_ARI_SIZEOF 8 + +/* Address Translation Service */ +#define PCI_ATS_CAP 0x04 /* ATS Capability Register */ +#define PCI_ATS_CAP_QDEP(x) ((x) & 0x1f) /* Invalidate Queue Depth */ +#define PCI_ATS_MAX_QDEP 32 /* Max Invalidate Queue Depth */ +#define PCI_ATS_CTRL 0x06 /* ATS Control Register */ +#define PCI_ATS_CTRL_ENABLE 0x8000 /* ATS Enable */ +#define PCI_ATS_CTRL_STU(x) ((x) & 0x1f) /* Smallest Translation Unit */ +#define PCI_ATS_MIN_STU 12 /* shift of minimum STU block */ +#define PCI_EXT_CAP_ATS_SIZEOF 8 + +/* Page Request Interface */ +#define PCI_PRI_CTRL 0x04 /* PRI control register */ +#define PCI_PRI_CTRL_ENABLE 0x01 /* Enable */ +#define PCI_PRI_CTRL_RESET 0x02 /* Reset */ +#define PCI_PRI_STATUS 0x06 /* PRI status register */ +#define PCI_PRI_STATUS_RF 0x001 /* Response Failure */ +#define PCI_PRI_STATUS_UPRGI 0x002 /* Unexpected PRG index */ +#define PCI_PRI_STATUS_STOPPED 0x100 /* PRI Stopped */ +#define PCI_PRI_MAX_REQ 0x08 /* PRI max reqs supported */ +#define PCI_PRI_ALLOC_REQ 0x0c /* PRI max reqs allowed */ +#define PCI_EXT_CAP_PRI_SIZEOF 16 + +/* PASID capability */ +#define PCI_PASID_CAP 0x04 /* PASID feature register */ +#define PCI_PASID_CAP_EXEC 0x02 /* Exec permissions Supported */ +#define PCI_PASID_CAP_PRIV 0x04 /* Priviledge Mode Supported */ +#define PCI_PASID_CTRL 0x06 /* PASID control register */ +#define PCI_PASID_CTRL_ENABLE 0x01 /* Enable bit */ +#define PCI_PASID_CTRL_EXEC 0x02 /* Exec permissions Enable */ +#define PCI_PASID_CTRL_PRIV 0x04 /* Priviledge Mode Enable */ +#define PCI_EXT_CAP_PASID_SIZEOF 8 + +/* Single Root I/O Virtualization */ +#define PCI_SRIOV_CAP 0x04 /* SR-IOV Capabilities */ +#define PCI_SRIOV_CAP_VFM 0x01 /* VF Migration Capable */ +#define PCI_SRIOV_CAP_INTR(x) ((x) >> 21) /* Interrupt Message Number */ +#define PCI_SRIOV_CTRL 0x08 /* SR-IOV Control */ +#define PCI_SRIOV_CTRL_VFE 0x01 /* VF Enable */ +#define PCI_SRIOV_CTRL_VFM 0x02 /* VF Migration Enable */ +#define PCI_SRIOV_CTRL_INTR 0x04 /* VF Migration Interrupt Enable */ +#define PCI_SRIOV_CTRL_MSE 0x08 /* VF Memory Space Enable */ +#define PCI_SRIOV_CTRL_ARI 0x10 /* ARI Capable Hierarchy */ +#define PCI_SRIOV_STATUS 0x0a /* SR-IOV Status */ +#define PCI_SRIOV_STATUS_VFM 0x01 /* VF Migration Status */ +#define PCI_SRIOV_INITIAL_VF 0x0c /* Initial VFs */ +#define PCI_SRIOV_TOTAL_VF 0x0e /* Total VFs */ +#define PCI_SRIOV_NUM_VF 0x10 /* Number of VFs */ +#define PCI_SRIOV_FUNC_LINK 0x12 /* Function Dependency Link */ +#define PCI_SRIOV_VF_OFFSET 0x14 /* First VF Offset */ +#define PCI_SRIOV_VF_STRIDE 0x16 /* Following VF Stride */ +#define PCI_SRIOV_VF_DID 0x1a /* VF Device ID */ +#define PCI_SRIOV_SUP_PGSIZE 0x1c /* Supported Page Sizes */ +#define PCI_SRIOV_SYS_PGSIZE 0x20 /* System Page Size */ +#define PCI_SRIOV_BAR 0x24 /* VF BAR0 */ +#define PCI_SRIOV_NUM_BARS 6 /* Number of VF BARs */ +#define PCI_SRIOV_VFM 0x3c /* VF Migration State Array Offset*/ +#define PCI_SRIOV_VFM_BIR(x) ((x) & 7) /* State BIR */ +#define PCI_SRIOV_VFM_OFFSET(x) ((x) & ~7) /* State Offset */ +#define PCI_SRIOV_VFM_UA 0x0 /* Inactive.Unavailable */ +#define PCI_SRIOV_VFM_MI 0x1 /* Dormant.MigrateIn */ +#define PCI_SRIOV_VFM_MO 0x2 /* Active.MigrateOut */ +#define PCI_SRIOV_VFM_AV 0x3 /* Active.Available */ +#define PCI_EXT_CAP_SRIOV_SIZEOF 64 + +#define PCI_LTR_MAX_SNOOP_LAT 0x4 +#define PCI_LTR_MAX_NOSNOOP_LAT 0x6 +#define PCI_LTR_VALUE_MASK 0x000003ff +#define PCI_LTR_SCALE_MASK 0x00001c00 +#define PCI_LTR_SCALE_SHIFT 10 +#define PCI_EXT_CAP_LTR_SIZEOF 8 + +/* Access Control Service */ +#define PCI_ACS_CAP 0x04 /* ACS Capability Register */ +#define PCI_ACS_SV 0x01 /* Source Validation */ +#define PCI_ACS_TB 0x02 /* Translation Blocking */ +#define PCI_ACS_RR 0x04 /* P2P Request Redirect */ +#define PCI_ACS_CR 0x08 /* P2P Completion Redirect */ +#define PCI_ACS_UF 0x10 /* Upstream Forwarding */ +#define PCI_ACS_EC 0x20 /* P2P Egress Control */ +#define PCI_ACS_DT 0x40 /* Direct Translated P2P */ +#define PCI_ACS_EGRESS_BITS 0x05 /* ACS Egress Control Vector Size */ +#define PCI_ACS_CTRL 0x06 /* ACS Control Register */ +#define PCI_ACS_EGRESS_CTL_V 0x08 /* ACS Egress Control Vector */ + +#define PCI_VSEC_HDR 4 /* extended cap - vendor specific */ +#define PCI_VSEC_HDR_LEN_SHIFT 20 /* shift for length field */ + +/* sata capability */ +#define PCI_SATA_REGS 4 /* SATA REGs specifier */ +#define PCI_SATA_REGS_MASK 0xF /* location - BAR#/inline */ +#define PCI_SATA_REGS_INLINE 0xF /* REGS in config space */ +#define PCI_SATA_SIZEOF_SHORT 8 +#define PCI_SATA_SIZEOF_LONG 16 + +/* resizable BARs */ +#define PCI_REBAR_CTRL 8 /* control register */ +#define PCI_REBAR_CTRL_NBAR_MASK (7 << 5) /* mask for # bars */ +#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # bars */ + +/* dynamic power allocation */ +#define PCI_DPA_CAP 4 /* capability register */ +#define PCI_DPA_CAP_SUBSTATE_MASK 0x1F /* # substates - 1 */ +#define PCI_DPA_BASE_SIZEOF 16 /* size with 0 substates */ + +/* TPH Requester */ +#define PCI_TPH_CAP 4 /* capability register */ +#define PCI_TPH_CAP_LOC_MASK 0x600 /* location mask */ +#define PCI_TPH_LOC_NONE 0x000 /* no location */ +#define PCI_TPH_LOC_CAP 0x200 /* in capability */ +#define PCI_TPH_LOC_MSIX 0x400 /* in MSI-X */ +#define PCI_TPH_CAP_ST_MASK 0x07FF0000 /* st table mask */ +#define PCI_TPH_CAP_ST_SHIFT 16 /* st table shift */ +#define PCI_TPH_BASE_SIZEOF 12 /* size with no st table */ + +#endif /* LINUX_PCI_REGS_H */ diff --git a/kernel_headers/linux/perf_event.h b/kernel_headers/linux/perf_event.h new file mode 100644 index 0000000..44ec9c8 --- /dev/null +++ b/kernel_headers/linux/perf_event.h @@ -0,0 +1,688 @@ +/* + * Performance events: + * + * Copyright (C) 2008-2009, Thomas Gleixner + * Copyright (C) 2008-2011, Red Hat, Inc., Ingo Molnar + * Copyright (C) 2008-2011, Red Hat, Inc., Peter Zijlstra + * + * Data type definitions, declarations, prototypes. + * + * Started by: Thomas Gleixner and Ingo Molnar + * + * For licencing details see kernel-base/COPYING + */ +#ifndef _LINUX_PERF_EVENT_H +#define _LINUX_PERF_EVENT_H + +#include +#include +#include + +/* + * User-space ABI bits: + */ + +/* + * attr.type + */ +enum perf_type_id { + PERF_TYPE_HARDWARE = 0, + PERF_TYPE_SOFTWARE = 1, + PERF_TYPE_TRACEPOINT = 2, + PERF_TYPE_HW_CACHE = 3, + PERF_TYPE_RAW = 4, + PERF_TYPE_BREAKPOINT = 5, + + PERF_TYPE_MAX, /* non-ABI */ +}; + +/* + * Generalized performance event event_id types, used by the + * attr.event_id parameter of the sys_perf_event_open() + * syscall: + */ +enum perf_hw_id { + /* + * Common hardware events, generalized by the kernel: + */ + PERF_COUNT_HW_CPU_CYCLES = 0, + PERF_COUNT_HW_INSTRUCTIONS = 1, + PERF_COUNT_HW_CACHE_REFERENCES = 2, + PERF_COUNT_HW_CACHE_MISSES = 3, + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4, + PERF_COUNT_HW_BRANCH_MISSES = 5, + PERF_COUNT_HW_BUS_CYCLES = 6, + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7, + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8, + PERF_COUNT_HW_REF_CPU_CYCLES = 9, + + PERF_COUNT_HW_MAX, /* non-ABI */ +}; + +/* + * Generalized hardware cache events: + * + * { L1-D, L1-I, LLC, ITLB, DTLB, BPU, NODE } x + * { read, write, prefetch } x + * { accesses, misses } + */ +enum perf_hw_cache_id { + PERF_COUNT_HW_CACHE_L1D = 0, + PERF_COUNT_HW_CACHE_L1I = 1, + PERF_COUNT_HW_CACHE_LL = 2, + PERF_COUNT_HW_CACHE_DTLB = 3, + PERF_COUNT_HW_CACHE_ITLB = 4, + PERF_COUNT_HW_CACHE_BPU = 5, + PERF_COUNT_HW_CACHE_NODE = 6, + + PERF_COUNT_HW_CACHE_MAX, /* non-ABI */ +}; + +enum perf_hw_cache_op_id { + PERF_COUNT_HW_CACHE_OP_READ = 0, + PERF_COUNT_HW_CACHE_OP_WRITE = 1, + PERF_COUNT_HW_CACHE_OP_PREFETCH = 2, + + PERF_COUNT_HW_CACHE_OP_MAX, /* non-ABI */ +}; + +enum perf_hw_cache_op_result_id { + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0, + PERF_COUNT_HW_CACHE_RESULT_MISS = 1, + + PERF_COUNT_HW_CACHE_RESULT_MAX, /* non-ABI */ +}; + +/* + * Special "software" events provided by the kernel, even if the hardware + * does not support performance events. These events measure various + * physical and sw events of the kernel (and allow the profiling of them as + * well): + */ +enum perf_sw_ids { + PERF_COUNT_SW_CPU_CLOCK = 0, + PERF_COUNT_SW_TASK_CLOCK = 1, + PERF_COUNT_SW_PAGE_FAULTS = 2, + PERF_COUNT_SW_CONTEXT_SWITCHES = 3, + PERF_COUNT_SW_CPU_MIGRATIONS = 4, + PERF_COUNT_SW_PAGE_FAULTS_MIN = 5, + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6, + PERF_COUNT_SW_ALIGNMENT_FAULTS = 7, + PERF_COUNT_SW_EMULATION_FAULTS = 8, + + PERF_COUNT_SW_MAX, /* non-ABI */ +}; + +/* + * Bits that can be set in attr.sample_type to request information + * in the overflow packets. + */ +enum perf_event_sample_format { + PERF_SAMPLE_IP = 1U << 0, + PERF_SAMPLE_TID = 1U << 1, + PERF_SAMPLE_TIME = 1U << 2, + PERF_SAMPLE_ADDR = 1U << 3, + PERF_SAMPLE_READ = 1U << 4, + PERF_SAMPLE_CALLCHAIN = 1U << 5, + PERF_SAMPLE_ID = 1U << 6, + PERF_SAMPLE_CPU = 1U << 7, + PERF_SAMPLE_PERIOD = 1U << 8, + PERF_SAMPLE_STREAM_ID = 1U << 9, + PERF_SAMPLE_RAW = 1U << 10, + PERF_SAMPLE_BRANCH_STACK = 1U << 11, + PERF_SAMPLE_REGS_USER = 1U << 12, + PERF_SAMPLE_STACK_USER = 1U << 13, + PERF_SAMPLE_WEIGHT = 1U << 14, + PERF_SAMPLE_DATA_SRC = 1U << 15, + + PERF_SAMPLE_MAX = 1U << 16, /* non-ABI */ +}; + +/* + * values to program into branch_sample_type when PERF_SAMPLE_BRANCH is set + * + * If the user does not pass priv level information via branch_sample_type, + * the kernel uses the event's priv level. Branch and event priv levels do + * not have to match. Branch priv level is checked for permissions. + * + * The branch types can be combined, however BRANCH_ANY covers all types + * of branches and therefore it supersedes all the other types. + */ +enum perf_branch_sample_type { + PERF_SAMPLE_BRANCH_USER = 1U << 0, /* user branches */ + PERF_SAMPLE_BRANCH_KERNEL = 1U << 1, /* kernel branches */ + PERF_SAMPLE_BRANCH_HV = 1U << 2, /* hypervisor branches */ + + PERF_SAMPLE_BRANCH_ANY = 1U << 3, /* any branch types */ + PERF_SAMPLE_BRANCH_ANY_CALL = 1U << 4, /* any call branch */ + PERF_SAMPLE_BRANCH_ANY_RETURN = 1U << 5, /* any return branch */ + PERF_SAMPLE_BRANCH_IND_CALL = 1U << 6, /* indirect calls */ + + PERF_SAMPLE_BRANCH_MAX = 1U << 7, /* non-ABI */ +}; + +#define PERF_SAMPLE_BRANCH_PLM_ALL \ + (PERF_SAMPLE_BRANCH_USER|\ + PERF_SAMPLE_BRANCH_KERNEL|\ + PERF_SAMPLE_BRANCH_HV) + +/* + * Values to determine ABI of the registers dump. + */ +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, +}; + +/* + * The format of the data returned by read() on a perf event fd, + * as specified by attr.read_format: + * + * struct read_format { + * { u64 value; + * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED + * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING + * { u64 id; } && PERF_FORMAT_ID + * } && !PERF_FORMAT_GROUP + * + * { u64 nr; + * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED + * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING + * { u64 value; + * { u64 id; } && PERF_FORMAT_ID + * } cntr[nr]; + * } && PERF_FORMAT_GROUP + * }; + */ +enum perf_event_read_format { + PERF_FORMAT_TOTAL_TIME_ENABLED = 1U << 0, + PERF_FORMAT_TOTAL_TIME_RUNNING = 1U << 1, + PERF_FORMAT_ID = 1U << 2, + PERF_FORMAT_GROUP = 1U << 3, + + PERF_FORMAT_MAX = 1U << 4, /* non-ABI */ +}; + +#define PERF_ATTR_SIZE_VER0 64 /* sizeof first published struct */ +#define PERF_ATTR_SIZE_VER1 72 /* add: config2 */ +#define PERF_ATTR_SIZE_VER2 80 /* add: branch_sample_type */ +#define PERF_ATTR_SIZE_VER3 96 /* add: sample_regs_user */ + /* add: sample_stack_user */ + +/* + * Hardware event_id to monitor via a performance monitoring event: + */ +struct perf_event_attr { + + /* + * Major type: hardware/software/tracepoint/etc. + */ + __u32 type; + + /* + * Size of the attr structure, for fwd/bwd compat. + */ + __u32 size; + + /* + * Type specific configuration information. + */ + __u64 config; + + union { + __u64 sample_period; + __u64 sample_freq; + }; + + __u64 sample_type; + __u64 read_format; + + __u64 disabled : 1, /* off by default */ + inherit : 1, /* children inherit it */ + pinned : 1, /* must always be on PMU */ + exclusive : 1, /* only group on PMU */ + exclude_user : 1, /* don't count user */ + exclude_kernel : 1, /* ditto kernel */ + exclude_hv : 1, /* ditto hypervisor */ + exclude_idle : 1, /* don't count when idle */ + mmap : 1, /* include mmap data */ + comm : 1, /* include comm data */ + freq : 1, /* use freq, not period */ + inherit_stat : 1, /* per task counts */ + enable_on_exec : 1, /* next exec enables */ + task : 1, /* trace fork/exit */ + watermark : 1, /* wakeup_watermark */ + /* + * precise_ip: + * + * 0 - SAMPLE_IP can have arbitrary skid + * 1 - SAMPLE_IP must have constant skid + * 2 - SAMPLE_IP requested to have 0 skid + * 3 - SAMPLE_IP must have 0 skid + * + * See also PERF_RECORD_MISC_EXACT_IP + */ + precise_ip : 2, /* skid constraint */ + mmap_data : 1, /* non-exec mmap data */ + sample_id_all : 1, /* sample_type all events */ + + exclude_host : 1, /* don't count in host */ + exclude_guest : 1, /* don't count in guest */ + + exclude_callchain_kernel : 1, /* exclude kernel callchains */ + exclude_callchain_user : 1, /* exclude user callchains */ + constraint_duplicate : 1, + + __reserved_1 : 40; + + union { + __u32 wakeup_events; /* wakeup every n events */ + __u32 wakeup_watermark; /* bytes before wakeup */ + }; + + __u32 bp_type; + union { + __u64 bp_addr; + __u64 config1; /* extension of config */ + }; + union { + __u64 bp_len; + __u64 config2; /* extension of config1 */ + }; + __u64 branch_sample_type; /* enum perf_branch_sample_type */ + + /* + * Defines set of user regs to dump on samples. + * See asm/perf_regs.h for details. + */ + __u64 sample_regs_user; + + /* + * Defines size of the user stack to dump on samples. + */ + __u32 sample_stack_user; + + /* Align to u64. */ + __u32 __reserved_2; +}; + +#define perf_flags(attr) (*(&(attr)->read_format + 1)) + +/* + * Ioctls that can be done on a perf event fd: + */ +#define PERF_EVENT_IOC_ENABLE _IO ('$', 0) +#define PERF_EVENT_IOC_DISABLE _IO ('$', 1) +#define PERF_EVENT_IOC_REFRESH _IO ('$', 2) +#define PERF_EVENT_IOC_RESET _IO ('$', 3) +#define PERF_EVENT_IOC_PERIOD _IOW('$', 4, __u64) +#define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5) +#define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *) + +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1U << 0, +}; + +/* + * Structure of the page that can be mapped via mmap + */ +struct perf_event_mmap_page { + __u32 version; /* version number of this structure */ + __u32 compat_version; /* lowest version this is compat with */ + + /* + * Bits needed to read the hw events in user-space. + * + * u32 seq, time_mult, time_shift, idx, width; + * u64 count, enabled, running; + * u64 cyc, time_offset; + * s64 pmc = 0; + * + * do { + * seq = pc->lock; + * barrier() + * + * enabled = pc->time_enabled; + * running = pc->time_running; + * + * if (pc->cap_usr_time && enabled != running) { + * cyc = rdtsc(); + * time_offset = pc->time_offset; + * time_mult = pc->time_mult; + * time_shift = pc->time_shift; + * } + * + * idx = pc->index; + * count = pc->offset; + * if (pc->cap_usr_rdpmc && idx) { + * width = pc->pmc_width; + * pmc = rdpmc(idx - 1); + * } + * + * barrier(); + * } while (pc->lock != seq); + * + * NOTE: for obvious reason this only works on self-monitoring + * processes. + */ + __u32 lock; /* seqlock for synchronization */ + __u32 index; /* hardware event identifier */ + __s64 offset; /* add to hardware event value */ + __u64 time_enabled; /* time event active */ + __u64 time_running; /* time event on cpu */ + union { + __u64 capabilities; + __u64 cap_usr_time : 1, + cap_usr_rdpmc : 1, + cap_____res : 62; + }; + + /* + * If cap_usr_rdpmc this field provides the bit-width of the value + * read using the rdpmc() or equivalent instruction. This can be used + * to sign extend the result like: + * + * pmc <<= 64 - width; + * pmc >>= 64 - width; // signed shift right + * count += pmc; + */ + __u16 pmc_width; + + /* + * If cap_usr_time the below fields can be used to compute the time + * delta since time_enabled (in ns) using rdtsc or similar. + * + * u64 quot, rem; + * u64 delta; + * + * quot = (cyc >> time_shift); + * rem = cyc & ((1 << time_shift) - 1); + * delta = time_offset + quot * time_mult + + * ((rem * time_mult) >> time_shift); + * + * Where time_offset,time_mult,time_shift and cyc are read in the + * seqcount loop described above. This delta can then be added to + * enabled and possible running (if idx), improving the scaling: + * + * enabled += delta; + * if (idx) + * running += delta; + * + * quot = count / running; + * rem = count % running; + * count = quot * enabled + (rem * enabled) / running; + */ + __u16 time_shift; + __u32 time_mult; + __u64 time_offset; + + /* + * Hole for extension of the self monitor capabilities + */ + + __u64 __reserved[120]; /* align to 1k */ + + /* + * Control data for the mmap() data buffer. + * + * User-space reading the @data_head value should issue an smp_rmb(), + * after reading this value. + * + * When the mapping is PROT_WRITE the @data_tail value should be + * written by userspace to reflect the last read data, after issueing + * an smp_mb() to separate the data read from the ->data_tail store. + * In this case the kernel will not over-write unread data. + * + * See perf_output_put_handle() for the data ordering. + */ + __u64 data_head; /* head in the data section */ + __u64 data_tail; /* user-space written tail */ +}; + +#define PERF_RECORD_MISC_CPUMODE_MASK (7 << 0) +#define PERF_RECORD_MISC_CPUMODE_UNKNOWN (0 << 0) +#define PERF_RECORD_MISC_KERNEL (1 << 0) +#define PERF_RECORD_MISC_USER (2 << 0) +#define PERF_RECORD_MISC_HYPERVISOR (3 << 0) +#define PERF_RECORD_MISC_GUEST_KERNEL (4 << 0) +#define PERF_RECORD_MISC_GUEST_USER (5 << 0) + +#define PERF_RECORD_MISC_MMAP_DATA (1 << 13) +/* + * Indicates that the content of PERF_SAMPLE_IP points to + * the actual instruction that triggered the event. See also + * perf_event_attr::precise_ip. + */ +#define PERF_RECORD_MISC_EXACT_IP (1 << 14) +/* + * Reserve the last bit to indicate some extended misc field + */ +#define PERF_RECORD_MISC_EXT_RESERVED (1 << 15) + +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; +}; + +enum perf_event_type { + + /* + * If perf_event_attr.sample_id_all is set then all event types will + * have the sample_type selected fields related to where/when + * (identity) an event took place (TID, TIME, ID, CPU, STREAM_ID) + * described in PERF_RECORD_SAMPLE below, it will be stashed just after + * the perf_event_header and the fields already present for the existing + * fields, i.e. at the end of the payload. That way a newer perf.data + * file will be supported by older perf tools, with these new optional + * fields being ignored. + * + * The MMAP events record the PROT_EXEC mappings so that we can + * correlate userspace IPs to code. They have the following structure: + * + * struct { + * struct perf_event_header header; + * + * u32 pid, tid; + * u64 addr; + * u64 len; + * u64 pgoff; + * char filename[]; + * }; + */ + PERF_RECORD_MMAP = 1, + + /* + * struct { + * struct perf_event_header header; + * u64 id; + * u64 lost; + * }; + */ + PERF_RECORD_LOST = 2, + + /* + * struct { + * struct perf_event_header header; + * + * u32 pid, tid; + * char comm[]; + * }; + */ + PERF_RECORD_COMM = 3, + + /* + * struct { + * struct perf_event_header header; + * u32 pid, ppid; + * u32 tid, ptid; + * u64 time; + * }; + */ + PERF_RECORD_EXIT = 4, + + /* + * struct { + * struct perf_event_header header; + * u64 time; + * u64 id; + * u64 stream_id; + * }; + */ + PERF_RECORD_THROTTLE = 5, + PERF_RECORD_UNTHROTTLE = 6, + + /* + * struct { + * struct perf_event_header header; + * u32 pid, ppid; + * u32 tid, ptid; + * u64 time; + * }; + */ + PERF_RECORD_FORK = 7, + + /* + * struct { + * struct perf_event_header header; + * u32 pid, tid; + * + * struct read_format values; + * }; + */ + PERF_RECORD_READ = 8, + + /* + * struct { + * struct perf_event_header header; + * + * { u64 ip; } && PERF_SAMPLE_IP + * { u32 pid, tid; } && PERF_SAMPLE_TID + * { u64 time; } && PERF_SAMPLE_TIME + * { u64 addr; } && PERF_SAMPLE_ADDR + * { u64 id; } && PERF_SAMPLE_ID + * { u64 stream_id;} && PERF_SAMPLE_STREAM_ID + * { u32 cpu, res; } && PERF_SAMPLE_CPU + * { u64 period; } && PERF_SAMPLE_PERIOD + * + * { struct read_format values; } && PERF_SAMPLE_READ + * + * { u64 nr, + * u64 ips[nr]; } && PERF_SAMPLE_CALLCHAIN + * + * # + * # The RAW record below is opaque data wrt the ABI + * # + * # That is, the ABI doesn't make any promises wrt to + * # the stability of its content, it may vary depending + * # on event, hardware, kernel version and phase of + * # the moon. + * # + * # In other words, PERF_SAMPLE_RAW contents are not an ABI. + * # + * + * { u32 size; + * char data[size];}&& PERF_SAMPLE_RAW + * + * { u64 nr; + * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK + * + * { u64 abi; # enum perf_sample_regs_abi + * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER + * + * { u64 size; + * char data[size]; + * u64 dyn_size; } && PERF_SAMPLE_STACK_USER + * + * { u64 weight; } && PERF_SAMPLE_WEIGHT + * { u64 data_src; } && PERF_SAMPLE_DATA_SRC + * }; + */ + PERF_RECORD_SAMPLE = 9, + + PERF_RECORD_MAX, /* non-ABI */ +}; + +#define PERF_MAX_STACK_DEPTH 127 + +enum perf_callchain_context { + PERF_CONTEXT_HV = (__u64)-32, + PERF_CONTEXT_KERNEL = (__u64)-128, + PERF_CONTEXT_USER = (__u64)-512, + + PERF_CONTEXT_GUEST = (__u64)-2048, + PERF_CONTEXT_GUEST_KERNEL = (__u64)-2176, + PERF_CONTEXT_GUEST_USER = (__u64)-2560, + + PERF_CONTEXT_MAX = (__u64)-4095, +}; + +#define PERF_FLAG_FD_NO_GROUP (1U << 0) +#define PERF_FLAG_FD_OUTPUT (1U << 1) +#define PERF_FLAG_PID_CGROUP (1U << 2) /* pid=cgroup id, per-cpu mode only */ + +union perf_mem_data_src { + __u64 val; + struct { + __u64 mem_op:5, /* type of opcode */ + mem_lvl:14, /* memory hierarchy level */ + mem_snoop:5, /* snoop mode */ + mem_lock:2, /* lock instr */ + mem_dtlb:7, /* tlb access */ + mem_rsvd:31; + }; +}; + +/* type of opcode (load/store/prefetch,code) */ +#define PERF_MEM_OP_NA 0x01 /* not available */ +#define PERF_MEM_OP_LOAD 0x02 /* load instruction */ +#define PERF_MEM_OP_STORE 0x04 /* store instruction */ +#define PERF_MEM_OP_PFETCH 0x08 /* prefetch */ +#define PERF_MEM_OP_EXEC 0x10 /* code (execution) */ +#define PERF_MEM_OP_SHIFT 0 + +/* memory hierarchy (memory level, hit or miss) */ +#define PERF_MEM_LVL_NA 0x01 /* not available */ +#define PERF_MEM_LVL_HIT 0x02 /* hit level */ +#define PERF_MEM_LVL_MISS 0x04 /* miss level */ +#define PERF_MEM_LVL_L1 0x08 /* L1 */ +#define PERF_MEM_LVL_LFB 0x10 /* Line Fill Buffer */ +#define PERF_MEM_LVL_L2 0x20 /* L2 */ +#define PERF_MEM_LVL_L3 0x40 /* L3 */ +#define PERF_MEM_LVL_LOC_RAM 0x80 /* Local DRAM */ +#define PERF_MEM_LVL_REM_RAM1 0x100 /* Remote DRAM (1 hop) */ +#define PERF_MEM_LVL_REM_RAM2 0x200 /* Remote DRAM (2 hops) */ +#define PERF_MEM_LVL_REM_CCE1 0x400 /* Remote Cache (1 hop) */ +#define PERF_MEM_LVL_REM_CCE2 0x800 /* Remote Cache (2 hops) */ +#define PERF_MEM_LVL_IO 0x1000 /* I/O memory */ +#define PERF_MEM_LVL_UNC 0x2000 /* Uncached memory */ +#define PERF_MEM_LVL_SHIFT 5 + +/* snoop mode */ +#define PERF_MEM_SNOOP_NA 0x01 /* not available */ +#define PERF_MEM_SNOOP_NONE 0x02 /* no snoop */ +#define PERF_MEM_SNOOP_HIT 0x04 /* snoop hit */ +#define PERF_MEM_SNOOP_MISS 0x08 /* snoop miss */ +#define PERF_MEM_SNOOP_HITM 0x10 /* snoop hit modified */ +#define PERF_MEM_SNOOP_SHIFT 19 + +/* locked instruction */ +#define PERF_MEM_LOCK_NA 0x01 /* not available */ +#define PERF_MEM_LOCK_LOCKED 0x02 /* locked transaction */ +#define PERF_MEM_LOCK_SHIFT 24 + +/* TLB access */ +#define PERF_MEM_TLB_NA 0x01 /* not available */ +#define PERF_MEM_TLB_HIT 0x02 /* hit level */ +#define PERF_MEM_TLB_MISS 0x04 /* miss level */ +#define PERF_MEM_TLB_L1 0x08 /* L1 */ +#define PERF_MEM_TLB_L2 0x10 /* L2 */ +#define PERF_MEM_TLB_WK 0x20 /* Hardware Walker*/ +#define PERF_MEM_TLB_OS 0x40 /* OS fault handler */ +#define PERF_MEM_TLB_SHIFT 26 + +#define PERF_MEM_S(a, s) \ + (((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) + +#endif /* _LINUX_PERF_EVENT_H */ diff --git a/kernel_headers/linux/personality.h b/kernel_headers/linux/personality.h new file mode 100644 index 0000000..9971703 --- /dev/null +++ b/kernel_headers/linux/personality.h @@ -0,0 +1,69 @@ +#ifndef _LINUX_PERSONALITY_H +#define _LINUX_PERSONALITY_H + + +/* + * Flags for bug emulation. + * + * These occupy the top three bytes. + */ +enum { + UNAME26 = 0x0020000, + ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization of VA space */ + FDPIC_FUNCPTRS = 0x0080000, /* userspace function ptrs point to descriptors + * (signal handling) + */ + MMAP_PAGE_ZERO = 0x0100000, + ADDR_COMPAT_LAYOUT = 0x0200000, + READ_IMPLIES_EXEC = 0x0400000, + ADDR_LIMIT_32BIT = 0x0800000, + SHORT_INODE = 0x1000000, + WHOLE_SECONDS = 0x2000000, + STICKY_TIMEOUTS = 0x4000000, + ADDR_LIMIT_3GB = 0x8000000, +}; + +/* + * Security-relevant compatibility flags that must be + * cleared upon setuid or setgid exec: + */ +#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \ + ADDR_NO_RANDOMIZE | \ + ADDR_COMPAT_LAYOUT | \ + MMAP_PAGE_ZERO) + +/* + * Personality types. + * + * These go in the low byte. Avoid using the top bit, it will + * conflict with error returns. + */ +enum { + PER_LINUX = 0x0000, + PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT, + PER_LINUX_FDPIC = 0x0000 | FDPIC_FUNCPTRS, + PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, + PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE, + PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS | + WHOLE_SECONDS | SHORT_INODE, + PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS, + PER_WYSEV386 = 0x0004 | STICKY_TIMEOUTS | SHORT_INODE, + PER_ISCR4 = 0x0005 | STICKY_TIMEOUTS, + PER_BSD = 0x0006, + PER_SUNOS = 0x0006 | STICKY_TIMEOUTS, + PER_XENIX = 0x0007 | STICKY_TIMEOUTS | SHORT_INODE, + PER_LINUX32 = 0x0008, + PER_LINUX32_3GB = 0x0008 | ADDR_LIMIT_3GB, + PER_IRIX32 = 0x0009 | STICKY_TIMEOUTS,/* IRIX5 32-bit */ + PER_IRIXN32 = 0x000a | STICKY_TIMEOUTS,/* IRIX6 new 32-bit */ + PER_IRIX64 = 0x000b | STICKY_TIMEOUTS,/* IRIX6 64-bit */ + PER_RISCOS = 0x000c, + PER_SOLARIS = 0x000d | STICKY_TIMEOUTS, + PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, + PER_OSF4 = 0x000f, /* OSF/1 v4 */ + PER_HPUX = 0x0010, + PER_MASK = 0x00ff, +}; + + +#endif /* _LINUX_PERSONALITY_H */ diff --git a/kernel_headers/linux/pfkeyv2.h b/kernel_headers/linux/pfkeyv2.h new file mode 100644 index 0000000..0b80c80 --- /dev/null +++ b/kernel_headers/linux/pfkeyv2.h @@ -0,0 +1,370 @@ +/* PF_KEY user interface, this is defined by rfc2367 so + * do not make arbitrary modifications or else this header + * file will not be compliant. + */ + +#ifndef _LINUX_PFKEY2_H +#define _LINUX_PFKEY2_H + +#include + +#define PF_KEY_V2 2 +#define PFKEYV2_REVISION 199806L + +struct sadb_msg { + __u8 sadb_msg_version; + __u8 sadb_msg_type; + __u8 sadb_msg_errno; + __u8 sadb_msg_satype; + __u16 sadb_msg_len; + __u16 sadb_msg_reserved; + __u32 sadb_msg_seq; + __u32 sadb_msg_pid; +} __attribute__((packed)); +/* sizeof(struct sadb_msg) == 16 */ + +struct sadb_ext { + __u16 sadb_ext_len; + __u16 sadb_ext_type; +} __attribute__((packed)); +/* sizeof(struct sadb_ext) == 4 */ + +struct sadb_sa { + __u16 sadb_sa_len; + __u16 sadb_sa_exttype; + __be32 sadb_sa_spi; + __u8 sadb_sa_replay; + __u8 sadb_sa_state; + __u8 sadb_sa_auth; + __u8 sadb_sa_encrypt; + __u32 sadb_sa_flags; +} __attribute__((packed)); +/* sizeof(struct sadb_sa) == 16 */ + +struct sadb_lifetime { + __u16 sadb_lifetime_len; + __u16 sadb_lifetime_exttype; + __u32 sadb_lifetime_allocations; + __u64 sadb_lifetime_bytes; + __u64 sadb_lifetime_addtime; + __u64 sadb_lifetime_usetime; +} __attribute__((packed)); +/* sizeof(struct sadb_lifetime) == 32 */ + +struct sadb_address { + __u16 sadb_address_len; + __u16 sadb_address_exttype; + __u8 sadb_address_proto; + __u8 sadb_address_prefixlen; + __u16 sadb_address_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_address) == 8 */ + +struct sadb_key { + __u16 sadb_key_len; + __u16 sadb_key_exttype; + __u16 sadb_key_bits; + __u16 sadb_key_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_key) == 8 */ + +struct sadb_ident { + __u16 sadb_ident_len; + __u16 sadb_ident_exttype; + __u16 sadb_ident_type; + __u16 sadb_ident_reserved; + __u64 sadb_ident_id; +} __attribute__((packed)); +/* sizeof(struct sadb_ident) == 16 */ + +struct sadb_sens { + __u16 sadb_sens_len; + __u16 sadb_sens_exttype; + __u32 sadb_sens_dpd; + __u8 sadb_sens_sens_level; + __u8 sadb_sens_sens_len; + __u8 sadb_sens_integ_level; + __u8 sadb_sens_integ_len; + __u32 sadb_sens_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_sens) == 16 */ + +/* followed by: + __u64 sadb_sens_bitmap[sens_len]; + __u64 sadb_integ_bitmap[integ_len]; */ + +struct sadb_prop { + __u16 sadb_prop_len; + __u16 sadb_prop_exttype; + __u8 sadb_prop_replay; + __u8 sadb_prop_reserved[3]; +} __attribute__((packed)); +/* sizeof(struct sadb_prop) == 8 */ + +/* followed by: + struct sadb_comb sadb_combs[(sadb_prop_len + + sizeof(__u64) - sizeof(struct sadb_prop)) / + sizeof(struct sadb_comb)]; */ + +struct sadb_comb { + __u8 sadb_comb_auth; + __u8 sadb_comb_encrypt; + __u16 sadb_comb_flags; + __u16 sadb_comb_auth_minbits; + __u16 sadb_comb_auth_maxbits; + __u16 sadb_comb_encrypt_minbits; + __u16 sadb_comb_encrypt_maxbits; + __u32 sadb_comb_reserved; + __u32 sadb_comb_soft_allocations; + __u32 sadb_comb_hard_allocations; + __u64 sadb_comb_soft_bytes; + __u64 sadb_comb_hard_bytes; + __u64 sadb_comb_soft_addtime; + __u64 sadb_comb_hard_addtime; + __u64 sadb_comb_soft_usetime; + __u64 sadb_comb_hard_usetime; +} __attribute__((packed)); +/* sizeof(struct sadb_comb) == 72 */ + +struct sadb_supported { + __u16 sadb_supported_len; + __u16 sadb_supported_exttype; + __u32 sadb_supported_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_supported) == 8 */ + +/* followed by: + struct sadb_alg sadb_algs[(sadb_supported_len + + sizeof(__u64) - sizeof(struct sadb_supported)) / + sizeof(struct sadb_alg)]; */ + +struct sadb_alg { + __u8 sadb_alg_id; + __u8 sadb_alg_ivlen; + __u16 sadb_alg_minbits; + __u16 sadb_alg_maxbits; + __u16 sadb_alg_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_alg) == 8 */ + +struct sadb_spirange { + __u16 sadb_spirange_len; + __u16 sadb_spirange_exttype; + __u32 sadb_spirange_min; + __u32 sadb_spirange_max; + __u32 sadb_spirange_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_spirange) == 16 */ + +struct sadb_x_kmprivate { + __u16 sadb_x_kmprivate_len; + __u16 sadb_x_kmprivate_exttype; + __u32 sadb_x_kmprivate_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_x_kmprivate) == 8 */ + +struct sadb_x_sa2 { + __u16 sadb_x_sa2_len; + __u16 sadb_x_sa2_exttype; + __u8 sadb_x_sa2_mode; + __u8 sadb_x_sa2_reserved1; + __u16 sadb_x_sa2_reserved2; + __u32 sadb_x_sa2_sequence; + __u32 sadb_x_sa2_reqid; +} __attribute__((packed)); +/* sizeof(struct sadb_x_sa2) == 16 */ + +struct sadb_x_policy { + __u16 sadb_x_policy_len; + __u16 sadb_x_policy_exttype; + __u16 sadb_x_policy_type; + __u8 sadb_x_policy_dir; + __u8 sadb_x_policy_reserved; + __u32 sadb_x_policy_id; + __u32 sadb_x_policy_priority; +} __attribute__((packed)); +/* sizeof(struct sadb_x_policy) == 16 */ + +struct sadb_x_ipsecrequest { + __u16 sadb_x_ipsecrequest_len; + __u16 sadb_x_ipsecrequest_proto; + __u8 sadb_x_ipsecrequest_mode; + __u8 sadb_x_ipsecrequest_level; + __u16 sadb_x_ipsecrequest_reserved1; + __u32 sadb_x_ipsecrequest_reqid; + __u32 sadb_x_ipsecrequest_reserved2; +} __attribute__((packed)); +/* sizeof(struct sadb_x_ipsecrequest) == 16 */ + +/* This defines the TYPE of Nat Traversal in use. Currently only one + * type of NAT-T is supported, draft-ietf-ipsec-udp-encaps-06 + */ +struct sadb_x_nat_t_type { + __u16 sadb_x_nat_t_type_len; + __u16 sadb_x_nat_t_type_exttype; + __u8 sadb_x_nat_t_type_type; + __u8 sadb_x_nat_t_type_reserved[3]; +} __attribute__((packed)); +/* sizeof(struct sadb_x_nat_t_type) == 8 */ + +/* Pass a NAT Traversal port (Source or Dest port) */ +struct sadb_x_nat_t_port { + __u16 sadb_x_nat_t_port_len; + __u16 sadb_x_nat_t_port_exttype; + __be16 sadb_x_nat_t_port_port; + __u16 sadb_x_nat_t_port_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_x_nat_t_port) == 8 */ + +/* Generic LSM security context */ +struct sadb_x_sec_ctx { + __u16 sadb_x_sec_len; + __u16 sadb_x_sec_exttype; + __u8 sadb_x_ctx_alg; /* LSMs: e.g., selinux == 1 */ + __u8 sadb_x_ctx_doi; + __u16 sadb_x_ctx_len; +} __attribute__((packed)); +/* sizeof(struct sadb_sec_ctx) = 8 */ + +/* Used by MIGRATE to pass addresses IKE will use to perform + * negotiation with the peer */ +struct sadb_x_kmaddress { + __u16 sadb_x_kmaddress_len; + __u16 sadb_x_kmaddress_exttype; + __u32 sadb_x_kmaddress_reserved; +} __attribute__((packed)); +/* sizeof(struct sadb_x_kmaddress) == 8 */ + +/* Message types */ +#define SADB_RESERVED 0 +#define SADB_GETSPI 1 +#define SADB_UPDATE 2 +#define SADB_ADD 3 +#define SADB_DELETE 4 +#define SADB_GET 5 +#define SADB_ACQUIRE 6 +#define SADB_REGISTER 7 +#define SADB_EXPIRE 8 +#define SADB_FLUSH 9 +#define SADB_DUMP 10 +#define SADB_X_PROMISC 11 +#define SADB_X_PCHANGE 12 +#define SADB_X_SPDUPDATE 13 +#define SADB_X_SPDADD 14 +#define SADB_X_SPDDELETE 15 +#define SADB_X_SPDGET 16 +#define SADB_X_SPDACQUIRE 17 +#define SADB_X_SPDDUMP 18 +#define SADB_X_SPDFLUSH 19 +#define SADB_X_SPDSETIDX 20 +#define SADB_X_SPDEXPIRE 21 +#define SADB_X_SPDDELETE2 22 +#define SADB_X_NAT_T_NEW_MAPPING 23 +#define SADB_X_MIGRATE 24 +#define SADB_MAX 24 + +/* Security Association flags */ +#define SADB_SAFLAGS_PFS 1 +#define SADB_SAFLAGS_NOPMTUDISC 0x20000000 +#define SADB_SAFLAGS_DECAP_DSCP 0x40000000 +#define SADB_SAFLAGS_NOECN 0x80000000 + +/* Security Association states */ +#define SADB_SASTATE_LARVAL 0 +#define SADB_SASTATE_MATURE 1 +#define SADB_SASTATE_DYING 2 +#define SADB_SASTATE_DEAD 3 +#define SADB_SASTATE_MAX 3 + +/* Security Association types */ +#define SADB_SATYPE_UNSPEC 0 +#define SADB_SATYPE_AH 2 +#define SADB_SATYPE_ESP 3 +#define SADB_SATYPE_RSVP 5 +#define SADB_SATYPE_OSPFV2 6 +#define SADB_SATYPE_RIPV2 7 +#define SADB_SATYPE_MIP 8 +#define SADB_X_SATYPE_IPCOMP 9 +#define SADB_SATYPE_MAX 9 + +/* Authentication algorithms */ +#define SADB_AALG_NONE 0 +#define SADB_AALG_MD5HMAC 2 +#define SADB_AALG_SHA1HMAC 3 +#define SADB_X_AALG_SHA2_256HMAC 5 +#define SADB_X_AALG_SHA2_384HMAC 6 +#define SADB_X_AALG_SHA2_512HMAC 7 +#define SADB_X_AALG_RIPEMD160HMAC 8 +#define SADB_X_AALG_AES_XCBC_MAC 9 +#define SADB_X_AALG_NULL 251 /* kame */ +#define SADB_AALG_MAX 251 + +/* Encryption algorithms */ +#define SADB_EALG_NONE 0 +#define SADB_EALG_DESCBC 2 +#define SADB_EALG_3DESCBC 3 +#define SADB_X_EALG_CASTCBC 6 +#define SADB_X_EALG_BLOWFISHCBC 7 +#define SADB_EALG_NULL 11 +#define SADB_X_EALG_AESCBC 12 +#define SADB_X_EALG_AESCTR 13 +#define SADB_X_EALG_AES_CCM_ICV8 14 +#define SADB_X_EALG_AES_CCM_ICV12 15 +#define SADB_X_EALG_AES_CCM_ICV16 16 +#define SADB_X_EALG_AES_GCM_ICV8 18 +#define SADB_X_EALG_AES_GCM_ICV12 19 +#define SADB_X_EALG_AES_GCM_ICV16 20 +#define SADB_X_EALG_CAMELLIACBC 22 +#define SADB_X_EALG_NULL_AES_GMAC 23 +#define SADB_EALG_MAX 253 /* last EALG */ +/* private allocations should use 249-255 (RFC2407) */ +#define SADB_X_EALG_SERPENTCBC 252 /* draft-ietf-ipsec-ciph-aes-cbc-00 */ +#define SADB_X_EALG_TWOFISHCBC 253 /* draft-ietf-ipsec-ciph-aes-cbc-00 */ + +/* Compression algorithms */ +#define SADB_X_CALG_NONE 0 +#define SADB_X_CALG_OUI 1 +#define SADB_X_CALG_DEFLATE 2 +#define SADB_X_CALG_LZS 3 +#define SADB_X_CALG_LZJH 4 +#define SADB_X_CALG_MAX 4 + +/* Extension Header values */ +#define SADB_EXT_RESERVED 0 +#define SADB_EXT_SA 1 +#define SADB_EXT_LIFETIME_CURRENT 2 +#define SADB_EXT_LIFETIME_HARD 3 +#define SADB_EXT_LIFETIME_SOFT 4 +#define SADB_EXT_ADDRESS_SRC 5 +#define SADB_EXT_ADDRESS_DST 6 +#define SADB_EXT_ADDRESS_PROXY 7 +#define SADB_EXT_KEY_AUTH 8 +#define SADB_EXT_KEY_ENCRYPT 9 +#define SADB_EXT_IDENTITY_SRC 10 +#define SADB_EXT_IDENTITY_DST 11 +#define SADB_EXT_SENSITIVITY 12 +#define SADB_EXT_PROPOSAL 13 +#define SADB_EXT_SUPPORTED_AUTH 14 +#define SADB_EXT_SUPPORTED_ENCRYPT 15 +#define SADB_EXT_SPIRANGE 16 +#define SADB_X_EXT_KMPRIVATE 17 +#define SADB_X_EXT_POLICY 18 +#define SADB_X_EXT_SA2 19 +/* The next four entries are for setting up NAT Traversal */ +#define SADB_X_EXT_NAT_T_TYPE 20 +#define SADB_X_EXT_NAT_T_SPORT 21 +#define SADB_X_EXT_NAT_T_DPORT 22 +#define SADB_X_EXT_NAT_T_OA 23 +#define SADB_X_EXT_SEC_CTX 24 +/* Used with MIGRATE to pass @ to IKE for negotiation */ +#define SADB_X_EXT_KMADDRESS 25 +#define SADB_EXT_MAX 25 + +/* Identity Extension values */ +#define SADB_IDENTTYPE_RESERVED 0 +#define SADB_IDENTTYPE_PREFIX 1 +#define SADB_IDENTTYPE_FQDN 2 +#define SADB_IDENTTYPE_USERFQDN 3 +#define SADB_IDENTTYPE_MAX 3 + +#endif /* !(_LINUX_PFKEY2_H) */ diff --git a/kernel_headers/linux/pg.h b/kernel_headers/linux/pg.h new file mode 100644 index 0000000..db994bb --- /dev/null +++ b/kernel_headers/linux/pg.h @@ -0,0 +1,63 @@ +/* pg.h (c) 1998 Grant R. Guenther + Under the terms of the GNU General Public License + + + pg.h defines the user interface to the generic ATAPI packet + command driver for parallel port ATAPI devices (pg). The + driver is loosely modelled after the generic SCSI driver, sg, + although the actual interface is different. + + The pg driver provides a simple character device interface for + sending ATAPI commands to a device. With the exception of the + ATAPI reset operation, all operations are performed by a pair + of read and write operations to the appropriate /dev/pgN device. + A write operation delivers a command and any outbound data in + a single buffer. Normally, the write will succeed unless the + device is offline or malfunctioning, or there is already another + command pending. If the write succeeds, it should be followed + immediately by a read operation, to obtain any returned data and + status information. A read will fail if there is no operation + in progress. + + As a special case, the device can be reset with a write operation, + and in this case, no following read is expected, or permitted. + + There are no ioctl() operations. Any single operation + may transfer at most PG_MAX_DATA bytes. Note that the driver must + copy the data through an internal buffer. In keeping with all + current ATAPI devices, command packets are assumed to be exactly + 12 bytes in length. + + To permit future changes to this interface, the headers in the + read and write buffers contain a single character "magic" flag. + Currently this flag must be the character "P". + +*/ + +#define PG_MAGIC 'P' +#define PG_RESET 'Z' +#define PG_COMMAND 'C' + +#define PG_MAX_DATA 32768 + +struct pg_write_hdr { + + char magic; /* == PG_MAGIC */ + char func; /* PG_RESET or PG_COMMAND */ + int dlen; /* number of bytes expected to transfer */ + int timeout; /* number of seconds before timeout */ + char packet[12]; /* packet command */ + +}; + +struct pg_read_hdr { + + char magic; /* == PG_MAGIC */ + char scsi; /* "scsi" status == sense key */ + int dlen; /* size of device transfer request */ + int duration; /* time in seconds command took */ + char pad[12]; /* not used */ + +}; + +/* end of pg.h */ diff --git a/kernel_headers/linux/phantom.h b/kernel_headers/linux/phantom.h new file mode 100644 index 0000000..94dd664 --- /dev/null +++ b/kernel_headers/linux/phantom.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2005-2007 Jiri Slaby + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#ifndef __PHANTOM_H +#define __PHANTOM_H + +#include + +/* PHN_(G/S)ET_REG param */ +struct phm_reg { + __u32 reg; + __u32 value; +}; + +/* PHN_(G/S)ET_REGS param */ +struct phm_regs { + __u32 count; + __u32 mask; + __u32 values[8]; +}; + +#define PH_IOC_MAGIC 'p' +#define PHN_GET_REG _IOWR(PH_IOC_MAGIC, 0, struct phm_reg *) +#define PHN_SET_REG _IOW(PH_IOC_MAGIC, 1, struct phm_reg *) +#define PHN_GET_REGS _IOWR(PH_IOC_MAGIC, 2, struct phm_regs *) +#define PHN_SET_REGS _IOW(PH_IOC_MAGIC, 3, struct phm_regs *) +/* this ioctl tells the driver, that the caller is not OpenHaptics and might + * use improved registers update (no more phantom switchoffs when using + * libphantom) */ +#define PHN_NOT_OH _IO(PH_IOC_MAGIC, 4) +#define PHN_GETREG _IOWR(PH_IOC_MAGIC, 5, struct phm_reg) +#define PHN_SETREG _IOW(PH_IOC_MAGIC, 6, struct phm_reg) +#define PHN_GETREGS _IOWR(PH_IOC_MAGIC, 7, struct phm_regs) +#define PHN_SETREGS _IOW(PH_IOC_MAGIC, 8, struct phm_regs) + +#define PHN_CONTROL 0x6 /* control byte in iaddr space */ +#define PHN_CTL_AMP 0x1 /* switch after torques change */ +#define PHN_CTL_BUT 0x2 /* is button switched */ +#define PHN_CTL_IRQ 0x10 /* is irq enabled */ + +#define PHN_ZERO_FORCE 2048 /* zero torque on motor */ + +#endif diff --git a/kernel_headers/linux/phonet.h b/kernel_headers/linux/phonet.h new file mode 100644 index 0000000..7d663d5 --- /dev/null +++ b/kernel_headers/linux/phonet.h @@ -0,0 +1,185 @@ +/** + * file phonet.h + * + * Phonet sockets kernel interface + * + * Copyright (C) 2008 Nokia Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef LINUX_PHONET_H +#define LINUX_PHONET_H + +#include +#include + +/* Automatic protocol selection */ +#define PN_PROTO_TRANSPORT 0 +/* Phonet datagram socket */ +#define PN_PROTO_PHONET 1 +/* Phonet pipe */ +#define PN_PROTO_PIPE 2 +#define PHONET_NPROTO 3 + +/* Socket options for SOL_PNPIPE level */ +#define PNPIPE_ENCAP 1 +#define PNPIPE_IFINDEX 2 +#define PNPIPE_HANDLE 3 +#define PNPIPE_INITSTATE 4 + +#define PNADDR_ANY 0 +#define PNADDR_BROADCAST 0xFC +#define PNPORT_RESOURCE_ROUTING 0 + +/* Values for PNPIPE_ENCAP option */ +#define PNPIPE_ENCAP_NONE 0 +#define PNPIPE_ENCAP_IP 1 + +/* ioctls */ +#define SIOCPNGETOBJECT (SIOCPROTOPRIVATE + 0) +#define SIOCPNENABLEPIPE (SIOCPROTOPRIVATE + 13) +#define SIOCPNADDRESOURCE (SIOCPROTOPRIVATE + 14) +#define SIOCPNDELRESOURCE (SIOCPROTOPRIVATE + 15) + +/* Phonet protocol header */ +struct phonethdr { + __u8 pn_rdev; + __u8 pn_sdev; + __u8 pn_res; + __be16 pn_length; + __u8 pn_robj; + __u8 pn_sobj; +} __attribute__((packed)); + +/* Common Phonet payload header */ +struct phonetmsg { + __u8 pn_trans_id; /* transaction ID */ + __u8 pn_msg_id; /* message type */ + union { + struct { + __u8 pn_submsg_id; /* message subtype */ + __u8 pn_data[5]; + } base; + struct { + __u16 pn_e_res_id; /* extended resource ID */ + __u8 pn_e_submsg_id; /* message subtype */ + __u8 pn_e_data[3]; + } ext; + } pn_msg_u; +}; +#define PN_COMMON_MESSAGE 0xF0 +#define PN_COMMGR 0x10 +#define PN_PREFIX 0xE0 /* resource for extended messages */ +#define pn_submsg_id pn_msg_u.base.pn_submsg_id +#define pn_e_submsg_id pn_msg_u.ext.pn_e_submsg_id +#define pn_e_res_id pn_msg_u.ext.pn_e_res_id +#define pn_data pn_msg_u.base.pn_data +#define pn_e_data pn_msg_u.ext.pn_e_data + +/* data for unreachable errors */ +#define PN_COMM_SERVICE_NOT_IDENTIFIED_RESP 0x01 +#define PN_COMM_ISA_ENTITY_NOT_REACHABLE_RESP 0x14 +#define pn_orig_msg_id pn_data[0] +#define pn_status pn_data[1] +#define pn_e_orig_msg_id pn_e_data[0] +#define pn_e_status pn_e_data[1] + +/* Phonet socket address structure */ +struct sockaddr_pn { + __kernel_sa_family_t spn_family; + __u8 spn_obj; + __u8 spn_dev; + __u8 spn_resource; + __u8 spn_zero[sizeof(struct sockaddr) - sizeof(__kernel_sa_family_t) - 3]; +} __attribute__((packed)); + +/* Well known address */ +#define PN_DEV_PC 0x10 + +static __inline__ __u16 pn_object(__u8 addr, __u16 port) +{ + return (addr << 8) | (port & 0x3ff); +} + +static __inline__ __u8 pn_obj(__u16 handle) +{ + return handle & 0xff; +} + +static __inline__ __u8 pn_dev(__u16 handle) +{ + return handle >> 8; +} + +static __inline__ __u16 pn_port(__u16 handle) +{ + return handle & 0x3ff; +} + +static __inline__ __u8 pn_addr(__u16 handle) +{ + return (handle >> 8) & 0xfc; +} + +static __inline__ void pn_sockaddr_set_addr(struct sockaddr_pn *spn, __u8 addr) +{ + spn->spn_dev &= 0x03; + spn->spn_dev |= addr & 0xfc; +} + +static __inline__ void pn_sockaddr_set_port(struct sockaddr_pn *spn, __u16 port) +{ + spn->spn_dev &= 0xfc; + spn->spn_dev |= (port >> 8) & 0x03; + spn->spn_obj = port & 0xff; +} + +static __inline__ void pn_sockaddr_set_object(struct sockaddr_pn *spn, + __u16 handle) +{ + spn->spn_dev = pn_dev(handle); + spn->spn_obj = pn_obj(handle); +} + +static __inline__ void pn_sockaddr_set_resource(struct sockaddr_pn *spn, + __u8 resource) +{ + spn->spn_resource = resource; +} + +static __inline__ __u8 pn_sockaddr_get_addr(const struct sockaddr_pn *spn) +{ + return spn->spn_dev & 0xfc; +} + +static __inline__ __u16 pn_sockaddr_get_port(const struct sockaddr_pn *spn) +{ + return ((spn->spn_dev & 0x03) << 8) | spn->spn_obj; +} + +static __inline__ __u16 pn_sockaddr_get_object(const struct sockaddr_pn *spn) +{ + return pn_object(spn->spn_dev, spn->spn_obj); +} + +static __inline__ __u8 pn_sockaddr_get_resource(const struct sockaddr_pn *spn) +{ + return spn->spn_resource; +} + +/* Phonet device ioctl requests */ + +#endif /* LINUX_PHONET_H */ diff --git a/kernel_headers/linux/pkt_cls.h b/kernel_headers/linux/pkt_cls.h new file mode 100644 index 0000000..082eafa --- /dev/null +++ b/kernel_headers/linux/pkt_cls.h @@ -0,0 +1,469 @@ +#ifndef __LINUX_PKT_CLS_H +#define __LINUX_PKT_CLS_H + +#include +#include + +/* I think i could have done better macros ; for now this is stolen from + * some arch/mips code - jhs +*/ +#define _TC_MAKE32(x) ((x)) + +#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n)) +#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n)) +#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n)) +#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n)) + +/* verdict bit breakdown + * +bit 0: when set -> this packet has been munged already + +bit 1: when set -> It is ok to munge this packet + +bit 2,3,4,5: Reclassify counter - sort of reverse TTL - if exceeded +assume loop + +bit 6,7: Where this packet was last seen +0: Above the transmit example at the socket level +1: on the Ingress +2: on the Egress + +bit 8: when set --> Request not to classify on ingress. + +bits 9,10,11: redirect counter - redirect TTL. Loop avoidance + + * + * */ + +#define TC_MUNGED _TC_MAKEMASK1(0) +#define SET_TC_MUNGED(v) ( TC_MUNGED | (v & ~TC_MUNGED)) +#define CLR_TC_MUNGED(v) ( v & ~TC_MUNGED) + +#define TC_OK2MUNGE _TC_MAKEMASK1(1) +#define SET_TC_OK2MUNGE(v) ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE)) +#define CLR_TC_OK2MUNGE(v) ( v & ~TC_OK2MUNGE) + +#define S_TC_VERD _TC_MAKE32(2) +#define M_TC_VERD _TC_MAKEMASK(4,S_TC_VERD) +#define G_TC_VERD(x) _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD) +#define V_TC_VERD(x) _TC_MAKEVALUE(x,S_TC_VERD) +#define SET_TC_VERD(v,n) ((V_TC_VERD(n)) | (v & ~M_TC_VERD)) + +#define S_TC_FROM _TC_MAKE32(6) +#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM) +#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM) +#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM) +#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM)) +#define AT_STACK 0x0 +#define AT_INGRESS 0x1 +#define AT_EGRESS 0x2 + +#define TC_NCLS _TC_MAKEMASK1(8) +#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS)) +#define CLR_TC_NCLS(v) ( v & ~TC_NCLS) + +#define S_TC_RTTL _TC_MAKE32(9) +#define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL) +#define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL) +#define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL) +#define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL)) + +#define S_TC_AT _TC_MAKE32(12) +#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT) +#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT) +#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT) +#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT)) + +/* Action attributes */ +enum { + TCA_ACT_UNSPEC, + TCA_ACT_KIND, + TCA_ACT_OPTIONS, + TCA_ACT_INDEX, + TCA_ACT_STATS, + __TCA_ACT_MAX +}; + +#define TCA_ACT_MAX __TCA_ACT_MAX +#define TCA_OLD_COMPAT (TCA_ACT_MAX+1) +#define TCA_ACT_MAX_PRIO 32 +#define TCA_ACT_BIND 1 +#define TCA_ACT_NOBIND 0 +#define TCA_ACT_UNBIND 1 +#define TCA_ACT_NOUNBIND 0 +#define TCA_ACT_REPLACE 1 +#define TCA_ACT_NOREPLACE 0 +#define MAX_REC_LOOP 4 +#define MAX_RED_LOOP 4 + +#define TC_ACT_UNSPEC (-1) +#define TC_ACT_OK 0 +#define TC_ACT_RECLASSIFY 1 +#define TC_ACT_SHOT 2 +#define TC_ACT_PIPE 3 +#define TC_ACT_STOLEN 4 +#define TC_ACT_QUEUED 5 +#define TC_ACT_REPEAT 6 +#define TC_ACT_JUMP 0x10000000 + +/* Action type identifiers*/ +enum { + TCA_ID_UNSPEC=0, + TCA_ID_POLICE=1, + /* other actions go here */ + __TCA_ID_MAX=255 +}; + +#define TCA_ID_MAX __TCA_ID_MAX + +struct tc_police { + __u32 index; + int action; +#define TC_POLICE_UNSPEC TC_ACT_UNSPEC +#define TC_POLICE_OK TC_ACT_OK +#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY +#define TC_POLICE_SHOT TC_ACT_SHOT +#define TC_POLICE_PIPE TC_ACT_PIPE + + __u32 limit; + __u32 burst; + __u32 mtu; + struct tc_ratespec rate; + struct tc_ratespec peakrate; + int refcnt; + int bindcnt; + __u32 capab; +}; + +struct tcf_t { + __u64 install; + __u64 lastuse; + __u64 expires; +}; + +struct tc_cnt { + int refcnt; + int bindcnt; +}; + +#define tc_gen \ + __u32 index; \ + __u32 capab; \ + int action; \ + int refcnt; \ + int bindcnt + +enum { + TCA_POLICE_UNSPEC, + TCA_POLICE_TBF, + TCA_POLICE_RATE, + TCA_POLICE_PEAKRATE, + TCA_POLICE_AVRATE, + TCA_POLICE_RESULT, + __TCA_POLICE_MAX +#define TCA_POLICE_RESULT TCA_POLICE_RESULT +}; + +#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) + +/* U32 filters */ + +#define TC_U32_HTID(h) ((h)&0xFFF00000) +#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20) +#define TC_U32_HASH(h) (((h)>>12)&0xFF) +#define TC_U32_NODE(h) ((h)&0xFFF) +#define TC_U32_KEY(h) ((h)&0xFFFFF) +#define TC_U32_UNSPEC 0 +#define TC_U32_ROOT (0xFFF00000) + +enum { + TCA_U32_UNSPEC, + TCA_U32_CLASSID, + TCA_U32_HASH, + TCA_U32_LINK, + TCA_U32_DIVISOR, + TCA_U32_SEL, + TCA_U32_POLICE, + TCA_U32_ACT, + TCA_U32_INDEV, + TCA_U32_PCNT, + TCA_U32_MARK, + __TCA_U32_MAX +}; + +#define TCA_U32_MAX (__TCA_U32_MAX - 1) + +struct tc_u32_key { + __be32 mask; + __be32 val; + int off; + int offmask; +}; + +struct tc_u32_sel { + unsigned char flags; + unsigned char offshift; + unsigned char nkeys; + + __be16 offmask; + __u16 off; + short offoff; + + short hoff; + __be32 hmask; + struct tc_u32_key keys[0]; +}; + +struct tc_u32_mark { + __u32 val; + __u32 mask; + __u32 success; +}; + +struct tc_u32_pcnt { + __u64 rcnt; + __u64 rhit; + __u64 kcnts[0]; +}; + +/* Flags */ + +#define TC_U32_TERMINAL 1 +#define TC_U32_OFFSET 2 +#define TC_U32_VAROFFSET 4 +#define TC_U32_EAT 8 + +#define TC_U32_MAXDEPTH 8 + + +/* RSVP filter */ + +enum { + TCA_RSVP_UNSPEC, + TCA_RSVP_CLASSID, + TCA_RSVP_DST, + TCA_RSVP_SRC, + TCA_RSVP_PINFO, + TCA_RSVP_POLICE, + TCA_RSVP_ACT, + __TCA_RSVP_MAX +}; + +#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 ) + +struct tc_rsvp_gpi { + __u32 key; + __u32 mask; + int offset; +}; + +struct tc_rsvp_pinfo { + struct tc_rsvp_gpi dpi; + struct tc_rsvp_gpi spi; + __u8 protocol; + __u8 tunnelid; + __u8 tunnelhdr; + __u8 pad; +}; + +/* ROUTE filter */ + +enum { + TCA_ROUTE4_UNSPEC, + TCA_ROUTE4_CLASSID, + TCA_ROUTE4_TO, + TCA_ROUTE4_FROM, + TCA_ROUTE4_IIF, + TCA_ROUTE4_POLICE, + TCA_ROUTE4_ACT, + __TCA_ROUTE4_MAX +}; + +#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1) + + +/* FW filter */ + +enum { + TCA_FW_UNSPEC, + TCA_FW_CLASSID, + TCA_FW_POLICE, + TCA_FW_INDEV, /* used by CONFIG_NET_CLS_IND */ + TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */ + TCA_FW_MASK, + __TCA_FW_MAX +}; + +#define TCA_FW_MAX (__TCA_FW_MAX - 1) + +/* TC index filter */ + +enum { + TCA_TCINDEX_UNSPEC, + TCA_TCINDEX_HASH, + TCA_TCINDEX_MASK, + TCA_TCINDEX_SHIFT, + TCA_TCINDEX_FALL_THROUGH, + TCA_TCINDEX_CLASSID, + TCA_TCINDEX_POLICE, + TCA_TCINDEX_ACT, + __TCA_TCINDEX_MAX +}; + +#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1) + +/* Flow filter */ + +enum { + FLOW_KEY_SRC, + FLOW_KEY_DST, + FLOW_KEY_PROTO, + FLOW_KEY_PROTO_SRC, + FLOW_KEY_PROTO_DST, + FLOW_KEY_IIF, + FLOW_KEY_PRIORITY, + FLOW_KEY_MARK, + FLOW_KEY_NFCT, + FLOW_KEY_NFCT_SRC, + FLOW_KEY_NFCT_DST, + FLOW_KEY_NFCT_PROTO_SRC, + FLOW_KEY_NFCT_PROTO_DST, + FLOW_KEY_RTCLASSID, + FLOW_KEY_SKUID, + FLOW_KEY_SKGID, + FLOW_KEY_VLAN_TAG, + FLOW_KEY_RXHASH, + __FLOW_KEY_MAX, +}; + +#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1) + +enum { + FLOW_MODE_MAP, + FLOW_MODE_HASH, +}; + +enum { + TCA_FLOW_UNSPEC, + TCA_FLOW_KEYS, + TCA_FLOW_MODE, + TCA_FLOW_BASECLASS, + TCA_FLOW_RSHIFT, + TCA_FLOW_ADDEND, + TCA_FLOW_MASK, + TCA_FLOW_XOR, + TCA_FLOW_DIVISOR, + TCA_FLOW_ACT, + TCA_FLOW_POLICE, + TCA_FLOW_EMATCHES, + TCA_FLOW_PERTURB, + __TCA_FLOW_MAX +}; + +#define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1) + +/* Basic filter */ + +enum { + TCA_BASIC_UNSPEC, + TCA_BASIC_CLASSID, + TCA_BASIC_EMATCHES, + TCA_BASIC_ACT, + TCA_BASIC_POLICE, + __TCA_BASIC_MAX +}; + +#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1) + + +/* Cgroup classifier */ + +enum { + TCA_CGROUP_UNSPEC, + TCA_CGROUP_ACT, + TCA_CGROUP_POLICE, + TCA_CGROUP_EMATCHES, + __TCA_CGROUP_MAX, +}; + +#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1) + +/* Extended Matches */ + +struct tcf_ematch_tree_hdr { + __u16 nmatches; + __u16 progid; +}; + +enum { + TCA_EMATCH_TREE_UNSPEC, + TCA_EMATCH_TREE_HDR, + TCA_EMATCH_TREE_LIST, + __TCA_EMATCH_TREE_MAX +}; +#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) + +struct tcf_ematch_hdr { + __u16 matchid; + __u16 kind; + __u16 flags; + __u16 pad; /* currently unused */ +}; + +/* 0 1 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 + * +-----------------------+-+-+---+ + * | Unused |S|I| R | + * +-----------------------+-+-+---+ + * + * R(2) ::= relation to next ematch + * where: 0 0 END (last ematch) + * 0 1 AND + * 1 0 OR + * 1 1 Unused (invalid) + * I(1) ::= invert result + * S(1) ::= simple payload + */ +#define TCF_EM_REL_END 0 +#define TCF_EM_REL_AND (1<<0) +#define TCF_EM_REL_OR (1<<1) +#define TCF_EM_INVERT (1<<2) +#define TCF_EM_SIMPLE (1<<3) + +#define TCF_EM_REL_MASK 3 +#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) + +enum { + TCF_LAYER_LINK, + TCF_LAYER_NETWORK, + TCF_LAYER_TRANSPORT, + __TCF_LAYER_MAX +}; +#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1) + +/* Ematch type assignments + * 1..32767 Reserved for ematches inside kernel tree + * 32768..65535 Free to use, not reliable + */ +#define TCF_EM_CONTAINER 0 +#define TCF_EM_CMP 1 +#define TCF_EM_NBYTE 2 +#define TCF_EM_U32 3 +#define TCF_EM_META 4 +#define TCF_EM_TEXT 5 +#define TCF_EM_VLAN 6 +#define TCF_EM_CANID 7 +#define TCF_EM_IPSET 8 +#define TCF_EM_MAX 8 + +enum { + TCF_EM_PROG_TC +}; + +enum { + TCF_EM_OPND_EQ, + TCF_EM_OPND_GT, + TCF_EM_OPND_LT +}; + +#endif diff --git a/kernel_headers/linux/pkt_sched.h b/kernel_headers/linux/pkt_sched.h new file mode 100644 index 0000000..c072263 --- /dev/null +++ b/kernel_headers/linux/pkt_sched.h @@ -0,0 +1,748 @@ +#ifndef __LINUX_PKT_SCHED_H +#define __LINUX_PKT_SCHED_H + +#include + +/* Logical priority bands not depending on specific packet scheduler. + Every scheduler will map them to real traffic classes, if it has + no more precise mechanism to classify packets. + + These numbers have no special meaning, though their coincidence + with obsolete IPv6 values is not occasional :-). New IPv6 drafts + preferred full anarchy inspired by diffserv group. + + Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy + class, actually, as rule it will be handled with more care than + filler or even bulk. + */ + +#define TC_PRIO_BESTEFFORT 0 +#define TC_PRIO_FILLER 1 +#define TC_PRIO_BULK 2 +#define TC_PRIO_INTERACTIVE_BULK 4 +#define TC_PRIO_INTERACTIVE 6 +#define TC_PRIO_CONTROL 7 + +#define TC_PRIO_MAX 15 + +/* Generic queue statistics, available for all the elements. + Particular schedulers may have also their private records. + */ + +struct tc_stats { + __u64 bytes; /* Number of enqueued bytes */ + __u32 packets; /* Number of enqueued packets */ + __u32 drops; /* Packets dropped because of lack of resources */ + __u32 overlimits; /* Number of throttle events when this + * flow goes out of allocated bandwidth */ + __u32 bps; /* Current flow byte rate */ + __u32 pps; /* Current flow packet rate */ + __u32 qlen; + __u32 backlog; +}; + +struct tc_estimator { + signed char interval; + unsigned char ewma_log; +}; + +/* "Handles" + --------- + + All the traffic control objects have 32bit identifiers, or "handles". + + They can be considered as opaque numbers from user API viewpoint, + but actually they always consist of two fields: major and + minor numbers, which are interpreted by kernel specially, + that may be used by applications, though not recommended. + + F.e. qdisc handles always have minor number equal to zero, + classes (or flows) have major equal to parent qdisc major, and + minor uniquely identifying class inside qdisc. + + Macros to manipulate handles: + */ + +#define TC_H_MAJ_MASK (0xFFFF0000U) +#define TC_H_MIN_MASK (0x0000FFFFU) +#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK) +#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK) +#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK)) + +#define TC_H_UNSPEC (0U) +#define TC_H_ROOT (0xFFFFFFFFU) +#define TC_H_INGRESS (0xFFFFFFF1U) + +/* Need to corrospond to iproute2 tc/tc_core.h "enum link_layer" */ +enum tc_link_layer { + TC_LINKLAYER_UNAWARE, /* Indicate unaware old iproute2 util */ + TC_LINKLAYER_ETHERNET, + TC_LINKLAYER_ATM, +}; +#define TC_LINKLAYER_MASK 0x0F /* limit use to lower 4 bits */ + +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; /* lower 4 bits */ + unsigned short overhead; + short cell_align; + unsigned short mpu; + __u32 rate; +}; + +#define TC_RTAB_SIZE 1024 + +struct tc_sizespec { + unsigned char cell_log; + unsigned char size_log; + short cell_align; + int overhead; + unsigned int linklayer; + unsigned int mpu; + unsigned int mtu; + unsigned int tsize; +}; + +enum { + TCA_STAB_UNSPEC, + TCA_STAB_BASE, + TCA_STAB_DATA, + __TCA_STAB_MAX +}; + +#define TCA_STAB_MAX (__TCA_STAB_MAX - 1) + +/* FIFO section */ + +struct tc_fifo_qopt { + __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */ +}; + +/* PRIO section */ + +#define TCQ_PRIO_BANDS 16 +#define TCQ_MIN_PRIO_BANDS 2 + +struct tc_prio_qopt { + int bands; /* Number of bands */ + __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */ + __u8 enable_flow; /* Enable dequeue */ +}; + +/* MULTIQ section */ + +struct tc_multiq_qopt { + __u16 bands; /* Number of bands */ + __u16 max_bands; /* Maximum number of queues */ +}; + +/* PLUG section */ + +#define TCQ_PLUG_BUFFER 0 +#define TCQ_PLUG_RELEASE_ONE 1 +#define TCQ_PLUG_RELEASE_INDEFINITE 2 +#define TCQ_PLUG_LIMIT 3 + +struct tc_plug_qopt { + /* TCQ_PLUG_BUFFER: Inset a plug into the queue and + * buffer any incoming packets + * TCQ_PLUG_RELEASE_ONE: Dequeue packets from queue head + * to beginning of the next plug. + * TCQ_PLUG_RELEASE_INDEFINITE: Dequeue all packets from queue. + * Stop buffering packets until the next TCQ_PLUG_BUFFER + * command is received (just act as a pass-thru queue). + * TCQ_PLUG_LIMIT: Increase/decrease queue size + */ + int action; + __u32 limit; +}; + +/* TBF section */ + +struct tc_tbf_qopt { + struct tc_ratespec rate; + struct tc_ratespec peakrate; + __u32 limit; + __u32 buffer; + __u32 mtu; +}; + +enum { + TCA_TBF_UNSPEC, + TCA_TBF_PARMS, + TCA_TBF_RTAB, + TCA_TBF_PTAB, + __TCA_TBF_MAX, +}; + +#define TCA_TBF_MAX (__TCA_TBF_MAX - 1) + + +/* TEQL section */ + +/* TEQL does not require any parameters */ + +/* SFQ section */ + +struct tc_sfq_qopt { + unsigned quantum; /* Bytes per round allocated to flow */ + int perturb_period; /* Period of hash perturbation */ + __u32 limit; /* Maximal packets in queue */ + unsigned divisor; /* Hash divisor */ + unsigned flows; /* Maximal number of flows */ +}; + +struct tc_sfqred_stats { + __u32 prob_drop; /* Early drops, below max threshold */ + __u32 forced_drop; /* Early drops, after max threshold */ + __u32 prob_mark; /* Marked packets, below max threshold */ + __u32 forced_mark; /* Marked packets, after max threshold */ + __u32 prob_mark_head; /* Marked packets, below max threshold */ + __u32 forced_mark_head;/* Marked packets, after max threshold */ +}; + +struct tc_sfq_qopt_v1 { + struct tc_sfq_qopt v0; + unsigned int depth; /* max number of packets per flow */ + unsigned int headdrop; +/* SFQRED parameters */ + __u32 limit; /* HARD maximal flow queue length (bytes) */ + __u32 qth_min; /* Min average length threshold (bytes) */ + __u32 qth_max; /* Max average length threshold (bytes) */ + unsigned char Wlog; /* log(W) */ + unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */ + unsigned char Scell_log; /* cell size for idle damping */ + unsigned char flags; + __u32 max_P; /* probability, high resolution */ +/* SFQRED stats */ + struct tc_sfqred_stats stats; +}; + + +struct tc_sfq_xstats { + __s32 allot; +}; + +/* RED section */ + +enum { + TCA_RED_UNSPEC, + TCA_RED_PARMS, + TCA_RED_STAB, + TCA_RED_MAX_P, + __TCA_RED_MAX, +}; + +#define TCA_RED_MAX (__TCA_RED_MAX - 1) + +struct tc_red_qopt { + __u32 limit; /* HARD maximal queue length (bytes) */ + __u32 qth_min; /* Min average length threshold (bytes) */ + __u32 qth_max; /* Max average length threshold (bytes) */ + unsigned char Wlog; /* log(W) */ + unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */ + unsigned char Scell_log; /* cell size for idle damping */ + unsigned char flags; +#define TC_RED_ECN 1 +#define TC_RED_HARDDROP 2 +#define TC_RED_ADAPTATIVE 4 +}; + +struct tc_red_xstats { + __u32 early; /* Early drops */ + __u32 pdrop; /* Drops due to queue limits */ + __u32 other; /* Drops due to drop() calls */ + __u32 marked; /* Marked packets */ +}; + +/* GRED section */ + +#define MAX_DPs 16 + +enum { + TCA_GRED_UNSPEC, + TCA_GRED_PARMS, + TCA_GRED_STAB, + TCA_GRED_DPS, + TCA_GRED_MAX_P, + __TCA_GRED_MAX, +}; + +#define TCA_GRED_MAX (__TCA_GRED_MAX - 1) + +struct tc_gred_qopt { + __u32 limit; /* HARD maximal queue length (bytes) */ + __u32 qth_min; /* Min average length threshold (bytes) */ + __u32 qth_max; /* Max average length threshold (bytes) */ + __u32 DP; /* up to 2^32 DPs */ + __u32 backlog; + __u32 qave; + __u32 forced; + __u32 early; + __u32 other; + __u32 pdrop; + __u8 Wlog; /* log(W) */ + __u8 Plog; /* log(P_max/(qth_max-qth_min)) */ + __u8 Scell_log; /* cell size for idle damping */ + __u8 prio; /* prio of this VQ */ + __u32 packets; + __u32 bytesin; +}; + +/* gred setup */ +struct tc_gred_sopt { + __u32 DPs; + __u32 def_DP; + __u8 grio; + __u8 flags; + __u16 pad1; +}; + +/* CHOKe section */ + +enum { + TCA_CHOKE_UNSPEC, + TCA_CHOKE_PARMS, + TCA_CHOKE_STAB, + TCA_CHOKE_MAX_P, + __TCA_CHOKE_MAX, +}; + +#define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1) + +struct tc_choke_qopt { + __u32 limit; /* Hard queue length (packets) */ + __u32 qth_min; /* Min average threshold (packets) */ + __u32 qth_max; /* Max average threshold (packets) */ + unsigned char Wlog; /* log(W) */ + unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */ + unsigned char Scell_log; /* cell size for idle damping */ + unsigned char flags; /* see RED flags */ +}; + +struct tc_choke_xstats { + __u32 early; /* Early drops */ + __u32 pdrop; /* Drops due to queue limits */ + __u32 other; /* Drops due to drop() calls */ + __u32 marked; /* Marked packets */ + __u32 matched; /* Drops due to flow match */ +}; + +/* HTB section */ +#define TC_HTB_NUMPRIO 8 +#define TC_HTB_MAXDEPTH 8 +#define TC_HTB_PROTOVER 3 /* the same as HTB and TC's major */ + +struct tc_htb_opt { + struct tc_ratespec rate; + struct tc_ratespec ceil; + __u32 buffer; + __u32 cbuffer; + __u32 quantum; + __u32 level; /* out only */ + __u32 prio; +}; +struct tc_htb_glob { + __u32 version; /* to match HTB/TC */ + __u32 rate2quantum; /* bps->quantum divisor */ + __u32 defcls; /* default class number */ + __u32 debug; /* debug flags */ + + /* stats */ + __u32 direct_pkts; /* count of non shaped packets */ +}; +enum { + TCA_HTB_UNSPEC, + TCA_HTB_PARMS, + TCA_HTB_INIT, + TCA_HTB_CTAB, + TCA_HTB_RTAB, + TCA_HTB_DIRECT_QLEN, + __TCA_HTB_MAX, +}; + +#define TCA_HTB_MAX (__TCA_HTB_MAX - 1) + +struct tc_htb_xstats { + __u32 lends; + __u32 borrows; + __u32 giants; /* too big packets (rate will not be accurate) */ + __u32 tokens; + __u32 ctokens; +}; + +/* HFSC section */ + +struct tc_hfsc_qopt { + __u16 defcls; /* default class */ +}; + +struct tc_service_curve { + __u32 m1; /* slope of the first segment in bps */ + __u32 d; /* x-projection of the first segment in us */ + __u32 m2; /* slope of the second segment in bps */ +}; + +struct tc_hfsc_stats { + __u64 work; /* total work done */ + __u64 rtwork; /* work done by real-time criteria */ + __u32 period; /* current period */ + __u32 level; /* class level in hierarchy */ +}; + +enum { + TCA_HFSC_UNSPEC, + TCA_HFSC_RSC, + TCA_HFSC_FSC, + TCA_HFSC_USC, + __TCA_HFSC_MAX, +}; + +#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1) + + +/* CBQ section */ + +#define TC_CBQ_MAXPRIO 8 +#define TC_CBQ_MAXLEVEL 8 +#define TC_CBQ_DEF_EWMA 5 + +struct tc_cbq_lssopt { + unsigned char change; + unsigned char flags; +#define TCF_CBQ_LSS_BOUNDED 1 +#define TCF_CBQ_LSS_ISOLATED 2 + unsigned char ewma_log; + unsigned char level; +#define TCF_CBQ_LSS_FLAGS 1 +#define TCF_CBQ_LSS_EWMA 2 +#define TCF_CBQ_LSS_MAXIDLE 4 +#define TCF_CBQ_LSS_MINIDLE 8 +#define TCF_CBQ_LSS_OFFTIME 0x10 +#define TCF_CBQ_LSS_AVPKT 0x20 + __u32 maxidle; + __u32 minidle; + __u32 offtime; + __u32 avpkt; +}; + +struct tc_cbq_wrropt { + unsigned char flags; + unsigned char priority; + unsigned char cpriority; + unsigned char __reserved; + __u32 allot; + __u32 weight; +}; + +struct tc_cbq_ovl { + unsigned char strategy; +#define TC_CBQ_OVL_CLASSIC 0 +#define TC_CBQ_OVL_DELAY 1 +#define TC_CBQ_OVL_LOWPRIO 2 +#define TC_CBQ_OVL_DROP 3 +#define TC_CBQ_OVL_RCLASSIC 4 + unsigned char priority2; + __u16 pad; + __u32 penalty; +}; + +struct tc_cbq_police { + unsigned char police; + unsigned char __res1; + unsigned short __res2; +}; + +struct tc_cbq_fopt { + __u32 split; + __u32 defmap; + __u32 defchange; +}; + +struct tc_cbq_xstats { + __u32 borrows; + __u32 overactions; + __s32 avgidle; + __s32 undertime; +}; + +enum { + TCA_CBQ_UNSPEC, + TCA_CBQ_LSSOPT, + TCA_CBQ_WRROPT, + TCA_CBQ_FOPT, + TCA_CBQ_OVL_STRATEGY, + TCA_CBQ_RATE, + TCA_CBQ_RTAB, + TCA_CBQ_POLICE, + __TCA_CBQ_MAX, +}; + +#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1) + +/* dsmark section */ + +enum { + TCA_DSMARK_UNSPEC, + TCA_DSMARK_INDICES, + TCA_DSMARK_DEFAULT_INDEX, + TCA_DSMARK_SET_TC_INDEX, + TCA_DSMARK_MASK, + TCA_DSMARK_VALUE, + __TCA_DSMARK_MAX, +}; + +#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1) + +/* ATM section */ + +enum { + TCA_ATM_UNSPEC, + TCA_ATM_FD, /* file/socket descriptor */ + TCA_ATM_PTR, /* pointer to descriptor - later */ + TCA_ATM_HDR, /* LL header */ + TCA_ATM_EXCESS, /* excess traffic class (0 for CLP) */ + TCA_ATM_ADDR, /* PVC address (for output only) */ + TCA_ATM_STATE, /* VC state (ATM_VS_*; for output only) */ + __TCA_ATM_MAX, +}; + +#define TCA_ATM_MAX (__TCA_ATM_MAX - 1) + +/* Network emulator */ + +enum { + TCA_NETEM_UNSPEC, + TCA_NETEM_CORR, + TCA_NETEM_DELAY_DIST, + TCA_NETEM_REORDER, + TCA_NETEM_CORRUPT, + TCA_NETEM_LOSS, + TCA_NETEM_RATE, + TCA_NETEM_ECN, + __TCA_NETEM_MAX, +}; + +#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) + +struct tc_netem_qopt { + __u32 latency; /* added delay (us) */ + __u32 limit; /* fifo limit (packets) */ + __u32 loss; /* random packet loss (0=none ~0=100%) */ + __u32 gap; /* re-ordering gap (0 for none) */ + __u32 duplicate; /* random packet dup (0=none ~0=100%) */ + __u32 jitter; /* random jitter in latency (us) */ +}; + +struct tc_netem_corr { + __u32 delay_corr; /* delay correlation */ + __u32 loss_corr; /* packet loss correlation */ + __u32 dup_corr; /* duplicate correlation */ +}; + +struct tc_netem_reorder { + __u32 probability; + __u32 correlation; +}; + +struct tc_netem_corrupt { + __u32 probability; + __u32 correlation; +}; + +struct tc_netem_rate { + __u32 rate; /* byte/s */ + __s32 packet_overhead; + __u32 cell_size; + __s32 cell_overhead; +}; + +enum { + NETEM_LOSS_UNSPEC, + NETEM_LOSS_GI, /* General Intuitive - 4 state model */ + NETEM_LOSS_GE, /* Gilbert Elliot models */ + __NETEM_LOSS_MAX +}; +#define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1) + +/* State transition probabilities for 4 state model */ +struct tc_netem_gimodel { + __u32 p13; + __u32 p31; + __u32 p32; + __u32 p14; + __u32 p23; +}; + +/* Gilbert-Elliot models */ +struct tc_netem_gemodel { + __u32 p; + __u32 r; + __u32 h; + __u32 k1; +}; + +#define NETEM_DIST_SCALE 8192 +#define NETEM_DIST_MAX 16384 + +/* DRR */ + +enum { + TCA_DRR_UNSPEC, + TCA_DRR_QUANTUM, + __TCA_DRR_MAX +}; + +#define TCA_DRR_MAX (__TCA_DRR_MAX - 1) + +struct tc_drr_stats { + __u32 deficit; +}; + +/* MQPRIO */ +#define TC_QOPT_BITMASK 15 +#define TC_QOPT_MAX_QUEUE 16 + +struct tc_mqprio_qopt { + __u8 num_tc; + __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; + __u8 hw; + __u16 count[TC_QOPT_MAX_QUEUE]; + __u16 offset[TC_QOPT_MAX_QUEUE]; +}; + +/* SFB */ + +enum { + TCA_SFB_UNSPEC, + TCA_SFB_PARMS, + __TCA_SFB_MAX, +}; + +#define TCA_SFB_MAX (__TCA_SFB_MAX - 1) + +/* + * Note: increment, decrement are Q0.16 fixed-point values. + */ +struct tc_sfb_qopt { + __u32 rehash_interval; /* delay between hash move, in ms */ + __u32 warmup_time; /* double buffering warmup time in ms (warmup_time < rehash_interval) */ + __u32 max; /* max len of qlen_min */ + __u32 bin_size; /* maximum queue length per bin */ + __u32 increment; /* probability increment, (d1 in Blue) */ + __u32 decrement; /* probability decrement, (d2 in Blue) */ + __u32 limit; /* max SFB queue length */ + __u32 penalty_rate; /* inelastic flows are rate limited to 'rate' pps */ + __u32 penalty_burst; +}; + +struct tc_sfb_xstats { + __u32 earlydrop; + __u32 penaltydrop; + __u32 bucketdrop; + __u32 queuedrop; + __u32 childdrop; /* drops in child qdisc */ + __u32 marked; + __u32 maxqlen; + __u32 maxprob; + __u32 avgprob; +}; + +#define SFB_MAX_PROB 0xFFFF + +/* QFQ */ +enum { + TCA_QFQ_UNSPEC, + TCA_QFQ_WEIGHT, + TCA_QFQ_LMAX, + __TCA_QFQ_MAX +}; + +#define TCA_QFQ_MAX (__TCA_QFQ_MAX - 1) + +struct tc_qfq_stats { + __u32 weight; + __u32 lmax; +}; + +/* CODEL */ + +enum { + TCA_CODEL_UNSPEC, + TCA_CODEL_TARGET, + TCA_CODEL_LIMIT, + TCA_CODEL_INTERVAL, + TCA_CODEL_ECN, + __TCA_CODEL_MAX +}; + +#define TCA_CODEL_MAX (__TCA_CODEL_MAX - 1) + +struct tc_codel_xstats { + __u32 maxpacket; /* largest packet we've seen so far */ + __u32 count; /* how many drops we've done since the last time we + * entered dropping state + */ + __u32 lastcount; /* count at entry to dropping state */ + __u32 ldelay; /* in-queue delay seen by most recently dequeued packet */ + __s32 drop_next; /* time to drop next packet */ + __u32 drop_overlimit; /* number of time max qdisc packet limit was hit */ + __u32 ecn_mark; /* number of packets we ECN marked instead of dropped */ + __u32 dropping; /* are we in dropping state ? */ +}; + +/* FQ_CODEL */ + +enum { + TCA_FQ_CODEL_UNSPEC, + TCA_FQ_CODEL_TARGET, + TCA_FQ_CODEL_LIMIT, + TCA_FQ_CODEL_INTERVAL, + TCA_FQ_CODEL_ECN, + TCA_FQ_CODEL_FLOWS, + TCA_FQ_CODEL_QUANTUM, + __TCA_FQ_CODEL_MAX +}; + +#define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1) + +enum { + TCA_FQ_CODEL_XSTATS_QDISC, + TCA_FQ_CODEL_XSTATS_CLASS, +}; + +struct tc_fq_codel_qd_stats { + __u32 maxpacket; /* largest packet we've seen so far */ + __u32 drop_overlimit; /* number of time max qdisc + * packet limit was hit + */ + __u32 ecn_mark; /* number of packets we ECN marked + * instead of being dropped + */ + __u32 new_flow_count; /* number of time packets + * created a 'new flow' + */ + __u32 new_flows_len; /* count of flows in new list */ + __u32 old_flows_len; /* count of flows in old list */ +}; + +struct tc_fq_codel_cl_stats { + __s32 deficit; + __u32 ldelay; /* in-queue delay seen by most recently + * dequeued packet + */ + __u32 count; + __u32 lastcount; + __u32 dropping; + __s32 drop_next; +}; + +struct tc_fq_codel_xstats { + __u32 type; + union { + struct tc_fq_codel_qd_stats qdisc_stats; + struct tc_fq_codel_cl_stats class_stats; + }; +}; + +#endif diff --git a/kernel_headers/linux/pktcdvd.h b/kernel_headers/linux/pktcdvd.h new file mode 100644 index 0000000..7c31eb7 --- /dev/null +++ b/kernel_headers/linux/pktcdvd.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2000 Jens Axboe + * Copyright (C) 2001-2004 Peter Osterlund + * + * May be copied or modified under the terms of the GNU General Public + * License. See linux/COPYING for more information. + * + * Packet writing layer for ATAPI and SCSI CD-R, CD-RW, DVD-R, and + * DVD-RW devices. + * + */ +#ifndef __PKTCDVD_H +#define __PKTCDVD_H + +#include + +/* + * 1 for normal debug messages, 2 is very verbose. 0 to turn it off. + */ +#define PACKET_DEBUG 1 + +#define MAX_WRITERS 8 + +#define PKT_RB_POOL_SIZE 512 + +/* + * How long we should hold a non-full packet before starting data gathering. + */ +#define PACKET_WAIT_TIME (HZ * 5 / 1000) + +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + +/* + * No user-servicable parts beyond this point -> + */ + +/* + * device types + */ +#define PACKET_CDR 1 +#define PACKET_CDRW 2 +#define PACKET_DVDR 3 +#define PACKET_DVDRW 4 + +/* + * flags + */ +#define PACKET_WRITABLE 1 /* pd is writable */ +#define PACKET_NWA_VALID 2 /* next writable address valid */ +#define PACKET_LRA_VALID 3 /* last recorded address valid */ +#define PACKET_MERGE_SEGS 4 /* perform segment merging to keep */ + /* underlying cdrom device happy */ + +/* + * Disc status -- from READ_DISC_INFO + */ +#define PACKET_DISC_EMPTY 0 +#define PACKET_DISC_INCOMPLETE 1 +#define PACKET_DISC_COMPLETE 2 +#define PACKET_DISC_OTHER 3 + +/* + * write type, and corresponding data block type + */ +#define PACKET_MODE1 1 +#define PACKET_MODE2 2 +#define PACKET_BLOCK_MODE1 8 +#define PACKET_BLOCK_MODE2 10 + +/* + * Last session/border status + */ +#define PACKET_SESSION_EMPTY 0 +#define PACKET_SESSION_INCOMPLETE 1 +#define PACKET_SESSION_RESERVED 2 +#define PACKET_SESSION_COMPLETE 3 + +#define PACKET_MCN "4a656e734178626f65323030300000" + +#undef PACKET_USE_LS + +#define PKT_CTRL_CMD_SETUP 0 +#define PKT_CTRL_CMD_TEARDOWN 1 +#define PKT_CTRL_CMD_STATUS 2 + +struct pkt_ctrl_command { + __u32 command; /* in: Setup, teardown, status */ + __u32 dev_index; /* in/out: Device index */ + __u32 dev; /* in/out: Device nr for cdrw device */ + __u32 pkt_dev; /* in/out: Device nr for packet device */ + __u32 num_devices; /* out: Largest device index + 1 */ + __u32 padding; /* Not used */ +}; + +/* + * packet ioctls + */ +#define PACKET_IOCTL_MAGIC ('X') +#define PACKET_CTRL_CMD _IOWR(PACKET_IOCTL_MAGIC, 1, struct pkt_ctrl_command) + + +#endif /* __PKTCDVD_H */ diff --git a/kernel_headers/linux/pmu.h b/kernel_headers/linux/pmu.h new file mode 100644 index 0000000..12eccb4 --- /dev/null +++ b/kernel_headers/linux/pmu.h @@ -0,0 +1,139 @@ +/* + * Definitions for talking to the PMU. The PMU is a microcontroller + * which controls battery charging and system power on PowerBook 3400 + * and 2400 models as well as the RTC and various other things. + * + * Copyright (C) 1998 Paul Mackerras. + */ + +#ifndef _LINUX_PMU_H +#define _LINUX_PMU_H + +#define PMU_DRIVER_VERSION 2 + +/* + * PMU commands + */ +#define PMU_POWER_CTRL0 0x10 /* control power of some devices */ +#define PMU_POWER_CTRL 0x11 /* control power of some devices */ +#define PMU_ADB_CMD 0x20 /* send ADB packet */ +#define PMU_ADB_POLL_OFF 0x21 /* disable ADB auto-poll */ +#define PMU_WRITE_NVRAM 0x33 /* write non-volatile RAM */ +#define PMU_READ_NVRAM 0x3b /* read non-volatile RAM */ +#define PMU_SET_RTC 0x30 /* set real-time clock */ +#define PMU_READ_RTC 0x38 /* read real-time clock */ +#define PMU_SET_VOLBUTTON 0x40 /* set volume up/down position */ +#define PMU_BACKLIGHT_BRIGHT 0x41 /* set backlight brightness */ +#define PMU_GET_VOLBUTTON 0x48 /* get volume up/down position */ +#define PMU_PCEJECT 0x4c /* eject PC-card from slot */ +#define PMU_BATTERY_STATE 0x6b /* report battery state etc. */ +#define PMU_SMART_BATTERY_STATE 0x6f /* report battery state (new way) */ +#define PMU_SET_INTR_MASK 0x70 /* set PMU interrupt mask */ +#define PMU_INT_ACK 0x78 /* read interrupt bits */ +#define PMU_SHUTDOWN 0x7e /* turn power off */ +#define PMU_CPU_SPEED 0x7d /* control CPU speed on some models */ +#define PMU_SLEEP 0x7f /* put CPU to sleep */ +#define PMU_POWER_EVENTS 0x8f /* Send power-event commands to PMU */ +#define PMU_I2C_CMD 0x9a /* I2C operations */ +#define PMU_RESET 0xd0 /* reset CPU */ +#define PMU_GET_BRIGHTBUTTON 0xd9 /* report brightness up/down pos */ +#define PMU_GET_COVER 0xdc /* report cover open/closed */ +#define PMU_SYSTEM_READY 0xdf /* tell PMU we are awake */ +#define PMU_GET_VERSION 0xea /* read the PMU version */ + +/* Bits to use with the PMU_POWER_CTRL0 command */ +#define PMU_POW0_ON 0x80 /* OR this to power ON the device */ +#define PMU_POW0_OFF 0x00 /* leave bit 7 to 0 to power it OFF */ +#define PMU_POW0_HARD_DRIVE 0x04 /* Hard drive power (on wallstreet/lombard ?) */ + +/* Bits to use with the PMU_POWER_CTRL command */ +#define PMU_POW_ON 0x80 /* OR this to power ON the device */ +#define PMU_POW_OFF 0x00 /* leave bit 7 to 0 to power it OFF */ +#define PMU_POW_BACKLIGHT 0x01 /* backlight power */ +#define PMU_POW_CHARGER 0x02 /* battery charger power */ +#define PMU_POW_IRLED 0x04 /* IR led power (on wallstreet) */ +#define PMU_POW_MEDIABAY 0x08 /* media bay power (wallstreet/lombard ?) */ + +/* Bits in PMU interrupt and interrupt mask bytes */ +#define PMU_INT_PCEJECT 0x04 /* PC-card eject buttons */ +#define PMU_INT_SNDBRT 0x08 /* sound/brightness up/down buttons */ +#define PMU_INT_ADB 0x10 /* ADB autopoll or reply data */ +#define PMU_INT_BATTERY 0x20 /* Battery state change */ +#define PMU_INT_ENVIRONMENT 0x40 /* Environment interrupts */ +#define PMU_INT_TICK 0x80 /* 1-second tick interrupt */ + +/* Other bits in PMU interrupt valid when PMU_INT_ADB is set */ +#define PMU_INT_ADB_AUTO 0x04 /* ADB autopoll, when PMU_INT_ADB */ +#define PMU_INT_WAITING_CHARGER 0x01 /* ??? */ +#define PMU_INT_AUTO_SRQ_POLL 0x02 /* ??? */ + +/* Bits in the environement message (either obtained via PMU_GET_COVER, + * or via PMU_INT_ENVIRONMENT on core99 */ +#define PMU_ENV_LID_CLOSED 0x01 /* The lid is closed */ + +/* I2C related definitions */ +#define PMU_I2C_MODE_SIMPLE 0 +#define PMU_I2C_MODE_STDSUB 1 +#define PMU_I2C_MODE_COMBINED 2 + +#define PMU_I2C_BUS_STATUS 0 +#define PMU_I2C_BUS_SYSCLK 1 +#define PMU_I2C_BUS_POWER 2 + +#define PMU_I2C_STATUS_OK 0 +#define PMU_I2C_STATUS_DATAREAD 1 +#define PMU_I2C_STATUS_BUSY 0xfe + + +/* Kind of PMU (model) */ +enum { + PMU_UNKNOWN, + PMU_OHARE_BASED, /* 2400, 3400, 3500 (old G3 powerbook) */ + PMU_HEATHROW_BASED, /* PowerBook G3 series */ + PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */ + PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */ + PMU_68K_V1, /* 68K PMU, version 1 */ + PMU_68K_V2, /* 68K PMU, version 2 */ +}; + +/* PMU PMU_POWER_EVENTS commands */ +enum { + PMU_PWR_GET_POWERUP_EVENTS = 0x00, + PMU_PWR_SET_POWERUP_EVENTS = 0x01, + PMU_PWR_CLR_POWERUP_EVENTS = 0x02, + PMU_PWR_GET_WAKEUP_EVENTS = 0x03, + PMU_PWR_SET_WAKEUP_EVENTS = 0x04, + PMU_PWR_CLR_WAKEUP_EVENTS = 0x05, +}; + +/* Power events wakeup bits */ +enum { + PMU_PWR_WAKEUP_KEY = 0x01, /* Wake on key press */ + PMU_PWR_WAKEUP_AC_INSERT = 0x02, /* Wake on AC adapter plug */ + PMU_PWR_WAKEUP_AC_CHANGE = 0x04, + PMU_PWR_WAKEUP_LID_OPEN = 0x08, + PMU_PWR_WAKEUP_RING = 0x10, +}; + +/* + * Ioctl commands for the /dev/pmu device + */ +#include + +/* no param */ +#define PMU_IOC_SLEEP _IO('B', 0) +/* out param: u32* backlight value: 0 to 15 */ +#define PMU_IOC_GET_BACKLIGHT _IOR('B', 1, size_t) +/* in param: u32 backlight value: 0 to 15 */ +#define PMU_IOC_SET_BACKLIGHT _IOW('B', 2, size_t) +/* out param: u32* PMU model */ +#define PMU_IOC_GET_MODEL _IOR('B', 3, size_t) +/* out param: u32* has_adb: 0 or 1 */ +#define PMU_IOC_HAS_ADB _IOR('B', 4, size_t) +/* out param: u32* can_sleep: 0 or 1 */ +#define PMU_IOC_CAN_SLEEP _IOR('B', 5, size_t) +/* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */ +#define PMU_IOC_GRAB_BACKLIGHT _IOR('B', 6, size_t) + + +#endif /* _LINUX_PMU_H */ diff --git a/kernel_headers/linux/poll.h b/kernel_headers/linux/poll.h new file mode 100644 index 0000000..2001fed --- /dev/null +++ b/kernel_headers/linux/poll.h @@ -0,0 +1 @@ +#include diff --git a/kernel_headers/linux/posix_types.h b/kernel_headers/linux/posix_types.h new file mode 100644 index 0000000..988f76e --- /dev/null +++ b/kernel_headers/linux/posix_types.h @@ -0,0 +1,37 @@ +#ifndef _LINUX_POSIX_TYPES_H +#define _LINUX_POSIX_TYPES_H + +#include + +/* + * This allows for 1024 file descriptors: if NR_OPEN is ever grown + * beyond that you'll have to change this too. But 1024 fd's seem to be + * enough even for such "real" unices like OSF/1, so hopefully this is + * one limit that doesn't have to be changed [again]. + * + * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in + * (and thus ) - but this is a more logical + * place for them. Solved by having dummy defines in . + */ + +/* + * This macro may have been defined in . But we always + * use the one here. + */ +#undef __FD_SETSIZE +#define __FD_SETSIZE 1024 + +typedef struct { + unsigned long fds_bits[__FD_SETSIZE / (8 * sizeof(long))]; +} __kernel_fd_set; + +/* Type of a signal handler. */ +typedef void (*__kernel_sighandler_t)(int); + +/* Type of a SYSV IPC key. */ +typedef int __kernel_key_t; +typedef int __kernel_mqd_t; + +#include + +#endif /* _LINUX_POSIX_TYPES_H */ diff --git a/kernel_headers/linux/ppdev.h b/kernel_headers/linux/ppdev.h new file mode 100644 index 0000000..dc18c5d --- /dev/null +++ b/kernel_headers/linux/ppdev.h @@ -0,0 +1,99 @@ +/* + * linux/include/linux/ppdev.h + * + * User-space parallel port device driver (header file). + * + * Copyright (C) 1998-9 Tim Waugh + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * Added PPGETTIME/PPSETTIME, Fred Barnes, 1999 + * Added PPGETMODES/PPGETMODE/PPGETPHASE, Fred Barnes , 03/01/2001 + */ + +#define PP_IOCTL 'p' + +/* Set mode for read/write (e.g. IEEE1284_MODE_EPP) */ +#define PPSETMODE _IOW(PP_IOCTL, 0x80, int) + +/* Read status */ +#define PPRSTATUS _IOR(PP_IOCTL, 0x81, unsigned char) +#define PPWSTATUS OBSOLETE__IOW(PP_IOCTL, 0x82, unsigned char) + +/* Read/write control */ +#define PPRCONTROL _IOR(PP_IOCTL, 0x83, unsigned char) +#define PPWCONTROL _IOW(PP_IOCTL, 0x84, unsigned char) + +struct ppdev_frob_struct { + unsigned char mask; + unsigned char val; +}; +#define PPFCONTROL _IOW(PP_IOCTL, 0x8e, struct ppdev_frob_struct) + +/* Read/write data */ +#define PPRDATA _IOR(PP_IOCTL, 0x85, unsigned char) +#define PPWDATA _IOW(PP_IOCTL, 0x86, unsigned char) + +/* Read/write econtrol (not used) */ +#define PPRECONTROL OBSOLETE__IOR(PP_IOCTL, 0x87, unsigned char) +#define PPWECONTROL OBSOLETE__IOW(PP_IOCTL, 0x88, unsigned char) + +/* Read/write FIFO (not used) */ +#define PPRFIFO OBSOLETE__IOR(PP_IOCTL, 0x89, unsigned char) +#define PPWFIFO OBSOLETE__IOW(PP_IOCTL, 0x8a, unsigned char) + +/* Claim the port to start using it */ +#define PPCLAIM _IO(PP_IOCTL, 0x8b) + +/* Release the port when you aren't using it */ +#define PPRELEASE _IO(PP_IOCTL, 0x8c) + +/* Yield the port (release it if another driver is waiting, + * then reclaim) */ +#define PPYIELD _IO(PP_IOCTL, 0x8d) + +/* Register device exclusively (must be before PPCLAIM). */ +#define PPEXCL _IO(PP_IOCTL, 0x8f) + +/* Data line direction: non-zero for input mode. */ +#define PPDATADIR _IOW(PP_IOCTL, 0x90, int) + +/* Negotiate a particular IEEE 1284 mode. */ +#define PPNEGOT _IOW(PP_IOCTL, 0x91, int) + +/* Set control lines when an interrupt occurs. */ +#define PPWCTLONIRQ _IOW(PP_IOCTL, 0x92, unsigned char) + +/* Clear (and return) interrupt count. */ +#define PPCLRIRQ _IOR(PP_IOCTL, 0x93, int) + +/* Set the IEEE 1284 phase that we're in (e.g. IEEE1284_PH_FWD_IDLE) */ +#define PPSETPHASE _IOW(PP_IOCTL, 0x94, int) + +/* Set and get port timeout (struct timeval's) */ +#define PPGETTIME _IOR(PP_IOCTL, 0x95, struct timeval) +#define PPSETTIME _IOW(PP_IOCTL, 0x96, struct timeval) + +/* Get available modes (what the hardware can do) */ +#define PPGETMODES _IOR(PP_IOCTL, 0x97, unsigned int) + +/* Get the current mode and phaze */ +#define PPGETMODE _IOR(PP_IOCTL, 0x98, int) +#define PPGETPHASE _IOR(PP_IOCTL, 0x99, int) + +/* get/set flags */ +#define PPGETFLAGS _IOR(PP_IOCTL, 0x9a, int) +#define PPSETFLAGS _IOW(PP_IOCTL, 0x9b, int) + +/* flags visible to the world */ +#define PP_FASTWRITE (1<<2) +#define PP_FASTREAD (1<<3) +#define PP_W91284PIC (1<<4) + +/* only masks user-visible flags */ +#define PP_FLAGMASK (PP_FASTWRITE | PP_FASTREAD | PP_W91284PIC) + + diff --git a/kernel_headers/linux/ppp-comp.h b/kernel_headers/linux/ppp-comp.h new file mode 100644 index 0000000..e16dead --- /dev/null +++ b/kernel_headers/linux/ppp-comp.h @@ -0,0 +1,93 @@ +/* + * ppp-comp.h - Definitions for doing PPP packet compression. + * + * Copyright 1994-1998 Paul Mackerras. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + */ +#ifndef _NET_PPP_COMP_H +#define _NET_PPP_COMP_H + + +/* + * CCP codes. + */ + +#define CCP_CONFREQ 1 +#define CCP_CONFACK 2 +#define CCP_TERMREQ 5 +#define CCP_TERMACK 6 +#define CCP_RESETREQ 14 +#define CCP_RESETACK 15 + +/* + * Max # bytes for a CCP option + */ + +#define CCP_MAX_OPTION_LENGTH 32 + +/* + * Parts of a CCP packet. + */ + +#define CCP_CODE(dp) ((dp)[0]) +#define CCP_ID(dp) ((dp)[1]) +#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3]) +#define CCP_HDRLEN 4 + +#define CCP_OPT_CODE(dp) ((dp)[0]) +#define CCP_OPT_LENGTH(dp) ((dp)[1]) +#define CCP_OPT_MINLEN 2 + +/* + * Definitions for BSD-Compress. + */ + +#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */ +#define CILEN_BSD_COMPRESS 3 /* length of config. option */ + +/* Macros for handling the 3rd byte of the BSD-Compress config option. */ +#define BSD_NBITS(x) ((x) & 0x1F) /* number of bits requested */ +#define BSD_VERSION(x) ((x) >> 5) /* version of option format */ +#define BSD_CURRENT_VERSION 1 /* current version number */ +#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n)) + +#define BSD_MIN_BITS 9 /* smallest code size supported */ +#define BSD_MAX_BITS 15 /* largest code size supported */ + +/* + * Definitions for Deflate. + */ + +#define CI_DEFLATE 26 /* config option for Deflate */ +#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */ +#define CILEN_DEFLATE 4 /* length of its config option */ + +#define DEFLATE_MIN_SIZE 9 +#define DEFLATE_MAX_SIZE 15 +#define DEFLATE_METHOD_VAL 8 +#define DEFLATE_SIZE(x) (((x) >> 4) + 8) +#define DEFLATE_METHOD(x) ((x) & 0x0F) +#define DEFLATE_MAKE_OPT(w) ((((w) - 8) << 4) + DEFLATE_METHOD_VAL) +#define DEFLATE_CHK_SEQUENCE 0 + +/* + * Definitions for MPPE. + */ + +#define CI_MPPE 18 /* config option for MPPE */ +#define CILEN_MPPE 6 /* length of config option */ + +/* + * Definitions for other, as yet unsupported, compression methods. + */ + +#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */ +#define CILEN_PREDICTOR_1 2 /* length of its config option */ +#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */ +#define CILEN_PREDICTOR_2 2 /* length of its config option */ + + +#endif /* _NET_PPP_COMP_H */ diff --git a/kernel_headers/linux/ppp-ioctl.h b/kernel_headers/linux/ppp-ioctl.h new file mode 100644 index 0000000..e24483a --- /dev/null +++ b/kernel_headers/linux/ppp-ioctl.h @@ -0,0 +1,119 @@ +/* + * ppp-ioctl.h - PPP ioctl definitions. + * + * Copyright 1999-2002 Paul Mackerras. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + */ +#ifndef _PPP_IOCTL_H +#define _PPP_IOCTL_H + +#include + + +/* + * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS. + */ +#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ +#define SC_COMP_AC 0x00000002 /* header compression (output) */ +#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ +#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ +#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ +#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ +#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ +#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ +#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ +#define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */ +#define SC_MULTILINK 0x00000400 /* do multilink encapsulation */ +#define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */ +#define SC_COMP_RUN 0x00001000 /* compressor has been inited */ +#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ +#define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */ +#define SC_DEBUG 0x00010000 /* enable debug messages */ +#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ +#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ +#define SC_LOG_RAWIN 0x00080000 /* log all chars received */ +#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ +#define SC_SYNC 0x00200000 /* synchronous serial mode */ +#define SC_MUST_COMP 0x00400000 /* no uncompressed packets may be sent or received */ +#define SC_MASK 0x0f600fff /* bits that user can change */ + +/* state bits */ +#define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */ +#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ +#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ +#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ +#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ +#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ +#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ + +/* Used with PPPIOCGNPMODE/PPPIOCSNPMODE */ +struct npioctl { + int protocol; /* PPP protocol, e.g. PPP_IP */ + enum NPmode mode; +}; + +/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ +struct ppp_option_data { + __u8 *ptr; + __u32 length; + int transmit; +}; + +/* For PPPIOCGL2TPSTATS */ +struct pppol2tp_ioc_stats { + __u16 tunnel_id; /* redundant */ + __u16 session_id; /* if zero, get tunnel stats */ + __u32 using_ipsec:1; /* valid only for session_id == 0 */ + __aligned_u64 tx_packets; + __aligned_u64 tx_bytes; + __aligned_u64 tx_errors; + __aligned_u64 rx_packets; + __aligned_u64 rx_bytes; + __aligned_u64 rx_seq_discards; + __aligned_u64 rx_oos_packets; + __aligned_u64 rx_errors; +}; + +/* + * Ioctl definitions. + */ + +#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ +#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ +#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ +#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ +#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ +#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ +#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ +#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ +#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ +#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ +#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ +#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ +#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ +#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) +#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ +#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ +#define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */ +#define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */ +#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ +#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ +#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ +#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */ +#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */ +#define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */ +#define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */ +#define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */ +#define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */ +#define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */ +#define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */ +#define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats) + +#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) +#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ +#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) + +#endif /* _PPP_IOCTL_H */ diff --git a/kernel_headers/linux/ppp_defs.h b/kernel_headers/linux/ppp_defs.h new file mode 100644 index 0000000..096dd5c --- /dev/null +++ b/kernel_headers/linux/ppp_defs.h @@ -0,0 +1,150 @@ +/* + * ppp_defs.h - PPP definitions. + * + * Copyright 1994-2000 Paul Mackerras. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + */ +#include + +#ifndef _PPP_DEFS_H_ +#define _PPP_DEFS_H_ + +/* + * The basic PPP frame. + */ +#define PPP_HDRLEN 4 /* octets for standard ppp header */ +#define PPP_FCSLEN 2 /* octets for FCS */ +#define PPP_MRU 1500 /* default MRU = max length of info field */ + +#define PPP_ADDRESS(p) (((__u8 *)(p))[0]) +#define PPP_CONTROL(p) (((__u8 *)(p))[1]) +#define PPP_PROTOCOL(p) ((((__u8 *)(p))[2] << 8) + ((__u8 *)(p))[3]) + +/* + * Significant octet values. + */ +#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ +#define PPP_UI 0x03 /* Unnumbered Information */ +#define PPP_FLAG 0x7e /* Flag Sequence */ +#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ +#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ + +/* + * Protocol field values. + */ +#define PPP_IP 0x21 /* Internet Protocol */ +#define PPP_AT 0x29 /* AppleTalk Protocol */ +#define PPP_IPX 0x2b /* IPX protocol */ +#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ +#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ +#define PPP_MP 0x3d /* Multilink protocol */ +#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */ +#define PPP_COMPFRAG 0xfb /* fragment compressed below bundle */ +#define PPP_COMP 0xfd /* compressed packet */ +#define PPP_MPLS_UC 0x0281 /* Multi Protocol Label Switching - Unicast */ +#define PPP_MPLS_MC 0x0283 /* Multi Protocol Label Switching - Multicast */ +#define PPP_IPCP 0x8021 /* IP Control Protocol */ +#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ +#define PPP_IPXCP 0x802b /* IPX Control Protocol */ +#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */ +#define PPP_CCPFRAG 0x80fb /* CCP at link level (below MP bundle) */ +#define PPP_CCP 0x80fd /* Compression Control Protocol */ +#define PPP_MPLSCP 0x80fd /* MPLS Control Protocol */ +#define PPP_LCP 0xc021 /* Link Control Protocol */ +#define PPP_PAP 0xc023 /* Password Authentication Protocol */ +#define PPP_LQR 0xc025 /* Link Quality Report protocol */ +#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ +#define PPP_CBCP 0xc029 /* Callback Control Protocol */ + +/* + * Values for FCS calculations. + */ + +#define PPP_INITFCS 0xffff /* Initial FCS value */ +#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */ + + +/* + * Extended asyncmap - allows any character to be escaped. + */ + +typedef __u32 ext_accm[8]; + +/* + * What to do with network protocol (NP) packets. + */ +enum NPmode { + NPMODE_PASS, /* pass the packet through */ + NPMODE_DROP, /* silently drop the packet */ + NPMODE_ERROR, /* return an error */ + NPMODE_QUEUE /* save it up for later. */ +}; + +/* + * Statistics for LQRP and pppstats + */ +struct pppstat { + __u32 ppp_discards; /* # frames discarded */ + + __u32 ppp_ibytes; /* bytes received */ + __u32 ppp_ioctects; /* bytes received not in error */ + __u32 ppp_ipackets; /* packets received */ + __u32 ppp_ierrors; /* receive errors */ + __u32 ppp_ilqrs; /* # LQR frames received */ + + __u32 ppp_obytes; /* raw bytes sent */ + __u32 ppp_ooctects; /* frame bytes sent */ + __u32 ppp_opackets; /* packets sent */ + __u32 ppp_oerrors; /* transmit errors */ + __u32 ppp_olqrs; /* # LQR frames sent */ +}; + +struct vjstat { + __u32 vjs_packets; /* outbound packets */ + __u32 vjs_compressed; /* outbound compressed packets */ + __u32 vjs_searches; /* searches for connection state */ + __u32 vjs_misses; /* times couldn't find conn. state */ + __u32 vjs_uncompressedin; /* inbound uncompressed packets */ + __u32 vjs_compressedin; /* inbound compressed packets */ + __u32 vjs_errorin; /* inbound unknown type packets */ + __u32 vjs_tossed; /* inbound packets tossed because of error */ +}; + +struct compstat { + __u32 unc_bytes; /* total uncompressed bytes */ + __u32 unc_packets; /* total uncompressed packets */ + __u32 comp_bytes; /* compressed bytes */ + __u32 comp_packets; /* compressed packets */ + __u32 inc_bytes; /* incompressible bytes */ + __u32 inc_packets; /* incompressible packets */ + + /* the compression ratio is defined as in_count / bytes_out */ + __u32 in_count; /* Bytes received */ + __u32 bytes_out; /* Bytes transmitted */ + + double ratio; /* not computed in kernel. */ +}; + +struct ppp_stats { + struct pppstat p; /* basic PPP statistics */ + struct vjstat vj; /* VJ header compression statistics */ +}; + +struct ppp_comp_stats { + struct compstat c; /* packet compression statistics */ + struct compstat d; /* packet decompression statistics */ +}; + +/* + * The following structure records the time in seconds since + * the last NP packet was sent or received. + */ +struct ppp_idle { + __kernel_time_t xmit_idle; /* time since last NP packet sent */ + __kernel_time_t recv_idle; /* time since last NP packet received */ +}; + +#endif /* _PPP_DEFS_H_ */ diff --git a/kernel_headers/linux/pps.h b/kernel_headers/linux/pps.h new file mode 100644 index 0000000..a9bb1d9 --- /dev/null +++ b/kernel_headers/linux/pps.h @@ -0,0 +1,131 @@ +/* + * PPS API header + * + * Copyright (C) 2005-2009 Rodolfo Giometti + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +#ifndef _PPS_H_ +#define _PPS_H_ + +#include + +#define PPS_VERSION "5.3.6" +#define PPS_MAX_SOURCES 16 /* should be enough... */ + +/* Implementation note: the logical states ``assert'' and ``clear'' + * are implemented in terms of the chip register, i.e. ``assert'' + * means the bit is set. */ + +/* + * 3.2 New data structures + */ + +#define PPS_API_VERS_1 1 +#define PPS_API_VERS PPS_API_VERS_1 /* we use API version 1 */ +#define PPS_MAX_NAME_LEN 32 + +/* 32-bit vs. 64-bit compatibility. + * + * 0n i386, the alignment of a uint64_t is only 4 bytes, while on most other + * architectures it's 8 bytes. On i386, there will be no padding between the + * two consecutive 'struct pps_ktime' members of struct pps_kinfo and struct + * pps_kparams. But on most platforms there will be padding to ensure correct + * alignment. + * + * The simple fix is probably to add an explicit padding. + * [David Woodhouse] + */ +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; +}; +#define PPS_TIME_INVALID (1<<0) /* used to specify timeout==NULL */ + +struct pps_kinfo { + __u32 assert_sequence; /* seq. num. of assert event */ + __u32 clear_sequence; /* seq. num. of clear event */ + struct pps_ktime assert_tu; /* time of assert event */ + struct pps_ktime clear_tu; /* time of clear event */ + int current_mode; /* current mode bits */ +}; + +struct pps_kparams { + int api_version; /* API version # */ + int mode; /* mode bits */ + struct pps_ktime assert_off_tu; /* offset compensation for assert */ + struct pps_ktime clear_off_tu; /* offset compensation for clear */ +}; + +/* + * 3.3 Mode bit definitions + */ + +/* Device/implementation parameters */ +#define PPS_CAPTUREASSERT 0x01 /* capture assert events */ +#define PPS_CAPTURECLEAR 0x02 /* capture clear events */ +#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */ + +#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */ +#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */ + +#define PPS_CANWAIT 0x100 /* can we wait for an event? */ +#define PPS_CANPOLL 0x200 /* bit reserved for future use */ + +/* Kernel actions */ +#define PPS_ECHOASSERT 0x40 /* feed back assert event to output */ +#define PPS_ECHOCLEAR 0x80 /* feed back clear event to output */ + +/* Timestamp formats */ +#define PPS_TSFMT_TSPEC 0x1000 /* select timespec format */ +#define PPS_TSFMT_NTPFP 0x2000 /* select NTP format */ + +/* + * 3.4.4 New functions: disciplining the kernel timebase + */ + +/* Kernel consumers */ +#define PPS_KC_HARDPPS 0 /* hardpps() (or equivalent) */ +#define PPS_KC_HARDPPS_PLL 1 /* hardpps() constrained to + use a phase-locked loop */ +#define PPS_KC_HARDPPS_FLL 2 /* hardpps() constrained to + use a frequency-locked loop */ +/* + * Here begins the implementation-specific part! + */ + +struct pps_fdata { + struct pps_kinfo info; + struct pps_ktime timeout; +}; + +struct pps_bind_args { + int tsformat; /* format of time stamps */ + int edge; /* selected event type */ + int consumer; /* selected kernel consumer */ +}; + +#include + +#define PPS_GETPARAMS _IOR('p', 0xa1, struct pps_kparams *) +#define PPS_SETPARAMS _IOW('p', 0xa2, struct pps_kparams *) +#define PPS_GETCAP _IOR('p', 0xa3, int *) +#define PPS_FETCH _IOWR('p', 0xa4, struct pps_fdata *) +#define PPS_KC_BIND _IOW('p', 0xa5, struct pps_bind_args *) + +#endif /* _PPS_H_ */ diff --git a/kernel_headers/linux/prctl.h b/kernel_headers/linux/prctl.h new file mode 100644 index 0000000..28bb0b3 --- /dev/null +++ b/kernel_headers/linux/prctl.h @@ -0,0 +1,161 @@ +#ifndef _LINUX_PRCTL_H +#define _LINUX_PRCTL_H + +/* Values to pass as first argument to prctl() */ + +#define PR_SET_PDEATHSIG 1 /* Second arg is a signal */ +#define PR_GET_PDEATHSIG 2 /* Second arg is a ptr to return the signal */ + +/* Get/set current->mm->dumpable */ +#define PR_GET_DUMPABLE 3 +#define PR_SET_DUMPABLE 4 + +/* Get/set unaligned access control bits (if meaningful) */ +#define PR_GET_UNALIGN 5 +#define PR_SET_UNALIGN 6 +# define PR_UNALIGN_NOPRINT 1 /* silently fix up unaligned user accesses */ +# define PR_UNALIGN_SIGBUS 2 /* generate SIGBUS on unaligned user access */ + +/* Get/set whether or not to drop capabilities on setuid() away from + * uid 0 (as per security/commoncap.c) */ +#define PR_GET_KEEPCAPS 7 +#define PR_SET_KEEPCAPS 8 + +/* Get/set floating-point emulation control bits (if meaningful) */ +#define PR_GET_FPEMU 9 +#define PR_SET_FPEMU 10 +# define PR_FPEMU_NOPRINT 1 /* silently emulate fp operations accesses */ +# define PR_FPEMU_SIGFPE 2 /* don't emulate fp operations, send SIGFPE instead */ + +/* Get/set floating-point exception mode (if meaningful) */ +#define PR_GET_FPEXC 11 +#define PR_SET_FPEXC 12 +# define PR_FP_EXC_SW_ENABLE 0x80 /* Use FPEXC for FP exception enables */ +# define PR_FP_EXC_DIV 0x010000 /* floating point divide by zero */ +# define PR_FP_EXC_OVF 0x020000 /* floating point overflow */ +# define PR_FP_EXC_UND 0x040000 /* floating point underflow */ +# define PR_FP_EXC_RES 0x080000 /* floating point inexact result */ +# define PR_FP_EXC_INV 0x100000 /* floating point invalid operation */ +# define PR_FP_EXC_DISABLED 0 /* FP exceptions disabled */ +# define PR_FP_EXC_NONRECOV 1 /* async non-recoverable exc. mode */ +# define PR_FP_EXC_ASYNC 2 /* async recoverable exception mode */ +# define PR_FP_EXC_PRECISE 3 /* precise exception mode */ + +/* Get/set whether we use statistical process timing or accurate timestamp + * based process timing */ +#define PR_GET_TIMING 13 +#define PR_SET_TIMING 14 +# define PR_TIMING_STATISTICAL 0 /* Normal, traditional, + statistical process timing */ +# define PR_TIMING_TIMESTAMP 1 /* Accurate timestamp based + process timing */ + +#define PR_SET_NAME 15 /* Set process name */ +#define PR_GET_NAME 16 /* Get process name */ + +/* Get/set process endian */ +#define PR_GET_ENDIAN 19 +#define PR_SET_ENDIAN 20 +# define PR_ENDIAN_BIG 0 +# define PR_ENDIAN_LITTLE 1 /* True little endian mode */ +# define PR_ENDIAN_PPC_LITTLE 2 /* "PowerPC" pseudo little endian */ + +/* Get/set process seccomp mode */ +#define PR_GET_SECCOMP 21 +#define PR_SET_SECCOMP 22 + +/* Get/set the capability bounding set (as per security/commoncap.c) */ +#define PR_CAPBSET_READ 23 +#define PR_CAPBSET_DROP 24 + +/* Get/set the process' ability to use the timestamp counter instruction */ +#define PR_GET_TSC 25 +#define PR_SET_TSC 26 +# define PR_TSC_ENABLE 1 /* allow the use of the timestamp counter */ +# define PR_TSC_SIGSEGV 2 /* throw a SIGSEGV instead of reading the TSC */ + +/* Get/set securebits (as per security/commoncap.c) */ +#define PR_GET_SECUREBITS 27 +#define PR_SET_SECUREBITS 28 + +/* + * Get/set the timerslack as used by poll/select/nanosleep + * A value of 0 means "use default" + */ +#define PR_SET_TIMERSLACK 29 +#define PR_GET_TIMERSLACK 30 + +#define PR_TASK_PERF_EVENTS_DISABLE 31 +#define PR_TASK_PERF_EVENTS_ENABLE 32 + +/* + * Set early/late kill mode for hwpoison memory corruption. + * This influences when the process gets killed on a memory corruption. + */ +#define PR_MCE_KILL 33 +# define PR_MCE_KILL_CLEAR 0 +# define PR_MCE_KILL_SET 1 + +# define PR_MCE_KILL_LATE 0 +# define PR_MCE_KILL_EARLY 1 +# define PR_MCE_KILL_DEFAULT 2 + +#define PR_MCE_KILL_GET 34 + +/* + * Tune up process memory map specifics. + */ +#define PR_SET_MM 35 +# define PR_SET_MM_START_CODE 1 +# define PR_SET_MM_END_CODE 2 +# define PR_SET_MM_START_DATA 3 +# define PR_SET_MM_END_DATA 4 +# define PR_SET_MM_START_STACK 5 +# define PR_SET_MM_START_BRK 6 +# define PR_SET_MM_BRK 7 +# define PR_SET_MM_ARG_START 8 +# define PR_SET_MM_ARG_END 9 +# define PR_SET_MM_ENV_START 10 +# define PR_SET_MM_ENV_END 11 +# define PR_SET_MM_AUXV 12 +# define PR_SET_MM_EXE_FILE 13 + +/* + * Set specific pid that is allowed to ptrace the current task. + * A value of 0 mean "no process". + */ +#define PR_SET_PTRACER 0x59616d61 +# define PR_SET_PTRACER_ANY ((unsigned long)-1) + +#define PR_SET_CHILD_SUBREAPER 36 +#define PR_GET_CHILD_SUBREAPER 37 + +/* + * If no_new_privs is set, then operations that grant new privileges (i.e. + * execve) will either fail or not grant them. This affects suid/sgid, + * file capabilities, and LSMs. + * + * Operations that merely manipulate or drop existing privileges (setresuid, + * capset, etc.) will still work. Drop those privileges if you want them gone. + * + * Changing LSM security domain is considered a new privilege. So, for example, + * asking selinux for a specific new context (e.g. with runcon) will result + * in execve returning -EPERM. + * + * See Documentation/prctl/no_new_privs.txt for more details. + */ +#define PR_SET_NO_NEW_PRIVS 38 +#define PR_GET_NO_NEW_PRIVS 39 + +#define PR_GET_TID_ADDRESS 40 + +/* Sets the timerslack for arbitrary threads + * arg2 slack value, 0 means "use default" + * arg3 pid of the thread whose timer slack needs to be set + */ +#define PR_SET_TIMERSLACK_PID 41 + +#define PR_SET_VMA 0x53564d41 +# define PR_SET_VMA_ANON_NAME 0 + +#endif /* _LINUX_PRCTL_H */ diff --git a/kernel_headers/linux/psci.h b/kernel_headers/linux/psci.h new file mode 100644 index 0000000..5a76763 --- /dev/null +++ b/kernel_headers/linux/psci.h @@ -0,0 +1,90 @@ +/* + * ARM Power State and Coordination Interface (PSCI) header + * + * This header holds common PSCI defines and macros shared + * by: ARM kernel, ARM64 kernel, KVM ARM/ARM64 and user space. + * + * Copyright (C) 2014 Linaro Ltd. + * Author: Anup Patel + */ + +#ifndef _LINUX_PSCI_H +#define _LINUX_PSCI_H + +/* + * PSCI v0.1 interface + * + * The PSCI v0.1 function numbers are implementation defined. + * + * Only PSCI return values such as: SUCCESS, NOT_SUPPORTED, + * INVALID_PARAMS, and DENIED defined below are applicable + * to PSCI v0.1. + */ + +/* PSCI v0.2 interface */ +#define PSCI_0_2_FN_BASE 0x84000000 +#define PSCI_0_2_FN(n) (PSCI_0_2_FN_BASE + (n)) +#define PSCI_0_2_64BIT 0x40000000 +#define PSCI_0_2_FN64_BASE \ + (PSCI_0_2_FN_BASE + PSCI_0_2_64BIT) +#define PSCI_0_2_FN64(n) (PSCI_0_2_FN64_BASE + (n)) + +#define PSCI_0_2_FN_PSCI_VERSION PSCI_0_2_FN(0) +#define PSCI_0_2_FN_CPU_SUSPEND PSCI_0_2_FN(1) +#define PSCI_0_2_FN_CPU_OFF PSCI_0_2_FN(2) +#define PSCI_0_2_FN_CPU_ON PSCI_0_2_FN(3) +#define PSCI_0_2_FN_AFFINITY_INFO PSCI_0_2_FN(4) +#define PSCI_0_2_FN_MIGRATE PSCI_0_2_FN(5) +#define PSCI_0_2_FN_MIGRATE_INFO_TYPE PSCI_0_2_FN(6) +#define PSCI_0_2_FN_MIGRATE_INFO_UP_CPU PSCI_0_2_FN(7) +#define PSCI_0_2_FN_SYSTEM_OFF PSCI_0_2_FN(8) +#define PSCI_0_2_FN_SYSTEM_RESET PSCI_0_2_FN(9) + +#define PSCI_0_2_FN64_CPU_SUSPEND PSCI_0_2_FN64(1) +#define PSCI_0_2_FN64_CPU_ON PSCI_0_2_FN64(3) +#define PSCI_0_2_FN64_AFFINITY_INFO PSCI_0_2_FN64(4) +#define PSCI_0_2_FN64_MIGRATE PSCI_0_2_FN64(5) +#define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7) + +/* PSCI v0.2 power state encoding for CPU_SUSPEND function */ +#define PSCI_0_2_POWER_STATE_ID_MASK 0xffff +#define PSCI_0_2_POWER_STATE_ID_SHIFT 0 +#define PSCI_0_2_POWER_STATE_TYPE_SHIFT 16 +#define PSCI_0_2_POWER_STATE_TYPE_MASK \ + (0x1 << PSCI_0_2_POWER_STATE_TYPE_SHIFT) +#define PSCI_0_2_POWER_STATE_AFFL_SHIFT 24 +#define PSCI_0_2_POWER_STATE_AFFL_MASK \ + (0x3 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) + +/* PSCI v0.2 affinity level state returned by AFFINITY_INFO */ +#define PSCI_0_2_AFFINITY_LEVEL_ON 0 +#define PSCI_0_2_AFFINITY_LEVEL_OFF 1 +#define PSCI_0_2_AFFINITY_LEVEL_ON_PENDING 2 + +/* PSCI v0.2 multicore support in Trusted OS returned by MIGRATE_INFO_TYPE */ +#define PSCI_0_2_TOS_UP_MIGRATE 0 +#define PSCI_0_2_TOS_UP_NO_MIGRATE 1 +#define PSCI_0_2_TOS_MP 2 + +/* PSCI version decoding (independent of PSCI version) */ +#define PSCI_VERSION_MAJOR_SHIFT 16 +#define PSCI_VERSION_MINOR_MASK \ + ((1U << PSCI_VERSION_MAJOR_SHIFT) - 1) +#define PSCI_VERSION_MAJOR_MASK ~PSCI_VERSION_MINOR_MASK +#define PSCI_VERSION_MAJOR(ver) \ + (((ver) & PSCI_VERSION_MAJOR_MASK) >> PSCI_VERSION_MAJOR_SHIFT) +#define PSCI_VERSION_MINOR(ver) \ + ((ver) & PSCI_VERSION_MINOR_MASK) + +/* PSCI return values (inclusive of all PSCI versions) */ +#define PSCI_RET_SUCCESS 0 +#define PSCI_RET_NOT_SUPPORTED -1 +#define PSCI_RET_INVALID_PARAMS -2 +#define PSCI_RET_DENIED -3 +#define PSCI_RET_ALREADY_ON -4 +#define PSCI_RET_ON_PENDING -5 +#define PSCI_RET_INTERNAL_FAILURE -6 +#define PSCI_RET_NOT_PRESENT -7 +#define PSCI_RET_DISABLED -8 + +#endif /* _LINUX_PSCI_H */ diff --git a/kernel_headers/linux/ptp_clock.h b/kernel_headers/linux/ptp_clock.h new file mode 100644 index 0000000..b65c834 --- /dev/null +++ b/kernel_headers/linux/ptp_clock.h @@ -0,0 +1,98 @@ +/* + * PTP 1588 clock support - user space interface + * + * Copyright (C) 2010 OMICRON electronics GmbH + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _PTP_CLOCK_H_ +#define _PTP_CLOCK_H_ + +#include +#include + +/* PTP_xxx bits, for the flags field within the request structures. */ +#define PTP_ENABLE_FEATURE (1<<0) +#define PTP_RISING_EDGE (1<<1) +#define PTP_FALLING_EDGE (1<<2) + +/* + * struct ptp_clock_time - represents a time value + * + * The sign of the seconds field applies to the whole value. The + * nanoseconds field is always unsigned. The reserved field is + * included for sub-nanosecond resolution, should the demand for + * this ever appear. + * + */ +struct ptp_clock_time { + __s64 sec; /* seconds */ + __u32 nsec; /* nanoseconds */ + __u32 reserved; +}; + +struct ptp_clock_caps { + int max_adj; /* Maximum frequency adjustment in parts per billon. */ + int n_alarm; /* Number of programmable alarms. */ + int n_ext_ts; /* Number of external time stamp channels. */ + int n_per_out; /* Number of programmable periodic signals. */ + int pps; /* Whether the clock supports a PPS callback. */ + int rsv[15]; /* Reserved for future use. */ +}; + +struct ptp_extts_request { + unsigned int index; /* Which channel to configure. */ + unsigned int flags; /* Bit field for PTP_xxx flags. */ + unsigned int rsv[2]; /* Reserved for future use. */ +}; + +struct ptp_perout_request { + struct ptp_clock_time start; /* Absolute start time. */ + struct ptp_clock_time period; /* Desired period, zero means disable. */ + unsigned int index; /* Which channel to configure. */ + unsigned int flags; /* Reserved for future use. */ + unsigned int rsv[4]; /* Reserved for future use. */ +}; + +#define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */ + +struct ptp_sys_offset { + unsigned int n_samples; /* Desired number of measurements. */ + unsigned int rsv[3]; /* Reserved for future use. */ + /* + * Array of interleaved system/phc time stamps. The kernel + * will provide 2*n_samples + 1 time stamps, with the last + * one as a system time stamp. + */ + struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; +}; + +#define PTP_CLK_MAGIC '=' + +#define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) +#define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request) +#define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) +#define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int) +#define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset) + +struct ptp_extts_event { + struct ptp_clock_time t; /* Time event occured. */ + unsigned int index; /* Which channel produced the event. */ + unsigned int flags; /* Reserved for future use. */ + unsigned int rsv[2]; /* Reserved for future use. */ +}; + +#endif diff --git a/kernel_headers/linux/ptrace.h b/kernel_headers/linux/ptrace.h new file mode 100644 index 0000000..a8856b6 --- /dev/null +++ b/kernel_headers/linux/ptrace.h @@ -0,0 +1,96 @@ +#ifndef _LINUX_PTRACE_H +#define _LINUX_PTRACE_H +/* ptrace.h */ +/* structs and defines to help the user use the ptrace system call. */ + +/* has the defines to get at the registers. */ + +#include + +#define PTRACE_TRACEME 0 +#define PTRACE_PEEKTEXT 1 +#define PTRACE_PEEKDATA 2 +#define PTRACE_PEEKUSR 3 +#define PTRACE_POKETEXT 4 +#define PTRACE_POKEDATA 5 +#define PTRACE_POKEUSR 6 +#define PTRACE_CONT 7 +#define PTRACE_KILL 8 +#define PTRACE_SINGLESTEP 9 + +#define PTRACE_ATTACH 16 +#define PTRACE_DETACH 17 + +#define PTRACE_SYSCALL 24 + +/* 0x4200-0x4300 are reserved for architecture-independent additions. */ +#define PTRACE_SETOPTIONS 0x4200 +#define PTRACE_GETEVENTMSG 0x4201 +#define PTRACE_GETSIGINFO 0x4202 +#define PTRACE_SETSIGINFO 0x4203 + +/* + * Generic ptrace interface that exports the architecture specific regsets + * using the corresponding NT_* types (which are also used in the core dump). + * Please note that the NT_PRSTATUS note type in a core dump contains a full + * 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the + * elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the + * other user_regset flavors, the user_regset layout and the ELF core dump note + * payload are exactly the same layout. + * + * This interface usage is as follows: + * struct iovec iov = { buf, len}; + * + * ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov); + * + * On the successful completion, iov.len will be updated by the kernel, + * specifying how much the kernel has written/read to/from the user's iov.buf. + */ +#define PTRACE_GETREGSET 0x4204 +#define PTRACE_SETREGSET 0x4205 + +#define PTRACE_SEIZE 0x4206 +#define PTRACE_INTERRUPT 0x4207 +#define PTRACE_LISTEN 0x4208 + +#define PTRACE_PEEKSIGINFO 0x4209 + +struct ptrace_peeksiginfo_args { + __u64 off; /* from which siginfo to start */ + __u32 flags; + __s32 nr; /* how may siginfos to take */ +}; + +/* Read signals from a shared (process wide) queue */ +#define PTRACE_PEEKSIGINFO_SHARED (1 << 0) + +/* Wait extended result codes for the above trace options. */ +#define PTRACE_EVENT_FORK 1 +#define PTRACE_EVENT_VFORK 2 +#define PTRACE_EVENT_CLONE 3 +#define PTRACE_EVENT_EXEC 4 +#define PTRACE_EVENT_VFORK_DONE 5 +#define PTRACE_EVENT_EXIT 6 +#define PTRACE_EVENT_SECCOMP 7 +/* Extended result codes which enabled by means other than options. */ +#define PTRACE_EVENT_STOP 128 + +/* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */ +#define PTRACE_O_TRACESYSGOOD 1 +#define PTRACE_O_TRACEFORK (1 << PTRACE_EVENT_FORK) +#define PTRACE_O_TRACEVFORK (1 << PTRACE_EVENT_VFORK) +#define PTRACE_O_TRACECLONE (1 << PTRACE_EVENT_CLONE) +#define PTRACE_O_TRACEEXEC (1 << PTRACE_EVENT_EXEC) +#define PTRACE_O_TRACEVFORKDONE (1 << PTRACE_EVENT_VFORK_DONE) +#define PTRACE_O_TRACEEXIT (1 << PTRACE_EVENT_EXIT) +#define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP) + +/* eventless options */ +#define PTRACE_O_EXITKILL (1 << 20) + +#define PTRACE_O_MASK (0x000000ff | PTRACE_O_EXITKILL) + +#include + + +#endif /* _LINUX_PTRACE_H */ diff --git a/kernel_headers/linux/qcedev.h b/kernel_headers/linux/qcedev.h new file mode 100644 index 0000000..ba8be49 --- /dev/null +++ b/kernel_headers/linux/qcedev.h @@ -0,0 +1,259 @@ +#ifndef _QCEDEV__H +#define _QCEDEV__H + +#include +#include +#include "fips_status.h" + +#define QCEDEV_MAX_SHA_BLOCK_SIZE 64 +#define QCEDEV_MAX_BEARER 31 +#define QCEDEV_MAX_KEY_SIZE 64 +#define QCEDEV_MAX_IV_SIZE 32 + +#define QCEDEV_MAX_BUFFERS 16 +#define QCEDEV_MAX_SHA_DIGEST 32 + +#define QCEDEV_USE_PMEM 1 +#define QCEDEV_NO_PMEM 0 + +#define QCEDEV_AES_KEY_128 16 +#define QCEDEV_AES_KEY_192 24 +#define QCEDEV_AES_KEY_256 32 +/** +*qcedev_oper_enum: Operation types +* @QCEDEV_OPER_ENC: Encrypt +* @QCEDEV_OPER_DEC: Decrypt +* @QCEDEV_OPER_ENC_NO_KEY: Encrypt. Do not need key to be specified by +* user. Key already set by an external processor. +* @QCEDEV_OPER_DEC_NO_KEY: Decrypt. Do not need the key to be specified by +* user. Key already set by an external processor. +*/ +enum qcedev_oper_enum { + QCEDEV_OPER_DEC = 0, + QCEDEV_OPER_ENC = 1, + QCEDEV_OPER_DEC_NO_KEY = 2, + QCEDEV_OPER_ENC_NO_KEY = 3, + QCEDEV_OPER_LAST +}; + +/** +*qcedev_oper_enum: Cipher algorithm types +* @QCEDEV_ALG_DES: DES +* @QCEDEV_ALG_3DES: 3DES +* @QCEDEV_ALG_AES: AES +*/ +enum qcedev_cipher_alg_enum { + QCEDEV_ALG_DES = 0, + QCEDEV_ALG_3DES = 1, + QCEDEV_ALG_AES = 2, + QCEDEV_ALG_LAST +}; + +/** +*qcedev_cipher_mode_enum : AES mode +* @QCEDEV_AES_MODE_CBC: CBC +* @QCEDEV_AES_MODE_ECB: ECB +* @QCEDEV_AES_MODE_CTR: CTR +* @QCEDEV_AES_MODE_XTS: XTS +* @QCEDEV_AES_MODE_CCM: CCM +* @QCEDEV_DES_MODE_CBC: CBC +* @QCEDEV_DES_MODE_ECB: ECB +*/ +enum qcedev_cipher_mode_enum { + QCEDEV_AES_MODE_CBC = 0, + QCEDEV_AES_MODE_ECB = 1, + QCEDEV_AES_MODE_CTR = 2, + QCEDEV_AES_MODE_XTS = 3, + QCEDEV_AES_MODE_CCM = 4, + QCEDEV_DES_MODE_CBC = 5, + QCEDEV_DES_MODE_ECB = 6, + QCEDEV_AES_DES_MODE_LAST +}; + +/** +*enum qcedev_sha_alg_enum : Secure Hashing Algorithm +* @QCEDEV_ALG_SHA1: Digest returned: 20 bytes (160 bits) +* @QCEDEV_ALG_SHA256: Digest returned: 32 bytes (256 bit) +* @QCEDEV_ALG_SHA1_HMAC: HMAC returned 20 bytes (160 bits) +* @QCEDEV_ALG_SHA256_HMAC: HMAC returned 32 bytes (256 bit) +* @QCEDEV_ALG_AES_CMAC: Configurable MAC size +*/ +enum qcedev_sha_alg_enum { + QCEDEV_ALG_SHA1 = 0, + QCEDEV_ALG_SHA256 = 1, + QCEDEV_ALG_SHA1_HMAC = 2, + QCEDEV_ALG_SHA256_HMAC = 3, + QCEDEV_ALG_AES_CMAC = 4, + QCEDEV_ALG_SHA_ALG_LAST +}; + +/** +* struct buf_info - Buffer information +* @offset: Offset from the base address of the buffer +* (Used when buffer is allocated using PMEM) +* @vaddr: Virtual buffer address pointer +* @len: Size of the buffer +*/ +struct buf_info { + union { + uint32_t offset; + uint8_t *vaddr; + }; + uint32_t len; +}; + +/** +* struct qcedev_vbuf_info - Source and destination Buffer information +* @src: Array of buf_info for input/source +* @dst: Array of buf_info for output/destination +*/ +struct qcedev_vbuf_info { + struct buf_info src[QCEDEV_MAX_BUFFERS]; + struct buf_info dst[QCEDEV_MAX_BUFFERS]; +}; + +/** +* struct qcedev_pmem_info - Stores PMEM buffer information +* @fd_src: Handle to /dev/adsp_pmem used to allocate +* memory for input/src buffer +* @src: Array of buf_info for input/source +* @fd_dst: Handle to /dev/adsp_pmem used to allocate +* memory for output/dst buffer +* @dst: Array of buf_info for output/destination +* @pmem_src_offset: The offset from input/src buffer +* (allocated by PMEM) +*/ +struct qcedev_pmem_info { + int fd_src; + struct buf_info src[QCEDEV_MAX_BUFFERS]; + int fd_dst; + struct buf_info dst[QCEDEV_MAX_BUFFERS]; +}; + +/** +* struct qcedev_cipher_op_req - Holds the ciphering request information +* @use_pmem (IN): Flag to indicate if buffer source is PMEM +* QCEDEV_USE_PMEM/QCEDEV_NO_PMEM +* @pmem (IN): Stores PMEM buffer information. +* Refer struct qcedev_pmem_info +* @vbuf (IN/OUT): Stores Source and destination Buffer information +* Refer to struct qcedev_vbuf_info +* @data_len (IN): Total Length of input/src and output/dst in bytes +* @in_place_op (IN): Indicates whether the operation is inplace where +* source == destination +* When using PMEM allocated memory, must set this to 1 +* @enckey (IN): 128 bits of confidentiality key +* enckey[0] bit 127-120, enckey[1] bit 119-112,.. +* enckey[15] bit 7-0 +* @encklen (IN): Length of the encryption key(set to 128 bits/16 +* bytes in the driver) +* @iv (IN/OUT): Initialisation vector data +* This is updated by the driver, incremented by +* number of blocks encrypted/decrypted. +* @ivlen (IN): Length of the IV +* @byteoffset (IN): Offset in the Cipher BLOCK (applicable and to be set +* for AES-128 CTR mode only) +* @alg (IN): Type of ciphering algorithm: AES/DES/3DES +* @mode (IN): Mode use when using AES algorithm: ECB/CBC/CTR +* Apllicabel when using AES algorithm only +* @op (IN): Type of operation: QCEDEV_OPER_DEC/QCEDEV_OPER_ENC or +* QCEDEV_OPER_ENC_NO_KEY/QCEDEV_OPER_DEC_NO_KEY +* +*If use_pmem is set to 0, the driver assumes that memory was not allocated +* via PMEM, and kernel will need to allocate memory and copy data from user +* space buffer (data_src/dta_dst) and process accordingly and copy data back +* to the user space buffer +* +* If use_pmem is set to 1, the driver assumes that memory was allocated via +* PMEM. +* The kernel driver will use the fd_src to determine the kernel virtual address +* base that maps to the user space virtual address base for the buffer +* allocated in user space. +* The final input/src and output/dst buffer pointer will be determined +* by adding the offsets to the kernel virtual addr. +* +* If use of hardware key is supported in the target, user can configure the +* key paramters (encklen, enckey) to use the hardware key. +* In order to use the hardware key, set encklen to 0 and set the enckey +* data array to 0. +*/ +struct qcedev_cipher_op_req { + uint8_t use_pmem; + union { + struct qcedev_pmem_info pmem; + struct qcedev_vbuf_info vbuf; + }; + uint32_t entries; + uint32_t data_len; + uint8_t in_place_op; + uint8_t enckey[QCEDEV_MAX_KEY_SIZE]; + uint32_t encklen; + uint8_t iv[QCEDEV_MAX_IV_SIZE]; + uint32_t ivlen; + uint32_t byteoffset; + enum qcedev_cipher_alg_enum alg; + enum qcedev_cipher_mode_enum mode; + enum qcedev_oper_enum op; +}; + +/** +* struct qcedev_sha_op_req - Holds the hashing request information +* @data (IN): Array of pointers to the data to be hashed +* @entries (IN): Number of buf_info entries in the data array +* @data_len (IN): Length of data to be hashed +* @digest (IN/OUT): Returns the hashed data information +* @diglen (OUT): Size of the hashed/digest data +* @authkey (IN): Pointer to authentication key for HMAC +* @authklen (IN): Size of the authentication key +* @alg (IN): Secure Hash algorithm +*/ +struct qcedev_sha_op_req { + struct buf_info data[QCEDEV_MAX_BUFFERS]; + uint32_t entries; + uint32_t data_len; + uint8_t digest[QCEDEV_MAX_SHA_DIGEST]; + uint32_t diglen; + uint8_t *authkey; + uint32_t authklen; + enum qcedev_sha_alg_enum alg; +}; + +/** +* struct qfips_verify_t - Holds data for FIPS Integrity test +* @kernel_size (IN): Size of kernel Image +* @kernel (IN): pointer to buffer containing the kernel Image +*/ +struct qfips_verify_t { + unsigned kernel_size; + void *kernel; +}; + +struct file; +extern long qcedev_ioctl(struct file *file, + unsigned cmd, unsigned long arg); + +#define QCEDEV_IOC_MAGIC 0x87 + +#define QCEDEV_IOCTL_ENC_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 1, struct qcedev_cipher_op_req) +#define QCEDEV_IOCTL_DEC_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 2, struct qcedev_cipher_op_req) +#define QCEDEV_IOCTL_SHA_INIT_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 3, struct qcedev_sha_op_req) +#define QCEDEV_IOCTL_SHA_UPDATE_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 4, struct qcedev_sha_op_req) +#define QCEDEV_IOCTL_SHA_FINAL_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 5, struct qcedev_sha_op_req) +#define QCEDEV_IOCTL_GET_SHA_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 6, struct qcedev_sha_op_req) +#define QCEDEV_IOCTL_LOCK_CE \ + _IO(QCEDEV_IOC_MAGIC, 7) +#define QCEDEV_IOCTL_UNLOCK_CE \ + _IO(QCEDEV_IOC_MAGIC, 8) +#define QCEDEV_IOCTL_GET_CMAC_REQ \ + _IOWR(QCEDEV_IOC_MAGIC, 9, struct qcedev_sha_op_req) +#define QCEDEV_IOCTL_UPDATE_FIPS_STATUS \ + _IOWR(QCEDEV_IOC_MAGIC, 10, enum fips_status) +#define QCEDEV_IOCTL_QUERY_FIPS_STATUS \ + _IOR(QCEDEV_IOC_MAGIC, 11, enum fips_status) +#endif /* _QCEDEV__H */ diff --git a/kernel_headers/linux/qcota.h b/kernel_headers/linux/qcota.h new file mode 100644 index 0000000..47e3ef2 --- /dev/null +++ b/kernel_headers/linux/qcota.h @@ -0,0 +1,210 @@ +#ifndef _QCOTA_H +#define _QCOTA_H + +#include +#include + +#define QCE_OTA_MAX_BEARER 31 +#define OTA_KEY_SIZE 16 /* 128 bits of keys. */ + +enum qce_ota_dir_enum { + QCE_OTA_DIR_UPLINK = 0, + QCE_OTA_DIR_DOWNLINK = 1, + QCE_OTA_DIR_LAST +}; + +enum qce_ota_algo_enum { + QCE_OTA_ALGO_KASUMI = 0, + QCE_OTA_ALGO_SNOW3G = 1, + QCE_OTA_ALGO_LAST +}; + +/** + * struct qce_f8_req - qce f8 request + * @data_in: packets input data stream to be ciphered. + * If NULL, streaming mode operation. + * @data_out: ciphered packets output data. + * @data_len: length of data_in and data_out in bytes. + * @count_c: count-C, ciphering sequence number, 32 bit + * @bearer: 5 bit of radio bearer identifier. + * @ckey: 128 bits of confidentiality key, + * ckey[0] bit 127-120, ckey[1] bit 119-112,.., ckey[15] bit 7-0. + * @direction: uplink or donwlink. + * @algorithm: Kasumi, or Snow3G. + * + * If data_in is NULL, the engine will run in a special mode called + * key stream mode. In this special mode, the engine will generate + * key stream output for the number of bytes specified in the + * data_len, based on the input parameters of direction, algorithm, + * ckey, bearer, and count_c. The data_len is restricted to + * the length of multiple of 16 bytes. Application can then take the + * output stream, do a exclusive or to the input data stream, and + * generate the final cipher data stream. + */ +struct qce_f8_req { + uint8_t *data_in; + uint8_t *data_out; + uint16_t data_len; + uint32_t count_c; + uint8_t bearer; + uint8_t ckey[OTA_KEY_SIZE]; + enum qce_ota_dir_enum direction; + enum qce_ota_algo_enum algorithm; +}; + +/** + * struct qce_f8_multi_pkt_req - qce f8 multiple packet request + * Muliptle packets with uniform size, and + * F8 ciphering parameters can be ciphered in a + * single request. + * + * @num_pkt: number of packets. + * + * @cipher_start: ciphering starts offset within a packet. + * + * @cipher_size: number of bytes to be ciphered within a packet. + * + * @qce_f8_req: description of the packet and F8 parameters. + * The following fields have special meaning for + * multiple packet operation, + * + * @data_len: data_len indicates the length of a packet. + * + * @data_in: packets are concatenated together in a byte + * stream started at data_in. + * + * @data_out: The returned ciphered output for multiple + * packets. + * Each packet ciphered output are concatenated + * together into a byte stream started at data_out. + * Note, each ciphered packet output area from + * offset 0 to cipher_start-1, and from offset + * cipher_size to data_len -1 are remained + * unaltered from packet input area. + * @count_c: count-C of the first packet, 32 bit. + * + * + * In one request, multiple packets can be ciphered, and output to the + * data_out stream. + * + * Packet data are layed out contiguously in sequence in data_in, + * and data_out area. Every packet is identical size. + * If the PDU is not byte aligned, set the data_len value of + * to the rounded up value of the packet size. Eg, PDU size of + * 253 bits, set the packet size to 32 bytes. Next packet starts on + * the next byte boundary. + * + * For each packet, data from offset 0 to cipher_start + * will be left unchanged and output to the data_out area. + * This area of the packet can be for the RLC header, which is not + * to be ciphered. + * + * The ciphering of a packet starts from offset cipher_start, for + * cipher_size bytes of data. Data starting from + * offset cipher_start + cipher_size to the end of packet will be left + * unchanged and output to the dataOut area. + * + * For each packet the input arguments of bearer, direction, + * ckey, algoritm have to be the same. count_c is the ciphering sequence + * number of the first packet. The 2nd packet's ciphering sequence + * number is assumed to be count_c + 1. The 3rd packet's ciphering sequence + * number is count_c + 2..... + * + */ +struct qce_f8_multi_pkt_req { + uint16_t num_pkt; + uint16_t cipher_start; + uint16_t cipher_size; + struct qce_f8_req qce_f8_req; +}; + +/** + * struct qce_f8_variable_multi_pkt_req - qce f8 multiple packet request + * Muliptle packets with variable size, and + * F8 ciphering parameters can be ciphered in a + * single request. + * + * @num_pkt: number of packets. + * + * @cipher_iov[]: array of iov of packets to be ciphered. + * + * + * @qce_f8_req: description of the packet and F8 parameters. + * The following fields have special meaning for + * multiple packet operation, + * + * @data_len: ignored. + * + * @data_in: ignored. + * + * @data_out: ignored. + * + * @count_c: count-C of the first packet, 32 bit. + * + * + * In one request, multiple packets can be ciphered. + * + * The i-th packet are defined in cipher_iov[i-1]. + * The ciphering of i-th packet starts from offset 0 of the PDU specified + * by cipher_iov[i-1].addr, for cipher_iov[i-1].size bytes of data. + * If the PDU is not byte aligned, set the cipher_iov[i-1].size value + * to the rounded up value of the packet size. Eg, PDU size of + * 253 bits, set the packet size to 32 bytes. + * + * Ciphering are done in place. That is, the ciphering + * input and output data are both in cipher_iov[i-1].addr for the i-th + * packet. + * + * For each packet the input arguments of bearer, direction, + * ckey, algoritm have to be the same. count_c is the ciphering sequence + * number of the first packet. The 2nd packet's ciphering sequence + * number is assumed to be count_c + 1. The 3rd packet's ciphering sequence + * number is count_c + 2..... + */ + +#define MAX_NUM_V_MULTI_PKT 20 +struct cipher_iov { + unsigned char *addr; + unsigned short size; +}; + +struct qce_f8_varible_multi_pkt_req { + unsigned short num_pkt; + struct cipher_iov cipher_iov[MAX_NUM_V_MULTI_PKT]; + struct qce_f8_req qce_f8_req; +}; + +/** + * struct qce_f9_req - qce f9 request + * @message: message + * @msize: message size in bytes (include the last partial byte). + * @last_bits: valid bits in the last byte of message. + * @mac_i: 32 bit message authentication code, to be returned. + * @fresh: random 32 bit number, one per user. + * @count_i: 32 bit count-I integrity sequence number. + * @direction: uplink or donwlink. + * @ikey: 128 bits of integrity key, + * ikey[0] bit 127-120, ikey[1] bit 119-112,.., ikey[15] bit 7-0. + * @algorithm: Kasumi, or Snow3G. + */ +struct qce_f9_req { + uint8_t *message; + uint16_t msize; + uint8_t last_bits; + uint32_t mac_i; + uint32_t fresh; + uint32_t count_i; + enum qce_ota_dir_enum direction; + uint8_t ikey[OTA_KEY_SIZE]; + enum qce_ota_algo_enum algorithm; +}; + +#define QCOTA_IOC_MAGIC 0x85 + +#define QCOTA_F8_REQ _IOWR(QCOTA_IOC_MAGIC, 1, struct qce_f8_req) +#define QCOTA_F8_MPKT_REQ _IOWR(QCOTA_IOC_MAGIC, 2, struct qce_f8_multi_pkt_req) +#define QCOTA_F9_REQ _IOWR(QCOTA_IOC_MAGIC, 3, struct qce_f9_req) +#define QCOTA_F8_V_MPKT_REQ _IOWR(QCOTA_IOC_MAGIC, 4,\ + struct qce_f8_varible_multi_pkt_req) + +#endif /* _QCOTA_H */ diff --git a/kernel_headers/linux/qnx4_fs.h b/kernel_headers/linux/qnx4_fs.h new file mode 100644 index 0000000..8b9aee1 --- /dev/null +++ b/kernel_headers/linux/qnx4_fs.h @@ -0,0 +1,88 @@ +/* + * Name : qnx4_fs.h + * Author : Richard Frowijn + * Function : qnx4 global filesystem definitions + * History : 23-03-1998 created + */ +#ifndef _LINUX_QNX4_FS_H +#define _LINUX_QNX4_FS_H + +#include +#include +#include + +#define QNX4_ROOT_INO 1 + +#define QNX4_MAX_XTNTS_PER_XBLK 60 +/* for di_status */ +#define QNX4_FILE_USED 0x01 +#define QNX4_FILE_MODIFIED 0x02 +#define QNX4_FILE_BUSY 0x04 +#define QNX4_FILE_LINK 0x08 +#define QNX4_FILE_INODE 0x10 +#define QNX4_FILE_FSYSCLEAN 0x20 + +#define QNX4_I_MAP_SLOTS 8 +#define QNX4_Z_MAP_SLOTS 64 +#define QNX4_VALID_FS 0x0001 /* Clean fs. */ +#define QNX4_ERROR_FS 0x0002 /* fs has errors. */ +#define QNX4_BLOCK_SIZE 0x200 /* blocksize of 512 bytes */ +#define QNX4_BLOCK_SIZE_BITS 9 /* blocksize shift */ +#define QNX4_DIR_ENTRY_SIZE 0x040 /* dir entry size of 64 bytes */ +#define QNX4_DIR_ENTRY_SIZE_BITS 6 /* dir entry size shift */ +#define QNX4_XBLK_ENTRY_SIZE 0x200 /* xblk entry size */ +#define QNX4_INODES_PER_BLOCK 0x08 /* 512 / 64 */ + +/* for filenames */ +#define QNX4_SHORT_NAME_MAX 16 +#define QNX4_NAME_MAX 48 + +/* + * This is the original qnx4 inode layout on disk. + */ +struct qnx4_inode_entry { + char di_fname[QNX4_SHORT_NAME_MAX]; + qnx4_off_t di_size; + qnx4_xtnt_t di_first_xtnt; + __le32 di_xblk; + __le32 di_ftime; + __le32 di_mtime; + __le32 di_atime; + __le32 di_ctime; + qnx4_nxtnt_t di_num_xtnts; + qnx4_mode_t di_mode; + qnx4_muid_t di_uid; + qnx4_mgid_t di_gid; + qnx4_nlink_t di_nlink; + __u8 di_zero[4]; + qnx4_ftype_t di_type; + __u8 di_status; +}; + +struct qnx4_link_info { + char dl_fname[QNX4_NAME_MAX]; + __le32 dl_inode_blk; + __u8 dl_inode_ndx; + __u8 dl_spare[10]; + __u8 dl_status; +}; + +struct qnx4_xblk { + __le32 xblk_next_xblk; + __le32 xblk_prev_xblk; + __u8 xblk_num_xtnts; + __u8 xblk_spare[3]; + __le32 xblk_num_blocks; + qnx4_xtnt_t xblk_xtnts[QNX4_MAX_XTNTS_PER_XBLK]; + char xblk_signature[8]; + qnx4_xtnt_t xblk_first_xtnt; +}; + +struct qnx4_super_block { + struct qnx4_inode_entry RootDir; + struct qnx4_inode_entry Inode; + struct qnx4_inode_entry Boot; + struct qnx4_inode_entry AltBoot; +}; + +#endif diff --git a/kernel_headers/linux/qnxtypes.h b/kernel_headers/linux/qnxtypes.h new file mode 100644 index 0000000..bebbe5c --- /dev/null +++ b/kernel_headers/linux/qnxtypes.h @@ -0,0 +1,28 @@ +/* + * Name : qnxtypes.h + * Author : Richard Frowijn + * Function : standard qnx types + * History : 22-03-1998 created + * + */ + +#ifndef _QNX4TYPES_H +#define _QNX4TYPES_H + +#include + +typedef __le16 qnx4_nxtnt_t; +typedef __u8 qnx4_ftype_t; + +typedef struct { + __le32 xtnt_blk; + __le32 xtnt_size; +} qnx4_xtnt_t; + +typedef __le16 qnx4_mode_t; +typedef __le16 qnx4_muid_t; +typedef __le16 qnx4_mgid_t; +typedef __le32 qnx4_off_t; +typedef __le16 qnx4_nlink_t; + +#endif diff --git a/kernel_headers/linux/qrng.h b/kernel_headers/linux/qrng.h new file mode 100644 index 0000000..8c09627 --- /dev/null +++ b/kernel_headers/linux/qrng.h @@ -0,0 +1,12 @@ +#ifndef _QRNG_H_ +#define _QRNG_H_ + +#include +#include + +#define QRNG_IOC_MAGIC 0x100 + +#define QRNG_IOCTL_RESET_BUS_BANDWIDTH\ + _IO(QRNG_IOC_MAGIC, 1) + +#endif /* _QRNG_H_ */ diff --git a/kernel_headers/linux/qseecom.h b/kernel_headers/linux/qseecom.h new file mode 100644 index 0000000..a7bf916 --- /dev/null +++ b/kernel_headers/linux/qseecom.h @@ -0,0 +1,291 @@ +#ifndef _QSEECOM_H_ +#define _QSEECOM_H_ + +#include +#include + +#define MAX_ION_FD 4 +#define MAX_APP_NAME_SIZE 32 +#define QSEECOM_HASH_SIZE 32 +/* + * struct qseecom_register_listener_req - + * for register listener ioctl request + * @listener_id - service id (shared between userspace and QSE) + * @ifd_data_fd - ion handle + * @virt_sb_base - shared buffer base in user space + * @sb_size - shared buffer size + */ +struct qseecom_register_listener_req { + uint32_t listener_id; /* in */ + int32_t ifd_data_fd; /* in */ + void *virt_sb_base; /* in */ + uint32_t sb_size; /* in */ +}; + +/* + * struct qseecom_send_cmd_req - for send command ioctl request + * @cmd_req_len - command buffer length + * @cmd_req_buf - command buffer + * @resp_len - response buffer length + * @resp_buf - response buffer + */ +struct qseecom_send_cmd_req { + void *cmd_req_buf; /* in */ + unsigned int cmd_req_len; /* in */ + void *resp_buf; /* in/out */ + unsigned int resp_len; /* in/out */ +}; + +/* + * struct qseecom_ion_fd_info - ion fd handle data information + * @fd - ion handle to some memory allocated in user space + * @cmd_buf_offset - command buffer offset + */ +struct qseecom_ion_fd_info { + int32_t fd; + uint32_t cmd_buf_offset; +}; +/* + * struct qseecom_send_modfd_cmd_req - for send command ioctl request + * @cmd_req_len - command buffer length + * @cmd_req_buf - command buffer + * @resp_len - response buffer length + * @resp_buf - response buffer + * @ifd_data_fd - ion handle to memory allocated in user space + * @cmd_buf_offset - command buffer offset + */ +struct qseecom_send_modfd_cmd_req { + void *cmd_req_buf; /* in */ + unsigned int cmd_req_len; /* in */ + void *resp_buf; /* in/out */ + unsigned int resp_len; /* in/out */ + struct qseecom_ion_fd_info ifd_data[MAX_ION_FD]; +}; + +/* + * struct qseecom_listener_send_resp_req - signal to continue the send_cmd req. + * Used as a trigger from HLOS service to notify QSEECOM that it's done with its + * operation and provide the response for QSEECOM can continue the incomplete + * command execution + * @resp_len - Length of the response + * @resp_buf - Response buffer where the response of the cmd should go. + */ +struct qseecom_send_resp_req { + void *resp_buf; /* in */ + unsigned int resp_len; /* in */ +}; + +/* + * struct qseecom_load_img_data - for sending image length information and + * ion file descriptor to the qseecom driver. ion file descriptor is used + * for retrieving the ion file handle and in turn the physical address of + * the image location. + * @mdt_len - Length of the .mdt file in bytes. + * @img_len - Length of the .mdt + .b00 +..+.bxx images files in bytes + * @ion_fd - Ion file descriptor used when allocating memory. + * @img_name - Name of the image. +*/ +struct qseecom_load_img_req { + uint32_t mdt_len; /* in */ + uint32_t img_len; /* in */ + int32_t ifd_data_fd; /* in */ + char img_name[MAX_APP_NAME_SIZE]; /* in */ + int app_id; /* out*/ +}; + +struct qseecom_set_sb_mem_param_req { + int32_t ifd_data_fd; /* in */ + void *virt_sb_base; /* in */ + uint32_t sb_len; /* in */ +}; + +/* + * struct qseecom_qseos_version_req - get qseos version + * @qseos_version - version number + */ +struct qseecom_qseos_version_req { + unsigned int qseos_version; /* in */ +}; + +/* + * struct qseecom_qseos_app_load_query - verify if app is loaded in qsee + * @app_name[MAX_APP_NAME_SIZE]- name of the app. + * @app_id - app id. + */ +struct qseecom_qseos_app_load_query { + char app_name[MAX_APP_NAME_SIZE]; /* in */ + int app_id; /* out */ +}; + +struct qseecom_send_svc_cmd_req { + uint32_t cmd_id; + void *cmd_req_buf; /* in */ + unsigned int cmd_req_len; /* in */ + void *resp_buf; /* in/out */ + unsigned int resp_len; /* in/out */ +}; + +enum qseecom_key_management_usage_type { + QSEOS_KM_USAGE_DISK_ENCRYPTION = 0x01, + QSEOS_KM_USAGE_FILE_ENCRYPTION = 0x02, + QSEOS_KM_USAGE_MAX +}; + +struct qseecom_create_key_req { + unsigned char hash32[QSEECOM_HASH_SIZE]; + enum qseecom_key_management_usage_type usage; +}; + +struct qseecom_wipe_key_req { + enum qseecom_key_management_usage_type usage; + int wipe_key_flag;/* 1->remove key from storage(alone with clear key) */ + /* 0->do not remove from storage (clear key) */ +}; + +struct qseecom_update_key_userinfo_req { + unsigned char current_hash32[QSEECOM_HASH_SIZE]; + unsigned char new_hash32[QSEECOM_HASH_SIZE]; + enum qseecom_key_management_usage_type usage; +}; + +#define SHA256_DIGEST_LENGTH (256/8) +/* + * struct qseecom_save_partition_hash_req + * @partition_id - partition id. + * @hash[SHA256_DIGEST_LENGTH] - sha256 digest. + */ +struct qseecom_save_partition_hash_req { + int partition_id; /* in */ + char digest[SHA256_DIGEST_LENGTH]; /* in */ +}; + +/* + * struct qseecom_is_es_activated_req + * @is_activated - 1=true , 0=false + */ +struct qseecom_is_es_activated_req { + int is_activated; /* out */ +}; + +enum qseecom_bandwidth_request_mode { + INACTIVE = 0, + LOW, + MEDIUM, + HIGH, +}; + +/* + * struct qseecom_send_modfd_resp - for send command ioctl request + * @req_len - command buffer length + * @req_buf - command buffer + * @ifd_data_fd - ion handle to memory allocated in user space + * @cmd_buf_offset - command buffer offset + */ +struct qseecom_send_modfd_listener_resp { + void *resp_buf_ptr; /* in */ + unsigned int resp_len; /* in */ + struct qseecom_ion_fd_info ifd_data[MAX_ION_FD]; /* in */ +}; + +struct qseecom_qteec_req { + void *req_ptr; + uint32_t req_len; + void *resp_ptr; + uint32_t resp_len; +}; + +struct qseecom_qteec_modfd_req { + void *req_ptr; + uint32_t req_len; + void *resp_ptr; + uint32_t resp_len; + struct qseecom_ion_fd_info ifd_data[MAX_ION_FD]; +}; + +struct file; + +extern long qseecom_ioctl(struct file *file, + unsigned cmd, unsigned long arg); + +#define QSEECOM_IOC_MAGIC 0x97 + + +#define QSEECOM_IOCTL_REGISTER_LISTENER_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 1, struct qseecom_register_listener_req) + +#define QSEECOM_IOCTL_UNREGISTER_LISTENER_REQ \ + _IO(QSEECOM_IOC_MAGIC, 2) + +#define QSEECOM_IOCTL_SEND_CMD_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 3, struct qseecom_send_cmd_req) + +#define QSEECOM_IOCTL_SEND_MODFD_CMD_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 4, struct qseecom_send_modfd_cmd_req) + +#define QSEECOM_IOCTL_RECEIVE_REQ \ + _IO(QSEECOM_IOC_MAGIC, 5) + +#define QSEECOM_IOCTL_SEND_RESP_REQ \ + _IO(QSEECOM_IOC_MAGIC, 6) + +#define QSEECOM_IOCTL_LOAD_APP_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 7, struct qseecom_load_img_req) + +#define QSEECOM_IOCTL_SET_MEM_PARAM_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 8, struct qseecom_set_sb_mem_param_req) + +#define QSEECOM_IOCTL_UNLOAD_APP_REQ \ + _IO(QSEECOM_IOC_MAGIC, 9) + +#define QSEECOM_IOCTL_GET_QSEOS_VERSION_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 10, struct qseecom_qseos_version_req) + +#define QSEECOM_IOCTL_PERF_ENABLE_REQ \ + _IO(QSEECOM_IOC_MAGIC, 11) + +#define QSEECOM_IOCTL_PERF_DISABLE_REQ \ + _IO(QSEECOM_IOC_MAGIC, 12) + +#define QSEECOM_IOCTL_LOAD_EXTERNAL_ELF_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 13, struct qseecom_load_img_req) + +#define QSEECOM_IOCTL_UNLOAD_EXTERNAL_ELF_REQ \ + _IO(QSEECOM_IOC_MAGIC, 14) + +#define QSEECOM_IOCTL_APP_LOADED_QUERY_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 15, struct qseecom_qseos_app_load_query) + +#define QSEECOM_IOCTL_SEND_CMD_SERVICE_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 16, struct qseecom_send_svc_cmd_req) + +#define QSEECOM_IOCTL_CREATE_KEY_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 17, struct qseecom_create_key_req) + +#define QSEECOM_IOCTL_WIPE_KEY_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 18, struct qseecom_wipe_key_req) + +#define QSEECOM_IOCTL_SAVE_PARTITION_HASH_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 19, struct qseecom_save_partition_hash_req) + +#define QSEECOM_IOCTL_IS_ES_ACTIVATED_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 20, struct qseecom_is_es_activated_req) + +#define QSEECOM_IOCTL_SEND_MODFD_RESP \ + _IOWR(QSEECOM_IOC_MAGIC, 21, struct qseecom_send_modfd_listener_resp) + +#define QSEECOM_IOCTL_SET_BUS_SCALING_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 23, int) + +#define QSEECOM_IOCTL_UPDATE_KEY_USER_INFO_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 24, struct qseecom_update_key_userinfo_req) + +#define QSEECOM_QTEEC_IOCTL_OPEN_SESSION_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 30, struct qseecom_qteec_req) + +#define QSEECOM_QTEEC_IOCTL_CLOSE_SESSION_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 31, struct qseecom_qteec_req) + +#define QSEECOM_QTEEC_IOCTL_INVOKE_MODFD_CMD_REQ \ + _IOWR(QSEECOM_IOC_MAGIC, 32, struct qseecom_qteec_req) + +#endif /* _QSEECOM_H_ */ diff --git a/kernel_headers/linux/quota.h b/kernel_headers/linux/quota.h new file mode 100644 index 0000000..1cb88d5 --- /dev/null +++ b/kernel_headers/linux/quota.h @@ -0,0 +1,171 @@ +/* + * Copyright (c) 1982, 1986 Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Robert Elz at The University of Melbourne. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _LINUX_QUOTA_ +#define _LINUX_QUOTA_ + +#include +#include + +#define __DQUOT_VERSION__ "dquot_6.5.2" + +#define MAXQUOTAS 2 +#define USRQUOTA 0 /* element used for user quotas */ +#define GRPQUOTA 1 /* element used for group quotas */ + +/* + * Definitions for the default names of the quotas files. + */ +#define INITQFNAMES { \ + "user", /* USRQUOTA */ \ + "group", /* GRPQUOTA */ \ + "undefined", \ +}; + +/* + * Command definitions for the 'quotactl' system call. + * The commands are broken into a main command defined below + * and a subcommand that is used to convey the type of + * quota that is being manipulated (see above). + */ +#define SUBCMDMASK 0x00ff +#define SUBCMDSHIFT 8 +#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK)) + +#define Q_SYNC 0x800001 /* sync disk copy of a filesystems quotas */ +#define Q_QUOTAON 0x800002 /* turn quotas on */ +#define Q_QUOTAOFF 0x800003 /* turn quotas off */ +#define Q_GETFMT 0x800004 /* get quota format used on given filesystem */ +#define Q_GETINFO 0x800005 /* get information about quota files */ +#define Q_SETINFO 0x800006 /* set information about quota files */ +#define Q_GETQUOTA 0x800007 /* get user quota structure */ +#define Q_SETQUOTA 0x800008 /* set user quota structure */ + +/* Quota format type IDs */ +#define QFMT_VFS_OLD 1 +#define QFMT_VFS_V0 2 +#define QFMT_OCFS2 3 +#define QFMT_VFS_V1 4 + +/* Size of block in which space limits are passed through the quota + * interface */ +#define QIF_DQBLKSIZE_BITS 10 +#define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS) + +/* + * Quota structure used for communication with userspace via quotactl + * Following flags are used to specify which fields are valid + */ +enum { + QIF_BLIMITS_B = 0, + QIF_SPACE_B, + QIF_ILIMITS_B, + QIF_INODES_B, + QIF_BTIME_B, + QIF_ITIME_B, +}; + +#define QIF_BLIMITS (1 << QIF_BLIMITS_B) +#define QIF_SPACE (1 << QIF_SPACE_B) +#define QIF_ILIMITS (1 << QIF_ILIMITS_B) +#define QIF_INODES (1 << QIF_INODES_B) +#define QIF_BTIME (1 << QIF_BTIME_B) +#define QIF_ITIME (1 << QIF_ITIME_B) +#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS) +#define QIF_USAGE (QIF_SPACE | QIF_INODES) +#define QIF_TIMES (QIF_BTIME | QIF_ITIME) +#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES) + +struct if_dqblk { + __u64 dqb_bhardlimit; + __u64 dqb_bsoftlimit; + __u64 dqb_curspace; + __u64 dqb_ihardlimit; + __u64 dqb_isoftlimit; + __u64 dqb_curinodes; + __u64 dqb_btime; + __u64 dqb_itime; + __u32 dqb_valid; +}; + +/* + * Structure used for setting quota information about file via quotactl + * Following flags are used to specify which fields are valid + */ +#define IIF_BGRACE 1 +#define IIF_IGRACE 2 +#define IIF_FLAGS 4 +#define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS) + +struct if_dqinfo { + __u64 dqi_bgrace; + __u64 dqi_igrace; + __u32 dqi_flags; + __u32 dqi_valid; +}; + +/* + * Definitions for quota netlink interface + */ +#define QUOTA_NL_NOWARN 0 +#define QUOTA_NL_IHARDWARN 1 /* Inode hardlimit reached */ +#define QUOTA_NL_ISOFTLONGWARN 2 /* Inode grace time expired */ +#define QUOTA_NL_ISOFTWARN 3 /* Inode softlimit reached */ +#define QUOTA_NL_BHARDWARN 4 /* Block hardlimit reached */ +#define QUOTA_NL_BSOFTLONGWARN 5 /* Block grace time expired */ +#define QUOTA_NL_BSOFTWARN 6 /* Block softlimit reached */ +#define QUOTA_NL_IHARDBELOW 7 /* Usage got below inode hardlimit */ +#define QUOTA_NL_ISOFTBELOW 8 /* Usage got below inode softlimit */ +#define QUOTA_NL_BHARDBELOW 9 /* Usage got below block hardlimit */ +#define QUOTA_NL_BSOFTBELOW 10 /* Usage got below block softlimit */ + +enum { + QUOTA_NL_C_UNSPEC, + QUOTA_NL_C_WARNING, + __QUOTA_NL_C_MAX, +}; +#define QUOTA_NL_C_MAX (__QUOTA_NL_C_MAX - 1) + +enum { + QUOTA_NL_A_UNSPEC, + QUOTA_NL_A_QTYPE, + QUOTA_NL_A_EXCESS_ID, + QUOTA_NL_A_WARNING, + QUOTA_NL_A_DEV_MAJOR, + QUOTA_NL_A_DEV_MINOR, + QUOTA_NL_A_CAUSED_ID, + __QUOTA_NL_A_MAX, +}; +#define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1) + + +#endif /* _LINUX_QUOTA_ */ diff --git a/kernel_headers/linux/radeonfb.h b/kernel_headers/linux/radeonfb.h new file mode 100644 index 0000000..8c4bbde --- /dev/null +++ b/kernel_headers/linux/radeonfb.h @@ -0,0 +1,15 @@ +#ifndef __LINUX_RADEONFB_H__ +#define __LINUX_RADEONFB_H__ + +#include +#include + +#define ATY_RADEON_LCD_ON 0x00000001 +#define ATY_RADEON_CRT_ON 0x00000002 + + +#define FBIO_RADEON_GET_MIRROR _IOR('@', 3, size_t) +#define FBIO_RADEON_SET_MIRROR _IOW('@', 4, size_t) + +#endif + diff --git a/kernel_headers/linux/raid/..install.cmd b/kernel_headers/linux/raid/..install.cmd new file mode 100644 index 0000000..281a13b --- /dev/null +++ b/kernel_headers/linux/raid/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/raid/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/raid /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/raid md_p.h md_u.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/raid /android/kernels/moto/surnia/kernel-msm/include/linux/raid ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/raid /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/raid ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/raid/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/raid/.install diff --git a/kernel_headers/linux/raid/.install b/kernel_headers/linux/raid/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/raid/md_p.h b/kernel_headers/linux/raid/md_p.h new file mode 100644 index 0000000..843769a --- /dev/null +++ b/kernel_headers/linux/raid/md_p.h @@ -0,0 +1,303 @@ +/* + md_p.h : physical layout of Linux RAID devices + Copyright (C) 1996-98 Ingo Molnar, Gadi Oxman + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + You should have received a copy of the GNU General Public License + (for example /usr/src/linux/COPYING); if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef _MD_P_H +#define _MD_P_H + +#include + +/* + * RAID superblock. + * + * The RAID superblock maintains some statistics on each RAID configuration. + * Each real device in the RAID set contains it near the end of the device. + * Some of the ideas are copied from the ext2fs implementation. + * + * We currently use 4096 bytes as follows: + * + * word offset function + * + * 0 - 31 Constant generic RAID device information. + * 32 - 63 Generic state information. + * 64 - 127 Personality specific information. + * 128 - 511 12 32-words descriptors of the disks in the raid set. + * 512 - 911 Reserved. + * 912 - 1023 Disk specific descriptor. + */ + +/* + * If x is the real device size in bytes, we return an apparent size of: + * + * y = (x & ~(MD_RESERVED_BYTES - 1)) - MD_RESERVED_BYTES + * + * and place the 4kB superblock at offset y. + */ +#define MD_RESERVED_BYTES (64 * 1024) +#define MD_RESERVED_SECTORS (MD_RESERVED_BYTES / 512) + +#define MD_NEW_SIZE_SECTORS(x) ((x & ~(MD_RESERVED_SECTORS - 1)) - MD_RESERVED_SECTORS) + +#define MD_SB_BYTES 4096 +#define MD_SB_WORDS (MD_SB_BYTES / 4) +#define MD_SB_SECTORS (MD_SB_BYTES / 512) + +/* + * The following are counted in 32-bit words + */ +#define MD_SB_GENERIC_OFFSET 0 +#define MD_SB_PERSONALITY_OFFSET 64 +#define MD_SB_DISKS_OFFSET 128 +#define MD_SB_DESCRIPTOR_OFFSET 992 + +#define MD_SB_GENERIC_CONSTANT_WORDS 32 +#define MD_SB_GENERIC_STATE_WORDS 32 +#define MD_SB_GENERIC_WORDS (MD_SB_GENERIC_CONSTANT_WORDS + MD_SB_GENERIC_STATE_WORDS) +#define MD_SB_PERSONALITY_WORDS 64 +#define MD_SB_DESCRIPTOR_WORDS 32 +#define MD_SB_DISKS 27 +#define MD_SB_DISKS_WORDS (MD_SB_DISKS*MD_SB_DESCRIPTOR_WORDS) +#define MD_SB_RESERVED_WORDS (1024 - MD_SB_GENERIC_WORDS - MD_SB_PERSONALITY_WORDS - MD_SB_DISKS_WORDS - MD_SB_DESCRIPTOR_WORDS) +#define MD_SB_EQUAL_WORDS (MD_SB_GENERIC_WORDS + MD_SB_PERSONALITY_WORDS + MD_SB_DISKS_WORDS) + +/* + * Device "operational" state bits + */ +#define MD_DISK_FAULTY 0 /* disk is faulty / operational */ +#define MD_DISK_ACTIVE 1 /* disk is running or spare disk */ +#define MD_DISK_SYNC 2 /* disk is in sync with the raid set */ +#define MD_DISK_REMOVED 3 /* disk is in sync with the raid set */ + +#define MD_DISK_WRITEMOSTLY 9 /* disk is "write-mostly" is RAID1 config. + * read requests will only be sent here in + * dire need + */ + +typedef struct mdp_device_descriptor_s { + __u32 number; /* 0 Device number in the entire set */ + __u32 major; /* 1 Device major number */ + __u32 minor; /* 2 Device minor number */ + __u32 raid_disk; /* 3 The role of the device in the raid set */ + __u32 state; /* 4 Operational state */ + __u32 reserved[MD_SB_DESCRIPTOR_WORDS - 5]; +} mdp_disk_t; + +#define MD_SB_MAGIC 0xa92b4efc + +/* + * Superblock state bits + */ +#define MD_SB_CLEAN 0 +#define MD_SB_ERRORS 1 + +#define MD_SB_BITMAP_PRESENT 8 /* bitmap may be present nearby */ + +/* + * Notes: + * - if an array is being reshaped (restriped) in order to change the + * the number of active devices in the array, 'raid_disks' will be + * the larger of the old and new numbers. 'delta_disks' will + * be the "new - old". So if +ve, raid_disks is the new value, and + * "raid_disks-delta_disks" is the old. If -ve, raid_disks is the + * old value and "raid_disks+delta_disks" is the new (smaller) value. + */ + + +typedef struct mdp_superblock_s { + /* + * Constant generic information + */ + __u32 md_magic; /* 0 MD identifier */ + __u32 major_version; /* 1 major version to which the set conforms */ + __u32 minor_version; /* 2 minor version ... */ + __u32 patch_version; /* 3 patchlevel version ... */ + __u32 gvalid_words; /* 4 Number of used words in this section */ + __u32 set_uuid0; /* 5 Raid set identifier */ + __u32 ctime; /* 6 Creation time */ + __u32 level; /* 7 Raid personality */ + __u32 size; /* 8 Apparent size of each individual disk */ + __u32 nr_disks; /* 9 total disks in the raid set */ + __u32 raid_disks; /* 10 disks in a fully functional raid set */ + __u32 md_minor; /* 11 preferred MD minor device number */ + __u32 not_persistent; /* 12 does it have a persistent superblock */ + __u32 set_uuid1; /* 13 Raid set identifier #2 */ + __u32 set_uuid2; /* 14 Raid set identifier #3 */ + __u32 set_uuid3; /* 15 Raid set identifier #4 */ + __u32 gstate_creserved[MD_SB_GENERIC_CONSTANT_WORDS - 16]; + + /* + * Generic state information + */ + __u32 utime; /* 0 Superblock update time */ + __u32 state; /* 1 State bits (clean, ...) */ + __u32 active_disks; /* 2 Number of currently active disks */ + __u32 working_disks; /* 3 Number of working disks */ + __u32 failed_disks; /* 4 Number of failed disks */ + __u32 spare_disks; /* 5 Number of spare disks */ + __u32 sb_csum; /* 6 checksum of the whole superblock */ +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) + __u32 events_hi; /* 7 high-order of superblock update count */ + __u32 events_lo; /* 8 low-order of superblock update count */ + __u32 cp_events_hi; /* 9 high-order of checkpoint update count */ + __u32 cp_events_lo; /* 10 low-order of checkpoint update count */ +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) + __u32 events_lo; /* 7 low-order of superblock update count */ + __u32 events_hi; /* 8 high-order of superblock update count */ + __u32 cp_events_lo; /* 9 low-order of checkpoint update count */ + __u32 cp_events_hi; /* 10 high-order of checkpoint update count */ +#else +#error unspecified endianness +#endif + __u32 recovery_cp; /* 11 recovery checkpoint sector count */ + /* There are only valid for minor_version > 90 */ + __u64 reshape_position; /* 12,13 next address in array-space for reshape */ + __u32 new_level; /* 14 new level we are reshaping to */ + __u32 delta_disks; /* 15 change in number of raid_disks */ + __u32 new_layout; /* 16 new layout */ + __u32 new_chunk; /* 17 new chunk size (bytes) */ + __u32 gstate_sreserved[MD_SB_GENERIC_STATE_WORDS - 18]; + + /* + * Personality information + */ + __u32 layout; /* 0 the array's physical layout */ + __u32 chunk_size; /* 1 chunk size in bytes */ + __u32 root_pv; /* 2 LV root PV */ + __u32 root_block; /* 3 LV root block */ + __u32 pstate_reserved[MD_SB_PERSONALITY_WORDS - 4]; + + /* + * Disks information + */ + mdp_disk_t disks[MD_SB_DISKS]; + + /* + * Reserved + */ + __u32 reserved[MD_SB_RESERVED_WORDS]; + + /* + * Active descriptor + */ + mdp_disk_t this_disk; + +} mdp_super_t; + +static __inline__ __u64 md_event(mdp_super_t *sb) { + __u64 ev = sb->events_hi; + return (ev<<32)| sb->events_lo; +} + +#define MD_SUPERBLOCK_1_TIME_SEC_MASK ((1ULL<<40) - 1) + +/* + * The version-1 superblock : + * All numeric fields are little-endian. + * + * total size: 256 bytes plus 2 per device. + * 1K allows 384 devices. + */ +struct mdp_superblock_1 { + /* constant array information - 128 bytes */ + __le32 magic; /* MD_SB_MAGIC: 0xa92b4efc - little endian */ + __le32 major_version; /* 1 */ + __le32 feature_map; /* bit 0 set if 'bitmap_offset' is meaningful */ + __le32 pad0; /* always set to 0 when writing */ + + __u8 set_uuid[16]; /* user-space generated. */ + char set_name[32]; /* set and interpreted by user-space */ + + __le64 ctime; /* lo 40 bits are seconds, top 24 are microseconds or 0*/ + __le32 level; /* -4 (multipath), -1 (linear), 0,1,4,5 */ + __le32 layout; /* only for raid5 and raid10 currently */ + __le64 size; /* used size of component devices, in 512byte sectors */ + + __le32 chunksize; /* in 512byte sectors */ + __le32 raid_disks; + __le32 bitmap_offset; /* sectors after start of superblock that bitmap starts + * NOTE: signed, so bitmap can be before superblock + * only meaningful of feature_map[0] is set. + */ + + /* These are only valid with feature bit '4' */ + __le32 new_level; /* new level we are reshaping to */ + __le64 reshape_position; /* next address in array-space for reshape */ + __le32 delta_disks; /* change in number of raid_disks */ + __le32 new_layout; /* new layout */ + __le32 new_chunk; /* new chunk size (512byte sectors) */ + __le32 new_offset; /* signed number to add to data_offset in new + * layout. 0 == no-change. This can be + * different on each device in the array. + */ + + /* constant this-device information - 64 bytes */ + __le64 data_offset; /* sector start of data, often 0 */ + __le64 data_size; /* sectors in this device that can be used for data */ + __le64 super_offset; /* sector start of this superblock */ + __le64 recovery_offset;/* sectors before this offset (from data_offset) have been recovered */ + __le32 dev_number; /* permanent identifier of this device - not role in raid */ + __le32 cnt_corrected_read; /* number of read errors that were corrected by re-writing */ + __u8 device_uuid[16]; /* user-space setable, ignored by kernel */ + __u8 devflags; /* per-device flags. Only one defined...*/ +#define WriteMostly1 1 /* mask for writemostly flag in above */ + /* Bad block log. If there are any bad blocks the feature flag is set. + * If offset and size are non-zero, that space is reserved and available + */ + __u8 bblog_shift; /* shift from sectors to block size */ + __le16 bblog_size; /* number of sectors reserved for list */ + __le32 bblog_offset; /* sector offset from superblock to bblog, + * signed - not unsigned */ + + /* array state information - 64 bytes */ + __le64 utime; /* 40 bits second, 24 bits microseconds */ + __le64 events; /* incremented when superblock updated */ + __le64 resync_offset; /* data before this offset (from data_offset) known to be in sync */ + __le32 sb_csum; /* checksum up to devs[max_dev] */ + __le32 max_dev; /* size of devs[] array to consider */ + __u8 pad3[64-32]; /* set to 0 when writing */ + + /* device state information. Indexed by dev_number. + * 2 bytes per device + * Note there are no per-device state flags. State information is rolled + * into the 'roles' value. If a device is spare or faulty, then it doesn't + * have a meaningful role. + */ + __le16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ +}; + +/* feature_map bits */ +#define MD_FEATURE_BITMAP_OFFSET 1 +#define MD_FEATURE_RECOVERY_OFFSET 2 /* recovery_offset is present and + * must be honoured + */ +#define MD_FEATURE_RESHAPE_ACTIVE 4 +#define MD_FEATURE_BAD_BLOCKS 8 /* badblock list is not empty */ +#define MD_FEATURE_REPLACEMENT 16 /* This device is replacing an + * active device with same 'role'. + * 'recovery_offset' is also set. + */ +#define MD_FEATURE_RESHAPE_BACKWARDS 32 /* Reshape doesn't change number + * of devices, but is going + * backwards anyway. + */ +#define MD_FEATURE_NEW_OFFSET 64 /* new_offset must be honoured */ +#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ + |MD_FEATURE_RECOVERY_OFFSET \ + |MD_FEATURE_RESHAPE_ACTIVE \ + |MD_FEATURE_BAD_BLOCKS \ + |MD_FEATURE_REPLACEMENT \ + |MD_FEATURE_RESHAPE_BACKWARDS \ + |MD_FEATURE_NEW_OFFSET \ + ) + +#endif diff --git a/kernel_headers/linux/raid/md_u.h b/kernel_headers/linux/raid/md_u.h new file mode 100644 index 0000000..0e1fe94 --- /dev/null +++ b/kernel_headers/linux/raid/md_u.h @@ -0,0 +1,155 @@ +/* + md_u.h : user <=> kernel API between Linux raidtools and RAID drivers + Copyright (C) 1998 Ingo Molnar + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + You should have received a copy of the GNU General Public License + (for example /usr/src/linux/COPYING); if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef _MD_U_H +#define _MD_U_H + +/* + * Different major versions are not compatible. + * Different minor versions are only downward compatible. + * Different patchlevel versions are downward and upward compatible. + */ +#define MD_MAJOR_VERSION 0 +#define MD_MINOR_VERSION 90 +/* + * MD_PATCHLEVEL_VERSION indicates kernel functionality. + * >=1 means different superblock formats are selectable using SET_ARRAY_INFO + * and major_version/minor_version accordingly + * >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT + * in the super status byte + * >=3 means that bitmap superblock version 4 is supported, which uses + * little-ending representation rather than host-endian + */ +#define MD_PATCHLEVEL_VERSION 3 + +/* ioctls */ + +/* status */ +#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t) +#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t) +#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t) +#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13) +#define RAID_AUTORUN _IO (MD_MAJOR, 0x14) +#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t) + +/* configuration */ +#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20) +#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t) +#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22) +#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t) +#define SET_DISK_INFO _IO (MD_MAJOR, 0x24) +#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25) +#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26) +#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27) +#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28) +#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29) +#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a) +#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int) + +/* usage */ +#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t) +/* 0x31 was START_ARRAY */ +#define STOP_ARRAY _IO (MD_MAJOR, 0x32) +#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33) +#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34) + +/* 63 partitions with the alternate major number (mdp) */ +#define MdpMinorShift 6 + +typedef struct mdu_version_s { + int major; + int minor; + int patchlevel; +} mdu_version_t; + +typedef struct mdu_array_info_s { + /* + * Generic constant information + */ + int major_version; + int minor_version; + int patch_version; + int ctime; + int level; + int size; + int nr_disks; + int raid_disks; + int md_minor; + int not_persistent; + + /* + * Generic state information + */ + int utime; /* 0 Superblock update time */ + int state; /* 1 State bits (clean, ...) */ + int active_disks; /* 2 Number of currently active disks */ + int working_disks; /* 3 Number of working disks */ + int failed_disks; /* 4 Number of failed disks */ + int spare_disks; /* 5 Number of spare disks */ + + /* + * Personality information + */ + int layout; /* 0 the array's physical layout */ + int chunk_size; /* 1 chunk size in bytes */ + +} mdu_array_info_t; + +/* non-obvious values for 'level' */ +#define LEVEL_MULTIPATH (-4) +#define LEVEL_LINEAR (-1) +#define LEVEL_FAULTY (-5) + +/* we need a value for 'no level specified' and 0 + * means 'raid0', so we need something else. This is + * for internal use only + */ +#define LEVEL_NONE (-1000000) + +typedef struct mdu_disk_info_s { + /* + * configuration/status of one particular disk + */ + int number; + int major; + int minor; + int raid_disk; + int state; + +} mdu_disk_info_t; + +typedef struct mdu_start_info_s { + /* + * configuration/status of one particular disk + */ + int major; + int minor; + int raid_disk; + int state; + +} mdu_start_info_t; + +typedef struct mdu_bitmap_file_s +{ + char pathname[4096]; +} mdu_bitmap_file_t; + +typedef struct mdu_param_s +{ + int personality; /* 1,2,3,4 */ + int chunk_size; /* in bytes */ + int max_fault; /* unused for now */ +} mdu_param_t; + +#endif /* _MD_U_H */ diff --git a/kernel_headers/linux/random.h b/kernel_headers/linux/random.h new file mode 100644 index 0000000..80e6445 --- /dev/null +++ b/kernel_headers/linux/random.h @@ -0,0 +1,50 @@ +/* + * include/linux/random.h + * + * Include file for the random number generator. + */ + +#ifndef _LINUX_RANDOM_H +#define _LINUX_RANDOM_H + +#include +#include +#include + +/* ioctl()'s for the random number generator */ + +/* Get the entropy count. */ +#define RNDGETENTCNT _IOR( 'R', 0x00, int ) + +/* Add to (or subtract from) the entropy count. (Superuser only.) */ +#define RNDADDTOENTCNT _IOW( 'R', 0x01, int ) + +/* Get the contents of the entropy pool. (Superuser only.) */ +#define RNDGETPOOL _IOR( 'R', 0x02, int [2] ) + +/* + * Write bytes into the entropy pool and add to the entropy count. + * (Superuser only.) + */ +#define RNDADDENTROPY _IOW( 'R', 0x03, int [2] ) + +/* Clear entropy count to 0. (Superuser only.) */ +#define RNDZAPENTCNT _IO( 'R', 0x04 ) + +/* Clear the entropy pool and associated counters. (Superuser only.) */ +#define RNDCLEARPOOL _IO( 'R', 0x06 ) + +struct rand_pool_info { + int entropy_count; + int buf_size; + __u32 buf[0]; +}; + +struct rnd_state { + __u32 s1, s2, s3; +}; + +/* Exported functions */ + + +#endif /* _LINUX_RANDOM_H */ diff --git a/kernel_headers/linux/raw.h b/kernel_headers/linux/raw.h new file mode 100644 index 0000000..62d543e --- /dev/null +++ b/kernel_headers/linux/raw.h @@ -0,0 +1,18 @@ +#ifndef __LINUX_RAW_H +#define __LINUX_RAW_H + +#include + +#define RAW_SETBIND _IO( 0xac, 0 ) +#define RAW_GETBIND _IO( 0xac, 1 ) + +struct raw_config_request +{ + int raw_minor; + __u64 block_major; + __u64 block_minor; +}; + +#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS + +#endif /* __LINUX_RAW_H */ diff --git a/kernel_headers/linux/rds.h b/kernel_headers/linux/rds.h new file mode 100644 index 0000000..9195095 --- /dev/null +++ b/kernel_headers/linux/rds.h @@ -0,0 +1,285 @@ +/* + * Copyright (c) 2008 Oracle. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef _LINUX_RDS_H +#define _LINUX_RDS_H + +#include + +#define RDS_IB_ABI_VERSION 0x301 + +/* + * setsockopt/getsockopt for SOL_RDS + */ +#define RDS_CANCEL_SENT_TO 1 +#define RDS_GET_MR 2 +#define RDS_FREE_MR 3 +/* deprecated: RDS_BARRIER 4 */ +#define RDS_RECVERR 5 +#define RDS_CONG_MONITOR 6 +#define RDS_GET_MR_FOR_DEST 7 + +/* + * Control message types for SOL_RDS. + * + * CMSG_RDMA_ARGS (sendmsg) + * Request a RDMA transfer to/from the specified + * memory ranges. + * The cmsg_data is a struct rds_rdma_args. + * RDS_CMSG_RDMA_DEST (recvmsg, sendmsg) + * Kernel informs application about intended + * source/destination of a RDMA transfer + * RDS_CMSG_RDMA_MAP (sendmsg) + * Application asks kernel to map the given + * memory range into a IB MR, and send the + * R_Key along in an RDS extension header. + * The cmsg_data is a struct rds_get_mr_args, + * the same as for the GET_MR setsockopt. + * RDS_CMSG_RDMA_STATUS (recvmsg) + * Returns the status of a completed RDMA operation. + */ +#define RDS_CMSG_RDMA_ARGS 1 +#define RDS_CMSG_RDMA_DEST 2 +#define RDS_CMSG_RDMA_MAP 3 +#define RDS_CMSG_RDMA_STATUS 4 +#define RDS_CMSG_CONG_UPDATE 5 +#define RDS_CMSG_ATOMIC_FADD 6 +#define RDS_CMSG_ATOMIC_CSWP 7 +#define RDS_CMSG_MASKED_ATOMIC_FADD 8 +#define RDS_CMSG_MASKED_ATOMIC_CSWP 9 + +#define RDS_INFO_FIRST 10000 +#define RDS_INFO_COUNTERS 10000 +#define RDS_INFO_CONNECTIONS 10001 +/* 10002 aka RDS_INFO_FLOWS is deprecated */ +#define RDS_INFO_SEND_MESSAGES 10003 +#define RDS_INFO_RETRANS_MESSAGES 10004 +#define RDS_INFO_RECV_MESSAGES 10005 +#define RDS_INFO_SOCKETS 10006 +#define RDS_INFO_TCP_SOCKETS 10007 +#define RDS_INFO_IB_CONNECTIONS 10008 +#define RDS_INFO_CONNECTION_STATS 10009 +#define RDS_INFO_IWARP_CONNECTIONS 10010 +#define RDS_INFO_LAST 10010 + +struct rds_info_counter { + uint8_t name[32]; + uint64_t value; +} __attribute__((packed)); + +#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 +#define RDS_INFO_CONNECTION_FLAG_CONNECTING 0x02 +#define RDS_INFO_CONNECTION_FLAG_CONNECTED 0x04 + +#define TRANSNAMSIZ 16 + +struct rds_info_connection { + uint64_t next_tx_seq; + uint64_t next_rx_seq; + __be32 laddr; + __be32 faddr; + uint8_t transport[TRANSNAMSIZ]; /* null term ascii */ + uint8_t flags; +} __attribute__((packed)); + +#define RDS_INFO_MESSAGE_FLAG_ACK 0x01 +#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 + +struct rds_info_message { + uint64_t seq; + uint32_t len; + __be32 laddr; + __be32 faddr; + __be16 lport; + __be16 fport; + uint8_t flags; +} __attribute__((packed)); + +struct rds_info_socket { + uint32_t sndbuf; + __be32 bound_addr; + __be32 connected_addr; + __be16 bound_port; + __be16 connected_port; + uint32_t rcvbuf; + uint64_t inum; +} __attribute__((packed)); + +struct rds_info_tcp_socket { + __be32 local_addr; + __be16 local_port; + __be32 peer_addr; + __be16 peer_port; + uint64_t hdr_rem; + uint64_t data_rem; + uint32_t last_sent_nxt; + uint32_t last_expected_una; + uint32_t last_seen_una; +} __attribute__((packed)); + +#define RDS_IB_GID_LEN 16 +struct rds_info_rdma_connection { + __be32 src_addr; + __be32 dst_addr; + uint8_t src_gid[RDS_IB_GID_LEN]; + uint8_t dst_gid[RDS_IB_GID_LEN]; + + uint32_t max_send_wr; + uint32_t max_recv_wr; + uint32_t max_send_sge; + uint32_t rdma_mr_max; + uint32_t rdma_mr_size; +}; + +/* + * Congestion monitoring. + * Congestion control in RDS happens at the host connection + * level by exchanging a bitmap marking congested ports. + * By default, a process sleeping in poll() is always woken + * up when the congestion map is updated. + * With explicit monitoring, an application can have more + * fine-grained control. + * The application installs a 64bit mask value in the socket, + * where each bit corresponds to a group of ports. + * When a congestion update arrives, RDS checks the set of + * ports that are now uncongested against the list bit mask + * installed in the socket, and if they overlap, we queue a + * cong_notification on the socket. + * + * To install the congestion monitor bitmask, use RDS_CONG_MONITOR + * with the 64bit mask. + * Congestion updates are received via RDS_CMSG_CONG_UPDATE + * control messages. + * + * The correspondence between bits and ports is + * 1 << (portnum % 64) + */ +#define RDS_CONG_MONITOR_SIZE 64 +#define RDS_CONG_MONITOR_BIT(port) (((unsigned int) port) % RDS_CONG_MONITOR_SIZE) +#define RDS_CONG_MONITOR_MASK(port) (1ULL << RDS_CONG_MONITOR_BIT(port)) + +/* + * RDMA related types + */ + +/* + * This encapsulates a remote memory location. + * In the current implementation, it contains the R_Key + * of the remote memory region, and the offset into it + * (so that the application does not have to worry about + * alignment). + */ +typedef uint64_t rds_rdma_cookie_t; + +struct rds_iovec { + uint64_t addr; + uint64_t bytes; +}; + +struct rds_get_mr_args { + struct rds_iovec vec; + uint64_t cookie_addr; + uint64_t flags; +}; + +struct rds_get_mr_for_dest_args { + struct sockaddr_storage dest_addr; + struct rds_iovec vec; + uint64_t cookie_addr; + uint64_t flags; +}; + +struct rds_free_mr_args { + rds_rdma_cookie_t cookie; + uint64_t flags; +}; + +struct rds_rdma_args { + rds_rdma_cookie_t cookie; + struct rds_iovec remote_vec; + uint64_t local_vec_addr; + uint64_t nr_local; + uint64_t flags; + uint64_t user_token; +}; + +struct rds_atomic_args { + rds_rdma_cookie_t cookie; + uint64_t local_addr; + uint64_t remote_addr; + union { + struct { + uint64_t compare; + uint64_t swap; + } cswp; + struct { + uint64_t add; + } fadd; + struct { + uint64_t compare; + uint64_t swap; + uint64_t compare_mask; + uint64_t swap_mask; + } m_cswp; + struct { + uint64_t add; + uint64_t nocarry_mask; + } m_fadd; + }; + uint64_t flags; + uint64_t user_token; +}; + +struct rds_rdma_notify { + uint64_t user_token; + int32_t status; +}; + +#define RDS_RDMA_SUCCESS 0 +#define RDS_RDMA_REMOTE_ERROR 1 +#define RDS_RDMA_CANCELED 2 +#define RDS_RDMA_DROPPED 3 +#define RDS_RDMA_OTHER_ERROR 4 + +/* + * Common set of flags for all RDMA related structs + */ +#define RDS_RDMA_READWRITE 0x0001 +#define RDS_RDMA_FENCE 0x0002 /* use FENCE for immediate send */ +#define RDS_RDMA_INVALIDATE 0x0004 /* invalidate R_Key after freeing MR */ +#define RDS_RDMA_USE_ONCE 0x0008 /* free MR after use */ +#define RDS_RDMA_DONTWAIT 0x0010 /* Don't wait in SET_BARRIER */ +#define RDS_RDMA_NOTIFY_ME 0x0020 /* Notify when operation completes */ +#define RDS_RDMA_SILENT 0x0040 /* Do not interrupt remote */ + +#endif /* IB_RDS_H */ diff --git a/kernel_headers/linux/reboot.h b/kernel_headers/linux/reboot.h new file mode 100644 index 0000000..aa33674 --- /dev/null +++ b/kernel_headers/linux/reboot.h @@ -0,0 +1,39 @@ +#ifndef _LINUX_REBOOT_H +#define _LINUX_REBOOT_H + +/* + * Magic values required to use _reboot() system call. + */ + +#define LINUX_REBOOT_MAGIC1 0xfee1dead +#define LINUX_REBOOT_MAGIC2 672274793 +#define LINUX_REBOOT_MAGIC2A 85072278 +#define LINUX_REBOOT_MAGIC2B 369367448 +#define LINUX_REBOOT_MAGIC2C 537993216 + + +/* + * Commands accepted by the _reboot() system call. + * + * RESTART Restart system using default command and mode. + * HALT Stop OS and give system control to ROM monitor, if any. + * CAD_ON Ctrl-Alt-Del sequence causes RESTART command. + * CAD_OFF Ctrl-Alt-Del sequence sends SIGINT to init task. + * POWER_OFF Stop OS and remove all power from system, if possible. + * RESTART2 Restart system using given command string. + * SW_SUSPEND Suspend system using software suspend if compiled in. + * KEXEC Restart system using a previously loaded Linux kernel + */ + +#define LINUX_REBOOT_CMD_RESTART 0x01234567 +#define LINUX_REBOOT_CMD_HALT 0xCDEF0123 +#define LINUX_REBOOT_CMD_CAD_ON 0x89ABCDEF +#define LINUX_REBOOT_CMD_CAD_OFF 0x00000000 +#define LINUX_REBOOT_CMD_POWER_OFF 0x4321FEDC +#define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4 +#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2 +#define LINUX_REBOOT_CMD_KEXEC 0x45584543 + + + +#endif /* _LINUX_REBOOT_H */ diff --git a/kernel_headers/linux/reiserfs_fs.h b/kernel_headers/linux/reiserfs_fs.h new file mode 100644 index 0000000..ea3700c --- /dev/null +++ b/kernel_headers/linux/reiserfs_fs.h @@ -0,0 +1,26 @@ +/* + * Copyright 1996, 1997, 1998 Hans Reiser, see reiserfs/README for licensing and copyright details + */ +#ifndef _LINUX_REISER_FS_H +#define _LINUX_REISER_FS_H + +#include +#include + +/* + * include/linux/reiser_fs.h + * + * Reiser File System constants and structures + * + */ + +/* ioctl's command */ +#define REISERFS_IOC_UNPACK _IOW(0xCD,1,long) +/* define following flags to be the same as in ext2, so that chattr(1), + lsattr(1) will work with us. */ +#define REISERFS_IOC_GETFLAGS FS_IOC_GETFLAGS +#define REISERFS_IOC_SETFLAGS FS_IOC_SETFLAGS +#define REISERFS_IOC_GETVERSION FS_IOC_GETVERSION +#define REISERFS_IOC_SETVERSION FS_IOC_SETVERSION + +#endif /* _LINUX_REISER_FS_H */ diff --git a/kernel_headers/linux/reiserfs_xattr.h b/kernel_headers/linux/reiserfs_xattr.h new file mode 100644 index 0000000..d8ce17c --- /dev/null +++ b/kernel_headers/linux/reiserfs_xattr.h @@ -0,0 +1,24 @@ +/* + File: linux/reiserfs_xattr.h +*/ + +#ifndef _LINUX_REISERFS_XATTR_H +#define _LINUX_REISERFS_XATTR_H + +#include + +/* Magic value in header */ +#define REISERFS_XATTR_MAGIC 0x52465841 /* "RFXA" */ + +struct reiserfs_xattr_header { + __le32 h_magic; /* magic number for identification */ + __le32 h_hash; /* hash of the value */ +}; + +struct reiserfs_security_handle { + char *name; + void *value; + size_t length; +}; + +#endif /* _LINUX_REISERFS_XATTR_H */ diff --git a/kernel_headers/linux/resource.h b/kernel_headers/linux/resource.h new file mode 100644 index 0000000..bde52af --- /dev/null +++ b/kernel_headers/linux/resource.h @@ -0,0 +1,80 @@ +#ifndef _LINUX_RESOURCE_H +#define _LINUX_RESOURCE_H + +#include +#include + +/* + * Resource control/accounting header file for linux + */ + +/* + * Definition of struct rusage taken from BSD 4.3 Reno + * + * We don't support all of these yet, but we might as well have them.... + * Otherwise, each time we add new items, programs which depend on this + * structure will lose. This reduces the chances of that happening. + */ +#define RUSAGE_SELF 0 +#define RUSAGE_CHILDREN (-1) +#define RUSAGE_BOTH (-2) /* sys_wait4() uses this */ +#define RUSAGE_THREAD 1 /* only the calling thread */ + +struct rusage { + struct timeval ru_utime; /* user time used */ + struct timeval ru_stime; /* system time used */ + long ru_maxrss; /* maximum resident set size */ + long ru_ixrss; /* integral shared memory size */ + long ru_idrss; /* integral unshared data size */ + long ru_isrss; /* integral unshared stack size */ + long ru_minflt; /* page reclaims */ + long ru_majflt; /* page faults */ + long ru_nswap; /* swaps */ + long ru_inblock; /* block input operations */ + long ru_oublock; /* block output operations */ + long ru_msgsnd; /* messages sent */ + long ru_msgrcv; /* messages received */ + long ru_nsignals; /* signals received */ + long ru_nvcsw; /* voluntary context switches */ + long ru_nivcsw; /* involuntary " */ +}; + +struct rlimit { + unsigned long rlim_cur; + unsigned long rlim_max; +}; + +#define RLIM64_INFINITY (~0ULL) + +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; +}; + +#define PRIO_MIN (-20) +#define PRIO_MAX 20 + +#define PRIO_PROCESS 0 +#define PRIO_PGRP 1 +#define PRIO_USER 2 + +/* + * Limit the stack by to some sane default: root can always + * increase this limit if needed.. 8MB seems reasonable. + */ +#define _STK_LIM (8*1024*1024) + +/* + * GPG2 wants 64kB of mlocked memory, to make sure pass phrases + * and other sensitive information are never written to disk. + */ +#define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024) + +/* + * Due to binary compatibility, the actual resource numbers + * may be different for different linux versions.. + */ +#include + + +#endif /* _LINUX_RESOURCE_H */ diff --git a/kernel_headers/linux/rfkill.h b/kernel_headers/linux/rfkill.h new file mode 100644 index 0000000..557cde2 --- /dev/null +++ b/kernel_headers/linux/rfkill.h @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2006 - 2007 Ivo van Doorn + * Copyright (C) 2007 Dmitry Torokhov + * Copyright 2009 Johannes Berg + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#ifndef __RFKILL_H +#define __RFKILL_H + + +#include + +/* define userspace visible states */ +#define RFKILL_STATE_SOFT_BLOCKED 0 +#define RFKILL_STATE_UNBLOCKED 1 +#define RFKILL_STATE_HARD_BLOCKED 2 + +/** + * enum rfkill_type - type of rfkill switch. + * + * @RFKILL_TYPE_ALL: toggles all switches (requests only - not a switch type) + * @RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device. + * @RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device. + * @RFKILL_TYPE_UWB: switch is on a ultra wideband device. + * @RFKILL_TYPE_WIMAX: switch is on a WiMAX device. + * @RFKILL_TYPE_WWAN: switch is on a wireless WAN device. + * @RFKILL_TYPE_GPS: switch is on a GPS device. + * @RFKILL_TYPE_FM: switch is on a FM radio device. + * @RFKILL_TYPE_NFC: switch is on an NFC device. + * @NUM_RFKILL_TYPES: number of defined rfkill types + */ +enum rfkill_type { + RFKILL_TYPE_ALL = 0, + RFKILL_TYPE_WLAN, + RFKILL_TYPE_BLUETOOTH, + RFKILL_TYPE_UWB, + RFKILL_TYPE_WIMAX, + RFKILL_TYPE_WWAN, + RFKILL_TYPE_GPS, + RFKILL_TYPE_FM, + RFKILL_TYPE_NFC, + NUM_RFKILL_TYPES, +}; + +/** + * enum rfkill_operation - operation types + * @RFKILL_OP_ADD: a device was added + * @RFKILL_OP_DEL: a device was removed + * @RFKILL_OP_CHANGE: a device's state changed -- userspace changes one device + * @RFKILL_OP_CHANGE_ALL: userspace changes all devices (of a type, or all) + */ +enum rfkill_operation { + RFKILL_OP_ADD = 0, + RFKILL_OP_DEL, + RFKILL_OP_CHANGE, + RFKILL_OP_CHANGE_ALL, +}; + +/** + * struct rfkill_event - events for userspace on /dev/rfkill + * @idx: index of dev rfkill + * @type: type of the rfkill struct + * @op: operation code + * @hard: hard state (0/1) + * @soft: soft state (0/1) + * + * Structure used for userspace communication on /dev/rfkill, + * used for events from the kernel and control to the kernel. + */ +struct rfkill_event { + __u32 idx; + __u8 type; + __u8 op; + __u8 soft, hard; +} __attribute__((packed)); + +/* + * We are planning to be backward and forward compatible with changes + * to the event struct, by adding new, optional, members at the end. + * When reading an event (whether the kernel from userspace or vice + * versa) we need to accept anything that's at least as large as the + * version 1 event size, but might be able to accept other sizes in + * the future. + * + * One exception is the kernel -- we already have two event sizes in + * that we've made the 'hard' member optional since our only option + * is to ignore it anyway. + */ +#define RFKILL_EVENT_SIZE_V1 8 + +/* ioctl for turning off rfkill-input (if present) */ +#define RFKILL_IOC_MAGIC 'R' +#define RFKILL_IOC_NOINPUT 1 +#define RFKILL_IOCTL_NOINPUT _IO(RFKILL_IOC_MAGIC, RFKILL_IOC_NOINPUT) + +/* and that's all userspace gets */ + +#endif /* __RFKILL_H */ diff --git a/kernel_headers/linux/rmnet_data.h b/kernel_headers/linux/rmnet_data.h new file mode 100644 index 0000000..3295a1a --- /dev/null +++ b/kernel_headers/linux/rmnet_data.h @@ -0,0 +1,250 @@ + /* + * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * RMNET Data configuration specification + */ + +#ifndef _RMNET_DATA_H_ +#define _RMNET_DATA_H_ + +/* ***************** Constants ********************************************** */ +#define RMNET_LOCAL_LOGICAL_ENDPOINT -1 + +#define RMNET_EGRESS_FORMAT__RESERVED__ (1<<0) +#define RMNET_EGRESS_FORMAT_MAP (1<<1) +#define RMNET_EGRESS_FORMAT_AGGREGATION (1<<2) +#define RMNET_EGRESS_FORMAT_MUXING (1<<3) + +#define RMNET_INGRESS_FIX_ETHERNET (1<<0) +#define RMNET_INGRESS_FORMAT_MAP (1<<1) +#define RMNET_INGRESS_FORMAT_DEAGGREGATION (1<<2) +#define RMNET_INGRESS_FORMAT_DEMUXING (1<<3) +#define RMNET_INGRESS_FORMAT_MAP_COMMANDS (1<<4) +#define RMNET_INGRESS_FORMAT_MAP_CKSUMV3 (1<<5) + +/* ***************** Netlink API ******************************************** */ +#define RMNET_NETLINK_PROTO 31 +#define RMNET_MAX_STR_LEN 16 +#define RMNET_NL_DATA_MAX_LEN 64 + +#define RMNET_NETLINK_MSG_COMMAND 0 +#define RMNET_NETLINK_MSG_RETURNCODE 1 +#define RMNET_NETLINK_MSG_RETURNDATA 2 + +struct rmnet_nl_msg_s { + uint16_t reserved; + uint16_t message_type; + uint16_t reserved2:14; + uint16_t crd:2; + union { + uint16_t arg_length; + uint16_t return_code; + }; + union { + uint8_t data[RMNET_NL_DATA_MAX_LEN]; + struct { + uint8_t dev[RMNET_MAX_STR_LEN]; + uint32_t flags; + uint16_t agg_size; + uint16_t agg_count; + uint8_t tail_spacing; + } data_format; + struct { + uint8_t dev[RMNET_MAX_STR_LEN]; + int32_t ep_id; + uint8_t operating_mode; + uint8_t next_dev[RMNET_MAX_STR_LEN]; + } local_ep_config; + struct { + uint32_t id; + uint8_t vnd_name[RMNET_MAX_STR_LEN]; + } vnd; + struct { + uint32_t id; + uint32_t map_flow_id; + uint32_t tc_flow_id; + } flow_control; + }; +}; + +enum rmnet_netlink_message_types_e { + /* + * RMNET_NETLINK_ASSOCIATE_NETWORK_DEVICE - Register RMNET data driver + * on a particular device. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: status code + */ + RMNET_NETLINK_ASSOCIATE_NETWORK_DEVICE, + + /* + * RMNET_NETLINK_UNASSOCIATE_NETWORK_DEVICE - Unregister RMNET data + * driver on a particular + * device. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: status code + */ + RMNET_NETLINK_UNASSOCIATE_NETWORK_DEVICE, + + /* + * RMNET_NETLINK_GET_NETWORK_DEVICE_ASSOCIATED - Get if RMNET data + * driver is registered on a + * particular device. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: 1 if registered, 0 if not + */ + RMNET_NETLINK_GET_NETWORK_DEVICE_ASSOCIATED, + + /* + * RMNET_NETLINK_SET_LINK_EGRESS_DATA_FORMAT - Sets the egress data + * format for a particular + * link. + * Args: uint32_t egress_flags + * char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: status code + */ + RMNET_NETLINK_SET_LINK_EGRESS_DATA_FORMAT, + + /* + * RMNET_NETLINK_GET_LINK_EGRESS_DATA_FORMAT - Gets the egress data + * format for a particular + * link. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: 4-bytes data: uint32_t egress_flags + */ + RMNET_NETLINK_GET_LINK_EGRESS_DATA_FORMAT, + + /* + * RMNET_NETLINK_SET_LINK_INGRESS_DATA_FORMAT - Sets the ingress data + * format for a particular + * link. + * Args: uint32_t ingress_flags + * char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: status code + */ + RMNET_NETLINK_SET_LINK_INGRESS_DATA_FORMAT, + + /* + * RMNET_NETLINK_GET_LINK_INGRESS_DATA_FORMAT - Gets the ingress data + * format for a particular + * link. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * Returns: 4-bytes data: uint32_t ingress_flags + */ + RMNET_NETLINK_GET_LINK_INGRESS_DATA_FORMAT, + + /* + * RMNET_NETLINK_SET_LOGICAL_EP_CONFIG - Sets the logical endpoint + * configuration for a particular + * link. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * int32_t logical_ep_id, valid values are -1 through 31 + * uint8_t rmnet_mode: one of none, vnd, bridged + * char[] egress_dev_name: Egress device if operating in bridge mode + * Returns: status code + */ + RMNET_NETLINK_SET_LOGICAL_EP_CONFIG, + + /* + * RMNET_NETLINK_UNSET_LOGICAL_EP_CONFIG - Un-sets the logical endpoint + * configuration for a particular + * link. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * int32_t logical_ep_id, valid values are -1 through 31 + * Returns: status code + */ + RMNET_NETLINK_UNSET_LOGICAL_EP_CONFIG, + + /* + * RMNET_NETLINK_GET_LOGICAL_EP_CONFIG - Gets the logical endpoint + * configuration for a particular + * link. + * Args: char[] dev_name: Null terminated ASCII string, max length: 15 + * int32_t logical_ep_id, valid values are -1 through 31 + * Returns: uint8_t rmnet_mode: one of none, vnd, bridged + * char[] egress_dev_name: Egress device + */ + RMNET_NETLINK_GET_LOGICAL_EP_CONFIG, + + /* + * RMNET_NETLINK_NEW_VND - Creates a new virtual network device node + * Args: int32_t node number + * Returns: status code + */ + RMNET_NETLINK_NEW_VND, + + /* + * RMNET_NETLINK_NEW_VND_WITH_PREFIX - Creates a new virtual network + * device node with the specified + * prefix for the device name + * Args: int32_t node number + * char[] vnd_name - Use as prefix + * Returns: status code + */ + RMNET_NETLINK_NEW_VND_WITH_PREFIX, + + /* + * RMNET_NETLINK_GET_VND_NAME - Gets the string name of a VND from ID + * Args: int32_t node number + * Returns: char[] vnd_name + */ + RMNET_NETLINK_GET_VND_NAME, + + /* + * RMNET_NETLINK_FREE_VND - Removes virtual network device node + * Args: int32_t node number + * Returns: status code + */ + RMNET_NETLINK_FREE_VND, + + /* + * RMNET_NETLINK_ADD_VND_TC_FLOW - Add flow control handle on VND + * Args: int32_t node number + * uint32_t MAP Flow Handle + * uint32_t TC Flow Handle + * Returns: status code + */ + RMNET_NETLINK_ADD_VND_TC_FLOW, + + /* + * RMNET_NETLINK_DEL_VND_TC_FLOW - Removes flow control handle on VND + * Args: int32_t node number + * uint32_t MAP Flow Handle + * Returns: status code + */ + RMNET_NETLINK_DEL_VND_TC_FLOW +}; + +enum rmnet_config_endpoint_modes_e { + /* Pass the frame up the stack with no modifications to skb->dev */ + RMNET_EPMODE_NONE, + /* Replace skb->dev to a virtual rmnet device and pass up the stack */ + RMNET_EPMODE_VND, + /* Pass the frame directly to another device with dev_queue_xmit(). */ + RMNET_EPMODE_BRIDGE, + /* Must be the last item in the list */ + RMNET_EPMODE_LENGTH +}; + +enum rmnet_config_return_codes_e { + RMNET_CONFIG_OK, + RMNET_CONFIG_UNKNOWN_MESSAGE, + RMNET_CONFIG_UNKNOWN_ERROR, + RMNET_CONFIG_NOMEM, + RMNET_CONFIG_DEVICE_IN_USE, + RMNET_CONFIG_INVALID_REQUEST, + RMNET_CONFIG_NO_SUCH_DEVICE, + RMNET_CONFIG_BAD_ARGUMENTS, + RMNET_CONFIG_BAD_EGRESS_DEVICE, + RMNET_CONFIG_TC_HANDLE_FULL +}; + +#endif /* _RMNET_DATA_H_ */ diff --git a/kernel_headers/linux/rmnet_ipa_fd_ioctl.h b/kernel_headers/linux/rmnet_ipa_fd_ioctl.h new file mode 100644 index 0000000..9ecf25b --- /dev/null +++ b/kernel_headers/linux/rmnet_ipa_fd_ioctl.h @@ -0,0 +1,35 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _RMNET_IPA_FD_IOCTL_H +#define _RMNET_IPA_FD_IOCTL_H + +#include +#include + +/** + * unique magic number of the IPA_WAN device + */ +#define WAN_IOC_MAGIC 0x69 + +#define WAN_IOCTL_ADD_FLT_RULE 0 +#define WAN_IOCTL_ADD_FLT_INDEX 2 + +#define WAN_IOC_ADD_FLT_RULE _IOWR(WAN_IOC_MAGIC, \ + WAN_IOCTL_ADD_FLT_RULE, \ + struct ipa_install_fltr_rule_req_msg_v01 *) + +#define WAN_IOC_ADD_FLT_RULE_INDEX _IOWR(WAN_IOC_MAGIC, \ + WAN_IOCTL_ADD_FLT_INDEX, \ + struct ipa_fltr_installed_notif_req_msg_v01 *) + +#endif /* _RMNET_IPA_FD_IOCTL_H */ diff --git a/kernel_headers/linux/romfs_fs.h b/kernel_headers/linux/romfs_fs.h new file mode 100644 index 0000000..5f57f93 --- /dev/null +++ b/kernel_headers/linux/romfs_fs.h @@ -0,0 +1,59 @@ +#ifndef __LINUX_ROMFS_FS_H +#define __LINUX_ROMFS_FS_H + +#include +#include + +/* The basic structures of the romfs filesystem */ + +#define ROMBSIZE BLOCK_SIZE +#define ROMBSBITS BLOCK_SIZE_BITS +#define ROMBMASK (ROMBSIZE-1) +#define ROMFS_MAGIC 0x7275 + +#define ROMFS_MAXFN 128 + +#define __mkw(h,l) (((h)&0x00ff)<< 8|((l)&0x00ff)) +#define __mkl(h,l) (((h)&0xffff)<<16|((l)&0xffff)) +#define __mk4(a,b,c,d) cpu_to_be32(__mkl(__mkw(a,b),__mkw(c,d))) +#define ROMSB_WORD0 __mk4('-','r','o','m') +#define ROMSB_WORD1 __mk4('1','f','s','-') + +/* On-disk "super block" */ + +struct romfs_super_block { + __be32 word0; + __be32 word1; + __be32 size; + __be32 checksum; + char name[0]; /* volume name */ +}; + +/* On disk inode */ + +struct romfs_inode { + __be32 next; /* low 4 bits see ROMFH_ */ + __be32 spec; + __be32 size; + __be32 checksum; + char name[0]; +}; + +#define ROMFH_TYPE 7 +#define ROMFH_HRD 0 +#define ROMFH_DIR 1 +#define ROMFH_REG 2 +#define ROMFH_SYM 3 +#define ROMFH_BLK 4 +#define ROMFH_CHR 5 +#define ROMFH_SCK 6 +#define ROMFH_FIF 7 +#define ROMFH_EXEC 8 + +/* Alignment */ + +#define ROMFH_SIZE 16 +#define ROMFH_PAD (ROMFH_SIZE-1) +#define ROMFH_MASK (~ROMFH_PAD) + +#endif diff --git a/kernel_headers/linux/rose.h b/kernel_headers/linux/rose.h new file mode 100644 index 0000000..1fcfe95 --- /dev/null +++ b/kernel_headers/linux/rose.h @@ -0,0 +1,90 @@ +/* + * These are the public elements of the Linux kernel Rose implementation. + * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the + * definition of the ax25_address structure. + */ + +#ifndef ROSE_KERNEL_H +#define ROSE_KERNEL_H + +#include +#include + +#define ROSE_MTU 251 + +#define ROSE_MAX_DIGIS 6 + +#define ROSE_DEFER 1 +#define ROSE_T1 2 +#define ROSE_T2 3 +#define ROSE_T3 4 +#define ROSE_IDLE 5 +#define ROSE_QBITINCL 6 +#define ROSE_HOLDBACK 7 + +#define SIOCRSGCAUSE (SIOCPROTOPRIVATE+0) +#define SIOCRSSCAUSE (SIOCPROTOPRIVATE+1) +#define SIOCRSL2CALL (SIOCPROTOPRIVATE+2) +#define SIOCRSSL2CALL (SIOCPROTOPRIVATE+2) +#define SIOCRSACCEPT (SIOCPROTOPRIVATE+3) +#define SIOCRSCLRRT (SIOCPROTOPRIVATE+4) +#define SIOCRSGL2CALL (SIOCPROTOPRIVATE+5) +#define SIOCRSGFACILITIES (SIOCPROTOPRIVATE+6) + +#define ROSE_DTE_ORIGINATED 0x00 +#define ROSE_NUMBER_BUSY 0x01 +#define ROSE_INVALID_FACILITY 0x03 +#define ROSE_NETWORK_CONGESTION 0x05 +#define ROSE_OUT_OF_ORDER 0x09 +#define ROSE_ACCESS_BARRED 0x0B +#define ROSE_NOT_OBTAINABLE 0x0D +#define ROSE_REMOTE_PROCEDURE 0x11 +#define ROSE_LOCAL_PROCEDURE 0x13 +#define ROSE_SHIP_ABSENT 0x39 + +typedef struct { + char rose_addr[5]; +} rose_address; + +struct sockaddr_rose { + __kernel_sa_family_t srose_family; + rose_address srose_addr; + ax25_address srose_call; + int srose_ndigis; + ax25_address srose_digi; +}; + +struct full_sockaddr_rose { + __kernel_sa_family_t srose_family; + rose_address srose_addr; + ax25_address srose_call; + unsigned int srose_ndigis; + ax25_address srose_digis[ROSE_MAX_DIGIS]; +}; + +struct rose_route_struct { + rose_address address; + unsigned short mask; + ax25_address neighbour; + char device[16]; + unsigned char ndigis; + ax25_address digipeaters[AX25_MAX_DIGIS]; +}; + +struct rose_cause_struct { + unsigned char cause; + unsigned char diagnostic; +}; + +struct rose_facilities_struct { + rose_address source_addr, dest_addr; + ax25_address source_call, dest_call; + unsigned char source_ndigis, dest_ndigis; + ax25_address source_digis[ROSE_MAX_DIGIS]; + ax25_address dest_digis[ROSE_MAX_DIGIS]; + unsigned int rand; + rose_address fail_addr; + ax25_address fail_call; +}; + +#endif diff --git a/kernel_headers/linux/route.h b/kernel_headers/linux/route.h new file mode 100644 index 0000000..11abf54 --- /dev/null +++ b/kernel_headers/linux/route.h @@ -0,0 +1,67 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the IP router interface. + * + * Version: @(#)route.h 1.0.3 05/27/93 + * + * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 + * for the purposes of compatibility only. + * + * Fred N. van Kempen, + * + * Changes: + * Mike McLagan : Routing by source + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_ROUTE_H +#define _LINUX_ROUTE_H + +#include + + +/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ +struct rtentry { + unsigned long rt_pad1; + struct sockaddr rt_dst; /* target address */ + struct sockaddr rt_gateway; /* gateway addr (RTF_GATEWAY) */ + struct sockaddr rt_genmask; /* target network mask (IP) */ + unsigned short rt_flags; + short rt_pad2; + unsigned long rt_pad3; + void *rt_pad4; + short rt_metric; /* +1 for binary compatibility! */ + char *rt_dev; /* forcing the device at add */ + unsigned long rt_mtu; /* per route MTU/Window */ +#define rt_mss rt_mtu /* Compatibility :-( */ + unsigned long rt_window; /* Window clamping */ + unsigned short rt_irtt; /* Initial RTT */ +}; + + +#define RTF_UP 0x0001 /* route usable */ +#define RTF_GATEWAY 0x0002 /* destination is a gateway */ +#define RTF_HOST 0x0004 /* host entry (net otherwise) */ +#define RTF_REINSTATE 0x0008 /* reinstate route after tmout */ +#define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */ +#define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */ +#define RTF_MTU 0x0040 /* specific MTU for this route */ +#define RTF_MSS RTF_MTU /* Compatibility :-( */ +#define RTF_WINDOW 0x0080 /* per route window clamping */ +#define RTF_IRTT 0x0100 /* Initial round trip time */ +#define RTF_REJECT 0x0200 /* Reject route */ + +/* + * uses RTF values >= 64k + */ + + + +#endif /* _LINUX_ROUTE_H */ + diff --git a/kernel_headers/linux/rtc.h b/kernel_headers/linux/rtc.h new file mode 100644 index 0000000..cebd172 --- /dev/null +++ b/kernel_headers/linux/rtc.h @@ -0,0 +1,107 @@ +/* + * Generic RTC interface. + * This version contains the part of the user interface to the Real Time Clock + * service. It is used with both the legacy mc146818 and also EFI + * Struct rtc_time and first 12 ioctl by Paul Gortmaker, 1996 - separated out + * from to this file for 2.4 kernels. + * + * Copyright (C) 1999 Hewlett-Packard Co. + * Copyright (C) 1999 Stephane Eranian + */ +#ifndef _LINUX_RTC_H_ +#define _LINUX_RTC_H_ + +/* + * The struct used to pass data via the following ioctl. Similar to the + * struct tm in , but it needs to be here so that the kernel + * source is self contained, allowing cross-compiles, etc. etc. + */ + +struct rtc_time { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +/* + * This data structure is inspired by the EFI (v0.92) wakeup + * alarm API. + */ +struct rtc_wkalrm { + unsigned char enabled; /* 0 = alarm disabled, 1 = alarm enabled */ + unsigned char pending; /* 0 = alarm not pending, 1 = alarm pending */ + struct rtc_time time; /* time the alarm is set to */ +}; + +/* + * Data structure to control PLL correction some better RTC feature + * pll_value is used to get or set current value of correction, + * the rest of the struct is used to query HW capabilities. + * This is modeled after the RTC used in Q40/Q60 computers but + * should be sufficiently flexible for other devices + * + * +ve pll_value means clock will run faster by + * pll_value*pll_posmult/pll_clock + * -ve pll_value means clock will run slower by + * pll_value*pll_negmult/pll_clock + */ + +struct rtc_pll_info { + int pll_ctrl; /* placeholder for fancier control */ + int pll_value; /* get/set correction value */ + int pll_max; /* max +ve (faster) adjustment value */ + int pll_min; /* max -ve (slower) adjustment value */ + int pll_posmult; /* factor for +ve correction */ + int pll_negmult; /* factor for -ve correction */ + long pll_clock; /* base PLL frequency */ +}; + +/* + * ioctl calls that are permitted to the /dev/rtc interface, if + * any of the RTC drivers are enabled. + */ + +#define RTC_AIE_ON _IO('p', 0x01) /* Alarm int. enable on */ +#define RTC_AIE_OFF _IO('p', 0x02) /* ... off */ +#define RTC_UIE_ON _IO('p', 0x03) /* Update int. enable on */ +#define RTC_UIE_OFF _IO('p', 0x04) /* ... off */ +#define RTC_PIE_ON _IO('p', 0x05) /* Periodic int. enable on */ +#define RTC_PIE_OFF _IO('p', 0x06) /* ... off */ +#define RTC_WIE_ON _IO('p', 0x0f) /* Watchdog int. enable on */ +#define RTC_WIE_OFF _IO('p', 0x10) /* ... off */ + +#define RTC_ALM_SET _IOW('p', 0x07, struct rtc_time) /* Set alarm time */ +#define RTC_ALM_READ _IOR('p', 0x08, struct rtc_time) /* Read alarm time */ +#define RTC_RD_TIME _IOR('p', 0x09, struct rtc_time) /* Read RTC time */ +#define RTC_SET_TIME _IOW('p', 0x0a, struct rtc_time) /* Set RTC time */ +#define RTC_IRQP_READ _IOR('p', 0x0b, unsigned long) /* Read IRQ rate */ +#define RTC_IRQP_SET _IOW('p', 0x0c, unsigned long) /* Set IRQ rate */ +#define RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long) /* Read epoch */ +#define RTC_EPOCH_SET _IOW('p', 0x0e, unsigned long) /* Set epoch */ + +#define RTC_WKALM_SET _IOW('p', 0x0f, struct rtc_wkalrm)/* Set wakeup alarm*/ +#define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)/* Get wakeup alarm*/ + +#define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info) /* Get PLL correction */ +#define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info) /* Set PLL correction */ + +#define RTC_VL_READ _IOR('p', 0x13, int) /* Voltage low detector */ +#define RTC_VL_CLR _IO('p', 0x14) /* Clear voltage low information */ + +/* interrupt flags */ +#define RTC_IRQF 0x80 /* Any of the following is active */ +#define RTC_PF 0x40 /* Periodic interrupt */ +#define RTC_AF 0x20 /* Alarm interrupt */ +#define RTC_UF 0x10 /* Update interrupt for 1Hz RTC */ + + +#define RTC_MAX_FREQ 8192 + + +#endif /* _LINUX_RTC_H_ */ diff --git a/kernel_headers/linux/rtnetlink.h b/kernel_headers/linux/rtnetlink.h new file mode 100644 index 0000000..7084e56 --- /dev/null +++ b/kernel_headers/linux/rtnetlink.h @@ -0,0 +1,638 @@ +#ifndef __LINUX_RTNETLINK_H +#define __LINUX_RTNETLINK_H + +#include +#include +#include +#include +#include + +/* rtnetlink families. Values up to 127 are reserved for real address + * families, values above 128 may be used arbitrarily. + */ +#define RTNL_FAMILY_IPMR 128 +#define RTNL_FAMILY_IP6MR 129 +#define RTNL_FAMILY_MAX 129 + +/**** + * Routing/neighbour discovery messages. + ****/ + +/* Types of messages */ + +enum { + RTM_BASE = 16, +#define RTM_BASE RTM_BASE + + RTM_NEWLINK = 16, +#define RTM_NEWLINK RTM_NEWLINK + RTM_DELLINK, +#define RTM_DELLINK RTM_DELLINK + RTM_GETLINK, +#define RTM_GETLINK RTM_GETLINK + RTM_SETLINK, +#define RTM_SETLINK RTM_SETLINK + + RTM_NEWADDR = 20, +#define RTM_NEWADDR RTM_NEWADDR + RTM_DELADDR, +#define RTM_DELADDR RTM_DELADDR + RTM_GETADDR, +#define RTM_GETADDR RTM_GETADDR + + RTM_NEWROUTE = 24, +#define RTM_NEWROUTE RTM_NEWROUTE + RTM_DELROUTE, +#define RTM_DELROUTE RTM_DELROUTE + RTM_GETROUTE, +#define RTM_GETROUTE RTM_GETROUTE + + RTM_NEWNEIGH = 28, +#define RTM_NEWNEIGH RTM_NEWNEIGH + RTM_DELNEIGH, +#define RTM_DELNEIGH RTM_DELNEIGH + RTM_GETNEIGH, +#define RTM_GETNEIGH RTM_GETNEIGH + + RTM_NEWRULE = 32, +#define RTM_NEWRULE RTM_NEWRULE + RTM_DELRULE, +#define RTM_DELRULE RTM_DELRULE + RTM_GETRULE, +#define RTM_GETRULE RTM_GETRULE + + RTM_NEWQDISC = 36, +#define RTM_NEWQDISC RTM_NEWQDISC + RTM_DELQDISC, +#define RTM_DELQDISC RTM_DELQDISC + RTM_GETQDISC, +#define RTM_GETQDISC RTM_GETQDISC + + RTM_NEWTCLASS = 40, +#define RTM_NEWTCLASS RTM_NEWTCLASS + RTM_DELTCLASS, +#define RTM_DELTCLASS RTM_DELTCLASS + RTM_GETTCLASS, +#define RTM_GETTCLASS RTM_GETTCLASS + + RTM_NEWTFILTER = 44, +#define RTM_NEWTFILTER RTM_NEWTFILTER + RTM_DELTFILTER, +#define RTM_DELTFILTER RTM_DELTFILTER + RTM_GETTFILTER, +#define RTM_GETTFILTER RTM_GETTFILTER + + RTM_NEWACTION = 48, +#define RTM_NEWACTION RTM_NEWACTION + RTM_DELACTION, +#define RTM_DELACTION RTM_DELACTION + RTM_GETACTION, +#define RTM_GETACTION RTM_GETACTION + + RTM_NEWPREFIX = 52, +#define RTM_NEWPREFIX RTM_NEWPREFIX + + RTM_GETMULTICAST = 58, +#define RTM_GETMULTICAST RTM_GETMULTICAST + + RTM_GETANYCAST = 62, +#define RTM_GETANYCAST RTM_GETANYCAST + + RTM_NEWNEIGHTBL = 64, +#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL + RTM_GETNEIGHTBL = 66, +#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL + RTM_SETNEIGHTBL, +#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL + + RTM_NEWNDUSEROPT = 68, +#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT + + RTM_NEWADDRLABEL = 72, +#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL + RTM_DELADDRLABEL, +#define RTM_DELADDRLABEL RTM_DELADDRLABEL + RTM_GETADDRLABEL, +#define RTM_GETADDRLABEL RTM_GETADDRLABEL + + RTM_GETDCB = 78, +#define RTM_GETDCB RTM_GETDCB + RTM_SETDCB, +#define RTM_SETDCB RTM_SETDCB + + RTM_NEWNETCONF = 80, +#define RTM_NEWNETCONF RTM_NEWNETCONF + RTM_GETNETCONF = 82, +#define RTM_GETNETCONF RTM_GETNETCONF + + RTM_NEWMDB = 84, +#define RTM_NEWMDB RTM_NEWMDB + RTM_DELMDB = 85, +#define RTM_DELMDB RTM_DELMDB + RTM_GETMDB = 86, +#define RTM_GETMDB RTM_GETMDB + + __RTM_MAX, +#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) +}; + +#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE) +#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2) +#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2) + +/* + Generic structure for encapsulation of optional route information. + It is reminiscent of sockaddr, but with sa_family replaced + with attribute type. + */ + +struct rtattr { + unsigned short rta_len; + unsigned short rta_type; +}; + +/* Macros to handle rtattributes */ + +#define RTA_ALIGNTO 4 +#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) ) +#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && \ + (rta)->rta_len >= sizeof(struct rtattr) && \ + (rta)->rta_len <= (len)) +#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), \ + (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len))) +#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len)) +#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len)) +#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0))) +#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0)) + + + + +/****************************************************************************** + * Definitions used in routing table administration. + ****/ + +struct rtmsg { + unsigned char rtm_family; + unsigned char rtm_dst_len; + unsigned char rtm_src_len; + unsigned char rtm_tos; + + unsigned char rtm_table; /* Routing table id */ + unsigned char rtm_protocol; /* Routing protocol; see below */ + unsigned char rtm_scope; /* See below */ + unsigned char rtm_type; /* See below */ + + unsigned rtm_flags; +}; + +/* rtm_type */ + +enum { + RTN_UNSPEC, + RTN_UNICAST, /* Gateway or direct route */ + RTN_LOCAL, /* Accept locally */ + RTN_BROADCAST, /* Accept locally as broadcast, + send as broadcast */ + RTN_ANYCAST, /* Accept locally as broadcast, + but send as unicast */ + RTN_MULTICAST, /* Multicast route */ + RTN_BLACKHOLE, /* Drop */ + RTN_UNREACHABLE, /* Destination is unreachable */ + RTN_PROHIBIT, /* Administratively prohibited */ + RTN_THROW, /* Not in this table */ + RTN_NAT, /* Translate this address */ + RTN_XRESOLVE, /* Use external resolver */ + __RTN_MAX +}; + +#define RTN_MAX (__RTN_MAX - 1) + + +/* rtm_protocol */ + +#define RTPROT_UNSPEC 0 +#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects; + not used by current IPv4 */ +#define RTPROT_KERNEL 2 /* Route installed by kernel */ +#define RTPROT_BOOT 3 /* Route installed during boot */ +#define RTPROT_STATIC 4 /* Route installed by administrator */ + +/* Values of protocol >= RTPROT_STATIC are not interpreted by kernel; + they are just passed from user and back as is. + It will be used by hypothetical multiple routing daemons. + Note that protocol values should be standardized in order to + avoid conflicts. + */ + +#define RTPROT_GATED 8 /* Apparently, GateD */ +#define RTPROT_RA 9 /* RDISC/ND router advertisements */ +#define RTPROT_MRT 10 /* Merit MRT */ +#define RTPROT_ZEBRA 11 /* Zebra */ +#define RTPROT_BIRD 12 /* BIRD */ +#define RTPROT_DNROUTED 13 /* DECnet routing daemon */ +#define RTPROT_XORP 14 /* XORP */ +#define RTPROT_NTK 15 /* Netsukuku */ +#define RTPROT_DHCP 16 /* DHCP client */ +#define RTPROT_MROUTED 17 /* Multicast daemon */ + +/* rtm_scope + + Really it is not scope, but sort of distance to the destination. + NOWHERE are reserved for not existing destinations, HOST is our + local addresses, LINK are destinations, located on directly attached + link and UNIVERSE is everywhere in the Universe. + + Intermediate values are also possible f.e. interior routes + could be assigned a value between UNIVERSE and LINK. +*/ + +enum rt_scope_t { + RT_SCOPE_UNIVERSE=0, +/* User defined values */ + RT_SCOPE_SITE=200, + RT_SCOPE_LINK=253, + RT_SCOPE_HOST=254, + RT_SCOPE_NOWHERE=255 +}; + +/* rtm_flags */ + +#define RTM_F_NOTIFY 0x100 /* Notify user of route change */ +#define RTM_F_CLONED 0x200 /* This route is cloned */ +#define RTM_F_EQUALIZE 0x400 /* Multipath equalizer: NI */ +#define RTM_F_PREFIX 0x800 /* Prefix addresses */ + +/* Reserved table identifiers */ + +enum rt_class_t { + RT_TABLE_UNSPEC=0, +/* User defined values */ + RT_TABLE_COMPAT=252, + RT_TABLE_DEFAULT=253, + RT_TABLE_MAIN=254, + RT_TABLE_LOCAL=255, + RT_TABLE_MAX=0xFFFFFFFF +}; + + +/* Routing message attributes */ + +enum rtattr_type_t { + RTA_UNSPEC, + RTA_DST, + RTA_SRC, + RTA_IIF, + RTA_OIF, + RTA_GATEWAY, + RTA_PRIORITY, + RTA_PREFSRC, + RTA_METRICS, + RTA_MULTIPATH, + RTA_PROTOINFO, /* no longer used */ + RTA_FLOW, + RTA_CACHEINFO, + RTA_SESSION, /* no longer used */ + RTA_MP_ALGO, /* no longer used */ + RTA_TABLE, + RTA_MARK, + RTA_MFC_STATS, + RTA_UID, + __RTA_MAX +}; + +#define RTA_MAX (__RTA_MAX - 1) + +#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg)))) +#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg)) + +/* RTM_MULTIPATH --- array of struct rtnexthop. + * + * "struct rtnexthop" describes all necessary nexthop information, + * i.e. parameters of path to a destination via this nexthop. + * + * At the moment it is impossible to set different prefsrc, mtu, window + * and rtt for different paths from multipath. + */ + +struct rtnexthop { + unsigned short rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; +}; + +/* rtnh_flags */ + +#define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */ +#define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */ +#define RTNH_F_ONLINK 4 /* Gateway is forced on link */ + +/* Macros to handle hexthops */ + +#define RTNH_ALIGNTO 4 +#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) ) +#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \ + ((int)(rtnh)->rtnh_len) <= (len)) +#define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) +#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len)) +#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len)) +#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) + +/* RTM_CACHEINFO */ + +struct rta_cacheinfo { + __u32 rta_clntref; + __u32 rta_lastuse; + __s32 rta_expires; + __u32 rta_error; + __u32 rta_used; + +#define RTNETLINK_HAVE_PEERINFO 1 + __u32 rta_id; + __u32 rta_ts; + __u32 rta_tsage; +}; + +/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */ + +enum { + RTAX_UNSPEC, +#define RTAX_UNSPEC RTAX_UNSPEC + RTAX_LOCK, +#define RTAX_LOCK RTAX_LOCK + RTAX_MTU, +#define RTAX_MTU RTAX_MTU + RTAX_WINDOW, +#define RTAX_WINDOW RTAX_WINDOW + RTAX_RTT, +#define RTAX_RTT RTAX_RTT + RTAX_RTTVAR, +#define RTAX_RTTVAR RTAX_RTTVAR + RTAX_SSTHRESH, +#define RTAX_SSTHRESH RTAX_SSTHRESH + RTAX_CWND, +#define RTAX_CWND RTAX_CWND + RTAX_ADVMSS, +#define RTAX_ADVMSS RTAX_ADVMSS + RTAX_REORDERING, +#define RTAX_REORDERING RTAX_REORDERING + RTAX_HOPLIMIT, +#define RTAX_HOPLIMIT RTAX_HOPLIMIT + RTAX_INITCWND, +#define RTAX_INITCWND RTAX_INITCWND + RTAX_FEATURES, +#define RTAX_FEATURES RTAX_FEATURES + RTAX_RTO_MIN, +#define RTAX_RTO_MIN RTAX_RTO_MIN + RTAX_INITRWND, +#define RTAX_INITRWND RTAX_INITRWND + __RTAX_MAX +}; + +#define RTAX_MAX (__RTAX_MAX - 1) + +#define RTAX_FEATURE_ECN 0x00000001 +#define RTAX_FEATURE_SACK 0x00000002 +#define RTAX_FEATURE_TIMESTAMP 0x00000004 +#define RTAX_FEATURE_ALLFRAG 0x00000008 + +struct rta_session { + __u8 proto; + __u8 pad1; + __u16 pad2; + + union { + struct { + __u16 sport; + __u16 dport; + } ports; + + struct { + __u8 type; + __u8 code; + __u16 ident; + } icmpt; + + __u32 spi; + } u; +}; + +struct rta_mfc_stats { + __u64 mfcs_packets; + __u64 mfcs_bytes; + __u64 mfcs_wrong_if; +}; + +/**** + * General form of address family dependent message. + ****/ + +struct rtgenmsg { + unsigned char rtgen_family; +}; + +/***************************************************************** + * Link layer specific messages. + ****/ + +/* struct ifinfomsg + * passes link level specific information, not dependent + * on network protocol. + */ + +struct ifinfomsg { + unsigned char ifi_family; + unsigned char __ifi_pad; + unsigned short ifi_type; /* ARPHRD_* */ + int ifi_index; /* Link index */ + unsigned ifi_flags; /* IFF_* flags */ + unsigned ifi_change; /* IFF_* change mask */ +}; + +/******************************************************************** + * prefix information + ****/ + +struct prefixmsg { + unsigned char prefix_family; + unsigned char prefix_pad1; + unsigned short prefix_pad2; + int prefix_ifindex; + unsigned char prefix_type; + unsigned char prefix_len; + unsigned char prefix_flags; + unsigned char prefix_pad3; +}; + +enum +{ + PREFIX_UNSPEC, + PREFIX_ADDRESS, + PREFIX_CACHEINFO, + __PREFIX_MAX +}; + +#define PREFIX_MAX (__PREFIX_MAX - 1) + +struct prefix_cacheinfo { + __u32 preferred_time; + __u32 valid_time; +}; + + +/***************************************************************** + * Traffic control messages. + ****/ + +struct tcmsg { + unsigned char tcm_family; + unsigned char tcm__pad1; + unsigned short tcm__pad2; + int tcm_ifindex; + __u32 tcm_handle; + __u32 tcm_parent; + __u32 tcm_info; +}; + +enum { + TCA_UNSPEC, + TCA_KIND, + TCA_OPTIONS, + TCA_STATS, + TCA_XSTATS, + TCA_RATE, + TCA_FCNT, + TCA_STATS2, + TCA_STAB, + __TCA_MAX +}; + +#define TCA_MAX (__TCA_MAX - 1) + +#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) +#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) + +/******************************************************************** + * Neighbor Discovery userland options + ****/ + +struct nduseroptmsg { + unsigned char nduseropt_family; + unsigned char nduseropt_pad1; + unsigned short nduseropt_opts_len; /* Total length of options */ + int nduseropt_ifindex; + __u8 nduseropt_icmp_type; + __u8 nduseropt_icmp_code; + unsigned short nduseropt_pad2; + unsigned int nduseropt_pad3; + /* Followed by one or more ND options */ +}; + +enum { + NDUSEROPT_UNSPEC, + NDUSEROPT_SRCADDR, + __NDUSEROPT_MAX +}; + +#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1) + +/* RTnetlink multicast groups - backwards compatibility for userspace */ +#define RTMGRP_LINK 1 +#define RTMGRP_NOTIFY 2 +#define RTMGRP_NEIGH 4 +#define RTMGRP_TC 8 + +#define RTMGRP_IPV4_IFADDR 0x10 +#define RTMGRP_IPV4_MROUTE 0x20 +#define RTMGRP_IPV4_ROUTE 0x40 +#define RTMGRP_IPV4_RULE 0x80 + +#define RTMGRP_IPV6_IFADDR 0x100 +#define RTMGRP_IPV6_MROUTE 0x200 +#define RTMGRP_IPV6_ROUTE 0x400 +#define RTMGRP_IPV6_IFINFO 0x800 + +#define RTMGRP_DECnet_IFADDR 0x1000 +#define RTMGRP_DECnet_ROUTE 0x4000 + +#define RTMGRP_IPV6_PREFIX 0x20000 + +/* RTnetlink multicast groups */ +enum rtnetlink_groups { + RTNLGRP_NONE, +#define RTNLGRP_NONE RTNLGRP_NONE + RTNLGRP_LINK, +#define RTNLGRP_LINK RTNLGRP_LINK + RTNLGRP_NOTIFY, +#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY + RTNLGRP_NEIGH, +#define RTNLGRP_NEIGH RTNLGRP_NEIGH + RTNLGRP_TC, +#define RTNLGRP_TC RTNLGRP_TC + RTNLGRP_IPV4_IFADDR, +#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR + RTNLGRP_IPV4_MROUTE, +#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE + RTNLGRP_IPV4_ROUTE, +#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE + RTNLGRP_IPV4_RULE, +#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE + RTNLGRP_IPV6_IFADDR, +#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR + RTNLGRP_IPV6_MROUTE, +#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE + RTNLGRP_IPV6_ROUTE, +#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE + RTNLGRP_IPV6_IFINFO, +#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO + RTNLGRP_DECnet_IFADDR, +#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR + RTNLGRP_NOP2, + RTNLGRP_DECnet_ROUTE, +#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE + RTNLGRP_DECnet_RULE, +#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE + RTNLGRP_NOP4, + RTNLGRP_IPV6_PREFIX, +#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX + RTNLGRP_IPV6_RULE, +#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE + RTNLGRP_ND_USEROPT, +#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT + RTNLGRP_PHONET_IFADDR, +#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR + RTNLGRP_PHONET_ROUTE, +#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE + RTNLGRP_DCB, +#define RTNLGRP_DCB RTNLGRP_DCB + RTNLGRP_IPV4_NETCONF, +#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF + RTNLGRP_IPV6_NETCONF, +#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF + RTNLGRP_MDB, +#define RTNLGRP_MDB RTNLGRP_MDB + __RTNLGRP_MAX +}; +#define RTNLGRP_MAX (__RTNLGRP_MAX - 1) + +/* TC action piece */ +struct tcamsg { + unsigned char tca_family; + unsigned char tca__pad1; + unsigned short tca__pad2; +}; +#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) +#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) +#define TCA_ACT_TAB 1 /* attr type must be >=1 */ +#define TCAA_MAX 1 + +/* New extended info filters for IFLA_EXT_MASK */ +#define RTEXT_FILTER_VF (1 << 0) +#define RTEXT_FILTER_BRVLAN (1 << 1) + +/* End of information exported to user level */ + + + +#endif /* __LINUX_RTNETLINK_H */ diff --git a/kernel_headers/linux/scc.h b/kernel_headers/linux/scc.h new file mode 100644 index 0000000..73c0cb2 --- /dev/null +++ b/kernel_headers/linux/scc.h @@ -0,0 +1,172 @@ +/* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */ + +#ifndef _SCC_H +#define _SCC_H + + +/* selection of hardware types */ + +#define PA0HZP 0x00 /* hardware type for PA0HZP SCC card and compatible */ +#define EAGLE 0x01 /* hardware type for EAGLE card */ +#define PC100 0x02 /* hardware type for PC100 card */ +#define PRIMUS 0x04 /* hardware type for PRIMUS-PC (DG9BL) card */ +#define DRSI 0x08 /* hardware type for DRSI PC*Packet card */ +#define BAYCOM 0x10 /* hardware type for BayCom (U)SCC */ + +/* DEV ioctl() commands */ + +enum SCC_ioctl_cmds { + SIOCSCCRESERVED = SIOCDEVPRIVATE, + SIOCSCCCFG, + SIOCSCCINI, + SIOCSCCCHANINI, + SIOCSCCSMEM, + SIOCSCCGKISS, + SIOCSCCSKISS, + SIOCSCCGSTAT, + SIOCSCCCAL +}; + +/* Device parameter control (from WAMPES) */ + +enum L1_params { + PARAM_DATA, + PARAM_TXDELAY, + PARAM_PERSIST, + PARAM_SLOTTIME, + PARAM_TXTAIL, + PARAM_FULLDUP, + PARAM_SOFTDCD, /* was: PARAM_HW */ + PARAM_MUTE, /* ??? */ + PARAM_DTR, + PARAM_RTS, + PARAM_SPEED, + PARAM_ENDDELAY, /* ??? */ + PARAM_GROUP, + PARAM_IDLE, + PARAM_MIN, + PARAM_MAXKEY, + PARAM_WAIT, + PARAM_MAXDEFER, + PARAM_TX, + PARAM_HWEVENT = 31, + PARAM_RETURN = 255 /* reset kiss mode */ +}; + +/* fulldup parameter */ + +enum FULLDUP_modes { + KISS_DUPLEX_HALF, /* normal CSMA operation */ + KISS_DUPLEX_FULL, /* fullduplex, key down trx after transmission */ + KISS_DUPLEX_LINK, /* fullduplex, key down trx after 'idletime' sec */ + KISS_DUPLEX_OPTIMA /* fullduplex, let the protocol layer control the hw */ +}; + +/* misc. parameters */ + +#define TIMER_OFF 65535U /* to switch off timers */ +#define NO_SUCH_PARAM 65534U /* param not implemented */ + +/* HWEVENT parameter */ + +enum HWEVENT_opts { + HWEV_DCD_ON, + HWEV_DCD_OFF, + HWEV_ALL_SENT +}; + +/* channel grouping */ + +#define RXGROUP 0100 /* if set, only tx when all channels clear */ +#define TXGROUP 0200 /* if set, don't transmit simultaneously */ + +/* Tx/Rx clock sources */ + +enum CLOCK_sources { + CLK_DPLL, /* normal halfduplex operation */ + CLK_EXTERNAL, /* external clocking (G3RUH/DF9IC modems) */ + CLK_DIVIDER, /* Rx = DPLL, Tx = divider (fullduplex with */ + /* modems without clock regeneration */ + CLK_BRG /* experimental fullduplex mode with DPLL/BRG for */ + /* MODEMs without clock recovery */ +}; + +/* Tx state */ + +enum TX_state { + TXS_IDLE, /* Transmitter off, no data pending */ + TXS_BUSY, /* waiting for permission to send / tailtime */ + TXS_ACTIVE, /* Transmitter on, sending data */ + TXS_NEWFRAME, /* reset CRC and send (next) frame */ + TXS_IDLE2, /* Transmitter on, no data pending */ + TXS_WAIT, /* Waiting for Mintime to expire */ + TXS_TIMEOUT /* We had a transmission timeout */ +}; + +typedef unsigned long io_port; /* type definition for an 'io port address' */ + +/* SCC statistical information */ + +struct scc_stat { + long rxints; /* Receiver interrupts */ + long txints; /* Transmitter interrupts */ + long exints; /* External/status interrupts */ + long spints; /* Special receiver interrupts */ + + long txframes; /* Packets sent */ + long rxframes; /* Number of Frames Actually Received */ + long rxerrs; /* CRC Errors */ + long txerrs; /* KISS errors */ + + unsigned int nospace; /* "Out of buffers" */ + unsigned int rx_over; /* Receiver Overruns */ + unsigned int tx_under; /* Transmitter Underruns */ + + unsigned int tx_state; /* Transmitter state */ + int tx_queued; /* tx frames enqueued */ + + unsigned int maxqueue; /* allocated tx_buffers */ + unsigned int bufsize; /* used buffersize */ +}; + +struct scc_modem { + long speed; /* Line speed, bps */ + char clocksrc; /* 0 = DPLL, 1 = external, 2 = divider */ + char nrz; /* NRZ instead of NRZI */ +}; + +struct scc_kiss_cmd { + int command; /* one of the KISS-Commands defined above */ + unsigned param; /* KISS-Param */ +}; + +struct scc_hw_config { + io_port data_a; /* data port channel A */ + io_port ctrl_a; /* control port channel A */ + io_port data_b; /* data port channel B */ + io_port ctrl_b; /* control port channel B */ + io_port vector_latch; /* INTACK-Latch (#) */ + io_port special; /* special function port */ + + int irq; /* irq */ + long clock; /* clock */ + char option; /* command for function port */ + + char brand; /* hardware type */ + char escc; /* use ext. features of a 8580/85180/85280 */ +}; + +/* (#) only one INTACK latch allowed. */ + + +struct scc_mem_config { + unsigned int dummy; + unsigned int bufsize; +}; + +struct scc_calibrate { + unsigned int time; + unsigned char pattern; +}; + +#endif /* _SCC_H */ diff --git a/kernel_headers/linux/sched.h b/kernel_headers/linux/sched.h new file mode 100644 index 0000000..605dc53 --- /dev/null +++ b/kernel_headers/linux/sched.h @@ -0,0 +1,46 @@ +#ifndef _LINUX_SCHED_H +#define _LINUX_SCHED_H + +/* + * cloning flags: + */ +#define CSIGNAL 0x000000ff /* signal mask to be sent at exit */ +#define CLONE_VM 0x00000100 /* set if VM shared between processes */ +#define CLONE_FS 0x00000200 /* set if fs info shared between processes */ +#define CLONE_FILES 0x00000400 /* set if open files shared between processes */ +#define CLONE_SIGHAND 0x00000800 /* set if signal handlers and blocked signals shared */ +#define CLONE_PTRACE 0x00002000 /* set if we want to let tracing continue on the child too */ +#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */ +#define CLONE_PARENT 0x00008000 /* set if we want to have the same parent as the cloner */ +#define CLONE_THREAD 0x00010000 /* Same thread group? */ +#define CLONE_NEWNS 0x00020000 /* New namespace group? */ +#define CLONE_SYSVSEM 0x00040000 /* share system V SEM_UNDO semantics */ +#define CLONE_SETTLS 0x00080000 /* create a new TLS for the child */ +#define CLONE_PARENT_SETTID 0x00100000 /* set the TID in the parent */ +#define CLONE_CHILD_CLEARTID 0x00200000 /* clear the TID in the child */ +#define CLONE_DETACHED 0x00400000 /* Unused, ignored */ +#define CLONE_UNTRACED 0x00800000 /* set if the tracing process can't force CLONE_PTRACE on this clone */ +#define CLONE_CHILD_SETTID 0x01000000 /* set the TID in the child */ +/* 0x02000000 was previously the unused CLONE_STOPPED (Start in stopped state) + and is now available for re-use. */ +#define CLONE_NEWUTS 0x04000000 /* New utsname group? */ +#define CLONE_NEWIPC 0x08000000 /* New ipcs */ +#define CLONE_NEWUSER 0x10000000 /* New user namespace */ +#define CLONE_NEWPID 0x20000000 /* New pid namespace */ +#define CLONE_NEWNET 0x40000000 /* New network namespace */ +#define CLONE_IO 0x80000000 /* Clone io context */ + +/* + * Scheduling policies + */ +#define SCHED_NORMAL 0 +#define SCHED_FIFO 1 +#define SCHED_RR 2 +#define SCHED_BATCH 3 +/* SCHED_ISO: reserved but not implemented yet */ +#define SCHED_IDLE 5 +/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ +#define SCHED_RESET_ON_FORK 0x40000000 + + +#endif /* _LINUX_SCHED_H */ diff --git a/kernel_headers/linux/screen_info.h b/kernel_headers/linux/screen_info.h new file mode 100644 index 0000000..c5c4d20 --- /dev/null +++ b/kernel_headers/linux/screen_info.h @@ -0,0 +1,74 @@ +#ifndef _SCREEN_INFO_H +#define _SCREEN_INFO_H + +#include + +/* + * These are set up by the setup-routine at boot-time: + */ + +struct screen_info { + __u8 orig_x; /* 0x00 */ + __u8 orig_y; /* 0x01 */ + __u16 ext_mem_k; /* 0x02 */ + __u16 orig_video_page; /* 0x04 */ + __u8 orig_video_mode; /* 0x06 */ + __u8 orig_video_cols; /* 0x07 */ + __u8 flags; /* 0x08 */ + __u8 unused2; /* 0x09 */ + __u16 orig_video_ega_bx;/* 0x0a */ + __u16 unused3; /* 0x0c */ + __u8 orig_video_lines; /* 0x0e */ + __u8 orig_video_isVGA; /* 0x0f */ + __u16 orig_video_points;/* 0x10 */ + + /* VESA graphic mode -- linear frame buffer */ + __u16 lfb_width; /* 0x12 */ + __u16 lfb_height; /* 0x14 */ + __u16 lfb_depth; /* 0x16 */ + __u32 lfb_base; /* 0x18 */ + __u32 lfb_size; /* 0x1c */ + __u16 cl_magic, cl_offset; /* 0x20 */ + __u16 lfb_linelength; /* 0x24 */ + __u8 red_size; /* 0x26 */ + __u8 red_pos; /* 0x27 */ + __u8 green_size; /* 0x28 */ + __u8 green_pos; /* 0x29 */ + __u8 blue_size; /* 0x2a */ + __u8 blue_pos; /* 0x2b */ + __u8 rsvd_size; /* 0x2c */ + __u8 rsvd_pos; /* 0x2d */ + __u16 vesapm_seg; /* 0x2e */ + __u16 vesapm_off; /* 0x30 */ + __u16 pages; /* 0x32 */ + __u16 vesa_attributes; /* 0x34 */ + __u32 capabilities; /* 0x36 */ + __u8 _reserved[6]; /* 0x3a */ +} __attribute__((packed)); + +#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ +#define VIDEO_TYPE_CGA 0x11 /* CGA Display */ +#define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */ +#define VIDEO_TYPE_EGAC 0x21 /* EGA in Color Mode */ +#define VIDEO_TYPE_VGAC 0x22 /* VGA+ in Color Mode */ +#define VIDEO_TYPE_VLFB 0x23 /* VESA VGA in graphic mode */ + +#define VIDEO_TYPE_PICA_S3 0x30 /* ACER PICA-61 local S3 video */ +#define VIDEO_TYPE_MIPS_G364 0x31 /* MIPS Magnum 4000 G364 video */ +#define VIDEO_TYPE_SGI 0x33 /* Various SGI graphics hardware */ + +#define VIDEO_TYPE_TGAC 0x40 /* DEC TGA */ + +#define VIDEO_TYPE_SUN 0x50 /* Sun frame buffer. */ +#define VIDEO_TYPE_SUNPCI 0x51 /* Sun PCI based frame buffer. */ + +#define VIDEO_TYPE_PMAC 0x60 /* PowerMacintosh frame buffer. */ + +#define VIDEO_TYPE_EFI 0x70 /* EFI graphic mode */ + +#define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */ + +#define VIDEO_CAPABILITY_SKIP_QUIRKS (1 << 0) + + +#endif /* _SCREEN_INFO_H */ diff --git a/kernel_headers/linux/sctp.h b/kernel_headers/linux/sctp.h new file mode 100644 index 0000000..b3a3614 --- /dev/null +++ b/kernel_headers/linux/sctp.h @@ -0,0 +1,840 @@ +/* SCTP kernel implementation + * (C) Copyright IBM Corp. 2001, 2004 + * Copyright (c) 1999-2000 Cisco, Inc. + * Copyright (c) 1999-2001 Motorola, Inc. + * Copyright (c) 2002 Intel Corp. + * + * This file is part of the SCTP kernel implementation + * + * This header represents the structures and constants needed to support + * the SCTP Extension to the Sockets API. + * + * This SCTP implementation is free software; + * you can redistribute it and/or modify it under the terms of + * the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This SCTP implementation is distributed in the hope that it + * will be useful, but WITHOUT ANY WARRANTY; without even the implied + * ************************ + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU CC; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Please send any bug reports or fixes you make to the + * email address(es): + * lksctp developers + * + * Or submit a bug report through the following website: + * http://www.sf.net/projects/lksctp + * + * Written or modified by: + * La Monte H.P. Yarroll + * R. Stewart + * K. Morneau + * Q. Xie + * Karl Knutson + * Jon Grimm + * Daisy Chang + * Ryan Layer + * Ardelle Fan + * Sridhar Samudrala + * Inaky Perez-Gonzalez + * Vlad Yasevich + * + * Any bugs reported given to us we will try to fix... any fixes shared will + * be incorporated into the next SCTP release. + */ + +#ifndef _SCTP_H +#define _SCTP_H + +#include +#include + +typedef __s32 sctp_assoc_t; + +/* The following symbols come from the Sockets API Extensions for + * SCTP . + */ +#define SCTP_RTOINFO 0 +#define SCTP_ASSOCINFO 1 +#define SCTP_INITMSG 2 +#define SCTP_NODELAY 3 /* Get/set nodelay option. */ +#define SCTP_AUTOCLOSE 4 +#define SCTP_SET_PEER_PRIMARY_ADDR 5 +#define SCTP_PRIMARY_ADDR 6 +#define SCTP_ADAPTATION_LAYER 7 +#define SCTP_DISABLE_FRAGMENTS 8 +#define SCTP_PEER_ADDR_PARAMS 9 +#define SCTP_DEFAULT_SEND_PARAM 10 +#define SCTP_EVENTS 11 +#define SCTP_I_WANT_MAPPED_V4_ADDR 12 /* Turn on/off mapped v4 addresses */ +#define SCTP_MAXSEG 13 /* Get/set maximum fragment. */ +#define SCTP_STATUS 14 +#define SCTP_GET_PEER_ADDR_INFO 15 +#define SCTP_DELAYED_ACK_TIME 16 +#define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME +#define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME +#define SCTP_CONTEXT 17 +#define SCTP_FRAGMENT_INTERLEAVE 18 +#define SCTP_PARTIAL_DELIVERY_POINT 19 /* Set/Get partial delivery point */ +#define SCTP_MAX_BURST 20 /* Set/Get max burst */ +#define SCTP_AUTH_CHUNK 21 /* Set only: add a chunk type to authenticate */ +#define SCTP_HMAC_IDENT 22 +#define SCTP_AUTH_KEY 23 +#define SCTP_AUTH_ACTIVE_KEY 24 +#define SCTP_AUTH_DELETE_KEY 25 +#define SCTP_PEER_AUTH_CHUNKS 26 /* Read only */ +#define SCTP_LOCAL_AUTH_CHUNKS 27 /* Read only */ +#define SCTP_GET_ASSOC_NUMBER 28 /* Read only */ +#define SCTP_GET_ASSOC_ID_LIST 29 /* Read only */ +#define SCTP_AUTO_ASCONF 30 +#define SCTP_PEER_ADDR_THLDS 31 + +/* Internal Socket Options. Some of the sctp library functions are + * implemented using these socket options. + */ +#define SCTP_SOCKOPT_BINDX_ADD 100 /* BINDX requests for adding addrs */ +#define SCTP_SOCKOPT_BINDX_REM 101 /* BINDX requests for removing addrs. */ +#define SCTP_SOCKOPT_PEELOFF 102 /* peel off association. */ +/* Options 104-106 are deprecated and removed. Do not use this space */ +#define SCTP_SOCKOPT_CONNECTX_OLD 107 /* CONNECTX old requests. */ +#define SCTP_GET_PEER_ADDRS 108 /* Get all peer address. */ +#define SCTP_GET_LOCAL_ADDRS 109 /* Get all local address. */ +#define SCTP_SOCKOPT_CONNECTX 110 /* CONNECTX requests. */ +#define SCTP_SOCKOPT_CONNECTX3 111 /* CONNECTX requests (updated) */ +#define SCTP_GET_ASSOC_STATS 112 /* Read only */ + +/* + * 5.2.1 SCTP Initiation Structure (SCTP_INIT) + * + * This cmsghdr structure provides information for initializing new + * SCTP associations with sendmsg(). The SCTP_INITMSG socket option + * uses this same data structure. This structure is not used for + * recvmsg(). + * + * cmsg_level cmsg_type cmsg_data[] + * ------------ ------------ ---------------------- + * IPPROTO_SCTP SCTP_INIT struct sctp_initmsg + * + */ +struct sctp_initmsg { + __u16 sinit_num_ostreams; + __u16 sinit_max_instreams; + __u16 sinit_max_attempts; + __u16 sinit_max_init_timeo; +}; + +/* + * 5.2.2 SCTP Header Information Structure (SCTP_SNDRCV) + * + * This cmsghdr structure specifies SCTP options for sendmsg() and + * describes SCTP header information about a received message through + * recvmsg(). + * + * cmsg_level cmsg_type cmsg_data[] + * ------------ ------------ ---------------------- + * IPPROTO_SCTP SCTP_SNDRCV struct sctp_sndrcvinfo + * + */ +struct sctp_sndrcvinfo { + __u16 sinfo_stream; + __u16 sinfo_ssn; + __u16 sinfo_flags; + __u32 sinfo_ppid; + __u32 sinfo_context; + __u32 sinfo_timetolive; + __u32 sinfo_tsn; + __u32 sinfo_cumtsn; + sctp_assoc_t sinfo_assoc_id; +}; + +/* + * sinfo_flags: 16 bits (unsigned integer) + * + * This field may contain any of the following flags and is composed of + * a bitwise OR of these values. + */ + +enum sctp_sinfo_flags { + SCTP_UNORDERED = 1, /* Send/receive message unordered. */ + SCTP_ADDR_OVER = 2, /* Override the primary destination. */ + SCTP_ABORT=4, /* Send an ABORT message to the peer. */ + SCTP_SACK_IMMEDIATELY = 8, /* SACK should be sent without delay */ + SCTP_EOF=MSG_FIN, /* Initiate graceful shutdown process. */ +}; + +typedef union { + __u8 raw; + struct sctp_initmsg init; + struct sctp_sndrcvinfo sndrcv; +} sctp_cmsg_data_t; + +/* These are cmsg_types. */ +typedef enum sctp_cmsg_type { + SCTP_INIT, /* 5.2.1 SCTP Initiation Structure */ +#define SCTP_INIT SCTP_INIT + SCTP_SNDRCV, /* 5.2.2 SCTP Header Information Structure */ +#define SCTP_SNDRCV SCTP_SNDRCV +} sctp_cmsg_t; + +/* + * 5.3.1.1 SCTP_ASSOC_CHANGE + * + * Communication notifications inform the ULP that an SCTP association + * has either begun or ended. The identifier for a new association is + * provided by this notificaion. The notification information has the + * following format: + * + */ +struct sctp_assoc_change { + __u16 sac_type; + __u16 sac_flags; + __u32 sac_length; + __u16 sac_state; + __u16 sac_error; + __u16 sac_outbound_streams; + __u16 sac_inbound_streams; + sctp_assoc_t sac_assoc_id; + __u8 sac_info[0]; +}; + +/* + * sac_state: 32 bits (signed integer) + * + * This field holds one of a number of values that communicate the + * event that happened to the association. They include: + * + * Note: The following state names deviate from the API draft as + * the names clash too easily with other kernel symbols. + */ +enum sctp_sac_state { + SCTP_COMM_UP, + SCTP_COMM_LOST, + SCTP_RESTART, + SCTP_SHUTDOWN_COMP, + SCTP_CANT_STR_ASSOC, +}; + +/* + * 5.3.1.2 SCTP_PEER_ADDR_CHANGE + * + * When a destination address on a multi-homed peer encounters a change + * an interface details event is sent. The information has the + * following structure: + */ +struct sctp_paddr_change { + __u16 spc_type; + __u16 spc_flags; + __u32 spc_length; + struct sockaddr_storage spc_aaddr; + int spc_state; + int spc_error; + sctp_assoc_t spc_assoc_id; +} __attribute__((packed, aligned(4))); + +/* + * spc_state: 32 bits (signed integer) + * + * This field holds one of a number of values that communicate the + * event that happened to the address. They include: + */ +enum sctp_spc_state { + SCTP_ADDR_AVAILABLE, + SCTP_ADDR_UNREACHABLE, + SCTP_ADDR_REMOVED, + SCTP_ADDR_ADDED, + SCTP_ADDR_MADE_PRIM, + SCTP_ADDR_CONFIRMED, +}; + + +/* + * 5.3.1.3 SCTP_REMOTE_ERROR + * + * A remote peer may send an Operational Error message to its peer. + * This message indicates a variety of error conditions on an + * association. The entire error TLV as it appears on the wire is + * included in a SCTP_REMOTE_ERROR event. Please refer to the SCTP + * specification [SCTP] and any extensions for a list of possible + * error formats. SCTP error TLVs have the format: + */ +struct sctp_remote_error { + __u16 sre_type; + __u16 sre_flags; + __u32 sre_length; + __u16 sre_error; + sctp_assoc_t sre_assoc_id; + __u8 sre_data[0]; +}; + + +/* + * 5.3.1.4 SCTP_SEND_FAILED + * + * If SCTP cannot deliver a message it may return the message as a + * notification. + */ +struct sctp_send_failed { + __u16 ssf_type; + __u16 ssf_flags; + __u32 ssf_length; + __u32 ssf_error; + struct sctp_sndrcvinfo ssf_info; + sctp_assoc_t ssf_assoc_id; + __u8 ssf_data[0]; +}; + +/* + * ssf_flags: 16 bits (unsigned integer) + * + * The flag value will take one of the following values + * + * SCTP_DATA_UNSENT - Indicates that the data was never put on + * the wire. + * + * SCTP_DATA_SENT - Indicates that the data was put on the wire. + * Note that this does not necessarily mean that the + * data was (or was not) successfully delivered. + */ +enum sctp_ssf_flags { + SCTP_DATA_UNSENT, + SCTP_DATA_SENT, +}; + +/* + * 5.3.1.5 SCTP_SHUTDOWN_EVENT + * + * When a peer sends a SHUTDOWN, SCTP delivers this notification to + * inform the application that it should cease sending data. + */ +struct sctp_shutdown_event { + __u16 sse_type; + __u16 sse_flags; + __u32 sse_length; + sctp_assoc_t sse_assoc_id; +}; + +/* + * 5.3.1.6 SCTP_ADAPTATION_INDICATION + * + * When a peer sends a Adaptation Layer Indication parameter , SCTP + * delivers this notification to inform the application + * that of the peers requested adaptation layer. + */ +struct sctp_adaptation_event { + __u16 sai_type; + __u16 sai_flags; + __u32 sai_length; + __u32 sai_adaptation_ind; + sctp_assoc_t sai_assoc_id; +}; + +/* + * 5.3.1.7 SCTP_PARTIAL_DELIVERY_EVENT + * + * When a receiver is engaged in a partial delivery of a + * message this notification will be used to indicate + * various events. + */ +struct sctp_pdapi_event { + __u16 pdapi_type; + __u16 pdapi_flags; + __u32 pdapi_length; + __u32 pdapi_indication; + sctp_assoc_t pdapi_assoc_id; +}; + +enum { SCTP_PARTIAL_DELIVERY_ABORTED=0, }; + +/* + * 5.3.1.8. SCTP_AUTHENTICATION_EVENT + * + * When a receiver is using authentication this message will provide + * notifications regarding new keys being made active as well as errors. + */ +struct sctp_authkey_event { + __u16 auth_type; + __u16 auth_flags; + __u32 auth_length; + __u16 auth_keynumber; + __u16 auth_altkeynumber; + __u32 auth_indication; + sctp_assoc_t auth_assoc_id; +}; + +enum { SCTP_AUTH_NEWKEY = 0, }; + +/* + * 6.1.9. SCTP_SENDER_DRY_EVENT + * + * When the SCTP stack has no more user data to send or retransmit, this + * notification is given to the user. Also, at the time when a user app + * subscribes to this event, if there is no data to be sent or + * retransmit, the stack will immediately send up this notification. + */ +struct sctp_sender_dry_event { + __u16 sender_dry_type; + __u16 sender_dry_flags; + __u32 sender_dry_length; + sctp_assoc_t sender_dry_assoc_id; +}; + +/* + * Described in Section 7.3 + * Ancillary Data and Notification Interest Options + */ +struct sctp_event_subscribe { + __u8 sctp_data_io_event; + __u8 sctp_association_event; + __u8 sctp_address_event; + __u8 sctp_send_failure_event; + __u8 sctp_peer_error_event; + __u8 sctp_shutdown_event; + __u8 sctp_partial_delivery_event; + __u8 sctp_adaptation_layer_event; + __u8 sctp_authentication_event; + __u8 sctp_sender_dry_event; +}; + +/* + * 5.3.1 SCTP Notification Structure + * + * The notification structure is defined as the union of all + * notification types. + * + */ +union sctp_notification { + struct { + __u16 sn_type; /* Notification type. */ + __u16 sn_flags; + __u32 sn_length; + } sn_header; + struct sctp_assoc_change sn_assoc_change; + struct sctp_paddr_change sn_paddr_change; + struct sctp_remote_error sn_remote_error; + struct sctp_send_failed sn_send_failed; + struct sctp_shutdown_event sn_shutdown_event; + struct sctp_adaptation_event sn_adaptation_event; + struct sctp_pdapi_event sn_pdapi_event; + struct sctp_authkey_event sn_authkey_event; + struct sctp_sender_dry_event sn_sender_dry_event; +}; + +/* Section 5.3.1 + * All standard values for sn_type flags are greater than 2^15. + * Values from 2^15 and down are reserved. + */ + +enum sctp_sn_type { + SCTP_SN_TYPE_BASE = (1<<15), + SCTP_ASSOC_CHANGE, +#define SCTP_ASSOC_CHANGE SCTP_ASSOC_CHANGE + SCTP_PEER_ADDR_CHANGE, +#define SCTP_PEER_ADDR_CHANGE SCTP_PEER_ADDR_CHANGE + SCTP_SEND_FAILED, +#define SCTP_SEND_FAILED SCTP_SEND_FAILED + SCTP_REMOTE_ERROR, +#define SCTP_REMOTE_ERROR SCTP_REMOTE_ERROR + SCTP_SHUTDOWN_EVENT, +#define SCTP_SHUTDOWN_EVENT SCTP_SHUTDOWN_EVENT + SCTP_PARTIAL_DELIVERY_EVENT, +#define SCTP_PARTIAL_DELIVERY_EVENT SCTP_PARTIAL_DELIVERY_EVENT + SCTP_ADAPTATION_INDICATION, +#define SCTP_ADAPTATION_INDICATION SCTP_ADAPTATION_INDICATION + SCTP_AUTHENTICATION_EVENT, +#define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT + SCTP_SENDER_DRY_EVENT, +#define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT +}; + +/* Notification error codes used to fill up the error fields in some + * notifications. + * SCTP_PEER_ADDRESS_CHAGE : spc_error + * SCTP_ASSOC_CHANGE : sac_error + * These names should be potentially included in the draft 04 of the SCTP + * sockets API specification. + */ +typedef enum sctp_sn_error { + SCTP_FAILED_THRESHOLD, + SCTP_RECEIVED_SACK, + SCTP_HEARTBEAT_SUCCESS, + SCTP_RESPONSE_TO_USER_REQ, + SCTP_INTERNAL_ERROR, + SCTP_SHUTDOWN_GUARD_EXPIRES, + SCTP_PEER_FAULTY, +} sctp_sn_error_t; + +/* + * 7.1.1 Retransmission Timeout Parameters (SCTP_RTOINFO) + * + * The protocol parameters used to initialize and bound retransmission + * timeout (RTO) are tunable. See [SCTP] for more information on how + * these parameters are used in RTO calculation. + */ +struct sctp_rtoinfo { + sctp_assoc_t srto_assoc_id; + __u32 srto_initial; + __u32 srto_max; + __u32 srto_min; +}; + +/* + * 7.1.2 Association Parameters (SCTP_ASSOCINFO) + * + * This option is used to both examine and set various association and + * endpoint parameters. + */ +struct sctp_assocparams { + sctp_assoc_t sasoc_assoc_id; + __u16 sasoc_asocmaxrxt; + __u16 sasoc_number_peer_destinations; + __u32 sasoc_peer_rwnd; + __u32 sasoc_local_rwnd; + __u32 sasoc_cookie_life; +}; + +/* + * 7.1.9 Set Peer Primary Address (SCTP_SET_PEER_PRIMARY_ADDR) + * + * Requests that the peer mark the enclosed address as the association + * primary. The enclosed address must be one of the association's + * locally bound addresses. The following structure is used to make a + * set primary request: + */ +struct sctp_setpeerprim { + sctp_assoc_t sspp_assoc_id; + struct sockaddr_storage sspp_addr; +} __attribute__((packed, aligned(4))); + +/* + * 7.1.10 Set Primary Address (SCTP_PRIMARY_ADDR) + * + * Requests that the local SCTP stack use the enclosed peer address as + * the association primary. The enclosed address must be one of the + * association peer's addresses. The following structure is used to + * make a set peer primary request: + */ +struct sctp_prim { + sctp_assoc_t ssp_assoc_id; + struct sockaddr_storage ssp_addr; +} __attribute__((packed, aligned(4))); + +/* For backward compatibility use, define the old name too */ +#define sctp_setprim sctp_prim + +/* + * 7.1.11 Set Adaptation Layer Indicator (SCTP_ADAPTATION_LAYER) + * + * Requests that the local endpoint set the specified Adaptation Layer + * Indication parameter for all future INIT and INIT-ACK exchanges. + */ +struct sctp_setadaptation { + __u32 ssb_adaptation_ind; +}; + +/* + * 7.1.13 Peer Address Parameters (SCTP_PEER_ADDR_PARAMS) + * + * Applications can enable or disable heartbeats for any peer address + * of an association, modify an address's heartbeat interval, force a + * heartbeat to be sent immediately, and adjust the address's maximum + * number of retransmissions sent before an address is considered + * unreachable. The following structure is used to access and modify an + * address's parameters: + */ +enum sctp_spp_flags { + SPP_HB_ENABLE = 1<<0, /*Enable heartbeats*/ + SPP_HB_DISABLE = 1<<1, /*Disable heartbeats*/ + SPP_HB = SPP_HB_ENABLE | SPP_HB_DISABLE, + SPP_HB_DEMAND = 1<<2, /*Send heartbeat immediately*/ + SPP_PMTUD_ENABLE = 1<<3, /*Enable PMTU discovery*/ + SPP_PMTUD_DISABLE = 1<<4, /*Disable PMTU discovery*/ + SPP_PMTUD = SPP_PMTUD_ENABLE | SPP_PMTUD_DISABLE, + SPP_SACKDELAY_ENABLE = 1<<5, /*Enable SACK*/ + SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/ + SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE, + SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */ +}; + +struct sctp_paddrparams { + sctp_assoc_t spp_assoc_id; + struct sockaddr_storage spp_address; + __u32 spp_hbinterval; + __u16 spp_pathmaxrxt; + __u32 spp_pathmtu; + __u32 spp_sackdelay; + __u32 spp_flags; +} __attribute__((packed, aligned(4))); + +/* + * 7.1.18. Add a chunk that must be authenticated (SCTP_AUTH_CHUNK) + * + * This set option adds a chunk type that the user is requesting to be + * received only in an authenticated way. Changes to the list of chunks + * will only effect future associations on the socket. + */ +struct sctp_authchunk { + __u8 sauth_chunk; +}; + +/* + * 7.1.19. Get or set the list of supported HMAC Identifiers (SCTP_HMAC_IDENT) + * + * This option gets or sets the list of HMAC algorithms that the local + * endpoint requires the peer to use. + */ +/* This here is only used by user space as is. It might not be a good idea + * to export/reveal the whole structure with reserved fields etc. + */ +enum { + SCTP_AUTH_HMAC_ID_SHA1 = 1, + SCTP_AUTH_HMAC_ID_SHA256 = 3, +}; + +struct sctp_hmacalgo { + __u32 shmac_num_idents; + __u16 shmac_idents[]; +}; + +/* Sadly, user and kernel space have different names for + * this structure member, so this is to not break anything. + */ +#define shmac_number_of_idents shmac_num_idents + +/* + * 7.1.20. Set a shared key (SCTP_AUTH_KEY) + * + * This option will set a shared secret key which is used to build an + * association shared key. + */ +struct sctp_authkey { + sctp_assoc_t sca_assoc_id; + __u16 sca_keynumber; + __u16 sca_keylength; + __u8 sca_key[]; +}; + +/* + * 7.1.21. Get or set the active shared key (SCTP_AUTH_ACTIVE_KEY) + * + * This option will get or set the active shared key to be used to build + * the association shared key. + */ + +struct sctp_authkeyid { + sctp_assoc_t scact_assoc_id; + __u16 scact_keynumber; +}; + + +/* + * 7.1.23. Get or set delayed ack timer (SCTP_DELAYED_SACK) + * + * This option will effect the way delayed acks are performed. This + * option allows you to get or set the delayed ack time, in + * milliseconds. It also allows changing the delayed ack frequency. + * Changing the frequency to 1 disables the delayed sack algorithm. If + * the assoc_id is 0, then this sets or gets the endpoints default + * values. If the assoc_id field is non-zero, then the set or get + * effects the specified association for the one to many model (the + * assoc_id field is ignored by the one to one model). Note that if + * sack_delay or sack_freq are 0 when setting this option, then the + * current values will remain unchanged. + */ +struct sctp_sack_info { + sctp_assoc_t sack_assoc_id; + uint32_t sack_delay; + uint32_t sack_freq; +}; + +struct sctp_assoc_value { + sctp_assoc_t assoc_id; + uint32_t assoc_value; +}; + +/* + * 7.2.2 Peer Address Information + * + * Applications can retrieve information about a specific peer address + * of an association, including its reachability state, congestion + * window, and retransmission timer values. This information is + * read-only. The following structure is used to access this + * information: + */ +struct sctp_paddrinfo { + sctp_assoc_t spinfo_assoc_id; + struct sockaddr_storage spinfo_address; + __s32 spinfo_state; + __u32 spinfo_cwnd; + __u32 spinfo_srtt; + __u32 spinfo_rto; + __u32 spinfo_mtu; +} __attribute__((packed, aligned(4))); + +/* Peer addresses's state. */ +/* UNKNOWN: Peer address passed by the upper layer in sendmsg or connect[x] + * calls. + * UNCONFIRMED: Peer address received in INIT/INIT-ACK address parameters. + * Not yet confirmed by a heartbeat and not available for data + * transfers. + * ACTIVE : Peer address confirmed, active and available for data transfers. + * INACTIVE: Peer address inactive and not available for data transfers. + */ +enum sctp_spinfo_state { + SCTP_INACTIVE, + SCTP_PF, + SCTP_ACTIVE, + SCTP_UNCONFIRMED, + SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */ +}; + +/* + * 7.2.1 Association Status (SCTP_STATUS) + * + * Applications can retrieve current status information about an + * association, including association state, peer receiver window size, + * number of unacked data chunks, and number of data chunks pending + * receipt. This information is read-only. The following structure is + * used to access this information: + */ +struct sctp_status { + sctp_assoc_t sstat_assoc_id; + __s32 sstat_state; + __u32 sstat_rwnd; + __u16 sstat_unackdata; + __u16 sstat_penddata; + __u16 sstat_instrms; + __u16 sstat_outstrms; + __u32 sstat_fragmentation_point; + struct sctp_paddrinfo sstat_primary; +}; + +/* + * 7.2.3. Get the list of chunks the peer requires to be authenticated + * (SCTP_PEER_AUTH_CHUNKS) + * + * This option gets a list of chunks for a specified association that + * the peer requires to be received authenticated only. + */ +struct sctp_authchunks { + sctp_assoc_t gauth_assoc_id; + __u32 gauth_number_of_chunks; + uint8_t gauth_chunks[]; +}; + +/* The broken spelling has been released already in lksctp-tools header, + * so don't break anyone, now that it's fixed. + */ +#define guth_number_of_chunks gauth_number_of_chunks + +/* Association states. */ +enum sctp_sstat_state { + SCTP_EMPTY = 0, + SCTP_CLOSED = 1, + SCTP_COOKIE_WAIT = 2, + SCTP_COOKIE_ECHOED = 3, + SCTP_ESTABLISHED = 4, + SCTP_SHUTDOWN_PENDING = 5, + SCTP_SHUTDOWN_SENT = 6, + SCTP_SHUTDOWN_RECEIVED = 7, + SCTP_SHUTDOWN_ACK_SENT = 8, +}; + +/* + * 8.2.6. Get the Current Identifiers of Associations + * (SCTP_GET_ASSOC_ID_LIST) + * + * This option gets the current list of SCTP association identifiers of + * the SCTP associations handled by a one-to-many style socket. + */ +struct sctp_assoc_ids { + __u32 gaids_number_of_ids; + sctp_assoc_t gaids_assoc_id[]; +}; + +/* + * 8.3, 8.5 get all peer/local addresses in an association. + * This parameter struct is used by SCTP_GET_PEER_ADDRS and + * SCTP_GET_LOCAL_ADDRS socket options used internally to implement + * sctp_getpaddrs() and sctp_getladdrs() API. + */ +struct sctp_getaddrs_old { + sctp_assoc_t assoc_id; + int addr_num; + struct sockaddr *addrs; +}; + +struct sctp_getaddrs { + sctp_assoc_t assoc_id; /*input*/ + __u32 addr_num; /*output*/ + __u8 addrs[0]; /*output, variable size*/ +}; + +/* A socket user request obtained via SCTP_GET_ASSOC_STATS that retrieves + * association stats. All stats are counts except sas_maxrto and + * sas_obs_rto_ipaddr. maxrto is the max observed rto + transport since + * the last call. Will return 0 when RTO was not update since last call + */ +struct sctp_assoc_stats { + sctp_assoc_t sas_assoc_id; /* Input */ + /* Transport of observed max RTO */ + struct sockaddr_storage sas_obs_rto_ipaddr; + __u64 sas_maxrto; /* Maximum Observed RTO for period */ + __u64 sas_isacks; /* SACKs received */ + __u64 sas_osacks; /* SACKs sent */ + __u64 sas_opackets; /* Packets sent */ + __u64 sas_ipackets; /* Packets received */ + __u64 sas_rtxchunks; /* Retransmitted Chunks */ + __u64 sas_outofseqtsns;/* TSN received > next expected */ + __u64 sas_idupchunks; /* Dups received (ordered+unordered) */ + __u64 sas_gapcnt; /* Gap Acknowledgements Received */ + __u64 sas_ouodchunks; /* Unordered data chunks sent */ + __u64 sas_iuodchunks; /* Unordered data chunks received */ + __u64 sas_oodchunks; /* Ordered data chunks sent */ + __u64 sas_iodchunks; /* Ordered data chunks received */ + __u64 sas_octrlchunks; /* Control chunks sent */ + __u64 sas_ictrlchunks; /* Control chunks received */ +}; + +/* These are bit fields for msghdr->msg_flags. See section 5.1. */ +/* On user space Linux, these live in as an enum. */ +enum sctp_msg_flags { + MSG_NOTIFICATION = 0x8000, +#define MSG_NOTIFICATION MSG_NOTIFICATION +}; + +/* + * 8.1 sctp_bindx() + * + * The flags parameter is formed from the bitwise OR of zero or more of the + * following currently defined flags: + */ +#define SCTP_BINDX_ADD_ADDR 0x01 +#define SCTP_BINDX_REM_ADDR 0x02 + +/* This is the structure that is passed as an argument(optval) to + * getsockopt(SCTP_SOCKOPT_PEELOFF). + */ +typedef struct { + sctp_assoc_t associd; + int sd; +} sctp_peeloff_arg_t; + +/* + * Peer Address Thresholds socket option + */ +struct sctp_paddrthlds { + sctp_assoc_t spt_assoc_id; + struct sockaddr_storage spt_address; + __u16 spt_pathmaxrxt; + __u16 spt_pathpfthld; +}; + +#endif /* _SCTP_H */ diff --git a/kernel_headers/linux/sdla.h b/kernel_headers/linux/sdla.h new file mode 100644 index 0000000..0760ba4 --- /dev/null +++ b/kernel_headers/linux/sdla.h @@ -0,0 +1,116 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the Frame relay interface. + * + * Version: @(#)if_ifrad.h 0.20 13 Apr 96 + * + * Author: Mike McLagan + * + * Changes: + * 0.15 Mike McLagan Structure packing + * + * 0.20 Mike McLagan New flags for S508 buffer handling + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef SDLA_H +#define SDLA_H + +/* adapter type */ +#define SDLA_TYPES +#define SDLA_S502A 5020 +#define SDLA_S502E 5021 +#define SDLA_S503 5030 +#define SDLA_S507 5070 +#define SDLA_S508 5080 +#define SDLA_S509 5090 +#define SDLA_UNKNOWN -1 + +/* port selection flags for the S508 */ +#define SDLA_S508_PORT_V35 0x00 +#define SDLA_S508_PORT_RS232 0x02 + +/* Z80 CPU speeds */ +#define SDLA_CPU_3M 0x00 +#define SDLA_CPU_5M 0x01 +#define SDLA_CPU_7M 0x02 +#define SDLA_CPU_8M 0x03 +#define SDLA_CPU_10M 0x04 +#define SDLA_CPU_16M 0x05 +#define SDLA_CPU_12M 0x06 + +/* some private IOCTLs */ +#define SDLA_IDENTIFY (FRAD_LAST_IOCTL + 1) +#define SDLA_CPUSPEED (FRAD_LAST_IOCTL + 2) +#define SDLA_PROTOCOL (FRAD_LAST_IOCTL + 3) + +#define SDLA_CLEARMEM (FRAD_LAST_IOCTL + 4) +#define SDLA_WRITEMEM (FRAD_LAST_IOCTL + 5) +#define SDLA_READMEM (FRAD_LAST_IOCTL + 6) + +struct sdla_mem { + int addr; + int len; + void *data; +}; + +#define SDLA_START (FRAD_LAST_IOCTL + 7) +#define SDLA_STOP (FRAD_LAST_IOCTL + 8) + +/* some offsets in the Z80's memory space */ +#define SDLA_NMIADDR 0x0000 +#define SDLA_CONF_ADDR 0x0010 +#define SDLA_S502A_NMIADDR 0x0066 +#define SDLA_CODE_BASEADDR 0x0100 +#define SDLA_WINDOW_SIZE 0x2000 +#define SDLA_ADDR_MASK 0x1FFF + +/* largest handleable block of data */ +#define SDLA_MAX_DATA 4080 +#define SDLA_MAX_MTU 4072 /* MAX_DATA - sizeof(fradhdr) */ +#define SDLA_MAX_DLCI 24 + +/* this should be the same as frad_conf */ +struct sdla_conf { + short station; + short config; + short kbaud; + short clocking; + short max_frm; + short T391; + short T392; + short N391; + short N392; + short N393; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; +}; + +/* this should be the same as dlci_conf */ +struct sdla_dlci_conf { + short config; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; + short Tc_fwd; + short Tc_bwd; + short Tf_max; + short Tb_max; +}; + + +#endif /* SDLA_H */ diff --git a/kernel_headers/linux/seccomp.h b/kernel_headers/linux/seccomp.h new file mode 100644 index 0000000..9c03683 --- /dev/null +++ b/kernel_headers/linux/seccomp.h @@ -0,0 +1,47 @@ +#ifndef _LINUX_SECCOMP_H +#define _LINUX_SECCOMP_H + + +#include + + +/* Valid values for seccomp.mode and prctl(PR_SET_SECCOMP, ) */ +#define SECCOMP_MODE_DISABLED 0 /* seccomp is not in use. */ +#define SECCOMP_MODE_STRICT 1 /* uses hard-coded filter. */ +#define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */ + +/* + * All BPF programs must return a 32-bit value. + * The bottom 16-bits are for optional return data. + * The upper 16-bits are ordered from least permissive values to most. + * + * The ordering ensures that a min_t() over composed return values always + * selects the least permissive choice. + */ +#define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */ +#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ +#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */ +#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */ +#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */ + +/* Masks for the return value sections. */ +#define SECCOMP_RET_ACTION 0x7fff0000U +#define SECCOMP_RET_DATA 0x0000ffffU + +/** + * struct seccomp_data - the format the BPF program executes over. + * @nr: the system call number + * @arch: indicates system call convention as an AUDIT_ARCH_* value + * as defined in . + * @instruction_pointer: at the time of the system call. + * @args: up to 6 system call arguments always stored as 64-bit values + * regardless of the architecture. + */ +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; + +#endif /* _LINUX_SECCOMP_H */ diff --git a/kernel_headers/linux/securebits.h b/kernel_headers/linux/securebits.h new file mode 100644 index 0000000..fa1a9f5 --- /dev/null +++ b/kernel_headers/linux/securebits.h @@ -0,0 +1,51 @@ +#ifndef _LINUX_SECUREBITS_H +#define _LINUX_SECUREBITS_H + +/* Each securesetting is implemented using two bits. One bit specifies + whether the setting is on or off. The other bit specify whether the + setting is locked or not. A setting which is locked cannot be + changed from user-level. */ +#define issecure_mask(X) (1 << (X)) + +#define SECUREBITS_DEFAULT 0x00000000 + +/* When set UID 0 has no special privileges. When unset, we support + inheritance of root-permissions and suid-root executable under + compatibility mode. We raise the effective and inheritable bitmasks + *of the executable file* if the effective uid of the new process is + 0. If the real uid is 0, we raise the effective (legacy) bit of the + executable file. */ +#define SECURE_NOROOT 0 +#define SECURE_NOROOT_LOCKED 1 /* make bit-0 immutable */ + +#define SECBIT_NOROOT (issecure_mask(SECURE_NOROOT)) +#define SECBIT_NOROOT_LOCKED (issecure_mask(SECURE_NOROOT_LOCKED)) + +/* When set, setuid to/from uid 0 does not trigger capability-"fixup". + When unset, to provide compatiblility with old programs relying on + set*uid to gain/lose privilege, transitions to/from uid 0 cause + capabilities to be gained/lost. */ +#define SECURE_NO_SETUID_FIXUP 2 +#define SECURE_NO_SETUID_FIXUP_LOCKED 3 /* make bit-2 immutable */ + +#define SECBIT_NO_SETUID_FIXUP (issecure_mask(SECURE_NO_SETUID_FIXUP)) +#define SECBIT_NO_SETUID_FIXUP_LOCKED \ + (issecure_mask(SECURE_NO_SETUID_FIXUP_LOCKED)) + +/* When set, a process can retain its capabilities even after + transitioning to a non-root user (the set-uid fixup suppressed by + bit 2). Bit-4 is cleared when a process calls exec(); setting both + bit 4 and 5 will create a barrier through exec that no exec()'d + child can use this feature again. */ +#define SECURE_KEEP_CAPS 4 +#define SECURE_KEEP_CAPS_LOCKED 5 /* make bit-4 immutable */ + +#define SECBIT_KEEP_CAPS (issecure_mask(SECURE_KEEP_CAPS)) +#define SECBIT_KEEP_CAPS_LOCKED (issecure_mask(SECURE_KEEP_CAPS_LOCKED)) + +#define SECURE_ALL_BITS (issecure_mask(SECURE_NOROOT) | \ + issecure_mask(SECURE_NO_SETUID_FIXUP) | \ + issecure_mask(SECURE_KEEP_CAPS)) +#define SECURE_ALL_LOCKS (SECURE_ALL_BITS << 1) + +#endif /* _LINUX_SECUREBITS_H */ diff --git a/kernel_headers/linux/selinux_netlink.h b/kernel_headers/linux/selinux_netlink.h new file mode 100644 index 0000000..7a9bf6a --- /dev/null +++ b/kernel_headers/linux/selinux_netlink.h @@ -0,0 +1,48 @@ +/* + * Netlink event notifications for SELinux. + * + * Author: James Morris + * + * Copyright (C) 2004 Red Hat, Inc., James Morris + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + */ +#ifndef _LINUX_SELINUX_NETLINK_H +#define _LINUX_SELINUX_NETLINK_H + +#include + +/* Message types. */ +#define SELNL_MSG_BASE 0x10 +enum { + SELNL_MSG_SETENFORCE = SELNL_MSG_BASE, + SELNL_MSG_POLICYLOAD, + SELNL_MSG_MAX +}; + +/* Multicast groups - backwards compatiblility for userspace */ +#define SELNL_GRP_NONE 0x00000000 +#define SELNL_GRP_AVC 0x00000001 /* AVC notifications */ +#define SELNL_GRP_ALL 0xffffffff + +enum selinux_nlgroups { + SELNLGRP_NONE, +#define SELNLGRP_NONE SELNLGRP_NONE + SELNLGRP_AVC, +#define SELNLGRP_AVC SELNLGRP_AVC + __SELNLGRP_MAX +}; +#define SELNLGRP_MAX (__SELNLGRP_MAX - 1) + +/* Message structures */ +struct selnl_msg_setenforce { + __s32 val; +}; + +struct selnl_msg_policyload { + __u32 seqno; +}; + +#endif /* _LINUX_SELINUX_NETLINK_H */ diff --git a/kernel_headers/linux/sem.h b/kernel_headers/linux/sem.h new file mode 100644 index 0000000..9f1974c --- /dev/null +++ b/kernel_headers/linux/sem.h @@ -0,0 +1,80 @@ +#ifndef _LINUX_SEM_H +#define _LINUX_SEM_H + +#include + +/* semop flags */ +#define SEM_UNDO 0x1000 /* undo the operation on exit */ + +/* semctl Command Definitions. */ +#define GETPID 11 /* get sempid */ +#define GETVAL 12 /* get semval */ +#define GETALL 13 /* get all semval's */ +#define GETNCNT 14 /* get semncnt */ +#define GETZCNT 15 /* get semzcnt */ +#define SETVAL 16 /* set semval */ +#define SETALL 17 /* set all semval's */ + +/* ipcs ctl cmds */ +#define SEM_STAT 18 +#define SEM_INFO 19 + +/* Obsolete, used only for backwards compatibility and libc5 compiles */ +struct semid_ds { + struct ipc_perm sem_perm; /* permissions .. see ipc.h */ + __kernel_time_t sem_otime; /* last semop time */ + __kernel_time_t sem_ctime; /* last change time */ + struct sem *sem_base; /* ptr to first semaphore in array */ + struct sem_queue *sem_pending; /* pending operations to be processed */ + struct sem_queue **sem_pending_last; /* last pending operation */ + struct sem_undo *undo; /* undo requests on this array */ + unsigned short sem_nsems; /* no. of semaphores in array */ +}; + +/* Include the definition of semid64_ds */ +#include + +/* semop system calls takes an array of these. */ +struct sembuf { + unsigned short sem_num; /* semaphore index in array */ + short sem_op; /* semaphore operation */ + short sem_flg; /* operation flags */ +}; + +/* arg for semctl system calls. */ +union semun { + int val; /* value for SETVAL */ + struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ + unsigned short *array; /* array for GETALL & SETALL */ + struct seminfo *__buf; /* buffer for IPC_INFO */ + void *__pad; +}; + +struct seminfo { + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; +}; + +#define SEMMNI 128 /* <= IPCMNI max # of semaphore identifiers */ +#define SEMMSL 250 /* <= 8 000 max num of semaphores per id */ +#define SEMMNS (SEMMNI*SEMMSL) /* <= INT_MAX max # of semaphores in system */ +#define SEMOPM 32 /* <= 1 000 max num of ops per semop call */ +#define SEMVMX 32767 /* <= 32767 semaphore maximum value */ +#define SEMAEM SEMVMX /* adjust on exit max value */ + +/* unused */ +#define SEMUME SEMOPM /* max num of undo entries per process */ +#define SEMMNU SEMMNS /* num of undo structures system wide */ +#define SEMMAP SEMMNS /* # of entries in semaphore map */ +#define SEMUSZ 20 /* sizeof struct sem_undo */ + + +#endif /* _LINUX_SEM_H */ diff --git a/kernel_headers/linux/serial.h b/kernel_headers/linux/serial.h new file mode 100644 index 0000000..4d04115 --- /dev/null +++ b/kernel_headers/linux/serial.h @@ -0,0 +1,126 @@ +/* + * include/linux/serial.h + * + * Copyright (C) 1992 by Theodore Ts'o. + * + * Redistribution of this file is permitted under the terms of the GNU + * Public License (GPL) + */ + +#ifndef _LINUX_SERIAL_H +#define _LINUX_SERIAL_H + +#include + +#include + + +struct serial_struct { + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + unsigned short close_delay; + char io_type; + char reserved_char[1]; + int hub6; + unsigned short closing_wait; /* time to wait before closing */ + unsigned short closing_wait2; /* no longer used... */ + unsigned char *iomem_base; + unsigned short iomem_reg_shift; + unsigned int port_high; + unsigned long iomap_base; /* cookie passed into ioremap */ +}; + +/* + * For the close wait times, 0 means wait forever for serial port to + * flush its output. 65535 means don't wait at all. + */ +#define ASYNC_CLOSING_WAIT_INF 0 +#define ASYNC_CLOSING_WAIT_NONE 65535 + +/* + * These are the supported serial types. + */ +#define PORT_UNKNOWN 0 +#define PORT_8250 1 +#define PORT_16450 2 +#define PORT_16550 3 +#define PORT_16550A 4 +#define PORT_CIRRUS 5 /* usurped by cyclades.c */ +#define PORT_16650 6 +#define PORT_16650V2 7 +#define PORT_16750 8 +#define PORT_STARTECH 9 /* usurped by cyclades.c */ +#define PORT_16C950 10 /* Oxford Semiconductor */ +#define PORT_16654 11 +#define PORT_16850 12 +#define PORT_RSA 13 /* RSA-DV II/S card */ +#define PORT_MAX 13 + +#define SERIAL_IO_PORT 0 +#define SERIAL_IO_HUB6 1 +#define SERIAL_IO_MEM 2 + +#define UART_CLEAR_FIFO 0x01 +#define UART_USE_FIFO 0x02 +#define UART_STARTECH 0x04 +#define UART_NATSEMI 0x08 + + +/* + * Multiport serial configuration structure --- external structure + */ +struct serial_multiport_struct { + int irq; + int port1; + unsigned char mask1, match1; + int port2; + unsigned char mask2, match2; + int port3; + unsigned char mask3, match3; + int port4; + unsigned char mask4, match4; + int port_monitor; + int reserved[32]; +}; + +/* + * Serial input interrupt line counters -- external structure + * Four lines can interrupt: CTS, DSR, RI, DCD + */ +struct serial_icounter_struct { + int cts, dsr, rng, dcd; + int rx, tx; + int frame, overrun, parity, brk; + int buf_overrun; + int reserved[9]; +}; + +/* + * Serial interface for controlling RS485 settings on chips with suitable + * support. Set with TIOCSRS485 and get with TIOCGRS485 if supported by your + * platform. The set function returns the new state, with any unsupported bits + * reverted appropriately. + */ + +struct serial_rs485 { + __u32 flags; /* RS485 feature flags */ +#define SER_RS485_ENABLED (1 << 0) /* If enabled */ +#define SER_RS485_RTS_ON_SEND (1 << 1) /* Logical level for + RTS pin when + sending */ +#define SER_RS485_RTS_AFTER_SEND (1 << 2) /* Logical level for + RTS pin after sent*/ +#define SER_RS485_RX_DURING_TX (1 << 4) + __u32 delay_rts_before_send; /* Delay before send (milliseconds) */ + __u32 delay_rts_after_send; /* Delay after send (milliseconds) */ + __u32 padding[5]; /* Memory is cheap, new structs + are a royal PITA .. */ +}; + +#endif /* _LINUX_SERIAL_H */ diff --git a/kernel_headers/linux/serial_core.h b/kernel_headers/linux/serial_core.h new file mode 100644 index 0000000..bb8aa75 --- /dev/null +++ b/kernel_headers/linux/serial_core.h @@ -0,0 +1,229 @@ +/* + * linux/drivers/char/serial_core.h + * + * Copyright (C) 2000 Deep Blue Solutions Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#ifndef LINUX_SERIAL_CORE_H +#define LINUX_SERIAL_CORE_H + +#include + +/* + * The type definitions. These are from Ted Ts'o's serial.h + */ +#define PORT_UNKNOWN 0 +#define PORT_8250 1 +#define PORT_16450 2 +#define PORT_16550 3 +#define PORT_16550A 4 +#define PORT_CIRRUS 5 +#define PORT_16650 6 +#define PORT_16650V2 7 +#define PORT_16750 8 +#define PORT_STARTECH 9 +#define PORT_16C950 10 +#define PORT_16654 11 +#define PORT_16850 12 +#define PORT_RSA 13 +#define PORT_NS16550A 14 +#define PORT_XSCALE 15 +#define PORT_RM9000 16 /* PMC-Sierra RM9xxx internal UART */ +#define PORT_OCTEON 17 /* Cavium OCTEON internal UART */ +#define PORT_AR7 18 /* Texas Instruments AR7 internal UART */ +#define PORT_U6_16550A 19 /* ST-Ericsson U6xxx internal UART */ +#define PORT_TEGRA 20 /* NVIDIA Tegra internal UART */ +#define PORT_XR17D15X 21 /* Exar XR17D15x UART */ +#define PORT_LPC3220 22 /* NXP LPC32xx SoC "Standard" UART */ +#define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */ +#define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */ +#define PORT_BRCM_TRUMANAGE 25 +#define PORT_ALTR_16550_F32 26 /* Altera 16550 UART with 32 FIFOs */ +#define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */ +#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ +#define PORT_MAX_8250 28 /* max port ID */ + +/* + * ARM specific type numbers. These are not currently guaranteed + * to be implemented, and will change in the future. These are + * separate so any additions to the old serial.c that occur before + * we are merged can be easily merged here. + */ +#define PORT_PXA 31 +#define PORT_AMBA 32 +#define PORT_CLPS711X 33 +#define PORT_SA1100 34 +#define PORT_UART00 35 +#define PORT_21285 37 + +/* Sparc type numbers. */ +#define PORT_SUNZILOG 38 +#define PORT_SUNSAB 39 + +/* DEC */ +#define PORT_DZ 46 +#define PORT_ZS 47 + +/* Parisc type numbers. */ +#define PORT_MUX 48 + +/* Atmel AT91 / AT32 SoC */ +#define PORT_ATMEL 49 + +/* Macintosh Zilog type numbers */ +#define PORT_MAC_ZILOG 50 /* m68k : not yet implemented */ +#define PORT_PMAC_ZILOG 51 + +/* SH-SCI */ +#define PORT_SCI 52 +#define PORT_SCIF 53 +#define PORT_IRDA 54 + +/* Samsung S3C2410 SoC and derivatives thereof */ +#define PORT_S3C2410 55 + +/* SGI IP22 aka Indy / Challenge S / Indigo 2 */ +#define PORT_IP22ZILOG 56 + +/* Sharp LH7a40x -- an ARM9 SoC series */ +#define PORT_LH7A40X 57 + +/* PPC CPM type number */ +#define PORT_CPM 58 + +/* MPC52xx (and MPC512x) type numbers */ +#define PORT_MPC52xx 59 + +/* IBM icom */ +#define PORT_ICOM 60 + +/* Samsung S3C2440 SoC */ +#define PORT_S3C2440 61 + +/* Motorola i.MX SoC */ +#define PORT_IMX 62 + +/* Marvell MPSC */ +#define PORT_MPSC 63 + +/* TXX9 type number */ +#define PORT_TXX9 64 + +/* NEC VR4100 series SIU/DSIU */ +#define PORT_VR41XX_SIU 65 +#define PORT_VR41XX_DSIU 66 + +/* Samsung S3C2400 SoC */ +#define PORT_S3C2400 67 + +/* M32R SIO */ +#define PORT_M32R_SIO 68 + +/*Digi jsm */ +#define PORT_JSM 69 + +#define PORT_PNX8XXX 70 + +/* Hilscher netx */ +#define PORT_NETX 71 + +/* SUN4V Hypervisor Console */ +#define PORT_SUNHV 72 + +#define PORT_S3C2412 73 + +/* Xilinx uartlite */ +#define PORT_UARTLITE 74 + +/* Blackfin bf5xx */ +#define PORT_BFIN 75 + +/* Micrel KS8695 */ +#define PORT_KS8695 76 + +/* Broadcom SB1250, etc. SOC */ +#define PORT_SB1250_DUART 77 + +/* Freescale ColdFire */ +#define PORT_MCF 78 + +/* Blackfin SPORT */ +#define PORT_BFIN_SPORT 79 + +/* MN10300 on-chip UART numbers */ +#define PORT_MN10300 80 +#define PORT_MN10300_CTS 81 + +#define PORT_SC26XX 82 + +/* SH-SCI */ +#define PORT_SCIFA 83 + +#define PORT_S3C6400 84 + +/* NWPSERIAL */ +#define PORT_NWPSERIAL 85 + +/* MAX3100 */ +#define PORT_MAX3100 86 + +/* Timberdale UART */ +#define PORT_TIMBUART 87 + +/* Qualcomm MSM SoCs */ +#define PORT_MSM 88 + +/* BCM63xx family SoCs */ +#define PORT_BCM63XX 89 + +/* Aeroflex Gaisler GRLIB APBUART */ +#define PORT_APBUART 90 + +/* Altera UARTs */ +#define PORT_ALTERA_JTAGUART 91 +#define PORT_ALTERA_UART 92 + +/* SH-SCI */ +#define PORT_SCIFB 93 + +/* MAX310X */ +#define PORT_MAX310X 94 + +/* High Speed UART for Medfield */ +#define PORT_MFD 95 + +/* TI OMAP-UART */ +#define PORT_OMAP 96 + +/* VIA VT8500 SoC */ +#define PORT_VT8500 97 + +/* Xilinx PSS UART */ +#define PORT_XUARTPS 98 + +/* Atheros AR933X SoC */ +#define PORT_AR933X 99 + +/* Energy Micro efm32 SoC */ +#define PORT_EFMUART 100 + +/* ARC (Synopsys) on-chip UART */ +#define PORT_ARC 101 + +/* Rocketport EXPRESS/INFINITY */ +#define PORT_RP2 102 + +#endif /* LINUX_SERIAL_CORE_H */ diff --git a/kernel_headers/linux/serial_reg.h b/kernel_headers/linux/serial_reg.h new file mode 100644 index 0000000..e632260 --- /dev/null +++ b/kernel_headers/linux/serial_reg.h @@ -0,0 +1,389 @@ +/* + * include/linux/serial_reg.h + * + * Copyright (C) 1992, 1994 by Theodore Ts'o. + * + * Redistribution of this file is permitted under the terms of the GNU + * Public License (GPL) + * + * These are the UART port assignments, expressed as offsets from the base + * register. These assignments should hold for any serial port based on + * a 8250, 16450, or 16550(A). + */ + +#ifndef _LINUX_SERIAL_REG_H +#define _LINUX_SERIAL_REG_H + +/* + * DLAB=0 + */ +#define UART_RX 0 /* In: Receive buffer */ +#define UART_TX 0 /* Out: Transmit buffer */ + +#define UART_IER 1 /* Out: Interrupt Enable Register */ +#define UART_IER_MSI 0x08 /* Enable Modem status interrupt */ +#define UART_IER_RLSI 0x04 /* Enable receiver line status interrupt */ +#define UART_IER_THRI 0x02 /* Enable Transmitter holding register int. */ +#define UART_IER_RDI 0x01 /* Enable receiver data interrupt */ +/* + * Sleep mode for ST16650 and TI16750. For the ST16650, EFR[4]=1 + */ +#define UART_IERX_SLEEP 0x10 /* Enable sleep mode */ + +#define UART_IIR 2 /* In: Interrupt ID Register */ +#define UART_IIR_NO_INT 0x01 /* No interrupts pending */ +#define UART_IIR_ID 0x06 /* Mask for the interrupt ID */ +#define UART_IIR_MSI 0x00 /* Modem status interrupt */ +#define UART_IIR_THRI 0x02 /* Transmitter holding register empty */ +#define UART_IIR_RDI 0x04 /* Receiver data interrupt */ +#define UART_IIR_RLSI 0x06 /* Receiver line status interrupt */ + +#define UART_IIR_BUSY 0x07 /* DesignWare APB Busy Detect */ + +#define UART_IIR_RX_TIMEOUT 0x0c /* OMAP RX Timeout interrupt */ +#define UART_IIR_XOFF 0x10 /* OMAP XOFF/Special Character */ +#define UART_IIR_CTS_RTS_DSR 0x20 /* OMAP CTS/RTS/DSR Change */ + +#define UART_FCR 2 /* Out: FIFO Control Register */ +#define UART_FCR_ENABLE_FIFO 0x01 /* Enable the FIFO */ +#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */ +#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */ +#define UART_FCR_DMA_SELECT 0x08 /* For DMA applications */ +/* + * Note: The FIFO trigger levels are chip specific: + * RX:76 = 00 01 10 11 TX:54 = 00 01 10 11 + * PC16550D: 1 4 8 14 xx xx xx xx + * TI16C550A: 1 4 8 14 xx xx xx xx + * TI16C550C: 1 4 8 14 xx xx xx xx + * ST16C550: 1 4 8 14 xx xx xx xx + * ST16C650: 8 16 24 28 16 8 24 30 PORT_16650V2 + * NS16C552: 1 4 8 14 xx xx xx xx + * ST16C654: 8 16 56 60 8 16 32 56 PORT_16654 + * TI16C750: 1 16 32 56 xx xx xx xx PORT_16750 + * TI16C752: 8 16 56 60 8 16 32 56 + * Tegra: 1 4 8 14 16 8 4 1 PORT_TEGRA + */ +#define UART_FCR_R_TRIG_00 0x00 +#define UART_FCR_R_TRIG_01 0x40 +#define UART_FCR_R_TRIG_10 0x80 +#define UART_FCR_R_TRIG_11 0xc0 +#define UART_FCR_T_TRIG_00 0x00 +#define UART_FCR_T_TRIG_01 0x10 +#define UART_FCR_T_TRIG_10 0x20 +#define UART_FCR_T_TRIG_11 0x30 + +#define UART_FCR_TRIGGER_MASK 0xC0 /* Mask for the FIFO trigger range */ +#define UART_FCR_TRIGGER_1 0x00 /* Mask for trigger set at 1 */ +#define UART_FCR_TRIGGER_4 0x40 /* Mask for trigger set at 4 */ +#define UART_FCR_TRIGGER_8 0x80 /* Mask for trigger set at 8 */ +#define UART_FCR_TRIGGER_14 0xC0 /* Mask for trigger set at 14 */ +/* 16650 definitions */ +#define UART_FCR6_R_TRIGGER_8 0x00 /* Mask for receive trigger set at 1 */ +#define UART_FCR6_R_TRIGGER_16 0x40 /* Mask for receive trigger set at 4 */ +#define UART_FCR6_R_TRIGGER_24 0x80 /* Mask for receive trigger set at 8 */ +#define UART_FCR6_R_TRIGGER_28 0xC0 /* Mask for receive trigger set at 14 */ +#define UART_FCR6_T_TRIGGER_16 0x00 /* Mask for transmit trigger set at 16 */ +#define UART_FCR6_T_TRIGGER_8 0x10 /* Mask for transmit trigger set at 8 */ +#define UART_FCR6_T_TRIGGER_24 0x20 /* Mask for transmit trigger set at 24 */ +#define UART_FCR6_T_TRIGGER_30 0x30 /* Mask for transmit trigger set at 30 */ +#define UART_FCR7_64BYTE 0x20 /* Go into 64 byte mode (TI16C750) */ + +#define UART_LCR 3 /* Out: Line Control Register */ +/* + * Note: if the word length is 5 bits (UART_LCR_WLEN5), then setting + * UART_LCR_STOP will select 1.5 stop bits, not 2 stop bits. + */ +#define UART_LCR_DLAB 0x80 /* Divisor latch access bit */ +#define UART_LCR_SBC 0x40 /* Set break control */ +#define UART_LCR_SPAR 0x20 /* Stick parity (?) */ +#define UART_LCR_EPAR 0x10 /* Even parity select */ +#define UART_LCR_PARITY 0x08 /* Parity Enable */ +#define UART_LCR_STOP 0x04 /* Stop bits: 0=1 bit, 1=2 bits */ +#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */ +#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */ +#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */ +#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */ + +/* + * Access to some registers depends on register access / configuration + * mode. + */ +#define UART_LCR_CONF_MODE_A UART_LCR_DLAB /* Configutation mode A */ +#define UART_LCR_CONF_MODE_B 0xBF /* Configutation mode B */ + +#define UART_MCR 4 /* Out: Modem Control Register */ +#define UART_MCR_CLKSEL 0x80 /* Divide clock by 4 (TI16C752, EFR[4]=1) */ +#define UART_MCR_TCRTLR 0x40 /* Access TCR/TLR (TI16C752, EFR[4]=1) */ +#define UART_MCR_XONANY 0x20 /* Enable Xon Any (TI16C752, EFR[4]=1) */ +#define UART_MCR_AFE 0x20 /* Enable auto-RTS/CTS (TI16C550C/TI16C750) */ +#define UART_MCR_LOOP 0x10 /* Enable loopback test mode */ +#define UART_MCR_OUT2 0x08 /* Out2 complement */ +#define UART_MCR_OUT1 0x04 /* Out1 complement */ +#define UART_MCR_RTS 0x02 /* RTS complement */ +#define UART_MCR_DTR 0x01 /* DTR complement */ + +#define UART_LSR 5 /* In: Line Status Register */ +#define UART_LSR_FIFOE 0x80 /* Fifo error */ +#define UART_LSR_TEMT 0x40 /* Transmitter empty */ +#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */ +#define UART_LSR_BI 0x10 /* Break interrupt indicator */ +#define UART_LSR_FE 0x08 /* Frame error indicator */ +#define UART_LSR_PE 0x04 /* Parity error indicator */ +#define UART_LSR_OE 0x02 /* Overrun error indicator */ +#define UART_LSR_DR 0x01 /* Receiver data ready */ +#define UART_LSR_BRK_ERROR_BITS 0x1E /* BI, FE, PE, OE bits */ + +#define UART_MSR 6 /* In: Modem Status Register */ +#define UART_MSR_DCD 0x80 /* Data Carrier Detect */ +#define UART_MSR_RI 0x40 /* Ring Indicator */ +#define UART_MSR_DSR 0x20 /* Data Set Ready */ +#define UART_MSR_CTS 0x10 /* Clear to Send */ +#define UART_MSR_DDCD 0x08 /* Delta DCD */ +#define UART_MSR_TERI 0x04 /* Trailing edge ring indicator */ +#define UART_MSR_DDSR 0x02 /* Delta DSR */ +#define UART_MSR_DCTS 0x01 /* Delta CTS */ +#define UART_MSR_ANY_DELTA 0x0F /* Any of the delta bits! */ + +#define UART_SCR 7 /* I/O: Scratch Register */ + +/* + * DLAB=1 + */ +#define UART_DLL 0 /* Out: Divisor Latch Low */ +#define UART_DLM 1 /* Out: Divisor Latch High */ + +/* + * LCR=0xBF (or DLAB=1 for 16C660) + */ +#define UART_EFR 2 /* I/O: Extended Features Register */ +#define UART_XR_EFR 9 /* I/O: Extended Features Register (XR17D15x) */ +#define UART_EFR_CTS 0x80 /* CTS flow control */ +#define UART_EFR_RTS 0x40 /* RTS flow control */ +#define UART_EFR_SCD 0x20 /* Special character detect */ +#define UART_EFR_ECB 0x10 /* Enhanced control bit */ +/* + * the low four bits control software flow control + */ + +/* + * LCR=0xBF, TI16C752, ST16650, ST16650A, ST16654 + */ +#define UART_XON1 4 /* I/O: Xon character 1 */ +#define UART_XON2 5 /* I/O: Xon character 2 */ +#define UART_XOFF1 6 /* I/O: Xoff character 1 */ +#define UART_XOFF2 7 /* I/O: Xoff character 2 */ + +/* + * EFR[4]=1 MCR[6]=1, TI16C752 + */ +#define UART_TI752_TCR 6 /* I/O: transmission control register */ +#define UART_TI752_TLR 7 /* I/O: trigger level register */ + +/* + * LCR=0xBF, XR16C85x + */ +#define UART_TRG 0 /* FCTR bit 7 selects Rx or Tx + * In: Fifo count + * Out: Fifo custom trigger levels */ +/* + * These are the definitions for the Programmable Trigger Register + */ +#define UART_TRG_1 0x01 +#define UART_TRG_4 0x04 +#define UART_TRG_8 0x08 +#define UART_TRG_16 0x10 +#define UART_TRG_32 0x20 +#define UART_TRG_64 0x40 +#define UART_TRG_96 0x60 +#define UART_TRG_120 0x78 +#define UART_TRG_128 0x80 + +#define UART_FCTR 1 /* Feature Control Register */ +#define UART_FCTR_RTS_NODELAY 0x00 /* RTS flow control delay */ +#define UART_FCTR_RTS_4DELAY 0x01 +#define UART_FCTR_RTS_6DELAY 0x02 +#define UART_FCTR_RTS_8DELAY 0x03 +#define UART_FCTR_IRDA 0x04 /* IrDa data encode select */ +#define UART_FCTR_TX_INT 0x08 /* Tx interrupt type select */ +#define UART_FCTR_TRGA 0x00 /* Tx/Rx 550 trigger table select */ +#define UART_FCTR_TRGB 0x10 /* Tx/Rx 650 trigger table select */ +#define UART_FCTR_TRGC 0x20 /* Tx/Rx 654 trigger table select */ +#define UART_FCTR_TRGD 0x30 /* Tx/Rx 850 programmable trigger select */ +#define UART_FCTR_SCR_SWAP 0x40 /* Scratch pad register swap */ +#define UART_FCTR_RX 0x00 /* Programmable trigger mode select */ +#define UART_FCTR_TX 0x80 /* Programmable trigger mode select */ + +/* + * LCR=0xBF, FCTR[6]=1 + */ +#define UART_EMSR 7 /* Extended Mode Select Register */ +#define UART_EMSR_FIFO_COUNT 0x01 /* Rx/Tx select */ +#define UART_EMSR_ALT_COUNT 0x02 /* Alternating count select */ + +/* + * The Intel XScale on-chip UARTs define these bits + */ +#define UART_IER_DMAE 0x80 /* DMA Requests Enable */ +#define UART_IER_UUE 0x40 /* UART Unit Enable */ +#define UART_IER_NRZE 0x20 /* NRZ coding Enable */ +#define UART_IER_RTOIE 0x10 /* Receiver Time Out Interrupt Enable */ + +#define UART_IIR_TOD 0x08 /* Character Timeout Indication Detected */ + +#define UART_FCR_PXAR1 0x00 /* receive FIFO threshold = 1 */ +#define UART_FCR_PXAR8 0x40 /* receive FIFO threshold = 8 */ +#define UART_FCR_PXAR16 0x80 /* receive FIFO threshold = 16 */ +#define UART_FCR_PXAR32 0xc0 /* receive FIFO threshold = 32 */ + +/* + * Intel MID on-chip HSU (High Speed UART) defined bits + */ +#define UART_FCR_HSU_64_1B 0x00 /* receive FIFO treshold = 1 */ +#define UART_FCR_HSU_64_16B 0x40 /* receive FIFO treshold = 16 */ +#define UART_FCR_HSU_64_32B 0x80 /* receive FIFO treshold = 32 */ +#define UART_FCR_HSU_64_56B 0xc0 /* receive FIFO treshold = 56 */ + +#define UART_FCR_HSU_16_1B 0x00 /* receive FIFO treshold = 1 */ +#define UART_FCR_HSU_16_4B 0x40 /* receive FIFO treshold = 4 */ +#define UART_FCR_HSU_16_8B 0x80 /* receive FIFO treshold = 8 */ +#define UART_FCR_HSU_16_14B 0xc0 /* receive FIFO treshold = 14 */ + +#define UART_FCR_HSU_64B_FIFO 0x20 /* chose 64 bytes FIFO */ +#define UART_FCR_HSU_16B_FIFO 0x00 /* chose 16 bytes FIFO */ + +#define UART_FCR_HALF_EMPT_TXI 0x00 /* trigger TX_EMPT IRQ for half empty */ +#define UART_FCR_FULL_EMPT_TXI 0x08 /* trigger TX_EMPT IRQ for full empty */ + +/* + * These register definitions are for the 16C950 + */ +#define UART_ASR 0x01 /* Additional Status Register */ +#define UART_RFL 0x03 /* Receiver FIFO level */ +#define UART_TFL 0x04 /* Transmitter FIFO level */ +#define UART_ICR 0x05 /* Index Control Register */ + +/* The 16950 ICR registers */ +#define UART_ACR 0x00 /* Additional Control Register */ +#define UART_CPR 0x01 /* Clock Prescalar Register */ +#define UART_TCR 0x02 /* Times Clock Register */ +#define UART_CKS 0x03 /* Clock Select Register */ +#define UART_TTL 0x04 /* Transmitter Interrupt Trigger Level */ +#define UART_RTL 0x05 /* Receiver Interrupt Trigger Level */ +#define UART_FCL 0x06 /* Flow Control Level Lower */ +#define UART_FCH 0x07 /* Flow Control Level Higher */ +#define UART_ID1 0x08 /* ID #1 */ +#define UART_ID2 0x09 /* ID #2 */ +#define UART_ID3 0x0A /* ID #3 */ +#define UART_REV 0x0B /* Revision */ +#define UART_CSR 0x0C /* Channel Software Reset */ +#define UART_NMR 0x0D /* Nine-bit Mode Register */ +#define UART_CTR 0xFF + +/* + * The 16C950 Additional Control Register + */ +#define UART_ACR_RXDIS 0x01 /* Receiver disable */ +#define UART_ACR_TXDIS 0x02 /* Transmitter disable */ +#define UART_ACR_DSRFC 0x04 /* DSR Flow Control */ +#define UART_ACR_TLENB 0x20 /* 950 trigger levels enable */ +#define UART_ACR_ICRRD 0x40 /* ICR Read enable */ +#define UART_ACR_ASREN 0x80 /* Additional status enable */ + + + +/* + * These definitions are for the RSA-DV II/S card, from + * + * Kiyokazu SUTO + */ + +#define UART_RSA_BASE (-8) + +#define UART_RSA_MSR ((UART_RSA_BASE) + 0) /* I/O: Mode Select Register */ + +#define UART_RSA_MSR_SWAP (1 << 0) /* Swap low/high 8 bytes in I/O port addr */ +#define UART_RSA_MSR_FIFO (1 << 2) /* Enable the external FIFO */ +#define UART_RSA_MSR_FLOW (1 << 3) /* Enable the auto RTS/CTS flow control */ +#define UART_RSA_MSR_ITYP (1 << 4) /* Level (1) / Edge triger (0) */ + +#define UART_RSA_IER ((UART_RSA_BASE) + 1) /* I/O: Interrupt Enable Register */ + +#define UART_RSA_IER_Rx_FIFO_H (1 << 0) /* Enable Rx FIFO half full int. */ +#define UART_RSA_IER_Tx_FIFO_H (1 << 1) /* Enable Tx FIFO half full int. */ +#define UART_RSA_IER_Tx_FIFO_E (1 << 2) /* Enable Tx FIFO empty int. */ +#define UART_RSA_IER_Rx_TOUT (1 << 3) /* Enable char receive timeout int */ +#define UART_RSA_IER_TIMER (1 << 4) /* Enable timer interrupt */ + +#define UART_RSA_SRR ((UART_RSA_BASE) + 2) /* IN: Status Read Register */ + +#define UART_RSA_SRR_Tx_FIFO_NEMP (1 << 0) /* Tx FIFO is not empty (1) */ +#define UART_RSA_SRR_Tx_FIFO_NHFL (1 << 1) /* Tx FIFO is not half full (1) */ +#define UART_RSA_SRR_Tx_FIFO_NFUL (1 << 2) /* Tx FIFO is not full (1) */ +#define UART_RSA_SRR_Rx_FIFO_NEMP (1 << 3) /* Rx FIFO is not empty (1) */ +#define UART_RSA_SRR_Rx_FIFO_NHFL (1 << 4) /* Rx FIFO is not half full (1) */ +#define UART_RSA_SRR_Rx_FIFO_NFUL (1 << 5) /* Rx FIFO is not full (1) */ +#define UART_RSA_SRR_Rx_TOUT (1 << 6) /* Character reception timeout occurred (1) */ +#define UART_RSA_SRR_TIMER (1 << 7) /* Timer interrupt occurred */ + +#define UART_RSA_FRR ((UART_RSA_BASE) + 2) /* OUT: FIFO Reset Register */ + +#define UART_RSA_TIVSR ((UART_RSA_BASE) + 3) /* I/O: Timer Interval Value Set Register */ + +#define UART_RSA_TCR ((UART_RSA_BASE) + 4) /* OUT: Timer Control Register */ + +#define UART_RSA_TCR_SWITCH (1 << 0) /* Timer on */ + +/* + * The RSA DSV/II board has two fixed clock frequencies. One is the + * standard rate, and the other is 8 times faster. + */ +#define SERIAL_RSA_BAUD_BASE (921600) +#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8) + +/* + * Extra serial register definitions for the internal UARTs + * in TI OMAP processors. + */ +#define UART_OMAP_MDR1 0x08 /* Mode definition register */ +#define UART_OMAP_MDR2 0x09 /* Mode definition register 2 */ +#define UART_OMAP_SCR 0x10 /* Supplementary control register */ +#define UART_OMAP_SSR 0x11 /* Supplementary status register */ +#define UART_OMAP_EBLR 0x12 /* BOF length register */ +#define UART_OMAP_OSC_12M_SEL 0x13 /* OMAP1510 12MHz osc select */ +#define UART_OMAP_MVER 0x14 /* Module version register */ +#define UART_OMAP_SYSC 0x15 /* System configuration register */ +#define UART_OMAP_SYSS 0x16 /* System status register */ +#define UART_OMAP_WER 0x17 /* Wake-up enable register */ + +/* + * These are the definitions for the MDR1 register + */ +#define UART_OMAP_MDR1_16X_MODE 0x00 /* UART 16x mode */ +#define UART_OMAP_MDR1_SIR_MODE 0x01 /* SIR mode */ +#define UART_OMAP_MDR1_16X_ABAUD_MODE 0x02 /* UART 16x auto-baud */ +#define UART_OMAP_MDR1_13X_MODE 0x03 /* UART 13x mode */ +#define UART_OMAP_MDR1_MIR_MODE 0x04 /* MIR mode */ +#define UART_OMAP_MDR1_FIR_MODE 0x05 /* FIR mode */ +#define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ +#define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */ + +/* + * These are definitions for the Exar XR17V35X and XR17(C|D)15X + */ +#define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */ +#define UART_EXAR_SLEEP 0x8b /* Sleep mode */ +#define UART_EXAR_DVID 0x8d /* Device identification */ + +#define UART_EXAR_FCTR 0x08 /* Feature Control Register */ +#define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */ +#define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */ +#define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */ +#define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */ +#define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */ +#define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */ + +#define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */ +#define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */ + +#endif /* _LINUX_SERIAL_REG_H */ + diff --git a/kernel_headers/linux/serio.h b/kernel_headers/linux/serio.h new file mode 100644 index 0000000..e73ba8d --- /dev/null +++ b/kernel_headers/linux/serio.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 1999-2002 Vojtech Pavlik +* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#ifndef _SERIO_H +#define _SERIO_H + + +#include + +#define SPIOCSTYPE _IOW('q', 0x01, unsigned long) + + +/* + * bit masks for use in "interrupt" flags (3rd argument) + */ +#define SERIO_TIMEOUT 1 +#define SERIO_PARITY 2 +#define SERIO_FRAME 4 + +/* + * Serio types + */ +#define SERIO_XT 0x00 +#define SERIO_8042 0x01 +#define SERIO_RS232 0x02 +#define SERIO_HIL_MLC 0x03 +#define SERIO_PS_PSTHRU 0x05 +#define SERIO_8042_XL 0x06 + +/* + * Serio protocols + */ +#define SERIO_UNKNOWN 0x00 +#define SERIO_MSC 0x01 +#define SERIO_SUN 0x02 +#define SERIO_MS 0x03 +#define SERIO_MP 0x04 +#define SERIO_MZ 0x05 +#define SERIO_MZP 0x06 +#define SERIO_MZPP 0x07 +#define SERIO_VSXXXAA 0x08 +#define SERIO_SUNKBD 0x10 +#define SERIO_WARRIOR 0x18 +#define SERIO_SPACEORB 0x19 +#define SERIO_MAGELLAN 0x1a +#define SERIO_SPACEBALL 0x1b +#define SERIO_GUNZE 0x1c +#define SERIO_IFORCE 0x1d +#define SERIO_STINGER 0x1e +#define SERIO_NEWTON 0x1f +#define SERIO_STOWAWAY 0x20 +#define SERIO_H3600 0x21 +#define SERIO_PS2SER 0x22 +#define SERIO_TWIDKBD 0x23 +#define SERIO_TWIDJOY 0x24 +#define SERIO_HIL 0x25 +#define SERIO_SNES232 0x26 +#define SERIO_SEMTECH 0x27 +#define SERIO_LKKBD 0x28 +#define SERIO_ELO 0x29 +#define SERIO_MICROTOUCH 0x30 +#define SERIO_PENMOUNT 0x31 +#define SERIO_TOUCHRIGHT 0x32 +#define SERIO_TOUCHWIN 0x33 +#define SERIO_TAOSEVM 0x34 +#define SERIO_FUJITSU 0x35 +#define SERIO_ZHENHUA 0x36 +#define SERIO_INEXIO 0x37 +#define SERIO_TOUCHIT213 0x38 +#define SERIO_W8001 0x39 +#define SERIO_DYNAPRO 0x3a +#define SERIO_HAMPSHIRE 0x3b +#define SERIO_PS2MULT 0x3c +#define SERIO_TSC40 0x3d + +#endif /* _SERIO_H */ diff --git a/kernel_headers/linux/shm.h b/kernel_headers/linux/shm.h new file mode 100644 index 0000000..c99cef0 --- /dev/null +++ b/kernel_headers/linux/shm.h @@ -0,0 +1,75 @@ +#ifndef _LINUX_SHM_H_ +#define _LINUX_SHM_H_ + +#include +#include +#include + +/* + * SHMMAX, SHMMNI and SHMALL are upper limits are defaults which can + * be increased by sysctl + */ + +#define SHMMAX 0x2000000 /* max shared seg size (bytes) */ +#define SHMMIN 1 /* min shared seg size (bytes) */ +#define SHMMNI 4096 /* max num of segs system wide */ +#define SHMALL (SHMMAX/getpagesize()*(SHMMNI/16)) +#define SHMSEG SHMMNI /* max shared segs per process */ + + +/* Obsolete, used only for backwards compatibility and libc5 compiles */ +struct shmid_ds { + struct ipc_perm shm_perm; /* operation perms */ + int shm_segsz; /* size of segment (bytes) */ + __kernel_time_t shm_atime; /* last attach time */ + __kernel_time_t shm_dtime; /* last detach time */ + __kernel_time_t shm_ctime; /* last change time */ + __kernel_ipc_pid_t shm_cpid; /* pid of creator */ + __kernel_ipc_pid_t shm_lpid; /* pid of last operator */ + unsigned short shm_nattch; /* no. of current attaches */ + unsigned short shm_unused; /* compatibility */ + void *shm_unused2; /* ditto - used by DIPC */ + void *shm_unused3; /* unused */ +}; + +/* Include the definition of shmid64_ds and shminfo64 */ +#include + +/* permission flag for shmget */ +#define SHM_R 0400 /* or S_IRUGO from */ +#define SHM_W 0200 /* or S_IWUGO from */ + +/* mode for attach */ +#define SHM_RDONLY 010000 /* read-only access */ +#define SHM_RND 020000 /* round attach address to SHMLBA boundary */ +#define SHM_REMAP 040000 /* take-over region on attach */ +#define SHM_EXEC 0100000 /* execution access */ + +/* super user shmctl commands */ +#define SHM_LOCK 11 +#define SHM_UNLOCK 12 + +/* ipcs ctl commands */ +#define SHM_STAT 13 +#define SHM_INFO 14 + +/* Obsolete, used only for backwards compatibility */ +struct shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; +}; + +struct shm_info { + int used_ids; + unsigned long shm_tot; /* total allocated shm */ + unsigned long shm_rss; /* total resident shm */ + unsigned long shm_swp; /* total swapped shm */ + unsigned long swap_attempts; + unsigned long swap_successes; +}; + + +#endif /* _LINUX_SHM_H_ */ diff --git a/kernel_headers/linux/signal.h b/kernel_headers/linux/signal.h new file mode 100644 index 0000000..94dc2e6 --- /dev/null +++ b/kernel_headers/linux/signal.h @@ -0,0 +1,10 @@ +#ifndef _LINUX_SIGNAL_H +#define _LINUX_SIGNAL_H + +#include +#include + +#define SS_ONSTACK 1 +#define SS_DISABLE 2 + +#endif /* _LINUX_SIGNAL_H */ diff --git a/kernel_headers/linux/signalfd.h b/kernel_headers/linux/signalfd.h new file mode 100644 index 0000000..90e689a --- /dev/null +++ b/kernel_headers/linux/signalfd.h @@ -0,0 +1,52 @@ +/* + * include/linux/signalfd.h + * + * Copyright (C) 2007 Davide Libenzi + * + */ + +#ifndef _LINUX_SIGNALFD_H +#define _LINUX_SIGNALFD_H + +#include +/* For O_CLOEXEC and O_NONBLOCK */ +#include + +/* Flags for signalfd4. */ +#define SFD_CLOEXEC O_CLOEXEC +#define SFD_NONBLOCK O_NONBLOCK + +struct signalfd_siginfo { + __u32 ssi_signo; + __s32 ssi_errno; + __s32 ssi_code; + __u32 ssi_pid; + __u32 ssi_uid; + __s32 ssi_fd; + __u32 ssi_tid; + __u32 ssi_band; + __u32 ssi_overrun; + __u32 ssi_trapno; + __s32 ssi_status; + __s32 ssi_int; + __u64 ssi_ptr; + __u64 ssi_utime; + __u64 ssi_stime; + __u64 ssi_addr; + __u16 ssi_addr_lsb; + + /* + * Pad strcture to 128 bytes. Remember to update the + * pad size when you add new members. We use a fixed + * size structure to avoid compatibility problems with + * future versions, and we leave extra space for additional + * members. We use fixed size members because this strcture + * comes out of a read(2) and we really don't want to have + * a compat on read(2). + */ + __u8 __pad[46]; +}; + + + +#endif /* _LINUX_SIGNALFD_H */ diff --git a/kernel_headers/linux/snmp.h b/kernel_headers/linux/snmp.h new file mode 100644 index 0000000..df2e8b4 --- /dev/null +++ b/kernel_headers/linux/snmp.h @@ -0,0 +1,293 @@ +/* + * Definitions for MIBs + * + * Author: Hideaki YOSHIFUJI + */ + +#ifndef _LINUX_SNMP_H +#define _LINUX_SNMP_H + +/* ipstats mib definitions */ +/* + * RFC 1213: MIB-II + * RFC 2011 (updates 1213): SNMPv2-MIB-IP + * RFC 2863: Interfaces Group MIB + * RFC 2465: IPv6 MIB: General Group + * draft-ietf-ipv6-rfc2011-update-10.txt: MIB for IP: IP Statistics Tables + */ +enum +{ + IPSTATS_MIB_NUM = 0, +/* frequently written fields in fast path, kept in same cache line */ + IPSTATS_MIB_INPKTS, /* InReceives */ + IPSTATS_MIB_INOCTETS, /* InOctets */ + IPSTATS_MIB_INDELIVERS, /* InDelivers */ + IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */ + IPSTATS_MIB_OUTPKTS, /* OutRequests */ + IPSTATS_MIB_OUTOCTETS, /* OutOctets */ +/* other fields */ + IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */ + IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */ + IPSTATS_MIB_INNOROUTES, /* InNoRoutes */ + IPSTATS_MIB_INADDRERRORS, /* InAddrErrors */ + IPSTATS_MIB_INUNKNOWNPROTOS, /* InUnknownProtos */ + IPSTATS_MIB_INTRUNCATEDPKTS, /* InTruncatedPkts */ + IPSTATS_MIB_INDISCARDS, /* InDiscards */ + IPSTATS_MIB_OUTDISCARDS, /* OutDiscards */ + IPSTATS_MIB_OUTNOROUTES, /* OutNoRoutes */ + IPSTATS_MIB_REASMTIMEOUT, /* ReasmTimeout */ + IPSTATS_MIB_REASMREQDS, /* ReasmReqds */ + IPSTATS_MIB_REASMOKS, /* ReasmOKs */ + IPSTATS_MIB_REASMFAILS, /* ReasmFails */ + IPSTATS_MIB_FRAGOKS, /* FragOKs */ + IPSTATS_MIB_FRAGFAILS, /* FragFails */ + IPSTATS_MIB_FRAGCREATES, /* FragCreates */ + IPSTATS_MIB_INMCASTPKTS, /* InMcastPkts */ + IPSTATS_MIB_OUTMCASTPKTS, /* OutMcastPkts */ + IPSTATS_MIB_INBCASTPKTS, /* InBcastPkts */ + IPSTATS_MIB_OUTBCASTPKTS, /* OutBcastPkts */ + IPSTATS_MIB_INMCASTOCTETS, /* InMcastOctets */ + IPSTATS_MIB_OUTMCASTOCTETS, /* OutMcastOctets */ + IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */ + IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */ + IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */ + __IPSTATS_MIB_MAX +}; + +/* icmp mib definitions */ +/* + * RFC 1213: MIB-II ICMP Group + * RFC 2011 (updates 1213): SNMPv2 MIB for IP: ICMP group + */ +enum +{ + ICMP_MIB_NUM = 0, + ICMP_MIB_INMSGS, /* InMsgs */ + ICMP_MIB_INERRORS, /* InErrors */ + ICMP_MIB_INDESTUNREACHS, /* InDestUnreachs */ + ICMP_MIB_INTIMEEXCDS, /* InTimeExcds */ + ICMP_MIB_INPARMPROBS, /* InParmProbs */ + ICMP_MIB_INSRCQUENCHS, /* InSrcQuenchs */ + ICMP_MIB_INREDIRECTS, /* InRedirects */ + ICMP_MIB_INECHOS, /* InEchos */ + ICMP_MIB_INECHOREPS, /* InEchoReps */ + ICMP_MIB_INTIMESTAMPS, /* InTimestamps */ + ICMP_MIB_INTIMESTAMPREPS, /* InTimestampReps */ + ICMP_MIB_INADDRMASKS, /* InAddrMasks */ + ICMP_MIB_INADDRMASKREPS, /* InAddrMaskReps */ + ICMP_MIB_OUTMSGS, /* OutMsgs */ + ICMP_MIB_OUTERRORS, /* OutErrors */ + ICMP_MIB_OUTDESTUNREACHS, /* OutDestUnreachs */ + ICMP_MIB_OUTTIMEEXCDS, /* OutTimeExcds */ + ICMP_MIB_OUTPARMPROBS, /* OutParmProbs */ + ICMP_MIB_OUTSRCQUENCHS, /* OutSrcQuenchs */ + ICMP_MIB_OUTREDIRECTS, /* OutRedirects */ + ICMP_MIB_OUTECHOS, /* OutEchos */ + ICMP_MIB_OUTECHOREPS, /* OutEchoReps */ + ICMP_MIB_OUTTIMESTAMPS, /* OutTimestamps */ + ICMP_MIB_OUTTIMESTAMPREPS, /* OutTimestampReps */ + ICMP_MIB_OUTADDRMASKS, /* OutAddrMasks */ + ICMP_MIB_OUTADDRMASKREPS, /* OutAddrMaskReps */ + ICMP_MIB_CSUMERRORS, /* InCsumErrors */ + __ICMP_MIB_MAX +}; + +#define __ICMPMSG_MIB_MAX 512 /* Out+In for all 8-bit ICMP types */ + +/* icmp6 mib definitions */ +/* + * RFC 2466: ICMPv6-MIB + */ +enum +{ + ICMP6_MIB_NUM = 0, + ICMP6_MIB_INMSGS, /* InMsgs */ + ICMP6_MIB_INERRORS, /* InErrors */ + ICMP6_MIB_OUTMSGS, /* OutMsgs */ + ICMP6_MIB_OUTERRORS, /* OutErrors */ + ICMP6_MIB_CSUMERRORS, /* InCsumErrors */ + __ICMP6_MIB_MAX +}; + +#define __ICMP6MSG_MIB_MAX 512 /* Out+In for all 8-bit ICMPv6 types */ + +/* tcp mib definitions */ +/* + * RFC 1213: MIB-II TCP group + * RFC 2012 (updates 1213): SNMPv2-MIB-TCP + */ +enum +{ + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM, /* RtoAlgorithm */ + TCP_MIB_RTOMIN, /* RtoMin */ + TCP_MIB_RTOMAX, /* RtoMax */ + TCP_MIB_MAXCONN, /* MaxConn */ + TCP_MIB_ACTIVEOPENS, /* ActiveOpens */ + TCP_MIB_PASSIVEOPENS, /* PassiveOpens */ + TCP_MIB_ATTEMPTFAILS, /* AttemptFails */ + TCP_MIB_ESTABRESETS, /* EstabResets */ + TCP_MIB_CURRESTAB, /* CurrEstab */ + TCP_MIB_INSEGS, /* InSegs */ + TCP_MIB_OUTSEGS, /* OutSegs */ + TCP_MIB_RETRANSSEGS, /* RetransSegs */ + TCP_MIB_INERRS, /* InErrs */ + TCP_MIB_OUTRSTS, /* OutRsts */ + TCP_MIB_CSUMERRORS, /* InCsumErrors */ + __TCP_MIB_MAX +}; + +/* udp mib definitions */ +/* + * RFC 1213: MIB-II UDP group + * RFC 2013 (updates 1213): SNMPv2-MIB-UDP + */ +enum +{ + UDP_MIB_NUM = 0, + UDP_MIB_INDATAGRAMS, /* InDatagrams */ + UDP_MIB_NOPORTS, /* NoPorts */ + UDP_MIB_INERRORS, /* InErrors */ + UDP_MIB_OUTDATAGRAMS, /* OutDatagrams */ + UDP_MIB_RCVBUFERRORS, /* RcvbufErrors */ + UDP_MIB_SNDBUFERRORS, /* SndbufErrors */ + UDP_MIB_CSUMERRORS, /* InCsumErrors */ + __UDP_MIB_MAX +}; + +/* linux mib definitions */ +enum +{ + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT, /* SyncookiesSent */ + LINUX_MIB_SYNCOOKIESRECV, /* SyncookiesRecv */ + LINUX_MIB_SYNCOOKIESFAILED, /* SyncookiesFailed */ + LINUX_MIB_EMBRYONICRSTS, /* EmbryonicRsts */ + LINUX_MIB_PRUNECALLED, /* PruneCalled */ + LINUX_MIB_RCVPRUNED, /* RcvPruned */ + LINUX_MIB_OFOPRUNED, /* OfoPruned */ + LINUX_MIB_OUTOFWINDOWICMPS, /* OutOfWindowIcmps */ + LINUX_MIB_LOCKDROPPEDICMPS, /* LockDroppedIcmps */ + LINUX_MIB_ARPFILTER, /* ArpFilter */ + LINUX_MIB_TIMEWAITED, /* TimeWaited */ + LINUX_MIB_TIMEWAITRECYCLED, /* TimeWaitRecycled */ + LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */ + LINUX_MIB_PAWSPASSIVEREJECTED, /* PAWSPassiveRejected */ + LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */ + LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */ + LINUX_MIB_DELAYEDACKS, /* DelayedACKs */ + LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */ + LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */ + LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */ + LINUX_MIB_LISTENDROPS, /* ListenDrops */ + LINUX_MIB_TCPPREQUEUED, /* TCPPrequeued */ + LINUX_MIB_TCPDIRECTCOPYFROMBACKLOG, /* TCPDirectCopyFromBacklog */ + LINUX_MIB_TCPDIRECTCOPYFROMPREQUEUE, /* TCPDirectCopyFromPrequeue */ + LINUX_MIB_TCPPREQUEUEDROPPED, /* TCPPrequeueDropped */ + LINUX_MIB_TCPHPHITS, /* TCPHPHits */ + LINUX_MIB_TCPHPHITSTOUSER, /* TCPHPHitsToUser */ + LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */ + LINUX_MIB_TCPHPACKS, /* TCPHPAcks */ + LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */ + LINUX_MIB_TCPSACKRECOVERY, /* TCPSackRecovery */ + LINUX_MIB_TCPSACKRENEGING, /* TCPSACKReneging */ + LINUX_MIB_TCPFACKREORDER, /* TCPFACKReorder */ + LINUX_MIB_TCPSACKREORDER, /* TCPSACKReorder */ + LINUX_MIB_TCPRENOREORDER, /* TCPRenoReorder */ + LINUX_MIB_TCPTSREORDER, /* TCPTSReorder */ + LINUX_MIB_TCPFULLUNDO, /* TCPFullUndo */ + LINUX_MIB_TCPPARTIALUNDO, /* TCPPartialUndo */ + LINUX_MIB_TCPDSACKUNDO, /* TCPDSACKUndo */ + LINUX_MIB_TCPLOSSUNDO, /* TCPLossUndo */ + LINUX_MIB_TCPLOSTRETRANSMIT, /* TCPLostRetransmit */ + LINUX_MIB_TCPRENOFAILURES, /* TCPRenoFailures */ + LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */ + LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */ + LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */ + LINUX_MIB_TCPFORWARDRETRANS, /* TCPForwardRetrans */ + LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */ + LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */ + LINUX_MIB_TCPLOSSPROBES, /* TCPLossProbes */ + LINUX_MIB_TCPLOSSPROBERECOVERY, /* TCPLossProbeRecovery */ + LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */ + LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */ + LINUX_MIB_TCPSCHEDULERFAILED, /* TCPSchedulerFailed */ + LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */ + LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */ + LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */ + LINUX_MIB_TCPDSACKRECV, /* TCPDSACKRecv */ + LINUX_MIB_TCPDSACKOFORECV, /* TCPDSACKOfoRecv */ + LINUX_MIB_TCPABORTONDATA, /* TCPAbortOnData */ + LINUX_MIB_TCPABORTONCLOSE, /* TCPAbortOnClose */ + LINUX_MIB_TCPABORTONMEMORY, /* TCPAbortOnMemory */ + LINUX_MIB_TCPABORTONTIMEOUT, /* TCPAbortOnTimeout */ + LINUX_MIB_TCPABORTONLINGER, /* TCPAbortOnLinger */ + LINUX_MIB_TCPABORTFAILED, /* TCPAbortFailed */ + LINUX_MIB_TCPMEMORYPRESSURES, /* TCPMemoryPressures */ + LINUX_MIB_TCPSACKDISCARD, /* TCPSACKDiscard */ + LINUX_MIB_TCPDSACKIGNOREDOLD, /* TCPSACKIgnoredOld */ + LINUX_MIB_TCPDSACKIGNOREDNOUNDO, /* TCPSACKIgnoredNoUndo */ + LINUX_MIB_TCPSPURIOUSRTOS, /* TCPSpuriousRTOs */ + LINUX_MIB_TCPMD5NOTFOUND, /* TCPMD5NotFound */ + LINUX_MIB_TCPMD5UNEXPECTED, /* TCPMD5Unexpected */ + LINUX_MIB_SACKSHIFTED, + LINUX_MIB_SACKMERGED, + LINUX_MIB_SACKSHIFTFALLBACK, + LINUX_MIB_TCPBACKLOGDROP, + LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */ + LINUX_MIB_TCPDEFERACCEPTDROP, + LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ + LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */ + LINUX_MIB_TCPREQQFULLDOCOOKIES, /* TCPReqQFullDoCookies */ + LINUX_MIB_TCPREQQFULLDROP, /* TCPReqQFullDrop */ + LINUX_MIB_TCPRETRANSFAIL, /* TCPRetransFail */ + LINUX_MIB_TCPRCVCOALESCE, /* TCPRcvCoalesce */ + LINUX_MIB_TCPOFOQUEUE, /* TCPOFOQueue */ + LINUX_MIB_TCPOFODROP, /* TCPOFODrop */ + LINUX_MIB_TCPOFOMERGE, /* TCPOFOMerge */ + LINUX_MIB_TCPCHALLENGEACK, /* TCPChallengeACK */ + LINUX_MIB_TCPSYNCHALLENGE, /* TCPSYNChallenge */ + LINUX_MIB_TCPFASTOPENACTIVE, /* TCPFastOpenActive */ + LINUX_MIB_TCPFASTOPENPASSIVE, /* TCPFastOpenPassive*/ + LINUX_MIB_TCPFASTOPENPASSIVEFAIL, /* TCPFastOpenPassiveFail */ + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW, /* TCPFastOpenListenOverflow */ + LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ + __LINUX_MIB_MAX +}; + +/* linux Xfrm mib definitions */ +enum +{ + LINUX_MIB_XFRMNUM = 0, + LINUX_MIB_XFRMINERROR, /* XfrmInError */ + LINUX_MIB_XFRMINBUFFERERROR, /* XfrmInBufferError */ + LINUX_MIB_XFRMINHDRERROR, /* XfrmInHdrError */ + LINUX_MIB_XFRMINNOSTATES, /* XfrmInNoStates */ + LINUX_MIB_XFRMINSTATEPROTOERROR, /* XfrmInStateProtoError */ + LINUX_MIB_XFRMINSTATEMODEERROR, /* XfrmInStateModeError */ + LINUX_MIB_XFRMINSTATESEQERROR, /* XfrmInStateSeqError */ + LINUX_MIB_XFRMINSTATEEXPIRED, /* XfrmInStateExpired */ + LINUX_MIB_XFRMINSTATEMISMATCH, /* XfrmInStateMismatch */ + LINUX_MIB_XFRMINSTATEINVALID, /* XfrmInStateInvalid */ + LINUX_MIB_XFRMINTMPLMISMATCH, /* XfrmInTmplMismatch */ + LINUX_MIB_XFRMINNOPOLS, /* XfrmInNoPols */ + LINUX_MIB_XFRMINPOLBLOCK, /* XfrmInPolBlock */ + LINUX_MIB_XFRMINPOLERROR, /* XfrmInPolError */ + LINUX_MIB_XFRMOUTERROR, /* XfrmOutError */ + LINUX_MIB_XFRMOUTBUNDLEGENERROR, /* XfrmOutBundleGenError */ + LINUX_MIB_XFRMOUTBUNDLECHECKERROR, /* XfrmOutBundleCheckError */ + LINUX_MIB_XFRMOUTNOSTATES, /* XfrmOutNoStates */ + LINUX_MIB_XFRMOUTSTATEPROTOERROR, /* XfrmOutStateProtoError */ + LINUX_MIB_XFRMOUTSTATEMODEERROR, /* XfrmOutStateModeError */ + LINUX_MIB_XFRMOUTSTATESEQERROR, /* XfrmOutStateSeqError */ + LINUX_MIB_XFRMOUTSTATEEXPIRED, /* XfrmOutStateExpired */ + LINUX_MIB_XFRMOUTPOLBLOCK, /* XfrmOutPolBlock */ + LINUX_MIB_XFRMOUTPOLDEAD, /* XfrmOutPolDead */ + LINUX_MIB_XFRMOUTPOLERROR, /* XfrmOutPolError */ + LINUX_MIB_XFRMFWDHDRERROR, /* XfrmFwdHdrError*/ + LINUX_MIB_XFRMOUTSTATEINVALID, /* XfrmOutStateInvalid */ + __LINUX_MIB_XFRMMAX +}; + +#endif /* _LINUX_SNMP_H */ diff --git a/kernel_headers/linux/sock_diag.h b/kernel_headers/linux/sock_diag.h new file mode 100644 index 0000000..78996e2 --- /dev/null +++ b/kernel_headers/linux/sock_diag.h @@ -0,0 +1,26 @@ +#ifndef __SOCK_DIAG_H__ +#define __SOCK_DIAG_H__ + +#include + +#define SOCK_DIAG_BY_FAMILY 20 + +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; +}; + +enum { + SK_MEMINFO_RMEM_ALLOC, + SK_MEMINFO_RCVBUF, + SK_MEMINFO_WMEM_ALLOC, + SK_MEMINFO_SNDBUF, + SK_MEMINFO_FWD_ALLOC, + SK_MEMINFO_WMEM_QUEUED, + SK_MEMINFO_OPTMEM, + SK_MEMINFO_BACKLOG, + + SK_MEMINFO_VARS, +}; + +#endif /* __SOCK_DIAG_H__ */ diff --git a/kernel_headers/linux/socket.h b/kernel_headers/linux/socket.h new file mode 100644 index 0000000..8c1e501 --- /dev/null +++ b/kernel_headers/linux/socket.h @@ -0,0 +1,21 @@ +#ifndef _LINUX_SOCKET_H +#define _LINUX_SOCKET_H + +/* + * Desired design of maximum size and alignment (see RFC2553) + */ +#define _K_SS_MAXSIZE 128 /* Implementation specific max size */ +#define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *)) + /* Implementation specific desired alignment */ + +typedef unsigned short __kernel_sa_family_t; + +struct __kernel_sockaddr_storage { + __kernel_sa_family_t ss_family; /* address family */ + /* Following field(s) are implementation specific */ + char __data[_K_SS_MAXSIZE - sizeof(unsigned short)]; + /* space to achieve desired size, */ + /* _SS_MAXSIZE value minus size of ss_family */ +} __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */ + +#endif /* _LINUX_SOCKET_H */ diff --git a/kernel_headers/linux/sockev.h b/kernel_headers/linux/sockev.h new file mode 100644 index 0000000..fe6f35a --- /dev/null +++ b/kernel_headers/linux/sockev.h @@ -0,0 +1,31 @@ +#ifndef _SOCKEV_H_ +#define _SOCKEV_H_ + +#include +#include +#include + +enum sknetlink_groups { + SKNLGRP_UNICAST, + SKNLGRP_SOCKEV, + __SKNLGRP_MAX +}; + +#define SOCKEV_STR_MAX 32 + +/******************************************************************** +* Socket operation messages +****/ + +struct sknlsockevmsg { + __u8 event[SOCKEV_STR_MAX]; + __u32 pid; /* (struct task_struct*)->pid */ + __u16 skfamily; /* (struct socket*)->sk->sk_family */ + __u8 skstate; /* (struct socket*)->sk->sk_state */ + __u8 skprotocol; /* (struct socket*)->sk->sk_protocol */ + __u16 sktype; /* (struct socket*)->sk->sk_type */ + __u64 skflags; /* (struct socket*)->sk->sk_flags */ +}; + +#endif /* _SOCKEV_H_ */ + diff --git a/kernel_headers/linux/sockios.h b/kernel_headers/linux/sockios.h new file mode 100644 index 0000000..f7ffe36 --- /dev/null +++ b/kernel_headers/linux/sockios.h @@ -0,0 +1,149 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions of the socket-level I/O control calls. + * + * Version: @(#)sockios.h 1.0.2 03/09/93 + * + * Authors: Ross Biro + * Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_SOCKIOS_H +#define _LINUX_SOCKIOS_H + +#include + +/* Linux-specific socket ioctls */ +#define SIOCINQ FIONREAD +#define SIOCOUTQ TIOCOUTQ /* output queue size (not sent + not acked) */ + +/* Routing table calls. */ +#define SIOCADDRT 0x890B /* add routing table entry */ +#define SIOCDELRT 0x890C /* delete routing table entry */ +#define SIOCRTMSG 0x890D /* call to routing system */ + +/* Socket configuration controls. */ +#define SIOCGIFNAME 0x8910 /* get iface name */ +#define SIOCSIFLINK 0x8911 /* set iface channel */ +#define SIOCGIFCONF 0x8912 /* get iface list */ +#define SIOCGIFFLAGS 0x8913 /* get flags */ +#define SIOCSIFFLAGS 0x8914 /* set flags */ +#define SIOCGIFADDR 0x8915 /* get PA address */ +#define SIOCSIFADDR 0x8916 /* set PA address */ +#define SIOCGIFDSTADDR 0x8917 /* get remote PA address */ +#define SIOCSIFDSTADDR 0x8918 /* set remote PA address */ +#define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */ +#define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */ +#define SIOCGIFNETMASK 0x891b /* get network PA mask */ +#define SIOCSIFNETMASK 0x891c /* set network PA mask */ +#define SIOCGIFMETRIC 0x891d /* get metric */ +#define SIOCSIFMETRIC 0x891e /* set metric */ +#define SIOCGIFMEM 0x891f /* get memory address (BSD) */ +#define SIOCSIFMEM 0x8920 /* set memory address (BSD) */ +#define SIOCGIFMTU 0x8921 /* get MTU size */ +#define SIOCSIFMTU 0x8922 /* set MTU size */ +#define SIOCSIFNAME 0x8923 /* set interface name */ +#define SIOCSIFHWADDR 0x8924 /* set hardware address */ +#define SIOCGIFENCAP 0x8925 /* get/set encapsulations */ +#define SIOCSIFENCAP 0x8926 +#define SIOCGIFHWADDR 0x8927 /* Get hardware address */ +#define SIOCGIFSLAVE 0x8929 /* Driver slaving support */ +#define SIOCSIFSLAVE 0x8930 +#define SIOCADDMULTI 0x8931 /* Multicast address lists */ +#define SIOCDELMULTI 0x8932 +#define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */ +#define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */ +#define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */ +#define SIOCGIFPFLAGS 0x8935 +#define SIOCDIFADDR 0x8936 /* delete PA address */ +#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */ +#define SIOCGIFCOUNT 0x8938 /* get number of devices */ +#define SIOCKILLADDR 0x8939 /* kill sockets with this local addr */ + +#define SIOCGIFBR 0x8940 /* Bridging support */ +#define SIOCSIFBR 0x8941 /* Set bridging options */ + +#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */ +#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */ + +/* SIOCGIFDIVERT was: 0x8944 Frame diversion support */ +/* SIOCSIFDIVERT was: 0x8945 Set frame diversion options */ + +#define SIOCETHTOOL 0x8946 /* Ethtool interface */ + +#define SIOCGMIIPHY 0x8947 /* Get address of MII PHY in use. */ +#define SIOCGMIIREG 0x8948 /* Read MII PHY register. */ +#define SIOCSMIIREG 0x8949 /* Write MII PHY register. */ + +#define SIOCWANDEV 0x894A /* get/set netdev parameters */ + +#define SIOCOUTQNSD 0x894B /* output queue size (not sent only) */ + +/* ARP cache control calls. */ + /* 0x8950 - 0x8952 * obsolete calls, don't re-use */ +#define SIOCDARP 0x8953 /* delete ARP table entry */ +#define SIOCGARP 0x8954 /* get ARP table entry */ +#define SIOCSARP 0x8955 /* set ARP table entry */ + +/* RARP cache control calls. */ +#define SIOCDRARP 0x8960 /* delete RARP table entry */ +#define SIOCGRARP 0x8961 /* get RARP table entry */ +#define SIOCSRARP 0x8962 /* set RARP table entry */ + +/* Driver configuration calls */ + +#define SIOCGIFMAP 0x8970 /* Get device parameters */ +#define SIOCSIFMAP 0x8971 /* Set device parameters */ + +/* DLCI configuration calls */ + +#define SIOCADDDLCI 0x8980 /* Create new DLCI device */ +#define SIOCDELDLCI 0x8981 /* Delete DLCI device */ + +#define SIOCGIFVLAN 0x8982 /* 802.1Q VLAN support */ +#define SIOCSIFVLAN 0x8983 /* Set 802.1Q VLAN options */ + +/* bonding calls */ + +#define SIOCBONDENSLAVE 0x8990 /* enslave a device to the bond */ +#define SIOCBONDRELEASE 0x8991 /* release a slave from the bond*/ +#define SIOCBONDSETHWADDR 0x8992 /* set the hw addr of the bond */ +#define SIOCBONDSLAVEINFOQUERY 0x8993 /* rtn info about slave state */ +#define SIOCBONDINFOQUERY 0x8994 /* rtn info about bond state */ +#define SIOCBONDCHANGEACTIVE 0x8995 /* update to a new active slave */ + +/* bridge calls */ +#define SIOCBRADDBR 0x89a0 /* create new bridge device */ +#define SIOCBRDELBR 0x89a1 /* remove bridge device */ +#define SIOCBRADDIF 0x89a2 /* add interface to bridge */ +#define SIOCBRDELIF 0x89a3 /* remove interface from bridge */ + +/* hardware time stamping: parameters in linux/net_tstamp.h */ +#define SIOCSHWTSTAMP 0x89b0 + +/* Device private ioctl calls */ + +/* + * These 16 ioctls are available to devices via the do_ioctl() device + * vector. Each device should include this file and redefine these names + * as their own. Because these are device dependent it is a good idea + * _NOT_ to issue them to random objects and hope. + * + * THESE IOCTLS ARE _DEPRECATED_ AND WILL DISAPPEAR IN 2.5.X -DaveM + */ + +#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */ + +/* + * These 16 ioctl calls are protocol private + */ + +#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */ +#endif /* _LINUX_SOCKIOS_H */ diff --git a/kernel_headers/linux/som.h b/kernel_headers/linux/som.h new file mode 100644 index 0000000..166594e --- /dev/null +++ b/kernel_headers/linux/som.h @@ -0,0 +1,154 @@ +#ifndef _LINUX_SOM_H +#define _LINUX_SOM_H + +/* File format definition for SOM executables / shared libraries */ + +/* we need struct timespec */ +#include + +#define SOM_PAGESIZE 4096 + +/* this is the SOM header */ +struct som_hdr { + short system_id; /* magic number - system */ + short a_magic; /* magic number - file type */ + unsigned int version_id; /* versiod ID: YYMMDDHH */ + struct timespec file_time; /* system clock */ + unsigned int entry_space; /* space for entry point */ + unsigned int entry_subspace; /* subspace for entry point */ + unsigned int entry_offset; /* offset of entry point */ + unsigned int aux_header_location; /* auxiliary header location */ + unsigned int aux_header_size; /* auxiliary header size */ + unsigned int som_length; /* length of entire SOM */ + unsigned int presumed_dp; /* compiler's DP value */ + unsigned int space_location; /* space dictionary location */ + unsigned int space_total; /* number of space entries */ + unsigned int subspace_location; /* subspace entries location */ + unsigned int subspace_total; /* number of subspace entries */ + unsigned int loader_fixup_location; /* MPE/iX loader fixup */ + unsigned int loader_fixup_total; /* number of fixup records */ + unsigned int space_strings_location; /* (sub)space names */ + unsigned int space_strings_size; /* size of strings area */ + unsigned int init_array_location; /* reserved */ + unsigned int init_array_total; /* reserved */ + unsigned int compiler_location; /* module dictionary */ + unsigned int compiler_total; /* number of modules */ + unsigned int symbol_location; /* symbol dictionary */ + unsigned int symbol_total; /* number of symbols */ + unsigned int fixup_request_location; /* fixup requests */ + unsigned int fixup_request_total; /* number of fixup requests */ + unsigned int symbol_strings_location;/* module & symbol names area */ + unsigned int symbol_strings_size; /* size of strings area */ + unsigned int unloadable_sp_location; /* unloadable spaces location */ + unsigned int unloadable_sp_size; /* size of data */ + unsigned int checksum; +}; + +/* values for system_id */ + +#define SOM_SID_PARISC_1_0 0x020b +#define SOM_SID_PARISC_1_1 0x0210 +#define SOM_SID_PARISC_2_0 0x0214 + +/* values for a_magic */ + +#define SOM_LIB_EXEC 0x0104 +#define SOM_RELOCATABLE 0x0106 +#define SOM_EXEC_NONSHARE 0x0107 +#define SOM_EXEC_SHARE 0x0108 +#define SOM_EXEC_DEMAND 0x010B +#define SOM_LIB_DYN 0x010D +#define SOM_LIB_SHARE 0x010E +#define SOM_LIB_RELOC 0x0619 + +/* values for version_id. Decimal not hex, yes. Grr. */ + +#define SOM_ID_OLD 85082112 +#define SOM_ID_NEW 87102412 + +struct aux_id { + unsigned int mandatory :1; /* the linker must understand this */ + unsigned int copy :1; /* Must be copied by the linker */ + unsigned int append :1; /* Must be merged by the linker */ + unsigned int ignore :1; /* Discard section if unknown */ + unsigned int reserved :12; + unsigned int type :16; /* Header type */ + unsigned int length; /* length of _following_ data */ +}; + +/* The Exec Auxiliary Header. Called The HP-UX Header within HP apparently. */ +struct som_exec_auxhdr { + struct aux_id som_auxhdr; + int exec_tsize; /* Text size in bytes */ + int exec_tmem; /* Address to load text at */ + int exec_tfile; /* Location of text in file */ + int exec_dsize; /* Data size in bytes */ + int exec_dmem; /* Address to load data at */ + int exec_dfile; /* Location of data in file */ + int exec_bsize; /* Uninitialised data (bss) */ + int exec_entry; /* Address to start executing */ + int exec_flags; /* loader flags */ + int exec_bfill; /* initialisation value for bss */ +}; + +/* Oh, the things people do to avoid casts. Shame it'll break with gcc's + * new aliasing rules really. + */ +union name_pt { + char * n_name; + unsigned int n_strx; +}; + +/* The Space Dictionary */ +struct space_dictionary_record { + union name_pt name; /* index to subspace name */ + unsigned int is_loadable :1; /* loadable */ + unsigned int is_defined :1; /* defined within file */ + unsigned int is_private :1; /* not sharable */ + unsigned int has_intermediate_code :1; /* contains intermediate code */ + unsigned int is_tspecific :1; /* thread specific */ + unsigned int reserved :11; /* for future expansion */ + unsigned int sort_key :8; /* for linker */ + unsigned int reserved2 :8; /* for future expansion */ + + int space_number; /* index */ + int subspace_index; /* index into subspace dict */ + unsigned int subspace_quantity; /* number of subspaces */ + int loader_fix_index; /* for loader */ + unsigned int loader_fix_quantity; /* for loader */ + int init_pointer_index; /* data pointer array index */ + unsigned int init_pointer_quantity; /* number of data pointers */ +}; + +/* The Subspace Dictionary */ +struct subspace_dictionary_record { + int space_index; + unsigned int access_control_bits :7; + unsigned int memory_resident :1; + unsigned int dup_common :1; + unsigned int is_common :1; + unsigned int quadrant :2; + unsigned int initially_frozen :1; + unsigned int is_first :1; + unsigned int code_only :1; + unsigned int sort_key :8; + unsigned int replicate_init :1; + unsigned int continuation :1; + unsigned int is_tspecific :1; + unsigned int is_comdat :1; + unsigned int reserved :4; + + int file_loc_init_value; + unsigned int initialization_length; + unsigned int subspace_start; + unsigned int subspace_length; + + unsigned int reserved2 :5; + unsigned int alignment :27; + + union name_pt name; + int fixup_request_index; + unsigned int fixup_request_quantity; +}; + +#endif /* _LINUX_SOM_H */ diff --git a/kernel_headers/linux/sonet.h b/kernel_headers/linux/sonet.h new file mode 100644 index 0000000..77c834a --- /dev/null +++ b/kernel_headers/linux/sonet.h @@ -0,0 +1,60 @@ +/* sonet.h - SONET/SHD physical layer control */ + +/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_SONET_H +#define LINUX_SONET_H + +#define __SONET_ITEMS \ + __HANDLE_ITEM(section_bip); /* section parity errors (B1) */ \ + __HANDLE_ITEM(line_bip); /* line parity errors (B2) */ \ + __HANDLE_ITEM(path_bip); /* path parity errors (B3) */ \ + __HANDLE_ITEM(line_febe); /* line parity errors at remote */ \ + __HANDLE_ITEM(path_febe); /* path parity errors at remote */ \ + __HANDLE_ITEM(corr_hcs); /* correctable header errors */ \ + __HANDLE_ITEM(uncorr_hcs); /* uncorrectable header errors */ \ + __HANDLE_ITEM(tx_cells); /* cells sent */ \ + __HANDLE_ITEM(rx_cells); /* cells received */ + +struct sonet_stats { +#define __HANDLE_ITEM(i) int i + __SONET_ITEMS +#undef __HANDLE_ITEM +} __attribute__ ((packed)); + + +#define SONET_GETSTAT _IOR('a',ATMIOC_PHYTYP,struct sonet_stats) + /* get statistics */ +#define SONET_GETSTATZ _IOR('a',ATMIOC_PHYTYP+1,struct sonet_stats) + /* ... and zero counters */ +#define SONET_SETDIAG _IOWR('a',ATMIOC_PHYTYP+2,int) + /* set error insertion */ +#define SONET_CLRDIAG _IOWR('a',ATMIOC_PHYTYP+3,int) + /* clear error insertion */ +#define SONET_GETDIAG _IOR('a',ATMIOC_PHYTYP+4,int) + /* query error insertion */ +#define SONET_SETFRAMING _IOW('a',ATMIOC_PHYTYP+5,int) + /* set framing mode (SONET/SDH) */ +#define SONET_GETFRAMING _IOR('a',ATMIOC_PHYTYP+6,int) + /* get framing mode */ +#define SONET_GETFRSENSE _IOR('a',ATMIOC_PHYTYP+7, \ + unsigned char[SONET_FRSENSE_SIZE]) /* get framing sense information */ + +#define SONET_INS_SBIP 1 /* section BIP */ +#define SONET_INS_LBIP 2 /* line BIP */ +#define SONET_INS_PBIP 4 /* path BIP */ +#define SONET_INS_FRAME 8 /* out of frame */ +#define SONET_INS_LOS 16 /* set line to zero */ +#define SONET_INS_LAIS 32 /* line alarm indication signal */ +#define SONET_INS_PAIS 64 /* path alarm indication signal */ +#define SONET_INS_HCS 128 /* insert HCS error */ + +#define SONET_FRAME_SONET 0 /* SONET STS-3 framing */ +#define SONET_FRAME_SDH 1 /* SDH STM-1 framing */ + +#define SONET_FRSENSE_SIZE 6 /* C1[3],H1[3] (0xff for unknown) */ + + + +#endif /* LINUX_SONET_H */ diff --git a/kernel_headers/linux/sonypi.h b/kernel_headers/linux/sonypi.h new file mode 100644 index 0000000..1c0a25f --- /dev/null +++ b/kernel_headers/linux/sonypi.h @@ -0,0 +1,146 @@ +/* + * Sony Programmable I/O Control Device driver for VAIO + * + * Copyright (C) 2001-2005 Stelian Pop + * + * Copyright (C) 2005 Narayanan R S + + * Copyright (C) 2001-2002 Alcôve + * + * Copyright (C) 2001 Michael Ashley + * + * Copyright (C) 2001 Junichi Morita + * + * Copyright (C) 2000 Takaya Kinjo + * + * Copyright (C) 2000 Andrew Tridgell + * + * Earlier work by Werner Almesberger, Paul `Rusty' Russell and Paul Mackerras. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef _SONYPI_H_ +#define _SONYPI_H_ + +#include + +/* events the user application reading /dev/sonypi can use */ + +#define SONYPI_EVENT_IGNORE 0 +#define SONYPI_EVENT_JOGDIAL_DOWN 1 +#define SONYPI_EVENT_JOGDIAL_UP 2 +#define SONYPI_EVENT_JOGDIAL_DOWN_PRESSED 3 +#define SONYPI_EVENT_JOGDIAL_UP_PRESSED 4 +#define SONYPI_EVENT_JOGDIAL_PRESSED 5 +#define SONYPI_EVENT_JOGDIAL_RELEASED 6 /* obsolete */ +#define SONYPI_EVENT_CAPTURE_PRESSED 7 +#define SONYPI_EVENT_CAPTURE_RELEASED 8 /* obsolete */ +#define SONYPI_EVENT_CAPTURE_PARTIALPRESSED 9 +#define SONYPI_EVENT_CAPTURE_PARTIALRELEASED 10 +#define SONYPI_EVENT_FNKEY_ESC 11 +#define SONYPI_EVENT_FNKEY_F1 12 +#define SONYPI_EVENT_FNKEY_F2 13 +#define SONYPI_EVENT_FNKEY_F3 14 +#define SONYPI_EVENT_FNKEY_F4 15 +#define SONYPI_EVENT_FNKEY_F5 16 +#define SONYPI_EVENT_FNKEY_F6 17 +#define SONYPI_EVENT_FNKEY_F7 18 +#define SONYPI_EVENT_FNKEY_F8 19 +#define SONYPI_EVENT_FNKEY_F9 20 +#define SONYPI_EVENT_FNKEY_F10 21 +#define SONYPI_EVENT_FNKEY_F11 22 +#define SONYPI_EVENT_FNKEY_F12 23 +#define SONYPI_EVENT_FNKEY_1 24 +#define SONYPI_EVENT_FNKEY_2 25 +#define SONYPI_EVENT_FNKEY_D 26 +#define SONYPI_EVENT_FNKEY_E 27 +#define SONYPI_EVENT_FNKEY_F 28 +#define SONYPI_EVENT_FNKEY_S 29 +#define SONYPI_EVENT_FNKEY_B 30 +#define SONYPI_EVENT_BLUETOOTH_PRESSED 31 +#define SONYPI_EVENT_PKEY_P1 32 +#define SONYPI_EVENT_PKEY_P2 33 +#define SONYPI_EVENT_PKEY_P3 34 +#define SONYPI_EVENT_BACK_PRESSED 35 +#define SONYPI_EVENT_LID_CLOSED 36 +#define SONYPI_EVENT_LID_OPENED 37 +#define SONYPI_EVENT_BLUETOOTH_ON 38 +#define SONYPI_EVENT_BLUETOOTH_OFF 39 +#define SONYPI_EVENT_HELP_PRESSED 40 +#define SONYPI_EVENT_FNKEY_ONLY 41 +#define SONYPI_EVENT_JOGDIAL_FAST_DOWN 42 +#define SONYPI_EVENT_JOGDIAL_FAST_UP 43 +#define SONYPI_EVENT_JOGDIAL_FAST_DOWN_PRESSED 44 +#define SONYPI_EVENT_JOGDIAL_FAST_UP_PRESSED 45 +#define SONYPI_EVENT_JOGDIAL_VFAST_DOWN 46 +#define SONYPI_EVENT_JOGDIAL_VFAST_UP 47 +#define SONYPI_EVENT_JOGDIAL_VFAST_DOWN_PRESSED 48 +#define SONYPI_EVENT_JOGDIAL_VFAST_UP_PRESSED 49 +#define SONYPI_EVENT_ZOOM_PRESSED 50 +#define SONYPI_EVENT_THUMBPHRASE_PRESSED 51 +#define SONYPI_EVENT_MEYE_FACE 52 +#define SONYPI_EVENT_MEYE_OPPOSITE 53 +#define SONYPI_EVENT_MEMORYSTICK_INSERT 54 +#define SONYPI_EVENT_MEMORYSTICK_EJECT 55 +#define SONYPI_EVENT_ANYBUTTON_RELEASED 56 +#define SONYPI_EVENT_BATTERY_INSERT 57 +#define SONYPI_EVENT_BATTERY_REMOVE 58 +#define SONYPI_EVENT_FNKEY_RELEASED 59 +#define SONYPI_EVENT_WIRELESS_ON 60 +#define SONYPI_EVENT_WIRELESS_OFF 61 +#define SONYPI_EVENT_ZOOM_IN_PRESSED 62 +#define SONYPI_EVENT_ZOOM_OUT_PRESSED 63 +#define SONYPI_EVENT_CD_EJECT_PRESSED 64 +#define SONYPI_EVENT_MODEKEY_PRESSED 65 +#define SONYPI_EVENT_PKEY_P4 66 +#define SONYPI_EVENT_PKEY_P5 67 +#define SONYPI_EVENT_SETTINGKEY_PRESSED 68 +#define SONYPI_EVENT_VOLUME_INC_PRESSED 69 +#define SONYPI_EVENT_VOLUME_DEC_PRESSED 70 +#define SONYPI_EVENT_BRIGHTNESS_PRESSED 71 +#define SONYPI_EVENT_MEDIA_PRESSED 72 +#define SONYPI_EVENT_VENDOR_PRESSED 73 + +/* get/set brightness */ +#define SONYPI_IOCGBRT _IOR('v', 0, __u8) +#define SONYPI_IOCSBRT _IOW('v', 0, __u8) + +/* get battery full capacity/remaining capacity */ +#define SONYPI_IOCGBAT1CAP _IOR('v', 2, __u16) +#define SONYPI_IOCGBAT1REM _IOR('v', 3, __u16) +#define SONYPI_IOCGBAT2CAP _IOR('v', 4, __u16) +#define SONYPI_IOCGBAT2REM _IOR('v', 5, __u16) + +/* get battery flags: battery1/battery2/ac adapter present */ +#define SONYPI_BFLAGS_B1 0x01 +#define SONYPI_BFLAGS_B2 0x02 +#define SONYPI_BFLAGS_AC 0x04 +#define SONYPI_IOCGBATFLAGS _IOR('v', 7, __u8) + +/* get/set bluetooth subsystem state on/off */ +#define SONYPI_IOCGBLUE _IOR('v', 8, __u8) +#define SONYPI_IOCSBLUE _IOW('v', 9, __u8) + +/* get/set fan state on/off */ +#define SONYPI_IOCGFAN _IOR('v', 10, __u8) +#define SONYPI_IOCSFAN _IOW('v', 11, __u8) + +/* get temperature (C) */ +#define SONYPI_IOCGTEMP _IOR('v', 12, __u8) + + +#endif /* _SONYPI_H_ */ diff --git a/kernel_headers/linux/sound.h b/kernel_headers/linux/sound.h new file mode 100644 index 0000000..a1d0682 --- /dev/null +++ b/kernel_headers/linux/sound.h @@ -0,0 +1,31 @@ +#ifndef _LINUX_SOUND_H +#define _LINUX_SOUND_H + +/* + * Minor numbers for the sound driver. + */ + +#include + +#define SND_DEV_CTL 0 /* Control port /dev/mixer */ +#define SND_DEV_SEQ 1 /* Sequencer output /dev/sequencer (FM + synthesizer and MIDI output) */ +#define SND_DEV_MIDIN 2 /* Raw midi access */ +#define SND_DEV_DSP 3 /* Digitized voice /dev/dsp */ +#define SND_DEV_AUDIO 4 /* Sparc compatible /dev/audio */ +#define SND_DEV_DSP16 5 /* Like /dev/dsp but 16 bits/sample */ +/* #define SND_DEV_STATUS 6 */ /* /dev/sndstat (obsolete) */ +#define SND_DEV_UNUSED 6 +#define SND_DEV_AWFM 7 /* Reserved */ +#define SND_DEV_SEQ2 8 /* /dev/sequencer, level 2 interface */ +/* #define SND_DEV_SNDPROC 9 */ /* /dev/sndproc for programmable devices (not used) */ +/* #define SND_DEV_DMMIDI 9 */ +#define SND_DEV_SYNTH 9 /* Raw synth access /dev/synth (same as /dev/dmfm) */ +#define SND_DEV_DMFM 10 /* Raw synth access /dev/dmfm */ +#define SND_DEV_UNKNOWN11 11 +#define SND_DEV_ADSP 12 /* Like /dev/dsp (obsolete) */ +#define SND_DEV_AMIDI 13 /* Like /dev/midi (obsolete) */ +#define SND_DEV_ADMMIDI 14 /* Like /dev/dmmidi (onsolete) */ + + +#endif /* _LINUX_SOUND_H */ diff --git a/kernel_headers/linux/soundcard.h b/kernel_headers/linux/soundcard.h new file mode 100644 index 0000000..c5abf86 --- /dev/null +++ b/kernel_headers/linux/soundcard.h @@ -0,0 +1,1276 @@ +/* + * Copyright by Hannu Savolainen 1993-1997 + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. 2. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#ifndef SOUNDCARD_H +#define SOUNDCARD_H + + +/* + * OSS interface version. With versions earlier than 3.6 this value is + * an integer with value less than 361. In versions 3.6 and later + * it's a six digit hexadecimal value. For example value + * of 0x030600 represents OSS version 3.6.0. + * Use ioctl(fd, OSS_GETVERSION, &int) to get the version number of + * the currently active driver. + */ +#define SOUND_VERSION 0x030802 +#define OPEN_SOUND_SYSTEM + +/* In Linux we need to be prepared for cross compiling */ +#include + +/* Endian macros. */ +# include + +/* + * Supported card ID numbers (Should be somewhere else?) + */ + +#define SNDCARD_ADLIB 1 +#define SNDCARD_SB 2 +#define SNDCARD_PAS 3 +#define SNDCARD_GUS 4 +#define SNDCARD_MPU401 5 +#define SNDCARD_SB16 6 +#define SNDCARD_SB16MIDI 7 +#define SNDCARD_UART6850 8 +#define SNDCARD_GUS16 9 +#define SNDCARD_MSS 10 +#define SNDCARD_PSS 11 +#define SNDCARD_SSCAPE 12 +#define SNDCARD_PSS_MPU 13 +#define SNDCARD_PSS_MSS 14 +#define SNDCARD_SSCAPE_MSS 15 +#define SNDCARD_TRXPRO 16 +#define SNDCARD_TRXPRO_SB 17 +#define SNDCARD_TRXPRO_MPU 18 +#define SNDCARD_MAD16 19 +#define SNDCARD_MAD16_MPU 20 +#define SNDCARD_CS4232 21 +#define SNDCARD_CS4232_MPU 22 +#define SNDCARD_MAUI 23 +#define SNDCARD_PSEUDO_MSS 24 +#define SNDCARD_GUSPNP 25 +#define SNDCARD_UART401 26 +/* Sound card numbers 27 to N are reserved. Don't add more numbers here. */ + +/*********************************** + * IOCTL Commands for /dev/sequencer + */ + +#ifndef _SIOWR +#if defined(_IOWR) && (defined(_AIX) || (!defined(sun) && !defined(sparc) && !defined(__sparc__) && !defined(__INCioctlh) && !defined(__Lynx__))) +/* Use already defined ioctl defines if they exist (except with Sun or Sparc) */ +#define SIOCPARM_MASK IOCPARM_MASK +#define SIOC_VOID IOC_VOID +#define SIOC_OUT IOC_OUT +#define SIOC_IN IOC_IN +#define SIOC_INOUT IOC_INOUT +#define _SIOC_SIZE _IOC_SIZE +#define _SIOC_DIR _IOC_DIR +#define _SIOC_NONE _IOC_NONE +#define _SIOC_READ _IOC_READ +#define _SIOC_WRITE _IOC_WRITE +#define _SIO _IO +#define _SIOR _IOR +#define _SIOW _IOW +#define _SIOWR _IOWR +#else + +/* Ioctl's have the command encoded in the lower word, + * and the size of any in or out parameters in the upper + * word. The high 2 bits of the upper word are used + * to encode the in/out status of the parameter; for now + * we restrict parameters to at most 8191 bytes. + */ +/* #define SIOCTYPE (0xff<<8) */ +#define SIOCPARM_MASK 0x1fff /* parameters must be < 8192 bytes */ +#define SIOC_VOID 0x00000000 /* no parameters */ +#define SIOC_OUT 0x20000000 /* copy out parameters */ +#define SIOC_IN 0x40000000 /* copy in parameters */ +#define SIOC_INOUT (SIOC_IN|SIOC_OUT) +/* the 0x20000000 is so we can distinguish new ioctl's from old */ +#define _SIO(x,y) ((int)(SIOC_VOID|(x<<8)|y)) +#define _SIOR(x,y,t) ((int)(SIOC_OUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) +#define _SIOW(x,y,t) ((int)(SIOC_IN|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) +/* this should be _SIORW, but stdio got there first */ +#define _SIOWR(x,y,t) ((int)(SIOC_INOUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) +#define _SIOC_SIZE(x) ((x>>16)&SIOCPARM_MASK) +#define _SIOC_DIR(x) (x & 0xf0000000) +#define _SIOC_NONE SIOC_VOID +#define _SIOC_READ SIOC_OUT +#define _SIOC_WRITE SIOC_IN +# endif /* _IOWR */ +#endif /* !_SIOWR */ + +#define SNDCTL_SEQ_RESET _SIO ('Q', 0) +#define SNDCTL_SEQ_SYNC _SIO ('Q', 1) +#define SNDCTL_SYNTH_INFO _SIOWR('Q', 2, struct synth_info) +#define SNDCTL_SEQ_CTRLRATE _SIOWR('Q', 3, int) /* Set/get timer resolution (HZ) */ +#define SNDCTL_SEQ_GETOUTCOUNT _SIOR ('Q', 4, int) +#define SNDCTL_SEQ_GETINCOUNT _SIOR ('Q', 5, int) +#define SNDCTL_SEQ_PERCMODE _SIOW ('Q', 6, int) +#define SNDCTL_FM_LOAD_INSTR _SIOW ('Q', 7, struct sbi_instrument) /* Obsolete. Don't use!!!!!! */ +#define SNDCTL_SEQ_TESTMIDI _SIOW ('Q', 8, int) +#define SNDCTL_SEQ_RESETSAMPLES _SIOW ('Q', 9, int) +#define SNDCTL_SEQ_NRSYNTHS _SIOR ('Q',10, int) +#define SNDCTL_SEQ_NRMIDIS _SIOR ('Q',11, int) +#define SNDCTL_MIDI_INFO _SIOWR('Q',12, struct midi_info) +#define SNDCTL_SEQ_THRESHOLD _SIOW ('Q',13, int) +#define SNDCTL_SYNTH_MEMAVL _SIOWR('Q',14, int) /* in=dev#, out=memsize */ +#define SNDCTL_FM_4OP_ENABLE _SIOW ('Q',15, int) /* in=dev# */ +#define SNDCTL_SEQ_PANIC _SIO ('Q',17) +#define SNDCTL_SEQ_OUTOFBAND _SIOW ('Q',18, struct seq_event_rec) +#define SNDCTL_SEQ_GETTIME _SIOR ('Q',19, int) +#define SNDCTL_SYNTH_ID _SIOWR('Q',20, struct synth_info) +#define SNDCTL_SYNTH_CONTROL _SIOWR('Q',21, struct synth_control) +#define SNDCTL_SYNTH_REMOVESAMPLE _SIOWR('Q',22, struct remove_sample) + +typedef struct synth_control +{ + int devno; /* Synthesizer # */ + char data[4000]; /* Device spesific command/data record */ +}synth_control; + +typedef struct remove_sample +{ + int devno; /* Synthesizer # */ + int bankno; /* MIDI bank # (0=General MIDI) */ + int instrno; /* MIDI instrument number */ +} remove_sample; + +typedef struct seq_event_rec { + unsigned char arr[8]; +} seq_event_rec; + +#define SNDCTL_TMR_TIMEBASE _SIOWR('T', 1, int) +#define SNDCTL_TMR_START _SIO ('T', 2) +#define SNDCTL_TMR_STOP _SIO ('T', 3) +#define SNDCTL_TMR_CONTINUE _SIO ('T', 4) +#define SNDCTL_TMR_TEMPO _SIOWR('T', 5, int) +#define SNDCTL_TMR_SOURCE _SIOWR('T', 6, int) +# define TMR_INTERNAL 0x00000001 +# define TMR_EXTERNAL 0x00000002 +# define TMR_MODE_MIDI 0x00000010 +# define TMR_MODE_FSK 0x00000020 +# define TMR_MODE_CLS 0x00000040 +# define TMR_MODE_SMPTE 0x00000080 +#define SNDCTL_TMR_METRONOME _SIOW ('T', 7, int) +#define SNDCTL_TMR_SELECT _SIOW ('T', 8, int) + +/* + * Some big endian/little endian handling macros + */ + +#define _LINUX_PATCHKEY_H_INDIRECT +#include +#undef _LINUX_PATCHKEY_H_INDIRECT + +# if defined(__BYTE_ORDER) +# if __BYTE_ORDER == __BIG_ENDIAN +# define AFMT_S16_NE AFMT_S16_BE +# elif __BYTE_ORDER == __LITTLE_ENDIAN +# define AFMT_S16_NE AFMT_S16_LE +# else +# error "could not determine byte order" +# endif +# endif + +/* + * Sample loading mechanism for internal synthesizers (/dev/sequencer) + * The following patch_info structure has been designed to support + * Gravis UltraSound. It tries to be universal format for uploading + * sample based patches but is probably too limited. + * + * (PBD) As Hannu guessed, the GUS structure is too limited for + * the WaveFront, but this is the right place for a constant definition. + */ + +struct patch_info { + unsigned short key; /* Use WAVE_PATCH here */ +#define WAVE_PATCH _PATCHKEY(0x04) +#define GUS_PATCH WAVE_PATCH +#define WAVEFRONT_PATCH _PATCHKEY(0x06) + + short device_no; /* Synthesizer number */ + short instr_no; /* Midi pgm# */ + + unsigned int mode; +/* + * The least significant byte has the same format than the GUS .PAT + * files + */ +#define WAVE_16_BITS 0x01 /* bit 0 = 8 or 16 bit wave data. */ +#define WAVE_UNSIGNED 0x02 /* bit 1 = Signed - Unsigned data. */ +#define WAVE_LOOPING 0x04 /* bit 2 = looping enabled-1. */ +#define WAVE_BIDIR_LOOP 0x08 /* bit 3 = Set is bidirectional looping. */ +#define WAVE_LOOP_BACK 0x10 /* bit 4 = Set is looping backward. */ +#define WAVE_SUSTAIN_ON 0x20 /* bit 5 = Turn sustaining on. (Env. pts. 3)*/ +#define WAVE_ENVELOPES 0x40 /* bit 6 = Enable envelopes - 1 */ +#define WAVE_FAST_RELEASE 0x80 /* bit 7 = Shut off immediately after note off */ + /* (use the env_rate/env_offs fields). */ +/* Linux specific bits */ +#define WAVE_VIBRATO 0x00010000 /* The vibrato info is valid */ +#define WAVE_TREMOLO 0x00020000 /* The tremolo info is valid */ +#define WAVE_SCALE 0x00040000 /* The scaling info is valid */ +#define WAVE_FRACTIONS 0x00080000 /* Fraction information is valid */ +/* Reserved bits */ +#define WAVE_ROM 0x40000000 /* For future use */ +#define WAVE_MULAW 0x20000000 /* For future use */ +/* Other bits must be zeroed */ + + int len; /* Size of the wave data in bytes */ + int loop_start, loop_end; /* Byte offsets from the beginning */ + +/* + * The base_freq and base_note fields are used when computing the + * playback speed for a note. The base_note defines the tone frequency + * which is heard if the sample is played using the base_freq as the + * playback speed. + * + * The low_note and high_note fields define the minimum and maximum note + * frequencies for which this sample is valid. It is possible to define + * more than one samples for an instrument number at the same time. The + * low_note and high_note fields are used to select the most suitable one. + * + * The fields base_note, high_note and low_note should contain + * the note frequency multiplied by 1000. For example value for the + * middle A is 440*1000. + */ + + unsigned int base_freq; + unsigned int base_note; + unsigned int high_note; + unsigned int low_note; + int panning; /* -128=left, 127=right */ + int detuning; + +/* New fields introduced in version 1.99.5 */ + + /* Envelope. Enabled by mode bit WAVE_ENVELOPES */ + unsigned char env_rate[ 6 ]; /* GUS HW ramping rate */ + unsigned char env_offset[ 6 ]; /* 255 == 100% */ + + /* + * The tremolo, vibrato and scale info are not supported yet. + * Enable by setting the mode bits WAVE_TREMOLO, WAVE_VIBRATO or + * WAVE_SCALE + */ + + unsigned char tremolo_sweep; + unsigned char tremolo_rate; + unsigned char tremolo_depth; + + unsigned char vibrato_sweep; + unsigned char vibrato_rate; + unsigned char vibrato_depth; + + int scale_frequency; + unsigned int scale_factor; /* from 0 to 2048 or 0 to 2 */ + + int volume; + int fractions; + int reserved1; + int spare[2]; + char data[1]; /* The waveform data starts here */ + }; + +struct sysex_info { + short key; /* Use SYSEX_PATCH or MAUI_PATCH here */ +#define SYSEX_PATCH _PATCHKEY(0x05) +#define MAUI_PATCH _PATCHKEY(0x06) + short device_no; /* Synthesizer number */ + int len; /* Size of the sysex data in bytes */ + unsigned char data[1]; /* Sysex data starts here */ + }; + +/* + * /dev/sequencer input events. + * + * The data written to the /dev/sequencer is a stream of events. Events + * are records of 4 or 8 bytes. The first byte defines the size. + * Any number of events can be written with a write call. There + * is a set of macros for sending these events. Use these macros if you + * want to maximize portability of your program. + * + * Events SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO. Are also input events. + * (All input events are currently 4 bytes long. Be prepared to support + * 8 byte events also. If you receive any event having first byte >= 128, + * it's a 8 byte event. + * + * The events are documented at the end of this file. + * + * Normal events (4 bytes) + * There is also a 8 byte version of most of the 4 byte events. The + * 8 byte one is recommended. + */ +#define SEQ_NOTEOFF 0 +#define SEQ_FMNOTEOFF SEQ_NOTEOFF /* Just old name */ +#define SEQ_NOTEON 1 +#define SEQ_FMNOTEON SEQ_NOTEON +#define SEQ_WAIT TMR_WAIT_ABS +#define SEQ_PGMCHANGE 3 +#define SEQ_FMPGMCHANGE SEQ_PGMCHANGE +#define SEQ_SYNCTIMER TMR_START +#define SEQ_MIDIPUTC 5 +#define SEQ_DRUMON 6 /*** OBSOLETE ***/ +#define SEQ_DRUMOFF 7 /*** OBSOLETE ***/ +#define SEQ_ECHO TMR_ECHO /* For synching programs with output */ +#define SEQ_AFTERTOUCH 9 +#define SEQ_CONTROLLER 10 + +/******************************************* + * Midi controller numbers + ******************************************* + * Controllers 0 to 31 (0x00 to 0x1f) and + * 32 to 63 (0x20 to 0x3f) are continuous + * controllers. + * In the MIDI 1.0 these controllers are sent using + * two messages. Controller numbers 0 to 31 are used + * to send the MSB and the controller numbers 32 to 63 + * are for the LSB. Note that just 7 bits are used in MIDI bytes. + */ + +#define CTL_BANK_SELECT 0x00 +#define CTL_MODWHEEL 0x01 +#define CTL_BREATH 0x02 +/* undefined 0x03 */ +#define CTL_FOOT 0x04 +#define CTL_PORTAMENTO_TIME 0x05 +#define CTL_DATA_ENTRY 0x06 +#define CTL_MAIN_VOLUME 0x07 +#define CTL_BALANCE 0x08 +/* undefined 0x09 */ +#define CTL_PAN 0x0a +#define CTL_EXPRESSION 0x0b +/* undefined 0x0c */ +/* undefined 0x0d */ +/* undefined 0x0e */ +/* undefined 0x0f */ +#define CTL_GENERAL_PURPOSE1 0x10 +#define CTL_GENERAL_PURPOSE2 0x11 +#define CTL_GENERAL_PURPOSE3 0x12 +#define CTL_GENERAL_PURPOSE4 0x13 +/* undefined 0x14 - 0x1f */ + +/* undefined 0x20 */ +/* The controller numbers 0x21 to 0x3f are reserved for the */ +/* least significant bytes of the controllers 0x00 to 0x1f. */ +/* These controllers are not recognised by the driver. */ + +/* Controllers 64 to 69 (0x40 to 0x45) are on/off switches. */ +/* 0=OFF and 127=ON (intermediate values are possible) */ +#define CTL_DAMPER_PEDAL 0x40 +#define CTL_SUSTAIN 0x40 /* Alias */ +#define CTL_HOLD 0x40 /* Alias */ +#define CTL_PORTAMENTO 0x41 +#define CTL_SOSTENUTO 0x42 +#define CTL_SOFT_PEDAL 0x43 +/* undefined 0x44 */ +#define CTL_HOLD2 0x45 +/* undefined 0x46 - 0x4f */ + +#define CTL_GENERAL_PURPOSE5 0x50 +#define CTL_GENERAL_PURPOSE6 0x51 +#define CTL_GENERAL_PURPOSE7 0x52 +#define CTL_GENERAL_PURPOSE8 0x53 +/* undefined 0x54 - 0x5a */ +#define CTL_EXT_EFF_DEPTH 0x5b +#define CTL_TREMOLO_DEPTH 0x5c +#define CTL_CHORUS_DEPTH 0x5d +#define CTL_DETUNE_DEPTH 0x5e +#define CTL_CELESTE_DEPTH 0x5e /* Alias for the above one */ +#define CTL_PHASER_DEPTH 0x5f +#define CTL_DATA_INCREMENT 0x60 +#define CTL_DATA_DECREMENT 0x61 +#define CTL_NONREG_PARM_NUM_LSB 0x62 +#define CTL_NONREG_PARM_NUM_MSB 0x63 +#define CTL_REGIST_PARM_NUM_LSB 0x64 +#define CTL_REGIST_PARM_NUM_MSB 0x65 +/* undefined 0x66 - 0x78 */ +/* reserved 0x79 - 0x7f */ + +/* Pseudo controllers (not midi compatible) */ +#define CTRL_PITCH_BENDER 255 +#define CTRL_PITCH_BENDER_RANGE 254 +#define CTRL_EXPRESSION 253 /* Obsolete */ +#define CTRL_MAIN_VOLUME 252 /* Obsolete */ +#define SEQ_BALANCE 11 +#define SEQ_VOLMODE 12 + +/* + * Volume mode decides how volumes are used + */ + +#define VOL_METHOD_ADAGIO 1 +#define VOL_METHOD_LINEAR 2 + +/* + * Note! SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO are used also as + * input events. + */ + +/* + * Event codes 0xf0 to 0xfc are reserved for future extensions. + */ + +#define SEQ_FULLSIZE 0xfd /* Long events */ +/* + * SEQ_FULLSIZE events are used for loading patches/samples to the + * synthesizer devices. These events are passed directly to the driver + * of the associated synthesizer device. There is no limit to the size + * of the extended events. These events are not queued but executed + * immediately when the write() is called (execution can take several + * seconds of time). + * + * When a SEQ_FULLSIZE message is written to the device, it must + * be written using exactly one write() call. Other events cannot + * be mixed to the same write. + * + * For FM synths (YM3812/OPL3) use struct sbi_instrument and write it to the + * /dev/sequencer. Don't write other data together with the instrument structure + * Set the key field of the structure to FM_PATCH. The device field is used to + * route the patch to the corresponding device. + * + * For wave table use struct patch_info. Initialize the key field + * to WAVE_PATCH. + */ +#define SEQ_PRIVATE 0xfe /* Low level HW dependent events (8 bytes) */ +#define SEQ_EXTENDED 0xff /* Extended events (8 bytes) OBSOLETE */ + +/* + * Record for FM patches + */ + +typedef unsigned char sbi_instr_data[32]; + +struct sbi_instrument { + unsigned short key; /* FM_PATCH or OPL3_PATCH */ +#define FM_PATCH _PATCHKEY(0x01) +#define OPL3_PATCH _PATCHKEY(0x03) + short device; /* Synth# (0-4) */ + int channel; /* Program# to be initialized */ + sbi_instr_data operators; /* Register settings for operator cells (.SBI format) */ + }; + +struct synth_info { /* Read only */ + char name[30]; + int device; /* 0-N. INITIALIZE BEFORE CALLING */ + int synth_type; +#define SYNTH_TYPE_FM 0 +#define SYNTH_TYPE_SAMPLE 1 +#define SYNTH_TYPE_MIDI 2 /* Midi interface */ + + int synth_subtype; +#define FM_TYPE_ADLIB 0x00 +#define FM_TYPE_OPL3 0x01 +#define MIDI_TYPE_MPU401 0x401 + +#define SAMPLE_TYPE_BASIC 0x10 +#define SAMPLE_TYPE_GUS SAMPLE_TYPE_BASIC +#define SAMPLE_TYPE_WAVEFRONT 0x11 + + int perc_mode; /* No longer supported */ + int nr_voices; + int nr_drums; /* Obsolete field */ + int instr_bank_size; + unsigned int capabilities; +#define SYNTH_CAP_PERCMODE 0x00000001 /* No longer used */ +#define SYNTH_CAP_OPL3 0x00000002 /* Set if OPL3 supported */ +#define SYNTH_CAP_INPUT 0x00000004 /* Input (MIDI) device */ + int dummies[19]; /* Reserve space */ + }; + +struct sound_timer_info { + char name[32]; + int caps; + }; + +#define MIDI_CAP_MPU401 1 /* MPU-401 intelligent mode */ + +struct midi_info { + char name[30]; + int device; /* 0-N. INITIALIZE BEFORE CALLING */ + unsigned int capabilities; /* To be defined later */ + int dev_type; + int dummies[18]; /* Reserve space */ + }; + +/******************************************** + * ioctl commands for the /dev/midi## + */ +typedef struct { + unsigned char cmd; + char nr_args, nr_returns; + unsigned char data[30]; + } mpu_command_rec; + +#define SNDCTL_MIDI_PRETIME _SIOWR('m', 0, int) +#define SNDCTL_MIDI_MPUMODE _SIOWR('m', 1, int) +#define SNDCTL_MIDI_MPUCMD _SIOWR('m', 2, mpu_command_rec) + +/******************************************** + * IOCTL commands for /dev/dsp and /dev/audio + */ + +#define SNDCTL_DSP_RESET _SIO ('P', 0) +#define SNDCTL_DSP_SYNC _SIO ('P', 1) +#define SNDCTL_DSP_SPEED _SIOWR('P', 2, int) +#define SNDCTL_DSP_STEREO _SIOWR('P', 3, int) +#define SNDCTL_DSP_GETBLKSIZE _SIOWR('P', 4, int) +#define SNDCTL_DSP_SAMPLESIZE SNDCTL_DSP_SETFMT +#define SNDCTL_DSP_CHANNELS _SIOWR('P', 6, int) +#define SOUND_PCM_WRITE_CHANNELS SNDCTL_DSP_CHANNELS +#define SOUND_PCM_WRITE_FILTER _SIOWR('P', 7, int) +#define SNDCTL_DSP_POST _SIO ('P', 8) +#define SNDCTL_DSP_SUBDIVIDE _SIOWR('P', 9, int) +#define SNDCTL_DSP_SETFRAGMENT _SIOWR('P',10, int) + +/* Audio data formats (Note! U8=8 and S16_LE=16 for compatibility) */ +#define SNDCTL_DSP_GETFMTS _SIOR ('P',11, int) /* Returns a mask */ +#define SNDCTL_DSP_SETFMT _SIOWR('P',5, int) /* Selects ONE fmt*/ +# define AFMT_QUERY 0x00000000 /* Return current fmt */ +# define AFMT_MU_LAW 0x00000001 +# define AFMT_A_LAW 0x00000002 +# define AFMT_IMA_ADPCM 0x00000004 +# define AFMT_U8 0x00000008 +# define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/ +# define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */ +# define AFMT_S8 0x00000040 +# define AFMT_U16_LE 0x00000080 /* Little endian U16 */ +# define AFMT_U16_BE 0x00000100 /* Big endian U16 */ +# define AFMT_MPEG 0x00000200 /* MPEG (2) audio */ +# define AFMT_AC3 0x00000400 /* Dolby Digital AC3 */ + +/* + * Buffer status queries. + */ +typedef struct audio_buf_info { + int fragments; /* # of available fragments (partially usend ones not counted) */ + int fragstotal; /* Total # of fragments allocated */ + int fragsize; /* Size of a fragment in bytes */ + + int bytes; /* Available space in bytes (includes partially used fragments) */ + /* Note! 'bytes' could be more than fragments*fragsize */ + } audio_buf_info; + +#define SNDCTL_DSP_GETOSPACE _SIOR ('P',12, audio_buf_info) +#define SNDCTL_DSP_GETISPACE _SIOR ('P',13, audio_buf_info) +#define SNDCTL_DSP_NONBLOCK _SIO ('P',14) +#define SNDCTL_DSP_GETCAPS _SIOR ('P',15, int) +# define DSP_CAP_REVISION 0x000000ff /* Bits for revision level (0 to 255) */ +# define DSP_CAP_DUPLEX 0x00000100 /* Full duplex record/playback */ +# define DSP_CAP_REALTIME 0x00000200 /* Real time capability */ +# define DSP_CAP_BATCH 0x00000400 /* Device has some kind of */ + /* internal buffers which may */ + /* cause some delays and */ + /* decrease precision of timing */ +# define DSP_CAP_COPROC 0x00000800 /* Has a coprocessor */ + /* Sometimes it's a DSP */ + /* but usually not */ +# define DSP_CAP_TRIGGER 0x00001000 /* Supports SETTRIGGER */ +# define DSP_CAP_MMAP 0x00002000 /* Supports mmap() */ +# define DSP_CAP_MULTI 0x00004000 /* support multiple open */ +# define DSP_CAP_BIND 0x00008000 /* channel binding to front/rear/cneter/lfe */ + + +#define SNDCTL_DSP_GETTRIGGER _SIOR ('P',16, int) +#define SNDCTL_DSP_SETTRIGGER _SIOW ('P',16, int) +# define PCM_ENABLE_INPUT 0x00000001 +# define PCM_ENABLE_OUTPUT 0x00000002 + +typedef struct count_info { + int bytes; /* Total # of bytes processed */ + int blocks; /* # of fragment transitions since last time */ + int ptr; /* Current DMA pointer value */ + } count_info; + +#define SNDCTL_DSP_GETIPTR _SIOR ('P',17, count_info) +#define SNDCTL_DSP_GETOPTR _SIOR ('P',18, count_info) + +typedef struct buffmem_desc { + unsigned *buffer; + int size; + } buffmem_desc; +#define SNDCTL_DSP_MAPINBUF _SIOR ('P', 19, buffmem_desc) +#define SNDCTL_DSP_MAPOUTBUF _SIOR ('P', 20, buffmem_desc) +#define SNDCTL_DSP_SETSYNCRO _SIO ('P', 21) +#define SNDCTL_DSP_SETDUPLEX _SIO ('P', 22) +#define SNDCTL_DSP_GETODELAY _SIOR ('P', 23, int) + +#define SNDCTL_DSP_GETCHANNELMASK _SIOWR('P', 64, int) +#define SNDCTL_DSP_BIND_CHANNEL _SIOWR('P', 65, int) +# define DSP_BIND_QUERY 0x00000000 +# define DSP_BIND_FRONT 0x00000001 +# define DSP_BIND_SURR 0x00000002 +# define DSP_BIND_CENTER_LFE 0x00000004 +# define DSP_BIND_HANDSET 0x00000008 +# define DSP_BIND_MIC 0x00000010 +# define DSP_BIND_MODEM1 0x00000020 +# define DSP_BIND_MODEM2 0x00000040 +# define DSP_BIND_I2S 0x00000080 +# define DSP_BIND_SPDIF 0x00000100 + +#define SNDCTL_DSP_SETSPDIF _SIOW ('P', 66, int) +#define SNDCTL_DSP_GETSPDIF _SIOR ('P', 67, int) +# define SPDIF_PRO 0x0001 +# define SPDIF_N_AUD 0x0002 +# define SPDIF_COPY 0x0004 +# define SPDIF_PRE 0x0008 +# define SPDIF_CC 0x07f0 +# define SPDIF_L 0x0800 +# define SPDIF_DRS 0x4000 +# define SPDIF_V 0x8000 + +/* + * Application's profile defines the way how playback underrun situations should be handled. + * + * APF_NORMAL (the default) and APF_NETWORK make the driver to cleanup the + * playback buffer whenever an underrun occurs. This consumes some time + * prevents looping the existing buffer. + * APF_CPUINTENS is intended to be set by CPU intensive applications which + * are likely to run out of time occasionally. In this mode the buffer cleanup is + * disabled which saves CPU time but also let's the previous buffer content to + * be played during the "pause" after the underrun. + */ +#define SNDCTL_DSP_PROFILE _SIOW ('P', 23, int) +#define APF_NORMAL 0 /* Normal applications */ +#define APF_NETWORK 1 /* Underruns probably caused by an "external" delay */ +#define APF_CPUINTENS 2 /* Underruns probably caused by "overheating" the CPU */ + +#define SOUND_PCM_READ_RATE _SIOR ('P', 2, int) +#define SOUND_PCM_READ_CHANNELS _SIOR ('P', 6, int) +#define SOUND_PCM_READ_BITS _SIOR ('P', 5, int) +#define SOUND_PCM_READ_FILTER _SIOR ('P', 7, int) + +/* Some alias names */ +#define SOUND_PCM_WRITE_BITS SNDCTL_DSP_SETFMT +#define SOUND_PCM_WRITE_RATE SNDCTL_DSP_SPEED +#define SOUND_PCM_POST SNDCTL_DSP_POST +#define SOUND_PCM_RESET SNDCTL_DSP_RESET +#define SOUND_PCM_SYNC SNDCTL_DSP_SYNC +#define SOUND_PCM_SUBDIVIDE SNDCTL_DSP_SUBDIVIDE +#define SOUND_PCM_SETFRAGMENT SNDCTL_DSP_SETFRAGMENT +#define SOUND_PCM_GETFMTS SNDCTL_DSP_GETFMTS +#define SOUND_PCM_SETFMT SNDCTL_DSP_SETFMT +#define SOUND_PCM_GETOSPACE SNDCTL_DSP_GETOSPACE +#define SOUND_PCM_GETISPACE SNDCTL_DSP_GETISPACE +#define SOUND_PCM_NONBLOCK SNDCTL_DSP_NONBLOCK +#define SOUND_PCM_GETCAPS SNDCTL_DSP_GETCAPS +#define SOUND_PCM_GETTRIGGER SNDCTL_DSP_GETTRIGGER +#define SOUND_PCM_SETTRIGGER SNDCTL_DSP_SETTRIGGER +#define SOUND_PCM_SETSYNCRO SNDCTL_DSP_SETSYNCRO +#define SOUND_PCM_GETIPTR SNDCTL_DSP_GETIPTR +#define SOUND_PCM_GETOPTR SNDCTL_DSP_GETOPTR +#define SOUND_PCM_MAPINBUF SNDCTL_DSP_MAPINBUF +#define SOUND_PCM_MAPOUTBUF SNDCTL_DSP_MAPOUTBUF + +/* + * ioctl calls to be used in communication with coprocessors and + * DSP chips. + */ + +typedef struct copr_buffer { + int command; /* Set to 0 if not used */ + int flags; +#define CPF_NONE 0x0000 +#define CPF_FIRST 0x0001 /* First block */ +#define CPF_LAST 0x0002 /* Last block */ + int len; + int offs; /* If required by the device (0 if not used) */ + + unsigned char data[4000]; /* NOTE! 4000 is not 4k */ + } copr_buffer; + +typedef struct copr_debug_buf { + int command; /* Used internally. Set to 0 */ + int parm1; + int parm2; + int flags; + int len; /* Length of data in bytes */ + } copr_debug_buf; + +typedef struct copr_msg { + int len; + unsigned char data[4000]; + } copr_msg; + +#define SNDCTL_COPR_RESET _SIO ('C', 0) +#define SNDCTL_COPR_LOAD _SIOWR('C', 1, copr_buffer) +#define SNDCTL_COPR_RDATA _SIOWR('C', 2, copr_debug_buf) +#define SNDCTL_COPR_RCODE _SIOWR('C', 3, copr_debug_buf) +#define SNDCTL_COPR_WDATA _SIOW ('C', 4, copr_debug_buf) +#define SNDCTL_COPR_WCODE _SIOW ('C', 5, copr_debug_buf) +#define SNDCTL_COPR_RUN _SIOWR('C', 6, copr_debug_buf) +#define SNDCTL_COPR_HALT _SIOWR('C', 7, copr_debug_buf) +#define SNDCTL_COPR_SENDMSG _SIOWR('C', 8, copr_msg) +#define SNDCTL_COPR_RCVMSG _SIOR ('C', 9, copr_msg) + +/********************************************* + * IOCTL commands for /dev/mixer + */ + +/* + * Mixer devices + * + * There can be up to 20 different analog mixer channels. The + * SOUND_MIXER_NRDEVICES gives the currently supported maximum. + * The SOUND_MIXER_READ_DEVMASK returns a bitmask which tells + * the devices supported by the particular mixer. + */ + +#define SOUND_MIXER_NRDEVICES 25 +#define SOUND_MIXER_VOLUME 0 +#define SOUND_MIXER_BASS 1 +#define SOUND_MIXER_TREBLE 2 +#define SOUND_MIXER_SYNTH 3 +#define SOUND_MIXER_PCM 4 +#define SOUND_MIXER_SPEAKER 5 +#define SOUND_MIXER_LINE 6 +#define SOUND_MIXER_MIC 7 +#define SOUND_MIXER_CD 8 +#define SOUND_MIXER_IMIX 9 /* Recording monitor */ +#define SOUND_MIXER_ALTPCM 10 +#define SOUND_MIXER_RECLEV 11 /* Recording level */ +#define SOUND_MIXER_IGAIN 12 /* Input gain */ +#define SOUND_MIXER_OGAIN 13 /* Output gain */ +/* + * The AD1848 codec and compatibles have three line level inputs + * (line, aux1 and aux2). Since each card manufacturer have assigned + * different meanings to these inputs, it's inpractical to assign + * specific meanings (line, cd, synth etc.) to them. + */ +#define SOUND_MIXER_LINE1 14 /* Input source 1 (aux1) */ +#define SOUND_MIXER_LINE2 15 /* Input source 2 (aux2) */ +#define SOUND_MIXER_LINE3 16 /* Input source 3 (line) */ +#define SOUND_MIXER_DIGITAL1 17 /* Digital (input) 1 */ +#define SOUND_MIXER_DIGITAL2 18 /* Digital (input) 2 */ +#define SOUND_MIXER_DIGITAL3 19 /* Digital (input) 3 */ +#define SOUND_MIXER_PHONEIN 20 /* Phone input */ +#define SOUND_MIXER_PHONEOUT 21 /* Phone output */ +#define SOUND_MIXER_VIDEO 22 /* Video/TV (audio) in */ +#define SOUND_MIXER_RADIO 23 /* Radio in */ +#define SOUND_MIXER_MONITOR 24 /* Monitor (usually mic) volume */ + +/* Some on/off settings (SOUND_SPECIAL_MIN - SOUND_SPECIAL_MAX) */ +/* Not counted to SOUND_MIXER_NRDEVICES, but use the same number space */ +#define SOUND_ONOFF_MIN 28 +#define SOUND_ONOFF_MAX 30 + +/* Note! Number 31 cannot be used since the sign bit is reserved */ +#define SOUND_MIXER_NONE 31 + +/* + * The following unsupported macros are no longer functional. + * Use SOUND_MIXER_PRIVATE# macros in future. + */ +#define SOUND_MIXER_ENHANCE SOUND_MIXER_NONE +#define SOUND_MIXER_MUTE SOUND_MIXER_NONE +#define SOUND_MIXER_LOUD SOUND_MIXER_NONE + + +#define SOUND_DEVICE_LABELS {"Vol ", "Bass ", "Trebl", "Synth", "Pcm ", "Spkr ", "Line ", \ + "Mic ", "CD ", "Mix ", "Pcm2 ", "Rec ", "IGain", "OGain", \ + "Line1", "Line2", "Line3", "Digital1", "Digital2", "Digital3", \ + "PhoneIn", "PhoneOut", "Video", "Radio", "Monitor"} + +#define SOUND_DEVICE_NAMES {"vol", "bass", "treble", "synth", "pcm", "speaker", "line", \ + "mic", "cd", "mix", "pcm2", "rec", "igain", "ogain", \ + "line1", "line2", "line3", "dig1", "dig2", "dig3", \ + "phin", "phout", "video", "radio", "monitor"} + +/* Device bitmask identifiers */ + +#define SOUND_MIXER_RECSRC 0xff /* Arg contains a bit for each recording source */ +#define SOUND_MIXER_DEVMASK 0xfe /* Arg contains a bit for each supported device */ +#define SOUND_MIXER_RECMASK 0xfd /* Arg contains a bit for each supported recording source */ +#define SOUND_MIXER_CAPS 0xfc +# define SOUND_CAP_EXCL_INPUT 0x00000001 /* Only one recording source at a time */ +#define SOUND_MIXER_STEREODEVS 0xfb /* Mixer channels supporting stereo */ +#define SOUND_MIXER_OUTSRC 0xfa /* Arg contains a bit for each input source to output */ +#define SOUND_MIXER_OUTMASK 0xf9 /* Arg contains a bit for each supported input source to output */ + +/* Device mask bits */ + +#define SOUND_MASK_VOLUME (1 << SOUND_MIXER_VOLUME) +#define SOUND_MASK_BASS (1 << SOUND_MIXER_BASS) +#define SOUND_MASK_TREBLE (1 << SOUND_MIXER_TREBLE) +#define SOUND_MASK_SYNTH (1 << SOUND_MIXER_SYNTH) +#define SOUND_MASK_PCM (1 << SOUND_MIXER_PCM) +#define SOUND_MASK_SPEAKER (1 << SOUND_MIXER_SPEAKER) +#define SOUND_MASK_LINE (1 << SOUND_MIXER_LINE) +#define SOUND_MASK_MIC (1 << SOUND_MIXER_MIC) +#define SOUND_MASK_CD (1 << SOUND_MIXER_CD) +#define SOUND_MASK_IMIX (1 << SOUND_MIXER_IMIX) +#define SOUND_MASK_ALTPCM (1 << SOUND_MIXER_ALTPCM) +#define SOUND_MASK_RECLEV (1 << SOUND_MIXER_RECLEV) +#define SOUND_MASK_IGAIN (1 << SOUND_MIXER_IGAIN) +#define SOUND_MASK_OGAIN (1 << SOUND_MIXER_OGAIN) +#define SOUND_MASK_LINE1 (1 << SOUND_MIXER_LINE1) +#define SOUND_MASK_LINE2 (1 << SOUND_MIXER_LINE2) +#define SOUND_MASK_LINE3 (1 << SOUND_MIXER_LINE3) +#define SOUND_MASK_DIGITAL1 (1 << SOUND_MIXER_DIGITAL1) +#define SOUND_MASK_DIGITAL2 (1 << SOUND_MIXER_DIGITAL2) +#define SOUND_MASK_DIGITAL3 (1 << SOUND_MIXER_DIGITAL3) +#define SOUND_MASK_PHONEIN (1 << SOUND_MIXER_PHONEIN) +#define SOUND_MASK_PHONEOUT (1 << SOUND_MIXER_PHONEOUT) +#define SOUND_MASK_RADIO (1 << SOUND_MIXER_RADIO) +#define SOUND_MASK_VIDEO (1 << SOUND_MIXER_VIDEO) +#define SOUND_MASK_MONITOR (1 << SOUND_MIXER_MONITOR) + +/* Obsolete macros */ +#define SOUND_MASK_MUTE (1 << SOUND_MIXER_MUTE) +#define SOUND_MASK_ENHANCE (1 << SOUND_MIXER_ENHANCE) +#define SOUND_MASK_LOUD (1 << SOUND_MIXER_LOUD) + +#define MIXER_READ(dev) _SIOR('M', dev, int) +#define SOUND_MIXER_READ_VOLUME MIXER_READ(SOUND_MIXER_VOLUME) +#define SOUND_MIXER_READ_BASS MIXER_READ(SOUND_MIXER_BASS) +#define SOUND_MIXER_READ_TREBLE MIXER_READ(SOUND_MIXER_TREBLE) +#define SOUND_MIXER_READ_SYNTH MIXER_READ(SOUND_MIXER_SYNTH) +#define SOUND_MIXER_READ_PCM MIXER_READ(SOUND_MIXER_PCM) +#define SOUND_MIXER_READ_SPEAKER MIXER_READ(SOUND_MIXER_SPEAKER) +#define SOUND_MIXER_READ_LINE MIXER_READ(SOUND_MIXER_LINE) +#define SOUND_MIXER_READ_MIC MIXER_READ(SOUND_MIXER_MIC) +#define SOUND_MIXER_READ_CD MIXER_READ(SOUND_MIXER_CD) +#define SOUND_MIXER_READ_IMIX MIXER_READ(SOUND_MIXER_IMIX) +#define SOUND_MIXER_READ_ALTPCM MIXER_READ(SOUND_MIXER_ALTPCM) +#define SOUND_MIXER_READ_RECLEV MIXER_READ(SOUND_MIXER_RECLEV) +#define SOUND_MIXER_READ_IGAIN MIXER_READ(SOUND_MIXER_IGAIN) +#define SOUND_MIXER_READ_OGAIN MIXER_READ(SOUND_MIXER_OGAIN) +#define SOUND_MIXER_READ_LINE1 MIXER_READ(SOUND_MIXER_LINE1) +#define SOUND_MIXER_READ_LINE2 MIXER_READ(SOUND_MIXER_LINE2) +#define SOUND_MIXER_READ_LINE3 MIXER_READ(SOUND_MIXER_LINE3) + +/* Obsolete macros */ +#define SOUND_MIXER_READ_MUTE MIXER_READ(SOUND_MIXER_MUTE) +#define SOUND_MIXER_READ_ENHANCE MIXER_READ(SOUND_MIXER_ENHANCE) +#define SOUND_MIXER_READ_LOUD MIXER_READ(SOUND_MIXER_LOUD) + +#define SOUND_MIXER_READ_RECSRC MIXER_READ(SOUND_MIXER_RECSRC) +#define SOUND_MIXER_READ_DEVMASK MIXER_READ(SOUND_MIXER_DEVMASK) +#define SOUND_MIXER_READ_RECMASK MIXER_READ(SOUND_MIXER_RECMASK) +#define SOUND_MIXER_READ_STEREODEVS MIXER_READ(SOUND_MIXER_STEREODEVS) +#define SOUND_MIXER_READ_CAPS MIXER_READ(SOUND_MIXER_CAPS) + +#define MIXER_WRITE(dev) _SIOWR('M', dev, int) +#define SOUND_MIXER_WRITE_VOLUME MIXER_WRITE(SOUND_MIXER_VOLUME) +#define SOUND_MIXER_WRITE_BASS MIXER_WRITE(SOUND_MIXER_BASS) +#define SOUND_MIXER_WRITE_TREBLE MIXER_WRITE(SOUND_MIXER_TREBLE) +#define SOUND_MIXER_WRITE_SYNTH MIXER_WRITE(SOUND_MIXER_SYNTH) +#define SOUND_MIXER_WRITE_PCM MIXER_WRITE(SOUND_MIXER_PCM) +#define SOUND_MIXER_WRITE_SPEAKER MIXER_WRITE(SOUND_MIXER_SPEAKER) +#define SOUND_MIXER_WRITE_LINE MIXER_WRITE(SOUND_MIXER_LINE) +#define SOUND_MIXER_WRITE_MIC MIXER_WRITE(SOUND_MIXER_MIC) +#define SOUND_MIXER_WRITE_CD MIXER_WRITE(SOUND_MIXER_CD) +#define SOUND_MIXER_WRITE_IMIX MIXER_WRITE(SOUND_MIXER_IMIX) +#define SOUND_MIXER_WRITE_ALTPCM MIXER_WRITE(SOUND_MIXER_ALTPCM) +#define SOUND_MIXER_WRITE_RECLEV MIXER_WRITE(SOUND_MIXER_RECLEV) +#define SOUND_MIXER_WRITE_IGAIN MIXER_WRITE(SOUND_MIXER_IGAIN) +#define SOUND_MIXER_WRITE_OGAIN MIXER_WRITE(SOUND_MIXER_OGAIN) +#define SOUND_MIXER_WRITE_LINE1 MIXER_WRITE(SOUND_MIXER_LINE1) +#define SOUND_MIXER_WRITE_LINE2 MIXER_WRITE(SOUND_MIXER_LINE2) +#define SOUND_MIXER_WRITE_LINE3 MIXER_WRITE(SOUND_MIXER_LINE3) + +/* Obsolete macros */ +#define SOUND_MIXER_WRITE_MUTE MIXER_WRITE(SOUND_MIXER_MUTE) +#define SOUND_MIXER_WRITE_ENHANCE MIXER_WRITE(SOUND_MIXER_ENHANCE) +#define SOUND_MIXER_WRITE_LOUD MIXER_WRITE(SOUND_MIXER_LOUD) + +#define SOUND_MIXER_WRITE_RECSRC MIXER_WRITE(SOUND_MIXER_RECSRC) + +typedef struct mixer_info +{ + char id[16]; + char name[32]; + int modify_counter; + int fillers[10]; +} mixer_info; + +typedef struct _old_mixer_info /* Obsolete */ +{ + char id[16]; + char name[32]; +} _old_mixer_info; + +#define SOUND_MIXER_INFO _SIOR ('M', 101, mixer_info) +#define SOUND_OLD_MIXER_INFO _SIOR ('M', 101, _old_mixer_info) + +/* + * A mechanism for accessing "proprietary" mixer features. This method + * permits passing 128 bytes of arbitrary data between a mixer application + * and the mixer driver. Interpretation of the record is defined by + * the particular mixer driver. + */ +typedef unsigned char mixer_record[128]; + +#define SOUND_MIXER_ACCESS _SIOWR('M', 102, mixer_record) + +/* + * Two ioctls for special souncard function + */ +#define SOUND_MIXER_AGC _SIOWR('M', 103, int) +#define SOUND_MIXER_3DSE _SIOWR('M', 104, int) + +/* + * The SOUND_MIXER_PRIVATE# commands can be redefined by low level drivers. + * These features can be used when accessing device specific features. + */ +#define SOUND_MIXER_PRIVATE1 _SIOWR('M', 111, int) +#define SOUND_MIXER_PRIVATE2 _SIOWR('M', 112, int) +#define SOUND_MIXER_PRIVATE3 _SIOWR('M', 113, int) +#define SOUND_MIXER_PRIVATE4 _SIOWR('M', 114, int) +#define SOUND_MIXER_PRIVATE5 _SIOWR('M', 115, int) + +/* + * SOUND_MIXER_GETLEVELS and SOUND_MIXER_SETLEVELS calls can be used + * for querying current mixer settings from the driver and for loading + * default volume settings _prior_ activating the mixer (loading + * doesn't affect current state of the mixer hardware). These calls + * are for internal use only. + */ + +typedef struct mixer_vol_table { + int num; /* Index to volume table */ + char name[32]; + int levels[32]; +} mixer_vol_table; + +#define SOUND_MIXER_GETLEVELS _SIOWR('M', 116, mixer_vol_table) +#define SOUND_MIXER_SETLEVELS _SIOWR('M', 117, mixer_vol_table) + +/* + * An ioctl for identifying the driver version. It will return value + * of the SOUND_VERSION macro used when compiling the driver. + * This call was introduced in OSS version 3.6 and it will not work + * with earlier versions (returns EINVAL). + */ +#define OSS_GETVERSION _SIOR ('M', 118, int) + +/* + * Level 2 event types for /dev/sequencer + */ + +/* + * The 4 most significant bits of byte 0 specify the class of + * the event: + * + * 0x8X = system level events, + * 0x9X = device/port specific events, event[1] = device/port, + * The last 4 bits give the subtype: + * 0x02 = Channel event (event[3] = chn). + * 0x01 = note event (event[4] = note). + * (0x01 is not used alone but always with bit 0x02). + * event[2] = MIDI message code (0x80=note off etc.) + * + */ + +#define EV_SEQ_LOCAL 0x80 +#define EV_TIMING 0x81 +#define EV_CHN_COMMON 0x92 +#define EV_CHN_VOICE 0x93 +#define EV_SYSEX 0x94 +/* + * Event types 200 to 220 are reserved for application use. + * These numbers will not be used by the driver. + */ + +/* + * Events for event type EV_CHN_VOICE + */ + +#define MIDI_NOTEOFF 0x80 +#define MIDI_NOTEON 0x90 +#define MIDI_KEY_PRESSURE 0xA0 + +/* + * Events for event type EV_CHN_COMMON + */ + +#define MIDI_CTL_CHANGE 0xB0 +#define MIDI_PGM_CHANGE 0xC0 +#define MIDI_CHN_PRESSURE 0xD0 +#define MIDI_PITCH_BEND 0xE0 + +#define MIDI_SYSTEM_PREFIX 0xF0 + +/* + * Timer event types + */ +#define TMR_WAIT_REL 1 /* Time relative to the prev time */ +#define TMR_WAIT_ABS 2 /* Absolute time since TMR_START */ +#define TMR_STOP 3 +#define TMR_START 4 +#define TMR_CONTINUE 5 +#define TMR_TEMPO 6 +#define TMR_ECHO 8 +#define TMR_CLOCK 9 /* MIDI clock */ +#define TMR_SPP 10 /* Song position pointer */ +#define TMR_TIMESIG 11 /* Time signature */ + +/* + * Local event types + */ +#define LOCL_STARTAUDIO 1 + +/* + * Some convenience macros to simplify programming of the + * /dev/sequencer interface + * + * This is a legacy interface for applications written against + * the OSSlib-3.8 style interface. It is no longer possible + * to actually link against OSSlib with this header, but we + * still provide these macros for programs using them. + * + * If you want to use OSSlib, it is recommended that you get + * the GPL version of OSS-4.x and build against that version + * of the header. + * + * We redefine the extern keyword so that make headers_check + * does not complain about SEQ_USE_EXTBUF. + */ +#define SEQ_DECLAREBUF() SEQ_USE_EXTBUF() + +void seqbuf_dump(void); /* This function must be provided by programs */ + +#define SEQ_PM_DEFINES int __foo_bar___ + +#define SEQ_LOAD_GMINSTR(dev, instr) +#define SEQ_LOAD_GMDRUM(dev, drum) + +#define _SEQ_EXTERN extern +#define SEQ_USE_EXTBUF() \ + _SEQ_EXTERN unsigned char _seqbuf[]; \ + _SEQ_EXTERN int _seqbuflen; _SEQ_EXTERN int _seqbufptr + +#ifndef USE_SIMPLE_MACROS +/* Sample seqbuf_dump() implementation: + * + * SEQ_DEFINEBUF (2048); -- Defines a buffer for 2048 bytes + * + * int seqfd; -- The file descriptor for /dev/sequencer. + * + * void + * seqbuf_dump () + * { + * if (_seqbufptr) + * if (write (seqfd, _seqbuf, _seqbufptr) == -1) + * { + * perror ("write /dev/sequencer"); + * exit (-1); + * } + * _seqbufptr = 0; + * } + */ + +#define SEQ_DEFINEBUF(len) unsigned char _seqbuf[len]; int _seqbuflen = len;int _seqbufptr = 0 +#define _SEQ_NEEDBUF(len) if ((_seqbufptr+(len)) > _seqbuflen) seqbuf_dump() +#define _SEQ_ADVBUF(len) _seqbufptr += len +#define SEQ_DUMPBUF seqbuf_dump +#else +/* + * This variation of the sequencer macros is used just to format one event + * using fixed buffer. + * + * The program using the macro library must define the following macros before + * using this library. + * + * #define _seqbuf name of the buffer (unsigned char[]) + * #define _SEQ_ADVBUF(len) If the applic needs to know the exact + * size of the event, this macro can be used. + * Otherwise this must be defined as empty. + * #define _seqbufptr Define the name of index variable or 0 if + * not required. + */ +#define _SEQ_NEEDBUF(len) /* empty */ +#endif + +#define SEQ_VOLUME_MODE(dev, mode) {_SEQ_NEEDBUF(8);\ + _seqbuf[_seqbufptr] = SEQ_EXTENDED;\ + _seqbuf[_seqbufptr+1] = SEQ_VOLMODE;\ + _seqbuf[_seqbufptr+2] = (dev);\ + _seqbuf[_seqbufptr+3] = (mode);\ + _seqbuf[_seqbufptr+4] = 0;\ + _seqbuf[_seqbufptr+5] = 0;\ + _seqbuf[_seqbufptr+6] = 0;\ + _seqbuf[_seqbufptr+7] = 0;\ + _SEQ_ADVBUF(8);} + +/* + * Midi voice messages + */ + +#define _CHN_VOICE(dev, event, chn, note, parm) \ + {_SEQ_NEEDBUF(8);\ + _seqbuf[_seqbufptr] = EV_CHN_VOICE;\ + _seqbuf[_seqbufptr+1] = (dev);\ + _seqbuf[_seqbufptr+2] = (event);\ + _seqbuf[_seqbufptr+3] = (chn);\ + _seqbuf[_seqbufptr+4] = (note);\ + _seqbuf[_seqbufptr+5] = (parm);\ + _seqbuf[_seqbufptr+6] = (0);\ + _seqbuf[_seqbufptr+7] = 0;\ + _SEQ_ADVBUF(8);} + +#define SEQ_START_NOTE(dev, chn, note, vol) \ + _CHN_VOICE(dev, MIDI_NOTEON, chn, note, vol) + +#define SEQ_STOP_NOTE(dev, chn, note, vol) \ + _CHN_VOICE(dev, MIDI_NOTEOFF, chn, note, vol) + +#define SEQ_KEY_PRESSURE(dev, chn, note, pressure) \ + _CHN_VOICE(dev, MIDI_KEY_PRESSURE, chn, note, pressure) + +/* + * Midi channel messages + */ + +#define _CHN_COMMON(dev, event, chn, p1, p2, w14) \ + {_SEQ_NEEDBUF(8);\ + _seqbuf[_seqbufptr] = EV_CHN_COMMON;\ + _seqbuf[_seqbufptr+1] = (dev);\ + _seqbuf[_seqbufptr+2] = (event);\ + _seqbuf[_seqbufptr+3] = (chn);\ + _seqbuf[_seqbufptr+4] = (p1);\ + _seqbuf[_seqbufptr+5] = (p2);\ + *(short *)&_seqbuf[_seqbufptr+6] = (w14);\ + _SEQ_ADVBUF(8);} +/* + * SEQ_SYSEX permits sending of sysex messages. (It may look that it permits + * sending any MIDI bytes but it's absolutely not possible. Trying to do + * so _will_ cause problems with MPU401 intelligent mode). + * + * Sysex messages are sent in blocks of 1 to 6 bytes. Longer messages must be + * sent by calling SEQ_SYSEX() several times (there must be no other events + * between them). First sysex fragment must have 0xf0 in the first byte + * and the last byte (buf[len-1] of the last fragment must be 0xf7. No byte + * between these sysex start and end markers cannot be larger than 0x7f. Also + * lengths of each fragments (except the last one) must be 6. + * + * Breaking the above rules may work with some MIDI ports but is likely to + * cause fatal problems with some other devices (such as MPU401). + */ +#define SEQ_SYSEX(dev, buf, len) \ + {int ii, ll=(len); \ + unsigned char *bufp=buf;\ + if (ll>6)ll=6;\ + _SEQ_NEEDBUF(8);\ + _seqbuf[_seqbufptr] = EV_SYSEX;\ + _seqbuf[_seqbufptr+1] = (dev);\ + for(ii=0;ii>8)&0xff);\ + _seqbuf[_seqbufptr+7] = 0;\ + _SEQ_ADVBUF(8);} +/* + * The following 5 macros are incorrectly implemented and obsolete. + * Use SEQ_BENDER and SEQ_CONTROL (with proper controller) instead. + */ +#define SEQ_PITCHBEND(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER, value) +#define SEQ_BENDER_RANGE(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER_RANGE, value) +#define SEQ_EXPRESSION(dev, voice, value) SEQ_CONTROL(dev, voice, CTL_EXPRESSION, value*128) +#define SEQ_MAIN_VOLUME(dev, voice, value) SEQ_CONTROL(dev, voice, CTL_MAIN_VOLUME, (value*16383)/100) +#define SEQ_PANNING(dev, voice, pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos+128) / 2) + +/* + * Timing and synchronization macros + */ + +#define _TIMER_EVENT(ev, parm) {_SEQ_NEEDBUF(8);\ + _seqbuf[_seqbufptr+0] = EV_TIMING; \ + _seqbuf[_seqbufptr+1] = (ev); \ + _seqbuf[_seqbufptr+2] = 0;\ + _seqbuf[_seqbufptr+3] = 0;\ + *(unsigned int *)&_seqbuf[_seqbufptr+4] = (parm); \ + _SEQ_ADVBUF(8);} + +#define SEQ_START_TIMER() _TIMER_EVENT(TMR_START, 0) +#define SEQ_STOP_TIMER() _TIMER_EVENT(TMR_STOP, 0) +#define SEQ_CONTINUE_TIMER() _TIMER_EVENT(TMR_CONTINUE, 0) +#define SEQ_WAIT_TIME(ticks) _TIMER_EVENT(TMR_WAIT_ABS, ticks) +#define SEQ_DELTA_TIME(ticks) _TIMER_EVENT(TMR_WAIT_REL, ticks) +#define SEQ_ECHO_BACK(key) _TIMER_EVENT(TMR_ECHO, key) +#define SEQ_SET_TEMPO(value) _TIMER_EVENT(TMR_TEMPO, value) +#define SEQ_SONGPOS(pos) _TIMER_EVENT(TMR_SPP, pos) +#define SEQ_TIME_SIGNATURE(sig) _TIMER_EVENT(TMR_TIMESIG, sig) + +/* + * Local control events + */ + +#define _LOCAL_EVENT(ev, parm) {_SEQ_NEEDBUF(8);\ + _seqbuf[_seqbufptr+0] = EV_SEQ_LOCAL; \ + _seqbuf[_seqbufptr+1] = (ev); \ + _seqbuf[_seqbufptr+2] = 0;\ + _seqbuf[_seqbufptr+3] = 0;\ + *(unsigned int *)&_seqbuf[_seqbufptr+4] = (parm); \ + _SEQ_ADVBUF(8);} + +#define SEQ_PLAYAUDIO(devmask) _LOCAL_EVENT(LOCL_STARTAUDIO, devmask) +/* + * Events for the level 1 interface only + */ + +#define SEQ_MIDIOUT(device, byte) {_SEQ_NEEDBUF(4);\ + _seqbuf[_seqbufptr] = SEQ_MIDIPUTC;\ + _seqbuf[_seqbufptr+1] = (byte);\ + _seqbuf[_seqbufptr+2] = (device);\ + _seqbuf[_seqbufptr+3] = 0;\ + _SEQ_ADVBUF(4);} + +/* + * Patch loading. + */ +#define SEQ_WRPATCH(patchx, len) \ + {if (_seqbufptr) SEQ_DUMPBUF();\ + if (write(seqfd, (char*)(patchx), len)==-1) \ + perror("Write patch: /dev/sequencer");} +#define SEQ_WRPATCH2(patchx, len) \ + (SEQ_DUMPBUF(), write(seqfd, (char*)(patchx), len)) + +#endif /* SOUNDCARD_H */ diff --git a/kernel_headers/linux/spi/..install.cmd b/kernel_headers/linux/spi/..install.cmd new file mode 100644 index 0000000..857bf2c --- /dev/null +++ b/kernel_headers/linux/spi/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/spi/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/spi /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/spi spidev.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/spi /android/kernels/moto/surnia/kernel-msm/include/linux/spi ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/spi /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/spi ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/spi/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/spi/.install diff --git a/kernel_headers/linux/spi/.install b/kernel_headers/linux/spi/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/spi/spidev.h b/kernel_headers/linux/spi/spidev.h new file mode 100644 index 0000000..52d9ed0 --- /dev/null +++ b/kernel_headers/linux/spi/spidev.h @@ -0,0 +1,131 @@ +/* + * include/linux/spi/spidev.h + * + * Copyright (C) 2006 SWAPP + * Andrea Paterniani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef SPIDEV_H +#define SPIDEV_H + +#include + +/* User space versions of kernel symbols for SPI clocking modes, + * matching + */ + +#define SPI_CPHA 0x01 +#define SPI_CPOL 0x02 + +#define SPI_MODE_0 (0|0) +#define SPI_MODE_1 (0|SPI_CPHA) +#define SPI_MODE_2 (SPI_CPOL|0) +#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) + +#define SPI_CS_HIGH 0x04 +#define SPI_LSB_FIRST 0x08 +#define SPI_3WIRE 0x10 +#define SPI_LOOP 0x20 +#define SPI_NO_CS 0x40 +#define SPI_READY 0x80 + +/*---------------------------------------------------------------------------*/ + +/* IOCTL commands */ + +#define SPI_IOC_MAGIC 'k' + +/** + * struct spi_ioc_transfer - describes a single SPI transfer + * @tx_buf: Holds pointer to userspace buffer with transmit data, or null. + * If no data is provided, zeroes are shifted out. + * @rx_buf: Holds pointer to userspace buffer for receive data, or null. + * @len: Length of tx and rx buffers, in bytes. + * @speed_hz: Temporary override of the device's bitrate. + * @bits_per_word: Temporary override of the device's wordsize. + * @delay_usecs: If nonzero, how long to delay after the last bit transfer + * before optionally deselecting the device before the next transfer. + * @cs_change: True to deselect device before starting the next transfer. + * + * This structure is mapped directly to the kernel spi_transfer structure; + * the fields have the same meanings, except of course that the pointers + * are in a different address space (and may be of different sizes in some + * cases, such as 32-bit i386 userspace over a 64-bit x86_64 kernel). + * Zero-initialize the structure, including currently unused fields, to + * accommodate potential future updates. + * + * SPI_IOC_MESSAGE gives userspace the equivalent of kernel spi_sync(). + * Pass it an array of related transfers, they'll execute together. + * Each transfer may be half duplex (either direction) or full duplex. + * + * struct spi_ioc_transfer mesg[4]; + * ... + * status = ioctl(fd, SPI_IOC_MESSAGE(4), mesg); + * + * So for example one transfer might send a nine bit command (right aligned + * in a 16-bit word), the next could read a block of 8-bit data before + * terminating that command by temporarily deselecting the chip; the next + * could send a different nine bit command (re-selecting the chip), and the + * last transfer might write some register values. + */ +struct spi_ioc_transfer { + __u64 tx_buf; + __u64 rx_buf; + + __u32 len; + __u32 speed_hz; + + __u16 delay_usecs; + __u8 bits_per_word; + __u8 cs_change; + __u32 pad; + + /* If the contents of 'struct spi_ioc_transfer' ever change + * incompatibly, then the ioctl number (currently 0) must change; + * ioctls with constant size fields get a bit more in the way of + * error checking than ones (like this) where that field varies. + * + * NOTE: struct layout is the same in 64bit and 32bit userspace. + */ +}; + +/* not all platforms use or _IOC_TYPECHECK() ... */ +#define SPI_MSGSIZE(N) \ + ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \ + ? ((N)*(sizeof (struct spi_ioc_transfer))) : 0) +#define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)]) + + +/* Read / Write of SPI mode (SPI_MODE_0..SPI_MODE_3) */ +#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8) +#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8) + +/* Read / Write SPI bit justification */ +#define SPI_IOC_RD_LSB_FIRST _IOR(SPI_IOC_MAGIC, 2, __u8) +#define SPI_IOC_WR_LSB_FIRST _IOW(SPI_IOC_MAGIC, 2, __u8) + +/* Read / Write SPI device word length (1..N) */ +#define SPI_IOC_RD_BITS_PER_WORD _IOR(SPI_IOC_MAGIC, 3, __u8) +#define SPI_IOC_WR_BITS_PER_WORD _IOW(SPI_IOC_MAGIC, 3, __u8) + +/* Read / Write SPI device default max speed hz */ +#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32) +#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32) + + + +#endif /* SPIDEV_H */ diff --git a/kernel_headers/linux/staging/android/uapi/..install.cmd b/kernel_headers/linux/staging/android/uapi/..install.cmd new file mode 100644 index 0000000..43bdd85 --- /dev/null +++ b/kernel_headers/linux/staging/android/uapi/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/../../../usr/include/linux/staging/android/uapi/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/../../../usr/include/linux/staging/android/uapi /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/../../../drivers/staging/android/uapi ion.h msm_ion.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/../../../usr/include/linux/staging/android/uapi /android/kernels/moto/surnia/kernel-msm/include/linux/../../../drivers/staging/android ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/../../../usr/include/linux/staging/android/uapi /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/../../../drivers/staging/android/uapi ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/../../../usr/include/linux/staging/android/uapi/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/../../../usr/include/linux/staging/android/uapi/.install diff --git a/kernel_headers/linux/staging/android/uapi/.install b/kernel_headers/linux/staging/android/uapi/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/staging/android/uapi/ion.h b/kernel_headers/linux/staging/android/uapi/ion.h new file mode 100644 index 0000000..7b68270 --- /dev/null +++ b/kernel_headers/linux/staging/android/uapi/ion.h @@ -0,0 +1,195 @@ +/* + * include/linux/ion.h + * + * Copyright (C) 2011 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _ION_H +#define _ION_H + +#include +#include + +typedef int ion_user_handle_t; + +/** + * enum ion_heap_types - list of all possible types of heaps + * @ION_HEAP_TYPE_SYSTEM: memory allocated via vmalloc + * @ION_HEAP_TYPE_SYSTEM_CONTIG: memory allocated via kmalloc + * @ION_HEAP_TYPE_CARVEOUT: memory allocated from a prereserved + * carveout heap, allocations are physically + * contiguous + * @ION_HEAP_TYPE_DMA: memory allocated via DMA API + * @ION_NUM_HEAPS: helper for iterating over heaps, a bit mask + * is used to identify the heaps, so only 32 + * total heap types are supported + */ +enum ion_heap_type { + ION_HEAP_TYPE_SYSTEM, + ION_HEAP_TYPE_SYSTEM_CONTIG, + ION_HEAP_TYPE_CARVEOUT, + ION_HEAP_TYPE_CHUNK, + ION_HEAP_TYPE_DMA, + ION_HEAP_TYPE_CUSTOM, /* must be last so device specific heaps always + are at the end of this enum */ + ION_NUM_HEAPS = 16, +}; + +#define ION_HEAP_SYSTEM_MASK (1 << ION_HEAP_TYPE_SYSTEM) +#define ION_HEAP_SYSTEM_CONTIG_MASK (1 << ION_HEAP_TYPE_SYSTEM_CONTIG) +#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT) +#define ION_HEAP_TYPE_DMA_MASK (1 << ION_HEAP_TYPE_DMA) + +#define ION_NUM_HEAP_IDS sizeof(unsigned int) * 8 + +/** + * allocation flags - the lower 16 bits are used by core ion, the upper 16 + * bits are reserved for use by the heaps themselves. + */ +#define ION_FLAG_CACHED 1 /* mappings of this buffer should be + cached, ion will do cache + maintenance when the buffer is + mapped for dma */ +#define ION_FLAG_CACHED_NEEDS_SYNC 2 /* mappings of this buffer will created + at mmap time, if this is set + caches must be managed manually */ + +/** + * DOC: Ion Userspace API + * + * create a client by opening /dev/ion + * most operations handled via following ioctls + * + */ + +/** + * struct ion_allocation_data - metadata passed from userspace for allocations + * @len: size of the allocation + * @align: required alignment of the allocation + * @heap_id_mask: mask of heap ids to allocate from + * @flags: flags passed to heap + * @handle: pointer that will be populated with a cookie to use to + * refer to this allocation + * + * Provided by userspace as an argument to the ioctl + */ +struct ion_allocation_data { + size_t len; + size_t align; + unsigned int heap_mask; + unsigned int flags; + ion_user_handle_t handle; +}; + +/** + * struct ion_fd_data - metadata passed to/from userspace for a handle/fd pair + * @handle: a handle + * @fd: a file descriptor representing that handle + * + * For ION_IOC_SHARE or ION_IOC_MAP userspace populates the handle field with + * the handle returned from ion alloc, and the kernel returns the file + * descriptor to share or map in the fd field. For ION_IOC_IMPORT, userspace + * provides the file descriptor and the kernel returns the handle. + */ +struct ion_fd_data { + ion_user_handle_t handle; + int fd; +}; + +/** + * struct ion_handle_data - a handle passed to/from the kernel + * @handle: a handle + */ +struct ion_handle_data { + ion_user_handle_t handle; +}; + +/** + * struct ion_custom_data - metadata passed to/from userspace for a custom ioctl + * @cmd: the custom ioctl function to call + * @arg: additional data to pass to the custom ioctl, typically a user + * pointer to a predefined structure + * + * This works just like the regular cmd and arg fields of an ioctl. + */ +struct ion_custom_data { + unsigned int cmd; + unsigned long arg; +}; +#define ION_IOC_MAGIC 'I' + +/** + * DOC: ION_IOC_ALLOC - allocate memory + * + * Takes an ion_allocation_data struct and returns it with the handle field + * populated with the opaque handle for the allocation. + */ +#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, \ + struct ion_allocation_data) + +/** + * DOC: ION_IOC_FREE - free memory + * + * Takes an ion_handle_data struct and frees the handle. + */ +#define ION_IOC_FREE _IOWR(ION_IOC_MAGIC, 1, struct ion_handle_data) + +/** + * DOC: ION_IOC_MAP - get a file descriptor to mmap + * + * Takes an ion_fd_data struct with the handle field populated with a valid + * opaque handle. Returns the struct with the fd field set to a file + * descriptor open in the current address space. This file descriptor + * can then be used as an argument to mmap. + */ +#define ION_IOC_MAP _IOWR(ION_IOC_MAGIC, 2, struct ion_fd_data) + +/** + * DOC: ION_IOC_SHARE - creates a file descriptor to use to share an allocation + * + * Takes an ion_fd_data struct with the handle field populated with a valid + * opaque handle. Returns the struct with the fd field set to a file + * descriptor open in the current address space. This file descriptor + * can then be passed to another process. The corresponding opaque handle can + * be retrieved via ION_IOC_IMPORT. + */ +#define ION_IOC_SHARE _IOWR(ION_IOC_MAGIC, 4, struct ion_fd_data) + +/** + * DOC: ION_IOC_IMPORT - imports a shared file descriptor + * + * Takes an ion_fd_data struct with the fd field populated with a valid file + * descriptor obtained from ION_IOC_SHARE and returns the struct with the handle + * filed set to the corresponding opaque handle. + */ +#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, struct ion_fd_data) + +/** + * DOC: ION_IOC_SYNC - syncs a shared file descriptors to memory + * + * Deprecated in favor of using the dma_buf api's correctly (syncing + * will happend automatically when the buffer is mapped to a device). + * If necessary should be used after touching a cached buffer from the cpu, + * this will make the buffer in memory coherent. + */ +#define ION_IOC_SYNC _IOWR(ION_IOC_MAGIC, 7, struct ion_fd_data) + +/** + * DOC: ION_IOC_CUSTOM - call architecture specific ion ioctl + * + * Takes the argument of the architecture specific ioctl to call and + * passes appropriate userdata for that ioctl + */ +#define ION_IOC_CUSTOM _IOWR(ION_IOC_MAGIC, 6, struct ion_custom_data) + +#endif /* _ION_H */ diff --git a/kernel_headers/linux/staging/android/uapi/msm_ion.h b/kernel_headers/linux/staging/android/uapi/msm_ion.h new file mode 100644 index 0000000..d7271f8 --- /dev/null +++ b/kernel_headers/linux/staging/android/uapi/msm_ion.h @@ -0,0 +1,175 @@ +#ifndef _MSM_ION_H +#define _MSM_ION_H + +#include "ion.h" + +enum msm_ion_heap_types { + ION_HEAP_TYPE_MSM_START = ION_HEAP_TYPE_CUSTOM + 1, + ION_HEAP_TYPE_SECURE_DMA = ION_HEAP_TYPE_MSM_START, + ION_HEAP_TYPE_REMOVED, + /* + * if you add a heap type here you should also add it to + * heap_types_info[] in msm_ion.c + */ +}; + +/** + * These are the only ids that should be used for Ion heap ids. + * The ids listed are the order in which allocation will be attempted + * if specified. Don't swap the order of heap ids unless you know what + * you are doing! + * Id's are spaced by purpose to allow new Id's to be inserted in-between (for + * possible fallbacks) + */ + +enum ion_heap_ids { + INVALID_HEAP_ID = -1, + ION_CP_MM_HEAP_ID = 8, + ION_CP_MFC_HEAP_ID = 12, + ION_CP_WB_HEAP_ID = 16, /* 8660 only */ + ION_CAMERA_HEAP_ID = 20, /* 8660 only */ + ION_SYSTEM_CONTIG_HEAP_ID = 21, + ION_ADSP_HEAP_ID = 22, + ION_PIL1_HEAP_ID = 23, /* Currently used for other PIL images */ + ION_SF_HEAP_ID = 24, + ION_SYSTEM_HEAP_ID = 25, + ION_PIL2_HEAP_ID = 26, /* Currently used for modem firmware images */ + ION_QSECOM_HEAP_ID = 27, + ION_AUDIO_HEAP_ID = 28, + + ION_MM_FIRMWARE_HEAP_ID = 29, + + ION_HEAP_ID_RESERVED = 31 /** Bit reserved for ION_FLAG_SECURE flag */ +}; + +/* + * The IOMMU heap is deprecated! Here are some aliases for backwards + * compatibility: + */ +#define ION_IOMMU_HEAP_ID ION_SYSTEM_HEAP_ID +#define ION_HEAP_TYPE_IOMMU ION_HEAP_TYPE_SYSTEM + +enum ion_fixed_position { + NOT_FIXED, + FIXED_LOW, + FIXED_MIDDLE, + FIXED_HIGH, +}; + +enum cp_mem_usage { + VIDEO_BITSTREAM = 0x1, + VIDEO_PIXEL = 0x2, + VIDEO_NONPIXEL = 0x3, + DISPLAY_SECURE_CP_USAGE = 0x4, + CAMERA_SECURE_CP_USAGE = 0x5, + MAX_USAGE = 0x6, + UNKNOWN = 0x7FFFFFFF, +}; + +/** + * Flag to use when allocating to indicate that a heap is secure. + */ +#define ION_FLAG_SECURE (1 << ION_HEAP_ID_RESERVED) + +/** + * Flag for clients to force contiguous memort allocation + * + * Use of this flag is carefully monitored! + */ +#define ION_FLAG_FORCE_CONTIGUOUS (1 << 30) + +/* + * Used in conjunction with heap which pool memory to force an allocation + * to come from the page allocator directly instead of from the pool allocation + */ +#define ION_FLAG_POOL_FORCE_ALLOC (1 << 16) + +/** +* Deprecated! Please use the corresponding ION_FLAG_* +*/ +#define ION_SECURE ION_FLAG_SECURE +#define ION_FORCE_CONTIGUOUS ION_FLAG_FORCE_CONTIGUOUS + +/** + * Macro should be used with ion_heap_ids defined above. + */ +#define ION_HEAP(bit) (1 << (bit)) + +#define ION_ADSP_HEAP_NAME "adsp" +#define ION_SYSTEM_HEAP_NAME "system" +#define ION_VMALLOC_HEAP_NAME ION_SYSTEM_HEAP_NAME +#define ION_KMALLOC_HEAP_NAME "kmalloc" +#define ION_AUDIO_HEAP_NAME "audio" +#define ION_SF_HEAP_NAME "sf" +#define ION_MM_HEAP_NAME "mm" +#define ION_CAMERA_HEAP_NAME "camera_preview" +#define ION_IOMMU_HEAP_NAME "iommu" +#define ION_MFC_HEAP_NAME "mfc" +#define ION_WB_HEAP_NAME "wb" +#define ION_MM_FIRMWARE_HEAP_NAME "mm_fw" +#define ION_PIL1_HEAP_NAME "pil_1" +#define ION_PIL2_HEAP_NAME "pil_2" +#define ION_QSECOM_HEAP_NAME "qsecom" + +#define ION_SET_CACHED(__cache) (__cache | ION_FLAG_CACHED) +#define ION_SET_UNCACHED(__cache) (__cache & ~ION_FLAG_CACHED) + +#define ION_IS_CACHED(__flags) ((__flags) & ION_FLAG_CACHED) + +/* struct ion_flush_data - data passed to ion for flushing caches + * + * @handle: handle with data to flush + * @fd: fd to flush + * @vaddr: userspace virtual address mapped with mmap + * @offset: offset into the handle to flush + * @length: length of handle to flush + * + * Performs cache operations on the handle. If p is the start address + * of the handle, p + offset through p + offset + length will have + * the cache operations performed + */ +struct ion_flush_data { + ion_user_handle_t handle; + int fd; + void *vaddr; + unsigned int offset; + unsigned int length; +}; + + +struct ion_prefetch_data { + int heap_id; + unsigned long len; +}; + +#define ION_IOC_MSM_MAGIC 'M' + +/** + * DOC: ION_IOC_CLEAN_CACHES - clean the caches + * + * Clean the caches of the handle specified. + */ +#define ION_IOC_CLEAN_CACHES _IOWR(ION_IOC_MSM_MAGIC, 0, \ + struct ion_flush_data) +/** + * DOC: ION_IOC_INV_CACHES - invalidate the caches + * + * Invalidate the caches of the handle specified. + */ +#define ION_IOC_INV_CACHES _IOWR(ION_IOC_MSM_MAGIC, 1, \ + struct ion_flush_data) +/** + * DOC: ION_IOC_CLEAN_INV_CACHES - clean and invalidate the caches + * + * Clean and invalidate the caches of the handle specified. + */ +#define ION_IOC_CLEAN_INV_CACHES _IOWR(ION_IOC_MSM_MAGIC, 2, \ + struct ion_flush_data) + +#define ION_IOC_PREFETCH _IOWR(ION_IOC_MSM_MAGIC, 3, \ + struct ion_prefetch_data) + +#define ION_IOC_DRAIN _IOWR(ION_IOC_MSM_MAGIC, 4, \ + struct ion_prefetch_data) + +#endif diff --git a/kernel_headers/linux/stat.h b/kernel_headers/linux/stat.h new file mode 100644 index 0000000..b014ce4 --- /dev/null +++ b/kernel_headers/linux/stat.h @@ -0,0 +1,45 @@ +#ifndef _LINUX_STAT_H +#define _LINUX_STAT_H + + +#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) + +#define S_IFMT 00170000 +#define S_IFSOCK 0140000 +#define S_IFLNK 0120000 +#define S_IFREG 0100000 +#define S_IFBLK 0060000 +#define S_IFDIR 0040000 +#define S_IFCHR 0020000 +#define S_IFIFO 0010000 +#define S_ISUID 0004000 +#define S_ISGID 0002000 +#define S_ISVTX 0001000 + +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) + +#define S_IRWXU 00700 +#define S_IRUSR 00400 +#define S_IWUSR 00200 +#define S_IXUSR 00100 + +#define S_IRWXG 00070 +#define S_IRGRP 00040 +#define S_IWGRP 00020 +#define S_IXGRP 00010 + +#define S_IRWXO 00007 +#define S_IROTH 00004 +#define S_IWOTH 00002 +#define S_IXOTH 00001 + +#endif + + +#endif /* _LINUX_STAT_H */ diff --git a/kernel_headers/linux/stddef.h b/kernel_headers/linux/stddef.h new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/kernel_headers/linux/stddef.h @@ -0,0 +1 @@ + diff --git a/kernel_headers/linux/string.h b/kernel_headers/linux/string.h new file mode 100644 index 0000000..d7ed844 --- /dev/null +++ b/kernel_headers/linux/string.h @@ -0,0 +1,7 @@ +#ifndef _LINUX_STRING_H_ +#define _LINUX_STRING_H_ + +/* We don't want strings.h stuff being used by user stuff by accident */ + +#include +#endif /* _LINUX_STRING_H_ */ diff --git a/kernel_headers/linux/sunrpc/..install.cmd b/kernel_headers/linux/sunrpc/..install.cmd new file mode 100644 index 0000000..c9f1f0c --- /dev/null +++ b/kernel_headers/linux/sunrpc/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/sunrpc/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/sunrpc /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/sunrpc debug.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/sunrpc /android/kernels/moto/surnia/kernel-msm/include/linux/sunrpc ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/sunrpc /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/sunrpc ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/sunrpc/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/sunrpc/.install diff --git a/kernel_headers/linux/sunrpc/.install b/kernel_headers/linux/sunrpc/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/sunrpc/debug.h b/kernel_headers/linux/sunrpc/debug.h new file mode 100644 index 0000000..4ead318 --- /dev/null +++ b/kernel_headers/linux/sunrpc/debug.h @@ -0,0 +1,48 @@ +/* + * linux/include/linux/sunrpc/debug.h + * + * Debugging support for sunrpc module + * + * Copyright (C) 1996, Olaf Kirch + */ + +#ifndef _LINUX_SUNRPC_DEBUG_H_ +#define _LINUX_SUNRPC_DEBUG_H_ + +/* + * RPC debug facilities + */ +#define RPCDBG_XPRT 0x0001 +#define RPCDBG_CALL 0x0002 +#define RPCDBG_DEBUG 0x0004 +#define RPCDBG_NFS 0x0008 +#define RPCDBG_AUTH 0x0010 +#define RPCDBG_BIND 0x0020 +#define RPCDBG_SCHED 0x0040 +#define RPCDBG_TRANS 0x0080 +#define RPCDBG_SVCXPRT 0x0100 +#define RPCDBG_SVCDSP 0x0200 +#define RPCDBG_MISC 0x0400 +#define RPCDBG_CACHE 0x0800 +#define RPCDBG_ALL 0x7fff + + +/* + * Declarations for the sysctl debug interface, which allows to read or + * change the debug flags for rpc, nfs, nfsd, and lockd. Since the sunrpc + * module currently registers its sysctl table dynamically, the sysctl path + * for module FOO is . + */ + +enum { + CTL_RPCDEBUG = 1, + CTL_NFSDEBUG, + CTL_NFSDDEBUG, + CTL_NLMDEBUG, + CTL_SLOTTABLE_UDP, + CTL_SLOTTABLE_TCP, + CTL_MIN_RESVPORT, + CTL_MAX_RESVPORT, +}; + +#endif /* _LINUX_SUNRPC_DEBUG_H_ */ diff --git a/kernel_headers/linux/suspend_ioctls.h b/kernel_headers/linux/suspend_ioctls.h new file mode 100644 index 0000000..0b30382 --- /dev/null +++ b/kernel_headers/linux/suspend_ioctls.h @@ -0,0 +1,33 @@ +#ifndef _LINUX_SUSPEND_IOCTLS_H +#define _LINUX_SUSPEND_IOCTLS_H + +#include +/* + * This structure is used to pass the values needed for the identification + * of the resume swap area from a user space to the kernel via the + * SNAPSHOT_SET_SWAP_AREA ioctl + */ +struct resume_swap_area { + __kernel_loff_t offset; + __u32 dev; +} __attribute__((packed)); + +#define SNAPSHOT_IOC_MAGIC '3' +#define SNAPSHOT_FREEZE _IO(SNAPSHOT_IOC_MAGIC, 1) +#define SNAPSHOT_UNFREEZE _IO(SNAPSHOT_IOC_MAGIC, 2) +#define SNAPSHOT_ATOMIC_RESTORE _IO(SNAPSHOT_IOC_MAGIC, 4) +#define SNAPSHOT_FREE _IO(SNAPSHOT_IOC_MAGIC, 5) +#define SNAPSHOT_FREE_SWAP_PAGES _IO(SNAPSHOT_IOC_MAGIC, 9) +#define SNAPSHOT_S2RAM _IO(SNAPSHOT_IOC_MAGIC, 11) +#define SNAPSHOT_SET_SWAP_AREA _IOW(SNAPSHOT_IOC_MAGIC, 13, \ + struct resume_swap_area) +#define SNAPSHOT_GET_IMAGE_SIZE _IOR(SNAPSHOT_IOC_MAGIC, 14, __kernel_loff_t) +#define SNAPSHOT_PLATFORM_SUPPORT _IO(SNAPSHOT_IOC_MAGIC, 15) +#define SNAPSHOT_POWER_OFF _IO(SNAPSHOT_IOC_MAGIC, 16) +#define SNAPSHOT_CREATE_IMAGE _IOW(SNAPSHOT_IOC_MAGIC, 17, int) +#define SNAPSHOT_PREF_IMAGE_SIZE _IO(SNAPSHOT_IOC_MAGIC, 18) +#define SNAPSHOT_AVAIL_SWAP_SIZE _IOR(SNAPSHOT_IOC_MAGIC, 19, __kernel_loff_t) +#define SNAPSHOT_ALLOC_SWAP_PAGE _IOR(SNAPSHOT_IOC_MAGIC, 20, __kernel_loff_t) +#define SNAPSHOT_IOC_MAXNR 20 + +#endif /* _LINUX_SUSPEND_IOCTLS_H */ diff --git a/kernel_headers/linux/swab.h b/kernel_headers/linux/swab.h new file mode 100644 index 0000000..13a943c --- /dev/null +++ b/kernel_headers/linux/swab.h @@ -0,0 +1,288 @@ +#ifndef _LINUX_SWAB_H +#define _LINUX_SWAB_H + +#include + +#include + +/* + * casts are necessary for constants, because we never know how for sure + * how U/UL/ULL map to __u16, __u32, __u64. At least not in a portable way. + */ +#define ___constant_swab16(x) ((__u16)( \ + (((__u16)(x) & (__u16)0x00ffU) << 8) | \ + (((__u16)(x) & (__u16)0xff00U) >> 8))) + +#define ___constant_swab32(x) ((__u32)( \ + (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \ + (((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \ + (((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \ + (((__u32)(x) & (__u32)0xff000000UL) >> 24))) + +#define ___constant_swab64(x) ((__u64)( \ + (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \ + (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \ + (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \ + (((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | \ + (((__u64)(x) & (__u64)0x000000ff00000000ULL) >> 8) | \ + (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \ + (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \ + (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56))) + +#define ___constant_swahw32(x) ((__u32)( \ + (((__u32)(x) & (__u32)0x0000ffffUL) << 16) | \ + (((__u32)(x) & (__u32)0xffff0000UL) >> 16))) + +#define ___constant_swahb32(x) ((__u32)( \ + (((__u32)(x) & (__u32)0x00ff00ffUL) << 8) | \ + (((__u32)(x) & (__u32)0xff00ff00UL) >> 8))) + +/* + * Implement the following as inlines, but define the interface using + * macros to allow constant folding when possible: + * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32 + */ + +static __inline__ __u16 __fswab16(__u16 val) +{ +#ifdef __HAVE_BUILTIN_BSWAP16__ + return __builtin_bswap16(val); +#elif defined (__arch_swab16) + return __arch_swab16(val); +#else + return ___constant_swab16(val); +#endif +} + +static __inline__ __u32 __fswab32(__u32 val) +{ +#ifdef __HAVE_BUILTIN_BSWAP32__ + return __builtin_bswap32(val); +#elif defined(__arch_swab32) + return __arch_swab32(val); +#else + return ___constant_swab32(val); +#endif +} + +static __inline__ __u64 __fswab64(__u64 val) +{ +#ifdef __HAVE_BUILTIN_BSWAP64__ + return __builtin_bswap64(val); +#elif defined (__arch_swab64) + return __arch_swab64(val); +#elif defined(__SWAB_64_THRU_32__) + __u32 h = val >> 32; + __u32 l = val & ((1ULL << 32) - 1); + return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h))); +#else + return ___constant_swab64(val); +#endif +} + +static __inline__ __u32 __fswahw32(__u32 val) +{ +#ifdef __arch_swahw32 + return __arch_swahw32(val); +#else + return ___constant_swahw32(val); +#endif +} + +static __inline__ __u32 __fswahb32(__u32 val) +{ +#ifdef __arch_swahb32 + return __arch_swahb32(val); +#else + return ___constant_swahb32(val); +#endif +} + +/** + * __swab16 - return a byteswapped 16-bit value + * @x: value to byteswap + */ +#define __swab16(x) \ + (__builtin_constant_p((__u16)(x)) ? \ + ___constant_swab16(x) : \ + __fswab16(x)) + +/** + * __swab32 - return a byteswapped 32-bit value + * @x: value to byteswap + */ +#define __swab32(x) \ + (__builtin_constant_p((__u32)(x)) ? \ + ___constant_swab32(x) : \ + __fswab32(x)) + +/** + * __swab64 - return a byteswapped 64-bit value + * @x: value to byteswap + */ +#define __swab64(x) \ + (__builtin_constant_p((__u64)(x)) ? \ + ___constant_swab64(x) : \ + __fswab64(x)) + +/** + * __swahw32 - return a word-swapped 32-bit value + * @x: value to wordswap + * + * __swahw32(0x12340000) is 0x00001234 + */ +#define __swahw32(x) \ + (__builtin_constant_p((__u32)(x)) ? \ + ___constant_swahw32(x) : \ + __fswahw32(x)) + +/** + * __swahb32 - return a high and low byte-swapped 32-bit value + * @x: value to byteswap + * + * __swahb32(0x12345678) is 0x34127856 + */ +#define __swahb32(x) \ + (__builtin_constant_p((__u32)(x)) ? \ + ___constant_swahb32(x) : \ + __fswahb32(x)) + +/** + * __swab16p - return a byteswapped 16-bit value from a pointer + * @p: pointer to a naturally-aligned 16-bit value + */ +static __inline__ __u16 __swab16p(const __u16 *p) +{ +#ifdef __arch_swab16p + return __arch_swab16p(p); +#else + return __swab16(*p); +#endif +} + +/** + * __swab32p - return a byteswapped 32-bit value from a pointer + * @p: pointer to a naturally-aligned 32-bit value + */ +static __inline__ __u32 __swab32p(const __u32 *p) +{ +#ifdef __arch_swab32p + return __arch_swab32p(p); +#else + return __swab32(*p); +#endif +} + +/** + * __swab64p - return a byteswapped 64-bit value from a pointer + * @p: pointer to a naturally-aligned 64-bit value + */ +static __inline__ __u64 __swab64p(const __u64 *p) +{ +#ifdef __arch_swab64p + return __arch_swab64p(p); +#else + return __swab64(*p); +#endif +} + +/** + * __swahw32p - return a wordswapped 32-bit value from a pointer + * @p: pointer to a naturally-aligned 32-bit value + * + * See __swahw32() for details of wordswapping. + */ +static __inline__ __u32 __swahw32p(const __u32 *p) +{ +#ifdef __arch_swahw32p + return __arch_swahw32p(p); +#else + return __swahw32(*p); +#endif +} + +/** + * __swahb32p - return a high and low byteswapped 32-bit value from a pointer + * @p: pointer to a naturally-aligned 32-bit value + * + * See __swahb32() for details of high/low byteswapping. + */ +static __inline__ __u32 __swahb32p(const __u32 *p) +{ +#ifdef __arch_swahb32p + return __arch_swahb32p(p); +#else + return __swahb32(*p); +#endif +} + +/** + * __swab16s - byteswap a 16-bit value in-place + * @p: pointer to a naturally-aligned 16-bit value + */ +static __inline__ void __swab16s(__u16 *p) +{ +#ifdef __arch_swab16s + __arch_swab16s(p); +#else + *p = __swab16p(p); +#endif +} +/** + * __swab32s - byteswap a 32-bit value in-place + * @p: pointer to a naturally-aligned 32-bit value + */ +static __inline__ void __swab32s(__u32 *p) +{ +#ifdef __arch_swab32s + __arch_swab32s(p); +#else + *p = __swab32p(p); +#endif +} + +/** + * __swab64s - byteswap a 64-bit value in-place + * @p: pointer to a naturally-aligned 64-bit value + */ +static __inline__ void __swab64s(__u64 *p) +{ +#ifdef __arch_swab64s + __arch_swab64s(p); +#else + *p = __swab64p(p); +#endif +} + +/** + * __swahw32s - wordswap a 32-bit value in-place + * @p: pointer to a naturally-aligned 32-bit value + * + * See __swahw32() for details of wordswapping + */ +static __inline__ void __swahw32s(__u32 *p) +{ +#ifdef __arch_swahw32s + __arch_swahw32s(p); +#else + *p = __swahw32p(p); +#endif +} + +/** + * __swahb32s - high and low byteswap a 32-bit value in-place + * @p: pointer to a naturally-aligned 32-bit value + * + * See __swahb32() for details of high and low byte swapping + */ +static __inline__ void __swahb32s(__u32 *p) +{ +#ifdef __arch_swahb32s + __arch_swahb32s(p); +#else + *p = __swahb32p(p); +#endif +} + + +#endif /* _LINUX_SWAB_H */ diff --git a/kernel_headers/linux/synclink.h b/kernel_headers/linux/synclink.h new file mode 100644 index 0000000..0818434 --- /dev/null +++ b/kernel_headers/linux/synclink.h @@ -0,0 +1,300 @@ +/* + * SyncLink Multiprotocol Serial Adapter Driver + * + * $Id: synclink.h,v 3.14 2006/07/17 20:15:43 paulkf Exp $ + * + * Copyright (C) 1998-2000 by Microgate Corporation + * + * Redistribution of this file is permitted under + * the terms of the GNU Public License (GPL) + */ + +#ifndef _SYNCLINK_H_ +#define _SYNCLINK_H_ +#define SYNCLINK_H_VERSION 3.6 + +#include + +#define BIT0 0x0001 +#define BIT1 0x0002 +#define BIT2 0x0004 +#define BIT3 0x0008 +#define BIT4 0x0010 +#define BIT5 0x0020 +#define BIT6 0x0040 +#define BIT7 0x0080 +#define BIT8 0x0100 +#define BIT9 0x0200 +#define BIT10 0x0400 +#define BIT11 0x0800 +#define BIT12 0x1000 +#define BIT13 0x2000 +#define BIT14 0x4000 +#define BIT15 0x8000 +#define BIT16 0x00010000 +#define BIT17 0x00020000 +#define BIT18 0x00040000 +#define BIT19 0x00080000 +#define BIT20 0x00100000 +#define BIT21 0x00200000 +#define BIT22 0x00400000 +#define BIT23 0x00800000 +#define BIT24 0x01000000 +#define BIT25 0x02000000 +#define BIT26 0x04000000 +#define BIT27 0x08000000 +#define BIT28 0x10000000 +#define BIT29 0x20000000 +#define BIT30 0x40000000 +#define BIT31 0x80000000 + + +#define HDLC_MAX_FRAME_SIZE 65535 +#define MAX_ASYNC_TRANSMIT 4096 +#define MAX_ASYNC_BUFFER_SIZE 4096 + +#define ASYNC_PARITY_NONE 0 +#define ASYNC_PARITY_EVEN 1 +#define ASYNC_PARITY_ODD 2 +#define ASYNC_PARITY_SPACE 3 + +#define HDLC_FLAG_UNDERRUN_ABORT7 0x0000 +#define HDLC_FLAG_UNDERRUN_ABORT15 0x0001 +#define HDLC_FLAG_UNDERRUN_FLAG 0x0002 +#define HDLC_FLAG_UNDERRUN_CRC 0x0004 +#define HDLC_FLAG_SHARE_ZERO 0x0010 +#define HDLC_FLAG_AUTO_CTS 0x0020 +#define HDLC_FLAG_AUTO_DCD 0x0040 +#define HDLC_FLAG_AUTO_RTS 0x0080 +#define HDLC_FLAG_RXC_DPLL 0x0100 +#define HDLC_FLAG_RXC_BRG 0x0200 +#define HDLC_FLAG_RXC_TXCPIN 0x8000 +#define HDLC_FLAG_RXC_RXCPIN 0x0000 +#define HDLC_FLAG_TXC_DPLL 0x0400 +#define HDLC_FLAG_TXC_BRG 0x0800 +#define HDLC_FLAG_TXC_TXCPIN 0x0000 +#define HDLC_FLAG_TXC_RXCPIN 0x0008 +#define HDLC_FLAG_DPLL_DIV8 0x1000 +#define HDLC_FLAG_DPLL_DIV16 0x2000 +#define HDLC_FLAG_DPLL_DIV32 0x0000 +#define HDLC_FLAG_HDLC_LOOPMODE 0x4000 + +#define HDLC_CRC_NONE 0 +#define HDLC_CRC_16_CCITT 1 +#define HDLC_CRC_32_CCITT 2 +#define HDLC_CRC_MASK 0x00ff +#define HDLC_CRC_RETURN_EX 0x8000 + +#define RX_OK 0 +#define RX_CRC_ERROR 1 + +#define HDLC_TXIDLE_FLAGS 0 +#define HDLC_TXIDLE_ALT_ZEROS_ONES 1 +#define HDLC_TXIDLE_ZEROS 2 +#define HDLC_TXIDLE_ONES 3 +#define HDLC_TXIDLE_ALT_MARK_SPACE 4 +#define HDLC_TXIDLE_SPACE 5 +#define HDLC_TXIDLE_MARK 6 +#define HDLC_TXIDLE_CUSTOM_8 0x10000000 +#define HDLC_TXIDLE_CUSTOM_16 0x20000000 + +#define HDLC_ENCODING_NRZ 0 +#define HDLC_ENCODING_NRZB 1 +#define HDLC_ENCODING_NRZI_MARK 2 +#define HDLC_ENCODING_NRZI_SPACE 3 +#define HDLC_ENCODING_NRZI HDLC_ENCODING_NRZI_SPACE +#define HDLC_ENCODING_BIPHASE_MARK 4 +#define HDLC_ENCODING_BIPHASE_SPACE 5 +#define HDLC_ENCODING_BIPHASE_LEVEL 6 +#define HDLC_ENCODING_DIFF_BIPHASE_LEVEL 7 + +#define HDLC_PREAMBLE_LENGTH_8BITS 0 +#define HDLC_PREAMBLE_LENGTH_16BITS 1 +#define HDLC_PREAMBLE_LENGTH_32BITS 2 +#define HDLC_PREAMBLE_LENGTH_64BITS 3 + +#define HDLC_PREAMBLE_PATTERN_NONE 0 +#define HDLC_PREAMBLE_PATTERN_ZEROS 1 +#define HDLC_PREAMBLE_PATTERN_FLAGS 2 +#define HDLC_PREAMBLE_PATTERN_10 3 +#define HDLC_PREAMBLE_PATTERN_01 4 +#define HDLC_PREAMBLE_PATTERN_ONES 5 + +#define MGSL_MODE_ASYNC 1 +#define MGSL_MODE_HDLC 2 +#define MGSL_MODE_MONOSYNC 3 +#define MGSL_MODE_BISYNC 4 +#define MGSL_MODE_RAW 6 +#define MGSL_MODE_BASE_CLOCK 7 +#define MGSL_MODE_XSYNC 8 + +#define MGSL_BUS_TYPE_ISA 1 +#define MGSL_BUS_TYPE_EISA 2 +#define MGSL_BUS_TYPE_PCI 5 + +#define MGSL_INTERFACE_MASK 0xf +#define MGSL_INTERFACE_DISABLE 0 +#define MGSL_INTERFACE_RS232 1 +#define MGSL_INTERFACE_V35 2 +#define MGSL_INTERFACE_RS422 3 +#define MGSL_INTERFACE_RTS_EN 0x10 +#define MGSL_INTERFACE_LL 0x20 +#define MGSL_INTERFACE_RL 0x40 +#define MGSL_INTERFACE_MSB_FIRST 0x80 + +typedef struct _MGSL_PARAMS +{ + /* Common */ + + unsigned long mode; /* Asynchronous or HDLC */ + unsigned char loopback; /* internal loopback mode */ + + /* HDLC Only */ + + unsigned short flags; + unsigned char encoding; /* NRZ, NRZI, etc. */ + unsigned long clock_speed; /* external clock speed in bits per second */ + unsigned char addr_filter; /* receive HDLC address filter, 0xFF = disable */ + unsigned short crc_type; /* None, CRC16-CCITT, or CRC32-CCITT */ + unsigned char preamble_length; + unsigned char preamble; + + /* Async Only */ + + unsigned long data_rate; /* bits per second */ + unsigned char data_bits; /* 7 or 8 data bits */ + unsigned char stop_bits; /* 1 or 2 stop bits */ + unsigned char parity; /* none, even, or odd */ + +} MGSL_PARAMS, *PMGSL_PARAMS; + +#define MICROGATE_VENDOR_ID 0x13c0 +#define SYNCLINK_DEVICE_ID 0x0010 +#define MGSCC_DEVICE_ID 0x0020 +#define SYNCLINK_SCA_DEVICE_ID 0x0030 +#define SYNCLINK_GT_DEVICE_ID 0x0070 +#define SYNCLINK_GT4_DEVICE_ID 0x0080 +#define SYNCLINK_AC_DEVICE_ID 0x0090 +#define SYNCLINK_GT2_DEVICE_ID 0x00A0 +#define MGSL_MAX_SERIAL_NUMBER 30 + +/* +** device diagnostics status +*/ + +#define DiagStatus_OK 0 +#define DiagStatus_AddressFailure 1 +#define DiagStatus_AddressConflict 2 +#define DiagStatus_IrqFailure 3 +#define DiagStatus_IrqConflict 4 +#define DiagStatus_DmaFailure 5 +#define DiagStatus_DmaConflict 6 +#define DiagStatus_PciAdapterNotFound 7 +#define DiagStatus_CantAssignPciResources 8 +#define DiagStatus_CantAssignPciMemAddr 9 +#define DiagStatus_CantAssignPciIoAddr 10 +#define DiagStatus_CantAssignPciIrq 11 +#define DiagStatus_MemoryError 12 + +#define SerialSignal_DCD 0x01 /* Data Carrier Detect */ +#define SerialSignal_TXD 0x02 /* Transmit Data */ +#define SerialSignal_RI 0x04 /* Ring Indicator */ +#define SerialSignal_RXD 0x08 /* Receive Data */ +#define SerialSignal_CTS 0x10 /* Clear to Send */ +#define SerialSignal_RTS 0x20 /* Request to Send */ +#define SerialSignal_DSR 0x40 /* Data Set Ready */ +#define SerialSignal_DTR 0x80 /* Data Terminal Ready */ + + +/* + * Counters of the input lines (CTS, DSR, RI, CD) interrupts + */ +struct mgsl_icount { + __u32 cts, dsr, rng, dcd, tx, rx; + __u32 frame, parity, overrun, brk; + __u32 buf_overrun; + __u32 txok; + __u32 txunder; + __u32 txabort; + __u32 txtimeout; + __u32 rxshort; + __u32 rxlong; + __u32 rxabort; + __u32 rxover; + __u32 rxcrc; + __u32 rxok; + __u32 exithunt; + __u32 rxidle; +}; + +struct gpio_desc { + __u32 state; + __u32 smask; + __u32 dir; + __u32 dmask; +}; + +#define DEBUG_LEVEL_DATA 1 +#define DEBUG_LEVEL_ERROR 2 +#define DEBUG_LEVEL_INFO 3 +#define DEBUG_LEVEL_BH 4 +#define DEBUG_LEVEL_ISR 5 + +/* +** Event bit flags for use with MgslWaitEvent +*/ + +#define MgslEvent_DsrActive 0x0001 +#define MgslEvent_DsrInactive 0x0002 +#define MgslEvent_Dsr 0x0003 +#define MgslEvent_CtsActive 0x0004 +#define MgslEvent_CtsInactive 0x0008 +#define MgslEvent_Cts 0x000c +#define MgslEvent_DcdActive 0x0010 +#define MgslEvent_DcdInactive 0x0020 +#define MgslEvent_Dcd 0x0030 +#define MgslEvent_RiActive 0x0040 +#define MgslEvent_RiInactive 0x0080 +#define MgslEvent_Ri 0x00c0 +#define MgslEvent_ExitHuntMode 0x0100 +#define MgslEvent_IdleReceived 0x0200 + +/* Private IOCTL codes: + * + * MGSL_IOCSPARAMS set MGSL_PARAMS structure values + * MGSL_IOCGPARAMS get current MGSL_PARAMS structure values + * MGSL_IOCSTXIDLE set current transmit idle mode + * MGSL_IOCGTXIDLE get current transmit idle mode + * MGSL_IOCTXENABLE enable or disable transmitter + * MGSL_IOCRXENABLE enable or disable receiver + * MGSL_IOCTXABORT abort transmitting frame (HDLC) + * MGSL_IOCGSTATS return current statistics + * MGSL_IOCWAITEVENT wait for specified event to occur + * MGSL_LOOPTXDONE transmit in HDLC LoopMode done + * MGSL_IOCSIF set the serial interface type + * MGSL_IOCGIF get the serial interface type + */ +#define MGSL_MAGIC_IOC 'm' +#define MGSL_IOCSPARAMS _IOW(MGSL_MAGIC_IOC,0,struct _MGSL_PARAMS) +#define MGSL_IOCGPARAMS _IOR(MGSL_MAGIC_IOC,1,struct _MGSL_PARAMS) +#define MGSL_IOCSTXIDLE _IO(MGSL_MAGIC_IOC,2) +#define MGSL_IOCGTXIDLE _IO(MGSL_MAGIC_IOC,3) +#define MGSL_IOCTXENABLE _IO(MGSL_MAGIC_IOC,4) +#define MGSL_IOCRXENABLE _IO(MGSL_MAGIC_IOC,5) +#define MGSL_IOCTXABORT _IO(MGSL_MAGIC_IOC,6) +#define MGSL_IOCGSTATS _IO(MGSL_MAGIC_IOC,7) +#define MGSL_IOCWAITEVENT _IOWR(MGSL_MAGIC_IOC,8,int) +#define MGSL_IOCCLRMODCOUNT _IO(MGSL_MAGIC_IOC,15) +#define MGSL_IOCLOOPTXDONE _IO(MGSL_MAGIC_IOC,9) +#define MGSL_IOCSIF _IO(MGSL_MAGIC_IOC,10) +#define MGSL_IOCGIF _IO(MGSL_MAGIC_IOC,11) +#define MGSL_IOCSGPIO _IOW(MGSL_MAGIC_IOC,16,struct gpio_desc) +#define MGSL_IOCGGPIO _IOR(MGSL_MAGIC_IOC,17,struct gpio_desc) +#define MGSL_IOCWAITGPIO _IOWR(MGSL_MAGIC_IOC,18,struct gpio_desc) +#define MGSL_IOCSXSYNC _IO(MGSL_MAGIC_IOC, 19) +#define MGSL_IOCGXSYNC _IO(MGSL_MAGIC_IOC, 20) +#define MGSL_IOCSXCTRL _IO(MGSL_MAGIC_IOC, 21) +#define MGSL_IOCGXCTRL _IO(MGSL_MAGIC_IOC, 22) + + +#endif /* _SYNCLINK_H_ */ diff --git a/kernel_headers/linux/sysctl.h b/kernel_headers/linux/sysctl.h new file mode 100644 index 0000000..1d517ca --- /dev/null +++ b/kernel_headers/linux/sysctl.h @@ -0,0 +1,933 @@ +/* + * sysctl.h: General linux system control interface + * + * Begun 24 March 1995, Stephen Tweedie + * + **************************************************************** + **************************************************************** + ** + ** WARNING: + ** The values in this file are exported to user space via + ** the sysctl() binary interface. Do *NOT* change the + ** numbering of any existing values here, and do not change + ** any numbers within any one set of values. If you have to + ** redefine an existing interface, use a new number for it. + ** The kernel will then return -ENOTDIR to any application using + ** the old binary interface. + ** + **************************************************************** + **************************************************************** + */ + +#ifndef _LINUX_SYSCTL_H +#define _LINUX_SYSCTL_H + +#include +#include + + +struct completion; + +#define CTL_MAXNAME 10 /* how many path components do we allow in a + call to sysctl? In other words, what is + the largest acceptable value for the nlen + member of a struct __sysctl_args to have? */ + +struct __sysctl_args { + int *name; + int nlen; + void *oldval; + size_t *oldlenp; + void *newval; + size_t newlen; + unsigned long __unused[4]; +}; + +/* Define sysctl names first */ + +/* Top-level names: */ + +enum +{ + CTL_KERN=1, /* General kernel info and control */ + CTL_VM=2, /* VM management */ + CTL_NET=3, /* Networking */ + CTL_PROC=4, /* removal breaks strace(1) compilation */ + CTL_FS=5, /* Filesystems */ + CTL_DEBUG=6, /* Debugging */ + CTL_DEV=7, /* Devices */ + CTL_BUS=8, /* Busses */ + CTL_ABI=9, /* Binary emulation */ + CTL_CPU=10, /* CPU stuff (speed scaling, etc) */ + CTL_ARLAN=254, /* arlan wireless driver */ + CTL_S390DBF=5677, /* s390 debug */ + CTL_SUNRPC=7249, /* sunrpc debug */ + CTL_PM=9899, /* frv power management */ + CTL_FRV=9898, /* frv specific sysctls */ +}; + +/* CTL_BUS names: */ +enum +{ + CTL_BUS_ISA=1 /* ISA */ +}; + +/* /proc/sys/fs/inotify/ */ +enum +{ + INOTIFY_MAX_USER_INSTANCES=1, /* max instances per user */ + INOTIFY_MAX_USER_WATCHES=2, /* max watches per user */ + INOTIFY_MAX_QUEUED_EVENTS=3 /* max queued events per instance */ +}; + +/* CTL_KERN names: */ +enum +{ + KERN_OSTYPE=1, /* string: system version */ + KERN_OSRELEASE=2, /* string: system release */ + KERN_OSREV=3, /* int: system revision */ + KERN_VERSION=4, /* string: compile time info */ + KERN_SECUREMASK=5, /* struct: maximum rights mask */ + KERN_PROF=6, /* table: profiling information */ + KERN_NODENAME=7, /* string: hostname */ + KERN_DOMAINNAME=8, /* string: domainname */ + + KERN_PANIC=15, /* int: panic timeout */ + KERN_REALROOTDEV=16, /* real root device to mount after initrd */ + + KERN_SPARC_REBOOT=21, /* reboot command on Sparc */ + KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */ + KERN_PRINTK=23, /* struct: control printk logging parameters */ + KERN_NAMETRANS=24, /* Name translation */ + KERN_PPC_HTABRECLAIM=25, /* turn htab reclaimation on/off on PPC */ + KERN_PPC_ZEROPAGED=26, /* turn idle page zeroing on/off on PPC */ + KERN_PPC_POWERSAVE_NAP=27, /* use nap mode for power saving */ + KERN_MODPROBE=28, /* string: modprobe path */ + KERN_SG_BIG_BUFF=29, /* int: sg driver reserved buffer size */ + KERN_ACCT=30, /* BSD process accounting parameters */ + KERN_PPC_L2CR=31, /* l2cr register on PPC */ + + KERN_RTSIGNR=32, /* Number of rt sigs queued */ + KERN_RTSIGMAX=33, /* Max queuable */ + + KERN_SHMMAX=34, /* long: Maximum shared memory segment */ + KERN_MSGMAX=35, /* int: Maximum size of a messege */ + KERN_MSGMNB=36, /* int: Maximum message queue size */ + KERN_MSGPOOL=37, /* int: Maximum system message pool size */ + KERN_SYSRQ=38, /* int: Sysreq enable */ + KERN_MAX_THREADS=39, /* int: Maximum nr of threads in the system */ + KERN_RANDOM=40, /* Random driver */ + KERN_SHMALL=41, /* int: Maximum size of shared memory */ + KERN_MSGMNI=42, /* int: msg queue identifiers */ + KERN_SEM=43, /* struct: sysv semaphore limits */ + KERN_SPARC_STOP_A=44, /* int: Sparc Stop-A enable */ + KERN_SHMMNI=45, /* int: shm array identifiers */ + KERN_OVERFLOWUID=46, /* int: overflow UID */ + KERN_OVERFLOWGID=47, /* int: overflow GID */ + KERN_SHMPATH=48, /* string: path to shm fs */ + KERN_HOTPLUG=49, /* string: path to uevent helper (deprecated) */ + KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ + KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */ + KERN_CORE_USES_PID=52, /* int: use core or core.%pid */ + KERN_TAINTED=53, /* int: various kernel tainted flags */ + KERN_CADPID=54, /* int: PID of the process to notify on CAD */ + KERN_PIDMAX=55, /* int: PID # limit */ + KERN_CORE_PATTERN=56, /* string: pattern for core-file names */ + KERN_PANIC_ON_OOPS=57, /* int: whether we will panic on an oops */ + KERN_HPPA_PWRSW=58, /* int: hppa soft-power enable */ + KERN_HPPA_UNALIGNED=59, /* int: hppa unaligned-trap enable */ + KERN_PRINTK_RATELIMIT=60, /* int: tune printk ratelimiting */ + KERN_PRINTK_RATELIMIT_BURST=61, /* int: tune printk ratelimiting */ + KERN_PTY=62, /* dir: pty driver */ + KERN_NGROUPS_MAX=63, /* int: NGROUPS_MAX */ + KERN_SPARC_SCONS_PWROFF=64, /* int: serial console power-off halt */ + KERN_HZ_TIMER=65, /* int: hz timer on or off */ + KERN_UNKNOWN_NMI_PANIC=66, /* int: unknown nmi panic flag */ + KERN_BOOTLOADER_TYPE=67, /* int: boot loader type */ + KERN_RANDOMIZE=68, /* int: randomize virtual address space */ + KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ + KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ + KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ + KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */ + KERN_COMPAT_LOG=73, /* int: print compat layer messages */ + KERN_MAX_LOCK_DEPTH=74, /* int: rtmutex's maximum lock depth */ + KERN_NMI_WATCHDOG=75, /* int: enable/disable nmi watchdog */ + KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ + KERN_COLD_BOOT = 78, /* int: identify if system cold booted */ +}; + + + +/* CTL_VM names: */ +enum +{ + VM_UNUSED1=1, /* was: struct: Set vm swapping control */ + VM_UNUSED2=2, /* was; int: Linear or sqrt() swapout for hogs */ + VM_UNUSED3=3, /* was: struct: Set free page thresholds */ + VM_UNUSED4=4, /* Spare */ + VM_OVERCOMMIT_MEMORY=5, /* Turn off the virtual memory safety limit */ + VM_UNUSED5=6, /* was: struct: Set buffer memory thresholds */ + VM_UNUSED7=7, /* was: struct: Set cache memory thresholds */ + VM_UNUSED8=8, /* was: struct: Control kswapd behaviour */ + VM_UNUSED9=9, /* was: struct: Set page table cache parameters */ + VM_PAGE_CLUSTER=10, /* int: set number of pages to swap together */ + VM_DIRTY_BACKGROUND=11, /* dirty_background_ratio */ + VM_DIRTY_RATIO=12, /* dirty_ratio */ + VM_DIRTY_WB_CS=13, /* dirty_writeback_centisecs */ + VM_DIRTY_EXPIRE_CS=14, /* dirty_expire_centisecs */ + VM_NR_PDFLUSH_THREADS=15, /* nr_pdflush_threads */ + VM_OVERCOMMIT_RATIO=16, /* percent of RAM to allow overcommit in */ + VM_PAGEBUF=17, /* struct: Control pagebuf parameters */ + VM_HUGETLB_PAGES=18, /* int: Number of available Huge Pages */ + VM_SWAPPINESS=19, /* Tendency to steal mapped memory */ + VM_LOWMEM_RESERVE_RATIO=20,/* reservation ratio for lower memory zones */ + VM_MIN_FREE_KBYTES=21, /* Minimum free kilobytes to maintain */ + VM_MAX_MAP_COUNT=22, /* int: Maximum number of mmaps/address-space */ + VM_LAPTOP_MODE=23, /* vm laptop mode */ + VM_BLOCK_DUMP=24, /* block dump mode */ + VM_HUGETLB_GROUP=25, /* permitted hugetlb group */ + VM_VFS_CACHE_PRESSURE=26, /* dcache/icache reclaim pressure */ + VM_LEGACY_VA_LAYOUT=27, /* legacy/compatibility virtual address space layout */ + VM_SWAP_TOKEN_TIMEOUT=28, /* default time for token time out */ + VM_DROP_PAGECACHE=29, /* int: nuke lots of pagecache */ + VM_PERCPU_PAGELIST_FRACTION=30,/* int: fraction of pages in each percpu_pagelist */ + VM_ZONE_RECLAIM_MODE=31, /* reclaim local zone memory before going off node */ + VM_MIN_UNMAPPED=32, /* Set min percent of unmapped pages */ + VM_PANIC_ON_OOM=33, /* panic at out-of-memory */ + VM_VDSO_ENABLED=34, /* map VDSO into new processes? */ + VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */ +}; + + +/* CTL_NET names: */ +enum +{ + NET_CORE=1, + NET_ETHER=2, + NET_802=3, + NET_UNIX=4, + NET_IPV4=5, + NET_IPX=6, + NET_ATALK=7, + NET_NETROM=8, + NET_AX25=9, + NET_BRIDGE=10, + NET_ROSE=11, + NET_IPV6=12, + NET_X25=13, + NET_TR=14, + NET_DECNET=15, + NET_ECONET=16, + NET_SCTP=17, + NET_LLC=18, + NET_NETFILTER=19, + NET_DCCP=20, + NET_IRDA=412, +}; + +/* /proc/sys/kernel/random */ +enum +{ + RANDOM_POOLSIZE=1, + RANDOM_ENTROPY_COUNT=2, + RANDOM_READ_THRESH=3, + RANDOM_WRITE_THRESH=4, + RANDOM_BOOT_ID=5, + RANDOM_UUID=6 +}; + +/* /proc/sys/kernel/pty */ +enum +{ + PTY_MAX=1, + PTY_NR=2 +}; + +/* /proc/sys/bus/isa */ +enum +{ + BUS_ISA_MEM_BASE=1, + BUS_ISA_PORT_BASE=2, + BUS_ISA_PORT_SHIFT=3 +}; + +/* /proc/sys/net/core */ +enum +{ + NET_CORE_WMEM_MAX=1, + NET_CORE_RMEM_MAX=2, + NET_CORE_WMEM_DEFAULT=3, + NET_CORE_RMEM_DEFAULT=4, +/* was NET_CORE_DESTROY_DELAY */ + NET_CORE_MAX_BACKLOG=6, + NET_CORE_FASTROUTE=7, + NET_CORE_MSG_COST=8, + NET_CORE_MSG_BURST=9, + NET_CORE_OPTMEM_MAX=10, + NET_CORE_HOT_LIST_LENGTH=11, + NET_CORE_DIVERT_VERSION=12, + NET_CORE_NO_CONG_THRESH=13, + NET_CORE_NO_CONG=14, + NET_CORE_LO_CONG=15, + NET_CORE_MOD_CONG=16, + NET_CORE_DEV_WEIGHT=17, + NET_CORE_SOMAXCONN=18, + NET_CORE_BUDGET=19, + NET_CORE_AEVENT_ETIME=20, + NET_CORE_AEVENT_RSEQTH=21, + NET_CORE_WARNINGS=22, +}; + +/* /proc/sys/net/ethernet */ + +/* /proc/sys/net/802 */ + +/* /proc/sys/net/unix */ + +enum +{ + NET_UNIX_DESTROY_DELAY=1, + NET_UNIX_DELETE_DELAY=2, + NET_UNIX_MAX_DGRAM_QLEN=3, +}; + +/* /proc/sys/net/netfilter */ +enum +{ + NET_NF_CONNTRACK_MAX=1, + NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, + NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, + NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, + NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, + NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, + NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, + NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, + NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, + NET_NF_CONNTRACK_UDP_TIMEOUT=10, + NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, + NET_NF_CONNTRACK_ICMP_TIMEOUT=12, + NET_NF_CONNTRACK_GENERIC_TIMEOUT=13, + NET_NF_CONNTRACK_BUCKETS=14, + NET_NF_CONNTRACK_LOG_INVALID=15, + NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, + NET_NF_CONNTRACK_TCP_LOOSE=17, + NET_NF_CONNTRACK_TCP_BE_LIBERAL=18, + NET_NF_CONNTRACK_TCP_MAX_RETRANS=19, + NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, + NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, + NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, + NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, + NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, + NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, + NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, + NET_NF_CONNTRACK_COUNT=27, + NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28, + NET_NF_CONNTRACK_FRAG6_TIMEOUT=29, + NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30, + NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31, + NET_NF_CONNTRACK_CHECKSUM=32, +}; + +/* /proc/sys/net/ipv4 */ +enum +{ + /* v2.0 compatibile variables */ + NET_IPV4_FORWARD=8, + NET_IPV4_DYNADDR=9, + + NET_IPV4_CONF=16, + NET_IPV4_NEIGH=17, + NET_IPV4_ROUTE=18, + NET_IPV4_FIB_HASH=19, + NET_IPV4_NETFILTER=20, + + NET_IPV4_TCP_TIMESTAMPS=33, + NET_IPV4_TCP_WINDOW_SCALING=34, + NET_IPV4_TCP_SACK=35, + NET_IPV4_TCP_RETRANS_COLLAPSE=36, + NET_IPV4_DEFAULT_TTL=37, + NET_IPV4_AUTOCONFIG=38, + NET_IPV4_NO_PMTU_DISC=39, + NET_IPV4_TCP_SYN_RETRIES=40, + NET_IPV4_IPFRAG_HIGH_THRESH=41, + NET_IPV4_IPFRAG_LOW_THRESH=42, + NET_IPV4_IPFRAG_TIME=43, + NET_IPV4_TCP_MAX_KA_PROBES=44, + NET_IPV4_TCP_KEEPALIVE_TIME=45, + NET_IPV4_TCP_KEEPALIVE_PROBES=46, + NET_IPV4_TCP_RETRIES1=47, + NET_IPV4_TCP_RETRIES2=48, + NET_IPV4_TCP_FIN_TIMEOUT=49, + NET_IPV4_IP_MASQ_DEBUG=50, + NET_TCP_SYNCOOKIES=51, + NET_TCP_STDURG=52, + NET_TCP_RFC1337=53, + NET_TCP_SYN_TAILDROP=54, + NET_TCP_MAX_SYN_BACKLOG=55, + NET_IPV4_LOCAL_PORT_RANGE=56, + NET_IPV4_ICMP_ECHO_IGNORE_ALL=57, + NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58, + NET_IPV4_ICMP_SOURCEQUENCH_RATE=59, + NET_IPV4_ICMP_DESTUNREACH_RATE=60, + NET_IPV4_ICMP_TIMEEXCEED_RATE=61, + NET_IPV4_ICMP_PARAMPROB_RATE=62, + NET_IPV4_ICMP_ECHOREPLY_RATE=63, + NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64, + NET_IPV4_IGMP_MAX_MEMBERSHIPS=65, + NET_TCP_TW_RECYCLE=66, + NET_IPV4_ALWAYS_DEFRAG=67, + NET_IPV4_TCP_KEEPALIVE_INTVL=68, + NET_IPV4_INET_PEER_THRESHOLD=69, + NET_IPV4_INET_PEER_MINTTL=70, + NET_IPV4_INET_PEER_MAXTTL=71, + NET_IPV4_INET_PEER_GC_MINTIME=72, + NET_IPV4_INET_PEER_GC_MAXTIME=73, + NET_TCP_ORPHAN_RETRIES=74, + NET_TCP_ABORT_ON_OVERFLOW=75, + NET_TCP_SYNACK_RETRIES=76, + NET_TCP_MAX_ORPHANS=77, + NET_TCP_MAX_TW_BUCKETS=78, + NET_TCP_FACK=79, + NET_TCP_REORDERING=80, + NET_TCP_ECN=81, + NET_TCP_DSACK=82, + NET_TCP_MEM=83, + NET_TCP_WMEM=84, + NET_TCP_RMEM=85, + NET_TCP_APP_WIN=86, + NET_TCP_ADV_WIN_SCALE=87, + NET_IPV4_NONLOCAL_BIND=88, + NET_IPV4_ICMP_RATELIMIT=89, + NET_IPV4_ICMP_RATEMASK=90, + NET_TCP_TW_REUSE=91, + NET_TCP_FRTO=92, + NET_TCP_LOW_LATENCY=93, + NET_IPV4_IPFRAG_SECRET_INTERVAL=94, + NET_IPV4_IGMP_MAX_MSF=96, + NET_TCP_NO_METRICS_SAVE=97, + NET_TCP_DEFAULT_WIN_SCALE=105, + NET_TCP_MODERATE_RCVBUF=106, + NET_TCP_TSO_WIN_DIVISOR=107, + NET_TCP_BIC_BETA=108, + NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, + NET_TCP_CONG_CONTROL=110, + NET_TCP_ABC=111, + NET_IPV4_IPFRAG_MAX_DIST=112, + NET_TCP_MTU_PROBING=113, + NET_TCP_BASE_MSS=114, + NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115, + NET_TCP_DMA_COPYBREAK=116, + NET_TCP_SLOW_START_AFTER_IDLE=117, + NET_CIPSOV4_CACHE_ENABLE=118, + NET_CIPSOV4_CACHE_BUCKET_SIZE=119, + NET_CIPSOV4_RBM_OPTFMT=120, + NET_CIPSOV4_RBM_STRICTVALID=121, + NET_TCP_AVAIL_CONG_CONTROL=122, + NET_TCP_ALLOWED_CONG_CONTROL=123, + NET_TCP_MAX_SSTHRESH=124, + NET_TCP_FRTO_RESPONSE=125, +}; + +enum { + NET_IPV4_ROUTE_FLUSH=1, + NET_IPV4_ROUTE_MIN_DELAY=2, /* obsolete since 2.6.25 */ + NET_IPV4_ROUTE_MAX_DELAY=3, /* obsolete since 2.6.25 */ + NET_IPV4_ROUTE_GC_THRESH=4, + NET_IPV4_ROUTE_MAX_SIZE=5, + NET_IPV4_ROUTE_GC_MIN_INTERVAL=6, + NET_IPV4_ROUTE_GC_TIMEOUT=7, + NET_IPV4_ROUTE_GC_INTERVAL=8, /* obsolete since 2.6.38 */ + NET_IPV4_ROUTE_REDIRECT_LOAD=9, + NET_IPV4_ROUTE_REDIRECT_NUMBER=10, + NET_IPV4_ROUTE_REDIRECT_SILENCE=11, + NET_IPV4_ROUTE_ERROR_COST=12, + NET_IPV4_ROUTE_ERROR_BURST=13, + NET_IPV4_ROUTE_GC_ELASTICITY=14, + NET_IPV4_ROUTE_MTU_EXPIRES=15, + NET_IPV4_ROUTE_MIN_PMTU=16, + NET_IPV4_ROUTE_MIN_ADVMSS=17, + NET_IPV4_ROUTE_SECRET_INTERVAL=18, + NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19, +}; + +enum +{ + NET_PROTO_CONF_ALL=-2, + NET_PROTO_CONF_DEFAULT=-3 + + /* And device ifindices ... */ +}; + +enum +{ + NET_IPV4_CONF_FORWARDING=1, + NET_IPV4_CONF_MC_FORWARDING=2, + NET_IPV4_CONF_PROXY_ARP=3, + NET_IPV4_CONF_ACCEPT_REDIRECTS=4, + NET_IPV4_CONF_SECURE_REDIRECTS=5, + NET_IPV4_CONF_SEND_REDIRECTS=6, + NET_IPV4_CONF_SHARED_MEDIA=7, + NET_IPV4_CONF_RP_FILTER=8, + NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9, + NET_IPV4_CONF_BOOTP_RELAY=10, + NET_IPV4_CONF_LOG_MARTIANS=11, + NET_IPV4_CONF_TAG=12, + NET_IPV4_CONF_ARPFILTER=13, + NET_IPV4_CONF_MEDIUM_ID=14, + NET_IPV4_CONF_NOXFRM=15, + NET_IPV4_CONF_NOPOLICY=16, + NET_IPV4_CONF_FORCE_IGMP_VERSION=17, + NET_IPV4_CONF_ARP_ANNOUNCE=18, + NET_IPV4_CONF_ARP_IGNORE=19, + NET_IPV4_CONF_PROMOTE_SECONDARIES=20, + NET_IPV4_CONF_ARP_ACCEPT=21, + NET_IPV4_CONF_ARP_NOTIFY=22, +}; + +/* /proc/sys/net/ipv4/netfilter */ +enum +{ + NET_IPV4_NF_CONNTRACK_MAX=1, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, + NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10, + NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, + NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12, + NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13, + NET_IPV4_NF_CONNTRACK_BUCKETS=14, + NET_IPV4_NF_CONNTRACK_LOG_INVALID=15, + NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, + NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17, + NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18, + NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, + NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, + NET_IPV4_NF_CONNTRACK_COUNT=27, + NET_IPV4_NF_CONNTRACK_CHECKSUM=28, +}; + +/* /proc/sys/net/ipv6 */ +enum { + NET_IPV6_CONF=16, + NET_IPV6_NEIGH=17, + NET_IPV6_ROUTE=18, + NET_IPV6_ICMP=19, + NET_IPV6_BINDV6ONLY=20, + NET_IPV6_IP6FRAG_HIGH_THRESH=21, + NET_IPV6_IP6FRAG_LOW_THRESH=22, + NET_IPV6_IP6FRAG_TIME=23, + NET_IPV6_IP6FRAG_SECRET_INTERVAL=24, + NET_IPV6_MLD_MAX_MSF=25, +}; + +enum { + NET_IPV6_ROUTE_FLUSH=1, + NET_IPV6_ROUTE_GC_THRESH=2, + NET_IPV6_ROUTE_MAX_SIZE=3, + NET_IPV6_ROUTE_GC_MIN_INTERVAL=4, + NET_IPV6_ROUTE_GC_TIMEOUT=5, + NET_IPV6_ROUTE_GC_INTERVAL=6, + NET_IPV6_ROUTE_GC_ELASTICITY=7, + NET_IPV6_ROUTE_MTU_EXPIRES=8, + NET_IPV6_ROUTE_MIN_ADVMSS=9, + NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10 +}; + +enum { + NET_IPV6_FORWARDING=1, + NET_IPV6_HOP_LIMIT=2, + NET_IPV6_MTU=3, + NET_IPV6_ACCEPT_RA=4, + NET_IPV6_ACCEPT_REDIRECTS=5, + NET_IPV6_AUTOCONF=6, + NET_IPV6_DAD_TRANSMITS=7, + NET_IPV6_RTR_SOLICITS=8, + NET_IPV6_RTR_SOLICIT_INTERVAL=9, + NET_IPV6_RTR_SOLICIT_DELAY=10, + NET_IPV6_USE_TEMPADDR=11, + NET_IPV6_TEMP_VALID_LFT=12, + NET_IPV6_TEMP_PREFERED_LFT=13, + NET_IPV6_REGEN_MAX_RETRY=14, + NET_IPV6_MAX_DESYNC_FACTOR=15, + NET_IPV6_MAX_ADDRESSES=16, + NET_IPV6_FORCE_MLD_VERSION=17, + NET_IPV6_ACCEPT_RA_DEFRTR=18, + NET_IPV6_ACCEPT_RA_PINFO=19, + NET_IPV6_ACCEPT_RA_RTR_PREF=20, + NET_IPV6_RTR_PROBE_INTERVAL=21, + NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, + NET_IPV6_PROXY_NDP=23, + NET_IPV6_ACCEPT_SOURCE_ROUTE=25, + __NET_IPV6_MAX +}; + +/* /proc/sys/net/ipv6/icmp */ +enum { + NET_IPV6_ICMP_RATELIMIT=1 +}; + +/* /proc/sys/net//neigh/ */ +enum { + NET_NEIGH_MCAST_SOLICIT=1, + NET_NEIGH_UCAST_SOLICIT=2, + NET_NEIGH_APP_SOLICIT=3, + NET_NEIGH_RETRANS_TIME=4, + NET_NEIGH_REACHABLE_TIME=5, + NET_NEIGH_DELAY_PROBE_TIME=6, + NET_NEIGH_GC_STALE_TIME=7, + NET_NEIGH_UNRES_QLEN=8, + NET_NEIGH_PROXY_QLEN=9, + NET_NEIGH_ANYCAST_DELAY=10, + NET_NEIGH_PROXY_DELAY=11, + NET_NEIGH_LOCKTIME=12, + NET_NEIGH_GC_INTERVAL=13, + NET_NEIGH_GC_THRESH1=14, + NET_NEIGH_GC_THRESH2=15, + NET_NEIGH_GC_THRESH3=16, + NET_NEIGH_RETRANS_TIME_MS=17, + NET_NEIGH_REACHABLE_TIME_MS=18, +}; + +/* /proc/sys/net/dccp */ +enum { + NET_DCCP_DEFAULT=1, +}; + +/* /proc/sys/net/ipx */ +enum { + NET_IPX_PPROP_BROADCASTING=1, + NET_IPX_FORWARDING=2 +}; + +/* /proc/sys/net/llc */ +enum { + NET_LLC2=1, + NET_LLC_STATION=2, +}; + +/* /proc/sys/net/llc/llc2 */ +enum { + NET_LLC2_TIMEOUT=1, +}; + +/* /proc/sys/net/llc/station */ +enum { + NET_LLC_STATION_ACK_TIMEOUT=1, +}; + +/* /proc/sys/net/llc/llc2/timeout */ +enum { + NET_LLC2_ACK_TIMEOUT=1, + NET_LLC2_P_TIMEOUT=2, + NET_LLC2_REJ_TIMEOUT=3, + NET_LLC2_BUSY_TIMEOUT=4, +}; + +/* /proc/sys/net/appletalk */ +enum { + NET_ATALK_AARP_EXPIRY_TIME=1, + NET_ATALK_AARP_TICK_TIME=2, + NET_ATALK_AARP_RETRANSMIT_LIMIT=3, + NET_ATALK_AARP_RESOLVE_TIME=4 +}; + + +/* /proc/sys/net/netrom */ +enum { + NET_NETROM_DEFAULT_PATH_QUALITY=1, + NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2, + NET_NETROM_NETWORK_TTL_INITIALISER=3, + NET_NETROM_TRANSPORT_TIMEOUT=4, + NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5, + NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6, + NET_NETROM_TRANSPORT_BUSY_DELAY=7, + NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8, + NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9, + NET_NETROM_ROUTING_CONTROL=10, + NET_NETROM_LINK_FAILS_COUNT=11, + NET_NETROM_RESET=12 +}; + +/* /proc/sys/net/ax25 */ +enum { + NET_AX25_IP_DEFAULT_MODE=1, + NET_AX25_DEFAULT_MODE=2, + NET_AX25_BACKOFF_TYPE=3, + NET_AX25_CONNECT_MODE=4, + NET_AX25_STANDARD_WINDOW=5, + NET_AX25_EXTENDED_WINDOW=6, + NET_AX25_T1_TIMEOUT=7, + NET_AX25_T2_TIMEOUT=8, + NET_AX25_T3_TIMEOUT=9, + NET_AX25_IDLE_TIMEOUT=10, + NET_AX25_N2=11, + NET_AX25_PACLEN=12, + NET_AX25_PROTOCOL=13, + NET_AX25_DAMA_SLAVE_TIMEOUT=14 +}; + +/* /proc/sys/net/rose */ +enum { + NET_ROSE_RESTART_REQUEST_TIMEOUT=1, + NET_ROSE_CALL_REQUEST_TIMEOUT=2, + NET_ROSE_RESET_REQUEST_TIMEOUT=3, + NET_ROSE_CLEAR_REQUEST_TIMEOUT=4, + NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5, + NET_ROSE_ROUTING_CONTROL=6, + NET_ROSE_LINK_FAIL_TIMEOUT=7, + NET_ROSE_MAX_VCS=8, + NET_ROSE_WINDOW_SIZE=9, + NET_ROSE_NO_ACTIVITY_TIMEOUT=10 +}; + +/* /proc/sys/net/x25 */ +enum { + NET_X25_RESTART_REQUEST_TIMEOUT=1, + NET_X25_CALL_REQUEST_TIMEOUT=2, + NET_X25_RESET_REQUEST_TIMEOUT=3, + NET_X25_CLEAR_REQUEST_TIMEOUT=4, + NET_X25_ACK_HOLD_BACK_TIMEOUT=5, + NET_X25_FORWARD=6 +}; + +/* /proc/sys/net/token-ring */ +enum +{ + NET_TR_RIF_TIMEOUT=1 +}; + +/* /proc/sys/net/decnet/ */ +enum { + NET_DECNET_NODE_TYPE = 1, + NET_DECNET_NODE_ADDRESS = 2, + NET_DECNET_NODE_NAME = 3, + NET_DECNET_DEFAULT_DEVICE = 4, + NET_DECNET_TIME_WAIT = 5, + NET_DECNET_DN_COUNT = 6, + NET_DECNET_DI_COUNT = 7, + NET_DECNET_DR_COUNT = 8, + NET_DECNET_DST_GC_INTERVAL = 9, + NET_DECNET_CONF = 10, + NET_DECNET_NO_FC_MAX_CWND = 11, + NET_DECNET_MEM = 12, + NET_DECNET_RMEM = 13, + NET_DECNET_WMEM = 14, + NET_DECNET_DEBUG_LEVEL = 255 +}; + +/* /proc/sys/net/decnet/conf/ */ +enum { + NET_DECNET_CONF_LOOPBACK = -2, + NET_DECNET_CONF_DDCMP = -3, + NET_DECNET_CONF_PPP = -4, + NET_DECNET_CONF_X25 = -5, + NET_DECNET_CONF_GRE = -6, + NET_DECNET_CONF_ETHER = -7 + + /* ... and ifindex of devices */ +}; + +/* /proc/sys/net/decnet/conf// */ +enum { + NET_DECNET_CONF_DEV_PRIORITY = 1, + NET_DECNET_CONF_DEV_T1 = 2, + NET_DECNET_CONF_DEV_T2 = 3, + NET_DECNET_CONF_DEV_T3 = 4, + NET_DECNET_CONF_DEV_FORWARDING = 5, + NET_DECNET_CONF_DEV_BLKSIZE = 6, + NET_DECNET_CONF_DEV_STATE = 7 +}; + +/* /proc/sys/net/sctp */ +enum { + NET_SCTP_RTO_INITIAL = 1, + NET_SCTP_RTO_MIN = 2, + NET_SCTP_RTO_MAX = 3, + NET_SCTP_RTO_ALPHA = 4, + NET_SCTP_RTO_BETA = 5, + NET_SCTP_VALID_COOKIE_LIFE = 6, + NET_SCTP_ASSOCIATION_MAX_RETRANS = 7, + NET_SCTP_PATH_MAX_RETRANS = 8, + NET_SCTP_MAX_INIT_RETRANSMITS = 9, + NET_SCTP_HB_INTERVAL = 10, + NET_SCTP_PRESERVE_ENABLE = 11, + NET_SCTP_MAX_BURST = 12, + NET_SCTP_ADDIP_ENABLE = 13, + NET_SCTP_PRSCTP_ENABLE = 14, + NET_SCTP_SNDBUF_POLICY = 15, + NET_SCTP_SACK_TIMEOUT = 16, + NET_SCTP_RCVBUF_POLICY = 17, +}; + +/* /proc/sys/net/bridge */ +enum { + NET_BRIDGE_NF_CALL_ARPTABLES = 1, + NET_BRIDGE_NF_CALL_IPTABLES = 2, + NET_BRIDGE_NF_CALL_IP6TABLES = 3, + NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4, + NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5, +}; + +/* proc/sys/net/irda */ +enum { + NET_IRDA_DISCOVERY=1, + NET_IRDA_DEVNAME=2, + NET_IRDA_DEBUG=3, + NET_IRDA_FAST_POLL=4, + NET_IRDA_DISCOVERY_SLOTS=5, + NET_IRDA_DISCOVERY_TIMEOUT=6, + NET_IRDA_SLOT_TIMEOUT=7, + NET_IRDA_MAX_BAUD_RATE=8, + NET_IRDA_MIN_TX_TURN_TIME=9, + NET_IRDA_MAX_TX_DATA_SIZE=10, + NET_IRDA_MAX_TX_WINDOW=11, + NET_IRDA_MAX_NOREPLY_TIME=12, + NET_IRDA_WARN_NOREPLY_TIME=13, + NET_IRDA_LAP_KEEPALIVE_TIME=14, +}; + + +/* CTL_FS names: */ +enum +{ + FS_NRINODE=1, /* int:current number of allocated inodes */ + FS_STATINODE=2, + FS_MAXINODE=3, /* int:maximum number of inodes that can be allocated */ + FS_NRDQUOT=4, /* int:current number of allocated dquots */ + FS_MAXDQUOT=5, /* int:maximum number of dquots that can be allocated */ + FS_NRFILE=6, /* int:current number of allocated filedescriptors */ + FS_MAXFILE=7, /* int:maximum number of filedescriptors that can be allocated */ + FS_DENTRY=8, + FS_NRSUPER=9, /* int:current number of allocated super_blocks */ + FS_MAXSUPER=10, /* int:maximum number of super_blocks that can be allocated */ + FS_OVERFLOWUID=11, /* int: overflow UID */ + FS_OVERFLOWGID=12, /* int: overflow GID */ + FS_LEASES=13, /* int: leases enabled */ + FS_DIR_NOTIFY=14, /* int: directory notification enabled */ + FS_LEASE_TIME=15, /* int: maximum time to wait for a lease break */ + FS_DQSTATS=16, /* disc quota usage statistics and control */ + FS_XFS=17, /* struct: control xfs parameters */ + FS_AIO_NR=18, /* current system-wide number of aio requests */ + FS_AIO_MAX_NR=19, /* system-wide maximum number of aio requests */ + FS_INOTIFY=20, /* inotify submenu */ + FS_OCFS2=988, /* ocfs2 */ +}; + +/* /proc/sys/fs/quota/ */ +enum { + FS_DQ_LOOKUPS = 1, + FS_DQ_DROPS = 2, + FS_DQ_READS = 3, + FS_DQ_WRITES = 4, + FS_DQ_CACHE_HITS = 5, + FS_DQ_ALLOCATED = 6, + FS_DQ_FREE = 7, + FS_DQ_SYNCS = 8, + FS_DQ_WARNINGS = 9, +}; + +/* CTL_DEBUG names: */ + +/* CTL_DEV names: */ +enum { + DEV_CDROM=1, + DEV_HWMON=2, + DEV_PARPORT=3, + DEV_RAID=4, + DEV_MAC_HID=5, + DEV_SCSI=6, + DEV_IPMI=7, +}; + +/* /proc/sys/dev/cdrom */ +enum { + DEV_CDROM_INFO=1, + DEV_CDROM_AUTOCLOSE=2, + DEV_CDROM_AUTOEJECT=3, + DEV_CDROM_DEBUG=4, + DEV_CDROM_LOCK=5, + DEV_CDROM_CHECK_MEDIA=6 +}; + +/* /proc/sys/dev/parport */ +enum { + DEV_PARPORT_DEFAULT=-3 +}; + +/* /proc/sys/dev/raid */ +enum { + DEV_RAID_SPEED_LIMIT_MIN=1, + DEV_RAID_SPEED_LIMIT_MAX=2 +}; + +/* /proc/sys/dev/parport/default */ +enum { + DEV_PARPORT_DEFAULT_TIMESLICE=1, + DEV_PARPORT_DEFAULT_SPINTIME=2 +}; + +/* /proc/sys/dev/parport/parport n */ +enum { + DEV_PARPORT_SPINTIME=1, + DEV_PARPORT_BASE_ADDR=2, + DEV_PARPORT_IRQ=3, + DEV_PARPORT_DMA=4, + DEV_PARPORT_MODES=5, + DEV_PARPORT_DEVICES=6, + DEV_PARPORT_AUTOPROBE=16 +}; + +/* /proc/sys/dev/parport/parport n/devices/ */ +enum { + DEV_PARPORT_DEVICES_ACTIVE=-3, +}; + +/* /proc/sys/dev/parport/parport n/devices/device n */ +enum { + DEV_PARPORT_DEVICE_TIMESLICE=1, +}; + +/* /proc/sys/dev/mac_hid */ +enum { + DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1, + DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2, + DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, + DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, + DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, + DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 +}; + +/* /proc/sys/dev/scsi */ +enum { + DEV_SCSI_LOGGING_LEVEL=1, +}; + +/* /proc/sys/dev/ipmi */ +enum { + DEV_IPMI_POWEROFF_POWERCYCLE=1, +}; + +/* /proc/sys/abi */ +enum +{ + ABI_DEFHANDLER_COFF=1, /* default handler for coff binaries */ + ABI_DEFHANDLER_ELF=2, /* default handler for ELF binaries */ + ABI_DEFHANDLER_LCALL7=3,/* default handler for procs using lcall7 */ + ABI_DEFHANDLER_LIBCSO=4,/* default handler for an libc.so ELF interp */ + ABI_TRACE=5, /* tracing flags */ + ABI_FAKE_UTSNAME=6, /* fake target utsname information */ +}; + + +#endif /* _LINUX_SYSCTL_H */ diff --git a/kernel_headers/linux/sysinfo.h b/kernel_headers/linux/sysinfo.h new file mode 100644 index 0000000..934335a --- /dev/null +++ b/kernel_headers/linux/sysinfo.h @@ -0,0 +1,24 @@ +#ifndef _LINUX_SYSINFO_H +#define _LINUX_SYSINFO_H + +#include + +#define SI_LOAD_SHIFT 16 +struct sysinfo { + __kernel_long_t uptime; /* Seconds since boot */ + __kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load averages */ + __kernel_ulong_t totalram; /* Total usable main memory size */ + __kernel_ulong_t freeram; /* Available memory size */ + __kernel_ulong_t sharedram; /* Amount of shared memory */ + __kernel_ulong_t bufferram; /* Memory used by buffers */ + __kernel_ulong_t totalswap; /* Total swap space size */ + __kernel_ulong_t freeswap; /* swap space still available */ + __u16 procs; /* Number of current processes */ + __u16 pad; /* Explicit padding for m68k */ + __kernel_ulong_t totalhigh; /* Total high memory size */ + __kernel_ulong_t freehigh; /* Available high memory size */ + __u32 mem_unit; /* Memory unit size in bytes */ + char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; /* Padding: libc5 uses this.. */ +}; + +#endif /* _LINUX_SYSINFO_H */ diff --git a/kernel_headers/linux/taskstats.h b/kernel_headers/linux/taskstats.h new file mode 100644 index 0000000..2466e55 --- /dev/null +++ b/kernel_headers/linux/taskstats.h @@ -0,0 +1,213 @@ +/* taskstats.h - exporting per-task statistics + * + * Copyright (C) Shailabh Nagar, IBM Corp. 2006 + * (C) Balbir Singh, IBM Corp. 2006 + * (C) Jay Lan, SGI, 2006 + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2.1 of the GNU Lesser General Public License + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _LINUX_TASKSTATS_H +#define _LINUX_TASKSTATS_H + +#include + +/* Format for per-task data returned to userland when + * - a task exits + * - listener requests stats for a task + * + * The struct is versioned. Newer versions should only add fields to + * the bottom of the struct to maintain backward compatibility. + * + * + * To add new fields + * a) bump up TASKSTATS_VERSION + * b) add comment indicating new version number at end of struct + * c) add new fields after version comment; maintain 64-bit alignment + */ + + +#define TASKSTATS_VERSION 8 +#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN + * in linux/sched.h */ + +struct taskstats { + + /* The version number of this struct. This field is always set to + * TAKSTATS_VERSION, which is defined in . + * Each time the struct is changed, the value should be incremented. + */ + __u16 version; + __u32 ac_exitcode; /* Exit status */ + + /* The accounting flags of a task as defined in + * Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG. + */ + __u8 ac_flag; /* Record flags */ + __u8 ac_nice; /* task_nice */ + + /* Delay accounting fields start + * + * All values, until comment "Delay accounting fields end" are + * available only if delay accounting is enabled, even though the last + * few fields are not delays + * + * xxx_count is the number of delay values recorded + * xxx_delay_total is the corresponding cumulative delay in nanoseconds + * + * xxx_delay_total wraps around to zero on overflow + * xxx_count incremented regardless of overflow + */ + + /* Delay waiting for cpu, while runnable + * count, delay_total NOT updated atomically + */ + __u64 cpu_count __attribute__((aligned(8))); + __u64 cpu_delay_total; + + /* Following four fields atomically updated using task->delays->lock */ + + /* Delay waiting for synchronous block I/O to complete + * does not account for delays in I/O submission + */ + __u64 blkio_count; + __u64 blkio_delay_total; + + /* Delay waiting for page fault I/O (swap in only) */ + __u64 swapin_count; + __u64 swapin_delay_total; + + /* cpu "wall-clock" running time + * On some architectures, value will adjust for cpu time stolen + * from the kernel in involuntary waits due to virtualization. + * Value is cumulative, in nanoseconds, without a corresponding count + * and wraps around to zero silently on overflow + */ + __u64 cpu_run_real_total; + + /* cpu "virtual" running time + * Uses time intervals seen by the kernel i.e. no adjustment + * for kernel's involuntary waits due to virtualization. + * Value is cumulative, in nanoseconds, without a corresponding count + * and wraps around to zero silently on overflow + */ + __u64 cpu_run_virtual_total; + /* Delay accounting fields end */ + /* version 1 ends here */ + + /* Basic Accounting Fields start */ + char ac_comm[TS_COMM_LEN]; /* Command name */ + __u8 ac_sched __attribute__((aligned(8))); + /* Scheduling discipline */ + __u8 ac_pad[3]; + __u32 ac_uid __attribute__((aligned(8))); + /* User ID */ + __u32 ac_gid; /* Group ID */ + __u32 ac_pid; /* Process ID */ + __u32 ac_ppid; /* Parent process ID */ + __u32 ac_btime; /* Begin time [sec since 1970] */ + __u64 ac_etime __attribute__((aligned(8))); + /* Elapsed time [usec] */ + __u64 ac_utime; /* User CPU time [usec] */ + __u64 ac_stime; /* SYstem CPU time [usec] */ + __u64 ac_minflt; /* Minor Page Fault Count */ + __u64 ac_majflt; /* Major Page Fault Count */ + /* Basic Accounting Fields end */ + + /* Extended accounting fields start */ + /* Accumulated RSS usage in duration of a task, in MBytes-usecs. + * The current rss usage is added to this counter every time + * a tick is charged to a task's system time. So, at the end we + * will have memory usage multiplied by system time. Thus an + * average usage per system time unit can be calculated. + */ + __u64 coremem; /* accumulated RSS usage in MB-usec */ + /* Accumulated virtual memory usage in duration of a task. + * Same as acct_rss_mem1 above except that we keep track of VM usage. + */ + __u64 virtmem; /* accumulated VM usage in MB-usec */ + + /* High watermark of RSS and virtual memory usage in duration of + * a task, in KBytes. + */ + __u64 hiwater_rss; /* High-watermark of RSS usage, in KB */ + __u64 hiwater_vm; /* High-water VM usage, in KB */ + + /* The following four fields are I/O statistics of a task. */ + __u64 read_char; /* bytes read */ + __u64 write_char; /* bytes written */ + __u64 read_syscalls; /* read syscalls */ + __u64 write_syscalls; /* write syscalls */ + /* Extended accounting fields end */ + +#define TASKSTATS_HAS_IO_ACCOUNTING + /* Per-task storage I/O accounting starts */ + __u64 read_bytes; /* bytes of read I/O */ + __u64 write_bytes; /* bytes of write I/O */ + __u64 cancelled_write_bytes; /* bytes of cancelled write I/O */ + + __u64 nvcsw; /* voluntary_ctxt_switches */ + __u64 nivcsw; /* nonvoluntary_ctxt_switches */ + + /* time accounting for SMT machines */ + __u64 ac_utimescaled; /* utime scaled on frequency etc */ + __u64 ac_stimescaled; /* stime scaled on frequency etc */ + __u64 cpu_scaled_run_real_total; /* scaled cpu_run_real_total */ + + /* Delay waiting for memory reclaim */ + __u64 freepages_count; + __u64 freepages_delay_total; +}; + + +/* + * Commands sent from userspace + * Not versioned. New commands should only be inserted at the enum's end + * prior to __TASKSTATS_CMD_MAX + */ + +enum { + TASKSTATS_CMD_UNSPEC = 0, /* Reserved */ + TASKSTATS_CMD_GET, /* user->kernel request/get-response */ + TASKSTATS_CMD_NEW, /* kernel->user event */ + __TASKSTATS_CMD_MAX, +}; + +#define TASKSTATS_CMD_MAX (__TASKSTATS_CMD_MAX - 1) + +enum { + TASKSTATS_TYPE_UNSPEC = 0, /* Reserved */ + TASKSTATS_TYPE_PID, /* Process id */ + TASKSTATS_TYPE_TGID, /* Thread group id */ + TASKSTATS_TYPE_STATS, /* taskstats structure */ + TASKSTATS_TYPE_AGGR_PID, /* contains pid + stats */ + TASKSTATS_TYPE_AGGR_TGID, /* contains tgid + stats */ + TASKSTATS_TYPE_NULL, /* contains nothing */ + __TASKSTATS_TYPE_MAX, +}; + +#define TASKSTATS_TYPE_MAX (__TASKSTATS_TYPE_MAX - 1) + +enum { + TASKSTATS_CMD_ATTR_UNSPEC = 0, + TASKSTATS_CMD_ATTR_PID, + TASKSTATS_CMD_ATTR_TGID, + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK, + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK, + __TASKSTATS_CMD_ATTR_MAX, +}; + +#define TASKSTATS_CMD_ATTR_MAX (__TASKSTATS_CMD_ATTR_MAX - 1) + +/* NETLINK_GENERIC related info */ + +#define TASKSTATS_GENL_NAME "TASKSTATS" +#define TASKSTATS_GENL_VERSION 0x1 + +#endif /* _LINUX_TASKSTATS_H */ diff --git a/kernel_headers/linux/tc_act/..install.cmd b/kernel_headers/linux/tc_act/..install.cmd new file mode 100644 index 0000000..4f24f06 --- /dev/null +++ b/kernel_headers/linux/tc_act/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_act/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_act /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/tc_act tc_csum.h tc_gact.h tc_ipt.h tc_mirred.h tc_nat.h tc_pedit.h tc_skbedit.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_act /android/kernels/moto/surnia/kernel-msm/include/linux/tc_act ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_act /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/tc_act ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_act/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_act/.install diff --git a/kernel_headers/linux/tc_act/.install b/kernel_headers/linux/tc_act/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/tc_act/tc_csum.h b/kernel_headers/linux/tc_act/tc_csum.h new file mode 100644 index 0000000..a047c49 --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_csum.h @@ -0,0 +1,32 @@ +#ifndef __LINUX_TC_CSUM_H +#define __LINUX_TC_CSUM_H + +#include +#include + +#define TCA_ACT_CSUM 16 + +enum { + TCA_CSUM_UNSPEC, + TCA_CSUM_PARMS, + TCA_CSUM_TM, + __TCA_CSUM_MAX +}; +#define TCA_CSUM_MAX (__TCA_CSUM_MAX - 1) + +enum { + TCA_CSUM_UPDATE_FLAG_IPV4HDR = 1, + TCA_CSUM_UPDATE_FLAG_ICMP = 2, + TCA_CSUM_UPDATE_FLAG_IGMP = 4, + TCA_CSUM_UPDATE_FLAG_TCP = 8, + TCA_CSUM_UPDATE_FLAG_UDP = 16, + TCA_CSUM_UPDATE_FLAG_UDPLITE = 32 +}; + +struct tc_csum { + tc_gen; + + __u32 update_flags; +}; + +#endif /* __LINUX_TC_CSUM_H */ diff --git a/kernel_headers/linux/tc_act/tc_gact.h b/kernel_headers/linux/tc_act/tc_gact.h new file mode 100644 index 0000000..f7bf94e --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_gact.h @@ -0,0 +1,32 @@ +#ifndef __LINUX_TC_GACT_H +#define __LINUX_TC_GACT_H + +#include +#include + +#define TCA_ACT_GACT 5 +struct tc_gact { + tc_gen; + +}; + +struct tc_gact_p { +#define PGACT_NONE 0 +#define PGACT_NETRAND 1 +#define PGACT_DETERM 2 +#define MAX_RAND (PGACT_DETERM + 1 ) + __u16 ptype; + __u16 pval; + int paction; +}; + +enum { + TCA_GACT_UNSPEC, + TCA_GACT_TM, + TCA_GACT_PARMS, + TCA_GACT_PROB, + __TCA_GACT_MAX +}; +#define TCA_GACT_MAX (__TCA_GACT_MAX - 1) + +#endif diff --git a/kernel_headers/linux/tc_act/tc_ipt.h b/kernel_headers/linux/tc_act/tc_ipt.h new file mode 100644 index 0000000..a233556 --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_ipt.h @@ -0,0 +1,20 @@ +#ifndef __LINUX_TC_IPT_H +#define __LINUX_TC_IPT_H + +#include + +#define TCA_ACT_IPT 6 + +enum { + TCA_IPT_UNSPEC, + TCA_IPT_TABLE, + TCA_IPT_HOOK, + TCA_IPT_INDEX, + TCA_IPT_CNT, + TCA_IPT_TM, + TCA_IPT_TARG, + __TCA_IPT_MAX +}; +#define TCA_IPT_MAX (__TCA_IPT_MAX - 1) + +#endif diff --git a/kernel_headers/linux/tc_act/tc_mirred.h b/kernel_headers/linux/tc_act/tc_mirred.h new file mode 100644 index 0000000..7561750 --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_mirred.h @@ -0,0 +1,27 @@ +#ifndef __LINUX_TC_MIR_H +#define __LINUX_TC_MIR_H + +#include +#include + +#define TCA_ACT_MIRRED 8 +#define TCA_EGRESS_REDIR 1 /* packet redirect to EGRESS*/ +#define TCA_EGRESS_MIRROR 2 /* mirror packet to EGRESS */ +#define TCA_INGRESS_REDIR 3 /* packet redirect to INGRESS*/ +#define TCA_INGRESS_MIRROR 4 /* mirror packet to INGRESS */ + +struct tc_mirred { + tc_gen; + int eaction; /* one of IN/EGRESS_MIRROR/REDIR */ + __u32 ifindex; /* ifindex of egress port */ +}; + +enum { + TCA_MIRRED_UNSPEC, + TCA_MIRRED_TM, + TCA_MIRRED_PARMS, + __TCA_MIRRED_MAX +}; +#define TCA_MIRRED_MAX (__TCA_MIRRED_MAX - 1) + +#endif diff --git a/kernel_headers/linux/tc_act/tc_nat.h b/kernel_headers/linux/tc_act/tc_nat.h new file mode 100644 index 0000000..6663aeb --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_nat.h @@ -0,0 +1,27 @@ +#ifndef __LINUX_TC_NAT_H +#define __LINUX_TC_NAT_H + +#include +#include + +#define TCA_ACT_NAT 9 + +enum { + TCA_NAT_UNSPEC, + TCA_NAT_PARMS, + TCA_NAT_TM, + __TCA_NAT_MAX +}; +#define TCA_NAT_MAX (__TCA_NAT_MAX - 1) + +#define TCA_NAT_FLAG_EGRESS 1 + +struct tc_nat { + tc_gen; + __be32 old_addr; + __be32 new_addr; + __be32 mask; + __u32 flags; +}; + +#endif diff --git a/kernel_headers/linux/tc_act/tc_pedit.h b/kernel_headers/linux/tc_act/tc_pedit.h new file mode 100644 index 0000000..716cfab --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_pedit.h @@ -0,0 +1,34 @@ +#ifndef __LINUX_TC_PED_H +#define __LINUX_TC_PED_H + +#include +#include + +#define TCA_ACT_PEDIT 7 + +enum { + TCA_PEDIT_UNSPEC, + TCA_PEDIT_TM, + TCA_PEDIT_PARMS, + __TCA_PEDIT_MAX +}; +#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) + +struct tc_pedit_key { + __u32 mask; /* AND */ + __u32 val; /*XOR */ + __u32 off; /*offset */ + __u32 at; + __u32 offmask; + __u32 shift; +}; + +struct tc_pedit_sel { + tc_gen; + unsigned char nkeys; + unsigned char flags; + struct tc_pedit_key keys[0]; +}; +#define tc_pedit tc_pedit_sel + +#endif diff --git a/kernel_headers/linux/tc_act/tc_skbedit.h b/kernel_headers/linux/tc_act/tc_skbedit.h new file mode 100644 index 0000000..7a2e910 --- /dev/null +++ b/kernel_headers/linux/tc_act/tc_skbedit.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2008, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Author: Alexander Duyck + */ + +#ifndef __LINUX_TC_SKBEDIT_H +#define __LINUX_TC_SKBEDIT_H + +#include + +#define TCA_ACT_SKBEDIT 11 + +#define SKBEDIT_F_PRIORITY 0x1 +#define SKBEDIT_F_QUEUE_MAPPING 0x2 +#define SKBEDIT_F_MARK 0x4 + +struct tc_skbedit { + tc_gen; +}; + +enum { + TCA_SKBEDIT_UNSPEC, + TCA_SKBEDIT_TM, + TCA_SKBEDIT_PARMS, + TCA_SKBEDIT_PRIORITY, + TCA_SKBEDIT_QUEUE_MAPPING, + TCA_SKBEDIT_MARK, + __TCA_SKBEDIT_MAX +}; +#define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) + +#endif diff --git a/kernel_headers/linux/tc_ematch/..install.cmd b/kernel_headers/linux/tc_ematch/..install.cmd new file mode 100644 index 0000000..ab0acfe --- /dev/null +++ b/kernel_headers/linux/tc_ematch/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_ematch/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_ematch /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/tc_ematch tc_em_cmp.h tc_em_meta.h tc_em_nbyte.h tc_em_text.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_ematch /android/kernels/moto/surnia/kernel-msm/include/linux/tc_ematch ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_ematch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/tc_ematch ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_ematch/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/tc_ematch/.install diff --git a/kernel_headers/linux/tc_ematch/.install b/kernel_headers/linux/tc_ematch/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/tc_ematch/tc_em_cmp.h b/kernel_headers/linux/tc_ematch/tc_em_cmp.h new file mode 100644 index 0000000..f34bb1b --- /dev/null +++ b/kernel_headers/linux/tc_ematch/tc_em_cmp.h @@ -0,0 +1,25 @@ +#ifndef __LINUX_TC_EM_CMP_H +#define __LINUX_TC_EM_CMP_H + +#include +#include + +struct tcf_em_cmp { + __u32 val; + __u32 mask; + __u16 off; + __u8 align:4; + __u8 flags:4; + __u8 layer:4; + __u8 opnd:4; +}; + +enum { + TCF_EM_ALIGN_U8 = 1, + TCF_EM_ALIGN_U16 = 2, + TCF_EM_ALIGN_U32 = 4 +}; + +#define TCF_EM_CMP_TRANS 1 + +#endif diff --git a/kernel_headers/linux/tc_ematch/tc_em_meta.h b/kernel_headers/linux/tc_ematch/tc_em_meta.h new file mode 100644 index 0000000..b11f8ce --- /dev/null +++ b/kernel_headers/linux/tc_ematch/tc_em_meta.h @@ -0,0 +1,92 @@ +#ifndef __LINUX_TC_EM_META_H +#define __LINUX_TC_EM_META_H + +#include +#include + +enum { + TCA_EM_META_UNSPEC, + TCA_EM_META_HDR, + TCA_EM_META_LVALUE, + TCA_EM_META_RVALUE, + __TCA_EM_META_MAX +}; +#define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1) + +struct tcf_meta_val { + __u16 kind; + __u8 shift; + __u8 op; +}; + +#define TCF_META_TYPE_MASK (0xf << 12) +#define TCF_META_TYPE(kind) (((kind) & TCF_META_TYPE_MASK) >> 12) +#define TCF_META_ID_MASK 0x7ff +#define TCF_META_ID(kind) ((kind) & TCF_META_ID_MASK) + +enum { + TCF_META_TYPE_VAR, + TCF_META_TYPE_INT, + __TCF_META_TYPE_MAX +}; +#define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1) + +enum { + TCF_META_ID_VALUE, + TCF_META_ID_RANDOM, + TCF_META_ID_LOADAVG_0, + TCF_META_ID_LOADAVG_1, + TCF_META_ID_LOADAVG_2, + TCF_META_ID_DEV, + TCF_META_ID_PRIORITY, + TCF_META_ID_PROTOCOL, + TCF_META_ID_PKTTYPE, + TCF_META_ID_PKTLEN, + TCF_META_ID_DATALEN, + TCF_META_ID_MACLEN, + TCF_META_ID_NFMARK, + TCF_META_ID_TCINDEX, + TCF_META_ID_RTCLASSID, + TCF_META_ID_RTIIF, + TCF_META_ID_SK_FAMILY, + TCF_META_ID_SK_STATE, + TCF_META_ID_SK_REUSE, + TCF_META_ID_SK_BOUND_IF, + TCF_META_ID_SK_REFCNT, + TCF_META_ID_SK_SHUTDOWN, + TCF_META_ID_SK_PROTO, + TCF_META_ID_SK_TYPE, + TCF_META_ID_SK_RCVBUF, + TCF_META_ID_SK_RMEM_ALLOC, + TCF_META_ID_SK_WMEM_ALLOC, + TCF_META_ID_SK_OMEM_ALLOC, + TCF_META_ID_SK_WMEM_QUEUED, + TCF_META_ID_SK_RCV_QLEN, + TCF_META_ID_SK_SND_QLEN, + TCF_META_ID_SK_ERR_QLEN, + TCF_META_ID_SK_FORWARD_ALLOCS, + TCF_META_ID_SK_SNDBUF, + TCF_META_ID_SK_ALLOCS, + __TCF_META_ID_SK_ROUTE_CAPS, /* unimplemented but in ABI already */ + TCF_META_ID_SK_HASH, + TCF_META_ID_SK_LINGERTIME, + TCF_META_ID_SK_ACK_BACKLOG, + TCF_META_ID_SK_MAX_ACK_BACKLOG, + TCF_META_ID_SK_PRIO, + TCF_META_ID_SK_RCVLOWAT, + TCF_META_ID_SK_RCVTIMEO, + TCF_META_ID_SK_SNDTIMEO, + TCF_META_ID_SK_SENDMSG_OFF, + TCF_META_ID_SK_WRITE_PENDING, + TCF_META_ID_VLAN_TAG, + TCF_META_ID_RXHASH, + __TCF_META_ID_MAX +}; +#define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1) + +struct tcf_meta_hdr { + struct tcf_meta_val left; + struct tcf_meta_val right; +}; + +#endif diff --git a/kernel_headers/linux/tc_ematch/tc_em_nbyte.h b/kernel_headers/linux/tc_ematch/tc_em_nbyte.h new file mode 100644 index 0000000..7172cfb --- /dev/null +++ b/kernel_headers/linux/tc_ematch/tc_em_nbyte.h @@ -0,0 +1,13 @@ +#ifndef __LINUX_TC_EM_NBYTE_H +#define __LINUX_TC_EM_NBYTE_H + +#include +#include + +struct tcf_em_nbyte { + __u16 off; + __u16 len:12; + __u8 layer:4; +}; + +#endif diff --git a/kernel_headers/linux/tc_ematch/tc_em_text.h b/kernel_headers/linux/tc_ematch/tc_em_text.h new file mode 100644 index 0000000..5aac404 --- /dev/null +++ b/kernel_headers/linux/tc_ematch/tc_em_text.h @@ -0,0 +1,19 @@ +#ifndef __LINUX_TC_EM_TEXT_H +#define __LINUX_TC_EM_TEXT_H + +#include +#include + +#define TC_EM_TEXT_ALGOSIZ 16 + +struct tcf_em_text { + char algo[TC_EM_TEXT_ALGOSIZ]; + __u16 from_offset; + __u16 to_offset; + __u16 pattern_len; + __u8 from_layer:4; + __u8 to_layer:4; + __u8 pad; +}; + +#endif diff --git a/kernel_headers/linux/tcp.h b/kernel_headers/linux/tcp.h new file mode 100644 index 0000000..a678fdb --- /dev/null +++ b/kernel_headers/linux/tcp.h @@ -0,0 +1,202 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions for the TCP protocol. + * + * Version: @(#)tcp.h 1.0.2 04/28/93 + * + * Author: Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_TCP_H +#define _LINUX_TCP_H + +#include +#include +#include + +struct tcphdr { + __be16 source; + __be16 dest; + __be32 seq; + __be32 ack_seq; +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u16 res1:4, + doff:4, + fin:1, + syn:1, + rst:1, + psh:1, + ack:1, + urg:1, + ece:1, + cwr:1; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u16 doff:4, + res1:4, + cwr:1, + ece:1, + urg:1, + ack:1, + psh:1, + rst:1, + syn:1, + fin:1; +#else +#error "Adjust your defines" +#endif + __be16 window; + __sum16 check; + __be16 urg_ptr; +}; + +/* + * The union cast uses a gcc extension to avoid aliasing problems + * (union is compatible to any of its members) + * This means this part of the code is -fstrict-aliasing safe now. + */ +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; + +#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) + +enum { + TCP_FLAG_CWR = __constant_htonl(0x00800000), + TCP_FLAG_ECE = __constant_htonl(0x00400000), + TCP_FLAG_URG = __constant_htonl(0x00200000), + TCP_FLAG_ACK = __constant_htonl(0x00100000), + TCP_FLAG_PSH = __constant_htonl(0x00080000), + TCP_FLAG_RST = __constant_htonl(0x00040000), + TCP_FLAG_SYN = __constant_htonl(0x00020000), + TCP_FLAG_FIN = __constant_htonl(0x00010000), + TCP_RESERVED_BITS = __constant_htonl(0x0F000000), + TCP_DATA_OFFSET = __constant_htonl(0xF0000000) +}; + +/* + * TCP general constants + */ +#define TCP_MSS_DEFAULT 536U /* IPv4 (RFC1122, RFC2581) */ +#define TCP_MSS_DESIRED 1220U /* IPv6 (tunneled), EDNS0 (RFC3226) */ + +/* TCP socket options */ +#define TCP_NODELAY 1 /* Turn off Nagle's algorithm. */ +#define TCP_MAXSEG 2 /* Limit MSS */ +#define TCP_CORK 3 /* Never send partially complete segments */ +#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ +#define TCP_KEEPINTVL 5 /* Interval between keepalives */ +#define TCP_KEEPCNT 6 /* Number of keepalives before death */ +#define TCP_SYNCNT 7 /* Number of SYN retransmits */ +#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ +#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ +#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ +#define TCP_INFO 11 /* Information about this connection. */ +#define TCP_QUICKACK 12 /* Block/reenable quick acks */ +#define TCP_CONGESTION 13 /* Congestion control algorithm */ +#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ +#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ +#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ +#define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */ +#define TCP_REPAIR 19 /* TCP sock is under repair right now */ +#define TCP_REPAIR_QUEUE 20 +#define TCP_QUEUE_SEQ 21 +#define TCP_REPAIR_OPTIONS 22 +#define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */ +#define TCP_TIMESTAMP 24 + +struct tcp_repair_opt { + __u32 opt_code; + __u32 opt_val; +}; + +enum { + TCP_NO_QUEUE, + TCP_RECV_QUEUE, + TCP_SEND_QUEUE, + TCP_QUEUES_NR, +}; + +/* for TCP_INFO socket option */ +#define TCPI_OPT_TIMESTAMPS 1 +#define TCPI_OPT_SACK 2 +#define TCPI_OPT_WSCALE 4 +#define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */ +#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */ +#define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */ + +enum tcp_ca_state { + TCP_CA_Open = 0, +#define TCPF_CA_Open (1< + +/* NETLINK_GENERIC related info + */ +#define TCP_METRICS_GENL_NAME "tcp_metrics" +#define TCP_METRICS_GENL_VERSION 0x1 + +enum tcp_metric_index { + TCP_METRIC_RTT, + TCP_METRIC_RTTVAR, + TCP_METRIC_SSTHRESH, + TCP_METRIC_CWND, + TCP_METRIC_REORDERING, + + /* Always last. */ + __TCP_METRIC_MAX, +}; + +#define TCP_METRIC_MAX (__TCP_METRIC_MAX - 1) + +enum { + TCP_METRICS_ATTR_UNSPEC, + TCP_METRICS_ATTR_ADDR_IPV4, /* u32 */ + TCP_METRICS_ATTR_ADDR_IPV6, /* binary */ + TCP_METRICS_ATTR_AGE, /* msecs */ + TCP_METRICS_ATTR_TW_TSVAL, /* u32, raw, rcv tsval */ + TCP_METRICS_ATTR_TW_TS_STAMP, /* s32, sec age */ + TCP_METRICS_ATTR_VALS, /* nested +1, u32 */ + TCP_METRICS_ATTR_FOPEN_MSS, /* u16 */ + TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ + TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ + TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ + + __TCP_METRICS_ATTR_MAX, +}; + +#define TCP_METRICS_ATTR_MAX (__TCP_METRICS_ATTR_MAX - 1) + +enum { + TCP_METRICS_CMD_UNSPEC, + TCP_METRICS_CMD_GET, + TCP_METRICS_CMD_DEL, + + __TCP_METRICS_CMD_MAX, +}; + +#define TCP_METRICS_CMD_MAX (__TCP_METRICS_CMD_MAX - 1) + +#endif /* _LINUX_TCP_METRICS_H */ diff --git a/kernel_headers/linux/telephony.h b/kernel_headers/linux/telephony.h new file mode 100644 index 0000000..f63afe3 --- /dev/null +++ b/kernel_headers/linux/telephony.h @@ -0,0 +1,262 @@ +/****************************************************************************** + * + * telephony.h + * + * Basic Linux Telephony Interface + * + * (c) Copyright 1999-2001 Quicknet Technologies, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * Authors: Ed Okerson, + * Greg Herlein, + * + * Contributors: Alan Cox, + * David W. Erhart, + * + * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET + * TECHNOLOGIES, INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION + * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + *****************************************************************************/ + +#ifndef TELEPHONY_H +#define TELEPHONY_H + +#define TELEPHONY_VERSION 3013 + +#define PHONE_VENDOR_IXJ 1 +#define PHONE_VENDOR_QUICKNET PHONE_VENDOR_IXJ +#define PHONE_VENDOR_VOICETRONIX 2 +#define PHONE_VENDOR_ACULAB 3 +#define PHONE_VENDOR_DIGI 4 +#define PHONE_VENDOR_FRANKLIN 5 + +/****************************************************************************** + * Vendor Summary Information Area + * + * Quicknet Technologies, Inc. - makes low density analog telephony cards + * with audio compression, POTS and PSTN interfaces (www.quicknet.net) + * + * (other vendors following this API shuld add a short description of + * the telephony products they support under Linux) + * + *****************************************************************************/ +#define QTI_PHONEJACK 100 +#define QTI_LINEJACK 300 +#define QTI_PHONEJACK_LITE 400 +#define QTI_PHONEJACK_PCI 500 +#define QTI_PHONECARD 600 + +/****************************************************************************** +* +* The capabilities ioctls can inform you of the capabilities of each phone +* device installed in your system. The PHONECTL_CAPABILITIES ioctl +* returns an integer value indicating the number of capabilities the +* device has. The PHONECTL_CAPABILITIES_LIST will fill an array of +* capability structs with all of its capabilities. The +* PHONECTL_CAPABILITIES_CHECK takes a single capability struct and returns +* a TRUE if the device has that capability, otherwise it returns false. +* +******************************************************************************/ +typedef enum { + vendor = 0, + device, + port, + codec, + dsp +} phone_cap; + +struct phone_capability { + char desc[80]; + phone_cap captype; + int cap; + int handle; +}; + +typedef enum { + pots = 0, + pstn, + handset, + speaker +} phone_ports; + +#define PHONE_CAPABILITIES _IO ('q', 0x80) +#define PHONE_CAPABILITIES_LIST _IOR ('q', 0x81, struct phone_capability *) +#define PHONE_CAPABILITIES_CHECK _IOW ('q', 0x82, struct phone_capability *) + +typedef struct { + char month[3]; + char day[3]; + char hour[3]; + char min[3]; + int numlen; + char number[11]; + int namelen; + char name[80]; +} PHONE_CID; + +#define PHONE_RING _IO ('q', 0x83) +#define PHONE_HOOKSTATE _IO ('q', 0x84) +#define PHONE_MAXRINGS _IOW ('q', 0x85, char) +#define PHONE_RING_CADENCE _IOW ('q', 0x86, short) +#define OLD_PHONE_RING_START _IO ('q', 0x87) +#define PHONE_RING_START _IOW ('q', 0x87, PHONE_CID *) +#define PHONE_RING_STOP _IO ('q', 0x88) + +#define USA_RING_CADENCE 0xC0C0 + +#define PHONE_REC_CODEC _IOW ('q', 0x89, int) +#define PHONE_REC_START _IO ('q', 0x8A) +#define PHONE_REC_STOP _IO ('q', 0x8B) +#define PHONE_REC_DEPTH _IOW ('q', 0x8C, int) +#define PHONE_FRAME _IOW ('q', 0x8D, int) +#define PHONE_REC_VOLUME _IOW ('q', 0x8E, int) +#define PHONE_REC_VOLUME_LINEAR _IOW ('q', 0xDB, int) +#define PHONE_REC_LEVEL _IO ('q', 0x8F) + +#define PHONE_PLAY_CODEC _IOW ('q', 0x90, int) +#define PHONE_PLAY_START _IO ('q', 0x91) +#define PHONE_PLAY_STOP _IO ('q', 0x92) +#define PHONE_PLAY_DEPTH _IOW ('q', 0x93, int) +#define PHONE_PLAY_VOLUME _IOW ('q', 0x94, int) +#define PHONE_PLAY_VOLUME_LINEAR _IOW ('q', 0xDC, int) +#define PHONE_PLAY_LEVEL _IO ('q', 0x95) +#define PHONE_DTMF_READY _IOR ('q', 0x96, int) +#define PHONE_GET_DTMF _IOR ('q', 0x97, int) +#define PHONE_GET_DTMF_ASCII _IOR ('q', 0x98, int) +#define PHONE_DTMF_OOB _IOW ('q', 0x99, int) +#define PHONE_EXCEPTION _IOR ('q', 0x9A, int) +#define PHONE_PLAY_TONE _IOW ('q', 0x9B, char) +#define PHONE_SET_TONE_ON_TIME _IOW ('q', 0x9C, int) +#define PHONE_SET_TONE_OFF_TIME _IOW ('q', 0x9D, int) +#define PHONE_GET_TONE_ON_TIME _IO ('q', 0x9E) +#define PHONE_GET_TONE_OFF_TIME _IO ('q', 0x9F) +#define PHONE_GET_TONE_STATE _IO ('q', 0xA0) +#define PHONE_BUSY _IO ('q', 0xA1) +#define PHONE_RINGBACK _IO ('q', 0xA2) +#define PHONE_DIALTONE _IO ('q', 0xA3) +#define PHONE_CPT_STOP _IO ('q', 0xA4) + +#define PHONE_PSTN_SET_STATE _IOW ('q', 0xA4, int) +#define PHONE_PSTN_GET_STATE _IO ('q', 0xA5) + +#define PSTN_ON_HOOK 0 +#define PSTN_RINGING 1 +#define PSTN_OFF_HOOK 2 +#define PSTN_PULSE_DIAL 3 + +/****************************************************************************** +* +* The wink duration is tunable with this ioctl. The default wink duration +* is 320ms. You do not need to use this ioctl if you do not require a +* different wink duration. +* +******************************************************************************/ +#define PHONE_WINK_DURATION _IOW ('q', 0xA6, int) +#define PHONE_WINK _IOW ('q', 0xAA, int) + +/****************************************************************************** +* +* Codec Definitions +* +******************************************************************************/ +typedef enum { + G723_63 = 1, + G723_53 = 2, + TS85 = 3, + TS48 = 4, + TS41 = 5, + G728 = 6, + G729 = 7, + ULAW = 8, + ALAW = 9, + LINEAR16 = 10, + LINEAR8 = 11, + WSS = 12, + G729B = 13 +} phone_codec; + +struct phone_codec_data +{ + phone_codec type; + unsigned short buf_min, buf_opt, buf_max; +}; + +#define PHONE_QUERY_CODEC _IOWR ('q', 0xA7, struct phone_codec_data *) +#define PHONE_PSTN_LINETEST _IO ('q', 0xA8) + +/****************************************************************************** +* +* This controls the VAD/CNG functionality of G.723.1. The driver will +* always pass full size frames, any unused bytes will be padded with zeros, +* and frames passed to the driver should also be padded with zeros. The +* frame type is encoded in the least significant two bits of the first +* WORD of the frame as follows: +* +* bits 1-0 Frame Type Data Rate Significant Words +* 00 0 G.723.1 6.3 12 +* 01 1 G.723.1 5.3 10 +* 10 2 VAD/CNG 2 +* 11 3 Repeat last CNG 2 bits +* +******************************************************************************/ +#define PHONE_VAD _IOW ('q', 0xA9, int) + + +/****************************************************************************** +* +* The exception structure allows us to multiplex multiple events onto the +* select() exception set. If any of these flags are set select() will +* return with a positive indication on the exception set. The dtmf_ready +* bit indicates if there is data waiting in the DTMF buffer. The +* hookstate bit is set if there is a change in hookstate status, it does not +* indicate the current state of the hookswitch. The pstn_ring bit +* indicates that the DAA on a LineJACK card has detected ring voltage on +* the PSTN port. The caller_id bit indicates that caller_id data has been +* received and is available. The pstn_wink bit indicates that the DAA on +* the LineJACK has received a wink from the telco switch. The f0, f1, f2 +* and f3 bits indicate that the filter has been triggered by detecting the +* frequency programmed into that filter. +* +* The remaining bits should be set to zero. They will become defined over time +* for other interface cards and their needs. +* +******************************************************************************/ +struct phone_except +{ + unsigned int dtmf_ready:1; + unsigned int hookstate:1; + unsigned int pstn_ring:1; + unsigned int caller_id:1; + unsigned int pstn_wink:1; + unsigned int f0:1; + unsigned int f1:1; + unsigned int f2:1; + unsigned int f3:1; + unsigned int flash:1; + unsigned int fc0:1; + unsigned int fc1:1; + unsigned int fc2:1; + unsigned int fc3:1; + unsigned int reserved:18; +}; + +union telephony_exception { + struct phone_except bits; + unsigned int bytes; +}; + + +#endif /* TELEPHONY_H */ + diff --git a/kernel_headers/linux/termios.h b/kernel_headers/linux/termios.h new file mode 100644 index 0000000..2acd0c1 --- /dev/null +++ b/kernel_headers/linux/termios.h @@ -0,0 +1,22 @@ +#ifndef _LINUX_TERMIOS_H +#define _LINUX_TERMIOS_H + +#include +#include + +#define NFF 5 + +struct termiox +{ + __u16 x_hflag; + __u16 x_cflag; + __u16 x_rflag[NFF]; + __u16 x_sflag; +}; + +#define RTSXOFF 0x0001 /* RTS flow control on input */ +#define CTSXON 0x0002 /* CTS flow control on output */ +#define DTRXOFF 0x0004 /* DTR flow control on input */ +#define DSRXON 0x0008 /* DCD flow control on output */ + +#endif diff --git a/kernel_headers/linux/time.h b/kernel_headers/linux/time.h new file mode 100644 index 0000000..49041d1 --- /dev/null +++ b/kernel_headers/linux/time.h @@ -0,0 +1,73 @@ +#ifndef _LINUX_TIME_H +#define _LINUX_TIME_H + +#include + + +#ifndef _STRUCT_TIMESPEC +#define _STRUCT_TIMESPEC +struct timespec { + __kernel_time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ +}; +#endif + +struct timeval { + __kernel_time_t tv_sec; /* seconds */ + __kernel_suseconds_t tv_usec; /* microseconds */ +}; + +struct timezone { + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; + +#define FD_SET(fd,fdsetp) __FD_SET(fd,fdsetp) +#define FD_CLR(fd,fdsetp) __FD_CLR(fd,fdsetp) +#define FD_ISSET(fd,fdsetp) __FD_ISSET(fd,fdsetp) +#define FD_ZERO(fdsetp) __FD_ZERO(fdsetp) + +/* + * Names of the interval timers, and structure + * defining a timer setting: + */ +#define ITIMER_REAL 0 +#define ITIMER_VIRTUAL 1 +#define ITIMER_PROF 2 + +struct itimerspec { + struct timespec it_interval; /* timer period */ + struct timespec it_value; /* timer expiration */ +}; + +struct itimerval { + struct timeval it_interval; /* timer interval */ + struct timeval it_value; /* current value */ +}; + +/* + * The IDs of the various system clocks (for POSIX.1b interval timers): + */ +#define CLOCK_REALTIME 0 +#define CLOCK_MONOTONIC 1 +#define CLOCK_PROCESS_CPUTIME_ID 2 +#define CLOCK_THREAD_CPUTIME_ID 3 +#define CLOCK_MONOTONIC_RAW 4 +#define CLOCK_REALTIME_COARSE 5 +#define CLOCK_MONOTONIC_COARSE 6 +#define CLOCK_BOOTTIME 7 +#define CLOCK_REALTIME_ALARM 8 +#define CLOCK_BOOTTIME_ALARM 9 +#define CLOCK_SGI_CYCLE 10 /* Hardware specific */ +#define CLOCK_TAI 11 + +#define MAX_CLOCKS 16 +#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC) +#define CLOCKS_MONO CLOCK_MONOTONIC + +/* + * The various flags for setting POSIX.1b interval timers: + */ +#define TIMER_ABSTIME 0x01 + +#endif /* _LINUX_TIME_H */ diff --git a/kernel_headers/linux/times.h b/kernel_headers/linux/times.h new file mode 100644 index 0000000..87b6261 --- /dev/null +++ b/kernel_headers/linux/times.h @@ -0,0 +1,13 @@ +#ifndef _LINUX_TIMES_H +#define _LINUX_TIMES_H + +#include + +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; +}; + +#endif diff --git a/kernel_headers/linux/timex.h b/kernel_headers/linux/timex.h new file mode 100644 index 0000000..07dc26e --- /dev/null +++ b/kernel_headers/linux/timex.h @@ -0,0 +1,164 @@ +/***************************************************************************** + * * + * Copyright (c) David L. Mills 1993 * + * * + * Permission to use, copy, modify, and distribute this software and its * + * documentation for any purpose and without fee is hereby granted, provided * + * that the above copyright notice appears in all copies and that both the * + * copyright notice and this permission notice appear in supporting * + * documentation, and that the name University of Delaware not be used in * + * advertising or publicity pertaining to distribution of the software * + * without specific, written prior permission. The University of Delaware * + * makes no representations about the suitability this software for any * + * purpose. It is provided "as is" without express or implied warranty. * + * * + *****************************************************************************/ + +/* + * Modification history timex.h + * + * 29 Dec 97 Russell King + * Moved CLOCK_TICK_RATE, CLOCK_TICK_FACTOR and FINETUNE to asm/timex.h + * for ARM machines + * + * 9 Jan 97 Adrian Sun + * Shifted LATCH define to allow access to alpha machines. + * + * 26 Sep 94 David L. Mills + * Added defines for hybrid phase/frequency-lock loop. + * + * 19 Mar 94 David L. Mills + * Moved defines from kernel routines to header file and added new + * defines for PPS phase-lock loop. + * + * 20 Feb 94 David L. Mills + * Revised status codes and structures for external clock and PPS + * signal discipline. + * + * 28 Nov 93 David L. Mills + * Adjusted parameters to improve stability and increase poll + * interval. + * + * 17 Sep 93 David L. Mills + * Created file $NTP/include/sys/timex.h + * 07 Oct 93 Torsten Duwe + * Derived linux/timex.h + * 1995-08-13 Torsten Duwe + * kernel PLL updated to 1994-12-13 specs (rfc-1589) + * 1997-08-30 Ulrich Windl + * Added new constant NTP_PHASE_LIMIT + * 2004-08-12 Christoph Lameter + * Reworked time interpolation logic + */ +#ifndef _LINUX_TIMEX_H +#define _LINUX_TIMEX_H + +#include + +#define NTP_API 4 /* NTP API version */ + +/* + * syscall interface - used (mainly by NTP daemon) + * to discipline kernel clock oscillator + */ +struct timex { + unsigned int modes; /* mode selector */ + long offset; /* time offset (usec) */ + long freq; /* frequency offset (scaled ppm) */ + long maxerror; /* maximum error (usec) */ + long esterror; /* estimated error (usec) */ + int status; /* clock command/status */ + long constant; /* pll time constant */ + long precision; /* clock precision (usec) (read only) */ + long tolerance; /* clock frequency tolerance (ppm) + * (read only) + */ + struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ + long tick; /* (modified) usecs between clock ticks */ + + long ppsfreq; /* pps frequency (scaled ppm) (ro) */ + long jitter; /* pps jitter (us) (ro) */ + int shift; /* interval duration (s) (shift) (ro) */ + long stabil; /* pps stability (scaled ppm) (ro) */ + long jitcnt; /* jitter limit exceeded (ro) */ + long calcnt; /* calibration intervals (ro) */ + long errcnt; /* calibration errors (ro) */ + long stbcnt; /* stability limit exceeded (ro) */ + + int tai; /* TAI offset (ro) */ + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +}; + +/* + * Mode codes (timex.mode) + */ +#define ADJ_OFFSET 0x0001 /* time offset */ +#define ADJ_FREQUENCY 0x0002 /* frequency offset */ +#define ADJ_MAXERROR 0x0004 /* maximum time error */ +#define ADJ_ESTERROR 0x0008 /* estimated time error */ +#define ADJ_STATUS 0x0010 /* clock status */ +#define ADJ_TIMECONST 0x0020 /* pll time constant */ +#define ADJ_TAI 0x0080 /* set TAI offset */ +#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */ +#define ADJ_MICRO 0x1000 /* select microsecond resolution */ +#define ADJ_NANO 0x2000 /* select nanosecond resolution */ +#define ADJ_TICK 0x4000 /* tick value */ + +#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ +#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ + +/* NTP userland likes the MOD_ prefix better */ +#define MOD_OFFSET ADJ_OFFSET +#define MOD_FREQUENCY ADJ_FREQUENCY +#define MOD_MAXERROR ADJ_MAXERROR +#define MOD_ESTERROR ADJ_ESTERROR +#define MOD_STATUS ADJ_STATUS +#define MOD_TIMECONST ADJ_TIMECONST +#define MOD_TAI ADJ_TAI +#define MOD_MICRO ADJ_MICRO +#define MOD_NANO ADJ_NANO + + +/* + * Status codes (timex.status) + */ +#define STA_PLL 0x0001 /* enable PLL updates (rw) */ +#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */ +#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */ +#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */ + +#define STA_INS 0x0010 /* insert leap (rw) */ +#define STA_DEL 0x0020 /* delete leap (rw) */ +#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */ +#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */ + +#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */ +#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */ +#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */ +#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ + +#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ +#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */ +#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */ +#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ + +/* read-only bits */ +#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ + STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) + +/* + * Clock states (time_state) + */ +#define TIME_OK 0 /* clock synchronized, no leap second */ +#define TIME_INS 1 /* insert leap second */ +#define TIME_DEL 2 /* delete leap second */ +#define TIME_OOP 3 /* leap second in progress */ +#define TIME_WAIT 4 /* leap second has occurred */ +#define TIME_ERROR 5 /* clock not synchronized */ +#define TIME_BAD TIME_ERROR /* bw compat */ + + +#endif /* _LINUX_TIMEX_H */ diff --git a/kernel_headers/linux/tiocl.h b/kernel_headers/linux/tiocl.h new file mode 100644 index 0000000..4756862 --- /dev/null +++ b/kernel_headers/linux/tiocl.h @@ -0,0 +1,39 @@ +#ifndef _LINUX_TIOCL_H +#define _LINUX_TIOCL_H + +#define TIOCL_SETSEL 2 /* set a selection */ +#define TIOCL_SELCHAR 0 /* select characters */ +#define TIOCL_SELWORD 1 /* select whole words */ +#define TIOCL_SELLINE 2 /* select whole lines */ +#define TIOCL_SELPOINTER 3 /* show the pointer */ +#define TIOCL_SELCLEAR 4 /* clear visibility of selection */ +#define TIOCL_SELMOUSEREPORT 16 /* report beginning of selection */ +#define TIOCL_SELBUTTONMASK 15 /* button mask for report */ +/* selection extent */ +struct tiocl_selection { + unsigned short xs; /* X start */ + unsigned short ys; /* Y start */ + unsigned short xe; /* X end */ + unsigned short ye; /* Y end */ + unsigned short sel_mode; /* selection mode */ +}; + +#define TIOCL_PASTESEL 3 /* paste previous selection */ +#define TIOCL_UNBLANKSCREEN 4 /* unblank screen */ + +#define TIOCL_SELLOADLUT 5 + /* set characters to be considered alphabetic when selecting */ + /* u32[8] bit array, 4 bytes-aligned with type */ + +/* these two don't return a value: they write it back in the type */ +#define TIOCL_GETSHIFTSTATE 6 /* write shift state */ +#define TIOCL_GETMOUSEREPORTING 7 /* write whether mouse event are reported */ +#define TIOCL_SETVESABLANK 10 /* set vesa blanking mode */ +#define TIOCL_SETKMSGREDIRECT 11 /* restrict kernel messages to a vt */ +#define TIOCL_GETFGCONSOLE 12 /* get foreground vt */ +#define TIOCL_SCROLLCONSOLE 13 /* scroll console */ +#define TIOCL_BLANKSCREEN 14 /* keep screen blank even if a key is pressed */ +#define TIOCL_BLANKEDSCREEN 15 /* return which vt was blanked */ +#define TIOCL_GETKMSGREDIRECT 17 /* get the vt the kernel messages are restricted to */ + +#endif /* _LINUX_TIOCL_H */ diff --git a/kernel_headers/linux/tipc.h b/kernel_headers/linux/tipc.h new file mode 100644 index 0000000..1e2ca0f --- /dev/null +++ b/kernel_headers/linux/tipc.h @@ -0,0 +1,209 @@ +/* + * include/linux/tipc.h: Include file for TIPC socket interface + * + * Copyright (c) 2003-2006, Ericsson AB + * Copyright (c) 2005, 2010-2011, Wind River Systems + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the names of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * Alternatively, this software may be distributed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_TIPC_H_ +#define _LINUX_TIPC_H_ + +#include + +/* + * TIPC addressing primitives + */ + +struct tipc_portid { + __u32 ref; + __u32 node; +}; + +struct tipc_name { + __u32 type; + __u32 instance; +}; + +struct tipc_name_seq { + __u32 type; + __u32 lower; + __u32 upper; +}; + +static __inline__ __u32 tipc_addr(unsigned int zone, + unsigned int cluster, + unsigned int node) +{ + return (zone << 24) | (cluster << 12) | node; +} + +static __inline__ unsigned int tipc_zone(__u32 addr) +{ + return addr >> 24; +} + +static __inline__ unsigned int tipc_cluster(__u32 addr) +{ + return (addr >> 12) & 0xfff; +} + +static __inline__ unsigned int tipc_node(__u32 addr) +{ + return addr & 0xfff; +} + +/* + * Application-accessible port name types + */ + +#define TIPC_CFG_SRV 0 /* configuration service name type */ +#define TIPC_TOP_SRV 1 /* topology service name type */ +#define TIPC_RESERVED_TYPES 64 /* lowest user-publishable name type */ + +/* + * Publication scopes when binding port names and port name sequences + */ + +#define TIPC_ZONE_SCOPE 1 +#define TIPC_CLUSTER_SCOPE 2 +#define TIPC_NODE_SCOPE 3 + +/* + * Limiting values for messages + */ + +#define TIPC_MAX_USER_MSG_SIZE 66000U + +/* + * Message importance levels + */ + +#define TIPC_LOW_IMPORTANCE 0 +#define TIPC_MEDIUM_IMPORTANCE 1 +#define TIPC_HIGH_IMPORTANCE 2 +#define TIPC_CRITICAL_IMPORTANCE 3 + +/* + * Msg rejection/connection shutdown reasons + */ + +#define TIPC_OK 0 +#define TIPC_ERR_NO_NAME 1 +#define TIPC_ERR_NO_PORT 2 +#define TIPC_ERR_NO_NODE 3 +#define TIPC_ERR_OVERLOAD 4 +#define TIPC_CONN_SHUTDOWN 5 + +/* + * TIPC topology subscription service definitions + */ + +#define TIPC_SUB_PORTS 0x01 /* filter for port availability */ +#define TIPC_SUB_SERVICE 0x02 /* filter for service availability */ +#define TIPC_SUB_CANCEL 0x04 /* cancel a subscription */ + +#define TIPC_WAIT_FOREVER (~0) /* timeout for permanent subscription */ + +struct tipc_subscr { + struct tipc_name_seq seq; /* name sequence of interest */ + __u32 timeout; /* subscription duration (in ms) */ + __u32 filter; /* bitmask of filter options */ + char usr_handle[8]; /* available for subscriber use */ +}; + +#define TIPC_PUBLISHED 1 /* publication event */ +#define TIPC_WITHDRAWN 2 /* withdraw event */ +#define TIPC_SUBSCR_TIMEOUT 3 /* subscription timeout event */ + +struct tipc_event { + __u32 event; /* event type */ + __u32 found_lower; /* matching name seq instances */ + __u32 found_upper; /* " " " " */ + struct tipc_portid port; /* associated port */ + struct tipc_subscr s; /* associated subscription */ +}; + +/* + * Socket API + */ + +#ifndef AF_TIPC +#define AF_TIPC 30 +#endif + +#ifndef PF_TIPC +#define PF_TIPC AF_TIPC +#endif + +#ifndef SOL_TIPC +#define SOL_TIPC 271 +#endif + +#define TIPC_ADDR_NAMESEQ 1 +#define TIPC_ADDR_MCAST 1 +#define TIPC_ADDR_NAME 2 +#define TIPC_ADDR_ID 3 + +struct sockaddr_tipc { + unsigned short family; + unsigned char addrtype; + signed char scope; + union { + struct tipc_portid id; + struct tipc_name_seq nameseq; + struct { + struct tipc_name name; + __u32 domain; + } name; + } addr; +}; + +/* + * Ancillary data objects supported by recvmsg() + */ + +#define TIPC_ERRINFO 1 /* error info */ +#define TIPC_RETDATA 2 /* returned data */ +#define TIPC_DESTNAME 3 /* destination name */ + +/* + * TIPC-specific socket option values + */ + +#define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */ +#define TIPC_SRC_DROPPABLE 128 /* Default: based on socket type */ +#define TIPC_DEST_DROPPABLE 129 /* Default: based on socket type */ +#define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */ +#define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */ +#define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */ + +#endif diff --git a/kernel_headers/linux/tipc_config.h b/kernel_headers/linux/tipc_config.h new file mode 100644 index 0000000..2aac7ac --- /dev/null +++ b/kernel_headers/linux/tipc_config.h @@ -0,0 +1,393 @@ +/* + * include/linux/tipc_config.h: Include file for TIPC configuration interface + * + * Copyright (c) 2003-2006, Ericsson AB + * Copyright (c) 2005-2007, 2010-2011, Wind River Systems + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the names of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * Alternatively, this software may be distributed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_TIPC_CONFIG_H_ +#define _LINUX_TIPC_CONFIG_H_ + +#include +#include +#include + +#include /* for ntohs etc. */ + +/* + * Configuration + * + * All configuration management messaging involves sending a request message + * to the TIPC configuration service on a node, which sends a reply message + * back. (In the future multi-message replies may be supported.) + * + * Both request and reply messages consist of a transport header and payload. + * The transport header contains info about the desired operation; + * the payload consists of zero or more type/length/value (TLV) items + * which specify parameters or results for the operation. + * + * For many operations, the request and reply messages have a fixed number + * of TLVs (usually zero or one); however, some reply messages may return + * a variable number of TLVs. A failed request is denoted by the presence + * of an "error string" TLV in the reply message instead of the TLV(s) the + * reply should contain if the request succeeds. + */ + +/* + * Public commands: + * May be issued by any process. + * Accepted by own node, or by remote node only if remote management enabled. + */ + +#define TIPC_CMD_NOOP 0x0000 /* tx none, rx none */ +#define TIPC_CMD_GET_NODES 0x0001 /* tx net_addr, rx node_info(s) */ +#define TIPC_CMD_GET_MEDIA_NAMES 0x0002 /* tx none, rx media_name(s) */ +#define TIPC_CMD_GET_BEARER_NAMES 0x0003 /* tx none, rx bearer_name(s) */ +#define TIPC_CMD_GET_LINKS 0x0004 /* tx net_addr, rx link_info(s) */ +#define TIPC_CMD_SHOW_NAME_TABLE 0x0005 /* tx name_tbl_query, rx ultra_string */ +#define TIPC_CMD_SHOW_PORTS 0x0006 /* tx none, rx ultra_string */ +#define TIPC_CMD_SHOW_LINK_STATS 0x000B /* tx link_name, rx ultra_string */ +#define TIPC_CMD_SHOW_STATS 0x000F /* tx unsigned, rx ultra_string */ + +/* + * Protected commands: + * May only be issued by "network administration capable" process. + * Accepted by own node, or by remote node only if remote management enabled + * and this node is zone manager. + */ + +#define TIPC_CMD_GET_REMOTE_MNG 0x4003 /* tx none, rx unsigned */ +#define TIPC_CMD_GET_MAX_PORTS 0x4004 /* tx none, rx unsigned */ +#define TIPC_CMD_GET_MAX_PUBL 0x4005 /* obsoleted */ +#define TIPC_CMD_GET_MAX_SUBSCR 0x4006 /* obsoleted */ +#define TIPC_CMD_GET_MAX_ZONES 0x4007 /* obsoleted */ +#define TIPC_CMD_GET_MAX_CLUSTERS 0x4008 /* obsoleted */ +#define TIPC_CMD_GET_MAX_NODES 0x4009 /* obsoleted */ +#define TIPC_CMD_GET_MAX_SLAVES 0x400A /* obsoleted */ +#define TIPC_CMD_GET_NETID 0x400B /* tx none, rx unsigned */ + +#define TIPC_CMD_ENABLE_BEARER 0x4101 /* tx bearer_config, rx none */ +#define TIPC_CMD_DISABLE_BEARER 0x4102 /* tx bearer_name, rx none */ +#define TIPC_CMD_SET_LINK_TOL 0x4107 /* tx link_config, rx none */ +#define TIPC_CMD_SET_LINK_PRI 0x4108 /* tx link_config, rx none */ +#define TIPC_CMD_SET_LINK_WINDOW 0x4109 /* tx link_config, rx none */ +#define TIPC_CMD_SET_LOG_SIZE 0x410A /* obsoleted */ +#define TIPC_CMD_DUMP_LOG 0x410B /* obsoleted */ +#define TIPC_CMD_RESET_LINK_STATS 0x410C /* tx link_name, rx none */ + +/* + * Private commands: + * May only be issued by "network administration capable" process. + * Accepted by own node only; cannot be used on a remote node. + */ + +#define TIPC_CMD_SET_NODE_ADDR 0x8001 /* tx net_addr, rx none */ +#define TIPC_CMD_SET_REMOTE_MNG 0x8003 /* tx unsigned, rx none */ +#define TIPC_CMD_SET_MAX_PORTS 0x8004 /* tx unsigned, rx none */ +#define TIPC_CMD_SET_MAX_PUBL 0x8005 /* obsoleted */ +#define TIPC_CMD_SET_MAX_SUBSCR 0x8006 /* obsoleted */ +#define TIPC_CMD_SET_MAX_ZONES 0x8007 /* obsoleted */ +#define TIPC_CMD_SET_MAX_CLUSTERS 0x8008 /* obsoleted */ +#define TIPC_CMD_SET_MAX_NODES 0x8009 /* obsoleted */ +#define TIPC_CMD_SET_MAX_SLAVES 0x800A /* obsoleted */ +#define TIPC_CMD_SET_NETID 0x800B /* tx unsigned, rx none */ + +/* + * Reserved commands: + * May not be issued by any process. + * Used internally by TIPC. + */ + +#define TIPC_CMD_NOT_NET_ADMIN 0xC001 /* tx none, rx none */ + +/* + * TLV types defined for TIPC + */ + +#define TIPC_TLV_NONE 0 /* no TLV present */ +#define TIPC_TLV_VOID 1 /* empty TLV (0 data bytes)*/ +#define TIPC_TLV_UNSIGNED 2 /* 32-bit integer */ +#define TIPC_TLV_STRING 3 /* char[128] (max) */ +#define TIPC_TLV_LARGE_STRING 4 /* char[2048] (max) */ +#define TIPC_TLV_ULTRA_STRING 5 /* char[32768] (max) */ + +#define TIPC_TLV_ERROR_STRING 16 /* char[128] containing "error code" */ +#define TIPC_TLV_NET_ADDR 17 /* 32-bit integer denoting */ +#define TIPC_TLV_MEDIA_NAME 18 /* char[TIPC_MAX_MEDIA_NAME] */ +#define TIPC_TLV_BEARER_NAME 19 /* char[TIPC_MAX_BEARER_NAME] */ +#define TIPC_TLV_LINK_NAME 20 /* char[TIPC_MAX_LINK_NAME] */ +#define TIPC_TLV_NODE_INFO 21 /* struct tipc_node_info */ +#define TIPC_TLV_LINK_INFO 22 /* struct tipc_link_info */ +#define TIPC_TLV_BEARER_CONFIG 23 /* struct tipc_bearer_config */ +#define TIPC_TLV_LINK_CONFIG 24 /* struct tipc_link_config */ +#define TIPC_TLV_NAME_TBL_QUERY 25 /* struct tipc_name_table_query */ +#define TIPC_TLV_PORT_REF 26 /* 32-bit port reference */ + +/* + * Maximum sizes of TIPC bearer-related names (including terminating NUL) + */ + +#define TIPC_MAX_MEDIA_NAME 16 /* format = media */ +#define TIPC_MAX_IF_NAME 16 /* format = interface */ +#define TIPC_MAX_BEARER_NAME 32 /* format = media:interface */ +#define TIPC_MAX_LINK_NAME 60 /* format = Z.C.N:interface-Z.C.N:interface */ + +/* + * Link priority limits (min, default, max, media default) + */ + +#define TIPC_MIN_LINK_PRI 0 +#define TIPC_DEF_LINK_PRI 10 +#define TIPC_MAX_LINK_PRI 31 +#define TIPC_MEDIA_LINK_PRI (TIPC_MAX_LINK_PRI + 1) + +/* + * Link tolerance limits (min, default, max), in ms + */ + +#define TIPC_MIN_LINK_TOL 50 +#define TIPC_DEF_LINK_TOL 1500 +#define TIPC_MAX_LINK_TOL 30000 + +#if (TIPC_MIN_LINK_TOL < 16) +#error "TIPC_MIN_LINK_TOL is too small (abort limit may be NaN)" +#endif + +/* + * Link window limits (min, default, max), in packets + */ + +#define TIPC_MIN_LINK_WIN 16 +#define TIPC_DEF_LINK_WIN 50 +#define TIPC_MAX_LINK_WIN 150 + + +struct tipc_node_info { + __be32 addr; /* network address of node */ + __be32 up; /* 0=down, 1= up */ +}; + +struct tipc_link_info { + __be32 dest; /* network address of peer node */ + __be32 up; /* 0=down, 1=up */ + char str[TIPC_MAX_LINK_NAME]; /* link name */ +}; + +struct tipc_bearer_config { + __be32 priority; /* Range [1,31]. Override per link */ + __be32 disc_domain; /* describing desired nodes */ + char name[TIPC_MAX_BEARER_NAME]; +}; + +struct tipc_link_config { + __be32 value; + char name[TIPC_MAX_LINK_NAME]; +}; + +#define TIPC_NTQ_ALLTYPES 0x80000000 + +struct tipc_name_table_query { + __be32 depth; /* 1:type, 2:+name info, 3:+port info, 4+:+debug info */ + __be32 type; /* {t,l,u} info ignored if high bit of "depth" is set */ + __be32 lowbound; /* (i.e. displays all entries of name table) */ + __be32 upbound; +}; + +/* + * The error string TLV is a null-terminated string describing the cause + * of the request failure. To simplify error processing (and to save space) + * the first character of the string can be a special error code character + * (lying by the range 0x80 to 0xFF) which represents a pre-defined reason. + */ + +#define TIPC_CFG_TLV_ERROR "\x80" /* request contains incorrect TLV(s) */ +#define TIPC_CFG_NOT_NET_ADMIN "\x81" /* must be network administrator */ +#define TIPC_CFG_NOT_ZONE_MSTR "\x82" /* must be zone master */ +#define TIPC_CFG_NO_REMOTE "\x83" /* remote management not enabled */ +#define TIPC_CFG_NOT_SUPPORTED "\x84" /* request is not supported by TIPC */ +#define TIPC_CFG_INVALID_VALUE "\x85" /* request has invalid argument value */ + +/* + * A TLV consists of a descriptor, followed by the TLV value. + * TLV descriptor fields are stored in network byte order; + * TLV values must also be stored in network byte order (where applicable). + * TLV descriptors must be aligned to addresses which are multiple of 4, + * so up to 3 bytes of padding may exist at the end of the TLV value area. + * There must not be any padding between the TLV descriptor and its value. + */ + +struct tlv_desc { + __be16 tlv_len; /* TLV length (descriptor + value) */ + __be16 tlv_type; /* TLV identifier */ +}; + +#define TLV_ALIGNTO 4 + +#define TLV_ALIGN(datalen) (((datalen)+(TLV_ALIGNTO-1)) & ~(TLV_ALIGNTO-1)) +#define TLV_LENGTH(datalen) (sizeof(struct tlv_desc) + (datalen)) +#define TLV_SPACE(datalen) (TLV_ALIGN(TLV_LENGTH(datalen))) +#define TLV_DATA(tlv) ((void *)((char *)(tlv) + TLV_LENGTH(0))) + +static __inline__ int TLV_OK(const void *tlv, __u16 space) +{ + /* + * Would also like to check that "tlv" is a multiple of 4, + * but don't know how to do this in a portable way. + * - Tried doing (!(tlv & (TLV_ALIGNTO-1))), but GCC compiler + * won't allow binary "&" with a pointer. + * - Tried casting "tlv" to integer type, but causes warning about size + * mismatch when pointer is bigger than chosen type (int, long, ...). + */ + + return (space >= TLV_SPACE(0)) && + (ntohs(((struct tlv_desc *)tlv)->tlv_len) <= space); +} + +static __inline__ int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type) +{ + return TLV_OK(tlv, space) && + (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type); +} + +static __inline__ int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) +{ + struct tlv_desc *tlv_ptr; + int tlv_len; + + tlv_len = TLV_LENGTH(len); + tlv_ptr = (struct tlv_desc *)tlv; + tlv_ptr->tlv_type = htons(type); + tlv_ptr->tlv_len = htons(tlv_len); + if (len && data) + memcpy(TLV_DATA(tlv_ptr), data, tlv_len); + return TLV_SPACE(len); +} + +/* + * A TLV list descriptor simplifies processing of messages + * containing multiple TLVs. + */ + +struct tlv_list_desc { + struct tlv_desc *tlv_ptr; /* ptr to current TLV */ + __u32 tlv_space; /* # bytes from curr TLV to list end */ +}; + +static __inline__ void TLV_LIST_INIT(struct tlv_list_desc *list, + void *data, __u32 space) +{ + list->tlv_ptr = (struct tlv_desc *)data; + list->tlv_space = space; +} + +static __inline__ int TLV_LIST_EMPTY(struct tlv_list_desc *list) +{ + return (list->tlv_space == 0); +} + +static __inline__ int TLV_LIST_CHECK(struct tlv_list_desc *list, __u16 exp_type) +{ + return TLV_CHECK(list->tlv_ptr, list->tlv_space, exp_type); +} + +static __inline__ void *TLV_LIST_DATA(struct tlv_list_desc *list) +{ + return TLV_DATA(list->tlv_ptr); +} + +static __inline__ void TLV_LIST_STEP(struct tlv_list_desc *list) +{ + __u16 tlv_space = TLV_ALIGN(ntohs(list->tlv_ptr->tlv_len)); + + list->tlv_ptr = (struct tlv_desc *)((char *)list->tlv_ptr + tlv_space); + list->tlv_space -= tlv_space; +} + +/* + * Configuration messages exchanged via NETLINK_GENERIC use the following + * family id, name, version and command. + */ +#define TIPC_GENL_NAME "TIPC" +#define TIPC_GENL_VERSION 0x1 +#define TIPC_GENL_CMD 0x1 + +/* + * TIPC specific header used in NETLINK_GENERIC requests. + */ +struct tipc_genlmsghdr { + __u32 dest; /* Destination address */ + __u16 cmd; /* Command */ + __u16 reserved; /* Unused */ +}; + +#define TIPC_GENL_HDRLEN NLMSG_ALIGN(sizeof(struct tipc_genlmsghdr)) + +/* + * Configuration messages exchanged via TIPC sockets use the TIPC configuration + * message header, which is defined below. This structure is analogous + * to the Netlink message header, but fields are stored in network byte order + * and no padding is permitted between the header and the message data + * that follows. + */ + +struct tipc_cfg_msg_hdr { + __be32 tcm_len; /* Message length (including header) */ + __be16 tcm_type; /* Command type */ + __be16 tcm_flags; /* Additional flags */ + char tcm_reserved[8]; /* Unused */ +}; + +#define TCM_F_REQUEST 0x1 /* Flag: Request message */ +#define TCM_F_MORE 0x2 /* Flag: Message to be continued */ + +#define TCM_ALIGN(datalen) (((datalen)+3) & ~3) +#define TCM_LENGTH(datalen) (sizeof(struct tipc_cfg_msg_hdr) + datalen) +#define TCM_SPACE(datalen) (TCM_ALIGN(TCM_LENGTH(datalen))) +#define TCM_DATA(tcm_hdr) ((void *)((char *)(tcm_hdr) + TCM_LENGTH(0))) + +static __inline__ int TCM_SET(void *msg, __u16 cmd, __u16 flags, + void *data, __u16 data_len) +{ + struct tipc_cfg_msg_hdr *tcm_hdr; + int msg_len; + + msg_len = TCM_LENGTH(data_len); + tcm_hdr = (struct tipc_cfg_msg_hdr *)msg; + tcm_hdr->tcm_len = htonl(msg_len); + tcm_hdr->tcm_type = htons(cmd); + tcm_hdr->tcm_flags = htons(flags); + if (data_len && data) + memcpy(TCM_DATA(msg), data, data_len); + return TCM_SPACE(data_len); +} + +#endif diff --git a/kernel_headers/linux/toshiba.h b/kernel_headers/linux/toshiba.h new file mode 100644 index 0000000..46522bf --- /dev/null +++ b/kernel_headers/linux/toshiba.h @@ -0,0 +1,37 @@ +/* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops + * + * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan@buzzard.org.uk) + * + * Thanks to Juergen Heinzl for the pointers + * on making sure the structure is aligned and packed. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + */ + +#ifndef _LINUX_TOSHIBA_H +#define _LINUX_TOSHIBA_H + +#define TOSH_PROC "/proc/toshiba" +#define TOSH_DEVICE "/dev/toshiba" +#define TOSH_SMM _IOWR('t', 0x90, int) /* broken: meant 24 bytes */ + +typedef struct { + unsigned int eax; + unsigned int ebx __attribute__ ((packed)); + unsigned int ecx __attribute__ ((packed)); + unsigned int edx __attribute__ ((packed)); + unsigned int esi __attribute__ ((packed)); + unsigned int edi __attribute__ ((packed)); +} SMMRegisters; + + +#endif /* _LINUX_TOSHIBA_H */ diff --git a/kernel_headers/linux/tsc.h b/kernel_headers/linux/tsc.h new file mode 100644 index 0000000..ea6dde1 --- /dev/null +++ b/kernel_headers/linux/tsc.h @@ -0,0 +1,160 @@ +#ifndef TSC_H_ +#define TSC_H_ + +#include +#include + +/* + * ENUMS + */ +/* TSC sources that can transfer the TS out */ +enum tsc_source { + TSC_SOURCE_EXTERNAL0, + TSC_SOURCE_EXTERNAL1, + TSC_SOURCE_INTERNAL, + TSC_SOURCE_CICAM +}; + +/* TSC destinations that can receive TS */ +enum tsc_dest { + TSC_DEST_TSPP0, + TSC_DEST_TSPP1, + TSC_DEST_CICAM +}; + +/** TSIF parameters **/ +/* TSC data type - can be serial of parallel */ +enum tsc_data_type { + TSC_DATA_TYPE_SERIAL = 0, + TSC_DATA_TYPE_PARALLEL = 1 +}; + +/* TSC receive mode - determine the usage of the VALID and START bits */ +enum tsc_receive_mode { + TSC_RECEIVE_MODE_START_VALID = 0, + TSC_RECEIVE_MODE_START_ONLY = 1, + TSC_RECEIVE_MODE_VALID_ONLY = 2 +}; + +/* TSC polarity - can be normal or inversed */ +enum tsc_polarity { + TSC_POLARITY_NORMAL = 0, + TSC_POLARITY_INVERSED = 1, +}; + +/* TSC data swap - whether LSB or MSB is sent first */ +enum tsc_data_swap { + TSC_DATA_NORMAL = 0, + TSC_DATA_SWAP = 1 +}; + +/* TSC set error bit in ts header if ts_fail is enable */ +enum tsc_set_error_bit { + TSC_SET_ERROR_BIT_DISABLE = 0, + TSC_SET_ERROR_BIT_ENABLE = 1 +}; + +/* TSC CAM personality type */ +enum tsc_cam_personality { + TSC_CICAM_PERSONALITY_DISABLE = 0, + TSC_CICAM_PERSONALITY_CI = 1, + TSC_CICAM_PERSONALITY_CIPLUS = 2, +}; + +/* TSC CAM card status */ +enum tsc_card_status { + TSC_CARD_STATUS_DETECTED, + TSC_CARD_STATUS_NOT_DETECTED, + TSC_CARD_STATUS_FAILURE +}; + +/* TSC transaction error types */ +enum tsc_transcation_error { + TSC_TRANSACTION_ERROR_ERR, + TSC_TRANSACTION_ERROR_RETRY, + TSC_TRANSACTION_ERROR_SPLIT +}; + + +/* + * STRUCTS + */ +/* TSC route - configure a TS transfer from source to dest */ +struct tsc_route { + enum tsc_source source; + enum tsc_dest dest; +}; + +/* TSIF parameters to configure the source TSIF */ +struct tsc_tsif_params { + enum tsc_source source; + enum tsc_receive_mode receive_mode; + enum tsc_data_type data_type; + enum tsc_polarity clock_polarity; + enum tsc_polarity data_polarity; + enum tsc_polarity start_polarity; + enum tsc_polarity valid_polarity; + enum tsc_polarity error_polarity; + enum tsc_data_swap data_swap; + enum tsc_set_error_bit set_error; +}; + + +/* Parameters to perform single byte data transaction */ +struct tsc_single_byte_mode { + __u16 address; + __u8 data; + int timeout; /* in msec */ +}; + +/* Parameters to perform buffer data transaction */ +struct tsc_buffer_mode { + int buffer_fd; + __u16 buffer_size; + int timeout; /* in msec */ +}; + +/* + * defines for IOCTL functions + * read Documentation/ioctl-number.txt + * some random number to avoid coinciding with other ioctl numbers + */ +#define TSC_IOCTL_BASE 0xBA + +/* TSC Mux IOCTLs */ +#define TSC_CONFIG_ROUTE \ + _IOW(TSC_IOCTL_BASE, 0, struct tsc_route) +#define TSC_ENABLE_INPUT \ + _IOW(TSC_IOCTL_BASE, 1, enum tsc_source) +#define TSC_DISABLE_INPUT \ + _IOW(TSC_IOCTL_BASE, 2, enum tsc_source) +#define TSC_SET_TSIF_CONFIG \ + _IOW(TSC_IOCTL_BASE, 3, struct tsc_tsif_params) +#define TSC_CLEAR_RATE_MISMATCH_IRQ \ + _IO(TSC_IOCTL_BASE, 4) +#define TSC_CICAM_SET_CLOCK \ + _IOW(TSC_IOCTL_BASE, 5, int) + +/* TSC CI Card IOCTLs */ +#define TSC_CAM_RESET \ + _IO(TSC_IOCTL_BASE, 6) +#define TSC_CICAM_PERSONALITY_CHANGE\ + _IOW(TSC_IOCTL_BASE, 7, enum tsc_cam_personality) +#define TSC_GET_CARD_STATUS \ + _IOR(TSC_IOCTL_BASE, 8, enum tsc_card_status) + +/* TSC CI Data IOCTLs */ +#define TSC_READ_CAM_MEMORY \ + _IOWR(TSC_IOCTL_BASE, 9, struct tsc_single_byte_mode) +#define TSC_WRITE_CAM_MEMORY \ + _IOW(TSC_IOCTL_BASE, 10, struct tsc_single_byte_mode) +#define TSC_READ_CAM_IO \ + _IOWR(TSC_IOCTL_BASE, 11, struct tsc_single_byte_mode) +#define TSC_WRITE_CAM_IO \ + _IOW(TSC_IOCTL_BASE, 12, struct tsc_single_byte_mode) +#define TSC_READ_CAM_BUFFER \ + _IOWR(TSC_IOCTL_BASE, 13, struct tsc_buffer_mode) +#define TSC_WRITE_CAM_BUFFER \ + _IOW(TSC_IOCTL_BASE, 14, struct tsc_buffer_mode) + +#endif /* TSC_H_ */ diff --git a/kernel_headers/linux/tty.h b/kernel_headers/linux/tty.h new file mode 100644 index 0000000..cb7b21e --- /dev/null +++ b/kernel_headers/linux/tty.h @@ -0,0 +1,39 @@ +#ifndef _LINUX_TTY_H +#define _LINUX_TTY_H + +/* + * 'tty.h' defines some structures used by tty_io.c and some defines. + */ + +#define NR_LDISCS 30 + +/* line disciplines */ +#define N_TTY 0 +#define N_SLIP 1 +#define N_MOUSE 2 +#define N_PPP 3 +#define N_STRIP 4 +#define N_AX25 5 +#define N_X25 6 /* X.25 async */ +#define N_6PACK 7 +#define N_MASC 8 /* Reserved for Mobitex module */ +#define N_R3964 9 /* Reserved for Simatic R3964 module */ +#define N_PROFIBUS_FDL 10 /* Reserved for Profibus */ +#define N_IRDA 11 /* Linux IrDa - http://irda.sourceforge.net/ */ +#define N_SMSBLOCK 12 /* SMS block mode - for talking to GSM data */ + /* cards about SMS messages */ +#define N_HDLC 13 /* synchronous HDLC */ +#define N_SYNC_PPP 14 /* synchronous PPP */ +#define N_HCI 15 /* Bluetooth HCI UART */ +#define N_GIGASET_M101 16 /* Siemens Gigaset M101 serial DECT adapter */ +#define N_SLCAN 17 /* Serial / USB serial CAN Adaptors */ +#define N_PPS 18 /* Pulse per Second */ +#define N_V253 19 /* Codec control over voice modem */ +#define N_CAIF 20 /* CAIF protocol for talking to modems */ +#define N_GSM0710 21 /* GSM 0710 Mux */ +#define N_TI_WL 22 /* for TI's WL BT, FM, GPS combo chips */ +#define N_TRACESINK 23 /* Trace data routing for MIPI P1149.7 */ +#define N_TRACEROUTER 24 /* Trace data routing for MIPI P1149.7 */ +#define N_SMUX 25 /* Serial MUX */ + +#endif /* _LINUX_TTY_H */ diff --git a/kernel_headers/linux/tty_flags.h b/kernel_headers/linux/tty_flags.h new file mode 100644 index 0000000..eefcb48 --- /dev/null +++ b/kernel_headers/linux/tty_flags.h @@ -0,0 +1,78 @@ +#ifndef _LINUX_TTY_FLAGS_H +#define _LINUX_TTY_FLAGS_H + +/* + * Definitions for async_struct (and serial_struct) flags field also + * shared by the tty_port flags structures. + * + * Define ASYNCB_* for convenient use with {test,set,clear}_bit. + */ +#define ASYNCB_HUP_NOTIFY 0 /* Notify getty on hangups and closes + * on the callout port */ +#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport settings */ +#define ASYNCB_SAK 2 /* Secure Attention Key (Orange book) */ +#define ASYNCB_SPLIT_TERMIOS 3 /* Separate termios for dialin/callout */ +#define ASYNCB_SPD_HI 4 /* Use 56000 instead of 38400 bps */ +#define ASYNCB_SPD_VHI 5 /* Use 115200 instead of 38400 bps */ +#define ASYNCB_SKIP_TEST 6 /* Skip UART test during autoconfiguration */ +#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during + * autoconfiguration */ +#define ASYNCB_SESSION_LOCKOUT 8 /* Lock out cua opens based on session */ +#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */ +#define ASYNCB_CALLOUT_NOHUP 10 /* Don't do hangups for cua device */ +#define ASYNCB_HARDPPS_CD 11 /* Call hardpps when CD goes high */ +#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */ +#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */ +#define ASYNCB_BUGGY_UART 14 /* This is a buggy UART, skip some safety + * checks. Note: can be dangerous! */ +#define ASYNCB_AUTOPROBE 15 /* Port was autoprobed by PCI or PNP code */ +#define ASYNCB_LAST_USER 15 + +/* Internal flags used only by kernel */ +#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */ +#define ASYNCB_SUSPENDED 30 /* Serial port is suspended */ +#define ASYNCB_NORMAL_ACTIVE 29 /* Normal device is active */ +#define ASYNCB_BOOT_AUTOCONF 28 /* Autoconfigure port on bootup */ +#define ASYNCB_CLOSING 27 /* Serial port is closing */ +#define ASYNCB_CTS_FLOW 26 /* Do CTS flow control */ +#define ASYNCB_CHECK_CD 25 /* i.e., CLOCAL */ +#define ASYNCB_SHARE_IRQ 24 /* for multifunction cards, no longer used */ +#define ASYNCB_CONS_FLOW 23 /* flow control for console */ +#define ASYNCB_FIRST_KERNEL 22 + +#define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY) +#define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED) +#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT) +#define ASYNC_SAK (1U << ASYNCB_SAK) +#define ASYNC_SPLIT_TERMIOS (1U << ASYNCB_SPLIT_TERMIOS) +#define ASYNC_SPD_HI (1U << ASYNCB_SPD_HI) +#define ASYNC_SPD_VHI (1U << ASYNCB_SPD_VHI) +#define ASYNC_SKIP_TEST (1U << ASYNCB_SKIP_TEST) +#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ) +#define ASYNC_SESSION_LOCKOUT (1U << ASYNCB_SESSION_LOCKOUT) +#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT) +#define ASYNC_CALLOUT_NOHUP (1U << ASYNCB_CALLOUT_NOHUP) +#define ASYNC_HARDPPS_CD (1U << ASYNCB_HARDPPS_CD) +#define ASYNC_SPD_SHI (1U << ASYNCB_SPD_SHI) +#define ASYNC_LOW_LATENCY (1U << ASYNCB_LOW_LATENCY) +#define ASYNC_BUGGY_UART (1U << ASYNCB_BUGGY_UART) +#define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE) + +#define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1) +#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \ + ASYNC_LOW_LATENCY) +#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI) +#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI) +#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI) + +#define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED) +#define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE) +#define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF) +#define ASYNC_CLOSING (1U << ASYNCB_CLOSING) +#define ASYNC_CTS_FLOW (1U << ASYNCB_CTS_FLOW) +#define ASYNC_CHECK_CD (1U << ASYNCB_CHECK_CD) +#define ASYNC_SHARE_IRQ (1U << ASYNCB_SHARE_IRQ) +#define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW) +#define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1)) + +#endif diff --git a/kernel_headers/linux/types.h b/kernel_headers/linux/types.h new file mode 100644 index 0000000..23ea78f --- /dev/null +++ b/kernel_headers/linux/types.h @@ -0,0 +1,51 @@ +#ifndef _LINUX_TYPES_H +#define _LINUX_TYPES_H + +#include + +#ifndef __ASSEMBLY__ + +#include + + +/* + * Below are truly Linux-specific types that should never collide with + * any application/library that wants linux/types.h. + */ + +#ifdef __CHECKER__ +#define __bitwise__ __attribute__((bitwise)) +#else +#define __bitwise__ +#endif +#ifdef __CHECK_ENDIAN__ +#define __bitwise __bitwise__ +#else +#define __bitwise +#endif + +typedef __u16 __bitwise __le16; +typedef __u16 __bitwise __be16; +typedef __u32 __bitwise __le32; +typedef __u32 __bitwise __be32; +typedef __u64 __bitwise __le64; +typedef __u64 __bitwise __be64; + +typedef __u16 __bitwise __sum16; +typedef __u32 __bitwise __wsum; + +/* + * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid + * common 32/64-bit compat problems. + * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other + * architectures) and to 8-byte boundaries on 64-bit architectures. The new + * aligned_64 type enforces 8-byte alignment so that structs containing + * aligned_64 values have the same alignment on 32-bit and 64-bit architectures. + * No conversions are necessary between 32-bit user-space and a 64-bit kernel. + */ +#define __aligned_u64 __u64 __attribute__((aligned(8))) +#define __aligned_be64 __be64 __attribute__((aligned(8))) +#define __aligned_le64 __le64 __attribute__((aligned(8))) + +#endif /* __ASSEMBLY__ */ +#endif /* _LINUX_TYPES_H */ diff --git a/kernel_headers/linux/udf_fs_i.h b/kernel_headers/linux/udf_fs_i.h new file mode 100644 index 0000000..3536965 --- /dev/null +++ b/kernel_headers/linux/udf_fs_i.h @@ -0,0 +1,21 @@ +/* + * udf_fs_i.h + * + * This file is intended for the Linux kernel/module. + * + * COPYRIGHT + * This file is distributed under the terms of the GNU General Public + * License (GPL). Copies of the GPL can be obtained from: + * ftp://prep.ai.mit.edu/pub/gnu/GPL + * Each contributing author retains all rights to their own work. + */ +#ifndef _UDF_FS_I_H +#define _UDF_FS_I_H 1 + +/* exported IOCTLs, we have 'l', 0x40-0x7f */ +#define UDF_GETEASIZE _IOR('l', 0x40, int) +#define UDF_GETEABLOCK _IOR('l', 0x41, void *) +#define UDF_GETVOLIDENT _IOR('l', 0x42, void *) +#define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long) + +#endif /* _UDF_FS_I_H */ diff --git a/kernel_headers/linux/udp.h b/kernel_headers/linux/udp.h new file mode 100644 index 0000000..041cb22 --- /dev/null +++ b/kernel_headers/linux/udp.h @@ -0,0 +1,39 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Definitions for the UDP protocol. + * + * Version: @(#)udp.h 1.0.2 04/28/93 + * + * Author: Fred N. van Kempen, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef _LINUX_UDP_H +#define _LINUX_UDP_H + +#include + +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; +}; + +/* UDP socket options */ +#define UDP_CORK 1 /* Never send partially complete segments */ +#define UDP_ENCAP 100 /* Set the socket to accept encapsulated packets */ + +/* UDP encapsulation types */ +#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */ +#define UDP_ENCAP_ESPINUDP 2 /* draft-ietf-ipsec-udp-encaps-06 */ +#define UDP_ENCAP_L2TPINUDP 3 /* rfc2661 */ + + +#endif /* _LINUX_UDP_H */ diff --git a/kernel_headers/linux/uhid.h b/kernel_headers/linux/uhid.h new file mode 100644 index 0000000..8dcc6e3 --- /dev/null +++ b/kernel_headers/linux/uhid.h @@ -0,0 +1,104 @@ +#ifndef __UHID_H_ +#define __UHID_H_ + +/* + * User-space I/O driver support for HID subsystem + * Copyright (c) 2012 David Herrmann + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + */ + +/* + * Public header for user-space communication. We try to keep every structure + * aligned but to be safe we also use __attribute__((__packed__)). Therefore, + * the communication should be ABI compatible even between architectures. + */ + +#include +#include + +enum uhid_event_type { + UHID_CREATE, + UHID_DESTROY, + UHID_START, + UHID_STOP, + UHID_OPEN, + UHID_CLOSE, + UHID_OUTPUT, + UHID_OUTPUT_EV, + UHID_INPUT, + UHID_FEATURE, + UHID_FEATURE_ANSWER, +}; + +struct uhid_create_req { + __u8 name[128]; + __u8 phys[64]; + __u8 uniq[64]; + __u8 *rd_data; + __u16 rd_size; + + __u16 bus; + __u32 vendor; + __u32 product; + __u32 version; + __u32 country; +} __attribute__((__packed__)); + +#define UHID_DATA_MAX 4096 + +enum uhid_report_type { + UHID_FEATURE_REPORT, + UHID_OUTPUT_REPORT, + UHID_INPUT_REPORT, +}; + +struct uhid_input_req { + __u8 data[UHID_DATA_MAX]; + __u16 size; +} __attribute__((__packed__)); + +struct uhid_output_req { + __u8 data[UHID_DATA_MAX]; + __u16 size; + __u8 rtype; +} __attribute__((__packed__)); + +struct uhid_output_ev_req { + __u16 type; + __u16 code; + __s32 value; +} __attribute__((__packed__)); + +struct uhid_feature_req { + __u32 id; + __u8 rnum; + __u8 rtype; +} __attribute__((__packed__)); + +struct uhid_feature_answer_req { + __u32 id; + __u16 err; + __u16 size; + __u8 data[UHID_DATA_MAX]; +} __attribute__((__packed__)); + +struct uhid_event { + __u32 type; + + union { + struct uhid_create_req create; + struct uhid_input_req input; + struct uhid_output_req output; + struct uhid_output_ev_req output_ev; + struct uhid_feature_req feature; + struct uhid_feature_answer_req feature_answer; + } u; +} __attribute__((__packed__)); + +#endif /* __UHID_H_ */ diff --git a/kernel_headers/linux/uinput.h b/kernel_headers/linux/uinput.h new file mode 100644 index 0000000..9048f04 --- /dev/null +++ b/kernel_headers/linux/uinput.h @@ -0,0 +1,137 @@ +/* + * User level driver support for input subsystem + * + * Heavily based on evdev.c by Vojtech Pavlik + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Aristeu Sergio Rozanski Filho + * + * Changes/Revisions: + * 0.3 24/05/2006 (Anssi Hannula ) + * - update ff support for the changes in kernel interface + * - add UINPUT_VERSION + * 0.2 16/10/2004 (Micah Dowty ) + * - added force feedback support + * - added UI_SET_PHYS + * 0.1 20/06/2002 + * - first public version + */ +#ifndef __UINPUT_H_ +#define __UINPUT_H_ + +#include +#include + +#define UINPUT_VERSION 3 + + +struct uinput_ff_upload { + __u32 request_id; + __s32 retval; + struct ff_effect effect; + struct ff_effect old; +}; + +struct uinput_ff_erase { + __u32 request_id; + __s32 retval; + __u32 effect_id; +}; + +/* ioctl */ +#define UINPUT_IOCTL_BASE 'U' +#define UI_DEV_CREATE _IO(UINPUT_IOCTL_BASE, 1) +#define UI_DEV_DESTROY _IO(UINPUT_IOCTL_BASE, 2) + +#define UI_SET_EVBIT _IOW(UINPUT_IOCTL_BASE, 100, int) +#define UI_SET_KEYBIT _IOW(UINPUT_IOCTL_BASE, 101, int) +#define UI_SET_RELBIT _IOW(UINPUT_IOCTL_BASE, 102, int) +#define UI_SET_ABSBIT _IOW(UINPUT_IOCTL_BASE, 103, int) +#define UI_SET_MSCBIT _IOW(UINPUT_IOCTL_BASE, 104, int) +#define UI_SET_LEDBIT _IOW(UINPUT_IOCTL_BASE, 105, int) +#define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int) +#define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int) +#define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*) +#define UI_SET_SWBIT _IOW(UINPUT_IOCTL_BASE, 109, int) +#define UI_SET_PROPBIT _IOW(UINPUT_IOCTL_BASE, 110, int) + +#define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload) +#define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload) +#define UI_BEGIN_FF_ERASE _IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase) +#define UI_END_FF_ERASE _IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase) + +/* + * To write a force-feedback-capable driver, the upload_effect + * and erase_effect callbacks in input_dev must be implemented. + * The uinput driver will generate a fake input event when one of + * these callbacks are invoked. The userspace code then uses + * ioctls to retrieve additional parameters and send the return code. + * The callback blocks until this return code is sent. + * + * The described callback mechanism is only used if ff_effects_max + * is set. + * + * To implement upload_effect(): + * 1. Wait for an event with type == EV_UINPUT and code == UI_FF_UPLOAD. + * A request ID will be given in 'value'. + * 2. Allocate a uinput_ff_upload struct, fill in request_id with + * the 'value' from the EV_UINPUT event. + * 3. Issue a UI_BEGIN_FF_UPLOAD ioctl, giving it the + * uinput_ff_upload struct. It will be filled in with the + * ff_effects passed to upload_effect(). + * 4. Perform the effect upload, and place a return code back into + the uinput_ff_upload struct. + * 5. Issue a UI_END_FF_UPLOAD ioctl, also giving it the + * uinput_ff_upload_effect struct. This will complete execution + * of our upload_effect() handler. + * + * To implement erase_effect(): + * 1. Wait for an event with type == EV_UINPUT and code == UI_FF_ERASE. + * A request ID will be given in 'value'. + * 2. Allocate a uinput_ff_erase struct, fill in request_id with + * the 'value' from the EV_UINPUT event. + * 3. Issue a UI_BEGIN_FF_ERASE ioctl, giving it the + * uinput_ff_erase struct. It will be filled in with the + * effect ID passed to erase_effect(). + * 4. Perform the effect erasure, and place a return code back + * into the uinput_ff_erase struct. + * 5. Issue a UI_END_FF_ERASE ioctl, also giving it the + * uinput_ff_erase_effect struct. This will complete execution + * of our erase_effect() handler. + */ + +/* + * This is the new event type, used only by uinput. + * 'code' is UI_FF_UPLOAD or UI_FF_ERASE, and 'value' + * is the unique request ID. This number was picked + * arbitrarily, above EV_MAX (since the input system + * never sees it) but in the range of a 16-bit int. + */ +#define EV_UINPUT 0x0101 +#define UI_FF_UPLOAD 1 +#define UI_FF_ERASE 2 + +#define UINPUT_MAX_NAME_SIZE 80 +struct uinput_user_dev { + char name[UINPUT_MAX_NAME_SIZE]; + struct input_id id; + __u32 ff_effects_max; + __s32 absmax[ABS_CNT]; + __s32 absmin[ABS_CNT]; + __s32 absfuzz[ABS_CNT]; + __s32 absflat[ABS_CNT]; +}; +#endif /* __UINPUT_H_ */ diff --git a/kernel_headers/linux/uio.h b/kernel_headers/linux/uio.h new file mode 100644 index 0000000..d0978de --- /dev/null +++ b/kernel_headers/linux/uio.h @@ -0,0 +1,30 @@ +/* + * Berkeley style UIO structures - Alan Cox 1994. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#ifndef __LINUX_UIO_H +#define __LINUX_UIO_H + + +#include + + +struct iovec +{ + void *iov_base; /* BSD uses caddr_t (1003.1g requires void *) */ + __kernel_size_t iov_len; /* Must be size_t (1003.1g) */ +}; + +/* + * UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) + */ + +#define UIO_FASTIOV 8 +#define UIO_MAXIOV 1024 + + +#endif /* __LINUX_UIO_H */ diff --git a/kernel_headers/linux/ultrasound.h b/kernel_headers/linux/ultrasound.h new file mode 100644 index 0000000..71339dc --- /dev/null +++ b/kernel_headers/linux/ultrasound.h @@ -0,0 +1,103 @@ +#ifndef _ULTRASOUND_H_ +#define _ULTRASOUND_H_ +/* + * ultrasound.h - Macros for programming the Gravis Ultrasound + * These macros are extremely device dependent + * and not portable. + */ +/* + * Copyright (C) by Hannu Savolainen 1993-1997 + * + * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL) + * Version 2 (June 1991). See the "COPYING" file distributed with this software + * for more info. + */ + + +/* + * Private events for Gravis Ultrasound (GUS) + * + * Format: + * byte 0 - SEQ_PRIVATE (0xfe) + * byte 1 - Synthesizer device number (0-N) + * byte 2 - Command (see below) + * byte 3 - Voice number (0-31) + * bytes 4 and 5 - parameter P1 (unsigned short) + * bytes 6 and 7 - parameter P2 (unsigned short) + * + * Commands: + * Each command affects one voice defined in byte 3. + * Unused parameters (P1 and/or P2 *MUST* be initialized to zero). + * _GUS_NUMVOICES - Sets max. number of concurrent voices (P1=14-31, default 16) + * _GUS_VOICESAMPLE- ************ OBSOLETE ************* + * _GUS_VOICEON - Starts voice (P1=voice mode) + * _GUS_VOICEOFF - Stops voice (no parameters) + * _GUS_VOICEFADE - Stops the voice smoothly. + * _GUS_VOICEMODE - Alters the voice mode, don't start or stop voice (P1=voice mode) + * _GUS_VOICEBALA - Sets voice balance (P1, 0=left, 7=middle and 15=right, default 7) + * _GUS_VOICEFREQ - Sets voice (sample) playback frequency (P1=Hz) + * _GUS_VOICEVOL - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off) + * _GUS_VOICEVOL2 - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off) + * (Like GUS_VOICEVOL but doesn't change the hw + * volume. It just updates volume in the voice table). + * + * _GUS_RAMPRANGE - Sets limits for volume ramping (P1=low volume, P2=high volume) + * _GUS_RAMPRATE - Sets the speed for volume ramping (P1=scale, P2=rate) + * _GUS_RAMPMODE - Sets the volume ramping mode (P1=ramping mode) + * _GUS_RAMPON - Starts volume ramping (no parameters) + * _GUS_RAMPOFF - Stops volume ramping (no parameters) + * _GUS_VOLUME_SCALE - Changes the volume calculation constants + * for all voices. + */ + +#define _GUS_NUMVOICES 0x00 +#define _GUS_VOICESAMPLE 0x01 /* OBSOLETE */ +#define _GUS_VOICEON 0x02 +#define _GUS_VOICEOFF 0x03 +#define _GUS_VOICEMODE 0x04 +#define _GUS_VOICEBALA 0x05 +#define _GUS_VOICEFREQ 0x06 +#define _GUS_VOICEVOL 0x07 +#define _GUS_RAMPRANGE 0x08 +#define _GUS_RAMPRATE 0x09 +#define _GUS_RAMPMODE 0x0a +#define _GUS_RAMPON 0x0b +#define _GUS_RAMPOFF 0x0c +#define _GUS_VOICEFADE 0x0d +#define _GUS_VOLUME_SCALE 0x0e +#define _GUS_VOICEVOL2 0x0f +#define _GUS_VOICE_POS 0x10 + +/* + * GUS API macros + */ + +#define _GUS_CMD(chn, voice, cmd, p1, p2) \ + {_SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_PRIVATE;\ + _seqbuf[_seqbufptr+1] = (chn); _seqbuf[_seqbufptr+2] = cmd;\ + _seqbuf[_seqbufptr+3] = voice;\ + *(unsigned short*)&_seqbuf[_seqbufptr+4] = p1;\ + *(unsigned short*)&_seqbuf[_seqbufptr+6] = p2;\ + _SEQ_ADVBUF(8);} + +#define GUS_NUMVOICES(chn, p1) _GUS_CMD(chn, 0, _GUS_NUMVOICES, (p1), 0) +#define GUS_VOICESAMPLE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0) /* OBSOLETE */ +#define GUS_VOICEON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0) +#define GUS_VOICEOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEOFF, 0, 0) +#define GUS_VOICEFADE(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEFADE, 0, 0) +#define GUS_VOICEMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0) +#define GUS_VOICEBALA(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0) +#define GUS_VOICEFREQ(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICEFREQ, \ + (p) & 0xffff, ((p) >> 16) & 0xffff) +#define GUS_VOICEVOL(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0) +#define GUS_VOICEVOL2(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0) +#define GUS_RAMPRANGE(chn, voice, low, high) _GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high)) +#define GUS_RAMPRATE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2)) +#define GUS_RAMPMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0) +#define GUS_RAMPON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0) +#define GUS_RAMPOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_RAMPOFF, 0, 0) +#define GUS_VOLUME_SCALE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2)) +#define GUS_VOICE_POS(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICE_POS, \ + (p) & 0xffff, ((p) >> 16) & 0xffff) + +#endif diff --git a/kernel_headers/linux/un.h b/kernel_headers/linux/un.h new file mode 100644 index 0000000..3ed3e46 --- /dev/null +++ b/kernel_headers/linux/un.h @@ -0,0 +1,13 @@ +#ifndef _LINUX_UN_H +#define _LINUX_UN_H + +#include + +#define UNIX_PATH_MAX 108 + +struct sockaddr_un { + __kernel_sa_family_t sun_family; /* AF_UNIX */ + char sun_path[UNIX_PATH_MAX]; /* pathname */ +}; + +#endif /* _LINUX_UN_H */ diff --git a/kernel_headers/linux/unistd.h b/kernel_headers/linux/unistd.h new file mode 100644 index 0000000..aa8d5b5 --- /dev/null +++ b/kernel_headers/linux/unistd.h @@ -0,0 +1,9 @@ +#ifndef _LINUX_UNISTD_H_ +#define _LINUX_UNISTD_H_ + +/* + * Include machine specific syscall numbers + */ +#include + +#endif /* _LINUX_UNISTD_H_ */ diff --git a/kernel_headers/linux/unix_diag.h b/kernel_headers/linux/unix_diag.h new file mode 100644 index 0000000..b9e2a6a --- /dev/null +++ b/kernel_headers/linux/unix_diag.h @@ -0,0 +1,57 @@ +#ifndef __UNIX_DIAG_H__ +#define __UNIX_DIAG_H__ + +#include + +struct unix_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 udiag_states; + __u32 udiag_ino; + __u32 udiag_show; + __u32 udiag_cookie[2]; +}; + +#define UDIAG_SHOW_NAME 0x00000001 /* show name (not path) */ +#define UDIAG_SHOW_VFS 0x00000002 /* show VFS inode info */ +#define UDIAG_SHOW_PEER 0x00000004 /* show peer socket info */ +#define UDIAG_SHOW_ICONS 0x00000008 /* show pending connections */ +#define UDIAG_SHOW_RQLEN 0x00000010 /* show skb receive queue len */ +#define UDIAG_SHOW_MEMINFO 0x00000020 /* show memory info of a socket */ + +struct unix_diag_msg { + __u8 udiag_family; + __u8 udiag_type; + __u8 udiag_state; + __u8 pad; + + __u32 udiag_ino; + __u32 udiag_cookie[2]; +}; + +enum { + UNIX_DIAG_NAME, + UNIX_DIAG_VFS, + UNIX_DIAG_PEER, + UNIX_DIAG_ICONS, + UNIX_DIAG_RQLEN, + UNIX_DIAG_MEMINFO, + UNIX_DIAG_SHUTDOWN, + + __UNIX_DIAG_MAX, +}; + +#define UNIX_DIAG_MAX (__UNIX_DIAG_MAX - 1) + +struct unix_diag_vfs { + __u32 udiag_vfs_ino; + __u32 udiag_vfs_dev; +}; + +struct unix_diag_rqlen { + __u32 udiag_rqueue; + __u32 udiag_wqueue; +}; + +#endif diff --git a/kernel_headers/linux/usb/..install.cmd b/kernel_headers/linux/usb/..install.cmd new file mode 100644 index 0000000..d9139c2 --- /dev/null +++ b/kernel_headers/linux/usb/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/usb/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/usb /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/usb audio.h ccid_bridge.h cdc-wdm.h cdc.h ch11.h ch9.h functionfs.h g_printer.h gadgetfs.h midi.h msm_ext_chg.h tmc.h video.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/usb /android/kernels/moto/surnia/kernel-msm/include/linux/usb ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/usb /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/usb ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/usb/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/usb/.install diff --git a/kernel_headers/linux/usb/.install b/kernel_headers/linux/usb/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/usb/audio.h b/kernel_headers/linux/usb/audio.h new file mode 100644 index 0000000..1760867 --- /dev/null +++ b/kernel_headers/linux/usb/audio.h @@ -0,0 +1,550 @@ +/* + * -- USB Audio definitions. + * + * Copyright (C) 2006 Thumtronics Pty Ltd. + * Developed for Thumtronics by Grey Innovation + * Ben Williamson + * + * This software is distributed under the terms of the GNU General Public + * License ("GPL") version 2, as published by the Free Software Foundation. + * + * This file holds USB constants and structures defined + * by the USB Device Class Definition for Audio Devices. + * Comments below reference relevant sections of that document: + * + * http://www.usb.org/developers/devclass_docs/audio10.pdf + * + * Types and defines in this file are either specific to version 1.0 of + * this standard or common for newer versions. + */ + +#ifndef __LINUX_USB_AUDIO_H +#define __LINUX_USB_AUDIO_H + +#include + +/* bInterfaceProtocol values to denote the version of the standard used */ +#define UAC_VERSION_1 0x00 +#define UAC_VERSION_2 0x20 + +/* A.2 Audio Interface Subclass Codes */ +#define USB_SUBCLASS_AUDIOCONTROL 0x01 +#define USB_SUBCLASS_AUDIOSTREAMING 0x02 +#define USB_SUBCLASS_MIDISTREAMING 0x03 + +/* A.5 Audio Class-Specific AC Interface Descriptor Subtypes */ +#define UAC_HEADER 0x01 +#define UAC_INPUT_TERMINAL 0x02 +#define UAC_OUTPUT_TERMINAL 0x03 +#define UAC_MIXER_UNIT 0x04 +#define UAC_SELECTOR_UNIT 0x05 +#define UAC_FEATURE_UNIT 0x06 +#define UAC1_PROCESSING_UNIT 0x07 +#define UAC1_EXTENSION_UNIT 0x08 + +/* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */ +#define UAC_AS_GENERAL 0x01 +#define UAC_FORMAT_TYPE 0x02 +#define UAC_FORMAT_SPECIFIC 0x03 + +/* A.7 Processing Unit Process Types */ +#define UAC_PROCESS_UNDEFINED 0x00 +#define UAC_PROCESS_UP_DOWNMIX 0x01 +#define UAC_PROCESS_DOLBY_PROLOGIC 0x02 +#define UAC_PROCESS_STEREO_EXTENDER 0x03 +#define UAC_PROCESS_REVERB 0x04 +#define UAC_PROCESS_CHORUS 0x05 +#define UAC_PROCESS_DYN_RANGE_COMP 0x06 + +/* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */ +#define UAC_EP_GENERAL 0x01 + +/* A.9 Audio Class-Specific Request Codes */ +#define UAC_SET_ 0x00 +#define UAC_GET_ 0x80 + +#define UAC__CUR 0x1 +#define UAC__MIN 0x2 +#define UAC__MAX 0x3 +#define UAC__RES 0x4 +#define UAC__MEM 0x5 + +#define UAC_SET_CUR (UAC_SET_ | UAC__CUR) +#define UAC_GET_CUR (UAC_GET_ | UAC__CUR) +#define UAC_SET_MIN (UAC_SET_ | UAC__MIN) +#define UAC_GET_MIN (UAC_GET_ | UAC__MIN) +#define UAC_SET_MAX (UAC_SET_ | UAC__MAX) +#define UAC_GET_MAX (UAC_GET_ | UAC__MAX) +#define UAC_SET_RES (UAC_SET_ | UAC__RES) +#define UAC_GET_RES (UAC_GET_ | UAC__RES) +#define UAC_SET_MEM (UAC_SET_ | UAC__MEM) +#define UAC_GET_MEM (UAC_GET_ | UAC__MEM) + +#define UAC_GET_STAT 0xff + +/* A.10 Control Selector Codes */ + +/* A.10.1 Terminal Control Selectors */ +#define UAC_TERM_COPY_PROTECT 0x01 + +/* A.10.2 Feature Unit Control Selectors */ +#define UAC_FU_MUTE 0x01 +#define UAC_FU_VOLUME 0x02 +#define UAC_FU_BASS 0x03 +#define UAC_FU_MID 0x04 +#define UAC_FU_TREBLE 0x05 +#define UAC_FU_GRAPHIC_EQUALIZER 0x06 +#define UAC_FU_AUTOMATIC_GAIN 0x07 +#define UAC_FU_DELAY 0x08 +#define UAC_FU_BASS_BOOST 0x09 +#define UAC_FU_LOUDNESS 0x0a + +#define UAC_CONTROL_BIT(CS) (1 << ((CS) - 1)) + +/* A.10.3.1 Up/Down-mix Processing Unit Controls Selectors */ +#define UAC_UD_ENABLE 0x01 +#define UAC_UD_MODE_SELECT 0x02 + +/* A.10.3.2 Dolby Prologic (tm) Processing Unit Controls Selectors */ +#define UAC_DP_ENABLE 0x01 +#define UAC_DP_MODE_SELECT 0x02 + +/* A.10.3.3 3D Stereo Extender Processing Unit Control Selectors */ +#define UAC_3D_ENABLE 0x01 +#define UAC_3D_SPACE 0x02 + +/* A.10.3.4 Reverberation Processing Unit Control Selectors */ +#define UAC_REVERB_ENABLE 0x01 +#define UAC_REVERB_LEVEL 0x02 +#define UAC_REVERB_TIME 0x03 +#define UAC_REVERB_FEEDBACK 0x04 + +/* A.10.3.5 Chorus Processing Unit Control Selectors */ +#define UAC_CHORUS_ENABLE 0x01 +#define UAC_CHORUS_LEVEL 0x02 +#define UAC_CHORUS_RATE 0x03 +#define UAC_CHORUS_DEPTH 0x04 + +/* A.10.3.6 Dynamic Range Compressor Unit Control Selectors */ +#define UAC_DCR_ENABLE 0x01 +#define UAC_DCR_RATE 0x02 +#define UAC_DCR_MAXAMPL 0x03 +#define UAC_DCR_THRESHOLD 0x04 +#define UAC_DCR_ATTACK_TIME 0x05 +#define UAC_DCR_RELEASE_TIME 0x06 + +/* A.10.4 Extension Unit Control Selectors */ +#define UAC_XU_ENABLE 0x01 + +/* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */ +#define UAC_MS_HEADER 0x01 +#define UAC_MIDI_IN_JACK 0x02 +#define UAC_MIDI_OUT_JACK 0x03 + +/* MIDI - A.1 MS Class-Specific Endpoint Descriptor Subtypes */ +#define UAC_MS_GENERAL 0x01 + +/* Terminals - 2.1 USB Terminal Types */ +#define UAC_TERMINAL_UNDEFINED 0x100 +#define UAC_TERMINAL_STREAMING 0x101 +#define UAC_TERMINAL_VENDOR_SPEC 0x1FF + +/* Terminal Control Selectors */ +/* 4.3.2 Class-Specific AC Interface Descriptor */ +struct uac1_ac_header_descriptor { + __u8 bLength; /* 8 + n */ + __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ + __u8 bDescriptorSubtype; /* UAC_MS_HEADER */ + __le16 bcdADC; /* 0x0100 */ + __le16 wTotalLength; /* includes Unit and Terminal desc. */ + __u8 bInCollection; /* n */ + __u8 baInterfaceNr[]; /* [n] */ +} __attribute__ ((packed)); + +#define UAC_DT_AC_HEADER_SIZE(n) (8 + (n)) + +/* As above, but more useful for defining your own descriptors: */ +#define DECLARE_UAC_AC_HEADER_DESCRIPTOR(n) \ +struct uac1_ac_header_descriptor_##n { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubtype; \ + __le16 bcdADC; \ + __le16 wTotalLength; \ + __u8 bInCollection; \ + __u8 baInterfaceNr[n]; \ +} __attribute__ ((packed)) + +DECLARE_UAC_AC_HEADER_DESCRIPTOR(2); + +/* 4.3.2.1 Input Terminal Descriptor */ +struct uac_input_terminal_descriptor { + __u8 bLength; /* in bytes: 12 */ + __u8 bDescriptorType; /* CS_INTERFACE descriptor type */ + __u8 bDescriptorSubtype; /* INPUT_TERMINAL descriptor subtype */ + __u8 bTerminalID; /* Constant uniquely terminal ID */ + __le16 wTerminalType; /* USB Audio Terminal Types */ + __u8 bAssocTerminal; /* ID of the Output Terminal associated */ + __u8 bNrChannels; /* Number of logical output channels */ + __le16 wChannelConfig; + __u8 iChannelNames; + __u8 iTerminal; +} __attribute__ ((packed)); + +#define UAC_DT_INPUT_TERMINAL_SIZE 12 + +/* Terminals - 2.2 Input Terminal Types */ +#define UAC_INPUT_TERMINAL_UNDEFINED 0x200 +#define UAC_INPUT_TERMINAL_MICROPHONE 0x201 +#define UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE 0x202 +#define UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE 0x203 +#define UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE 0x204 +#define UAC_INPUT_TERMINAL_MICROPHONE_ARRAY 0x205 +#define UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY 0x206 + +/* Terminals - control selectors */ + +#define UAC_TERMINAL_CS_COPY_PROTECT_CONTROL 0x01 + +/* 4.3.2.2 Output Terminal Descriptor */ +struct uac1_output_terminal_descriptor { + __u8 bLength; /* in bytes: 9 */ + __u8 bDescriptorType; /* CS_INTERFACE descriptor type */ + __u8 bDescriptorSubtype; /* OUTPUT_TERMINAL descriptor subtype */ + __u8 bTerminalID; /* Constant uniquely terminal ID */ + __le16 wTerminalType; /* USB Audio Terminal Types */ + __u8 bAssocTerminal; /* ID of the Input Terminal associated */ + __u8 bSourceID; /* ID of the connected Unit or Terminal*/ + __u8 iTerminal; +} __attribute__ ((packed)); + +#define UAC_DT_OUTPUT_TERMINAL_SIZE 9 + +/* Terminals - 2.3 Output Terminal Types */ +#define UAC_OUTPUT_TERMINAL_UNDEFINED 0x300 +#define UAC_OUTPUT_TERMINAL_SPEAKER 0x301 +#define UAC_OUTPUT_TERMINAL_HEADPHONES 0x302 +#define UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO 0x303 +#define UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER 0x304 +#define UAC_OUTPUT_TERMINAL_ROOM_SPEAKER 0x305 +#define UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER 0x306 +#define UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER 0x307 + +/* Set bControlSize = 2 as default setting */ +#define UAC_DT_FEATURE_UNIT_SIZE(ch) (7 + ((ch) + 1) * 2) + +/* As above, but more useful for defining your own descriptors: */ +#define DECLARE_UAC_FEATURE_UNIT_DESCRIPTOR(ch) \ +struct uac_feature_unit_descriptor_##ch { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubtype; \ + __u8 bUnitID; \ + __u8 bSourceID; \ + __u8 bControlSize; \ + __le16 bmaControls[ch + 1]; \ + __u8 iFeature; \ +} __attribute__ ((packed)) + +/* 4.3.2.3 Mixer Unit Descriptor */ +struct uac_mixer_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bUnitID; + __u8 bNrInPins; + __u8 baSourceID[]; +} __attribute__ ((packed)); + +static __inline__ __u8 uac_mixer_unit_bNrChannels(struct uac_mixer_unit_descriptor *desc) +{ + return desc->baSourceID[desc->bNrInPins]; +} + +static __inline__ __u32 uac_mixer_unit_wChannelConfig(struct uac_mixer_unit_descriptor *desc, + int protocol) +{ + if (protocol == UAC_VERSION_1) + return (desc->baSourceID[desc->bNrInPins + 2] << 8) | + desc->baSourceID[desc->bNrInPins + 1]; + else + return (desc->baSourceID[desc->bNrInPins + 4] << 24) | + (desc->baSourceID[desc->bNrInPins + 3] << 16) | + (desc->baSourceID[desc->bNrInPins + 2] << 8) | + (desc->baSourceID[desc->bNrInPins + 1]); +} + +static __inline__ __u8 uac_mixer_unit_iChannelNames(struct uac_mixer_unit_descriptor *desc, + int protocol) +{ + return (protocol == UAC_VERSION_1) ? + desc->baSourceID[desc->bNrInPins + 3] : + desc->baSourceID[desc->bNrInPins + 5]; +} + +static __inline__ __u8 *uac_mixer_unit_bmControls(struct uac_mixer_unit_descriptor *desc, + int protocol) +{ + return (protocol == UAC_VERSION_1) ? + &desc->baSourceID[desc->bNrInPins + 4] : + &desc->baSourceID[desc->bNrInPins + 6]; +} + +static __inline__ __u8 uac_mixer_unit_iMixer(struct uac_mixer_unit_descriptor *desc) +{ + __u8 *raw = (__u8 *) desc; + return raw[desc->bLength - 1]; +} + +/* 4.3.2.4 Selector Unit Descriptor */ +struct uac_selector_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bUintID; + __u8 bNrInPins; + __u8 baSourceID[]; +} __attribute__ ((packed)); + +static __inline__ __u8 uac_selector_unit_iSelector(struct uac_selector_unit_descriptor *desc) +{ + __u8 *raw = (__u8 *) desc; + return raw[desc->bLength - 1]; +} + +/* 4.3.2.5 Feature Unit Descriptor */ +struct uac_feature_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bUnitID; + __u8 bSourceID; + __u8 bControlSize; + __u8 bmaControls[0]; /* variable length */ +} __attribute__((packed)); + +static __inline__ __u8 uac_feature_unit_iFeature(struct uac_feature_unit_descriptor *desc) +{ + __u8 *raw = (__u8 *) desc; + return raw[desc->bLength - 1]; +} + +/* 4.3.2.6 Processing Unit Descriptors */ +struct uac_processing_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bUnitID; + __u16 wProcessType; + __u8 bNrInPins; + __u8 baSourceID[]; +} __attribute__ ((packed)); + +static __inline__ __u8 uac_processing_unit_bNrChannels(struct uac_processing_unit_descriptor *desc) +{ + return desc->baSourceID[desc->bNrInPins]; +} + +static __inline__ __u32 uac_processing_unit_wChannelConfig(struct uac_processing_unit_descriptor *desc, + int protocol) +{ + if (protocol == UAC_VERSION_1) + return (desc->baSourceID[desc->bNrInPins + 2] << 8) | + desc->baSourceID[desc->bNrInPins + 1]; + else + return (desc->baSourceID[desc->bNrInPins + 4] << 24) | + (desc->baSourceID[desc->bNrInPins + 3] << 16) | + (desc->baSourceID[desc->bNrInPins + 2] << 8) | + (desc->baSourceID[desc->bNrInPins + 1]); +} + +static __inline__ __u8 uac_processing_unit_iChannelNames(struct uac_processing_unit_descriptor *desc, + int protocol) +{ + return (protocol == UAC_VERSION_1) ? + desc->baSourceID[desc->bNrInPins + 3] : + desc->baSourceID[desc->bNrInPins + 5]; +} + +static __inline__ __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc, + int protocol) +{ + return (protocol == UAC_VERSION_1) ? + desc->baSourceID[desc->bNrInPins + 4] : + desc->baSourceID[desc->bNrInPins + 6]; +} + +static __inline__ __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc, + int protocol) +{ + return (protocol == UAC_VERSION_1) ? + &desc->baSourceID[desc->bNrInPins + 5] : + &desc->baSourceID[desc->bNrInPins + 7]; +} + +static __inline__ __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc, + int protocol) +{ + __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); + return *(uac_processing_unit_bmControls(desc, protocol) + + control_size); +} + +static __inline__ __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, + int protocol) +{ + __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); + return uac_processing_unit_bmControls(desc, protocol) + + control_size + 1; +} + +/* 4.5.2 Class-Specific AS Interface Descriptor */ +struct uac1_as_header_descriptor { + __u8 bLength; /* in bytes: 7 */ + __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ + __u8 bDescriptorSubtype; /* AS_GENERAL */ + __u8 bTerminalLink; /* Terminal ID of connected Terminal */ + __u8 bDelay; /* Delay introduced by the data path */ + __le16 wFormatTag; /* The Audio Data Format */ +} __attribute__ ((packed)); + +#define UAC_DT_AS_HEADER_SIZE 7 + +/* Formats - A.1.1 Audio Data Format Type I Codes */ +#define UAC_FORMAT_TYPE_I_UNDEFINED 0x0 +#define UAC_FORMAT_TYPE_I_PCM 0x1 +#define UAC_FORMAT_TYPE_I_PCM8 0x2 +#define UAC_FORMAT_TYPE_I_IEEE_FLOAT 0x3 +#define UAC_FORMAT_TYPE_I_ALAW 0x4 +#define UAC_FORMAT_TYPE_I_MULAW 0x5 + +struct uac_format_type_i_continuous_descriptor { + __u8 bLength; /* in bytes: 8 + (ns * 3) */ + __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ + __u8 bDescriptorSubtype; /* FORMAT_TYPE */ + __u8 bFormatType; /* FORMAT_TYPE_1 */ + __u8 bNrChannels; /* physical channels in the stream */ + __u8 bSubframeSize; /* */ + __u8 bBitResolution; + __u8 bSamFreqType; + __u8 tLowerSamFreq[3]; + __u8 tUpperSamFreq[3]; +} __attribute__ ((packed)); + +#define UAC_FORMAT_TYPE_I_CONTINUOUS_DESC_SIZE 14 + +struct uac_format_type_i_discrete_descriptor { + __u8 bLength; /* in bytes: 8 + (ns * 3) */ + __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ + __u8 bDescriptorSubtype; /* FORMAT_TYPE */ + __u8 bFormatType; /* FORMAT_TYPE_1 */ + __u8 bNrChannels; /* physical channels in the stream */ + __u8 bSubframeSize; /* */ + __u8 bBitResolution; + __u8 bSamFreqType; + __u8 tSamFreq[][3]; +} __attribute__ ((packed)); + +#define DECLARE_UAC_FORMAT_TYPE_I_DISCRETE_DESC(n) \ +struct uac_format_type_i_discrete_descriptor_##n { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubtype; \ + __u8 bFormatType; \ + __u8 bNrChannels; \ + __u8 bSubframeSize; \ + __u8 bBitResolution; \ + __u8 bSamFreqType; \ + __u8 tSamFreq[n][3]; \ +} __attribute__ ((packed)) +DECLARE_UAC_FORMAT_TYPE_I_DISCRETE_DESC(1); + +#define UAC_FORMAT_TYPE_I_DISCRETE_DESC_SIZE(n) (8 + (n * 3)) + +struct uac_format_type_i_ext_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bFormatType; + __u8 bSubslotSize; + __u8 bBitResolution; + __u8 bHeaderLength; + __u8 bControlSize; + __u8 bSideBandProtocol; +} __attribute__((packed)); + +/* Formats - Audio Data Format Type I Codes */ + +#define UAC_FORMAT_TYPE_II_MPEG 0x1001 +#define UAC_FORMAT_TYPE_II_AC3 0x1002 + +struct uac_format_type_ii_discrete_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bFormatType; + __le16 wMaxBitRate; + __le16 wSamplesPerFrame; + __u8 bSamFreqType; + __u8 tSamFreq[][3]; +} __attribute__((packed)); + +struct uac_format_type_ii_ext_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u8 bFormatType; + __u16 wMaxBitRate; + __u16 wSamplesPerFrame; + __u8 bHeaderLength; + __u8 bSideBandProtocol; +} __attribute__((packed)); + +/* type III */ +#define UAC_FORMAT_TYPE_III_IEC1937_AC3 0x2001 +#define UAC_FORMAT_TYPE_III_IEC1937_MPEG1_LAYER1 0x2002 +#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_NOEXT 0x2003 +#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_EXT 0x2004 +#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_LAYER1_LS 0x2005 +#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_LAYER23_LS 0x2006 + +/* Formats - A.2 Format Type Codes */ +#define UAC_FORMAT_TYPE_UNDEFINED 0x0 +#define UAC_FORMAT_TYPE_I 0x1 +#define UAC_FORMAT_TYPE_II 0x2 +#define UAC_FORMAT_TYPE_III 0x3 +#define UAC_EXT_FORMAT_TYPE_I 0x81 +#define UAC_EXT_FORMAT_TYPE_II 0x82 +#define UAC_EXT_FORMAT_TYPE_III 0x83 + +struct uac_iso_endpoint_descriptor { + __u8 bLength; /* in bytes: 7 */ + __u8 bDescriptorType; /* USB_DT_CS_ENDPOINT */ + __u8 bDescriptorSubtype; /* EP_GENERAL */ + __u8 bmAttributes; + __u8 bLockDelayUnits; + __le16 wLockDelay; +} __attribute__((packed)); +#define UAC_ISO_ENDPOINT_DESC_SIZE 7 + +#define UAC_EP_CS_ATTR_SAMPLE_RATE 0x01 +#define UAC_EP_CS_ATTR_PITCH_CONTROL 0x02 +#define UAC_EP_CS_ATTR_FILL_MAX 0x80 + +/* status word format (3.7.1.1) */ + +#define UAC1_STATUS_TYPE_ORIG_MASK 0x0f +#define UAC1_STATUS_TYPE_ORIG_AUDIO_CONTROL_IF 0x0 +#define UAC1_STATUS_TYPE_ORIG_AUDIO_STREAM_IF 0x1 +#define UAC1_STATUS_TYPE_ORIG_AUDIO_STREAM_EP 0x2 + +#define UAC1_STATUS_TYPE_IRQ_PENDING (1 << 7) +#define UAC1_STATUS_TYPE_MEM_CHANGED (1 << 6) + +struct uac1_status_word { + __u8 bStatusType; + __u8 bOriginator; +} __attribute__((packed)); + + +#endif /* __LINUX_USB_AUDIO_H */ diff --git a/kernel_headers/linux/usb/ccid_bridge.h b/kernel_headers/linux/usb/ccid_bridge.h new file mode 100644 index 0000000..1d1b895 --- /dev/null +++ b/kernel_headers/linux/usb/ccid_bridge.h @@ -0,0 +1,64 @@ +#ifndef __UAPI_USB_CCID_BRIDGE_H +#define __UAPI_USB_CCID_BRIDGE_H + +#include + +/** + * struct usb_ccid_data - Used to receive the CCID class descriptor, + * clock rates and data rates supported by the device. + * @length: The length of the buffer. + * @data: The buffer as it is returned by the device for GET_DESCRIPTOR, + * GET_CLOCK_FREQUENCIES and GET_DATA_RATES requests. + */ +struct usb_ccid_data { + uint8_t length; + void *data; +}; + +/** + * struct usb_ccid_abort - Used to abort an already sent command. + * @seq: The sequence number of the command. + * @slot: The slot of the IC, on which the command is sent. + */ +struct usb_ccid_abort { + uint8_t seq; + uint8_t slot; +}; + +#define USB_CCID_NOTIFY_SLOT_CHANGE_EVENT 1 +#define USB_CCID_HARDWARE_ERROR_EVENT 2 +#define USB_CCID_RESUME_EVENT 3 +/** + * struct usb_ccid_event - Used to receive notify slot change or hardware + * error event. + * @notify: If the event is USB_CCID_NOTIFY_SLOT_CHANGE_EVENT, slot_icc_state + * has the information about the current slots state. + * @error: If the event is USB_CCID_HARDWARE_ERROR_EVENT, error has + * information about the hardware error condition. + */ +struct usb_ccid_event { + uint8_t event; + union { + struct { + uint8_t slot_icc_state; + } notify; + + struct { + uint8_t slot; + uint8_t seq; + uint8_t error_code; + } error; + } u; +}; + +#define USB_CCID_GET_CLASS_DESC _IOWR('C', 0, struct usb_ccid_data) + +#define USB_CCID_GET_CLOCK_FREQUENCIES _IOWR('C', 1, struct usb_ccid_data) + +#define USB_CCID_GET_DATA_RATES _IOWR('C', 2, struct usb_ccid_data) + +#define USB_CCID_ABORT _IOW('C', 3, struct usb_ccid_abort) + +#define USB_CCID_GET_EVENT _IOR('C', 4, struct usb_ccid_event) + +#endif /* __UAPI_USB_CCID_BRIDGE_H */ diff --git a/kernel_headers/linux/usb/cdc-wdm.h b/kernel_headers/linux/usb/cdc-wdm.h new file mode 100644 index 0000000..a794493 --- /dev/null +++ b/kernel_headers/linux/usb/cdc-wdm.h @@ -0,0 +1,23 @@ +/* + * USB CDC Device Management userspace API definitions + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + */ + +#ifndef __LINUX_USB_CDC_WDM_H +#define __LINUX_USB_CDC_WDM_H + +#include + +/* + * This IOCTL is used to retrieve the wMaxCommand for the device, + * defining the message limit for both reading and writing. + * + * For CDC WDM functions this will be the wMaxCommand field of the + * Device Management Functional Descriptor. + */ +#define IOCTL_WDM_MAX_COMMAND _IOR('H', 0xA0, __u16) + +#endif /* __LINUX_USB_CDC_WDM_H */ diff --git a/kernel_headers/linux/usb/cdc.h b/kernel_headers/linux/usb/cdc.h new file mode 100644 index 0000000..f08abf5 --- /dev/null +++ b/kernel_headers/linux/usb/cdc.h @@ -0,0 +1,448 @@ +/* + * USB Communications Device Class (CDC) definitions + * + * CDC says how to talk to lots of different types of network adapters, + * notably ethernet adapters and various modems. It's used mostly with + * firmware based USB peripherals. + */ + +#ifndef __LINUX_USB_CDC_H +#define __LINUX_USB_CDC_H + +#include + +#define USB_CDC_SUBCLASS_ACM 0x02 +#define USB_CDC_SUBCLASS_ETHERNET 0x06 +#define USB_CDC_SUBCLASS_WHCM 0x08 +#define USB_CDC_SUBCLASS_DMM 0x09 +#define USB_CDC_SUBCLASS_MDLM 0x0a +#define USB_CDC_SUBCLASS_OBEX 0x0b +#define USB_CDC_SUBCLASS_EEM 0x0c +#define USB_CDC_SUBCLASS_NCM 0x0d +#define USB_CDC_SUBCLASS_MBIM 0x0e + +#define USB_CDC_PROTO_NONE 0 + +#define USB_CDC_ACM_PROTO_AT_V25TER 1 +#define USB_CDC_ACM_PROTO_AT_PCCA101 2 +#define USB_CDC_ACM_PROTO_AT_PCCA101_WAKE 3 +#define USB_CDC_ACM_PROTO_AT_GSM 4 +#define USB_CDC_ACM_PROTO_AT_3G 5 +#define USB_CDC_ACM_PROTO_AT_CDMA 6 +#define USB_CDC_ACM_PROTO_VENDOR 0xff + +#define USB_CDC_PROTO_EEM 7 + +#define USB_CDC_NCM_PROTO_NTB 1 +#define USB_CDC_MBIM_PROTO_NTB 2 + +/*-------------------------------------------------------------------------*/ + +/* + * Class-Specific descriptors ... there are a couple dozen of them + */ + +#define USB_CDC_HEADER_TYPE 0x00 /* header_desc */ +#define USB_CDC_CALL_MANAGEMENT_TYPE 0x01 /* call_mgmt_descriptor */ +#define USB_CDC_ACM_TYPE 0x02 /* acm_descriptor */ +#define USB_CDC_UNION_TYPE 0x06 /* union_desc */ +#define USB_CDC_COUNTRY_TYPE 0x07 +#define USB_CDC_NETWORK_TERMINAL_TYPE 0x0a /* network_terminal_desc */ +#define USB_CDC_ETHERNET_TYPE 0x0f /* ether_desc */ +#define USB_CDC_WHCM_TYPE 0x11 +#define USB_CDC_MDLM_TYPE 0x12 /* mdlm_desc */ +#define USB_CDC_MDLM_DETAIL_TYPE 0x13 /* mdlm_detail_desc */ +#define USB_CDC_DMM_TYPE 0x14 +#define USB_CDC_OBEX_TYPE 0x15 +#define USB_CDC_NCM_TYPE 0x1a +#define USB_CDC_MBIM_TYPE 0x1b +#define USB_CDC_EXT_MBB_TYPE 0x1c + +/* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ +struct usb_cdc_header_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __le16 bcdCDC; +} __attribute__ ((packed)); + +/* "Call Management Descriptor" from CDC spec 5.2.3.2 */ +struct usb_cdc_call_mgmt_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __u8 bmCapabilities; +#define USB_CDC_CALL_MGMT_CAP_CALL_MGMT 0x01 +#define USB_CDC_CALL_MGMT_CAP_DATA_INTF 0x02 + + __u8 bDataInterface; +} __attribute__ ((packed)); + +/* "Abstract Control Management Descriptor" from CDC spec 5.2.3.3 */ +struct usb_cdc_acm_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __u8 bmCapabilities; +} __attribute__ ((packed)); + +/* capabilities from 5.2.3.3 */ + +#define USB_CDC_COMM_FEATURE 0x01 +#define USB_CDC_CAP_LINE 0x02 +#define USB_CDC_CAP_BRK 0x04 +#define USB_CDC_CAP_NOTIFY 0x08 + +/* "Union Functional Descriptor" from CDC spec 5.2.3.8 */ +struct usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __u8 bMasterInterface0; + __u8 bSlaveInterface0; + /* ... and there could be other slave interfaces */ +} __attribute__ ((packed)); + +/* "Country Selection Functional Descriptor" from CDC spec 5.2.3.9 */ +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; + /* ... and there can be a lot of country codes */ +} __attribute__ ((packed)); + +/* "Network Channel Terminal Functional Descriptor" from CDC spec 5.2.3.11 */ +struct usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; +} __attribute__ ((packed)); + +/* "Ethernet Networking Functional Descriptor" from CDC spec 5.2.3.16 */ +struct usb_cdc_ether_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __u8 iMACAddress; + __le32 bmEthernetStatistics; + __le16 wMaxSegmentSize; + __le16 wNumberMCFilters; + __u8 bNumberPowerFilters; +} __attribute__ ((packed)); + +/* "Telephone Control Model Functional Descriptor" from CDC WMC spec 6.3..3 */ +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__ ((packed)); + +/* "MDLM Functional Descriptor" from CDC WMC spec 6.7.2.3 */ +struct usb_cdc_mdlm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __le16 bcdVersion; + __u8 bGUID[16]; +} __attribute__ ((packed)); + +/* "MDLM Detail Functional Descriptor" from CDC WMC spec 6.7.2.4 */ +struct usb_cdc_mdlm_detail_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + /* type is associated with mdlm_desc.bGUID */ + __u8 bGuidDescriptorType; + __u8 bDetailData[0]; +} __attribute__ ((packed)); + +/* "OBEX Control Model Functional Descriptor" */ +struct usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __le16 bcdVersion; +} __attribute__ ((packed)); + +/* "NCM Control Model Functional Descriptor" */ +struct usb_cdc_ncm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __le16 bcdNcmVersion; + __u8 bmNetworkCapabilities; +} __attribute__ ((packed)); + +/* "MBIM Control Model Functional Descriptor" */ +struct usb_cdc_mbim_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __le16 bcdMBIMVersion; + __le16 wMaxControlMessage; + __u8 bNumberFilters; + __u8 bMaxFilterSize; + __le16 wMaxSegmentSize; + __u8 bmNetworkCapabilities; +} __attribute__ ((packed)); + +/* "Extended MBIM Functional Descriptor" */ +struct usb_cdc_ext_mbb_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + + __le16 bcdMbbExtendedVersion; + __u8 bMaxOutstandingCmdMsges; + __le16 wMTU; +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* + * Class-Specific Control Requests (6.2) + * + * section 3.6.2.1 table 4 has the ACM profile, for modems. + * section 3.8.2 table 10 has the ethernet profile. + * + * Microsoft's RNDIS stack for Ethernet is a vendor-specific CDC ACM variant, + * heavily dependent on the encapsulated (proprietary) command mechanism. + */ + +#define USB_CDC_SEND_ENCAPSULATED_COMMAND 0x00 +#define USB_CDC_GET_ENCAPSULATED_RESPONSE 0x01 +#define USB_CDC_RESET_FUNCTION 0x05 +#define USB_CDC_REQ_SET_LINE_CODING 0x20 +#define USB_CDC_REQ_GET_LINE_CODING 0x21 +#define USB_CDC_REQ_SET_CONTROL_LINE_STATE 0x22 +#define USB_CDC_REQ_SEND_BREAK 0x23 +#define USB_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40 +#define USB_CDC_SET_ETHERNET_PM_PATTERN_FILTER 0x41 +#define USB_CDC_GET_ETHERNET_PM_PATTERN_FILTER 0x42 +#define USB_CDC_SET_ETHERNET_PACKET_FILTER 0x43 +#define USB_CDC_GET_ETHERNET_STATISTIC 0x44 +#define USB_CDC_GET_NTB_PARAMETERS 0x80 +#define USB_CDC_GET_NET_ADDRESS 0x81 +#define USB_CDC_SET_NET_ADDRESS 0x82 +#define USB_CDC_GET_NTB_FORMAT 0x83 +#define USB_CDC_SET_NTB_FORMAT 0x84 +#define USB_CDC_GET_NTB_INPUT_SIZE 0x85 +#define USB_CDC_SET_NTB_INPUT_SIZE 0x86 +#define USB_CDC_GET_MAX_DATAGRAM_SIZE 0x87 +#define USB_CDC_SET_MAX_DATAGRAM_SIZE 0x88 +#define USB_CDC_GET_CRC_MODE 0x89 +#define USB_CDC_SET_CRC_MODE 0x8a + +/* Line Coding Structure from CDC spec 6.2.13 */ +struct usb_cdc_line_coding { + __le32 dwDTERate; + __u8 bCharFormat; +#define USB_CDC_1_STOP_BITS 0 +#define USB_CDC_1_5_STOP_BITS 1 +#define USB_CDC_2_STOP_BITS 2 + + __u8 bParityType; +#define USB_CDC_NO_PARITY 0 +#define USB_CDC_ODD_PARITY 1 +#define USB_CDC_EVEN_PARITY 2 +#define USB_CDC_MARK_PARITY 3 +#define USB_CDC_SPACE_PARITY 4 + + __u8 bDataBits; +} __attribute__ ((packed)); + +/* table 62; bits in multicast filter */ +#define USB_CDC_PACKET_TYPE_PROMISCUOUS (1 << 0) +#define USB_CDC_PACKET_TYPE_ALL_MULTICAST (1 << 1) /* no filter */ +#define USB_CDC_PACKET_TYPE_DIRECTED (1 << 2) +#define USB_CDC_PACKET_TYPE_BROADCAST (1 << 3) +#define USB_CDC_PACKET_TYPE_MULTICAST (1 << 4) /* filtered */ + + +/*-------------------------------------------------------------------------*/ + +/* + * Class-Specific Notifications (6.3) sent by interrupt transfers + * + * section 3.8.2 table 11 of the CDC spec lists Ethernet notifications + * section 3.6.2.1 table 5 specifies ACM notifications, accepted by RNDIS + * RNDIS also defines its own bit-incompatible notifications + */ + +#define USB_CDC_NOTIFY_NETWORK_CONNECTION 0x00 +#define USB_CDC_NOTIFY_RESPONSE_AVAILABLE 0x01 +#define USB_CDC_NOTIFY_SERIAL_STATE 0x20 +#define USB_CDC_NOTIFY_SPEED_CHANGE 0x2a + +struct usb_cdc_notification { + __u8 bmRequestType; + __u8 bNotificationType; + __le16 wValue; + __le16 wIndex; + __le16 wLength; +} __attribute__ ((packed)); + +struct usb_cdc_speed_change { + __le32 DLBitRRate; /* contains the downlink bit rate (IN pipe) */ + __le32 ULBitRate; /* contains the uplink bit rate (OUT pipe) */ +} __attribute__ ((packed)); + +/*-------------------------------------------------------------------------*/ + +/* + * Class Specific structures and constants + * + * CDC NCM NTB parameters structure, CDC NCM subclass 6.2.1 + * + */ + +struct usb_cdc_ncm_ntb_parameters { + __le16 wLength; + __le16 bmNtbFormatsSupported; + __le32 dwNtbInMaxSize; + __le16 wNdpInDivisor; + __le16 wNdpInPayloadRemainder; + __le16 wNdpInAlignment; + __le16 wPadding1; + __le32 dwNtbOutMaxSize; + __le16 wNdpOutDivisor; + __le16 wNdpOutPayloadRemainder; + __le16 wNdpOutAlignment; + __le16 wNtbOutMaxDatagrams; +} __attribute__ ((packed)); + +/* + * CDC NCM transfer headers, CDC NCM subclass 3.2 + */ + +#define USB_CDC_NCM_NTH16_SIGN 0x484D434E /* NCMH */ +#define USB_CDC_NCM_NTH32_SIGN 0x686D636E /* ncmh */ + +struct usb_cdc_ncm_nth16 { + __le32 dwSignature; + __le16 wHeaderLength; + __le16 wSequence; + __le16 wBlockLength; + __le16 wNdpIndex; +} __attribute__ ((packed)); + +struct usb_cdc_ncm_nth32 { + __le32 dwSignature; + __le16 wHeaderLength; + __le16 wSequence; + __le32 dwBlockLength; + __le32 dwNdpIndex; +} __attribute__ ((packed)); + +/* + * CDC NCM datagram pointers, CDC NCM subclass 3.3 + */ + +#define USB_CDC_NCM_NDP16_CRC_SIGN 0x314D434E /* NCM1 */ +#define USB_CDC_NCM_NDP16_NOCRC_SIGN 0x304D434E /* NCM0 */ +#define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ +#define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ + +#define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049 /* IPS : IPS0 for now */ +#define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069 /* ips : ips0 for now */ +#define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344 /* DSS */ +#define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364 /* dss */ + +/* 16-bit NCM Datagram Pointer Entry */ +struct usb_cdc_ncm_dpe16 { + __le16 wDatagramIndex; + __le16 wDatagramLength; +} __attribute__((__packed__)); + +/* 16-bit NCM Datagram Pointer Table */ +struct usb_cdc_ncm_ndp16 { + __le32 dwSignature; + __le16 wLength; + __le16 wNextNdpIndex; + struct usb_cdc_ncm_dpe16 dpe16[0]; +} __attribute__ ((packed)); + +/* 32-bit NCM Datagram Pointer Entry */ +struct usb_cdc_ncm_dpe32 { + __le32 dwDatagramIndex; + __le32 dwDatagramLength; +} __attribute__((__packed__)); + +/* 32-bit NCM Datagram Pointer Table */ +struct usb_cdc_ncm_ndp32 { + __le32 dwSignature; + __le16 wLength; + __le16 wReserved6; + __le32 dwNextNdpIndex; + __le32 dwReserved12; + struct usb_cdc_ncm_dpe32 dpe32[0]; +} __attribute__ ((packed)); + +/* CDC NCM subclass 3.2.1 and 3.2.2 */ +#define USB_CDC_NCM_NDP16_INDEX_MIN 0x000C +#define USB_CDC_NCM_NDP32_INDEX_MIN 0x0010 + +/* CDC NCM subclass 3.3.3 Datagram Formatting */ +#define USB_CDC_NCM_DATAGRAM_FORMAT_CRC 0x30 +#define USB_CDC_NCM_DATAGRAM_FORMAT_NOCRC 0X31 + +/* CDC NCM subclass 4.2 NCM Communications Interface Protocol Code */ +#define USB_CDC_NCM_PROTO_CODE_NO_ENCAP_COMMANDS 0x00 +#define USB_CDC_NCM_PROTO_CODE_EXTERN_PROTO 0xFE + +/* CDC NCM subclass 5.2.1 NCM Functional Descriptor, bmNetworkCapabilities */ +#define USB_CDC_NCM_NCAP_ETH_FILTER (1 << 0) +#define USB_CDC_NCM_NCAP_NET_ADDRESS (1 << 1) +#define USB_CDC_NCM_NCAP_ENCAP_COMMAND (1 << 2) +#define USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE (1 << 3) +#define USB_CDC_NCM_NCAP_CRC_MODE (1 << 4) +#define USB_CDC_NCM_NCAP_NTB_INPUT_SIZE (1 << 5) + +/* CDC NCM subclass Table 6-3: NTB Parameter Structure */ +#define USB_CDC_NCM_NTB16_SUPPORTED (1 << 0) +#define USB_CDC_NCM_NTB32_SUPPORTED (1 << 1) + +/* CDC NCM subclass Table 6-3: NTB Parameter Structure */ +#define USB_CDC_NCM_NDP_ALIGN_MIN_SIZE 0x04 +#define USB_CDC_NCM_NTB_MAX_LENGTH 0x1C + +/* CDC NCM subclass 6.2.5 SetNtbFormat */ +#define USB_CDC_NCM_NTB16_FORMAT 0x00 +#define USB_CDC_NCM_NTB32_FORMAT 0x01 + +/* CDC NCM subclass 6.2.7 SetNtbInputSize */ +#define USB_CDC_NCM_NTB_MIN_IN_SIZE 2048 +#define USB_CDC_NCM_NTB_MIN_OUT_SIZE 2048 + +/* NTB Input Size Structure */ +struct usb_cdc_ncm_ndp_input_size { + __le32 dwNtbInMaxSize; + __le16 wNtbInMaxDatagrams; + __le16 wReserved; +} __attribute__ ((packed)); + +/* CDC NCM subclass 6.2.11 SetCrcMode */ +#define USB_CDC_NCM_CRC_NOT_APPENDED 0x00 +#define USB_CDC_NCM_CRC_APPENDED 0x01 + +#endif /* __LINUX_USB_CDC_H */ diff --git a/kernel_headers/linux/usb/ch11.h b/kernel_headers/linux/usb/ch11.h new file mode 100644 index 0000000..7692dc6 --- /dev/null +++ b/kernel_headers/linux/usb/ch11.h @@ -0,0 +1,266 @@ +/* + * This file holds Hub protocol constants and data structures that are + * defined in chapter 11 (Hub Specification) of the USB 2.0 specification. + * + * It is used/shared between the USB core, the HCDs and couple of other USB + * drivers. + */ + +#ifndef __LINUX_CH11_H +#define __LINUX_CH11_H + +#include /* __u8 etc */ + +/* + * Hub request types + */ + +#define USB_RT_HUB (USB_TYPE_CLASS | USB_RECIP_DEVICE) +#define USB_RT_PORT (USB_TYPE_CLASS | USB_RECIP_OTHER) + +/* + * Hub class requests + * See USB 2.0 spec Table 11-16 + */ +#define HUB_CLEAR_TT_BUFFER 8 +#define HUB_RESET_TT 9 +#define HUB_GET_TT_STATE 10 +#define HUB_STOP_TT 11 + +/* + * Hub class additional requests defined by USB 3.0 spec + * See USB 3.0 spec Table 10-6 + */ +#define HUB_SET_DEPTH 12 +#define HUB_GET_PORT_ERR_COUNT 13 + +/* + * Hub Class feature numbers + * See USB 2.0 spec Table 11-17 + */ +#define C_HUB_LOCAL_POWER 0 +#define C_HUB_OVER_CURRENT 1 + +/* + * Port feature numbers + * See USB 2.0 spec Table 11-17 + */ +#define USB_PORT_FEAT_CONNECTION 0 +#define USB_PORT_FEAT_ENABLE 1 +#define USB_PORT_FEAT_SUSPEND 2 /* L2 suspend */ +#define USB_PORT_FEAT_OVER_CURRENT 3 +#define USB_PORT_FEAT_RESET 4 +#define USB_PORT_FEAT_L1 5 /* L1 suspend */ +#define USB_PORT_FEAT_POWER 8 +#define USB_PORT_FEAT_LOWSPEED 9 /* Should never be used */ +#define USB_PORT_FEAT_C_CONNECTION 16 +#define USB_PORT_FEAT_C_ENABLE 17 +#define USB_PORT_FEAT_C_SUSPEND 18 +#define USB_PORT_FEAT_C_OVER_CURRENT 19 +#define USB_PORT_FEAT_C_RESET 20 +#define USB_PORT_FEAT_TEST 21 +#define USB_PORT_FEAT_INDICATOR 22 +#define USB_PORT_FEAT_C_PORT_L1 23 + +/* + * Port feature selectors added by USB 3.0 spec. + * See USB 3.0 spec Table 10-7 + */ +#define USB_PORT_FEAT_LINK_STATE 5 +#define USB_PORT_FEAT_U1_TIMEOUT 23 +#define USB_PORT_FEAT_U2_TIMEOUT 24 +#define USB_PORT_FEAT_C_PORT_LINK_STATE 25 +#define USB_PORT_FEAT_C_PORT_CONFIG_ERROR 26 +#define USB_PORT_FEAT_REMOTE_WAKE_MASK 27 +#define USB_PORT_FEAT_BH_PORT_RESET 28 +#define USB_PORT_FEAT_C_BH_PORT_RESET 29 +#define USB_PORT_FEAT_FORCE_LINKPM_ACCEPT 30 + +#define USB_PORT_LPM_TIMEOUT(p) (((p) & 0xff) << 8) + +/* USB 3.0 hub remote wake mask bits, see table 10-14 */ +#define USB_PORT_FEAT_REMOTE_WAKE_CONNECT (1 << 8) +#define USB_PORT_FEAT_REMOTE_WAKE_DISCONNECT (1 << 9) +#define USB_PORT_FEAT_REMOTE_WAKE_OVER_CURRENT (1 << 10) + +/* + * Hub Status and Hub Change results + * See USB 2.0 spec Table 11-19 and Table 11-20 + */ +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; +} __attribute__ ((packed)); + +/* + * wPortStatus bit field + * See USB 2.0 spec Table 11-21 + */ +#define USB_PORT_STAT_CONNECTION 0x0001 +#define USB_PORT_STAT_ENABLE 0x0002 +#define USB_PORT_STAT_SUSPEND 0x0004 +#define USB_PORT_STAT_OVERCURRENT 0x0008 +#define USB_PORT_STAT_RESET 0x0010 +#define USB_PORT_STAT_L1 0x0020 +/* bits 6 to 7 are reserved */ +#define USB_PORT_STAT_POWER 0x0100 +#define USB_PORT_STAT_LOW_SPEED 0x0200 +#define USB_PORT_STAT_HIGH_SPEED 0x0400 +#define USB_PORT_STAT_TEST 0x0800 +#define USB_PORT_STAT_INDICATOR 0x1000 +/* bits 13 to 15 are reserved */ + +/* + * Additions to wPortStatus bit field from USB 3.0 + * See USB 3.0 spec Table 10-10 + */ +#define USB_PORT_STAT_LINK_STATE 0x01e0 +#define USB_SS_PORT_STAT_POWER 0x0200 +#define USB_SS_PORT_STAT_SPEED 0x1c00 +#define USB_PORT_STAT_SPEED_5GBPS 0x0000 +/* Valid only if port is enabled */ +/* Bits that are the same from USB 2.0 */ +#define USB_SS_PORT_STAT_MASK (USB_PORT_STAT_CONNECTION | \ + USB_PORT_STAT_ENABLE | \ + USB_PORT_STAT_OVERCURRENT | \ + USB_PORT_STAT_RESET) + +/* + * Definitions for PORT_LINK_STATE values + * (bits 5-8) in wPortStatus + */ +#define USB_SS_PORT_LS_U0 0x0000 +#define USB_SS_PORT_LS_U1 0x0020 +#define USB_SS_PORT_LS_U2 0x0040 +#define USB_SS_PORT_LS_U3 0x0060 +#define USB_SS_PORT_LS_SS_DISABLED 0x0080 +#define USB_SS_PORT_LS_RX_DETECT 0x00a0 +#define USB_SS_PORT_LS_SS_INACTIVE 0x00c0 +#define USB_SS_PORT_LS_POLLING 0x00e0 +#define USB_SS_PORT_LS_RECOVERY 0x0100 +#define USB_SS_PORT_LS_HOT_RESET 0x0120 +#define USB_SS_PORT_LS_COMP_MOD 0x0140 +#define USB_SS_PORT_LS_LOOPBACK 0x0160 + +/* + * wPortChange bit field + * See USB 2.0 spec Table 11-22 and USB 2.0 LPM ECN Table-4.10 + * Bits 0 to 5 shown, bits 6 to 15 are reserved + */ +#define USB_PORT_STAT_C_CONNECTION 0x0001 +#define USB_PORT_STAT_C_ENABLE 0x0002 +#define USB_PORT_STAT_C_SUSPEND 0x0004 +#define USB_PORT_STAT_C_OVERCURRENT 0x0008 +#define USB_PORT_STAT_C_RESET 0x0010 +#define USB_PORT_STAT_C_L1 0x0020 +/* + * USB 3.0 wPortChange bit fields + * See USB 3.0 spec Table 10-11 + */ +#define USB_PORT_STAT_C_BH_RESET 0x0020 +#define USB_PORT_STAT_C_LINK_STATE 0x0040 +#define USB_PORT_STAT_C_CONFIG_ERROR 0x0080 + +/* + * wHubCharacteristics (masks) + * See USB 2.0 spec Table 11-13, offset 3 + */ +#define HUB_CHAR_LPSM 0x0003 /* Logical Power Switching Mode mask */ +#define HUB_CHAR_COMMON_LPSM 0x0000 /* All ports power control at once */ +#define HUB_CHAR_INDV_PORT_LPSM 0x0001 /* per-port power control */ +#define HUB_CHAR_NO_LPSM 0x0002 /* no power switching */ + +#define HUB_CHAR_COMPOUND 0x0004 /* hub is part of a compound device */ + +#define HUB_CHAR_OCPM 0x0018 /* Over-Current Protection Mode mask */ +#define HUB_CHAR_COMMON_OCPM 0x0000 /* All ports Over-Current reporting */ +#define HUB_CHAR_INDV_PORT_OCPM 0x0008 /* per-port Over-current reporting */ +#define HUB_CHAR_NO_OCPM 0x0010 /* No Over-current Protection support */ + +#define HUB_CHAR_TTTT 0x0060 /* TT Think Time mask */ +#define HUB_CHAR_PORTIND 0x0080 /* per-port indicators (LEDs) */ + +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; +} __attribute__ ((packed)); + +/* + * Hub Status & Hub Change bit masks + * See USB 2.0 spec Table 11-19 and Table 11-20 + * Bits 0 and 1 for wHubStatus and wHubChange + * Bits 2 to 15 are reserved for both + */ +#define HUB_STATUS_LOCAL_POWER 0x0001 +#define HUB_STATUS_OVERCURRENT 0x0002 +#define HUB_CHANGE_LOCAL_POWER 0x0001 +#define HUB_CHANGE_OVERCURRENT 0x0002 + + +/* + * Hub descriptor + * See USB 2.0 spec Table 11-13 + */ + +#define USB_DT_HUB (USB_TYPE_CLASS | 0x09) +#define USB_DT_SS_HUB (USB_TYPE_CLASS | 0x0a) +#define USB_DT_HUB_NONVAR_SIZE 7 +#define USB_DT_SS_HUB_SIZE 12 + +/* + * Hub Device descriptor + * USB Hub class device protocols + */ + +#define USB_HUB_PR_FS 0 /* Full speed hub */ +#define USB_HUB_PR_HS_NO_TT 0 /* Hi-speed hub without TT */ +#define USB_HUB_PR_HS_SINGLE_TT 1 /* Hi-speed hub with single TT */ +#define USB_HUB_PR_HS_MULTI_TT 2 /* Hi-speed hub with multiple TT */ +#define USB_HUB_PR_SS 3 /* Super speed hub */ + +struct usb_hub_descriptor { + __u8 bDescLength; + __u8 bDescriptorType; + __u8 bNbrPorts; + __le16 wHubCharacteristics; + __u8 bPwrOn2PwrGood; + __u8 bHubContrCurrent; + + /* 2.0 and 3.0 hubs differ here */ + union { + struct { + /* add 1 bit for hub status change; round to bytes */ + __u8 DeviceRemovable[(USB_MAXCHILDREN + 1 + 7) / 8]; + __u8 PortPwrCtrlMask[(USB_MAXCHILDREN + 1 + 7) / 8]; + } __attribute__ ((packed)) hs; + + struct { + __u8 bHubHdrDecLat; + __le16 wHubDelay; + __le16 DeviceRemovable; + } __attribute__ ((packed)) ss; + } u; +} __attribute__ ((packed)); + +/* port indicator status selectors, tables 11-7 and 11-25 */ +#define HUB_LED_AUTO 0 +#define HUB_LED_AMBER 1 +#define HUB_LED_GREEN 2 +#define HUB_LED_OFF 3 + +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE, + /* software blinks for attention: software, hardware, reserved */ + INDICATOR_GREEN_BLINK, INDICATOR_GREEN_BLINK_OFF, + INDICATOR_AMBER_BLINK, INDICATOR_AMBER_BLINK_OFF, + INDICATOR_ALT_BLINK, INDICATOR_ALT_BLINK_OFF +} __attribute__ ((packed)); + +/* Transaction Translator Think Times, in bits */ +#define HUB_TTTT_8_BITS 0x00 +#define HUB_TTTT_16_BITS 0x20 +#define HUB_TTTT_24_BITS 0x40 +#define HUB_TTTT_32_BITS 0x60 + +#endif /* __LINUX_CH11_H */ diff --git a/kernel_headers/linux/usb/ch9.h b/kernel_headers/linux/usb/ch9.h new file mode 100644 index 0000000..fef680d --- /dev/null +++ b/kernel_headers/linux/usb/ch9.h @@ -0,0 +1,1014 @@ +/* + * This file holds USB constants and structures that are needed for + * USB device APIs. These are used by the USB device model, which is + * defined in chapter 9 of the USB 2.0 specification and in the + * Wireless USB 1.0 (spread around). Linux has several APIs in C that + * need these: + * + * - the master/host side Linux-USB kernel driver API; + * - the "usbfs" user space API; and + * - the Linux "gadget" slave/device/peripheral side driver API. + * + * USB 2.0 adds an additional "On The Go" (OTG) mode, which lets systems + * act either as a USB master/host or as a USB slave/device. That means + * the master and slave side APIs benefit from working well together. + * + * There's also "Wireless USB", using low power short range radios for + * peripheral interconnection but otherwise building on the USB framework. + * + * Note all descriptors are declared '__attribute__((packed))' so that: + * + * [a] they never get padded, either internally (USB spec writers + * probably handled that) or externally; + * + * [b] so that accessing bigger-than-a-bytes fields will never + * generate bus errors on any platform, even when the location of + * its descriptor inside a bundle isn't "naturally aligned", and + * + * [c] for consistency, removing all doubt even when it appears to + * someone that the two other points are non-issues for that + * particular descriptor type. + */ + +#ifndef __LINUX_USB_CH9_H +#define __LINUX_USB_CH9_H + +#include /* __u8 etc */ +#include /* le16_to_cpu */ + +/*-------------------------------------------------------------------------*/ + +/* CONTROL REQUEST SUPPORT */ + +/* + * USB directions + * + * This bit flag is used in endpoint descriptors' bEndpointAddress field. + * It's also one of three fields in control requests bRequestType. + */ +#define USB_DIR_OUT 0 /* to device */ +#define USB_DIR_IN 0x80 /* to host */ + +/* + * USB types, the second of three bRequestType fields + */ +#define USB_TYPE_MASK (0x03 << 5) +#define USB_TYPE_STANDARD (0x00 << 5) +#define USB_TYPE_CLASS (0x01 << 5) +#define USB_TYPE_VENDOR (0x02 << 5) +#define USB_TYPE_RESERVED (0x03 << 5) + +/* + * USB recipients, the third of three bRequestType fields + */ +#define USB_RECIP_MASK 0x1f +#define USB_RECIP_DEVICE 0x00 +#define USB_RECIP_INTERFACE 0x01 +#define USB_RECIP_ENDPOINT 0x02 +#define USB_RECIP_OTHER 0x03 +/* From Wireless USB 1.0 */ +#define USB_RECIP_PORT 0x04 +#define USB_RECIP_RPIPE 0x05 + +/* + * Standard requests, for the bRequest field of a SETUP packet. + * + * These are qualified by the bRequestType field, so that for example + * TYPE_CLASS or TYPE_VENDOR specific feature flags could be retrieved + * by a GET_STATUS request. + */ +#define USB_REQ_GET_STATUS 0x00 +#define USB_REQ_CLEAR_FEATURE 0x01 +#define USB_REQ_SET_FEATURE 0x03 +#define USB_REQ_SET_ADDRESS 0x05 +#define USB_REQ_GET_DESCRIPTOR 0x06 +#define USB_REQ_SET_DESCRIPTOR 0x07 +#define USB_REQ_GET_CONFIGURATION 0x08 +#define USB_REQ_SET_CONFIGURATION 0x09 +#define USB_REQ_GET_INTERFACE 0x0A +#define USB_REQ_SET_INTERFACE 0x0B +#define USB_REQ_SYNCH_FRAME 0x0C +#define USB_REQ_SET_SEL 0x30 +#define USB_REQ_SET_ISOCH_DELAY 0x31 + +#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */ +#define USB_REQ_GET_ENCRYPTION 0x0E +#define USB_REQ_RPIPE_ABORT 0x0E +#define USB_REQ_SET_HANDSHAKE 0x0F +#define USB_REQ_RPIPE_RESET 0x0F +#define USB_REQ_GET_HANDSHAKE 0x10 +#define USB_REQ_SET_CONNECTION 0x11 +#define USB_REQ_SET_SECURITY_DATA 0x12 +#define USB_REQ_GET_SECURITY_DATA 0x13 +#define USB_REQ_SET_WUSB_DATA 0x14 +#define USB_REQ_LOOPBACK_DATA_WRITE 0x15 +#define USB_REQ_LOOPBACK_DATA_READ 0x16 +#define USB_REQ_SET_INTERFACE_DS 0x17 + +/* The Link Power Management (LPM) ECN defines USB_REQ_TEST_AND_SET command, + * used by hubs to put ports into a new L1 suspend state, except that it + * forgot to define its number ... + */ + +/* + * USB feature flags are written using USB_REQ_{CLEAR,SET}_FEATURE, and + * are read as a bit array returned by USB_REQ_GET_STATUS. (So there + * are at most sixteen features of each type.) Hubs may also support a + * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend. + */ +#define USB_DEVICE_SELF_POWERED 0 /* (read only) */ +#define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */ +#define USB_DEVICE_TEST_MODE 2 /* (wired high speed only) */ +#define USB_DEVICE_BATTERY 2 /* (wireless) */ +#define USB_DEVICE_B_HNP_ENABLE 3 /* (otg) dev may initiate HNP */ +#define USB_DEVICE_WUSB_DEVICE 3 /* (wireless)*/ +#define USB_DEVICE_A_HNP_SUPPORT 4 /* (otg) RH port supports HNP */ +#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */ +#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */ + +/* + * Test Mode Selectors + * See USB 2.0 spec Table 9-7 + */ +#define TEST_J 1 +#define TEST_K 2 +#define TEST_SE0_NAK 3 +#define TEST_PACKET 4 +#define TEST_FORCE_EN 5 + +/* OTG test mode feature bits + * See ECN OTG2.0 spec Table 6-8 + */ +#define TEST_OTG_SRP_REQD 6 +#define TEST_OTG_HNP_REQD 7 + +/* + * New Feature Selectors as added by USB 3.0 + * See USB 3.0 spec Table 9-7 + */ +#define USB_DEVICE_U1_ENABLE 48 /* dev may initiate U1 transition */ +#define USB_DEVICE_U2_ENABLE 49 /* dev may initiate U2 transition */ +#define USB_DEVICE_LTM_ENABLE 50 /* dev may send LTM */ +#define USB_INTRF_FUNC_SUSPEND 0 /* function suspend */ + +#define USB_INTR_FUNC_SUSPEND_OPT_MASK 0xFF00 +/* + * Suspend Options, Table 9-8 USB 3.0 spec + */ +#define USB_INTRF_FUNC_SUSPEND_LP (1 << (8 + 0)) +#define USB_INTRF_FUNC_SUSPEND_RW (1 << (8 + 1)) + +/* + * Interface status, Figure 9-5 USB 3.0 spec + */ +#define USB_INTRF_STAT_FUNC_RW_CAP 1 +#define USB_INTRF_STAT_FUNC_RW 2 + +#define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */ + +#define OTG_STATUS_SELECTOR 0xF000 +#define HOST_REQUEST_FLAG 0 +#define THOST_REQ_POLL 1500 /* msec (1000 - 2000) */ +#define OTG_TTST_SUSP 70 /* msec (0 - 100) */ + +#define OTG_TTST_VBUS_OFF 1 + +/* Bit array elements as returned by the USB_REQ_GET_STATUS request. */ +#define USB_DEV_STAT_U1_ENABLED 2 /* transition into U1 state */ +#define USB_DEV_STAT_U2_ENABLED 3 /* transition into U2 state */ +#define USB_DEV_STAT_LTM_ENABLED 4 /* Latency tolerance messages */ + +/** + * struct usb_ctrlrequest - SETUP data for a USB device control request + * @bRequestType: matches the USB bmRequestType field + * @bRequest: matches the USB bRequest field + * @wValue: matches the USB wValue field (le16 byte order) + * @wIndex: matches the USB wIndex field (le16 byte order) + * @wLength: matches the USB wLength field (le16 byte order) + * + * This structure is used to send control requests to a USB device. It matches + * the different fields of the USB 2.0 Spec section 9.3, table 9-2. See the + * USB spec for a fuller description of the different fields, and what they are + * used for. + * + * Note that the driver for any interface can issue control requests. + * For most devices, interfaces don't coordinate with each other, so + * such requests may be made at any time. + */ +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; +} __attribute__ ((packed)); + +/*-------------------------------------------------------------------------*/ + +/* + * STANDARD DESCRIPTORS ... as returned by GET_DESCRIPTOR, or + * (rarely) accepted by SET_DESCRIPTOR. + * + * Note that all multi-byte values here are encoded in little endian + * byte order "on the wire". Within the kernel and when exposed + * through the Linux-USB APIs, they are not converted to cpu byte + * order; it is the responsibility of the client code to do this. + * The single exception is when device and configuration descriptors (but + * not other descriptors) are read from usbfs (i.e. /proc/bus/usb/BBB/DDD); + * in this case the fields are converted to host endianness by the kernel. + */ + +/* + * Descriptor types ... USB 2.0 spec table 9.5 + */ +#define USB_DT_DEVICE 0x01 +#define USB_DT_CONFIG 0x02 +#define USB_DT_STRING 0x03 +#define USB_DT_INTERFACE 0x04 +#define USB_DT_ENDPOINT 0x05 +#define USB_DT_DEVICE_QUALIFIER 0x06 +#define USB_DT_OTHER_SPEED_CONFIG 0x07 +#define USB_DT_INTERFACE_POWER 0x08 +/* these are from a minor usb 2.0 revision (ECN) */ +#define USB_DT_OTG 0x09 +#define USB_DT_DEBUG 0x0a +#define USB_DT_INTERFACE_ASSOCIATION 0x0b +/* these are from the Wireless USB spec */ +#define USB_DT_SECURITY 0x0c +#define USB_DT_KEY 0x0d +#define USB_DT_ENCRYPTION_TYPE 0x0e +#define USB_DT_BOS 0x0f +#define USB_DT_DEVICE_CAPABILITY 0x10 +#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11 +#define USB_DT_WIRE_ADAPTER 0x21 +#define USB_DT_RPIPE 0x22 +#define USB_DT_CS_RADIO_CONTROL 0x23 +/* From the T10 UAS specification */ +#define USB_DT_PIPE_USAGE 0x24 +/* From the USB 3.0 spec */ +#define USB_DT_SS_ENDPOINT_COMP 0x30 + +/* Conventional codes for class-specific descriptors. The convention is + * defined in the USB "Common Class" Spec (3.11). Individual class specs + * are authoritative for their usage, not the "common class" writeup. + */ +#define USB_DT_CS_DEVICE (USB_TYPE_CLASS | USB_DT_DEVICE) +#define USB_DT_CS_CONFIG (USB_TYPE_CLASS | USB_DT_CONFIG) +#define USB_DT_CS_STRING (USB_TYPE_CLASS | USB_DT_STRING) +#define USB_DT_CS_INTERFACE (USB_TYPE_CLASS | USB_DT_INTERFACE) +#define USB_DT_CS_ENDPOINT (USB_TYPE_CLASS | USB_DT_ENDPOINT) + +/* All standard descriptors have these 2 fields at the beginning */ +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; +} __attribute__ ((packed)); + + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_DEVICE: Device descriptor */ +struct usb_device_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __le16 idVendor; + __le16 idProduct; + __le16 bcdDevice; + __u8 iManufacturer; + __u8 iProduct; + __u8 iSerialNumber; + __u8 bNumConfigurations; +} __attribute__ ((packed)); + +#define USB_DT_DEVICE_SIZE 18 + + +/* + * Device and/or Interface Class codes + * as found in bDeviceClass or bInterfaceClass + * and defined by www.usb.org documents + */ +#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ +#define USB_CLASS_AUDIO 1 +#define USB_CLASS_COMM 2 +#define USB_CLASS_HID 3 +#define USB_CLASS_PHYSICAL 5 +#define USB_CLASS_STILL_IMAGE 6 +#define USB_CLASS_PRINTER 7 +#define USB_CLASS_MASS_STORAGE 8 +#define USB_CLASS_HUB 9 +#define USB_CLASS_CDC_DATA 0x0a +#define USB_CLASS_CSCID 0x0b /* chip+ smart card */ +#define USB_CLASS_CONTENT_SEC 0x0d /* content security */ +#define USB_CLASS_VIDEO 0x0e +#define USB_CLASS_WIRELESS_CONTROLLER 0xe0 +#define USB_CLASS_MISC 0xef +#define USB_CLASS_APP_SPEC 0xfe +#define USB_CLASS_VENDOR_SPEC 0xff + +#define USB_SUBCLASS_VENDOR_SPEC 0xff + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_CONFIG: Configuration descriptor information. + * + * USB_DT_OTHER_SPEED_CONFIG is the same descriptor, except that the + * descriptor type is different. Highspeed-capable devices can look + * different depending on what speed they're currently running. Only + * devices with a USB_DT_DEVICE_QUALIFIER have any OTHER_SPEED_CONFIG + * descriptors. + */ +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__ ((packed)); + +#define USB_DT_CONFIG_SIZE 9 + +/* from config descriptor bmAttributes */ +#define USB_CONFIG_ATT_ONE (1 << 7) /* must be set */ +#define USB_CONFIG_ATT_SELFPOWER (1 << 6) /* self powered */ +#define USB_CONFIG_ATT_WAKEUP (1 << 5) /* can wakeup */ +#define USB_CONFIG_ATT_BATTERY (1 << 4) /* battery powered */ + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_STRING: String descriptor */ +struct usb_string_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __le16 wData[1]; /* UTF-16LE encoded */ +} __attribute__ ((packed)); + +/* note that "string" zero is special, it holds language codes that + * the device supports, not Unicode characters. + */ + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_INTERFACE: Interface descriptor */ +struct usb_interface_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; +} __attribute__ ((packed)); + +#define USB_DT_INTERFACE_SIZE 9 + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_ENDPOINT: Endpoint descriptor */ +struct usb_endpoint_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bEndpointAddress; + __u8 bmAttributes; + __le16 wMaxPacketSize; + __u8 bInterval; + + /* NOTE: these two are _only_ in audio endpoints. */ + /* use USB_DT_ENDPOINT*_SIZE in bLength, not sizeof. */ + __u8 bRefresh; + __u8 bSynchAddress; +} __attribute__ ((packed)); + +#define USB_DT_ENDPOINT_SIZE 7 +#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ + + +/* + * Endpoints + */ +#define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ +#define USB_ENDPOINT_DIR_MASK 0x80 + +#define USB_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */ +#define USB_ENDPOINT_XFER_CONTROL 0 +#define USB_ENDPOINT_XFER_ISOC 1 +#define USB_ENDPOINT_XFER_BULK 2 +#define USB_ENDPOINT_XFER_INT 3 +#define USB_ENDPOINT_MAX_ADJUSTABLE 0x80 + +/* The USB 3.0 spec redefines bits 5:4 of bmAttributes as interrupt ep type. */ +#define USB_ENDPOINT_INTRTYPE 0x30 +#define USB_ENDPOINT_INTR_PERIODIC (0 << 4) +#define USB_ENDPOINT_INTR_NOTIFICATION (1 << 4) + +#define USB_ENDPOINT_SYNCTYPE 0x0c +#define USB_ENDPOINT_SYNC_NONE (0 << 2) +#define USB_ENDPOINT_SYNC_ASYNC (1 << 2) +#define USB_ENDPOINT_SYNC_ADAPTIVE (2 << 2) +#define USB_ENDPOINT_SYNC_SYNC (3 << 2) + +#define USB_ENDPOINT_USAGE_MASK 0x30 +#define USB_ENDPOINT_USAGE_DATA 0x00 +#define USB_ENDPOINT_USAGE_FEEDBACK 0x10 +#define USB_ENDPOINT_USAGE_IMPLICIT_FB 0x20 /* Implicit feedback Data endpoint */ + +/*-------------------------------------------------------------------------*/ + +/** + * usb_endpoint_num - get the endpoint's number + * @epd: endpoint to be checked + * + * Returns @epd's number: 0 to 15. + */ +static __inline__ int usb_endpoint_num(const struct usb_endpoint_descriptor *epd) +{ + return epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; +} + +/** + * usb_endpoint_type - get the endpoint's transfer type + * @epd: endpoint to be checked + * + * Returns one of USB_ENDPOINT_XFER_{CONTROL, ISOC, BULK, INT} according + * to @epd's transfer type. + */ +static __inline__ int usb_endpoint_type(const struct usb_endpoint_descriptor *epd) +{ + return epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; +} + +/** + * usb_endpoint_dir_in - check if the endpoint has IN direction + * @epd: endpoint to be checked + * + * Returns true if the endpoint is of type IN, otherwise it returns false. + */ +static __inline__ int usb_endpoint_dir_in(const struct usb_endpoint_descriptor *epd) +{ + return ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN); +} + +/** + * usb_endpoint_dir_out - check if the endpoint has OUT direction + * @epd: endpoint to be checked + * + * Returns true if the endpoint is of type OUT, otherwise it returns false. + */ +static __inline__ int usb_endpoint_dir_out( + const struct usb_endpoint_descriptor *epd) +{ + return ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT); +} + +/** + * usb_endpoint_xfer_bulk - check if the endpoint has bulk transfer type + * @epd: endpoint to be checked + * + * Returns true if the endpoint is of type bulk, otherwise it returns false. + */ +static __inline__ int usb_endpoint_xfer_bulk( + const struct usb_endpoint_descriptor *epd) +{ + return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_BULK); +} + +/** + * usb_endpoint_xfer_control - check if the endpoint has control transfer type + * @epd: endpoint to be checked + * + * Returns true if the endpoint is of type control, otherwise it returns false. + */ +static __inline__ int usb_endpoint_xfer_control( + const struct usb_endpoint_descriptor *epd) +{ + return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_CONTROL); +} + +/** + * usb_endpoint_xfer_int - check if the endpoint has interrupt transfer type + * @epd: endpoint to be checked + * + * Returns true if the endpoint is of type interrupt, otherwise it returns + * false. + */ +static __inline__ int usb_endpoint_xfer_int( + const struct usb_endpoint_descriptor *epd) +{ + return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_INT); +} + +/** + * usb_endpoint_xfer_isoc - check if the endpoint has isochronous transfer type + * @epd: endpoint to be checked + * + * Returns true if the endpoint is of type isochronous, otherwise it returns + * false. + */ +static __inline__ int usb_endpoint_xfer_isoc( + const struct usb_endpoint_descriptor *epd) +{ + return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_ISOC); +} + +/** + * usb_endpoint_is_bulk_in - check if the endpoint is bulk IN + * @epd: endpoint to be checked + * + * Returns true if the endpoint has bulk transfer type and IN direction, + * otherwise it returns false. + */ +static __inline__ int usb_endpoint_is_bulk_in( + const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_bulk(epd) && usb_endpoint_dir_in(epd); +} + +/** + * usb_endpoint_is_bulk_out - check if the endpoint is bulk OUT + * @epd: endpoint to be checked + * + * Returns true if the endpoint has bulk transfer type and OUT direction, + * otherwise it returns false. + */ +static __inline__ int usb_endpoint_is_bulk_out( + const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_bulk(epd) && usb_endpoint_dir_out(epd); +} + +/** + * usb_endpoint_is_int_in - check if the endpoint is interrupt IN + * @epd: endpoint to be checked + * + * Returns true if the endpoint has interrupt transfer type and IN direction, + * otherwise it returns false. + */ +static __inline__ int usb_endpoint_is_int_in( + const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd); +} + +/** + * usb_endpoint_is_int_out - check if the endpoint is interrupt OUT + * @epd: endpoint to be checked + * + * Returns true if the endpoint has interrupt transfer type and OUT direction, + * otherwise it returns false. + */ +static __inline__ int usb_endpoint_is_int_out( + const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_int(epd) && usb_endpoint_dir_out(epd); +} + +/** + * usb_endpoint_is_isoc_in - check if the endpoint is isochronous IN + * @epd: endpoint to be checked + * + * Returns true if the endpoint has isochronous transfer type and IN direction, + * otherwise it returns false. + */ +static __inline__ int usb_endpoint_is_isoc_in( + const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_in(epd); +} + +/** + * usb_endpoint_is_isoc_out - check if the endpoint is isochronous OUT + * @epd: endpoint to be checked + * + * Returns true if the endpoint has isochronous transfer type and OUT direction, + * otherwise it returns false. + */ +static __inline__ int usb_endpoint_is_isoc_out( + const struct usb_endpoint_descriptor *epd) +{ + return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_out(epd); +} + +/** + * usb_endpoint_maxp - get endpoint's max packet size + * @epd: endpoint to be checked + * + * Returns @epd's max packet + */ +static __inline__ int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd) +{ + return __le16_to_cpu(epd->wMaxPacketSize); +} + +static __inline__ int usb_endpoint_interrupt_type( + const struct usb_endpoint_descriptor *epd) +{ + return epd->bmAttributes & USB_ENDPOINT_INTRTYPE; +} + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */ +struct usb_ss_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bMaxBurst; + __u8 bmAttributes; + __le16 wBytesPerInterval; +} __attribute__ ((packed)); + +#define USB_DT_SS_EP_COMP_SIZE 6 + +/* Bits 4:0 of bmAttributes if this is a bulk endpoint */ +static __inline__ int +usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor *comp) +{ + int max_streams; + + if (!comp) + return 0; + + max_streams = comp->bmAttributes & 0x1f; + + if (!max_streams) + return 0; + + max_streams = 1 << max_streams; + + return max_streams; +} + +/* Bits 1:0 of bmAttributes if this is an isoc endpoint */ +#define USB_SS_MULT(p) (1 + ((p) & 0x3)) + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_DEVICE_QUALIFIER: Device Qualifier descriptor */ +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; +} __attribute__ ((packed)); + + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_OTG (from OTG 1.0a supplement) */ +struct usb_otg_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bmAttributes; /* support for HNP, SRP, etc */ + __le16 bcdOTG; +} __attribute__ ((packed)); + +#define USB_DT_OTG_SIZE 5 +/* from usb_otg_descriptor.bmAttributes */ +#define USB_OTG_SRP (1 << 0) +#define USB_OTG_HNP (1 << 1) /* swap host/device roles */ + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_DEBUG: for special highspeed devices, replacing serial console */ +struct usb_debug_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + /* bulk endpoints with 8 byte maxpacket */ + __u8 bDebugInEndpoint; + __u8 bDebugOutEndpoint; +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_INTERFACE_ASSOCIATION: groups interfaces */ +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; +} __attribute__ ((packed)); + + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_SECURITY: group of wireless security descriptors, including + * encryption types available for setting up a CC/association. + */ +struct usb_security_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __le16 wTotalLength; + __u8 bNumEncryptionTypes; +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_KEY: used with {GET,SET}_SECURITY_DATA; only public keys + * may be retrieved. + */ +struct usb_key_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 tTKID[3]; + __u8 bReserved; + __u8 bKeyData[0]; +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_ENCRYPTION_TYPE: bundled in DT_SECURITY groups */ +struct usb_encryption_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bEncryptionType; +#define USB_ENC_TYPE_UNSECURE 0 +#define USB_ENC_TYPE_WIRED 1 /* non-wireless mode */ +#define USB_ENC_TYPE_CCM_1 2 /* aes128/cbc session */ +#define USB_ENC_TYPE_RSA_1 3 /* rsa3072/sha1 auth */ + __u8 bEncryptionValue; /* use in SET_ENCRYPTION */ + __u8 bAuthKeyIndex; +} __attribute__((packed)); + + +/*-------------------------------------------------------------------------*/ + +/* USB_DT_BOS: group of device-level capabilities */ +struct usb_bos_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __le16 wTotalLength; + __u8 bNumDeviceCaps; +} __attribute__((packed)); + +#define USB_DT_BOS_SIZE 5 +/*-------------------------------------------------------------------------*/ + +/* USB_DT_DEVICE_CAPABILITY: grouped with BOS */ +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +} __attribute__((packed)); + +#define USB_CAP_TYPE_WIRELESS_USB 1 + +struct usb_wireless_cap_descriptor { /* Ultra Wide Band */ + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + + __u8 bmAttributes; +#define USB_WIRELESS_P2P_DRD (1 << 1) +#define USB_WIRELESS_BEACON_MASK (3 << 2) +#define USB_WIRELESS_BEACON_SELF (1 << 2) +#define USB_WIRELESS_BEACON_DIRECTED (2 << 2) +#define USB_WIRELESS_BEACON_NONE (3 << 2) + __le16 wPHYRates; /* bit rates, Mbps */ +#define USB_WIRELESS_PHY_53 (1 << 0) /* always set */ +#define USB_WIRELESS_PHY_80 (1 << 1) +#define USB_WIRELESS_PHY_107 (1 << 2) /* always set */ +#define USB_WIRELESS_PHY_160 (1 << 3) +#define USB_WIRELESS_PHY_200 (1 << 4) /* always set */ +#define USB_WIRELESS_PHY_320 (1 << 5) +#define USB_WIRELESS_PHY_400 (1 << 6) +#define USB_WIRELESS_PHY_480 (1 << 7) + __u8 bmTFITXPowerInfo; /* TFI power levels */ + __u8 bmFFITXPowerInfo; /* FFI power levels */ + __le16 bmBandGroup; + __u8 bReserved; +} __attribute__((packed)); + +/* USB 2.0 Extension descriptor */ +#define USB_CAP_TYPE_EXT 2 + +struct usb_ext_cap_descriptor { /* Link Power Management */ + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __le32 bmAttributes; +#define USB_LPM_SUPPORT (1 << 1) /* supports LPM */ +#define USB_BESL_SUPPORT (1 << 2) /* supports BESL */ +#define USB_BESL_BASELINE_VALID (1 << 3) /* Baseline BESL valid*/ +#define USB_BESL_DEEP_VALID (1 << 4) /* Deep BESL valid */ +#define USB_GET_BESL_BASELINE(p) (((p) & (0xf << 8)) >> 8) +#define USB_GET_BESL_DEEP(p) (((p) & (0xf << 12)) >> 12) +} __attribute__((packed)); + +#define USB_DT_USB_EXT_CAP_SIZE 7 + +/* + * SuperSpeed USB Capability descriptor: Defines the set of SuperSpeed USB + * specific device level capabilities + */ +#define USB_SS_CAP_TYPE 3 +struct usb_ss_cap_descriptor { /* Link Power Management */ + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; +#define USB_LTM_SUPPORT (1 << 1) /* supports LTM */ + __le16 wSpeedSupported; +#define USB_LOW_SPEED_OPERATION (1) /* Low speed operation */ +#define USB_FULL_SPEED_OPERATION (1 << 1) /* Full speed operation */ +#define USB_HIGH_SPEED_OPERATION (1 << 2) /* High speed operation */ +#define USB_5GBPS_OPERATION (1 << 3) /* Operation at 5Gbps */ + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; +} __attribute__((packed)); + +#define USB_DT_USB_SS_CAP_SIZE 10 + +/* + * Container ID Capability descriptor: Defines the instance unique ID used to + * identify the instance across all operating modes + */ +#define CONTAINER_ID_TYPE 4 +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; /* 128-bit number */ +} __attribute__((packed)); + +#define USB_DT_USB_SS_CONTN_ID_SIZE 20 +/*-------------------------------------------------------------------------*/ + +/* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with + * each endpoint descriptor for a wireless device + */ +struct usb_wireless_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bMaxBurst; + __u8 bMaxSequence; + __le16 wMaxStreamDelay; + __le16 wOverTheAirPacketSize; + __u8 bOverTheAirInterval; + __u8 bmCompAttributes; +#define USB_ENDPOINT_SWITCH_MASK 0x03 /* in bmCompAttributes */ +#define USB_ENDPOINT_SWITCH_NO 0 +#define USB_ENDPOINT_SWITCH_SWITCH 1 +#define USB_ENDPOINT_SWITCH_SCALE 2 +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* USB_REQ_SET_HANDSHAKE is a four-way handshake used between a wireless + * host and a device for connection set up, mutual authentication, and + * exchanging short lived session keys. The handshake depends on a CC. + */ +struct usb_handshake { + __u8 bMessageNumber; + __u8 bStatus; + __u8 tTKID[3]; + __u8 bReserved; + __u8 CDID[16]; + __u8 nonce[16]; + __u8 MIC[8]; +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* USB_REQ_SET_CONNECTION modifies or revokes a connection context (CC). + * A CC may also be set up using non-wireless secure channels (including + * wired USB!), and some devices may support CCs with multiple hosts. + */ +struct usb_connection_context { + __u8 CHID[16]; /* persistent host id */ + __u8 CDID[16]; /* device id (unique w/in host context) */ + __u8 CK[16]; /* connection key */ +} __attribute__((packed)); + +/*-------------------------------------------------------------------------*/ + +/* USB 2.0 defines three speeds, here's how Linux identifies them */ + +enum usb_device_speed { + USB_SPEED_UNKNOWN = 0, /* enumerating */ + USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */ + USB_SPEED_HIGH, /* usb 2.0 */ + USB_SPEED_WIRELESS, /* wireless (usb 2.5) */ + USB_SPEED_SUPER, /* usb 3.0 */ +}; + + +enum usb_device_state { + /* NOTATTACHED isn't in the USB spec, and this state acts + * the same as ATTACHED ... but it's clearer this way. + */ + USB_STATE_NOTATTACHED = 0, + + /* chapter 9 and authentication (wireless) device states */ + USB_STATE_ATTACHED, + USB_STATE_POWERED, /* wired */ + USB_STATE_RECONNECTING, /* auth */ + USB_STATE_UNAUTHENTICATED, /* auth */ + USB_STATE_DEFAULT, /* limited function */ + USB_STATE_ADDRESS, + USB_STATE_CONFIGURED, /* most functions */ + + USB_STATE_SUSPENDED + + /* NOTE: there are actually four different SUSPENDED + * states, returning to POWERED, DEFAULT, ADDRESS, or + * CONFIGURED respectively when SOF tokens flow again. + * At this level there's no difference between L1 and L2 + * suspend states. (L2 being original USB 1.1 suspend.) + */ +}; + +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1, + USB3_LPM_U2, + USB3_LPM_U3 +}; + +/* + * A U1 timeout of 0x0 means the parent hub will reject any transitions to U1. + * 0xff means the parent hub will accept transitions to U1, but will not + * initiate a transition. + * + * A U1 timeout of 0x1 to 0x7F also causes the hub to initiate a transition to + * U1 after that many microseconds. Timeouts of 0x80 to 0xFE are reserved + * values. + * + * A U2 timeout of 0x0 means the parent hub will reject any transitions to U2. + * 0xff means the parent hub will accept transitions to U2, but will not + * initiate a transition. + * + * A U2 timeout of 0x1 to 0xFE also causes the hub to initiate a transition to + * U2 after N*256 microseconds. Therefore a U2 timeout value of 0x1 means a U2 + * idle timer of 256 microseconds, 0x2 means 512 microseconds, 0xFE means + * 65.024ms. + */ +#define USB3_LPM_DISABLED 0x0 +#define USB3_LPM_U1_MAX_TIMEOUT 0x7F +#define USB3_LPM_U2_MAX_TIMEOUT 0xFE +#define USB3_LPM_DEVICE_INITIATED 0xFF + +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; +} __attribute__ ((packed)); + +/* + * The Set System Exit Latency control transfer provides one byte each for + * U1 SEL and U1 PEL, so the max exit latency is 0xFF. U2 SEL and U2 PEL each + * are two bytes long. + */ +#define USB3_LPM_MAX_U1_SEL_PEL 0xFF +#define USB3_LPM_MAX_U2_SEL_PEL 0xFFFF + +/*-------------------------------------------------------------------------*/ + +/* + * As per USB compliance update, a device that is actively drawing + * more than 100mA from USB must report itself as bus-powered in + * the GetStatus(DEVICE) call. + * http://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34 + */ +#define USB_SELF_POWER_VBUS_MAX_DRAW 100 + +#endif /* __LINUX_USB_CH9_H */ diff --git a/kernel_headers/linux/usb/functionfs.h b/kernel_headers/linux/usb/functionfs.h new file mode 100644 index 0000000..ed7fd2d --- /dev/null +++ b/kernel_headers/linux/usb/functionfs.h @@ -0,0 +1,172 @@ +#ifndef __LINUX_FUNCTIONFS_H__ +#define __LINUX_FUNCTIONFS_H__ + + +#include +#include + +#include + + +enum { + FUNCTIONFS_DESCRIPTORS_MAGIC = 1, + FUNCTIONFS_STRINGS_MAGIC = 2 +}; + +#define FUNCTIONFS_SS_DESC_MAGIC 0x0055DE5C + + +/* Descriptor of an non-audio endpoint */ +struct usb_endpoint_descriptor_no_audio { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bEndpointAddress; + __u8 bmAttributes; + __le16 wMaxPacketSize; + __u8 bInterval; +} __attribute__((packed)); + + +/* + * All numbers must be in little endian order. + */ + +struct usb_functionfs_descs_head { + __le32 magic; + __le32 length; + __le32 fs_count; + __le32 hs_count; +} __attribute__((packed)); + +/* + * Descriptors format: + * + * | off | name | type | description | + * |-----+-----------+--------------+--------------------------------------| + * | 0 | magic | LE32 | FUNCTIONFS_{FS,HS}_DESCRIPTORS_MAGIC | + * | 4 | length | LE32 | length of the whole data chunk | + * | 8 | fs_count | LE32 | number of full-speed descriptors | + * | 12 | hs_count | LE32 | number of high-speed descriptors | + * | 16 | fs_descrs | Descriptor[] | list of full-speed descriptors | + * | | hs_descrs | Descriptor[] | list of high-speed descriptors | + * | | ss_magic | LE32 | FUNCTIONFS_SS_DESC_MAGIC | + * | | ss_count | LE32 | number of super-speed descriptors | + * | | ss_descrs | Descriptor[] | list of super-speed descriptors | + * + * ss_magic: if present then it implies that SS_DESCs are also present + * descs are just valid USB descriptors and have the following format: + * + * | off | name | type | description | + * |-----+-----------------+------+--------------------------| + * | 0 | bLength | U8 | length of the descriptor | + * | 1 | bDescriptorType | U8 | descriptor type | + * | 2 | payload | | descriptor's payload | + */ + +struct usb_functionfs_strings_head { + __le32 magic; + __le32 length; + __le32 str_count; + __le32 lang_count; +} __attribute__((packed)); + +/* + * Strings format: + * + * | off | name | type | description | + * |-----+------------+-----------------------+----------------------------| + * | 0 | magic | LE32 | FUNCTIONFS_STRINGS_MAGIC | + * | 4 | length | LE32 | length of the data chunk | + * | 8 | str_count | LE32 | number of strings | + * | 12 | lang_count | LE32 | number of languages | + * | 16 | stringtab | StringTab[lang_count] | table of strings per lang | + * + * For each language there is one stringtab entry (ie. there are lang_count + * stringtab entires). Each StringTab has following format: + * + * | off | name | type | description | + * |-----+---------+-------------------+------------------------------------| + * | 0 | lang | LE16 | language code | + * | 2 | strings | String[str_count] | array of strings in given language | + * + * For each string there is one strings entry (ie. there are str_count + * string entries). Each String is a NUL terminated string encoded in + * UTF-8. + */ + + + +/* + * Events are delivered on the ep0 file descriptor, when the user mode driver + * reads from this file descriptor after writing the descriptors. Don't + * stop polling this descriptor. + */ + +enum usb_functionfs_event_type { + FUNCTIONFS_BIND, + FUNCTIONFS_UNBIND, + + FUNCTIONFS_ENABLE, + FUNCTIONFS_DISABLE, + + FUNCTIONFS_SETUP, + + FUNCTIONFS_SUSPEND, + FUNCTIONFS_RESUME +}; + +/* NOTE: this structure must stay the same size and layout on + * both 32-bit and 64-bit kernels. + */ +struct usb_functionfs_event { + union { + /* SETUP: packet; DATA phase i/o precedes next event + *(setup.bmRequestType & USB_DIR_IN) flags direction */ + struct usb_ctrlrequest setup; + } __attribute__((packed)) u; + + /* enum usb_functionfs_event_type */ + __u8 type; + __u8 _pad[3]; +} __attribute__((packed)); + + +/* Endpoint ioctls */ +/* The same as in gadgetfs */ + +/* IN transfers may be reported to the gadget driver as complete + * when the fifo is loaded, before the host reads the data; + * OUT transfers may be reported to the host's "client" driver as + * complete when they're sitting in the FIFO unread. + * THIS returns how many bytes are "unclaimed" in the endpoint fifo + * (needed for precise fault handling, when the hardware allows it) + */ +#define FUNCTIONFS_FIFO_STATUS _IO('g', 1) + +/* discards any unclaimed data in the fifo. */ +#define FUNCTIONFS_FIFO_FLUSH _IO('g', 2) + +/* resets endpoint halt+toggle; used to implement set_interface. + * some hardware (like pxa2xx) can't support this. + */ +#define FUNCTIONFS_CLEAR_HALT _IO('g', 3) + +/* Specific for functionfs */ + +/* + * Returns reverse mapping of an interface. Called on EP0. If there + * is no such interface returns -EDOM. If function is not active + * returns -ENODEV. + */ +#define FUNCTIONFS_INTERFACE_REVMAP _IO('g', 128) + +/* + * Returns real bEndpointAddress of an endpoint. If function is not + * active returns -ENODEV. + */ +#define FUNCTIONFS_ENDPOINT_REVMAP _IO('g', 129) + + + +#endif /* __LINUX_FUNCTIONFS_H__ */ diff --git a/kernel_headers/linux/usb/g_printer.h b/kernel_headers/linux/usb/g_printer.h new file mode 100644 index 0000000..6178fde --- /dev/null +++ b/kernel_headers/linux/usb/g_printer.h @@ -0,0 +1,35 @@ +/* + * g_printer.h -- Header file for USB Printer gadget driver + * + * Copyright (C) 2007 Craig W. Nadler + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LINUX_USB_G_PRINTER_H +#define __LINUX_USB_G_PRINTER_H + +#define PRINTER_NOT_ERROR 0x08 +#define PRINTER_SELECTED 0x10 +#define PRINTER_PAPER_EMPTY 0x20 + +/* The 'g' code is also used by gadgetfs ioctl requests. + * Don't add any colliding codes to either driver, and keep + * them in unique ranges (size 0x20 for now). + */ +#define GADGET_GET_PRINTER_STATUS _IOR('g', 0x21, unsigned char) +#define GADGET_SET_PRINTER_STATUS _IOWR('g', 0x22, unsigned char) + +#endif /* __LINUX_USB_G_PRINTER_H */ diff --git a/kernel_headers/linux/usb/gadgetfs.h b/kernel_headers/linux/usb/gadgetfs.h new file mode 100644 index 0000000..0bb12e0 --- /dev/null +++ b/kernel_headers/linux/usb/gadgetfs.h @@ -0,0 +1,88 @@ +/* + * Filesystem based user-mode API to USB Gadget controller hardware + * + * Other than ep0 operations, most things are done by read() and write() + * on endpoint files found in one directory. They are configured by + * writing descriptors, and then may be used for normal stream style + * i/o requests. When ep0 is configured, the device can enumerate; + * when it's closed, the device disconnects from usb. Operations on + * ep0 require ioctl() operations. + * + * Configuration and device descriptors get written to /dev/gadget/$CHIP, + * which may then be used to read usb_gadgetfs_event structs. The driver + * may activate endpoints as it handles SET_CONFIGURATION setup events, + * or earlier; writing endpoint descriptors to /dev/gadget/$ENDPOINT + * then performing data transfers by reading or writing. + */ + +#ifndef __LINUX_USB_GADGETFS_H +#define __LINUX_USB_GADGETFS_H + +#include +#include + +#include + +/* + * Events are delivered on the ep0 file descriptor, when the user mode driver + * reads from this file descriptor after writing the descriptors. Don't + * stop polling this descriptor. + */ + +enum usb_gadgetfs_event_type { + GADGETFS_NOP = 0, + + GADGETFS_CONNECT, + GADGETFS_DISCONNECT, + GADGETFS_SETUP, + GADGETFS_SUSPEND, + /* and likely more ! */ +}; + +/* NOTE: this structure must stay the same size and layout on + * both 32-bit and 64-bit kernels. + */ +struct usb_gadgetfs_event { + union { + /* NOP, DISCONNECT, SUSPEND: nothing + * ... some hardware can't report disconnection + */ + + /* CONNECT: just the speed */ + enum usb_device_speed speed; + + /* SETUP: packet; DATA phase i/o precedes next event + *(setup.bmRequestType & USB_DIR_IN) flags direction + * ... includes SET_CONFIGURATION, SET_INTERFACE + */ + struct usb_ctrlrequest setup; + } u; + enum usb_gadgetfs_event_type type; +}; + + +/* The 'g' code is also used by printer gadget ioctl requests. + * Don't add any colliding codes to either driver, and keep + * them in unique ranges (size 0x20 for now). + */ + +/* endpoint ioctls */ + +/* IN transfers may be reported to the gadget driver as complete + * when the fifo is loaded, before the host reads the data; + * OUT transfers may be reported to the host's "client" driver as + * complete when they're sitting in the FIFO unread. + * THIS returns how many bytes are "unclaimed" in the endpoint fifo + * (needed for precise fault handling, when the hardware allows it) + */ +#define GADGETFS_FIFO_STATUS _IO('g', 1) + +/* discards any unclaimed data in the fifo. */ +#define GADGETFS_FIFO_FLUSH _IO('g', 2) + +/* resets endpoint halt+toggle; used to implement set_interface. + * some hardware (like pxa2xx) can't support this. + */ +#define GADGETFS_CLEAR_HALT _IO('g', 3) + +#endif /* __LINUX_USB_GADGETFS_H */ diff --git a/kernel_headers/linux/usb/midi.h b/kernel_headers/linux/usb/midi.h new file mode 100644 index 0000000..c8c52e3 --- /dev/null +++ b/kernel_headers/linux/usb/midi.h @@ -0,0 +1,112 @@ +/* + * -- USB MIDI definitions. + * + * Copyright (C) 2006 Thumtronics Pty Ltd. + * Developed for Thumtronics by Grey Innovation + * Ben Williamson + * + * This software is distributed under the terms of the GNU General Public + * License ("GPL") version 2, as published by the Free Software Foundation. + * + * This file holds USB constants and structures defined + * by the USB Device Class Definition for MIDI Devices. + * Comments below reference relevant sections of that document: + * + * http://www.usb.org/developers/devclass_docs/midi10.pdf + */ + +#ifndef __LINUX_USB_MIDI_H +#define __LINUX_USB_MIDI_H + +#include + +/* A.1 MS Class-Specific Interface Descriptor Subtypes */ +#define USB_MS_HEADER 0x01 +#define USB_MS_MIDI_IN_JACK 0x02 +#define USB_MS_MIDI_OUT_JACK 0x03 +#define USB_MS_ELEMENT 0x04 + +/* A.2 MS Class-Specific Endpoint Descriptor Subtypes */ +#define USB_MS_GENERAL 0x01 + +/* A.3 MS MIDI IN and OUT Jack Types */ +#define USB_MS_EMBEDDED 0x01 +#define USB_MS_EXTERNAL 0x02 + +/* 6.1.2.1 Class-Specific MS Interface Header Descriptor */ +struct usb_ms_header_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __le16 bcdMSC; + __le16 wTotalLength; +} __attribute__ ((packed)); + +#define USB_DT_MS_HEADER_SIZE 7 + +/* 6.1.2.2 MIDI IN Jack Descriptor */ +struct usb_midi_in_jack_descriptor { + __u8 bLength; + __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ + __u8 bDescriptorSubtype; /* USB_MS_MIDI_IN_JACK */ + __u8 bJackType; /* USB_MS_EMBEDDED/EXTERNAL */ + __u8 bJackID; + __u8 iJack; +} __attribute__ ((packed)); + +#define USB_DT_MIDI_IN_SIZE 6 + +struct usb_midi_source_pin { + __u8 baSourceID; + __u8 baSourcePin; +} __attribute__ ((packed)); + +/* 6.1.2.3 MIDI OUT Jack Descriptor */ +struct usb_midi_out_jack_descriptor { + __u8 bLength; + __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ + __u8 bDescriptorSubtype; /* USB_MS_MIDI_OUT_JACK */ + __u8 bJackType; /* USB_MS_EMBEDDED/EXTERNAL */ + __u8 bJackID; + __u8 bNrInputPins; /* p */ + struct usb_midi_source_pin pins[]; /* [p] */ + /*__u8 iJack; -- omitted due to variable-sized pins[] */ +} __attribute__ ((packed)); + +#define USB_DT_MIDI_OUT_SIZE(p) (7 + 2 * (p)) + +/* As above, but more useful for defining your own descriptors: */ +#define DECLARE_USB_MIDI_OUT_JACK_DESCRIPTOR(p) \ +struct usb_midi_out_jack_descriptor_##p { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubtype; \ + __u8 bJackType; \ + __u8 bJackID; \ + __u8 bNrInputPins; \ + struct usb_midi_source_pin pins[p]; \ + __u8 iJack; \ +} __attribute__ ((packed)) + +/* 6.2.2 Class-Specific MS Bulk Data Endpoint Descriptor */ +struct usb_ms_endpoint_descriptor { + __u8 bLength; /* 4+n */ + __u8 bDescriptorType; /* USB_DT_CS_ENDPOINT */ + __u8 bDescriptorSubtype; /* USB_MS_GENERAL */ + __u8 bNumEmbMIDIJack; /* n */ + __u8 baAssocJackID[]; /* [n] */ +} __attribute__ ((packed)); + +#define USB_DT_MS_ENDPOINT_SIZE(n) (4 + (n)) + +/* As above, but more useful for defining your own descriptors: */ +#define DECLARE_USB_MS_ENDPOINT_DESCRIPTOR(n) \ +struct usb_ms_endpoint_descriptor_##n { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubtype; \ + __u8 bNumEmbMIDIJack; \ + __u8 baAssocJackID[n]; \ +} __attribute__ ((packed)) + +#endif /* __LINUX_USB_MIDI_H */ diff --git a/kernel_headers/linux/usb/msm_ext_chg.h b/kernel_headers/linux/usb/msm_ext_chg.h new file mode 100644 index 0000000..a6fd50f --- /dev/null +++ b/kernel_headers/linux/usb/msm_ext_chg.h @@ -0,0 +1,41 @@ +#ifndef __UAPI_USB_MSM_EXT_CHG_H +#define __UAPI_USB_MSM_EXT_CHG_H + +#include + +#define USB_CHG_BLOCK_ULPI 1 +#define USB_CHG_BLOCK_QSCRATCH 2 + +#define USB_REQUEST_5V 1 +#define USB_REQUEST_9V 2 +/** + * struct msm_usb_chg_info - MSM USB charger block details. + * @chg_block_type: The type of charger block. QSCRATCH/ULPI. + * @page_offset: USB charger register base may not be aligned to + * PAGE_SIZE. The kernel driver aligns the base + * address and use it for memory mapping. This + * page_offset is used by user space to calaculate + * the corret charger register base address. + * @length: The length of the charger register address space. + */ +struct msm_usb_chg_info { + uint32_t chg_block_type; + off_t page_offset; + size_t length; +}; + +/* Get the MSM USB charger block information */ +#define MSM_USB_EXT_CHG_INFO _IOW('M', 0, struct msm_usb_chg_info) + +/* Vote against USB hardware low power mode */ +#define MSM_USB_EXT_CHG_BLOCK_LPM _IOW('M', 1, int) + +/* To tell kernel about voltage being voted */ +#define MSM_USB_EXT_CHG_VOLTAGE_INFO _IOW('M', 2, int) + +/* To tell kernel about voltage request result */ +#define MSM_USB_EXT_CHG_RESULT _IOW('M', 3, int) + +/* To tell kernel whether charger connected is external charger or not */ +#define MSM_USB_EXT_CHG_TYPE _IOW('M', 4, int) +#endif /* __UAPI_USB_MSM_EXT_CHG_H */ diff --git a/kernel_headers/linux/usb/tmc.h b/kernel_headers/linux/usb/tmc.h new file mode 100644 index 0000000..c045ae1 --- /dev/null +++ b/kernel_headers/linux/usb/tmc.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2007 Stefan Kopp, Gechingen, Germany + * Copyright (C) 2008 Novell, Inc. + * Copyright (C) 2008 Greg Kroah-Hartman + * + * This file holds USB constants defined by the USB Device Class + * Definition for Test and Measurement devices published by the USB-IF. + * + * It also has the ioctl definitions for the usbtmc kernel driver that + * userspace needs to know about. + */ + +#ifndef __LINUX_USB_TMC_H +#define __LINUX_USB_TMC_H + +/* USB TMC status values */ +#define USBTMC_STATUS_SUCCESS 0x01 +#define USBTMC_STATUS_PENDING 0x02 +#define USBTMC_STATUS_FAILED 0x80 +#define USBTMC_STATUS_TRANSFER_NOT_IN_PROGRESS 0x81 +#define USBTMC_STATUS_SPLIT_NOT_IN_PROGRESS 0x82 +#define USBTMC_STATUS_SPLIT_IN_PROGRESS 0x83 + +/* USB TMC requests values */ +#define USBTMC_REQUEST_INITIATE_ABORT_BULK_OUT 1 +#define USBTMC_REQUEST_CHECK_ABORT_BULK_OUT_STATUS 2 +#define USBTMC_REQUEST_INITIATE_ABORT_BULK_IN 3 +#define USBTMC_REQUEST_CHECK_ABORT_BULK_IN_STATUS 4 +#define USBTMC_REQUEST_INITIATE_CLEAR 5 +#define USBTMC_REQUEST_CHECK_CLEAR_STATUS 6 +#define USBTMC_REQUEST_GET_CAPABILITIES 7 +#define USBTMC_REQUEST_INDICATOR_PULSE 64 + +/* Request values for USBTMC driver's ioctl entry point */ +#define USBTMC_IOC_NR 91 +#define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1) +#define USBTMC_IOCTL_CLEAR _IO(USBTMC_IOC_NR, 2) +#define USBTMC_IOCTL_ABORT_BULK_OUT _IO(USBTMC_IOC_NR, 3) +#define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4) +#define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6) +#define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7) + +#endif diff --git a/kernel_headers/linux/usb/video.h b/kernel_headers/linux/usb/video.h new file mode 100644 index 0000000..3b3b95e --- /dev/null +++ b/kernel_headers/linux/usb/video.h @@ -0,0 +1,568 @@ +/* + * USB Video Class definitions. + * + * Copyright (C) 2009 Laurent Pinchart + * + * This file holds USB constants and structures defined by the USB Device + * Class Definition for Video Devices. Unless otherwise stated, comments + * below reference relevant sections of the USB Video Class 1.1 specification + * available at + * + * http://www.usb.org/developers/devclass_docs/USB_Video_Class_1_1.zip + */ + +#ifndef __LINUX_USB_VIDEO_H +#define __LINUX_USB_VIDEO_H + +#include + +/* -------------------------------------------------------------------------- + * UVC constants + */ + +/* A.2. Video Interface Subclass Codes */ +#define UVC_SC_UNDEFINED 0x00 +#define UVC_SC_VIDEOCONTROL 0x01 +#define UVC_SC_VIDEOSTREAMING 0x02 +#define UVC_SC_VIDEO_INTERFACE_COLLECTION 0x03 + +/* A.3. Video Interface Protocol Codes */ +#define UVC_PC_PROTOCOL_UNDEFINED 0x00 + +/* A.5. Video Class-Specific VC Interface Descriptor Subtypes */ +#define UVC_VC_DESCRIPTOR_UNDEFINED 0x00 +#define UVC_VC_HEADER 0x01 +#define UVC_VC_INPUT_TERMINAL 0x02 +#define UVC_VC_OUTPUT_TERMINAL 0x03 +#define UVC_VC_SELECTOR_UNIT 0x04 +#define UVC_VC_PROCESSING_UNIT 0x05 +#define UVC_VC_EXTENSION_UNIT 0x06 + +/* A.6. Video Class-Specific VS Interface Descriptor Subtypes */ +#define UVC_VS_UNDEFINED 0x00 +#define UVC_VS_INPUT_HEADER 0x01 +#define UVC_VS_OUTPUT_HEADER 0x02 +#define UVC_VS_STILL_IMAGE_FRAME 0x03 +#define UVC_VS_FORMAT_UNCOMPRESSED 0x04 +#define UVC_VS_FRAME_UNCOMPRESSED 0x05 +#define UVC_VS_FORMAT_MJPEG 0x06 +#define UVC_VS_FRAME_MJPEG 0x07 +#define UVC_VS_FORMAT_MPEG2TS 0x0a +#define UVC_VS_FORMAT_DV 0x0c +#define UVC_VS_COLORFORMAT 0x0d +#define UVC_VS_FORMAT_FRAME_BASED 0x10 +#define UVC_VS_FRAME_FRAME_BASED 0x11 +#define UVC_VS_FORMAT_STREAM_BASED 0x12 + +/* A.7. Video Class-Specific Endpoint Descriptor Subtypes */ +#define UVC_EP_UNDEFINED 0x00 +#define UVC_EP_GENERAL 0x01 +#define UVC_EP_ENDPOINT 0x02 +#define UVC_EP_INTERRUPT 0x03 + +/* A.8. Video Class-Specific Request Codes */ +#define UVC_RC_UNDEFINED 0x00 +#define UVC_SET_CUR 0x01 +#define UVC_GET_CUR 0x81 +#define UVC_GET_MIN 0x82 +#define UVC_GET_MAX 0x83 +#define UVC_GET_RES 0x84 +#define UVC_GET_LEN 0x85 +#define UVC_GET_INFO 0x86 +#define UVC_GET_DEF 0x87 + +/* A.9.1. VideoControl Interface Control Selectors */ +#define UVC_VC_CONTROL_UNDEFINED 0x00 +#define UVC_VC_VIDEO_POWER_MODE_CONTROL 0x01 +#define UVC_VC_REQUEST_ERROR_CODE_CONTROL 0x02 + +/* A.9.2. Terminal Control Selectors */ +#define UVC_TE_CONTROL_UNDEFINED 0x00 + +/* A.9.3. Selector Unit Control Selectors */ +#define UVC_SU_CONTROL_UNDEFINED 0x00 +#define UVC_SU_INPUT_SELECT_CONTROL 0x01 + +/* A.9.4. Camera Terminal Control Selectors */ +#define UVC_CT_CONTROL_UNDEFINED 0x00 +#define UVC_CT_SCANNING_MODE_CONTROL 0x01 +#define UVC_CT_AE_MODE_CONTROL 0x02 +#define UVC_CT_AE_PRIORITY_CONTROL 0x03 +#define UVC_CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04 +#define UVC_CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05 +#define UVC_CT_FOCUS_ABSOLUTE_CONTROL 0x06 +#define UVC_CT_FOCUS_RELATIVE_CONTROL 0x07 +#define UVC_CT_FOCUS_AUTO_CONTROL 0x08 +#define UVC_CT_IRIS_ABSOLUTE_CONTROL 0x09 +#define UVC_CT_IRIS_RELATIVE_CONTROL 0x0a +#define UVC_CT_ZOOM_ABSOLUTE_CONTROL 0x0b +#define UVC_CT_ZOOM_RELATIVE_CONTROL 0x0c +#define UVC_CT_PANTILT_ABSOLUTE_CONTROL 0x0d +#define UVC_CT_PANTILT_RELATIVE_CONTROL 0x0e +#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f +#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10 +#define UVC_CT_PRIVACY_CONTROL 0x11 + +/* A.9.5. Processing Unit Control Selectors */ +#define UVC_PU_CONTROL_UNDEFINED 0x00 +#define UVC_PU_BACKLIGHT_COMPENSATION_CONTROL 0x01 +#define UVC_PU_BRIGHTNESS_CONTROL 0x02 +#define UVC_PU_CONTRAST_CONTROL 0x03 +#define UVC_PU_GAIN_CONTROL 0x04 +#define UVC_PU_POWER_LINE_FREQUENCY_CONTROL 0x05 +#define UVC_PU_HUE_CONTROL 0x06 +#define UVC_PU_SATURATION_CONTROL 0x07 +#define UVC_PU_SHARPNESS_CONTROL 0x08 +#define UVC_PU_GAMMA_CONTROL 0x09 +#define UVC_PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0a +#define UVC_PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0b +#define UVC_PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0c +#define UVC_PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0d +#define UVC_PU_DIGITAL_MULTIPLIER_CONTROL 0x0e +#define UVC_PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0f +#define UVC_PU_HUE_AUTO_CONTROL 0x10 +#define UVC_PU_ANALOG_VIDEO_STANDARD_CONTROL 0x11 +#define UVC_PU_ANALOG_LOCK_STATUS_CONTROL 0x12 + +/* A.9.7. VideoStreaming Interface Control Selectors */ +#define UVC_VS_CONTROL_UNDEFINED 0x00 +#define UVC_VS_PROBE_CONTROL 0x01 +#define UVC_VS_COMMIT_CONTROL 0x02 +#define UVC_VS_STILL_PROBE_CONTROL 0x03 +#define UVC_VS_STILL_COMMIT_CONTROL 0x04 +#define UVC_VS_STILL_IMAGE_TRIGGER_CONTROL 0x05 +#define UVC_VS_STREAM_ERROR_CODE_CONTROL 0x06 +#define UVC_VS_GENERATE_KEY_FRAME_CONTROL 0x07 +#define UVC_VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08 +#define UVC_VS_SYNC_DELAY_CONTROL 0x09 + +/* B.1. USB Terminal Types */ +#define UVC_TT_VENDOR_SPECIFIC 0x0100 +#define UVC_TT_STREAMING 0x0101 + +/* B.2. Input Terminal Types */ +#define UVC_ITT_VENDOR_SPECIFIC 0x0200 +#define UVC_ITT_CAMERA 0x0201 +#define UVC_ITT_MEDIA_TRANSPORT_INPUT 0x0202 + +/* B.3. Output Terminal Types */ +#define UVC_OTT_VENDOR_SPECIFIC 0x0300 +#define UVC_OTT_DISPLAY 0x0301 +#define UVC_OTT_MEDIA_TRANSPORT_OUTPUT 0x0302 + +/* B.4. External Terminal Types */ +#define UVC_EXTERNAL_VENDOR_SPECIFIC 0x0400 +#define UVC_COMPOSITE_CONNECTOR 0x0401 +#define UVC_SVIDEO_CONNECTOR 0x0402 +#define UVC_COMPONENT_CONNECTOR 0x0403 + +/* 2.4.2.2. Status Packet Type */ +#define UVC_STATUS_TYPE_CONTROL 1 +#define UVC_STATUS_TYPE_STREAMING 2 + +/* 2.4.3.3. Payload Header Information */ +#define UVC_STREAM_EOH (1 << 7) +#define UVC_STREAM_ERR (1 << 6) +#define UVC_STREAM_STI (1 << 5) +#define UVC_STREAM_RES (1 << 4) +#define UVC_STREAM_SCR (1 << 3) +#define UVC_STREAM_PTS (1 << 2) +#define UVC_STREAM_EOF (1 << 1) +#define UVC_STREAM_FID (1 << 0) + +/* 4.1.2. Control Capabilities */ +#define UVC_CONTROL_CAP_GET (1 << 0) +#define UVC_CONTROL_CAP_SET (1 << 1) +#define UVC_CONTROL_CAP_DISABLED (1 << 2) +#define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3) +#define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4) + +/* ------------------------------------------------------------------------ + * UVC structures + */ + +/* All UVC descriptors have these 3 fields at the beginning */ +struct uvc_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; +} __attribute__((packed)); + +/* 3.7.2. Video Control Interface Header Descriptor */ +struct uvc_header_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u16 bcdUVC; + __u16 wTotalLength; + __u32 dwClockFrequency; + __u8 bInCollection; + __u8 baInterfaceNr[]; +} __attribute__((__packed__)); + +#define UVC_DT_HEADER_SIZE(n) (12+(n)) + +#define UVC_HEADER_DESCRIPTOR(n) \ + uvc_header_descriptor_##n + +#define DECLARE_UVC_HEADER_DESCRIPTOR(n) \ +struct UVC_HEADER_DESCRIPTOR(n) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u16 bcdUVC; \ + __u16 wTotalLength; \ + __u32 dwClockFrequency; \ + __u8 bInCollection; \ + __u8 baInterfaceNr[n]; \ +} __attribute__ ((packed)) + +/* 3.7.2.1. Input Terminal Descriptor */ +struct uvc_input_terminal_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bTerminalID; + __u16 wTerminalType; + __u8 bAssocTerminal; + __u8 iTerminal; +} __attribute__((__packed__)); + +#define UVC_DT_INPUT_TERMINAL_SIZE 8 + +/* 3.7.2.2. Output Terminal Descriptor */ +struct uvc_output_terminal_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bTerminalID; + __u16 wTerminalType; + __u8 bAssocTerminal; + __u8 bSourceID; + __u8 iTerminal; +} __attribute__((__packed__)); + +#define UVC_DT_OUTPUT_TERMINAL_SIZE 9 + +/* 3.7.2.3. Camera Terminal Descriptor */ +struct uvc_camera_terminal_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bTerminalID; + __u16 wTerminalType; + __u8 bAssocTerminal; + __u8 iTerminal; + __u16 wObjectiveFocalLengthMin; + __u16 wObjectiveFocalLengthMax; + __u16 wOcularFocalLength; + __u8 bControlSize; + __u8 bmControls[3]; +} __attribute__((__packed__)); + +#define UVC_DT_CAMERA_TERMINAL_SIZE(n) (15+(n)) + +/* 3.7.2.4. Selector Unit Descriptor */ +struct uvc_selector_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bUnitID; + __u8 bNrInPins; + __u8 baSourceID[0]; + __u8 iSelector; +} __attribute__((__packed__)); + +#define UVC_DT_SELECTOR_UNIT_SIZE(n) (6+(n)) + +#define UVC_SELECTOR_UNIT_DESCRIPTOR(n) \ + uvc_selector_unit_descriptor_##n + +#define DECLARE_UVC_SELECTOR_UNIT_DESCRIPTOR(n) \ +struct UVC_SELECTOR_UNIT_DESCRIPTOR(n) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u8 bUnitID; \ + __u8 bNrInPins; \ + __u8 baSourceID[n]; \ + __u8 iSelector; \ +} __attribute__ ((packed)) + +/* 3.7.2.5. Processing Unit Descriptor */ +struct uvc_processing_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bUnitID; + __u8 bSourceID; + __u16 wMaxMultiplier; + __u8 bControlSize; + __u8 bmControls[2]; + __u8 iProcessing; +} __attribute__((__packed__)); + +#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9+(n)) + +/* 3.7.2.6. Extension Unit Descriptor */ +struct uvc_extension_unit_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bUnitID; + __u8 guidExtensionCode[16]; + __u8 bNumControls; + __u8 bNrInPins; + __u8 baSourceID[0]; + __u8 bControlSize; + __u8 bmControls[0]; + __u8 iExtension; +} __attribute__((__packed__)); + +#define UVC_DT_EXTENSION_UNIT_SIZE(p, n) (24+(p)+(n)) + +#define UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) \ + uvc_extension_unit_descriptor_##p_##n + +#define DECLARE_UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) \ +struct UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u8 bUnitID; \ + __u8 guidExtensionCode[16]; \ + __u8 bNumControls; \ + __u8 bNrInPins; \ + __u8 baSourceID[p]; \ + __u8 bControlSize; \ + __u8 bmControls[n]; \ + __u8 iExtension; \ +} __attribute__ ((packed)) + +/* 3.8.2.2. Video Control Interrupt Endpoint Descriptor */ +struct uvc_control_endpoint_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u16 wMaxTransferSize; +} __attribute__((__packed__)); + +#define UVC_DT_CONTROL_ENDPOINT_SIZE 5 + +/* 3.9.2.1. Input Header Descriptor */ +struct uvc_input_header_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bNumFormats; + __u16 wTotalLength; + __u8 bEndpointAddress; + __u8 bmInfo; + __u8 bTerminalLink; + __u8 bStillCaptureMethod; + __u8 bTriggerSupport; + __u8 bTriggerUsage; + __u8 bControlSize; + __u8 bmaControls[]; +} __attribute__((__packed__)); + +#define UVC_DT_INPUT_HEADER_SIZE(n, p) (13+(n*p)) + +#define UVC_INPUT_HEADER_DESCRIPTOR(n, p) \ + uvc_input_header_descriptor_##n_##p + +#define DECLARE_UVC_INPUT_HEADER_DESCRIPTOR(n, p) \ +struct UVC_INPUT_HEADER_DESCRIPTOR(n, p) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u8 bNumFormats; \ + __u16 wTotalLength; \ + __u8 bEndpointAddress; \ + __u8 bmInfo; \ + __u8 bTerminalLink; \ + __u8 bStillCaptureMethod; \ + __u8 bTriggerSupport; \ + __u8 bTriggerUsage; \ + __u8 bControlSize; \ + __u8 bmaControls[p][n]; \ +} __attribute__ ((packed)) + +/* 3.9.2.2. Output Header Descriptor */ +struct uvc_output_header_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bNumFormats; + __u16 wTotalLength; + __u8 bEndpointAddress; + __u8 bTerminalLink; + __u8 bControlSize; + __u8 bmaControls[]; +} __attribute__((__packed__)); + +#define UVC_DT_OUTPUT_HEADER_SIZE(n, p) (9+(n*p)) + +#define UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) \ + uvc_output_header_descriptor_##n_##p + +#define DECLARE_UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) \ +struct UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u8 bNumFormats; \ + __u16 wTotalLength; \ + __u8 bEndpointAddress; \ + __u8 bTerminalLink; \ + __u8 bControlSize; \ + __u8 bmaControls[p][n]; \ +} __attribute__ ((packed)) + +/* 3.9.2.6. Color matching descriptor */ +struct uvc_color_matching_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bColorPrimaries; + __u8 bTransferCharacteristics; + __u8 bMatrixCoefficients; +} __attribute__((__packed__)); + +#define UVC_DT_COLOR_MATCHING_SIZE 6 + +/* 4.3.1.1. Video Probe and Commit Controls */ +struct uvc_streaming_control { + __u16 bmHint; + __u8 bFormatIndex; + __u8 bFrameIndex; + __u32 dwFrameInterval; + __u16 wKeyFrameRate; + __u16 wPFrameRate; + __u16 wCompQuality; + __u16 wCompWindowSize; + __u16 wDelay; + __u32 dwMaxVideoFrameSize; + __u32 dwMaxPayloadTransferSize; + __u32 dwClockFrequency; + __u8 bmFramingInfo; + __u8 bPreferedVersion; + __u8 bMinVersion; + __u8 bMaxVersion; +} __attribute__((__packed__)); + +/* Uncompressed Payload - 3.1.1. Uncompressed Video Format Descriptor */ +struct uvc_format_uncompressed { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bFormatIndex; + __u8 bNumFrameDescriptors; + __u8 guidFormat[16]; + __u8 bBitsPerPixel; + __u8 bDefaultFrameIndex; + __u8 bAspectRatioX; + __u8 bAspectRatioY; + __u8 bmInterfaceFlags; + __u8 bCopyProtect; +} __attribute__((__packed__)); + +#define UVC_DT_FORMAT_UNCOMPRESSED_SIZE 27 + +/* Uncompressed Payload - 3.1.2. Uncompressed Video Frame Descriptor */ +struct uvc_frame_uncompressed { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bFrameIndex; + __u8 bmCapabilities; + __u16 wWidth; + __u16 wHeight; + __u32 dwMinBitRate; + __u32 dwMaxBitRate; + __u32 dwMaxVideoFrameBufferSize; + __u32 dwDefaultFrameInterval; + __u8 bFrameIntervalType; + __u32 dwFrameInterval[]; +} __attribute__((__packed__)); + +#define UVC_DT_FRAME_UNCOMPRESSED_SIZE(n) (26+4*(n)) + +#define UVC_FRAME_UNCOMPRESSED(n) \ + uvc_frame_uncompressed_##n + +#define DECLARE_UVC_FRAME_UNCOMPRESSED(n) \ +struct UVC_FRAME_UNCOMPRESSED(n) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u8 bFrameIndex; \ + __u8 bmCapabilities; \ + __u16 wWidth; \ + __u16 wHeight; \ + __u32 dwMinBitRate; \ + __u32 dwMaxBitRate; \ + __u32 dwMaxVideoFrameBufferSize; \ + __u32 dwDefaultFrameInterval; \ + __u8 bFrameIntervalType; \ + __u32 dwFrameInterval[n]; \ +} __attribute__ ((packed)) + +/* MJPEG Payload - 3.1.1. MJPEG Video Format Descriptor */ +struct uvc_format_mjpeg { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bFormatIndex; + __u8 bNumFrameDescriptors; + __u8 bmFlags; + __u8 bDefaultFrameIndex; + __u8 bAspectRatioX; + __u8 bAspectRatioY; + __u8 bmInterfaceFlags; + __u8 bCopyProtect; +} __attribute__((__packed__)); + +#define UVC_DT_FORMAT_MJPEG_SIZE 11 + +/* MJPEG Payload - 3.1.2. MJPEG Video Frame Descriptor */ +struct uvc_frame_mjpeg { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bFrameIndex; + __u8 bmCapabilities; + __u16 wWidth; + __u16 wHeight; + __u32 dwMinBitRate; + __u32 dwMaxBitRate; + __u32 dwMaxVideoFrameBufferSize; + __u32 dwDefaultFrameInterval; + __u8 bFrameIntervalType; + __u32 dwFrameInterval[]; +} __attribute__((__packed__)); + +#define UVC_DT_FRAME_MJPEG_SIZE(n) (26+4*(n)) + +#define UVC_FRAME_MJPEG(n) \ + uvc_frame_mjpeg_##n + +#define DECLARE_UVC_FRAME_MJPEG(n) \ +struct UVC_FRAME_MJPEG(n) { \ + __u8 bLength; \ + __u8 bDescriptorType; \ + __u8 bDescriptorSubType; \ + __u8 bFrameIndex; \ + __u8 bmCapabilities; \ + __u16 wWidth; \ + __u16 wHeight; \ + __u32 dwMinBitRate; \ + __u32 dwMaxBitRate; \ + __u32 dwMaxVideoFrameBufferSize; \ + __u32 dwDefaultFrameInterval; \ + __u8 bFrameIntervalType; \ + __u32 dwFrameInterval[n]; \ +} __attribute__ ((packed)) + +#endif /* __LINUX_USB_VIDEO_H */ + diff --git a/kernel_headers/linux/usbdevice_fs.h b/kernel_headers/linux/usbdevice_fs.h new file mode 100644 index 0000000..a637424 --- /dev/null +++ b/kernel_headers/linux/usbdevice_fs.h @@ -0,0 +1,180 @@ +/*****************************************************************************/ + +/* + * usbdevice_fs.h -- USB device file system. + * + * Copyright (C) 2000 + * Thomas Sailer (sailer@ife.ee.ethz.ch) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * History: + * 0.1 04.01.2000 Created + */ + +/*****************************************************************************/ + +#ifndef _LINUX_USBDEVICE_FS_H +#define _LINUX_USBDEVICE_FS_H + +#include +#include + +/* --------------------------------------------------------------------- */ + +/* usbdevfs ioctl codes */ + +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; /* in milliseconds */ + void *data; +}; + +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; /* in milliseconds */ + void *data; +}; + +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; +}; + +struct usbdevfs_disconnectsignal { + unsigned int signr; + void *context; +}; + +#define USBDEVFS_MAXDRIVERNAME 255 + +struct usbdevfs_getdriver { + unsigned int interface; + char driver[USBDEVFS_MAXDRIVERNAME + 1]; +}; + +struct usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; +}; + +#define USBDEVFS_URB_SHORT_NOT_OK 0x01 +#define USBDEVFS_URB_ISO_ASAP 0x02 +#define USBDEVFS_URB_BULK_CONTINUATION 0x04 +#define USBDEVFS_URB_NO_FSBR 0x20 +#define USBDEVFS_URB_ZERO_PACKET 0x40 +#define USBDEVFS_URB_NO_INTERRUPT 0x80 + +#define USBDEVFS_URB_TYPE_ISO 0 +#define USBDEVFS_URB_TYPE_INTERRUPT 1 +#define USBDEVFS_URB_TYPE_CONTROL 2 +#define USBDEVFS_URB_TYPE_BULK 3 + +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; +}; + +struct usbdevfs_urb { + unsigned char type; + unsigned char endpoint; + int status; + unsigned int flags; + void *buffer; + int buffer_length; + int actual_length; + int start_frame; + int number_of_packets; + int error_count; + unsigned int signr; /* signal to be sent on completion, + or 0 if none should be sent. */ + void *usercontext; + struct usbdevfs_iso_packet_desc iso_frame_desc[0]; +}; + +/* ioctls for talking directly to drivers */ +struct usbdevfs_ioctl { + int ifno; /* interface 0..N ; negative numbers reserved */ + int ioctl_code; /* MUST encode size + direction of data so the + * macros in give correct values */ + void *data; /* param buffer (in, or out) */ +}; + +/* You can do most things with hubs just through control messages, + * except find out what device connects to what port. */ +struct usbdevfs_hub_portinfo { + char nports; /* number of downstream ports in this hub */ + char port [127]; /* e.g. port 3 connects to device 27 */ +}; + +/* Device capability flags */ +#define USBDEVFS_CAP_ZERO_PACKET 0x01 +#define USBDEVFS_CAP_BULK_CONTINUATION 0x02 +#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04 +#define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08 + +/* USBDEVFS_DISCONNECT_CLAIM flags & struct */ + +/* disconnect-and-claim if the driver matches the driver field */ +#define USBDEVFS_DISCONNECT_CLAIM_IF_DRIVER 0x01 +/* disconnect-and-claim except when the driver matches the driver field */ +#define USBDEVFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02 + +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[USBDEVFS_MAXDRIVERNAME + 1]; +}; + + +#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer) +#define USBDEVFS_CONTROL32 _IOWR('U', 0, struct usbdevfs_ctrltransfer32) +#define USBDEVFS_BULK _IOWR('U', 2, struct usbdevfs_bulktransfer) +#define USBDEVFS_BULK32 _IOWR('U', 2, struct usbdevfs_bulktransfer32) +#define USBDEVFS_RESETEP _IOR('U', 3, unsigned int) +#define USBDEVFS_SETINTERFACE _IOR('U', 4, struct usbdevfs_setinterface) +#define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int) +#define USBDEVFS_GETDRIVER _IOW('U', 8, struct usbdevfs_getdriver) +#define USBDEVFS_SUBMITURB _IOR('U', 10, struct usbdevfs_urb) +#define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32) +#define USBDEVFS_DISCARDURB _IO('U', 11) +#define USBDEVFS_REAPURB _IOW('U', 12, void *) +#define USBDEVFS_REAPURB32 _IOW('U', 12, __u32) +#define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *) +#define USBDEVFS_REAPURBNDELAY32 _IOW('U', 13, __u32) +#define USBDEVFS_DISCSIGNAL _IOR('U', 14, struct usbdevfs_disconnectsignal) +#define USBDEVFS_DISCSIGNAL32 _IOR('U', 14, struct usbdevfs_disconnectsignal32) +#define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int) +#define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int) +#define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo) +#define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl) +#define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32) +#define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo) +#define USBDEVFS_RESET _IO('U', 20) +#define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int) +#define USBDEVFS_DISCONNECT _IO('U', 22) +#define USBDEVFS_CONNECT _IO('U', 23) +#define USBDEVFS_CLAIM_PORT _IOR('U', 24, unsigned int) +#define USBDEVFS_RELEASE_PORT _IOR('U', 25, unsigned int) +#define USBDEVFS_GET_CAPABILITIES _IOR('U', 26, __u32) +#define USBDEVFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbdevfs_disconnect_claim) + +#endif /* _LINUX_USBDEVICE_FS_H */ diff --git a/kernel_headers/linux/utime.h b/kernel_headers/linux/utime.h new file mode 100644 index 0000000..5cdf673 --- /dev/null +++ b/kernel_headers/linux/utime.h @@ -0,0 +1,11 @@ +#ifndef _LINUX_UTIME_H +#define _LINUX_UTIME_H + +#include + +struct utimbuf { + __kernel_time_t actime; + __kernel_time_t modtime; +}; + +#endif diff --git a/kernel_headers/linux/utsname.h b/kernel_headers/linux/utsname.h new file mode 100644 index 0000000..6387d45 --- /dev/null +++ b/kernel_headers/linux/utsname.h @@ -0,0 +1,34 @@ +#ifndef _LINUX_UTSNAME_H +#define _LINUX_UTSNAME_H + +#define __OLD_UTS_LEN 8 + +struct oldold_utsname { + char sysname[9]; + char nodename[9]; + char release[9]; + char version[9]; + char machine[9]; +}; + +#define __NEW_UTS_LEN 64 + +struct old_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; +}; + +struct new_utsname { + char sysname[__NEW_UTS_LEN + 1]; + char nodename[__NEW_UTS_LEN + 1]; + char release[__NEW_UTS_LEN + 1]; + char version[__NEW_UTS_LEN + 1]; + char machine[__NEW_UTS_LEN + 1]; + char domainname[__NEW_UTS_LEN + 1]; +}; + + +#endif /* _LINUX_UTSNAME_H */ diff --git a/kernel_headers/linux/uuid.h b/kernel_headers/linux/uuid.h new file mode 100644 index 0000000..af891a3 --- /dev/null +++ b/kernel_headers/linux/uuid.h @@ -0,0 +1,58 @@ +/* + * UUID/GUID definition + * + * Copyright (C) 2010, Intel Corp. + * Huang Ying + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _LINUX_UUID_H_ +#define _LINUX_UUID_H_ + +#include +#include + +typedef struct { + __u8 b[16]; +} uuid_le; + +typedef struct { + __u8 b[16]; +} uuid_be; + +#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +((uuid_le) \ +{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ + (b) & 0xff, ((b) >> 8) & 0xff, \ + (c) & 0xff, ((c) >> 8) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + +#define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +((uuid_be) \ +{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ + ((b) >> 8) & 0xff, (b) & 0xff, \ + ((c) >> 8) & 0xff, (c) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + +#define NULL_UUID_LE \ + UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00) + +#define NULL_UUID_BE \ + UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00) + + +#endif /* _LINUX_UUID_H_ */ diff --git a/kernel_headers/linux/uvcvideo.h b/kernel_headers/linux/uvcvideo.h new file mode 100644 index 0000000..faff40e --- /dev/null +++ b/kernel_headers/linux/uvcvideo.h @@ -0,0 +1,70 @@ +#ifndef __LINUX_UVCVIDEO_H_ +#define __LINUX_UVCVIDEO_H_ + +#include +#include + +/* + * Dynamic controls + */ + +/* Data types for UVC control data */ +#define UVC_CTRL_DATA_TYPE_RAW 0 +#define UVC_CTRL_DATA_TYPE_SIGNED 1 +#define UVC_CTRL_DATA_TYPE_UNSIGNED 2 +#define UVC_CTRL_DATA_TYPE_BOOLEAN 3 +#define UVC_CTRL_DATA_TYPE_ENUM 4 +#define UVC_CTRL_DATA_TYPE_BITMASK 5 + +/* Control flags */ +#define UVC_CTRL_FLAG_SET_CUR (1 << 0) +#define UVC_CTRL_FLAG_GET_CUR (1 << 1) +#define UVC_CTRL_FLAG_GET_MIN (1 << 2) +#define UVC_CTRL_FLAG_GET_MAX (1 << 3) +#define UVC_CTRL_FLAG_GET_RES (1 << 4) +#define UVC_CTRL_FLAG_GET_DEF (1 << 5) +/* Control should be saved at suspend and restored at resume. */ +#define UVC_CTRL_FLAG_RESTORE (1 << 6) +/* Control can be updated by the camera. */ +#define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7) + +#define UVC_CTRL_FLAG_GET_RANGE \ + (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ + UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | \ + UVC_CTRL_FLAG_GET_DEF) + +struct uvc_menu_info { + __u32 value; + __u8 name[32]; +}; + +struct uvc_xu_control_mapping { + __u32 id; + __u8 name[32]; + __u8 entity[16]; + __u8 selector; + + __u8 size; + __u8 offset; + __u32 v4l2_type; + __u32 data_type; + + struct uvc_menu_info *menu_info; + __u32 menu_count; + + __u32 reserved[4]; +}; + +struct uvc_xu_control_query { + __u8 unit; + __u8 selector; + __u8 query; /* Video Class-Specific Request Code, */ + /* defined in linux/usb/video.h A.8. */ + __u16 size; + __u8 *data; +}; + +#define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping) +#define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query) + +#endif diff --git a/kernel_headers/linux/v4l2-common.h b/kernel_headers/linux/v4l2-common.h new file mode 100644 index 0000000..4f0667e --- /dev/null +++ b/kernel_headers/linux/v4l2-common.h @@ -0,0 +1,71 @@ +/* + * include/linux/v4l2-common.h + * + * Common V4L2 and V4L2 subdev definitions. + * + * Users are advised to #include this file either through videodev2.h + * (V4L2) or through v4l2-subdev.h (V4L2 subdev) rather than to refer + * to this file directly. + * + * Copyright (C) 2012 Nokia Corporation + * Contact: Sakari Ailus + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef __V4L2_COMMON__ +#define __V4L2_COMMON__ + +/* + * + * Selection interface definitions + * + */ + +/* Current cropping area */ +#define V4L2_SEL_TGT_CROP 0x0000 +/* Default cropping area */ +#define V4L2_SEL_TGT_CROP_DEFAULT 0x0001 +/* Cropping bounds */ +#define V4L2_SEL_TGT_CROP_BOUNDS 0x0002 +/* Current composing area */ +#define V4L2_SEL_TGT_COMPOSE 0x0100 +/* Default composing area */ +#define V4L2_SEL_TGT_COMPOSE_DEFAULT 0x0101 +/* Composing bounds */ +#define V4L2_SEL_TGT_COMPOSE_BOUNDS 0x0102 +/* Current composing area plus all padding pixels */ +#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103 + +/* Backward compatibility target definitions --- to be removed. */ +#define V4L2_SEL_TGT_CROP_ACTIVE V4L2_SEL_TGT_CROP +#define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE +#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL V4L2_SEL_TGT_CROP +#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL V4L2_SEL_TGT_COMPOSE +#define V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS V4L2_SEL_TGT_CROP_BOUNDS +#define V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS V4L2_SEL_TGT_COMPOSE_BOUNDS + +/* Selection flags */ +#define V4L2_SEL_FLAG_GE (1 << 0) +#define V4L2_SEL_FLAG_LE (1 << 1) +#define V4L2_SEL_FLAG_KEEP_CONFIG (1 << 2) + +/* Backward compatibility flag definitions --- to be removed. */ +#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE V4L2_SEL_FLAG_GE +#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE +#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG + +#endif /* __V4L2_COMMON__ */ diff --git a/kernel_headers/linux/v4l2-controls.h b/kernel_headers/linux/v4l2-controls.h new file mode 100644 index 0000000..216abb7 --- /dev/null +++ b/kernel_headers/linux/v4l2-controls.h @@ -0,0 +1,1257 @@ +/* + * Video for Linux Two controls header file + * + * Copyright (C) 1999-2012 the contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Alternatively you can redistribute this file under the terms of the + * BSD license as stated below: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. The names of its contributors may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The contents of this header was split off from videodev2.h. All control + * definitions should be added to this header, which is included by + * videodev2.h. + */ + +#ifndef __LINUX_V4L2_CONTROLS_H +#define __LINUX_V4L2_CONTROLS_H + +/* Control classes */ +#define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ +#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ +#define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ +#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator control class */ +#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */ +#define V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression controls */ +#define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000 /* Image source controls */ +#define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ +#define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ +#define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* Digital Video controls */ + +/* User-class control IDs */ + +#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) +#define V4L2_CID_USER_BASE V4L2_CID_BASE +#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) +#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) +#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) +#define V4L2_CID_SATURATION (V4L2_CID_BASE+2) +#define V4L2_CID_HUE (V4L2_CID_BASE+3) +#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5) +#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6) +#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7) +#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) +#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) +#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) +#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) /* Deprecated */ +#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) +#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) +#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) +#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) +#define V4L2_CID_GAMMA (V4L2_CID_BASE+16) +#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* Deprecated */ +#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) +#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) +#define V4L2_CID_GAIN (V4L2_CID_BASE+19) +#define V4L2_CID_HFLIP (V4L2_CID_BASE+20) +#define V4L2_CID_VFLIP (V4L2_CID_BASE+21) + +#define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) +enum v4l2_power_line_frequency { + V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, + V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1, + V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2, + V4L2_CID_POWER_LINE_FREQUENCY_AUTO = 3, +}; +#define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25) +#define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26) +#define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27) +#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28) +#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29) +#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) +#define V4L2_CID_COLORFX (V4L2_CID_BASE+31) +enum v4l2_colorfx { + V4L2_COLORFX_NONE = 0, + V4L2_COLORFX_BW = 1, + V4L2_COLORFX_SEPIA = 2, + V4L2_COLORFX_NEGATIVE = 3, + V4L2_COLORFX_EMBOSS = 4, + V4L2_COLORFX_SKETCH = 5, + V4L2_COLORFX_SKY_BLUE = 6, + V4L2_COLORFX_GRASS_GREEN = 7, + V4L2_COLORFX_SKIN_WHITEN = 8, + V4L2_COLORFX_VIVID = 9, + V4L2_COLORFX_AQUA = 10, + V4L2_COLORFX_ART_FREEZE = 11, + V4L2_COLORFX_SILHOUETTE = 12, + V4L2_COLORFX_SOLARIZATION = 13, + V4L2_COLORFX_ANTIQUE = 14, + V4L2_COLORFX_SET_CBCR = 15, +}; +#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) +#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) + +#define V4L2_CID_ROTATE (V4L2_CID_BASE+34) +#define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35) + +#define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36) + +#define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37) +#define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38) + +#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39) +#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40) + +#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41) +#define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42) + +/* last CID + 1 */ +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) +#define V4L2_CID_SPECIAL_EFFECT (V4L2_CID_BASE+44) +/* Minimum number of buffer neede by the device */ + +/* USER-class private control IDs */ + +/* The base for the meye driver controls. See linux/meye.h for the list + * of controls. We reserve 16 controls for this driver. */ +#define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000) + +/* The base for the bttv driver controls. + * We reserve 32 controls for this driver. */ +#define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010) + + +/* The base for the s2255 driver controls. + * We reserve 16 controls for this driver. */ +#define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030) + +/* The base for the si476x driver controls. See include/media/si476x.h for the list + * of controls. Total of 16 controls is reserved for this driver */ +#define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040) + +/* MPEG-class control IDs */ + +#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) +#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) + +/* MPEG streams, specific to multiplexed streams */ +#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) +enum v4l2_mpeg_stream_type { + V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */ + V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */ + V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2, /* MPEG-1 system stream */ + V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3, /* MPEG-2 DVD-compatible stream */ + V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */ + V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ +}; +#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) +#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) +#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) +#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) +#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) +#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) +#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) +enum v4l2_mpeg_stream_vbi_fmt { + V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */ + V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */ +}; + +/* MPEG audio controls specific to multiplexed streams */ +#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) +enum v4l2_mpeg_audio_sampling_freq { + V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, + V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, + V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, +}; +#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) +enum v4l2_mpeg_audio_encoding { + V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, + V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, + V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2, + V4L2_MPEG_AUDIO_ENCODING_AAC = 3, + V4L2_MPEG_AUDIO_ENCODING_AC3 = 4, +}; +#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) +enum v4l2_mpeg_audio_l1_bitrate { + V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, + V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2, + V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3, + V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4, + V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5, + V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6, + V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, + V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, + V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, + V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, + V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, + V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, + V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, +}; +#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) +enum v4l2_mpeg_audio_l2_bitrate { + V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, + V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2, + V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3, + V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4, + V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5, + V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, + V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, + V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, + V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, + V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, + V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, + V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, + V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, +}; +#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) +enum v4l2_mpeg_audio_l3_bitrate { + V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, + V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2, + V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3, + V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4, + V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5, + V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6, + V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, + V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, + V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, + V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, + V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, + V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, + V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, +}; +#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) +enum v4l2_mpeg_audio_mode { + V4L2_MPEG_AUDIO_MODE_STEREO = 0, + V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, + V4L2_MPEG_AUDIO_MODE_DUAL = 2, + V4L2_MPEG_AUDIO_MODE_MONO = 3, +}; +#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) +enum v4l2_mpeg_audio_mode_extension { + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, +}; +#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) +enum v4l2_mpeg_audio_emphasis { + V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, + V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, + V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, +}; +#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) +enum v4l2_mpeg_audio_crc { + V4L2_MPEG_AUDIO_CRC_NONE = 0, + V4L2_MPEG_AUDIO_CRC_CRC16 = 1, +}; +#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) +#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110) +#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111) +enum v4l2_mpeg_audio_ac3_bitrate { + V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1, + V4L2_MPEG_AUDIO_AC3_BITRATE_48K = 2, + V4L2_MPEG_AUDIO_AC3_BITRATE_56K = 3, + V4L2_MPEG_AUDIO_AC3_BITRATE_64K = 4, + V4L2_MPEG_AUDIO_AC3_BITRATE_80K = 5, + V4L2_MPEG_AUDIO_AC3_BITRATE_96K = 6, + V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7, + V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8, + V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9, + V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10, + V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11, + V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12, + V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13, + V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14, + V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15, + V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16, + V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17, + V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, +}; +#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112) +enum v4l2_mpeg_audio_dec_playback { + V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT = 2, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT = 3, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5, +}; +#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) + +/* MPEG video controls specific to multiplexed streams */ +#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) +enum v4l2_mpeg_video_encoding { + V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, + V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, + V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, +}; +#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) +enum v4l2_mpeg_video_aspect { + V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, + V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, + V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, + V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, +}; +#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) +#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) +#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) +#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) +#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) +enum v4l2_mpeg_video_bitrate_mode { + V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, + V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, +}; +#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) +#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) +#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) +#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) +#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) +#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212) +#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213) +#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214) +#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215) +#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216) +enum v4l2_mpeg_video_header_mode { + V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0, + V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1, + V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_I_FRAME = 2, + +}; +#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217) +#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) +enum v4l2_mpeg_video_multi_slice_mode { + V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0, + V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1, + V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, + V4L2_MPEG_VIDEO_MULTI_SLICE_GOB = 3, +}; +#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) +#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) +#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) +#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) +#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) + +#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) +#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) +#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302) +#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303) +#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304) +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350) +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351) +#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352) +#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353) +#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354) +#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355) +#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356) +#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357) +enum v4l2_mpeg_video_h264_entropy_mode { + V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0, + V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358) +#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359) +enum v4l2_mpeg_video_h264_level { + V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0, + V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1, + V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2, + V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3, + V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4, + V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5, + V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6, + V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7, + V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8, + V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9, + V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10, + V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11, + V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12, + V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13, + V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14, + V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15, + V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16, +}; +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362) +enum v4l2_mpeg_video_h264_loop_filter_mode { + V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 0, + V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 1, + V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY + = 2, +}; +#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363) +enum v4l2_mpeg_video_h264_profile { + V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0, + V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1, + V4L2_MPEG_VIDEO_H264_PROFILE_MAIN = 2, + V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED = 3, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH = 4, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10 = 5, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 = 6, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE = 7, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA = 8, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA = 9, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA = 10, + V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA = 11, + V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE = 12, + V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH = 13, + V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14, + V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15, + V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16, + V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17, +}; +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367) +enum v4l2_mpeg_video_h264_vui_sar_idc { + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11 = 2, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11 = 3, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11 = 4, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33 = 5, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11 = 6, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11 = 7, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11 = 8, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33 = 9, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11 = 10, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11 = 11, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33 = 12, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99 = 13, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3 = 14, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2 = 15, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, +}; +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) +enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) +enum v4l2_mpeg_video_h264_fmo_map_type { + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) +enum v4l2_mpeg_video_h264_fmo_change_dir { + V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, + V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) +#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) +#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) +enum v4l2_mpeg_video_h264_hierarchical_coding_type { + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) +#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) +#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) +#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404) +#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405) +enum v4l2_mpeg_video_mpeg4_level { + V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_1 = 2, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_2 = 3, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_3 = 4, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B = 5, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406) +enum v4l2_mpeg_video_mpeg4_profile { + V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE = 2, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407) +#define V4L2_CID_QCOM_VIDEO_SYNC_FRAME_SEQ_HDR (V4L2_CID_MPEG_BASE+408) + +/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ +#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) +enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { + V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, + V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) +enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) +enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { + V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, + V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) +enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { + V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, + V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) +#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) +enum v4l2_mpeg_cx2341x_video_median_filter_type { + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) +#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) + +/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ +#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) + +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0) +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2) +enum v4l2_mpeg_mfc51_video_frame_skip_mode { + V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, + V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, + V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, +}; +#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3) +enum v4l2_mpeg_mfc51_video_force_frame_type { + V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0, + V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1, + V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2, +}; +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4) +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) + +/* MPEG-class control IDs specific to the msm_vidc driver */ +#define V4L2_CID_MPEG_MSM_VIDC_BASE (V4L2_CTRL_CLASS_MPEG | 0x2000) + +#define V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_PICTURE_TYPE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE+0) +#define V4L2_CID_MPEG_VIDC_VIDEO_KEEP_ASPECT_RATIO \ + (V4L2_CID_MPEG_MSM_VIDC_BASE+1) +#define V4L2_CID_MPEG_VIDC_VIDEO_POST_LOOP_DEBLOCKER_MODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE+2) +#define V4L2_CID_MPEG_VIDC_VIDEO_DIVX_FORMAT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE+3) +enum v4l2_mpeg_vidc_video_divx_format_type { + V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_4 = 0, + V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_5 = 1, + V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_6 = 2, +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_MB_ERROR_MAP_REPORTING \ + (V4L2_CID_MPEG_MSM_VIDC_BASE+4) +#define V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER \ + (V4L2_CID_MPEG_MSM_VIDC_BASE+5) + +#define V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT (V4L2_CID_MPEG_MSM_VIDC_BASE+6) +enum v4l2_mpeg_vidc_video_stream_format { + V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_STARTCODES = 0, + V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_ONE_NAL_PER_BUFFER = 1, + V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_ONE_BYTE_LENGTH = 2, + V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_TWO_BYTE_LENGTH = 3, + V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_FOUR_BYTE_LENGTH = 4, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER (V4L2_CID_MPEG_MSM_VIDC_BASE+7) +enum v4l2_mpeg_vidc_video_output_order { + V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY = 0, + V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE = 1, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_FRAME_RATE (V4L2_CID_MPEG_MSM_VIDC_BASE+8) +#define V4L2_CID_MPEG_VIDC_VIDEO_IDR_PERIOD (V4L2_CID_MPEG_MSM_VIDC_BASE+9) +#define V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAMES (V4L2_CID_MPEG_MSM_VIDC_BASE+10) +#define V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES (V4L2_CID_MPEG_MSM_VIDC_BASE+11) +#define V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME (V4L2_CID_MPEG_MSM_VIDC_BASE+12) + +#define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL (V4L2_CID_MPEG_MSM_VIDC_BASE+13) +enum v4l2_mpeg_vidc_video_rate_control { + V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF = 0, + V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR = 1, + V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR = 2, + V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR = 3, + V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR = 4, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_ROTATION (V4L2_CID_MPEG_MSM_VIDC_BASE+14) +enum v4l2_mpeg_vidc_video_rotation { + V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_NONE = 0, + V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_90 = 1, + V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_180 = 2, + V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_270 = 3, +}; +#define MSM_VIDC_BASE V4L2_CID_MPEG_MSM_VIDC_BASE +#define V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL (MSM_VIDC_BASE+15) +enum v4l2_mpeg_vidc_h264_cabac_model { + V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_0 = 0, + V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_1 = 1, + V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_2 = 2, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE (MSM_VIDC_BASE+16) +enum v4l2_mpeg_vidc_video_intra_refresh_mode { + V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_NONE = 0, + V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC = 1, + V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_ADAPTIVE = 2, + V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC_ADAPTIVE = 3, + V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_RANDOM = 4, +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_AIR_MBS (V4L2_CID_MPEG_MSM_VIDC_BASE+17) +#define V4L2_CID_MPEG_VIDC_VIDEO_AIR_REF (V4L2_CID_MPEG_MSM_VIDC_BASE+18) +#define V4L2_CID_MPEG_VIDC_VIDEO_CIR_MBS (V4L2_CID_MPEG_MSM_VIDC_BASE+19) + +#define V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE (V4L2_CID_MPEG_MSM_VIDC_BASE+20) +enum v4l2_mpeg_vidc_video_h263_profile { + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BASELINE = 0, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_H320CODING = 1, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BACKWARDCOMPATIBLE = 2, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV2 = 3, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV3 = 4, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHCOMPRESSION = 5, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERNET = 6, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERLACE = 7, + V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHLATENCY = 8, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE+21) +enum v4l2_mpeg_vidc_video_h263_level { + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_1_0 = 0, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_2_0 = 1, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_3_0 = 2, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_0 = 3, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_5 = 4, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_5_0 = 5, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_6_0 = 6, + V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_7_0 = 7, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_H264_AU_DELIMITER \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 22) +enum v4l2_mpeg_vidc_video_h264_au_delimiter { + V4L2_MPEG_VIDC_VIDEO_H264_AU_DELIMITER_DISABLED = 0, + V4L2_MPEG_VIDC_VIDEO_H264_AU_DELIMITER_ENABLED = 1 +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 23) +enum v4l2_mpeg_vidc_video_sync_frame_decode { + V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_DISABLE = 0, + V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_ENABLE = 1 +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_SECURE (V4L2_CID_MPEG_MSM_VIDC_BASE+24) +#define V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 25) +enum v4l2_mpeg_vidc_extradata { + V4L2_MPEG_VIDC_EXTRADATA_NONE = 0, + V4L2_MPEG_VIDC_EXTRADATA_MB_QUANTIZATION = 1, + V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO = 2, + V4L2_MPEG_VIDC_EXTRADATA_VC1_FRAMEDISP = 3, + V4L2_MPEG_VIDC_EXTRADATA_VC1_SEQDISP = 4, + V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP = 5, + V4L2_MPEG_VIDC_EXTRADATA_S3D_FRAME_PACKING = 6, + V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE = 7, + V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW = 8, + V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI = 9, + V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO = 10, + V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB = 11, + V4L2_MPEG_VIDC_EXTRADATA_METADATA_FILLER = 12, + V4L2_MPEG_VIDC_EXTRADATA_INPUT_CROP = 13, + V4L2_MPEG_VIDC_EXTRADATA_DIGITAL_ZOOM = 14, + V4L2_MPEG_VIDC_EXTRADATA_ASPECT_RATIO = 15, + V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP = 16, + V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA = 17, + V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP = 18, + V4L2_MPEG_VIDC_EXTRADATA_FRAME_BITS_INFO = 19, + V4L2_MPEG_VIDC_EXTRADATA_LTR = 20, + V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI = 21, +}; + +#define V4L2_CID_MPEG_VIDC_SET_PERF_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE + 26) +enum v4l2_mpeg_vidc_perf_level { + V4L2_CID_MPEG_VIDC_PERF_LEVEL_NOMINAL = 0, + V4L2_CID_MPEG_VIDC_PERF_LEVEL_PERFORMANCE = 1, + V4L2_CID_MPEG_VIDC_PERF_LEVEL_TURBO = 2, +}; +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_GOB \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 27) + +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_DELIVERY_MODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 28) + +#define V4L2_CID_MPEG_VIDC_VIDEO_H264_VUI_TIMING_INFO \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 29) +enum v4l2_mpeg_vidc_video_h264_vui_timing_info { + V4L2_MPEG_VIDC_VIDEO_H264_VUI_TIMING_INFO_DISABLED = 0, + V4L2_MPEG_VIDC_VIDEO_H264_VUI_TIMING_INFO_ENABLED = 1 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_ALLOC_MODE_INPUT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 30) +#define V4L2_CID_MPEG_VIDC_VIDEO_ALLOC_MODE_OUTPUT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 31) +enum v4l2_mpeg_vidc_video_alloc_mode_type { + V4L2_MPEG_VIDC_VIDEO_STATIC = 0, + V4L2_MPEG_VIDC_VIDEO_RING = 1, + V4L2_MPEG_VIDC_VIDEO_DYNAMIC = 2, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_FRAME_ASSEMBLY \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 32) +enum v4l2_mpeg_vidc_video_assembly { + V4L2_MPEG_VIDC_FRAME_ASSEMBLY_DISABLE = 0, + V4L2_MPEG_VIDC_FRAME_ASSEMBLY_ENABLE = 1, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 33) +enum v4l2_mpeg_vidc_video_vp8_profile_level { + V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED, + V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0, + V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1, + V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2, + V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_H264_VUI_BITSTREAM_RESTRICT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 34) +enum v4l2_mpeg_vidc_video_h264_vui_bitstream_restrict { + V4L2_MPEG_VIDC_VIDEO_H264_VUI_BITSTREAM_RESTRICT_DISABLED = 0, + V4L2_MPEG_VIDC_VIDEO_H264_VUI_BITSTREAM_RESTRICT_ENABLED = 1 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_PRESERVE_TEXT_QUALITY \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 35) +enum v4l2_mpeg_vidc_video_preserve_text_quality { + V4L2_MPEG_VIDC_VIDEO_PRESERVE_TEXT_QUALITY_DISABLED = 0, + V4L2_MPEG_VIDC_VIDEO_PRESERVE_TEXT_QUALITY_ENABLED = 1 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 36) +enum v4l2_mpeg_vidc_video_deinterlace { + V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE_DISABLED = 0, + V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE_ENABLED = 1 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_MPEG4_TIME_RESOLUTION \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 37) + +#define V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_MODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 38) +enum v4l2_mpeg_vidc_video_decoder_multi_stream { + V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_PRIMARY = 0, + V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_SECONDARY = 1, +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_SCS_THRESHOLD \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 39) + +#define V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE+40) +enum v4l2_mpeg_vidc_video_mpeg2_level { + V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_0 = 0, + V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_1 = 1, + V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_2 = 2, + V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_3 = 3, +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_MSM_VIDC_BASE+41) +enum v4l2_mpeg_vidc_video_mpeg2_profile { + V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SIMPLE = 0, + V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_MAIN = 1, + V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_422 = 2, + V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 3, + V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SPATIAL_SCALABLE = 4, + V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_HIGH = 5, +}; +#define V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_SEQ_HEADER \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 42) + +#define V4L2_CID_MPEG_VIDC_VIDEO_MVC_BUFFER_LAYOUT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 43) +enum v4l2_mpeg_vidc_video_mvc_layout { + V4L2_MPEG_VIDC_VIDEO_MVC_SEQUENTIAL = 0, + V4L2_MPEG_VIDC_VIDEO_MVC_TOP_BOTTOM = 1 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_VP8_MIN_QP (V4L2_CID_MPEG_MSM_VIDC_BASE + 44) +#define V4L2_CID_MPEG_VIDC_VIDEO_VP8_MAX_QP (V4L2_CID_MPEG_MSM_VIDC_BASE + 45) +#define V4L2_CID_MPEG_VIDC_VIDEO_CONCEAL_COLOR \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 46) + +#define V4L2_CID_MPEG_VIDC_VIDEO_LTRMODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 47) + +enum v4l2_mpeg_vidc_video_ltrmode { + V4L2_MPEG_VIDC_VIDEO_LTR_MODE_DISABLE = 0, + V4L2_MPEG_VIDC_VIDEO_LTR_MODE_MANUAL = 1, + V4L2_MPEG_VIDC_VIDEO_LTR_MODE_PERIODIC = 2 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 48) + +#define V4L2_CID_MPEG_VIDC_VIDEO_USELTRFRAME \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 49) + +#define V4L2_CID_MPEG_VIDC_VIDEO_MARKLTRFRAME \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 50) + +#define V4L2_CID_MPEG_VIDC_VIDEO_HIER_P_NUM_LAYERS \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 51) + +#define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 52) +enum v4l2_mpeg_vidc_video_rate_control_timestamp_mode { + V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_HONOR = 0, + V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_IGNORE = 1, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 53) +enum vl42_mpeg_vidc_video_enable_initial_qp { + V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP_IFRAME = 0x1, + V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP_PFRAME = 0x2, + V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP_BFRAME = 0x4, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_I_FRAME_QP \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 54) + +#define V4L2_CID_MPEG_VIDC_VIDEO_P_FRAME_QP \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 55) + +#define V4L2_CID_MPEG_VIDC_VIDEO_B_FRAME_QP \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 56) + +#define V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_X_RANGE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 57) + +#define V4L2_CID_MPEG_VIDC_VIDEO_PFRAME_X_RANGE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 58) + +#define V4L2_CID_MPEG_VIDC_VIDEO_BFRAME_X_RANGE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 59) + +#define V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_Y_RANGE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 60) + +#define V4L2_CID_MPEG_VIDC_VIDEO_PFRAME_Y_RANGE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 61) + +#define V4L2_CID_MPEG_VIDC_VIDEO_BFRAME_Y_RANGE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 62) + +#define V4L2_CID_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 63) + +#define V4L2_CID_MPEG_VIDC_VIDEO_BUFFER_SIZE_LIMIT \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 64) + +enum vl42_mpeg_vidc_video_vpx_error_resilience { + V4L2_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE_DISABLED = 0, + V4L2_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE_ENABLED = 1, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 65) +enum v4l2_mpeg_video_hevc_profile { + V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN = 0, + V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN10 = 1, + V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN_STILL_PIC = 2, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 66) +enum v4l2_mpeg_video_hevc_level { + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1 = 0, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_1 = 1, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2 = 2, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2 = 3, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2_1 = 4, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2_1 = 5, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3 = 6, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3 = 7, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3_1 = 8, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3_1 = 9, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4 = 10, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4 = 11, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4_1 = 12, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4_1 = 13, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5 = 14, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5 = 15, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1 = 16, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_1 = 17, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_2 = 18, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_2 = 19, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6 = 20, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6 = 21, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_1 = 22, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1 = 23, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_2 = 24, + V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_2 = 25, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_H264_NAL_SVC \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 67) + +enum vl42_mpeg_vidc_video_h264_svc_nal { + V4L2_CID_MPEG_VIDC_VIDEO_H264_NAL_SVC_DISABLED = 0, + V4L2_CID_MPEG_VIDC_VIDEO_H264_NAL_SVC_ENABLED = 1, +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_PERF_MODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 68) + +enum v4l2_mpeg_vidc_video_perf_mode { + V4L2_MPEG_VIDC_VIDEO_PERF_MAX_QUALITY = 1, + V4L2_MPEG_VIDC_VIDEO_PERF_POWER_SAVE = 2 +}; + +#define V4L2_CID_MPEG_VIDC_VIDEO_HIER_B_NUM_LAYERS \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 69) + +#define V4L2_CID_MPEG_VIDC_VIDEO_SECURE_SCALING_THRESHOLD \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 70) + +#define V4L2_CID_MPEG_VIDC_VIDEO_NON_SECURE_OUTPUT2 \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 71) + +#define V4L2_CID_MPEG_VIDC_VIDEO_HYBRID_HIERP_MODE \ + (V4L2_CID_MPEG_MSM_VIDC_BASE + 72) + +/* Camera class control IDs */ + +#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) +#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1) + +#define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1) +enum v4l2_exposure_auto_type { + V4L2_EXPOSURE_AUTO = 0, + V4L2_EXPOSURE_MANUAL = 1, + V4L2_EXPOSURE_SHUTTER_PRIORITY = 2, + V4L2_EXPOSURE_APERTURE_PRIORITY = 3 +}; +#define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2) +#define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3) + +#define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4) +#define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5) +#define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6) +#define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7) + +#define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8) +#define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9) + +#define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10) +#define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11) +#define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) + +#define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13) +#define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14) +#define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15) + +#define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16) + +#define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17) +#define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18) + +#define V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19) + +#define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20) +enum v4l2_auto_n_preset_white_balance { + V4L2_WHITE_BALANCE_MANUAL = 0, + V4L2_WHITE_BALANCE_AUTO = 1, + V4L2_WHITE_BALANCE_INCANDESCENT = 2, + V4L2_WHITE_BALANCE_FLUORESCENT = 3, + V4L2_WHITE_BALANCE_FLUORESCENT_H = 4, + V4L2_WHITE_BALANCE_HORIZON = 5, + V4L2_WHITE_BALANCE_DAYLIGHT = 6, + V4L2_WHITE_BALANCE_FLASH = 7, + V4L2_WHITE_BALANCE_CLOUDY = 8, + V4L2_WHITE_BALANCE_SHADE = 9, +}; + +#define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21) +#define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22) + +#define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23) +#define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24) +enum v4l2_iso_sensitivity_auto_type { + V4L2_ISO_SENSITIVITY_MANUAL = 0, + V4L2_ISO_SENSITIVITY_AUTO = 1, +}; + +#define V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25) +enum v4l2_exposure_metering { + V4L2_EXPOSURE_METERING_AVERAGE = 0, + V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1, + V4L2_EXPOSURE_METERING_SPOT = 2, + V4L2_EXPOSURE_METERING_MATRIX = 3, +}; + +#define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26) +enum v4l2_scene_mode { + V4L2_SCENE_MODE_NONE = 0, + V4L2_SCENE_MODE_BACKLIGHT = 1, + V4L2_SCENE_MODE_BEACH_SNOW = 2, + V4L2_SCENE_MODE_CANDLE_LIGHT = 3, + V4L2_SCENE_MODE_DAWN_DUSK = 4, + V4L2_SCENE_MODE_FALL_COLORS = 5, + V4L2_SCENE_MODE_FIREWORKS = 6, + V4L2_SCENE_MODE_LANDSCAPE = 7, + V4L2_SCENE_MODE_NIGHT = 8, + V4L2_SCENE_MODE_PARTY_INDOOR = 9, + V4L2_SCENE_MODE_PORTRAIT = 10, + V4L2_SCENE_MODE_SPORTS = 11, + V4L2_SCENE_MODE_SUNSET = 12, + V4L2_SCENE_MODE_TEXT = 13, +}; + +#define V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27) +#define V4L2_LOCK_EXPOSURE (1 << 0) +#define V4L2_LOCK_WHITE_BALANCE (1 << 1) +#define V4L2_LOCK_FOCUS (1 << 2) + +#define V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28) +#define V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29) +#define V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30) +#define V4L2_AUTO_FOCUS_STATUS_IDLE (0 << 0) +#define V4L2_AUTO_FOCUS_STATUS_BUSY (1 << 0) +#define V4L2_AUTO_FOCUS_STATUS_REACHED (1 << 1) +#define V4L2_AUTO_FOCUS_STATUS_FAILED (1 << 2) + +#define V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31) +enum v4l2_auto_focus_range { + V4L2_AUTO_FOCUS_RANGE_AUTO = 0, + V4L2_AUTO_FOCUS_RANGE_NORMAL = 1, + V4L2_AUTO_FOCUS_RANGE_MACRO = 2, + V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, +}; + + +/* FM Modulator class control IDs */ + +#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) +#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) + +#define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1) +#define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2) +#define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3) +#define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5) +#define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6) + +#define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64) +#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65) +#define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66) + +#define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80) +#define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81) +#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82) +#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83) +#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84) + +#define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96) +#define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97) +#define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98) + +#define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112) +enum v4l2_preemphasis { + V4L2_PREEMPHASIS_DISABLED = 0, + V4L2_PREEMPHASIS_50_uS = 1, + V4L2_PREEMPHASIS_75_uS = 2, +}; +#define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113) +#define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114) + + +/* Flash and privacy (indicator) light controls */ + +#define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900) +#define V4L2_CID_FLASH_CLASS (V4L2_CTRL_CLASS_FLASH | 1) + +#define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1) +enum v4l2_flash_led_mode { + V4L2_FLASH_LED_MODE_NONE, + V4L2_FLASH_LED_MODE_FLASH, + V4L2_FLASH_LED_MODE_TORCH, +}; + +#define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2) +enum v4l2_flash_strobe_source { + V4L2_FLASH_STROBE_SOURCE_SOFTWARE, + V4L2_FLASH_STROBE_SOURCE_EXTERNAL, +}; + +#define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3) +#define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4) +#define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5) + +#define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6) +#define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7) +#define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8) +#define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9) + +#define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10) +#define V4L2_FLASH_FAULT_OVER_VOLTAGE (1 << 0) +#define V4L2_FLASH_FAULT_TIMEOUT (1 << 1) +#define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2) +#define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) +#define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) +#define V4L2_FLASH_FAULT_INDICATOR (1 << 5) + +#define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) +#define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) + + +/* JPEG-class control IDs */ + +#define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900) +#define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1) + +#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1) +enum v4l2_jpeg_chroma_subsampling { + V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0, + V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1, + V4L2_JPEG_CHROMA_SUBSAMPLING_420 = 2, + V4L2_JPEG_CHROMA_SUBSAMPLING_411 = 3, + V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4, + V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5, +}; +#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2) +#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3) + +#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4) +#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0) +#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1) +#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16) +#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) +#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) + + +/* Image source controls */ +#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) +#define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) + +#define V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1) +#define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2) +#define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3) + + +/* Image processing controls */ + +#define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) +#define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1) + +#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1) +#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) +#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) + + +/* DV-class control IDs defined by V4L2 */ +#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) +#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) + +#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) +#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) +#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) +#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) +enum v4l2_dv_tx_mode { + V4L2_DV_TX_MODE_DVI_D = 0, + V4L2_DV_TX_MODE_HDMI = 1, +}; +#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) +enum v4l2_dv_rgb_range { + V4L2_DV_RGB_RANGE_AUTO = 0, + V4L2_DV_RGB_RANGE_LIMITED = 1, + V4L2_DV_RGB_RANGE_FULL = 2, +}; + +#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) +#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) + +#define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900) +#define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1) + +#define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1) +enum v4l2_deemphasis { + V4L2_DEEMPHASIS_DISABLED = V4L2_PREEMPHASIS_DISABLED, + V4L2_DEEMPHASIS_50_uS = V4L2_PREEMPHASIS_50_uS, + V4L2_DEEMPHASIS_75_uS = V4L2_PREEMPHASIS_75_uS, +}; + +#define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) + +#endif diff --git a/kernel_headers/linux/v4l2-dv-timings.h b/kernel_headers/linux/v4l2-dv-timings.h new file mode 100644 index 0000000..4e0c58d --- /dev/null +++ b/kernel_headers/linux/v4l2-dv-timings.h @@ -0,0 +1,834 @@ +/* + * V4L2 DV timings header. + * + * Copyright (C) 2012 Hans Verkuil + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef _V4L2_DV_TIMINGS_H +#define _V4L2_DV_TIMINGS_H + +#if __GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 6)) +/* Sadly gcc versions older than 4.6 have a bug in how they initialize + anonymous unions where they require additional curly brackets. + This violates the C1x standard. This workaround adds the curly brackets + if needed. */ +#define V4L2_INIT_BT_TIMINGS(_width, args...) \ + { .bt = { _width , ## args } } +#else +#define V4L2_INIT_BT_TIMINGS(_width, args...) \ + .bt = { _width , ## args } +#endif + +/* CEA-861-E timings (i.e. standard HDTV timings) */ + +#define V4L2_DV_BT_CEA_640X480P59_94 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ + 25175000, 16, 96, 48, 10, 2, 33, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, 0) \ +} + +/* Note: these are the nominal timings, for HDMI links this format is typically + * double-clocked to meet the minimum pixelclock requirements. */ +#define V4L2_DV_BT_CEA_720X480I59_94 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(720, 480, 1, 0, \ + 13500000, 19, 62, 57, 4, 3, 15, 4, 3, 16, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_HALF_LINE) \ +} + +#define V4L2_DV_BT_CEA_720X480P59_94 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(720, 480, 0, 0, \ + 27000000, 16, 62, 60, 9, 6, 30, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, 0) \ +} + +/* Note: these are the nominal timings, for HDMI links this format is typically + * double-clocked to meet the minimum pixelclock requirements. */ +#define V4L2_DV_BT_CEA_720X576I50 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(720, 576, 1, 0, \ + 13500000, 12, 63, 69, 2, 3, 19, 2, 3, 20, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_HALF_LINE) \ +} + +#define V4L2_DV_BT_CEA_720X576P50 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(720, 576, 0, 0, \ + 27000000, 12, 64, 68, 5, 5, 39, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, 0) \ +} + +#define V4L2_DV_BT_CEA_1280X720P24 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 59400000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ + V4L2_DV_FL_CAN_REDUCE_FPS) \ +} + +#define V4L2_DV_BT_CEA_1280X720P25 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 2420, 40, 220, 5, 5, 20, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, 0) \ +} + +#define V4L2_DV_BT_CEA_1280X720P30 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ +} + +#define V4L2_DV_BT_CEA_1280X720P50 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 440, 40, 220, 5, 5, 20, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, 0) \ +} + +#define V4L2_DV_BT_CEA_1280X720P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 110, 40, 220, 5, 5, 20, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ +} + +#define V4L2_DV_BT_CEA_1920X1080P24 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 638, 44, 148, 4, 5, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ +} + +#define V4L2_DV_BT_CEA_1920X1080P25 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, 0) \ +} + +#define V4L2_DV_BT_CEA_1920X1080P30 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ +} + +#define V4L2_DV_BT_CEA_1920X1080I50 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 528, 44, 148, 2, 5, 15, 2, 5, 16, \ + V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_HALF_LINE) \ +} + +#define V4L2_DV_BT_CEA_1920X1080P50 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 148500000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_CEA861, 0) \ +} + +#define V4L2_DV_BT_CEA_1920X1080I60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 74250000, 88, 44, 148, 2, 5, 15, 2, 5, 16, \ + V4L2_DV_BT_STD_CEA861, \ + V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_HALF_LINE) \ +} + +#define V4L2_DV_BT_CEA_1920X1080P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 148500000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ + V4L2_DV_FL_CAN_REDUCE_FPS) \ +} + + +/* VESA Discrete Monitor Timings as per version 1.0, revision 12 */ + +#define V4L2_DV_BT_DMT_640X350P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(640, 350, 0, V4L2_DV_HSYNC_POS_POL, \ + 31500000, 32, 64, 96, 32, 3, 60, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_640X400P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(640, 400, 0, V4L2_DV_VSYNC_POS_POL, \ + 31500000, 32, 64, 96, 1, 3, 41, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_720X400P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(720, 400, 0, V4L2_DV_VSYNC_POS_POL, \ + 35500000, 36, 72, 108, 1, 3, 42, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +/* VGA resolutions */ +#define V4L2_DV_BT_DMT_640X480P60 V4L2_DV_BT_CEA_640X480P59_94 + +#define V4L2_DV_BT_DMT_640X480P72 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ + 31500000, 24, 40, 128, 9, 3, 28, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_640X480P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ + 31500000, 16, 64, 120, 1, 3, 16, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_640X480P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ + 36000000, 56, 56, 80, 1, 3, 25, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +/* SVGA resolutions */ +#define V4L2_DV_BT_DMT_800X600P56 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(800, 600, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 36000000, 24, 72, 128, 1, 2, 22, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_800X600P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(800, 600, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 40000000, 40, 128, 88, 1, 4, 23, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_800X600P72 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(800, 600, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 50000000, 56, 120, 64, 37, 6, 23, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_800X600P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(800, 600, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 49500000, 16, 80, 160, 1, 3, 21, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_800X600P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(800, 600, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 56250000, 32, 64, 152, 1, 3, 27, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_800X600P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(800, 600, 0, V4L2_DV_HSYNC_POS_POL, \ + 73250000, 48, 32, 80, 3, 4, 29, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_848X480P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(848, 480, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 33750000, 16, 112, 112, 6, 8, 23, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1024X768I43 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1024, 768, 1, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 44900000, 8, 176, 56, 0, 4, 20, 0, 4, 21, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +/* XGA resolutions */ +#define V4L2_DV_BT_DMT_1024X768P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \ + 65000000, 24, 136, 160, 3, 6, 29, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1024X768P70 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \ + 75000000, 24, 136, 144, 3, 6, 29, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1024X768P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1024, 768, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 78750000, 16, 96, 176, 1, 3, 28, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1024X768P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1024, 768, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 94500000, 48, 96, 208, 1, 3, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1024X768P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1024, 768, 0, V4L2_DV_HSYNC_POS_POL, \ + 115500000, 48, 32, 80, 3, 4, 38, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* XGA+ resolution */ +#define V4L2_DV_BT_DMT_1152X864P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1152, 864, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 108000000, 64, 128, 256, 1, 3, 32, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X720P60 V4L2_DV_BT_CEA_1280X720P60 + +/* WXGA resolutions */ +#define V4L2_DV_BT_DMT_1280X768P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \ + 68250000, 48, 32, 80, 3, 7, 12, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1280X768P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ + 79500000, 64, 128, 192, 3, 7, 20, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X768P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ + 102250000, 80, 128, 208, 3, 7, 27, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X768P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ + 117500000, 80, 136, 216, 3, 7, 31, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X768P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \ + 140250000, 48, 32, 80, 3, 7, 35, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1280X800P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \ + 71000000, 48, 32, 80, 3, 6, 14, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1280X800P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ + 83500000, 72, 128, 200, 3, 6, 22, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X800P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ + 106500000, 80, 128, 208, 3, 6, 29, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X800P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ + 122500000, 80, 136, 216, 3, 6, 34, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X800P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \ + 146250000, 48, 32, 80, 3, 6, 38, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1280X960P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 960, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 108000000, 96, 112, 312, 1, 3, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X960P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 960, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 148500000, 64, 160, 224, 1, 3, 47, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X960P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 960, 0, V4L2_DV_HSYNC_POS_POL, \ + 175500000, 48, 32, 80, 3, 4, 50, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* SXGA resolutions */ +#define V4L2_DV_BT_DMT_1280X1024P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 108000000, 48, 112, 248, 1, 3, 38, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X1024P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 135000000, 16, 144, 248, 1, 3, 38, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X1024P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 157500000, 64, 160, 224, 1, 3, 44, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1280X1024P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1280, 1024, 0, V4L2_DV_HSYNC_POS_POL, \ + 187250000, 48, 32, 80, 3, 7, 50, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1360X768P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1360, 768, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 85500000, 64, 112, 256, 3, 6, 18, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1360X768P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1360, 768, 0, V4L2_DV_HSYNC_POS_POL, \ + 148250000, 48, 32, 80, 3, 5, 37, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1366X768P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 85500000, 70, 143, 213, 3, 3, 24, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1366X768P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 72000000, 14, 56, 64, 1, 3, 28, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* SXGA+ resolutions */ +#define V4L2_DV_BT_DMT_1400X1050P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ + 101000000, 48, 32, 80, 3, 4, 23, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1400X1050P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ + 121750000, 88, 144, 232, 3, 4, 32, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1400X1050P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ + 156000000, 104, 144, 248, 3, 4, 42, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1400X1050P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ + 179500000, 104, 152, 256, 3, 4, 48, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1400X1050P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ + 208000000, 48, 32, 80, 3, 4, 55, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* WXGA+ resolutions */ +#define V4L2_DV_BT_DMT_1440X900P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \ + 88750000, 48, 32, 80, 3, 6, 17, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1440X900P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ + 106500000, 80, 152, 232, 3, 6, 25, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1440X900P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ + 136750000, 96, 152, 248, 3, 6, 33, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1440X900P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ + 157000000, 104, 152, 256, 3, 6, 39, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1440X900P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \ + 182750000, 48, 32, 80, 3, 6, 44, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1600X900P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 900, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 108000000, 24, 80, 96, 1, 3, 96, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* UXGA resolutions */ +#define V4L2_DV_BT_DMT_1600X1200P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 162000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1600X1200P65 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 175500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1600X1200P70 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 189000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1600X1200P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 202500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1600X1200P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 229500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1600X1200P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1600, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ + 268250000, 48, 32, 80, 3, 4, 64, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* WSXGA+ resolutions */ +#define V4L2_DV_BT_DMT_1680X1050P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ + 119000000, 48, 32, 80, 3, 6, 21, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1680X1050P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ + 146250000, 104, 176, 280, 3, 6, 30, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1680X1050P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ + 187000000, 120, 176, 296, 3, 6, 40, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1680X1050P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ + 214750000, 128, 176, 304, 3, 6, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1680X1050P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ + 245500000, 48, 32, 80, 3, 6, 53, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1792X1344P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \ + 204750000, 128, 200, 328, 1, 3, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1792X1344P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \ + 261000000, 96, 216, 352, 1, 3, 69, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1792X1344P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_HSYNC_POS_POL, \ + 333250000, 48, 32, 80, 3, 4, 72, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1856X1392P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \ + 218250000, 96, 224, 352, 1, 3, 43, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1856X1392P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \ + 288000000, 128, 224, 352, 1, 3, 104, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1856X1392P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_HSYNC_POS_POL, \ + 356500000, 48, 32, 80, 3, 4, 75, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1920X1080P60 V4L2_DV_BT_CEA_1920X1080P60 + +/* WUXGA resolutions */ +#define V4L2_DV_BT_DMT_1920X1200P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ + 154000000, 48, 32, 80, 3, 6, 26, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1920X1200P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ + 193250000, 136, 200, 336, 3, 6, 36, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1920X1200P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ + 245250000, 136, 208, 344, 3, 6, 46, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1920X1200P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ + 281250000, 144, 208, 352, 3, 6, 53, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_1920X1200P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ + 317000000, 48, 32, 80, 3, 6, 62, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1920X1440P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \ + 234000000, 128, 208, 344, 1, 3, 56, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1920X1440P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \ + 297000000, 144, 224, 352, 1, 3, 56, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#define V4L2_DV_BT_DMT_1920X1440P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_HSYNC_POS_POL, \ + 380500000, 48, 32, 80, 3, 4, 78, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_2048X1152P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(2048, 1152, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 162000000, 26, 80, 96, 1, 3, 44, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ +} + +/* WQXGA resolutions */ +#define V4L2_DV_BT_DMT_2560X1600P60_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \ + 268500000, 48, 32, 80, 3, 6, 37, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_2560X1600P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ + 348500000, 192, 280, 472, 3, 6, 49, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_2560X1600P75 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ + 443250000, 208, 280, 488, 3, 6, 63, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_2560X1600P85 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ + 505250000, 208, 280, 488, 3, 6, 73, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ +} + +#define V4L2_DV_BT_DMT_2560X1600P120_RB { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \ + 552750000, 48, 32, 80, 3, 6, 85, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ + V4L2_DV_FL_REDUCED_BLANKING) \ +} + +#define V4L2_DV_BT_DMT_1366X768P60 { \ + .type = V4L2_DV_BT_656_1120, \ + V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ + V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ + 85500000, 70, 143, 213, 3, 3, 24, 0, 0, 0, \ + V4L2_DV_BT_STD_DMT, 0) \ +} + +#endif diff --git a/kernel_headers/linux/v4l2-mediabus.h b/kernel_headers/linux/v4l2-mediabus.h new file mode 100644 index 0000000..6ee63d0 --- /dev/null +++ b/kernel_headers/linux/v4l2-mediabus.h @@ -0,0 +1,130 @@ +/* + * Media Bus API header + * + * Copyright (C) 2009, Guennadi Liakhovetski + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __LINUX_V4L2_MEDIABUS_H +#define __LINUX_V4L2_MEDIABUS_H + +#include +#include + +/* + * These pixel codes uniquely identify data formats on the media bus. Mostly + * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is + * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the + * data format is fixed. Additionally, "2X8" means that one pixel is transferred + * in two 8-bit samples, "BE" or "LE" specify in which order those samples are + * transferred over the bus: "LE" means that the least significant bits are + * transferred first, "BE" means that the most significant bits are transferred + * first, and "PADHI" and "PADLO" define which bits - low or high, in the + * incomplete high byte, are filled with padding bits. + * + * The pixel codes are grouped by type, bus_width, bits per component, samples + * per pixel and order of subsamples. Numerical values are sorted using generic + * numerical sort order (8 thus comes before 10). + * + * As their value can't change when a new pixel code is inserted in the + * enumeration, the pixel codes are explicitly given a numerical value. The next + * free values for each category are listed below, update them when inserting + * new pixel codes. + */ +enum v4l2_mbus_pixelcode { + V4L2_MBUS_FMT_FIXED = 0x0001, + + /* RGB - next is 0x100d */ + V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001, + V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002, + V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003, + V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004, + V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005, + V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006, + V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, + V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, + V4L2_MBUS_FMT_RGB666_1X18 = 0x1009, + V4L2_MBUS_FMT_RGB888_1X24 = 0x100a, + V4L2_MBUS_FMT_RGB888_2X12_BE = 0x100b, + V4L2_MBUS_FMT_RGB888_2X12_LE = 0x100c, + + /* YUV (including grey) - next is 0x2017 */ + V4L2_MBUS_FMT_Y8_1X8 = 0x2001, + V4L2_MBUS_FMT_UV8_1X8 = 0x2015, + V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, + V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, + V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, + V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005, + V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006, + V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007, + V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008, + V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009, + V4L2_MBUS_FMT_Y10_1X10 = 0x200a, + V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b, + V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c, + V4L2_MBUS_FMT_Y12_1X12 = 0x2013, + V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f, + V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, + V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, + V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, + V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014, + V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, + V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, + V4L2_MBUS_FMT_YUV10_1X30 = 0x2016, + + /* Bayer - next is 0x3019 */ + V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, + V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, + V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, + V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, + V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8 = 0x3015, + V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8 = 0x3016, + V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8 = 0x3017, + V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8 = 0x3018, + V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, + V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, + V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, + V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8 = 0x300d, + V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 0x3003, + V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 0x3004, + V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 0x3005, + V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 0x3006, + V4L2_MBUS_FMT_SBGGR10_1X10 = 0x3007, + V4L2_MBUS_FMT_SGBRG10_1X10 = 0x300e, + V4L2_MBUS_FMT_SGRBG10_1X10 = 0x300a, + V4L2_MBUS_FMT_SRGGB10_1X10 = 0x300f, + V4L2_MBUS_FMT_SBGGR12_1X12 = 0x3008, + V4L2_MBUS_FMT_SGBRG12_1X12 = 0x3010, + V4L2_MBUS_FMT_SGRBG12_1X12 = 0x3011, + V4L2_MBUS_FMT_SRGGB12_1X12 = 0x3012, + + /* JPEG compressed formats - next is 0x4002 */ + V4L2_MBUS_FMT_JPEG_1X8 = 0x4001, + + /* Vendor specific formats - next is 0x5002 */ + + /* S5C73M3 sensor specific interleaved UYVY and JPEG */ + V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001, +}; + +/** + * struct v4l2_mbus_framefmt - frame format on the media bus + * @width: frame width + * @height: frame height + * @code: data format code (from enum v4l2_mbus_pixelcode) + * @field: used interlacing type (from enum v4l2_field) + * @colorspace: colorspace of the data (from enum v4l2_colorspace) + */ +struct v4l2_mbus_framefmt { + __u32 width; + __u32 height; + __u32 code; + __u32 field; + __u32 colorspace; + __u32 reserved[7]; +}; + +#endif diff --git a/kernel_headers/linux/v4l2-subdev.h b/kernel_headers/linux/v4l2-subdev.h new file mode 100644 index 0000000..c1add0d --- /dev/null +++ b/kernel_headers/linux/v4l2-subdev.h @@ -0,0 +1,180 @@ +/* + * V4L2 subdev userspace API + * + * Copyright (C) 2010 Nokia Corporation + * + * Contacts: Laurent Pinchart + * Sakari Ailus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LINUX_V4L2_SUBDEV_H +#define __LINUX_V4L2_SUBDEV_H + +#include +#include +#include +#include + +/** + * enum v4l2_subdev_format_whence - Media bus format type + * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only + * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device + */ +enum v4l2_subdev_format_whence { + V4L2_SUBDEV_FORMAT_TRY = 0, + V4L2_SUBDEV_FORMAT_ACTIVE = 1, +}; + +/** + * struct v4l2_subdev_format - Pad-level media bus format + * @which: format type (from enum v4l2_subdev_format_whence) + * @pad: pad number, as reported by the media API + * @format: media bus format (format code and frame size) + */ +struct v4l2_subdev_format { + __u32 which; + __u32 pad; + struct v4l2_mbus_framefmt format; + __u32 reserved[8]; +}; + +/** + * struct v4l2_subdev_crop - Pad-level crop settings + * @which: format type (from enum v4l2_subdev_format_whence) + * @pad: pad number, as reported by the media API + * @rect: pad crop rectangle boundaries + */ +struct v4l2_subdev_crop { + __u32 which; + __u32 pad; + struct v4l2_rect rect; + __u32 reserved[8]; +}; + +/** + * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration + * @pad: pad number, as reported by the media API + * @index: format index during enumeration + * @code: format code (from enum v4l2_mbus_pixelcode) + */ +struct v4l2_subdev_mbus_code_enum { + __u32 pad; + __u32 index; + __u32 code; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_frame_size_enum - Media bus format enumeration + * @pad: pad number, as reported by the media API + * @index: format index during enumeration + * @code: format code (from enum v4l2_mbus_pixelcode) + */ +struct v4l2_subdev_frame_size_enum { + __u32 index; + __u32 pad; + __u32 code; + __u32 min_width; + __u32 max_width; + __u32 min_height; + __u32 max_height; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_frame_interval - Pad-level frame rate + * @pad: pad number, as reported by the media API + * @interval: frame interval in seconds + */ +struct v4l2_subdev_frame_interval { + __u32 pad; + struct v4l2_fract interval; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_frame_interval_enum - Frame interval enumeration + * @pad: pad number, as reported by the media API + * @index: frame interval index during enumeration + * @code: format code (from enum v4l2_mbus_pixelcode) + * @width: frame width in pixels + * @height: frame height in pixels + * @interval: frame interval in seconds + */ +struct v4l2_subdev_frame_interval_enum { + __u32 index; + __u32 pad; + __u32 code; + __u32 width; + __u32 height; + struct v4l2_fract interval; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_selection - selection info + * + * @which: either V4L2_SUBDEV_FORMAT_ACTIVE or V4L2_SUBDEV_FORMAT_TRY + * @pad: pad number, as reported by the media API + * @target: Selection target, used to choose one of possible rectangles, + * defined in v4l2-common.h; V4L2_SEL_TGT_* . + * @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. + * @r: coordinates of the selection window + * @reserved: for future use, set to zero for now + * + * Hardware may use multiple helper windows to process a video stream. + * The structure is used to exchange this selection areas between + * an application and a driver. + */ +struct v4l2_subdev_selection { + __u32 which; + __u32 pad; + __u32 target; + __u32 flags; + struct v4l2_rect r; + __u32 reserved[8]; +}; + +struct v4l2_subdev_edid { + __u32 pad; + __u32 start_block; + __u32 blocks; + __u32 reserved[5]; + __u8 *edid; +}; + +#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) +#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) +#define VIDIOC_SUBDEV_G_FRAME_INTERVAL \ + _IOWR('V', 21, struct v4l2_subdev_frame_interval) +#define VIDIOC_SUBDEV_S_FRAME_INTERVAL \ + _IOWR('V', 22, struct v4l2_subdev_frame_interval) +#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \ + _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum) +#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \ + _IOWR('V', 74, struct v4l2_subdev_frame_size_enum) +#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \ + _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum) +#define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop) +#define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop) +#define VIDIOC_SUBDEV_G_SELECTION \ + _IOWR('V', 61, struct v4l2_subdev_selection) +#define VIDIOC_SUBDEV_S_SELECTION \ + _IOWR('V', 62, struct v4l2_subdev_selection) +#define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_subdev_edid) +#define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_subdev_edid) + +#endif diff --git a/kernel_headers/linux/version.h b/kernel_headers/linux/version.h new file mode 100644 index 0000000..2c70e35 --- /dev/null +++ b/kernel_headers/linux/version.h @@ -0,0 +1,2 @@ +#define LINUX_VERSION_CODE 199217 +#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/kernel_headers/linux/veth.h b/kernel_headers/linux/veth.h new file mode 100644 index 0000000..3354c1e --- /dev/null +++ b/kernel_headers/linux/veth.h @@ -0,0 +1,12 @@ +#ifndef __NET_VETH_H_ +#define __NET_VETH_H_ + +enum { + VETH_INFO_UNSPEC, + VETH_INFO_PEER, + + __VETH_INFO_MAX +#define VETH_INFO_MAX (__VETH_INFO_MAX - 1) +}; + +#endif diff --git a/kernel_headers/linux/vfio.h b/kernel_headers/linux/vfio.h new file mode 100644 index 0000000..7ec1864 --- /dev/null +++ b/kernel_headers/linux/vfio.h @@ -0,0 +1,378 @@ +/* + * VFIO API definition + * + * Copyright (C) 2012 Red Hat, Inc. All rights reserved. + * Author: Alex Williamson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef VFIO_H +#define VFIO_H + +#include +#include + +#define VFIO_API_VERSION 0 + + +/* Kernel & User level defines for VFIO IOCTLs. */ + +/* Extensions */ + +#define VFIO_TYPE1_IOMMU 1 + +/* + * The IOCTL interface is designed for extensibility by embedding the + * structure length (argsz) and flags into structures passed between + * kernel and userspace. We therefore use the _IO() macro for these + * defines to avoid implicitly embedding a size into the ioctl request. + * As structure fields are added, argsz will increase to match and flag + * bits will be defined to indicate additional fields with valid data. + * It's *always* the caller's responsibility to indicate the size of + * the structure passed by setting argsz appropriately. + */ + +#define VFIO_TYPE (';') +#define VFIO_BASE 100 + +/* -------- IOCTLs for VFIO file descriptor (/dev/vfio/vfio) -------- */ + +/** + * VFIO_GET_API_VERSION - _IO(VFIO_TYPE, VFIO_BASE + 0) + * + * Report the version of the VFIO API. This allows us to bump the entire + * API version should we later need to add or change features in incompatible + * ways. + * Return: VFIO_API_VERSION + * Availability: Always + */ +#define VFIO_GET_API_VERSION _IO(VFIO_TYPE, VFIO_BASE + 0) + +/** + * VFIO_CHECK_EXTENSION - _IOW(VFIO_TYPE, VFIO_BASE + 1, __u32) + * + * Check whether an extension is supported. + * Return: 0 if not supported, 1 (or some other positive integer) if supported. + * Availability: Always + */ +#define VFIO_CHECK_EXTENSION _IO(VFIO_TYPE, VFIO_BASE + 1) + +/** + * VFIO_SET_IOMMU - _IOW(VFIO_TYPE, VFIO_BASE + 2, __s32) + * + * Set the iommu to the given type. The type must be supported by an + * iommu driver as verified by calling CHECK_EXTENSION using the same + * type. A group must be set to this file descriptor before this + * ioctl is available. The IOMMU interfaces enabled by this call are + * specific to the value set. + * Return: 0 on success, -errno on failure + * Availability: When VFIO group attached + */ +#define VFIO_SET_IOMMU _IO(VFIO_TYPE, VFIO_BASE + 2) + +/* -------- IOCTLs for GROUP file descriptors (/dev/vfio/$GROUP) -------- */ + +/** + * VFIO_GROUP_GET_STATUS - _IOR(VFIO_TYPE, VFIO_BASE + 3, + * struct vfio_group_status) + * + * Retrieve information about the group. Fills in provided + * struct vfio_group_info. Caller sets argsz. + * Return: 0 on succes, -errno on failure. + * Availability: Always + */ +struct vfio_group_status { + __u32 argsz; + __u32 flags; +#define VFIO_GROUP_FLAGS_VIABLE (1 << 0) +#define VFIO_GROUP_FLAGS_CONTAINER_SET (1 << 1) +}; +#define VFIO_GROUP_GET_STATUS _IO(VFIO_TYPE, VFIO_BASE + 3) + +/** + * VFIO_GROUP_SET_CONTAINER - _IOW(VFIO_TYPE, VFIO_BASE + 4, __s32) + * + * Set the container for the VFIO group to the open VFIO file + * descriptor provided. Groups may only belong to a single + * container. Containers may, at their discretion, support multiple + * groups. Only when a container is set are all of the interfaces + * of the VFIO file descriptor and the VFIO group file descriptor + * available to the user. + * Return: 0 on success, -errno on failure. + * Availability: Always + */ +#define VFIO_GROUP_SET_CONTAINER _IO(VFIO_TYPE, VFIO_BASE + 4) + +/** + * VFIO_GROUP_UNSET_CONTAINER - _IO(VFIO_TYPE, VFIO_BASE + 5) + * + * Remove the group from the attached container. This is the + * opposite of the SET_CONTAINER call and returns the group to + * an initial state. All device file descriptors must be released + * prior to calling this interface. When removing the last group + * from a container, the IOMMU will be disabled and all state lost, + * effectively also returning the VFIO file descriptor to an initial + * state. + * Return: 0 on success, -errno on failure. + * Availability: When attached to container + */ +#define VFIO_GROUP_UNSET_CONTAINER _IO(VFIO_TYPE, VFIO_BASE + 5) + +/** + * VFIO_GROUP_GET_DEVICE_FD - _IOW(VFIO_TYPE, VFIO_BASE + 6, char) + * + * Return a new file descriptor for the device object described by + * the provided string. The string should match a device listed in + * the devices subdirectory of the IOMMU group sysfs entry. The + * group containing the device must already be added to this context. + * Return: new file descriptor on success, -errno on failure. + * Availability: When attached to container + */ +#define VFIO_GROUP_GET_DEVICE_FD _IO(VFIO_TYPE, VFIO_BASE + 6) + +/* --------------- IOCTLs for DEVICE file descriptors --------------- */ + +/** + * VFIO_DEVICE_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 7, + * struct vfio_device_info) + * + * Retrieve information about the device. Fills in provided + * struct vfio_device_info. Caller sets argsz. + * Return: 0 on success, -errno on failure. + */ +struct vfio_device_info { + __u32 argsz; + __u32 flags; +#define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ +#define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ + __u32 num_regions; /* Max region index + 1 */ + __u32 num_irqs; /* Max IRQ index + 1 */ +}; +#define VFIO_DEVICE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 7) + +/** + * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, + * struct vfio_region_info) + * + * Retrieve information about a device region. Caller provides + * struct vfio_region_info with index value set. Caller sets argsz. + * Implementation of region mapping is bus driver specific. This is + * intended to describe MMIO, I/O port, as well as bus specific + * regions (ex. PCI config space). Zero sized regions may be used + * to describe unimplemented regions (ex. unimplemented PCI BARs). + * Return: 0 on success, -errno on failure. + */ +struct vfio_region_info { + __u32 argsz; + __u32 flags; +#define VFIO_REGION_INFO_FLAG_READ (1 << 0) /* Region supports read */ +#define VFIO_REGION_INFO_FLAG_WRITE (1 << 1) /* Region supports write */ +#define VFIO_REGION_INFO_FLAG_MMAP (1 << 2) /* Region supports mmap */ + __u32 index; /* Region index */ + __u32 resv; /* Reserved for alignment */ + __u64 size; /* Region size (bytes) */ + __u64 offset; /* Region offset from start of device fd */ +}; +#define VFIO_DEVICE_GET_REGION_INFO _IO(VFIO_TYPE, VFIO_BASE + 8) + +/** + * VFIO_DEVICE_GET_IRQ_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 9, + * struct vfio_irq_info) + * + * Retrieve information about a device IRQ. Caller provides + * struct vfio_irq_info with index value set. Caller sets argsz. + * Implementation of IRQ mapping is bus driver specific. Indexes + * using multiple IRQs are primarily intended to support MSI-like + * interrupt blocks. Zero count irq blocks may be used to describe + * unimplemented interrupt types. + * + * The EVENTFD flag indicates the interrupt index supports eventfd based + * signaling. + * + * The MASKABLE flags indicates the index supports MASK and UNMASK + * actions described below. + * + * AUTOMASKED indicates that after signaling, the interrupt line is + * automatically masked by VFIO and the user needs to unmask the line + * to receive new interrupts. This is primarily intended to distinguish + * level triggered interrupts. + * + * The NORESIZE flag indicates that the interrupt lines within the index + * are setup as a set and new subindexes cannot be enabled without first + * disabling the entire index. This is used for interrupts like PCI MSI + * and MSI-X where the driver may only use a subset of the available + * indexes, but VFIO needs to enable a specific number of vectors + * upfront. In the case of MSI-X, where the user can enable MSI-X and + * then add and unmask vectors, it's up to userspace to make the decision + * whether to allocate the maximum supported number of vectors or tear + * down setup and incrementally increase the vectors as each is enabled. + */ +struct vfio_irq_info { + __u32 argsz; + __u32 flags; +#define VFIO_IRQ_INFO_EVENTFD (1 << 0) +#define VFIO_IRQ_INFO_MASKABLE (1 << 1) +#define VFIO_IRQ_INFO_AUTOMASKED (1 << 2) +#define VFIO_IRQ_INFO_NORESIZE (1 << 3) + __u32 index; /* IRQ index */ + __u32 count; /* Number of IRQs within this index */ +}; +#define VFIO_DEVICE_GET_IRQ_INFO _IO(VFIO_TYPE, VFIO_BASE + 9) + +/** + * VFIO_DEVICE_SET_IRQS - _IOW(VFIO_TYPE, VFIO_BASE + 10, struct vfio_irq_set) + * + * Set signaling, masking, and unmasking of interrupts. Caller provides + * struct vfio_irq_set with all fields set. 'start' and 'count' indicate + * the range of subindexes being specified. + * + * The DATA flags specify the type of data provided. If DATA_NONE, the + * operation performs the specified action immediately on the specified + * interrupt(s). For example, to unmask AUTOMASKED interrupt [0,0]: + * flags = (DATA_NONE|ACTION_UNMASK), index = 0, start = 0, count = 1. + * + * DATA_BOOL allows sparse support for the same on arrays of interrupts. + * For example, to mask interrupts [0,1] and [0,3] (but not [0,2]): + * flags = (DATA_BOOL|ACTION_MASK), index = 0, start = 1, count = 3, + * data = {1,0,1} + * + * DATA_EVENTFD binds the specified ACTION to the provided __s32 eventfd. + * A value of -1 can be used to either de-assign interrupts if already + * assigned or skip un-assigned interrupts. For example, to set an eventfd + * to be trigger for interrupts [0,0] and [0,2]: + * flags = (DATA_EVENTFD|ACTION_TRIGGER), index = 0, start = 0, count = 3, + * data = {fd1, -1, fd2} + * If index [0,1] is previously set, two count = 1 ioctls calls would be + * required to set [0,0] and [0,2] without changing [0,1]. + * + * Once a signaling mechanism is set, DATA_BOOL or DATA_NONE can be used + * with ACTION_TRIGGER to perform kernel level interrupt loopback testing + * from userspace (ie. simulate hardware triggering). + * + * Setting of an event triggering mechanism to userspace for ACTION_TRIGGER + * enables the interrupt index for the device. Individual subindex interrupts + * can be disabled using the -1 value for DATA_EVENTFD or the index can be + * disabled as a whole with: flags = (DATA_NONE|ACTION_TRIGGER), count = 0. + * + * Note that ACTION_[UN]MASK specify user->kernel signaling (irqfds) while + * ACTION_TRIGGER specifies kernel->user signaling. + */ +struct vfio_irq_set { + __u32 argsz; + __u32 flags; +#define VFIO_IRQ_SET_DATA_NONE (1 << 0) /* Data not present */ +#define VFIO_IRQ_SET_DATA_BOOL (1 << 1) /* Data is bool (u8) */ +#define VFIO_IRQ_SET_DATA_EVENTFD (1 << 2) /* Data is eventfd (s32) */ +#define VFIO_IRQ_SET_ACTION_MASK (1 << 3) /* Mask interrupt */ +#define VFIO_IRQ_SET_ACTION_UNMASK (1 << 4) /* Unmask interrupt */ +#define VFIO_IRQ_SET_ACTION_TRIGGER (1 << 5) /* Trigger interrupt */ + __u32 index; + __u32 start; + __u32 count; + __u8 data[]; +}; +#define VFIO_DEVICE_SET_IRQS _IO(VFIO_TYPE, VFIO_BASE + 10) + +#define VFIO_IRQ_SET_DATA_TYPE_MASK (VFIO_IRQ_SET_DATA_NONE | \ + VFIO_IRQ_SET_DATA_BOOL | \ + VFIO_IRQ_SET_DATA_EVENTFD) +#define VFIO_IRQ_SET_ACTION_TYPE_MASK (VFIO_IRQ_SET_ACTION_MASK | \ + VFIO_IRQ_SET_ACTION_UNMASK | \ + VFIO_IRQ_SET_ACTION_TRIGGER) +/** + * VFIO_DEVICE_RESET - _IO(VFIO_TYPE, VFIO_BASE + 11) + * + * Reset a device. + */ +#define VFIO_DEVICE_RESET _IO(VFIO_TYPE, VFIO_BASE + 11) + +/* + * The VFIO-PCI bus driver makes use of the following fixed region and + * IRQ index mapping. Unimplemented regions return a size of zero. + * Unimplemented IRQ types return a count of zero. + */ + +enum { + VFIO_PCI_BAR0_REGION_INDEX, + VFIO_PCI_BAR1_REGION_INDEX, + VFIO_PCI_BAR2_REGION_INDEX, + VFIO_PCI_BAR3_REGION_INDEX, + VFIO_PCI_BAR4_REGION_INDEX, + VFIO_PCI_BAR5_REGION_INDEX, + VFIO_PCI_ROM_REGION_INDEX, + VFIO_PCI_CONFIG_REGION_INDEX, + /* + * Expose VGA regions defined for PCI base class 03, subclass 00. + * This includes I/O port ranges 0x3b0 to 0x3bb and 0x3c0 to 0x3df + * as well as the MMIO range 0xa0000 to 0xbffff. Each implemented + * range is found at it's identity mapped offset from the region + * offset, for example 0x3b0 is region_info.offset + 0x3b0. Areas + * between described ranges are unimplemented. + */ + VFIO_PCI_VGA_REGION_INDEX, + VFIO_PCI_NUM_REGIONS +}; + +enum { + VFIO_PCI_INTX_IRQ_INDEX, + VFIO_PCI_MSI_IRQ_INDEX, + VFIO_PCI_MSIX_IRQ_INDEX, + VFIO_PCI_ERR_IRQ_INDEX, + VFIO_PCI_NUM_IRQS +}; + +/* -------- API for Type1 VFIO IOMMU -------- */ + +/** + * VFIO_IOMMU_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 12, struct vfio_iommu_info) + * + * Retrieve information about the IOMMU object. Fills in provided + * struct vfio_iommu_info. Caller sets argsz. + * + * XXX Should we do these by CHECK_EXTENSION too? + */ +struct vfio_iommu_type1_info { + __u32 argsz; + __u32 flags; +#define VFIO_IOMMU_INFO_PGSIZES (1 << 0) /* supported page sizes info */ + __u64 iova_pgsizes; /* Bitmap of supported page sizes */ +}; + +#define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) + +/** + * VFIO_IOMMU_MAP_DMA - _IOW(VFIO_TYPE, VFIO_BASE + 13, struct vfio_dma_map) + * + * Map process virtual addresses to IO virtual addresses using the + * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required. + */ +struct vfio_iommu_type1_dma_map { + __u32 argsz; + __u32 flags; +#define VFIO_DMA_MAP_FLAG_READ (1 << 0) /* readable from device */ +#define VFIO_DMA_MAP_FLAG_WRITE (1 << 1) /* writable from device */ + __u64 vaddr; /* Process virtual address */ + __u64 iova; /* IO virtual address */ + __u64 size; /* Size of mapping (bytes) */ +}; + +#define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13) + +/** + * VFIO_IOMMU_UNMAP_DMA - _IOW(VFIO_TYPE, VFIO_BASE + 14, struct vfio_dma_unmap) + * + * Unmap IO virtual addresses using the provided struct vfio_dma_unmap. + * Caller sets argsz. + */ +struct vfio_iommu_type1_dma_unmap { + __u32 argsz; + __u32 flags; + __u64 iova; /* IO virtual address */ + __u64 size; /* Size of mapping (bytes) */ +}; + +#define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14) + +#endif /* VFIO_H */ diff --git a/kernel_headers/linux/vhost.h b/kernel_headers/linux/vhost.h new file mode 100644 index 0000000..c656f61 --- /dev/null +++ b/kernel_headers/linux/vhost.h @@ -0,0 +1,158 @@ +#ifndef _LINUX_VHOST_H +#define _LINUX_VHOST_H +/* Userspace interface for in-kernel virtio accelerators. */ + +/* vhost is used to reduce the number of system calls involved in virtio. + * + * Existing virtio net code is used in the guest without modification. + * + * This header includes interface used by userspace hypervisor for + * device configuration. + */ + +#include + +#include +#include +#include + +struct vhost_vring_state { + unsigned int index; + unsigned int num; +}; + +struct vhost_vring_file { + unsigned int index; + int fd; /* Pass -1 to unbind from file. */ + +}; + +struct vhost_vring_addr { + unsigned int index; + /* Option flags. */ + unsigned int flags; + /* Flag values: */ + /* Whether log address is valid. If set enables logging. */ +#define VHOST_VRING_F_LOG 0 + + /* Start of array of descriptors (virtually contiguous) */ + __u64 desc_user_addr; + /* Used structure address. Must be 32 bit aligned */ + __u64 used_user_addr; + /* Available structure address. Must be 16 bit aligned */ + __u64 avail_user_addr; + /* Logging support. */ + /* Log writes to used structure, at offset calculated from specified + * address. Address must be 32 bit aligned. */ + __u64 log_guest_addr; +}; + +struct vhost_memory_region { + __u64 guest_phys_addr; + __u64 memory_size; /* bytes */ + __u64 userspace_addr; + __u64 flags_padding; /* No flags are currently specified. */ +}; + +/* All region addresses and sizes must be 4K aligned. */ +#define VHOST_PAGE_SIZE 0x1000 + +struct vhost_memory { + __u32 nregions; + __u32 padding; + struct vhost_memory_region regions[0]; +}; + +/* ioctls */ + +#define VHOST_VIRTIO 0xAF + +/* Features bitmask for forward compatibility. Transport bits are used for + * vhost specific features. */ +#define VHOST_GET_FEATURES _IOR(VHOST_VIRTIO, 0x00, __u64) +#define VHOST_SET_FEATURES _IOW(VHOST_VIRTIO, 0x00, __u64) + +/* Set current process as the (exclusive) owner of this file descriptor. This + * must be called before any other vhost command. Further calls to + * VHOST_OWNER_SET fail until VHOST_OWNER_RESET is called. */ +#define VHOST_SET_OWNER _IO(VHOST_VIRTIO, 0x01) +/* Give up ownership, and reset the device to default values. + * Allows subsequent call to VHOST_OWNER_SET to succeed. */ +#define VHOST_RESET_OWNER _IO(VHOST_VIRTIO, 0x02) + +/* Set up/modify memory layout */ +#define VHOST_SET_MEM_TABLE _IOW(VHOST_VIRTIO, 0x03, struct vhost_memory) + +/* Write logging setup. */ +/* Memory writes can optionally be logged by setting bit at an offset + * (calculated from the physical address) from specified log base. + * The bit is set using an atomic 32 bit operation. */ +/* Set base address for logging. */ +#define VHOST_SET_LOG_BASE _IOW(VHOST_VIRTIO, 0x04, __u64) +/* Specify an eventfd file descriptor to signal on log write. */ +#define VHOST_SET_LOG_FD _IOW(VHOST_VIRTIO, 0x07, int) + +/* Ring setup. */ +/* Set number of descriptors in ring. This parameter can not + * be modified while ring is running (bound to a device). */ +#define VHOST_SET_VRING_NUM _IOW(VHOST_VIRTIO, 0x10, struct vhost_vring_state) +/* Set addresses for the ring. */ +#define VHOST_SET_VRING_ADDR _IOW(VHOST_VIRTIO, 0x11, struct vhost_vring_addr) +/* Base value where queue looks for available descriptors */ +#define VHOST_SET_VRING_BASE _IOW(VHOST_VIRTIO, 0x12, struct vhost_vring_state) +/* Get accessor: reads index, writes value in num */ +#define VHOST_GET_VRING_BASE _IOWR(VHOST_VIRTIO, 0x12, struct vhost_vring_state) + +/* The following ioctls use eventfd file descriptors to signal and poll + * for events. */ + +/* Set eventfd to poll for added buffers */ +#define VHOST_SET_VRING_KICK _IOW(VHOST_VIRTIO, 0x20, struct vhost_vring_file) +/* Set eventfd to signal when buffers have beed used */ +#define VHOST_SET_VRING_CALL _IOW(VHOST_VIRTIO, 0x21, struct vhost_vring_file) +/* Set eventfd to signal an error */ +#define VHOST_SET_VRING_ERR _IOW(VHOST_VIRTIO, 0x22, struct vhost_vring_file) + +/* VHOST_NET specific defines */ + +/* Attach virtio net ring to a raw socket, or tap device. + * The socket must be already bound to an ethernet device, this device will be + * used for transmit. Pass fd -1 to unbind from the socket and the transmit + * device. This can be used to stop the ring (e.g. for migration). */ +#define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file) + +/* Feature bits */ +/* Log all write descriptors. Can be changed while device is active. */ +#define VHOST_F_LOG_ALL 26 +/* vhost-net should add virtio_net_hdr for RX, and strip for TX packets. */ +#define VHOST_NET_F_VIRTIO_NET_HDR 27 + +/* VHOST_SCSI specific definitions */ + +/* + * Used by QEMU userspace to ensure a consistent vhost-scsi ABI. + * + * ABI Rev 0: July 2012 version starting point for v3.6-rc merge candidate + + * RFC-v2 vhost-scsi userspace. Add GET_ABI_VERSION ioctl usage + * ABI Rev 1: January 2013. Ignore vhost_tpgt filed in struct vhost_scsi_target. + * All the targets under vhost_wwpn can be seen and used by guset. + */ + +#define VHOST_SCSI_ABI_VERSION 1 + +struct vhost_scsi_target { + int abi_version; + char vhost_wwpn[224]; /* TRANSPORT_IQN_LEN */ + unsigned short vhost_tpgt; + unsigned short reserved; +}; + +#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target) +#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target) +/* Changing this breaks userspace. */ +#define VHOST_SCSI_GET_ABI_VERSION _IOW(VHOST_VIRTIO, 0x42, int) +/* Set and get the events missed flag */ +#define VHOST_SCSI_SET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x43, __u32) +#define VHOST_SCSI_GET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x44, __u32) + +#endif diff --git a/kernel_headers/linux/videodev2.h b/kernel_headers/linux/videodev2.h new file mode 100644 index 0000000..5cb97fd --- /dev/null +++ b/kernel_headers/linux/videodev2.h @@ -0,0 +1,2028 @@ +/* + * Video for Linux Two header file + * + * Copyright (C) 1999-2012 the contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Alternatively you can redistribute this file under the terms of the + * BSD license as stated below: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. The names of its contributors may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Header file for v4l or V4L2 drivers and applications + * with public API. + * All kernel-specific stuff were moved to media/v4l2-dev.h, so + * no #if __KERNEL tests are allowed here + * + * See http://linuxtv.org for more info + * + * Author: Bill Dirks + * Justin Schoeman + * Hans Verkuil + * et al. + */ +#ifndef __LINUX_VIDEODEV2_H +#define __LINUX_VIDEODEV2_H + +#include + +#include +#include +#include +#include + +/* + * Common stuff for both V4L1 and V4L2 + * Moved from videodev.h + */ +#define VIDEO_MAX_FRAME 32 +#define VIDEO_MAX_PLANES 8 + +/* + * M I S C E L L A N E O U S + */ + +/* Four-character-code (FOURCC) */ +#define v4l2_fourcc(a, b, c, d)\ + ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24)) + +/* + * E N U M S + */ +enum v4l2_field { + V4L2_FIELD_ANY = 0, /* driver can choose from none, + top, bottom, interlaced + depending on whatever it thinks + is approximate ... */ + V4L2_FIELD_NONE = 1, /* this device has no fields ... */ + V4L2_FIELD_TOP = 2, /* top field only */ + V4L2_FIELD_BOTTOM = 3, /* bottom field only */ + V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */ + V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one + buffer, top-bottom order */ + V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */ + V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into + separate buffers */ + V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field + first and the top field is + transmitted first */ + V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field + first and the bottom field is + transmitted first */ +}; +#define V4L2_FIELD_HAS_TOP(field) \ + ((field) == V4L2_FIELD_TOP ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) +#define V4L2_FIELD_HAS_BOTTOM(field) \ + ((field) == V4L2_FIELD_BOTTOM ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) +#define V4L2_FIELD_HAS_BOTH(field) \ + ((field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) + +enum v4l2_buf_type { + V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, + V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, + V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, + V4L2_BUF_TYPE_VBI_CAPTURE = 4, + V4L2_BUF_TYPE_VBI_OUTPUT = 5, + V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, + V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, +#if 1 + /* Experimental */ + V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8, +#endif + V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, + V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, + /* Deprecated, do not use */ + V4L2_BUF_TYPE_PRIVATE = 0x80, +}; + +#define V4L2_TYPE_IS_MULTIPLANAR(type) \ + ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE \ + || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + +#define V4L2_TYPE_IS_OUTPUT(type) \ + ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT \ + || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE \ + || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \ + || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \ + || (type) == V4L2_BUF_TYPE_VBI_OUTPUT \ + || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) + +#define V4L2_TYPE_IS_PRIVATE(type) \ + ((type) == V4L2_BUF_TYPE_PRIVATE) + +enum v4l2_tuner_type { + V4L2_TUNER_RADIO = 1, + V4L2_TUNER_ANALOG_TV = 2, + V4L2_TUNER_DIGITAL_TV = 3, +}; + +enum v4l2_memory { + V4L2_MEMORY_MMAP = 1, + V4L2_MEMORY_USERPTR = 2, + V4L2_MEMORY_OVERLAY = 3, + V4L2_MEMORY_DMABUF = 4, +}; + +/* see also http://vektor.theorem.ca/graphics/ycbcr/ */ +enum v4l2_colorspace { + /* ITU-R 601 -- broadcast NTSC/PAL */ + V4L2_COLORSPACE_SMPTE170M = 1, + + /* 1125-Line (US) HDTV */ + V4L2_COLORSPACE_SMPTE240M = 2, + + /* HD and modern captures. */ + V4L2_COLORSPACE_REC709 = 3, + + /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ + V4L2_COLORSPACE_BT878 = 4, + + /* These should be useful. Assume 601 extents. */ + V4L2_COLORSPACE_470_SYSTEM_M = 5, + V4L2_COLORSPACE_470_SYSTEM_BG = 6, + + /* I know there will be cameras that send this. So, this is + * unspecified chromaticities and full 0-255 on each of the + * Y'CbCr components + */ + V4L2_COLORSPACE_JPEG = 7, + + /* For RGB colourspaces, this is probably a good start. */ + V4L2_COLORSPACE_SRGB = 8, +}; + +enum v4l2_priority { + V4L2_PRIORITY_UNSET = 0, /* not initialized */ + V4L2_PRIORITY_BACKGROUND = 1, + V4L2_PRIORITY_INTERACTIVE = 2, + V4L2_PRIORITY_RECORD = 3, + V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, +}; + +struct v4l2_rect { + __s32 left; + __s32 top; + __s32 width; + __s32 height; +}; + +struct v4l2_fract { + __u32 numerator; + __u32 denominator; +}; + +/** + * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP + * + * @driver: name of the driver module (e.g. "bttv") + * @card: name of the card (e.g. "Hauppauge WinTV") + * @bus_info: name of the bus (e.g. "PCI:" + pci_name(pci_dev) ) + * @version: KERNEL_VERSION + * @capabilities: capabilities of the physical device as a whole + * @device_caps: capabilities accessed via this particular device (node) + * @reserved: reserved fields for future extensions + */ +struct v4l2_capability { + __u8 driver[16]; + __u8 card[32]; + __u8 bus_info[32]; + __u32 version; + __u32 capabilities; + __u32 device_caps; + __u32 reserved[3]; +}; + +/* Values for 'capabilities' field */ +#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */ +#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */ +#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */ +#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */ +#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */ +#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */ +#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */ +#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ +#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */ +#define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /* Can do hardware frequency seek */ +#define V4L2_CAP_RDS_OUTPUT 0x00000800 /* Is an RDS encoder */ + +/* Is a video capture device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_CAPTURE_MPLANE 0x00001000 +/* Is a video output device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_OUTPUT_MPLANE 0x00002000 +/* Is a video mem-to-mem device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_M2M_MPLANE 0x00004000 +/* Is a video mem-to-mem device */ +#define V4L2_CAP_VIDEO_M2M 0x00008000 + +#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ +#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */ +#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ +#define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ + +#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ +#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ +#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ + +#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */ + +/* + * V I D E O I M A G E F O R M A T + */ +struct v4l2_pix_format { + __u32 width; + __u32 height; + __u32 pixelformat; + __u32 field; /* enum v4l2_field */ + __u32 bytesperline; /* for padding, zero if unused */ + __u32 sizeimage; + __u32 colorspace; /* enum v4l2_colorspace */ + __u32 priv; /* private data, depends on pixelformat */ +}; + +/* Pixel format FOURCC depth Description */ + +/* RGB formats */ +#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ +#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ +#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ +#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ +#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ +#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ +#define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */ +#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ +#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ +#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ +#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ + +/* Grey formats */ +#define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ +#define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */ +#define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ +#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ +#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ +#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ + +/* Grey bit-packed formats */ +#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ + +/* Palette formats */ +#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ + +/* Chrominance formats */ +#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */ + +/* Luminance+Chrominance formats */ +#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ +#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ +#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */ +#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ +#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */ +#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ +#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ +#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ +#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */ +#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ +#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ +#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ +#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ +#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ +#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ + +/* two planes -- one Y, one Cr + Cb interleaved */ +#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ +#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ +#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ +#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ +#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ +#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ + +/* two non contiguous planes - one Y, one Cr + Cb interleaved */ +#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ +#define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */ +#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ +#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */ + +/* three non contiguous planes - Y, Cb, Cr */ +#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */ +#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */ + +/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ +#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ +#define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B') /* 8 RGRG.. GBGB.. */ +#define V4L2_PIX_FMT_SBGGR10 v4l2_fourcc('B', 'G', '1', '0') /* 10 BGBG.. GRGR.. */ +#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */ +#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */ +#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ + /* 10bit raw bayer a-law compressed to 8 bits */ +#define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') +#define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') +#define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8') +#define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8') + /* 10bit raw bayer DPCM compressed to 8 bits */ +#define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') +#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') +#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0') +#define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8') + /* + * 10bit raw bayer, expanded to 16 bits + * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb... + */ +#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ + +/* compressed formats */ +#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */ +#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG */ +#define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 */ +#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 Multiplexed */ +#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */ +#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start codes */ +#define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */ +#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */ +#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */ +#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES */ +#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 ES */ +#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */ +#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ +#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ +#define V4L2_PIX_FMT_DIVX_311 v4l2_fourcc('D', 'I', 'V', '3') /* DIVX311 */ +#define V4L2_PIX_FMT_DIVX v4l2_fourcc('D', 'I', 'V', 'X') /* DIVX */ +#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ +#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* for HEVC stream */ +#define V4L2_PIX_FMT_HEVC_HYBRID v4l2_fourcc('H', 'V', 'C', 'H') + +/* Vendor-specific formats */ +#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ +#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ +#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ +#define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0') /* SN9C20x YUV 4:2:0 */ +#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ +#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ +#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ +#define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */ +#define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */ +#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ +#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ +#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ +#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ +#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */ +#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */ +#define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ +#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ +#define V4L2_PIX_FMT_OV511 v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */ +#define V4L2_PIX_FMT_OV518 v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */ +#define V4L2_PIX_FMT_STV0680 v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */ +#define V4L2_PIX_FMT_TM6000 v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */ +#define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */ +#define V4L2_PIX_FMT_KONICA420 v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */ +#define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ +#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ +#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ +#define V4L2_PIX_FMT_STATS_COMB v4l2_fourcc('S', 'T', 'C', 'M') /* Composite stats */ + +#define V4L2_PIX_FMT_STATS_AE v4l2_fourcc('S', 'T', 'A', 'E') /* AEC stats */ +#define V4L2_PIX_FMT_STATS_AF v4l2_fourcc('S', 'T', 'A', 'F') /* AF stats */ +#define V4L2_PIX_FMT_STATS_AWB v4l2_fourcc('S', 'T', 'W', 'B') /* AWB stats */ +#define V4L2_PIX_FMT_STATS_IHST v4l2_fourcc('I', 'H', 'S', 'T') /* IHIST stats */ +#define V4L2_PIX_FMT_STATS_CS v4l2_fourcc('S', 'T', 'C', 'S') /* Column count stats */ +#define V4L2_PIX_FMT_STATS_RS v4l2_fourcc('S', 'T', 'R', 'S') /* Row count stats */ +#define V4L2_PIX_FMT_STATS_BG v4l2_fourcc('S', 'T', 'B', 'G') /* Bayer Grid stats */ +#define V4L2_PIX_FMT_STATS_BF v4l2_fourcc('S', 'T', 'B', 'F') /* Bayer focus stats */ +#define V4L2_PIX_FMT_STATS_BHST v4l2_fourcc('B', 'H', 'S', 'T') /* Bayer hist stats */ + +/* + * F O R M A T E N U M E R A T I O N + */ +struct v4l2_fmtdesc { + __u32 index; /* Format number */ + __u32 type; /* enum v4l2_buf_type */ + __u32 flags; + __u8 description[32]; /* Description string */ + __u32 pixelformat; /* Format fourcc */ + __u32 reserved[4]; +}; + +#define V4L2_FMT_FLAG_COMPRESSED 0x0001 +#define V4L2_FMT_FLAG_EMULATED 0x0002 + +#if 1 + /* Experimental Frame Size and frame rate enumeration */ +/* + * F R A M E S I Z E E N U M E R A T I O N + */ +enum v4l2_frmsizetypes { + V4L2_FRMSIZE_TYPE_DISCRETE = 1, + V4L2_FRMSIZE_TYPE_CONTINUOUS = 2, + V4L2_FRMSIZE_TYPE_STEPWISE = 3, +}; + +struct v4l2_frmsize_discrete { + __u32 width; /* Frame width [pixel] */ + __u32 height; /* Frame height [pixel] */ +}; + +struct v4l2_frmsize_stepwise { + __u32 min_width; /* Minimum frame width [pixel] */ + __u32 max_width; /* Maximum frame width [pixel] */ + __u32 step_width; /* Frame width step size [pixel] */ + __u32 min_height; /* Minimum frame height [pixel] */ + __u32 max_height; /* Maximum frame height [pixel] */ + __u32 step_height; /* Frame height step size [pixel] */ +}; + +struct v4l2_frmsizeenum { + __u32 index; /* Frame size number */ + __u32 pixel_format; /* Pixel format */ + __u32 type; /* Frame size type the device supports. */ + + union { /* Frame size */ + struct v4l2_frmsize_discrete discrete; + struct v4l2_frmsize_stepwise stepwise; + }; + + __u32 reserved[2]; /* Reserved space for future use */ +}; + +/* + * F R A M E R A T E E N U M E R A T I O N + */ +enum v4l2_frmivaltypes { + V4L2_FRMIVAL_TYPE_DISCRETE = 1, + V4L2_FRMIVAL_TYPE_CONTINUOUS = 2, + V4L2_FRMIVAL_TYPE_STEPWISE = 3, +}; + +struct v4l2_frmival_stepwise { + struct v4l2_fract min; /* Minimum frame interval [s] */ + struct v4l2_fract max; /* Maximum frame interval [s] */ + struct v4l2_fract step; /* Frame interval step size [s] */ +}; + +struct v4l2_frmivalenum { + __u32 index; /* Frame format index */ + __u32 pixel_format; /* Pixel format */ + __u32 width; /* Frame width */ + __u32 height; /* Frame height */ + __u32 type; /* Frame interval type the device supports. */ + + union { /* Frame interval */ + struct v4l2_fract discrete; + struct v4l2_frmival_stepwise stepwise; + }; + + __u32 reserved[2]; /* Reserved space for future use */ +}; +#endif + +/* + * T I M E C O D E + */ +struct v4l2_timecode { + __u32 type; + __u32 flags; + __u8 frames; + __u8 seconds; + __u8 minutes; + __u8 hours; + __u8 userbits[4]; +}; + +/* Type */ +#define V4L2_TC_TYPE_24FPS 1 +#define V4L2_TC_TYPE_25FPS 2 +#define V4L2_TC_TYPE_30FPS 3 +#define V4L2_TC_TYPE_50FPS 4 +#define V4L2_TC_TYPE_60FPS 5 + +/* Flags */ +#define V4L2_TC_FLAG_DROPFRAME 0x0001 /* "drop-frame" mode */ +#define V4L2_TC_FLAG_COLORFRAME 0x0002 +#define V4L2_TC_USERBITS_field 0x000C +#define V4L2_TC_USERBITS_USERDEFINED 0x0000 +#define V4L2_TC_USERBITS_8BITCHARS 0x0008 +/* The above is based on SMPTE timecodes */ + +struct v4l2_jpegcompression { + int quality; + + int APPn; /* Number of APP segment to be written, + * must be 0..15 */ + int APP_len; /* Length of data in JPEG APPn segment */ + char APP_data[60]; /* Data in the JPEG APPn segment. */ + + int COM_len; /* Length of data in JPEG COM segment */ + char COM_data[60]; /* Data in JPEG COM segment */ + + __u32 jpeg_markers; /* Which markers should go into the JPEG + * output. Unless you exactly know what + * you do, leave them untouched. + * Inluding less markers will make the + * resulting code smaller, but there will + * be fewer applications which can read it. + * The presence of the APP and COM marker + * is influenced by APP_len and COM_len + * ONLY, not by this property! */ + +#define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */ +#define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */ +#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */ +#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */ +#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will + * allways use APP0 */ +}; + +/* + * M E M O R Y - M A P P I N G B U F F E R S + */ +struct v4l2_requestbuffers { + __u32 count; + __u32 type; /* enum v4l2_buf_type */ + __u32 memory; /* enum v4l2_memory */ + __u32 reserved[2]; +}; + +/** + * struct v4l2_plane - plane info for multi-planar buffers + * @bytesused: number of bytes occupied by data in the plane (payload) + * @length: size of this plane (NOT the payload) in bytes + * @mem_offset: when memory in the associated struct v4l2_buffer is + * V4L2_MEMORY_MMAP, equals the offset from the start of + * the device memory for this plane (or is a "cookie" that + * should be passed to mmap() called on the video node) + * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer + * pointing to this plane + * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file + * descriptor associated with this plane + * @data_offset: offset in the plane to the start of data; usually 0, + * unless there is a header in front of the data + * + * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer + * with two planes can have one plane for Y, and another for interleaved CbCr + * components. Each plane can reside in a separate memory buffer, or even in + * a completely separate memory node (e.g. in embedded devices). + */ +struct v4l2_plane { + __u32 bytesused; + __u32 length; + union { + __u32 mem_offset; + unsigned long userptr; + __s32 fd; + } m; + __u32 data_offset; + __u32 reserved[11]; +}; + +/** + * struct v4l2_buffer - video buffer info + * @index: id number of the buffer + * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for + * multiplanar buffers); + * @bytesused: number of bytes occupied by data in the buffer (payload); + * unused (set to 0) for multiplanar buffers + * @flags: buffer informational flags + * @field: enum v4l2_field; field order of the image in the buffer + * @timestamp: frame timestamp + * @timecode: frame timecode + * @sequence: sequence count of this frame + * @memory: enum v4l2_memory; the method, in which the actual video data is + * passed + * @offset: for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP; + * offset from the start of the device memory for this plane, + * (or a "cookie" that should be passed to mmap() as offset) + * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR; + * a userspace pointer pointing to this buffer + * @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF; + * a userspace file descriptor associated with this buffer + * @planes: for multiplanar buffers; userspace pointer to the array of plane + * info structs for this buffer + * @length: size in bytes of the buffer (NOT its payload) for single-plane + * buffers (when type != *_MPLANE); number of elements in the + * planes array for multi-plane buffers + * @input: input number from which the video data has has been captured + * + * Contains data exchanged by application and driver using one of the Streaming + * I/O methods. + */ +struct v4l2_buffer { + __u32 index; + __u32 type; + __u32 bytesused; + __u32 flags; + __u32 field; + struct timeval timestamp; + struct v4l2_timecode timecode; + __u32 sequence; + + /* memory location */ + __u32 memory; + union { + __u32 offset; + unsigned long userptr; + struct v4l2_plane *planes; + __s32 fd; + } m; + __u32 length; + __u32 reserved2; + __u32 reserved; +}; + +/* Flags for 'flags' field */ +#define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ +#define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ +#define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ +#define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ +#define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ +#define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ +/* Buffer is ready, but the data contained within is corrupted. */ +#define V4L2_BUF_FLAG_ERROR 0x0040 +#define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ +#define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */ +/* Cache handling flags */ +#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 +#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 +/* Timestamp type */ +#define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 +#define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 +#define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 +#define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x4000 +/* Vendor extensions */ +#define V4L2_QCOM_BUF_FLAG_CODECCONFIG 0x10000 +#define V4L2_QCOM_BUF_FLAG_EOSEQ 0x20000 +#define V4L2_QCOM_BUF_TIMESTAMP_INVALID 0x40000 +#define V4L2_QCOM_BUF_FLAG_IDRFRAME 0x80000 /*Image is a IDR-frame*/ +#define V4L2_QCOM_BUF_FLAG_DECODEONLY 0x100000 +#define V4L2_QCOM_BUF_DATA_CORRUPT 0x200000 +#define V4L2_QCOM_BUF_DROP_FRAME 0x400000 +#define V4L2_QCOM_BUF_INPUT_UNSUPPORTED 0x800000 +#define V4L2_QCOM_BUF_FLAG_EOS 0x1000000 +#define V4L2_QCOM_BUF_TS_DISCONTINUITY 0x2000000 +#define V4L2_QCOM_BUF_TS_ERROR 0x4000000 +#define V4L2_QCOM_BUF_FLAG_READONLY 0x8000000 +#define V4L2_MSM_VIDC_BUF_START_CODE_NOT_FOUND 0x10000000 +#define V4L2_MSM_BUF_FLAG_YUV_601_709_CLAMP 0x20000000 +#define V4L2_MSM_BUF_FLAG_MBAFF 0x40000000 + +/** + * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor + * + * @index: id number of the buffer + * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for + * multiplanar buffers); + * @plane: index of the plane to be exported, 0 for single plane queues + * @flags: flags for newly created file, currently only O_CLOEXEC is + * supported, refer to manual of open syscall for more details + * @fd: file descriptor associated with DMABUF (set by driver) + * + * Contains data used for exporting a video buffer as DMABUF file descriptor. + * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF + * (identical to the cookie used to mmap() the buffer to userspace). All + * reserved fields must be set to zero. The field reserved0 is expected to + * become a structure 'type' allowing an alternative layout of the structure + * content. Therefore this field should not be used for any other extensions. + */ +struct v4l2_exportbuffer { + __u32 type; /* enum v4l2_buf_type */ + __u32 index; + __u32 plane; + __u32 flags; + __s32 fd; + __u32 reserved[11]; +}; + +/* + * O V E R L A Y P R E V I E W + */ +struct v4l2_framebuffer { + __u32 capability; + __u32 flags; +/* FIXME: in theory we should pass something like PCI device + memory + * region + offset instead of some physical address */ + void *base; + struct v4l2_pix_format fmt; +}; +/* Flags for the 'capability' field. Read only */ +#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 +#define V4L2_FBUF_CAP_CHROMAKEY 0x0002 +#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004 +#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008 +#define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010 +#define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020 +#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040 +#define V4L2_FBUF_CAP_SRC_CHROMAKEY 0x0080 +/* Flags for the 'flags' field. */ +#define V4L2_FBUF_FLAG_PRIMARY 0x0001 +#define V4L2_FBUF_FLAG_OVERLAY 0x0002 +#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004 +#define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008 +#define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010 +#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020 +#define V4L2_FBUF_FLAG_SRC_CHROMAKEY 0x0040 + +struct v4l2_clip { + struct v4l2_rect c; + struct v4l2_clip *next; +}; + +struct v4l2_window { + struct v4l2_rect w; + __u32 field; /* enum v4l2_field */ + __u32 chromakey; + struct v4l2_clip *clips; + __u32 clipcount; + void *bitmap; + __u8 global_alpha; +}; + +/* + * C A P T U R E P A R A M E T E R S + */ +struct v4l2_captureparm { + __u32 capability; /* Supported modes */ + __u32 capturemode; /* Current mode */ + struct v4l2_fract timeperframe; /* Time per frame in seconds */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 readbuffers; /* # of buffers for read */ + __u32 reserved[4]; +}; + +/* Flags for 'capability' and 'capturemode' fields */ +#define V4L2_MODE_HIGHQUALITY 0x0001 /* High quality imaging mode */ +#define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */ +#define V4L2_CAP_QCOM_FRAMESKIP 0x2000 /* frame skipping is supported */ + +struct v4l2_qcom_frameskip { + __u64 maxframeinterval; + __u8 fpsvariance; +}; + +struct v4l2_outputparm { + __u32 capability; /* Supported modes */ + __u32 outputmode; /* Current mode */ + struct v4l2_fract timeperframe; /* Time per frame in seconds */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 writebuffers; /* # of buffers for write */ + __u32 reserved[4]; +}; + +/* + * I N P U T I M A G E C R O P P I N G + */ +struct v4l2_cropcap { + __u32 type; /* enum v4l2_buf_type */ + struct v4l2_rect bounds; + struct v4l2_rect defrect; + struct v4l2_fract pixelaspect; +}; + +struct v4l2_crop { + __u32 type; /* enum v4l2_buf_type */ + struct v4l2_rect c; +}; + +/** + * struct v4l2_selection - selection info + * @type: buffer type (do not use *_MPLANE types) + * @target: Selection target, used to choose one of possible rectangles; + * defined in v4l2-common.h; V4L2_SEL_TGT_* . + * @flags: constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. + * @r: coordinates of selection window + * @reserved: for future use, rounds structure size to 64 bytes, set to zero + * + * Hardware may use multiple helper windows to process a video stream. + * The structure is used to exchange this selection areas between + * an application and a driver. + */ +struct v4l2_selection { + __u32 type; + __u32 target; + __u32 flags; + struct v4l2_rect r; + __u32 reserved[9]; +}; + + +/* + * A N A L O G V I D E O S T A N D A R D + */ + +typedef __u64 v4l2_std_id; + +/* one bit for each */ +#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) +#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) +#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004) +#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008) +#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010) +#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020) +#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040) +#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080) + +#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100) +#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200) +#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400) +#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800) + +#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) /* BTSC */ +#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) /* EIA-J */ +#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) +#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) /* FM A2 */ + +#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) +#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) +#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000) +#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000) +#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) +#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) +#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) +#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) + +/* ATSC/HDTV */ +#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) +#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000) + +/* FIXME: + Although std_id is 64 bits, there is an issue on PPC32 architecture that + makes switch(__u64) to break. So, there's a hack on v4l2-common.c rounding + this value to 32 bits. + As, currently, the max value is for V4L2_STD_ATSC_16_VSB (30 bits wide), + it should work fine. However, if needed to add more than two standards, + v4l2-common.c should be fixed. + */ + +/* + * Some macros to merge video standards in order to make live easier for the + * drivers and V4L2 applications + */ + +/* + * "Common" NTSC/M - It should be noticed that V4L2_STD_NTSC_443 is + * Missing here. + */ +#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ + V4L2_STD_NTSC_M_JP |\ + V4L2_STD_NTSC_M_KR) +/* Secam macros */ +#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ + V4L2_STD_SECAM_K |\ + V4L2_STD_SECAM_K1) +/* All Secam Standards */ +#define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\ + V4L2_STD_SECAM_G |\ + V4L2_STD_SECAM_H |\ + V4L2_STD_SECAM_DK |\ + V4L2_STD_SECAM_L |\ + V4L2_STD_SECAM_LC) +/* PAL macros */ +#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\ + V4L2_STD_PAL_B1 |\ + V4L2_STD_PAL_G) +#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\ + V4L2_STD_PAL_D1 |\ + V4L2_STD_PAL_K) +/* + * "Common" PAL - This macro is there to be compatible with the old + * V4L1 concept of "PAL": /BGDKHI. + * Several PAL standards are mising here: /M, /N and /Nc + */ +#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\ + V4L2_STD_PAL_DK |\ + V4L2_STD_PAL_H |\ + V4L2_STD_PAL_I) +/* Chroma "agnostic" standards */ +#define V4L2_STD_B (V4L2_STD_PAL_B |\ + V4L2_STD_PAL_B1 |\ + V4L2_STD_SECAM_B) +#define V4L2_STD_G (V4L2_STD_PAL_G |\ + V4L2_STD_SECAM_G) +#define V4L2_STD_H (V4L2_STD_PAL_H |\ + V4L2_STD_SECAM_H) +#define V4L2_STD_L (V4L2_STD_SECAM_L |\ + V4L2_STD_SECAM_LC) +#define V4L2_STD_GH (V4L2_STD_G |\ + V4L2_STD_H) +#define V4L2_STD_DK (V4L2_STD_PAL_DK |\ + V4L2_STD_SECAM_DK) +#define V4L2_STD_BG (V4L2_STD_B |\ + V4L2_STD_G) +#define V4L2_STD_MN (V4L2_STD_PAL_M |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc |\ + V4L2_STD_NTSC) + +/* Standards where MTS/BTSC stereo could be found */ +#define V4L2_STD_MTS (V4L2_STD_NTSC_M |\ + V4L2_STD_PAL_M |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc) + +/* Standards for Countries with 60Hz Line frequency */ +#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\ + V4L2_STD_PAL_60 |\ + V4L2_STD_NTSC |\ + V4L2_STD_NTSC_443) +/* Standards for Countries with 50Hz Line frequency */ +#define V4L2_STD_625_50 (V4L2_STD_PAL |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc |\ + V4L2_STD_SECAM) + +#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\ + V4L2_STD_ATSC_16_VSB) +/* Macros with none and all analog standards */ +#define V4L2_STD_UNKNOWN 0 +#define V4L2_STD_ALL (V4L2_STD_525_60 |\ + V4L2_STD_625_50) + +struct v4l2_standard { + __u32 index; + v4l2_std_id id; + __u8 name[24]; + struct v4l2_fract frameperiod; /* Frames, not fields */ + __u32 framelines; + __u32 reserved[4]; +}; + +/* + * D V B T T I M I N G S + */ + +/** struct v4l2_bt_timings - BT.656/BT.1120 timing data + * @width: total width of the active video in pixels + * @height: total height of the active video in lines + * @interlaced: Interlaced or progressive + * @polarities: Positive or negative polarities + * @pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000 + * @hfrontporch:Horizontal front porch in pixels + * @hsync: Horizontal Sync length in pixels + * @hbackporch: Horizontal back porch in pixels + * @vfrontporch:Vertical front porch in lines + * @vsync: Vertical Sync length in lines + * @vbackporch: Vertical back porch in lines + * @il_vfrontporch:Vertical front porch for the even field + * (aka field 2) of interlaced field formats + * @il_vsync: Vertical Sync length for the even field + * (aka field 2) of interlaced field formats + * @il_vbackporch:Vertical back porch for the even field + * (aka field 2) of interlaced field formats + * @standards: Standards the timing belongs to + * @flags: Flags + * @reserved: Reserved fields, must be zeroed. + * + * A note regarding vertical interlaced timings: height refers to the total + * height of the active video frame (= two fields). The blanking timings refer + * to the blanking of each field. So the height of the total frame is + * calculated as follows: + * + * tot_height = height + vfrontporch + vsync + vbackporch + + * il_vfrontporch + il_vsync + il_vbackporch + * + * The active height of each field is height / 2. + */ +struct v4l2_bt_timings { + __u32 width; + __u32 height; + __u32 interlaced; + __u32 polarities; + __u64 pixelclock; + __u32 hfrontporch; + __u32 hsync; + __u32 hbackporch; + __u32 vfrontporch; + __u32 vsync; + __u32 vbackporch; + __u32 il_vfrontporch; + __u32 il_vsync; + __u32 il_vbackporch; + __u32 standards; + __u32 flags; + __u32 reserved[14]; +} __attribute__ ((packed)); + +/* Interlaced or progressive format */ +#define V4L2_DV_PROGRESSIVE 0 +#define V4L2_DV_INTERLACED 1 + +/* Polarities. If bit is not set, it is assumed to be negative polarity */ +#define V4L2_DV_VSYNC_POS_POL 0x00000001 +#define V4L2_DV_HSYNC_POS_POL 0x00000002 + +/* Timings standards */ +#define V4L2_DV_BT_STD_CEA861 (1 << 0) /* CEA-861 Digital TV Profile */ +#define V4L2_DV_BT_STD_DMT (1 << 1) /* VESA Discrete Monitor Timings */ +#define V4L2_DV_BT_STD_CVT (1 << 2) /* VESA Coordinated Video Timings */ +#define V4L2_DV_BT_STD_GTF (1 << 3) /* VESA Generalized Timings Formula */ + +/* Flags */ + +/* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary + GTF' curve (GTF). In both cases the horizontal and/or vertical blanking + intervals are reduced, allowing a higher resolution over the same + bandwidth. This is a read-only flag. */ +#define V4L2_DV_FL_REDUCED_BLANKING (1 << 0) +/* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple + of six. These formats can be optionally played at 1 / 1.001 speed. + This is a read-only flag. */ +#define V4L2_DV_FL_CAN_REDUCE_FPS (1 << 1) +/* CEA-861 specific: only valid for video transmitters, the flag is cleared + by receivers. + If the framerate of the format is a multiple of six, then the pixelclock + used to set up the transmitter is divided by 1.001 to make it compatible + with 60 Hz based standards such as NTSC and PAL-M that use a framerate of + 29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate + such frequencies, then the flag will also be cleared. */ +#define V4L2_DV_FL_REDUCED_FPS (1 << 2) +/* Specific to interlaced formats: if set, then field 1 is really one half-line + longer and field 2 is really one half-line shorter, so each field has + exactly the same number of half-lines. Whether half-lines can be detected + or used depends on the hardware. */ +#define V4L2_DV_FL_HALF_LINE (1 << 3) + + +/** struct v4l2_dv_timings - DV timings + * @type: the type of the timings + * @bt: BT656/1120 timings + */ +struct v4l2_dv_timings { + __u32 type; + union { + struct v4l2_bt_timings bt; + __u32 reserved[32]; + }; +} __attribute__ ((packed)); + +/* Values for the type field */ +#define V4L2_DV_BT_656_1120 0 /* BT.656/1120 timing type */ + + +/** struct v4l2_enum_dv_timings - DV timings enumeration + * @index: enumeration index + * @reserved: must be zeroed + * @timings: the timings for the given index + */ +struct v4l2_enum_dv_timings { + __u32 index; + __u32 reserved[3]; + struct v4l2_dv_timings timings; +}; + +/** struct v4l2_bt_timings_cap - BT.656/BT.1120 timing capabilities + * @min_width: width in pixels + * @max_width: width in pixels + * @min_height: height in lines + * @max_height: height in lines + * @min_pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000 + * @max_pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000 + * @standards: Supported standards + * @capabilities: Supported capabilities + * @reserved: Must be zeroed + */ +struct v4l2_bt_timings_cap { + __u32 min_width; + __u32 max_width; + __u32 min_height; + __u32 max_height; + __u64 min_pixelclock; + __u64 max_pixelclock; + __u32 standards; + __u32 capabilities; + __u32 reserved[16]; +} __attribute__ ((packed)); + +/* Supports interlaced formats */ +#define V4L2_DV_BT_CAP_INTERLACED (1 << 0) +/* Supports progressive formats */ +#define V4L2_DV_BT_CAP_PROGRESSIVE (1 << 1) +/* Supports CVT/GTF reduced blanking */ +#define V4L2_DV_BT_CAP_REDUCED_BLANKING (1 << 2) +/* Supports custom formats */ +#define V4L2_DV_BT_CAP_CUSTOM (1 << 3) + +/** struct v4l2_dv_timings_cap - DV timings capabilities + * @type: the type of the timings (same as in struct v4l2_dv_timings) + * @bt: the BT656/1120 timings capabilities + */ +struct v4l2_dv_timings_cap { + __u32 type; + __u32 reserved[3]; + union { + struct v4l2_bt_timings_cap bt; + __u32 raw_data[32]; + }; +}; + + +/* + * V I D E O I N P U T S + */ +struct v4l2_input { + __u32 index; /* Which input */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of input */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 tuner; /* enum v4l2_tuner_type */ + v4l2_std_id std; + __u32 status; + __u32 capabilities; + __u32 reserved[3]; +}; + +/* Values for the 'type' field */ +#define V4L2_INPUT_TYPE_TUNER 1 +#define V4L2_INPUT_TYPE_CAMERA 2 + +/* field 'status' - general */ +#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */ +#define V4L2_IN_ST_NO_SIGNAL 0x00000002 +#define V4L2_IN_ST_NO_COLOR 0x00000004 + +/* field 'status' - sensor orientation */ +/* If sensor is mounted upside down set both bits */ +#define V4L2_IN_ST_HFLIP 0x00000010 /* Frames are flipped horizontally */ +#define V4L2_IN_ST_VFLIP 0x00000020 /* Frames are flipped vertically */ + +/* field 'status' - analog */ +#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */ +#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */ + +/* field 'status' - digital */ +#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */ +#define V4L2_IN_ST_NO_EQU 0x00020000 /* No equalizer lock */ +#define V4L2_IN_ST_NO_CARRIER 0x00040000 /* Carrier recovery failed */ + +/* field 'status' - VCR and set-top box */ +#define V4L2_IN_ST_MACROVISION 0x01000000 /* Macrovision detected */ +#define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */ +#define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */ + +/* capabilities flags */ +#define V4L2_IN_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ +#define V4L2_IN_CAP_CUSTOM_TIMINGS V4L2_IN_CAP_DV_TIMINGS /* For compatibility */ +#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */ + +/* + * V I D E O O U T P U T S + */ +struct v4l2_output { + __u32 index; /* Which output */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of output */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 modulator; /* Associated modulator */ + v4l2_std_id std; + __u32 capabilities; + __u32 reserved[3]; +}; +/* Values for the 'type' field */ +#define V4L2_OUTPUT_TYPE_MODULATOR 1 +#define V4L2_OUTPUT_TYPE_ANALOG 2 +#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3 + +/* capabilities flags */ +#define V4L2_OUT_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ +#define V4L2_OUT_CAP_CUSTOM_TIMINGS V4L2_OUT_CAP_DV_TIMINGS /* For compatibility */ +#define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */ + +/* + * C O N T R O L S + */ +struct v4l2_control { + __u32 id; + __s32 value; +}; + +struct v4l2_ext_control { + __u32 id; + __u32 size; + __u32 reserved2[1]; + union { + __s32 value; + __s64 value64; + char *string; + }; +} __attribute__ ((packed)); + +struct v4l2_ext_controls { + __u32 ctrl_class; + __u32 count; + __u32 error_idx; + __u32 reserved[2]; + struct v4l2_ext_control *controls; +}; + +#define V4L2_CTRL_ID_MASK (0x0fffffff) +#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) +#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) + +enum v4l2_ctrl_type { + V4L2_CTRL_TYPE_INTEGER = 1, + V4L2_CTRL_TYPE_BOOLEAN = 2, + V4L2_CTRL_TYPE_MENU = 3, + V4L2_CTRL_TYPE_BUTTON = 4, + V4L2_CTRL_TYPE_INTEGER64 = 5, + V4L2_CTRL_TYPE_CTRL_CLASS = 6, + V4L2_CTRL_TYPE_STRING = 7, + V4L2_CTRL_TYPE_BITMASK = 8, + V4L2_CTRL_TYPE_INTEGER_MENU = 9, +}; + +/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ +struct v4l2_queryctrl { + __u32 id; + __u32 type; /* enum v4l2_ctrl_type */ + __u8 name[32]; /* Whatever */ + __s32 minimum; /* Note signedness */ + __s32 maximum; + __s32 step; + __s32 default_value; + __u32 flags; + __u32 reserved[2]; +}; + +/* Used in the VIDIOC_QUERYMENU ioctl for querying menu items */ +struct v4l2_querymenu { + __u32 id; + __u32 index; + union { + __u8 name[32]; /* Whatever */ + __s64 value; + }; + __u32 reserved; +} __attribute__ ((packed)); + +/* Control flags */ +#define V4L2_CTRL_FLAG_DISABLED 0x0001 +#define V4L2_CTRL_FLAG_GRABBED 0x0002 +#define V4L2_CTRL_FLAG_READ_ONLY 0x0004 +#define V4L2_CTRL_FLAG_UPDATE 0x0008 +#define V4L2_CTRL_FLAG_INACTIVE 0x0010 +#define V4L2_CTRL_FLAG_SLIDER 0x0020 +#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 +#define V4L2_CTRL_FLAG_VOLATILE 0x0080 + +/* Query flag, to be ORed with the control ID */ +#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 + +/* User-class control IDs defined by V4L2 */ +#define V4L2_CID_MAX_CTRLS 1024 +/* IDs reserved for driver specific controls */ +#define V4L2_CID_PRIVATE_BASE 0x08000000 + + +/* + * T U N I N G + */ +struct v4l2_tuner { + __u32 index; + __u8 name[32]; + __u32 type; /* enum v4l2_tuner_type */ + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 rxsubchans; + __u32 audmode; + __s32 signal; + __s32 afc; + __u32 reserved[4]; +}; + +struct v4l2_modulator { + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 txsubchans; + __u32 reserved[4]; +}; + +/* Flags for the 'capability' field */ +#define V4L2_TUNER_CAP_LOW 0x0001 +#define V4L2_TUNER_CAP_NORM 0x0002 +#define V4L2_TUNER_CAP_HWSEEK_BOUNDED 0x0004 +#define V4L2_TUNER_CAP_HWSEEK_WRAP 0x0008 +#define V4L2_TUNER_CAP_STEREO 0x0010 +#define V4L2_TUNER_CAP_LANG2 0x0020 +#define V4L2_TUNER_CAP_SAP 0x0020 +#define V4L2_TUNER_CAP_LANG1 0x0040 +#define V4L2_TUNER_CAP_RDS 0x0080 +#define V4L2_TUNER_CAP_RDS_BLOCK_IO 0x0100 +#define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 +#define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 +#define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 + +/* Flags for the 'rxsubchans' field */ +#define V4L2_TUNER_SUB_MONO 0x0001 +#define V4L2_TUNER_SUB_STEREO 0x0002 +#define V4L2_TUNER_SUB_LANG2 0x0004 +#define V4L2_TUNER_SUB_SAP 0x0004 +#define V4L2_TUNER_SUB_LANG1 0x0008 +#define V4L2_TUNER_SUB_RDS 0x0010 + +/* Values for the 'audmode' field */ +#define V4L2_TUNER_MODE_MONO 0x0000 +#define V4L2_TUNER_MODE_STEREO 0x0001 +#define V4L2_TUNER_MODE_LANG2 0x0002 +#define V4L2_TUNER_MODE_SAP 0x0002 +#define V4L2_TUNER_MODE_LANG1 0x0003 +#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004 + +struct v4l2_frequency { + __u32 tuner; + __u32 type; /* enum v4l2_tuner_type */ + __u32 frequency; + __u32 reserved[8]; +}; + +#define V4L2_BAND_MODULATION_VSB (1 << 1) +#define V4L2_BAND_MODULATION_FM (1 << 2) +#define V4L2_BAND_MODULATION_AM (1 << 3) + +struct v4l2_frequency_band { + __u32 tuner; + __u32 type; /* enum v4l2_tuner_type */ + __u32 index; + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 modulation; + __u32 reserved[9]; +}; + +struct v4l2_hw_freq_seek { + __u32 tuner; + __u32 type; /* enum v4l2_tuner_type */ + __u32 seek_upward; + __u32 wrap_around; + __u32 spacing; + __u32 rangelow; + __u32 rangehigh; + __u32 reserved[5]; +}; + +/* + * R D S + */ + +struct v4l2_rds_data { + __u8 lsb; + __u8 msb; + __u8 block; +} __attribute__ ((packed)); + +#define V4L2_RDS_BLOCK_MSK 0x7 +#define V4L2_RDS_BLOCK_A 0 +#define V4L2_RDS_BLOCK_B 1 +#define V4L2_RDS_BLOCK_C 2 +#define V4L2_RDS_BLOCK_D 3 +#define V4L2_RDS_BLOCK_C_ALT 4 +#define V4L2_RDS_BLOCK_INVALID 7 + +#define V4L2_RDS_BLOCK_CORRECTED 0x40 +#define V4L2_RDS_BLOCK_ERROR 0x80 + +/* + * A U D I O + */ +struct v4l2_audio { + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 mode; + __u32 reserved[2]; +}; + +/* Flags for the 'capability' field */ +#define V4L2_AUDCAP_STEREO 0x00001 +#define V4L2_AUDCAP_AVL 0x00002 + +/* Flags for the 'mode' field */ +#define V4L2_AUDMODE_AVL 0x00001 + +struct v4l2_audioout { + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 mode; + __u32 reserved[2]; +}; + +/* + * M P E G S E R V I C E S + * + * NOTE: EXPERIMENTAL API + */ +#if 1 +#define V4L2_ENC_IDX_FRAME_I (0) +#define V4L2_ENC_IDX_FRAME_P (1) +#define V4L2_ENC_IDX_FRAME_B (2) +#define V4L2_ENC_IDX_FRAME_MASK (0xf) + +struct v4l2_enc_idx_entry { + __u64 offset; + __u64 pts; + __u32 length; + __u32 flags; + __u32 reserved[2]; +}; + +#define V4L2_ENC_IDX_ENTRIES (64) +struct v4l2_enc_idx { + __u32 entries; + __u32 entries_cap; + __u32 reserved[4]; + struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES]; +}; + + +#define V4L2_ENC_CMD_START (0) +#define V4L2_ENC_CMD_STOP (1) +#define V4L2_ENC_CMD_PAUSE (2) +#define V4L2_ENC_CMD_RESUME (3) +#define V4L2_ENC_QCOM_CMD_FLUSH (4) + +/* Flags for V4L2_ENC_CMD_STOP */ +#define V4L2_ENC_CMD_STOP_AT_GOP_END (1 << 0) + +struct v4l2_encoder_cmd { + __u32 cmd; + __u32 flags; + union { + struct { + __u32 data[8]; + } raw; + }; +}; + +/* Decoder commands */ +#define V4L2_DEC_CMD_START (0) +#define V4L2_DEC_CMD_STOP (1) +#define V4L2_DEC_CMD_PAUSE (2) +#define V4L2_DEC_CMD_RESUME (3) +#define V4L2_DEC_QCOM_CMD_FLUSH (4) + +/* Flags for V4L2_DEC_CMD_START */ +#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0) + +/* Flags for V4L2_DEC_CMD_PAUSE */ +#define V4L2_DEC_CMD_PAUSE_TO_BLACK (1 << 0) + +/* Flags for V4L2_DEC_CMD_STOP */ +#define V4L2_DEC_CMD_STOP_TO_BLACK (1 << 0) +#define V4L2_DEC_CMD_STOP_IMMEDIATELY (1 << 1) + +/* Flags for V4L2_DEC_QCOM_CMD_FLUSH */ +#define V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT (1 << 0) +#define V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE (1 << 1) + +#define V4L2_QCOM_CMD_FLUSH_OUTPUT (1 << 0) +#define V4L2_QCOM_CMD_FLUSH_CAPTURE (1 << 1) + +/* Play format requirements (returned by the driver): */ + +/* The decoder has no special format requirements */ +#define V4L2_DEC_START_FMT_NONE (0) +/* The decoder requires full GOPs */ +#define V4L2_DEC_START_FMT_GOP (1) + +/* The structure must be zeroed before use by the application + This ensures it can be extended safely in the future. */ +struct v4l2_decoder_cmd { + __u32 cmd; + __u32 flags; + union { + struct { + __u64 pts; + } stop; + + struct { + /* 0 or 1000 specifies normal speed, + 1 specifies forward single stepping, + -1 specifies backward single stepping, + >1: playback at speed/1000 of the normal speed, + <-1: reverse playback at (-speed/1000) of the normal speed. */ + __s32 speed; + __u32 format; + } start; + + struct { + __u32 data[16]; + } raw; + }; +}; +#endif + + +/* + * D A T A S E R V I C E S ( V B I ) + * + * Data services API by Michael Schimek + */ + +/* Raw VBI */ +struct v4l2_vbi_format { + __u32 sampling_rate; /* in 1 Hz */ + __u32 offset; + __u32 samples_per_line; + __u32 sample_format; /* V4L2_PIX_FMT_* */ + __s32 start[2]; + __u32 count[2]; + __u32 flags; /* V4L2_VBI_* */ + __u32 reserved[2]; /* must be zero */ +}; + +/* VBI flags */ +#define V4L2_VBI_UNSYNC (1 << 0) +#define V4L2_VBI_INTERLACED (1 << 1) + +/* Sliced VBI + * + * This implements is a proposal V4L2 API to allow SLICED VBI + * required for some hardware encoders. It should change without + * notice in the definitive implementation. + */ + +struct v4l2_sliced_vbi_format { + __u16 service_set; + /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field + service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field + (equals frame lines 313-336 for 625 line video + standards, 263-286 for 525 line standards) */ + __u16 service_lines[2][24]; + __u32 io_size; + __u32 reserved[2]; /* must be zero */ +}; + +/* Teletext World System Teletext + (WST), defined on ITU-R BT.653-2 */ +#define V4L2_SLICED_TELETEXT_B (0x0001) +/* Video Program System, defined on ETS 300 231*/ +#define V4L2_SLICED_VPS (0x0400) +/* Closed Caption, defined on EIA-608 */ +#define V4L2_SLICED_CAPTION_525 (0x1000) +/* Wide Screen System, defined on ITU-R BT1119.1 */ +#define V4L2_SLICED_WSS_625 (0x4000) + +#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) +#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) + +struct v4l2_sliced_vbi_cap { + __u16 service_set; + /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field + service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field + (equals frame lines 313-336 for 625 line video + standards, 263-286 for 525 line standards) */ + __u16 service_lines[2][24]; + __u32 type; /* enum v4l2_buf_type */ + __u32 reserved[3]; /* must be 0 */ +}; + +struct v4l2_sliced_vbi_data { + __u32 id; + __u32 field; /* 0: first field, 1: second field */ + __u32 line; /* 1-23 */ + __u32 reserved; /* must be 0 */ + __u8 data[48]; +}; + +/* + * Sliced VBI data inserted into MPEG Streams + */ + +/* + * V4L2_MPEG_STREAM_VBI_FMT_IVTV: + * + * Structure of payload contained in an MPEG 2 Private Stream 1 PES Packet in an + * MPEG-2 Program Pack that contains V4L2_MPEG_STREAM_VBI_FMT_IVTV Sliced VBI + * data + * + * Note, the MPEG-2 Program Pack and Private Stream 1 PES packet header + * definitions are not included here. See the MPEG-2 specifications for details + * on these headers. + */ + +/* Line type IDs */ +#define V4L2_MPEG_VBI_IVTV_TELETEXT_B (1) +#define V4L2_MPEG_VBI_IVTV_CAPTION_525 (4) +#define V4L2_MPEG_VBI_IVTV_WSS_625 (5) +#define V4L2_MPEG_VBI_IVTV_VPS (7) + +struct v4l2_mpeg_vbi_itv0_line { + __u8 id; /* One of V4L2_MPEG_VBI_IVTV_* above */ + __u8 data[42]; /* Sliced VBI data for the line */ +} __attribute__ ((packed)); + +struct v4l2_mpeg_vbi_itv0 { + __le32 linemask[2]; /* Bitmasks of VBI service lines present */ + struct v4l2_mpeg_vbi_itv0_line line[35]; +} __attribute__ ((packed)); + +struct v4l2_mpeg_vbi_ITV0 { + struct v4l2_mpeg_vbi_itv0_line line[36]; +} __attribute__ ((packed)); + +#define V4L2_MPEG_VBI_IVTV_MAGIC0 "itv0" +#define V4L2_MPEG_VBI_IVTV_MAGIC1 "ITV0" + +struct v4l2_mpeg_vbi_fmt_ivtv { + __u8 magic[4]; + union { + struct v4l2_mpeg_vbi_itv0 itv0; + struct v4l2_mpeg_vbi_ITV0 ITV0; + }; +} __attribute__ ((packed)); + +/* + * A G G R E G A T E S T R U C T U R E S + */ + +/** + * struct v4l2_plane_pix_format - additional, per-plane format definition + * @sizeimage: maximum size in bytes required for data, for which + * this plane will be used + * @bytesperline: distance in bytes between the leftmost pixels in two + * adjacent lines + */ +struct v4l2_plane_pix_format { + __u32 sizeimage; + __u16 bytesperline; + __u16 reserved[7]; +} __attribute__ ((packed)); + +/** + * struct v4l2_pix_format_mplane - multiplanar format definition + * @width: image width in pixels + * @height: image height in pixels + * @pixelformat: little endian four character code (fourcc) + * @field: enum v4l2_field; field order (for interlaced video) + * @colorspace: enum v4l2_colorspace; supplemental to pixelformat + * @plane_fmt: per-plane information + * @num_planes: number of planes for this format + */ +struct v4l2_pix_format_mplane { + __u32 width; + __u32 height; + __u32 pixelformat; + __u32 field; + __u32 colorspace; + + struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES]; + __u8 num_planes; + __u8 reserved[11]; +} __attribute__ ((packed)); + +/** + * struct v4l2_format - stream data format + * @type: enum v4l2_buf_type; type of the data stream + * @pix: definition of an image format + * @pix_mp: definition of a multiplanar image format + * @win: definition of an overlaid image + * @vbi: raw VBI capture or output parameters + * @sliced: sliced VBI capture or output parameters + * @raw_data: placeholder for future extensions and custom formats + */ +struct v4l2_format { + __u32 type; + union { + struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */ + struct v4l2_pix_format_mplane pix_mp; /* V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE */ + struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ + struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ + struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ + __u8 raw_data[200]; /* user-defined */ + } fmt; +}; + +/* Stream type-dependent parameters + */ +struct v4l2_streamparm { + __u32 type; /* enum v4l2_buf_type */ + union { + struct v4l2_captureparm capture; + struct v4l2_outputparm output; + __u8 raw_data[200]; /* user-defined */ + } parm; +}; + +/* + * E V E N T S + */ + +#define V4L2_EVENT_ALL 0 +#define V4L2_EVENT_VSYNC 1 +#define V4L2_EVENT_EOS 2 +#define V4L2_EVENT_CTRL 3 +#define V4L2_EVENT_FRAME_SYNC 4 +#define V4L2_EVENT_PRIVATE_START 0x08000000 + +#define V4L2_EVENT_MSM_VIDC_START (V4L2_EVENT_PRIVATE_START + 0x00001000) +#define V4L2_EVENT_MSM_VIDC_FLUSH_DONE (V4L2_EVENT_MSM_VIDC_START + 1) +#define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT \ + (V4L2_EVENT_MSM_VIDC_START + 2) +#define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT \ + (V4L2_EVENT_MSM_VIDC_START + 3) +#define V4L2_EVENT_MSM_VIDC_CLOSE_DONE (V4L2_EVENT_MSM_VIDC_START + 4) +#define V4L2_EVENT_MSM_VIDC_SYS_ERROR (V4L2_EVENT_MSM_VIDC_START + 5) +#define V4L2_EVENT_MSM_VIDC_RELEASE_BUFFER_REFERENCE \ + (V4L2_EVENT_MSM_VIDC_START + 6) +#define V4L2_EVENT_MSM_VIDC_RELEASE_UNQUEUED_BUFFER \ + (V4L2_EVENT_MSM_VIDC_START + 7) +#define V4L2_EVENT_MSM_VIDC_HW_OVERLOAD (V4L2_EVENT_MSM_VIDC_START + 8) +#define V4L2_EVENT_MSM_VIDC_MAX_CLIENTS (V4L2_EVENT_MSM_VIDC_START + 9) +#define V4L2_EVENT_MSM_VIDC_HW_UNSUPPORTED (V4L2_EVENT_MSM_VIDC_START + 10) + +/* Payload for V4L2_EVENT_VSYNC */ +struct v4l2_event_vsync { + /* Can be V4L2_FIELD_ANY, _NONE, _TOP or _BOTTOM */ + __u8 field; +} __attribute__ ((packed)); + +/* Payload for V4L2_EVENT_CTRL */ +#define V4L2_EVENT_CTRL_CH_VALUE (1 << 0) +#define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1) +#define V4L2_EVENT_CTRL_CH_RANGE (1 << 2) + +struct v4l2_event_ctrl { + __u32 changes; + __u32 type; + union { + __s32 value; + __s64 value64; + }; + __u32 flags; + __s32 minimum; + __s32 maximum; + __s32 step; + __s32 default_value; +}; + +struct v4l2_event_frame_sync { + __u32 frame_sequence; +}; + +struct v4l2_event { + __u32 type; + union { + struct v4l2_event_vsync vsync; + struct v4l2_event_ctrl ctrl; + struct v4l2_event_frame_sync frame_sync; + __u8 data[64]; + } u; + __u32 pending; + __u32 sequence; + struct timespec timestamp; + __u32 id; + __u32 reserved[8]; +}; + +#define V4L2_EVENT_SUB_FL_SEND_INITIAL (1 << 0) +#define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK (1 << 1) + +struct v4l2_event_subscription { + __u32 type; + __u32 id; + __u32 flags; + __u32 reserved[5]; +}; + +/* + * A D V A N C E D D E B U G G I N G + * + * NOTE: EXPERIMENTAL API, NEVER RELY ON THIS IN APPLICATIONS! + * FOR DEBUGGING, TESTING AND INTERNAL USE ONLY! + */ + +/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */ + +#define V4L2_CHIP_MATCH_BRIDGE 0 /* Match against chip ID on the bridge (0 for the bridge) */ +#define V4L2_CHIP_MATCH_HOST V4L2_CHIP_MATCH_BRIDGE +#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */ +#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */ +#define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */ +#define V4L2_CHIP_MATCH_SUBDEV 4 /* Match against subdev index */ + +struct v4l2_dbg_match { + __u32 type; /* Match type */ + union { /* Match this chip, meaning determined by type */ + __u32 addr; + char name[32]; + }; +} __attribute__ ((packed)); + +struct v4l2_dbg_register { + struct v4l2_dbg_match match; + __u32 size; /* register size in bytes */ + __u64 reg; + __u64 val; +} __attribute__ ((packed)); + +/* VIDIOC_DBG_G_CHIP_IDENT */ +struct v4l2_dbg_chip_ident { + struct v4l2_dbg_match match; + __u32 ident; /* chip identifier as specified in */ + __u32 revision; /* chip revision, chip specific */ +} __attribute__ ((packed)); + +#define V4L2_CHIP_FL_READABLE (1 << 0) +#define V4L2_CHIP_FL_WRITABLE (1 << 1) + +/* VIDIOC_DBG_G_CHIP_INFO */ +struct v4l2_dbg_chip_info { + struct v4l2_dbg_match match; + char name[32]; + __u32 flags; + __u32 reserved[32]; +} __attribute__ ((packed)); + +/** + * struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument + * @index: on return, index of the first created buffer + * @count: entry: number of requested buffers, + * return: number of created buffers + * @memory: enum v4l2_memory; buffer memory type + * @format: frame format, for which buffers are requested + * @reserved: future extensions + */ +struct v4l2_create_buffers { + __u32 index; + __u32 count; + __u32 memory; + struct v4l2_format format; + __u32 reserved[8]; +}; + +/* + * I O C T L C O D E S F O R V I D E O D E V I C E S + * + */ +#define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability) +#define VIDIOC_RESERVED _IO('V', 1) +#define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) +#define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format) +#define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format) +#define VIDIOC_REQBUFS _IOWR('V', 8, struct v4l2_requestbuffers) +#define VIDIOC_QUERYBUF _IOWR('V', 9, struct v4l2_buffer) +#define VIDIOC_G_FBUF _IOR('V', 10, struct v4l2_framebuffer) +#define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) +#define VIDIOC_OVERLAY _IOW('V', 14, int) +#define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) +#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer) +#define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) +#define VIDIOC_STREAMON _IOW('V', 18, int) +#define VIDIOC_STREAMOFF _IOW('V', 19, int) +#define VIDIOC_G_PARM _IOWR('V', 21, struct v4l2_streamparm) +#define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm) +#define VIDIOC_G_STD _IOR('V', 23, v4l2_std_id) +#define VIDIOC_S_STD _IOW('V', 24, v4l2_std_id) +#define VIDIOC_ENUMSTD _IOWR('V', 25, struct v4l2_standard) +#define VIDIOC_ENUMINPUT _IOWR('V', 26, struct v4l2_input) +#define VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control) +#define VIDIOC_S_CTRL _IOWR('V', 28, struct v4l2_control) +#define VIDIOC_G_TUNER _IOWR('V', 29, struct v4l2_tuner) +#define VIDIOC_S_TUNER _IOW('V', 30, struct v4l2_tuner) +#define VIDIOC_G_AUDIO _IOR('V', 33, struct v4l2_audio) +#define VIDIOC_S_AUDIO _IOW('V', 34, struct v4l2_audio) +#define VIDIOC_QUERYCTRL _IOWR('V', 36, struct v4l2_queryctrl) +#define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu) +#define VIDIOC_G_INPUT _IOR('V', 38, int) +#define VIDIOC_S_INPUT _IOWR('V', 39, int) +#define VIDIOC_G_OUTPUT _IOR('V', 46, int) +#define VIDIOC_S_OUTPUT _IOWR('V', 47, int) +#define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output) +#define VIDIOC_G_AUDOUT _IOR('V', 49, struct v4l2_audioout) +#define VIDIOC_S_AUDOUT _IOW('V', 50, struct v4l2_audioout) +#define VIDIOC_G_MODULATOR _IOWR('V', 54, struct v4l2_modulator) +#define VIDIOC_S_MODULATOR _IOW('V', 55, struct v4l2_modulator) +#define VIDIOC_G_FREQUENCY _IOWR('V', 56, struct v4l2_frequency) +#define VIDIOC_S_FREQUENCY _IOW('V', 57, struct v4l2_frequency) +#define VIDIOC_CROPCAP _IOWR('V', 58, struct v4l2_cropcap) +#define VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop) +#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop) +#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression) +#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression) +#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id) +#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format) +#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio) +#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout) +#define VIDIOC_G_PRIORITY _IOR('V', 67, __u32) /* enum v4l2_priority */ +#define VIDIOC_S_PRIORITY _IOW('V', 68, __u32) /* enum v4l2_priority */ +#define VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct v4l2_sliced_vbi_cap) +#define VIDIOC_LOG_STATUS _IO('V', 70) +#define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct v4l2_ext_controls) +#define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct v4l2_ext_controls) +#define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct v4l2_ext_controls) +#define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum) +#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum) +#define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx) +#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd) +#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd) + +/* Experimental, meant for debugging, testing and internal use. + Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined. + You must be root to use these ioctls. Never use these in applications! */ +#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register) +#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) + +/* Experimental, meant for debugging, testing and internal use. + Never use this ioctl in applications! + Note: this ioctl is deprecated in favor of VIDIOC_DBG_G_CHIP_INFO and + will go away in the future. */ +#define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident) + +#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) + +#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) +#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) +#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event) +#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription) +#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) + +/* Experimental, the below two ioctls may change over the next couple of kernel + versions */ +#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers) +#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer) + +/* Experimental selection API */ +#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection) +#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection) + +/* Experimental, these two ioctls may change over the next couple of kernel + versions. */ +#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd) +#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd) + +/* Experimental, these three ioctls may change over the next couple of kernel + versions. */ +#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) +#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings) +#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) + +/* Experimental, this ioctl may change over the next couple of kernel + versions. */ +#define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band) + +/* Experimental, meant for debugging, testing and internal use. + Never use these in applications! */ +#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info) + +/* Reminder: when adding new ioctls please add support for them to + drivers/media/video/v4l2-compat-ioctl32.c as well! */ + +#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */ + +#endif /* __LINUX_VIDEODEV2_H */ diff --git a/kernel_headers/linux/virtio_9p.h b/kernel_headers/linux/virtio_9p.h new file mode 100644 index 0000000..277c4ad --- /dev/null +++ b/kernel_headers/linux/virtio_9p.h @@ -0,0 +1,44 @@ +#ifndef _LINUX_VIRTIO_9P_H +#define _LINUX_VIRTIO_9P_H +/* This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ +#include +#include +#include + +/* The feature bitmap for virtio 9P */ + +/* The mount point is specified in a config variable */ +#define VIRTIO_9P_MOUNT_TAG 0 + +struct virtio_9p_config { + /* length of the tag name */ + __u16 tag_len; + /* non-NULL terminated tag name */ + __u8 tag[0]; +} __attribute__((packed)); + +#endif /* _LINUX_VIRTIO_9P_H */ diff --git a/kernel_headers/linux/virtio_balloon.h b/kernel_headers/linux/virtio_balloon.h new file mode 100644 index 0000000..5e26f61 --- /dev/null +++ b/kernel_headers/linux/virtio_balloon.h @@ -0,0 +1,59 @@ +#ifndef _LINUX_VIRTIO_BALLOON_H +#define _LINUX_VIRTIO_BALLOON_H +/* This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ +#include +#include + +/* The feature bitmap for virtio balloon */ +#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ +#define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */ + +/* Size of a PFN in the balloon interface. */ +#define VIRTIO_BALLOON_PFN_SHIFT 12 + +struct virtio_balloon_config +{ + /* Number of pages host wants Guest to give up. */ + __le32 num_pages; + /* Number of pages we've actually got in balloon. */ + __le32 actual; +}; + +#define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */ +#define VIRTIO_BALLOON_S_SWAP_OUT 1 /* Amount of memory swapped out */ +#define VIRTIO_BALLOON_S_MAJFLT 2 /* Number of major faults */ +#define VIRTIO_BALLOON_S_MINFLT 3 /* Number of minor faults */ +#define VIRTIO_BALLOON_S_MEMFREE 4 /* Total amount of free memory */ +#define VIRTIO_BALLOON_S_MEMTOT 5 /* Total amount of memory */ +#define VIRTIO_BALLOON_S_NR 6 + +struct virtio_balloon_stat { + __u16 tag; + __u64 val; +} __attribute__((packed)); + +#endif /* _LINUX_VIRTIO_BALLOON_H */ diff --git a/kernel_headers/linux/virtio_blk.h b/kernel_headers/linux/virtio_blk.h new file mode 100644 index 0000000..8270c14 --- /dev/null +++ b/kernel_headers/linux/virtio_blk.h @@ -0,0 +1,128 @@ +#ifndef _LINUX_VIRTIO_BLK_H +#define _LINUX_VIRTIO_BLK_H +/* This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ +#include +#include +#include + +/* Feature bits */ +#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ +#define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ +#define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ +#define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */ +#define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ +#define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ +#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ +#define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */ +#define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */ +#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */ + +/* Old (deprecated) name for VIRTIO_BLK_F_WCE. */ +#define VIRTIO_BLK_F_FLUSH VIRTIO_BLK_F_WCE + +#define VIRTIO_BLK_ID_BYTES 20 /* ID string length */ + +struct virtio_blk_config { + /* The capacity (in 512-byte sectors). */ + __u64 capacity; + /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ + __u32 size_max; + /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ + __u32 seg_max; + /* geometry the device (if VIRTIO_BLK_F_GEOMETRY) */ + struct virtio_blk_geometry { + __u16 cylinders; + __u8 heads; + __u8 sectors; + } geometry; + + /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ + __u32 blk_size; + + /* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY */ + /* exponent for physical block per logical block. */ + __u8 physical_block_exp; + /* alignment offset in logical blocks. */ + __u8 alignment_offset; + /* minimum I/O size without performance penalty in logical blocks. */ + __u16 min_io_size; + /* optimal sustained I/O size in logical blocks. */ + __u32 opt_io_size; + + /* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */ + __u8 wce; +} __attribute__((packed)); + +/* + * Command types + * + * Usage is a bit tricky as some bits are used as flags and some are not. + * + * Rules: + * VIRTIO_BLK_T_OUT may be combined with VIRTIO_BLK_T_SCSI_CMD or + * VIRTIO_BLK_T_BARRIER. VIRTIO_BLK_T_FLUSH is a command of its own + * and may not be combined with any of the other flags. + */ + +/* These two define direction. */ +#define VIRTIO_BLK_T_IN 0 +#define VIRTIO_BLK_T_OUT 1 + +/* This bit says it's a scsi command, not an actual read or write. */ +#define VIRTIO_BLK_T_SCSI_CMD 2 + +/* Cache flush command */ +#define VIRTIO_BLK_T_FLUSH 4 + +/* Get device ID command */ +#define VIRTIO_BLK_T_GET_ID 8 + +/* Barrier before this op. */ +#define VIRTIO_BLK_T_BARRIER 0x80000000 + +/* This is the first element of the read scatter-gather list. */ +struct virtio_blk_outhdr { + /* VIRTIO_BLK_T* */ + __u32 type; + /* io priority. */ + __u32 ioprio; + /* Sector (ie. 512 byte offset) */ + __u64 sector; +}; + +struct virtio_scsi_inhdr { + __u32 errors; + __u32 data_len; + __u32 sense_len; + __u32 residual; +}; + +/* And this is the final byte of the write scatter-gather list. */ +#define VIRTIO_BLK_S_OK 0 +#define VIRTIO_BLK_S_IOERR 1 +#define VIRTIO_BLK_S_UNSUPP 2 +#endif /* _LINUX_VIRTIO_BLK_H */ diff --git a/kernel_headers/linux/virtio_config.h b/kernel_headers/linux/virtio_config.h new file mode 100644 index 0000000..4f51d8f --- /dev/null +++ b/kernel_headers/linux/virtio_config.h @@ -0,0 +1,54 @@ +#ifndef _LINUX_VIRTIO_CONFIG_H +#define _LINUX_VIRTIO_CONFIG_H +/* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so + * anyone can use the definitions to implement compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ + +/* Virtio devices use a standardized configuration space to define their + * features and pass configuration information, but each implementation can + * store and access that space differently. */ +#include + +/* Status byte for guest to report progress, and synchronize features. */ +/* We have seen device and processed generic fields (VIRTIO_CONFIG_F_VIRTIO) */ +#define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 +/* We have found a driver for the device. */ +#define VIRTIO_CONFIG_S_DRIVER 2 +/* Driver has used its parts of the config, and is happy */ +#define VIRTIO_CONFIG_S_DRIVER_OK 4 +/* We've given up on this device. */ +#define VIRTIO_CONFIG_S_FAILED 0x80 + +/* Some virtio feature bits (currently bits 28 through 31) are reserved for the + * transport being used (eg. virtio_ring), the rest are per-device feature + * bits. */ +#define VIRTIO_TRANSPORT_F_START 28 +#define VIRTIO_TRANSPORT_F_END 32 + +/* Do we get callbacks when the ring is completely used, even if we've + * suppressed them? */ +#define VIRTIO_F_NOTIFY_ON_EMPTY 24 + +#endif /* _LINUX_VIRTIO_CONFIG_H */ diff --git a/kernel_headers/linux/virtio_console.h b/kernel_headers/linux/virtio_console.h new file mode 100644 index 0000000..5403535 --- /dev/null +++ b/kernel_headers/linux/virtio_console.h @@ -0,0 +1,74 @@ +/* + * This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so + * anyone can use the definitions to implement compatible drivers/servers: + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Copyright (C) Red Hat, Inc., 2009, 2010, 2011 + * Copyright (C) Amit Shah , 2009, 2010, 2011 + */ +#ifndef _LINUX_VIRTIO_CONSOLE_H +#define _LINUX_VIRTIO_CONSOLE_H +#include +#include +#include + +/* Feature bits */ +#define VIRTIO_CONSOLE_F_SIZE 0 /* Does host provide console size? */ +#define VIRTIO_CONSOLE_F_MULTIPORT 1 /* Does host provide multiple ports? */ + +#define VIRTIO_CONSOLE_BAD_ID (~(__u32)0) + +struct virtio_console_config { + /* colums of the screens */ + __u16 cols; + /* rows of the screens */ + __u16 rows; + /* max. number of ports this device can hold */ + __u32 max_nr_ports; +} __attribute__((packed)); + +/* + * A message that's passed between the Host and the Guest for a + * particular port. + */ +struct virtio_console_control { + __u32 id; /* Port number */ + __u16 event; /* The kind of control event (see below) */ + __u16 value; /* Extra information for the key */ +}; + +/* Some events for control messages */ +#define VIRTIO_CONSOLE_DEVICE_READY 0 +#define VIRTIO_CONSOLE_PORT_ADD 1 +#define VIRTIO_CONSOLE_PORT_REMOVE 2 +#define VIRTIO_CONSOLE_PORT_READY 3 +#define VIRTIO_CONSOLE_CONSOLE_PORT 4 +#define VIRTIO_CONSOLE_RESIZE 5 +#define VIRTIO_CONSOLE_PORT_OPEN 6 +#define VIRTIO_CONSOLE_PORT_NAME 7 + + +#endif /* _LINUX_VIRTIO_CONSOLE_H */ diff --git a/kernel_headers/linux/virtio_ids.h b/kernel_headers/linux/virtio_ids.h new file mode 100644 index 0000000..284fc3a --- /dev/null +++ b/kernel_headers/linux/virtio_ids.h @@ -0,0 +1,43 @@ +#ifndef _LINUX_VIRTIO_IDS_H +#define _LINUX_VIRTIO_IDS_H +/* + * Virtio IDs + * + * This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ + +#define VIRTIO_ID_NET 1 /* virtio net */ +#define VIRTIO_ID_BLOCK 2 /* virtio block */ +#define VIRTIO_ID_CONSOLE 3 /* virtio console */ +#define VIRTIO_ID_RNG 4 /* virtio rng */ +#define VIRTIO_ID_BALLOON 5 /* virtio balloon */ +#define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */ +#define VIRTIO_ID_SCSI 8 /* virtio scsi */ +#define VIRTIO_ID_9P 9 /* 9p virtio console */ +#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */ +#define VIRTIO_ID_CAIF 12 /* Virtio caif */ + +#endif /* _LINUX_VIRTIO_IDS_H */ diff --git a/kernel_headers/linux/virtio_net.h b/kernel_headers/linux/virtio_net.h new file mode 100644 index 0000000..c520203 --- /dev/null +++ b/kernel_headers/linux/virtio_net.h @@ -0,0 +1,202 @@ +#ifndef _LINUX_VIRTIO_NET_H +#define _LINUX_VIRTIO_NET_H +/* This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ +#include +#include +#include +#include + +/* The feature bitmap for virtio net */ +#define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ +#define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ +#define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ +#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */ +#define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ +#define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ +#define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */ +#define VIRTIO_NET_F_GUEST_UFO 10 /* Guest can handle UFO in. */ +#define VIRTIO_NET_F_HOST_TSO4 11 /* Host can handle TSOv4 in. */ +#define VIRTIO_NET_F_HOST_TSO6 12 /* Host can handle TSOv6 in. */ +#define VIRTIO_NET_F_HOST_ECN 13 /* Host can handle TSO[6] w/ ECN in. */ +#define VIRTIO_NET_F_HOST_UFO 14 /* Host can handle UFO in. */ +#define VIRTIO_NET_F_MRG_RXBUF 15 /* Host can merge receive buffers. */ +#define VIRTIO_NET_F_STATUS 16 /* virtio_net_config.status available */ +#define VIRTIO_NET_F_CTRL_VQ 17 /* Control channel available */ +#define VIRTIO_NET_F_CTRL_RX 18 /* Control channel RX mode support */ +#define VIRTIO_NET_F_CTRL_VLAN 19 /* Control channel VLAN filtering */ +#define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */ +#define VIRTIO_NET_F_GUEST_ANNOUNCE 21 /* Guest can announce device on the + * network */ +#define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow + * Steering */ +#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ + +#define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ +#define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ + +struct virtio_net_config { + /* The config defining mac address (if VIRTIO_NET_F_MAC) */ + __u8 mac[6]; + /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ + __u16 status; + /* Maximum number of each of transmit and receive queues; + * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ. + * Legal values are between 1 and 0x8000 + */ + __u16 max_virtqueue_pairs; +} __attribute__((packed)); + +/* This is the first element of the scatter-gather list. If you don't + * specify GSO or CSUM features, you can simply ignore the header. */ +struct virtio_net_hdr { +#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset +#define VIRTIO_NET_HDR_F_DATA_VALID 2 // Csum is valid + __u8 flags; +#define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame +#define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) +#define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) +#define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP +#define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set + __u8 gso_type; + __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ + __u16 gso_size; /* Bytes to append to hdr_len per frame */ + __u16 csum_start; /* Position to start checksumming from */ + __u16 csum_offset; /* Offset after that to place checksum */ +}; + +/* This is the version of the header to use when the MRG_RXBUF + * feature has been negotiated. */ +struct virtio_net_hdr_mrg_rxbuf { + struct virtio_net_hdr hdr; + __u16 num_buffers; /* Number of merged rx buffers */ +}; + +/* + * Control virtqueue data structures + * + * The control virtqueue expects a header in the first sg entry + * and an ack/status response in the last entry. Data for the + * command goes in between. + */ +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; +} __attribute__((packed)); + +typedef __u8 virtio_net_ctrl_ack; + +#define VIRTIO_NET_OK 0 +#define VIRTIO_NET_ERR 1 + +/* + * Control the RX mode, ie. promisucous, allmulti, etc... + * All commands require an "out" sg entry containing a 1 byte + * state value, zero = disable, non-zero = enable. Commands + * 0 and 1 are supported with the VIRTIO_NET_F_CTRL_RX feature. + * Commands 2-5 are added with VIRTIO_NET_F_CTRL_RX_EXTRA. + */ +#define VIRTIO_NET_CTRL_RX 0 + #define VIRTIO_NET_CTRL_RX_PROMISC 0 + #define VIRTIO_NET_CTRL_RX_ALLMULTI 1 + #define VIRTIO_NET_CTRL_RX_ALLUNI 2 + #define VIRTIO_NET_CTRL_RX_NOMULTI 3 + #define VIRTIO_NET_CTRL_RX_NOUNI 4 + #define VIRTIO_NET_CTRL_RX_NOBCAST 5 + +/* + * Control the MAC + * + * The MAC filter table is managed by the hypervisor, the guest should + * assume the size is infinite. Filtering should be considered + * non-perfect, ie. based on hypervisor resources, the guest may + * received packets from sources not specified in the filter list. + * + * In addition to the class/cmd header, the TABLE_SET command requires + * two out scatterlists. Each contains a 4 byte count of entries followed + * by a concatenated byte stream of the ETH_ALEN MAC addresses. The + * first sg list contains unicast addresses, the second is for multicast. + * This functionality is present if the VIRTIO_NET_F_CTRL_RX feature + * is available. + * + * The ADDR_SET command requests one out scatterlist, it contains a + * 6 bytes MAC address. This functionality is present if the + * VIRTIO_NET_F_CTRL_MAC_ADDR feature is available. + */ +struct virtio_net_ctrl_mac { + __u32 entries; + __u8 macs[][ETH_ALEN]; +} __attribute__((packed)); + +#define VIRTIO_NET_CTRL_MAC 1 + #define VIRTIO_NET_CTRL_MAC_TABLE_SET 0 + #define VIRTIO_NET_CTRL_MAC_ADDR_SET 1 + +/* + * Control VLAN filtering + * + * The VLAN filter table is controlled via a simple ADD/DEL interface. + * VLAN IDs not added may be filterd by the hypervisor. Del is the + * opposite of add. Both commands expect an out entry containing a 2 + * byte VLAN ID. VLAN filterting is available with the + * VIRTIO_NET_F_CTRL_VLAN feature bit. + */ +#define VIRTIO_NET_CTRL_VLAN 2 + #define VIRTIO_NET_CTRL_VLAN_ADD 0 + #define VIRTIO_NET_CTRL_VLAN_DEL 1 + +/* + * Control link announce acknowledgement + * + * The command VIRTIO_NET_CTRL_ANNOUNCE_ACK is used to indicate that + * driver has recevied the notification; device would clear the + * VIRTIO_NET_S_ANNOUNCE bit in the status field after it receives + * this command. + */ +#define VIRTIO_NET_CTRL_ANNOUNCE 3 + #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0 + +/* + * Control Receive Flow Steering + * + * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET + * enables Receive Flow Steering, specifying the number of the transmit and + * receive queues that will be used. After the command is consumed and acked by + * the device, the device will not steer new packets on receive virtqueues + * other than specified nor read from transmit virtqueues other than specified. + * Accordingly, driver should not transmit new packets on virtqueues other than + * specified. + */ +struct virtio_net_ctrl_mq { + __u16 virtqueue_pairs; +}; + +#define VIRTIO_NET_CTRL_MQ 4 + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 + +#endif /* _LINUX_VIRTIO_NET_H */ diff --git a/kernel_headers/linux/virtio_pci.h b/kernel_headers/linux/virtio_pci.h new file mode 100644 index 0000000..ea66f3f --- /dev/null +++ b/kernel_headers/linux/virtio_pci.h @@ -0,0 +1,95 @@ +/* + * Virtio PCI driver + * + * This module allows virtio devices to be used over a virtual PCI device. + * This can be used with QEMU based VMMs like KVM or Xen. + * + * Copyright IBM Corp. 2007 + * + * Authors: + * Anthony Liguori + * + * This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _LINUX_VIRTIO_PCI_H +#define _LINUX_VIRTIO_PCI_H + +#include + +/* A 32-bit r/o bitmask of the features supported by the host */ +#define VIRTIO_PCI_HOST_FEATURES 0 + +/* A 32-bit r/w bitmask of features activated by the guest */ +#define VIRTIO_PCI_GUEST_FEATURES 4 + +/* A 32-bit r/w PFN for the currently selected queue */ +#define VIRTIO_PCI_QUEUE_PFN 8 + +/* A 16-bit r/o queue size for the currently selected queue */ +#define VIRTIO_PCI_QUEUE_NUM 12 + +/* A 16-bit r/w queue selector */ +#define VIRTIO_PCI_QUEUE_SEL 14 + +/* A 16-bit r/w queue notifier */ +#define VIRTIO_PCI_QUEUE_NOTIFY 16 + +/* An 8-bit device status register. */ +#define VIRTIO_PCI_STATUS 18 + +/* An 8-bit r/o interrupt status register. Reading the value will return the + * current contents of the ISR and will also clear it. This is effectively + * a read-and-acknowledge. */ +#define VIRTIO_PCI_ISR 19 + +/* The bit of the ISR which indicates a device configuration change. */ +#define VIRTIO_PCI_ISR_CONFIG 0x2 + +/* MSI-X registers: only enabled if MSI-X is enabled. */ +/* A 16-bit vector for configuration changes. */ +#define VIRTIO_MSI_CONFIG_VECTOR 20 +/* A 16-bit vector for selected queue notifications. */ +#define VIRTIO_MSI_QUEUE_VECTOR 22 +/* Vector value used to disable MSI for queue */ +#define VIRTIO_MSI_NO_VECTOR 0xffff + +/* The remaining space is defined by each driver as the per-driver + * configuration space */ +#define VIRTIO_PCI_CONFIG(dev) ((dev)->msix_enabled ? 24 : 20) + +/* Virtio ABI version, this must match exactly */ +#define VIRTIO_PCI_ABI_VERSION 0 + +/* How many bits to shift physical queue address written to QUEUE_PFN. + * 12 is historical, and due to x86 page size. */ +#define VIRTIO_PCI_QUEUE_ADDR_SHIFT 12 + +/* The alignment to use between consumer and producer parts of vring. + * x86 pagesize again. */ +#define VIRTIO_PCI_VRING_ALIGN 4096 +#endif diff --git a/kernel_headers/linux/virtio_ring.h b/kernel_headers/linux/virtio_ring.h new file mode 100644 index 0000000..1b333e2 --- /dev/null +++ b/kernel_headers/linux/virtio_ring.h @@ -0,0 +1,163 @@ +#ifndef _LINUX_VIRTIO_RING_H +#define _LINUX_VIRTIO_RING_H +/* An interface for efficient virtio implementation, currently for use by KVM + * and lguest, but hopefully others soon. Do NOT change this since it will + * break existing servers and clients. + * + * This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of IBM nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Copyright Rusty Russell IBM Corporation 2007. */ +#include + +/* This marks a buffer as continuing via the next field. */ +#define VRING_DESC_F_NEXT 1 +/* This marks a buffer as write-only (otherwise read-only). */ +#define VRING_DESC_F_WRITE 2 +/* This means the buffer contains a list of buffer descriptors. */ +#define VRING_DESC_F_INDIRECT 4 + +/* The Host uses this in used->flags to advise the Guest: don't kick me when + * you add a buffer. It's unreliable, so it's simply an optimization. Guest + * will still kick if it's out of buffers. */ +#define VRING_USED_F_NO_NOTIFY 1 +/* The Guest uses this in avail->flags to advise the Host: don't interrupt me + * when you consume a buffer. It's unreliable, so it's simply an + * optimization. */ +#define VRING_AVAIL_F_NO_INTERRUPT 1 + +/* We support indirect buffer descriptors */ +#define VIRTIO_RING_F_INDIRECT_DESC 28 + +/* The Guest publishes the used index for which it expects an interrupt + * at the end of the avail ring. Host should ignore the avail->flags field. */ +/* The Host publishes the avail index for which it expects a kick + * at the end of the used ring. Guest should ignore the used->flags field. */ +#define VIRTIO_RING_F_EVENT_IDX 29 + +/* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ +struct vring_desc { + /* Address (guest-physical). */ + __u64 addr; + /* Length. */ + __u32 len; + /* The flags as indicated above. */ + __u16 flags; + /* We chain unused descriptors via this, too */ + __u16 next; +}; + +struct vring_avail { + __u16 flags; + __u16 idx; + __u16 ring[]; +}; + +/* u32 is used here for ids for padding reasons. */ +struct vring_used_elem { + /* Index of start of used descriptor chain. */ + __u32 id; + /* Total length of the descriptor chain which was used (written to) */ + __u32 len; +}; + +struct vring_used { + __u16 flags; + __u16 idx; + struct vring_used_elem ring[]; +}; + +struct vring { + unsigned int num; + + struct vring_desc *desc; + + struct vring_avail *avail; + + struct vring_used *used; +}; + +/* The standard layout for the ring is a continuous chunk of memory which looks + * like this. We assume num is a power of 2. + * + * struct vring + * { + * // The actual descriptors (16 bytes each) + * struct vring_desc desc[num]; + * + * // A ring of available descriptor heads with free-running index. + * __u16 avail_flags; + * __u16 avail_idx; + * __u16 available[num]; + * __u16 used_event_idx; + * + * // Padding to the next align boundary. + * char pad[]; + * + * // A ring of used descriptor heads with free-running index. + * __u16 used_flags; + * __u16 used_idx; + * struct vring_used_elem used[num]; + * __u16 avail_event_idx; + * }; + */ +/* We publish the used event index at the end of the available ring, and vice + * versa. They are at the end for backwards compatibility. */ +#define vring_used_event(vr) ((vr)->avail->ring[(vr)->num]) +#define vring_avail_event(vr) (*(__u16 *)&(vr)->used->ring[(vr)->num]) + +static __inline__ void vring_init(struct vring *vr, unsigned int num, void *p, + unsigned long align) +{ + vr->num = num; + vr->desc = p; + vr->avail = p + num*sizeof(struct vring_desc); + vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + sizeof(__u16) + + align-1) & ~(align - 1)); +} + +static __inline__ unsigned vring_size(unsigned int num, unsigned long align) +{ + return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (3 + num) + + align - 1) & ~(align - 1)) + + sizeof(__u16) * 3 + sizeof(struct vring_used_elem) * num; +} + +/* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */ +/* Assuming a given event_idx value from the other size, if + * we have just incremented index from old to new_idx, + * should we trigger an event? */ +static __inline__ int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old) +{ + /* Note: Xen has similar logic for notification hold-off + * in include/xen/interface/io/ring.h with req_event and req_prod + * corresponding to event_idx + 1 and new_idx respectively. + * Note also that req_event and req_prod in Xen start at 1, + * event indexes in virtio start at 0. */ + return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old); +} + +#endif /* _LINUX_VIRTIO_RING_H */ diff --git a/kernel_headers/linux/virtio_rng.h b/kernel_headers/linux/virtio_rng.h new file mode 100644 index 0000000..c4d5de8 --- /dev/null +++ b/kernel_headers/linux/virtio_rng.h @@ -0,0 +1,8 @@ +#ifndef _LINUX_VIRTIO_RNG_H +#define _LINUX_VIRTIO_RNG_H +/* This header is BSD licensed so anyone can use the definitions to implement + * compatible drivers/servers. */ +#include +#include + +#endif /* _LINUX_VIRTIO_RNG_H */ diff --git a/kernel_headers/linux/vm_bms.h b/kernel_headers/linux/vm_bms.h new file mode 100644 index 0000000..364efc8 --- /dev/null +++ b/kernel_headers/linux/vm_bms.h @@ -0,0 +1,34 @@ +#ifndef __VM_BMS_H__ +#define __VM_BMS_H__ + +#define VM_BMS_DEVICE "/dev/vm_bms" +#define MAX_FIFO_REGS 8 + +/** + * struct qpnp_vm_bms_data - vm-bms data (passed to usersapce) + * @data_type: type of data filled up + * @num_fifo: count of valid fifo averages + * @fifo_uv: array of fifo averages in uv + * @sample_interval sample interval of the fifo data in ms + * @sample_count total samples in one fifo + * @acc_uv averaged accumulator value in uv + * @acc_count num of accumulated samples + * @seq_num sequence number of the data + */ +struct qpnp_vm_bms_data { + unsigned int num_fifo; + unsigned int fifo_uv[MAX_FIFO_REGS]; + unsigned int sample_interval_ms; + unsigned int sample_count; + unsigned int acc_uv; + unsigned int acc_count; + unsigned int seq_num; +}; + +enum vmbms_power_usecase { + VMBMS_IGNORE_ALL_BIT = 1, + VMBMS_VOICE_CALL_BIT = (1 << 4), + VMBMS_STATIC_DISPLAY_BIT = (1 << 5), +}; + +#endif /* __VM_BMS_H__ */ diff --git a/kernel_headers/linux/vt.h b/kernel_headers/linux/vt.h new file mode 100644 index 0000000..f108f05 --- /dev/null +++ b/kernel_headers/linux/vt.h @@ -0,0 +1,90 @@ +#ifndef _LINUX_VT_H +#define _LINUX_VT_H + + +/* + * These constants are also useful for user-level apps (e.g., VC + * resizing). + */ +#define MIN_NR_CONSOLES 1 /* must be at least 1 */ +#define MAX_NR_CONSOLES 63 /* serial lines start at 64 */ +#define MAX_NR_USER_CONSOLES 63 /* must be root to allocate above this */ + /* Note: the ioctl VT_GETSTATE does not work for + consoles 16 and higher (since it returns a short) */ + +/* 0x56 is 'V', to avoid collision with termios and kd */ + +#define VT_OPENQRY 0x5600 /* find available vt */ + +struct vt_mode { + char mode; /* vt mode */ + char waitv; /* if set, hang on writes if not active */ + short relsig; /* signal to raise on release req */ + short acqsig; /* signal to raise on acquisition */ + short frsig; /* unused (set to 0) */ +}; +#define VT_GETMODE 0x5601 /* get mode of active vt */ +#define VT_SETMODE 0x5602 /* set mode of active vt */ +#define VT_AUTO 0x00 /* auto vt switching */ +#define VT_PROCESS 0x01 /* process controls switching */ +#define VT_ACKACQ 0x02 /* acknowledge switch */ + +struct vt_stat { + unsigned short v_active; /* active vt */ + unsigned short v_signal; /* signal to send */ + unsigned short v_state; /* vt bitmask */ +}; +#define VT_GETSTATE 0x5603 /* get global vt state info */ +#define VT_SENDSIG 0x5604 /* signal to send to bitmask of vts */ + +#define VT_RELDISP 0x5605 /* release display */ + +#define VT_ACTIVATE 0x5606 /* make vt active */ +#define VT_WAITACTIVE 0x5607 /* wait for vt active */ +#define VT_DISALLOCATE 0x5608 /* free memory associated to vt */ + +struct vt_sizes { + unsigned short v_rows; /* number of rows */ + unsigned short v_cols; /* number of columns */ + unsigned short v_scrollsize; /* number of lines of scrollback */ +}; +#define VT_RESIZE 0x5609 /* set kernel's idea of screensize */ + +struct vt_consize { + unsigned short v_rows; /* number of rows */ + unsigned short v_cols; /* number of columns */ + unsigned short v_vlin; /* number of pixel rows on screen */ + unsigned short v_clin; /* number of pixel rows per character */ + unsigned short v_vcol; /* number of pixel columns on screen */ + unsigned short v_ccol; /* number of pixel columns per character */ +}; +#define VT_RESIZEX 0x560A /* set kernel's idea of screensize + more */ +#define VT_LOCKSWITCH 0x560B /* disallow vt switching */ +#define VT_UNLOCKSWITCH 0x560C /* allow vt switching */ +#define VT_GETHIFONTMASK 0x560D /* return hi font mask */ + +struct vt_event { + unsigned int event; +#define VT_EVENT_SWITCH 0x0001 /* Console switch */ +#define VT_EVENT_BLANK 0x0002 /* Screen blank */ +#define VT_EVENT_UNBLANK 0x0004 /* Screen unblank */ +#define VT_EVENT_RESIZE 0x0008 /* Resize display */ +#define VT_MAX_EVENT 0x000F + unsigned int oldev; /* Old console */ + unsigned int newev; /* New console (if changing) */ + unsigned int pad[4]; /* Padding for expansion */ +}; + +#define VT_WAITEVENT 0x560E /* Wait for an event */ + +struct vt_setactivate { + unsigned int console; + struct vt_mode mode; +}; + +#define VT_SETACTIVATE 0x560F /* Activate and set the mode of a console */ + + +#define vt_get_kmsg_redirect() vt_kmsg_redirect(-1) + +#endif /* _LINUX_VT_H */ diff --git a/kernel_headers/linux/wait.h b/kernel_headers/linux/wait.h new file mode 100644 index 0000000..bb88233 --- /dev/null +++ b/kernel_headers/linux/wait.h @@ -0,0 +1,21 @@ +#ifndef _LINUX_WAIT_H +#define _LINUX_WAIT_H + +#define WNOHANG 0x00000001 +#define WUNTRACED 0x00000002 +#define WSTOPPED WUNTRACED +#define WEXITED 0x00000004 +#define WCONTINUED 0x00000008 +#define WNOWAIT 0x01000000 /* Don't reap, just poll status. */ + +#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads in this group */ +#define __WALL 0x40000000 /* Wait on all children, regardless of type */ +#define __WCLONE 0x80000000 /* Wait only on non-SIGCHLD children */ + +/* First argument to waitid: */ +#define P_ALL 0 +#define P_PID 1 +#define P_PGID 2 + + +#endif /* _LINUX_WAIT_H */ diff --git a/kernel_headers/linux/wanrouter.h b/kernel_headers/linux/wanrouter.h new file mode 100644 index 0000000..cc61950 --- /dev/null +++ b/kernel_headers/linux/wanrouter.h @@ -0,0 +1,17 @@ +/* + * wanrouter.h Legacy declarations kept around until X25 is removed + */ + +#ifndef _ROUTER_H +#define _ROUTER_H + +/* 'state' defines */ +enum wan_states +{ + WAN_UNCONFIGURED, /* link/channel is not configured */ + WAN_DISCONNECTED, /* link/channel is disconnected */ + WAN_CONNECTING, /* connection is in progress */ + WAN_CONNECTED /* link/channel is operational */ +}; + +#endif /* _ROUTER_H */ diff --git a/kernel_headers/linux/watchdog.h b/kernel_headers/linux/watchdog.h new file mode 100644 index 0000000..a89ed11 --- /dev/null +++ b/kernel_headers/linux/watchdog.h @@ -0,0 +1,57 @@ +/* + * Generic watchdog defines. Derived from.. + * + * Berkshire PC Watchdog Defines + * by Ken Hollis + * + */ + +#ifndef _LINUX_WATCHDOG_H +#define _LINUX_WATCHDOG_H + +#include +#include + +#define WATCHDOG_IOCTL_BASE 'W' + +struct watchdog_info { + __u32 options; /* Options the card/driver supports */ + __u32 firmware_version; /* Firmware version of the card */ + __u8 identity[32]; /* Identity of the board */ +}; + +#define WDIOC_GETSUPPORT _IOR(WATCHDOG_IOCTL_BASE, 0, struct watchdog_info) +#define WDIOC_GETSTATUS _IOR(WATCHDOG_IOCTL_BASE, 1, int) +#define WDIOC_GETBOOTSTATUS _IOR(WATCHDOG_IOCTL_BASE, 2, int) +#define WDIOC_GETTEMP _IOR(WATCHDOG_IOCTL_BASE, 3, int) +#define WDIOC_SETOPTIONS _IOR(WATCHDOG_IOCTL_BASE, 4, int) +#define WDIOC_KEEPALIVE _IOR(WATCHDOG_IOCTL_BASE, 5, int) +#define WDIOC_SETTIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 6, int) +#define WDIOC_GETTIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 7, int) +#define WDIOC_SETPRETIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 8, int) +#define WDIOC_GETPRETIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 9, int) +#define WDIOC_GETTIMELEFT _IOR(WATCHDOG_IOCTL_BASE, 10, int) + +#define WDIOF_UNKNOWN -1 /* Unknown flag error */ +#define WDIOS_UNKNOWN -1 /* Unknown status error */ + +#define WDIOF_OVERHEAT 0x0001 /* Reset due to CPU overheat */ +#define WDIOF_FANFAULT 0x0002 /* Fan failed */ +#define WDIOF_EXTERN1 0x0004 /* External relay 1 */ +#define WDIOF_EXTERN2 0x0008 /* External relay 2 */ +#define WDIOF_POWERUNDER 0x0010 /* Power bad/power fault */ +#define WDIOF_CARDRESET 0x0020 /* Card previously reset the CPU */ +#define WDIOF_POWEROVER 0x0040 /* Power over voltage */ +#define WDIOF_SETTIMEOUT 0x0080 /* Set timeout (in seconds) */ +#define WDIOF_MAGICCLOSE 0x0100 /* Supports magic close char */ +#define WDIOF_PRETIMEOUT 0x0200 /* Pretimeout (in seconds), get/set */ +#define WDIOF_ALARMONLY 0x0400 /* Watchdog triggers a management or + other external alarm not a reboot */ +#define WDIOF_KEEPALIVEPING 0x8000 /* Keep alive ping reply */ + +#define WDIOS_DISABLECARD 0x0001 /* Turn off the watchdog timer */ +#define WDIOS_ENABLECARD 0x0002 /* Turn on the watchdog timer */ +#define WDIOS_TEMPPANIC 0x0004 /* Kernel panic on temperature trip */ + + +#endif /* _LINUX_WATCHDOG_H */ diff --git a/kernel_headers/linux/wimax.h b/kernel_headers/linux/wimax.h new file mode 100644 index 0000000..9f6b77a --- /dev/null +++ b/kernel_headers/linux/wimax.h @@ -0,0 +1,239 @@ +/* + * Linux WiMax + * API for user space + * + * + * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * Intel Corporation + * Inaky Perez-Gonzalez + * - Initial implementation + * + * + * This file declares the user/kernel protocol that is spoken over + * Generic Netlink, as well as any type declaration that is to be used + * by kernel and user space. + * + * It is intended for user space to clone it verbatim to use it as a + * primary reference for definitions. + * + * Stuff intended for kernel usage as well as full protocol and stack + * documentation is rooted in include/net/wimax.h. + */ + +#ifndef __LINUX__WIMAX_H__ +#define __LINUX__WIMAX_H__ + +#include + +enum { + /** + * Version of the interface (unsigned decimal, MMm, max 25.5) + * M - Major: change if removing or modifying an existing call. + * m - minor: change when adding a new call + */ + WIMAX_GNL_VERSION = 01, + /* Generic NetLink attributes */ + WIMAX_GNL_ATTR_INVALID = 0x00, + WIMAX_GNL_ATTR_MAX = 10, +}; + + +/* + * Generic NetLink operations + * + * Most of these map to an API call; _OP_ stands for operation, _RP_ + * for reply and _RE_ for report (aka: signal). + */ +enum { + WIMAX_GNL_OP_MSG_FROM_USER, /* User to kernel message */ + WIMAX_GNL_OP_MSG_TO_USER, /* Kernel to user message */ + WIMAX_GNL_OP_RFKILL, /* Run wimax_rfkill() */ + WIMAX_GNL_OP_RESET, /* Run wimax_rfkill() */ + WIMAX_GNL_RE_STATE_CHANGE, /* Report: status change */ + WIMAX_GNL_OP_STATE_GET, /* Request for current state */ +}; + + +/* Message from user / to user */ +enum { + WIMAX_GNL_MSG_IFIDX = 1, + WIMAX_GNL_MSG_PIPE_NAME, + WIMAX_GNL_MSG_DATA, +}; + + +/* + * wimax_rfkill() + * + * The state of the radio (ON/OFF) is mapped to the rfkill subsystem's + * switch state (DISABLED/ENABLED). + */ +enum wimax_rf_state { + WIMAX_RF_OFF = 0, /* Radio is off, rfkill on/enabled */ + WIMAX_RF_ON = 1, /* Radio is on, rfkill off/disabled */ + WIMAX_RF_QUERY = 2, +}; + +/* Attributes */ +enum { + WIMAX_GNL_RFKILL_IFIDX = 1, + WIMAX_GNL_RFKILL_STATE, +}; + + +/* Attributes for wimax_reset() */ +enum { + WIMAX_GNL_RESET_IFIDX = 1, +}; + +/* Attributes for wimax_state_get() */ +enum { + WIMAX_GNL_STGET_IFIDX = 1, +}; + +/* + * Attributes for the Report State Change + * + * For now we just have the old and new states; new attributes might + * be added later on. + */ +enum { + WIMAX_GNL_STCH_IFIDX = 1, + WIMAX_GNL_STCH_STATE_OLD, + WIMAX_GNL_STCH_STATE_NEW, +}; + + +/** + * enum wimax_st - The different states of a WiMAX device + * @__WIMAX_ST_NULL: The device structure has been allocated and zeroed, + * but still wimax_dev_add() hasn't been called. There is no state. + * + * @WIMAX_ST_DOWN: The device has been registered with the WiMAX and + * networking stacks, but it is not initialized (normally that is + * done with 'ifconfig DEV up' [or equivalent], which can upload + * firmware and enable communications with the device). + * In this state, the device is powered down and using as less + * power as possible. + * This state is the default after a call to wimax_dev_add(). It + * is ok to have drivers move directly to %WIMAX_ST_UNINITIALIZED + * or %WIMAX_ST_RADIO_OFF in _probe() after the call to + * wimax_dev_add(). + * It is recommended that the driver leaves this state when + * calling 'ifconfig DEV up' and enters it back on 'ifconfig DEV + * down'. + * + * @__WIMAX_ST_QUIESCING: The device is being torn down, so no API + * operations are allowed to proceed except the ones needed to + * complete the device clean up process. + * + * @WIMAX_ST_UNINITIALIZED: [optional] Communication with the device + * is setup, but the device still requires some configuration + * before being operational. + * Some WiMAX API calls might work. + * + * @WIMAX_ST_RADIO_OFF: The device is fully up; radio is off (wether + * by hardware or software switches). + * It is recommended to always leave the device in this state + * after initialization. + * + * @WIMAX_ST_READY: The device is fully up and radio is on. + * + * @WIMAX_ST_SCANNING: [optional] The device has been instructed to + * scan. In this state, the device cannot be actively connected to + * a network. + * + * @WIMAX_ST_CONNECTING: The device is connecting to a network. This + * state exists because in some devices, the connect process can + * include a number of negotiations between user space, kernel + * space and the device. User space needs to know what the device + * is doing. If the connect sequence in a device is atomic and + * fast, the device can transition directly to CONNECTED + * + * @WIMAX_ST_CONNECTED: The device is connected to a network. + * + * @__WIMAX_ST_INVALID: This is an invalid state used to mark the + * maximum numeric value of states. + * + * Description: + * + * Transitions from one state to another one are atomic and can only + * be caused in kernel space with wimax_state_change(). To read the + * state, use wimax_state_get(). + * + * States starting with __ are internal and shall not be used or + * referred to by drivers or userspace. They look ugly, but that's the + * point -- if any use is made non-internal to the stack, it is easier + * to catch on review. + * + * All API operations [with well defined exceptions] will take the + * device mutex before starting and then check the state. If the state + * is %__WIMAX_ST_NULL, %WIMAX_ST_DOWN, %WIMAX_ST_UNINITIALIZED or + * %__WIMAX_ST_QUIESCING, it will drop the lock and quit with + * -%EINVAL, -%ENOMEDIUM, -%ENOTCONN or -%ESHUTDOWN. + * + * The order of the definitions is important, so we can do numerical + * comparisons (eg: < %WIMAX_ST_RADIO_OFF means the device is not ready + * to operate). + */ +/* + * The allowed state transitions are described in the table below + * (states in rows can go to states in columns where there is an X): + * + * UNINI RADIO READY SCAN CONNEC CONNEC + * NULL DOWN QUIESCING TIALIZED OFF NING TING TED + * NULL - x + * DOWN - x x x + * QUIESCING x - + * UNINITIALIZED x - x + * RADIO_OFF x - x + * READY x x - x x x + * SCANNING x x x - x x + * CONNECTING x x x x - x + * CONNECTED x x x - + * + * This table not available in kernel-doc because the formatting messes it up. + */ + enum wimax_st { + __WIMAX_ST_NULL = 0, + WIMAX_ST_DOWN, + __WIMAX_ST_QUIESCING, + WIMAX_ST_UNINITIALIZED, + WIMAX_ST_RADIO_OFF, + WIMAX_ST_READY, + WIMAX_ST_SCANNING, + WIMAX_ST_CONNECTING, + WIMAX_ST_CONNECTED, + __WIMAX_ST_INVALID /* Always keep last */ +}; + + +#endif /* #ifndef __LINUX__WIMAX_H__ */ diff --git a/kernel_headers/linux/wimax/..install.cmd b/kernel_headers/linux/wimax/..install.cmd new file mode 100644 index 0000000..c41e468 --- /dev/null +++ b/kernel_headers/linux/wimax/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/wimax/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/wimax /android/kernels/moto/surnia/kernel-msm/include/uapi/linux/wimax i2400m.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/wimax /android/kernels/moto/surnia/kernel-msm/include/linux/wimax ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/wimax /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/linux/wimax ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/wimax/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/linux/wimax/.install diff --git a/kernel_headers/linux/wimax/.install b/kernel_headers/linux/wimax/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/linux/wimax/i2400m.h b/kernel_headers/linux/wimax/i2400m.h new file mode 100644 index 0000000..62d3561 --- /dev/null +++ b/kernel_headers/linux/wimax/i2400m.h @@ -0,0 +1,572 @@ +/* + * Intel Wireless WiMax Connection 2400m + * Host-Device protocol interface definitions + * + * + * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * Intel Corporation + * Inaky Perez-Gonzalez + * - Initial implementation + * + * + * This header defines the data structures and constants used to + * communicate with the device. + * + * BOOTMODE/BOOTROM/FIRMWARE UPLOAD PROTOCOL + * + * The firmware upload protocol is quite simple and only requires a + * handful of commands. See drivers/net/wimax/i2400m/fw.c for more + * details. + * + * The BCF data structure is for the firmware file header. + * + * + * THE DATA / CONTROL PROTOCOL + * + * This is the normal protocol spoken with the device once the + * firmware is uploaded. It transports data payloads and control + * messages back and forth. + * + * It consists 'messages' that pack one or more payloads each. The + * format is described in detail in drivers/net/wimax/i2400m/rx.c and + * tx.c. + * + * + * THE L3L4 PROTOCOL + * + * The term L3L4 refers to Layer 3 (the device), Layer 4 (the + * driver/host software). + * + * This is the control protocol used by the host to control the i2400m + * device (scan, connect, disconnect...). This is sent to / received + * as control frames. These frames consist of a header and zero or + * more TLVs with information. We call each control frame a "message". + * + * Each message is composed of: + * + * HEADER + * [TLV0 + PAYLOAD0] + * [TLV1 + PAYLOAD1] + * [...] + * [TLVN + PAYLOADN] + * + * The HEADER is defined by 'struct i2400m_l3l4_hdr'. The payloads are + * defined by a TLV structure (Type Length Value) which is a 'header' + * (struct i2400m_tlv_hdr) and then the payload. + * + * All integers are represented as Little Endian. + * + * - REQUESTS AND EVENTS + * + * The requests can be clasified as follows: + * + * COMMAND: implies a request from the host to the device requesting + * an action being performed. The device will reply with a + * message (with the same type as the command), status and + * no (TLV) payload. Execution of a command might cause + * events (of different type) to be sent later on as + * device's state changes. + * + * GET/SET: similar to COMMAND, but will not cause other + * EVENTs. The reply, in the case of GET, will contain + * TLVs with the requested information. + * + * EVENT: asynchronous messages sent from the device, maybe as a + * consequence of previous COMMANDs but disassociated from + * them. + * + * Only one request might be pending at the same time (ie: don't + * parallelize nor post another GET request before the previous + * COMMAND has been acknowledged with it's corresponding reply by the + * device). + * + * The different requests and their formats are described below: + * + * I2400M_MT_* Message types + * I2400M_MS_* Message status (for replies, events) + * i2400m_tlv_* TLVs + * + * data types are named 'struct i2400m_msg_OPNAME', OPNAME matching the + * operation. + */ + +#ifndef __LINUX__WIMAX__I2400M_H__ +#define __LINUX__WIMAX__I2400M_H__ + +#include + + +/* + * Host Device Interface (HDI) common to all busses + */ + +/* Boot-mode (firmware upload mode) commands */ + +/* Header for the firmware file */ +struct i2400m_bcf_hdr { + __le32 module_type; + __le32 header_len; + __le32 header_version; + __le32 module_id; + __le32 module_vendor; + __le32 date; /* BCD YYYMMDD */ + __le32 size; /* in dwords */ + __le32 key_size; /* in dwords */ + __le32 modulus_size; /* in dwords */ + __le32 exponent_size; /* in dwords */ + __u8 reserved[88]; +} __attribute__ ((packed)); + +/* Boot mode opcodes */ +enum i2400m_brh_opcode { + I2400M_BRH_READ = 1, + I2400M_BRH_WRITE = 2, + I2400M_BRH_JUMP = 3, + I2400M_BRH_SIGNED_JUMP = 8, + I2400M_BRH_HASH_PAYLOAD_ONLY = 9, +}; + +/* Boot mode command masks and stuff */ +enum i2400m_brh { + I2400M_BRH_SIGNATURE = 0xcbbc0000, + I2400M_BRH_SIGNATURE_MASK = 0xffff0000, + I2400M_BRH_SIGNATURE_SHIFT = 16, + I2400M_BRH_OPCODE_MASK = 0x0000000f, + I2400M_BRH_RESPONSE_MASK = 0x000000f0, + I2400M_BRH_RESPONSE_SHIFT = 4, + I2400M_BRH_DIRECT_ACCESS = 0x00000400, + I2400M_BRH_RESPONSE_REQUIRED = 0x00000200, + I2400M_BRH_USE_CHECKSUM = 0x00000100, +}; + + +/** + * i2400m_bootrom_header - Header for a boot-mode command + * + * @cmd: the above command descriptor + * @target_addr: where on the device memory should the action be performed. + * @data_size: for read/write, amount of data to be read/written + * @block_checksum: checksum value (if applicable) + * @payload: the beginning of data attached to this header + */ +struct i2400m_bootrom_header { + __le32 command; /* Compose with enum i2400_brh */ + __le32 target_addr; + __le32 data_size; + __le32 block_checksum; + char payload[0]; +} __attribute__ ((packed)); + + +/* + * Data / control protocol + */ + +/* Packet types for the host-device interface */ +enum i2400m_pt { + I2400M_PT_DATA = 0, + I2400M_PT_CTRL, + I2400M_PT_TRACE, /* For device debug */ + I2400M_PT_RESET_WARM, /* device reset */ + I2400M_PT_RESET_COLD, /* USB[transport] reset, like reconnect */ + I2400M_PT_EDATA, /* Extended RX data */ + I2400M_PT_ILLEGAL +}; + + +/* + * Payload for a data packet + * + * This is prefixed to each and every outgoing DATA type. + */ +struct i2400m_pl_data_hdr { + __le32 reserved; +} __attribute__((packed)); + + +/* + * Payload for an extended data packet + * + * New in fw v1.4 + * + * @reorder: if this payload has to be reorder or not (and how) + * @cs: the type of data in the packet, as defined per (802.16e + * T11.13.19.1). Currently only 2 (IPv4 packet) supported. + * + * This is prefixed to each and every INCOMING DATA packet. + */ +struct i2400m_pl_edata_hdr { + __le32 reorder; /* bits defined in i2400m_ro */ + __u8 cs; + __u8 reserved[11]; +} __attribute__((packed)); + +enum i2400m_cs { + I2400M_CS_IPV4_0 = 0, + I2400M_CS_IPV4 = 2, +}; + +enum i2400m_ro { + I2400M_RO_NEEDED = 0x01, + I2400M_RO_TYPE = 0x03, + I2400M_RO_TYPE_SHIFT = 1, + I2400M_RO_CIN = 0x0f, + I2400M_RO_CIN_SHIFT = 4, + I2400M_RO_FBN = 0x07ff, + I2400M_RO_FBN_SHIFT = 8, + I2400M_RO_SN = 0x07ff, + I2400M_RO_SN_SHIFT = 21, +}; + +enum i2400m_ro_type { + I2400M_RO_TYPE_RESET = 0, + I2400M_RO_TYPE_PACKET, + I2400M_RO_TYPE_WS, + I2400M_RO_TYPE_PACKET_WS, +}; + + +/* Misc constants */ +enum { + I2400M_PL_ALIGN = 16, /* Payload data size alignment */ + I2400M_PL_SIZE_MAX = 0x3EFF, + I2400M_MAX_PLS_IN_MSG = 60, + /* protocol barkers: sync sequences; for notifications they + * are sent in groups of four. */ + I2400M_H2D_PREVIEW_BARKER = 0xcafe900d, + I2400M_COLD_RESET_BARKER = 0xc01dc01d, + I2400M_WARM_RESET_BARKER = 0x50f750f7, + I2400M_NBOOT_BARKER = 0xdeadbeef, + I2400M_SBOOT_BARKER = 0x0ff1c1a1, + I2400M_SBOOT_BARKER_6050 = 0x80000001, + I2400M_ACK_BARKER = 0xfeedbabe, + I2400M_D2H_MSG_BARKER = 0xbeefbabe, +}; + + +/* + * Hardware payload descriptor + * + * Bitfields encoded in a struct to enforce typing semantics. + * + * Look in rx.c and tx.c for a full description of the format. + */ +struct i2400m_pld { + __le32 val; +} __attribute__ ((packed)); + +#define I2400M_PLD_SIZE_MASK 0x00003fff +#define I2400M_PLD_TYPE_SHIFT 16 +#define I2400M_PLD_TYPE_MASK 0x000f0000 + +/* + * Header for a TX message or RX message + * + * @barker: preamble + * @size: used for management of the FIFO queue buffer; before + * sending, this is converted to be a real preamble. This + * indicates the real size of the TX message that starts at this + * point. If the highest bit is set, then this message is to be + * skipped. + * @sequence: sequence number of this message + * @offset: offset where the message itself starts -- see the comments + * in the file header about message header and payload descriptor + * alignment. + * @num_pls: number of payloads in this message + * @padding: amount of padding bytes at the end of the message to make + * it be of block-size aligned + * + * Look in rx.c and tx.c for a full description of the format. + */ +struct i2400m_msg_hdr { + union { + __le32 barker; + __u32 size; /* same size type as barker!! */ + }; + union { + __le32 sequence; + __u32 offset; /* same size type as barker!! */ + }; + __le16 num_pls; + __le16 rsv1; + __le16 padding; + __le16 rsv2; + struct i2400m_pld pld[0]; +} __attribute__ ((packed)); + + + +/* + * L3/L4 control protocol + */ + +enum { + /* Interface version */ + I2400M_L3L4_VERSION = 0x0100, +}; + +/* Message types */ +enum i2400m_mt { + I2400M_MT_RESERVED = 0x0000, + I2400M_MT_INVALID = 0xffff, + I2400M_MT_REPORT_MASK = 0x8000, + + I2400M_MT_GET_SCAN_RESULT = 0x4202, + I2400M_MT_SET_SCAN_PARAM = 0x4402, + I2400M_MT_CMD_RF_CONTROL = 0x4602, + I2400M_MT_CMD_SCAN = 0x4603, + I2400M_MT_CMD_CONNECT = 0x4604, + I2400M_MT_CMD_DISCONNECT = 0x4605, + I2400M_MT_CMD_EXIT_IDLE = 0x4606, + I2400M_MT_GET_LM_VERSION = 0x5201, + I2400M_MT_GET_DEVICE_INFO = 0x5202, + I2400M_MT_GET_LINK_STATUS = 0x5203, + I2400M_MT_GET_STATISTICS = 0x5204, + I2400M_MT_GET_STATE = 0x5205, + I2400M_MT_GET_MEDIA_STATUS = 0x5206, + I2400M_MT_SET_INIT_CONFIG = 0x5404, + I2400M_MT_CMD_INIT = 0x5601, + I2400M_MT_CMD_TERMINATE = 0x5602, + I2400M_MT_CMD_MODE_OF_OP = 0x5603, + I2400M_MT_CMD_RESET_DEVICE = 0x5604, + I2400M_MT_CMD_MONITOR_CONTROL = 0x5605, + I2400M_MT_CMD_ENTER_POWERSAVE = 0x5606, + I2400M_MT_GET_TLS_OPERATION_RESULT = 0x6201, + I2400M_MT_SET_EAP_SUCCESS = 0x6402, + I2400M_MT_SET_EAP_FAIL = 0x6403, + I2400M_MT_SET_EAP_KEY = 0x6404, + I2400M_MT_CMD_SEND_EAP_RESPONSE = 0x6602, + I2400M_MT_REPORT_SCAN_RESULT = 0xc002, + I2400M_MT_REPORT_STATE = 0xd002, + I2400M_MT_REPORT_POWERSAVE_READY = 0xd005, + I2400M_MT_REPORT_EAP_REQUEST = 0xe002, + I2400M_MT_REPORT_EAP_RESTART = 0xe003, + I2400M_MT_REPORT_ALT_ACCEPT = 0xe004, + I2400M_MT_REPORT_KEY_REQUEST = 0xe005, +}; + + +/* + * Message Ack Status codes + * + * When a message is replied-to, this status is reported. + */ +enum i2400m_ms { + I2400M_MS_DONE_OK = 0, + I2400M_MS_DONE_IN_PROGRESS = 1, + I2400M_MS_INVALID_OP = 2, + I2400M_MS_BAD_STATE = 3, + I2400M_MS_ILLEGAL_VALUE = 4, + I2400M_MS_MISSING_PARAMS = 5, + I2400M_MS_VERSION_ERROR = 6, + I2400M_MS_ACCESSIBILITY_ERROR = 7, + I2400M_MS_BUSY = 8, + I2400M_MS_CORRUPTED_TLV = 9, + I2400M_MS_UNINITIALIZED = 10, + I2400M_MS_UNKNOWN_ERROR = 11, + I2400M_MS_PRODUCTION_ERROR = 12, + I2400M_MS_NO_RF = 13, + I2400M_MS_NOT_READY_FOR_POWERSAVE = 14, + I2400M_MS_THERMAL_CRITICAL = 15, + I2400M_MS_MAX +}; + + +/** + * i2400m_tlv - enumeration of the different types of TLVs + * + * TLVs stand for type-length-value and are the header for a payload + * composed of almost anything. Each payload has a type assigned + * and a length. + */ +enum i2400m_tlv { + I2400M_TLV_L4_MESSAGE_VERSIONS = 129, + I2400M_TLV_SYSTEM_STATE = 141, + I2400M_TLV_MEDIA_STATUS = 161, + I2400M_TLV_RF_OPERATION = 162, + I2400M_TLV_RF_STATUS = 163, + I2400M_TLV_DEVICE_RESET_TYPE = 132, + I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, + I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611, + I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614, + I2400M_TLV_CONFIG_DL_HOST_REORDER = 615, +}; + + +struct i2400m_tlv_hdr { + __le16 type; + __le16 length; /* payload's */ + __u8 pl[0]; +} __attribute__((packed)); + + +struct i2400m_l3l4_hdr { + __le16 type; + __le16 length; /* payload's */ + __le16 version; + __le16 resv1; + __le16 status; + __le16 resv2; + struct i2400m_tlv_hdr pl[0]; +} __attribute__((packed)); + + +/** + * i2400m_system_state - different states of the device + */ +enum i2400m_system_state { + I2400M_SS_UNINITIALIZED = 1, + I2400M_SS_INIT, + I2400M_SS_READY, + I2400M_SS_SCAN, + I2400M_SS_STANDBY, + I2400M_SS_CONNECTING, + I2400M_SS_WIMAX_CONNECTED, + I2400M_SS_DATA_PATH_CONNECTED, + I2400M_SS_IDLE, + I2400M_SS_DISCONNECTING, + I2400M_SS_OUT_OF_ZONE, + I2400M_SS_SLEEPACTIVE, + I2400M_SS_PRODUCTION, + I2400M_SS_CONFIG, + I2400M_SS_RF_OFF, + I2400M_SS_RF_SHUTDOWN, + I2400M_SS_DEVICE_DISCONNECT, + I2400M_SS_MAX, +}; + + +/** + * i2400m_tlv_system_state - report on the state of the system + * + * @state: see enum i2400m_system_state + */ +struct i2400m_tlv_system_state { + struct i2400m_tlv_hdr hdr; + __le32 state; +} __attribute__((packed)); + + +struct i2400m_tlv_l4_message_versions { + struct i2400m_tlv_hdr hdr; + __le16 major; + __le16 minor; + __le16 branch; + __le16 reserved; +} __attribute__((packed)); + + +struct i2400m_tlv_detailed_device_info { + struct i2400m_tlv_hdr hdr; + __u8 reserved1[400]; + __u8 mac_address[6]; + __u8 reserved2[2]; +} __attribute__((packed)); + + +enum i2400m_rf_switch_status { + I2400M_RF_SWITCH_ON = 1, + I2400M_RF_SWITCH_OFF = 2, +}; + +struct i2400m_tlv_rf_switches_status { + struct i2400m_tlv_hdr hdr; + __u8 sw_rf_switch; /* 1 ON, 2 OFF */ + __u8 hw_rf_switch; /* 1 ON, 2 OFF */ + __u8 reserved[2]; +} __attribute__((packed)); + + +enum { + i2400m_rf_operation_on = 1, + i2400m_rf_operation_off = 2 +}; + +struct i2400m_tlv_rf_operation { + struct i2400m_tlv_hdr hdr; + __le32 status; /* 1 ON, 2 OFF */ +} __attribute__((packed)); + + +enum i2400m_tlv_reset_type { + I2400M_RESET_TYPE_COLD = 1, + I2400M_RESET_TYPE_WARM +}; + +struct i2400m_tlv_device_reset_type { + struct i2400m_tlv_hdr hdr; + __le32 reset_type; +} __attribute__((packed)); + + +struct i2400m_tlv_config_idle_parameters { + struct i2400m_tlv_hdr hdr; + __le32 idle_timeout; /* 100 to 300000 ms [5min], 100 increments + * 0 disabled */ + __le32 idle_paging_interval; /* frames */ +} __attribute__((packed)); + + +enum i2400m_media_status { + I2400M_MEDIA_STATUS_LINK_UP = 1, + I2400M_MEDIA_STATUS_LINK_DOWN, + I2400M_MEDIA_STATUS_LINK_RENEW, +}; + +struct i2400m_tlv_media_status { + struct i2400m_tlv_hdr hdr; + __le32 media_status; +} __attribute__((packed)); + + +/* New in v1.4 */ +struct i2400m_tlv_config_idle_timeout { + struct i2400m_tlv_hdr hdr; + __le32 timeout; /* 100 to 300000 ms [5min], 100 increments + * 0 disabled */ +} __attribute__((packed)); + +/* New in v1.4 -- for backward compat, will be removed */ +struct i2400m_tlv_config_d2h_data_format { + struct i2400m_tlv_hdr hdr; + __u8 format; /* 0 old format, 1 enhanced */ + __u8 reserved[3]; +} __attribute__((packed)); + +/* New in v1.4 */ +struct i2400m_tlv_config_dl_host_reorder { + struct i2400m_tlv_hdr hdr; + __u8 reorder; /* 0 disabled, 1 enabled */ + __u8 reserved[3]; +} __attribute__((packed)); + + +#endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ diff --git a/kernel_headers/linux/wireless.h b/kernel_headers/linux/wireless.h new file mode 100644 index 0000000..ad9839f --- /dev/null +++ b/kernel_headers/linux/wireless.h @@ -0,0 +1,1128 @@ +/* + * This file define a set of standard wireless extensions + * + * Version : 22 16.3.07 + * + * Authors : Jean Tourrilhes - HPL - + * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved. + */ + +#ifndef _LINUX_WIRELESS_H +#define _LINUX_WIRELESS_H + +/************************** DOCUMENTATION **************************/ +/* + * Initial APIs (1996 -> onward) : + * ----------------------------- + * Basically, the wireless extensions are for now a set of standard ioctl + * call + /proc/net/wireless + * + * The entry /proc/net/wireless give statistics and information on the + * driver. + * This is better than having each driver having its entry because + * its centralised and we may remove the driver module safely. + * + * Ioctl are used to configure the driver and issue commands. This is + * better than command line options of insmod because we may want to + * change dynamically (while the driver is running) some parameters. + * + * The ioctl mechanimsm are copied from standard devices ioctl. + * We have the list of command plus a structure descibing the + * data exchanged... + * Note that to add these ioctl, I was obliged to modify : + * # net/core/dev.c (two place + add include) + * # net/ipv4/af_inet.c (one place + add include) + * + * /proc/net/wireless is a copy of /proc/net/dev. + * We have a structure for data passed from the driver to /proc/net/wireless + * Too add this, I've modified : + * # net/core/dev.c (two other places) + * # include/linux/netdevice.h (one place) + * # include/linux/proc_fs.h (one place) + * + * New driver API (2002 -> onward) : + * ------------------------------- + * This file is only concerned with the user space API and common definitions. + * The new driver API is defined and documented in : + * # include/net/iw_handler.h + * + * Note as well that /proc/net/wireless implementation has now moved in : + * # net/core/wireless.c + * + * Wireless Events (2002 -> onward) : + * -------------------------------- + * Events are defined at the end of this file, and implemented in : + * # net/core/wireless.c + * + * Other comments : + * -------------- + * Do not add here things that are redundant with other mechanisms + * (drivers init, ifconfig, /proc/net/dev, ...) and with are not + * wireless specific. + * + * These wireless extensions are not magic : each driver has to provide + * support for them... + * + * IMPORTANT NOTE : As everything in the kernel, this is very much a + * work in progress. Contact me if you have ideas of improvements... + */ + +/***************************** INCLUDES *****************************/ + +#include /* for __u* and __s* typedefs */ +#include /* for "struct sockaddr" et al */ +#include /* for IFNAMSIZ and co... */ + +/***************************** VERSION *****************************/ +/* + * This constant is used to know the availability of the wireless + * extensions and to know which version of wireless extensions it is + * (there is some stuff that will be added in the future...) + * I just plan to increment with each new version. + */ +#define WIRELESS_EXT 22 + +/* + * Changes : + * + * V2 to V3 + * -------- + * Alan Cox start some incompatibles changes. I've integrated a bit more. + * - Encryption renamed to Encode to avoid US regulation problems + * - Frequency changed from float to struct to avoid problems on old 386 + * + * V3 to V4 + * -------- + * - Add sensitivity + * + * V4 to V5 + * -------- + * - Missing encoding definitions in range + * - Access points stuff + * + * V5 to V6 + * -------- + * - 802.11 support (ESSID ioctls) + * + * V6 to V7 + * -------- + * - define IW_ESSID_MAX_SIZE and IW_MAX_AP + * + * V7 to V8 + * -------- + * - Changed my e-mail address + * - More 802.11 support (nickname, rate, rts, frag) + * - List index in frequencies + * + * V8 to V9 + * -------- + * - Support for 'mode of operation' (ad-hoc, managed...) + * - Support for unicast and multicast power saving + * - Change encoding to support larger tokens (>64 bits) + * - Updated iw_params (disable, flags) and use it for NWID + * - Extracted iw_point from iwreq for clarity + * + * V9 to V10 + * --------- + * - Add PM capability to range structure + * - Add PM modifier : MAX/MIN/RELATIVE + * - Add encoding option : IW_ENCODE_NOKEY + * - Add TxPower ioctls (work like TxRate) + * + * V10 to V11 + * ---------- + * - Add WE version in range (help backward/forward compatibility) + * - Add retry ioctls (work like PM) + * + * V11 to V12 + * ---------- + * - Add SIOCSIWSTATS to get /proc/net/wireless programatically + * - Add DEV PRIVATE IOCTL to avoid collisions in SIOCDEVPRIVATE space + * - Add new statistics (frag, retry, beacon) + * - Add average quality (for user space calibration) + * + * V12 to V13 + * ---------- + * - Document creation of new driver API. + * - Extract union iwreq_data from struct iwreq (for new driver API). + * - Rename SIOCSIWNAME as SIOCSIWCOMMIT + * + * V13 to V14 + * ---------- + * - Wireless Events support : define struct iw_event + * - Define additional specific event numbers + * - Add "addr" and "param" fields in union iwreq_data + * - AP scanning stuff (SIOCSIWSCAN and friends) + * + * V14 to V15 + * ---------- + * - Add IW_PRIV_TYPE_ADDR for struct sockaddr private arg + * - Make struct iw_freq signed (both m & e), add explicit padding + * - Add IWEVCUSTOM for driver specific event/scanning token + * - Add IW_MAX_GET_SPY for driver returning a lot of addresses + * - Add IW_TXPOW_RANGE for range of Tx Powers + * - Add IWEVREGISTERED & IWEVEXPIRED events for Access Points + * - Add IW_MODE_MONITOR for passive monitor + * + * V15 to V16 + * ---------- + * - Increase the number of bitrates in iw_range to 32 (for 802.11g) + * - Increase the number of frequencies in iw_range to 32 (for 802.11b+a) + * - Reshuffle struct iw_range for increases, add filler + * - Increase IW_MAX_AP to 64 for driver returning a lot of addresses + * - Remove IW_MAX_GET_SPY because conflict with enhanced spy support + * - Add SIOCSIWTHRSPY/SIOCGIWTHRSPY and "struct iw_thrspy" + * - Add IW_ENCODE_TEMP and iw_range->encoding_login_index + * + * V16 to V17 + * ---------- + * - Add flags to frequency -> auto/fixed + * - Document (struct iw_quality *)->updated, add new flags (INVALID) + * - Wireless Event capability in struct iw_range + * - Add support for relative TxPower (yick !) + * + * V17 to V18 (From Jouni Malinen ) + * ---------- + * - Add support for WPA/WPA2 + * - Add extended encoding configuration (SIOCSIWENCODEEXT and + * SIOCGIWENCODEEXT) + * - Add SIOCSIWGENIE/SIOCGIWGENIE + * - Add SIOCSIWMLME + * - Add SIOCSIWPMKSA + * - Add struct iw_range bit field for supported encoding capabilities + * - Add optional scan request parameters for SIOCSIWSCAN + * - Add SIOCSIWAUTH/SIOCGIWAUTH for setting authentication and WPA + * related parameters (extensible up to 4096 parameter values) + * - Add wireless events: IWEVGENIE, IWEVMICHAELMICFAILURE, + * IWEVASSOCREQIE, IWEVASSOCRESPIE, IWEVPMKIDCAND + * + * V18 to V19 + * ---------- + * - Remove (struct iw_point *)->pointer from events and streams + * - Remove header includes to help user space + * - Increase IW_ENCODING_TOKEN_MAX from 32 to 64 + * - Add IW_QUAL_ALL_UPDATED and IW_QUAL_ALL_INVALID macros + * - Add explicit flag to tell stats are in dBm : IW_QUAL_DBM + * - Add IW_IOCTL_IDX() and IW_EVENT_IDX() macros + * + * V19 to V20 + * ---------- + * - RtNetlink requests support (SET/GET) + * + * V20 to V21 + * ---------- + * - Remove (struct net_device *)->get_wireless_stats() + * - Change length in ESSID and NICK to strlen() instead of strlen()+1 + * - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers + * - Power/Retry relative values no longer * 100000 + * - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI + * + * V21 to V22 + * ---------- + * - Prevent leaking of kernel space in stream on 64 bits. + */ + +/**************************** CONSTANTS ****************************/ + +/* -------------------------- IOCTL LIST -------------------------- */ + +/* Wireless Identification */ +#define SIOCSIWCOMMIT 0x8B00 /* Commit pending changes to driver */ +#define SIOCGIWNAME 0x8B01 /* get name == wireless protocol */ +/* SIOCGIWNAME is used to verify the presence of Wireless Extensions. + * Common values : "IEEE 802.11-DS", "IEEE 802.11-FH", "IEEE 802.11b"... + * Don't put the name of your driver there, it's useless. */ + +/* Basic operations */ +#define SIOCSIWNWID 0x8B02 /* set network id (pre-802.11) */ +#define SIOCGIWNWID 0x8B03 /* get network id (the cell) */ +#define SIOCSIWFREQ 0x8B04 /* set channel/frequency (Hz) */ +#define SIOCGIWFREQ 0x8B05 /* get channel/frequency (Hz) */ +#define SIOCSIWMODE 0x8B06 /* set operation mode */ +#define SIOCGIWMODE 0x8B07 /* get operation mode */ +#define SIOCSIWSENS 0x8B08 /* set sensitivity (dBm) */ +#define SIOCGIWSENS 0x8B09 /* get sensitivity (dBm) */ + +/* Informative stuff */ +#define SIOCSIWRANGE 0x8B0A /* Unused */ +#define SIOCGIWRANGE 0x8B0B /* Get range of parameters */ +#define SIOCSIWPRIV 0x8B0C /* Unused */ +#define SIOCGIWPRIV 0x8B0D /* get private ioctl interface info */ +#define SIOCSIWSTATS 0x8B0E /* Unused */ +#define SIOCGIWSTATS 0x8B0F /* Get /proc/net/wireless stats */ +/* SIOCGIWSTATS is strictly used between user space and the kernel, and + * is never passed to the driver (i.e. the driver will never see it). */ + +/* Spy support (statistics per MAC address - used for Mobile IP support) */ +#define SIOCSIWSPY 0x8B10 /* set spy addresses */ +#define SIOCGIWSPY 0x8B11 /* get spy info (quality of link) */ +#define SIOCSIWTHRSPY 0x8B12 /* set spy threshold (spy event) */ +#define SIOCGIWTHRSPY 0x8B13 /* get spy threshold */ + +/* Access Point manipulation */ +#define SIOCSIWAP 0x8B14 /* set access point MAC addresses */ +#define SIOCGIWAP 0x8B15 /* get access point MAC addresses */ +#define SIOCGIWAPLIST 0x8B17 /* Deprecated in favor of scanning */ +#define SIOCSIWSCAN 0x8B18 /* trigger scanning (list cells) */ +#define SIOCGIWSCAN 0x8B19 /* get scanning results */ + +/* 802.11 specific support */ +#define SIOCSIWESSID 0x8B1A /* set ESSID (network name) */ +#define SIOCGIWESSID 0x8B1B /* get ESSID */ +#define SIOCSIWNICKN 0x8B1C /* set node name/nickname */ +#define SIOCGIWNICKN 0x8B1D /* get node name/nickname */ +/* As the ESSID and NICKN are strings up to 32 bytes long, it doesn't fit + * within the 'iwreq' structure, so we need to use the 'data' member to + * point to a string in user space, like it is done for RANGE... */ + +/* Other parameters useful in 802.11 and some other devices */ +#define SIOCSIWRATE 0x8B20 /* set default bit rate (bps) */ +#define SIOCGIWRATE 0x8B21 /* get default bit rate (bps) */ +#define SIOCSIWRTS 0x8B22 /* set RTS/CTS threshold (bytes) */ +#define SIOCGIWRTS 0x8B23 /* get RTS/CTS threshold (bytes) */ +#define SIOCSIWFRAG 0x8B24 /* set fragmentation thr (bytes) */ +#define SIOCGIWFRAG 0x8B25 /* get fragmentation thr (bytes) */ +#define SIOCSIWTXPOW 0x8B26 /* set transmit power (dBm) */ +#define SIOCGIWTXPOW 0x8B27 /* get transmit power (dBm) */ +#define SIOCSIWRETRY 0x8B28 /* set retry limits and lifetime */ +#define SIOCGIWRETRY 0x8B29 /* get retry limits and lifetime */ + +/* Encoding stuff (scrambling, hardware security, WEP...) */ +#define SIOCSIWENCODE 0x8B2A /* set encoding token & mode */ +#define SIOCGIWENCODE 0x8B2B /* get encoding token & mode */ +/* Power saving stuff (power management, unicast and multicast) */ +#define SIOCSIWPOWER 0x8B2C /* set Power Management settings */ +#define SIOCGIWPOWER 0x8B2D /* get Power Management settings */ + +/* WPA : Generic IEEE 802.11 informatiom element (e.g., for WPA/RSN/WMM). + * This ioctl uses struct iw_point and data buffer that includes IE id and len + * fields. More than one IE may be included in the request. Setting the generic + * IE to empty buffer (len=0) removes the generic IE from the driver. Drivers + * are allowed to generate their own WPA/RSN IEs, but in these cases, drivers + * are required to report the used IE as a wireless event, e.g., when + * associating with an AP. */ +#define SIOCSIWGENIE 0x8B30 /* set generic IE */ +#define SIOCGIWGENIE 0x8B31 /* get generic IE */ + +/* WPA : IEEE 802.11 MLME requests */ +#define SIOCSIWMLME 0x8B16 /* request MLME operation; uses + * struct iw_mlme */ +/* WPA : Authentication mode parameters */ +#define SIOCSIWAUTH 0x8B32 /* set authentication mode params */ +#define SIOCGIWAUTH 0x8B33 /* get authentication mode params */ + +/* WPA : Extended version of encoding configuration */ +#define SIOCSIWENCODEEXT 0x8B34 /* set encoding token & mode */ +#define SIOCGIWENCODEEXT 0x8B35 /* get encoding token & mode */ + +/* WPA2 : PMKSA cache management */ +#define SIOCSIWPMKSA 0x8B36 /* PMKSA cache operation */ + +/* -------------------- DEV PRIVATE IOCTL LIST -------------------- */ + +/* These 32 ioctl are wireless device private, for 16 commands. + * Each driver is free to use them for whatever purpose it chooses, + * however the driver *must* export the description of those ioctls + * with SIOCGIWPRIV and *must* use arguments as defined below. + * If you don't follow those rules, DaveM is going to hate you (reason : + * it make mixed 32/64bit operation impossible). + */ +#define SIOCIWFIRSTPRIV 0x8BE0 +#define SIOCIWLASTPRIV 0x8BFF +/* Previously, we were using SIOCDEVPRIVATE, but we now have our + * separate range because of collisions with other tools such as + * 'mii-tool'. + * We now have 32 commands, so a bit more space ;-). + * Also, all 'even' commands are only usable by root and don't return the + * content of ifr/iwr to user (but you are not obliged to use the set/get + * convention, just use every other two command). More details in iwpriv.c. + * And I repeat : you are not forced to use them with iwpriv, but you + * must be compliant with it. + */ + +/* ------------------------- IOCTL STUFF ------------------------- */ + +/* The first and the last (range) */ +#define SIOCIWFIRST 0x8B00 +#define SIOCIWLAST SIOCIWLASTPRIV /* 0x8BFF */ +#define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST) +#define IW_HANDLER(id, func) \ + [IW_IOCTL_IDX(id)] = func + +/* Odd : get (world access), even : set (root access) */ +#define IW_IS_SET(cmd) (!((cmd) & 0x1)) +#define IW_IS_GET(cmd) ((cmd) & 0x1) + +/* ----------------------- WIRELESS EVENTS ----------------------- */ +/* Those are *NOT* ioctls, do not issue request on them !!! */ +/* Most events use the same identifier as ioctl requests */ + +#define IWEVTXDROP 0x8C00 /* Packet dropped to excessive retry */ +#define IWEVQUAL 0x8C01 /* Quality part of statistics (scan) */ +#define IWEVCUSTOM 0x8C02 /* Driver specific ascii string */ +#define IWEVREGISTERED 0x8C03 /* Discovered a new node (AP mode) */ +#define IWEVEXPIRED 0x8C04 /* Expired a node (AP mode) */ +#define IWEVGENIE 0x8C05 /* Generic IE (WPA, RSN, WMM, ..) + * (scan results); This includes id and + * length fields. One IWEVGENIE may + * contain more than one IE. Scan + * results may contain one or more + * IWEVGENIE events. */ +#define IWEVMICHAELMICFAILURE 0x8C06 /* Michael MIC failure + * (struct iw_michaelmicfailure) + */ +#define IWEVASSOCREQIE 0x8C07 /* IEs used in (Re)Association Request. + * The data includes id and length + * fields and may contain more than one + * IE. This event is required in + * Managed mode if the driver + * generates its own WPA/RSN IE. This + * should be sent just before + * IWEVREGISTERED event for the + * association. */ +#define IWEVASSOCRESPIE 0x8C08 /* IEs used in (Re)Association + * Response. The data includes id and + * length fields and may contain more + * than one IE. This may be sent + * between IWEVASSOCREQIE and + * IWEVREGISTERED events for the + * association. */ +#define IWEVPMKIDCAND 0x8C09 /* PMKID candidate for RSN + * pre-authentication + * (struct iw_pmkid_cand) */ + +#define IWEVFIRST 0x8C00 +#define IW_EVENT_IDX(cmd) ((cmd) - IWEVFIRST) + +/* ------------------------- PRIVATE INFO ------------------------- */ +/* + * The following is used with SIOCGIWPRIV. It allow a driver to define + * the interface (name, type of data) for its private ioctl. + * Privates ioctl are SIOCIWFIRSTPRIV -> SIOCIWLASTPRIV + */ + +#define IW_PRIV_TYPE_MASK 0x7000 /* Type of arguments */ +#define IW_PRIV_TYPE_NONE 0x0000 +#define IW_PRIV_TYPE_BYTE 0x1000 /* Char as number */ +#define IW_PRIV_TYPE_CHAR 0x2000 /* Char as character */ +#define IW_PRIV_TYPE_INT 0x4000 /* 32 bits int */ +#define IW_PRIV_TYPE_FLOAT 0x5000 /* struct iw_freq */ +#define IW_PRIV_TYPE_ADDR 0x6000 /* struct sockaddr */ + +#define IW_PRIV_SIZE_FIXED 0x0800 /* Variable or fixed number of args */ + +#define IW_PRIV_SIZE_MASK 0x07FF /* Max number of those args */ + +/* + * Note : if the number of args is fixed and the size < 16 octets, + * instead of passing a pointer we will put args in the iwreq struct... + */ + +/* ----------------------- OTHER CONSTANTS ----------------------- */ + +/* Maximum frequencies in the range struct */ +#define IW_MAX_FREQUENCIES 32 +/* Note : if you have something like 80 frequencies, + * don't increase this constant and don't fill the frequency list. + * The user will be able to set by channel anyway... */ + +/* Maximum bit rates in the range struct */ +#define IW_MAX_BITRATES 32 + +/* Maximum tx powers in the range struct */ +#define IW_MAX_TXPOWER 8 +/* Note : if you more than 8 TXPowers, just set the max and min or + * a few of them in the struct iw_range. */ + +/* Maximum of address that you may set with SPY */ +#define IW_MAX_SPY 8 + +/* Maximum of address that you may get in the + list of access points in range */ +#define IW_MAX_AP 64 + +/* Maximum size of the ESSID and NICKN strings */ +#define IW_ESSID_MAX_SIZE 32 + +/* Modes of operation */ +#define IW_MODE_AUTO 0 /* Let the driver decides */ +#define IW_MODE_ADHOC 1 /* Single cell network */ +#define IW_MODE_INFRA 2 /* Multi cell network, roaming, ... */ +#define IW_MODE_MASTER 3 /* Synchronisation master or Access Point */ +#define IW_MODE_REPEAT 4 /* Wireless Repeater (forwarder) */ +#define IW_MODE_SECOND 5 /* Secondary master/repeater (backup) */ +#define IW_MODE_MONITOR 6 /* Passive monitor (listen only) */ +#define IW_MODE_MESH 7 /* Mesh (IEEE 802.11s) network */ + +/* Statistics flags (bitmask in updated) */ +#define IW_QUAL_QUAL_UPDATED 0x01 /* Value was updated since last read */ +#define IW_QUAL_LEVEL_UPDATED 0x02 +#define IW_QUAL_NOISE_UPDATED 0x04 +#define IW_QUAL_ALL_UPDATED 0x07 +#define IW_QUAL_DBM 0x08 /* Level + Noise are dBm */ +#define IW_QUAL_QUAL_INVALID 0x10 /* Driver doesn't provide value */ +#define IW_QUAL_LEVEL_INVALID 0x20 +#define IW_QUAL_NOISE_INVALID 0x40 +#define IW_QUAL_RCPI 0x80 /* Level + Noise are 802.11k RCPI */ +#define IW_QUAL_ALL_INVALID 0x70 + +/* Frequency flags */ +#define IW_FREQ_AUTO 0x00 /* Let the driver decides */ +#define IW_FREQ_FIXED 0x01 /* Force a specific value */ + +/* Maximum number of size of encoding token available + * they are listed in the range structure */ +#define IW_MAX_ENCODING_SIZES 8 + +/* Maximum size of the encoding token in bytes */ +#define IW_ENCODING_TOKEN_MAX 64 /* 512 bits (for now) */ + +/* Flags for encoding (along with the token) */ +#define IW_ENCODE_INDEX 0x00FF /* Token index (if needed) */ +#define IW_ENCODE_FLAGS 0xFF00 /* Flags defined below */ +#define IW_ENCODE_MODE 0xF000 /* Modes defined below */ +#define IW_ENCODE_DISABLED 0x8000 /* Encoding disabled */ +#define IW_ENCODE_ENABLED 0x0000 /* Encoding enabled */ +#define IW_ENCODE_RESTRICTED 0x4000 /* Refuse non-encoded packets */ +#define IW_ENCODE_OPEN 0x2000 /* Accept non-encoded packets */ +#define IW_ENCODE_NOKEY 0x0800 /* Key is write only, so not present */ +#define IW_ENCODE_TEMP 0x0400 /* Temporary key */ + +/* Power management flags available (along with the value, if any) */ +#define IW_POWER_ON 0x0000 /* No details... */ +#define IW_POWER_TYPE 0xF000 /* Type of parameter */ +#define IW_POWER_PERIOD 0x1000 /* Value is a period/duration of */ +#define IW_POWER_TIMEOUT 0x2000 /* Value is a timeout (to go asleep) */ +#define IW_POWER_MODE 0x0F00 /* Power Management mode */ +#define IW_POWER_UNICAST_R 0x0100 /* Receive only unicast messages */ +#define IW_POWER_MULTICAST_R 0x0200 /* Receive only multicast messages */ +#define IW_POWER_ALL_R 0x0300 /* Receive all messages though PM */ +#define IW_POWER_FORCE_S 0x0400 /* Force PM procedure for sending unicast */ +#define IW_POWER_REPEATER 0x0800 /* Repeat broadcast messages in PM period */ +#define IW_POWER_MODIFIER 0x000F /* Modify a parameter */ +#define IW_POWER_MIN 0x0001 /* Value is a minimum */ +#define IW_POWER_MAX 0x0002 /* Value is a maximum */ +#define IW_POWER_RELATIVE 0x0004 /* Value is not in seconds/ms/us */ + +/* Transmit Power flags available */ +#define IW_TXPOW_TYPE 0x00FF /* Type of value */ +#define IW_TXPOW_DBM 0x0000 /* Value is in dBm */ +#define IW_TXPOW_MWATT 0x0001 /* Value is in mW */ +#define IW_TXPOW_RELATIVE 0x0002 /* Value is in arbitrary units */ +#define IW_TXPOW_RANGE 0x1000 /* Range of value between min/max */ + +/* Retry limits and lifetime flags available */ +#define IW_RETRY_ON 0x0000 /* No details... */ +#define IW_RETRY_TYPE 0xF000 /* Type of parameter */ +#define IW_RETRY_LIMIT 0x1000 /* Maximum number of retries*/ +#define IW_RETRY_LIFETIME 0x2000 /* Maximum duration of retries in us */ +#define IW_RETRY_MODIFIER 0x00FF /* Modify a parameter */ +#define IW_RETRY_MIN 0x0001 /* Value is a minimum */ +#define IW_RETRY_MAX 0x0002 /* Value is a maximum */ +#define IW_RETRY_RELATIVE 0x0004 /* Value is not in seconds/ms/us */ +#define IW_RETRY_SHORT 0x0010 /* Value is for short packets */ +#define IW_RETRY_LONG 0x0020 /* Value is for long packets */ + +/* Scanning request flags */ +#define IW_SCAN_DEFAULT 0x0000 /* Default scan of the driver */ +#define IW_SCAN_ALL_ESSID 0x0001 /* Scan all ESSIDs */ +#define IW_SCAN_THIS_ESSID 0x0002 /* Scan only this ESSID */ +#define IW_SCAN_ALL_FREQ 0x0004 /* Scan all Frequencies */ +#define IW_SCAN_THIS_FREQ 0x0008 /* Scan only this Frequency */ +#define IW_SCAN_ALL_MODE 0x0010 /* Scan all Modes */ +#define IW_SCAN_THIS_MODE 0x0020 /* Scan only this Mode */ +#define IW_SCAN_ALL_RATE 0x0040 /* Scan all Bit-Rates */ +#define IW_SCAN_THIS_RATE 0x0080 /* Scan only this Bit-Rate */ +/* struct iw_scan_req scan_type */ +#define IW_SCAN_TYPE_ACTIVE 0 +#define IW_SCAN_TYPE_PASSIVE 1 +/* Maximum size of returned data */ +#define IW_SCAN_MAX_DATA 4096 /* In bytes */ + +/* Scan capability flags - in (struct iw_range *)->scan_capa */ +#define IW_SCAN_CAPA_NONE 0x00 +#define IW_SCAN_CAPA_ESSID 0x01 +#define IW_SCAN_CAPA_BSSID 0x02 +#define IW_SCAN_CAPA_CHANNEL 0x04 +#define IW_SCAN_CAPA_MODE 0x08 +#define IW_SCAN_CAPA_RATE 0x10 +#define IW_SCAN_CAPA_TYPE 0x20 +#define IW_SCAN_CAPA_TIME 0x40 + +/* Max number of char in custom event - use multiple of them if needed */ +#define IW_CUSTOM_MAX 256 /* In bytes */ + +/* Generic information element */ +#define IW_GENERIC_IE_MAX 1024 + +/* MLME requests (SIOCSIWMLME / struct iw_mlme) */ +#define IW_MLME_DEAUTH 0 +#define IW_MLME_DISASSOC 1 +#define IW_MLME_AUTH 2 +#define IW_MLME_ASSOC 3 + +/* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */ +#define IW_AUTH_INDEX 0x0FFF +#define IW_AUTH_FLAGS 0xF000 +/* SIOCSIWAUTH/SIOCGIWAUTH parameters (0 .. 4095) + * (IW_AUTH_INDEX mask in struct iw_param flags; this is the index of the + * parameter that is being set/get to; value will be read/written to + * struct iw_param value field) */ +#define IW_AUTH_WPA_VERSION 0 +#define IW_AUTH_CIPHER_PAIRWISE 1 +#define IW_AUTH_CIPHER_GROUP 2 +#define IW_AUTH_KEY_MGMT 3 +#define IW_AUTH_TKIP_COUNTERMEASURES 4 +#define IW_AUTH_DROP_UNENCRYPTED 5 +#define IW_AUTH_80211_AUTH_ALG 6 +#define IW_AUTH_WPA_ENABLED 7 +#define IW_AUTH_RX_UNENCRYPTED_EAPOL 8 +#define IW_AUTH_ROAMING_CONTROL 9 +#define IW_AUTH_PRIVACY_INVOKED 10 +#define IW_AUTH_CIPHER_GROUP_MGMT 11 +#define IW_AUTH_MFP 12 + +/* IW_AUTH_WPA_VERSION values (bit field) */ +#define IW_AUTH_WPA_VERSION_DISABLED 0x00000001 +#define IW_AUTH_WPA_VERSION_WPA 0x00000002 +#define IW_AUTH_WPA_VERSION_WPA2 0x00000004 + +/* IW_AUTH_PAIRWISE_CIPHER, IW_AUTH_GROUP_CIPHER, and IW_AUTH_CIPHER_GROUP_MGMT + * values (bit field) */ +#define IW_AUTH_CIPHER_NONE 0x00000001 +#define IW_AUTH_CIPHER_WEP40 0x00000002 +#define IW_AUTH_CIPHER_TKIP 0x00000004 +#define IW_AUTH_CIPHER_CCMP 0x00000008 +#define IW_AUTH_CIPHER_WEP104 0x00000010 +#define IW_AUTH_CIPHER_AES_CMAC 0x00000020 + +/* IW_AUTH_KEY_MGMT values (bit field) */ +#define IW_AUTH_KEY_MGMT_802_1X 1 +#define IW_AUTH_KEY_MGMT_PSK 2 + +/* IW_AUTH_80211_AUTH_ALG values (bit field) */ +#define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001 +#define IW_AUTH_ALG_SHARED_KEY 0x00000002 +#define IW_AUTH_ALG_LEAP 0x00000004 + +/* IW_AUTH_ROAMING_CONTROL values */ +#define IW_AUTH_ROAMING_ENABLE 0 /* driver/firmware based roaming */ +#define IW_AUTH_ROAMING_DISABLE 1 /* user space program used for roaming + * control */ + +/* IW_AUTH_MFP (management frame protection) values */ +#define IW_AUTH_MFP_DISABLED 0 /* MFP disabled */ +#define IW_AUTH_MFP_OPTIONAL 1 /* MFP optional */ +#define IW_AUTH_MFP_REQUIRED 2 /* MFP required */ + +/* SIOCSIWENCODEEXT definitions */ +#define IW_ENCODE_SEQ_MAX_SIZE 8 +/* struct iw_encode_ext ->alg */ +#define IW_ENCODE_ALG_NONE 0 +#define IW_ENCODE_ALG_WEP 1 +#define IW_ENCODE_ALG_TKIP 2 +#define IW_ENCODE_ALG_CCMP 3 +#define IW_ENCODE_ALG_PMK 4 +#define IW_ENCODE_ALG_AES_CMAC 5 +/* struct iw_encode_ext ->ext_flags */ +#define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001 +#define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002 +#define IW_ENCODE_EXT_GROUP_KEY 0x00000004 +#define IW_ENCODE_EXT_SET_TX_KEY 0x00000008 + +/* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */ +#define IW_MICFAILURE_KEY_ID 0x00000003 /* Key ID 0..3 */ +#define IW_MICFAILURE_GROUP 0x00000004 +#define IW_MICFAILURE_PAIRWISE 0x00000008 +#define IW_MICFAILURE_STAKEY 0x00000010 +#define IW_MICFAILURE_COUNT 0x00000060 /* 1 or 2 (0 = count not supported) + */ + +/* Bit field values for enc_capa in struct iw_range */ +#define IW_ENC_CAPA_WPA 0x00000001 +#define IW_ENC_CAPA_WPA2 0x00000002 +#define IW_ENC_CAPA_CIPHER_TKIP 0x00000004 +#define IW_ENC_CAPA_CIPHER_CCMP 0x00000008 +#define IW_ENC_CAPA_4WAY_HANDSHAKE 0x00000010 + +/* Event capability macros - in (struct iw_range *)->event_capa + * Because we have more than 32 possible events, we use an array of + * 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */ +#define IW_EVENT_CAPA_BASE(cmd) ((cmd >= SIOCIWFIRSTPRIV) ? \ + (cmd - SIOCIWFIRSTPRIV + 0x60) : \ + (cmd - SIOCIWFIRST)) +#define IW_EVENT_CAPA_INDEX(cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5) +#define IW_EVENT_CAPA_MASK(cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F)) +/* Event capability constants - event autogenerated by the kernel + * This list is valid for most 802.11 devices, customise as needed... */ +#define IW_EVENT_CAPA_K_0 (IW_EVENT_CAPA_MASK(0x8B04) | \ + IW_EVENT_CAPA_MASK(0x8B06) | \ + IW_EVENT_CAPA_MASK(0x8B1A)) +#define IW_EVENT_CAPA_K_1 (IW_EVENT_CAPA_MASK(0x8B2A)) +/* "Easy" macro to set events in iw_range (less efficient) */ +#define IW_EVENT_CAPA_SET(event_capa, cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd)) +#define IW_EVENT_CAPA_SET_KERNEL(event_capa) {event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; } + + +/****************************** TYPES ******************************/ + +/* --------------------------- SUBTYPES --------------------------- */ +/* + * Generic format for most parameters that fit in an int + */ +struct iw_param +{ + __s32 value; /* The value of the parameter itself */ + __u8 fixed; /* Hardware should not use auto select */ + __u8 disabled; /* Disable the feature */ + __u16 flags; /* Various specifc flags (if any) */ +}; + +/* + * For all data larger than 16 octets, we need to use a + * pointer to memory allocated in user space. + */ +struct iw_point +{ + void *pointer; /* Pointer to the data (in user space) */ + __u16 length; /* number of fields or size in bytes */ + __u16 flags; /* Optional params */ +}; + + +/* + * A frequency + * For numbers lower than 10^9, we encode the number in 'm' and + * set 'e' to 0 + * For number greater than 10^9, we divide it by the lowest power + * of 10 to get 'm' lower than 10^9, with 'm'= f / (10^'e')... + * The power of 10 is in 'e', the result of the division is in 'm'. + */ +struct iw_freq +{ + __s32 m; /* Mantissa */ + __s16 e; /* Exponent */ + __u8 i; /* List index (when in range struct) */ + __u8 flags; /* Flags (fixed/auto) */ +}; + +/* + * Quality of the link + */ +struct iw_quality +{ + __u8 qual; /* link quality (%retries, SNR, + %missed beacons or better...) */ + __u8 level; /* signal level (dBm) */ + __u8 noise; /* noise level (dBm) */ + __u8 updated; /* Flags to know if updated */ +}; + +/* + * Packet discarded in the wireless adapter due to + * "wireless" specific problems... + * Note : the list of counter and statistics in net_device_stats + * is already pretty exhaustive, and you should use that first. + * This is only additional stats... + */ +struct iw_discarded +{ + __u32 nwid; /* Rx : Wrong nwid/essid */ + __u32 code; /* Rx : Unable to code/decode (WEP) */ + __u32 fragment; /* Rx : Can't perform MAC reassembly */ + __u32 retries; /* Tx : Max MAC retries num reached */ + __u32 misc; /* Others cases */ +}; + +/* + * Packet/Time period missed in the wireless adapter due to + * "wireless" specific problems... + */ +struct iw_missed +{ + __u32 beacon; /* Missed beacons/superframe */ +}; + +/* + * Quality range (for spy threshold) + */ +struct iw_thrspy +{ + struct sockaddr addr; /* Source address (hw/mac) */ + struct iw_quality qual; /* Quality of the link */ + struct iw_quality low; /* Low threshold */ + struct iw_quality high; /* High threshold */ +}; + +/* + * Optional data for scan request + * + * Note: these optional parameters are controlling parameters for the + * scanning behavior, these do not apply to getting scan results + * (SIOCGIWSCAN). Drivers are expected to keep a local BSS table and + * provide a merged results with all BSSes even if the previous scan + * request limited scanning to a subset, e.g., by specifying an SSID. + * Especially, scan results are required to include an entry for the + * current BSS if the driver is in Managed mode and associated with an AP. + */ +struct iw_scan_req +{ + __u8 scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */ + __u8 essid_len; + __u8 num_channels; /* num entries in channel_list; + * 0 = scan all allowed channels */ + __u8 flags; /* reserved as padding; use zero, this may + * be used in the future for adding flags + * to request different scan behavior */ + struct sockaddr bssid; /* ff:ff:ff:ff:ff:ff for broadcast BSSID or + * individual address of a specific BSS */ + + /* + * Use this ESSID if IW_SCAN_THIS_ESSID flag is used instead of using + * the current ESSID. This allows scan requests for specific ESSID + * without having to change the current ESSID and potentially breaking + * the current association. + */ + __u8 essid[IW_ESSID_MAX_SIZE]; + + /* + * Optional parameters for changing the default scanning behavior. + * These are based on the MLME-SCAN.request from IEEE Std 802.11. + * TU is 1.024 ms. If these are set to 0, driver is expected to use + * reasonable default values. min_channel_time defines the time that + * will be used to wait for the first reply on each channel. If no + * replies are received, next channel will be scanned after this. If + * replies are received, total time waited on the channel is defined by + * max_channel_time. + */ + __u32 min_channel_time; /* in TU */ + __u32 max_channel_time; /* in TU */ + + struct iw_freq channel_list[IW_MAX_FREQUENCIES]; +}; + +/* ------------------------- WPA SUPPORT ------------------------- */ + +/* + * Extended data structure for get/set encoding (this is used with + * SIOCSIWENCODEEXT/SIOCGIWENCODEEXT. struct iw_point and IW_ENCODE_* + * flags are used in the same way as with SIOCSIWENCODE/SIOCGIWENCODE and + * only the data contents changes (key data -> this structure, including + * key data). + * + * If the new key is the first group key, it will be set as the default + * TX key. Otherwise, default TX key index is only changed if + * IW_ENCODE_EXT_SET_TX_KEY flag is set. + * + * Key will be changed with SIOCSIWENCODEEXT in all cases except for + * special "change TX key index" operation which is indicated by setting + * key_len = 0 and ext_flags |= IW_ENCODE_EXT_SET_TX_KEY. + * + * tx_seq/rx_seq are only used when respective + * IW_ENCODE_EXT_{TX,RX}_SEQ_VALID flag is set in ext_flags. Normal + * TKIP/CCMP operation is to set RX seq with SIOCSIWENCODEEXT and start + * TX seq from zero whenever key is changed. SIOCGIWENCODEEXT is normally + * used only by an Authenticator (AP or an IBSS station) to get the + * current TX sequence number. Using TX_SEQ_VALID for SIOCSIWENCODEEXT and + * RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for + * debugging/testing. + */ +struct iw_encode_ext +{ + __u32 ext_flags; /* IW_ENCODE_EXT_* */ + __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ + __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ + struct sockaddr addr; /* ff:ff:ff:ff:ff:ff for broadcast/multicast + * (group) keys or unicast address for + * individual keys */ + __u16 alg; /* IW_ENCODE_ALG_* */ + __u16 key_len; + __u8 key[0]; +}; + +/* SIOCSIWMLME data */ +struct iw_mlme +{ + __u16 cmd; /* IW_MLME_* */ + __u16 reason_code; + struct sockaddr addr; +}; + +/* SIOCSIWPMKSA data */ +#define IW_PMKSA_ADD 1 +#define IW_PMKSA_REMOVE 2 +#define IW_PMKSA_FLUSH 3 + +#define IW_PMKID_LEN 16 + +struct iw_pmksa +{ + __u32 cmd; /* IW_PMKSA_* */ + struct sockaddr bssid; + __u8 pmkid[IW_PMKID_LEN]; +}; + +/* IWEVMICHAELMICFAILURE data */ +struct iw_michaelmicfailure +{ + __u32 flags; + struct sockaddr src_addr; + __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ +}; + +/* IWEVPMKIDCAND data */ +#define IW_PMKID_CAND_PREAUTH 0x00000001 /* RNS pre-authentication enabled */ +struct iw_pmkid_cand +{ + __u32 flags; /* IW_PMKID_CAND_* */ + __u32 index; /* the smaller the index, the higher the + * priority */ + struct sockaddr bssid; +}; + +/* ------------------------ WIRELESS STATS ------------------------ */ +/* + * Wireless statistics (used for /proc/net/wireless) + */ +struct iw_statistics +{ + __u16 status; /* Status + * - device dependent for now */ + + struct iw_quality qual; /* Quality of the link + * (instant/mean/max) */ + struct iw_discarded discard; /* Packet discarded counts */ + struct iw_missed miss; /* Packet missed counts */ +}; + +/* ------------------------ IOCTL REQUEST ------------------------ */ +/* + * This structure defines the payload of an ioctl, and is used + * below. + * + * Note that this structure should fit on the memory footprint + * of iwreq (which is the same as ifreq), which mean a max size of + * 16 octets = 128 bits. Warning, pointers might be 64 bits wide... + * You should check this when increasing the structures defined + * above in this file... + */ +union iwreq_data +{ + /* Config - generic */ + char name[IFNAMSIZ]; + /* Name : used to verify the presence of wireless extensions. + * Name of the protocol/provider... */ + + struct iw_point essid; /* Extended network name */ + struct iw_param nwid; /* network id (or domain - the cell) */ + struct iw_freq freq; /* frequency or channel : + * 0-1000 = channel + * > 1000 = frequency in Hz */ + + struct iw_param sens; /* signal level threshold */ + struct iw_param bitrate; /* default bit rate */ + struct iw_param txpower; /* default transmit power */ + struct iw_param rts; /* RTS threshold threshold */ + struct iw_param frag; /* Fragmentation threshold */ + __u32 mode; /* Operation mode */ + struct iw_param retry; /* Retry limits & lifetime */ + + struct iw_point encoding; /* Encoding stuff : tokens */ + struct iw_param power; /* PM duration/timeout */ + struct iw_quality qual; /* Quality part of statistics */ + + struct sockaddr ap_addr; /* Access point address */ + struct sockaddr addr; /* Destination address (hw/mac) */ + + struct iw_param param; /* Other small parameters */ + struct iw_point data; /* Other large parameters */ +}; + +/* + * The structure to exchange data for ioctl. + * This structure is the same as 'struct ifreq', but (re)defined for + * convenience... + * Do I need to remind you about structure size (32 octets) ? + */ +struct iwreq +{ + union + { + char ifrn_name[IFNAMSIZ]; /* if name, e.g. "eth0" */ + } ifr_ifrn; + + /* Data part (defined just above) */ + union iwreq_data u; +}; + +/* -------------------------- IOCTL DATA -------------------------- */ +/* + * For those ioctl which want to exchange mode data that what could + * fit in the above structure... + */ + +/* + * Range of parameters + */ + +struct iw_range +{ + /* Informative stuff (to choose between different interface) */ + __u32 throughput; /* To give an idea... */ + /* In theory this value should be the maximum benchmarked + * TCP/IP throughput, because with most of these devices the + * bit rate is meaningless (overhead an co) to estimate how + * fast the connection will go and pick the fastest one. + * I suggest people to play with Netperf or any benchmark... + */ + + /* NWID (or domain id) */ + __u32 min_nwid; /* Minimal NWID we are able to set */ + __u32 max_nwid; /* Maximal NWID we are able to set */ + + /* Old Frequency (backward compat - moved lower ) */ + __u16 old_num_channels; + __u8 old_num_frequency; + + /* Scan capabilities */ + __u8 scan_capa; /* IW_SCAN_CAPA_* bit field */ + + /* Wireless event capability bitmasks */ + __u32 event_capa[6]; + + /* signal level threshold range */ + __s32 sensitivity; + + /* Quality of link & SNR stuff */ + /* Quality range (link, level, noise) + * If the quality is absolute, it will be in the range [0 ; max_qual], + * if the quality is dBm, it will be in the range [max_qual ; 0]. + * Don't forget that we use 8 bit arithmetics... */ + struct iw_quality max_qual; /* Quality of the link */ + /* This should contain the average/typical values of the quality + * indicator. This should be the threshold between a "good" and + * a "bad" link (example : monitor going from green to orange). + * Currently, user space apps like quality monitors don't have any + * way to calibrate the measurement. With this, they can split + * the range between 0 and max_qual in different quality level + * (using a geometric subdivision centered on the average). + * I expect that people doing the user space apps will feedback + * us on which value we need to put in each driver... */ + struct iw_quality avg_qual; /* Quality of the link */ + + /* Rates */ + __u8 num_bitrates; /* Number of entries in the list */ + __s32 bitrate[IW_MAX_BITRATES]; /* list, in bps */ + + /* RTS threshold */ + __s32 min_rts; /* Minimal RTS threshold */ + __s32 max_rts; /* Maximal RTS threshold */ + + /* Frag threshold */ + __s32 min_frag; /* Minimal frag threshold */ + __s32 max_frag; /* Maximal frag threshold */ + + /* Power Management duration & timeout */ + __s32 min_pmp; /* Minimal PM period */ + __s32 max_pmp; /* Maximal PM period */ + __s32 min_pmt; /* Minimal PM timeout */ + __s32 max_pmt; /* Maximal PM timeout */ + __u16 pmp_flags; /* How to decode max/min PM period */ + __u16 pmt_flags; /* How to decode max/min PM timeout */ + __u16 pm_capa; /* What PM options are supported */ + + /* Encoder stuff */ + __u16 encoding_size[IW_MAX_ENCODING_SIZES]; /* Different token sizes */ + __u8 num_encoding_sizes; /* Number of entry in the list */ + __u8 max_encoding_tokens; /* Max number of tokens */ + /* For drivers that need a "login/passwd" form */ + __u8 encoding_login_index; /* token index for login token */ + + /* Transmit power */ + __u16 txpower_capa; /* What options are supported */ + __u8 num_txpower; /* Number of entries in the list */ + __s32 txpower[IW_MAX_TXPOWER]; /* list, in bps */ + + /* Wireless Extension version info */ + __u8 we_version_compiled; /* Must be WIRELESS_EXT */ + __u8 we_version_source; /* Last update of source */ + + /* Retry limits and lifetime */ + __u16 retry_capa; /* What retry options are supported */ + __u16 retry_flags; /* How to decode max/min retry limit */ + __u16 r_time_flags; /* How to decode max/min retry life */ + __s32 min_retry; /* Minimal number of retries */ + __s32 max_retry; /* Maximal number of retries */ + __s32 min_r_time; /* Minimal retry lifetime */ + __s32 max_r_time; /* Maximal retry lifetime */ + + /* Frequency */ + __u16 num_channels; /* Number of channels [0; num - 1] */ + __u8 num_frequency; /* Number of entry in the list */ + struct iw_freq freq[IW_MAX_FREQUENCIES]; /* list */ + /* Note : this frequency list doesn't need to fit channel numbers, + * because each entry contain its channel index */ + + __u32 enc_capa; /* IW_ENC_CAPA_* bit field */ +}; + +/* + * Private ioctl interface information + */ + +struct iw_priv_args +{ + __u32 cmd; /* Number of the ioctl to issue */ + __u16 set_args; /* Type and number of args */ + __u16 get_args; /* Type and number of args */ + char name[IFNAMSIZ]; /* Name of the extension */ +}; + +/* ----------------------- WIRELESS EVENTS ----------------------- */ +/* + * Wireless events are carried through the rtnetlink socket to user + * space. They are encapsulated in the IFLA_WIRELESS field of + * a RTM_NEWLINK message. + */ + +/* + * A Wireless Event. Contains basically the same data as the ioctl... + */ +struct iw_event +{ + __u16 len; /* Real length of this stuff */ + __u16 cmd; /* Wireless IOCTL */ + union iwreq_data u; /* IOCTL fixed payload */ +}; + +/* Size of the Event prefix (including padding and alignement junk) */ +#define IW_EV_LCP_LEN (sizeof(struct iw_event) - sizeof(union iwreq_data)) +/* Size of the various events */ +#define IW_EV_CHAR_LEN (IW_EV_LCP_LEN + IFNAMSIZ) +#define IW_EV_UINT_LEN (IW_EV_LCP_LEN + sizeof(__u32)) +#define IW_EV_FREQ_LEN (IW_EV_LCP_LEN + sizeof(struct iw_freq)) +#define IW_EV_PARAM_LEN (IW_EV_LCP_LEN + sizeof(struct iw_param)) +#define IW_EV_ADDR_LEN (IW_EV_LCP_LEN + sizeof(struct sockaddr)) +#define IW_EV_QUAL_LEN (IW_EV_LCP_LEN + sizeof(struct iw_quality)) + +/* iw_point events are special. First, the payload (extra data) come at + * the end of the event, so they are bigger than IW_EV_POINT_LEN. Second, + * we omit the pointer, so start at an offset. */ +#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \ + (char *) NULL) +#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \ + IW_EV_POINT_OFF) + + +/* Size of the Event prefix when packed in stream */ +#define IW_EV_LCP_PK_LEN (4) +/* Size of the various events when packed in stream */ +#define IW_EV_CHAR_PK_LEN (IW_EV_LCP_PK_LEN + IFNAMSIZ) +#define IW_EV_UINT_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(__u32)) +#define IW_EV_FREQ_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq)) +#define IW_EV_PARAM_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_param)) +#define IW_EV_ADDR_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr)) +#define IW_EV_QUAL_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality)) +#define IW_EV_POINT_PK_LEN (IW_EV_LCP_PK_LEN + 4) + +#endif /* _LINUX_WIRELESS_H */ diff --git a/kernel_headers/linux/x25.h b/kernel_headers/linux/x25.h new file mode 100644 index 0000000..810cce6 --- /dev/null +++ b/kernel_headers/linux/x25.h @@ -0,0 +1,152 @@ +/* + * These are the public elements of the Linux kernel X.25 implementation. + * + * History + * mar/20/00 Daniela Squassoni Disabling/enabling of facilities + * negotiation. + * apr/02/05 Shaun Pereira Selective sub address matching with + * call user data + */ + +#ifndef X25_KERNEL_H +#define X25_KERNEL_H + +#include +#include + +#define SIOCX25GSUBSCRIP (SIOCPROTOPRIVATE + 0) +#define SIOCX25SSUBSCRIP (SIOCPROTOPRIVATE + 1) +#define SIOCX25GFACILITIES (SIOCPROTOPRIVATE + 2) +#define SIOCX25SFACILITIES (SIOCPROTOPRIVATE + 3) +#define SIOCX25GCALLUSERDATA (SIOCPROTOPRIVATE + 4) +#define SIOCX25SCALLUSERDATA (SIOCPROTOPRIVATE + 5) +#define SIOCX25GCAUSEDIAG (SIOCPROTOPRIVATE + 6) +#define SIOCX25SCUDMATCHLEN (SIOCPROTOPRIVATE + 7) +#define SIOCX25CALLACCPTAPPRV (SIOCPROTOPRIVATE + 8) +#define SIOCX25SENDCALLACCPT (SIOCPROTOPRIVATE + 9) +#define SIOCX25GDTEFACILITIES (SIOCPROTOPRIVATE + 10) +#define SIOCX25SDTEFACILITIES (SIOCPROTOPRIVATE + 11) +#define SIOCX25SCAUSEDIAG (SIOCPROTOPRIVATE + 12) + +/* + * Values for {get,set}sockopt. + */ +#define X25_QBITINCL 1 + +/* + * X.25 Packet Size values. + */ +#define X25_PS16 4 +#define X25_PS32 5 +#define X25_PS64 6 +#define X25_PS128 7 +#define X25_PS256 8 +#define X25_PS512 9 +#define X25_PS1024 10 +#define X25_PS2048 11 +#define X25_PS4096 12 + +/* + * An X.121 address, it is held as ASCII text, null terminated, up to 15 + * digits and a null terminator. + */ +struct x25_address { + char x25_addr[16]; +}; + +/* + * Linux X.25 Address structure, used for bind, and connect mostly. + */ +struct sockaddr_x25 { + __kernel_sa_family_t sx25_family; /* Must be AF_X25 */ + struct x25_address sx25_addr; /* X.121 Address */ +}; + +/* + * DTE/DCE subscription options. + * + * As this is missing lots of options, user should expect major + * changes of this structure in 2.5.x which might break compatibilty. + * The somewhat ugly dimension 200-sizeof() is needed to maintain + * backward compatibility. + */ +struct x25_subscrip_struct { + char device[200-sizeof(unsigned long)]; + unsigned long global_facil_mask; /* 0 to disable negotiation */ + unsigned int extended; +}; + +/* values for above global_facil_mask */ + +#define X25_MASK_REVERSE 0x01 +#define X25_MASK_THROUGHPUT 0x02 +#define X25_MASK_PACKET_SIZE 0x04 +#define X25_MASK_WINDOW_SIZE 0x08 + +#define X25_MASK_CALLING_AE 0x10 +#define X25_MASK_CALLED_AE 0x20 + + +/* + * Routing table control structure. + */ +struct x25_route_struct { + struct x25_address address; + unsigned int sigdigits; + char device[200]; +}; + +/* + * Facilities structure. + */ +struct x25_facilities { + unsigned int winsize_in, winsize_out; + unsigned int pacsize_in, pacsize_out; + unsigned int throughput; + unsigned int reverse; +}; + +/* +* ITU DTE facilities +* Only the called and calling address +* extension are currently implemented. +* The rest are in place to avoid the struct +* changing size if someone needs them later +*/ + +struct x25_dte_facilities { + __u16 delay_cumul; + __u16 delay_target; + __u16 delay_max; + __u8 min_throughput; + __u8 expedited; + __u8 calling_len; + __u8 called_len; + __u8 calling_ae[20]; + __u8 called_ae[20]; +}; + +/* + * Call User Data structure. + */ +struct x25_calluserdata { + unsigned int cudlength; + unsigned char cuddata[128]; +}; + +/* + * Call clearing Cause and Diagnostic structure. + */ +struct x25_causediag { + unsigned char cause; + unsigned char diagnostic; +}; + +/* + * Further optional call user data match length selection + */ +struct x25_subaddr { + unsigned int cudmatchlength; +}; + +#endif diff --git a/kernel_headers/linux/xattr.h b/kernel_headers/linux/xattr.h new file mode 100644 index 0000000..4b00c10 --- /dev/null +++ b/kernel_headers/linux/xattr.h @@ -0,0 +1,67 @@ +/* + File: linux/xattr.h + + Extended attributes handling. + + Copyright (C) 2001 by Andreas Gruenbacher + Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved. + Copyright (c) 2004 Red Hat, Inc., James Morris +*/ +#ifndef _LINUX_XATTR_H +#define _LINUX_XATTR_H + +#define XATTR_CREATE 0x1 /* set value, fail if attr already exists */ +#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */ + +/* Namespaces */ +#define XATTR_OS2_PREFIX "os2." +#define XATTR_OS2_PREFIX_LEN (sizeof(XATTR_OS2_PREFIX) - 1) + +#define XATTR_MAC_OSX_PREFIX "osx." +#define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1) + +#define XATTR_SECURITY_PREFIX "security." +#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) + +#define XATTR_SYSTEM_PREFIX "system." +#define XATTR_SYSTEM_PREFIX_LEN (sizeof(XATTR_SYSTEM_PREFIX) - 1) + +#define XATTR_TRUSTED_PREFIX "trusted." +#define XATTR_TRUSTED_PREFIX_LEN (sizeof(XATTR_TRUSTED_PREFIX) - 1) + +#define XATTR_USER_PREFIX "user." +#define XATTR_USER_PREFIX_LEN (sizeof(XATTR_USER_PREFIX) - 1) + +/* Security namespace */ +#define XATTR_EVM_SUFFIX "evm" +#define XATTR_NAME_EVM XATTR_SECURITY_PREFIX XATTR_EVM_SUFFIX + +#define XATTR_IMA_SUFFIX "ima" +#define XATTR_NAME_IMA XATTR_SECURITY_PREFIX XATTR_IMA_SUFFIX + +#define XATTR_SELINUX_SUFFIX "selinux" +#define XATTR_NAME_SELINUX XATTR_SECURITY_PREFIX XATTR_SELINUX_SUFFIX + +#define XATTR_SMACK_SUFFIX "SMACK64" +#define XATTR_SMACK_IPIN "SMACK64IPIN" +#define XATTR_SMACK_IPOUT "SMACK64IPOUT" +#define XATTR_SMACK_EXEC "SMACK64EXEC" +#define XATTR_SMACK_TRANSMUTE "SMACK64TRANSMUTE" +#define XATTR_SMACK_MMAP "SMACK64MMAP" +#define XATTR_NAME_SMACK XATTR_SECURITY_PREFIX XATTR_SMACK_SUFFIX +#define XATTR_NAME_SMACKIPIN XATTR_SECURITY_PREFIX XATTR_SMACK_IPIN +#define XATTR_NAME_SMACKIPOUT XATTR_SECURITY_PREFIX XATTR_SMACK_IPOUT +#define XATTR_NAME_SMACKEXEC XATTR_SECURITY_PREFIX XATTR_SMACK_EXEC +#define XATTR_NAME_SMACKTRANSMUTE XATTR_SECURITY_PREFIX XATTR_SMACK_TRANSMUTE +#define XATTR_NAME_SMACKMMAP XATTR_SECURITY_PREFIX XATTR_SMACK_MMAP + +#define XATTR_CAPS_SUFFIX "capability" +#define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX + +#define XATTR_POSIX_ACL_ACCESS "posix_acl_access" +#define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS +#define XATTR_POSIX_ACL_DEFAULT "posix_acl_default" +#define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT + + +#endif /* _LINUX_XATTR_H */ diff --git a/kernel_headers/linux/xfrm.h b/kernel_headers/linux/xfrm.h new file mode 100644 index 0000000..341c3c9 --- /dev/null +++ b/kernel_headers/linux/xfrm.h @@ -0,0 +1,507 @@ +#ifndef _LINUX_XFRM_H +#define _LINUX_XFRM_H + +#include + +/* All of the structures in this file may not change size as they are + * passed into the kernel from userspace via netlink sockets. + */ + +/* Structure to encapsulate addresses. I do not want to use + * "standard" structure. My apologies. + */ +typedef union { + __be32 a4; + __be32 a6[4]; +} xfrm_address_t; + +/* Ident of a specific xfrm_state. It is used on input to lookup + * the state by (spi,daddr,ah/esp) or to store information about + * spi, protocol and tunnel address on output. + */ +struct xfrm_id { + xfrm_address_t daddr; + __be32 spi; + __u8 proto; +}; + +struct xfrm_sec_ctx { + __u8 ctx_doi; + __u8 ctx_alg; + __u16 ctx_len; + __u32 ctx_sid; + char ctx_str[0]; +}; + +/* Security Context Domains of Interpretation */ +#define XFRM_SC_DOI_RESERVED 0 +#define XFRM_SC_DOI_LSM 1 + +/* Security Context Algorithms */ +#define XFRM_SC_ALG_RESERVED 0 +#define XFRM_SC_ALG_SELINUX 1 + +/* Selector, used as selector both on policy rules (SPD) and SAs. */ + +struct xfrm_selector { + xfrm_address_t daddr; + xfrm_address_t saddr; + __be16 dport; + __be16 dport_mask; + __be16 sport; + __be16 sport_mask; + __u16 family; + __u8 prefixlen_d; + __u8 prefixlen_s; + __u8 proto; + int ifindex; + __kernel_uid32_t user; +}; + +#define XFRM_INF (~(__u64)0) + +struct xfrm_lifetime_cfg { + __u64 soft_byte_limit; + __u64 hard_byte_limit; + __u64 soft_packet_limit; + __u64 hard_packet_limit; + __u64 soft_add_expires_seconds; + __u64 hard_add_expires_seconds; + __u64 soft_use_expires_seconds; + __u64 hard_use_expires_seconds; +}; + +struct xfrm_lifetime_cur { + __u64 bytes; + __u64 packets; + __u64 add_time; + __u64 use_time; +}; + +struct xfrm_replay_state { + __u32 oseq; + __u32 seq; + __u32 bitmap; +}; + +#define XFRMA_REPLAY_ESN_MAX 4096 + +struct xfrm_replay_state_esn { + unsigned int bmp_len; + __u32 oseq; + __u32 seq; + __u32 oseq_hi; + __u32 seq_hi; + __u32 replay_window; + __u32 bmp[0]; +}; + +struct xfrm_algo { + char alg_name[64]; + unsigned int alg_key_len; /* in bits */ + char alg_key[0]; +}; + +struct xfrm_algo_auth { + char alg_name[64]; + unsigned int alg_key_len; /* in bits */ + unsigned int alg_trunc_len; /* in bits */ + char alg_key[0]; +}; + +struct xfrm_algo_aead { + char alg_name[64]; + unsigned int alg_key_len; /* in bits */ + unsigned int alg_icv_len; /* in bits */ + char alg_key[0]; +}; + +struct xfrm_stats { + __u32 replay_window; + __u32 replay; + __u32 integrity_failed; +}; + +enum { + XFRM_POLICY_TYPE_MAIN = 0, + XFRM_POLICY_TYPE_SUB = 1, + XFRM_POLICY_TYPE_MAX = 2, + XFRM_POLICY_TYPE_ANY = 255 +}; + +enum { + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3 +}; + +enum { + XFRM_SHARE_ANY, /* No limitations */ + XFRM_SHARE_SESSION, /* For this session only */ + XFRM_SHARE_USER, /* For this user only */ + XFRM_SHARE_UNIQUE /* Use once */ +}; + +#define XFRM_MODE_TRANSPORT 0 +#define XFRM_MODE_TUNNEL 1 +#define XFRM_MODE_ROUTEOPTIMIZATION 2 +#define XFRM_MODE_IN_TRIGGER 3 +#define XFRM_MODE_BEET 4 +#define XFRM_MODE_MAX 5 + +/* Netlink configuration messages. */ +enum { + XFRM_MSG_BASE = 0x10, + + XFRM_MSG_NEWSA = 0x10, +#define XFRM_MSG_NEWSA XFRM_MSG_NEWSA + XFRM_MSG_DELSA, +#define XFRM_MSG_DELSA XFRM_MSG_DELSA + XFRM_MSG_GETSA, +#define XFRM_MSG_GETSA XFRM_MSG_GETSA + + XFRM_MSG_NEWPOLICY, +#define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY + XFRM_MSG_DELPOLICY, +#define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY + XFRM_MSG_GETPOLICY, +#define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY + + XFRM_MSG_ALLOCSPI, +#define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI + XFRM_MSG_ACQUIRE, +#define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE + XFRM_MSG_EXPIRE, +#define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE + + XFRM_MSG_UPDPOLICY, +#define XFRM_MSG_UPDPOLICY XFRM_MSG_UPDPOLICY + XFRM_MSG_UPDSA, +#define XFRM_MSG_UPDSA XFRM_MSG_UPDSA + + XFRM_MSG_POLEXPIRE, +#define XFRM_MSG_POLEXPIRE XFRM_MSG_POLEXPIRE + + XFRM_MSG_FLUSHSA, +#define XFRM_MSG_FLUSHSA XFRM_MSG_FLUSHSA + XFRM_MSG_FLUSHPOLICY, +#define XFRM_MSG_FLUSHPOLICY XFRM_MSG_FLUSHPOLICY + + XFRM_MSG_NEWAE, +#define XFRM_MSG_NEWAE XFRM_MSG_NEWAE + XFRM_MSG_GETAE, +#define XFRM_MSG_GETAE XFRM_MSG_GETAE + + XFRM_MSG_REPORT, +#define XFRM_MSG_REPORT XFRM_MSG_REPORT + + XFRM_MSG_MIGRATE, +#define XFRM_MSG_MIGRATE XFRM_MSG_MIGRATE + + XFRM_MSG_NEWSADINFO, +#define XFRM_MSG_NEWSADINFO XFRM_MSG_NEWSADINFO + XFRM_MSG_GETSADINFO, +#define XFRM_MSG_GETSADINFO XFRM_MSG_GETSADINFO + + XFRM_MSG_NEWSPDINFO, +#define XFRM_MSG_NEWSPDINFO XFRM_MSG_NEWSPDINFO + XFRM_MSG_GETSPDINFO, +#define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO + + XFRM_MSG_MAPPING, +#define XFRM_MSG_MAPPING XFRM_MSG_MAPPING + __XFRM_MSG_MAX +}; +#define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1) + +#define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE) + +/* + * Generic LSM security context for comunicating to user space + * NOTE: Same format as sadb_x_sec_ctx + */ +struct xfrm_user_sec_ctx { + __u16 len; + __u16 exttype; + __u8 ctx_alg; /* LSMs: e.g., selinux == 1 */ + __u8 ctx_doi; + __u16 ctx_len; +}; + +struct xfrm_user_tmpl { + struct xfrm_id id; + __u16 family; + xfrm_address_t saddr; + __u32 reqid; + __u8 mode; + __u8 share; + __u8 optional; + __u32 aalgos; + __u32 ealgos; + __u32 calgos; +}; + +struct xfrm_encap_tmpl { + __u16 encap_type; + __be16 encap_sport; + __be16 encap_dport; + xfrm_address_t encap_oa; +}; + +/* AEVENT flags */ +enum xfrm_ae_ftype_t { + XFRM_AE_UNSPEC, + XFRM_AE_RTHR=1, /* replay threshold*/ + XFRM_AE_RVAL=2, /* replay value */ + XFRM_AE_LVAL=4, /* lifetime value */ + XFRM_AE_ETHR=8, /* expiry timer threshold */ + XFRM_AE_CR=16, /* Event cause is replay update */ + XFRM_AE_CE=32, /* Event cause is timer expiry */ + XFRM_AE_CU=64, /* Event cause is policy update */ + __XFRM_AE_MAX + +#define XFRM_AE_MAX (__XFRM_AE_MAX - 1) +}; + +struct xfrm_userpolicy_type { + __u8 type; + __u16 reserved1; + __u8 reserved2; +}; + +/* Netlink message attributes. */ +enum xfrm_attr_type_t { + XFRMA_UNSPEC, + XFRMA_ALG_AUTH, /* struct xfrm_algo */ + XFRMA_ALG_CRYPT, /* struct xfrm_algo */ + XFRMA_ALG_COMP, /* struct xfrm_algo */ + XFRMA_ENCAP, /* struct xfrm_algo + struct xfrm_encap_tmpl */ + XFRMA_TMPL, /* 1 or more struct xfrm_user_tmpl */ + XFRMA_SA, /* struct xfrm_usersa_info */ + XFRMA_POLICY, /*struct xfrm_userpolicy_info */ + XFRMA_SEC_CTX, /* struct xfrm_sec_ctx */ + XFRMA_LTIME_VAL, + XFRMA_REPLAY_VAL, + XFRMA_REPLAY_THRESH, + XFRMA_ETIMER_THRESH, + XFRMA_SRCADDR, /* xfrm_address_t */ + XFRMA_COADDR, /* xfrm_address_t */ + XFRMA_LASTUSED, /* unsigned long */ + XFRMA_POLICY_TYPE, /* struct xfrm_userpolicy_type */ + XFRMA_MIGRATE, + XFRMA_ALG_AEAD, /* struct xfrm_algo_aead */ + XFRMA_KMADDRESS, /* struct xfrm_user_kmaddress */ + XFRMA_ALG_AUTH_TRUNC, /* struct xfrm_algo_auth */ + XFRMA_MARK, /* struct xfrm_mark */ + XFRMA_TFCPAD, /* __u32 */ + XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */ + XFRMA_SA_EXTRA_FLAGS, /* __u32 */ + __XFRMA_MAX + +#define XFRMA_MAX (__XFRMA_MAX - 1) +}; + +struct xfrm_mark { + __u32 v; /* value */ + __u32 m; /* mask */ +}; + +enum xfrm_sadattr_type_t { + XFRMA_SAD_UNSPEC, + XFRMA_SAD_CNT, + XFRMA_SAD_HINFO, + __XFRMA_SAD_MAX + +#define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1) +}; + +struct xfrmu_sadhinfo { + __u32 sadhcnt; /* current hash bkts */ + __u32 sadhmcnt; /* max allowed hash bkts */ +}; + +enum xfrm_spdattr_type_t { + XFRMA_SPD_UNSPEC, + XFRMA_SPD_INFO, + XFRMA_SPD_HINFO, + __XFRMA_SPD_MAX + +#define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1) +}; + +struct xfrmu_spdinfo { + __u32 incnt; + __u32 outcnt; + __u32 fwdcnt; + __u32 inscnt; + __u32 outscnt; + __u32 fwdscnt; +}; + +struct xfrmu_spdhinfo { + __u32 spdhcnt; + __u32 spdhmcnt; +}; + +struct xfrm_usersa_info { + struct xfrm_selector sel; + struct xfrm_id id; + xfrm_address_t saddr; + struct xfrm_lifetime_cfg lft; + struct xfrm_lifetime_cur curlft; + struct xfrm_stats stats; + __u32 seq; + __u32 reqid; + __u16 family; + __u8 mode; /* XFRM_MODE_xxx */ + __u8 replay_window; + __u8 flags; +#define XFRM_STATE_NOECN 1 +#define XFRM_STATE_DECAP_DSCP 2 +#define XFRM_STATE_NOPMTUDISC 4 +#define XFRM_STATE_WILDRECV 8 +#define XFRM_STATE_ICMP 16 +#define XFRM_STATE_AF_UNSPEC 32 +#define XFRM_STATE_ALIGN4 64 +#define XFRM_STATE_ESN 128 +}; + +#define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1 + +struct xfrm_usersa_id { + xfrm_address_t daddr; + __be32 spi; + __u16 family; + __u8 proto; +}; + +struct xfrm_aevent_id { + struct xfrm_usersa_id sa_id; + xfrm_address_t saddr; + __u32 flags; + __u32 reqid; +}; + +struct xfrm_userspi_info { + struct xfrm_usersa_info info; + __u32 min; + __u32 max; +}; + +struct xfrm_userpolicy_info { + struct xfrm_selector sel; + struct xfrm_lifetime_cfg lft; + struct xfrm_lifetime_cur curlft; + __u32 priority; + __u32 index; + __u8 dir; + __u8 action; +#define XFRM_POLICY_ALLOW 0 +#define XFRM_POLICY_BLOCK 1 + __u8 flags; +#define XFRM_POLICY_LOCALOK 1 /* Allow user to override global policy */ + /* Automatically expand selector to include matching ICMP payloads. */ +#define XFRM_POLICY_ICMP 2 + __u8 share; +}; + +struct xfrm_userpolicy_id { + struct xfrm_selector sel; + __u32 index; + __u8 dir; +}; + +struct xfrm_user_acquire { + struct xfrm_id id; + xfrm_address_t saddr; + struct xfrm_selector sel; + struct xfrm_userpolicy_info policy; + __u32 aalgos; + __u32 ealgos; + __u32 calgos; + __u32 seq; +}; + +struct xfrm_user_expire { + struct xfrm_usersa_info state; + __u8 hard; +}; + +struct xfrm_user_polexpire { + struct xfrm_userpolicy_info pol; + __u8 hard; +}; + +struct xfrm_usersa_flush { + __u8 proto; +}; + +struct xfrm_user_report { + __u8 proto; + struct xfrm_selector sel; +}; + +/* Used by MIGRATE to pass addresses IKE should use to perform + * SA negotiation with the peer */ +struct xfrm_user_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + __u32 reserved; + __u16 family; +}; + +struct xfrm_user_migrate { + xfrm_address_t old_daddr; + xfrm_address_t old_saddr; + xfrm_address_t new_daddr; + xfrm_address_t new_saddr; + __u8 proto; + __u8 mode; + __u16 reserved; + __u32 reqid; + __u16 old_family; + __u16 new_family; +}; + +struct xfrm_user_mapping { + struct xfrm_usersa_id id; + __u32 reqid; + xfrm_address_t old_saddr; + xfrm_address_t new_saddr; + __be16 old_sport; + __be16 new_sport; +}; + +/* backwards compatibility for userspace */ +#define XFRMGRP_ACQUIRE 1 +#define XFRMGRP_EXPIRE 2 +#define XFRMGRP_SA 4 +#define XFRMGRP_POLICY 8 +#define XFRMGRP_REPORT 0x20 + +enum xfrm_nlgroups { + XFRMNLGRP_NONE, +#define XFRMNLGRP_NONE XFRMNLGRP_NONE + XFRMNLGRP_ACQUIRE, +#define XFRMNLGRP_ACQUIRE XFRMNLGRP_ACQUIRE + XFRMNLGRP_EXPIRE, +#define XFRMNLGRP_EXPIRE XFRMNLGRP_EXPIRE + XFRMNLGRP_SA, +#define XFRMNLGRP_SA XFRMNLGRP_SA + XFRMNLGRP_POLICY, +#define XFRMNLGRP_POLICY XFRMNLGRP_POLICY + XFRMNLGRP_AEVENTS, +#define XFRMNLGRP_AEVENTS XFRMNLGRP_AEVENTS + XFRMNLGRP_REPORT, +#define XFRMNLGRP_REPORT XFRMNLGRP_REPORT + XFRMNLGRP_MIGRATE, +#define XFRMNLGRP_MIGRATE XFRMNLGRP_MIGRATE + XFRMNLGRP_MAPPING, +#define XFRMNLGRP_MAPPING XFRMNLGRP_MAPPING + __XFRMNLGRP_MAX +}; +#define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1) + +#endif /* _LINUX_XFRM_H */ diff --git a/kernel_headers/media/..install.cmd b/kernel_headers/media/..install.cmd new file mode 100644 index 0000000..baa8595 --- /dev/null +++ b/kernel_headers/media/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/media/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/media /android/kernels/moto/surnia/kernel-msm/include/uapi/media msm_camera.h msm_fd.h msm_gemini.h msm_gestures.h msm_isp.h msm_mercury.h msm_vidc.h msm_vpu.h msmb_generic_buf_mgr.h radio-iris-commands.h radio-iris.h tavarua.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/media /android/kernels/moto/surnia/kernel-msm/include/media msm_cam_sensor.h msm_camsensor_sdk.h msm_jpeg.h msm_media_info.h msmb_camera.h msmb_isp.h msmb_ispif.h msmb_pproc.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/media /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/media ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/media/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/media/.install diff --git a/kernel_headers/media/.install b/kernel_headers/media/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/media/msm_cam_sensor.h b/kernel_headers/media/msm_cam_sensor.h new file mode 100644 index 0000000..a10eb77 --- /dev/null +++ b/kernel_headers/media/msm_cam_sensor.h @@ -0,0 +1,832 @@ +#ifndef __LINUX_MSM_CAM_SENSOR_H +#define __LINUX_MSM_CAM_SENSOR_H + +#ifdef MSM_CAMERA_BIONIC +#include +#endif + +#include + +#include +#include +#ifdef CONFIG_COMPAT +#include +#endif + +#define I2C_SEQ_REG_SETTING_MAX 5 + +#define MSM_SENSOR_MCLK_8HZ 8000000 +#define MSM_SENSOR_MCLK_16HZ 16000000 +#define MSM_SENSOR_MCLK_24HZ 24000000 + +#define MAX_SENSOR_NAME 32 +#define MAX_ACTUATOR_AF_TOTAL_STEPS 1024 + +#define MAX_OIS_MOD_NAME_SIZE 32 +#define MAX_OIS_NAME_SIZE 32 +#define MAX_OIS_REG_SETTINGS 800 + +#define MOVE_NEAR 0 +#define MOVE_FAR 1 + +#define MSM_ACTUATOR_MOVE_SIGNED_FAR -1 +#define MSM_ACTUATOR_MOVE_SIGNED_NEAR 1 + +#define MAX_EEPROM_NAME 32 + +#define MAX_AF_ITERATIONS 3 +#define MAX_NUMBER_OF_STEPS 47 + +#define MAX_LED_TRIGGERS 3 + +enum flash_type { + LED_FLASH = 1, + STROBE_FLASH, + GPIO_FLASH +}; + +enum msm_sensor_resolution_t { + MSM_SENSOR_RES_FULL, + MSM_SENSOR_RES_QTR, + MSM_SENSOR_RES_2, + MSM_SENSOR_RES_3, + MSM_SENSOR_RES_4, + MSM_SENSOR_RES_5, + MSM_SENSOR_RES_6, + MSM_SENSOR_RES_7, + MSM_SENSOR_INVALID_RES, +}; + +enum msm_camera_stream_type_t { + MSM_CAMERA_STREAM_PREVIEW, + MSM_CAMERA_STREAM_SNAPSHOT, + MSM_CAMERA_STREAM_VIDEO, + MSM_CAMERA_STREAM_INVALID, +}; + +enum sensor_sub_module_t { + SUB_MODULE_SENSOR, + SUB_MODULE_CHROMATIX, + SUB_MODULE_ACTUATOR, + SUB_MODULE_EEPROM, + SUB_MODULE_LED_FLASH, + SUB_MODULE_STROBE_FLASH, + SUB_MODULE_CSID, + SUB_MODULE_CSID_3D, + SUB_MODULE_CSIPHY, + SUB_MODULE_CSIPHY_3D, + SUB_MODULE_OIS, + SUB_MODULE_MAX, +}; + +/* NOTE: Careful when adding params below, + * certain sensor drivers are doing one + * big copy for muliple params at one time + */ +struct mod_info_t { + uint8_t SensorSerialNum[13]; + uint8_t MotPartNum[8]; + uint8_t LensId[1]; + uint8_t ManufactureId[2]; + uint8_t FactoryId[2]; + uint8_t ManufactureDate[9]; + uint8_t ManufactureLine[2]; + uint8_t ModuleSerialNum[4]; + uint8_t FocuserLiftoff[2]; + uint8_t FocuserMacro[2]; + uint8_t FocuserInf[2]; + uint8_t ShutterCal[16]; + uint8_t SensorHwRev[5]; +}; + +enum { + MSM_CAMERA_EFFECT_MODE_OFF, + MSM_CAMERA_EFFECT_MODE_MONO, + MSM_CAMERA_EFFECT_MODE_NEGATIVE, + MSM_CAMERA_EFFECT_MODE_SOLARIZE, + MSM_CAMERA_EFFECT_MODE_SEPIA, + MSM_CAMERA_EFFECT_MODE_POSTERIZE, + MSM_CAMERA_EFFECT_MODE_WHITEBOARD, + MSM_CAMERA_EFFECT_MODE_BLACKBOARD, + MSM_CAMERA_EFFECT_MODE_AQUA, + MSM_CAMERA_EFFECT_MODE_EMBOSS, + MSM_CAMERA_EFFECT_MODE_SKETCH, + MSM_CAMERA_EFFECT_MODE_NEON, + MSM_CAMERA_EFFECT_MODE_MAX +}; + +enum { + MSM_CAMERA_WB_MODE_AUTO, + MSM_CAMERA_WB_MODE_CUSTOM, + MSM_CAMERA_WB_MODE_INCANDESCENT, + MSM_CAMERA_WB_MODE_FLUORESCENT, + MSM_CAMERA_WB_MODE_WARM_FLUORESCENT, + MSM_CAMERA_WB_MODE_DAYLIGHT, + MSM_CAMERA_WB_MODE_CLOUDY_DAYLIGHT, + MSM_CAMERA_WB_MODE_TWILIGHT, + MSM_CAMERA_WB_MODE_SHADE, + MSM_CAMERA_WB_MODE_OFF, + MSM_CAMERA_WB_MODE_MAX +}; + +enum { + MSM_CAMERA_SCENE_MODE_OFF, + MSM_CAMERA_SCENE_MODE_AUTO, + MSM_CAMERA_SCENE_MODE_LANDSCAPE, + MSM_CAMERA_SCENE_MODE_SNOW, + MSM_CAMERA_SCENE_MODE_BEACH, + MSM_CAMERA_SCENE_MODE_SUNSET, + MSM_CAMERA_SCENE_MODE_NIGHT, + MSM_CAMERA_SCENE_MODE_PORTRAIT, + MSM_CAMERA_SCENE_MODE_BACKLIGHT, + MSM_CAMERA_SCENE_MODE_SPORTS, + MSM_CAMERA_SCENE_MODE_ANTISHAKE, + MSM_CAMERA_SCENE_MODE_FLOWERS, + MSM_CAMERA_SCENE_MODE_CANDLELIGHT, + MSM_CAMERA_SCENE_MODE_FIREWORKS, + MSM_CAMERA_SCENE_MODE_PARTY, + MSM_CAMERA_SCENE_MODE_NIGHT_PORTRAIT, + MSM_CAMERA_SCENE_MODE_THEATRE, + MSM_CAMERA_SCENE_MODE_ACTION, + MSM_CAMERA_SCENE_MODE_AR, + MSM_CAMERA_SCENE_MODE_FACE_PRIORITY, + MSM_CAMERA_SCENE_MODE_BARCODE, + MSM_CAMERA_SCENE_MODE_HDR, + MSM_CAMERA_SCENE_MODE_MAX +}; + +enum csid_cfg_type_t { + CSID_INIT, + CSID_CFG, + CSID_RELEASE, +}; + +enum csiphy_cfg_type_t { + CSIPHY_INIT, + CSIPHY_CFG, + CSIPHY_RELEASE, +}; + +enum camera_vreg_type { + VREG_TYPE_DEFAULT, + VREG_TYPE_CUSTOM, +}; + +enum sensor_af_t { + SENSOR_AF_FOCUSSED, + SENSOR_AF_NOT_FOCUSSED, +}; + +enum cci_i2c_master_t { + MASTER_0, + MASTER_1, + MASTER_MAX, +}; + +struct msm_camera_i2c_array_write_config { + struct msm_camera_i2c_reg_setting conf_array; + uint16_t slave_addr; +}; + +struct msm_camera_i2c_read_config { + uint16_t slave_addr; + uint16_t reg_addr; + enum msm_camera_i2c_data_type data_type; + uint16_t data; +}; + +struct msm_camera_csi2_params { + struct msm_camera_csid_params csid_params; + struct msm_camera_csiphy_params csiphy_params; + uint8_t csi_clk_scale_enable; +}; + +struct msm_camera_csi_lane_params { + uint16_t csi_lane_assign; + uint16_t csi_lane_mask; +}; + +struct csi_lane_params_t { + uint16_t csi_lane_assign; + uint8_t csi_lane_mask; + uint8_t csi_if; + int8_t csid_core[2]; + uint8_t csi_phy_sel; +}; + +struct msm_sensor_info_t { + char sensor_name[MAX_SENSOR_NAME]; + uint32_t session_id; + int32_t subdev_id[SUB_MODULE_MAX]; + int32_t subdev_intf[SUB_MODULE_MAX]; + uint8_t is_mount_angle_valid; + uint32_t sensor_mount_angle; + int modes_supported; + enum camb_position_t position; +}; + +struct camera_vreg_t { + const char *reg_name; + int min_voltage; + int max_voltage; + int op_mode; + uint32_t delay; + const char *custom_vreg_name; + enum camera_vreg_type type; +}; + +struct var_fps_range_t { + uint16_t min_fps; + uint16_t max_fps; +}; + +struct sensorb_cfg_data { + int cfgtype; + union { + struct msm_sensor_info_t sensor_info; + struct msm_sensor_init_params sensor_init_params; + void *setting; + struct otp_info_t sensor_otp; + } cfg; +}; + +struct csid_cfg_data { + enum csid_cfg_type_t cfgtype; + union { + uint32_t csid_version; + struct msm_camera_csid_params *csid_params; + } cfg; +}; + +struct csiphy_cfg_data { + enum csiphy_cfg_type_t cfgtype; + union { + struct msm_camera_csiphy_params *csiphy_params; + struct msm_camera_csi_lane_params *csi_lane_params; + } cfg; +}; + +enum eeprom_cfg_type_t { + CFG_EEPROM_GET_INFO, + CFG_EEPROM_GET_CAL_DATA, + CFG_EEPROM_READ_CAL_DATA, + CFG_EEPROM_WRITE_DATA, + CFG_EEPROM_GET_MM_INFO, +}; + +struct eeprom_get_t { + uint32_t num_bytes; +}; + +struct eeprom_read_t { + uint8_t *dbuffer; + uint32_t num_bytes; +}; + +struct eeprom_write_t { + uint8_t *dbuffer; + uint32_t num_bytes; +}; + +struct eeprom_get_cmm_t { + uint32_t cmm_support; + uint32_t cmm_compression; + uint32_t cmm_size; +}; + +struct msm_eeprom_cfg_data { + enum eeprom_cfg_type_t cfgtype; + uint8_t is_supported; + union { + char eeprom_name[MAX_SENSOR_NAME]; + struct eeprom_get_t get_data; + struct eeprom_read_t read_data; + struct eeprom_write_t write_data; + struct eeprom_get_cmm_t get_cmm_data; + } cfg; +}; + +#ifdef CONFIG_COMPAT +struct msm_sensor_power_setting32 { + enum msm_sensor_power_seq_type_t seq_type; + uint16_t seq_val; + compat_uint_t config_val; + uint16_t delay; + compat_uptr_t data[10]; +}; + +struct msm_sensor_power_setting_array32 { + struct msm_sensor_power_setting32 power_setting_a[MAX_POWER_CONFIG]; + compat_uptr_t power_setting; + uint16_t size; + struct msm_sensor_power_setting32 + power_down_setting_a[MAX_POWER_CONFIG]; + compat_uptr_t power_down_setting; + uint16_t size_down; +}; + +struct msm_camera_sensor_slave_info32 { + char sensor_name[32]; + char eeprom_name[32]; + char actuator_name[32]; + char ois_name[32]; + char flash_name[32]; + enum msm_sensor_camera_id_t camera_id; + uint16_t slave_addr; + enum i2c_freq_mode_t i2c_freq_mode; + enum msm_camera_i2c_reg_addr_type addr_type; + struct msm_sensor_id_info_t sensor_id_info; + struct msm_sensor_power_setting_array32 power_setting_array; + uint8_t is_init_params_valid; + struct msm_sensor_init_params sensor_init_params; + uint8_t is_flash_supported; +}; + +struct msm_camera_csid_lut_params32 { + uint8_t num_cid; + struct msm_camera_csid_vc_cfg vc_cfg_a[MAX_CID]; + compat_uptr_t vc_cfg[MAX_CID]; +}; + +struct msm_camera_csid_params32 { + uint8_t lane_cnt; + uint16_t lane_assign; + uint8_t phy_sel; + uint32_t csi_clk; + struct msm_camera_csid_lut_params32 lut_params; +}; + +struct msm_camera_csi2_params32 { + struct msm_camera_csid_params32 csid_params; + struct msm_camera_csiphy_params csiphy_params; + uint8_t csi_clk_scale_enable; +}; + +struct csid_cfg_data32 { + enum csid_cfg_type_t cfgtype; + union { + uint32_t csid_version; + compat_uptr_t csid_params; + } cfg; +}; + +struct eeprom_read_t32 { + compat_uptr_t dbuffer; + uint32_t num_bytes; +}; + +struct eeprom_write_t32 { + compat_uptr_t dbuffer; + uint32_t num_bytes; +}; + +struct msm_eeprom_cfg_data32 { + enum eeprom_cfg_type_t cfgtype; + uint8_t is_supported; + union { + char eeprom_name[MAX_SENSOR_NAME]; + struct eeprom_get_t get_data; + struct eeprom_read_t32 read_data; + struct eeprom_write_t32 write_data; + } cfg; +}; + +struct msm_camera_i2c_seq_reg_setting32 { + compat_uptr_t reg_setting; + uint16_t size; + enum msm_camera_i2c_reg_addr_type addr_type; + uint16_t delay; +}; +#endif + +enum msm_sensor_cfg_type_t { + CFG_SET_SLAVE_INFO, + CFG_SLAVE_READ_I2C, + CFG_WRITE_I2C_ARRAY, + CFG_SLAVE_WRITE_I2C_ARRAY, + CFG_WRITE_I2C_SEQ_ARRAY, + CFG_POWER_UP, + CFG_POWER_DOWN, + CFG_SET_STOP_STREAM_SETTING, + CFG_GET_SENSOR_INFO, + CFG_GET_SENSOR_INIT_PARAMS, + CFG_SET_INIT_SETTING, + CFG_SET_RESOLUTION, + CFG_SET_STOP_STREAM, + CFG_SET_START_STREAM, + CFG_SET_SATURATION, + CFG_SET_CONTRAST, + CFG_SET_SHARPNESS, + CFG_SET_ISO, + CFG_SET_EXPOSURE_COMPENSATION, + CFG_SET_ANTIBANDING, + CFG_SET_BESTSHOT_MODE, + CFG_SET_EFFECT, + CFG_SET_WHITE_BALANCE, + CFG_SET_AUTOFOCUS, + CFG_CANCEL_AUTOFOCUS, + CFG_SET_STREAM_TYPE, + CFG_SET_FPS_RANGE, + CFG_SET_GAMMA, + CFG_SET_LENS_SHADING, + CFG_SET_TARGET_EXPOSURE, + CFG_GET_MODULE_INFO, + CFG_GET_LENS_SHADING, +}; + +enum msm_actuator_cfg_type_t { + CFG_GET_ACTUATOR_INFO, + CFG_SET_ACTUATOR_INFO, + CFG_SET_DEFAULT_FOCUS, + CFG_MOVE_FOCUS, + CFG_SET_POSITION, + CFG_ACTUATOR_POWERDOWN, + CFG_ACTUATOR_POWERUP, + CFG_ACTUATOR_INIT, + CFG_DIRECT_I2C_WRITE, /*to support non-trivial actuators*/ +}; + +enum msm_ois_cfg_type_t { + CFG_OIS_INIT, + CFG_OIS_POWERDOWN, + CFG_OIS_POWERUP, + CFG_OIS_CONTROL, + CFG_OIS_I2C_WRITE_SEQ_TABLE, +}; + +enum msm_ois_i2c_operation { + MSM_OIS_WRITE = 0, + MSM_OIS_POLL, +}; + +struct reg_settings_ois_t { + uint16_t reg_addr; + enum msm_camera_i2c_reg_addr_type addr_type; + uint32_t reg_data; + enum msm_camera_i2c_data_type data_type; + enum msm_ois_i2c_operation i2c_operation; + uint32_t delay; +}; + +struct msm_ois_params_t { + uint16_t data_size; + uint16_t setting_size; + uint32_t i2c_addr; + enum msm_camera_i2c_reg_addr_type i2c_addr_type; + enum msm_camera_i2c_data_type i2c_data_type; + struct reg_settings_ois_t *settings; +}; + +struct msm_ois_set_info_t { + struct msm_ois_params_t ois_params; +}; + +struct msm_actuator_move_params_t { + int8_t dir; + int8_t sign_dir; + int16_t dest_step_pos; + int32_t num_steps; + uint16_t curr_lens_pos; + struct damping_params_t *ringing_params; +}; + +struct msm_actuator_tuning_params_t { + int16_t initial_code; + uint16_t pwd_step; + uint16_t region_size; + uint32_t total_steps; + struct region_params_t *region_params; +}; + +struct park_lens_data_t { + uint32_t damping_step; + uint32_t damping_delay; + uint32_t hw_params; + uint32_t max_step; +}; + +struct msm_actuator_params_t { + enum actuator_type act_type; + uint8_t reg_tbl_size; + uint16_t data_size; + uint16_t init_setting_size; + uint32_t i2c_addr; + enum msm_actuator_addr_type i2c_addr_type; + enum msm_actuator_data_type i2c_data_type; + struct msm_actuator_reg_params_t *reg_tbl_params; + struct reg_settings_t *init_settings; + struct park_lens_data_t park_lens; +}; + +struct msm_actuator_set_info_t { + struct msm_actuator_params_t actuator_params; + struct msm_actuator_tuning_params_t af_tuning_params; +}; + +struct msm_actuator_get_info_t { + uint32_t focal_length_num; + uint32_t focal_length_den; + uint32_t f_number_num; + uint32_t f_number_den; + uint32_t f_pix_num; + uint32_t f_pix_den; + uint32_t total_f_dist_num; + uint32_t total_f_dist_den; + uint32_t hor_view_angle_num; + uint32_t hor_view_angle_den; + uint32_t ver_view_angle_num; + uint32_t ver_view_angle_den; +}; + +enum af_camera_name { + ACTUATOR_MAIN_CAM_0, + ACTUATOR_MAIN_CAM_1, + ACTUATOR_MAIN_CAM_2, + ACTUATOR_MAIN_CAM_3, + ACTUATOR_MAIN_CAM_4, + ACTUATOR_MAIN_CAM_5, + ACTUATOR_WEB_CAM_0, + ACTUATOR_WEB_CAM_1, + ACTUATOR_WEB_CAM_2, +}; + +struct msm_ois_cfg_data { + int cfgtype; + union { + struct msm_ois_set_info_t set_info; + struct msm_camera_i2c_seq_reg_setting *settings; + } cfg; +}; + +struct msm_actuator_set_position_t { + uint16_t number_of_steps; + uint16_t pos[MAX_NUMBER_OF_STEPS]; + uint16_t delay[MAX_NUMBER_OF_STEPS]; +}; + +struct msm_actuator_i2c { + uint16_t addr; + uint16_t value; + uint32_t wait_time; +}; + +#define MSM_ACTUATOR_I2C_MAX_TABLE_SIZE (8) +struct msm_actuator_i2c_table { + struct msm_actuator_i2c data[MSM_ACTUATOR_I2C_MAX_TABLE_SIZE]; + uint32_t size; +}; + +struct msm_actuator_cfg_data { + int cfgtype; + uint8_t is_af_supported; + union { + struct msm_actuator_move_params_t move; + struct msm_actuator_set_info_t set_info; + struct msm_actuator_get_info_t get_info; + struct msm_actuator_set_position_t setpos; + enum af_camera_name cam_name; + struct msm_actuator_i2c_table i2c_table; + } cfg; +}; + +enum msm_camera_led_config_t { + MSM_CAMERA_LED_OFF, + MSM_CAMERA_LED_LOW, + MSM_CAMERA_LED_HIGH, + MSM_CAMERA_LED_INIT, + MSM_CAMERA_LED_RELEASE, +}; + +struct msm_camera_led_cfg_t { + enum msm_camera_led_config_t cfgtype; + uint32_t torch_current[MAX_LED_TRIGGERS]; + uint32_t flash_current[MAX_LED_TRIGGERS]; + uint32_t flash_duration[MAX_LED_TRIGGERS]; +}; + +struct msm_flash_init_info_t { + enum msm_flash_driver_type flash_driver_type; + struct msm_sensor_power_setting_array *power_setting_array; + struct msm_camera_i2c_reg_setting_array *settings; +}; + +struct msm_flash_cfg_data_t { + enum msm_flash_cfg_type_t cfg_type; + uint32_t torch_current; + uint32_t flash_current[MAX_LED_TRIGGERS]; + uint32_t flash_duration[MAX_LED_TRIGGERS]; + union { + struct msm_flash_init_info_t *flash_init_info; + struct msm_camera_i2c_reg_setting_array *settings; + uint32_t flash_current[MAX_LED_TRIGGERS]; + } cfg; +}; + +/* sensor init structures and enums */ +enum msm_sensor_init_cfg_type_t { + CFG_SINIT_PROBE, + CFG_SINIT_PROBE_DONE, + CFG_SINIT_PROBE_WAIT_DONE, +}; + +struct sensor_init_cfg_data { + enum msm_sensor_init_cfg_type_t cfgtype; + struct msm_sensor_info_t probed_info; + char entity_name[MAX_SENSOR_NAME]; + union { + void *setting; + } cfg; +}; + +#define VIDIOC_MSM_SENSOR_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data) + +#define VIDIOC_MSM_SENSOR_RELEASE \ + _IO('V', BASE_VIDIOC_PRIVATE + 2) + +#define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t) + +#define VIDIOC_MSM_CSIPHY_IO_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data) + +#define VIDIOC_MSM_CSID_IO_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data) + +#define VIDIOC_MSM_ACTUATOR_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data) + +#define VIDIOC_MSM_FLASH_LED_DATA_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t) + +#define VIDIOC_MSM_EEPROM_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data) + +#define VIDIOC_MSM_SENSOR_GET_AF_STATUS \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 9, uint32_t) + +#define VIDIOC_MSM_SENSOR_INIT_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct sensor_init_cfg_data) + +#define VIDIOC_MSM_OIS_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_ois_cfg_data) + +#define VIDIOC_MSM_FLASH_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_flash_cfg_data_t) + +#ifdef CONFIG_COMPAT +struct msm_camera_i2c_reg_setting32 { + compat_uptr_t reg_setting; + uint16_t size; + enum msm_camera_i2c_reg_addr_type addr_type; + enum msm_camera_i2c_data_type data_type; + uint16_t delay; +}; + +struct msm_camera_i2c_read_config32 { + uint16_t slave_addr; + uint16_t reg_addr; + enum msm_camera_i2c_data_type data_type; + compat_uptr_t data; +}; + +struct msm_actuator_tuning_params_t32 { + int16_t initial_code; + uint16_t pwd_step; + uint16_t region_size; + uint32_t total_steps; + compat_uptr_t region_params; +}; + +struct msm_actuator_params_t32 { + enum actuator_type act_type; + uint8_t reg_tbl_size; + uint16_t data_size; + uint16_t init_setting_size; + uint32_t i2c_addr; + enum msm_actuator_addr_type i2c_addr_type; + enum msm_actuator_data_type i2c_data_type; + compat_uptr_t reg_tbl_params; + compat_uptr_t init_settings; + struct park_lens_data_t park_lens; +}; + +struct msm_actuator_set_info_t32 { + struct msm_actuator_params_t32 actuator_params; + struct msm_actuator_tuning_params_t32 af_tuning_params; +}; + +struct sensor_init_cfg_data32 { + enum msm_sensor_init_cfg_type_t cfgtype; + struct msm_sensor_info_t probed_info; + char entity_name[MAX_SENSOR_NAME]; + union { + compat_uptr_t setting; + } cfg; +}; + +struct msm_actuator_move_params_t32 { + int8_t dir; + int8_t sign_dir; + int16_t dest_step_pos; + int32_t num_steps; + uint16_t curr_lens_pos; + compat_uptr_t ringing_params; +}; + +struct msm_actuator_cfg_data32 { + int cfgtype; + uint8_t is_af_supported; + union { + struct msm_actuator_move_params_t32 move; + struct msm_actuator_set_info_t32 set_info; + struct msm_actuator_get_info_t get_info; + struct msm_actuator_set_position_t setpos; + enum af_camera_name cam_name; + struct msm_actuator_i2c_table i2c_table; + } cfg; +}; + +struct csiphy_cfg_data32 { + enum csiphy_cfg_type_t cfgtype; + union { + compat_uptr_t csiphy_params; + compat_uptr_t csi_lane_params; + } cfg; +}; + +struct sensorb_cfg_data32 { + int cfgtype; + union { + struct msm_sensor_info_t sensor_info; + struct msm_sensor_init_params sensor_init_params; + compat_int_t otp_info; + compat_uptr_t setting; + } cfg; +}; + +struct msm_ois_params_t32 { + uint16_t data_size; + uint16_t setting_size; + uint32_t i2c_addr; + enum msm_camera_i2c_reg_addr_type i2c_addr_type; + enum msm_camera_i2c_data_type i2c_data_type; + compat_uptr_t settings; +}; + +struct msm_ois_set_info_t32 { + struct msm_ois_params_t32 ois_params; +}; + +struct msm_ois_cfg_data32 { + int cfgtype; + union { + struct msm_ois_set_info_t32 set_info; + compat_uptr_t settings; + } cfg; +}; + +struct msm_flash_init_info_t32 { + enum msm_flash_driver_type flash_driver_type; + compat_uptr_t power_setting_array; + compat_uptr_t settings; +}; + +struct msm_flash_cfg_data_t32 { + enum msm_flash_cfg_type_t cfg_type; + uint32_t torch_current; + uint32_t flash_current[MAX_LED_TRIGGERS]; + uint32_t flash_duration[MAX_LED_TRIGGERS]; + union { + compat_uptr_t flash_init_info; + compat_uptr_t settings; + uint32_t flash_current[MAX_LED_TRIGGERS]; + } cfg; +}; + +#define VIDIOC_MSM_ACTUATOR_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data32) + +#define VIDIOC_MSM_SENSOR_INIT_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct sensor_init_cfg_data32) + +#define VIDIOC_MSM_CSIPHY_IO_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data32) + +#define VIDIOC_MSM_SENSOR_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data32) + +#define VIDIOC_MSM_EEPROM_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data32) + +#define VIDIOC_MSM_OIS_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_ois_cfg_data32) + +#define VIDIOC_MSM_CSID_IO_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data32) + +#define VIDIOC_MSM_FLASH_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_flash_cfg_data_t32) +#endif + +#endif /* __LINUX_MSM_CAM_SENSOR_H */ diff --git a/kernel_headers/media/msm_camera.h b/kernel_headers/media/msm_camera.h new file mode 100644 index 0000000..10fff9a --- /dev/null +++ b/kernel_headers/media/msm_camera.h @@ -0,0 +1,2280 @@ +/* Copyright (c) 2009-2012, 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#ifndef __UAPI_MSM_CAMERA_H +#define __UAPI_MSM_CAMERA_H + +#ifdef MSM_CAMERA_BIONIC +#include +#endif +#include +#include +#include +#ifdef MSM_CAMERA_GCC +#include +#else +#include +#endif + +#include + +#define BIT(nr) (1UL << (nr)) + +#define MSM_CAM_IOCTL_MAGIC 'm' + +#define MAX_SERVER_PAYLOAD_LENGTH 8192 + +#define MSM_CAM_IOCTL_GET_SENSOR_INFO \ + _IOR(MSM_CAM_IOCTL_MAGIC, 1, struct msm_camsensor_info *) + +#define MSM_CAM_IOCTL_REGISTER_PMEM \ + _IOW(MSM_CAM_IOCTL_MAGIC, 2, struct msm_pmem_info *) + +#define MSM_CAM_IOCTL_UNREGISTER_PMEM \ + _IOW(MSM_CAM_IOCTL_MAGIC, 3, unsigned) + +#define MSM_CAM_IOCTL_CTRL_COMMAND \ + _IOW(MSM_CAM_IOCTL_MAGIC, 4, struct msm_ctrl_cmd *) + +#define MSM_CAM_IOCTL_CONFIG_VFE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 5, struct msm_camera_vfe_cfg_cmd *) + +#define MSM_CAM_IOCTL_GET_STATS \ + _IOR(MSM_CAM_IOCTL_MAGIC, 6, struct msm_camera_stats_event_ctrl *) + +#define MSM_CAM_IOCTL_GETFRAME \ + _IOR(MSM_CAM_IOCTL_MAGIC, 7, struct msm_camera_get_frame *) + +#define MSM_CAM_IOCTL_ENABLE_VFE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 8, struct camera_enable_cmd *) + +#define MSM_CAM_IOCTL_CTRL_CMD_DONE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 9, struct camera_cmd *) + +#define MSM_CAM_IOCTL_CONFIG_CMD \ + _IOW(MSM_CAM_IOCTL_MAGIC, 10, struct camera_cmd *) + +#define MSM_CAM_IOCTL_DISABLE_VFE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 11, struct camera_enable_cmd *) + +#define MSM_CAM_IOCTL_PAD_REG_RESET2 \ + _IOW(MSM_CAM_IOCTL_MAGIC, 12, struct camera_enable_cmd *) + +#define MSM_CAM_IOCTL_VFE_APPS_RESET \ + _IOW(MSM_CAM_IOCTL_MAGIC, 13, struct camera_enable_cmd *) + +#define MSM_CAM_IOCTL_RELEASE_FRAME_BUFFER \ + _IOW(MSM_CAM_IOCTL_MAGIC, 14, struct camera_enable_cmd *) + +#define MSM_CAM_IOCTL_RELEASE_STATS_BUFFER \ + _IOW(MSM_CAM_IOCTL_MAGIC, 15, struct msm_stats_buf *) + +#define MSM_CAM_IOCTL_AXI_CONFIG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 16, struct msm_camera_vfe_cfg_cmd *) + +#define MSM_CAM_IOCTL_GET_PICTURE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 17, struct msm_frame *) + +#define MSM_CAM_IOCTL_SET_CROP \ + _IOW(MSM_CAM_IOCTL_MAGIC, 18, struct crop_info *) + +#define MSM_CAM_IOCTL_PICT_PP \ + _IOW(MSM_CAM_IOCTL_MAGIC, 19, uint8_t *) + +#define MSM_CAM_IOCTL_PICT_PP_DONE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 20, struct msm_snapshot_pp_status *) + +#define MSM_CAM_IOCTL_SENSOR_IO_CFG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 21, struct sensor_cfg_data *) + +#define MSM_CAM_IOCTL_FLASH_LED_CFG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 22, unsigned *) + +#define MSM_CAM_IOCTL_UNBLOCK_POLL_FRAME \ + _IO(MSM_CAM_IOCTL_MAGIC, 23) + +#define MSM_CAM_IOCTL_CTRL_COMMAND_2 \ + _IOW(MSM_CAM_IOCTL_MAGIC, 24, struct msm_ctrl_cmd *) + +#define MSM_CAM_IOCTL_AF_CTRL \ + _IOR(MSM_CAM_IOCTL_MAGIC, 25, struct msm_ctrl_cmt_t *) + +#define MSM_CAM_IOCTL_AF_CTRL_DONE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 26, struct msm_ctrl_cmt_t *) + +#define MSM_CAM_IOCTL_CONFIG_VPE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 27, struct msm_camera_vpe_cfg_cmd *) + +#define MSM_CAM_IOCTL_AXI_VPE_CONFIG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 28, struct msm_camera_vpe_cfg_cmd *) + +#define MSM_CAM_IOCTL_STROBE_FLASH_CFG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 29, uint32_t *) + +#define MSM_CAM_IOCTL_STROBE_FLASH_CHARGE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 30, uint32_t *) + +#define MSM_CAM_IOCTL_STROBE_FLASH_RELEASE \ + _IO(MSM_CAM_IOCTL_MAGIC, 31) + +#define MSM_CAM_IOCTL_FLASH_CTRL \ + _IOW(MSM_CAM_IOCTL_MAGIC, 32, struct flash_ctrl_data *) + +#define MSM_CAM_IOCTL_ERROR_CONFIG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 33, uint32_t *) + +#define MSM_CAM_IOCTL_ABORT_CAPTURE \ + _IO(MSM_CAM_IOCTL_MAGIC, 34) + +#define MSM_CAM_IOCTL_SET_FD_ROI \ + _IOW(MSM_CAM_IOCTL_MAGIC, 35, struct fd_roi_info *) + +#define MSM_CAM_IOCTL_GET_CAMERA_INFO \ + _IOR(MSM_CAM_IOCTL_MAGIC, 36, struct msm_camera_info *) + +#define MSM_CAM_IOCTL_UNBLOCK_POLL_PIC_FRAME \ + _IO(MSM_CAM_IOCTL_MAGIC, 37) + +#define MSM_CAM_IOCTL_RELEASE_PIC_BUFFER \ + _IOW(MSM_CAM_IOCTL_MAGIC, 38, struct camera_enable_cmd *) + +#define MSM_CAM_IOCTL_PUT_ST_FRAME \ + _IOW(MSM_CAM_IOCTL_MAGIC, 39, struct msm_camera_st_frame *) + +#define MSM_CAM_IOCTL_V4L2_EVT_NOTIFY \ + _IOW(MSM_CAM_IOCTL_MAGIC, 40, struct v4l2_event_and_payload) + +#define MSM_CAM_IOCTL_SET_MEM_MAP_INFO \ + _IOR(MSM_CAM_IOCTL_MAGIC, 41, struct msm_mem_map_info *) + +#define MSM_CAM_IOCTL_ACTUATOR_IO_CFG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 42, struct msm_actuator_cfg_data *) + +#define MSM_CAM_IOCTL_MCTL_POST_PROC \ + _IOW(MSM_CAM_IOCTL_MAGIC, 43, struct msm_mctl_post_proc_cmd *) + +#define MSM_CAM_IOCTL_RESERVE_FREE_FRAME \ + _IOW(MSM_CAM_IOCTL_MAGIC, 44, struct msm_cam_evt_divert_frame *) + +#define MSM_CAM_IOCTL_RELEASE_FREE_FRAME \ + _IOR(MSM_CAM_IOCTL_MAGIC, 45, struct msm_cam_evt_divert_frame *) + +#define MSM_CAM_IOCTL_PICT_PP_DIVERT_DONE \ + _IOR(MSM_CAM_IOCTL_MAGIC, 46, struct msm_pp_frame *) + +#define MSM_CAM_IOCTL_SENSOR_V4l2_S_CTRL \ + _IOR(MSM_CAM_IOCTL_MAGIC, 47, struct v4l2_control) + +#define MSM_CAM_IOCTL_SENSOR_V4l2_QUERY_CTRL \ + _IOR(MSM_CAM_IOCTL_MAGIC, 48, struct v4l2_queryctrl) + +#define MSM_CAM_IOCTL_GET_KERNEL_SYSTEM_TIME \ + _IOW(MSM_CAM_IOCTL_MAGIC, 49, struct timeval *) + +#define MSM_CAM_IOCTL_SET_VFE_OUTPUT_TYPE \ + _IOW(MSM_CAM_IOCTL_MAGIC, 50, uint32_t *) + +#define MSM_CAM_IOCTL_MCTL_DIVERT_DONE \ + _IOR(MSM_CAM_IOCTL_MAGIC, 51, struct msm_cam_evt_divert_frame *) + +#define MSM_CAM_IOCTL_GET_ACTUATOR_INFO \ + _IOW(MSM_CAM_IOCTL_MAGIC, 52, struct msm_actuator_cfg_data *) + +#define MSM_CAM_IOCTL_EEPROM_IO_CFG \ + _IOW(MSM_CAM_IOCTL_MAGIC, 53, struct msm_eeprom_cfg_data *) + +#define MSM_CAM_IOCTL_ISPIF_IO_CFG \ + _IOR(MSM_CAM_IOCTL_MAGIC, 54, struct ispif_cfg_data *) + +#define MSM_CAM_IOCTL_STATS_REQBUF \ + _IOR(MSM_CAM_IOCTL_MAGIC, 55, struct msm_stats_reqbuf *) + +#define MSM_CAM_IOCTL_STATS_ENQUEUEBUF \ + _IOR(MSM_CAM_IOCTL_MAGIC, 56, struct msm_stats_buf_info *) + +#define MSM_CAM_IOCTL_STATS_FLUSH_BUFQ \ + _IOR(MSM_CAM_IOCTL_MAGIC, 57, struct msm_stats_flush_bufq *) + +#define MSM_CAM_IOCTL_SET_MCTL_SDEV \ + _IOW(MSM_CAM_IOCTL_MAGIC, 58, struct msm_mctl_set_sdev_data *) + +#define MSM_CAM_IOCTL_UNSET_MCTL_SDEV \ + _IOW(MSM_CAM_IOCTL_MAGIC, 59, struct msm_mctl_set_sdev_data *) + +#define MSM_CAM_IOCTL_GET_INST_HANDLE \ + _IOR(MSM_CAM_IOCTL_MAGIC, 60, uint32_t *) + +#define MSM_CAM_IOCTL_STATS_UNREG_BUF \ + _IOR(MSM_CAM_IOCTL_MAGIC, 61, struct msm_stats_flush_bufq *) + +#define MSM_CAM_IOCTL_CSIC_IO_CFG \ + _IOWR(MSM_CAM_IOCTL_MAGIC, 62, struct csic_cfg_data *) + +#define MSM_CAM_IOCTL_CSID_IO_CFG \ + _IOWR(MSM_CAM_IOCTL_MAGIC, 63, struct csid_cfg_data *) + +#define MSM_CAM_IOCTL_CSIPHY_IO_CFG \ + _IOR(MSM_CAM_IOCTL_MAGIC, 64, struct csiphy_cfg_data *) + +#define MSM_CAM_IOCTL_OEM \ + _IOW(MSM_CAM_IOCTL_MAGIC, 65, struct sensor_cfg_data *) + +#define MSM_CAM_IOCTL_AXI_INIT \ + _IOWR(MSM_CAM_IOCTL_MAGIC, 66, uint8_t *) + +#define MSM_CAM_IOCTL_AXI_RELEASE \ + _IO(MSM_CAM_IOCTL_MAGIC, 67) + +struct v4l2_event_and_payload { + struct v4l2_event evt; + uint32_t payload_length; + uint32_t transaction_id; + void *payload; +}; + +struct msm_stats_reqbuf { + int num_buf; /* how many buffers requested */ + int stats_type; /* stats type */ +}; + +struct msm_stats_flush_bufq { + int stats_type; /* enum msm_stats_enum_type */ +}; + +struct msm_mctl_pp_cmd { + int32_t id; + uint16_t length; + void *value; +}; + +struct msm_mctl_post_proc_cmd { + int32_t type; + struct msm_mctl_pp_cmd cmd; +}; + +#define MSM_CAMERA_LED_OFF 0 +#define MSM_CAMERA_LED_LOW 1 +#define MSM_CAMERA_LED_HIGH 2 +#define MSM_CAMERA_LED_INIT 3 +#define MSM_CAMERA_LED_RELEASE 4 + +#define MSM_CAMERA_STROBE_FLASH_NONE 0 +#define MSM_CAMERA_STROBE_FLASH_XENON 1 + +#define MSM_MAX_CAMERA_SENSORS 5 +#define MAX_SENSOR_NAME 32 +#define MAX_CAM_NAME_SIZE 32 +#define MAX_ACT_MOD_NAME_SIZE 32 +#define MAX_ACT_NAME_SIZE 32 +#define NUM_ACTUATOR_DIR 2 +#define MAX_ACTUATOR_SCENARIO 8 +#define MAX_ACTUATOR_REGION 5 +#define MAX_ACTUATOR_INIT_SET 12 +#define MAX_ACTUATOR_TYPE_SIZE 32 +#define MAX_ACTUATOR_REG_TBL_SIZE 8 + + +#define MSM_MAX_CAMERA_CONFIGS 2 + +#define PP_SNAP 0x01 +#define PP_RAW_SNAP ((0x01)<<1) +#define PP_PREV ((0x01)<<2) +#define PP_THUMB ((0x01)<<3) +#define PP_MASK (PP_SNAP|PP_RAW_SNAP|PP_PREV|PP_THUMB) + +#define MSM_CAM_CTRL_CMD_DONE 0 +#define MSM_CAM_SENSOR_VFE_CMD 1 + +/* Should be same as VIDEO_MAX_PLANES in videodev2.h */ +#define MAX_PLANES 8 + +/***************************************************** + * structure + *****************************************************/ + +/* define five type of structures for userspace <==> kernel + * space communication: + * command 1 - 2 are from userspace ==> kernel + * command 3 - 4 are from kernel ==> userspace + * + * 1. control command: control command(from control thread), + * control status (from config thread); + */ +struct msm_ctrl_cmd { + uint16_t type; + uint16_t length; + void *value; + uint16_t status; + uint32_t timeout_ms; + int resp_fd; /* FIXME: to be used by the kernel, pass-through for now */ + int vnode_id; /* video dev id. Can we overload resp_fd? */ + int queue_idx; + uint32_t evt_id; + uint32_t stream_type; /* used to pass value to qcamera server */ + int config_ident; /*used as identifier for config node*/ +}; + +struct msm_cam_evt_msg { + unsigned short type; /* 1 == event (RPC), 0 == message (adsp) */ + unsigned short msg_id; + unsigned int len; /* size in, number of bytes out */ + uint32_t frame_id; + void *data; + struct timespec timestamp; +}; + +struct msm_pp_frame_sp { + /* phy addr of the buffer */ + unsigned long phy_addr; + uint32_t y_off; + uint32_t cbcr_off; + /* buffer length */ + uint32_t length; + int32_t fd; + uint32_t addr_offset; + /* mapped addr */ + unsigned long vaddr; +}; + +struct msm_pp_frame_mp { + /* phy addr of the plane */ + unsigned long phy_addr; + /* offset of plane data */ + uint32_t data_offset; + /* plane length */ + uint32_t length; + int32_t fd; + uint32_t addr_offset; + /* mapped addr */ + unsigned long vaddr; +}; + +struct msm_pp_frame { + uint32_t handle; /* stores vb cookie */ + uint32_t frame_id; + unsigned short buf_idx; + int path; + unsigned short image_type; + unsigned short num_planes; /* 1 for sp */ + struct timeval timestamp; + union { + struct msm_pp_frame_sp sp; + struct msm_pp_frame_mp mp[MAX_PLANES]; + }; + int node_type; + uint32_t inst_handle; +}; + +struct msm_pp_crop { + uint32_t src_x; + uint32_t src_y; + uint32_t src_w; + uint32_t src_h; + uint32_t dst_x; + uint32_t dst_y; + uint32_t dst_w; + uint32_t dst_h; + uint8_t update_flag; +}; + +struct msm_mctl_pp_frame_cmd { + uint32_t cookie; + uint8_t vpe_output_action; + struct msm_pp_frame src_frame; + struct msm_pp_frame dest_frame; + struct msm_pp_crop crop; + int path; +}; + +struct msm_cam_evt_divert_frame { + unsigned short image_mode; + unsigned short op_mode; + unsigned short inst_idx; + unsigned short node_idx; + struct msm_pp_frame frame; + int do_pp; +}; + +struct msm_mctl_pp_cmd_ack_event { + uint32_t cmd; /* VPE_CMD_ZOOM? */ + int status; /* 0 done, < 0 err */ + uint32_t cookie; /* daemon's cookie */ +}; + +struct msm_mctl_pp_event_info { + int32_t event; + union { + struct msm_mctl_pp_cmd_ack_event ack; + }; +}; + +struct msm_isp_event_ctrl { + unsigned short resptype; + union { + struct msm_cam_evt_msg isp_msg; + struct msm_ctrl_cmd ctrl; + struct msm_cam_evt_divert_frame div_frame; + struct msm_mctl_pp_event_info pp_event_info; + } isp_data; +}; + +#define MSM_CAM_RESP_CTRL 0 +#define MSM_CAM_RESP_STAT_EVT_MSG 1 +#define MSM_CAM_RESP_STEREO_OP_1 2 +#define MSM_CAM_RESP_STEREO_OP_2 3 +#define MSM_CAM_RESP_V4L2 4 +#define MSM_CAM_RESP_DIV_FRAME_EVT_MSG 5 +#define MSM_CAM_RESP_DONE_EVENT 6 +#define MSM_CAM_RESP_MCTL_PP_EVENT 7 +#define MSM_CAM_RESP_MAX 8 + +#define MSM_CAM_APP_NOTIFY_EVENT 0 +#define MSM_CAM_APP_NOTIFY_ERROR_EVENT 1 + +/* this one is used to send ctrl/status up to config thread */ + +struct msm_stats_event_ctrl { + /* 0 - ctrl_cmd from control thread, + * 1 - stats/event kernel, + * 2 - V4L control or read request */ + int resptype; + int timeout_ms; + struct msm_ctrl_cmd ctrl_cmd; + /* struct vfe_event_t stats_event; */ + struct msm_cam_evt_msg stats_event; +}; + +/* 2. config command: config command(from config thread); */ +struct msm_camera_cfg_cmd { + /* what to config: + * 1 - sensor config, 2 - vfe config */ + uint16_t cfg_type; + + /* sensor config type */ + uint16_t cmd_type; + uint16_t queue; + uint16_t length; + void *value; +}; + +#define CMD_GENERAL 0 +#define CMD_AXI_CFG_OUT1 1 +#define CMD_AXI_CFG_SNAP_O1_AND_O2 2 +#define CMD_AXI_CFG_OUT2 3 +#define CMD_PICT_T_AXI_CFG 4 +#define CMD_PICT_M_AXI_CFG 5 +#define CMD_RAW_PICT_AXI_CFG 6 + +#define CMD_FRAME_BUF_RELEASE 7 +#define CMD_PREV_BUF_CFG 8 +#define CMD_SNAP_BUF_RELEASE 9 +#define CMD_SNAP_BUF_CFG 10 +#define CMD_STATS_DISABLE 11 +#define CMD_STATS_AEC_AWB_ENABLE 12 +#define CMD_STATS_AF_ENABLE 13 +#define CMD_STATS_AEC_ENABLE 14 +#define CMD_STATS_AWB_ENABLE 15 +#define CMD_STATS_ENABLE 16 + +#define CMD_STATS_AXI_CFG 17 +#define CMD_STATS_AEC_AXI_CFG 18 +#define CMD_STATS_AF_AXI_CFG 19 +#define CMD_STATS_AWB_AXI_CFG 20 +#define CMD_STATS_RS_AXI_CFG 21 +#define CMD_STATS_CS_AXI_CFG 22 +#define CMD_STATS_IHIST_AXI_CFG 23 +#define CMD_STATS_SKIN_AXI_CFG 24 + +#define CMD_STATS_BUF_RELEASE 25 +#define CMD_STATS_AEC_BUF_RELEASE 26 +#define CMD_STATS_AF_BUF_RELEASE 27 +#define CMD_STATS_AWB_BUF_RELEASE 28 +#define CMD_STATS_RS_BUF_RELEASE 29 +#define CMD_STATS_CS_BUF_RELEASE 30 +#define CMD_STATS_IHIST_BUF_RELEASE 31 +#define CMD_STATS_SKIN_BUF_RELEASE 32 + +#define UPDATE_STATS_INVALID 33 +#define CMD_AXI_CFG_SNAP_GEMINI 34 +#define CMD_AXI_CFG_SNAP 35 +#define CMD_AXI_CFG_PREVIEW 36 +#define CMD_AXI_CFG_VIDEO 37 + +#define CMD_STATS_IHIST_ENABLE 38 +#define CMD_STATS_RS_ENABLE 39 +#define CMD_STATS_CS_ENABLE 40 +#define CMD_VPE 41 +#define CMD_AXI_CFG_VPE 42 +#define CMD_AXI_CFG_ZSL 43 +#define CMD_AXI_CFG_SNAP_VPE 44 +#define CMD_AXI_CFG_SNAP_THUMB_VPE 45 + +#define CMD_CONFIG_PING_ADDR 46 +#define CMD_CONFIG_PONG_ADDR 47 +#define CMD_CONFIG_FREE_BUF_ADDR 48 +#define CMD_AXI_CFG_ZSL_ALL_CHNLS 49 +#define CMD_AXI_CFG_VIDEO_ALL_CHNLS 50 +#define CMD_VFE_BUFFER_RELEASE 51 +#define CMD_VFE_PROCESS_IRQ 52 +#define CMD_STATS_BG_ENABLE 53 +#define CMD_STATS_BF_ENABLE 54 +#define CMD_STATS_BHIST_ENABLE 55 +#define CMD_STATS_BG_BUF_RELEASE 56 +#define CMD_STATS_BF_BUF_RELEASE 57 +#define CMD_STATS_BHIST_BUF_RELEASE 58 +#define CMD_VFE_PIX_SOF_COUNT_UPDATE 59 +#define CMD_VFE_COUNT_PIX_SOF_ENABLE 60 +#define CMD_STATS_BE_ENABLE 61 +#define CMD_STATS_BE_BUF_RELEASE 62 + +#define CMD_AXI_CFG_PRIM BIT(8) +#define CMD_AXI_CFG_PRIM_ALL_CHNLS BIT(9) +#define CMD_AXI_CFG_SEC BIT(10) +#define CMD_AXI_CFG_SEC_ALL_CHNLS BIT(11) +#define CMD_AXI_CFG_TERT1 BIT(12) +#define CMD_AXI_CFG_TERT2 BIT(13) + +#define CMD_AXI_START 0xE1 +#define CMD_AXI_STOP 0xE2 +#define CMD_AXI_RESET 0xE3 +#define CMD_AXI_ABORT 0xE4 + + + +#define AXI_CMD_PREVIEW BIT(0) +#define AXI_CMD_CAPTURE BIT(1) +#define AXI_CMD_RECORD BIT(2) +#define AXI_CMD_ZSL BIT(3) +#define AXI_CMD_RAW_CAPTURE BIT(4) +#define AXI_CMD_LIVESHOT BIT(5) + +/* vfe config command: config command(from config thread)*/ +struct msm_vfe_cfg_cmd { + int cmd_type; + uint16_t length; + void *value; +}; + +struct msm_vpe_cfg_cmd { + int cmd_type; + uint16_t length; + void *value; +}; + +#define MAX_CAMERA_ENABLE_NAME_LEN 32 +struct camera_enable_cmd { + char name[MAX_CAMERA_ENABLE_NAME_LEN]; +}; + +#define MSM_PMEM_OUTPUT1 0 +#define MSM_PMEM_OUTPUT2 1 +#define MSM_PMEM_OUTPUT1_OUTPUT2 2 +#define MSM_PMEM_THUMBNAIL 3 +#define MSM_PMEM_MAINIMG 4 +#define MSM_PMEM_RAW_MAINIMG 5 +#define MSM_PMEM_AEC_AWB 6 +#define MSM_PMEM_AF 7 +#define MSM_PMEM_AEC 8 +#define MSM_PMEM_AWB 9 +#define MSM_PMEM_RS 10 +#define MSM_PMEM_CS 11 +#define MSM_PMEM_IHIST 12 +#define MSM_PMEM_SKIN 13 +#define MSM_PMEM_VIDEO 14 +#define MSM_PMEM_PREVIEW 15 +#define MSM_PMEM_VIDEO_VPE 16 +#define MSM_PMEM_C2D 17 +#define MSM_PMEM_MAINIMG_VPE 18 +#define MSM_PMEM_THUMBNAIL_VPE 19 +#define MSM_PMEM_BAYER_GRID 20 +#define MSM_PMEM_BAYER_FOCUS 21 +#define MSM_PMEM_BAYER_HIST 22 +#define MSM_PMEM_BAYER_EXPOSURE 23 +#define MSM_PMEM_MAX 24 + +#define STAT_AEAW 0 +#define STAT_AEC 1 +#define STAT_AF 2 +#define STAT_AWB 3 +#define STAT_RS 4 +#define STAT_CS 5 +#define STAT_IHIST 6 +#define STAT_SKIN 7 +#define STAT_BG 8 +#define STAT_BF 9 +#define STAT_BE 10 +#define STAT_BHIST 11 +#define STAT_MAX 12 + +#define FRAME_PREVIEW_OUTPUT1 0 +#define FRAME_PREVIEW_OUTPUT2 1 +#define FRAME_SNAPSHOT 2 +#define FRAME_THUMBNAIL 3 +#define FRAME_RAW_SNAPSHOT 4 +#define FRAME_MAX 5 + +enum msm_stats_enum_type { + MSM_STATS_TYPE_AEC, /* legacy based AEC */ + MSM_STATS_TYPE_AF, /* legacy based AF */ + MSM_STATS_TYPE_AWB, /* legacy based AWB */ + MSM_STATS_TYPE_RS, /* legacy based RS */ + MSM_STATS_TYPE_CS, /* legacy based CS */ + MSM_STATS_TYPE_IHIST, /* legacy based HIST */ + MSM_STATS_TYPE_SKIN, /* legacy based SKIN */ + MSM_STATS_TYPE_BG, /* Bayer Grids */ + MSM_STATS_TYPE_BF, /* Bayer Focus */ + MSM_STATS_TYPE_BE, /* Bayer Exposure*/ + MSM_STATS_TYPE_BHIST, /* Bayer Hist */ + MSM_STATS_TYPE_AE_AW, /* legacy stats for vfe 2.x*/ + MSM_STATS_TYPE_COMP, /* Composite stats */ + MSM_STATS_TYPE_MAX /* MAX */ +}; + +struct msm_stats_buf_info { + int type; /* msm_stats_enum_type */ + int fd; + void *vaddr; + uint32_t offset; + uint32_t len; + uint32_t y_off; + uint32_t cbcr_off; + uint32_t planar0_off; + uint32_t planar1_off; + uint32_t planar2_off; + uint8_t active; + int buf_idx; +}; + +struct msm_pmem_info { + int type; + int fd; + void *vaddr; + uint32_t offset; + uint32_t len; + uint32_t y_off; + uint32_t cbcr_off; + uint32_t planar0_off; + uint32_t planar1_off; + uint32_t planar2_off; + uint8_t active; +}; + +struct outputCfg { + uint32_t height; + uint32_t width; + + uint32_t window_height_firstline; + uint32_t window_height_lastline; +}; + +#define VIDEO_NODE 0 +#define MCTL_NODE 1 + +#define OUTPUT_1 0 +#define OUTPUT_2 1 +#define OUTPUT_1_AND_2 2 /* snapshot only */ +#define OUTPUT_1_AND_3 3 /* video */ +#define CAMIF_TO_AXI_VIA_OUTPUT_2 4 +#define OUTPUT_1_AND_CAMIF_TO_AXI_VIA_OUTPUT_2 5 +#define OUTPUT_2_AND_CAMIF_TO_AXI_VIA_OUTPUT_1 6 +#define OUTPUT_1_2_AND_3 7 +#define OUTPUT_ALL_CHNLS 8 +#define OUTPUT_VIDEO_ALL_CHNLS 9 +#define OUTPUT_ZSL_ALL_CHNLS 10 +#define LAST_AXI_OUTPUT_MODE_ENUM = OUTPUT_ZSL_ALL_CHNLS + +#define OUTPUT_PRIM BIT(8) +#define OUTPUT_PRIM_ALL_CHNLS BIT(9) +#define OUTPUT_SEC BIT(10) +#define OUTPUT_SEC_ALL_CHNLS BIT(11) +#define OUTPUT_TERT1 BIT(12) +#define OUTPUT_TERT2 BIT(13) + + + +#define MSM_FRAME_PREV_1 0 +#define MSM_FRAME_PREV_2 1 +#define MSM_FRAME_ENC 2 + +#define OUTPUT_TYPE_P BIT(0) +#define OUTPUT_TYPE_T BIT(1) +#define OUTPUT_TYPE_S BIT(2) +#define OUTPUT_TYPE_V BIT(3) +#define OUTPUT_TYPE_L BIT(4) +#define OUTPUT_TYPE_ST_L BIT(5) +#define OUTPUT_TYPE_ST_R BIT(6) +#define OUTPUT_TYPE_ST_D BIT(7) +#define OUTPUT_TYPE_R BIT(8) +#define OUTPUT_TYPE_R1 BIT(9) +#define OUTPUT_TYPE_SAEC BIT(10) +#define OUTPUT_TYPE_SAFC BIT(11) +#define OUTPUT_TYPE_SAWB BIT(12) +#define OUTPUT_TYPE_IHST BIT(13) +#define OUTPUT_TYPE_CSTA BIT(14) + +struct fd_roi_info { + void *info; + int info_len; +}; + +struct msm_mem_map_info { + uint32_t cookie; + uint32_t length; + uint32_t mem_type; +}; + +#define MSM_MEM_MMAP 0 +#define MSM_MEM_USERPTR 1 +#define MSM_PLANE_MAX 8 +#define MSM_PLANE_Y 0 +#define MSM_PLANE_UV 1 + +struct msm_frame { + struct timespec ts; + int path; + int type; + unsigned long buffer; + uint32_t phy_offset; + uint32_t y_off; + uint32_t cbcr_off; + uint32_t planar0_off; + uint32_t planar1_off; + uint32_t planar2_off; + int fd; + + void *cropinfo; + int croplen; + uint32_t error_code; + struct fd_roi_info roi_info; + uint32_t frame_id; + int stcam_quality_ind; + uint32_t stcam_conv_value; + + struct ion_allocation_data ion_alloc; + struct ion_fd_data fd_data; + int ion_dev_fd; +}; + +enum msm_st_frame_packing { + SIDE_BY_SIDE_HALF, + SIDE_BY_SIDE_FULL, + TOP_DOWN_HALF, + TOP_DOWN_FULL, +}; + +struct msm_st_crop { + uint32_t in_w; + uint32_t in_h; + uint32_t out_w; + uint32_t out_h; +}; + +struct msm_st_half { + uint32_t buf_p0_off; + uint32_t buf_p1_off; + uint32_t buf_p0_stride; + uint32_t buf_p1_stride; + uint32_t pix_x_off; + uint32_t pix_y_off; + struct msm_st_crop stCropInfo; +}; + +struct msm_st_frame { + struct msm_frame buf_info; + int type; + enum msm_st_frame_packing packing; + struct msm_st_half L; + struct msm_st_half R; + int frame_id; +}; + +#define MSM_CAMERA_ERR_MASK (0xFFFFFFFF & 1) + +struct stats_buff { + unsigned long buff; + int fd; +}; + +struct msm_stats_buf { + uint8_t awb_ymin; + struct stats_buff aec; + struct stats_buff awb; + struct stats_buff af; + struct stats_buff be; + struct stats_buff ihist; + struct stats_buff rs; + struct stats_buff cs; + struct stats_buff skin; + int type; + uint32_t status_bits; + unsigned long buffer; + int fd; + int length; + struct ion_handle *handle; + uint32_t frame_id; + int buf_idx; +}; +#define MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT 0 +/* video capture mode in VIDIOC_S_PARM */ +#define MSM_V4L2_EXT_CAPTURE_MODE_PREVIEW \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+1) +/* extendedmode for video recording in VIDIOC_S_PARM */ +#define MSM_V4L2_EXT_CAPTURE_MODE_VIDEO \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+2) +/* extendedmode for the full size main image in VIDIOC_S_PARM */ +#define MSM_V4L2_EXT_CAPTURE_MODE_MAIN (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+3) +/* extendedmode for the thumb nail image in VIDIOC_S_PARM */ +#define MSM_V4L2_EXT_CAPTURE_MODE_THUMBNAIL \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+4) +/* ISP_PIX_OUTPUT1: no pp, directly send output1 buf to user */ +#define MSM_V4L2_EXT_CAPTURE_MODE_ISP_PIX_OUTPUT1 \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+5) +/* ISP_PIX_OUTPUT2: no pp, directly send output2 buf to user */ +#define MSM_V4L2_EXT_CAPTURE_MODE_ISP_PIX_OUTPUT2 \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+6) +/* raw image type */ +#define MSM_V4L2_EXT_CAPTURE_MODE_RAW \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+7) +/* RDI dump */ +#define MSM_V4L2_EXT_CAPTURE_MODE_RDI \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+8) +/* RDI dump 1 */ +#define MSM_V4L2_EXT_CAPTURE_MODE_RDI1 \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+9) +/* RDI dump 2 */ +#define MSM_V4L2_EXT_CAPTURE_MODE_RDI2 \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+10) +#define MSM_V4L2_EXT_CAPTURE_MODE_AEC \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+11) +#define MSM_V4L2_EXT_CAPTURE_MODE_AWB \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+12) +#define MSM_V4L2_EXT_CAPTURE_MODE_AF \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+13) +#define MSM_V4L2_EXT_CAPTURE_MODE_IHIST \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+14) +#define MSM_V4L2_EXT_CAPTURE_MODE_CS \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+15) +#define MSM_V4L2_EXT_CAPTURE_MODE_RS \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+16) +#define MSM_V4L2_EXT_CAPTURE_MODE_CSTA \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+17) +#define MSM_V4L2_EXT_CAPTURE_MODE_V2X_LIVESHOT \ + (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+18) +#define MSM_V4L2_EXT_CAPTURE_MODE_MAX (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+19) + + +#define MSM_V4L2_PID_MOTION_ISO V4L2_CID_PRIVATE_BASE +#define MSM_V4L2_PID_EFFECT (V4L2_CID_PRIVATE_BASE+1) +#define MSM_V4L2_PID_HJR (V4L2_CID_PRIVATE_BASE+2) +#define MSM_V4L2_PID_LED_MODE (V4L2_CID_PRIVATE_BASE+3) +#define MSM_V4L2_PID_PREP_SNAPSHOT (V4L2_CID_PRIVATE_BASE+4) +#define MSM_V4L2_PID_EXP_METERING (V4L2_CID_PRIVATE_BASE+5) +#define MSM_V4L2_PID_ISO (V4L2_CID_PRIVATE_BASE+6) +#define MSM_V4L2_PID_CAM_MODE (V4L2_CID_PRIVATE_BASE+7) +#define MSM_V4L2_PID_LUMA_ADAPTATION (V4L2_CID_PRIVATE_BASE+8) +#define MSM_V4L2_PID_BEST_SHOT (V4L2_CID_PRIVATE_BASE+9) +#define MSM_V4L2_PID_FOCUS_MODE (V4L2_CID_PRIVATE_BASE+10) +#define MSM_V4L2_PID_BL_DETECTION (V4L2_CID_PRIVATE_BASE+11) +#define MSM_V4L2_PID_SNOW_DETECTION (V4L2_CID_PRIVATE_BASE+12) +#define MSM_V4L2_PID_CTRL_CMD (V4L2_CID_PRIVATE_BASE+13) +#define MSM_V4L2_PID_EVT_SUB_INFO (V4L2_CID_PRIVATE_BASE+14) +#define MSM_V4L2_PID_STROBE_FLASH (V4L2_CID_PRIVATE_BASE+15) +#define MSM_V4L2_PID_INST_HANDLE (V4L2_CID_PRIVATE_BASE+16) +#define MSM_V4L2_PID_MMAP_INST (V4L2_CID_PRIVATE_BASE+17) +#define MSM_V4L2_PID_PP_PLANE_INFO (V4L2_CID_PRIVATE_BASE+18) +#define MSM_V4L2_PID_MAX MSM_V4L2_PID_PP_PLANE_INFO + +/* camera operation mode for video recording - two frame output queues */ +#define MSM_V4L2_CAM_OP_DEFAULT 0 +/* camera operation mode for video recording - two frame output queues */ +#define MSM_V4L2_CAM_OP_PREVIEW (MSM_V4L2_CAM_OP_DEFAULT+1) +/* camera operation mode for video recording - two frame output queues */ +#define MSM_V4L2_CAM_OP_VIDEO (MSM_V4L2_CAM_OP_DEFAULT+2) +/* camera operation mode for standard shapshot - two frame output queues */ +#define MSM_V4L2_CAM_OP_CAPTURE (MSM_V4L2_CAM_OP_DEFAULT+3) +/* camera operation mode for zsl shapshot - three output queues */ +#define MSM_V4L2_CAM_OP_ZSL (MSM_V4L2_CAM_OP_DEFAULT+4) +/* camera operation mode for raw snapshot - one frame output queue */ +#define MSM_V4L2_CAM_OP_RAW (MSM_V4L2_CAM_OP_DEFAULT+5) +/* camera operation mode for jpeg snapshot - one frame output queue */ +#define MSM_V4L2_CAM_OP_JPEG_CAPTURE (MSM_V4L2_CAM_OP_DEFAULT+6) + + +#define MSM_V4L2_VID_CAP_TYPE 0 +#define MSM_V4L2_STREAM_ON 1 +#define MSM_V4L2_STREAM_OFF 2 +#define MSM_V4L2_SNAPSHOT 3 +#define MSM_V4L2_QUERY_CTRL 4 +#define MSM_V4L2_GET_CTRL 5 +#define MSM_V4L2_SET_CTRL 6 +#define MSM_V4L2_QUERY 7 +#define MSM_V4L2_GET_CROP 8 +#define MSM_V4L2_SET_CROP 9 +#define MSM_V4L2_OPEN 10 +#define MSM_V4L2_CLOSE 11 +#define MSM_V4L2_SET_CTRL_CMD 12 +#define MSM_V4L2_EVT_SUB_MASK 13 +#define MSM_V4L2_PRIVATE_CMD 14 +#define MSM_V4L2_MAX 15 +#define V4L2_CAMERA_EXIT 43 + +struct crop_info { + void *info; + int len; +}; + +struct msm_postproc { + int ftnum; + struct msm_frame fthumnail; + int fmnum; + struct msm_frame fmain; +}; + +struct msm_snapshot_pp_status { + void *status; +}; + +#define CFG_SET_MODE 0 +#define CFG_SET_EFFECT 1 +#define CFG_START 2 +#define CFG_PWR_UP 3 +#define CFG_PWR_DOWN 4 +#define CFG_WRITE_EXPOSURE_GAIN 5 +#define CFG_SET_DEFAULT_FOCUS 6 +#define CFG_MOVE_FOCUS 7 +#define CFG_REGISTER_TO_REAL_GAIN 8 +#define CFG_REAL_TO_REGISTER_GAIN 9 +#define CFG_SET_FPS 10 +#define CFG_SET_PICT_FPS 11 +#define CFG_SET_BRIGHTNESS 12 +#define CFG_SET_CONTRAST 13 +#define CFG_SET_ZOOM 14 +#define CFG_SET_EXPOSURE_MODE 15 +#define CFG_SET_WB 16 +#define CFG_SET_ANTIBANDING 17 +#define CFG_SET_EXP_GAIN 18 +#define CFG_SET_PICT_EXP_GAIN 19 +#define CFG_SET_LENS_SHADING 20 +#define CFG_GET_PICT_FPS 21 +#define CFG_GET_PREV_L_PF 22 +#define CFG_GET_PREV_P_PL 23 +#define CFG_GET_PICT_L_PF 24 +#define CFG_GET_PICT_P_PL 25 +#define CFG_GET_AF_MAX_STEPS 26 +#define CFG_GET_PICT_MAX_EXP_LC 27 +#define CFG_SEND_WB_INFO 28 +#define CFG_SENSOR_INIT 29 +#define CFG_GET_3D_CALI_DATA 30 +#define CFG_GET_CALIB_DATA 31 +#define CFG_GET_OUTPUT_INFO 32 +#define CFG_GET_EEPROM_INFO 33 +#define CFG_GET_EEPROM_DATA 34 +#define CFG_SET_ACTUATOR_INFO 35 +#define CFG_GET_ACTUATOR_INFO 36 +/* TBD: QRD */ +#define CFG_SET_SATURATION 37 +#define CFG_SET_SHARPNESS 38 +#define CFG_SET_TOUCHAEC 39 +#define CFG_SET_AUTO_FOCUS 40 +#define CFG_SET_AUTOFLASH 41 +#define CFG_SET_EXPOSURE_COMPENSATION 42 +#define CFG_SET_ISO 43 +#define CFG_START_STREAM 44 +#define CFG_STOP_STREAM 45 +#define CFG_GET_CSI_PARAMS 46 +#define CFG_POWER_UP 47 +#define CFG_POWER_DOWN 48 +#define CFG_WRITE_I2C_ARRAY 49 +#define CFG_READ_I2C_ARRAY 50 +#define CFG_PCLK_CHANGE 51 +#define CFG_CONFIG_VREG_ARRAY 52 +#define CFG_CONFIG_CLK_ARRAY 53 +#define CFG_GPIO_OP 54 +#define CFG_MAX 55 + + +#define MOVE_NEAR 0 +#define MOVE_FAR 1 + +#define SENSOR_PREVIEW_MODE 0 +#define SENSOR_SNAPSHOT_MODE 1 +#define SENSOR_RAW_SNAPSHOT_MODE 2 +#define SENSOR_HFR_60FPS_MODE 3 +#define SENSOR_HFR_90FPS_MODE 4 +#define SENSOR_HFR_120FPS_MODE 5 + +#define SENSOR_QTR_SIZE 0 +#define SENSOR_FULL_SIZE 1 +#define SENSOR_QVGA_SIZE 2 +#define SENSOR_INVALID_SIZE 3 + +#define CAMERA_EFFECT_OFF 0 +#define CAMERA_EFFECT_MONO 1 +#define CAMERA_EFFECT_NEGATIVE 2 +#define CAMERA_EFFECT_SOLARIZE 3 +#define CAMERA_EFFECT_SEPIA 4 +#define CAMERA_EFFECT_POSTERIZE 5 +#define CAMERA_EFFECT_WHITEBOARD 6 +#define CAMERA_EFFECT_BLACKBOARD 7 +#define CAMERA_EFFECT_AQUA 8 +#define CAMERA_EFFECT_EMBOSS 9 +#define CAMERA_EFFECT_SKETCH 10 +#define CAMERA_EFFECT_NEON 11 +#define CAMERA_EFFECT_FADED 12 +#define CAMERA_EFFECT_VINTAGECOOL 13 +#define CAMERA_EFFECT_VINTAGEWARM 14 +#define CAMERA_EFFECT_ACCENT_BLUE 15 +#define CAMERA_EFFECT_ACCENT_GREEN 16 +#define CAMERA_EFFECT_ACCENT_ORANGE 17 +#define CAMERA_EFFECT_MAX 18 + +/* QRD */ +#define CAMERA_EFFECT_BW 10 +#define CAMERA_EFFECT_BLUISH 12 +#define CAMERA_EFFECT_REDDISH 13 +#define CAMERA_EFFECT_GREENISH 14 + +/* QRD */ +#define CAMERA_ANTIBANDING_OFF 0 +#define CAMERA_ANTIBANDING_50HZ 2 +#define CAMERA_ANTIBANDING_60HZ 1 +#define CAMERA_ANTIBANDING_AUTO 3 + +#define CAMERA_CONTRAST_LV0 0 +#define CAMERA_CONTRAST_LV1 1 +#define CAMERA_CONTRAST_LV2 2 +#define CAMERA_CONTRAST_LV3 3 +#define CAMERA_CONTRAST_LV4 4 +#define CAMERA_CONTRAST_LV5 5 +#define CAMERA_CONTRAST_LV6 6 +#define CAMERA_CONTRAST_LV7 7 +#define CAMERA_CONTRAST_LV8 8 +#define CAMERA_CONTRAST_LV9 9 + +#define CAMERA_BRIGHTNESS_LV0 0 +#define CAMERA_BRIGHTNESS_LV1 1 +#define CAMERA_BRIGHTNESS_LV2 2 +#define CAMERA_BRIGHTNESS_LV3 3 +#define CAMERA_BRIGHTNESS_LV4 4 +#define CAMERA_BRIGHTNESS_LV5 5 +#define CAMERA_BRIGHTNESS_LV6 6 +#define CAMERA_BRIGHTNESS_LV7 7 +#define CAMERA_BRIGHTNESS_LV8 8 + + +#define CAMERA_SATURATION_LV0 0 +#define CAMERA_SATURATION_LV1 1 +#define CAMERA_SATURATION_LV2 2 +#define CAMERA_SATURATION_LV3 3 +#define CAMERA_SATURATION_LV4 4 +#define CAMERA_SATURATION_LV5 5 +#define CAMERA_SATURATION_LV6 6 +#define CAMERA_SATURATION_LV7 7 +#define CAMERA_SATURATION_LV8 8 + +#define CAMERA_SHARPNESS_LV0 0 +#define CAMERA_SHARPNESS_LV1 3 +#define CAMERA_SHARPNESS_LV2 6 +#define CAMERA_SHARPNESS_LV3 9 +#define CAMERA_SHARPNESS_LV4 12 +#define CAMERA_SHARPNESS_LV5 15 +#define CAMERA_SHARPNESS_LV6 18 +#define CAMERA_SHARPNESS_LV7 21 +#define CAMERA_SHARPNESS_LV8 24 +#define CAMERA_SHARPNESS_LV9 27 +#define CAMERA_SHARPNESS_LV10 30 + +#define CAMERA_SETAE_AVERAGE 0 +#define CAMERA_SETAE_CENWEIGHT 1 + +#define CAMERA_WB_AUTO 1 /* This list must match aeecamera.h */ +#define CAMERA_WB_CUSTOM 2 +#define CAMERA_WB_INCANDESCENT 3 +#define CAMERA_WB_FLUORESCENT 4 +#define CAMERA_WB_DAYLIGHT 5 +#define CAMERA_WB_CLOUDY_DAYLIGHT 6 +#define CAMERA_WB_TWILIGHT 7 +#define CAMERA_WB_SHADE 8 + +#define CAMERA_EXPOSURE_COMPENSATION_LV0 12 +#define CAMERA_EXPOSURE_COMPENSATION_LV1 6 +#define CAMERA_EXPOSURE_COMPENSATION_LV2 0 +#define CAMERA_EXPOSURE_COMPENSATION_LV3 -6 +#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12 + +enum msm_v4l2_saturation_level { + MSM_V4L2_SATURATION_L0, + MSM_V4L2_SATURATION_L1, + MSM_V4L2_SATURATION_L2, + MSM_V4L2_SATURATION_L3, + MSM_V4L2_SATURATION_L4, + MSM_V4L2_SATURATION_L5, + MSM_V4L2_SATURATION_L6, + MSM_V4L2_SATURATION_L7, + MSM_V4L2_SATURATION_L8, + MSM_V4L2_SATURATION_L9, + MSM_V4L2_SATURATION_L10, +}; + +enum msm_v4l2_contrast_level { + MSM_V4L2_CONTRAST_L0, + MSM_V4L2_CONTRAST_L1, + MSM_V4L2_CONTRAST_L2, + MSM_V4L2_CONTRAST_L3, + MSM_V4L2_CONTRAST_L4, + MSM_V4L2_CONTRAST_L5, + MSM_V4L2_CONTRAST_L6, + MSM_V4L2_CONTRAST_L7, + MSM_V4L2_CONTRAST_L8, + MSM_V4L2_CONTRAST_L9, + MSM_V4L2_CONTRAST_L10, +}; + + +enum msm_v4l2_exposure_level { + MSM_V4L2_EXPOSURE_N2, + MSM_V4L2_EXPOSURE_N1, + MSM_V4L2_EXPOSURE_D, + MSM_V4L2_EXPOSURE_P1, + MSM_V4L2_EXPOSURE_P2, +}; + +enum msm_v4l2_sharpness_level { + MSM_V4L2_SHARPNESS_L0, + MSM_V4L2_SHARPNESS_L1, + MSM_V4L2_SHARPNESS_L2, + MSM_V4L2_SHARPNESS_L3, + MSM_V4L2_SHARPNESS_L4, + MSM_V4L2_SHARPNESS_L5, + MSM_V4L2_SHARPNESS_L6, +}; + +enum msm_v4l2_expo_metering_mode { + MSM_V4L2_EXP_FRAME_AVERAGE, + MSM_V4L2_EXP_CENTER_WEIGHTED, + MSM_V4L2_EXP_SPOT_METERING, +}; + +enum msm_v4l2_iso_mode { + MSM_V4L2_ISO_AUTO = 0, + MSM_V4L2_ISO_DEBLUR, + MSM_V4L2_ISO_100, + MSM_V4L2_ISO_200, + MSM_V4L2_ISO_400, + MSM_V4L2_ISO_800, + MSM_V4L2_ISO_1600, +}; + +enum msm_v4l2_wb_mode { + MSM_V4L2_WB_OFF, + MSM_V4L2_WB_AUTO , + MSM_V4L2_WB_CUSTOM, + MSM_V4L2_WB_INCANDESCENT, + MSM_V4L2_WB_FLUORESCENT, + MSM_V4L2_WB_DAYLIGHT, + MSM_V4L2_WB_CLOUDY_DAYLIGHT, +}; + +enum msm_v4l2_special_effect { + MSM_V4L2_EFFECT_OFF, + MSM_V4L2_EFFECT_MONO, + MSM_V4L2_EFFECT_NEGATIVE, + MSM_V4L2_EFFECT_SOLARIZE, + MSM_V4L2_EFFECT_SEPIA, + MSM_V4L2_EFFECT_POSTERAIZE, + MSM_V4L2_EFFECT_WHITEBOARD, + MSM_V4L2_EFFECT_BLACKBOARD, + MSM_V4L2_EFFECT_AQUA, + MSM_V4L2_EFFECT_EMBOSS, + MSM_V4L2_EFFECT_SKETCH, + MSM_V4L2_EFFECT_NEON, + MSM_V4L2_EFFECT_MAX, +}; + +enum msm_v4l2_power_line_frequency { + MSM_V4L2_POWER_LINE_OFF, + MSM_V4L2_POWER_LINE_60HZ, + MSM_V4L2_POWER_LINE_50HZ, + MSM_V4L2_POWER_LINE_AUTO, +}; + +#define CAMERA_ISO_TYPE_AUTO 0 +#define CAMEAR_ISO_TYPE_HJR 1 +#define CAMEAR_ISO_TYPE_100 2 +#define CAMERA_ISO_TYPE_200 3 +#define CAMERA_ISO_TYPE_400 4 +#define CAMEAR_ISO_TYPE_800 5 +#define CAMERA_ISO_TYPE_1600 6 + +struct sensor_pict_fps { + uint16_t prevfps; + uint16_t pictfps; +}; + +struct exp_gain_cfg { + uint16_t gain; + uint32_t line; +}; + +struct focus_cfg { + int32_t steps; + int dir; +}; + +struct fps_cfg { + uint16_t f_mult; + uint16_t fps_div; + uint32_t pict_fps_div; +}; +struct wb_info_cfg { + uint16_t red_gain; + uint16_t green_gain; + uint16_t blue_gain; +}; +struct sensor_3d_exp_cfg { + uint16_t gain; + uint32_t line; + uint16_t r_gain; + uint16_t b_gain; + uint16_t gr_gain; + uint16_t gb_gain; + uint16_t gain_adjust; +}; +struct sensor_3d_cali_data_t{ + unsigned char left_p_matrix[3][4][8]; + unsigned char right_p_matrix[3][4][8]; + unsigned char square_len[8]; + unsigned char focal_len[8]; + unsigned char pixel_pitch[8]; + uint16_t left_r; + uint16_t left_b; + uint16_t left_gb; + uint16_t left_af_far; + uint16_t left_af_mid; + uint16_t left_af_short; + uint16_t left_af_5um; + uint16_t left_af_50up; + uint16_t left_af_50down; + uint16_t right_r; + uint16_t right_b; + uint16_t right_gb; + uint16_t right_af_far; + uint16_t right_af_mid; + uint16_t right_af_short; + uint16_t right_af_5um; + uint16_t right_af_50up; + uint16_t right_af_50down; +}; +struct sensor_init_cfg { + uint8_t prev_res; + uint8_t pict_res; +}; + +struct sensor_calib_data { + /* Color Related Measurements */ + uint16_t r_over_g; + uint16_t b_over_g; + uint16_t gr_over_gb; + + /* Lens Related Measurements */ + uint16_t macro_2_inf; + uint16_t inf_2_macro; + uint16_t stroke_amt; + uint16_t af_pos_1m; + uint16_t af_pos_inf; +}; + +enum msm_sensor_resolution_t { + MSM_SENSOR_RES_FULL, + MSM_SENSOR_RES_QTR, + MSM_SENSOR_RES_2, + MSM_SENSOR_RES_3, + MSM_SENSOR_RES_4, + MSM_SENSOR_RES_5, + MSM_SENSOR_RES_6, + MSM_SENSOR_RES_7, + MSM_SENSOR_INVALID_RES, +}; + +struct msm_sensor_output_info_t { + uint16_t x_output; + uint16_t y_output; + uint16_t line_length_pclk; + uint16_t frame_length_lines; + uint32_t vt_pixel_clk; + uint32_t op_pixel_clk; + uint16_t binning_factor; +}; + +struct sensor_output_info_t { + struct msm_sensor_output_info_t *output_info; + uint16_t num_info; +}; + +struct msm_sensor_exp_gain_info_t { + uint16_t coarse_int_time_addr; + uint16_t global_gain_addr; + uint16_t vert_offset; +}; + +struct msm_sensor_output_reg_addr_t { + uint16_t x_output; + uint16_t y_output; + uint16_t line_length_pclk; + uint16_t frame_length_lines; +}; + +struct sensor_driver_params_type { + struct msm_camera_i2c_reg_setting *init_settings; + uint16_t init_settings_size; + struct msm_camera_i2c_reg_setting *mode_settings; + uint16_t mode_settings_size; + struct msm_sensor_output_reg_addr_t *sensor_output_reg_addr; + struct msm_camera_i2c_reg_setting *start_settings; + struct msm_camera_i2c_reg_setting *stop_settings; + struct msm_camera_i2c_reg_setting *groupon_settings; + struct msm_camera_i2c_reg_setting *groupoff_settings; + struct msm_sensor_exp_gain_info_t *sensor_exp_gain_info; + struct msm_sensor_output_info_t *output_info; +}; + +struct mirror_flip { + int32_t x_mirror; + int32_t y_flip; +}; + +struct cord { + uint32_t x; + uint32_t y; +}; + +struct msm_eeprom_data_t { + void *eeprom_data; + uint16_t index; +}; + +struct msm_camera_csid_vc_cfg { + uint8_t cid; + uint8_t dt; + uint8_t decode_format; +}; + +struct csi_lane_params_t { + uint16_t csi_lane_assign; + uint8_t csi_lane_mask; + uint8_t csi_if; + uint8_t csid_core[2]; + uint8_t csi_phy_sel; +}; + +struct msm_camera_csid_lut_params { + uint8_t num_cid; + struct msm_camera_csid_vc_cfg *vc_cfg; +}; + +struct msm_camera_csid_params { + uint8_t lane_cnt; + uint16_t lane_assign; + uint8_t phy_sel; + struct msm_camera_csid_lut_params lut_params; +}; + +struct msm_camera_csiphy_params { + uint8_t lane_cnt; + uint8_t settle_cnt; + uint16_t lane_mask; + uint8_t combo_mode; + uint8_t csid_core; +}; + +struct msm_camera_csi2_params { + struct msm_camera_csid_params csid_params; + struct msm_camera_csiphy_params csiphy_params; +}; + +enum msm_camera_csi_data_format { + CSI_8BIT, + CSI_10BIT, + CSI_12BIT, +}; + +struct msm_camera_csi_params { + enum msm_camera_csi_data_format data_format; + uint8_t lane_cnt; + uint8_t lane_assign; + uint8_t settle_cnt; + uint8_t dpcm_scheme; +}; + +enum csic_cfg_type_t { + CSIC_INIT, + CSIC_CFG, +}; + +struct csic_cfg_data { + enum csic_cfg_type_t cfgtype; + struct msm_camera_csi_params *csic_params; +}; + +enum csid_cfg_type_t { + CSID_INIT, + CSID_CFG, +}; + +struct csid_cfg_data { + enum csid_cfg_type_t cfgtype; + union { + uint32_t csid_version; + struct msm_camera_csid_params *csid_params; + } cfg; +}; + +enum csiphy_cfg_type_t { + CSIPHY_INIT, + CSIPHY_CFG, +}; + +struct csiphy_cfg_data { + enum csiphy_cfg_type_t cfgtype; + struct msm_camera_csiphy_params *csiphy_params; +}; + +#define CSI_EMBED_DATA 0x12 +#define CSI_RESERVED_DATA_0 0x13 +#define CSI_YUV422_8 0x1E +#define CSI_RAW8 0x2A +#define CSI_RAW10 0x2B +#define CSI_RAW12 0x2C + +#define CSI_DECODE_6BIT 0 +#define CSI_DECODE_8BIT 1 +#define CSI_DECODE_10BIT 2 +#define CSI_DECODE_DPCM_10_8_10 5 + +#define ISPIF_STREAM(intf, action, vfe) (((intf)<> 24) : 0xFF) + +#define CLR_IMG_MODE(handle) (handle &= 0xFF00FFFF) +#define SET_IMG_MODE(handle, data) \ + (handle |= ((0x1 << 23) | ((data & 0x7F) << 16))) +#define GET_IMG_MODE(handle) \ + ((handle & 0x800000) ? ((handle & 0x7F0000) >> 16) : 0xFF) + +#define CLR_MCTLPP_INST_IDX(handle) (handle &= 0xFFFF00FF) +#define SET_MCTLPP_INST_IDX(handle, data) \ + (handle |= ((0x1 << 15) | ((data & 0x7F) << 8))) +#define GET_MCTLPP_INST_IDX(handle) \ + ((handle & 0x8000) ? ((handle & 0x7F00) >> 8) : 0xFF) + +#define CLR_VIDEO_INST_IDX(handle) (handle &= 0xFFFFFF00) +#define GET_VIDEO_INST_IDX(handle) \ + ((handle & 0x80) ? (handle & 0x7F) : 0xFF) +#define SET_VIDEO_INST_IDX(handle, data) \ + (handle |= (0x1 << 7) | (data & 0x7F)) + +#endif /* __UAPI_MSM_CAMERA_H */ diff --git a/kernel_headers/media/msm_camsensor_sdk.h b/kernel_headers/media/msm_camsensor_sdk.h new file mode 100644 index 0000000..5f3e7e3 --- /dev/null +++ b/kernel_headers/media/msm_camsensor_sdk.h @@ -0,0 +1,338 @@ +#ifndef __LINUX_MSM_CAMSENSOR_SDK_H +#define __LINUX_MSM_CAMSENSOR_SDK_H + +#include + +#define KVERSION 0x1 + +#define MAX_POWER_CONFIG 12 +#define GPIO_OUT_LOW (0 << 1) +#define GPIO_OUT_HIGH (1 << 1) +#define CSI_EMBED_DATA 0x12 +#define CSI_RESERVED_DATA_0 0x13 +#define CSI_YUV422_8 0x1E +#define CSI_RAW8 0x2A +#define CSI_RAW10 0x2B +#define CSI_RAW12 0x2C +#define CSI_DECODE_6BIT 0 +#define CSI_DECODE_8BIT 1 +#define CSI_DECODE_10BIT 2 +#define CSI_DECODE_DPCM_10_8_10 5 +#define MAX_CID 16 +#define I2C_SEQ_REG_DATA_MAX 256 +#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */ + +#define MAX_ACTUATOR_REG_TBL_SIZE 8 +#define MAX_ACTUATOR_REGION 5 +#define NUM_ACTUATOR_DIR 2 +#define MAX_ACTUATOR_SCENARIO 8 +#define MAX_ACT_MOD_NAME_SIZE 32 +#define MAX_ACT_NAME_SIZE 32 +#define MAX_ACTUATOR_INIT_SET 12 +#define MAX_I2C_REG_SET 12 + +#define MAX_NAME_SIZE 32 +#define MAX_FLASH_NUM 8 + +enum msm_sensor_camera_id_t { + CAMERA_0, + CAMERA_1, + CAMERA_2, + CAMERA_3, + MAX_CAMERAS, +}; + +enum i2c_freq_mode_t { + I2C_STANDARD_MODE, + I2C_FAST_MODE, + I2C_CUSTOM_MODE, + I2C_MAX_MODES, +}; + +enum camb_position_t { + BACK_CAMERA_B, + FRONT_CAMERA_B, + INVALID_CAMERA_B, +}; + +enum msm_sensor_power_seq_type_t { + SENSOR_CLK, + SENSOR_GPIO, + SENSOR_VREG, + SENSOR_I2C_MUX, + SENSOR_I2C, +}; + +enum msm_camera_i2c_reg_addr_type { + MSM_CAMERA_I2C_BYTE_ADDR = 1, + MSM_CAMERA_I2C_WORD_ADDR, + MSM_CAMERA_I2C_3B_ADDR, + MSM_CAMERA_I2C_ADDR_TYPE_MAX, +}; + +enum msm_camera_i2c_data_type { + MSM_CAMERA_I2C_BYTE_DATA = 1, + MSM_CAMERA_I2C_WORD_DATA, + MSM_CAMERA_I2C_DWORD_DATA, + MSM_CAMERA_I2C_SET_BYTE_MASK, + MSM_CAMERA_I2C_UNSET_BYTE_MASK, + MSM_CAMERA_I2C_SET_WORD_MASK, + MSM_CAMERA_I2C_UNSET_WORD_MASK, + MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA, + MSM_CAMERA_I2C_DATA_TYPE_MAX, +}; + +enum msm_sensor_power_seq_gpio_t { + SENSOR_GPIO_RESET, + SENSOR_GPIO_STANDBY, + SENSOR_GPIO_AF_PWDM, + SENSOR_GPIO_VIO, + SENSOR_GPIO_VANA, + SENSOR_GPIO_VDIG, + SENSOR_GPIO_VAF, + SENSOR_GPIO_FL_EN, + SENSOR_GPIO_FL_NOW, + SENSOR_GPIO_FL_RESET, + SENSOR_GPIO_CUSTOM1, + SENSOR_GPIO_CUSTOM2, + SENSOR_GPIO_MAX, +}; + +enum msm_camera_vreg_name_t { + CAM_VDIG, + CAM_VIO, + CAM_VANA, + CAM_VAF, + CAM_V_CUSTOM1, + CAM_V_CUSTOM2, + CAM_VREG_MAX, +}; + +enum msm_sensor_clk_type_t { + SENSOR_CAM_MCLK, + SENSOR_CAM_CLK, + SENSOR_CAM_CLK_MAX, +}; + +enum camerab_mode_t { + CAMERA_MODE_2D_B = (1<<0), + CAMERA_MODE_3D_B = (1<<1), + CAMERA_MODE_INVALID = (1<<2), +}; + +enum sensor_stats_type { + YRGB, + YYYY, +}; + +enum msm_actuator_data_type { + MSM_ACTUATOR_BYTE_DATA = 1, + MSM_ACTUATOR_WORD_DATA, +}; + +enum msm_actuator_addr_type { + MSM_ACTUATOR_BYTE_ADDR = 1, + MSM_ACTUATOR_WORD_ADDR, +}; + +enum msm_actuator_write_type { + MSM_ACTUATOR_WRITE_HW_DAMP, + MSM_ACTUATOR_WRITE_DAC, +}; + +enum msm_actuator_i2c_operation { + MSM_ACT_WRITE = 0, + MSM_ACT_POLL, +}; + +enum actuator_type { + ACTUATOR_VCM, + ACTUATOR_PIEZO, + ACTUATOR_HVCM, +}; + +enum msm_flash_driver_type { + FLASH_DRIVER_PMIC, + FLASH_DRIVER_I2C, + FLASH_DRIVER_GPIO, + FLASH_DRIVER_DEFAULT +}; + +enum msm_flash_cfg_type_t { + CFG_FLASH_INIT, + CFG_FLASH_RELEASE, + CFG_FLASH_OFF, + CFG_FLASH_LOW, + CFG_FLASH_HIGH, +}; + +struct msm_sensor_power_setting { + enum msm_sensor_power_seq_type_t seq_type; + uint16_t seq_val; + long config_val; + uint16_t delay; + void *data[10]; +}; + +struct msm_sensor_power_setting_array { + struct msm_sensor_power_setting power_setting_a[MAX_POWER_CONFIG]; + struct msm_sensor_power_setting *power_setting; + uint16_t size; + struct msm_sensor_power_setting power_down_setting_a[MAX_POWER_CONFIG]; + struct msm_sensor_power_setting *power_down_setting; + uint16_t size_down; +}; + +struct otp_info_t { + uint8_t *otp_info; + uint8_t otp_read; +}; + +struct msm_sensor_otp_cal_info_t { + uint8_t enable; + uint16_t page_size; + uint16_t num_of_pages; + uint16_t page_reg_addr; + uint16_t page_reg_base_addr; + + uint16_t ctrl_reg_addr; + uint16_t ctrl_reg_initial_mode; + uint16_t ctrl_reg_read_mode; + uint16_t ctrl_reg_read_mode_disable; + uint16_t reset_reg_addr; + uint16_t reset_reg_stream_on; + uint16_t reset_reg_stream_off; + + uint16_t data_seg_addr; + enum msm_camera_i2c_data_type data_size; + uint8_t big_endian; +}; + +struct msm_sensor_init_params { + /* mask of modes supported: 2D, 3D */ + int modes_supported; + /* sensor position: front, back */ + enum camb_position_t position; + /* sensor mount angle */ + uint32_t sensor_mount_angle; + struct msm_sensor_otp_cal_info_t sensor_otp; +}; + +struct msm_sensor_id_info_t { + uint16_t sensor_id_reg_addr; + uint16_t sensor_id; +}; + +struct msm_camera_sensor_slave_info { + char sensor_name[32]; + char eeprom_name[32]; + char actuator_name[32]; + char ois_name[32]; + char flash_name[32]; + enum msm_sensor_camera_id_t camera_id; + uint16_t slave_addr; + enum i2c_freq_mode_t i2c_freq_mode; + enum msm_camera_i2c_reg_addr_type addr_type; + struct msm_sensor_id_info_t sensor_id_info; + struct msm_sensor_power_setting_array power_setting_array; + uint8_t is_init_params_valid; + struct msm_sensor_init_params sensor_init_params; + uint8_t is_flash_supported; + struct otp_info_t sensor_otp; +}; + +struct msm_camera_i2c_reg_array { + uint16_t reg_addr; + uint16_t reg_data; + uint32_t delay; +}; + +struct msm_camera_i2c_reg_setting { + struct msm_camera_i2c_reg_array *reg_setting; + uint16_t size; + enum msm_camera_i2c_reg_addr_type addr_type; + enum msm_camera_i2c_data_type data_type; + uint16_t delay; +}; + +struct msm_camera_csid_vc_cfg { + uint8_t cid; + uint8_t dt; + uint8_t decode_format; +}; + +struct msm_camera_csid_lut_params { + uint8_t num_cid; + struct msm_camera_csid_vc_cfg vc_cfg_a[MAX_CID]; + struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID]; +}; + +struct msm_camera_csid_params { + uint8_t lane_cnt; + uint16_t lane_assign; + uint8_t phy_sel; + uint32_t csi_clk; + struct msm_camera_csid_lut_params lut_params; +}; + +struct msm_camera_csiphy_params { + uint8_t lane_cnt; + uint8_t settle_cnt; + uint16_t lane_mask; + uint8_t combo_mode; + uint8_t csid_core; + uint32_t csiphy_clk; +}; + +struct msm_camera_i2c_seq_reg_array { + uint16_t reg_addr; + uint8_t reg_data[I2C_SEQ_REG_DATA_MAX]; + uint16_t reg_data_size; +}; + +struct msm_camera_i2c_seq_reg_setting { + struct msm_camera_i2c_seq_reg_array *reg_setting; + uint16_t size; + enum msm_camera_i2c_reg_addr_type addr_type; + uint16_t delay; +}; + +struct msm_actuator_reg_params_t { + enum msm_actuator_write_type reg_write_type; + uint32_t hw_mask; + uint16_t reg_addr; + uint16_t hw_shift; + uint16_t data_shift; +}; + +struct damping_params_t { + uint32_t damping_step; + uint32_t damping_delay; + uint32_t hw_params; +}; + +struct region_params_t { + /* [0] = ForwardDirection Macro boundary + [1] = ReverseDirection Inf boundary + */ + uint16_t step_bound[2]; + uint16_t code_per_step; +}; + +struct reg_settings_t { + uint16_t reg_addr; + enum msm_actuator_addr_type addr_type; + uint16_t reg_data; + enum msm_actuator_data_type data_type; + enum msm_actuator_i2c_operation i2c_operation; + uint32_t delay; +}; + +struct msm_camera_i2c_reg_setting_array { + struct msm_camera_i2c_reg_array reg_setting_a[MAX_I2C_REG_SET]; + uint16_t size; + enum msm_camera_i2c_reg_addr_type addr_type; + enum msm_camera_i2c_data_type data_type; + uint16_t delay; +}; +#endif /* __LINUX_MSM_CAM_SENSOR_H */ diff --git a/kernel_headers/media/msm_fd.h b/kernel_headers/media/msm_fd.h new file mode 100644 index 0000000..ae74f21 --- /dev/null +++ b/kernel_headers/media/msm_fd.h @@ -0,0 +1,104 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef __UAPI_MSM_FD__ +#define __UAPI_MSM_FD__ + +#include + +/* + * struct msm_fd_event - Structure contain event info. + * @buf_index: Buffer index. + * @frame_id: Frame id. + * @face_cnt: Detected faces. + */ +struct msm_fd_event { + __u32 buf_index; + __u32 frame_id; + __u32 face_cnt; +}; + +/* + * enum msm_fd_pose - Face pose. + */ +enum msm_fd_pose { + MSM_FD_POSE_FRONT, + MSM_FD_POSE_RIGHT_DIAGONAL, + MSM_FD_POSE_RIGHT, + MSM_FD_POSE_LEFT_DIAGONAL, + MSM_FD_POSE_LEFT, +}; + +/* + * struct msm_fd_face_data - Structure contain detected face data. + * @pose: refer to enum msm_fd_pose. + * @angle: Face angle + * @confidence: Face confidence level. + * @reserved: Reserved data for future use. + * @face: Face rectangle. + */ +struct msm_fd_face_data { + __u32 pose; + __u32 angle; + __u32 confidence; + __u32 reserved; + struct v4l2_rect face; +}; + +/* + * struct msm_fd_result - Structure contain detected faces result. + * @frame_id: Frame id of requested result. + * @face_cnt: Number of result faces, driver can modify this value (to smaller) + * @face_data: Pointer to array of face data structures. + * Array size should not be smaller then face_cnt. + */ +struct msm_fd_result { + __u32 frame_id; + __u32 face_cnt; + struct msm_fd_face_data *face_data; +}; + +#ifdef CONFIG_COMPAT +/* + * struct msm_fd_result32 - Compat structure contain detected faces result. + * @frame_id: Frame id of requested result. + * @face_cnt: Number of result faces, driver can modify this value (to smaller) + * @face_data: Pointer to array of face data structures. + * Array size should not be smaller then face_cnt. + */ +struct msm_fd_result32 { + __u32 frame_id; + __u32 face_cnt; + compat_uptr_t face_data; +}; + +/* MSM FD compat private ioctl ID */ +#define VIDIOC_MSM_FD_GET_RESULT32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_fd_result32) +#endif + +/* MSM FD private ioctl ID */ +#define VIDIOC_MSM_FD_GET_RESULT \ + _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_fd_result) + +/* MSM FD event ID */ +#define MSM_EVENT_FD (V4L2_EVENT_PRIVATE_START) + +/* MSM FD control ID's */ +#define V4L2_CID_FD_SPEED (V4L2_CID_PRIVATE_BASE) +#define V4L2_CID_FD_FACE_ANGLE (V4L2_CID_PRIVATE_BASE + 1) +#define V4L2_CID_FD_MIN_FACE_SIZE (V4L2_CID_PRIVATE_BASE + 2) +#define V4L2_CID_FD_FACE_DIRECTION (V4L2_CID_PRIVATE_BASE + 3) +#define V4L2_CID_FD_DETECTION_THRESHOLD (V4L2_CID_PRIVATE_BASE + 4) +#define V4L2_CID_FD_WORK_MEMORY_SIZE (V4L2_CID_PRIVATE_BASE + 5) +#define V4L2_CID_FD_WORK_MEMORY_FD (V4L2_CID_PRIVATE_BASE + 6) + +#endif /* __UAPI_MSM_FD__ */ diff --git a/kernel_headers/media/msm_gemini.h b/kernel_headers/media/msm_gemini.h new file mode 100644 index 0000000..0b41b38 --- /dev/null +++ b/kernel_headers/media/msm_gemini.h @@ -0,0 +1,123 @@ +#ifndef __UAPI_MSM_GEMINI_H +#define __UAPI_MSM_GEMINI_H + +#include +#include + +#define MSM_GMN_IOCTL_MAGIC 'g' + +#define MSM_GMN_IOCTL_GET_HW_VERSION \ + _IOW(MSM_GMN_IOCTL_MAGIC, 1, struct msm_gemini_hw_cmd *) + +#define MSM_GMN_IOCTL_RESET \ + _IOW(MSM_GMN_IOCTL_MAGIC, 2, struct msm_gemini_ctrl_cmd *) + +#define MSM_GMN_IOCTL_STOP \ + _IOW(MSM_GMN_IOCTL_MAGIC, 3, struct msm_gemini_hw_cmds *) + +#define MSM_GMN_IOCTL_START \ + _IOW(MSM_GMN_IOCTL_MAGIC, 4, struct msm_gemini_hw_cmds *) + +#define MSM_GMN_IOCTL_INPUT_BUF_ENQUEUE \ + _IOW(MSM_GMN_IOCTL_MAGIC, 5, struct msm_gemini_buf *) + +#define MSM_GMN_IOCTL_INPUT_GET \ + _IOW(MSM_GMN_IOCTL_MAGIC, 6, struct msm_gemini_buf *) + +#define MSM_GMN_IOCTL_INPUT_GET_UNBLOCK \ + _IOW(MSM_GMN_IOCTL_MAGIC, 7, int) + +#define MSM_GMN_IOCTL_OUTPUT_BUF_ENQUEUE \ + _IOW(MSM_GMN_IOCTL_MAGIC, 8, struct msm_gemini_buf *) + +#define MSM_GMN_IOCTL_OUTPUT_GET \ + _IOW(MSM_GMN_IOCTL_MAGIC, 9, struct msm_gemini_buf *) + +#define MSM_GMN_IOCTL_OUTPUT_GET_UNBLOCK \ + _IOW(MSM_GMN_IOCTL_MAGIC, 10, int) + +#define MSM_GMN_IOCTL_EVT_GET \ + _IOW(MSM_GMN_IOCTL_MAGIC, 11, struct msm_gemini_ctrl_cmd *) + +#define MSM_GMN_IOCTL_EVT_GET_UNBLOCK \ + _IOW(MSM_GMN_IOCTL_MAGIC, 12, int) + +#define MSM_GMN_IOCTL_HW_CMD \ + _IOW(MSM_GMN_IOCTL_MAGIC, 13, struct msm_gemini_hw_cmd *) + +#define MSM_GMN_IOCTL_HW_CMDS \ + _IOW(MSM_GMN_IOCTL_MAGIC, 14, struct msm_gemini_hw_cmds *) + +#define MSM_GMN_IOCTL_TEST_DUMP_REGION \ + _IOW(MSM_GMN_IOCTL_MAGIC, 15, unsigned long) + +#define MSM_GMN_IOCTL_SET_MODE \ + _IOW(MSM_GMN_IOCTL_MAGIC, 16, enum msm_gmn_out_mode) + +#define MSM_GEMINI_MODE_REALTIME_ENCODE 0 +#define MSM_GEMINI_MODE_OFFLINE_ENCODE 1 +#define MSM_GEMINI_MODE_REALTIME_ROTATION 2 +#define MSM_GEMINI_MODE_OFFLINE_ROTATION 3 + +enum msm_gmn_out_mode { + MSM_GMN_OUTMODE_FRAGMENTED, + MSM_GMN_OUTMODE_SINGLE +}; + +struct msm_gemini_ctrl_cmd { + uint32_t type; + uint32_t len; + void *value; +}; + +#define MSM_GEMINI_EVT_RESET 0 +#define MSM_GEMINI_EVT_FRAMEDONE 1 +#define MSM_GEMINI_EVT_ERR 2 + +struct msm_gemini_buf { + uint32_t type; + int fd; + + void *vaddr; + + uint32_t y_off; + uint32_t y_len; + uint32_t framedone_len; + + uint32_t cbcr_off; + uint32_t cbcr_len; + + uint32_t num_of_mcu_rows; + uint32_t offset; +}; + +#define MSM_GEMINI_HW_CMD_TYPE_READ 0 +#define MSM_GEMINI_HW_CMD_TYPE_WRITE 1 +#define MSM_GEMINI_HW_CMD_TYPE_WRITE_OR 2 +#define MSM_GEMINI_HW_CMD_TYPE_UWAIT 3 +#define MSM_GEMINI_HW_CMD_TYPE_MWAIT 4 +#define MSM_GEMINI_HW_CMD_TYPE_MDELAY 5 +#define MSM_GEMINI_HW_CMD_TYPE_UDELAY 6 +struct msm_gemini_hw_cmd { + + uint32_t type:4; + + /* n microseconds of timeout for WAIT */ + /* n microseconds of time for DELAY */ + /* repeat n times for READ/WRITE */ + /* max is 0xFFF, 4095 */ + uint32_t n:12; + uint32_t offset:16; + uint32_t mask; + union { + uint32_t data; /* for single READ/WRITE/WAIT, n = 1 */ + uint32_t *pdata; /* for multiple READ/WRITE/WAIT, n > 1 */ + }; +}; + +struct msm_gemini_hw_cmds { + uint32_t m; /* number of elements in the hw_cmd array */ + struct msm_gemini_hw_cmd hw_cmd[1]; +}; + +#endif /* __UAPI_MSM_GEMINI_H */ diff --git a/kernel_headers/media/msm_gestures.h b/kernel_headers/media/msm_gestures.h new file mode 100644 index 0000000..2d6d8f2 --- /dev/null +++ b/kernel_headers/media/msm_gestures.h @@ -0,0 +1,54 @@ +#ifndef __UAPI_MSM_GESTURES_H +#define __UAPI_MSM_GESTURES_H + +#include +#include +#include + +#define MSM_GES_IOCTL_CTRL_COMMAND \ + _IOW('V', BASE_VIDIOC_PRIVATE + 20, struct v4l2_control) + +#define VIDIOC_MSM_GESTURE_EVT \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 21, struct v4l2_event) + +#define MSM_GES_GET_EVT_PAYLOAD \ + _IOW('V', BASE_VIDIOC_PRIVATE + 22, struct msm_ges_evt) + +#define VIDIOC_MSM_GESTURE_CAM_EVT \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 23, int) + +#define MSM_GES_RESP_V4L2 MSM_CAM_RESP_MAX +#define MSM_GES_RESP_MAX (MSM_GES_RESP_V4L2 + 1) + +#define MSM_SVR_RESP_MAX MSM_GES_RESP_MAX + + +#define MSM_V4L2_GES_BASE 100 +#define MSM_V4L2_GES_OPEN (MSM_V4L2_GES_BASE + 0) +#define MSM_V4L2_GES_CLOSE (MSM_V4L2_GES_BASE + 1) +#define MSM_V4L2_GES_CAM_OPEN (MSM_V4L2_GES_BASE + 2) +#define MSM_V4L2_GES_CAM_CLOSE (MSM_V4L2_GES_BASE + 3) + +#define MSM_GES_APP_EVT_MIN (V4L2_EVENT_PRIVATE_START + 0x14) +#define MSM_GES_APP_NOTIFY_EVENT (MSM_GES_APP_EVT_MIN + 0) +#define MSM_GES_APP_NOTIFY_ERROR_EVENT (MSM_GES_APP_EVT_MIN + 1) +#define MSM_GES_APP_EVT_MAX (MSM_GES_APP_EVT_MIN + 2) + +#define MSM_GESTURE_CID_CTRL_CMD V4L2_CID_BRIGHTNESS + +#define MAX_GES_EVENTS 25 + +struct msm_ges_ctrl_cmd { + int type; + void *value; + int len; + int fd; + uint32_t cookie; +}; + +struct msm_ges_evt { + void *evt_data; + int evt_len; +}; + +#endif /*__UAPI_MSM_GESTURES_H*/ diff --git a/kernel_headers/media/msm_isp.h b/kernel_headers/media/msm_isp.h new file mode 100644 index 0000000..90d87c2 --- /dev/null +++ b/kernel_headers/media/msm_isp.h @@ -0,0 +1,344 @@ +#ifndef __UAPI_MSM_ISP_H__ +#define __UAPI_MSM_ISP_H__ + +#define BIT(nr) (1UL << (nr)) + +/* ISP message IDs */ +#define MSG_ID_RESET_ACK 0 +#define MSG_ID_START_ACK 1 +#define MSG_ID_STOP_ACK 2 +#define MSG_ID_UPDATE_ACK 3 +#define MSG_ID_OUTPUT_P 4 +#define MSG_ID_OUTPUT_T 5 +#define MSG_ID_OUTPUT_S 6 +#define MSG_ID_OUTPUT_V 7 +#define MSG_ID_SNAPSHOT_DONE 8 +#define MSG_ID_STATS_AEC 9 +#define MSG_ID_STATS_AF 10 +#define MSG_ID_STATS_AWB 11 +#define MSG_ID_STATS_RS 12 +#define MSG_ID_STATS_CS 13 +#define MSG_ID_STATS_IHIST 14 +#define MSG_ID_STATS_SKIN 15 +#define MSG_ID_EPOCH1 16 +#define MSG_ID_EPOCH2 17 +#define MSG_ID_SYNC_TIMER0_DONE 18 +#define MSG_ID_SYNC_TIMER1_DONE 19 +#define MSG_ID_SYNC_TIMER2_DONE 20 +#define MSG_ID_ASYNC_TIMER0_DONE 21 +#define MSG_ID_ASYNC_TIMER1_DONE 22 +#define MSG_ID_ASYNC_TIMER2_DONE 23 +#define MSG_ID_ASYNC_TIMER3_DONE 24 +#define MSG_ID_AE_OVERFLOW 25 +#define MSG_ID_AF_OVERFLOW 26 +#define MSG_ID_AWB_OVERFLOW 27 +#define MSG_ID_RS_OVERFLOW 28 +#define MSG_ID_CS_OVERFLOW 29 +#define MSG_ID_IHIST_OVERFLOW 30 +#define MSG_ID_SKIN_OVERFLOW 31 +#define MSG_ID_AXI_ERROR 32 +#define MSG_ID_CAMIF_OVERFLOW 33 +#define MSG_ID_VIOLATION 34 +#define MSG_ID_CAMIF_ERROR 35 +#define MSG_ID_BUS_OVERFLOW 36 +#define MSG_ID_SOF_ACK 37 +#define MSG_ID_STOP_REC_ACK 38 +#define MSG_ID_STATS_AWB_AEC 39 +#define MSG_ID_OUTPUT_PRIMARY 40 +#define MSG_ID_OUTPUT_SECONDARY 41 +#define MSG_ID_STATS_COMPOSITE 42 +#define MSG_ID_OUTPUT_TERTIARY1 43 +#define MSG_ID_STOP_LS_ACK 44 +#define MSG_ID_OUTPUT_TERTIARY2 45 +#define MSG_ID_STATS_BG 46 +#define MSG_ID_STATS_BF 47 +#define MSG_ID_STATS_BHIST 48 +#define MSG_ID_RDI0_UPDATE_ACK 49 +#define MSG_ID_RDI1_UPDATE_ACK 50 +#define MSG_ID_RDI2_UPDATE_ACK 51 +#define MSG_ID_PIX0_UPDATE_ACK 52 +#define MSG_ID_PREV_STOP_ACK 53 +#define MSG_ID_STATS_BE 54 + + +/* ISP command IDs */ +#define VFE_CMD_DUMMY_0 0 +#define VFE_CMD_SET_CLK 1 +#define VFE_CMD_RESET 2 +#define VFE_CMD_START 3 +#define VFE_CMD_TEST_GEN_START 4 +#define VFE_CMD_OPERATION_CFG 5 +#define VFE_CMD_AXI_OUT_CFG 6 +#define VFE_CMD_CAMIF_CFG 7 +#define VFE_CMD_AXI_INPUT_CFG 8 +#define VFE_CMD_BLACK_LEVEL_CFG 9 +#define VFE_CMD_MESH_ROLL_OFF_CFG 10 +#define VFE_CMD_DEMUX_CFG 11 +#define VFE_CMD_FOV_CFG 12 +#define VFE_CMD_MAIN_SCALER_CFG 13 +#define VFE_CMD_WB_CFG 14 +#define VFE_CMD_COLOR_COR_CFG 15 +#define VFE_CMD_RGB_G_CFG 16 +#define VFE_CMD_LA_CFG 17 +#define VFE_CMD_CHROMA_EN_CFG 18 +#define VFE_CMD_CHROMA_SUP_CFG 19 +#define VFE_CMD_MCE_CFG 20 +#define VFE_CMD_SK_ENHAN_CFG 21 +#define VFE_CMD_ASF_CFG 22 +#define VFE_CMD_S2Y_CFG 23 +#define VFE_CMD_S2CbCr_CFG 24 +#define VFE_CMD_CHROMA_SUBS_CFG 25 +#define VFE_CMD_OUT_CLAMP_CFG 26 +#define VFE_CMD_FRAME_SKIP_CFG 27 +#define VFE_CMD_DUMMY_1 28 +#define VFE_CMD_DUMMY_2 29 +#define VFE_CMD_DUMMY_3 30 +#define VFE_CMD_UPDATE 31 +#define VFE_CMD_BL_LVL_UPDATE 32 +#define VFE_CMD_DEMUX_UPDATE 33 +#define VFE_CMD_FOV_UPDATE 34 +#define VFE_CMD_MAIN_SCALER_UPDATE 35 +#define VFE_CMD_WB_UPDATE 36 +#define VFE_CMD_COLOR_COR_UPDATE 37 +#define VFE_CMD_RGB_G_UPDATE 38 +#define VFE_CMD_LA_UPDATE 39 +#define VFE_CMD_CHROMA_EN_UPDATE 40 +#define VFE_CMD_CHROMA_SUP_UPDATE 41 +#define VFE_CMD_MCE_UPDATE 42 +#define VFE_CMD_SK_ENHAN_UPDATE 43 +#define VFE_CMD_S2CbCr_UPDATE 44 +#define VFE_CMD_S2Y_UPDATE 45 +#define VFE_CMD_ASF_UPDATE 46 +#define VFE_CMD_FRAME_SKIP_UPDATE 47 +#define VFE_CMD_CAMIF_FRAME_UPDATE 48 +#define VFE_CMD_STATS_AF_UPDATE 49 +#define VFE_CMD_STATS_AE_UPDATE 50 +#define VFE_CMD_STATS_AWB_UPDATE 51 +#define VFE_CMD_STATS_RS_UPDATE 52 +#define VFE_CMD_STATS_CS_UPDATE 53 +#define VFE_CMD_STATS_SKIN_UPDATE 54 +#define VFE_CMD_STATS_IHIST_UPDATE 55 +#define VFE_CMD_DUMMY_4 56 +#define VFE_CMD_EPOCH1_ACK 57 +#define VFE_CMD_EPOCH2_ACK 58 +#define VFE_CMD_START_RECORDING 59 +#define VFE_CMD_STOP_RECORDING 60 +#define VFE_CMD_DUMMY_5 61 +#define VFE_CMD_DUMMY_6 62 +#define VFE_CMD_CAPTURE 63 +#define VFE_CMD_DUMMY_7 64 +#define VFE_CMD_STOP 65 +#define VFE_CMD_GET_HW_VERSION 66 +#define VFE_CMD_GET_FRAME_SKIP_COUNTS 67 +#define VFE_CMD_OUTPUT1_BUFFER_ENQ 68 +#define VFE_CMD_OUTPUT2_BUFFER_ENQ 69 +#define VFE_CMD_OUTPUT3_BUFFER_ENQ 70 +#define VFE_CMD_JPEG_OUT_BUF_ENQ 71 +#define VFE_CMD_RAW_OUT_BUF_ENQ 72 +#define VFE_CMD_RAW_IN_BUF_ENQ 73 +#define VFE_CMD_STATS_AF_ENQ 74 +#define VFE_CMD_STATS_AE_ENQ 75 +#define VFE_CMD_STATS_AWB_ENQ 76 +#define VFE_CMD_STATS_RS_ENQ 77 +#define VFE_CMD_STATS_CS_ENQ 78 +#define VFE_CMD_STATS_SKIN_ENQ 79 +#define VFE_CMD_STATS_IHIST_ENQ 80 +#define VFE_CMD_DUMMY_8 81 +#define VFE_CMD_JPEG_ENC_CFG 82 +#define VFE_CMD_DUMMY_9 83 +#define VFE_CMD_STATS_AF_START 84 +#define VFE_CMD_STATS_AF_STOP 85 +#define VFE_CMD_STATS_AE_START 86 +#define VFE_CMD_STATS_AE_STOP 87 +#define VFE_CMD_STATS_AWB_START 88 +#define VFE_CMD_STATS_AWB_STOP 89 +#define VFE_CMD_STATS_RS_START 90 +#define VFE_CMD_STATS_RS_STOP 91 +#define VFE_CMD_STATS_CS_START 92 +#define VFE_CMD_STATS_CS_STOP 93 +#define VFE_CMD_STATS_SKIN_START 94 +#define VFE_CMD_STATS_SKIN_STOP 95 +#define VFE_CMD_STATS_IHIST_START 96 +#define VFE_CMD_STATS_IHIST_STOP 97 +#define VFE_CMD_DUMMY_10 98 +#define VFE_CMD_SYNC_TIMER_SETTING 99 +#define VFE_CMD_ASYNC_TIMER_SETTING 100 +#define VFE_CMD_LIVESHOT 101 +#define VFE_CMD_LA_SETUP 102 +#define VFE_CMD_LINEARIZATION_CFG 103 +#define VFE_CMD_DEMOSAICV3 104 +#define VFE_CMD_DEMOSAICV3_ABCC_CFG 105 +#define VFE_CMD_DEMOSAICV3_DBCC_CFG 106 +#define VFE_CMD_DEMOSAICV3_DBPC_CFG 107 +#define VFE_CMD_DEMOSAICV3_ABF_CFG 108 +#define VFE_CMD_DEMOSAICV3_ABCC_UPDATE 109 +#define VFE_CMD_DEMOSAICV3_DBCC_UPDATE 110 +#define VFE_CMD_DEMOSAICV3_DBPC_UPDATE 111 +#define VFE_CMD_XBAR_CFG 112 +#define VFE_CMD_MODULE_CFG 113 +#define VFE_CMD_ZSL 114 +#define VFE_CMD_LINEARIZATION_UPDATE 115 +#define VFE_CMD_DEMOSAICV3_ABF_UPDATE 116 +#define VFE_CMD_CLF_CFG 117 +#define VFE_CMD_CLF_LUMA_UPDATE 118 +#define VFE_CMD_CLF_CHROMA_UPDATE 119 +#define VFE_CMD_PCA_ROLL_OFF_CFG 120 +#define VFE_CMD_PCA_ROLL_OFF_UPDATE 121 +#define VFE_CMD_GET_REG_DUMP 122 +#define VFE_CMD_GET_LINEARIZATON_TABLE 123 +#define VFE_CMD_GET_MESH_ROLLOFF_TABLE 124 +#define VFE_CMD_GET_PCA_ROLLOFF_TABLE 125 +#define VFE_CMD_GET_RGB_G_TABLE 126 +#define VFE_CMD_GET_LA_TABLE 127 +#define VFE_CMD_DEMOSAICV3_UPDATE 128 +#define VFE_CMD_ACTIVE_REGION_CFG 129 +#define VFE_CMD_COLOR_PROCESSING_CONFIG 130 +#define VFE_CMD_STATS_WB_AEC_CONFIG 131 +#define VFE_CMD_STATS_WB_AEC_UPDATE 132 +#define VFE_CMD_Y_GAMMA_CONFIG 133 +#define VFE_CMD_SCALE_OUTPUT1_CONFIG 134 +#define VFE_CMD_SCALE_OUTPUT2_CONFIG 135 +#define VFE_CMD_CAPTURE_RAW 136 +#define VFE_CMD_STOP_LIVESHOT 137 +#define VFE_CMD_RECONFIG_VFE 138 +#define VFE_CMD_STATS_REQBUF 139 +#define VFE_CMD_STATS_ENQUEUEBUF 140 +#define VFE_CMD_STATS_FLUSH_BUFQ 141 +#define VFE_CMD_STATS_UNREGBUF 142 +#define VFE_CMD_STATS_BG_START 143 +#define VFE_CMD_STATS_BG_STOP 144 +#define VFE_CMD_STATS_BF_START 145 +#define VFE_CMD_STATS_BF_STOP 146 +#define VFE_CMD_STATS_BHIST_START 147 +#define VFE_CMD_STATS_BHIST_STOP 148 +#define VFE_CMD_RESET_2 149 +#define VFE_CMD_FOV_ENC_CFG 150 +#define VFE_CMD_FOV_VIEW_CFG 151 +#define VFE_CMD_FOV_ENC_UPDATE 152 +#define VFE_CMD_FOV_VIEW_UPDATE 153 +#define VFE_CMD_SCALER_ENC_CFG 154 +#define VFE_CMD_SCALER_VIEW_CFG 155 +#define VFE_CMD_SCALER_ENC_UPDATE 156 +#define VFE_CMD_SCALER_VIEW_UPDATE 157 +#define VFE_CMD_COLORXFORM_ENC_CFG 158 +#define VFE_CMD_COLORXFORM_VIEW_CFG 159 +#define VFE_CMD_COLORXFORM_ENC_UPDATE 160 +#define VFE_CMD_COLORXFORM_VIEW_UPDATE 161 +#define VFE_CMD_TEST_GEN_CFG 162 +#define VFE_CMD_STATS_BE_START 163 +#define VFE_CMD_STATS_BE_STOP 164 +struct msm_isp_cmd { + int32_t id; + uint16_t length; + void *value; +}; + +#define VPE_CMD_DUMMY_0 0 +#define VPE_CMD_INIT 1 +#define VPE_CMD_DEINIT 2 +#define VPE_CMD_ENABLE 3 +#define VPE_CMD_DISABLE 4 +#define VPE_CMD_RESET 5 +#define VPE_CMD_FLUSH 6 +#define VPE_CMD_OPERATION_MODE_CFG 7 +#define VPE_CMD_INPUT_PLANE_CFG 8 +#define VPE_CMD_OUTPUT_PLANE_CFG 9 +#define VPE_CMD_INPUT_PLANE_UPDATE 10 +#define VPE_CMD_SCALE_CFG_TYPE 11 +#define VPE_CMD_ZOOM 13 +#define VPE_CMD_MAX 14 + +#define MSM_PP_CMD_TYPE_NOT_USED 0 /* not used */ +#define MSM_PP_CMD_TYPE_VPE 1 /* VPE cmd */ +#define MSM_PP_CMD_TYPE_MCTL 2 /* MCTL cmd */ + +#define MCTL_CMD_DUMMY_0 0 /* not used */ +#define MCTL_CMD_GET_FRAME_BUFFER 1 /* reserve a free frame buffer */ +#define MCTL_CMD_PUT_FRAME_BUFFER 2 /* return the free frame buffer */ +#define MCTL_CMD_DIVERT_FRAME_PP_PATH 3 /* divert frame for pp */ + +/* event typese sending to MCTL PP module */ +#define MCTL_PP_EVENT_NOTUSED 0 +#define MCTL_PP_EVENT_CMD_ACK 1 + +#define VPE_OPERATION_MODE_CFG_LEN 4 +#define VPE_INPUT_PLANE_CFG_LEN 24 +#define VPE_OUTPUT_PLANE_CFG_LEN 20 +#define VPE_INPUT_PLANE_UPDATE_LEN 12 +#define VPE_SCALER_CONFIG_LEN 260 +#define VPE_DIS_OFFSET_CFG_LEN 12 + + +#define CAPTURE_WIDTH 1280 +#define IMEM_Y_SIZE (CAPTURE_WIDTH*16) +#define IMEM_CBCR_SIZE (CAPTURE_WIDTH*8) + +#define IMEM_Y_PING_OFFSET 0x2E000000 +#define IMEM_CBCR_PING_OFFSET (IMEM_Y_PING_OFFSET + IMEM_Y_SIZE) + +#define IMEM_Y_PONG_OFFSET (IMEM_CBCR_PING_OFFSET + IMEM_CBCR_SIZE) +#define IMEM_CBCR_PONG_OFFSET (IMEM_Y_PONG_OFFSET + IMEM_Y_SIZE) + + +struct msm_vpe_op_mode_cfg { + uint8_t op_mode_cfg[VPE_OPERATION_MODE_CFG_LEN]; +}; + +struct msm_vpe_input_plane_cfg { + uint8_t input_plane_cfg[VPE_INPUT_PLANE_CFG_LEN]; +}; + +struct msm_vpe_output_plane_cfg { + uint8_t output_plane_cfg[VPE_OUTPUT_PLANE_CFG_LEN]; +}; + +struct msm_vpe_input_plane_update_cfg { + uint8_t input_plane_update_cfg[VPE_INPUT_PLANE_UPDATE_LEN]; +}; + +struct msm_vpe_scaler_cfg { + uint8_t scaler_cfg[VPE_SCALER_CONFIG_LEN]; +}; + +struct msm_vpe_flush_frame_buffer { + uint32_t src_buf_handle; + uint32_t dest_buf_handle; + int path; +}; + +struct msm_mctl_pp_frame_buffer { + uint32_t buf_handle; + int path; +}; +struct msm_mctl_pp_divert_pp { + int path; + int enable; +}; +struct msm_vpe_clock_rate { + uint32_t rate; +}; + +#define MSM_MCTL_PP_VPE_FRAME_ACK (1<<0) +#define MSM_MCTL_PP_VPE_FRAME_TO_APP (1<<1) + +#define VFE_OUTPUTS_MAIN_AND_PREVIEW BIT(0) +#define VFE_OUTPUTS_MAIN_AND_VIDEO BIT(1) +#define VFE_OUTPUTS_MAIN_AND_THUMB BIT(2) +#define VFE_OUTPUTS_THUMB_AND_MAIN BIT(3) +#define VFE_OUTPUTS_PREVIEW_AND_VIDEO BIT(4) +#define VFE_OUTPUTS_VIDEO_AND_PREVIEW BIT(5) +#define VFE_OUTPUTS_PREVIEW BIT(6) +#define VFE_OUTPUTS_VIDEO BIT(7) +#define VFE_OUTPUTS_RAW BIT(8) +#define VFE_OUTPUTS_JPEG_AND_THUMB BIT(9) +#define VFE_OUTPUTS_THUMB_AND_JPEG BIT(10) +#define VFE_OUTPUTS_RDI0 BIT(11) +#define VFE_OUTPUTS_RDI1 BIT(12) + +struct msm_frame_info { + uint32_t inst_handle; + uint32_t path; +}; + +#endif /*__UAPI_MSM_ISP_H__*/ + diff --git a/kernel_headers/media/msm_jpeg.h b/kernel_headers/media/msm_jpeg.h new file mode 100644 index 0000000..6c9a487 --- /dev/null +++ b/kernel_headers/media/msm_jpeg.h @@ -0,0 +1,124 @@ +#ifndef __LINUX_MSM_JPEG_H +#define __LINUX_MSM_JPEG_H + +#include +#include + +#define OUTPUT_H2V1 0 +#define OUTPUT_H2V2 1 +#define OUTPUT_BYTE 6 + +#define MSM_JPEG_IOCTL_MAGIC 'g' + +#define MSM_JPEG_IOCTL_GET_HW_VERSION \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 1, struct msm_jpeg_hw_cmd) + +#define MSM_JPEG_IOCTL_RESET \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 2, struct msm_jpeg_ctrl_cmd) + +#define MSM_JPEG_IOCTL_STOP \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 3, struct msm_jpeg_hw_cmds) + +#define MSM_JPEG_IOCTL_START \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 4, struct msm_jpeg_hw_cmds) + +#define MSM_JPEG_IOCTL_INPUT_BUF_ENQUEUE \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 5, struct msm_jpeg_buf) + +#define MSM_JPEG_IOCTL_INPUT_GET \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 6, struct msm_jpeg_buf) + +#define MSM_JPEG_IOCTL_INPUT_GET_UNBLOCK \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 7, int) + +#define MSM_JPEG_IOCTL_OUTPUT_BUF_ENQUEUE \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 8, struct msm_jpeg_buf) + +#define MSM_JPEG_IOCTL_OUTPUT_GET \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 9, struct msm_jpeg_buf) + +#define MSM_JPEG_IOCTL_OUTPUT_GET_UNBLOCK \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 10, int) + +#define MSM_JPEG_IOCTL_EVT_GET \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 11, struct msm_jpeg_ctrl_cmd) + +#define MSM_JPEG_IOCTL_EVT_GET_UNBLOCK \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 12, int) + +#define MSM_JPEG_IOCTL_HW_CMD \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 13, struct msm_jpeg_hw_cmd) + +#define MSM_JPEG_IOCTL_HW_CMDS \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 14, struct msm_jpeg_hw_cmds) + +#define MSM_JPEG_IOCTL_TEST_DUMP_REGION \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 15, unsigned long) + +#define MSM_JPEG_IOCTL_SET_CLK_RATE \ + _IOW(MSM_JPEG_IOCTL_MAGIC, 16, unsigned int) + +#define MSM_JPEG_MODE_REALTIME_ENCODE 0 +#define MSM_JPEG_MODE_OFFLINE_ENCODE 1 +#define MSM_JPEG_MODE_REALTIME_ROTATION 2 +#define MSM_JPEG_MODE_OFFLINE_ROTATION 3 + +struct msm_jpeg_ctrl_cmd { + uint32_t type; + uint32_t len; + void *value; +}; + +#define MSM_JPEG_EVT_RESET 0 +#define MSM_JPEG_EVT_SESSION_DONE 1 +#define MSM_JPEG_EVT_ERR 2 + +struct msm_jpeg_buf { + uint32_t type; + int fd; + + void *vaddr; + + uint32_t y_off; + uint32_t y_len; + uint32_t framedone_len; + + uint32_t cbcr_off; + uint32_t cbcr_len; + + uint32_t num_of_mcu_rows; + uint32_t offset; + uint32_t pln2_off; + uint32_t pln2_len; +}; + +#define MSM_JPEG_HW_CMD_TYPE_READ 0 +#define MSM_JPEG_HW_CMD_TYPE_WRITE 1 +#define MSM_JPEG_HW_CMD_TYPE_WRITE_OR 2 +#define MSM_JPEG_HW_CMD_TYPE_UWAIT 3 +#define MSM_JPEG_HW_CMD_TYPE_MWAIT 4 +#define MSM_JPEG_HW_CMD_TYPE_MDELAY 5 +#define MSM_JPEG_HW_CMD_TYPE_UDELAY 6 +struct msm_jpeg_hw_cmd { + + uint32_t type:4; + + /* n microseconds of timeout for WAIT */ + /* n microseconds of time for DELAY */ + /* repeat n times for READ/WRITE */ + /* max is 0xFFF, 4095 */ + uint32_t n:12; + uint32_t offset:16; + uint32_t mask; + union { + uint32_t data; /* for single READ/WRITE/WAIT, n = 1 */ + uint32_t *pdata; /* for multiple READ/WRITE/WAIT, n > 1 */ + }; +}; + +struct msm_jpeg_hw_cmds { + uint32_t m; /* number of elements in the hw_cmd array */ + struct msm_jpeg_hw_cmd hw_cmd[1]; +}; + +#endif /* __LINUX_MSM_JPEG_H */ diff --git a/kernel_headers/media/msm_media_info.h b/kernel_headers/media/msm_media_info.h new file mode 100644 index 0000000..e3b34c9 --- /dev/null +++ b/kernel_headers/media/msm_media_info.h @@ -0,0 +1,299 @@ +#ifndef __MEDIA_INFO_H__ +#define __MEDIA_INFO_H__ + +#ifndef MSM_MEDIA_ALIGN +#define MSM_MEDIA_ALIGN(__sz, __align) (((__sz) + (__align-1)) & (~(__align-1))) +#endif + +enum color_fmts { + /* Venus NV12: + * YUV 4:2:0 image with a plane of 8 bit Y samples followed + * by an interleaved U/V plane containing 8 bit 2x2 subsampled + * colour difference samples. + * + * <-------- Y/UV_Stride --------> + * <------- Width -------> + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X ^ ^ + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X Height | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | Y_Scanlines + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X V | + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X V + * U V U V U V U V U V U V X X X X ^ + * U V U V U V U V U V U V X X X X | + * U V U V U V U V U V U V X X X X | + * U V U V U V U V U V U V X X X X UV_Scanlines + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X V + * X X X X X X X X X X X X X X X X --> Buffer size alignment + * + * Y_Stride : Width aligned to 128 + * UV_Stride : Width aligned to 128 + * Y_Scanlines: Height aligned to 32 + * UV_Scanlines: Height/2 aligned to 16 + * Extradata: Arbitrary (software-imposed) padding + * Total size = align((Y_Stride * Y_Scanlines + * + UV_Stride * UV_Scanlines + Extradata), 4096) + */ + COLOR_FMT_NV12, + + /* Venus NV21: + * YUV 4:2:0 image with a plane of 8 bit Y samples followed + * by an interleaved V/U plane containing 8 bit 2x2 subsampled + * colour difference samples. + * + * <-------- Y/UV_Stride --------> + * <------- Width -------> + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X ^ ^ + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X Height | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | Y_Scanlines + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X V | + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X V + * V U V U V U V U V U V U X X X X ^ + * V U V U V U V U V U V U X X X X | + * V U V U V U V U V U V U X X X X | + * V U V U V U V U V U V U X X X X UV_Scanlines + * X X X X X X X X X X X X X X X X | + * X X X X X X X X X X X X X X X X V + * X X X X X X X X X X X X X X X X --> Padding & Buffer size alignment + * + * Y_Stride : Width aligned to 128 + * UV_Stride : Width aligned to 128 + * Y_Scanlines: Height aligned to 32 + * UV_Scanlines: Height/2 aligned to 16 + * Extradata: Arbitrary (software-imposed) padding + * Total size = align((Y_Stride * Y_Scanlines + * + UV_Stride * UV_Scanlines + Extradata), 4096) + */ + COLOR_FMT_NV21, + /* Venus NV12_MVTB: + * Two YUV 4:2:0 images/views one after the other + * in a top-bottom layout, same as NV12 + * with a plane of 8 bit Y samples followed + * by an interleaved U/V plane containing 8 bit 2x2 subsampled + * colour difference samples. + * + * + * <-------- Y/UV_Stride --------> + * <------- Width -------> + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X ^ ^ ^ + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X Height | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | Y_Scanlines | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X V | | + * X X X X X X X X X X X X X X X X | View_1 + * X X X X X X X X X X X X X X X X | | + * X X X X X X X X X X X X X X X X | | + * X X X X X X X X X X X X X X X X V | + * U V U V U V U V U V U V X X X X ^ | + * U V U V U V U V U V U V X X X X | | + * U V U V U V U V U V U V X X X X | | + * U V U V U V U V U V U V X X X X UV_Scanlines | + * X X X X X X X X X X X X X X X X | | + * X X X X X X X X X X X X X X X X V V + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X ^ ^ ^ + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X Height | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | Y_Scanlines | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X | | | + * Y Y Y Y Y Y Y Y Y Y Y Y X X X X V | | + * X X X X X X X X X X X X X X X X | View_2 + * X X X X X X X X X X X X X X X X | | + * X X X X X X X X X X X X X X X X | | + * X X X X X X X X X X X X X X X X V | + * U V U V U V U V U V U V X X X X ^ | + * U V U V U V U V U V U V X X X X | | + * U V U V U V U V U V U V X X X X | | + * U V U V U V U V U V U V X X X X UV_Scanlines | + * X X X X X X X X X X X X X X X X | | + * X X X X X X X X X X X X X X X X V V + * X X X X X X X X X X X X X X X X --> Buffer size alignment + * + * Y_Stride : Width aligned to 128 + * UV_Stride : Width aligned to 128 + * Y_Scanlines: Height aligned to 32 + * UV_Scanlines: Height/2 aligned to 16 + * View_1 begin at: 0 (zero) + * View_2 begin at: Y_Stride * Y_Scanlines + UV_Stride * UV_Scanlines + * Extradata: Arbitrary (software-imposed) padding + * Total size = align((2*(Y_Stride * Y_Scanlines) + * + 2*(UV_Stride * UV_Scanlines) + Extradata), 4096) + */ + COLOR_FMT_NV12_MVTB, +}; + +static __inline__ unsigned int VENUS_EXTRADATA_SIZE(int width, int height) +{ + (void)height; + (void)width; + + /* + * In the future, calculate the size based on the w/h but just + * hardcode it for now since 8K satisfies all current usecases. + */ + return 8 * 1024; +} + +static __inline__ unsigned int VENUS_Y_STRIDE(int color_fmt, int width) +{ + unsigned int alignment, stride = 0; + if (!width) + goto invalid_input; + + switch (color_fmt) { + case COLOR_FMT_NV21: + case COLOR_FMT_NV12: + case COLOR_FMT_NV12_MVTB: + alignment = 128; + stride = MSM_MEDIA_ALIGN(width, alignment); + break; + default: + break; + } +invalid_input: + return stride; +} + +static __inline__ unsigned int VENUS_UV_STRIDE(int color_fmt, int width) +{ + unsigned int alignment, stride = 0; + if (!width) + goto invalid_input; + + switch (color_fmt) { + case COLOR_FMT_NV21: + case COLOR_FMT_NV12: + case COLOR_FMT_NV12_MVTB: + alignment = 128; + stride = MSM_MEDIA_ALIGN(width, alignment); + break; + default: + break; + } +invalid_input: + return stride; +} + +static __inline__ unsigned int VENUS_Y_SCANLINES(int color_fmt, int height) +{ + unsigned int alignment, sclines = 0; + if (!height) + goto invalid_input; + + switch (color_fmt) { + case COLOR_FMT_NV21: + case COLOR_FMT_NV12: + case COLOR_FMT_NV12_MVTB: + alignment = 32; + sclines = MSM_MEDIA_ALIGN(height, alignment); + break; + default: + break; + } +invalid_input: + return sclines; +} + +static __inline__ unsigned int VENUS_UV_SCANLINES(int color_fmt, int height) +{ + unsigned int alignment, sclines = 0; + if (!height) + goto invalid_input; + + switch (color_fmt) { + case COLOR_FMT_NV21: + case COLOR_FMT_NV12: + case COLOR_FMT_NV12_MVTB: + alignment = 16; + sclines = MSM_MEDIA_ALIGN(((height + 1) >> 1), alignment); + break; + default: + break; + } +invalid_input: + return sclines; +} + +static __inline__ unsigned int VENUS_BUFFER_SIZE( + int color_fmt, int width, int height) +{ + const unsigned int extra_size = VENUS_EXTRADATA_SIZE(width, height); + unsigned int uv_alignment = 0, size = 0; + unsigned int y_plane, uv_plane, y_stride, + uv_stride, y_sclines, uv_sclines; + if (!width || !height) + goto invalid_input; + + y_stride = VENUS_Y_STRIDE(color_fmt, width); + uv_stride = VENUS_UV_STRIDE(color_fmt, width); + y_sclines = VENUS_Y_SCANLINES(color_fmt, height); + uv_sclines = VENUS_UV_SCANLINES(color_fmt, height); + switch (color_fmt) { + case COLOR_FMT_NV21: + case COLOR_FMT_NV12: + uv_alignment = 4096; + y_plane = y_stride * y_sclines; + uv_plane = uv_stride * uv_sclines + uv_alignment; + size = y_plane + uv_plane + extra_size; + size = MSM_MEDIA_ALIGN(size, 4096); + break; + case COLOR_FMT_NV12_MVTB: + uv_alignment = 4096; + y_plane = y_stride * y_sclines; + uv_plane = uv_stride * uv_sclines + uv_alignment; + size = y_plane + uv_plane; + size = 2 * size + extra_size; + size = MSM_MEDIA_ALIGN(size, 4096); + break; + default: + break; + } +invalid_input: + return size; +} + +static __inline__ unsigned int VENUS_VIEW2_OFFSET( + int color_fmt, int width, int height) +{ + unsigned int offset = 0; + unsigned int y_plane, uv_plane, y_stride, + uv_stride, y_sclines, uv_sclines; + if (!width || !height) + goto invalid_input; + + y_stride = VENUS_Y_STRIDE(color_fmt, width); + uv_stride = VENUS_UV_STRIDE(color_fmt, width); + y_sclines = VENUS_Y_SCANLINES(color_fmt, height); + uv_sclines = VENUS_UV_SCANLINES(color_fmt, height); + switch (color_fmt) { + case COLOR_FMT_NV12_MVTB: + y_plane = y_stride * y_sclines; + uv_plane = uv_stride * uv_sclines; + offset = y_plane + uv_plane; + break; + default: + break; + } +invalid_input: + return offset; +} + +#endif diff --git a/kernel_headers/media/msm_mercury.h b/kernel_headers/media/msm_mercury.h new file mode 100644 index 0000000..607a8c8 --- /dev/null +++ b/kernel_headers/media/msm_mercury.h @@ -0,0 +1,119 @@ +#ifndef __UAPI_MSM_MERCURY_H +#define __UAPI_MSM_MERCURY_H + +#include +#include + +#define MSM_MERCURY_HW_VERSION_REG 0x0004/* this offset does not exist in HW*/ + +#define OUTPUT_H2V1 0 +#define OUTPUT_H2V2 1 +#define OUTPUT_BYTE 6 + +#define MSM_MERCURY_MODE_REALTIME_ENCODE 0 +#define MSM_MERCURY_MODE_OFFLINE_ENCODE 1 +#define MSM_MERCURY_MODE_REALTIME_ROTATION 2 +#define MSM_MERCURY_MODE_OFFLINE_ROTATION 3 + +#define MSM_MERCURY_EVT_RESET 1 +#define MSM_MERCURY_EVT_FRAMEDONE 2 +#define MSM_MERCURY_EVT_ERR 3 +#define MSM_MERCURY_EVT_UNBLOCK 4 + +#define MSM_MERCURY_HW_CMD_TYPE_READ 0 +#define MSM_MERCURY_HW_CMD_TYPE_WRITE 1 +#define MSM_MERCURY_HW_CMD_TYPE_WRITE_OR 2 +#define MSM_MERCURY_HW_CMD_TYPE_UWAIT 3 +#define MSM_MERCURY_HW_CMD_TYPE_MWAIT 4 +#define MSM_MERCURY_HW_CMD_TYPE_MDELAY 5 +#define MSM_MERCURY_HW_CMD_TYPE_UDELAY 6 + +#define MSM_MCR_IOCTL_MAGIC 'g' + +#define MSM_MCR_IOCTL_GET_HW_VERSION \ + _IOW(MSM_MCR_IOCTL_MAGIC, 1, struct msm_mercury_hw_cmd *) + +#define MSM_MCR_IOCTL_RESET \ + _IOW(MSM_MCR_IOCTL_MAGIC, 2, struct msm_mercury_ctrl_cmd *) + +#define MSM_MCR_IOCTL_STOP \ + _IOW(MSM_MCR_IOCTL_MAGIC, 3, struct msm_mercury_hw_cmds *) + +#define MSM_MCR_IOCTL_START \ + _IOW(MSM_MCR_IOCTL_MAGIC, 4, struct msm_mercury_hw_cmds *) + +#define MSM_MCR_IOCTL_INPUT_BUF_CFG \ + _IOW(MSM_MCR_IOCTL_MAGIC, 5, struct msm_mercury_buf *) + +#define MSM_MCR_IOCTL_INPUT_GET \ + _IOW(MSM_MCR_IOCTL_MAGIC, 6, struct msm_mercury_buf *) + +#define MSM_MCR_IOCTL_INPUT_GET_UNBLOCK \ + _IOW(MSM_MCR_IOCTL_MAGIC, 7, int) + +#define MSM_MCR_IOCTL_OUTPUT_BUF_CFG \ + _IOW(MSM_MCR_IOCTL_MAGIC, 8, struct msm_mercury_buf *) + +#define MSM_MCR_IOCTL_OUTPUT_GET \ + _IOW(MSM_MCR_IOCTL_MAGIC, 9, struct msm_mercury_buf *) + +#define MSM_MCR_IOCTL_OUTPUT_GET_UNBLOCK \ + _IOW(MSM_MCR_IOCTL_MAGIC, 10, int) + +#define MSM_MCR_IOCTL_EVT_GET \ + _IOW(MSM_MCR_IOCTL_MAGIC, 11, struct msm_mercury_ctrl_cmd *) + +#define MSM_MCR_IOCTL_EVT_GET_UNBLOCK \ + _IOW(MSM_MCR_IOCTL_MAGIC, 12, int) + +#define MSM_MCR_IOCTL_HW_CMD \ + _IOW(MSM_MCR_IOCTL_MAGIC, 13, struct msm_mercury_hw_cmd *) + +#define MSM_MCR_IOCTL_HW_CMDS \ + _IOW(MSM_MCR_IOCTL_MAGIC, 14, struct msm_mercury_hw_cmds *) + +#define MSM_MCR_IOCTL_TEST_DUMP_REGION \ + _IOW(MSM_MCR_IOCTL_MAGIC, 15, unsigned long) + +struct msm_mercury_ctrl_cmd { + uint32_t type; + uint32_t len; + void *value; +}; + +struct msm_mercury_buf { + uint32_t type; + int fd; + void *vaddr; + uint32_t y_off; + uint32_t y_len; + uint32_t framedone_len; + uint32_t cbcr_off; + uint32_t cbcr_len; + uint32_t num_of_mcu_rows; + uint32_t offset; +}; + +struct msm_mercury_hw_cmd { + + uint32_t type:4; + /* n microseconds of timeout for WAIT */ + /* n microseconds of time for DELAY */ + /* repeat n times for READ/WRITE */ + /* max is 0xFFF, 4095 */ + uint32_t n:12; + uint32_t offset:16; + uint32_t mask; + union { + /* for single READ/WRITE/WAIT, n = 1 */ + uint32_t data; + uint32_t *pdata;/* for multiple READ/WRITE/WAIT, n > 1 */ + }; +}; + +struct msm_mercury_hw_cmds { + uint32_t m; /* number of elements in the hw_cmd array */ + struct msm_mercury_hw_cmd hw_cmd[1]; +}; + +#endif /* __UAPI_MSM_MERCURY_H */ diff --git a/kernel_headers/media/msm_vidc.h b/kernel_headers/media/msm_vidc.h new file mode 100644 index 0000000..6fa53ad --- /dev/null +++ b/kernel_headers/media/msm_vidc.h @@ -0,0 +1,154 @@ +#ifndef __MSM_VIDC_H__ +#define __MSM_VIDC_H__ + +#include + +struct msm_vidc_extradata_header { + unsigned int size; + unsigned int:32; /** Keeping binary compatibility */ + unsigned int:32; /* with firmware and OpenMAX IL **/ + unsigned int type; /* msm_vidc_extradata_type */ + unsigned int data_size; + unsigned char data[1]; +}; +struct msm_vidc_interlace_payload { + unsigned int format; +}; +struct msm_vidc_framerate_payload { + unsigned int frame_rate; +}; +struct msm_vidc_ts_payload { + unsigned int timestamp_lo; + unsigned int timestamp_hi; +}; +struct msm_vidc_concealmb_payload { + unsigned int num_mbs; +}; +struct msm_vidc_recoverysei_payload { + unsigned int flags; +}; +struct msm_vidc_aspect_ratio_payload { + unsigned int size; + unsigned int version; + unsigned int port_index; + unsigned int aspect_width; + unsigned int aspect_height; +}; +struct msm_vidc_mpeg2_seqdisp_payload { + unsigned int video_format; + unsigned int color_descp; + unsigned int color_primaries; + unsigned int transfer_char; + unsigned int matrix_coeffs; + unsigned int disp_width; + unsigned int disp_height; +}; +struct msm_vidc_input_crop_payload { + unsigned int size; + unsigned int version; + unsigned int port_index; + unsigned int left; + unsigned int top; + unsigned int width; + unsigned int height; +}; +struct msm_vidc_digital_zoom_payload { + unsigned int size; + unsigned int version; + unsigned int port_index; + unsigned int zoom_width; + unsigned int zoom_height; +}; +struct msm_vidc_extradata_index { + unsigned int type; + union { + struct msm_vidc_input_crop_payload input_crop; + struct msm_vidc_digital_zoom_payload digital_zoom; + struct msm_vidc_aspect_ratio_payload aspect_ratio; + }; +}; +struct msm_vidc_panscan_window { + unsigned int panscan_height_offset; + unsigned int panscan_width_offset; + unsigned int panscan_window_width; + unsigned int panscan_window_height; +}; +struct msm_vidc_panscan_window_payload { + unsigned int num_panscan_windows; + struct msm_vidc_panscan_window wnd[1]; +}; +struct msm_vidc_stream_userdata_payload { + unsigned int type; + unsigned int data[1]; +}; +struct msm_vidc_frame_qp_payload { + unsigned int frame_qp; +}; +struct msm_vidc_frame_bits_info_payload { + unsigned int frame_bits; + unsigned int header_bits; +}; +struct msm_vidc_s3d_frame_packing_payload { + unsigned int fpa_id; + unsigned int cancel_flag; + unsigned int fpa_type; + unsigned int quin_cunx_flag; + unsigned int content_interprtation_type; + unsigned int spatial_flipping_flag; + unsigned int frame0_flipped_flag; + unsigned int field_views_flag; + unsigned int current_frame_is_frame0_flag; + unsigned int frame0_self_contained_flag; + unsigned int frame1_self_contained_flag; + unsigned int frame0_graid_pos_x; + unsigned int frame0_graid_pos_y; + unsigned int frame1_graid_pos_x; + unsigned int frame1_graid_pos_y; + unsigned int fpa_reserved_byte; + unsigned int fpa_repetition_period; + unsigned int fpa_extension_flag; +}; + +enum msm_vidc_extradata_type { + MSM_VIDC_EXTRADATA_NONE = 0x00000000, + MSM_VIDC_EXTRADATA_MB_QUANTIZATION = 0x00000001, + MSM_VIDC_EXTRADATA_INTERLACE_VIDEO = 0x00000002, + MSM_VIDC_EXTRADATA_VC1_FRAMEDISP = 0x00000003, + MSM_VIDC_EXTRADATA_VC1_SEQDISP = 0x00000004, + MSM_VIDC_EXTRADATA_TIMESTAMP = 0x00000005, + MSM_VIDC_EXTRADATA_S3D_FRAME_PACKING = 0x00000006, + MSM_VIDC_EXTRADATA_FRAME_RATE = 0x00000007, + MSM_VIDC_EXTRADATA_PANSCAN_WINDOW = 0x00000008, + MSM_VIDC_EXTRADATA_RECOVERY_POINT_SEI = 0x00000009, + MSM_VIDC_EXTRADATA_MPEG2_SEQDISP = 0x0000000D, + MSM_VIDC_EXTRADATA_STREAM_USERDATA = 0x0000000E, + MSM_VIDC_EXTRADATA_FRAME_QP = 0x0000000F, + MSM_VIDC_EXTRADATA_FRAME_BITS_INFO = 0x00000010, + MSM_VIDC_EXTRADATA_INPUT_CROP = 0x0700000E, + MSM_VIDC_EXTRADATA_DIGITAL_ZOOM = 0x07000010, + MSM_VIDC_EXTRADATA_MULTISLICE_INFO = 0x7F100000, + MSM_VIDC_EXTRADATA_NUM_CONCEALED_MB = 0x7F100001, + MSM_VIDC_EXTRADATA_INDEX = 0x7F100002, + MSM_VIDC_EXTRADATA_ASPECT_RATIO = 0x7F100003, + MSM_VIDC_EXTRADATA_METADATA_LTR = 0x7F100004, + MSM_VIDC_EXTRADATA_METADATA_FILLER = 0x7FE00002, + MSM_VIDC_EXTRADATA_METADATA_MBI = 0x7F100005, +}; +enum msm_vidc_interlace_type { + MSM_VIDC_INTERLACE_FRAME_PROGRESSIVE = 0x01, + MSM_VIDC_INTERLACE_INTERLEAVE_FRAME_TOPFIELDFIRST = 0x02, + MSM_VIDC_INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST = 0x04, + MSM_VIDC_INTERLACE_FRAME_TOPFIELDFIRST = 0x08, + MSM_VIDC_INTERLACE_FRAME_BOTTOMFIELDFIRST = 0x10, +}; +enum msm_vidc_recovery_sei { + MSM_VIDC_FRAME_RECONSTRUCTION_INCORRECT = 0x0, + MSM_VIDC_FRAME_RECONSTRUCTION_CORRECT = 0x01, + MSM_VIDC_FRAME_RECONSTRUCTION_APPROXIMATELY_CORRECT = 0x02, +}; +enum msm_vidc_userdata_type { + MSM_VIDC_USERDATA_TYPE_FRAME = 0x1, + MSM_VIDC_USERDATA_TYPE_TOP_FIELD = 0x2, + MSM_VIDC_USERDATA_TYPE_BOTTOM_FIELD = 0x3, +}; +#endif diff --git a/kernel_headers/media/msm_vpu.h b/kernel_headers/media/msm_vpu.h new file mode 100644 index 0000000..b773305 --- /dev/null +++ b/kernel_headers/media/msm_vpu.h @@ -0,0 +1,475 @@ +#ifndef _H_MSM_VPU_H_ +#define _H_MSM_VPU_H_ + +#include + +/* + * V 4 L 2 E X T E N S I O N S B Y V P U + */ + +/* + * v4l2_buffer: + * + * VPU uses standard V4L2 buffer flags, and defines some custom + * flags (used in v4l2_buffer.flags field): + * V4L2_QCOM_BUF_FLAG_EOS: buffer flag indicating end of stream + * V4L2_BUF_FLAG_CDS_ENABLE: buffer flag to enable chroma down-sampling + */ +#define V4L2_BUF_FLAG_CDS_ENABLE 0x10000000 + +/* + * VPU uses multi-plane v4l2_buffer in the following manner: + * each plane can be a separate ION buffer, or all planes are from the + * same ION buffer (under this case all planes have the same fd, but different + * offset). + * + * For struct v4l2_plane + * fd: ION fd representing the ION buffer this plane is from + * reserved[0]: offset of this plane from the start of the ION buffer in + * bytes. Needed when all planes are from the same ION buffer. + */ +#define V4L2_PLANE_MEM_OFFSET 0 + +/* + * struct v4l2_format: + * always use v4l2_pix_format_mplane, even when there is only one plane + * + * v4l2_pix_format_mplane: + * + * VPU uses v4l2_pix_format_mplane for pixel format configuration + * The following members of this structure is either extended or changed: + * pixelformat: extended, a few more private formats added + * colorspace: possible values are enum vpu_colorspace + * field: when it is V4L2_FIELD_ALTERNATE, flags from vpu format extension + * specifies which field first. + * reserved[]: VPU format extension. struct v4l2_format_vpu_extension + */ +enum vpu_colorspace { + VPU_CS_MIN = 0, + /* RGB with full range*/ + VPU_CS_RGB_FULL = 1, + /* RGB with limited range*/ + VPU_CS_RGB_LIMITED = 2, + /* REC 601 with full range */ + VPU_CS_REC601_FULL = 3, + /* REC 601 with limited range */ + VPU_CS_REC601_LIMITED = 4, + /* REC 709 with full range */ + VPU_CS_REC709_FULL = 5, + /* REC 709 with limited range */ + VPU_CS_REC709_LIMITED = 6, + /* SMPTE 240 with full range */ + VPU_CS_SMPTE240_FULL = 7, + /* SMPTE 240 with limited range */ + VPU_CS_SMPTE240_LIMITED = 8, + VPU_CS_MAX = 9, +}; + + +#define VPU_FMT_EXT_FLAG_BT 1 /* bottom field first */ +#define VPU_FMT_EXT_FLAG_TB 2 /* top field first */ +#define VPU_FMT_EXT_FLAG_3D 4 /* 3D format */ +struct v4l2_format_vpu_extension { + __u8 flag; + __u8 gap_in_lines; +}; + +/* + * Supported pixel formats: + * + * VPU supported pixel format fourcc codes (use in s_fmt pixelformat field). + * Can be enumerated using VIDIOC_ENUM_FMT + * + * Standard V4L2 formats, defined in videodev2.h : + * + * V4L2_PIX_FMT_RGB24 24 bit RGB-8-8-8 + * V4L2_PIX_FMT_RGB32 32 bit XRGB-8-8-8-8 + * V4L2_PIX_FMT_BGR24 24 bit BGR-8-8-8 + * V4L2_PIX_FMT_BGR32 32 bit BGRX-8-8-8-8 + * + * V4L2_PIX_FMT_NV12 12 bit YUV 4:2:0 semi-planar NV12 + * V4L2_PIX_FMT_NV21 12 bit YUV 4:2:0 semi-planar NV21 + * V4L2_PIX_FMT_YUYV 16 bit YUYV 4:2:2 interleaved + * V4L2_PIX_FMT_YVYU 16 bit YVYU 4:2:2 interleaved + * V4L2_PIX_FMT_UYVY 16 bit UYVY 4:2:2 interleaved + * V4L2_PIX_FMT_VYUY 16 bit VYUY 4:2:2 interleaved + * + * + * Private VPU formats, defined here : + * + * V4L2_PIX_FMT_XRGB2 32 bit XRGB-2-10-10-10 + * V4L2_PIX_FMT_XBGR2 32 bit XBGR-2-10-10-10 + * + * V4L2_PIX_FMT_YUYV10 24 bit YUYV 4:2:2 10 bit per component loose + * V4L2_PIX_FMT_YUV8 24 bit YUV 4:4:4 8 bit per component + * V4L2_PIX_FMT_YUV10 32 bit YUV 4:4:4 10 bit per component loose + * V4L2_PIX_FMT_YUYV10BWC 10 bit YUYV 4:2:2 compressed, for output only + */ +#define V4L2_PIX_FMT_XRGB2 v4l2_fourcc('X', 'R', 'G', '2') +#define V4L2_PIX_FMT_XBGR2 v4l2_fourcc('X', 'B', 'G', '2') +#define V4L2_PIX_FMT_YUYV10 v4l2_fourcc('Y', 'U', 'Y', 'L') +#define V4L2_PIX_FMT_YUV8 v4l2_fourcc('Y', 'U', 'V', '8') +#define V4L2_PIX_FMT_YUV10 v4l2_fourcc('Y', 'U', 'V', 'L') +#define V4L2_PIX_FMT_YUYV10BWC v4l2_fourcc('Y', 'B', 'W', 'C') + +/* + * VIDIOC_S_INPUT/VIDIOC_S_OUTPUT + * + * The single integer passed by these commands specifies port type in the + * lower 16 bits, and pipe bit mask in the higher 16 bits. + */ +/* input / output types */ +#define VPU_INPUT_TYPE_HOST 0 +#define VPU_INPUT_TYPE_VCAP 1 +#define VPU_OUTPUT_TYPE_HOST 0 +#define VPU_OUTPUT_TYPE_DISPLAY 1 + +/* input / output pipe bit fields */ +#define VPU_PIPE_VCAP0 (1 << 16) +#define VPU_PIPE_VCAP1 (1 << 17) +#define VPU_PIPE_DISPLAY0 (1 << 18) +#define VPU_PIPE_DISPLAY1 (1 << 19) +#define VPU_PIPE_DISPLAY2 (1 << 20) +#define VPU_PIPE_DISPLAY3 (1 << 21) + +/* + * V P U E V E N T S : I D s A N D D A T A P A Y L O A D S + */ + +/* + * Event ID: set in type field of struct v4l2_event + * payload: returned in u.data array of struct v4l2_event + * + * + * VPU_EVENT_FLUSH_DONE: Done flushing buffers after VPU_FLUSH_BUFS ioctl + * payload data: enum v4l2_buf_type (buffer type of flushed port) + * + * VPU_EVENT_ACTIVE_REGION_CHANGED: New Active Region Detected + * payload data: struct v4l2_rect (new active region rectangle) + * + * VPU_EVENT_SESSION_TIMESTAMP: New Session timestamp + * payload data: vpu_frame_timestamp_info + * + * VPU_EVENT_SESSION_CREATED: New session has been created + * payload data: int (number of the attached session) + * + * VPU_EVENT_SESSION_FREED: Session is detached and free + * payload data: int (number of the detached session) + * + * VPU_EVENT_SESSION_CLIENT_EXITED: Indicates that clients of current + * session have exited. + * payload data: int (number of all remaining clients for this session) + * + * VPU_EVENT_HW_ERROR: a hardware error occurred in VPU + * payload data: NULL + * + * VPU_EVENT_INVALID_CONFIG: invalid VPU session configuration + * payload data: NULL + * + * VPU_EVENT_FAILED_SESSION_STREAMING: Failed to stream session + * payload data: NULL + */ +#define VPU_PRIVATE_EVENT_BASE (V4L2_EVENT_PRIVATE_START + 6 * 1000) +enum VPU_PRIVATE_EVENT { + VPU_EVENT_START = VPU_PRIVATE_EVENT_BASE, + + VPU_EVENT_FLUSH_DONE = VPU_EVENT_START + 1, + VPU_EVENT_ACTIVE_REGION_CHANGED = VPU_EVENT_START + 2, + VPU_EVENT_SESSION_TIMESTAMP = VPU_EVENT_START + 3, + VPU_EVENT_SESSION_CREATED = VPU_EVENT_START + 4, + VPU_EVENT_SESSION_FREED = VPU_EVENT_START + 5, + VPU_EVENT_SESSION_CLIENT_EXITED = VPU_EVENT_START + 6, + + VPU_EVENT_HW_ERROR = VPU_EVENT_START + 11, + VPU_EVENT_INVALID_CONFIG = VPU_EVENT_START + 12, + VPU_EVENT_FAILED_SESSION_STREAMING = VPU_EVENT_START + 13, + + VPU_EVENT_END +}; + + +/* + * V P U CO N T R O L S : S T R U C T S A N D I D s + * + * Controls are video processing parameters + */ + +/* + * Standard VPU Controls + */ +struct vpu_ctrl_standard { + __u32 enable; /* boolean: 0=disable, else=enable */ + __s32 value; +}; + +struct vpu_ctrl_auto_manual { + __u32 enable; /* boolean: 0=disable, else=enable */ + __u32 auto_mode; /* boolean: 0=manual, else=automatic */ + __s32 value; +}; + +struct vpu_ctrl_range_mapping { + __u32 enable; /* boolean: 0=disable, else=enable */ + __u32 y_range; /* the range mapping set for Y [0, 7] */ + __u32 uv_range; /* the range mapping set for UV [0, 7] */ +}; + +#define VPU_ACTIVE_REGION_N_EXCLUSIONS 1 +struct vpu_ctrl_active_region_param { + __u32 enable; /* boolean: 0=disable, else=enable */ + /* number of exclusion regions */ + __u32 num_exclusions; + /* roi where active region detection is applied */ + struct v4l2_rect detection_region; + /* roi(s) excluded from active region detection*/ + struct v4l2_rect excluded_regions[VPU_ACTIVE_REGION_N_EXCLUSIONS]; +}; + +struct vpu_ctrl_deinterlacing_mode { + __u32 field_polarity; + __u32 mvp_mode; +}; + +struct vpu_ctrl_hqv { + __u32 enable; + /* strength control of all sharpening features [0, 100] */ + __u32 sharpen_strength; + /* strength control of Auto NR feature [0, 100] */ + __u32 auto_nr_strength; +}; + +struct vpu_info_frame_timestamp { + /* presentation timestamp of the frame */ + __u32 pts_low; + __u32 pts_high; + /* qtimer snapshot */ + __u32 qtime_low; + __u32 qtime_high; +}; + +struct vpu_control { + __u32 control_id; + union control_data { + __s32 value; + struct vpu_ctrl_standard standard; + struct vpu_ctrl_auto_manual auto_manual; + struct vpu_ctrl_range_mapping range_mapping; + struct vpu_ctrl_active_region_param active_region_param; + struct v4l2_rect active_region_result; + struct vpu_ctrl_deinterlacing_mode deinterlacing_mode; + struct vpu_ctrl_hqv hqv; + struct vpu_info_frame_timestamp timestamp; + __u8 reserved[124]; + } data; +}; + +/* + * IDs for standard controls (use in control_id field of struct vpu_control) + * + * VPU_CTRL_NOISE_REDUCTION: noise reduction level, data: auto_manual, + * value: [0, 100] (step in increments of 25). + * + * VPU_CTRL_IMAGE_ENHANCEMENT: image enhancement level, data: auto_manual, + * value: [-100, 100] (step in increments of 1). + * + * VPU_CTRL_ANAMORPHIC_SCALING: anamorphic scaling config, data: standard, + * value: [0, 100] (step in increments of 1). + * + * VPU_CTRL_DIRECTIONAL_INTERPOLATION: directional interpolation config + * data: standard, value: [0, 100] (step in increments of 1). + * + * VPU_CTRL_BACKGROUND_COLOR: , data: value, + * value: red[0:7] green[8:15] blue[16:23] alpha[24:31] + * + * VPU_CTRL_RANGE_MAPPING: Y/UV range mapping, data: range_mapping, + * y_range: [0, 7], uv_range: [0, 7] (step in increments of 1). + * + * VPU_CTRL_DEINTERLACING_MODE: deinterlacing mode, data: deinterlacing_mode, + * field_polarity: [0, 2], mvp_mode: [0, 2] (step in increments of 1). + * + * VPU_CTRL_ACTIVE_REGION_PARAM: active region detection parameters (set only) + * data: active_region_param, + * + * VPU_CTRL_ACTIVE_REGION_RESULT: detected active region roi (get only) + * data: active_region_result + * + * VPU_CTRL_PRIORITY: Session priority, data: value, + * value: high 100, normal 50 + * + * VPU_CTRL_CONTENT_PROTECTION: input content protection status, data: value, + * value: secure 1, non-secure 0 + * + * VPU_CTRL_DISPLAY_REFRESH_RATE: display refresh rate (set only) + * data: value (set to __u32 16.16 format) + * + * VPU_CTRL_HQV: hqv block config, data: hqv, + * sharpen_strength: [0, 100] (step in increments of 25), + * auto_nr_strength: [0, 100] (step in increments of 1). + * + * VPU_CTRL_HQV_SHARPEN: , data: value, + * sharpen_strength: [0, 100] (step in increments of 1). + * + * VPU_CTRL_HQV_AUTONR: , data: value, + * auto_nr_strength: [0, 100] (step in increments of 1). + * + * VPU_CTRL_ACE: , data: value + * + * VPU_CTRL_ACE_BRIGHTNESS: , data: value, + * value: [-100, 100] (step in increments of 1). + * + * VPU_CTRL_ACE_CONTRAST: , data: value, + * value: [-100, 100] (step in increments of 1). + * + * VPU_CTRL_2D3D: , data: value, + * value: 1 enabled, 0 disabled + * + * VPU_CTRL_2D3D_DEPTH: , data: value, + * value: [0, 100] (step in increments of 1). + * + * VPU_CTRL_TIMESTAMP_INFO_MODE: timestamp reporting mode, + * data: value specifying how frequent a timestamp reporting info, value + * is in frames + * + * VPU_INFO_TIMESTAMP: timestamp information (get only) + * data: struct vpu_frame_timestamp_info + * + * VPU_CTRL_FRC: enable/disable FRC, data: value, + * value: 1 enable, 0 disable + * + * VPU_CTRL_FRC_MOTION_SMOOTHNESS: , data: value, + * value: [0, 100] (step in increments of 1). + * + * VPU_CTRL_FRC_MOTION_CLEAR: , data: value, + * value: [0, 100] (step in increments of 1). + * + * VPU_CTRL_LATENCY: session latency, data: value in us + * + * VPU_CTRL_LATENCY_MODE: data: value (ultra low, low, etc.) + * + * VPU_INFO_STATISTICS: frames dropped, etc (get only), + * data: reserved + */ +#define VPU_CTRL_ID_MIN 0 + +#define VPU_CTRL_NOISE_REDUCTION 1 +#define VPU_CTRL_IMAGE_ENHANCEMENT 2 +#define VPU_CTRL_ANAMORPHIC_SCALING 3 +#define VPU_CTRL_DIRECTIONAL_INTERPOLATION 4 +#define VPU_CTRL_BACKGROUND_COLOR 5 +#define VPU_CTRL_RANGE_MAPPING 6 +#define VPU_CTRL_DEINTERLACING_MODE 7 +#define VPU_CTRL_ACTIVE_REGION_PARAM 8 +#define VPU_CTRL_ACTIVE_REGION_RESULT 9 +#define VPU_CTRL_PRIORITY 10 +#define VPU_CTRL_CONTENT_PROTECTION 11 +#define VPU_CTRL_DISPLAY_REFRESH_RATE 12 + +#define VPU_CTRL_HQV 20 +#define VPU_CTRL_HQV_SHARPEN 21 +#define VPU_CTRL_HQV_AUTONR 22 +#define VPU_CTRL_ACE 23 +#define VPU_CTRL_ACE_BRIGHTNESS 24 +#define VPU_CTRL_ACE_CONTRAST 25 +#define VPU_CTRL_2D3D 26 +#define VPU_CTRL_2D3D_DEPTH 27 +#define VPU_CTRL_FRC 28 +#define VPU_CTRL_FRC_MOTION_SMOOTHNESS 29 +#define VPU_CTRL_FRC_MOTION_CLEAR 30 + +#define VPU_INFO_TIMESTAMP 35 +#define VPU_CTRL_TIMESTAMP_INFO_MODE 36 +#define VPU_INFO_STATISTICS 37 +#define VPU_CTRL_LATENCY 38 +#define VPU_CTRL_LATENCY_MODE 39 + +#define VPU_CTRL_ID_MAX 40 + + +/* + * Extended VPU Controls (large data payloads) + */ +#define VPU_MAX_EXT_DATA_SIZE 720 +struct vpu_control_extended { + /* + * extended control type + * 0: system + * 1: session + */ + __u32 type; + + /* + * size and ptr of the data to send + * maximum VPU_MAX_EXT_DATA_SIZE bytes + */ + __u32 data_len; + void *data_ptr; + + /* + * size and ptr of the buffer to recv data + * maximum VPU_MAX_EXT_DATA_SIZE bytes + */ + __u32 buf_size; + void *buf_ptr; +}; + +/* + * Port specific controls + */ +struct vpu_control_port { + __u32 control_id; + __u32 port; /* 0: INPUT, 1: OUTPUT */ + union control_port_data { + __u32 framerate; + } data; +}; + +/* + * IDs for port controls (use in control_id field of struct vpu_control_port) + * + * VPU_CTRL_FPS: set frame rate, data: __u32, 16.16 format + */ +#define VPU_CTRL_FPS 1000 + + +/* + * V P U D E V I C E P R I V A T E I O C T L C O D E S + */ + +/* VPU Session ioctls (deprecated) */ +#define VPU_ATTACH_TO_SESSION _IOW('V', (BASE_VIDIOC_PRIVATE + 1), int) + +/* VPU Session ioctls */ +#define VPU_QUERY_SESSIONS _IOR('V', (BASE_VIDIOC_PRIVATE + 0), int) +#define VPU_CREATE_SESSION _IOR('V', (BASE_VIDIOC_PRIVATE + 2), int) +#define VPU_JOIN_SESSION _IOW('V', (BASE_VIDIOC_PRIVATE + 3), int) + +/* Enable second VPU output port and use with current client */ +#define VPU_CREATE_OUTPUT2 _IO('V', (BASE_VIDIOC_PRIVATE + 5)) + +/* Explicit commit of session configuration */ +#define VPU_COMMIT_CONFIGURATION _IO('V', (BASE_VIDIOC_PRIVATE + 10)) + +/* Flush all buffers of given type (port) */ +#define VPU_FLUSH_BUFS _IOW('V', (BASE_VIDIOC_PRIVATE + 15), \ + enum v4l2_buf_type) + +/* VPU controls get/set ioctls (for most controls with small data) */ +#define VPU_G_CONTROL _IOWR('V', (BASE_VIDIOC_PRIVATE + 20), \ + struct vpu_control) +#define VPU_S_CONTROL _IOW('V', (BASE_VIDIOC_PRIVATE + 21), \ + struct vpu_control) + +/* extended control set/get ioctls (large data payloads) */ +#define VPU_G_CONTROL_EXTENDED _IOWR('V', (BASE_VIDIOC_PRIVATE + 22), \ + struct vpu_control_extended) +#define VPU_S_CONTROL_EXTENDED _IOW('V', (BASE_VIDIOC_PRIVATE + 23), \ + struct vpu_control_extended) + +/* VPU port (input/output) specific controls get/set ioctls */ +#define VPU_G_CONTROL_PORT _IOWR('V', (BASE_VIDIOC_PRIVATE + 24), \ + struct vpu_control_port) +#define VPU_S_CONTROL_PORT _IOW('V', (BASE_VIDIOC_PRIVATE + 25), \ + struct vpu_control_port) + +#endif /* _H_MSM_VPU_H_ */ + diff --git a/kernel_headers/media/msmb_camera.h b/kernel_headers/media/msmb_camera.h new file mode 100644 index 0000000..a6345e8 --- /dev/null +++ b/kernel_headers/media/msmb_camera.h @@ -0,0 +1,201 @@ +#ifndef __LINUX_MSMB_CAMERA_H +#define __LINUX_MSMB_CAMERA_H + +#include +#include +#include + +#define MSM_CAM_V4L2_IOCTL_NOTIFY \ + _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct msm_v4l2_event_data) + +#define MSM_CAM_V4L2_IOCTL_NOTIFY_META \ + _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct msm_v4l2_event_data) + +#define MSM_CAM_V4L2_IOCTL_CMD_ACK \ + _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct msm_v4l2_event_data) + +#define MSM_CAM_V4L2_IOCTL_NOTIFY_ERROR \ + _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct msm_v4l2_event_data) + + +#ifdef CONFIG_COMPAT +#define MSM_CAM_V4L2_IOCTL_NOTIFY32 \ + _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct v4l2_event32) + +#define MSM_CAM_V4L2_IOCTL_NOTIFY_META32 \ + _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct v4l2_event32) + +#define MSM_CAM_V4L2_IOCTL_CMD_ACK32 \ + _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct v4l2_event32) + +#define MSM_CAM_V4L2_IOCTL_NOTIFY_ERROR32 \ + _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct v4l2_event32) + +#endif + +#define QCAMERA_DEVICE_GROUP_ID 1 +#define QCAMERA_VNODE_GROUP_ID 2 +#define MSM_CAMERA_NAME "msm_camera" +#define MSM_CONFIGURATION_NAME "msm_config" + +#define MSM_CAMERA_SUBDEV_CSIPHY 0 +#define MSM_CAMERA_SUBDEV_CSID 1 +#define MSM_CAMERA_SUBDEV_ISPIF 2 +#define MSM_CAMERA_SUBDEV_VFE 3 +#define MSM_CAMERA_SUBDEV_AXI 4 +#define MSM_CAMERA_SUBDEV_VPE 5 +#define MSM_CAMERA_SUBDEV_SENSOR 6 +#define MSM_CAMERA_SUBDEV_ACTUATOR 7 +#define MSM_CAMERA_SUBDEV_EEPROM 8 +#define MSM_CAMERA_SUBDEV_CPP 9 +#define MSM_CAMERA_SUBDEV_CCI 10 +#define MSM_CAMERA_SUBDEV_LED_FLASH 11 +#define MSM_CAMERA_SUBDEV_STROBE_FLASH 12 +#define MSM_CAMERA_SUBDEV_BUF_MNGR 13 +#define MSM_CAMERA_SUBDEV_SENSOR_INIT 14 +#define MSM_CAMERA_SUBDEV_OIS 15 +#define MSM_CAMERA_SUBDEV_FLASH 16 + +#define MSM_CAMERA_SUBDEV_CCI_INTF 20 + +#define MSM_MAX_CAMERA_SENSORS 5 + +/* The below macro is defined to put an upper limit on maximum + * number of buffer requested per stream. In case of extremely + * large value for number of buffer due to data structure corruption + * we return error to avoid integer overflow. This value may be + * configured in future*/ +#define MSM_CAMERA_MAX_STREAM_BUF 40 + +/* featur base */ +#define MSM_CAMERA_FEATURE_BASE 0x00010000 +#define MSM_CAMERA_FEATURE_SHUTDOWN (MSM_CAMERA_FEATURE_BASE + 1) + +#define MSM_CAMERA_STATUS_BASE 0x00020000 +#define MSM_CAMERA_STATUS_FAIL (MSM_CAMERA_STATUS_BASE + 1) +#define MSM_CAMERA_STATUS_SUCCESS (MSM_CAMERA_STATUS_BASE + 2) + +/* event type */ +#define MSM_CAMERA_V4L2_EVENT_TYPE (V4L2_EVENT_PRIVATE_START + 0x00002000) + +/* event id */ +#define MSM_CAMERA_EVENT_MIN 0 +#define MSM_CAMERA_NEW_SESSION (MSM_CAMERA_EVENT_MIN + 1) +#define MSM_CAMERA_DEL_SESSION (MSM_CAMERA_EVENT_MIN + 2) +#define MSM_CAMERA_SET_PARM (MSM_CAMERA_EVENT_MIN + 3) +#define MSM_CAMERA_GET_PARM (MSM_CAMERA_EVENT_MIN + 4) +#define MSM_CAMERA_MAPPING_CFG (MSM_CAMERA_EVENT_MIN + 5) +#define MSM_CAMERA_MAPPING_SES (MSM_CAMERA_EVENT_MIN + 6) +#define MSM_CAMERA_MSM_NOTIFY (MSM_CAMERA_EVENT_MIN + 7) +#define MSM_CAMERA_EVENT_MAX (MSM_CAMERA_EVENT_MIN + 8) + +/* data.command */ +#define MSM_CAMERA_PRIV_S_CROP (V4L2_CID_PRIVATE_BASE + 1) +#define MSM_CAMERA_PRIV_G_CROP (V4L2_CID_PRIVATE_BASE + 2) +#define MSM_CAMERA_PRIV_G_FMT (V4L2_CID_PRIVATE_BASE + 3) +#define MSM_CAMERA_PRIV_S_FMT (V4L2_CID_PRIVATE_BASE + 4) +#define MSM_CAMERA_PRIV_TRY_FMT (V4L2_CID_PRIVATE_BASE + 5) +#define MSM_CAMERA_PRIV_METADATA (V4L2_CID_PRIVATE_BASE + 6) +#define MSM_CAMERA_PRIV_QUERY_CAP (V4L2_CID_PRIVATE_BASE + 7) +#define MSM_CAMERA_PRIV_STREAM_ON (V4L2_CID_PRIVATE_BASE + 8) +#define MSM_CAMERA_PRIV_STREAM_OFF (V4L2_CID_PRIVATE_BASE + 9) +#define MSM_CAMERA_PRIV_NEW_STREAM (V4L2_CID_PRIVATE_BASE + 10) +#define MSM_CAMERA_PRIV_DEL_STREAM (V4L2_CID_PRIVATE_BASE + 11) +#define MSM_CAMERA_PRIV_SHUTDOWN (V4L2_CID_PRIVATE_BASE + 12) +#define MSM_CAMERA_PRIV_STREAM_INFO_SYNC \ + (V4L2_CID_PRIVATE_BASE + 13) + +/* data.status - success */ +#define MSM_CAMERA_CMD_SUCESS 0x00000001 +#define MSM_CAMERA_BUF_MAP_SUCESS 0x00000002 + +/* data.status - error */ +#define MSM_CAMERA_ERR_EVT_BASE 0x00010000 +#define MSM_CAMERA_ERR_CMD_FAIL (MSM_CAMERA_ERR_EVT_BASE + 1) +#define MSM_CAMERA_ERR_MAPPING (MSM_CAMERA_ERR_EVT_BASE + 2) + +/* The msm_v4l2_event_data structure should match the + * v4l2_event.u.data field. + * should not exceed 16 elements */ +struct msm_v4l2_event_data { + /*word 0*/ + unsigned int command; + /*word 1*/ + unsigned int status; + /*word 2*/ + unsigned int session_id; + /*word 3*/ + unsigned int stream_id; + /*word 4*/ + unsigned int map_op; + /*word 5*/ + unsigned int map_buf_idx; + /*word 6*/ + unsigned int notify; + /*word 7*/ + unsigned int arg_value; + /*word 8*/ + unsigned int ret_value; + /*word 9*/ + unsigned int v4l2_event_type; + /*word 10*/ + unsigned int v4l2_event_id; + /*word 11*/ + unsigned int nop5; + /*word 12*/ + unsigned int nop6; + /*word 13*/ + unsigned int nop7; + /*word 14*/ + unsigned int nop8; + /*word 15*/ + unsigned int nop9; +}; + +/* map to v4l2_format.fmt.raw_data */ +struct msm_v4l2_format_data { + enum v4l2_buf_type type; + unsigned int width; + unsigned int height; + unsigned int pixelformat; /* FOURCC */ + unsigned char num_planes; + unsigned int plane_sizes[VIDEO_MAX_PLANES]; +}; + +/* MSM Four-character-code (FOURCC) */ +#define msm_v4l2_fourcc(a, b, c, d)\ + ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) |\ + ((__u32)(d) << 24)) + +/* Composite stats */ +#define MSM_V4L2_PIX_FMT_STATS_COMB v4l2_fourcc('S', 'T', 'C', 'M') +/* AEC stats */ +#define MSM_V4L2_PIX_FMT_STATS_AE v4l2_fourcc('S', 'T', 'A', 'E') +/* AF stats */ +#define MSM_V4L2_PIX_FMT_STATS_AF v4l2_fourcc('S', 'T', 'A', 'F') +/* AWB stats */ +#define MSM_V4L2_PIX_FMT_STATS_AWB v4l2_fourcc('S', 'T', 'W', 'B') +/* IHIST stats */ +#define MSM_V4L2_PIX_FMT_STATS_IHST v4l2_fourcc('I', 'H', 'S', 'T') +/* Column count stats */ +#define MSM_V4L2_PIX_FMT_STATS_CS v4l2_fourcc('S', 'T', 'C', 'S') +/* Row count stats */ +#define MSM_V4L2_PIX_FMT_STATS_RS v4l2_fourcc('S', 'T', 'R', 'S') +/* Bayer Grid stats */ +#define MSM_V4L2_PIX_FMT_STATS_BG v4l2_fourcc('S', 'T', 'B', 'G') +/* Bayer focus stats */ +#define MSM_V4L2_PIX_FMT_STATS_BF v4l2_fourcc('S', 'T', 'B', 'F') +/* Bayer hist stats */ +#define MSM_V4L2_PIX_FMT_STATS_BHST v4l2_fourcc('B', 'H', 'S', 'T') + +enum smmu_attach_mode { + NON_SECURE_MODE, + SECURE_MODE, + MAX_PROTECTION_MODE, +}; + +struct msm_camera_smmu_attach_type { + enum smmu_attach_mode attach; +}; + +#endif /* __LINUX_MSMB_CAMERA_H */ diff --git a/kernel_headers/media/msmb_generic_buf_mgr.h b/kernel_headers/media/msmb_generic_buf_mgr.h new file mode 100644 index 0000000..506c6d6 --- /dev/null +++ b/kernel_headers/media/msmb_generic_buf_mgr.h @@ -0,0 +1,48 @@ +#ifndef __UAPI_MEDIA_MSMB_BUF_MNGR_H__ +#define __UAPI_MEDIA_MSMB_BUF_MNGR_H__ + +struct msm_buf_mngr_info { + uint32_t session_id; + uint32_t stream_id; + uint32_t frame_id; + struct timeval timestamp; + uint32_t index; +}; + +struct v4l2_subdev *msm_buf_mngr_get_subdev(void); + +#define VIDIOC_MSM_BUF_MNGR_GET_BUF \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 33, struct msm_buf_mngr_info) + +#define VIDIOC_MSM_BUF_MNGR_PUT_BUF \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 34, struct msm_buf_mngr_info) + +#define VIDIOC_MSM_BUF_MNGR_BUF_DONE \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 35, struct msm_buf_mngr_info) + +#define VIDIOC_MSM_BUF_MNGR_INIT \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 36, struct msm_buf_mngr_info) + +#define VIDIOC_MSM_BUF_MNGR_DEINIT \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 37, struct msm_buf_mngr_info) + +#ifdef CONFIG_COMPAT +struct msm_buf_mngr_info32_t { + uint32_t session_id; + uint32_t stream_id; + uint32_t frame_id; + struct compat_timeval timestamp; + uint32_t index; +}; + +#define VIDIOC_MSM_BUF_MNGR_GET_BUF32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 33, struct msm_buf_mngr_info32_t) + +#define VIDIOC_MSM_BUF_MNGR_PUT_BUF32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 34, struct msm_buf_mngr_info32_t) + +#define VIDIOC_MSM_BUF_MNGR_BUF_DONE32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 35, struct msm_buf_mngr_info32_t) +#endif + +#endif diff --git a/kernel_headers/media/msmb_isp.h b/kernel_headers/media/msmb_isp.h new file mode 100644 index 0000000..b54a69a --- /dev/null +++ b/kernel_headers/media/msmb_isp.h @@ -0,0 +1,570 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef __MSMB_ISP__ +#define __MSMB_ISP__ + +#include + +#define MAX_PLANES_PER_STREAM 3 +#define MAX_NUM_STREAM 7 + +#define ISP_VERSION_47 47 +#define ISP_VERSION_46 46 +#define ISP_VERSION_44 44 +#define ISP_VERSION_40 40 +#define ISP_VERSION_32 32 +#define ISP_NATIVE_BUF_BIT (0x10000 << 0) +#define ISP0_BIT (0x10000 << 1) +#define ISP1_BIT (0x10000 << 2) +#define ISP_META_CHANNEL_BIT (0x10000 << 3) +#define ISP_SCRATCH_BUF_BIT (0x10000 << 4) +#define ISP_STATS_STREAM_BIT 0x80000000 + +struct msm_vfe_cfg_cmd_list; + +enum ISP_START_PIXEL_PATTERN { + ISP_BAYER_RGRGRG, + ISP_BAYER_GRGRGR, + ISP_BAYER_BGBGBG, + ISP_BAYER_GBGBGB, + ISP_YUV_YCbYCr, + ISP_YUV_YCrYCb, + ISP_YUV_CbYCrY, + ISP_YUV_CrYCbY, + ISP_PIX_PATTERN_MAX +}; + +enum msm_vfe_plane_fmt { + Y_PLANE, + CB_PLANE, + CR_PLANE, + CRCB_PLANE, + CBCR_PLANE, + VFE_PLANE_FMT_MAX +}; + +enum msm_vfe_input_src { + VFE_PIX_0, + VFE_RAW_0, + VFE_RAW_1, + VFE_RAW_2, + VFE_SRC_MAX, +}; + +enum msm_vfe_axi_stream_src { + PIX_ENCODER, + PIX_VIEWFINDER, + PIX_VIDEO, + CAMIF_RAW, + IDEAL_RAW, + RDI_INTF_0, + RDI_INTF_1, + RDI_INTF_2, + VFE_AXI_SRC_MAX +}; + +enum msm_vfe_frame_skip_pattern { + NO_SKIP, + EVERY_2FRAME, + EVERY_3FRAME, + EVERY_4FRAME, + EVERY_5FRAME, + EVERY_6FRAME, + EVERY_7FRAME, + EVERY_8FRAME, + EVERY_16FRAME, + EVERY_32FRAME, + SKIP_ALL, + MAX_SKIP, +}; + +enum msm_vfe_camif_input { + CAMIF_DISABLED, + CAMIF_PAD_REG_INPUT, + CAMIF_MIDDI_INPUT, + CAMIF_MIPI_INPUT, +}; + +struct msm_vfe_fetch_engine_cfg { + uint32_t input_format; + uint32_t buf_width; + uint32_t buf_height; + uint32_t fetch_width; + uint32_t fetch_height; + uint32_t x_offset; + uint32_t y_offset; + uint32_t buf_stride; +}; + +struct msm_vfe_camif_cfg { + uint32_t lines_per_frame; + uint32_t pixels_per_line; + uint32_t first_pixel; + uint32_t last_pixel; + uint32_t first_line; + uint32_t last_line; + uint32_t epoch_line0; + uint32_t epoch_line1; + enum msm_vfe_camif_input camif_input; +}; + +enum msm_vfe_inputmux { + CAMIF, + TESTGEN, + EXTERNAL_READ, +}; + +enum msm_vfe_stats_composite_group { + STATS_COMPOSITE_GRP_NONE, + STATS_COMPOSITE_GRP_1, + STATS_COMPOSITE_GRP_2, + STATS_COMPOSITE_GRP_MAX, +}; + +struct msm_vfe_pix_cfg { + struct msm_vfe_camif_cfg camif_cfg; + struct msm_vfe_fetch_engine_cfg fetch_engine_cfg; + enum msm_vfe_inputmux input_mux; + enum ISP_START_PIXEL_PATTERN pixel_pattern; + uint32_t input_format; +}; + +struct msm_vfe_rdi_cfg { + uint8_t cid; + uint8_t frame_based; +}; + +struct msm_vfe_input_cfg { + union { + struct msm_vfe_pix_cfg pix_cfg; + struct msm_vfe_rdi_cfg rdi_cfg; + } d; + enum msm_vfe_input_src input_src; + uint32_t input_pix_clk; +}; + +struct msm_vfe_fetch_eng_start { + uint32_t session_id; + uint32_t stream_id; + uint32_t buf_idx; + uint32_t buf_addr; +}; + +struct msm_vfe_axi_plane_cfg { + uint32_t output_width; /*Include padding*/ + uint32_t output_height; + uint32_t output_stride; + uint32_t output_scan_lines; + uint32_t output_plane_format; /*Y/Cb/Cr/CbCr*/ + uint32_t plane_addr_offset; + uint8_t csid_src; /*RDI 0-2*/ + uint8_t rdi_cid;/*CID 1-16*/ +}; + +enum msm_stream_memory_input_t { + MEMORY_INPUT_DISABLED, + MEMORY_INPUT_ENABLED +}; + +struct msm_vfe_axi_stream_request_cmd { + uint32_t session_id; + uint32_t stream_id; + uint32_t vt_enable; + uint32_t output_format;/*Planar/RAW/Misc*/ + enum msm_vfe_axi_stream_src stream_src; /*CAMIF/IDEAL/RDIs*/ + struct msm_vfe_axi_plane_cfg plane_cfg[MAX_PLANES_PER_STREAM]; + + uint32_t burst_count; + uint32_t hfr_mode; + uint8_t frame_base; + + uint32_t init_frame_drop; /*MAX 31 Frames*/ + enum msm_vfe_frame_skip_pattern frame_skip_pattern; + uint8_t buf_divert; /* if TRUE no vb2 buf done. */ + /*Return values*/ + uint32_t axi_stream_handle; + uint32_t controllable_output; + uint32_t burst_len; + /* Flag indicating memory input stream */ + enum msm_stream_memory_input_t memory_input; +}; + +struct msm_vfe_axi_stream_release_cmd { + uint32_t stream_handle; +}; + +enum msm_vfe_axi_stream_cmd { + STOP_STREAM, + START_STREAM, + STOP_IMMEDIATELY, +}; + +struct msm_vfe_axi_stream_cfg_cmd { + uint8_t num_streams; + uint32_t stream_handle[MAX_NUM_STREAM]; + enum msm_vfe_axi_stream_cmd cmd; +}; + +enum msm_vfe_axi_stream_update_type { + ENABLE_STREAM_BUF_DIVERT, + DISABLE_STREAM_BUF_DIVERT, + UPDATE_STREAM_FRAMEDROP_PATTERN, + UPDATE_STREAM_STATS_FRAMEDROP_PATTERN, + UPDATE_STREAM_AXI_CONFIG, + UPDATE_STREAM_REQUEST_FRAMES, +}; + +enum msm_vfe_iommu_type { + IOMMU_ATTACH, + IOMMU_DETACH, +}; + +struct msm_vfe_axi_stream_cfg_update_info { + uint32_t stream_handle; + uint32_t output_format; + uint32_t request_frm_num; + enum msm_vfe_frame_skip_pattern skip_pattern; + struct msm_vfe_axi_plane_cfg plane_cfg[MAX_PLANES_PER_STREAM]; +}; + +struct msm_vfe_axi_halt_cmd { + uint32_t stop_camif; + uint32_t overflow_detected; +}; + +struct msm_vfe_axi_reset_cmd { + uint32_t blocking; + uint32_t frame_id; +}; + +struct msm_vfe_axi_restart_cmd { + uint32_t enable_camif; +}; + +struct msm_vfe_axi_stream_update_cmd { + uint32_t num_streams; + enum msm_vfe_axi_stream_update_type update_type; + struct msm_vfe_axi_stream_cfg_update_info update_info[MAX_NUM_STREAM]; +}; + +struct msm_vfe_smmu_attach_cmd { + uint32_t security_mode; + uint32_t iommu_attach_mode; +}; + +enum msm_isp_stats_type { + MSM_ISP_STATS_AEC, /* legacy based AEC */ + MSM_ISP_STATS_AF, /* legacy based AF */ + MSM_ISP_STATS_AWB, /* legacy based AWB */ + MSM_ISP_STATS_RS, /* legacy based RS */ + MSM_ISP_STATS_CS, /* legacy based CS */ + MSM_ISP_STATS_IHIST, /* legacy based HIST */ + MSM_ISP_STATS_SKIN, /* legacy based SKIN */ + MSM_ISP_STATS_BG, /* Bayer Grids */ + MSM_ISP_STATS_BF, /* Bayer Focus */ + MSM_ISP_STATS_BE, /* Bayer Exposure*/ + MSM_ISP_STATS_BHIST, /* Bayer Hist */ + MSM_ISP_STATS_BF_SCALE, /* Bayer Focus scale */ + MSM_ISP_STATS_HDR_BE, /* HDR Bayer Exposure */ + MSM_ISP_STATS_HDR_BHIST, /* HDR Bayer Hist */ + MSM_ISP_STATS_MAX /* MAX */ +}; + +struct msm_vfe_stats_stream_request_cmd { + uint32_t session_id; + uint32_t stream_id; + enum msm_isp_stats_type stats_type; + uint32_t composite_flag; + uint32_t framedrop_pattern; + uint32_t init_frame_drop; /*MAX 31 Frames*/ + uint32_t irq_subsample_pattern; + uint32_t buffer_offset; + uint32_t stream_handle; +}; + +struct msm_vfe_stats_stream_release_cmd { + uint32_t stream_handle; +}; +struct msm_vfe_stats_stream_cfg_cmd { + uint8_t num_streams; + uint32_t stream_handle[MSM_ISP_STATS_MAX]; + uint8_t enable; + uint32_t stats_burst_len; +}; + +enum msm_vfe_reg_cfg_type { + VFE_WRITE, + VFE_WRITE_MB, + VFE_READ, + VFE_CFG_MASK, + VFE_WRITE_DMI_16BIT, + VFE_WRITE_DMI_32BIT, + VFE_WRITE_DMI_64BIT, + VFE_READ_DMI_16BIT, + VFE_READ_DMI_32BIT, + VFE_READ_DMI_64BIT, + GET_MAX_CLK_RATE, + GET_ISP_ID, + VFE_HW_UPDATE_LOCK, + VFE_HW_UPDATE_UNLOCK, + SET_WM_UB_SIZE, + SET_UB_POLICY, +}; + +struct msm_vfe_cfg_cmd2 { + uint16_t num_cfg; + uint16_t cmd_len; + void *cfg_data; + void *cfg_cmd; +}; + +struct msm_vfe_cfg_cmd_list { + struct msm_vfe_cfg_cmd2 cfg_cmd; + struct msm_vfe_cfg_cmd_list *next; + uint32_t next_size; +}; + +struct msm_vfe_reg_rw_info { + uint32_t reg_offset; + uint32_t cmd_data_offset; + uint32_t len; +}; + +struct msm_vfe_reg_mask_info { + uint32_t reg_offset; + uint32_t mask; + uint32_t val; +}; + +struct msm_vfe_reg_dmi_info { + uint32_t hi_tbl_offset; /*Optional*/ + uint32_t lo_tbl_offset; /*Required*/ + uint32_t len; +}; + +struct msm_vfe_reg_cfg_cmd { + union { + struct msm_vfe_reg_rw_info rw_info; + struct msm_vfe_reg_mask_info mask_info; + struct msm_vfe_reg_dmi_info dmi_info; + } u; + + enum msm_vfe_reg_cfg_type cmd_type; +}; + +enum msm_isp_buf_type { + ISP_PRIVATE_BUF, + ISP_SHARE_BUF, + MAX_ISP_BUF_TYPE, +}; + +struct msm_isp_buf_request { + uint32_t session_id; + uint32_t stream_id; + uint8_t num_buf; + uint32_t handle; + enum msm_isp_buf_type buf_type; +}; + +struct msm_isp_qbuf_plane { + uint32_t addr; + uint32_t offset; +}; + +struct msm_isp_qbuf_buffer { + struct msm_isp_qbuf_plane planes[MAX_PLANES_PER_STREAM]; + uint32_t num_planes; +}; + +struct msm_isp_qbuf_info { + uint32_t handle; + int32_t buf_idx; + /*Only used for prepare buffer*/ + struct msm_isp_qbuf_buffer buffer; + /*Only used for diverted buffer*/ + uint32_t dirty_buf; +}; + +struct msm_vfe_axi_src_state { + enum msm_vfe_input_src input_src; + uint32_t src_active; + uint32_t src_frame_id; +}; + +enum msm_isp_event_idx { + ISP_REG_UPDATE = 0, + ISP_START_ACK = 1, + ISP_STOP_ACK = 2, + ISP_IRQ_VIOLATION = 3, + ISP_WM_BUS_OVERFLOW = 4, + ISP_STATS_OVERFLOW = 5, + ISP_CAMIF_ERROR = 6, + ISP_BUF_DONE = 9, + ISP_FE_RD_DONE = 10, + ISP_EVENT_MAX = 11 +}; + +#define ISP_EVENT_OFFSET 8 +#define ISP_EVENT_BASE (V4L2_EVENT_PRIVATE_START) +#define ISP_BUF_EVENT_BASE (ISP_EVENT_BASE + (1 << ISP_EVENT_OFFSET)) +#define ISP_STATS_EVENT_BASE (ISP_EVENT_BASE + (2 << ISP_EVENT_OFFSET)) +#define ISP_SOF_EVENT_BASE (ISP_EVENT_BASE + (3 << ISP_EVENT_OFFSET)) +#define ISP_EOF_EVENT_BASE (ISP_EVENT_BASE + (4 << ISP_EVENT_OFFSET)) +#define ISP_EVENT_REG_UPDATE (ISP_EVENT_BASE + ISP_REG_UPDATE) +#define ISP_EVENT_START_ACK (ISP_EVENT_BASE + ISP_START_ACK) +#define ISP_EVENT_STOP_ACK (ISP_EVENT_BASE + ISP_STOP_ACK) +#define ISP_EVENT_IRQ_VIOLATION (ISP_EVENT_BASE + ISP_IRQ_VIOLATION) +#define ISP_EVENT_WM_BUS_OVERFLOW (ISP_EVENT_BASE + ISP_WM_BUS_OVERFLOW) +#define ISP_EVENT_STATS_OVERFLOW (ISP_EVENT_BASE + ISP_STATS_OVERFLOW) +#define ISP_EVENT_CAMIF_ERROR (ISP_EVENT_BASE + ISP_CAMIF_ERROR) +#define ISP_EVENT_SOF (ISP_SOF_EVENT_BASE) +#define ISP_EVENT_EOF (ISP_EOF_EVENT_BASE) +#define ISP_EVENT_BUF_DONE (ISP_EVENT_BASE + ISP_BUF_DONE) +#define ISP_EVENT_BUF_DIVERT (ISP_BUF_EVENT_BASE) +#define ISP_EVENT_STATS_NOTIFY (ISP_STATS_EVENT_BASE) +#define ISP_EVENT_COMP_STATS_NOTIFY (ISP_EVENT_STATS_NOTIFY + MSM_ISP_STATS_MAX) +#define ISP_EVENT_FE_READ_DONE (ISP_EVENT_BASE + ISP_FE_RD_DONE) + +/* The msm_v4l2_event_data structure should match the + * v4l2_event.u.data field. + * should not exceed 64 bytes */ + +struct msm_isp_buf_event { + uint32_t session_id; + uint32_t stream_id; + uint32_t handle; + uint32_t output_format; + int8_t buf_idx; +}; +struct msm_isp_stats_event { + uint32_t stats_mask; /* 4 bytes */ + uint8_t stats_buf_idxs[MSM_ISP_STATS_MAX]; /* 11 bytes */ +}; + +struct msm_isp_stream_ack { + uint32_t session_id; + uint32_t stream_id; + uint32_t handle; +}; + +struct msm_isp_error_info { + /* 1 << msm_isp_event_idx */ + uint32_t error_mask; +}; + +struct msm_isp_event_data { + /*Wall clock except for buffer divert events + *which use monotonic clock + */ + struct timeval timestamp; + /* Monotonic timestamp since bootup */ + struct timeval mono_timestamp; + enum msm_vfe_input_src input_intf; + uint32_t frame_id; + union { + struct msm_isp_stats_event stats; + struct msm_isp_buf_event buf_done; + struct msm_isp_error_info error_info; + } u; /* union can have max 52 bytes */ +}; + +#define V4L2_PIX_FMT_QBGGR8 v4l2_fourcc('Q', 'B', 'G', '8') +#define V4L2_PIX_FMT_QGBRG8 v4l2_fourcc('Q', 'G', 'B', '8') +#define V4L2_PIX_FMT_QGRBG8 v4l2_fourcc('Q', 'G', 'R', '8') +#define V4L2_PIX_FMT_QRGGB8 v4l2_fourcc('Q', 'R', 'G', '8') +#define V4L2_PIX_FMT_QBGGR10 v4l2_fourcc('Q', 'B', 'G', '0') +#define V4L2_PIX_FMT_QGBRG10 v4l2_fourcc('Q', 'G', 'B', '0') +#define V4L2_PIX_FMT_QGRBG10 v4l2_fourcc('Q', 'G', 'R', '0') +#define V4L2_PIX_FMT_QRGGB10 v4l2_fourcc('Q', 'R', 'G', '0') +#define V4L2_PIX_FMT_QBGGR12 v4l2_fourcc('Q', 'B', 'G', '2') +#define V4L2_PIX_FMT_QGBRG12 v4l2_fourcc('Q', 'G', 'B', '2') +#define V4L2_PIX_FMT_QGRBG12 v4l2_fourcc('Q', 'G', 'R', '2') +#define V4L2_PIX_FMT_QRGGB12 v4l2_fourcc('Q', 'R', 'G', '2') +#define V4L2_PIX_FMT_QBGGR14 v4l2_fourcc('Q', 'B', 'G', '4') +#define V4L2_PIX_FMT_QGBRG14 v4l2_fourcc('Q', 'G', 'B', '4') +#define V4L2_PIX_FMT_QGRBG14 v4l2_fourcc('Q', 'G', 'R', '4') +#define V4L2_PIX_FMT_QRGGB14 v4l2_fourcc('Q', 'R', 'G', '4') +#define V4L2_PIX_FMT_P16BGGR10 v4l2_fourcc('P', 'B', 'G', '0') +#define V4L2_PIX_FMT_P16GBRG10 v4l2_fourcc('P', 'G', 'B', '0') +#define V4L2_PIX_FMT_P16GRBG10 v4l2_fourcc('P', 'G', 'R', '0') +#define V4L2_PIX_FMT_P16RGGB10 v4l2_fourcc('P', 'R', 'G', '0') +#define V4L2_PIX_FMT_NV14 v4l2_fourcc('N', 'V', '1', '4') +#define V4L2_PIX_FMT_NV41 v4l2_fourcc('N', 'V', '4', '1') +#define V4L2_PIX_FMT_META v4l2_fourcc('Q', 'M', 'E', 'T') +#define V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') /* 14 BGBG.GRGR.*/ +#define V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') /* 14 GBGB.RGRG.*/ +#define V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('B', 'A', '1', '4') /* 14 GRGR.BGBG.*/ +#define V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') /* 14 RGRG.GBGB.*/ + +#define VIDIOC_MSM_VFE_REG_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_vfe_cfg_cmd2) + +#define VIDIOC_MSM_ISP_REQUEST_BUF \ + _IOWR('V', BASE_VIDIOC_PRIVATE+1, struct msm_isp_buf_request) + +#define VIDIOC_MSM_ISP_ENQUEUE_BUF \ + _IOWR('V', BASE_VIDIOC_PRIVATE+2, struct msm_isp_qbuf_info) + +#define VIDIOC_MSM_ISP_RELEASE_BUF \ + _IOWR('V', BASE_VIDIOC_PRIVATE+3, struct msm_isp_buf_request) + +#define VIDIOC_MSM_ISP_REQUEST_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+4, struct msm_vfe_axi_stream_request_cmd) + +#define VIDIOC_MSM_ISP_CFG_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+5, struct msm_vfe_axi_stream_cfg_cmd) + +#define VIDIOC_MSM_ISP_RELEASE_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+6, struct msm_vfe_axi_stream_release_cmd) + +#define VIDIOC_MSM_ISP_INPUT_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE+7, struct msm_vfe_input_cfg) + +#define VIDIOC_MSM_ISP_SET_SRC_STATE \ + _IOWR('V', BASE_VIDIOC_PRIVATE+8, struct msm_vfe_axi_src_state) + +#define VIDIOC_MSM_ISP_REQUEST_STATS_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+9, \ + struct msm_vfe_stats_stream_request_cmd) + +#define VIDIOC_MSM_ISP_CFG_STATS_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+10, struct msm_vfe_stats_stream_cfg_cmd) + +#define VIDIOC_MSM_ISP_RELEASE_STATS_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+11, \ + struct msm_vfe_stats_stream_release_cmd) + +#define VIDIOC_MSM_ISP_UPDATE_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+13, struct msm_vfe_axi_stream_update_cmd) + +#define VIDIOC_MSM_VFE_REG_LIST_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE+14, struct msm_vfe_cfg_cmd_list) + +#define VIDIOC_MSM_ISP_SMMU_ATTACH \ + _IOWR('V', BASE_VIDIOC_PRIVATE+15, struct msm_vfe_smmu_attach_cmd) + +#define VIDIOC_MSM_ISP_UPDATE_STATS_STREAM \ + _IOWR('V', BASE_VIDIOC_PRIVATE+16, struct msm_vfe_axi_stream_update_cmd) + +#define VIDIOC_MSM_ISP_AXI_HALT \ + _IOWR('V', BASE_VIDIOC_PRIVATE+17, struct msm_vfe_axi_halt_cmd) + +#define VIDIOC_MSM_ISP_AXI_RESET \ + _IOWR('V', BASE_VIDIOC_PRIVATE+18, struct msm_vfe_axi_reset_cmd) + +#define VIDIOC_MSM_ISP_AXI_RESTART \ + _IOWR('V', BASE_VIDIOC_PRIVATE+19, struct msm_vfe_axi_restart_cmd) + +#define VIDIOC_MSM_ISP_FETCH_ENG_START \ + _IOWR('V', BASE_VIDIOC_PRIVATE+20, struct msm_vfe_fetch_eng_start) + +#endif /* __MSMB_ISP__ */ diff --git a/kernel_headers/media/msmb_ispif.h b/kernel_headers/media/msmb_ispif.h new file mode 100644 index 0000000..2564c33 --- /dev/null +++ b/kernel_headers/media/msmb_ispif.h @@ -0,0 +1,125 @@ +#ifndef MSM_CAM_ISPIF_H +#define MSM_CAM_ISPIF_H + +#define CSID_VERSION_V20 0x02000011 +#define CSID_VERSION_V22 0x02001000 +#define CSID_VERSION_V30 0x30000000 +#define CSID_VERSION_V3 0x30000000 + +enum msm_ispif_vfe_intf { + VFE0, + VFE1, + VFE_MAX +}; +#define VFE0_MASK (1 << VFE0) +#define VFE1_MASK (1 << VFE1) + +enum msm_ispif_intftype { + PIX0, + RDI0, + PIX1, + RDI1, + RDI2, + INTF_MAX +}; +#define MAX_PARAM_ENTRIES (INTF_MAX * 2) +#define MAX_CID_CH 8 + +#define PIX0_MASK (1 << PIX0) +#define PIX1_MASK (1 << PIX1) +#define RDI0_MASK (1 << RDI0) +#define RDI1_MASK (1 << RDI1) +#define RDI2_MASK (1 << RDI2) + + +enum msm_ispif_vc { + VC0, + VC1, + VC2, + VC3, + VC_MAX +}; + +enum msm_ispif_cid { + CID0, + CID1, + CID2, + CID3, + CID4, + CID5, + CID6, + CID7, + CID8, + CID9, + CID10, + CID11, + CID12, + CID13, + CID14, + CID15, + CID_MAX +}; + +enum msm_ispif_csid { + CSID0, + CSID1, + CSID2, + CSID3, + CSID_MAX +}; + +struct msm_ispif_params_entry { + enum msm_ispif_vfe_intf vfe_intf; + enum msm_ispif_intftype intftype; + int num_cids; + enum msm_ispif_cid cids[3]; + enum msm_ispif_csid csid; + int crop_enable; + uint16_t crop_start_pixel; + uint16_t crop_end_pixel; +}; + +struct msm_ispif_param_data { + uint32_t num; + struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES]; +}; + +struct msm_isp_info { + uint32_t max_resolution; + uint32_t id; + uint32_t ver; +}; + +struct msm_ispif_vfe_info { + int num_vfe; + struct msm_isp_info info[VFE_MAX]; +}; + +enum ispif_cfg_type_t { + ISPIF_CLK_ENABLE, + ISPIF_CLK_DISABLE, + ISPIF_INIT, + ISPIF_CFG, + ISPIF_START_FRAME_BOUNDARY, + ISPIF_RESTART_FRAME_BOUNDARY, + ISPIF_STOP_FRAME_BOUNDARY, + ISPIF_STOP_IMMEDIATELY, + ISPIF_RELEASE, + ISPIF_ENABLE_REG_DUMP, + ISPIF_SET_VFE_INFO, +}; + +struct ispif_cfg_data { + enum ispif_cfg_type_t cfg_type; + union { + int reg_dump; /* ISPIF_ENABLE_REG_DUMP */ + uint32_t csid_version; /* ISPIF_INIT */ + struct msm_ispif_vfe_info vfe_info; /* ISPIF_SET_VFE_INFO */ + struct msm_ispif_param_data params; /* CFG, START, STOP */ + }; +}; + +#define VIDIOC_MSM_ISPIF_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data) + +#endif /* MSM_CAM_ISPIF_H */ diff --git a/kernel_headers/media/msmb_pproc.h b/kernel_headers/media/msmb_pproc.h new file mode 100644 index 0000000..b9947d0 --- /dev/null +++ b/kernel_headers/media/msmb_pproc.h @@ -0,0 +1,429 @@ +#ifndef __MSMB_PPROC_H +#define __MSMB_PPROC_H + +#ifdef MSM_CAMERA_BIONIC +#include +#endif +#ifdef CONFIG_COMPAT +#include +#endif +#include +#include +#include + +/* Should be same as VIDEO_MAX_PLANES in videodev2.h */ +#define MAX_PLANES VIDEO_MAX_PLANES + +#define MAX_NUM_CPP_STRIPS 8 +#define MSM_CPP_MAX_NUM_PLANES 3 +#define MSM_CPP_MIN_FRAME_LENGTH 13 +#define MSM_CPP_MAX_FRAME_LENGTH 2048 +#define MSM_CPP_MAX_FW_NAME_LEN 32 +#define MAX_FREQ_TBL 10 + +enum msm_cpp_frame_type { + MSM_CPP_OFFLINE_FRAME, + MSM_CPP_REALTIME_FRAME, +}; + +enum msm_vpe_frame_type { + MSM_VPE_OFFLINE_FRAME, + MSM_VPE_REALTIME_FRAME, +}; + +struct msm_cpp_frame_strip_info { + uint32_t scale_v_en; + uint32_t scale_h_en; + + uint32_t upscale_v_en; + uint32_t upscale_h_en; + + int32_t src_start_x; + uint32_t src_end_x; + int32_t src_start_y; + uint32_t src_end_y; + + int32_t temporal_src_start_x; + uint32_t temporal_src_end_x; + int32_t temporal_src_start_y; + uint32_t temporal_src_end_y; + + /* Padding is required for upscaler because it does not + * pad internally like other blocks, also needed for rotation + * rotation expects all the blocks in the stripe to be the same size + * Padding is done such that all the extra padded pixels + * are on the right and bottom + */ + uint32_t pad_bottom; + uint32_t pad_top; + uint32_t pad_right; + uint32_t pad_left; + + uint32_t v_init_phase; + uint32_t h_init_phase; + uint32_t h_phase_step; + uint32_t v_phase_step; + + uint32_t spatial_denoise_crop_width_first_pixel; + uint32_t spatial_denoise_crop_width_last_pixel; + uint32_t spatial_denoise_crop_height_first_line; + uint32_t spatial_denoise_crop_height_last_line; + + uint32_t sharpen_crop_height_first_line; + uint32_t sharpen_crop_height_last_line; + uint32_t sharpen_crop_width_first_pixel; + uint32_t sharpen_crop_width_last_pixel; + + uint32_t temporal_denoise_crop_width_first_pixel; + uint32_t temporal_denoise_crop_width_last_pixel; + uint32_t temporal_denoise_crop_height_first_line; + uint32_t temporal_denoise_crop_height_last_line; + + uint32_t prescaler_spatial_denoise_crop_width_first_pixel; + uint32_t prescaler_spatial_denoise_crop_width_last_pixel; + uint32_t prescaler_spatial_denoise_crop_height_first_line; + uint32_t prescaler_spatial_denoise_crop_height_last_line; + + uint32_t state_crop_width_first_pixel; + uint32_t state_crop_width_last_pixel; + uint32_t state_crop_height_first_line; + uint32_t state_crop_height_last_line; + + int32_t dst_start_x; + uint32_t dst_end_x; + int32_t dst_start_y; + uint32_t dst_end_y; + + int32_t temporal_dst_start_x; + uint32_t temporal_dst_end_x; + int32_t temporal_dst_start_y; + uint32_t temporal_dst_end_y; + + uint32_t input_bytes_per_pixel; + uint32_t output_bytes_per_pixel; + uint32_t temporal_bytes_per_pixel; + + uint32_t source_address[2]; + uint32_t destination_address[2]; + /* source_address[1] is used for CbCR planar + * to CbCr interleaved conversion + */ + uint32_t temporal_source_address[2]; + /* destination_address[1] is used for CbCr interleved + * to CbCr planar conversion + */ + uint32_t temporal_destination_address[2]; + uint32_t src_stride; + uint32_t dst_stride; + uint32_t rotate_270; + uint32_t horizontal_flip; + uint32_t vertical_flip; + uint32_t scale_output_width; + uint32_t scale_output_height; + uint32_t spatial_denoise_crop_en; + uint32_t sharpen_crop_en; + uint32_t temporal_denoise_crop_en; + uint32_t prescaler_spatial_denoise_crop_en; + uint32_t state_crop_en; +}; + +struct msm_cpp_buffer_info_t { + int32_t fd; + uint32_t index; + uint32_t offset; + uint8_t native_buff; + uint8_t processed_divert; + uint32_t identity; +}; + +struct msm_cpp_stream_buff_info_t { + uint32_t identity; + uint32_t num_buffs; + struct msm_cpp_buffer_info_t *buffer_info; +}; + +struct msm_cpp_frame_info_t { + int32_t frame_id; + struct timeval timestamp; + uint32_t inst_id; + uint32_t identity; + uint32_t client_id; + enum msm_cpp_frame_type frame_type; + uint32_t num_strips; + struct msm_cpp_frame_strip_info *strip_info; + uint32_t msg_len; + uint32_t *cpp_cmd_msg; + int src_fd; + int dst_fd; + struct timeval in_time, out_time; + void *cookie; + int32_t *status; + int32_t duplicate_output; + uint32_t duplicate_identity; + struct msm_cpp_buffer_info_t input_buffer_info; + struct msm_cpp_buffer_info_t output_buffer_info[2]; + struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2]; +}; + +struct msm_cpp_pop_stream_info_t { + int32_t frame_id; + uint32_t identity; +}; + +struct cpp_hw_info { + uint32_t cpp_hw_version; + uint32_t cpp_hw_caps; + unsigned long freq_tbl[MAX_FREQ_TBL]; + uint32_t freq_tbl_count; +}; + +struct msm_vpe_frame_strip_info { + uint32_t src_w; + uint32_t src_h; + uint32_t dst_w; + uint32_t dst_h; + uint32_t src_x; + uint32_t src_y; + uint32_t phase_step_x; + uint32_t phase_step_y; + uint32_t phase_init_x; + uint32_t phase_init_y; +}; + +struct msm_vpe_buffer_info_t { + int32_t fd; + uint32_t index; + uint32_t offset; + uint8_t native_buff; + uint8_t processed_divert; +}; + +struct msm_vpe_stream_buff_info_t { + uint32_t identity; + uint32_t num_buffs; + struct msm_vpe_buffer_info_t *buffer_info; +}; + +struct msm_vpe_frame_info_t { + int32_t frame_id; + struct timeval timestamp; + uint32_t inst_id; + uint32_t identity; + uint32_t client_id; + enum msm_vpe_frame_type frame_type; + struct msm_vpe_frame_strip_info strip_info; + unsigned long src_fd; + unsigned long dst_fd; + struct ion_handle *src_ion_handle; + struct ion_handle *dest_ion_handle; + unsigned long src_phyaddr; + unsigned long dest_phyaddr; + unsigned long src_chroma_plane_offset; + unsigned long dest_chroma_plane_offset; + struct timeval in_time, out_time; + void *cookie; + + struct msm_vpe_buffer_info_t input_buffer_info; + struct msm_vpe_buffer_info_t output_buffer_info; +}; + +struct msm_pproc_queue_buf_info { + struct msm_buf_mngr_info buff_mgr_info; + uint8_t is_buf_dirty; +}; + +struct msm_cpp_clock_settings_t { + unsigned long clock_rate; + uint64_t avg; + uint64_t inst; +}; + +#define VIDIOC_MSM_CPP_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_GET_INST_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_LOAD_FIRMWARE \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_GET_HW_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_FLUSH_QUEUE \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_VPE_CFG \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_VPE_TRANSACTION_SETUP \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 9, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_VPE_GET_EVENTPAYLOAD \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_VPE_GET_INST_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_VPE_ENQUEUE_STREAM_BUFF_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 12, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_VPE_DEQUEUE_STREAM_BUFF_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_QUEUE_BUF \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_APPEND_STREAM_BUFF_INFO \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_SET_CLOCK \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 16, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_POP_STREAM_BUFFER \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 17, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_IOMMU_ATTACH \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 18, struct msm_camera_v4l2_ioctl_t) + +#define VIDIOC_MSM_CPP_IOMMU_DETACH \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 19, struct msm_camera_v4l2_ioctl_t) + + +#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0) +#define V4L2_EVENT_VPE_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 1) + +struct msm_camera_v4l2_ioctl_t { + uint32_t id; + size_t len; + int32_t trans_code; + void *ioctl_ptr; +}; + +#ifdef CONFIG_COMPAT +struct msm_cpp_frame_info32_t { + int32_t frame_id; + struct compat_timeval timestamp; + uint32_t inst_id; + uint32_t identity; + uint32_t client_id; + enum msm_cpp_frame_type frame_type; + uint32_t num_strips; + compat_caddr_t strip_info; + uint32_t msg_len; + compat_uint_t cpp_cmd_msg; + int src_fd; + int dst_fd; + struct compat_timeval in_time, out_time; + compat_caddr_t cookie; + compat_int_t status; + int32_t duplicate_output; + uint32_t duplicate_identity; + struct msm_cpp_buffer_info_t input_buffer_info; + struct msm_cpp_buffer_info_t output_buffer_info[2]; + struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2]; +}; + +struct msm_cpp_clock_settings32_t { + compat_long_t clock_rate; + uint64_t avg; + uint64_t inst; +}; + +struct msm_cpp_stream_buff_info32_t { + uint32_t identity; + uint32_t num_buffs; + compat_caddr_t buffer_info; +}; + +struct msm_pproc_queue_buf_info32_t { + struct msm_buf_mngr_info32_t buff_mgr_info; + uint8_t is_buf_dirty; +}; + +struct cpp_hw_info_32_t { + uint32_t cpp_hw_version; + uint32_t cpp_hw_caps; + compat_long_t freq_tbl[MAX_FREQ_TBL]; + uint32_t freq_tbl_count; +}; + + +#define VIDIOC_MSM_CPP_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_GET_INST_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_LOAD_FIRMWARE32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_GET_HW_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_FLUSH_QUEUE32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_VPE_CFG32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_VPE_TRANSACTION_SETUP32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 9, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_VPE_GET_EVENTPAYLOAD32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_VPE_GET_INST_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_VPE_ENQUEUE_STREAM_BUFF_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 12, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_VPE_DEQUEUE_STREAM_BUFF_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_QUEUE_BUF32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_APPEND_STREAM_BUFF_INFO32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_SET_CLOCK32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 16, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_POP_STREAM_BUFFER32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 17, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_IOMMU_ATTACH32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 18, struct msm_camera_v4l2_ioctl32_t) + +#define VIDIOC_MSM_CPP_IOMMU_DETACH32 \ + _IOWR('V', BASE_VIDIOC_PRIVATE + 19, struct msm_camera_v4l2_ioctl32_t) + +struct msm_camera_v4l2_ioctl32_t { + uint32_t id; + uint32_t len; + int32_t trans_code; + compat_caddr_t ioctl_ptr; +}; +#endif + +#endif /* __MSMB_PPROC_H */ diff --git a/kernel_headers/media/radio-iris-commands.h b/kernel_headers/media/radio-iris-commands.h new file mode 100644 index 0000000..06ce22a --- /dev/null +++ b/kernel_headers/media/radio-iris-commands.h @@ -0,0 +1,109 @@ +#ifndef __RADIO_IRIS_COMMANDS_H +#define __RADIO_IRIS_COMMANDS_H + +#include +#include +#include +#include + +enum v4l2_cid_private_iris_t { + V4L2_CID_PRIVATE_IRIS_SRCHMODE = (0x08000000 + 1), + V4L2_CID_PRIVATE_IRIS_SCANDWELL, + V4L2_CID_PRIVATE_IRIS_SRCHON, + V4L2_CID_PRIVATE_IRIS_STATE, + V4L2_CID_PRIVATE_IRIS_TRANSMIT_MODE, + V4L2_CID_PRIVATE_IRIS_RDSGROUP_MASK, + V4L2_CID_PRIVATE_IRIS_REGION, + V4L2_CID_PRIVATE_IRIS_SIGNAL_TH, + V4L2_CID_PRIVATE_IRIS_SRCH_PTY, + V4L2_CID_PRIVATE_IRIS_SRCH_PI, + V4L2_CID_PRIVATE_IRIS_SRCH_CNT, + V4L2_CID_PRIVATE_IRIS_EMPHASIS, + V4L2_CID_PRIVATE_IRIS_RDS_STD, + V4L2_CID_PRIVATE_IRIS_SPACING, + V4L2_CID_PRIVATE_IRIS_RDSON, + V4L2_CID_PRIVATE_IRIS_RDSGROUP_PROC, + V4L2_CID_PRIVATE_IRIS_LP_MODE, + V4L2_CID_PRIVATE_IRIS_ANTENNA, + V4L2_CID_PRIVATE_IRIS_RDSD_BUF, + V4L2_CID_PRIVATE_IRIS_PSALL, /*0x8000014*/ + + /*v4l2 Tx controls*/ + V4L2_CID_PRIVATE_IRIS_TX_SETPSREPEATCOUNT, + V4L2_CID_PRIVATE_IRIS_STOP_RDS_TX_PS_NAME, + V4L2_CID_PRIVATE_IRIS_STOP_RDS_TX_RT, + V4L2_CID_PRIVATE_IRIS_IOVERC, + V4L2_CID_PRIVATE_IRIS_INTDET, + V4L2_CID_PRIVATE_IRIS_MPX_DCC, + V4L2_CID_PRIVATE_IRIS_AF_JUMP, + V4L2_CID_PRIVATE_IRIS_RSSI_DELTA, + V4L2_CID_PRIVATE_IRIS_HLSI, /*0x800001d*/ + + /*Diagnostic commands*/ + V4L2_CID_PRIVATE_IRIS_SOFT_MUTE, + V4L2_CID_PRIVATE_IRIS_RIVA_ACCS_ADDR, + V4L2_CID_PRIVATE_IRIS_RIVA_ACCS_LEN, + V4L2_CID_PRIVATE_IRIS_RIVA_PEEK, + V4L2_CID_PRIVATE_IRIS_RIVA_POKE, + V4L2_CID_PRIVATE_IRIS_SSBI_ACCS_ADDR, + V4L2_CID_PRIVATE_IRIS_SSBI_PEEK, + V4L2_CID_PRIVATE_IRIS_SSBI_POKE, + V4L2_CID_PRIVATE_IRIS_TX_TONE, + V4L2_CID_PRIVATE_IRIS_RDS_GRP_COUNTERS, + V4L2_CID_PRIVATE_IRIS_SET_NOTCH_FILTER, /* 0x8000028 */ + V4L2_CID_PRIVATE_IRIS_SET_AUDIO_PATH, /* TAVARUA specific command */ + V4L2_CID_PRIVATE_IRIS_DO_CALIBRATION, + V4L2_CID_PRIVATE_IRIS_SRCH_ALGORITHM, /* TAVARUA specific command */ + V4L2_CID_PRIVATE_IRIS_GET_SINR, + V4L2_CID_PRIVATE_INTF_LOW_THRESHOLD, + V4L2_CID_PRIVATE_INTF_HIGH_THRESHOLD, + V4L2_CID_PRIVATE_SINR_THRESHOLD, + V4L2_CID_PRIVATE_SINR_SAMPLES, + V4L2_CID_PRIVATE_SPUR_FREQ, + V4L2_CID_PRIVATE_SPUR_FREQ_RMSSI, + V4L2_CID_PRIVATE_SPUR_SELECTION, + V4L2_CID_PRIVATE_UPDATE_SPUR_TABLE, + V4L2_CID_PRIVATE_VALID_CHANNEL, + V4L2_CID_PRIVATE_AF_RMSSI_TH, + V4L2_CID_PRIVATE_AF_RMSSI_SAMPLES, + V4L2_CID_PRIVATE_GOOD_CH_RMSSI_TH, + V4L2_CID_PRIVATE_SRCHALGOTYPE, + V4L2_CID_PRIVATE_CF0TH12, + V4L2_CID_PRIVATE_SINRFIRSTSTAGE, + V4L2_CID_PRIVATE_RMSSIFIRSTSTAGE, + V4L2_CID_PRIVATE_RXREPEATCOUNT, + + /*using private CIDs under userclass*/ + V4L2_CID_PRIVATE_IRIS_READ_DEFAULT = 0x00980928, + V4L2_CID_PRIVATE_IRIS_WRITE_DEFAULT, + V4L2_CID_PRIVATE_IRIS_SET_CALIBRATION, + V4L2_CID_PRIVATE_IRIS_SET_SPURTABLE = 0x0098092D, + V4L2_CID_PRIVATE_IRIS_GET_SPUR_TBL = 0x0098092E, +}; + +enum iris_evt_t { + IRIS_EVT_RADIO_READY, + IRIS_EVT_TUNE_SUCC, + IRIS_EVT_SEEK_COMPLETE, + IRIS_EVT_SCAN_NEXT, + IRIS_EVT_NEW_RAW_RDS, + IRIS_EVT_NEW_RT_RDS, + IRIS_EVT_NEW_PS_RDS, + IRIS_EVT_ERROR, + IRIS_EVT_BELOW_TH, + IRIS_EVT_ABOVE_TH, + IRIS_EVT_STEREO, + IRIS_EVT_MONO, + IRIS_EVT_RDS_AVAIL, + IRIS_EVT_RDS_NOT_AVAIL, + IRIS_EVT_NEW_SRCH_LIST, + IRIS_EVT_NEW_AF_LIST, + IRIS_EVT_TXRDSDAT, + IRIS_EVT_TXRDSDONE, + IRIS_EVT_RADIO_DISABLED, + IRIS_EVT_NEW_ODA, + IRIS_EVT_NEW_RT_PLUS, + IRIS_EVT_NEW_ERT, + IRIS_EVT_SPUR_TBL, +}; +#endif /* __RADIO_IRIS_COMMANDS_H */ diff --git a/kernel_headers/media/radio-iris.h b/kernel_headers/media/radio-iris.h new file mode 100644 index 0000000..f411c41 --- /dev/null +++ b/kernel_headers/media/radio-iris.h @@ -0,0 +1,1095 @@ +/* + * + * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved. + * + * This file is based on include/net/bluetooth/hci_core.h + * + * Written 2000,2001 by Maxim Krasnyansky + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY + * CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, + * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS + * SOFTWARE IS DISCLAIMED. + */ + +#ifndef __UAPI_RADIO_HCI_CORE_H +#define __UAPI_RADIO_HCI_CORE_H + +#include +#include +#include +#include +#include + +const unsigned char MIN_TX_TONE_VAL = 0x00; +const unsigned char MAX_TX_TONE_VAL = 0x07; +const unsigned char MIN_HARD_MUTE_VAL = 0x00; +const unsigned char MAX_HARD_MUTE_VAL = 0x03; +const unsigned char MIN_SRCH_MODE = 0x00; +const unsigned char MAX_SRCH_MODE = 0x09; +const unsigned char MIN_SCAN_DWELL = 0x00; +const unsigned char MAX_SCAN_DWELL = 0x0F; +const unsigned char MIN_SIG_TH = 0x00; +const unsigned char MAX_SIG_TH = 0x03; +const unsigned char MIN_PTY = 0X00; +const unsigned char MAX_PTY = 0x1F; +const unsigned short MIN_PI = 0x0000; +const unsigned short MAX_PI = 0xFFFF; +const unsigned char MIN_SRCH_STATIONS_CNT = 0x00; +const unsigned char MAX_SRCH_STATIONS_CNT = 0x14; +const unsigned char MIN_CHAN_SPACING = 0x00; +const unsigned char MAX_CHAN_SPACING = 0x02; +const unsigned char MIN_EMPHASIS = 0x00; +const unsigned char MAX_EMPHASIS = 0x01; +const unsigned char MIN_RDS_STD = 0x00; +const unsigned char MAX_RDS_STD = 0x02; +const unsigned char MIN_ANTENNA_VAL = 0x00; +const unsigned char MAX_ANTENNA_VAL = 0x01; +const unsigned char MIN_TX_PS_REPEAT_CNT = 0x01; +const unsigned char MAX_TX_PS_REPEAT_CNT = 0x0F; +const unsigned char MIN_SOFT_MUTE = 0x00; +const unsigned char MAX_SOFT_MUTE = 0x01; +const unsigned char MIN_PEEK_ACCESS_LEN = 0x01; +const unsigned char MAX_PEEK_ACCESS_LEN = 0xF9; +const unsigned char MIN_RESET_CNTR = 0x00; +const unsigned char MAX_RESET_CNTR = 0x01; +const unsigned char MIN_HLSI = 0x00; +const unsigned char MAX_HLSI = 0x02; +const unsigned char MIN_NOTCH_FILTER = 0x00; +const unsigned char MAX_NOTCH_FILTER = 0x02; +const unsigned char MIN_INTF_DET_OUT_LW_TH = 0x00; +const unsigned char MAX_INTF_DET_OUT_LW_TH = 0xFF; +const unsigned char MIN_INTF_DET_OUT_HG_TH = 0x00; +const unsigned char MAX_INTF_DET_OUT_HG_TH = 0xFF; +const signed char MIN_SINR_TH = -128; +const signed char MAX_SINR_TH = 127; +const unsigned char MIN_SINR_SAMPLES = 0x01; +const unsigned char MAX_SINR_SAMPLES = 0xFF; + + +/* ---- HCI Packet structures ---- */ +#define RADIO_HCI_COMMAND_HDR_SIZE sizeof(struct radio_hci_command_hdr) +#define RADIO_HCI_EVENT_HDR_SIZE sizeof(struct radio_hci_event_hdr) + +/* HCI data types */ +#define RADIO_HCI_COMMAND_PKT 0x11 +#define RADIO_HCI_EVENT_PKT 0x14 +/*HCI reponce packets*/ +#define MAX_RIVA_PEEK_RSP_SIZE 251 +/* default data access */ +#define DEFAULT_DATA_OFFSET 2 +#define DEFAULT_DATA_SIZE 249 +/* Power levels are 0-7, but SOC will expect values from 0-255 + * So the each level step size will be 255/7 = 36 */ +#define FM_TX_PWR_LVL_STEP_SIZE 36 +#define FM_TX_PWR_LVL_0 0 /* Lowest power lvl that can be set for Tx */ +#define FM_TX_PWR_LVL_MAX 7 /* Max power lvl for Tx */ +#define FM_TX_PHY_CFG_MODE 0x3c +#define FM_TX_PHY_CFG_LEN 0x10 +#define FM_TX_PWR_GAIN_OFFSET 14 +/**RDS CONFIG MODE**/ +#define FM_RDS_CNFG_MODE 0x0f +#define FM_RDS_CNFG_LEN 0x10 +#define AF_RMSSI_TH_LSB_OFFSET 10 +#define AF_RMSSI_TH_MSB_OFFSET 11 +#define AF_RMSSI_SAMPLES_OFFSET 15 +/**RX CONFIG MODE**/ +#define FM_RX_CONFG_MODE 0x15 +#define FM_RX_CNFG_LEN 0x20 +#define GD_CH_RMSSI_TH_OFFSET 12 +#define MAX_GD_CH_RMSSI_TH 127 +#define SRCH_ALGO_TYPE_OFFSET 25 +#define SINRFIRSTSTAGE_OFFSET 26 +#define RMSSIFIRSTSTAGE_OFFSET 27 +#define CF0TH12_BYTE1_OFFSET 8 +#define CF0TH12_BYTE2_OFFSET 9 +#define CF0TH12_BYTE3_OFFSET 10 +#define CF0TH12_BYTE4_OFFSET 11 +#define MAX_SINR_FIRSTSTAGE 127 +#define MAX_RMSSI_FIRSTSTAGE 127 +#define RDS_PS0_XFR_MODE 0x01 +#define RDS_PS0_LEN 6 +#define RX_REPEATE_BYTE_OFFSET 5 +#define FM_SPUR_TBL_SIZE 240 +#define SPUR_DATA_LEN 16 +#define ENTRIES_EACH_CMD 15 +#define SPUR_DATA_INDEX 2 +#define FM_AF_LIST_MAX_SIZE 200 +#define AF_LIST_MAX (FM_AF_LIST_MAX_SIZE / 4) /* Each AF frequency consist + of sizeof(int) bytes */ +/* HCI timeouts */ +#define RADIO_HCI_TIMEOUT (10000) /* 10 seconds */ + +#define TUNE_PARAM 16 +struct radio_hci_command_hdr { + __le16 opcode; /* OCF & OGF */ + __u8 plen; +} __attribute__((packed)); + +struct radio_hci_event_hdr { + __u8 evt; + __u8 plen; +} __attribute__((packed)); + +struct radio_hci_dev { + char name[8]; + unsigned long flags; + __u16 id; + __u8 bus; + __u8 dev_type; + __u8 dev_name[248]; + __u8 dev_class[3]; + __u8 features[8]; + __u8 commands[64]; + + unsigned int data_block_len; + unsigned long cmd_last_tx; + + struct sk_buff *sent_cmd; + + __u32 req_status; + __u32 req_result; + atomic_t cmd_cnt; + + struct tasklet_struct cmd_task; + struct tasklet_struct rx_task; + struct tasklet_struct tx_task; + + struct sk_buff_head rx_q; + struct sk_buff_head raw_q; + struct sk_buff_head cmd_q; + + struct mutex req_lock; + wait_queue_head_t req_wait_q; + + int (*open)(struct radio_hci_dev *hdev); + int (*close)(struct radio_hci_dev *hdev); + int (*flush)(struct radio_hci_dev *hdev); + int (*send)(struct sk_buff *skb); + void (*destruct)(struct radio_hci_dev *hdev); + void (*notify)(struct radio_hci_dev *hdev, unsigned int evt); +}; + +int radio_hci_register_dev(struct radio_hci_dev *hdev); +int radio_hci_unregister_dev(struct radio_hci_dev *hdev); +int radio_hci_recv_frame(struct sk_buff *skb); +int radio_hci_send_cmd(struct radio_hci_dev *hdev, __u16 opcode, __u32 plen, + void *param); +void radio_hci_event_packet(struct radio_hci_dev *hdev, struct sk_buff *skb); + +/* Opcode OCF */ +/* HCI recv control commands opcode */ +#define HCI_OCF_FM_ENABLE_RECV_REQ 0x0001 +#define HCI_OCF_FM_DISABLE_RECV_REQ 0x0002 +#define HCI_OCF_FM_GET_RECV_CONF_REQ 0x0003 +#define HCI_OCF_FM_SET_RECV_CONF_REQ 0x0004 +#define HCI_OCF_FM_SET_MUTE_MODE_REQ 0x0005 +#define HCI_OCF_FM_SET_STEREO_MODE_REQ 0x0006 +#define HCI_OCF_FM_SET_ANTENNA 0x0007 +#define HCI_OCF_FM_SET_SIGNAL_THRESHOLD 0x0008 +#define HCI_OCF_FM_GET_SIGNAL_THRESHOLD 0x0009 +#define HCI_OCF_FM_GET_STATION_PARAM_REQ 0x000A +#define HCI_OCF_FM_GET_PROGRAM_SERVICE_REQ 0x000B +#define HCI_OCF_FM_GET_RADIO_TEXT_REQ 0x000C +#define HCI_OCF_FM_GET_AF_LIST_REQ 0x000D +#define HCI_OCF_FM_SEARCH_STATIONS 0x000E +#define HCI_OCF_FM_SEARCH_RDS_STATIONS 0x000F +#define HCI_OCF_FM_SEARCH_STATIONS_LIST 0x0010 +#define HCI_OCF_FM_CANCEL_SEARCH 0x0011 +#define HCI_OCF_FM_RDS_GRP 0x0012 +#define HCI_OCF_FM_RDS_GRP_PROCESS 0x0013 +#define HCI_OCF_FM_EN_WAN_AVD_CTRL 0x0014 +#define HCI_OCF_FM_EN_NOTCH_CTRL 0x0015 +#define HCI_OCF_FM_SET_EVENT_MASK 0x0016 +#define HCI_OCF_FM_SET_CH_DET_THRESHOLD 0x0017 +#define HCI_OCF_FM_GET_CH_DET_THRESHOLD 0x0018 +/* HCI trans control commans opcode*/ +#define HCI_OCF_FM_ENABLE_TRANS_REQ 0x0001 +#define HCI_OCF_FM_DISABLE_TRANS_REQ 0x0002 +#define HCI_OCF_FM_GET_TRANS_CONF_REQ 0x0003 +#define HCI_OCF_FM_SET_TRANS_CONF_REQ 0x0004 +#define HCI_OCF_FM_RDS_RT_REQ 0x0008 +#define HCI_OCF_FM_RDS_PS_REQ 0x0009 + + +/* HCI common control commands opcode */ +#define HCI_OCF_FM_TUNE_STATION_REQ 0x0001 +#define HCI_OCF_FM_DEFAULT_DATA_READ 0x0002 +#define HCI_OCF_FM_DEFAULT_DATA_WRITE 0x0003 +#define HCI_OCF_FM_RESET 0x0004 +#define HCI_OCF_FM_GET_FEATURE_LIST 0x0005 +#define HCI_OCF_FM_DO_CALIBRATION 0x0006 +#define HCI_OCF_FM_SET_CALIBRATION 0x0007 +#define HCI_OCF_FM_SET_SPUR_TABLE 0x0008 +#define HCI_OCF_FM_GET_SPUR_TABLE 0x0009 + +/*HCI Status parameters commands*/ +#define HCI_OCF_FM_READ_GRP_COUNTERS 0x0001 + +/*HCI Diagnostic commands*/ +#define HCI_OCF_FM_PEEK_DATA 0x0002 +#define HCI_OCF_FM_POKE_DATA 0x0003 +#define HCI_OCF_FM_SSBI_PEEK_REG 0x0004 +#define HCI_OCF_FM_SSBI_POKE_REG 0x0005 +#define HCI_OCF_FM_STATION_DBG_PARAM 0x0007 +#define HCI_FM_SET_INTERNAL_TONE_GENRATOR 0x0008 + +/* Opcode OGF */ +#define HCI_OGF_FM_RECV_CTRL_CMD_REQ 0x0013 +#define HCI_OGF_FM_TRANS_CTRL_CMD_REQ 0x0014 +#define HCI_OGF_FM_COMMON_CTRL_CMD_REQ 0x0015 +#define HCI_OGF_FM_STATUS_PARAMETERS_CMD_REQ 0x0016 +#define HCI_OGF_FM_TEST_CMD_REQ 0x0017 +#define HCI_OGF_FM_DIAGNOSTIC_CMD_REQ 0x003F + +/* Command opcode pack/unpack */ +#define hci_opcode_pack(ogf, ocf) (__u16) ((ocf & 0x03ff)|(ogf << 10)) +#define hci_opcode_ogf(op) (op >> 10) +#define hci_opcode_ocf(op) (op & 0x03ff) +#define hci_recv_ctrl_cmd_op_pack(ocf) \ + (__u16) hci_opcode_pack(HCI_OGF_FM_RECV_CTRL_CMD_REQ, ocf) +#define hci_trans_ctrl_cmd_op_pack(ocf) \ + (__u16) hci_opcode_pack(HCI_OGF_FM_TRANS_CTRL_CMD_REQ, ocf) +#define hci_common_cmd_op_pack(ocf) \ + (__u16) hci_opcode_pack(HCI_OGF_FM_COMMON_CTRL_CMD_REQ, ocf) +#define hci_status_param_op_pack(ocf) \ + (__u16) hci_opcode_pack(HCI_OGF_FM_STATUS_PARAMETERS_CMD_REQ, ocf) +#define hci_diagnostic_cmd_op_pack(ocf) \ + (__u16) hci_opcode_pack(HCI_OGF_FM_DIAGNOSTIC_CMD_REQ, ocf) + + +/* HCI commands with no arguments*/ +#define HCI_FM_ENABLE_RECV_CMD 1 +#define HCI_FM_DISABLE_RECV_CMD 2 +#define HCI_FM_GET_RECV_CONF_CMD 3 +#define HCI_FM_GET_STATION_PARAM_CMD 4 +#define HCI_FM_GET_SIGNAL_TH_CMD 5 +#define HCI_FM_GET_PROGRAM_SERVICE_CMD 6 +#define HCI_FM_GET_RADIO_TEXT_CMD 7 +#define HCI_FM_GET_AF_LIST_CMD 8 +#define HCI_FM_CANCEL_SEARCH_CMD 9 +#define HCI_FM_RESET_CMD 10 +#define HCI_FM_GET_FEATURES_CMD 11 +#define HCI_FM_STATION_DBG_PARAM_CMD 12 +#define HCI_FM_ENABLE_TRANS_CMD 13 +#define HCI_FM_DISABLE_TRANS_CMD 14 +#define HCI_FM_GET_TX_CONFIG 15 +#define HCI_FM_GET_DET_CH_TH_CMD 16 + +/* Defines for FM TX*/ +#define TX_PS_DATA_LENGTH 108 +#define TX_RT_DATA_LENGTH 64 +#define PS_STRING_LEN 9 + +/* ----- HCI Command request ----- */ +struct hci_fm_recv_conf_req { + __u8 emphasis; + __u8 ch_spacing; + __u8 rds_std; + __u8 hlsi; + __u32 band_low_limit; + __u32 band_high_limit; +} __attribute__((packed)); + +/* ----- HCI Command request ----- */ +struct hci_fm_trans_conf_req_struct { + __u8 emphasis; + __u8 rds_std; + __u32 band_low_limit; + __u32 band_high_limit; +} __attribute__((packed)); + + +/* ----- HCI Command request ----- */ +struct hci_fm_tx_ps { + __u8 ps_control; + __u16 pi; + __u8 pty; + __u8 ps_repeatcount; + __u8 ps_num; + __u8 ps_data[TX_PS_DATA_LENGTH]; +} __attribute__((packed)); + +struct hci_fm_tx_rt { + __u8 rt_control; + __u16 pi; + __u8 pty; + __u8 rt_len; + __u8 rt_data[TX_RT_DATA_LENGTH]; +} __attribute__((packed)); + +struct hci_fm_mute_mode_req { + __u8 hard_mute; + __u8 soft_mute; +} __attribute__((packed)); + +struct hci_fm_stereo_mode_req { + __u8 stereo_mode; + __u8 sig_blend; + __u8 intf_blend; + __u8 most_switch; +} __attribute__((packed)); + +struct hci_fm_search_station_req { + __u8 srch_mode; + __u8 scan_time; + __u8 srch_dir; +} __attribute__((packed)); + +struct hci_fm_search_rds_station_req { + struct hci_fm_search_station_req srch_station; + __u8 srch_pty; + __u16 srch_pi; +} __attribute__((packed)); + +struct hci_fm_search_station_list_req { + __u8 srch_list_mode; + __u8 srch_list_dir; + __u32 srch_list_max; + __u8 srch_pty; +} __attribute__((packed)); + +struct hci_fm_rds_grp_req { + __u32 rds_grp_enable_mask; + __u32 rds_buf_size; + __u8 en_rds_change_filter; +} __attribute__((packed)); + +struct hci_fm_en_avd_ctrl_req { + __u8 no_freqs; + __u8 freq_index; + __u8 lo_shft; + __u16 freq_min; + __u16 freq_max; +} __attribute__((packed)); + +struct hci_fm_def_data_rd_req { + __u8 mode; + __u8 length; + __u8 param_len; + __u8 param; +} __attribute__((packed)); + +struct hci_fm_def_data_wr_req { + __u8 mode; + __u8 length; + __u8 data[DEFAULT_DATA_SIZE]; +} __attribute__((packed)); + +struct hci_fm_riva_data { + __u8 subopcode; + __u32 start_addr; + __u8 length; +} __attribute__((packed)); + +struct hci_fm_riva_poke { + struct hci_fm_riva_data cmd_params; + __u8 data[MAX_RIVA_PEEK_RSP_SIZE]; +} __attribute__((packed)); + +struct hci_fm_ssbi_req { + __u16 start_addr; + __u8 data; +} __attribute__((packed)); +struct hci_fm_ssbi_peek { + __u16 start_address; +} __attribute__((packed)); + +struct hci_fm_ch_det_threshold { + char sinr; + __u8 sinr_samples; + __u8 low_th; + __u8 high_th; + +} __attribute__((packed)); + +/*HCI events*/ +#define HCI_EV_TUNE_STATUS 0x01 +#define HCI_EV_RDS_LOCK_STATUS 0x02 +#define HCI_EV_STEREO_STATUS 0x03 +#define HCI_EV_SERVICE_AVAILABLE 0x04 +#define HCI_EV_SEARCH_PROGRESS 0x05 +#define HCI_EV_SEARCH_RDS_PROGRESS 0x06 +#define HCI_EV_SEARCH_LIST_PROGRESS 0x07 +#define HCI_EV_RDS_RX_DATA 0x08 +#define HCI_EV_PROGRAM_SERVICE 0x09 +#define HCI_EV_RADIO_TEXT 0x0A +#define HCI_EV_FM_AF_LIST 0x0B +#define HCI_EV_TX_RDS_GRP_AVBLE 0x0C +#define HCI_EV_TX_RDS_GRP_COMPL 0x0D +#define HCI_EV_TX_RDS_CONT_GRP_COMPL 0x0E +#define HCI_EV_CMD_COMPLETE 0x0F +#define HCI_EV_CMD_STATUS 0x10 +#define HCI_EV_TUNE_COMPLETE 0x11 +#define HCI_EV_SEARCH_COMPLETE 0x12 +#define HCI_EV_SEARCH_RDS_COMPLETE 0x13 +#define HCI_EV_SEARCH_LIST_COMPLETE 0x14 + +#define HCI_REQ_DONE 0 +#define HCI_REQ_PEND 1 +#define HCI_REQ_CANCELED 2 +#define HCI_REQ_STATUS 3 + +#define MAX_RAW_RDS_GRPS 21 + +#define RDSGRP_DATA_OFFSET 0x1 + +/*RT PLUS*/ +#define DUMMY_CLASS 0 +#define RT_PLUS_LEN_1_TAG 3 +#define RT_ERT_FLAG_BIT 5 + +/*TAG1*/ +#define TAG1_MSB_OFFSET 3 +#define TAG1_MSB_MASK 7 +#define TAG1_LSB_OFFSET 5 +#define TAG1_POS_MSB_MASK 31 +#define TAG1_POS_MSB_OFFSET 1 +#define TAG1_POS_LSB_OFFSET 7 +#define TAG1_LEN_OFFSET 1 +#define TAG1_LEN_MASK 63 + +/*TAG2*/ +#define TAG2_MSB_OFFSET 5 +#define TAG2_MSB_MASK 1 +#define TAG2_LSB_OFFSET 3 +#define TAG2_POS_MSB_MASK 7 +#define TAG2_POS_MSB_OFFSET 3 +#define TAG2_POS_LSB_OFFSET 5 +#define TAG2_LEN_MASK 31 + +#define AGT_MASK 31 +/*Extract 5 left most bits of lsb of 2nd block*/ +#define AGT(x) (x & AGT_MASK) +/*16 bits of 4th block*/ +#define AID(lsb, msb) ((msb << 8) | (lsb)) +/*Extract 5 right most bits of msb of 2nd block*/ +#define GTC(blk2msb) (blk2msb >> 3) + +#define GRP_3A 0x6 +#define RT_PLUS_AID 0x4bd7 + +/*ERT*/ +#define ERT_AID 0x6552 +#define CARRIAGE_RETURN 0x000D +#define MAX_ERT_SEGMENT 31 +#define ERT_FORMAT_DIR_BIT 1 + +#define EXTRACT_BIT(data, bit_pos) ((data & (1 << bit_pos)) >> bit_pos) + +struct hci_ev_tune_status { + __u8 sub_event; + __le32 station_freq; + __u8 serv_avble; + char rssi; + __u8 stereo_prg; + __u8 rds_sync_status; + __u8 mute_mode; + char sinr; + __u8 intf_det_th; +} __attribute__((packed)); + +struct rds_blk_data { + __u8 rdsMsb; + __u8 rdsLsb; + __u8 blockStatus; +} __attribute__((packed)); + +struct rds_grp_data { + struct rds_blk_data rdsBlk[4]; +} __attribute__((packed)); + +struct hci_ev_rds_rx_data { + __u8 num_rds_grps; + struct rds_grp_data rds_grp_data[MAX_RAW_RDS_GRPS]; +} __attribute__((packed)); + +struct hci_ev_prg_service { + __le16 pi_prg_id; + __u8 pty_prg_type; + __u8 ta_prg_code_type; + __u8 ta_ann_code_flag; + __u8 ms_switch_code_flag; + __u8 dec_id_ctrl_code_flag; + __u8 ps_num; + __u8 prg_service_name[119]; +} __attribute__((packed)); + +struct hci_ev_radio_text { + __le16 pi_prg_id; + __u8 pty_prg_type; + __u8 ta_prg_code_type; + __u8 txt_ab_flag; + __u8 radio_txt[64]; +} __attribute__((packed)); + +struct hci_ev_af_list { + __le32 tune_freq; + __le16 pi_code; + __u8 af_size; + __u8 af_list[FM_AF_LIST_MAX_SIZE]; +} __attribute__((packed)); + +struct hci_ev_cmd_complete { + __u8 num_hci_cmd_pkts; + __le16 cmd_opcode; +} __attribute__((packed)); + +struct hci_ev_cmd_status { + __u8 status; + __u8 num_hci_cmd_pkts; + __le16 status_opcode; +} __attribute__((packed)); + +struct hci_ev_srch_st { + __le32 station_freq; + __u8 rds_cap; + __u8 pty; + __le16 status_opcode; +} __attribute__((packed)); + +struct hci_ev_rel_freq { + __u8 rel_freq_msb; + __u8 rel_freq_lsb; + +} __attribute__((packed)); +struct hci_ev_srch_list_compl { + __u8 num_stations_found; + struct hci_ev_rel_freq rel_freq[20]; +} __attribute__((packed)); + +/* ----- HCI Event Response ----- */ +struct hci_fm_conf_rsp { + __u8 status; + struct hci_fm_recv_conf_req recv_conf_rsp; +} __attribute__((packed)); + +struct hci_fm_get_trans_conf_rsp { + __u8 status; + struct hci_fm_trans_conf_req_struct trans_conf_rsp; +} __attribute__((packed)); +struct hci_fm_sig_threshold_rsp { + __u8 status; + __u8 sig_threshold; +} __attribute__((packed)); + +struct hci_fm_station_rsp { + struct hci_ev_tune_status station_rsp; +} __attribute__((packed)); + +struct hci_fm_prgm_srv_rsp { + __u8 status; + struct hci_ev_prg_service prg_srv; +} __attribute__((packed)); + +struct hci_fm_radio_txt_rsp { + __u8 status; + struct hci_ev_radio_text rd_txt; +} __attribute__((packed)); + +struct hci_fm_af_list_rsp { + __u8 status; + struct hci_ev_af_list rd_txt; +} __attribute__((packed)); + +struct hci_fm_data_rd_rsp { + __u8 status; + __u8 ret_data_len; + __u8 data[DEFAULT_DATA_SIZE]; +} __attribute__((packed)); + +struct hci_fm_feature_list_rsp { + __u8 status; + __u8 feature_mask; +} __attribute__((packed)); + +struct hci_fm_dbg_param_rsp { + __u8 status; + __u8 blend; + __u8 soft_mute; + __u8 inf_blend; + __u8 inf_soft_mute; + __u8 pilot_pil; + __u8 io_verc; + __u8 in_det_out; +} __attribute__((packed)); + +#define CLKSPURID_INDEX0 0 +#define CLKSPURID_INDEX1 5 +#define CLKSPURID_INDEX2 10 +#define CLKSPURID_INDEX3 15 +#define CLKSPURID_INDEX4 20 +#define CLKSPURID_INDEX5 25 + +#define MAX_SPUR_FREQ_LIMIT 30 +#define CKK_SPUR 0x3B +#define SPUR_DATA_SIZE 0x4 +#define SPUR_ENTRIES_PER_ID 0x5 + +#define COMPUTE_SPUR(val) ((((val) - (76000)) / (50))) +#define GET_FREQ(val, bit) ((bit == 1) ? ((val) >> 8) : ((val) & 0xFF)) +#define GET_SPUR_ENTRY_LEVEL(val) ((val) / (5)) + +struct hci_fm_spur_data { + __u32 freq[MAX_SPUR_FREQ_LIMIT]; + __s8 rmssi[MAX_SPUR_FREQ_LIMIT]; + __u8 enable[MAX_SPUR_FREQ_LIMIT]; +} __attribute__((packed)); + + +/* HCI dev events */ +#define RADIO_HCI_DEV_REG 1 +#define RADIO_HCI_DEV_WRITE 2 + +#define hci_req_lock(d) mutex_lock(&d->req_lock) +#define hci_req_unlock(d) mutex_unlock(&d->req_lock) + +/* FM RDS */ +#define RDS_PTYPE 2 +#define RDS_PID_LOWER 1 +#define RDS_PID_HIGHER 0 +#define RDS_OFFSET 5 +#define RDS_PS_LENGTH_OFFSET 7 +#define RDS_STRING 8 +#define RDS_PS_DATA_OFFSET 8 +#define RDS_CONFIG_OFFSET 3 +#define RDS_AF_JUMP_OFFSET 4 +#define PI_CODE_OFFSET 4 +#define AF_SIZE_OFFSET 6 +#define AF_LIST_OFFSET 7 +#define RT_A_B_FLAG_OFFSET 4 +/*FM states*/ + +enum radio_state_t { + FM_OFF, + FM_RECV, + FM_TRANS, + FM_RESET, + FM_CALIB, + FM_TURNING_OFF, + FM_RECV_TURNING_ON, + FM_TRANS_TURNING_ON, + FM_MAX_NO_STATES, +}; + +enum emphasis_type { + FM_RX_EMP75 = 0x0, + FM_RX_EMP50 = 0x1 +}; + +enum channel_space_type { + FM_RX_SPACE_200KHZ = 0x0, + FM_RX_SPACE_100KHZ = 0x1, + FM_RX_SPACE_50KHZ = 0x2 +}; + +enum high_low_injection { + AUTO_HI_LO_INJECTION = 0x0, + LOW_SIDE_INJECTION = 0x1, + HIGH_SIDE_INJECTION = 0x2 +}; + +enum fm_rds_type { + FM_RX_RDBS_SYSTEM = 0x0, + FM_RX_RDS_SYSTEM = 0x1 +}; + +enum iris_region_t { + IRIS_REGION_US, + IRIS_REGION_EU, + IRIS_REGION_JAPAN, + IRIS_REGION_JAPAN_WIDE, + IRIS_REGION_OTHER +}; + +#define STD_BUF_SIZE (256) + +enum iris_buf_t { + IRIS_BUF_SRCH_LIST, + IRIS_BUF_EVENTS, + IRIS_BUF_RT_RDS, + IRIS_BUF_PS_RDS, + IRIS_BUF_RAW_RDS, + IRIS_BUF_AF_LIST, + IRIS_BUF_PEEK, + IRIS_BUF_SSBI_PEEK, + IRIS_BUF_RDS_CNTRS, + IRIS_BUF_RD_DEFAULT, + IRIS_BUF_CAL_DATA, + IRIS_BUF_RT_PLUS, + IRIS_BUF_ERT, + IRIS_BUF_SPUR, + IRIS_BUF_MAX, +}; + +enum iris_xfr_t { + IRIS_XFR_SYNC, + IRIS_XFR_ERROR, + IRIS_XFR_SRCH_LIST, + IRIS_XFR_RT_RDS, + IRIS_XFR_PS_RDS, + IRIS_XFR_AF_LIST, + IRIS_XFR_MAX +}; + +#undef FMDBG +#ifdef FM_DEBUG +#define FMDBG(fmt, args...) pr_info("iris_radio: " fmt, ##args) +#else +#define FMDBG(fmt, args...) +#endif + +#undef FMDERR +#define FMDERR(fmt, args...) pr_err("iris_radio: " fmt, ##args) + +/* Search options */ +enum search_t { + SEEK, + SCAN, + SCAN_FOR_STRONG, + SCAN_FOR_WEAK, + RDS_SEEK_PTY, + RDS_SCAN_PTY, + RDS_SEEK_PI, + RDS_AF_JUMP, +}; + +enum spur_entry_levels { + ENTRY_0, + ENTRY_1, + ENTRY_2, + ENTRY_3, + ENTRY_4, + ENTRY_5, +}; + +/* Band limits */ +#define REGION_US_EU_BAND_LOW 87500 +#define REGION_US_EU_BAND_HIGH 108000 +#define REGION_JAPAN_STANDARD_BAND_LOW 76000 +#define REGION_JAPAN_STANDARD_BAND_HIGH 90000 +#define REGION_JAPAN_WIDE_BAND_LOW 90000 +#define REGION_JAPAN_WIDE_BAND_HIGH 108000 + +#define SRCH_MODE 0x07 +#define SRCH_DIR 0x08 /* 0-up 1-down */ +#define SCAN_DWELL 0x70 +#define SRCH_ON 0x80 + +/* I/O Control */ +#define IOC_HRD_MUTE 0x03 +#define IOC_SFT_MUTE 0x01 +#define IOC_MON_STR 0x01 +#define IOC_SIG_BLND 0x01 +#define IOC_INTF_BLND 0x01 +#define IOC_ANTENNA 0x01 + +/* RDS Control */ +#define RDS_ON 0x01 +#define RDS_BUF_SZ 100 + +/* constants */ +#define RDS_BLOCKS_NUM (4) +#define BYTES_PER_BLOCK (3) +#define MAX_PS_LENGTH (108) +#define MAX_RT_LENGTH (64) +#define RDS_GRP_CNTR_LEN (36) +#define RX_RT_DATA_LENGTH (63) +/* Search direction */ +#define SRCH_DIR_UP (0) +#define SRCH_DIR_DOWN (1) + +/*Search RDS stations*/ +#define SEARCH_RDS_STNS_MODE_OFFSET 4 + +/*Search Station list */ +#define PARAMS_PER_STATION 0x08 +#define STN_NUM_OFFSET 0x01 +#define STN_FREQ_OFFSET 0x02 +#define KHZ_TO_MHZ 1000 +#define GET_MSB(x)((x >> 8) & 0xFF) +#define GET_LSB(x)((x) & 0xFF) + +/* control options */ +#define CTRL_ON (1) +#define CTRL_OFF (0) + +/*Diagnostic commands*/ + +#define RIVA_PEEK_OPCODE 0x0D +#define RIVA_POKE_OPCODE 0x0C + +#define PEEK_DATA_OFSET 0x1 +#define RIVA_PEEK_PARAM 0x6 +#define RIVA_PEEK_LEN_OFSET 0x6 +#define SSBI_PEEK_LEN 0x01 +/*Calibration data*/ +#define PROCS_CALIB_MODE 1 +#define PROCS_CALIB_SIZE 23 +#define DC_CALIB_MODE 2 +#define DC_CALIB_SIZE 48 +#define RSB_CALIB_MODE 3 +#define RSB_CALIB_SIZE 4 +#define CALIB_DATA_OFSET 2 +#define CALIB_MODE_OFSET 1 +#define MAX_CALIB_SIZE 75 + +/* Channel validity */ +#define INVALID_CHANNEL (0) +#define VALID_CHANNEL (1) + +struct hci_fm_set_cal_req_proc { + __u8 mode; + /*Max process calibration data size*/ + __u8 data[PROCS_CALIB_SIZE]; +} __attribute__((packed)); + +struct hci_fm_set_cal_req_dc { + __u8 mode; + /*Max DC calibration data size*/ + __u8 data[DC_CALIB_SIZE]; +} __attribute__((packed)); + +struct hci_cc_do_calibration_rsp { + __u8 status; + __u8 mode; + __u8 data[MAX_CALIB_SIZE]; +} __attribute__((packed)); + +struct hci_fm_set_spur_table_req { + __u8 mode; + __u8 no_of_freqs_entries; + u8 spur_data[FM_SPUR_TBL_SIZE]; +} __attribute__((packed)); +/* Low Power mode*/ +#define SIG_LEVEL_INTR (1 << 0) +#define RDS_SYNC_INTR (1 << 1) +#define AUDIO_CTRL_INTR (1 << 2) +#define AF_JUMP_ENABLE (1 << 4) + +int hci_def_data_read(struct hci_fm_def_data_rd_req *arg, + struct radio_hci_dev *hdev); +int hci_def_data_write(struct hci_fm_def_data_wr_req *arg, + struct radio_hci_dev *hdev); +int hci_fm_do_calibration(__u8 *arg, struct radio_hci_dev *hdev); +int hci_fm_do_calibration(__u8 *arg, struct radio_hci_dev *hdev); + +static __inline__ int is_valid_tone(int tone) +{ + if ((tone >= MIN_TX_TONE_VAL) && + (tone <= MAX_TX_TONE_VAL)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_hard_mute(int hard_mute) +{ + if ((hard_mute >= MIN_HARD_MUTE_VAL) && + (hard_mute <= MAX_HARD_MUTE_VAL)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_srch_mode(int srch_mode) +{ + if ((srch_mode >= MIN_SRCH_MODE) && + (srch_mode <= MAX_SRCH_MODE)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_scan_dwell_prd(int scan_dwell_prd) +{ + if ((scan_dwell_prd >= MIN_SCAN_DWELL) && + (scan_dwell_prd <= MAX_SCAN_DWELL)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_sig_th(int sig_th) +{ + if ((sig_th >= MIN_SIG_TH) && + (sig_th <= MAX_SIG_TH)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_pty(int pty) +{ + if ((pty >= MIN_PTY) && + (pty <= MAX_PTY)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_pi(int pi) +{ + if ((pi >= MIN_PI) && + (pi <= MAX_PI)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_srch_station_cnt(int cnt) +{ + if ((cnt >= MIN_SRCH_STATIONS_CNT) && + (cnt <= MAX_SRCH_STATIONS_CNT)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_chan_spacing(int spacing) +{ + if ((spacing >= MIN_CHAN_SPACING) && + (spacing <= MAX_CHAN_SPACING)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_emphasis(int emphasis) +{ + if ((emphasis >= MIN_EMPHASIS) && + (emphasis <= MAX_EMPHASIS)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_rds_std(int rds_std) +{ + if ((rds_std >= MIN_RDS_STD) && + (rds_std <= MAX_RDS_STD)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_antenna(int antenna_type) +{ + if ((antenna_type >= MIN_ANTENNA_VAL) && + (antenna_type <= MAX_ANTENNA_VAL)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_ps_repeat_cnt(int cnt) +{ + if ((cnt >= MIN_TX_PS_REPEAT_CNT) && + (cnt <= MAX_TX_PS_REPEAT_CNT)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_soft_mute(int soft_mute) +{ + if ((soft_mute >= MIN_SOFT_MUTE) && + (soft_mute <= MAX_SOFT_MUTE)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_peek_len(int len) +{ + if ((len >= MIN_PEEK_ACCESS_LEN) && + (len <= MAX_PEEK_ACCESS_LEN)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_reset_cntr(int cntr) +{ + if ((cntr >= MIN_RESET_CNTR) && + (cntr <= MAX_RESET_CNTR)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_hlsi(int hlsi) +{ + if ((hlsi >= MIN_HLSI) && + (hlsi <= MAX_HLSI)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_notch_filter(int filter) +{ + if ((filter >= MIN_NOTCH_FILTER) && + (filter <= MAX_NOTCH_FILTER)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_intf_det_low_th(int th) +{ + if ((th >= MIN_INTF_DET_OUT_LW_TH) && + (th <= MAX_INTF_DET_OUT_LW_TH)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_intf_det_hgh_th(int th) +{ + if ((th >= MIN_INTF_DET_OUT_HG_TH) && + (th <= MAX_INTF_DET_OUT_HG_TH)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_sinr_th(int th) +{ + if ((th >= MIN_SINR_TH) && + (th <= MAX_SINR_TH)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_sinr_samples(int samples_cnt) +{ + if ((samples_cnt >= MIN_SINR_SAMPLES) && + (samples_cnt <= MAX_SINR_SAMPLES)) + return 1; + else + return 0; +} + +static __inline__ int is_valid_fm_state(int state) +{ + if ((state >= 0) && (state < FM_MAX_NO_STATES)) + return 1; + else + return 0; +} + +#endif /* __UAPI_RADIO_HCI_CORE_H */ diff --git a/kernel_headers/media/tavarua.h b/kernel_headers/media/tavarua.h new file mode 100644 index 0000000..94a8a83 --- /dev/null +++ b/kernel_headers/media/tavarua.h @@ -0,0 +1,589 @@ +#ifndef __UAPI_TAVARUA_H +#define __UAPI_TAVARUA_H + +#include +#include + + +#undef FM_DEBUG + +/* constants */ +#define RDS_BLOCKS_NUM (4) +#define BYTES_PER_BLOCK (3) +#define MAX_PS_LENGTH (96) +#define MAX_RT_LENGTH (64) +#define RX_STATIONS0_LEN (15) + +#define XFRDAT0 (0x20) +#define XFRDAT1 (0x21) +#define XFRDAT2 (0x22) + +#define INTDET_PEEK_MSB (0x88) +#define INTDET_PEEK_LSB (0x26) + +#define RMSSI_PEEK_MSB (0x88) +#define RMSSI_PEEK_LSB (0xA8) + +#define MPX_DCC_BYPASS_POKE_MSB (0x88) +#define MPX_DCC_BYPASS_POKE_LSB (0xC0) + +#define MPX_DCC_PEEK_MSB_REG1 (0x88) +#define MPX_DCC_PEEK_LSB_REG1 (0xC2) + +#define MPX_DCC_PEEK_MSB_REG2 (0x88) +#define MPX_DCC_PEEK_LSB_REG2 (0xC3) + +#define MPX_DCC_PEEK_MSB_REG3 (0x88) +#define MPX_DCC_PEEK_LSB_REG3 (0xC4) + +#define ON_CHANNEL_TH_MSB (0x0B) +#define ON_CHANNEL_TH_LSB (0xA8) + +#define OFF_CHANNEL_TH_MSB (0x0B) +#define OFF_CHANNEL_TH_LSB (0xAC) + +#define ENF_200Khz (1) +#define SRCH200KHZ_OFFSET (7) +#define SRCH_MASK (1 << SRCH200KHZ_OFFSET) + +/* Standard buffer size */ +#define STD_BUF_SIZE (256) +/* Search direction */ +#define SRCH_DIR_UP (0) +#define SRCH_DIR_DOWN (1) + +/* control options */ +#define CTRL_ON (1) +#define CTRL_OFF (0) + +#define US_LOW_BAND (87.5) +#define US_HIGH_BAND (108) + +/* constant for Tx */ + +#define MASK_PI (0x0000FFFF) +#define MASK_PI_MSB (0x0000FF00) +#define MASK_PI_LSB (0x000000FF) +#define MASK_PTY (0x0000001F) +#define MASK_TXREPCOUNT (0x0000000F) + +#undef FMDBG +#ifdef FM_DEBUG + #define FMDBG(fmt, args...) printk(KERN_INFO "tavarua_radio: " fmt, ##args) +#else + #define FMDBG(fmt, args...) +#endif + +#undef FMDERR +#define FMDERR(fmt, args...) printk(KERN_INFO "tavarua_radio: " fmt, ##args) + +#undef FMDBG_I2C +#ifdef FM_DEBUG_I2C + #define FMDBG_I2C(fmt, args...) printk(KERN_INFO "fm_i2c: " fmt, ##args) +#else + #define FMDBG_I2C(fmt, args...) +#endif + +/* function declarations */ +/* FM Core audio paths. */ +#define TAVARUA_AUDIO_OUT_ANALOG_OFF (0) +#define TAVARUA_AUDIO_OUT_ANALOG_ON (1) +#define TAVARUA_AUDIO_OUT_DIGITAL_OFF (0) +#define TAVARUA_AUDIO_OUT_DIGITAL_ON (1) + +int tavarua_set_audio_path(int digital_on, int analog_on); + +/* defines and enums*/ + +#define MARIMBA_A0 0x01010013 +#define MARIMBA_2_1 0x02010204 +#define BAHAMA_1_0 0x0302010A +#define BAHAMA_2_0 0x04020205 +#define BAHAMA_2_1 0x04020309 +#define WAIT_TIMEOUT 2000 +#define RADIO_INIT_TIME 15 +#define TAVARUA_DELAY 10 +/* + * The frequency is set in units of 62.5 Hz when using V4L2_TUNER_CAP_LOW, + * 62.5 kHz otherwise. + * The tuner is able to have a channel spacing of 50, 100 or 200 kHz. + * tuner->capability is therefore set to V4L2_TUNER_CAP_LOW + * The FREQ_MUL is then: 1 MHz / 62.5 Hz = 16000 + */ +#define FREQ_MUL (1000000 / 62.5) + +enum v4l2_cid_private_tavarua_t { + V4L2_CID_PRIVATE_TAVARUA_SRCHMODE = (V4L2_CID_PRIVATE_BASE + 1), + V4L2_CID_PRIVATE_TAVARUA_SCANDWELL, + V4L2_CID_PRIVATE_TAVARUA_SRCHON, + V4L2_CID_PRIVATE_TAVARUA_STATE, + V4L2_CID_PRIVATE_TAVARUA_TRANSMIT_MODE, + V4L2_CID_PRIVATE_TAVARUA_RDSGROUP_MASK, + V4L2_CID_PRIVATE_TAVARUA_REGION, + V4L2_CID_PRIVATE_TAVARUA_SIGNAL_TH, + V4L2_CID_PRIVATE_TAVARUA_SRCH_PTY, + V4L2_CID_PRIVATE_TAVARUA_SRCH_PI, + V4L2_CID_PRIVATE_TAVARUA_SRCH_CNT, + V4L2_CID_PRIVATE_TAVARUA_EMPHASIS, + V4L2_CID_PRIVATE_TAVARUA_RDS_STD, + V4L2_CID_PRIVATE_TAVARUA_SPACING, + V4L2_CID_PRIVATE_TAVARUA_RDSON, + V4L2_CID_PRIVATE_TAVARUA_RDSGROUP_PROC, + V4L2_CID_PRIVATE_TAVARUA_LP_MODE, + V4L2_CID_PRIVATE_TAVARUA_ANTENNA, + V4L2_CID_PRIVATE_TAVARUA_RDSD_BUF, + V4L2_CID_PRIVATE_TAVARUA_PSALL, + /*v4l2 Tx controls*/ + V4L2_CID_PRIVATE_TAVARUA_TX_SETPSREPEATCOUNT, + V4L2_CID_PRIVATE_TAVARUA_STOP_RDS_TX_PS_NAME, + V4L2_CID_PRIVATE_TAVARUA_STOP_RDS_TX_RT, + V4L2_CID_PRIVATE_TAVARUA_IOVERC, + V4L2_CID_PRIVATE_TAVARUA_INTDET, + V4L2_CID_PRIVATE_TAVARUA_MPX_DCC, + V4L2_CID_PRIVATE_TAVARUA_AF_JUMP, + V4L2_CID_PRIVATE_TAVARUA_RSSI_DELTA, + V4L2_CID_PRIVATE_TAVARUA_HLSI, + + /* + * Here we have IOCTl's that are specific to IRIS + * (V4L2_CID_PRIVATE_BASE + 0x1E to V4L2_CID_PRIVATE_BASE + 0x28) + */ + V4L2_CID_PRIVATE_SOFT_MUTE,/* 0x800001E*/ + V4L2_CID_PRIVATE_RIVA_ACCS_ADDR, + V4L2_CID_PRIVATE_RIVA_ACCS_LEN, + V4L2_CID_PRIVATE_RIVA_PEEK, + V4L2_CID_PRIVATE_RIVA_POKE, + V4L2_CID_PRIVATE_SSBI_ACCS_ADDR, + V4L2_CID_PRIVATE_SSBI_PEEK, + V4L2_CID_PRIVATE_SSBI_POKE, + V4L2_CID_PRIVATE_TX_TONE, + V4L2_CID_PRIVATE_RDS_GRP_COUNTERS, + V4L2_CID_PRIVATE_SET_NOTCH_FILTER,/* 0x8000028 */ + + V4L2_CID_PRIVATE_TAVARUA_SET_AUDIO_PATH,/* 0x8000029 */ + V4L2_CID_PRIVATE_TAVARUA_DO_CALIBRATION,/* 0x800002A : IRIS */ + V4L2_CID_PRIVATE_TAVARUA_SRCH_ALGORITHM,/* 0x800002B */ + V4L2_CID_PRIVATE_IRIS_GET_SINR, /* 0x800002C : IRIS */ + V4L2_CID_PRIVATE_INTF_LOW_THRESHOLD, /* 0x800002D */ + V4L2_CID_PRIVATE_INTF_HIGH_THRESHOLD, /* 0x800002E */ + V4L2_CID_PRIVATE_SINR_THRESHOLD, /* 0x800002F : IRIS */ + V4L2_CID_PRIVATE_SINR_SAMPLES, /* 0x8000030 : IRIS */ + V4L2_CID_PRIVATE_SPUR_FREQ, + V4L2_CID_PRIVATE_SPUR_FREQ_RMSSI, + V4L2_CID_PRIVATE_SPUR_SELECTION, + V4L2_CID_PRIVATE_UPDATE_SPUR_TABLE, + V4L2_CID_PRIVATE_VALID_CHANNEL, + +}; + +enum tavarua_buf_t { + TAVARUA_BUF_SRCH_LIST, + TAVARUA_BUF_EVENTS, + TAVARUA_BUF_RT_RDS, + TAVARUA_BUF_PS_RDS, + TAVARUA_BUF_RAW_RDS, + TAVARUA_BUF_AF_LIST, + TAVARUA_BUF_MAX +}; + +enum tavarua_xfr_t { + TAVARUA_XFR_SYNC, + TAVARUA_XFR_ERROR, + TAVARUA_XFR_SRCH_LIST, + TAVARUA_XFR_RT_RDS, + TAVARUA_XFR_PS_RDS, + TAVARUA_XFR_AF_LIST, + TAVARUA_XFR_MAX +}; + +enum channel_spacing { + FM_CH_SPACE_200KHZ, + FM_CH_SPACE_100KHZ, + FM_CH_SPACE_50KHZ +}; + +enum step_size { + NO_SRCH200khz, + ENF_SRCH200khz +}; + +enum emphasis { + EMP_75, + EMP_50 +}; + +enum rds_std { + RBDS_STD, + RDS_STD +}; + +/* offsets */ +#define RAW_RDS 0x0F +#define RDS_BLOCK 3 + +/* registers*/ +#define MARIMBA_XO_BUFF_CNTRL 0x07 +#define RADIO_REGISTERS 0x30 +#define XFR_REG_NUM 16 +#define STATUS_REG_NUM 3 + +/* TX constants */ +#define HEADER_SIZE 4 +#define TX_ON 0x80 +#define TAVARUA_TX_RT RDS_RT_0 +#define TAVARUA_TX_PS RDS_PS_0 + +enum register_t { + STATUS_REG1 = 0, + STATUS_REG2, + STATUS_REG3, + RDCTRL, + FREQ, + TUNECTRL, + SRCHRDS1, + SRCHRDS2, + SRCHCTRL, + IOCTRL, + RDSCTRL, + ADVCTRL, + AUDIOCTRL, + RMSSI, + IOVERC, + AUDIOIND = 0x1E, + XFRCTRL, + FM_CTL0 = 0xFF, + LEAKAGE_CNTRL = 0xFE, +}; +#define BAHAMA_RBIAS_CTL1 0x07 +#define BAHAMA_FM_MODE_REG 0xFD +#define BAHAMA_FM_CTL1_REG 0xFE +#define BAHAMA_FM_CTL0_REG 0xFF +#define BAHAMA_FM_MODE_NORMAL 0x00 +#define BAHAMA_LDO_DREG_CTL0 0xF0 +#define BAHAMA_LDO_AREG_CTL0 0xF4 + +/* Radio Control */ +#define RDCTRL_STATE_OFFSET 0 +#define RDCTRL_STATE_MASK (3 << RDCTRL_STATE_OFFSET) +#define RDCTRL_BAND_OFFSET 2 +#define RDCTRL_BAND_MASK (1 << RDCTRL_BAND_OFFSET) +#define RDCTRL_CHSPACE_OFFSET 3 +#define RDCTRL_CHSPACE_MASK (3 << RDCTRL_CHSPACE_OFFSET) +#define RDCTRL_DEEMPHASIS_OFFSET 5 +#define RDCTRL_DEEMPHASIS_MASK (1 << RDCTRL_DEEMPHASIS_OFFSET) +#define RDCTRL_HLSI_OFFSET 6 +#define RDCTRL_HLSI_MASK (3 << RDCTRL_HLSI_OFFSET) +#define RDSAF_OFFSET 6 +#define RDSAF_MASK (1 << RDSAF_OFFSET) + +/* Tune Control */ +#define TUNE_STATION 0x01 +#define ADD_OFFSET (1 << 1) +#define SIGSTATE (1 << 5) +#define MOSTSTATE (1 << 6) +#define RDSSYNC (1 << 7) +/* Search Control */ +#define SRCH_MODE_OFFSET 0 +#define SRCH_MODE_MASK (7 << SRCH_MODE_OFFSET) +#define SRCH_DIR_OFFSET 3 +#define SRCH_DIR_MASK (1 << SRCH_DIR_OFFSET) +#define SRCH_DWELL_OFFSET 4 +#define SRCH_DWELL_MASK (7 << SRCH_DWELL_OFFSET) +#define SRCH_STATE_OFFSET 7 +#define SRCH_STATE_MASK (1 << SRCH_STATE_OFFSET) + +/* I/O Control */ +#define IOC_HRD_MUTE 0x03 +#define IOC_SFT_MUTE (1 << 2) +#define IOC_MON_STR (1 << 3) +#define IOC_SIG_BLND (1 << 4) +#define IOC_INTF_BLND (1 << 5) +#define IOC_ANTENNA (1 << 6) +#define IOC_ANTENNA_OFFSET 6 +#define IOC_ANTENNA_MASK (1 << IOC_ANTENNA_OFFSET) + +/* RDS Control */ +#define RDS_ON 0x01 +#define RDSCTRL_STANDARD_OFFSET 1 +#define RDSCTRL_STANDARD_MASK (1 << RDSCTRL_STANDARD_OFFSET) + +/* Advanced features controls */ +#define RDSRTEN (1 << 3) +#define RDSPSEN (1 << 4) + +/* Audio path control */ +#define AUDIORX_ANALOG_OFFSET 0 +#define AUDIORX_ANALOG_MASK (1 << AUDIORX_ANALOG_OFFSET) +#define AUDIORX_DIGITAL_OFFSET 1 +#define AUDIORX_DIGITAL_MASK (1 << AUDIORX_DIGITAL_OFFSET) +#define AUDIOTX_OFFSET 2 +#define AUDIOTX_MASK (1 << AUDIOTX_OFFSET) +#define I2SCTRL_OFFSET 3 +#define I2SCTRL_MASK (1 << I2SCTRL_OFFSET) + +/* Search options */ +enum search_t { + SEEK, + SCAN, + SCAN_FOR_STRONG, + SCAN_FOR_WEAK, + RDS_SEEK_PTY, + RDS_SCAN_PTY, + RDS_SEEK_PI, + RDS_AF_JUMP, +}; + +/* Band limits */ +#define REGION_US_EU_BAND_LOW 87500 +#define REGION_US_EU_BAND_HIGH 108000 +#define REGION_JAPAN_STANDARD_BAND_LOW 76000 +#define REGION_JAPAN_STANDARD_BAND_HIGH 90000 +#define REGION_JAPAN_WIDE_BAND_LOW 90000 +#define REGION_JAPAN_WIDE_BAND_HIGH 108000 +#define MPX_DCC_BYPASS_REG 0x88C0 +#define MPX_DCC_DATA_REG 0x88C2 + +enum audio_path { + FM_DIGITAL_PATH, + FM_ANALOG_PATH +}; +#define SRCH_MODE 0x07 +#define SRCH_DIR 0x08 /* 0-up 1-down */ +#define SCAN_DWELL 0x70 +#define SRCH_ON 0x80 + +/* RDS CONFIG */ +#define RDS_CONFIG_PSALL 0x01 + +#define FM_ENABLE 0x22 +#define SET_REG_FIELD(reg, val, offset, mask) \ + (reg = (reg & ~mask) | (((val) << offset) & mask)) +#define GET_REG_FIELD(reg, offset, mask) ((reg & mask) >> offset) +#define RSH_DATA(val, offset) ((val) >> (offset)) +#define LSH_DATA(val, offset) ((val) << (offset)) +#define GET_ABS_VAL(val) ((val) & (0xFF)) + +enum radio_state_t { + FM_OFF, + FM_RECV, + FM_TRANS, + FM_RESET, +}; + +#define XFRCTRL_WRITE (1 << 7) + +/* Interrupt status */ + +/* interrupt register 1 */ +#define READY (1 << 0) /* Radio ready after powerup or reset */ +#define TUNE (1 << 1) /* Tune completed */ +#define SEARCH (1 << 2) /* Search completed (read FREQ) */ +#define SCANNEXT (1 << 3) /* Scanning for next station */ +#define SIGNAL (1 << 4) /* Signal indicator change (read SIGSTATE) */ +#define INTF (1 << 5) /* Interference cnt has fallen outside range */ +#define SYNC (1 << 6) /* RDS sync state change (read RDSSYNC) */ +#define AUDIO (1 << 7) /* Audio Control indicator (read AUDIOIND) */ + +/* interrupt register 2 */ +#define RDSDAT (1 << 0) /* New unread RDS data group available */ +#define BLOCKB (1 << 1) /* Block-B match condition exists */ +#define PROGID (1 << 2) /* Block-A or Block-C matched stored PI value*/ +#define RDSPS (1 << 3) /* New RDS Program Service Table available */ +#define RDSRT (1 << 4) /* New RDS Radio Text available */ +#define RDSAF (1 << 5) /* New RDS AF List available */ +#define TXRDSDAT (1 << 6) /* Transmitted an RDS group */ +#define TXRDSDONE (1 << 7) /* RDS raw group one-shot transmit completed */ + +/* interrupt register 3 */ +#define TRANSFER (1 << 0) /* Data transfer (XFR) completed */ +#define RDSPROC (1 << 1) /* Dynamic RDS Processing complete */ +#define ERROR (1 << 7) /* Err occurred.Read code to determine cause */ + + +#define FM_TX_PWR_LVL_0 0 /* Lowest power lvl that can be set for Tx */ +#define FM_TX_PWR_LVL_MAX 7 /* Max power lvl for Tx */ + +/* Tone Generator control value */ +#define TONE_GEN_CTRL_BYTE 0x00 +#define TONE_CHANNEL_EN_AND_SCALING_BYTE 0x01 +#define TONE_LEFT_FREQ_BYTE 0x02 +#define TONE_RIGHT_FREQ_BYTE 0x03 +#define TONE_LEFT_PHASE 0x04 +#define TONE_RIGHT_PHASE 0x05 + +#define TONE_LEFT_CH_ENABLED 0x01 +#define TONE_RIGHT_CH_ENABLED 0x02 +#define TONE_LEFT_RIGHT_CH_ENABLED (TONE_LEFT_CH_ENABLED\ + | TONE_RIGHT_CH_ENABLED) + +#define TONE_SCALING_SHIFT 0x02 + +/* Transfer */ +enum tavarua_xfr_ctrl_t { + RDS_PS_0 = 0x01, + RDS_PS_1, + RDS_PS_2, + RDS_PS_3, + RDS_PS_4, + RDS_PS_5, + RDS_PS_6, + RDS_RT_0, + RDS_RT_1, + RDS_RT_2, + RDS_RT_3, + RDS_RT_4, + RDS_AF_0, + RDS_AF_1, + RDS_CONFIG, + RDS_TX_GROUPS, + RDS_COUNT_0, + RDS_COUNT_1, + RDS_COUNT_2, + RADIO_CONFIG, + RX_CONFIG, + RX_TIMERS, + RX_STATIONS_0, + RX_STATIONS_1, + INT_CTRL, + ERROR_CODE, + CHIPID, + CAL_DAT_0 = 0x20, + CAL_DAT_1, + CAL_DAT_2, + CAL_DAT_3, + CAL_CFG_0, + CAL_CFG_1, + DIG_INTF_0, + DIG_INTF_1, + DIG_AGC_0, + DIG_AGC_1, + DIG_AGC_2, + DIG_AUDIO_0, + DIG_AUDIO_1, + DIG_AUDIO_2, + DIG_AUDIO_3, + DIG_AUDIO_4, + DIG_RXRDS, + DIG_DCC, + DIG_SPUR, + DIG_MPXDCC, + DIG_PILOT, + DIG_DEMOD, + DIG_MOST, + DIG_TX_0, + DIG_TX_1, + PHY_TXGAIN = 0x3B, + PHY_CONFIG, + PHY_TXBLOCK, + PHY_TCB, + XFR_EXT, + XFR_PEEK_MODE = 0x40, + XFR_POKE_MODE = 0xC0, + TAVARUA_XFR_CTRL_MAX +}; + +enum tavarua_evt_t { + TAVARUA_EVT_RADIO_READY, + TAVARUA_EVT_TUNE_SUCC, + TAVARUA_EVT_SEEK_COMPLETE, + TAVARUA_EVT_SCAN_NEXT, + TAVARUA_EVT_NEW_RAW_RDS, + TAVARUA_EVT_NEW_RT_RDS, + TAVARUA_EVT_NEW_PS_RDS, + TAVARUA_EVT_ERROR, + TAVARUA_EVT_BELOW_TH, + TAVARUA_EVT_ABOVE_TH, + TAVARUA_EVT_STEREO, + TAVARUA_EVT_MONO, + TAVARUA_EVT_RDS_AVAIL, + TAVARUA_EVT_RDS_NOT_AVAIL, + TAVARUA_EVT_NEW_SRCH_LIST, + TAVARUA_EVT_NEW_AF_LIST, + TAVARUA_EVT_TXRDSDAT, + TAVARUA_EVT_TXRDSDONE, + TAVARUA_EVT_RADIO_DISABLED +}; + +enum tavarua_region_t { + TAVARUA_REGION_US, + TAVARUA_REGION_EU, + TAVARUA_REGION_JAPAN, + TAVARUA_REGION_JAPAN_WIDE, + TAVARUA_REGION_OTHER +}; + +enum { + ONE_BYTE = 1, + TWO_BYTE, + THREE_BYTE, + FOUR_BYTE, + FIVE_BYTE, + SIX_BYTE, + SEVEN_BYTE, + EIGHT_BYTE, + NINE_BYTE, + TEN_BYTE, + ELEVEN_BYTE, + TWELVE_BYTE, + THIRTEEN_BYTE +}; + +#define XFR_READ (0) +#define XFR_WRITE (1) +#define XFR_MODE_OFFSET (0) +#define XFR_ADDR_MSB_OFFSET (1) +#define XFR_ADDR_LSB_OFFSET (2) +#define XFR_DATA_OFFSET (3) +#define SPUR_DATA_SIZE (3) +#define MAX_SPUR_FREQ_LIMIT (30) +#define READ_COMPLETE (0x20) +#define SPUR_TABLE_ADDR (0x0BB7) +#define SPUR_TABLE_START_ADDR (SPUR_TABLE_ADDR + 1) +#define XFR_PEEK_COMPLETE (XFR_PEEK_MODE | READ_COMPLETE) +#define XFR_POKE_COMPLETE (XFR_POKE_MODE) +#define TUNE_MULT (16) +#define ADJ_CHANNEL_KHZ (50) +#define MPX_DCC_UPPER_LIMIT (20000) +#define MPX_DCC_LIMIT (12566) +#define INVALID_CHANNEL (0) +#define VALID_CHANNEL (1) + +#define COMPUTE_SPUR(val) ((((val) - (76000)) / (50))) +#define GET_FREQ(val, bit) ((bit == 1) ? ((val) >> 8) : ((val) & 0xFF)) + +struct fm_spur_data { + int freq[MAX_SPUR_FREQ_LIMIT]; + __s8 rmssi[MAX_SPUR_FREQ_LIMIT]; +} __attribute__((packed)); + +struct fm_def_data_wr_req { + __u8 mode; + __u8 length; + __u8 data[XFR_REG_NUM]; +} __attribute__((packed)); + +enum Internal_tone_gen_vals { + ONE_KHZ_LR_EQUA_0DBFS = 1, + ONE_KHZ_LEFTONLY_EQUA_0DBFS, + ONE_KHZ_RIGHTONLY_EQUA_0DBFS, + ONE_KHZ_LR_EQUA_l8DBFS, + FIFTEEN_KHZ_LR_EQUA_l8DBFS +}; + +enum Tone_scaling_indexes { + TONE_SCALE_IND_0, + TONE_SCALE_IND_1, + TONE_SCALE_IND_2, + TONE_SCALE_IND_3, + TONE_SCALE_IND_4, + TONE_SCALE_IND_5, + TONE_SCALE_IND_6, + TONE_SCALE_IND_7, + TONE_SCALE_IND_8, + TONE_SCALE_IND_9, + TONE_SCALE_IND_10, + TONE_SCALE_IND_11, + TONE_SCALE_IND_12 +}; + +#endif /* __UAPI_TAVARUA_H */ diff --git a/kernel_headers/mtd/..install.cmd b/kernel_headers/mtd/..install.cmd new file mode 100644 index 0000000..c46dc36 --- /dev/null +++ b/kernel_headers/mtd/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/mtd/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/mtd /android/kernels/moto/surnia/kernel-msm/include/uapi/mtd inftl-user.h mtd-abi.h mtd-user.h nftl-user.h ubi-user.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/mtd /android/kernels/moto/surnia/kernel-msm/include/mtd ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/mtd /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/mtd ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/mtd/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/mtd/.install diff --git a/kernel_headers/mtd/.install b/kernel_headers/mtd/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/mtd/inftl-user.h b/kernel_headers/mtd/inftl-user.h new file mode 100644 index 0000000..8376bd1 --- /dev/null +++ b/kernel_headers/mtd/inftl-user.h @@ -0,0 +1,91 @@ +/* + * Parts of INFTL headers shared with userspace + * + */ + +#ifndef __MTD_INFTL_USER_H__ +#define __MTD_INFTL_USER_H__ + +#include + +#define OSAK_VERSION 0x5120 +#define PERCENTUSED 98 + +#define SECTORSIZE 512 + +/* Block Control Information */ + +struct inftl_bci { + __u8 ECCsig[6]; + __u8 Status; + __u8 Status1; +} __attribute__((packed)); + +struct inftl_unithead1 { + __u16 virtualUnitNo; + __u16 prevUnitNo; + __u8 ANAC; + __u8 NACs; + __u8 parityPerField; + __u8 discarded; +} __attribute__((packed)); + +struct inftl_unithead2 { + __u8 parityPerField; + __u8 ANAC; + __u16 prevUnitNo; + __u16 virtualUnitNo; + __u8 NACs; + __u8 discarded; +} __attribute__((packed)); + +struct inftl_unittail { + __u8 Reserved[4]; + __u16 EraseMark; + __u16 EraseMark1; +} __attribute__((packed)); + +union inftl_uci { + struct inftl_unithead1 a; + struct inftl_unithead2 b; + struct inftl_unittail c; +}; + +struct inftl_oob { + struct inftl_bci b; + union inftl_uci u; +}; + + +/* INFTL Media Header */ + +struct INFTLPartition { + __u32 virtualUnits; + __u32 firstUnit; + __u32 lastUnit; + __u32 flags; + __u32 spareUnits; + __u32 Reserved0; + __u32 Reserved1; +} __attribute__((packed)); + +struct INFTLMediaHeader { + char bootRecordID[8]; + __u32 NoOfBootImageBlocks; + __u32 NoOfBinaryPartitions; + __u32 NoOfBDTLPartitions; + __u32 BlockMultiplierBits; + __u32 FormatFlags; + __u32 OsakVersion; + __u32 PercentUsed; + struct INFTLPartition Partitions[4]; +} __attribute__((packed)); + +/* Partition flag types */ +#define INFTL_BINARY 0x20000000 +#define INFTL_BDTL 0x40000000 +#define INFTL_LAST 0x80000000 + +#endif /* __MTD_INFTL_USER_H__ */ + + diff --git a/kernel_headers/mtd/mtd-abi.h b/kernel_headers/mtd/mtd-abi.h new file mode 100644 index 0000000..8b880d5 --- /dev/null +++ b/kernel_headers/mtd/mtd-abi.h @@ -0,0 +1,278 @@ +/* + * Copyright © 1999-2010 David Woodhouse et al. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef __MTD_ABI_H__ +#define __MTD_ABI_H__ + +#include + +struct erase_info_user { + __u32 start; + __u32 length; +}; + +struct erase_info_user64 { + __u64 start; + __u64 length; +}; + +struct mtd_oob_buf { + __u32 start; + __u32 length; + unsigned char *ptr; +}; + +struct mtd_oob_buf64 { + __u64 start; + __u32 pad; + __u32 length; + __u64 usr_ptr; +}; + +/** + * MTD operation modes + * + * @MTD_OPS_PLACE_OOB: OOB data are placed at the given offset (default) + * @MTD_OPS_AUTO_OOB: OOB data are automatically placed at the free areas + * which are defined by the internal ecclayout + * @MTD_OPS_RAW: data are transferred as-is, with no error correction; + * this mode implies %MTD_OPS_PLACE_OOB + * + * These modes can be passed to ioctl(MEMWRITE) and are also used internally. + * See notes on "MTD file modes" for discussion on %MTD_OPS_RAW vs. + * %MTD_FILE_MODE_RAW. + */ +enum { + MTD_OPS_PLACE_OOB = 0, + MTD_OPS_AUTO_OOB = 1, + MTD_OPS_RAW = 2, +}; + +/** + * struct mtd_write_req - data structure for requesting a write operation + * + * @start: start address + * @len: length of data buffer + * @ooblen: length of OOB buffer + * @usr_data: user-provided data buffer + * @usr_oob: user-provided OOB buffer + * @mode: MTD mode (see "MTD operation modes") + * @padding: reserved, must be set to 0 + * + * This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB + * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to + * write data-only, set @usr_oob == NULL. However, setting both @usr_data and + * @usr_oob to NULL is not allowed. + */ +struct mtd_write_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; +}; + +#define MTD_ABSENT 0 +#define MTD_RAM 1 +#define MTD_ROM 2 +#define MTD_NORFLASH 3 +#define MTD_NANDFLASH 4 +#define MTD_DATAFLASH 6 +#define MTD_UBIVOLUME 7 +#define MTD_MLCNANDFLASH 8 + +#define MTD_WRITEABLE 0x400 /* Device is writeable */ +#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */ +#define MTD_NO_ERASE 0x1000 /* No erase necessary */ +#define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */ + +/* Some common devices / combinations of capabilities */ +#define MTD_CAP_ROM 0 +#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE) +#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE) +#define MTD_CAP_NANDFLASH (MTD_WRITEABLE) + +/* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */ +#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended) +#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode) +#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme +#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read) +#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default + +/* OTP mode selection */ +#define MTD_OTP_OFF 0 +#define MTD_OTP_FACTORY 1 +#define MTD_OTP_USER 2 + +struct mtd_info_user { + __u8 type; + __u32 flags; + __u32 size; /* Total size of the MTD */ + __u32 erasesize; + __u32 writesize; + __u32 oobsize; /* Amount of OOB data per block (e.g. 16) */ + __u64 padding; /* Old obsolete field; do not use */ +}; + +struct region_info_user { + __u32 offset; /* At which this region starts, + * from the beginning of the MTD */ + __u32 erasesize; /* For this region */ + __u32 numblocks; /* Number of blocks in this region */ + __u32 regionindex; +}; + +struct otp_info { + __u32 start; + __u32 length; + __u32 locked; +}; + +/* + * Note, the following ioctl existed in the past and was removed: + * #define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo) + * Try to avoid adding a new ioctl with the same ioctl number. + */ + +/* Get basic MTD characteristics info (better to use sysfs) */ +#define MEMGETINFO _IOR('M', 1, struct mtd_info_user) +/* Erase segment of MTD */ +#define MEMERASE _IOW('M', 2, struct erase_info_user) +/* Write out-of-band data from MTD */ +#define MEMWRITEOOB _IOWR('M', 3, struct mtd_oob_buf) +/* Read out-of-band data from MTD */ +#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf) +/* Lock a chip (for MTD that supports it) */ +#define MEMLOCK _IOW('M', 5, struct erase_info_user) +/* Unlock a chip (for MTD that supports it) */ +#define MEMUNLOCK _IOW('M', 6, struct erase_info_user) +/* Get the number of different erase regions */ +#define MEMGETREGIONCOUNT _IOR('M', 7, int) +/* Get information about the erase region for a specific index */ +#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user) +/* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */ +#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo) +/* Check if an eraseblock is bad */ +#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t) +/* Mark an eraseblock as bad */ +#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t) +/* Set OTP (One-Time Programmable) mode (factory vs. user) */ +#define OTPSELECT _IOR('M', 13, int) +/* Get number of OTP (One-Time Programmable) regions */ +#define OTPGETREGIONCOUNT _IOW('M', 14, int) +/* Get all OTP (One-Time Programmable) info about MTD */ +#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info) +/* Lock a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */ +#define OTPLOCK _IOR('M', 16, struct otp_info) +/* Get ECC layout (deprecated) */ +#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout_user) +/* Get statistics about corrected/uncorrected errors */ +#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats) +/* Set MTD mode on a per-file-descriptor basis (see "MTD file modes") */ +#define MTDFILEMODE _IO('M', 19) +/* Erase segment of MTD (supports 64-bit address) */ +#define MEMERASE64 _IOW('M', 20, struct erase_info_user64) +/* Write data to OOB (64-bit version) */ +#define MEMWRITEOOB64 _IOWR('M', 21, struct mtd_oob_buf64) +/* Read data from OOB (64-bit version) */ +#define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64) +/* Check if chip is locked (for MTD that supports it) */ +#define MEMISLOCKED _IOR('M', 23, struct erase_info_user) +/* + * Most generic write interface; can write in-band and/or out-of-band in various + * modes (see "struct mtd_write_req"). This ioctl is not supported for flashes + * without OOB, e.g., NOR flash. + */ +#define MEMWRITE _IOWR('M', 24, struct mtd_write_req) + +/* + * Obsolete legacy interface. Keep it in order not to break userspace + * interfaces + */ +struct nand_oobinfo { + __u32 useecc; + __u32 eccbytes; + __u32 oobfree[8][2]; + __u32 eccpos[32]; +}; + +struct nand_oobfree { + __u32 offset; + __u32 length; +}; + +#define MTD_MAX_OOBFREE_ENTRIES 8 +#define MTD_MAX_ECCPOS_ENTRIES 64 +/* + * OBSOLETE: ECC layout control structure. Exported to user-space via ioctl + * ECCGETLAYOUT for backwards compatbility and should not be mistaken as a + * complete set of ECC information. The ioctl truncates the larger internal + * structure to retain binary compatibility with the static declaration of the + * ioctl. Note that the "MTD_MAX_..._ENTRIES" macros represent the max size of + * the user struct, not the MAX size of the internal struct nand_ecclayout. + */ +struct nand_ecclayout_user { + __u32 eccbytes; + __u32 eccpos[256]; + __u32 oobavail; + struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; +}; + +/** + * struct mtd_ecc_stats - error correction stats + * + * @corrected: number of corrected bits + * @failed: number of uncorrectable errors + * @badblocks: number of bad blocks in this partition + * @bbtblocks: number of blocks reserved for bad block tables + */ +struct mtd_ecc_stats { + __u32 corrected; + __u32 failed; + __u32 badblocks; + __u32 bbtblocks; +}; + +/* + * MTD file modes - for read/write access to MTD + * + * @MTD_FILE_MODE_NORMAL: OTP disabled, ECC enabled + * @MTD_FILE_MODE_OTP_FACTORY: OTP enabled in factory mode + * @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode + * @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled + * + * These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained + * separately for each open file descriptor. + * + * Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW - + * raw access to the flash, without error correction or autoplacement schemes. + * Wherever possible, the MTD_OPS_* mode will override the MTD_FILE_MODE_* mode + * (e.g., when using ioctl(MEMWRITE)), but in some cases, the MTD_FILE_MODE is + * used out of necessity (e.g., `write()', ioctl(MEMWRITEOOB64)). + */ +enum mtd_file_modes { + MTD_FILE_MODE_NORMAL = MTD_OTP_OFF, + MTD_FILE_MODE_OTP_FACTORY = MTD_OTP_FACTORY, + MTD_FILE_MODE_OTP_USER = MTD_OTP_USER, + MTD_FILE_MODE_RAW, +}; + +#endif /* __MTD_ABI_H__ */ diff --git a/kernel_headers/mtd/mtd-user.h b/kernel_headers/mtd/mtd-user.h new file mode 100644 index 0000000..83327c8 --- /dev/null +++ b/kernel_headers/mtd/mtd-user.h @@ -0,0 +1,34 @@ +/* + * Copyright © 1999-2010 David Woodhouse + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef __MTD_USER_H__ +#define __MTD_USER_H__ + +#include + +/* This file is blessed for inclusion by userspace */ +#include + +typedef struct mtd_info_user mtd_info_t; +typedef struct erase_info_user erase_info_t; +typedef struct region_info_user region_info_t; +typedef struct nand_oobinfo nand_oobinfo_t; +typedef struct nand_ecclayout_user nand_ecclayout_t; + +#endif /* __MTD_USER_H__ */ diff --git a/kernel_headers/mtd/nftl-user.h b/kernel_headers/mtd/nftl-user.h new file mode 100644 index 0000000..bdeabd8 --- /dev/null +++ b/kernel_headers/mtd/nftl-user.h @@ -0,0 +1,90 @@ +/* + * Copyright © 1999-2010 David Woodhouse + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef __MTD_NFTL_USER_H__ +#define __MTD_NFTL_USER_H__ + +#include + +/* Block Control Information */ + +struct nftl_bci { + unsigned char ECCSig[6]; + __u8 Status; + __u8 Status1; +}__attribute__((packed)); + +/* Unit Control Information */ + +struct nftl_uci0 { + __u16 VirtUnitNum; + __u16 ReplUnitNum; + __u16 SpareVirtUnitNum; + __u16 SpareReplUnitNum; +} __attribute__((packed)); + +struct nftl_uci1 { + __u32 WearInfo; + __u16 EraseMark; + __u16 EraseMark1; +} __attribute__((packed)); + +struct nftl_uci2 { + __u16 FoldMark; + __u16 FoldMark1; + __u32 unused; +} __attribute__((packed)); + +union nftl_uci { + struct nftl_uci0 a; + struct nftl_uci1 b; + struct nftl_uci2 c; +}; + +struct nftl_oob { + struct nftl_bci b; + union nftl_uci u; +}; + +/* NFTL Media Header */ + +struct NFTLMediaHeader { + char DataOrgID[6]; + __u16 NumEraseUnits; + __u16 FirstPhysicalEUN; + __u32 FormattedSize; + unsigned char UnitSizeFactor; +} __attribute__((packed)); + +#define MAX_ERASE_ZONES (8192 - 512) + +#define ERASE_MARK 0x3c69 +#define SECTOR_FREE 0xff +#define SECTOR_USED 0x55 +#define SECTOR_IGNORE 0x11 +#define SECTOR_DELETED 0x00 + +#define FOLD_MARK_IN_PROGRESS 0x5555 + +#define ZONE_GOOD 0xff +#define ZONE_BAD_ORIGINAL 0 +#define ZONE_BAD_MARKED 7 + + +#endif /* __MTD_NFTL_USER_H__ */ diff --git a/kernel_headers/mtd/ubi-user.h b/kernel_headers/mtd/ubi-user.h new file mode 100644 index 0000000..a12c884 --- /dev/null +++ b/kernel_headers/mtd/ubi-user.h @@ -0,0 +1,420 @@ +/* + * Copyright © International Business Machines Corp., 2006 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See + * the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Artem Bityutskiy (Битюцкий Артём) + */ + +#ifndef __UBI_USER_H__ +#define __UBI_USER_H__ + +#include + +/* + * UBI device creation (the same as MTD device attachment) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * MTD devices may be attached using %UBI_IOCATT ioctl command of the UBI + * control device. The caller has to properly fill and pass + * &struct ubi_attach_req object - UBI will attach the MTD device specified in + * the request and return the newly created UBI device number as the ioctl + * return value. + * + * UBI device deletion (the same as MTD device detachment) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * An UBI device maybe deleted with %UBI_IOCDET ioctl command of the UBI + * control device. + * + * UBI volume creation + * ~~~~~~~~~~~~~~~~~~~ + * + * UBI volumes are created via the %UBI_IOCMKVOL ioctl command of UBI character + * device. A &struct ubi_mkvol_req object has to be properly filled and a + * pointer to it has to be passed to the ioctl. + * + * UBI volume deletion + * ~~~~~~~~~~~~~~~~~~~ + * + * To delete a volume, the %UBI_IOCRMVOL ioctl command of the UBI character + * device should be used. A pointer to the 32-bit volume ID hast to be passed + * to the ioctl. + * + * UBI volume re-size + * ~~~~~~~~~~~~~~~~~~ + * + * To re-size a volume, the %UBI_IOCRSVOL ioctl command of the UBI character + * device should be used. A &struct ubi_rsvol_req object has to be properly + * filled and a pointer to it has to be passed to the ioctl. + * + * UBI volumes re-name + * ~~~~~~~~~~~~~~~~~~~ + * + * To re-name several volumes atomically at one go, the %UBI_IOCRNVOL command + * of the UBI character device should be used. A &struct ubi_rnvol_req object + * has to be properly filled and a pointer to it has to be passed to the ioctl. + * + * UBI volume update + * ~~~~~~~~~~~~~~~~~ + * + * Volume update should be done via the %UBI_IOCVOLUP ioctl command of the + * corresponding UBI volume character device. A pointer to a 64-bit update + * size should be passed to the ioctl. After this, UBI expects user to write + * this number of bytes to the volume character device. The update is finished + * when the claimed number of bytes is passed. So, the volume update sequence + * is something like: + * + * fd = open("/dev/my_volume"); + * ioctl(fd, UBI_IOCVOLUP, &image_size); + * write(fd, buf, image_size); + * close(fd); + * + * Logical eraseblock erase + * ~~~~~~~~~~~~~~~~~~~~~~~~ + * + * To erase a logical eraseblock, the %UBI_IOCEBER ioctl command of the + * corresponding UBI volume character device should be used. This command + * unmaps the requested logical eraseblock, makes sure the corresponding + * physical eraseblock is successfully erased, and returns. + * + * Atomic logical eraseblock change + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * Atomic logical eraseblock change operation is called using the %UBI_IOCEBCH + * ioctl command of the corresponding UBI volume character device. A pointer to + * a &struct ubi_leb_change_req object has to be passed to the ioctl. Then the + * user is expected to write the requested amount of bytes (similarly to what + * should be done in case of the "volume update" ioctl). + * + * Logical eraseblock map + * ~~~~~~~~~~~~~~~~~~~~~ + * + * To map a logical eraseblock to a physical eraseblock, the %UBI_IOCEBMAP + * ioctl command should be used. A pointer to a &struct ubi_map_req object is + * expected to be passed. The ioctl maps the requested logical eraseblock to + * a physical eraseblock and returns. Only non-mapped logical eraseblocks can + * be mapped. If the logical eraseblock specified in the request is already + * mapped to a physical eraseblock, the ioctl fails and returns error. + * + * Logical eraseblock unmap + * ~~~~~~~~~~~~~~~~~~~~~~~~ + * + * To unmap a logical eraseblock to a physical eraseblock, the %UBI_IOCEBUNMAP + * ioctl command should be used. The ioctl unmaps the logical eraseblocks, + * schedules corresponding physical eraseblock for erasure, and returns. Unlike + * the "LEB erase" command, it does not wait for the physical eraseblock being + * erased. Note, the side effect of this is that if an unclean reboot happens + * after the unmap ioctl returns, you may find the LEB mapped again to the same + * physical eraseblock after the UBI is run again. + * + * Check if logical eraseblock is mapped + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * To check if a logical eraseblock is mapped to a physical eraseblock, the + * %UBI_IOCEBISMAP ioctl command should be used. It returns %0 if the LEB is + * not mapped, and %1 if it is mapped. + * + * Set an UBI volume property + * ~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * To set an UBI volume property the %UBI_IOCSETPROP ioctl command should be + * used. A pointer to a &struct ubi_set_vol_prop_req object is expected to be + * passed. The object describes which property should be set, and to which value + * it should be set. + */ + +/* + * When a new UBI volume or UBI device is created, users may either specify the + * volume/device number they want to create or to let UBI automatically assign + * the number using these constants. + */ +#define UBI_VOL_NUM_AUTO (-1) +#define UBI_DEV_NUM_AUTO (-1) + +/* Maximum volume name length */ +#define UBI_MAX_VOLUME_NAME 127 + +/* ioctl commands of UBI character devices */ + +#define UBI_IOC_MAGIC 'o' + +/* Create an UBI volume */ +#define UBI_IOCMKVOL _IOW(UBI_IOC_MAGIC, 0, struct ubi_mkvol_req) +/* Remove an UBI volume */ +#define UBI_IOCRMVOL _IOW(UBI_IOC_MAGIC, 1, __s32) +/* Re-size an UBI volume */ +#define UBI_IOCRSVOL _IOW(UBI_IOC_MAGIC, 2, struct ubi_rsvol_req) +/* Re-name volumes */ +#define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req) + +/* ioctl commands of the UBI control character device */ + +#define UBI_CTRL_IOC_MAGIC 'o' + +/* Attach an MTD device */ +#define UBI_IOCATT _IOW(UBI_CTRL_IOC_MAGIC, 64, struct ubi_attach_req) +/* Detach an MTD device */ +#define UBI_IOCDET _IOW(UBI_CTRL_IOC_MAGIC, 65, __s32) + +/* ioctl commands of UBI volume character devices */ + +#define UBI_VOL_IOC_MAGIC 'O' + +/* Start UBI volume update */ +#define UBI_IOCVOLUP _IOW(UBI_VOL_IOC_MAGIC, 0, __s64) +/* LEB erasure command, used for debugging, disabled by default */ +#define UBI_IOCEBER _IOW(UBI_VOL_IOC_MAGIC, 1, __s32) +/* Atomic LEB change command */ +#define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, __s32) +/* Map LEB command */ +#define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req) +/* Unmap LEB command */ +#define UBI_IOCEBUNMAP _IOW(UBI_VOL_IOC_MAGIC, 4, __s32) +/* Check if LEB is mapped command */ +#define UBI_IOCEBISMAP _IOR(UBI_VOL_IOC_MAGIC, 5, __s32) +/* Set an UBI volume property */ +#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \ + struct ubi_set_vol_prop_req) + +/* Maximum MTD device name length supported by UBI */ +#define MAX_UBI_MTD_NAME_LEN 127 + +/* Maximum amount of UBI volumes that can be re-named at one go */ +#define UBI_MAX_RNVOL 32 + +/* + * UBI volume type constants. + * + * @UBI_DYNAMIC_VOLUME: dynamic volume + * @UBI_STATIC_VOLUME: static volume + */ +enum { + UBI_DYNAMIC_VOLUME = 3, + UBI_STATIC_VOLUME = 4, +}; + +/* + * UBI set volume property ioctl constants. + * + * @UBI_VOL_PROP_DIRECT_WRITE: allow (any non-zero value) or disallow (value 0) + * user to directly write and erase individual + * eraseblocks on dynamic volumes + */ +enum { + UBI_VOL_PROP_DIRECT_WRITE = 1, +}; + +/** + * struct ubi_attach_req - attach MTD device request. + * @ubi_num: UBI device number to create + * @mtd_num: MTD device number to attach + * @vid_hdr_offset: VID header offset (use defaults if %0) + * @max_beb_per1024: maximum expected number of bad PEB per 1024 PEBs + * @padding: reserved for future, not used, has to be zeroed + * + * This data structure is used to specify MTD device UBI has to attach and the + * parameters it has to use. The number which should be assigned to the new UBI + * device is passed in @ubi_num. UBI may automatically assign the number if + * @UBI_DEV_NUM_AUTO is passed. In this case, the device number is returned in + * @ubi_num. + * + * Most applications should pass %0 in @vid_hdr_offset to make UBI use default + * offset of the VID header within physical eraseblocks. The default offset is + * the next min. I/O unit after the EC header. For example, it will be offset + * 512 in case of a 512 bytes page NAND flash with no sub-page support. Or + * it will be 512 in case of a 2KiB page NAND flash with 4 512-byte sub-pages. + * + * But in rare cases, if this optimizes things, the VID header may be placed to + * a different offset. For example, the boot-loader might do things faster if + * the VID header sits at the end of the first 2KiB NAND page with 4 sub-pages. + * As the boot-loader would not normally need to read EC headers (unless it + * needs UBI in RW mode), it might be faster to calculate ECC. This is weird + * example, but it real-life example. So, in this example, @vid_hdr_offer would + * be 2KiB-64 bytes = 1984. Note, that this position is not even 512-bytes + * aligned, which is OK, as UBI is clever enough to realize this is 4th + * sub-page of the first page and add needed padding. + * + * The @max_beb_per1024 is the maximum amount of bad PEBs UBI expects on the + * UBI device per 1024 eraseblocks. This value is often given in an other form + * in the NAND datasheet (min NVB i.e. minimal number of valid blocks). The + * maximum expected bad eraseblocks per 1024 is then: + * 1024 * (1 - MinNVB / MaxNVB) + * Which gives 20 for most NAND devices. This limit is used in order to derive + * amount of eraseblock UBI reserves for handling new bad blocks. If the device + * has more bad eraseblocks than this limit, UBI does not reserve any physical + * eraseblocks for new bad eraseblocks, but attempts to use available + * eraseblocks (if any). The accepted range is 0-768. If 0 is given, the + * default kernel value of %CONFIG_MTD_UBI_BEB_LIMIT will be used. + */ +struct ubi_attach_req { + __s32 ubi_num; + __s32 mtd_num; + __s32 vid_hdr_offset; + __s16 max_beb_per1024; + __s8 padding[10]; +}; + +/** + * struct ubi_mkvol_req - volume description data structure used in + * volume creation requests. + * @vol_id: volume number + * @alignment: volume alignment + * @bytes: volume size in bytes + * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) + * @padding1: reserved for future, not used, has to be zeroed + * @name_len: volume name length + * @padding2: reserved for future, not used, has to be zeroed + * @name: volume name + * + * This structure is used by user-space programs when creating new volumes. The + * @used_bytes field is only necessary when creating static volumes. + * + * The @alignment field specifies the required alignment of the volume logical + * eraseblock. This means, that the size of logical eraseblocks will be aligned + * to this number, i.e., + * (UBI device logical eraseblock size) mod (@alignment) = 0. + * + * To put it differently, the logical eraseblock of this volume may be slightly + * shortened in order to make it properly aligned. The alignment has to be + * multiple of the flash minimal input/output unit, or %1 to utilize the entire + * available space of logical eraseblocks. + * + * The @alignment field may be useful, for example, when one wants to maintain + * a block device on top of an UBI volume. In this case, it is desirable to fit + * an integer number of blocks in logical eraseblocks of this UBI volume. With + * alignment it is possible to update this volume using plane UBI volume image + * BLOBs, without caring about how to properly align them. + */ +struct ubi_mkvol_req { + __s32 vol_id; + __s32 alignment; + __s64 bytes; + __s8 vol_type; + __s8 padding1; + __s16 name_len; + __s8 padding2[4]; + char name[UBI_MAX_VOLUME_NAME + 1]; +} __attribute__((packed)); + +/** + * struct ubi_rsvol_req - a data structure used in volume re-size requests. + * @vol_id: ID of the volume to re-size + * @bytes: new size of the volume in bytes + * + * Re-sizing is possible for both dynamic and static volumes. But while dynamic + * volumes may be re-sized arbitrarily, static volumes cannot be made to be + * smaller than the number of bytes they bear. To arbitrarily shrink a static + * volume, it must be wiped out first (by means of volume update operation with + * zero number of bytes). + */ +struct ubi_rsvol_req { + __s64 bytes; + __s32 vol_id; +} __attribute__((packed)); + +/** + * struct ubi_rnvol_req - volumes re-name request. + * @count: count of volumes to re-name + * @padding1: reserved for future, not used, has to be zeroed + * @vol_id: ID of the volume to re-name + * @name_len: name length + * @padding2: reserved for future, not used, has to be zeroed + * @name: new volume name + * + * UBI allows to re-name up to %32 volumes at one go. The count of volumes to + * re-name is specified in the @count field. The ID of the volumes to re-name + * and the new names are specified in the @vol_id and @name fields. + * + * The UBI volume re-name operation is atomic, which means that should power cut + * happen, the volumes will have either old name or new name. So the possible + * use-cases of this command is atomic upgrade. Indeed, to upgrade, say, volumes + * A and B one may create temporary volumes %A1 and %B1 with the new contents, + * then atomically re-name A1->A and B1->B, in which case old %A and %B will + * be removed. + * + * If it is not desirable to remove old A and B, the re-name request has to + * contain 4 entries: A1->A, A->A1, B1->B, B->B1, in which case old A1 and B1 + * become A and B, and old A and B will become A1 and B1. + * + * It is also OK to request: A1->A, A1->X, B1->B, B->Y, in which case old A1 + * and B1 become A and B, and old A and B become X and Y. + * + * In other words, in case of re-naming into an existing volume name, the + * existing volume is removed, unless it is re-named as well at the same + * re-name request. + */ +struct ubi_rnvol_req { + __s32 count; + __s8 padding1[12]; + struct { + __s32 vol_id; + __s16 name_len; + __s8 padding2[2]; + char name[UBI_MAX_VOLUME_NAME + 1]; + } ents[UBI_MAX_RNVOL]; +} __attribute__((packed)); + +/** + * struct ubi_leb_change_req - a data structure used in atomic LEB change + * requests. + * @lnum: logical eraseblock number to change + * @bytes: how many bytes will be written to the logical eraseblock + * @dtype: pass "3" for better compatibility with old kernels + * @padding: reserved for future, not used, has to be zeroed + * + * The @dtype field used to inform UBI about what kind of data will be written + * to the LEB: long term (value 1), short term (value 2), unknown (value 3). + * UBI tried to pick a PEB with lower erase counter for short term data and a + * PEB with higher erase counter for long term data. But this was not really + * used because users usually do not know this and could easily mislead UBI. We + * removed this feature in May 2012. UBI currently just ignores the @dtype + * field. But for better compatibility with older kernels it is recommended to + * set @dtype to 3 (unknown). + */ +struct ubi_leb_change_req { + __s32 lnum; + __s32 bytes; + __s8 dtype; /* obsolete, do not use! */ + __s8 padding[7]; +} __attribute__((packed)); + +/** + * struct ubi_map_req - a data structure used in map LEB requests. + * @dtype: pass "3" for better compatibility with old kernels + * @lnum: logical eraseblock number to unmap + * @padding: reserved for future, not used, has to be zeroed + */ +struct ubi_map_req { + __s32 lnum; + __s8 dtype; /* obsolete, do not use! */ + __s8 padding[3]; +} __attribute__((packed)); + + +/** + * struct ubi_set_vol_prop_req - a data structure used to set an UBI volume + * property. + * @property: property to set (%UBI_VOL_PROP_DIRECT_WRITE) + * @padding: reserved for future, not used, has to be zeroed + * @value: value to set + */ +struct ubi_set_vol_prop_req { + __u8 property; + __u8 padding[7]; + __u64 value; +} __attribute__((packed)); + +#endif /* __UBI_USER_H__ */ diff --git a/kernel_headers/rdma/..install.cmd b/kernel_headers/rdma/..install.cmd new file mode 100644 index 0000000..d66622c --- /dev/null +++ b/kernel_headers/rdma/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/rdma/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/rdma /android/kernels/moto/surnia/kernel-msm/include/uapi/rdma ib_user_cm.h ib_user_mad.h ib_user_sa.h ib_user_verbs.h rdma_netlink.h rdma_user_cm.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/rdma /android/kernels/moto/surnia/kernel-msm/include/rdma ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/rdma /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/rdma ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/rdma/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/rdma/.install diff --git a/kernel_headers/rdma/.install b/kernel_headers/rdma/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/rdma/ib_user_cm.h b/kernel_headers/rdma/ib_user_cm.h new file mode 100644 index 0000000..f79014a --- /dev/null +++ b/kernel_headers/rdma/ib_user_cm.h @@ -0,0 +1,325 @@ +/* + * Copyright (c) 2005 Topspin Communications. All rights reserved. + * Copyright (c) 2005 Intel Corporation. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef IB_USER_CM_H +#define IB_USER_CM_H + +#include +#include + +#define IB_USER_CM_ABI_VERSION 5 + +enum { + IB_USER_CM_CMD_CREATE_ID, + IB_USER_CM_CMD_DESTROY_ID, + IB_USER_CM_CMD_ATTR_ID, + + IB_USER_CM_CMD_LISTEN, + IB_USER_CM_CMD_NOTIFY, + + IB_USER_CM_CMD_SEND_REQ, + IB_USER_CM_CMD_SEND_REP, + IB_USER_CM_CMD_SEND_RTU, + IB_USER_CM_CMD_SEND_DREQ, + IB_USER_CM_CMD_SEND_DREP, + IB_USER_CM_CMD_SEND_REJ, + IB_USER_CM_CMD_SEND_MRA, + IB_USER_CM_CMD_SEND_LAP, + IB_USER_CM_CMD_SEND_APR, + IB_USER_CM_CMD_SEND_SIDR_REQ, + IB_USER_CM_CMD_SEND_SIDR_REP, + + IB_USER_CM_CMD_EVENT, + IB_USER_CM_CMD_INIT_QP_ATTR, +}; +/* + * command ABI structures. + */ +struct ib_ucm_cmd_hdr { + __u32 cmd; + __u16 in; + __u16 out; +}; + +struct ib_ucm_create_id { + __u64 uid; + __u64 response; +}; + +struct ib_ucm_create_id_resp { + __u32 id; +}; + +struct ib_ucm_destroy_id { + __u64 response; + __u32 id; + __u32 reserved; +}; + +struct ib_ucm_destroy_id_resp { + __u32 events_reported; +}; + +struct ib_ucm_attr_id { + __u64 response; + __u32 id; + __u32 reserved; +}; + +struct ib_ucm_attr_id_resp { + __be64 service_id; + __be64 service_mask; + __be32 local_id; + __be32 remote_id; +}; + +struct ib_ucm_init_qp_attr { + __u64 response; + __u32 id; + __u32 qp_state; +}; + +struct ib_ucm_listen { + __be64 service_id; + __be64 service_mask; + __u32 id; + __u32 reserved; +}; + +struct ib_ucm_notify { + __u32 id; + __u32 event; +}; + +struct ib_ucm_private_data { + __u64 data; + __u32 id; + __u8 len; + __u8 reserved[3]; +}; + +struct ib_ucm_req { + __u32 id; + __u32 qpn; + __u32 qp_type; + __u32 psn; + __be64 sid; + __u64 data; + __u64 primary_path; + __u64 alternate_path; + __u8 len; + __u8 peer_to_peer; + __u8 responder_resources; + __u8 initiator_depth; + __u8 remote_cm_response_timeout; + __u8 flow_control; + __u8 local_cm_response_timeout; + __u8 retry_count; + __u8 rnr_retry_count; + __u8 max_cm_retries; + __u8 srq; + __u8 reserved[5]; +}; + +struct ib_ucm_rep { + __u64 uid; + __u64 data; + __u32 id; + __u32 qpn; + __u32 psn; + __u8 len; + __u8 responder_resources; + __u8 initiator_depth; + __u8 target_ack_delay; + __u8 failover_accepted; + __u8 flow_control; + __u8 rnr_retry_count; + __u8 srq; + __u8 reserved[4]; +}; + +struct ib_ucm_info { + __u32 id; + __u32 status; + __u64 info; + __u64 data; + __u8 info_len; + __u8 data_len; + __u8 reserved[6]; +}; + +struct ib_ucm_mra { + __u64 data; + __u32 id; + __u8 len; + __u8 timeout; + __u8 reserved[2]; +}; + +struct ib_ucm_lap { + __u64 path; + __u64 data; + __u32 id; + __u8 len; + __u8 reserved[3]; +}; + +struct ib_ucm_sidr_req { + __u32 id; + __u32 timeout; + __be64 sid; + __u64 data; + __u64 path; + __u16 reserved_pkey; + __u8 len; + __u8 max_cm_retries; + __u8 reserved[4]; +}; + +struct ib_ucm_sidr_rep { + __u32 id; + __u32 qpn; + __u32 qkey; + __u32 status; + __u64 info; + __u64 data; + __u8 info_len; + __u8 data_len; + __u8 reserved[6]; +}; +/* + * event notification ABI structures. + */ +struct ib_ucm_event_get { + __u64 response; + __u64 data; + __u64 info; + __u8 data_len; + __u8 info_len; + __u8 reserved[6]; +}; + +struct ib_ucm_req_event_resp { + struct ib_user_path_rec primary_path; + struct ib_user_path_rec alternate_path; + __be64 remote_ca_guid; + __u32 remote_qkey; + __u32 remote_qpn; + __u32 qp_type; + __u32 starting_psn; + __u8 responder_resources; + __u8 initiator_depth; + __u8 local_cm_response_timeout; + __u8 flow_control; + __u8 remote_cm_response_timeout; + __u8 retry_count; + __u8 rnr_retry_count; + __u8 srq; + __u8 port; + __u8 reserved[7]; +}; + +struct ib_ucm_rep_event_resp { + __be64 remote_ca_guid; + __u32 remote_qkey; + __u32 remote_qpn; + __u32 starting_psn; + __u8 responder_resources; + __u8 initiator_depth; + __u8 target_ack_delay; + __u8 failover_accepted; + __u8 flow_control; + __u8 rnr_retry_count; + __u8 srq; + __u8 reserved[5]; +}; + +struct ib_ucm_rej_event_resp { + __u32 reason; + /* ari in ib_ucm_event_get info field. */ +}; + +struct ib_ucm_mra_event_resp { + __u8 timeout; + __u8 reserved[3]; +}; + +struct ib_ucm_lap_event_resp { + struct ib_user_path_rec path; +}; + +struct ib_ucm_apr_event_resp { + __u32 status; + /* apr info in ib_ucm_event_get info field. */ +}; + +struct ib_ucm_sidr_req_event_resp { + __u16 pkey; + __u8 port; + __u8 reserved; +}; + +struct ib_ucm_sidr_rep_event_resp { + __u32 status; + __u32 qkey; + __u32 qpn; + /* info in ib_ucm_event_get info field. */ +}; + +#define IB_UCM_PRES_DATA 0x01 +#define IB_UCM_PRES_INFO 0x02 +#define IB_UCM_PRES_PRIMARY 0x04 +#define IB_UCM_PRES_ALTERNATE 0x08 + +struct ib_ucm_event_resp { + __u64 uid; + __u32 id; + __u32 event; + __u32 present; + __u32 reserved; + union { + struct ib_ucm_req_event_resp req_resp; + struct ib_ucm_rep_event_resp rep_resp; + struct ib_ucm_rej_event_resp rej_resp; + struct ib_ucm_mra_event_resp mra_resp; + struct ib_ucm_lap_event_resp lap_resp; + struct ib_ucm_apr_event_resp apr_resp; + + struct ib_ucm_sidr_req_event_resp sidr_req_resp; + struct ib_ucm_sidr_rep_event_resp sidr_rep_resp; + + __u32 send_status; + } u; +}; + +#endif /* IB_USER_CM_H */ diff --git a/kernel_headers/rdma/ib_user_mad.h b/kernel_headers/rdma/ib_user_mad.h new file mode 100644 index 0000000..d6fce1c --- /dev/null +++ b/kernel_headers/rdma/ib_user_mad.h @@ -0,0 +1,203 @@ +/* + * Copyright (c) 2004 Topspin Communications. All rights reserved. + * Copyright (c) 2005 Voltaire, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef IB_USER_MAD_H +#define IB_USER_MAD_H + +#include +#include + +/* + * Increment this value if any changes that break userspace ABI + * compatibility are made. + */ +#define IB_USER_MAD_ABI_VERSION 5 + +/* + * Make sure that all structs defined in this file remain laid out so + * that they pack the same way on 32-bit and 64-bit architectures (to + * avoid incompatibility between 32-bit userspace and 64-bit kernels). + */ + +/** + * ib_user_mad_hdr_old - Old version of MAD packet header without pkey_index + * @id - ID of agent MAD received with/to be sent with + * @status - 0 on successful receive, ETIMEDOUT if no response + * received (transaction ID in data[] will be set to TID of original + * request) (ignored on send) + * @timeout_ms - Milliseconds to wait for response (unset on receive) + * @retries - Number of automatic retries to attempt + * @qpn - Remote QP number received from/to be sent to + * @qkey - Remote Q_Key to be sent with (unset on receive) + * @lid - Remote lid received from/to be sent to + * @sl - Service level received with/to be sent with + * @path_bits - Local path bits received with/to be sent with + * @grh_present - If set, GRH was received/should be sent + * @gid_index - Local GID index to send with (unset on receive) + * @hop_limit - Hop limit in GRH + * @traffic_class - Traffic class in GRH + * @gid - Remote GID in GRH + * @flow_label - Flow label in GRH + */ +struct ib_user_mad_hdr_old { + __u32 id; + __u32 status; + __u32 timeout_ms; + __u32 retries; + __u32 length; + __be32 qpn; + __be32 qkey; + __be16 lid; + __u8 sl; + __u8 path_bits; + __u8 grh_present; + __u8 gid_index; + __u8 hop_limit; + __u8 traffic_class; + __u8 gid[16]; + __be32 flow_label; +}; + +/** + * ib_user_mad_hdr - MAD packet header + * This layout allows specifying/receiving the P_Key index. To use + * this capability, an application must call the + * IB_USER_MAD_ENABLE_PKEY ioctl on the user MAD file handle before + * any other actions with the file handle. + * @id - ID of agent MAD received with/to be sent with + * @status - 0 on successful receive, ETIMEDOUT if no response + * received (transaction ID in data[] will be set to TID of original + * request) (ignored on send) + * @timeout_ms - Milliseconds to wait for response (unset on receive) + * @retries - Number of automatic retries to attempt + * @qpn - Remote QP number received from/to be sent to + * @qkey - Remote Q_Key to be sent with (unset on receive) + * @lid - Remote lid received from/to be sent to + * @sl - Service level received with/to be sent with + * @path_bits - Local path bits received with/to be sent with + * @grh_present - If set, GRH was received/should be sent + * @gid_index - Local GID index to send with (unset on receive) + * @hop_limit - Hop limit in GRH + * @traffic_class - Traffic class in GRH + * @gid - Remote GID in GRH + * @flow_label - Flow label in GRH + * @pkey_index - P_Key index + */ +struct ib_user_mad_hdr { + __u32 id; + __u32 status; + __u32 timeout_ms; + __u32 retries; + __u32 length; + __be32 qpn; + __be32 qkey; + __be16 lid; + __u8 sl; + __u8 path_bits; + __u8 grh_present; + __u8 gid_index; + __u8 hop_limit; + __u8 traffic_class; + __u8 gid[16]; + __be32 flow_label; + __u16 pkey_index; + __u8 reserved[6]; +}; + +/** + * ib_user_mad - MAD packet + * @hdr - MAD packet header + * @data - Contents of MAD + * + */ +struct ib_user_mad { + struct ib_user_mad_hdr hdr; + __u64 data[0]; +}; + +/* + * Earlier versions of this interface definition declared the + * method_mask[] member as an array of __u32 but treated it as a + * bitmap made up of longs in the kernel. This ambiguity meant that + * 32-bit big-endian applications that can run on both 32-bit and + * 64-bit kernels had no consistent ABI to rely on, and 64-bit + * big-endian applications that treated method_mask as being made up + * of 32-bit words would have their bitmap misinterpreted. + * + * To clear up this confusion, we change the declaration of + * method_mask[] to use unsigned long and handle the conversion from + * 32-bit userspace to 64-bit kernel for big-endian systems in the + * compat_ioctl method. Unfortunately, to keep the structure layout + * the same, we need the method_mask[] array to be aligned only to 4 + * bytes even when long is 64 bits, which forces us into this ugly + * typedef. + */ +typedef unsigned long __attribute__((aligned(4))) packed_ulong; +#define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof (long))) + +/** + * ib_user_mad_reg_req - MAD registration request + * @id - Set by the kernel; used to identify agent in future requests. + * @qpn - Queue pair number; must be 0 or 1. + * @method_mask - The caller will receive unsolicited MADs for any method + * where @method_mask = 1. + * @mgmt_class - Indicates which management class of MADs should be receive + * by the caller. This field is only required if the user wishes to + * receive unsolicited MADs, otherwise it should be 0. + * @mgmt_class_version - Indicates which version of MADs for the given + * management class to receive. + * @oui: Indicates IEEE OUI when mgmt_class is a vendor class + * in the range from 0x30 to 0x4f. Otherwise not used. + * @rmpp_version: If set, indicates the RMPP version used. + * + */ +struct ib_user_mad_reg_req { + __u32 id; + packed_ulong method_mask[IB_USER_MAD_LONGS_PER_METHOD_MASK]; + __u8 qpn; + __u8 mgmt_class; + __u8 mgmt_class_version; + __u8 oui[3]; + __u8 rmpp_version; +}; + +#define IB_IOCTL_MAGIC 0x1b + +#define IB_USER_MAD_REGISTER_AGENT _IOWR(IB_IOCTL_MAGIC, 1, \ + struct ib_user_mad_reg_req) + +#define IB_USER_MAD_UNREGISTER_AGENT _IOW(IB_IOCTL_MAGIC, 2, __u32) + +#define IB_USER_MAD_ENABLE_PKEY _IO(IB_IOCTL_MAGIC, 3) + +#endif /* IB_USER_MAD_H */ diff --git a/kernel_headers/rdma/ib_user_sa.h b/kernel_headers/rdma/ib_user_sa.h new file mode 100644 index 0000000..cfc7c9b --- /dev/null +++ b/kernel_headers/rdma/ib_user_sa.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2005 Intel Corporation. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef IB_USER_SA_H +#define IB_USER_SA_H + +#include + +enum { + IB_PATH_GMP = 1, + IB_PATH_PRIMARY = (1<<1), + IB_PATH_ALTERNATE = (1<<2), + IB_PATH_OUTBOUND = (1<<3), + IB_PATH_INBOUND = (1<<4), + IB_PATH_INBOUND_REVERSE = (1<<5), + IB_PATH_BIDIRECTIONAL = IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE +}; + +struct ib_path_rec_data { + __u32 flags; + __u32 reserved; + __u32 path_rec[16]; +}; + +struct ib_user_path_rec { + __u8 dgid[16]; + __u8 sgid[16]; + __be16 dlid; + __be16 slid; + __u32 raw_traffic; + __be32 flow_label; + __u32 reversible; + __u32 mtu; + __be16 pkey; + __u8 hop_limit; + __u8 traffic_class; + __u8 numb_path; + __u8 sl; + __u8 mtu_selector; + __u8 rate_selector; + __u8 rate; + __u8 packet_life_time_selector; + __u8 packet_life_time; + __u8 preference; +}; + +#endif /* IB_USER_SA_H */ diff --git a/kernel_headers/rdma/ib_user_verbs.h b/kernel_headers/rdma/ib_user_verbs.h new file mode 100644 index 0000000..805711e --- /dev/null +++ b/kernel_headers/rdma/ib_user_verbs.h @@ -0,0 +1,750 @@ +/* + * Copyright (c) 2005 Topspin Communications. All rights reserved. + * Copyright (c) 2005, 2006 Cisco Systems. All rights reserved. + * Copyright (c) 2005 PathScale, Inc. All rights reserved. + * Copyright (c) 2006 Mellanox Technologies. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef IB_USER_VERBS_H +#define IB_USER_VERBS_H + +#include + +/* + * Increment this value if any changes that break userspace ABI + * compatibility are made. + */ +#define IB_USER_VERBS_ABI_VERSION 6 + +enum { + IB_USER_VERBS_CMD_GET_CONTEXT, + IB_USER_VERBS_CMD_QUERY_DEVICE, + IB_USER_VERBS_CMD_QUERY_PORT, + IB_USER_VERBS_CMD_ALLOC_PD, + IB_USER_VERBS_CMD_DEALLOC_PD, + IB_USER_VERBS_CMD_CREATE_AH, + IB_USER_VERBS_CMD_MODIFY_AH, + IB_USER_VERBS_CMD_QUERY_AH, + IB_USER_VERBS_CMD_DESTROY_AH, + IB_USER_VERBS_CMD_REG_MR, + IB_USER_VERBS_CMD_REG_SMR, + IB_USER_VERBS_CMD_REREG_MR, + IB_USER_VERBS_CMD_QUERY_MR, + IB_USER_VERBS_CMD_DEREG_MR, + IB_USER_VERBS_CMD_ALLOC_MW, + IB_USER_VERBS_CMD_BIND_MW, + IB_USER_VERBS_CMD_DEALLOC_MW, + IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL, + IB_USER_VERBS_CMD_CREATE_CQ, + IB_USER_VERBS_CMD_RESIZE_CQ, + IB_USER_VERBS_CMD_DESTROY_CQ, + IB_USER_VERBS_CMD_POLL_CQ, + IB_USER_VERBS_CMD_PEEK_CQ, + IB_USER_VERBS_CMD_REQ_NOTIFY_CQ, + IB_USER_VERBS_CMD_CREATE_QP, + IB_USER_VERBS_CMD_QUERY_QP, + IB_USER_VERBS_CMD_MODIFY_QP, + IB_USER_VERBS_CMD_DESTROY_QP, + IB_USER_VERBS_CMD_POST_SEND, + IB_USER_VERBS_CMD_POST_RECV, + IB_USER_VERBS_CMD_ATTACH_MCAST, + IB_USER_VERBS_CMD_DETACH_MCAST, + IB_USER_VERBS_CMD_CREATE_SRQ, + IB_USER_VERBS_CMD_MODIFY_SRQ, + IB_USER_VERBS_CMD_QUERY_SRQ, + IB_USER_VERBS_CMD_DESTROY_SRQ, + IB_USER_VERBS_CMD_POST_SRQ_RECV, + IB_USER_VERBS_CMD_OPEN_XRCD, + IB_USER_VERBS_CMD_CLOSE_XRCD, + IB_USER_VERBS_CMD_CREATE_XSRQ, + IB_USER_VERBS_CMD_OPEN_QP +}; + +/* + * Make sure that all structs defined in this file remain laid out so + * that they pack the same way on 32-bit and 64-bit architectures (to + * avoid incompatibility between 32-bit userspace and 64-bit kernels). + * Specifically: + * - Do not use pointer types -- pass pointers in __u64 instead. + * - Make sure that any structure larger than 4 bytes is padded to a + * multiple of 8 bytes. Otherwise the structure size will be + * different between 32-bit and 64-bit architectures. + */ + +struct ib_uverbs_async_event_desc { + __u64 element; + __u32 event_type; /* enum ib_event_type */ + __u32 reserved; +}; + +struct ib_uverbs_comp_event_desc { + __u64 cq_handle; +}; + +/* + * All commands from userspace should start with a __u32 command field + * followed by __u16 in_words and out_words fields (which give the + * length of the command block and response buffer if any in 32-bit + * words). The kernel driver will read these fields first and read + * the rest of the command struct based on these value. + */ + +struct ib_uverbs_cmd_hdr { + __u32 command; + __u16 in_words; + __u16 out_words; +}; + +struct ib_uverbs_get_context { + __u64 response; + __u64 driver_data[0]; +}; + +struct ib_uverbs_get_context_resp { + __u32 async_fd; + __u32 num_comp_vectors; +}; + +struct ib_uverbs_query_device { + __u64 response; + __u64 driver_data[0]; +}; + +struct ib_uverbs_query_device_resp { + __u64 fw_ver; + __be64 node_guid; + __be64 sys_image_guid; + __u64 max_mr_size; + __u64 page_size_cap; + __u32 vendor_id; + __u32 vendor_part_id; + __u32 hw_ver; + __u32 max_qp; + __u32 max_qp_wr; + __u32 device_cap_flags; + __u32 max_sge; + __u32 max_sge_rd; + __u32 max_cq; + __u32 max_cqe; + __u32 max_mr; + __u32 max_pd; + __u32 max_qp_rd_atom; + __u32 max_ee_rd_atom; + __u32 max_res_rd_atom; + __u32 max_qp_init_rd_atom; + __u32 max_ee_init_rd_atom; + __u32 atomic_cap; + __u32 max_ee; + __u32 max_rdd; + __u32 max_mw; + __u32 max_raw_ipv6_qp; + __u32 max_raw_ethy_qp; + __u32 max_mcast_grp; + __u32 max_mcast_qp_attach; + __u32 max_total_mcast_qp_attach; + __u32 max_ah; + __u32 max_fmr; + __u32 max_map_per_fmr; + __u32 max_srq; + __u32 max_srq_wr; + __u32 max_srq_sge; + __u16 max_pkeys; + __u8 local_ca_ack_delay; + __u8 phys_port_cnt; + __u8 reserved[4]; +}; + +struct ib_uverbs_query_port { + __u64 response; + __u8 port_num; + __u8 reserved[7]; + __u64 driver_data[0]; +}; + +struct ib_uverbs_query_port_resp { + __u32 port_cap_flags; + __u32 max_msg_sz; + __u32 bad_pkey_cntr; + __u32 qkey_viol_cntr; + __u32 gid_tbl_len; + __u16 pkey_tbl_len; + __u16 lid; + __u16 sm_lid; + __u8 state; + __u8 max_mtu; + __u8 active_mtu; + __u8 lmc; + __u8 max_vl_num; + __u8 sm_sl; + __u8 subnet_timeout; + __u8 init_type_reply; + __u8 active_width; + __u8 active_speed; + __u8 phys_state; + __u8 link_layer; + __u8 reserved[2]; +}; + +struct ib_uverbs_alloc_pd { + __u64 response; + __u64 driver_data[0]; +}; + +struct ib_uverbs_alloc_pd_resp { + __u32 pd_handle; +}; + +struct ib_uverbs_dealloc_pd { + __u32 pd_handle; +}; + +struct ib_uverbs_open_xrcd { + __u64 response; + __u32 fd; + __u32 oflags; + __u64 driver_data[0]; +}; + +struct ib_uverbs_open_xrcd_resp { + __u32 xrcd_handle; +}; + +struct ib_uverbs_close_xrcd { + __u32 xrcd_handle; +}; + +struct ib_uverbs_reg_mr { + __u64 response; + __u64 start; + __u64 length; + __u64 hca_va; + __u32 pd_handle; + __u32 access_flags; + __u64 driver_data[0]; +}; + +struct ib_uverbs_reg_mr_resp { + __u32 mr_handle; + __u32 lkey; + __u32 rkey; +}; + +struct ib_uverbs_dereg_mr { + __u32 mr_handle; +}; + +struct ib_uverbs_alloc_mw { + __u64 response; + __u32 pd_handle; + __u8 mw_type; + __u8 reserved[3]; +}; + +struct ib_uverbs_alloc_mw_resp { + __u32 mw_handle; + __u32 rkey; +}; + +struct ib_uverbs_dealloc_mw { + __u32 mw_handle; +}; + +struct ib_uverbs_create_comp_channel { + __u64 response; +}; + +struct ib_uverbs_create_comp_channel_resp { + __u32 fd; +}; + +struct ib_uverbs_create_cq { + __u64 response; + __u64 user_handle; + __u32 cqe; + __u32 comp_vector; + __s32 comp_channel; + __u32 reserved; + __u64 driver_data[0]; +}; + +struct ib_uverbs_create_cq_resp { + __u32 cq_handle; + __u32 cqe; +}; + +struct ib_uverbs_resize_cq { + __u64 response; + __u32 cq_handle; + __u32 cqe; + __u64 driver_data[0]; +}; + +struct ib_uverbs_resize_cq_resp { + __u32 cqe; + __u32 reserved; + __u64 driver_data[0]; +}; + +struct ib_uverbs_poll_cq { + __u64 response; + __u32 cq_handle; + __u32 ne; +}; + +struct ib_uverbs_wc { + __u64 wr_id; + __u32 status; + __u32 opcode; + __u32 vendor_err; + __u32 byte_len; + union { + __u32 imm_data; + __u32 invalidate_rkey; + } ex; + __u32 qp_num; + __u32 src_qp; + __u32 wc_flags; + __u16 pkey_index; + __u16 slid; + __u8 sl; + __u8 dlid_path_bits; + __u8 port_num; + __u8 reserved; +}; + +struct ib_uverbs_poll_cq_resp { + __u32 count; + __u32 reserved; + struct ib_uverbs_wc wc[0]; +}; + +struct ib_uverbs_req_notify_cq { + __u32 cq_handle; + __u32 solicited_only; +}; + +struct ib_uverbs_destroy_cq { + __u64 response; + __u32 cq_handle; + __u32 reserved; +}; + +struct ib_uverbs_destroy_cq_resp { + __u32 comp_events_reported; + __u32 async_events_reported; +}; + +struct ib_uverbs_global_route { + __u8 dgid[16]; + __u32 flow_label; + __u8 sgid_index; + __u8 hop_limit; + __u8 traffic_class; + __u8 reserved; +}; + +struct ib_uverbs_ah_attr { + struct ib_uverbs_global_route grh; + __u16 dlid; + __u8 sl; + __u8 src_path_bits; + __u8 static_rate; + __u8 is_global; + __u8 port_num; + __u8 reserved; +}; + +struct ib_uverbs_qp_attr { + __u32 qp_attr_mask; + __u32 qp_state; + __u32 cur_qp_state; + __u32 path_mtu; + __u32 path_mig_state; + __u32 qkey; + __u32 rq_psn; + __u32 sq_psn; + __u32 dest_qp_num; + __u32 qp_access_flags; + + struct ib_uverbs_ah_attr ah_attr; + struct ib_uverbs_ah_attr alt_ah_attr; + + /* ib_qp_cap */ + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_send_sge; + __u32 max_recv_sge; + __u32 max_inline_data; + + __u16 pkey_index; + __u16 alt_pkey_index; + __u8 en_sqd_async_notify; + __u8 sq_draining; + __u8 max_rd_atomic; + __u8 max_dest_rd_atomic; + __u8 min_rnr_timer; + __u8 port_num; + __u8 timeout; + __u8 retry_cnt; + __u8 rnr_retry; + __u8 alt_port_num; + __u8 alt_timeout; + __u8 reserved[5]; +}; + +struct ib_uverbs_create_qp { + __u64 response; + __u64 user_handle; + __u32 pd_handle; + __u32 send_cq_handle; + __u32 recv_cq_handle; + __u32 srq_handle; + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_send_sge; + __u32 max_recv_sge; + __u32 max_inline_data; + __u8 sq_sig_all; + __u8 qp_type; + __u8 is_srq; + __u8 reserved; + __u64 driver_data[0]; +}; + +struct ib_uverbs_open_qp { + __u64 response; + __u64 user_handle; + __u32 pd_handle; + __u32 qpn; + __u8 qp_type; + __u8 reserved[7]; + __u64 driver_data[0]; +}; + +/* also used for open response */ +struct ib_uverbs_create_qp_resp { + __u32 qp_handle; + __u32 qpn; + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_send_sge; + __u32 max_recv_sge; + __u32 max_inline_data; + __u32 reserved; +}; + +/* + * This struct needs to remain a multiple of 8 bytes to keep the + * alignment of the modify QP parameters. + */ +struct ib_uverbs_qp_dest { + __u8 dgid[16]; + __u32 flow_label; + __u16 dlid; + __u16 reserved; + __u8 sgid_index; + __u8 hop_limit; + __u8 traffic_class; + __u8 sl; + __u8 src_path_bits; + __u8 static_rate; + __u8 is_global; + __u8 port_num; +}; + +struct ib_uverbs_query_qp { + __u64 response; + __u32 qp_handle; + __u32 attr_mask; + __u64 driver_data[0]; +}; + +struct ib_uverbs_query_qp_resp { + struct ib_uverbs_qp_dest dest; + struct ib_uverbs_qp_dest alt_dest; + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_send_sge; + __u32 max_recv_sge; + __u32 max_inline_data; + __u32 qkey; + __u32 rq_psn; + __u32 sq_psn; + __u32 dest_qp_num; + __u32 qp_access_flags; + __u16 pkey_index; + __u16 alt_pkey_index; + __u8 qp_state; + __u8 cur_qp_state; + __u8 path_mtu; + __u8 path_mig_state; + __u8 sq_draining; + __u8 max_rd_atomic; + __u8 max_dest_rd_atomic; + __u8 min_rnr_timer; + __u8 port_num; + __u8 timeout; + __u8 retry_cnt; + __u8 rnr_retry; + __u8 alt_port_num; + __u8 alt_timeout; + __u8 sq_sig_all; + __u8 reserved[5]; + __u64 driver_data[0]; +}; + +struct ib_uverbs_modify_qp { + struct ib_uverbs_qp_dest dest; + struct ib_uverbs_qp_dest alt_dest; + __u32 qp_handle; + __u32 attr_mask; + __u32 qkey; + __u32 rq_psn; + __u32 sq_psn; + __u32 dest_qp_num; + __u32 qp_access_flags; + __u16 pkey_index; + __u16 alt_pkey_index; + __u8 qp_state; + __u8 cur_qp_state; + __u8 path_mtu; + __u8 path_mig_state; + __u8 en_sqd_async_notify; + __u8 max_rd_atomic; + __u8 max_dest_rd_atomic; + __u8 min_rnr_timer; + __u8 port_num; + __u8 timeout; + __u8 retry_cnt; + __u8 rnr_retry; + __u8 alt_port_num; + __u8 alt_timeout; + __u8 reserved[2]; + __u64 driver_data[0]; +}; + +struct ib_uverbs_modify_qp_resp { +}; + +struct ib_uverbs_destroy_qp { + __u64 response; + __u32 qp_handle; + __u32 reserved; +}; + +struct ib_uverbs_destroy_qp_resp { + __u32 events_reported; +}; + +/* + * The ib_uverbs_sge structure isn't used anywhere, since we assume + * the ib_sge structure is packed the same way on 32-bit and 64-bit + * architectures in both kernel and user space. It's just here to + * document the ABI. + */ +struct ib_uverbs_sge { + __u64 addr; + __u32 length; + __u32 lkey; +}; + +struct ib_uverbs_send_wr { + __u64 wr_id; + __u32 num_sge; + __u32 opcode; + __u32 send_flags; + union { + __u32 imm_data; + __u32 invalidate_rkey; + } ex; + union { + struct { + __u64 remote_addr; + __u32 rkey; + __u32 reserved; + } rdma; + struct { + __u64 remote_addr; + __u64 compare_add; + __u64 swap; + __u32 rkey; + __u32 reserved; + } atomic; + struct { + __u32 ah; + __u32 remote_qpn; + __u32 remote_qkey; + __u32 reserved; + } ud; + } wr; +}; + +struct ib_uverbs_post_send { + __u64 response; + __u32 qp_handle; + __u32 wr_count; + __u32 sge_count; + __u32 wqe_size; + struct ib_uverbs_send_wr send_wr[0]; +}; + +struct ib_uverbs_post_send_resp { + __u32 bad_wr; +}; + +struct ib_uverbs_recv_wr { + __u64 wr_id; + __u32 num_sge; + __u32 reserved; +}; + +struct ib_uverbs_post_recv { + __u64 response; + __u32 qp_handle; + __u32 wr_count; + __u32 sge_count; + __u32 wqe_size; + struct ib_uverbs_recv_wr recv_wr[0]; +}; + +struct ib_uverbs_post_recv_resp { + __u32 bad_wr; +}; + +struct ib_uverbs_post_srq_recv { + __u64 response; + __u32 srq_handle; + __u32 wr_count; + __u32 sge_count; + __u32 wqe_size; + struct ib_uverbs_recv_wr recv[0]; +}; + +struct ib_uverbs_post_srq_recv_resp { + __u32 bad_wr; +}; + +struct ib_uverbs_create_ah { + __u64 response; + __u64 user_handle; + __u32 pd_handle; + __u32 reserved; + struct ib_uverbs_ah_attr attr; +}; + +struct ib_uverbs_create_ah_resp { + __u32 ah_handle; +}; + +struct ib_uverbs_destroy_ah { + __u32 ah_handle; +}; + +struct ib_uverbs_attach_mcast { + __u8 gid[16]; + __u32 qp_handle; + __u16 mlid; + __u16 reserved; + __u64 driver_data[0]; +}; + +struct ib_uverbs_detach_mcast { + __u8 gid[16]; + __u32 qp_handle; + __u16 mlid; + __u16 reserved; + __u64 driver_data[0]; +}; + +struct ib_uverbs_create_srq { + __u64 response; + __u64 user_handle; + __u32 pd_handle; + __u32 max_wr; + __u32 max_sge; + __u32 srq_limit; + __u64 driver_data[0]; +}; + +struct ib_uverbs_create_xsrq { + __u64 response; + __u64 user_handle; + __u32 srq_type; + __u32 pd_handle; + __u32 max_wr; + __u32 max_sge; + __u32 srq_limit; + __u32 reserved; + __u32 xrcd_handle; + __u32 cq_handle; + __u64 driver_data[0]; +}; + +struct ib_uverbs_create_srq_resp { + __u32 srq_handle; + __u32 max_wr; + __u32 max_sge; + __u32 srqn; +}; + +struct ib_uverbs_modify_srq { + __u32 srq_handle; + __u32 attr_mask; + __u32 max_wr; + __u32 srq_limit; + __u64 driver_data[0]; +}; + +struct ib_uverbs_query_srq { + __u64 response; + __u32 srq_handle; + __u32 reserved; + __u64 driver_data[0]; +}; + +struct ib_uverbs_query_srq_resp { + __u32 max_wr; + __u32 max_sge; + __u32 srq_limit; + __u32 reserved; +}; + +struct ib_uverbs_destroy_srq { + __u64 response; + __u32 srq_handle; + __u32 reserved; +}; + +struct ib_uverbs_destroy_srq_resp { + __u32 events_reported; +}; + +#endif /* IB_USER_VERBS_H */ diff --git a/kernel_headers/rdma/rdma_netlink.h b/kernel_headers/rdma/rdma_netlink.h new file mode 100644 index 0000000..6a79ea8 --- /dev/null +++ b/kernel_headers/rdma/rdma_netlink.h @@ -0,0 +1,37 @@ +#ifndef _RDMA_NETLINK_H +#define _RDMA_NETLINK_H + +#include + +enum { + RDMA_NL_RDMA_CM = 1 +}; + +#define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10) +#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1)) +#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op) + +enum { + RDMA_NL_RDMA_CM_ID_STATS = 0, + RDMA_NL_RDMA_CM_NUM_OPS +}; + +enum { + RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1, + RDMA_NL_RDMA_CM_ATTR_DST_ADDR, + RDMA_NL_RDMA_CM_NUM_ATTR, +}; + +struct rdma_cm_id_stats { + __u32 qp_num; + __u32 bound_dev_if; + __u32 port_space; + __s32 pid; + __u8 cm_state; + __u8 node_type; + __u8 port_num; + __u8 qp_type; +}; + + +#endif /* _RDMA_NETLINK_H */ diff --git a/kernel_headers/rdma/rdma_user_cm.h b/kernel_headers/rdma/rdma_user_cm.h new file mode 100644 index 0000000..1ee9239 --- /dev/null +++ b/kernel_headers/rdma/rdma_user_cm.h @@ -0,0 +1,249 @@ +/* + * Copyright (c) 2005-2006 Intel Corporation. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef RDMA_USER_CM_H +#define RDMA_USER_CM_H + +#include +#include +#include +#include + +#define RDMA_USER_CM_ABI_VERSION 4 + +#define RDMA_MAX_PRIVATE_DATA 256 + +enum { + RDMA_USER_CM_CMD_CREATE_ID, + RDMA_USER_CM_CMD_DESTROY_ID, + RDMA_USER_CM_CMD_BIND_ADDR, + RDMA_USER_CM_CMD_RESOLVE_ADDR, + RDMA_USER_CM_CMD_RESOLVE_ROUTE, + RDMA_USER_CM_CMD_QUERY_ROUTE, + RDMA_USER_CM_CMD_CONNECT, + RDMA_USER_CM_CMD_LISTEN, + RDMA_USER_CM_CMD_ACCEPT, + RDMA_USER_CM_CMD_REJECT, + RDMA_USER_CM_CMD_DISCONNECT, + RDMA_USER_CM_CMD_INIT_QP_ATTR, + RDMA_USER_CM_CMD_GET_EVENT, + RDMA_USER_CM_CMD_GET_OPTION, + RDMA_USER_CM_CMD_SET_OPTION, + RDMA_USER_CM_CMD_NOTIFY, + RDMA_USER_CM_CMD_JOIN_MCAST, + RDMA_USER_CM_CMD_LEAVE_MCAST, + RDMA_USER_CM_CMD_MIGRATE_ID +}; + +/* + * command ABI structures. + */ +struct rdma_ucm_cmd_hdr { + __u32 cmd; + __u16 in; + __u16 out; +}; + +struct rdma_ucm_create_id { + __u64 uid; + __u64 response; + __u16 ps; + __u8 qp_type; + __u8 reserved[5]; +}; + +struct rdma_ucm_create_id_resp { + __u32 id; +}; + +struct rdma_ucm_destroy_id { + __u64 response; + __u32 id; + __u32 reserved; +}; + +struct rdma_ucm_destroy_id_resp { + __u32 events_reported; +}; + +struct rdma_ucm_bind_addr { + __u64 response; + struct sockaddr_in6 addr; + __u32 id; +}; + +struct rdma_ucm_resolve_addr { + struct sockaddr_in6 src_addr; + struct sockaddr_in6 dst_addr; + __u32 id; + __u32 timeout_ms; +}; + +struct rdma_ucm_resolve_route { + __u32 id; + __u32 timeout_ms; +}; + +struct rdma_ucm_query_route { + __u64 response; + __u32 id; + __u32 reserved; +}; + +struct rdma_ucm_query_route_resp { + __u64 node_guid; + struct ib_user_path_rec ib_route[2]; + struct sockaddr_in6 src_addr; + struct sockaddr_in6 dst_addr; + __u32 num_paths; + __u8 port_num; + __u8 reserved[3]; +}; + +struct rdma_ucm_conn_param { + __u32 qp_num; + __u32 reserved; + __u8 private_data[RDMA_MAX_PRIVATE_DATA]; + __u8 private_data_len; + __u8 srq; + __u8 responder_resources; + __u8 initiator_depth; + __u8 flow_control; + __u8 retry_count; + __u8 rnr_retry_count; + __u8 valid; +}; + +struct rdma_ucm_ud_param { + __u32 qp_num; + __u32 qkey; + struct ib_uverbs_ah_attr ah_attr; + __u8 private_data[RDMA_MAX_PRIVATE_DATA]; + __u8 private_data_len; + __u8 reserved[7]; +}; + +struct rdma_ucm_connect { + struct rdma_ucm_conn_param conn_param; + __u32 id; + __u32 reserved; +}; + +struct rdma_ucm_listen { + __u32 id; + __u32 backlog; +}; + +struct rdma_ucm_accept { + __u64 uid; + struct rdma_ucm_conn_param conn_param; + __u32 id; + __u32 reserved; +}; + +struct rdma_ucm_reject { + __u32 id; + __u8 private_data_len; + __u8 reserved[3]; + __u8 private_data[RDMA_MAX_PRIVATE_DATA]; +}; + +struct rdma_ucm_disconnect { + __u32 id; +}; + +struct rdma_ucm_init_qp_attr { + __u64 response; + __u32 id; + __u32 qp_state; +}; + +struct rdma_ucm_notify { + __u32 id; + __u32 event; +}; + +struct rdma_ucm_join_mcast { + __u64 response; /* rdma_ucm_create_id_resp */ + __u64 uid; + struct sockaddr_in6 addr; + __u32 id; +}; + +struct rdma_ucm_get_event { + __u64 response; +}; + +struct rdma_ucm_event_resp { + __u64 uid; + __u32 id; + __u32 event; + __u32 status; + union { + struct rdma_ucm_conn_param conn; + struct rdma_ucm_ud_param ud; + } param; +}; + +/* Option levels */ +enum { + RDMA_OPTION_ID = 0, + RDMA_OPTION_IB = 1 +}; + +/* Option details */ +enum { + RDMA_OPTION_ID_TOS = 0, + RDMA_OPTION_ID_REUSEADDR = 1, + RDMA_OPTION_ID_AFONLY = 2, + RDMA_OPTION_IB_PATH = 1 +}; + +struct rdma_ucm_set_option { + __u64 optval; + __u32 id; + __u32 level; + __u32 optname; + __u32 optlen; +}; + +struct rdma_ucm_migrate_id { + __u64 response; + __u32 id; + __u32 fd; +}; + +struct rdma_ucm_migrate_resp { + __u32 events_reported; +}; + +#endif /* RDMA_USER_CM_H */ diff --git a/kernel_headers/scsi/..install.cmd b/kernel_headers/scsi/..install.cmd new file mode 100644 index 0000000..601b606 --- /dev/null +++ b/kernel_headers/scsi/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi /android/kernels/moto/surnia/kernel-msm/include/uapi/scsi scsi_bsg_fc.h scsi_ioctl.h scsi_netlink.h scsi_netlink_fc.h sg.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi /android/kernels/moto/surnia/kernel-msm/include/scsi ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/scsi ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/.install diff --git a/kernel_headers/scsi/.install b/kernel_headers/scsi/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/scsi/fc/..install.cmd b/kernel_headers/scsi/fc/..install.cmd new file mode 100644 index 0000000..2ffe845 --- /dev/null +++ b/kernel_headers/scsi/fc/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/fc/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/fc /android/kernels/moto/surnia/kernel-msm/include/uapi/scsi/fc fc_els.h fc_fs.h fc_gs.h fc_ns.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/fc /android/kernels/moto/surnia/kernel-msm/include/scsi/fc ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/fc /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/scsi/fc ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/fc/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/fc/.install diff --git a/kernel_headers/scsi/fc/.install b/kernel_headers/scsi/fc/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/scsi/fc/fc_els.h b/kernel_headers/scsi/fc/fc_els.h new file mode 100644 index 0000000..481abbd --- /dev/null +++ b/kernel_headers/scsi/fc/fc_els.h @@ -0,0 +1,831 @@ +/* + * Copyright(c) 2007 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * Maintained at www.Open-FCoE.org + */ + +#ifndef _FC_ELS_H_ +#define _FC_ELS_H_ + +#include + +/* + * Fibre Channel Switch - Enhanced Link Services definitions. + * From T11 FC-LS Rev 1.2 June 7, 2005. + */ + +/* + * ELS Command codes - byte 0 of the frame payload + */ +enum fc_els_cmd { + ELS_LS_RJT = 0x01, /* ESL reject */ + ELS_LS_ACC = 0x02, /* ESL Accept */ + ELS_PLOGI = 0x03, /* N_Port login */ + ELS_FLOGI = 0x04, /* F_Port login */ + ELS_LOGO = 0x05, /* Logout */ + ELS_ABTX = 0x06, /* Abort exchange - obsolete */ + ELS_RCS = 0x07, /* read connection status */ + ELS_RES = 0x08, /* read exchange status block */ + ELS_RSS = 0x09, /* read sequence status block */ + ELS_RSI = 0x0a, /* read sequence initiative */ + ELS_ESTS = 0x0b, /* establish streaming */ + ELS_ESTC = 0x0c, /* estimate credit */ + ELS_ADVC = 0x0d, /* advise credit */ + ELS_RTV = 0x0e, /* read timeout value */ + ELS_RLS = 0x0f, /* read link error status block */ + ELS_ECHO = 0x10, /* echo */ + ELS_TEST = 0x11, /* test */ + ELS_RRQ = 0x12, /* reinstate recovery qualifier */ + ELS_REC = 0x13, /* read exchange concise */ + ELS_SRR = 0x14, /* sequence retransmission request */ + ELS_PRLI = 0x20, /* process login */ + ELS_PRLO = 0x21, /* process logout */ + ELS_SCN = 0x22, /* state change notification */ + ELS_TPLS = 0x23, /* test process login state */ + ELS_TPRLO = 0x24, /* third party process logout */ + ELS_LCLM = 0x25, /* login control list mgmt (obs) */ + ELS_GAID = 0x30, /* get alias_ID */ + ELS_FACT = 0x31, /* fabric activate alias_id */ + ELS_FDACDT = 0x32, /* fabric deactivate alias_id */ + ELS_NACT = 0x33, /* N-port activate alias_id */ + ELS_NDACT = 0x34, /* N-port deactivate alias_id */ + ELS_QOSR = 0x40, /* quality of service request */ + ELS_RVCS = 0x41, /* read virtual circuit status */ + ELS_PDISC = 0x50, /* discover N_port service params */ + ELS_FDISC = 0x51, /* discover F_port service params */ + ELS_ADISC = 0x52, /* discover address */ + ELS_RNC = 0x53, /* report node cap (obs) */ + ELS_FARP_REQ = 0x54, /* FC ARP request */ + ELS_FARP_REPL = 0x55, /* FC ARP reply */ + ELS_RPS = 0x56, /* read port status block */ + ELS_RPL = 0x57, /* read port list */ + ELS_RPBC = 0x58, /* read port buffer condition */ + ELS_FAN = 0x60, /* fabric address notification */ + ELS_RSCN = 0x61, /* registered state change notification */ + ELS_SCR = 0x62, /* state change registration */ + ELS_RNFT = 0x63, /* report node FC-4 types */ + ELS_CSR = 0x68, /* clock synch. request */ + ELS_CSU = 0x69, /* clock synch. update */ + ELS_LINIT = 0x70, /* loop initialize */ + ELS_LSTS = 0x72, /* loop status */ + ELS_RNID = 0x78, /* request node ID data */ + ELS_RLIR = 0x79, /* registered link incident report */ + ELS_LIRR = 0x7a, /* link incident record registration */ + ELS_SRL = 0x7b, /* scan remote loop */ + ELS_SBRP = 0x7c, /* set bit-error reporting params */ + ELS_RPSC = 0x7d, /* report speed capabilities */ + ELS_QSA = 0x7e, /* query security attributes */ + ELS_EVFP = 0x7f, /* exchange virt. fabrics params */ + ELS_LKA = 0x80, /* link keep-alive */ + ELS_AUTH_ELS = 0x90, /* authentication ELS */ +}; + +/* + * Initializer useful for decoding table. + * Please keep this in sync with the above definitions. + */ +#define FC_ELS_CMDS_INIT { \ + [ELS_LS_RJT] = "LS_RJT", \ + [ELS_LS_ACC] = "LS_ACC", \ + [ELS_PLOGI] = "PLOGI", \ + [ELS_FLOGI] = "FLOGI", \ + [ELS_LOGO] = "LOGO", \ + [ELS_ABTX] = "ABTX", \ + [ELS_RCS] = "RCS", \ + [ELS_RES] = "RES", \ + [ELS_RSS] = "RSS", \ + [ELS_RSI] = "RSI", \ + [ELS_ESTS] = "ESTS", \ + [ELS_ESTC] = "ESTC", \ + [ELS_ADVC] = "ADVC", \ + [ELS_RTV] = "RTV", \ + [ELS_RLS] = "RLS", \ + [ELS_ECHO] = "ECHO", \ + [ELS_TEST] = "TEST", \ + [ELS_RRQ] = "RRQ", \ + [ELS_REC] = "REC", \ + [ELS_SRR] = "SRR", \ + [ELS_PRLI] = "PRLI", \ + [ELS_PRLO] = "PRLO", \ + [ELS_SCN] = "SCN", \ + [ELS_TPLS] = "TPLS", \ + [ELS_TPRLO] = "TPRLO", \ + [ELS_LCLM] = "LCLM", \ + [ELS_GAID] = "GAID", \ + [ELS_FACT] = "FACT", \ + [ELS_FDACDT] = "FDACDT", \ + [ELS_NACT] = "NACT", \ + [ELS_NDACT] = "NDACT", \ + [ELS_QOSR] = "QOSR", \ + [ELS_RVCS] = "RVCS", \ + [ELS_PDISC] = "PDISC", \ + [ELS_FDISC] = "FDISC", \ + [ELS_ADISC] = "ADISC", \ + [ELS_RNC] = "RNC", \ + [ELS_FARP_REQ] = "FARP_REQ", \ + [ELS_FARP_REPL] = "FARP_REPL", \ + [ELS_RPS] = "RPS", \ + [ELS_RPL] = "RPL", \ + [ELS_RPBC] = "RPBC", \ + [ELS_FAN] = "FAN", \ + [ELS_RSCN] = "RSCN", \ + [ELS_SCR] = "SCR", \ + [ELS_RNFT] = "RNFT", \ + [ELS_CSR] = "CSR", \ + [ELS_CSU] = "CSU", \ + [ELS_LINIT] = "LINIT", \ + [ELS_LSTS] = "LSTS", \ + [ELS_RNID] = "RNID", \ + [ELS_RLIR] = "RLIR", \ + [ELS_LIRR] = "LIRR", \ + [ELS_SRL] = "SRL", \ + [ELS_SBRP] = "SBRP", \ + [ELS_RPSC] = "RPSC", \ + [ELS_QSA] = "QSA", \ + [ELS_EVFP] = "EVFP", \ + [ELS_LKA] = "LKA", \ + [ELS_AUTH_ELS] = "AUTH_ELS", \ +} + +/* + * LS_ACC payload. + */ +struct fc_els_ls_acc { + __u8 la_cmd; /* command code ELS_LS_ACC */ + __u8 la_resv[3]; /* reserved */ +}; + +/* + * ELS reject payload. + */ +struct fc_els_ls_rjt { + __u8 er_cmd; /* command code ELS_LS_RJT */ + __u8 er_resv[4]; /* reserved must be zero */ + __u8 er_reason; /* reason (enum fc_els_rjt_reason below) */ + __u8 er_explan; /* explanation (enum fc_els_rjt_explan below) */ + __u8 er_vendor; /* vendor specific code */ +}; + +/* + * ELS reject reason codes (er_reason). + */ +enum fc_els_rjt_reason { + ELS_RJT_NONE = 0, /* no reject - not to be sent */ + ELS_RJT_INVAL = 0x01, /* invalid ELS command code */ + ELS_RJT_LOGIC = 0x03, /* logical error */ + ELS_RJT_BUSY = 0x05, /* logical busy */ + ELS_RJT_PROT = 0x07, /* protocol error */ + ELS_RJT_UNAB = 0x09, /* unable to perform command request */ + ELS_RJT_UNSUP = 0x0b, /* command not supported */ + ELS_RJT_INPROG = 0x0e, /* command already in progress */ + ELS_RJT_FIP = 0x20, /* FIP error */ + ELS_RJT_VENDOR = 0xff, /* vendor specific error */ +}; + + +/* + * reason code explanation (er_explan). + */ +enum fc_els_rjt_explan { + ELS_EXPL_NONE = 0x00, /* No additional explanation */ + ELS_EXPL_SPP_OPT_ERR = 0x01, /* service parameter error - options */ + ELS_EXPL_SPP_ICTL_ERR = 0x03, /* service parm error - initiator ctl */ + ELS_EXPL_AH = 0x11, /* invalid association header */ + ELS_EXPL_AH_REQ = 0x13, /* association_header required */ + ELS_EXPL_SID = 0x15, /* invalid originator S_ID */ + ELS_EXPL_OXID_RXID = 0x17, /* invalid OX_ID-RX_ID combination */ + ELS_EXPL_INPROG = 0x19, /* Request already in progress */ + ELS_EXPL_PLOGI_REQD = 0x1e, /* N_Port login required */ + ELS_EXPL_INSUF_RES = 0x29, /* insufficient resources */ + ELS_EXPL_UNAB_DATA = 0x2a, /* unable to supply requested data */ + ELS_EXPL_UNSUPR = 0x2c, /* Request not supported */ + ELS_EXPL_INV_LEN = 0x2d, /* Invalid payload length */ + ELS_EXPL_NOT_NEIGHBOR = 0x62, /* VN2VN_Port not in neighbor set */ + /* TBD - above definitions incomplete */ +}; + +/* + * Common service parameters (N ports). + */ +struct fc_els_csp { + __u8 sp_hi_ver; /* highest version supported (obs.) */ + __u8 sp_lo_ver; /* highest version supported (obs.) */ + __be16 sp_bb_cred; /* buffer-to-buffer credits */ + __be16 sp_features; /* common feature flags */ + __be16 sp_bb_data; /* b-b state number and data field sz */ + union { + struct { + __be16 _sp_tot_seq; /* total concurrent sequences */ + __be16 _sp_rel_off; /* rel. offset by info cat */ + } sp_plogi; + struct { + __be32 _sp_r_a_tov; /* resource alloc. timeout msec */ + } sp_flogi_acc; + } sp_u; + __be32 sp_e_d_tov; /* error detect timeout value */ +}; +#define sp_tot_seq sp_u.sp_plogi._sp_tot_seq +#define sp_rel_off sp_u.sp_plogi._sp_rel_off +#define sp_r_a_tov sp_u.sp_flogi_acc._sp_r_a_tov + +#define FC_SP_BB_DATA_MASK 0xfff /* mask for data field size in sp_bb_data */ + +/* + * Minimum and maximum values for max data field size in service parameters. + */ +#define FC_SP_MIN_MAX_PAYLOAD FC_MIN_MAX_PAYLOAD +#define FC_SP_MAX_MAX_PAYLOAD FC_MAX_PAYLOAD + +/* + * sp_features + */ +#define FC_SP_FT_NPIV 0x8000 /* multiple N_Port_ID support (FLOGI) */ +#define FC_SP_FT_CIRO 0x8000 /* continuously increasing rel off (PLOGI) */ +#define FC_SP_FT_CLAD 0x8000 /* clean address (in FLOGI LS_ACC) */ +#define FC_SP_FT_RAND 0x4000 /* random relative offset */ +#define FC_SP_FT_VAL 0x2000 /* valid vendor version level */ +#define FC_SP_FT_NPIV_ACC 0x2000 /* NPIV assignment (FLOGI LS_ACC) */ +#define FC_SP_FT_FPORT 0x1000 /* F port (1) vs. N port (0) */ +#define FC_SP_FT_ABB 0x0800 /* alternate BB_credit management */ +#define FC_SP_FT_EDTR 0x0400 /* E_D_TOV Resolution is nanoseconds */ +#define FC_SP_FT_MCAST 0x0200 /* multicast */ +#define FC_SP_FT_BCAST 0x0100 /* broadcast */ +#define FC_SP_FT_HUNT 0x0080 /* hunt group */ +#define FC_SP_FT_SIMP 0x0040 /* dedicated simplex */ +#define FC_SP_FT_SEC 0x0020 /* reserved for security */ +#define FC_SP_FT_CSYN 0x0010 /* clock synch. supported */ +#define FC_SP_FT_RTTOV 0x0008 /* R_T_TOV value 100 uS, else 100 mS */ +#define FC_SP_FT_HALF 0x0004 /* dynamic half duplex */ +#define FC_SP_FT_SEQC 0x0002 /* SEQ_CNT */ +#define FC_SP_FT_PAYL 0x0001 /* FLOGI payload length 256, else 116 */ + +/* + * Class-specific service parameters. + */ +struct fc_els_cssp { + __be16 cp_class; /* class flags */ + __be16 cp_init; /* initiator flags */ + __be16 cp_recip; /* recipient flags */ + __be16 cp_rdfs; /* receive data field size */ + __be16 cp_con_seq; /* concurrent sequences */ + __be16 cp_ee_cred; /* N-port end-to-end credit */ + __u8 cp_resv1; /* reserved */ + __u8 cp_open_seq; /* open sequences per exchange */ + __u8 _cp_resv2[2]; /* reserved */ +}; + +/* + * cp_class flags. + */ +#define FC_CPC_VALID 0x8000 /* class valid */ +#define FC_CPC_IMIX 0x4000 /* intermix mode */ +#define FC_CPC_SEQ 0x0800 /* sequential delivery */ +#define FC_CPC_CAMP 0x0200 /* camp-on */ +#define FC_CPC_PRI 0x0080 /* priority */ + +/* + * cp_init flags. + * (TBD: not all flags defined here). + */ +#define FC_CPI_CSYN 0x0010 /* clock synch. capable */ + +/* + * cp_recip flags. + */ +#define FC_CPR_CSYN 0x0008 /* clock synch. capable */ + +/* + * NFC_ELS_FLOGI: Fabric login request. + * NFC_ELS_PLOGI: Port login request (same format). + */ +struct fc_els_flogi { + __u8 fl_cmd; /* command */ + __u8 _fl_resvd[3]; /* must be zero */ + struct fc_els_csp fl_csp; /* common service parameters */ + __be64 fl_wwpn; /* port name */ + __be64 fl_wwnn; /* node name */ + struct fc_els_cssp fl_cssp[4]; /* class 1-4 service parameters */ + __u8 fl_vend[16]; /* vendor version level */ +} __attribute__((__packed__)); + +/* + * Process login service parameter page. + */ +struct fc_els_spp { + __u8 spp_type; /* type code or common service params */ + __u8 spp_type_ext; /* type code extension */ + __u8 spp_flags; + __u8 _spp_resvd; + __be32 spp_orig_pa; /* originator process associator */ + __be32 spp_resp_pa; /* responder process associator */ + __be32 spp_params; /* service parameters */ +}; + +/* + * spp_flags. + */ +#define FC_SPP_OPA_VAL 0x80 /* originator proc. assoc. valid */ +#define FC_SPP_RPA_VAL 0x40 /* responder proc. assoc. valid */ +#define FC_SPP_EST_IMG_PAIR 0x20 /* establish image pair */ +#define FC_SPP_RESP_MASK 0x0f /* mask for response code (below) */ + +/* + * SPP response code in spp_flags - lower 4 bits. + */ +enum fc_els_spp_resp { + FC_SPP_RESP_ACK = 1, /* request executed */ + FC_SPP_RESP_RES = 2, /* unable due to lack of resources */ + FC_SPP_RESP_INIT = 3, /* initialization not complete */ + FC_SPP_RESP_NO_PA = 4, /* unknown process associator */ + FC_SPP_RESP_CONF = 5, /* configuration precludes image pair */ + FC_SPP_RESP_COND = 6, /* request completed conditionally */ + FC_SPP_RESP_MULT = 7, /* unable to handle multiple SPPs */ + FC_SPP_RESP_INVL = 8, /* SPP is invalid */ +}; + +/* + * ELS_RRQ - Reinstate Recovery Qualifier + */ +struct fc_els_rrq { + __u8 rrq_cmd; /* command (0x12) */ + __u8 rrq_zero[3]; /* specified as zero - part of cmd */ + __u8 rrq_resvd; /* reserved */ + __u8 rrq_s_id[3]; /* originator FID */ + __be16 rrq_ox_id; /* originator exchange ID */ + __be16 rrq_rx_id; /* responders exchange ID */ +}; + +/* + * ELS_REC - Read exchange concise. + */ +struct fc_els_rec { + __u8 rec_cmd; /* command (0x13) */ + __u8 rec_zero[3]; /* specified as zero - part of cmd */ + __u8 rec_resvd; /* reserved */ + __u8 rec_s_id[3]; /* originator FID */ + __be16 rec_ox_id; /* originator exchange ID */ + __be16 rec_rx_id; /* responders exchange ID */ +}; + +/* + * ELS_REC LS_ACC payload. + */ +struct fc_els_rec_acc { + __u8 reca_cmd; /* accept (0x02) */ + __u8 reca_zero[3]; /* specified as zero - part of cmd */ + __be16 reca_ox_id; /* originator exchange ID */ + __be16 reca_rx_id; /* responders exchange ID */ + __u8 reca_resvd1; /* reserved */ + __u8 reca_ofid[3]; /* originator FID */ + __u8 reca_resvd2; /* reserved */ + __u8 reca_rfid[3]; /* responder FID */ + __be32 reca_fc4value; /* FC4 value */ + __be32 reca_e_stat; /* ESB (exchange status block) status */ +}; + +/* + * ELS_PRLI - Process login request and response. + */ +struct fc_els_prli { + __u8 prli_cmd; /* command */ + __u8 prli_spp_len; /* length of each serv. parm. page */ + __be16 prli_len; /* length of entire payload */ + /* service parameter pages follow */ +}; + +/* + * ELS_PRLO - Process logout request and response. + */ +struct fc_els_prlo { + __u8 prlo_cmd; /* command */ + __u8 prlo_obs; /* obsolete, but shall be set to 10h */ + __be16 prlo_len; /* payload length */ +}; + +/* + * ELS_ADISC payload + */ +struct fc_els_adisc { + __u8 adisc_cmd; + __u8 adisc_resv[3]; + __u8 adisc_resv1; + __u8 adisc_hard_addr[3]; + __be64 adisc_wwpn; + __be64 adisc_wwnn; + __u8 adisc_resv2; + __u8 adisc_port_id[3]; +} __attribute__((__packed__)); + +/* + * ELS_LOGO - process or fabric logout. + */ +struct fc_els_logo { + __u8 fl_cmd; /* command code */ + __u8 fl_zero[3]; /* specified as zero - part of cmd */ + __u8 fl_resvd; /* reserved */ + __u8 fl_n_port_id[3];/* N port ID */ + __be64 fl_n_port_wwn; /* port name */ +}; + +/* + * ELS_RTV - read timeout value. + */ +struct fc_els_rtv { + __u8 rtv_cmd; /* command code 0x0e */ + __u8 rtv_zero[3]; /* specified as zero - part of cmd */ +}; + +/* + * LS_ACC for ELS_RTV - read timeout value. + */ +struct fc_els_rtv_acc { + __u8 rtv_cmd; /* command code 0x02 */ + __u8 rtv_zero[3]; /* specified as zero - part of cmd */ + __be32 rtv_r_a_tov; /* resource allocation timeout value */ + __be32 rtv_e_d_tov; /* error detection timeout value */ + __be32 rtv_toq; /* timeout qualifier (see below) */ +}; + +/* + * rtv_toq bits. + */ +#define FC_ELS_RTV_EDRES (1 << 26) /* E_D_TOV resolution is nS else mS */ +#define FC_ELS_RTV_RTTOV (1 << 19) /* R_T_TOV is 100 uS else 100 mS */ + +/* + * ELS_SCR - state change registration payload. + */ +struct fc_els_scr { + __u8 scr_cmd; /* command code */ + __u8 scr_resv[6]; /* reserved */ + __u8 scr_reg_func; /* registration function (see below) */ +}; + +enum fc_els_scr_func { + ELS_SCRF_FAB = 1, /* fabric-detected registration */ + ELS_SCRF_NPORT = 2, /* Nx_Port-detected registration */ + ELS_SCRF_FULL = 3, /* full registration */ + ELS_SCRF_CLEAR = 255, /* remove any current registrations */ +}; + +/* + * ELS_RSCN - registered state change notification payload. + */ +struct fc_els_rscn { + __u8 rscn_cmd; /* RSCN opcode (0x61) */ + __u8 rscn_page_len; /* page length (4) */ + __be16 rscn_plen; /* payload length including this word */ + + /* followed by 4-byte generic affected Port_ID pages */ +}; + +struct fc_els_rscn_page { + __u8 rscn_page_flags; /* event and address format */ + __u8 rscn_fid[3]; /* fabric ID */ +}; + +#define ELS_RSCN_EV_QUAL_BIT 2 /* shift count for event qualifier */ +#define ELS_RSCN_EV_QUAL_MASK 0xf /* mask for event qualifier */ +#define ELS_RSCN_ADDR_FMT_BIT 0 /* shift count for address format */ +#define ELS_RSCN_ADDR_FMT_MASK 0x3 /* mask for address format */ + +enum fc_els_rscn_ev_qual { + ELS_EV_QUAL_NONE = 0, /* unspecified */ + ELS_EV_QUAL_NS_OBJ = 1, /* changed name server object */ + ELS_EV_QUAL_PORT_ATTR = 2, /* changed port attribute */ + ELS_EV_QUAL_SERV_OBJ = 3, /* changed service object */ + ELS_EV_QUAL_SW_CONFIG = 4, /* changed switch configuration */ + ELS_EV_QUAL_REM_OBJ = 5, /* removed object */ +}; + +enum fc_els_rscn_addr_fmt { + ELS_ADDR_FMT_PORT = 0, /* rscn_fid is a port address */ + ELS_ADDR_FMT_AREA = 1, /* rscn_fid is a area address */ + ELS_ADDR_FMT_DOM = 2, /* rscn_fid is a domain address */ + ELS_ADDR_FMT_FAB = 3, /* anything on fabric may have changed */ +}; + +/* + * ELS_RNID - request Node ID. + */ +struct fc_els_rnid { + __u8 rnid_cmd; /* RNID opcode (0x78) */ + __u8 rnid_resv[3]; /* reserved */ + __u8 rnid_fmt; /* data format */ + __u8 rnid_resv2[3]; /* reserved */ +}; + +/* + * Node Identification Data formats (rnid_fmt) + */ +enum fc_els_rnid_fmt { + ELS_RNIDF_NONE = 0, /* no specific identification data */ + ELS_RNIDF_GEN = 0xdf, /* general topology discovery format */ +}; + +/* + * ELS_RNID response. + */ +struct fc_els_rnid_resp { + __u8 rnid_cmd; /* response code (LS_ACC) */ + __u8 rnid_resv[3]; /* reserved */ + __u8 rnid_fmt; /* data format */ + __u8 rnid_cid_len; /* common ID data length */ + __u8 rnid_resv2; /* reserved */ + __u8 rnid_sid_len; /* specific ID data length */ +}; + +struct fc_els_rnid_cid { + __be64 rnid_wwpn; /* N port name */ + __be64 rnid_wwnn; /* node name */ +}; + +struct fc_els_rnid_gen { + __u8 rnid_vend_id[16]; /* vendor-unique ID */ + __be32 rnid_atype; /* associated type (see below) */ + __be32 rnid_phys_port; /* physical port number */ + __be32 rnid_att_nodes; /* number of attached nodes */ + __u8 rnid_node_mgmt; /* node management (see below) */ + __u8 rnid_ip_ver; /* IP version (see below) */ + __be16 rnid_prot_port; /* UDP / TCP port number */ + __be32 rnid_ip_addr[4]; /* IP address */ + __u8 rnid_resvd[2]; /* reserved */ + __be16 rnid_vend_spec; /* vendor-specific field */ +}; + +enum fc_els_rnid_atype { + ELS_RNIDA_UNK = 0x01, /* unknown */ + ELS_RNIDA_OTHER = 0x02, /* none of the following */ + ELS_RNIDA_HUB = 0x03, + ELS_RNIDA_SWITCH = 0x04, + ELS_RNIDA_GATEWAY = 0x05, + ELS_RNIDA_CONV = 0x06, /* Obsolete, do not use this value */ + ELS_RNIDA_HBA = 0x07, /* Obsolete, do not use this value */ + ELS_RNIDA_PROXY = 0x08, /* Obsolete, do not use this value */ + ELS_RNIDA_STORAGE = 0x09, + ELS_RNIDA_HOST = 0x0a, + ELS_RNIDA_SUBSYS = 0x0b, /* storage subsystem (e.g., RAID) */ + ELS_RNIDA_ACCESS = 0x0e, /* access device (e.g. media changer) */ + ELS_RNIDA_NAS = 0x11, /* NAS server */ + ELS_RNIDA_BRIDGE = 0x12, /* bridge */ + ELS_RNIDA_VIRT = 0x13, /* virtualization device */ + ELS_RNIDA_MF = 0xff, /* multifunction device (bits below) */ + ELS_RNIDA_MF_HUB = 1UL << 31, /* hub */ + ELS_RNIDA_MF_SW = 1UL << 30, /* switch */ + ELS_RNIDA_MF_GW = 1UL << 29, /* gateway */ + ELS_RNIDA_MF_ST = 1UL << 28, /* storage */ + ELS_RNIDA_MF_HOST = 1UL << 27, /* host */ + ELS_RNIDA_MF_SUB = 1UL << 26, /* storage subsystem */ + ELS_RNIDA_MF_ACC = 1UL << 25, /* storage access dev */ + ELS_RNIDA_MF_WDM = 1UL << 24, /* wavelength division mux */ + ELS_RNIDA_MF_NAS = 1UL << 23, /* NAS server */ + ELS_RNIDA_MF_BR = 1UL << 22, /* bridge */ + ELS_RNIDA_MF_VIRT = 1UL << 21, /* virtualization device */ +}; + +enum fc_els_rnid_mgmt { + ELS_RNIDM_SNMP = 0, + ELS_RNIDM_TELNET = 1, + ELS_RNIDM_HTTP = 2, + ELS_RNIDM_HTTPS = 3, + ELS_RNIDM_XML = 4, /* HTTP + XML */ +}; + +enum fc_els_rnid_ipver { + ELS_RNIDIP_NONE = 0, /* no IP support or node mgmt. */ + ELS_RNIDIP_V4 = 1, /* IPv4 */ + ELS_RNIDIP_V6 = 2, /* IPv6 */ +}; + +/* + * ELS RPL - Read Port List. + */ +struct fc_els_rpl { + __u8 rpl_cmd; /* command */ + __u8 rpl_resv[5]; /* reserved - must be zero */ + __be16 rpl_max_size; /* maximum response size or zero */ + __u8 rpl_resv1; /* reserved - must be zero */ + __u8 rpl_index[3]; /* starting index */ +}; + +/* + * Port number block in RPL response. + */ +struct fc_els_pnb { + __be32 pnb_phys_pn; /* physical port number */ + __u8 pnb_resv; /* reserved */ + __u8 pnb_port_id[3]; /* port ID */ + __be64 pnb_wwpn; /* port name */ +}; + +/* + * RPL LS_ACC response. + */ +struct fc_els_rpl_resp { + __u8 rpl_cmd; /* ELS_LS_ACC */ + __u8 rpl_resv1; /* reserved - must be zero */ + __be16 rpl_plen; /* payload length */ + __u8 rpl_resv2; /* reserved - must be zero */ + __u8 rpl_llen[3]; /* list length */ + __u8 rpl_resv3; /* reserved - must be zero */ + __u8 rpl_index[3]; /* starting index */ + struct fc_els_pnb rpl_pnb[1]; /* variable number of PNBs */ +}; + +/* + * Link Error Status Block. + */ +struct fc_els_lesb { + __be32 lesb_link_fail; /* link failure count */ + __be32 lesb_sync_loss; /* loss of synchronization count */ + __be32 lesb_sig_loss; /* loss of signal count */ + __be32 lesb_prim_err; /* primitive sequence error count */ + __be32 lesb_inv_word; /* invalid transmission word count */ + __be32 lesb_inv_crc; /* invalid CRC count */ +}; + +/* + * ELS RPS - Read Port Status Block request. + */ +struct fc_els_rps { + __u8 rps_cmd; /* command */ + __u8 rps_resv[2]; /* reserved - must be zero */ + __u8 rps_flag; /* flag - see below */ + __be64 rps_port_spec; /* port selection */ +}; + +enum fc_els_rps_flag { + FC_ELS_RPS_DID = 0x00, /* port identified by D_ID of req. */ + FC_ELS_RPS_PPN = 0x01, /* port_spec is physical port number */ + FC_ELS_RPS_WWPN = 0x02, /* port_spec is port WWN */ +}; + +/* + * ELS RPS LS_ACC response. + */ +struct fc_els_rps_resp { + __u8 rps_cmd; /* command - LS_ACC */ + __u8 rps_resv[2]; /* reserved - must be zero */ + __u8 rps_flag; /* flag - see below */ + __u8 rps_resv2[2]; /* reserved */ + __be16 rps_status; /* port status - see below */ + struct fc_els_lesb rps_lesb; /* link error status block */ +}; + +enum fc_els_rps_resp_flag { + FC_ELS_RPS_LPEV = 0x01, /* L_port extension valid */ +}; + +enum fc_els_rps_resp_status { + FC_ELS_RPS_PTP = 1 << 5, /* point-to-point connection */ + FC_ELS_RPS_LOOP = 1 << 4, /* loop mode */ + FC_ELS_RPS_FAB = 1 << 3, /* fabric present */ + FC_ELS_RPS_NO_SIG = 1 << 2, /* loss of signal */ + FC_ELS_RPS_NO_SYNC = 1 << 1, /* loss of synchronization */ + FC_ELS_RPS_RESET = 1 << 0, /* in link reset protocol */ +}; + +/* + * ELS LIRR - Link Incident Record Registration request. + */ +struct fc_els_lirr { + __u8 lirr_cmd; /* command */ + __u8 lirr_resv[3]; /* reserved - must be zero */ + __u8 lirr_func; /* registration function */ + __u8 lirr_fmt; /* FC-4 type of RLIR requested */ + __u8 lirr_resv2[2]; /* reserved - must be zero */ +}; + +enum fc_els_lirr_func { + ELS_LIRR_SET_COND = 0x01, /* set - conditionally receive */ + ELS_LIRR_SET_UNCOND = 0x02, /* set - unconditionally receive */ + ELS_LIRR_CLEAR = 0xff /* clear registration */ +}; + +/* + * ELS SRL - Scan Remote Loop request. + */ +struct fc_els_srl { + __u8 srl_cmd; /* command */ + __u8 srl_resv[3]; /* reserved - must be zero */ + __u8 srl_flag; /* flag - see below */ + __u8 srl_flag_param[3]; /* flag parameter */ +}; + +enum fc_els_srl_flag { + FC_ELS_SRL_ALL = 0x00, /* scan all FL ports */ + FC_ELS_SRL_ONE = 0x01, /* scan specified loop */ + FC_ELS_SRL_EN_PER = 0x02, /* enable periodic scanning (param) */ + FC_ELS_SRL_DIS_PER = 0x03, /* disable periodic scanning */ +}; + +/* + * ELS RLS - Read Link Error Status Block request. + */ +struct fc_els_rls { + __u8 rls_cmd; /* command */ + __u8 rls_resv[4]; /* reserved - must be zero */ + __u8 rls_port_id[3]; /* port ID */ +}; + +/* + * ELS RLS LS_ACC Response. + */ +struct fc_els_rls_resp { + __u8 rls_cmd; /* ELS_LS_ACC */ + __u8 rls_resv[3]; /* reserved - must be zero */ + struct fc_els_lesb rls_lesb; /* link error status block */ +}; + +/* + * ELS RLIR - Registered Link Incident Report. + * This is followed by the CLIR and the CLID, described below. + */ +struct fc_els_rlir { + __u8 rlir_cmd; /* command */ + __u8 rlir_resv[3]; /* reserved - must be zero */ + __u8 rlir_fmt; /* format (FC4-type if type specific) */ + __u8 rlir_clr_len; /* common link incident record length */ + __u8 rlir_cld_len; /* common link incident desc. length */ + __u8 rlir_slr_len; /* spec. link incident record length */ +}; + +/* + * CLIR - Common Link Incident Record Data. - Sent via RLIR. + */ +struct fc_els_clir { + __be64 clir_wwpn; /* incident port name */ + __be64 clir_wwnn; /* incident port node name */ + __u8 clir_port_type; /* incident port type */ + __u8 clir_port_id[3]; /* incident port ID */ + + __be64 clir_conn_wwpn; /* connected port name */ + __be64 clir_conn_wwnn; /* connected node name */ + __be64 clir_fab_name; /* fabric name */ + __be32 clir_phys_port; /* physical port number */ + __be32 clir_trans_id; /* transaction ID */ + __u8 clir_resv[3]; /* reserved */ + __u8 clir_ts_fmt; /* time stamp format */ + __be64 clir_timestamp; /* time stamp */ +}; + +/* + * CLIR clir_ts_fmt - time stamp format values. + */ +enum fc_els_clir_ts_fmt { + ELS_CLIR_TS_UNKNOWN = 0, /* time stamp field unknown */ + ELS_CLIR_TS_SEC_FRAC = 1, /* time in seconds and fractions */ + ELS_CLIR_TS_CSU = 2, /* time in clock synch update format */ +}; + +/* + * Common Link Incident Descriptor - sent via RLIR. + */ +struct fc_els_clid { + __u8 clid_iq; /* incident qualifier flags */ + __u8 clid_ic; /* incident code */ + __be16 clid_epai; /* domain/area of ISL */ +}; + +/* + * CLID incident qualifier flags. + */ +enum fc_els_clid_iq { + ELS_CLID_SWITCH = 0x20, /* incident port is a switch node */ + ELS_CLID_E_PORT = 0x10, /* incident is an ISL (E) port */ + ELS_CLID_SEV_MASK = 0x0c, /* severity 2-bit field mask */ + ELS_CLID_SEV_INFO = 0x00, /* report is informational */ + ELS_CLID_SEV_INOP = 0x08, /* link not operational */ + ELS_CLID_SEV_DEG = 0x04, /* link degraded but operational */ + ELS_CLID_LASER = 0x02, /* subassembly is a laser */ + ELS_CLID_FRU = 0x01, /* format can identify a FRU */ +}; + +/* + * CLID incident code. + */ +enum fc_els_clid_ic { + ELS_CLID_IC_IMPL = 1, /* implicit incident */ + ELS_CLID_IC_BER = 2, /* bit-error-rate threshold exceeded */ + ELS_CLID_IC_LOS = 3, /* loss of synch or signal */ + ELS_CLID_IC_NOS = 4, /* non-operational primitive sequence */ + ELS_CLID_IC_PST = 5, /* primitive sequence timeout */ + ELS_CLID_IC_INVAL = 6, /* invalid primitive sequence */ + ELS_CLID_IC_LOOP_TO = 7, /* loop initialization time out */ + ELS_CLID_IC_LIP = 8, /* receiving LIP */ +}; + +#endif /* _FC_ELS_H_ */ diff --git a/kernel_headers/scsi/fc/fc_fs.h b/kernel_headers/scsi/fc/fc_fs.h new file mode 100644 index 0000000..50f28b1 --- /dev/null +++ b/kernel_headers/scsi/fc/fc_fs.h @@ -0,0 +1,348 @@ +/* + * Copyright(c) 2007 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * Maintained at www.Open-FCoE.org + */ + +#ifndef _FC_FS_H_ +#define _FC_FS_H_ + +#include + +/* + * Fibre Channel Framing and Signalling definitions. + * From T11 FC-FS-2 Rev 0.90 - 9 August 2005. + */ + +/* + * Frame header + */ +struct fc_frame_header { + __u8 fh_r_ctl; /* routing control */ + __u8 fh_d_id[3]; /* Destination ID */ + + __u8 fh_cs_ctl; /* class of service control / pri */ + __u8 fh_s_id[3]; /* Source ID */ + + __u8 fh_type; /* see enum fc_fh_type below */ + __u8 fh_f_ctl[3]; /* frame control */ + + __u8 fh_seq_id; /* sequence ID */ + __u8 fh_df_ctl; /* data field control */ + __be16 fh_seq_cnt; /* sequence count */ + + __be16 fh_ox_id; /* originator exchange ID */ + __be16 fh_rx_id; /* responder exchange ID */ + __be32 fh_parm_offset; /* parameter or relative offset */ +}; + +#define FC_FRAME_HEADER_LEN 24 /* expected length of structure */ + +#define FC_MAX_PAYLOAD 2112U /* max payload length in bytes */ +#define FC_MIN_MAX_PAYLOAD 256U /* lower limit on max payload */ + +#define FC_MAX_FRAME (FC_MAX_PAYLOAD + FC_FRAME_HEADER_LEN) +#define FC_MIN_MAX_FRAME (FC_MIN_MAX_PAYLOAD + FC_FRAME_HEADER_LEN) + +/* + * fh_r_ctl - Routing control definitions. + */ + /* + * FC-4 device_data. + */ +enum fc_rctl { + FC_RCTL_DD_UNCAT = 0x00, /* uncategorized information */ + FC_RCTL_DD_SOL_DATA = 0x01, /* solicited data */ + FC_RCTL_DD_UNSOL_CTL = 0x02, /* unsolicited control */ + FC_RCTL_DD_SOL_CTL = 0x03, /* solicited control or reply */ + FC_RCTL_DD_UNSOL_DATA = 0x04, /* unsolicited data */ + FC_RCTL_DD_DATA_DESC = 0x05, /* data descriptor */ + FC_RCTL_DD_UNSOL_CMD = 0x06, /* unsolicited command */ + FC_RCTL_DD_CMD_STATUS = 0x07, /* command status */ + +#define FC_RCTL_ILS_REQ FC_RCTL_DD_UNSOL_CTL /* ILS request */ +#define FC_RCTL_ILS_REP FC_RCTL_DD_SOL_CTL /* ILS reply */ + + /* + * Extended Link_Data + */ + FC_RCTL_ELS_REQ = 0x22, /* extended link services request */ + FC_RCTL_ELS_REP = 0x23, /* extended link services reply */ + FC_RCTL_ELS4_REQ = 0x32, /* FC-4 ELS request */ + FC_RCTL_ELS4_REP = 0x33, /* FC-4 ELS reply */ + /* + * Optional Extended Headers + */ + FC_RCTL_VFTH = 0x50, /* virtual fabric tagging header */ + FC_RCTL_IFRH = 0x51, /* inter-fabric routing header */ + FC_RCTL_ENCH = 0x52, /* encapsulation header */ + /* + * Basic Link Services fh_r_ctl values. + */ + FC_RCTL_BA_NOP = 0x80, /* basic link service NOP */ + FC_RCTL_BA_ABTS = 0x81, /* basic link service abort */ + FC_RCTL_BA_RMC = 0x82, /* remove connection */ + FC_RCTL_BA_ACC = 0x84, /* basic accept */ + FC_RCTL_BA_RJT = 0x85, /* basic reject */ + FC_RCTL_BA_PRMT = 0x86, /* dedicated connection preempted */ + /* + * Link Control Information. + */ + FC_RCTL_ACK_1 = 0xc0, /* acknowledge_1 */ + FC_RCTL_ACK_0 = 0xc1, /* acknowledge_0 */ + FC_RCTL_P_RJT = 0xc2, /* port reject */ + FC_RCTL_F_RJT = 0xc3, /* fabric reject */ + FC_RCTL_P_BSY = 0xc4, /* port busy */ + FC_RCTL_F_BSY = 0xc5, /* fabric busy to data frame */ + FC_RCTL_F_BSYL = 0xc6, /* fabric busy to link control frame */ + FC_RCTL_LCR = 0xc7, /* link credit reset */ + FC_RCTL_END = 0xc9, /* end */ +}; + /* incomplete list of definitions */ + +/* + * R_CTL names initializer. + * Please keep this matching the above definitions. + */ +#define FC_RCTL_NAMES_INIT { \ + [FC_RCTL_DD_UNCAT] = "uncat", \ + [FC_RCTL_DD_SOL_DATA] = "sol data", \ + [FC_RCTL_DD_UNSOL_CTL] = "unsol ctl", \ + [FC_RCTL_DD_SOL_CTL] = "sol ctl/reply", \ + [FC_RCTL_DD_UNSOL_DATA] = "unsol data", \ + [FC_RCTL_DD_DATA_DESC] = "data desc", \ + [FC_RCTL_DD_UNSOL_CMD] = "unsol cmd", \ + [FC_RCTL_DD_CMD_STATUS] = "cmd status", \ + [FC_RCTL_ELS_REQ] = "ELS req", \ + [FC_RCTL_ELS_REP] = "ELS rep", \ + [FC_RCTL_ELS4_REQ] = "FC-4 ELS req", \ + [FC_RCTL_ELS4_REP] = "FC-4 ELS rep", \ + [FC_RCTL_BA_NOP] = "BLS NOP", \ + [FC_RCTL_BA_ABTS] = "BLS abort", \ + [FC_RCTL_BA_RMC] = "BLS remove connection", \ + [FC_RCTL_BA_ACC] = "BLS accept", \ + [FC_RCTL_BA_RJT] = "BLS reject", \ + [FC_RCTL_BA_PRMT] = "BLS dedicated connection preempted", \ + [FC_RCTL_ACK_1] = "LC ACK_1", \ + [FC_RCTL_ACK_0] = "LC ACK_0", \ + [FC_RCTL_P_RJT] = "LC port reject", \ + [FC_RCTL_F_RJT] = "LC fabric reject", \ + [FC_RCTL_P_BSY] = "LC port busy", \ + [FC_RCTL_F_BSY] = "LC fabric busy to data frame", \ + [FC_RCTL_F_BSYL] = "LC fabric busy to link control frame",\ + [FC_RCTL_LCR] = "LC link credit reset", \ + [FC_RCTL_END] = "LC end", \ +} + +/* + * Well-known fabric addresses. + */ +enum fc_well_known_fid { + FC_FID_NONE = 0x000000, /* No destination */ + FC_FID_BCAST = 0xffffff, /* broadcast */ + FC_FID_FLOGI = 0xfffffe, /* fabric login */ + FC_FID_FCTRL = 0xfffffd, /* fabric controller */ + FC_FID_DIR_SERV = 0xfffffc, /* directory server */ + FC_FID_TIME_SERV = 0xfffffb, /* time server */ + FC_FID_MGMT_SERV = 0xfffffa, /* management server */ + FC_FID_QOS = 0xfffff9, /* QoS Facilitator */ + FC_FID_ALIASES = 0xfffff8, /* alias server (FC-PH2) */ + FC_FID_SEC_KEY = 0xfffff7, /* Security key dist. server */ + FC_FID_CLOCK = 0xfffff6, /* clock synch server */ + FC_FID_MCAST_SERV = 0xfffff5, /* multicast server */ +}; + +#define FC_FID_WELL_KNOWN_MAX 0xffffff /* highest well-known fabric ID */ +#define FC_FID_WELL_KNOWN_BASE 0xfffff5 /* start of well-known fabric ID */ + +/* + * Other well-known addresses, outside the above contiguous range. + */ +#define FC_FID_DOM_MGR 0xfffc00 /* domain manager base */ + +/* + * Fabric ID bytes. + */ +#define FC_FID_DOMAIN 0 +#define FC_FID_PORT 1 +#define FC_FID_LINK 2 + +/* + * fh_type codes + */ +enum fc_fh_type { + FC_TYPE_BLS = 0x00, /* basic link service */ + FC_TYPE_ELS = 0x01, /* extended link service */ + FC_TYPE_IP = 0x05, /* IP over FC, RFC 4338 */ + FC_TYPE_FCP = 0x08, /* SCSI FCP */ + FC_TYPE_CT = 0x20, /* Fibre Channel Services (FC-CT) */ + FC_TYPE_ILS = 0x22, /* internal link service */ +}; + +/* + * FC_TYPE names initializer. + * Please keep this matching the above definitions. + */ +#define FC_TYPE_NAMES_INIT { \ + [FC_TYPE_BLS] = "BLS", \ + [FC_TYPE_ELS] = "ELS", \ + [FC_TYPE_IP] = "IP", \ + [FC_TYPE_FCP] = "FCP", \ + [FC_TYPE_CT] = "CT", \ + [FC_TYPE_ILS] = "ILS", \ +} + +/* + * Exchange IDs. + */ +#define FC_XID_UNKNOWN 0xffff /* unknown exchange ID */ +#define FC_XID_MIN 0x0 /* supported min exchange ID */ +#define FC_XID_MAX 0xfffe /* supported max exchange ID */ + +/* + * fh_f_ctl - Frame control flags. + */ +#define FC_FC_EX_CTX (1 << 23) /* sent by responder to exchange */ +#define FC_FC_SEQ_CTX (1 << 22) /* sent by responder to sequence */ +#define FC_FC_FIRST_SEQ (1 << 21) /* first sequence of this exchange */ +#define FC_FC_LAST_SEQ (1 << 20) /* last sequence of this exchange */ +#define FC_FC_END_SEQ (1 << 19) /* last frame of sequence */ +#define FC_FC_END_CONN (1 << 18) /* end of class 1 connection pending */ +#define FC_FC_RES_B17 (1 << 17) /* reserved */ +#define FC_FC_SEQ_INIT (1 << 16) /* transfer of sequence initiative */ +#define FC_FC_X_ID_REASS (1 << 15) /* exchange ID has been changed */ +#define FC_FC_X_ID_INVAL (1 << 14) /* exchange ID invalidated */ + +#define FC_FC_ACK_1 (1 << 12) /* 13:12 = 1: ACK_1 expected */ +#define FC_FC_ACK_N (2 << 12) /* 13:12 = 2: ACK_N expected */ +#define FC_FC_ACK_0 (3 << 12) /* 13:12 = 3: ACK_0 expected */ + +#define FC_FC_RES_B11 (1 << 11) /* reserved */ +#define FC_FC_RES_B10 (1 << 10) /* reserved */ +#define FC_FC_RETX_SEQ (1 << 9) /* retransmitted sequence */ +#define FC_FC_UNI_TX (1 << 8) /* unidirectional transmit (class 1) */ +#define FC_FC_CONT_SEQ(i) ((i) << 6) +#define FC_FC_ABT_SEQ(i) ((i) << 4) +#define FC_FC_REL_OFF (1 << 3) /* parameter is relative offset */ +#define FC_FC_RES2 (1 << 2) /* reserved */ +#define FC_FC_FILL(i) ((i) & 3) /* 1:0: bytes of trailing fill */ + +/* + * BA_ACC payload. + */ +struct fc_ba_acc { + __u8 ba_seq_id_val; /* SEQ_ID validity */ +#define FC_BA_SEQ_ID_VAL 0x80 + __u8 ba_seq_id; /* SEQ_ID of seq last deliverable */ + __u8 ba_resvd[2]; /* reserved */ + __be16 ba_ox_id; /* OX_ID for aborted seq or exch */ + __be16 ba_rx_id; /* RX_ID for aborted seq or exch */ + __be16 ba_low_seq_cnt; /* low SEQ_CNT of aborted seq */ + __be16 ba_high_seq_cnt; /* high SEQ_CNT of aborted seq */ +}; + +/* + * BA_RJT: Basic Reject payload. + */ +struct fc_ba_rjt { + __u8 br_resvd; /* reserved */ + __u8 br_reason; /* reason code */ + __u8 br_explan; /* reason explanation */ + __u8 br_vendor; /* vendor unique code */ +}; + +/* + * BA_RJT reason codes. + * From FS-2. + */ +enum fc_ba_rjt_reason { + FC_BA_RJT_NONE = 0, /* in software this means no reject */ + FC_BA_RJT_INVL_CMD = 0x01, /* invalid command code */ + FC_BA_RJT_LOG_ERR = 0x03, /* logical error */ + FC_BA_RJT_LOG_BUSY = 0x05, /* logical busy */ + FC_BA_RJT_PROTO_ERR = 0x07, /* protocol error */ + FC_BA_RJT_UNABLE = 0x09, /* unable to perform request */ + FC_BA_RJT_VENDOR = 0xff, /* vendor-specific (see br_vendor) */ +}; + +/* + * BA_RJT reason code explanations. + */ +enum fc_ba_rjt_explan { + FC_BA_RJT_EXP_NONE = 0x00, /* no additional expanation */ + FC_BA_RJT_INV_XID = 0x03, /* invalid OX_ID-RX_ID combination */ + FC_BA_RJT_ABT = 0x05, /* sequence aborted, no seq info */ +}; + +/* + * P_RJT or F_RJT: Port Reject or Fabric Reject parameter field. + */ +struct fc_pf_rjt { + __u8 rj_action; /* reserved */ + __u8 rj_reason; /* reason code */ + __u8 rj_resvd; /* reserved */ + __u8 rj_vendor; /* vendor unique code */ +}; + +/* + * P_RJT and F_RJT reject reason codes. + */ +enum fc_pf_rjt_reason { + FC_RJT_NONE = 0, /* non-reject (reserved by standard) */ + FC_RJT_INVL_DID = 0x01, /* invalid destination ID */ + FC_RJT_INVL_SID = 0x02, /* invalid source ID */ + FC_RJT_P_UNAV_T = 0x03, /* port unavailable, temporary */ + FC_RJT_P_UNAV = 0x04, /* port unavailable, permanent */ + FC_RJT_CLS_UNSUP = 0x05, /* class not supported */ + FC_RJT_DEL_USAGE = 0x06, /* delimiter usage error */ + FC_RJT_TYPE_UNSUP = 0x07, /* type not supported */ + FC_RJT_LINK_CTL = 0x08, /* invalid link control */ + FC_RJT_R_CTL = 0x09, /* invalid R_CTL field */ + FC_RJT_F_CTL = 0x0a, /* invalid F_CTL field */ + FC_RJT_OX_ID = 0x0b, /* invalid originator exchange ID */ + FC_RJT_RX_ID = 0x0c, /* invalid responder exchange ID */ + FC_RJT_SEQ_ID = 0x0d, /* invalid sequence ID */ + FC_RJT_DF_CTL = 0x0e, /* invalid DF_CTL field */ + FC_RJT_SEQ_CNT = 0x0f, /* invalid SEQ_CNT field */ + FC_RJT_PARAM = 0x10, /* invalid parameter field */ + FC_RJT_EXCH_ERR = 0x11, /* exchange error */ + FC_RJT_PROTO = 0x12, /* protocol error */ + FC_RJT_LEN = 0x13, /* incorrect length */ + FC_RJT_UNEXP_ACK = 0x14, /* unexpected ACK */ + FC_RJT_FAB_CLASS = 0x15, /* class unsupported by fabric entity */ + FC_RJT_LOGI_REQ = 0x16, /* login required */ + FC_RJT_SEQ_XS = 0x17, /* excessive sequences attempted */ + FC_RJT_EXCH_EST = 0x18, /* unable to establish exchange */ + FC_RJT_FAB_UNAV = 0x1a, /* fabric unavailable */ + FC_RJT_VC_ID = 0x1b, /* invalid VC_ID (class 4) */ + FC_RJT_CS_CTL = 0x1c, /* invalid CS_CTL field */ + FC_RJT_INSUF_RES = 0x1d, /* insuff. resources for VC (Class 4) */ + FC_RJT_INVL_CLS = 0x1f, /* invalid class of service */ + FC_RJT_PREEMT_RJT = 0x20, /* preemption request rejected */ + FC_RJT_PREEMT_DIS = 0x21, /* preemption not enabled */ + FC_RJT_MCAST_ERR = 0x22, /* multicast error */ + FC_RJT_MCAST_ET = 0x23, /* multicast error terminate */ + FC_RJT_PRLI_REQ = 0x24, /* process login required */ + FC_RJT_INVL_ATT = 0x25, /* invalid attachment */ + FC_RJT_VENDOR = 0xff, /* vendor specific reject */ +}; + +/* default timeout values */ + +#define FC_DEF_E_D_TOV 2000UL +#define FC_DEF_R_A_TOV 10000UL + +#endif /* _FC_FS_H_ */ diff --git a/kernel_headers/scsi/fc/fc_gs.h b/kernel_headers/scsi/fc/fc_gs.h new file mode 100644 index 0000000..a37346d --- /dev/null +++ b/kernel_headers/scsi/fc/fc_gs.h @@ -0,0 +1,96 @@ +/* + * Copyright(c) 2007 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * Maintained at www.Open-FCoE.org + */ + +#ifndef _FC_GS_H_ +#define _FC_GS_H_ + +#include + +/* + * Fibre Channel Services - Common Transport. + * From T11.org FC-GS-2 Rev 5.3 November 1998. + */ + +struct fc_ct_hdr { + __u8 ct_rev; /* revision */ + __u8 ct_in_id[3]; /* N_Port ID of original requestor */ + __u8 ct_fs_type; /* type of fibre channel service */ + __u8 ct_fs_subtype; /* subtype */ + __u8 ct_options; + __u8 _ct_resvd1; + __be16 ct_cmd; /* command / response code */ + __be16 ct_mr_size; /* maximum / residual size */ + __u8 _ct_resvd2; + __u8 ct_reason; /* reject reason */ + __u8 ct_explan; /* reason code explanation */ + __u8 ct_vendor; /* vendor unique data */ +}; + +#define FC_CT_HDR_LEN 16 /* expected sizeof (struct fc_ct_hdr) */ + +enum fc_ct_rev { + FC_CT_REV = 1 /* common transport revision */ +}; + +/* + * ct_fs_type values. + */ +enum fc_ct_fs_type { + FC_FST_ALIAS = 0xf8, /* alias service */ + FC_FST_MGMT = 0xfa, /* management service */ + FC_FST_TIME = 0xfb, /* time service */ + FC_FST_DIR = 0xfc, /* directory service */ +}; + +/* + * ct_cmd: Command / response codes + */ +enum fc_ct_cmd { + FC_FS_RJT = 0x8001, /* reject */ + FC_FS_ACC = 0x8002, /* accept */ +}; + +/* + * FS_RJT reason codes. + */ +enum fc_ct_reason { + FC_FS_RJT_CMD = 0x01, /* invalid command code */ + FC_FS_RJT_VER = 0x02, /* invalid version level */ + FC_FS_RJT_LOG = 0x03, /* logical error */ + FC_FS_RJT_IUSIZ = 0x04, /* invalid IU size */ + FC_FS_RJT_BSY = 0x05, /* logical busy */ + FC_FS_RJT_PROTO = 0x07, /* protocol error */ + FC_FS_RJT_UNABL = 0x09, /* unable to perform command request */ + FC_FS_RJT_UNSUP = 0x0b, /* command not supported */ +}; + +/* + * FS_RJT reason code explanations. + */ +enum fc_ct_explan { + FC_FS_EXP_NONE = 0x00, /* no additional explanation */ + FC_FS_EXP_PID = 0x01, /* port ID not registered */ + FC_FS_EXP_PNAM = 0x02, /* port name not registered */ + FC_FS_EXP_NNAM = 0x03, /* node name not registered */ + FC_FS_EXP_COS = 0x04, /* class of service not registered */ + FC_FS_EXP_FTNR = 0x07, /* FC-4 types not registered */ + /* definitions not complete */ +}; + +#endif /* _FC_GS_H_ */ diff --git a/kernel_headers/scsi/fc/fc_ns.h b/kernel_headers/scsi/fc/fc_ns.h new file mode 100644 index 0000000..f7751d5 --- /dev/null +++ b/kernel_headers/scsi/fc/fc_ns.h @@ -0,0 +1,208 @@ +/* + * Copyright(c) 2007 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * Maintained at www.Open-FCoE.org + */ + +#ifndef _FC_NS_H_ +#define _FC_NS_H_ + +#include + +/* + * Fibre Channel Services - Name Service (dNS) + * From T11.org FC-GS-2 Rev 5.3 November 1998. + */ + +/* + * Common-transport sub-type for Name Server. + */ +#define FC_NS_SUBTYPE 2 /* fs_ct_hdr.ct_fs_subtype */ + +/* + * Name server Requests. + * Note: this is an incomplete list, some unused requests are omitted. + */ +enum fc_ns_req { + FC_NS_GA_NXT = 0x0100, /* get all next */ + FC_NS_GI_A = 0x0101, /* get identifiers - scope */ + FC_NS_GPN_ID = 0x0112, /* get port name by ID */ + FC_NS_GNN_ID = 0x0113, /* get node name by ID */ + FC_NS_GSPN_ID = 0x0118, /* get symbolic port name */ + FC_NS_GID_PN = 0x0121, /* get ID for port name */ + FC_NS_GID_NN = 0x0131, /* get IDs for node name */ + FC_NS_GID_FT = 0x0171, /* get IDs by FC4 type */ + FC_NS_GPN_FT = 0x0172, /* get port names by FC4 type */ + FC_NS_GID_PT = 0x01a1, /* get IDs by port type */ + FC_NS_RPN_ID = 0x0212, /* reg port name for ID */ + FC_NS_RNN_ID = 0x0213, /* reg node name for ID */ + FC_NS_RFT_ID = 0x0217, /* reg FC4 type for ID */ + FC_NS_RSPN_ID = 0x0218, /* reg symbolic port name */ + FC_NS_RFF_ID = 0x021f, /* reg FC4 Features for ID */ + FC_NS_RSNN_NN = 0x0239, /* reg symbolic node name */ +}; + +/* + * Port type values. + */ +enum fc_ns_pt { + FC_NS_UNID_PORT = 0x00, /* unidentified */ + FC_NS_N_PORT = 0x01, /* N port */ + FC_NS_NL_PORT = 0x02, /* NL port */ + FC_NS_FNL_PORT = 0x03, /* F/NL port */ + FC_NS_NX_PORT = 0x7f, /* Nx port */ + FC_NS_F_PORT = 0x81, /* F port */ + FC_NS_FL_PORT = 0x82, /* FL port */ + FC_NS_E_PORT = 0x84, /* E port */ + FC_NS_B_PORT = 0x85, /* B port */ +}; + +/* + * Port type object. + */ +struct fc_ns_pt_obj { + __u8 pt_type; +}; + +/* + * Port ID object + */ +struct fc_ns_fid { + __u8 fp_flags; /* flags for responses only */ + __u8 fp_fid[3]; +}; + +/* + * fp_flags in port ID object, for responses only. + */ +#define FC_NS_FID_LAST 0x80 /* last object */ + +/* + * FC4-types object. + */ +#define FC_NS_TYPES 256 /* number of possible FC-4 types */ +#define FC_NS_BPW 32 /* bits per word in bitmap */ + +struct fc_ns_fts { + __be32 ff_type_map[FC_NS_TYPES / FC_NS_BPW]; /* bitmap of FC-4 types */ +}; + +/* + * FC4-features object. + */ +struct fc_ns_ff { + __be32 fd_feat[FC_NS_TYPES * 4 / FC_NS_BPW]; /* 4-bits per FC-type */ +}; + +/* + * GID_PT request. + */ +struct fc_ns_gid_pt { + __u8 fn_pt_type; + __u8 fn_domain_id_scope; + __u8 fn_area_id_scope; + __u8 fn_resvd; +}; + +/* + * GID_FT or GPN_FT request. + */ +struct fc_ns_gid_ft { + __u8 fn_resvd; + __u8 fn_domain_id_scope; + __u8 fn_area_id_scope; + __u8 fn_fc4_type; +}; + +/* + * GPN_FT response. + */ +struct fc_gpn_ft_resp { + __u8 fp_flags; /* see fp_flags definitions above */ + __u8 fp_fid[3]; /* port ID */ + __be32 fp_resvd; + __be64 fp_wwpn; /* port name */ +}; + +/* + * GID_PN request + */ +struct fc_ns_gid_pn { + __be64 fn_wwpn; /* port name */ +}; + +/* + * GID_PN response or GSPN_ID request + */ +struct fc_gid_pn_resp { + __u8 fp_resvd; + __u8 fp_fid[3]; /* port ID */ +}; + +/* + * GSPN_ID response + */ +struct fc_gspn_resp { + __u8 fp_name_len; + char fp_name[]; +}; + +/* + * RFT_ID request - register FC-4 types for ID. + */ +struct fc_ns_rft_id { + struct fc_ns_fid fr_fid; /* port ID object */ + struct fc_ns_fts fr_fts; /* FC-4 types object */ +}; + +/* + * RPN_ID request - register port name for ID. + * RNN_ID request - register node name for ID. + */ +struct fc_ns_rn_id { + struct fc_ns_fid fr_fid; /* port ID object */ + __be64 fr_wwn; /* node name or port name */ +} __attribute__((__packed__)); + +/* + * RSNN_NN request - register symbolic node name + */ +struct fc_ns_rsnn { + __be64 fr_wwn; /* node name */ + __u8 fr_name_len; + char fr_name[]; +} __attribute__((__packed__)); + +/* + * RSPN_ID request - register symbolic port name + */ +struct fc_ns_rspn { + struct fc_ns_fid fr_fid; /* port ID object */ + __u8 fr_name_len; + char fr_name[]; +} __attribute__((__packed__)); + +/* + * RFF_ID request - register FC-4 Features for ID. + */ +struct fc_ns_rff_id { + struct fc_ns_fid fr_fid; /* port ID object */ + __u8 fr_resvd[2]; + __u8 fr_feat; /* FC-4 Feature bits */ + __u8 fr_type; /* FC-4 type */ +} __attribute__((__packed__)); + +#endif /* _FC_NS_H_ */ diff --git a/kernel_headers/scsi/scsi_bsg_fc.h b/kernel_headers/scsi/scsi_bsg_fc.h new file mode 100644 index 0000000..3031b90 --- /dev/null +++ b/kernel_headers/scsi/scsi_bsg_fc.h @@ -0,0 +1,320 @@ +/* + * FC Transport BSG Interface + * + * Copyright (C) 2008 James Smart, Emulex Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef SCSI_BSG_FC_H +#define SCSI_BSG_FC_H + +/* + * This file intended to be included by both kernel and user space + */ + +/* + * FC Transport SGIO v4 BSG Message Support + */ + +/* Default BSG request timeout (in seconds) */ +#define FC_DEFAULT_BSG_TIMEOUT (10 * HZ) + + +/* + * Request Message Codes supported by the FC Transport + */ + +/* define the class masks for the message codes */ +#define FC_BSG_CLS_MASK 0xF0000000 /* find object class */ +#define FC_BSG_HST_MASK 0x80000000 /* fc host class */ +#define FC_BSG_RPT_MASK 0x40000000 /* fc rport class */ + + /* fc_host Message Codes */ +#define FC_BSG_HST_ADD_RPORT (FC_BSG_HST_MASK | 0x00000001) +#define FC_BSG_HST_DEL_RPORT (FC_BSG_HST_MASK | 0x00000002) +#define FC_BSG_HST_ELS_NOLOGIN (FC_BSG_HST_MASK | 0x00000003) +#define FC_BSG_HST_CT (FC_BSG_HST_MASK | 0x00000004) +#define FC_BSG_HST_VENDOR (FC_BSG_HST_MASK | 0x000000FF) + + /* fc_rport Message Codes */ +#define FC_BSG_RPT_ELS (FC_BSG_RPT_MASK | 0x00000001) +#define FC_BSG_RPT_CT (FC_BSG_RPT_MASK | 0x00000002) + + + +/* + * FC Address Identifiers in Message Structures : + * + * Whenever a command payload contains a FC Address Identifier + * (aka port_id), the value is effectively in big-endian + * order, thus the array elements are decoded as follows: + * element [0] is bits 23:16 of the FC Address Identifier + * element [1] is bits 15:8 of the FC Address Identifier + * element [2] is bits 7:0 of the FC Address Identifier + */ + + +/* + * FC Host Messages + */ + +/* FC_BSG_HST_ADDR_PORT : */ + +/* Request: + * This message requests the FC host to login to the remote port + * at the specified N_Port_Id. The remote port is to be enumerated + * with the transport upon completion of the login. + */ +struct fc_bsg_host_add_rport { + uint8_t reserved; + + /* FC Address Identier of the remote port to login to */ + uint8_t port_id[3]; +}; + +/* Response: + * There is no additional response data - fc_bsg_reply->result is sufficient + */ + + +/* FC_BSG_HST_DEL_RPORT : */ + +/* Request: + * This message requests the FC host to remove an enumerated + * remote port and to terminate the login to it. + * + * Note: The driver is free to reject this request if it desires to + * remain logged in with the remote port. + */ +struct fc_bsg_host_del_rport { + uint8_t reserved; + + /* FC Address Identier of the remote port to logout of */ + uint8_t port_id[3]; +}; + +/* Response: + * There is no additional response data - fc_bsg_reply->result is sufficient + */ + + +/* FC_BSG_HST_ELS_NOLOGIN : */ + +/* Request: + * This message requests the FC_Host to send an ELS to a specific + * N_Port_ID. The host does not need to log into the remote port, + * nor does it need to enumerate the rport for further traffic + * (although, the FC host is free to do so if it desires). + */ +struct fc_bsg_host_els { + /* + * ELS Command Code being sent (must be the same as byte 0 + * of the payload) + */ + uint8_t command_code; + + /* FC Address Identier of the remote port to send the ELS to */ + uint8_t port_id[3]; +}; + +/* Response: + */ +/* fc_bsg_ctels_reply->status values */ +#define FC_CTELS_STATUS_OK 0x00000000 +#define FC_CTELS_STATUS_REJECT 0x00000001 +#define FC_CTELS_STATUS_P_RJT 0x00000002 +#define FC_CTELS_STATUS_F_RJT 0x00000003 +#define FC_CTELS_STATUS_P_BSY 0x00000004 +#define FC_CTELS_STATUS_F_BSY 0x00000006 +struct fc_bsg_ctels_reply { + /* + * Note: An ELS LS_RJT may be reported in 2 ways: + * a) A status of FC_CTELS_STATUS_OK is returned. The caller + * is to look into the ELS receive payload to determine + * LS_ACC or LS_RJT (by contents of word 0). The reject + * data will be in word 1. + * b) A status of FC_CTELS_STATUS_REJECT is returned, The + * rjt_data field will contain valid data. + * + * Note: ELS LS_ACC is determined by an FC_CTELS_STATUS_OK, and + * the receive payload word 0 indicates LS_ACC + * (e.g. value is 0x02xxxxxx). + * + * Note: Similarly, a CT Reject may be reported in 2 ways: + * a) A status of FC_CTELS_STATUS_OK is returned. The caller + * is to look into the CT receive payload to determine + * Accept or Reject (by contents of word 2). The reject + * data will be in word 3. + * b) A status of FC_CTELS_STATUS_REJECT is returned, The + * rjt_data field will contain valid data. + * + * Note: x_RJT/BSY status will indicae that the rjt_data field + * is valid and contains the reason/explanation values. + */ + uint32_t status; /* See FC_CTELS_STATUS_xxx */ + + /* valid if status is not FC_CTELS_STATUS_OK */ + struct { + uint8_t action; /* fragment_id for CT REJECT */ + uint8_t reason_code; + uint8_t reason_explanation; + uint8_t vendor_unique; + } rjt_data; +}; + + +/* FC_BSG_HST_CT : */ + +/* Request: + * This message requests that a CT Request be performed with the + * indicated N_Port_ID. The driver is responsible for logging in with + * the fabric and/or N_Port_ID, etc as per FC rules. This request does + * not mandate that the driver must enumerate the destination in the + * transport. The driver is allowed to decide whether to enumerate it, + * and whether to tear it down after the request. + */ +struct fc_bsg_host_ct { + uint8_t reserved; + + /* FC Address Identier of the remote port to send the ELS to */ + uint8_t port_id[3]; + + /* + * We need words 0-2 of the generic preamble for the LLD's + */ + uint32_t preamble_word0; /* revision & IN_ID */ + uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */ + uint32_t preamble_word2; /* Cmd Code, Max Size */ + +}; +/* Response: + * + * The reply structure is an fc_bsg_ctels_reply structure + */ + + +/* FC_BSG_HST_VENDOR : */ + +/* Request: + * Note: When specifying vendor_id, be sure to read the Vendor Type and ID + * formatting requirements specified in scsi_netlink.h + */ +struct fc_bsg_host_vendor { + /* + * Identifies the vendor that the message is formatted for. This + * should be the recipient of the message. + */ + uint64_t vendor_id; + + /* start of vendor command area */ + uint32_t vendor_cmd[0]; +}; + +/* Response: + */ +struct fc_bsg_host_vendor_reply { + /* start of vendor response area */ + uint32_t vendor_rsp[0]; +}; + + + +/* + * FC Remote Port Messages + */ + +/* FC_BSG_RPT_ELS : */ + +/* Request: + * This message requests that an ELS be performed with the rport. + */ +struct fc_bsg_rport_els { + /* + * ELS Command Code being sent (must be the same as + * byte 0 of the payload) + */ + uint8_t els_code; +}; + +/* Response: + * + * The reply structure is an fc_bsg_ctels_reply structure + */ + + +/* FC_BSG_RPT_CT : */ + +/* Request: + * This message requests that a CT Request be performed with the rport. + */ +struct fc_bsg_rport_ct { + /* + * We need words 0-2 of the generic preamble for the LLD's + */ + uint32_t preamble_word0; /* revision & IN_ID */ + uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */ + uint32_t preamble_word2; /* Cmd Code, Max Size */ +}; +/* Response: + * + * The reply structure is an fc_bsg_ctels_reply structure + */ + + + + +/* request (CDB) structure of the sg_io_v4 */ +struct fc_bsg_request { + uint32_t msgcode; + union { + struct fc_bsg_host_add_rport h_addrport; + struct fc_bsg_host_del_rport h_delrport; + struct fc_bsg_host_els h_els; + struct fc_bsg_host_ct h_ct; + struct fc_bsg_host_vendor h_vendor; + + struct fc_bsg_rport_els r_els; + struct fc_bsg_rport_ct r_ct; + } rqst_data; +} __attribute__((packed)); + + +/* response (request sense data) structure of the sg_io_v4 */ +struct fc_bsg_reply { + /* + * The completion result. Result exists in two forms: + * if negative, it is an -Exxx system errno value. There will + * be no further reply information supplied. + * else, it's the 4-byte scsi error result, with driver, host, + * msg and status fields. The per-msgcode reply structure + * will contain valid data. + */ + uint32_t result; + + /* If there was reply_payload, how much was recevied ? */ + uint32_t reply_payload_rcv_len; + + union { + struct fc_bsg_host_vendor_reply vendor_reply; + + struct fc_bsg_ctels_reply ctels_reply; + } reply_data; +}; + + +#endif /* SCSI_BSG_FC_H */ + diff --git a/kernel_headers/scsi/scsi_ioctl.h b/kernel_headers/scsi/scsi_ioctl.h new file mode 100644 index 0000000..560f5f0 --- /dev/null +++ b/kernel_headers/scsi/scsi_ioctl.h @@ -0,0 +1,59 @@ +#ifndef _SCSI_IOCTL_H +#define _SCSI_IOCTL_H + +#define SCSI_IOCTL_SEND_COMMAND 1 +#define SCSI_IOCTL_TEST_UNIT_READY 2 +#define SCSI_IOCTL_BENCHMARK_COMMAND 3 +#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */ +#define SCSI_IOCTL_START_UNIT 5 +#define SCSI_IOCTL_STOP_UNIT 6 +/* The door lock/unlock constants are compatible with Sun constants for + the cdrom */ +#define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */ +#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */ + +#define SCSI_REMOVAL_PREVENT 1 +#define SCSI_REMOVAL_ALLOW 0 + +/* + * Here are some scsi specific ioctl commands which are sometimes useful. + * + * Note that include/linux/cdrom.h also defines IOCTL 0x5300 - 0x5395 + */ + +/* Used to obtain PUN and LUN info. Conflicts with CDROMAUDIOBUFSIZ */ +#define SCSI_IOCTL_GET_IDLUN 0x5382 + +/* 0x5383 and 0x5384 were used for SCSI_IOCTL_TAGGED_{ENABLE,DISABLE} */ + +/* Used to obtain the host number of a device. */ +#define SCSI_IOCTL_PROBE_HOST 0x5385 + +/* Used to obtain the bus number for a device */ +#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386 + +/* Used to obtain the PCI location of a device */ +#define SCSI_IOCTL_GET_PCI 0x5387 + +/* + * Structures used for scsi_ioctl et al. + */ + +typedef struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +} Scsi_Ioctl_Command; + +typedef struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +} Scsi_Idlun; + +/* Fibre Channel WWN, port_id struct */ +typedef struct scsi_fctargaddress { + __u32 host_port_id; + unsigned char host_wwn[8]; // include NULL term. +} Scsi_FCTargAddress; + +#endif /* _SCSI_IOCTL_H */ diff --git a/kernel_headers/scsi/scsi_netlink.h b/kernel_headers/scsi/scsi_netlink.h new file mode 100644 index 0000000..62b4eda --- /dev/null +++ b/kernel_headers/scsi/scsi_netlink.h @@ -0,0 +1,123 @@ +/* + * SCSI Transport Netlink Interface + * Used for the posting of outbound SCSI transport events + * + * Copyright (C) 2006 James Smart, Emulex Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef SCSI_NETLINK_H +#define SCSI_NETLINK_H + +#include +#include + +/* + * This file intended to be included by both kernel and user space + */ + +/* Single Netlink Message type to send all SCSI Transport messages */ +#define SCSI_TRANSPORT_MSG NLMSG_MIN_TYPE + 1 + +/* SCSI Transport Broadcast Groups */ + /* leaving groups 0 and 1 unassigned */ +#define SCSI_NL_GRP_FC_EVENTS (1<<2) /* Group 2 */ +#define SCSI_NL_GRP_CNT 3 + + +/* SCSI_TRANSPORT_MSG event message header */ +struct scsi_nl_hdr { + uint8_t version; + uint8_t transport; + uint16_t magic; + uint16_t msgtype; + uint16_t msglen; +} __attribute__((aligned(sizeof(uint64_t)))); + +/* scsi_nl_hdr->version value */ +#define SCSI_NL_VERSION 1 + +/* scsi_nl_hdr->magic value */ +#define SCSI_NL_MAGIC 0xA1B2 + +/* scsi_nl_hdr->transport value */ +#define SCSI_NL_TRANSPORT 0 +#define SCSI_NL_TRANSPORT_FC 1 +#define SCSI_NL_MAX_TRANSPORTS 2 + +/* Transport-based scsi_nl_hdr->msgtype values are defined in each transport */ + +/* + * GENERIC SCSI scsi_nl_hdr->msgtype Values + */ + /* kernel -> user */ +#define SCSI_NL_SHOST_VENDOR 0x0001 + /* user -> kernel */ +/* SCSI_NL_SHOST_VENDOR msgtype is kernel->user and user->kernel */ + + +/* + * Message Structures : + */ + +/* macro to round up message lengths to 8byte boundary */ +#define SCSI_NL_MSGALIGN(len) (((len) + 7) & ~7) + + +/* + * SCSI HOST Vendor Unique messages : + * SCSI_NL_SHOST_VENDOR + * + * Note: The Vendor Unique message payload will begin directly after + * this structure, with the length of the payload per vmsg_datalen. + * + * Note: When specifying vendor_id, be sure to read the Vendor Type and ID + * formatting requirements specified below + */ +struct scsi_nl_host_vendor_msg { + struct scsi_nl_hdr snlh; /* must be 1st element ! */ + uint64_t vendor_id; + uint16_t host_no; + uint16_t vmsg_datalen; +} __attribute__((aligned(sizeof(uint64_t)))); + + +/* + * Vendor ID: + * If transports post vendor-unique events, they must pass a well-known + * 32-bit vendor identifier. This identifier consists of 8 bits indicating + * the "type" of identifier contained, and 24 bits of id data. + * + * Identifiers for each type: + * PCI : ID data is the 16 bit PCI Registered Vendor ID + */ +#define SCSI_NL_VID_TYPE_SHIFT 56 +#define SCSI_NL_VID_TYPE_MASK ((__u64)0xFF << SCSI_NL_VID_TYPE_SHIFT) +#define SCSI_NL_VID_TYPE_PCI ((__u64)0x01 << SCSI_NL_VID_TYPE_SHIFT) +#define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK) + + +#define INIT_SCSI_NL_HDR(hdr, t, mtype, mlen) \ + { \ + (hdr)->version = SCSI_NL_VERSION; \ + (hdr)->transport = t; \ + (hdr)->magic = SCSI_NL_MAGIC; \ + (hdr)->msgtype = mtype; \ + (hdr)->msglen = mlen; \ + } + +#endif /* SCSI_NETLINK_H */ + diff --git a/kernel_headers/scsi/scsi_netlink_fc.h b/kernel_headers/scsi/scsi_netlink_fc.h new file mode 100644 index 0000000..cbf76e4 --- /dev/null +++ b/kernel_headers/scsi/scsi_netlink_fc.h @@ -0,0 +1,71 @@ +/* + * FC Transport Netlink Interface + * + * Copyright (C) 2006 James Smart, Emulex Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef SCSI_NETLINK_FC_H +#define SCSI_NETLINK_FC_H + +#include + +/* + * This file intended to be included by both kernel and user space + */ + +/* + * FC Transport Message Types + */ + /* kernel -> user */ +#define FC_NL_ASYNC_EVENT 0x0100 + /* user -> kernel */ +/* none */ + + +/* + * Message Structures : + */ + +/* macro to round up message lengths to 8byte boundary */ +#define FC_NL_MSGALIGN(len) (((len) + 7) & ~7) + + +/* + * FC Transport Broadcast Event Message : + * FC_NL_ASYNC_EVENT + * + * Note: if Vendor Unique message, &event_data will be start of + * vendor unique payload, and the length of the payload is + * per event_datalen + * + * Note: When specifying vendor_id, be sure to read the Vendor Type and ID + * formatting requirements specified in scsi_netlink.h + */ +struct fc_nl_event { + struct scsi_nl_hdr snlh; /* must be 1st element ! */ + uint64_t seconds; + uint64_t vendor_id; + uint16_t host_no; + uint16_t event_datalen; + uint32_t event_num; + uint32_t event_code; + uint32_t event_data; +} __attribute__((aligned(sizeof(uint64_t)))); + + +#endif /* SCSI_NETLINK_FC_H */ + diff --git a/kernel_headers/scsi/sg.h b/kernel_headers/scsi/sg.h new file mode 100644 index 0000000..8b4e93b --- /dev/null +++ b/kernel_headers/scsi/sg.h @@ -0,0 +1,304 @@ +#ifndef _SCSI_GENERIC_H +#define _SCSI_GENERIC_H + + + +/* + History: + Started: Aug 9 by Lawrence Foard (entropy@world.std.com), to allow user + process control of SCSI devices. + Development Sponsored by Killy Corp. NY NY +Original driver (sg.h): +* Copyright (C) 1992 Lawrence Foard +Version 2 and 3 extensions to driver: +* Copyright (C) 1998 - 2006 Douglas Gilbert + + Version: 3.5.34 (20060920) + This version is for 2.6 series kernels. + + For a full changelog see http://www.torque.net/sg + +Map of SG verions to the Linux kernels in which they appear: + ---------- ---------------------------------- + original all kernels < 2.2.6 + 2.1.40 2.2.20 + 3.0.x optional version 3 sg driver for 2.2 series + 3.1.17++ 2.4.0++ + 3.5.30++ 2.6.0++ + +Major new features in SG 3.x driver (cf SG 2.x drivers) + - SG_IO ioctl() combines function if write() and read() + - new interface (sg_io_hdr_t) but still supports old interface + - scatter/gather in user space, direct IO, and mmap supported + + The normal action of this driver is to use the adapter (HBA) driver to DMA + data into kernel buffers and then use the CPU to copy the data into the + user space (vice versa for writes). That is called "indirect" IO due to + the double handling of data. There are two methods offered to remove the + redundant copy: 1) direct IO and 2) using the mmap() system call to map + the reserve buffer (this driver has one reserve buffer per fd) into the + user space. Both have their advantages. + In terms of absolute speed mmap() is faster. If speed is not a concern, + indirect IO should be fine. Read the documentation for more information. + + ** N.B. To use direct IO 'echo 1 > /proc/scsi/sg/allow_dio' or + 'echo 1 > /sys/module/sg/parameters/allow_dio' is needed. + That attribute is 0 by default. ** + + Historical note: this SCSI pass-through driver has been known as "sg" for + a decade. In broader kernel discussions "sg" is used to refer to scatter + gather techniques. The context should clarify which "sg" is referred to. + + Documentation + ============= + A web site for the SG device driver can be found at: + http://www.torque.net/sg [alternatively check the MAINTAINERS file] + The documentation for the sg version 3 driver can be found at: + http://www.torque.net/sg/p/sg_v3_ho.html + This is a rendering from DocBook source [change the extension to "sgml" + or "xml"]. There are renderings in "ps", "pdf", "rtf" and "txt" (soon). + The SG_IO ioctl is now found in other parts kernel (e.g. the block layer). + For more information see http://www.torque.net/sg/sg_io.html + + The older, version 2 documents discuss the original sg interface in detail: + http://www.torque.net/sg/p/scsi-generic.txt + http://www.torque.net/sg/p/scsi-generic_long.txt + Also available: /Documentation/scsi/scsi-generic.txt + + Utility and test programs are available at the sg web site. They are + packaged as sg3_utils (for the lk 2.4 and 2.6 series) and sg_utils + (for the lk 2.2 series). +*/ + + +/* New interface introduced in the 3.x SG drivers follows */ + +typedef struct sg_iovec /* same structure as used by readv() Linux system */ +{ /* call. It defines one scatter-gather element. */ + void *iov_base; /* Starting address */ + size_t iov_len; /* Length in bytes */ +} sg_iovec_t; + + +typedef struct sg_io_hdr +{ + int interface_id; /* [i] 'S' for SCSI generic (required) */ + int dxfer_direction; /* [i] data transfer direction */ + unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */ + unsigned char mx_sb_len; /* [i] max length to write to sbp */ + unsigned short iovec_count; /* [i] 0 implies no scatter gather */ + unsigned int dxfer_len; /* [i] byte count of data transfer */ + void *dxferp; /* [i], [*io] points to data transfer memory + or scatter gather list */ + unsigned char *cmdp; /* [i], [*i] points to command to perform */ + void *sbp; /* [i], [*o] points to sense_buffer memory */ + unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */ + unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */ + int pack_id; /* [i->o] unused internally (normally) */ + void * usr_ptr; /* [i->o] unused internally */ + unsigned char status; /* [o] scsi status */ + unsigned char masked_status;/* [o] shifted, masked scsi status */ + unsigned char msg_status; /* [o] messaging level data (optional) */ + unsigned char sb_len_wr; /* [o] byte count actually written to sbp */ + unsigned short host_status; /* [o] errors from host adapter */ + unsigned short driver_status;/* [o] errors from software driver */ + int resid; /* [o] dxfer_len - actual_transferred */ + unsigned int duration; /* [o] time taken by cmd (unit: millisec) */ + unsigned int info; /* [o] auxiliary information */ +} sg_io_hdr_t; /* 64 bytes long (on i386) */ + +#define SG_INTERFACE_ID_ORIG 'S' + +/* Use negative values to flag difference from original sg_header structure */ +#define SG_DXFER_NONE (-1) /* e.g. a SCSI Test Unit Ready command */ +#define SG_DXFER_TO_DEV (-2) /* e.g. a SCSI WRITE command */ +#define SG_DXFER_FROM_DEV (-3) /* e.g. a SCSI READ command */ +#define SG_DXFER_TO_FROM_DEV (-4) /* treated like SG_DXFER_FROM_DEV with the + additional property than during indirect + IO the user buffer is copied into the + kernel buffers before the transfer */ +#define SG_DXFER_UNKNOWN (-5) /* Unknown data direction */ + +/* following flag values can be "or"-ed together */ +#define SG_FLAG_DIRECT_IO 1 /* default is indirect IO */ +#define SG_FLAG_UNUSED_LUN_INHIBIT 2 /* default is overwrite lun in SCSI */ + /* command block (when <= SCSI_2) */ +#define SG_FLAG_MMAP_IO 4 /* request memory mapped IO */ +#define SG_FLAG_NO_DXFER 0x10000 /* no transfer of kernel buffers to/from */ + /* user space (debug indirect IO) */ + +/* following 'info' values are "or"-ed together */ +#define SG_INFO_OK_MASK 0x1 +#define SG_INFO_OK 0x0 /* no sense, host nor driver "noise" */ +#define SG_INFO_CHECK 0x1 /* something abnormal happened */ + +#define SG_INFO_DIRECT_IO_MASK 0x6 +#define SG_INFO_INDIRECT_IO 0x0 /* data xfer via kernel buffers (or no xfer) */ +#define SG_INFO_DIRECT_IO 0x2 /* direct IO requested and performed */ +#define SG_INFO_MIXED_IO 0x4 /* part direct, part indirect IO */ + + +typedef struct sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */ + int host_no; /* as in "scsi" where 'n' is one of 0, 1, 2 etc */ + int channel; + int scsi_id; /* scsi id of target device */ + int lun; + int scsi_type; /* TYPE_... defined in scsi/scsi.h */ + short h_cmd_per_lun;/* host (adapter) maximum commands per lun */ + short d_queue_depth;/* device (or adapter) maximum queue length */ + int unused[2]; /* probably find a good use, set 0 for now */ +} sg_scsi_id_t; /* 32 bytes long on i386 */ + +typedef struct sg_req_info { /* used by SG_GET_REQUEST_TABLE ioctl() */ + char req_state; /* 0 -> not used, 1 -> written, 2 -> ready to read */ + char orphan; /* 0 -> normal request, 1 -> from interruped SG_IO */ + char sg_io_owned; /* 0 -> complete with read(), 1 -> owned by SG_IO */ + char problem; /* 0 -> no problem detected, 1 -> error to report */ + int pack_id; /* pack_id associated with request */ + void *usr_ptr; /* user provided pointer (in new interface) */ + unsigned int duration; /* millisecs elapsed since written (req_state==1) + or request duration (req_state==2) */ + int unused; +} sg_req_info_t; /* 20 bytes long on i386 */ + + +/* IOCTLs: Those ioctls that are relevant to the SG 3.x drivers follow. + [Those that only apply to the SG 2.x drivers are at the end of the file.] + (_GET_s yield result via 'int *' 3rd argument unless otherwise indicated) */ + +#define SG_EMULATED_HOST 0x2203 /* true for emulated host adapter (ATAPI) */ + +/* Used to configure SCSI command transformation layer for ATAPI devices */ +/* Only supported by the ide-scsi driver */ +#define SG_SET_TRANSFORM 0x2204 /* N.B. 3rd arg is not pointer but value: */ + /* 3rd arg = 0 to disable transform, 1 to enable it */ +#define SG_GET_TRANSFORM 0x2205 + +#define SG_SET_RESERVED_SIZE 0x2275 /* request a new reserved buffer size */ +#define SG_GET_RESERVED_SIZE 0x2272 /* actual size of reserved buffer */ + +/* The following ioctl has a 'sg_scsi_id_t *' object as its 3rd argument. */ +#define SG_GET_SCSI_ID 0x2276 /* Yields fd's bus, chan, dev, lun + type */ +/* SCSI id information can also be obtained from SCSI_IOCTL_GET_IDLUN */ + +/* Override host setting and always DMA using low memory ( <16MB on i386) */ +#define SG_SET_FORCE_LOW_DMA 0x2279 /* 0-> use adapter setting, 1-> force */ +#define SG_GET_LOW_DMA 0x227a /* 0-> use all ram for dma; 1-> low dma ram */ + +/* When SG_SET_FORCE_PACK_ID set to 1, pack_id is input to read() which + tries to fetch a packet with a matching pack_id, waits, or returns EAGAIN. + If pack_id is -1 then read oldest waiting. When ...FORCE_PACK_ID set to 0 + then pack_id ignored by read() and oldest readable fetched. */ +#define SG_SET_FORCE_PACK_ID 0x227b +#define SG_GET_PACK_ID 0x227c /* Yields oldest readable pack_id (or -1) */ + +#define SG_GET_NUM_WAITING 0x227d /* Number of commands awaiting read() */ + +/* Yields max scatter gather tablesize allowed by current host adapter */ +#define SG_GET_SG_TABLESIZE 0x227F /* 0 implies can't do scatter gather */ + +#define SG_GET_VERSION_NUM 0x2282 /* Example: version 2.1.34 yields 20134 */ + +/* Returns -EBUSY if occupied. 3rd argument pointer to int (see next) */ +#define SG_SCSI_RESET 0x2284 +/* Associated values that can be given to SG_SCSI_RESET follow */ +#define SG_SCSI_RESET_NOTHING 0 +#define SG_SCSI_RESET_DEVICE 1 +#define SG_SCSI_RESET_BUS 2 +#define SG_SCSI_RESET_HOST 3 +#define SG_SCSI_RESET_TARGET 4 + +/* synchronous SCSI command ioctl, (only in version 3 interface) */ +#define SG_IO 0x2285 /* similar effect as write() followed by read() */ + +#define SG_GET_REQUEST_TABLE 0x2286 /* yields table of active requests */ + +/* How to treat EINTR during SG_IO ioctl(), only in SG 3.x series */ +#define SG_SET_KEEP_ORPHAN 0x2287 /* 1 -> hold for read(), 0 -> drop (def) */ +#define SG_GET_KEEP_ORPHAN 0x2288 + +/* yields scsi midlevel's access_count for this SCSI device */ +#define SG_GET_ACCESS_COUNT 0x2289 + + +#define SG_SCATTER_SZ (8 * 4096) +/* Largest size (in bytes) a single scatter-gather list element can have. + The value used by the driver is 'max(SG_SCATTER_SZ, PAGE_SIZE)'. + This value should be a power of 2 (and may be rounded up internally). + If scatter-gather is not supported by adapter then this value is the + largest data block that can be read/written by a single scsi command. */ + +#define SG_DEFAULT_RETRIES 0 + +/* Defaults, commented if they differ from original sg driver */ +#define SG_DEF_FORCE_LOW_DMA 0 /* was 1 -> memory below 16MB on i386 */ +#define SG_DEF_FORCE_PACK_ID 0 +#define SG_DEF_KEEP_ORPHAN 0 +#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ /* load time option */ + +/* maximum outstanding requests, write() yields EDOM if exceeded */ +#define SG_MAX_QUEUE 16 + +#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE /* for backward compatibility */ + +/* Alternate style type names, "..._t" variants preferred */ +typedef struct sg_io_hdr Sg_io_hdr; +typedef struct sg_io_vec Sg_io_vec; +typedef struct sg_scsi_id Sg_scsi_id; +typedef struct sg_req_info Sg_req_info; + + +/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */ +/* The older SG interface based on the 'sg_header' structure follows. */ +/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */ + +#define SG_MAX_SENSE 16 /* this only applies to the sg_header interface */ + +struct sg_header +{ + int pack_len; /* [o] reply_len (ie useless), ignored as input */ + int reply_len; /* [i] max length of expected reply (inc. sg_header) */ + int pack_id; /* [io] id number of packet (use ints >= 0) */ + int result; /* [o] 0==ok, else (+ve) Unix errno (best ignored) */ + unsigned int twelve_byte:1; + /* [i] Force 12 byte command length for group 6 & 7 commands */ + unsigned int target_status:5; /* [o] scsi status from target */ + unsigned int host_status:8; /* [o] host status (see "DID" codes) */ + unsigned int driver_status:8; /* [o] driver status+suggestion */ + unsigned int other_flags:10; /* unused */ + unsigned char sense_buffer[SG_MAX_SENSE]; /* [o] Output in 3 cases: + when target_status is CHECK_CONDITION or + when target_status is COMMAND_TERMINATED or + when (driver_status & DRIVER_SENSE) is true. */ +}; /* This structure is 36 bytes long on i386 */ + + +/* IOCTLs: The following are not required (or ignored) when the sg_io_hdr_t + interface is used. They are kept for backward compatibility with + the original and version 2 drivers. */ + +#define SG_SET_TIMEOUT 0x2201 /* unit: jiffies (10ms on i386) */ +#define SG_GET_TIMEOUT 0x2202 /* yield timeout as _return_ value */ + +/* Get/set command queuing state per fd (default is SG_DEF_COMMAND_Q. + Each time a sg_io_hdr_t object is seen on this file descriptor, this + command queuing flag is set on (overriding the previous setting). */ +#define SG_GET_COMMAND_Q 0x2270 /* Yields 0 (queuing off) or 1 (on) */ +#define SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1 */ + +/* Turn on/off error sense trace (1 and 0 respectively, default is off). + Try using: "# cat /proc/scsi/sg/debug" instead in the v3 driver */ +#define SG_SET_DEBUG 0x227e /* 0 -> turn off debug */ + +#define SG_NEXT_CMD_LEN 0x2283 /* override SCSI command length with given + number on the next write() on this file descriptor */ + + +/* Defaults, commented if they differ from original sg driver */ +#define SG_DEFAULT_TIMEOUT (60*HZ) /* HZ == 'jiffies in 1 second' */ + +#define SG_DEF_COMMAND_Q 0 /* command queuing is always on when + the new interface is used */ +#define SG_DEF_UNDERRUN_FLAG 0 + +#endif diff --git a/kernel_headers/scsi/ufs/..install.cmd b/kernel_headers/scsi/ufs/..install.cmd new file mode 100644 index 0000000..0587b9b --- /dev/null +++ b/kernel_headers/scsi/ufs/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/ufs/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/ufs /android/kernels/moto/surnia/kernel-msm/include/uapi/scsi/ufs ioctl.h ufs.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/ufs /android/kernels/moto/surnia/kernel-msm/include/scsi/ufs ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/ufs /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/scsi/ufs ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/ufs/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/scsi/ufs/.install diff --git a/kernel_headers/scsi/ufs/.install b/kernel_headers/scsi/ufs/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/scsi/ufs/ioctl.h b/kernel_headers/scsi/ufs/ioctl.h new file mode 100644 index 0000000..f7a6718 --- /dev/null +++ b/kernel_headers/scsi/ufs/ioctl.h @@ -0,0 +1,57 @@ +#ifndef UAPI_UFS_IOCTL_H_ +#define UAPI_UFS_IOCTL_H_ + +#include + +/* + * IOCTL opcode for ufs queries has the following opcode after + * SCSI_IOCTL_GET_PCI + */ +#define UFS_IOCTL_QUERY 0x5388 + +/** + * struct ufs_ioctl_query_data - used to transfer data to and from user via ioctl + * @opcode: type of data to query (descriptor/attribute/flag) + * @idn: id of the data structure + * @buf_size: number of allocated bytes/data size on return + * @buffer: data location + * + * Received: buffer and buf_size (available space for transfered data) + * Submitted: opcode, idn, length, buf_size + */ +struct ufs_ioctl_query_data { + /* + * User should select one of the opcode defined in "enum query_opcode". + * Please check include/uapi/scsi/ufs/ufs.h for the definition of it. + * Note that only UPIU_QUERY_OPCODE_READ_DESC, + * UPIU_QUERY_OPCODE_READ_ATTR & UPIU_QUERY_OPCODE_READ_FLAG are + * supported as of now. All other query_opcode would be considered + * invalid. + * As of now only read query operations are supported. + */ + __u32 opcode; + /* + * User should select one of the idn from "enum flag_idn" or "enum + * attr_idn" or "enum desc_idn" based on whether opcode above is + * attribute, flag or descriptor. + * Please check include/uapi/scsi/ufs/ufs.h for the definition of it. + */ + __u8 idn; + /* + * User should specify the size of the buffer (buffer[0] below) where + * it wants to read the query data (attribute/flag/descriptor). + * As we might end up reading less data then what is specified in + * buf_size. So we are updating buf_size to what exactly we have read. + */ + __u16 buf_size; + /* + * placeholder for the start of the data buffer where kernel will copy + * the query data (attribute/flag/descriptor) read from the UFS device + * Note: + * For Read Attribute you will have to allocate 4 bytes + * For Read Flag you will have to allocate 1 byte + */ + __u8 buffer[0]; +}; + +#endif /* UAPI_UFS_IOCTL_H_ */ diff --git a/kernel_headers/scsi/ufs/ufs.h b/kernel_headers/scsi/ufs/ufs.h new file mode 100644 index 0000000..894ea45 --- /dev/null +++ b/kernel_headers/scsi/ufs/ufs.h @@ -0,0 +1,66 @@ +#ifndef UAPI_UFS_H_ +#define UAPI_UFS_H_ + +/* Flag idn for Query Requests*/ +enum flag_idn { + QUERY_FLAG_IDN_FDEVICEINIT = 0x01, + QUERY_FLAG_IDN_PERMANENT_WPE = 0x02, + QUERY_FLAG_IDN_PWR_ON_WPE = 0x03, + QUERY_FLAG_IDN_BKOPS_EN = 0x04, + QUERY_FLAG_IDN_RESERVED1 = 0x05, + QUERY_FLAG_IDN_PURGE_ENABLE = 0x06, + QUERY_FLAG_IDN_RESERVED2 = 0x07, + QUERY_FLAG_IDN_FPHYRESOURCEREMOVAL = 0x08, + QUERY_FLAG_IDN_BUSY_RTC = 0x09, +}; + +/* Attribute idn for Query requests */ +enum attr_idn { + QUERY_ATTR_IDN_BOOT_LU_EN = 0x00, + QUERY_ATTR_IDN_RESERVED = 0x01, + QUERY_ATTR_IDN_POWER_MODE = 0x02, + QUERY_ATTR_IDN_ACTIVE_ICC_LVL = 0x03, + QUERY_ATTR_IDN_OOO_DATA_EN = 0x04, + QUERY_ATTR_IDN_BKOPS_STATUS = 0x05, + QUERY_ATTR_IDN_PURGE_STATUS = 0x06, + QUERY_ATTR_IDN_MAX_DATA_IN = 0x07, + QUERY_ATTR_IDN_MAX_DATA_OUT = 0x08, + QUERY_ATTR_IDN_DYN_CAP_NEEDED = 0x09, + QUERY_ATTR_IDN_REF_CLK_FREQ = 0x0A, + QUERY_ATTR_IDN_CONF_DESC_LOCK = 0x0B, + QUERY_ATTR_IDN_MAX_NUM_OF_RTT = 0x0C, + QUERY_ATTR_IDN_EE_CONTROL = 0x0D, + QUERY_ATTR_IDN_EE_STATUS = 0x0E, + QUERY_ATTR_IDN_SECONDS_PASSED = 0x0F, + QUERY_ATTR_IDN_CNTX_CONF = 0x10, + QUERY_ATTR_IDN_CORR_PRG_BLK_NUM = 0x11, +}; + +/* Descriptor idn for Query requests */ +enum desc_idn { + QUERY_DESC_IDN_DEVICE = 0x0, + QUERY_DESC_IDN_CONFIGURAION = 0x1, + QUERY_DESC_IDN_UNIT = 0x2, + QUERY_DESC_IDN_RFU_0 = 0x3, + QUERY_DESC_IDN_INTERCONNECT = 0x4, + QUERY_DESC_IDN_STRING = 0x5, + QUERY_DESC_IDN_RFU_1 = 0x6, + QUERY_DESC_IDN_GEOMETRY = 0x7, + QUERY_DESC_IDN_POWER = 0x8, + QUERY_DESC_IDN_RFU_2 = 0x9, + QUERY_DESC_IDN_MAX, +}; + +/* UTP QUERY Transaction Specific Fields OpCode */ +enum query_opcode { + UPIU_QUERY_OPCODE_NOP = 0x0, + UPIU_QUERY_OPCODE_READ_DESC = 0x1, + UPIU_QUERY_OPCODE_WRITE_DESC = 0x2, + UPIU_QUERY_OPCODE_READ_ATTR = 0x3, + UPIU_QUERY_OPCODE_WRITE_ATTR = 0x4, + UPIU_QUERY_OPCODE_READ_FLAG = 0x5, + UPIU_QUERY_OPCODE_SET_FLAG = 0x6, + UPIU_QUERY_OPCODE_CLEAR_FLAG = 0x7, + UPIU_QUERY_OPCODE_TOGGLE_FLAG = 0x8, +}; +#endif /* UAPI_UFS_H_ */ diff --git a/kernel_headers/sound/..install.cmd b/kernel_headers/sound/..install.cmd new file mode 100644 index 0000000..18f13c4 --- /dev/null +++ b/kernel_headers/sound/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/sound/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/sound /android/kernels/moto/surnia/kernel-msm/include/uapi/sound asequencer.h asound.h asound_fm.h audio_effects.h compress_offload.h compress_params.h devdep_params.h emu10k1.h hdsp.h hdspm.h lsm_params.h msmcal-hwdep.h sb16_csp.h sfnt_info.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/sound /android/kernels/moto/surnia/kernel-msm/include/sound audio_slimslave.h tlv.h voice_params.h voice_svc.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/sound /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/sound ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/sound/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/sound/.install diff --git a/kernel_headers/sound/.install b/kernel_headers/sound/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/sound/asequencer.h b/kernel_headers/sound/asequencer.h new file mode 100644 index 0000000..2be4da5 --- /dev/null +++ b/kernel_headers/sound/asequencer.h @@ -0,0 +1,614 @@ +/* + * Main header file for the ALSA sequencer + * Copyright (c) 1998-1999 by Frank van de Pol + * (c) 1998-1999 by Jaroslav Kysela + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef __SOUND_ASEQUENCER_H +#define __SOUND_ASEQUENCER_H + + +/** version of the sequencer */ +#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION (1, 0, 1) + +/** + * definition of sequencer event types + */ + +/** system messages + * event data type = #snd_seq_result + */ +#define SNDRV_SEQ_EVENT_SYSTEM 0 +#define SNDRV_SEQ_EVENT_RESULT 1 + +/** note messages (channel specific) + * event data type = #snd_seq_ev_note + */ +#define SNDRV_SEQ_EVENT_NOTE 5 +#define SNDRV_SEQ_EVENT_NOTEON 6 +#define SNDRV_SEQ_EVENT_NOTEOFF 7 +#define SNDRV_SEQ_EVENT_KEYPRESS 8 + +/** control messages (channel specific) + * event data type = #snd_seq_ev_ctrl + */ +#define SNDRV_SEQ_EVENT_CONTROLLER 10 +#define SNDRV_SEQ_EVENT_PGMCHANGE 11 +#define SNDRV_SEQ_EVENT_CHANPRESS 12 +#define SNDRV_SEQ_EVENT_PITCHBEND 13 /**< from -8192 to 8191 */ +#define SNDRV_SEQ_EVENT_CONTROL14 14 /**< 14 bit controller value */ +#define SNDRV_SEQ_EVENT_NONREGPARAM 15 /**< 14 bit NRPN address + 14 bit unsigned value */ +#define SNDRV_SEQ_EVENT_REGPARAM 16 /**< 14 bit RPN address + 14 bit unsigned value */ + +/** synchronisation messages + * event data type = #snd_seq_ev_ctrl + */ +#define SNDRV_SEQ_EVENT_SONGPOS 20 /* Song Position Pointer with LSB and MSB values */ +#define SNDRV_SEQ_EVENT_SONGSEL 21 /* Song Select with song ID number */ +#define SNDRV_SEQ_EVENT_QFRAME 22 /* midi time code quarter frame */ +#define SNDRV_SEQ_EVENT_TIMESIGN 23 /* SMF Time Signature event */ +#define SNDRV_SEQ_EVENT_KEYSIGN 24 /* SMF Key Signature event */ + +/** timer messages + * event data type = snd_seq_ev_queue_control + */ +#define SNDRV_SEQ_EVENT_START 30 /* midi Real Time Start message */ +#define SNDRV_SEQ_EVENT_CONTINUE 31 /* midi Real Time Continue message */ +#define SNDRV_SEQ_EVENT_STOP 32 /* midi Real Time Stop message */ +#define SNDRV_SEQ_EVENT_SETPOS_TICK 33 /* set tick queue position */ +#define SNDRV_SEQ_EVENT_SETPOS_TIME 34 /* set realtime queue position */ +#define SNDRV_SEQ_EVENT_TEMPO 35 /* (SMF) Tempo event */ +#define SNDRV_SEQ_EVENT_CLOCK 36 /* midi Real Time Clock message */ +#define SNDRV_SEQ_EVENT_TICK 37 /* midi Real Time Tick message */ +#define SNDRV_SEQ_EVENT_QUEUE_SKEW 38 /* skew queue tempo */ + +/** others + * event data type = none + */ +#define SNDRV_SEQ_EVENT_TUNE_REQUEST 40 /* tune request */ +#define SNDRV_SEQ_EVENT_RESET 41 /* reset to power-on state */ +#define SNDRV_SEQ_EVENT_SENSING 42 /* "active sensing" event */ + +/** echo back, kernel private messages + * event data type = any type + */ +#define SNDRV_SEQ_EVENT_ECHO 50 /* echo event */ +#define SNDRV_SEQ_EVENT_OSS 51 /* OSS raw event */ + +/** system status messages (broadcast for subscribers) + * event data type = snd_seq_addr + */ +#define SNDRV_SEQ_EVENT_CLIENT_START 60 /* new client has connected */ +#define SNDRV_SEQ_EVENT_CLIENT_EXIT 61 /* client has left the system */ +#define SNDRV_SEQ_EVENT_CLIENT_CHANGE 62 /* client status/info has changed */ +#define SNDRV_SEQ_EVENT_PORT_START 63 /* new port was created */ +#define SNDRV_SEQ_EVENT_PORT_EXIT 64 /* port was deleted from system */ +#define SNDRV_SEQ_EVENT_PORT_CHANGE 65 /* port status/info has changed */ + +/** port connection changes + * event data type = snd_seq_connect + */ +#define SNDRV_SEQ_EVENT_PORT_SUBSCRIBED 66 /* ports connected */ +#define SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED 67 /* ports disconnected */ + +/* 70-89: synthesizer events - obsoleted */ + +/** user-defined events with fixed length + * event data type = any + */ +#define SNDRV_SEQ_EVENT_USR0 90 +#define SNDRV_SEQ_EVENT_USR1 91 +#define SNDRV_SEQ_EVENT_USR2 92 +#define SNDRV_SEQ_EVENT_USR3 93 +#define SNDRV_SEQ_EVENT_USR4 94 +#define SNDRV_SEQ_EVENT_USR5 95 +#define SNDRV_SEQ_EVENT_USR6 96 +#define SNDRV_SEQ_EVENT_USR7 97 +#define SNDRV_SEQ_EVENT_USR8 98 +#define SNDRV_SEQ_EVENT_USR9 99 + +/* 100-118: instrument layer - obsoleted */ +/* 119-129: reserved */ + +/* 130-139: variable length events + * event data type = snd_seq_ev_ext + * (SNDRV_SEQ_EVENT_LENGTH_VARIABLE must be set) + */ +#define SNDRV_SEQ_EVENT_SYSEX 130 /* system exclusive data (variable length) */ +#define SNDRV_SEQ_EVENT_BOUNCE 131 /* error event */ +/* 132-134: reserved */ +#define SNDRV_SEQ_EVENT_USR_VAR0 135 +#define SNDRV_SEQ_EVENT_USR_VAR1 136 +#define SNDRV_SEQ_EVENT_USR_VAR2 137 +#define SNDRV_SEQ_EVENT_USR_VAR3 138 +#define SNDRV_SEQ_EVENT_USR_VAR4 139 + +/* 150-151: kernel events with quote - DO NOT use in user clients */ +#define SNDRV_SEQ_EVENT_KERNEL_ERROR 150 +#define SNDRV_SEQ_EVENT_KERNEL_QUOTE 151 /* obsolete */ + +/* 152-191: reserved */ + +/* 192-254: hardware specific events */ + +/* 255: special event */ +#define SNDRV_SEQ_EVENT_NONE 255 + + +typedef unsigned char snd_seq_event_type_t; + +/** event address */ +struct snd_seq_addr { + unsigned char client; /**< Client number: 0..255, 255 = broadcast to all clients */ + unsigned char port; /**< Port within client: 0..255, 255 = broadcast to all ports */ +}; + +/** port connection */ +struct snd_seq_connect { + struct snd_seq_addr sender; + struct snd_seq_addr dest; +}; + + +#define SNDRV_SEQ_ADDRESS_UNKNOWN 253 /* unknown source */ +#define SNDRV_SEQ_ADDRESS_SUBSCRIBERS 254 /* send event to all subscribed ports */ +#define SNDRV_SEQ_ADDRESS_BROADCAST 255 /* send event to all queues/clients/ports/channels */ +#define SNDRV_SEQ_QUEUE_DIRECT 253 /* direct dispatch */ + + /* event mode flag - NOTE: only 8 bits available! */ +#define SNDRV_SEQ_TIME_STAMP_TICK (0<<0) /* timestamp in clock ticks */ +#define SNDRV_SEQ_TIME_STAMP_REAL (1<<0) /* timestamp in real time */ +#define SNDRV_SEQ_TIME_STAMP_MASK (1<<0) + +#define SNDRV_SEQ_TIME_MODE_ABS (0<<1) /* absolute timestamp */ +#define SNDRV_SEQ_TIME_MODE_REL (1<<1) /* relative to current time */ +#define SNDRV_SEQ_TIME_MODE_MASK (1<<1) + +#define SNDRV_SEQ_EVENT_LENGTH_FIXED (0<<2) /* fixed event size */ +#define SNDRV_SEQ_EVENT_LENGTH_VARIABLE (1<<2) /* variable event size */ +#define SNDRV_SEQ_EVENT_LENGTH_VARUSR (2<<2) /* variable event size - user memory space */ +#define SNDRV_SEQ_EVENT_LENGTH_MASK (3<<2) + +#define SNDRV_SEQ_PRIORITY_NORMAL (0<<4) /* normal priority */ +#define SNDRV_SEQ_PRIORITY_HIGH (1<<4) /* event should be processed before others */ +#define SNDRV_SEQ_PRIORITY_MASK (1<<4) + + + /* note event */ +struct snd_seq_ev_note { + unsigned char channel; + unsigned char note; + unsigned char velocity; + unsigned char off_velocity; /* only for SNDRV_SEQ_EVENT_NOTE */ + unsigned int duration; /* only for SNDRV_SEQ_EVENT_NOTE */ +}; + + /* controller event */ +struct snd_seq_ev_ctrl { + unsigned char channel; + unsigned char unused1, unused2, unused3; /* pad */ + unsigned int param; + signed int value; +}; + + /* generic set of bytes (12x8 bit) */ +struct snd_seq_ev_raw8 { + unsigned char d[12]; /* 8 bit value */ +}; + + /* generic set of integers (3x32 bit) */ +struct snd_seq_ev_raw32 { + unsigned int d[3]; /* 32 bit value */ +}; + + /* external stored data */ +struct snd_seq_ev_ext { + unsigned int len; /* length of data */ + void *ptr; /* pointer to data (note: maybe 64-bit) */ +} __attribute__((packed)); + +struct snd_seq_result { + int event; /* processed event type */ + int result; +}; + + +struct snd_seq_real_time { + unsigned int tv_sec; /* seconds */ + unsigned int tv_nsec; /* nanoseconds */ +}; + +typedef unsigned int snd_seq_tick_time_t; /* midi ticks */ + +union snd_seq_timestamp { + snd_seq_tick_time_t tick; + struct snd_seq_real_time time; +}; + +struct snd_seq_queue_skew { + unsigned int value; + unsigned int base; +}; + + /* queue timer control */ +struct snd_seq_ev_queue_control { + unsigned char queue; /* affected queue */ + unsigned char pad[3]; /* reserved */ + union { + signed int value; /* affected value (e.g. tempo) */ + union snd_seq_timestamp time; /* time */ + unsigned int position; /* sync position */ + struct snd_seq_queue_skew skew; + unsigned int d32[2]; + unsigned char d8[8]; + } param; +}; + + /* quoted event - inside the kernel only */ +struct snd_seq_ev_quote { + struct snd_seq_addr origin; /* original sender */ + unsigned short value; /* optional data */ + struct snd_seq_event *event; /* quoted event */ +} __attribute__((packed)); + + + /* sequencer event */ +struct snd_seq_event { + snd_seq_event_type_t type; /* event type */ + unsigned char flags; /* event flags */ + char tag; + + unsigned char queue; /* schedule queue */ + union snd_seq_timestamp time; /* schedule time */ + + + struct snd_seq_addr source; /* source address */ + struct snd_seq_addr dest; /* destination address */ + + union { /* event data... */ + struct snd_seq_ev_note note; + struct snd_seq_ev_ctrl control; + struct snd_seq_ev_raw8 raw8; + struct snd_seq_ev_raw32 raw32; + struct snd_seq_ev_ext ext; + struct snd_seq_ev_queue_control queue; + union snd_seq_timestamp time; + struct snd_seq_addr addr; + struct snd_seq_connect connect; + struct snd_seq_result result; + struct snd_seq_ev_quote quote; + } data; +}; + + +/* + * bounce event - stored as variable size data + */ +struct snd_seq_event_bounce { + int err; + struct snd_seq_event event; + /* external data follows here. */ +}; + + + /* system information */ +struct snd_seq_system_info { + int queues; /* maximum queues count */ + int clients; /* maximum clients count */ + int ports; /* maximum ports per client */ + int channels; /* maximum channels per port */ + int cur_clients; /* current clients */ + int cur_queues; /* current queues */ + char reserved[24]; +}; + + + /* system running information */ +struct snd_seq_running_info { + unsigned char client; /* client id */ + unsigned char big_endian; /* 1 = big-endian */ + unsigned char cpu_mode; /* 4 = 32bit, 8 = 64bit */ + unsigned char pad; /* reserved */ + unsigned char reserved[12]; +}; + + + /* known client numbers */ +#define SNDRV_SEQ_CLIENT_SYSTEM 0 + /* internal client numbers */ +#define SNDRV_SEQ_CLIENT_DUMMY 14 /* midi through */ +#define SNDRV_SEQ_CLIENT_OSS 15 /* oss sequencer emulator */ + + + /* client types */ +typedef int __bitwise snd_seq_client_type_t; +#define NO_CLIENT ((snd_seq_client_type_t) 0) +#define USER_CLIENT ((snd_seq_client_type_t) 1) +#define KERNEL_CLIENT ((snd_seq_client_type_t) 2) + + /* event filter flags */ +#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */ +#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */ +#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */ +#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */ + +struct snd_seq_client_info { + int client; /* client number to inquire */ + snd_seq_client_type_t type; /* client type */ + char name[64]; /* client name */ + unsigned int filter; /* filter flags */ + unsigned char multicast_filter[8]; /* multicast filter bitmap */ + unsigned char event_filter[32]; /* event filter bitmap */ + int num_ports; /* RO: number of ports */ + int event_lost; /* number of lost events */ + char reserved[64]; /* for future use */ +}; + + +/* client pool size */ +struct snd_seq_client_pool { + int client; /* client number to inquire */ + int output_pool; /* outgoing (write) pool size */ + int input_pool; /* incoming (read) pool size */ + int output_room; /* minimum free pool size for select/blocking mode */ + int output_free; /* unused size */ + int input_free; /* unused size */ + char reserved[64]; +}; + + +/* Remove events by specified criteria */ + +#define SNDRV_SEQ_REMOVE_INPUT (1<<0) /* Flush input queues */ +#define SNDRV_SEQ_REMOVE_OUTPUT (1<<1) /* Flush output queues */ +#define SNDRV_SEQ_REMOVE_DEST (1<<2) /* Restrict by destination q:client:port */ +#define SNDRV_SEQ_REMOVE_DEST_CHANNEL (1<<3) /* Restrict by channel */ +#define SNDRV_SEQ_REMOVE_TIME_BEFORE (1<<4) /* Restrict to before time */ +#define SNDRV_SEQ_REMOVE_TIME_AFTER (1<<5) /* Restrict to time or after */ +#define SNDRV_SEQ_REMOVE_TIME_TICK (1<<6) /* Time is in ticks */ +#define SNDRV_SEQ_REMOVE_EVENT_TYPE (1<<7) /* Restrict to event type */ +#define SNDRV_SEQ_REMOVE_IGNORE_OFF (1<<8) /* Do not flush off events */ +#define SNDRV_SEQ_REMOVE_TAG_MATCH (1<<9) /* Restrict to events with given tag */ + +struct snd_seq_remove_events { + unsigned int remove_mode; /* Flags that determine what gets removed */ + + union snd_seq_timestamp time; + + unsigned char queue; /* Queue for REMOVE_DEST */ + struct snd_seq_addr dest; /* Address for REMOVE_DEST */ + unsigned char channel; /* Channel for REMOVE_DEST */ + + int type; /* For REMOVE_EVENT_TYPE */ + char tag; /* Tag for REMOVE_TAG */ + + int reserved[10]; /* To allow for future binary compatibility */ + +}; + + + /* known port numbers */ +#define SNDRV_SEQ_PORT_SYSTEM_TIMER 0 +#define SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE 1 + + /* port capabilities (32 bits) */ +#define SNDRV_SEQ_PORT_CAP_READ (1<<0) /* readable from this port */ +#define SNDRV_SEQ_PORT_CAP_WRITE (1<<1) /* writable to this port */ + +#define SNDRV_SEQ_PORT_CAP_SYNC_READ (1<<2) +#define SNDRV_SEQ_PORT_CAP_SYNC_WRITE (1<<3) + +#define SNDRV_SEQ_PORT_CAP_DUPLEX (1<<4) + +#define SNDRV_SEQ_PORT_CAP_SUBS_READ (1<<5) /* allow read subscription */ +#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1<<6) /* allow write subscription */ +#define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1<<7) /* routing not allowed */ + + /* port type */ +#define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1<<0) /* hardware specific */ +#define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1<<1) /* generic MIDI device */ +#define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1<<2) /* General MIDI compatible device */ +#define SNDRV_SEQ_PORT_TYPE_MIDI_GS (1<<3) /* GS compatible device */ +#define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1<<4) /* XG compatible device */ +#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1<<5) /* MT-32 compatible device */ +#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1<<6) /* General MIDI 2 compatible device */ + +/* other standards...*/ +#define SNDRV_SEQ_PORT_TYPE_SYNTH (1<<10) /* Synth device (no MIDI compatible - direct wavetable) */ +#define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1<<11) /* Sampling device (support sample download) */ +#define SNDRV_SEQ_PORT_TYPE_SAMPLE (1<<12) /* Sampling device (sample can be downloaded at any time) */ +/*...*/ +#define SNDRV_SEQ_PORT_TYPE_HARDWARE (1<<16) /* driver for a hardware device */ +#define SNDRV_SEQ_PORT_TYPE_SOFTWARE (1<<17) /* implemented in software */ +#define SNDRV_SEQ_PORT_TYPE_SYNTHESIZER (1<<18) /* generates sound */ +#define SNDRV_SEQ_PORT_TYPE_PORT (1<<19) /* connects to other device(s) */ +#define SNDRV_SEQ_PORT_TYPE_APPLICATION (1<<20) /* application (sequencer/editor) */ + +/* misc. conditioning flags */ +#define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1<<0) +#define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1<<1) +#define SNDRV_SEQ_PORT_FLG_TIME_REAL (1<<2) + +struct snd_seq_port_info { + struct snd_seq_addr addr; /* client/port numbers */ + char name[64]; /* port name */ + + unsigned int capability; /* port capability bits */ + unsigned int type; /* port type bits */ + int midi_channels; /* channels per MIDI port */ + int midi_voices; /* voices per MIDI port */ + int synth_voices; /* voices per SYNTH port */ + + int read_use; /* R/O: subscribers for output (from this port) */ + int write_use; /* R/O: subscribers for input (to this port) */ + + void *kernel; /* reserved for kernel use (must be NULL) */ + unsigned int flags; /* misc. conditioning */ + unsigned char time_queue; /* queue # for timestamping */ + char reserved[59]; /* for future use */ +}; + + +/* queue flags */ +#define SNDRV_SEQ_QUEUE_FLG_SYNC (1<<0) /* sync enabled */ + +/* queue information */ +struct snd_seq_queue_info { + int queue; /* queue id */ + + /* + * security settings, only owner of this queue can start/stop timer + * etc. if the queue is locked for other clients + */ + int owner; /* client id for owner of the queue */ + unsigned locked:1; /* timing queue locked for other queues */ + char name[64]; /* name of this queue */ + unsigned int flags; /* flags */ + char reserved[60]; /* for future use */ + +}; + +/* queue info/status */ +struct snd_seq_queue_status { + int queue; /* queue id */ + int events; /* read-only - queue size */ + snd_seq_tick_time_t tick; /* current tick */ + struct snd_seq_real_time time; /* current time */ + int running; /* running state of queue */ + int flags; /* various flags */ + char reserved[64]; /* for the future */ +}; + + +/* queue tempo */ +struct snd_seq_queue_tempo { + int queue; /* sequencer queue */ + unsigned int tempo; /* current tempo, us/tick */ + int ppq; /* time resolution, ticks/quarter */ + unsigned int skew_value; /* queue skew */ + unsigned int skew_base; /* queue skew base */ + char reserved[24]; /* for the future */ +}; + + +/* sequencer timer sources */ +#define SNDRV_SEQ_TIMER_ALSA 0 /* ALSA timer */ +#define SNDRV_SEQ_TIMER_MIDI_CLOCK 1 /* Midi Clock (CLOCK event) */ +#define SNDRV_SEQ_TIMER_MIDI_TICK 2 /* Midi Timer Tick (TICK event) */ + +/* queue timer info */ +struct snd_seq_queue_timer { + int queue; /* sequencer queue */ + int type; /* source timer type */ + union { + struct { + struct snd_timer_id id; /* ALSA's timer ID */ + unsigned int resolution; /* resolution in Hz */ + } alsa; + } u; + char reserved[64]; /* for the future use */ +}; + + +struct snd_seq_queue_client { + int queue; /* sequencer queue */ + int client; /* sequencer client */ + int used; /* queue is used with this client + (must be set for accepting events) */ + /* per client watermarks */ + char reserved[64]; /* for future use */ +}; + + +#define SNDRV_SEQ_PORT_SUBS_EXCLUSIVE (1<<0) /* exclusive connection */ +#define SNDRV_SEQ_PORT_SUBS_TIMESTAMP (1<<1) +#define SNDRV_SEQ_PORT_SUBS_TIME_REAL (1<<2) + +struct snd_seq_port_subscribe { + struct snd_seq_addr sender; /* sender address */ + struct snd_seq_addr dest; /* destination address */ + unsigned int voices; /* number of voices to be allocated (0 = don't care) */ + unsigned int flags; /* modes */ + unsigned char queue; /* input time-stamp queue (optional) */ + unsigned char pad[3]; /* reserved */ + char reserved[64]; +}; + +/* type of query subscription */ +#define SNDRV_SEQ_QUERY_SUBS_READ 0 +#define SNDRV_SEQ_QUERY_SUBS_WRITE 1 + +struct snd_seq_query_subs { + struct snd_seq_addr root; /* client/port id to be searched */ + int type; /* READ or WRITE */ + int index; /* 0..N-1 */ + int num_subs; /* R/O: number of subscriptions on this port */ + struct snd_seq_addr addr; /* R/O: result */ + unsigned char queue; /* R/O: result */ + unsigned int flags; /* R/O: result */ + char reserved[64]; /* for future use */ +}; + + +/* + * IOCTL commands + */ + +#define SNDRV_SEQ_IOCTL_PVERSION _IOR ('S', 0x00, int) +#define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR ('S', 0x01, int) +#define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct snd_seq_system_info) +#define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct snd_seq_running_info) + +#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info) +#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW ('S', 0x11, struct snd_seq_client_info) + +#define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct snd_seq_port_info) +#define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW ('S', 0x21, struct snd_seq_port_info) +#define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct snd_seq_port_info) +#define SNDRV_SEQ_IOCTL_SET_PORT_INFO _IOW ('S', 0x23, struct snd_seq_port_info) + +#define SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT _IOW ('S', 0x30, struct snd_seq_port_subscribe) +#define SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT _IOW ('S', 0x31, struct snd_seq_port_subscribe) + +#define SNDRV_SEQ_IOCTL_CREATE_QUEUE _IOWR('S', 0x32, struct snd_seq_queue_info) +#define SNDRV_SEQ_IOCTL_DELETE_QUEUE _IOW ('S', 0x33, struct snd_seq_queue_info) +#define SNDRV_SEQ_IOCTL_GET_QUEUE_INFO _IOWR('S', 0x34, struct snd_seq_queue_info) +#define SNDRV_SEQ_IOCTL_SET_QUEUE_INFO _IOWR('S', 0x35, struct snd_seq_queue_info) +#define SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE _IOWR('S', 0x36, struct snd_seq_queue_info) +#define SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS _IOWR('S', 0x40, struct snd_seq_queue_status) +#define SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO _IOWR('S', 0x41, struct snd_seq_queue_tempo) +#define SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO _IOW ('S', 0x42, struct snd_seq_queue_tempo) +#define SNDRV_SEQ_IOCTL_GET_QUEUE_OWNER _IOWR('S', 0x43, struct snd_seq_queue_owner) +#define SNDRV_SEQ_IOCTL_SET_QUEUE_OWNER _IOW ('S', 0x44, struct snd_seq_queue_owner) +#define SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER _IOWR('S', 0x45, struct snd_seq_queue_timer) +#define SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER _IOW ('S', 0x46, struct snd_seq_queue_timer) +/* XXX +#define SNDRV_SEQ_IOCTL_GET_QUEUE_SYNC _IOWR('S', 0x53, struct snd_seq_queue_sync) +#define SNDRV_SEQ_IOCTL_SET_QUEUE_SYNC _IOW ('S', 0x54, struct snd_seq_queue_sync) +*/ +#define SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT _IOWR('S', 0x49, struct snd_seq_queue_client) +#define SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT _IOW ('S', 0x4a, struct snd_seq_queue_client) +#define SNDRV_SEQ_IOCTL_GET_CLIENT_POOL _IOWR('S', 0x4b, struct snd_seq_client_pool) +#define SNDRV_SEQ_IOCTL_SET_CLIENT_POOL _IOW ('S', 0x4c, struct snd_seq_client_pool) +#define SNDRV_SEQ_IOCTL_REMOVE_EVENTS _IOW ('S', 0x4e, struct snd_seq_remove_events) +#define SNDRV_SEQ_IOCTL_QUERY_SUBS _IOWR('S', 0x4f, struct snd_seq_query_subs) +#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION _IOWR('S', 0x50, struct snd_seq_port_subscribe) +#define SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT _IOWR('S', 0x51, struct snd_seq_client_info) +#define SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT _IOWR('S', 0x52, struct snd_seq_port_info) + +#endif /* __SOUND_ASEQUENCER_H */ diff --git a/kernel_headers/sound/asound.h b/kernel_headers/sound/asound.h new file mode 100644 index 0000000..5484fa3 --- /dev/null +++ b/kernel_headers/sound/asound.h @@ -0,0 +1,975 @@ +/* + * Advanced Linux Sound Architecture - ALSA - Driver + * Copyright (c) 1994-2003 by Jaroslav Kysela , + * Abramo Bagnara + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __SOUND_ASOUND_H +#define __SOUND_ASOUND_H + +#include + + +/* + * protocol version + */ + +#define SNDRV_PROTOCOL_VERSION(major, minor, subminor) (((major)<<16)|((minor)<<8)|(subminor)) +#define SNDRV_PROTOCOL_MAJOR(version) (((version)>>16)&0xffff) +#define SNDRV_PROTOCOL_MINOR(version) (((version)>>8)&0xff) +#define SNDRV_PROTOCOL_MICRO(version) ((version)&0xff) +#define SNDRV_PROTOCOL_INCOMPATIBLE(kversion, uversion) \ + (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || \ + (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && \ + SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion))) + +/**************************************************************************** + * * + * Digital audio interface * + * * + ****************************************************************************/ + +struct snd_aes_iec958 { + unsigned char status[24]; /* AES/IEC958 channel status bits */ + unsigned char subcode[147]; /* AES/IEC958 subcode bits */ + unsigned char pad; /* nothing */ + unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */ +}; + +/**************************************************************************** + * * + * CEA-861 Audio InfoFrame. Used in HDMI and DisplayPort * + * * + ****************************************************************************/ + +struct snd_cea_861_aud_if { + unsigned char db1_ct_cc; /* coding type and channel count */ + unsigned char db2_sf_ss; /* sample frequency and size */ + unsigned char db3; /* not used, all zeros */ + unsigned char db4_ca; /* channel allocation code */ + unsigned char db5_dminh_lsv; /* downmix inhibit & level-shit values */ +}; + +/**************************************************************************** + * * + * Section for driver hardware dependent interface - /dev/snd/hw? * + * * + ****************************************************************************/ + +#define SNDRV_HWDEP_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1) + +enum { + SNDRV_HWDEP_IFACE_OPL2 = 0, + SNDRV_HWDEP_IFACE_OPL3, + SNDRV_HWDEP_IFACE_OPL4, + SNDRV_HWDEP_IFACE_SB16CSP, /* Creative Signal Processor */ + SNDRV_HWDEP_IFACE_EMU10K1, /* FX8010 processor in EMU10K1 chip */ + SNDRV_HWDEP_IFACE_YSS225, /* Yamaha FX processor */ + SNDRV_HWDEP_IFACE_ICS2115, /* Wavetable synth */ + SNDRV_HWDEP_IFACE_SSCAPE, /* Ensoniq SoundScape ISA card (MC68EC000) */ + SNDRV_HWDEP_IFACE_VX, /* Digigram VX cards */ + SNDRV_HWDEP_IFACE_MIXART, /* Digigram miXart cards */ + SNDRV_HWDEP_IFACE_USX2Y, /* Tascam US122, US224 & US428 usb */ + SNDRV_HWDEP_IFACE_EMUX_WAVETABLE, /* EmuX wavetable */ + SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */ + SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */ + SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */ + SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */ + SNDRV_HWDEP_IFACE_HDA, /* HD-audio */ + SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */ + SNDRV_HWDEP_IFACE_AUDIO_BE, /* Backend Audio Control */ + SNDRV_HWDEP_IFACE_AUDIO_CODEC, /* codec Audio Control */ + + /* Don't forget to change the following: */ + SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_AUDIO_CODEC +}; + +struct snd_hwdep_info { + unsigned int device; /* WR: device number */ + int card; /* R: card number */ + unsigned char id[64]; /* ID (user selectable) */ + unsigned char name[80]; /* hwdep name */ + int iface; /* hwdep interface */ + unsigned char reserved[64]; /* reserved for future */ +}; + +/* generic DSP loader */ +struct snd_hwdep_dsp_status { + unsigned int version; /* R: driver-specific version */ + unsigned char id[32]; /* R: driver-specific ID string */ + unsigned int num_dsps; /* R: number of DSP images to transfer */ + unsigned int dsp_loaded; /* R: bit flags indicating the loaded DSPs */ + unsigned int chip_ready; /* R: 1 = initialization finished */ + unsigned char reserved[16]; /* reserved for future use */ +}; + +struct snd_hwdep_dsp_image { + unsigned int index; /* W: DSP index */ + unsigned char name[64]; /* W: ID (e.g. file name) */ + unsigned char *image; /* W: binary image */ + size_t length; /* W: size of image in bytes */ + unsigned long driver_data; /* W: driver-specific data */ +}; + +#define SNDRV_HWDEP_IOCTL_PVERSION _IOR ('H', 0x00, int) +#define SNDRV_HWDEP_IOCTL_INFO _IOR ('H', 0x01, struct snd_hwdep_info) +#define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status) +#define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image) + +/***************************************************************************** + * * + * Digital Audio (PCM) interface - /dev/snd/pcm?? * + * * + *****************************************************************************/ + +#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 11) + +typedef unsigned long snd_pcm_uframes_t; +typedef signed long snd_pcm_sframes_t; + +enum { + SNDRV_PCM_CLASS_GENERIC = 0, /* standard mono or stereo device */ + SNDRV_PCM_CLASS_MULTI, /* multichannel device */ + SNDRV_PCM_CLASS_MODEM, /* software modem class */ + SNDRV_PCM_CLASS_DIGITIZER, /* digitizer class */ + /* Don't forget to change the following: */ + SNDRV_PCM_CLASS_LAST = SNDRV_PCM_CLASS_DIGITIZER, +}; + +enum { + SNDRV_PCM_SUBCLASS_GENERIC_MIX = 0, /* mono or stereo subdevices are mixed together */ + SNDRV_PCM_SUBCLASS_MULTI_MIX, /* multichannel subdevices are mixed together */ + /* Don't forget to change the following: */ + SNDRV_PCM_SUBCLASS_LAST = SNDRV_PCM_SUBCLASS_MULTI_MIX, +}; + +enum { + SNDRV_PCM_STREAM_PLAYBACK = 0, + SNDRV_PCM_STREAM_CAPTURE, + SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE, +}; + +typedef int __bitwise snd_pcm_access_t; +#define SNDRV_PCM_ACCESS_MMAP_INTERLEAVED ((snd_pcm_access_t) 0) /* interleaved mmap */ +#define SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED ((snd_pcm_access_t) 1) /* noninterleaved mmap */ +#define SNDRV_PCM_ACCESS_MMAP_COMPLEX ((snd_pcm_access_t) 2) /* complex mmap */ +#define SNDRV_PCM_ACCESS_RW_INTERLEAVED ((snd_pcm_access_t) 3) /* readi/writei */ +#define SNDRV_PCM_ACCESS_RW_NONINTERLEAVED ((snd_pcm_access_t) 4) /* readn/writen */ +#define SNDRV_PCM_ACCESS_LAST SNDRV_PCM_ACCESS_RW_NONINTERLEAVED + +typedef int __bitwise snd_pcm_format_t; +#define SNDRV_PCM_FORMAT_S8 ((snd_pcm_format_t) 0) +#define SNDRV_PCM_FORMAT_U8 ((snd_pcm_format_t) 1) +#define SNDRV_PCM_FORMAT_S16_LE ((snd_pcm_format_t) 2) +#define SNDRV_PCM_FORMAT_S16_BE ((snd_pcm_format_t) 3) +#define SNDRV_PCM_FORMAT_U16_LE ((snd_pcm_format_t) 4) +#define SNDRV_PCM_FORMAT_U16_BE ((snd_pcm_format_t) 5) +#define SNDRV_PCM_FORMAT_S24_LE ((snd_pcm_format_t) 6) /* low three bytes */ +#define SNDRV_PCM_FORMAT_S24_BE ((snd_pcm_format_t) 7) /* low three bytes */ +#define SNDRV_PCM_FORMAT_U24_LE ((snd_pcm_format_t) 8) /* low three bytes */ +#define SNDRV_PCM_FORMAT_U24_BE ((snd_pcm_format_t) 9) /* low three bytes */ +#define SNDRV_PCM_FORMAT_S32_LE ((snd_pcm_format_t) 10) +#define SNDRV_PCM_FORMAT_S32_BE ((snd_pcm_format_t) 11) +#define SNDRV_PCM_FORMAT_U32_LE ((snd_pcm_format_t) 12) +#define SNDRV_PCM_FORMAT_U32_BE ((snd_pcm_format_t) 13) +#define SNDRV_PCM_FORMAT_FLOAT_LE ((snd_pcm_format_t) 14) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */ +#define SNDRV_PCM_FORMAT_FLOAT_BE ((snd_pcm_format_t) 15) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */ +#define SNDRV_PCM_FORMAT_FLOAT64_LE ((snd_pcm_format_t) 16) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */ +#define SNDRV_PCM_FORMAT_FLOAT64_BE ((snd_pcm_format_t) 17) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */ +#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE ((snd_pcm_format_t) 18) /* IEC-958 subframe, Little Endian */ +#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE ((snd_pcm_format_t) 19) /* IEC-958 subframe, Big Endian */ +#define SNDRV_PCM_FORMAT_MU_LAW ((snd_pcm_format_t) 20) +#define SNDRV_PCM_FORMAT_A_LAW ((snd_pcm_format_t) 21) +#define SNDRV_PCM_FORMAT_IMA_ADPCM ((snd_pcm_format_t) 22) +#define SNDRV_PCM_FORMAT_MPEG ((snd_pcm_format_t) 23) +#define SNDRV_PCM_FORMAT_GSM ((snd_pcm_format_t) 24) +#define SNDRV_PCM_FORMAT_SPECIAL ((snd_pcm_format_t) 31) +#define SNDRV_PCM_FORMAT_S24_3LE ((snd_pcm_format_t) 32) /* in three bytes */ +#define SNDRV_PCM_FORMAT_S24_3BE ((snd_pcm_format_t) 33) /* in three bytes */ +#define SNDRV_PCM_FORMAT_U24_3LE ((snd_pcm_format_t) 34) /* in three bytes */ +#define SNDRV_PCM_FORMAT_U24_3BE ((snd_pcm_format_t) 35) /* in three bytes */ +#define SNDRV_PCM_FORMAT_S20_3LE ((snd_pcm_format_t) 36) /* in three bytes */ +#define SNDRV_PCM_FORMAT_S20_3BE ((snd_pcm_format_t) 37) /* in three bytes */ +#define SNDRV_PCM_FORMAT_U20_3LE ((snd_pcm_format_t) 38) /* in three bytes */ +#define SNDRV_PCM_FORMAT_U20_3BE ((snd_pcm_format_t) 39) /* in three bytes */ +#define SNDRV_PCM_FORMAT_S18_3LE ((snd_pcm_format_t) 40) /* in three bytes */ +#define SNDRV_PCM_FORMAT_S18_3BE ((snd_pcm_format_t) 41) /* in three bytes */ +#define SNDRV_PCM_FORMAT_U18_3LE ((snd_pcm_format_t) 42) /* in three bytes */ +#define SNDRV_PCM_FORMAT_U18_3BE ((snd_pcm_format_t) 43) /* in three bytes */ +#define SNDRV_PCM_FORMAT_G723_24 ((snd_pcm_format_t) 44) /* 8 samples in 3 bytes */ +#define SNDRV_PCM_FORMAT_G723_24_1B ((snd_pcm_format_t) 45) /* 1 sample in 1 byte */ +#define SNDRV_PCM_FORMAT_G723_40 ((snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */ +#define SNDRV_PCM_FORMAT_G723_40_1B ((snd_pcm_format_t) 47) /* 1 sample in 1 byte */ +#define SNDRV_PCM_FORMAT_DSD_U8 ((snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */ +#define SNDRV_PCM_FORMAT_DSD_U16_LE ((snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */ +#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U16_LE + +#ifdef SNDRV_LITTLE_ENDIAN +#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE +#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_LE +#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_LE +#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_LE +#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_LE +#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_LE +#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_LE +#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_LE +#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE +#endif +#ifdef SNDRV_BIG_ENDIAN +#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_BE +#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_BE +#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_BE +#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_BE +#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_BE +#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_BE +#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_BE +#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_BE +#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE +#endif + +typedef int __bitwise snd_pcm_subformat_t; +#define SNDRV_PCM_SUBFORMAT_STD ((snd_pcm_subformat_t) 0) +#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_STD + +#define SNDRV_PCM_INFO_MMAP 0x00000001 /* hardware supports mmap */ +#define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 /* period data are valid during transfer */ +#define SNDRV_PCM_INFO_DOUBLE 0x00000004 /* Double buffering needed for PCM start/stop */ +#define SNDRV_PCM_INFO_BATCH 0x00000010 /* double buffering */ +#define SNDRV_PCM_INFO_INTERLEAVED 0x00000100 /* channels are interleaved */ +#define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200 /* channels are not interleaved */ +#define SNDRV_PCM_INFO_COMPLEX 0x00000400 /* complex frame organization (mmap only) */ +#define SNDRV_PCM_INFO_BLOCK_TRANSFER 0x00010000 /* hardware transfer block of samples */ +#define SNDRV_PCM_INFO_OVERRANGE 0x00020000 /* hardware supports ADC (capture) overrange detection */ +#define SNDRV_PCM_INFO_RESUME 0x00040000 /* hardware supports stream resume after suspend */ +#define SNDRV_PCM_INFO_PAUSE 0x00080000 /* pause ioctl is supported */ +#define SNDRV_PCM_INFO_HALF_DUPLEX 0x00100000 /* only half duplex */ +#define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */ +#define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */ +#define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 /* period wakeup can be disabled */ +#define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 /* has audio wall clock for audio/system time sync */ +#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */ + +typedef int __bitwise snd_pcm_state_t; +#define SNDRV_PCM_STATE_OPEN ((snd_pcm_state_t) 0) /* stream is open */ +#define SNDRV_PCM_STATE_SETUP ((snd_pcm_state_t) 1) /* stream has a setup */ +#define SNDRV_PCM_STATE_PREPARED ((snd_pcm_state_t) 2) /* stream is ready to start */ +#define SNDRV_PCM_STATE_RUNNING ((snd_pcm_state_t) 3) /* stream is running */ +#define SNDRV_PCM_STATE_XRUN ((snd_pcm_state_t) 4) /* stream reached an xrun */ +#define SNDRV_PCM_STATE_DRAINING ((snd_pcm_state_t) 5) /* stream is draining */ +#define SNDRV_PCM_STATE_PAUSED ((snd_pcm_state_t) 6) /* stream is paused */ +#define SNDRV_PCM_STATE_SUSPENDED ((snd_pcm_state_t) 7) /* hardware is suspended */ +#define SNDRV_PCM_STATE_DISCONNECTED ((snd_pcm_state_t) 8) /* hardware is disconnected */ +#define SNDRV_PCM_STATE_LAST SNDRV_PCM_STATE_DISCONNECTED + +enum { + SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000, + SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000, + SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000, +}; + +union snd_pcm_sync_id { + unsigned char id[16]; + unsigned short id16[8]; + unsigned int id32[4]; +}; + +struct snd_pcm_info { + unsigned int device; /* RO/WR (control): device number */ + unsigned int subdevice; /* RO/WR (control): subdevice number */ + int stream; /* RO/WR (control): stream direction */ + int card; /* R: card number */ + unsigned char id[64]; /* ID (user selectable) */ + unsigned char name[80]; /* name of this device */ + unsigned char subname[32]; /* subdevice name */ + int dev_class; /* SNDRV_PCM_CLASS_* */ + int dev_subclass; /* SNDRV_PCM_SUBCLASS_* */ + unsigned int subdevices_count; + unsigned int subdevices_avail; + union snd_pcm_sync_id sync; /* hardware synchronization ID */ + unsigned char reserved[64]; /* reserved for future... */ +}; + +typedef int snd_pcm_hw_param_t; +#define SNDRV_PCM_HW_PARAM_ACCESS 0 /* Access type */ +#define SNDRV_PCM_HW_PARAM_FORMAT 1 /* Format */ +#define SNDRV_PCM_HW_PARAM_SUBFORMAT 2 /* Subformat */ +#define SNDRV_PCM_HW_PARAM_FIRST_MASK SNDRV_PCM_HW_PARAM_ACCESS +#define SNDRV_PCM_HW_PARAM_LAST_MASK SNDRV_PCM_HW_PARAM_SUBFORMAT + +#define SNDRV_PCM_HW_PARAM_SAMPLE_BITS 8 /* Bits per sample */ +#define SNDRV_PCM_HW_PARAM_FRAME_BITS 9 /* Bits per frame */ +#define SNDRV_PCM_HW_PARAM_CHANNELS 10 /* Channels */ +#define SNDRV_PCM_HW_PARAM_RATE 11 /* Approx rate */ +#define SNDRV_PCM_HW_PARAM_PERIOD_TIME 12 /* Approx distance between + * interrupts in us + */ +#define SNDRV_PCM_HW_PARAM_PERIOD_SIZE 13 /* Approx frames between + * interrupts + */ +#define SNDRV_PCM_HW_PARAM_PERIOD_BYTES 14 /* Approx bytes between + * interrupts + */ +#define SNDRV_PCM_HW_PARAM_PERIODS 15 /* Approx interrupts per + * buffer + */ +#define SNDRV_PCM_HW_PARAM_BUFFER_TIME 16 /* Approx duration of buffer + * in us + */ +#define SNDRV_PCM_HW_PARAM_BUFFER_SIZE 17 /* Size of buffer in frames */ +#define SNDRV_PCM_HW_PARAM_BUFFER_BYTES 18 /* Size of buffer in bytes */ +#define SNDRV_PCM_HW_PARAM_TICK_TIME 19 /* Approx tick duration in us */ +#define SNDRV_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_SAMPLE_BITS +#define SNDRV_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_TICK_TIME + +#define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */ +#define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1<<1) /* export buffer */ +#define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP (1<<2) /* disable period wakeups */ + +struct snd_interval { + unsigned int min, max; + unsigned int openmin:1, + openmax:1, + integer:1, + empty:1; +}; + +#define SNDRV_MASK_MAX 256 + +struct snd_mask { + __u32 bits[(SNDRV_MASK_MAX+31)/32]; +}; + +struct snd_pcm_hw_params { + unsigned int flags; + struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK - + SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; + struct snd_mask mres[5]; /* reserved masks */ + struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - + SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; + struct snd_interval ires[9]; /* reserved intervals */ + unsigned int rmask; /* W: requested masks */ + unsigned int cmask; /* R: changed masks */ + unsigned int info; /* R: Info flags for returned setup */ + unsigned int msbits; /* R: used most significant bits */ + unsigned int rate_num; /* R: rate numerator */ + unsigned int rate_den; /* R: rate denominator */ + snd_pcm_uframes_t fifo_size; /* R: chip FIFO size in frames */ + unsigned char reserved[64]; /* reserved for future */ +}; + +enum { + SNDRV_PCM_TSTAMP_NONE = 0, + SNDRV_PCM_TSTAMP_ENABLE, + SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE, +}; + +struct snd_pcm_sw_params { + int tstamp_mode; /* timestamp mode */ + unsigned int period_step; + unsigned int sleep_min; /* min ticks to sleep */ + snd_pcm_uframes_t avail_min; /* min avail frames for wakeup */ + snd_pcm_uframes_t xfer_align; /* obsolete: xfer size need to be a multiple */ + snd_pcm_uframes_t start_threshold; /* min hw_avail frames for automatic start */ + snd_pcm_uframes_t stop_threshold; /* min avail frames for automatic stop */ + snd_pcm_uframes_t silence_threshold; /* min distance from noise for silence filling */ + snd_pcm_uframes_t silence_size; /* silence block size */ + snd_pcm_uframes_t boundary; /* pointers wrap point */ + unsigned char reserved[64]; /* reserved for future */ +}; + +struct snd_pcm_channel_info { + unsigned int channel; + __kernel_off_t offset; /* mmap offset */ + unsigned int first; /* offset to first sample in bits */ + unsigned int step; /* samples distance in bits */ +}; + +struct snd_pcm_status { + snd_pcm_state_t state; /* stream state */ + struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */ + struct timespec tstamp; /* reference timestamp */ + snd_pcm_uframes_t appl_ptr; /* appl ptr */ + snd_pcm_uframes_t hw_ptr; /* hw ptr */ + snd_pcm_sframes_t delay; /* current delay in frames */ + snd_pcm_uframes_t avail; /* number of frames available */ + snd_pcm_uframes_t avail_max; /* max frames available on hw since last status */ + snd_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */ + snd_pcm_state_t suspended_state; /* suspended stream state */ + __u32 reserved_alignment; /* must be filled with zero */ + struct timespec audio_tstamp; /* from sample counter or wall clock */ + unsigned char reserved[56-sizeof(struct timespec)]; /* must be filled with zero */ +}; + +struct snd_pcm_mmap_status { + snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */ + int pad1; /* Needed for 64 bit alignment */ + snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */ + struct timespec tstamp; /* Timestamp */ + snd_pcm_state_t suspended_state; /* RO: suspended stream state */ + struct timespec audio_tstamp; /* from sample counter or wall clock */ +}; + +struct snd_pcm_mmap_control { + snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */ + snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */ +}; + +#define SNDRV_PCM_SYNC_PTR_HWSYNC (1<<0) /* execute hwsync */ +#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */ +#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */ + +struct snd_pcm_sync_ptr { + unsigned int flags; + union { + struct snd_pcm_mmap_status status; + unsigned char reserved[64]; + } s; + union { + struct snd_pcm_mmap_control control; + unsigned char reserved[64]; + } c; +}; + +struct snd_xferi { + snd_pcm_sframes_t result; + void *buf; + snd_pcm_uframes_t frames; +}; + +struct snd_xfern { + snd_pcm_sframes_t result; + void * *bufs; + snd_pcm_uframes_t frames; +}; + +enum { + SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */ + SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */ + SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, +}; + +/* channel positions */ +enum { + SNDRV_CHMAP_UNKNOWN = 0, + SNDRV_CHMAP_NA, /* N/A, silent */ + SNDRV_CHMAP_MONO, /* mono stream */ + /* this follows the alsa-lib mixer channel value + 3 */ + SNDRV_CHMAP_FL, /* front left */ + SNDRV_CHMAP_FR, /* front right */ + SNDRV_CHMAP_RL, /* rear left */ + SNDRV_CHMAP_RR, /* rear right */ + SNDRV_CHMAP_FC, /* front center */ + SNDRV_CHMAP_LFE, /* LFE */ + SNDRV_CHMAP_SL, /* side left */ + SNDRV_CHMAP_SR, /* side right */ + SNDRV_CHMAP_RC, /* rear center */ + /* new definitions */ + SNDRV_CHMAP_FLC, /* front left center */ + SNDRV_CHMAP_FRC, /* front right center */ + SNDRV_CHMAP_RLC, /* rear left center */ + SNDRV_CHMAP_RRC, /* rear right center */ + SNDRV_CHMAP_FLW, /* front left wide */ + SNDRV_CHMAP_FRW, /* front right wide */ + SNDRV_CHMAP_FLH, /* front left high */ + SNDRV_CHMAP_FCH, /* front center high */ + SNDRV_CHMAP_FRH, /* front right high */ + SNDRV_CHMAP_TC, /* top center */ + SNDRV_CHMAP_TFL, /* top front left */ + SNDRV_CHMAP_TFR, /* top front right */ + SNDRV_CHMAP_TFC, /* top front center */ + SNDRV_CHMAP_TRL, /* top rear left */ + SNDRV_CHMAP_TRR, /* top rear right */ + SNDRV_CHMAP_TRC, /* top rear center */ + /* new definitions for UAC2 */ + SNDRV_CHMAP_TFLC, /* top front left center */ + SNDRV_CHMAP_TFRC, /* top front right center */ + SNDRV_CHMAP_TSL, /* top side left */ + SNDRV_CHMAP_TSR, /* top side right */ + SNDRV_CHMAP_LLFE, /* left LFE */ + SNDRV_CHMAP_RLFE, /* right LFE */ + SNDRV_CHMAP_BC, /* bottom center */ + SNDRV_CHMAP_BLC, /* bottom left center */ + SNDRV_CHMAP_BRC, /* bottom right center */ + SNDRV_CHMAP_LAST = SNDRV_CHMAP_BRC, +}; + +#define SNDRV_CHMAP_POSITION_MASK 0xffff +#define SNDRV_CHMAP_PHASE_INVERSE (0x01 << 16) +#define SNDRV_CHMAP_DRIVER_SPEC (0x02 << 16) + +#define SNDRV_PCM_IOCTL_PVERSION _IOR('A', 0x00, int) +#define SNDRV_PCM_IOCTL_INFO _IOR('A', 0x01, struct snd_pcm_info) +#define SNDRV_PCM_IOCTL_TSTAMP _IOW('A', 0x02, int) +#define SNDRV_PCM_IOCTL_TTSTAMP _IOW('A', 0x03, int) +#define SNDRV_PCM_IOCTL_HW_REFINE _IOWR('A', 0x10, struct snd_pcm_hw_params) +#define SNDRV_PCM_IOCTL_HW_PARAMS _IOWR('A', 0x11, struct snd_pcm_hw_params) +#define SNDRV_PCM_IOCTL_HW_FREE _IO('A', 0x12) +#define SNDRV_PCM_IOCTL_SW_PARAMS _IOWR('A', 0x13, struct snd_pcm_sw_params) +#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status) +#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t) +#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22) +#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr) +#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info) +#define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40) +#define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41) +#define SNDRV_PCM_IOCTL_START _IO('A', 0x42) +#define SNDRV_PCM_IOCTL_DROP _IO('A', 0x43) +#define SNDRV_PCM_IOCTL_DRAIN _IO('A', 0x44) +#define SNDRV_PCM_IOCTL_PAUSE _IOW('A', 0x45, int) +#define SNDRV_PCM_IOCTL_REWIND _IOW('A', 0x46, snd_pcm_uframes_t) +#define SNDRV_PCM_IOCTL_RESUME _IO('A', 0x47) +#define SNDRV_PCM_IOCTL_XRUN _IO('A', 0x48) +#define SNDRV_PCM_IOCTL_FORWARD _IOW('A', 0x49, snd_pcm_uframes_t) +#define SNDRV_PCM_IOCTL_WRITEI_FRAMES _IOW('A', 0x50, struct snd_xferi) +#define SNDRV_PCM_IOCTL_READI_FRAMES _IOR('A', 0x51, struct snd_xferi) +#define SNDRV_PCM_IOCTL_WRITEN_FRAMES _IOW('A', 0x52, struct snd_xfern) +#define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern) +#define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int) +#define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61) + +/***************************************************************************** + * * + * MIDI v1.0 interface * + * * + *****************************************************************************/ + +/* + * Raw MIDI section - /dev/snd/midi?? + */ + +#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0) + +enum { + SNDRV_RAWMIDI_STREAM_OUTPUT = 0, + SNDRV_RAWMIDI_STREAM_INPUT, + SNDRV_RAWMIDI_STREAM_LAST = SNDRV_RAWMIDI_STREAM_INPUT, +}; + +#define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001 +#define SNDRV_RAWMIDI_INFO_INPUT 0x00000002 +#define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004 + +struct snd_rawmidi_info { + unsigned int device; /* RO/WR (control): device number */ + unsigned int subdevice; /* RO/WR (control): subdevice number */ + int stream; /* WR: stream */ + int card; /* R: card number */ + unsigned int flags; /* SNDRV_RAWMIDI_INFO_XXXX */ + unsigned char id[64]; /* ID (user selectable) */ + unsigned char name[80]; /* name of device */ + unsigned char subname[32]; /* name of active or selected subdevice */ + unsigned int subdevices_count; + unsigned int subdevices_avail; + unsigned char reserved[64]; /* reserved for future use */ +}; + +struct snd_rawmidi_params { + int stream; + size_t buffer_size; /* queue size in bytes */ + size_t avail_min; /* minimum avail bytes for wakeup */ + unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */ + unsigned char reserved[16]; /* reserved for future use */ +}; + +struct snd_rawmidi_status { + int stream; + struct timespec tstamp; /* Timestamp */ + size_t avail; /* available bytes */ + size_t xruns; /* count of overruns since last status (in bytes) */ + unsigned char reserved[16]; /* reserved for future use */ +}; + +#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int) +#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info) +#define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params) +#define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status) +#define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int) +#define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int) + +/* + * Timer section - /dev/snd/timer + */ + +#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6) + +enum { + SNDRV_TIMER_CLASS_NONE = -1, + SNDRV_TIMER_CLASS_SLAVE = 0, + SNDRV_TIMER_CLASS_GLOBAL, + SNDRV_TIMER_CLASS_CARD, + SNDRV_TIMER_CLASS_PCM, + SNDRV_TIMER_CLASS_LAST = SNDRV_TIMER_CLASS_PCM, +}; + +/* slave timer classes */ +enum { + SNDRV_TIMER_SCLASS_NONE = 0, + SNDRV_TIMER_SCLASS_APPLICATION, + SNDRV_TIMER_SCLASS_SEQUENCER, /* alias */ + SNDRV_TIMER_SCLASS_OSS_SEQUENCER, /* alias */ + SNDRV_TIMER_SCLASS_LAST = SNDRV_TIMER_SCLASS_OSS_SEQUENCER, +}; + +/* global timers (device member) */ +#define SNDRV_TIMER_GLOBAL_SYSTEM 0 +#define SNDRV_TIMER_GLOBAL_RTC 1 +#define SNDRV_TIMER_GLOBAL_HPET 2 +#define SNDRV_TIMER_GLOBAL_HRTIMER 3 + +/* info flags */ +#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */ + +struct snd_timer_id { + int dev_class; + int dev_sclass; + int card; + int device; + int subdevice; +}; + +struct snd_timer_ginfo { + struct snd_timer_id tid; /* requested timer ID */ + unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */ + int card; /* card number */ + unsigned char id[64]; /* timer identification */ + unsigned char name[80]; /* timer name */ + unsigned long reserved0; /* reserved for future use */ + unsigned long resolution; /* average period resolution in ns */ + unsigned long resolution_min; /* minimal period resolution in ns */ + unsigned long resolution_max; /* maximal period resolution in ns */ + unsigned int clients; /* active timer clients */ + unsigned char reserved[32]; +}; + +struct snd_timer_gparams { + struct snd_timer_id tid; /* requested timer ID */ + unsigned long period_num; /* requested precise period duration (in seconds) - numerator */ + unsigned long period_den; /* requested precise period duration (in seconds) - denominator */ + unsigned char reserved[32]; +}; + +struct snd_timer_gstatus { + struct snd_timer_id tid; /* requested timer ID */ + unsigned long resolution; /* current period resolution in ns */ + unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */ + unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */ + unsigned char reserved[32]; +}; + +struct snd_timer_select { + struct snd_timer_id id; /* bind to timer ID */ + unsigned char reserved[32]; /* reserved */ +}; + +struct snd_timer_info { + unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */ + int card; /* card number */ + unsigned char id[64]; /* timer identificator */ + unsigned char name[80]; /* timer name */ + unsigned long reserved0; /* reserved for future use */ + unsigned long resolution; /* average period resolution in ns */ + unsigned char reserved[64]; /* reserved */ +}; + +#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */ +#define SNDRV_TIMER_PSFLG_EXCLUSIVE (1<<1) /* exclusive use, precise start/stop/pause/continue */ +#define SNDRV_TIMER_PSFLG_EARLY_EVENT (1<<2) /* write early event to the poll queue */ + +struct snd_timer_params { + unsigned int flags; /* flags - SNDRV_MIXER_PSFLG_* */ + unsigned int ticks; /* requested resolution in ticks */ + unsigned int queue_size; /* total size of queue (32-1024) */ + unsigned int reserved0; /* reserved, was: failure locations */ + unsigned int filter; /* event filter (bitmask of SNDRV_TIMER_EVENT_*) */ + unsigned char reserved[60]; /* reserved */ +}; + +struct snd_timer_status { + struct timespec tstamp; /* Timestamp - last update */ + unsigned int resolution; /* current period resolution in ns */ + unsigned int lost; /* counter of master tick lost */ + unsigned int overrun; /* count of read queue overruns */ + unsigned int queue; /* used queue size */ + unsigned char reserved[64]; /* reserved */ +}; + +#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int) +#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id) +#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int) +#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo) +#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams) +#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus) +#define SNDRV_TIMER_IOCTL_SELECT _IOW('T', 0x10, struct snd_timer_select) +#define SNDRV_TIMER_IOCTL_INFO _IOR('T', 0x11, struct snd_timer_info) +#define SNDRV_TIMER_IOCTL_PARAMS _IOW('T', 0x12, struct snd_timer_params) +#define SNDRV_TIMER_IOCTL_STATUS _IOR('T', 0x14, struct snd_timer_status) +/* The following four ioctls are changed since 1.0.9 due to confliction */ +#define SNDRV_TIMER_IOCTL_START _IO('T', 0xa0) +#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1) +#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2) +#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3) + +struct snd_timer_read { + unsigned int resolution; + unsigned int ticks; +}; + +enum { + SNDRV_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */ + SNDRV_TIMER_EVENT_TICK, /* val = ticks */ + SNDRV_TIMER_EVENT_START, /* val = resolution in ns */ + SNDRV_TIMER_EVENT_STOP, /* val = 0 */ + SNDRV_TIMER_EVENT_CONTINUE, /* val = resolution in ns */ + SNDRV_TIMER_EVENT_PAUSE, /* val = 0 */ + SNDRV_TIMER_EVENT_EARLY, /* val = 0, early event */ + SNDRV_TIMER_EVENT_SUSPEND, /* val = 0 */ + SNDRV_TIMER_EVENT_RESUME, /* val = resolution in ns */ + /* master timer events for slave timer instances */ + SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10, + SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10, + SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10, + SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10, + SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10, + SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10, +}; + +struct snd_timer_tread { + int event; + struct timespec tstamp; + unsigned int val; +}; + +/**************************************************************************** + * * + * Section for driver control interface - /dev/snd/control? * + * * + ****************************************************************************/ + +#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7) + +struct snd_ctl_card_info { + int card; /* card number */ + int pad; /* reserved for future (was type) */ + unsigned char id[16]; /* ID of card (user selectable) */ + unsigned char driver[16]; /* Driver name */ + unsigned char name[32]; /* Short name of soundcard */ + unsigned char longname[80]; /* name + info text about soundcard */ + unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */ + unsigned char mixername[80]; /* visual mixer identification */ + unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */ +}; + +typedef int __bitwise snd_ctl_elem_type_t; +#define SNDRV_CTL_ELEM_TYPE_NONE ((snd_ctl_elem_type_t) 0) /* invalid */ +#define SNDRV_CTL_ELEM_TYPE_BOOLEAN ((snd_ctl_elem_type_t) 1) /* boolean type */ +#define SNDRV_CTL_ELEM_TYPE_INTEGER ((snd_ctl_elem_type_t) 2) /* integer type */ +#define SNDRV_CTL_ELEM_TYPE_ENUMERATED ((snd_ctl_elem_type_t) 3) /* enumerated type */ +#define SNDRV_CTL_ELEM_TYPE_BYTES ((snd_ctl_elem_type_t) 4) /* byte array */ +#define SNDRV_CTL_ELEM_TYPE_IEC958 ((snd_ctl_elem_type_t) 5) /* IEC958 (S/PDIF) setup */ +#define SNDRV_CTL_ELEM_TYPE_INTEGER64 ((snd_ctl_elem_type_t) 6) /* 64-bit integer type */ +#define SNDRV_CTL_ELEM_TYPE_LAST SNDRV_CTL_ELEM_TYPE_INTEGER64 + +typedef int __bitwise snd_ctl_elem_iface_t; +#define SNDRV_CTL_ELEM_IFACE_CARD ((snd_ctl_elem_iface_t) 0) /* global control */ +#define SNDRV_CTL_ELEM_IFACE_HWDEP ((snd_ctl_elem_iface_t) 1) /* hardware dependent device */ +#define SNDRV_CTL_ELEM_IFACE_MIXER ((snd_ctl_elem_iface_t) 2) /* virtual mixer device */ +#define SNDRV_CTL_ELEM_IFACE_PCM ((snd_ctl_elem_iface_t) 3) /* PCM device */ +#define SNDRV_CTL_ELEM_IFACE_RAWMIDI ((snd_ctl_elem_iface_t) 4) /* RawMidi device */ +#define SNDRV_CTL_ELEM_IFACE_TIMER ((snd_ctl_elem_iface_t) 5) /* timer device */ +#define SNDRV_CTL_ELEM_IFACE_SEQUENCER ((snd_ctl_elem_iface_t) 6) /* sequencer client */ +#define SNDRV_CTL_ELEM_IFACE_LAST SNDRV_CTL_ELEM_IFACE_SEQUENCER + +#define SNDRV_CTL_ELEM_ACCESS_READ (1<<0) +#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1) +#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE) +#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */ +#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */ +#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */ +#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */ +#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE) +#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1<<6) /* TLV command is possible */ +#define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1<<8) /* control does actually nothing, but may be updated */ +#define SNDRV_CTL_ELEM_ACCESS_LOCK (1<<9) /* write lock */ +#define SNDRV_CTL_ELEM_ACCESS_OWNER (1<<10) /* write lock owner */ +#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1<<28) /* kernel use a TLV callback */ +#define SNDRV_CTL_ELEM_ACCESS_USER (1<<29) /* user space element */ +/* bits 30 and 31 are obsoleted (for indirect access) */ + +/* for further details see the ACPI and PCI power management specification */ +#define SNDRV_CTL_POWER_D0 0x0000 /* full On */ +#define SNDRV_CTL_POWER_D1 0x0100 /* partial On */ +#define SNDRV_CTL_POWER_D2 0x0200 /* partial On */ +#define SNDRV_CTL_POWER_D3 0x0300 /* Off */ +#define SNDRV_CTL_POWER_D3hot (SNDRV_CTL_POWER_D3|0x0000) /* Off, with power */ +#define SNDRV_CTL_POWER_D3cold (SNDRV_CTL_POWER_D3|0x0001) /* Off, without power */ + +struct snd_ctl_elem_id { + unsigned int numid; /* numeric identifier, zero = invalid */ + snd_ctl_elem_iface_t iface; /* interface identifier */ + unsigned int device; /* device/client number */ + unsigned int subdevice; /* subdevice (substream) number */ + unsigned char name[44]; /* ASCII name of item */ + unsigned int index; /* index of item */ +}; + +struct snd_ctl_elem_list { + unsigned int offset; /* W: first element ID to get */ + unsigned int space; /* W: count of element IDs to get */ + unsigned int used; /* R: count of element IDs set */ + unsigned int count; /* R: count of all elements */ + struct snd_ctl_elem_id *pids; /* R: IDs */ + unsigned char reserved[50]; +}; + +struct snd_ctl_elem_info { + struct snd_ctl_elem_id id; /* W: element ID */ + snd_ctl_elem_type_t type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */ + unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */ + unsigned int count; /* count of values */ + __kernel_pid_t owner; /* owner's PID of this control */ + union { + struct { + long min; /* R: minimum value */ + long max; /* R: maximum value */ + long step; /* R: step (0 variable) */ + } integer; + struct { + long long min; /* R: minimum value */ + long long max; /* R: maximum value */ + long long step; /* R: step (0 variable) */ + } integer64; + struct { + unsigned int items; /* R: number of items */ + unsigned int item; /* W: item number */ + char name[64]; /* R: value name */ + __u64 names_ptr; /* W: names list (ELEM_ADD only) */ + unsigned int names_length; + } enumerated; + unsigned char reserved[128]; + } value; + union { + unsigned short d[4]; /* dimensions */ + unsigned short *d_ptr; /* indirect - obsoleted */ + } dimen; + unsigned char reserved[64-4*sizeof(unsigned short)]; +}; + +struct snd_ctl_elem_value { + struct snd_ctl_elem_id id; /* W: element ID */ + unsigned int indirect: 1; /* W: indirect access - obsoleted */ + union { + union { + long value[128]; + long *value_ptr; /* obsoleted */ + } integer; + union { + long long value[64]; + long long *value_ptr; /* obsoleted */ + } integer64; + union { + unsigned int item[128]; + unsigned int *item_ptr; /* obsoleted */ + } enumerated; + union { + unsigned char data[512]; + unsigned char *data_ptr; /* obsoleted */ + } bytes; + struct snd_aes_iec958 iec958; + } value; /* RO */ + struct timespec tstamp; + unsigned char reserved[128-sizeof(struct timespec)]; +}; + +struct snd_ctl_tlv { + unsigned int numid; /* control element numeric identification */ + unsigned int length; /* in bytes aligned to 4 */ + unsigned int tlv[0]; /* first TLV */ +}; + +#define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) +#define SNDRV_CTL_IOCTL_CARD_INFO _IOR('U', 0x01, struct snd_ctl_card_info) +#define SNDRV_CTL_IOCTL_ELEM_LIST _IOWR('U', 0x10, struct snd_ctl_elem_list) +#define SNDRV_CTL_IOCTL_ELEM_INFO _IOWR('U', 0x11, struct snd_ctl_elem_info) +#define SNDRV_CTL_IOCTL_ELEM_READ _IOWR('U', 0x12, struct snd_ctl_elem_value) +#define SNDRV_CTL_IOCTL_ELEM_WRITE _IOWR('U', 0x13, struct snd_ctl_elem_value) +#define SNDRV_CTL_IOCTL_ELEM_LOCK _IOW('U', 0x14, struct snd_ctl_elem_id) +#define SNDRV_CTL_IOCTL_ELEM_UNLOCK _IOW('U', 0x15, struct snd_ctl_elem_id) +#define SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS _IOWR('U', 0x16, int) +#define SNDRV_CTL_IOCTL_ELEM_ADD _IOWR('U', 0x17, struct snd_ctl_elem_info) +#define SNDRV_CTL_IOCTL_ELEM_REPLACE _IOWR('U', 0x18, struct snd_ctl_elem_info) +#define SNDRV_CTL_IOCTL_ELEM_REMOVE _IOWR('U', 0x19, struct snd_ctl_elem_id) +#define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv) +#define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv) +#define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv) +#define SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE _IOWR('U', 0x20, int) +#define SNDRV_CTL_IOCTL_HWDEP_INFO _IOR('U', 0x21, struct snd_hwdep_info) +#define SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE _IOR('U', 0x30, int) +#define SNDRV_CTL_IOCTL_PCM_INFO _IOWR('U', 0x31, struct snd_pcm_info) +#define SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE _IOW('U', 0x32, int) +#define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int) +#define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info) +#define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int) +#define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int) +#define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int) + +/* + * Read interface. + */ + +enum sndrv_ctl_event_type { + SNDRV_CTL_EVENT_ELEM = 0, + SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM, +}; + +#define SNDRV_CTL_EVENT_MASK_VALUE (1<<0) /* element value was changed */ +#define SNDRV_CTL_EVENT_MASK_INFO (1<<1) /* element info was changed */ +#define SNDRV_CTL_EVENT_MASK_ADD (1<<2) /* element was added */ +#define SNDRV_CTL_EVENT_MASK_TLV (1<<3) /* element TLV tree was changed */ +#define SNDRV_CTL_EVENT_MASK_REMOVE (~0U) /* element was removed */ + +struct snd_ctl_event { + int type; /* event type - SNDRV_CTL_EVENT_* */ + union { + struct { + unsigned int mask; + struct snd_ctl_elem_id id; + } elem; + unsigned char data8[60]; + } data; +}; + +/* + * Control names + */ + +#define SNDRV_CTL_NAME_NONE "" +#define SNDRV_CTL_NAME_PLAYBACK "Playback " +#define SNDRV_CTL_NAME_CAPTURE "Capture " + +#define SNDRV_CTL_NAME_IEC958_NONE "" +#define SNDRV_CTL_NAME_IEC958_SWITCH "Switch" +#define SNDRV_CTL_NAME_IEC958_VOLUME "Volume" +#define SNDRV_CTL_NAME_IEC958_DEFAULT "Default" +#define SNDRV_CTL_NAME_IEC958_MASK "Mask" +#define SNDRV_CTL_NAME_IEC958_CON_MASK "Con Mask" +#define SNDRV_CTL_NAME_IEC958_PRO_MASK "Pro Mask" +#define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream" +#define SNDRV_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SNDRV_CTL_NAME_##direction SNDRV_CTL_NAME_IEC958_##what + +#endif /* __SOUND_ASOUND_H */ diff --git a/kernel_headers/sound/asound_fm.h b/kernel_headers/sound/asound_fm.h new file mode 100644 index 0000000..c2a4b96 --- /dev/null +++ b/kernel_headers/sound/asound_fm.h @@ -0,0 +1,134 @@ +#ifndef __SOUND_ASOUND_FM_H +#define __SOUND_ASOUND_FM_H + +/* + * Advanced Linux Sound Architecture - ALSA + * + * Interface file between ALSA driver & user space + * Copyright (c) 1994-98 by Jaroslav Kysela , + * 4Front Technologies + * + * Direct FM control + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#define SNDRV_DM_FM_MODE_OPL2 0x00 +#define SNDRV_DM_FM_MODE_OPL3 0x01 + +struct snd_dm_fm_info { + unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */ + unsigned char rhythm; /* percussion mode flag */ +}; + +/* + * Data structure composing an FM "note" or sound event. + */ + +struct snd_dm_fm_voice { + unsigned char op; /* operator cell (0 or 1) */ + unsigned char voice; /* FM voice (0 to 17) */ + + unsigned char am; /* amplitude modulation */ + unsigned char vibrato; /* vibrato effect */ + unsigned char do_sustain; /* sustain phase */ + unsigned char kbd_scale; /* keyboard scaling */ + unsigned char harmonic; /* 4 bits: harmonic and multiplier */ + unsigned char scale_level; /* 2 bits: decrease output freq rises */ + unsigned char volume; /* 6 bits: volume */ + + unsigned char attack; /* 4 bits: attack rate */ + unsigned char decay; /* 4 bits: decay rate */ + unsigned char sustain; /* 4 bits: sustain level */ + unsigned char release; /* 4 bits: release rate */ + + unsigned char feedback; /* 3 bits: feedback for op0 */ + unsigned char connection; /* 0 for serial, 1 for parallel */ + unsigned char left; /* stereo left */ + unsigned char right; /* stereo right */ + unsigned char waveform; /* 3 bits: waveform shape */ +}; + +/* + * This describes an FM note by its voice, octave, frequency number (10bit) + * and key on/off. + */ + +struct snd_dm_fm_note { + unsigned char voice; /* 0-17 voice channel */ + unsigned char octave; /* 3 bits: what octave to play */ + unsigned int fnum; /* 10 bits: frequency number */ + unsigned char key_on; /* set for active, clear for silent */ +}; + +/* + * FM parameters that apply globally to all voices, and thus are not "notes" + */ + +struct snd_dm_fm_params { + unsigned char am_depth; /* amplitude modulation depth (1=hi) */ + unsigned char vib_depth; /* vibrato depth (1=hi) */ + unsigned char kbd_split; /* keyboard split */ + unsigned char rhythm; /* percussion mode select */ + + /* This block is the percussion instrument data */ + unsigned char bass; + unsigned char snare; + unsigned char tomtom; + unsigned char cymbal; + unsigned char hihat; +}; + +/* + * FM mode ioctl settings + */ + +#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info) +#define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21) +#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note) +#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice) +#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params) +#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int) +/* for OPL3 only */ +#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int) +/* SBI patch management */ +#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40) + +#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20 +#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21 +#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22 +#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23 +#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24 +#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25 + +/* + * Patch Record - fixed size for write + */ + +#define FM_KEY_SBI "SBI\032" +#define FM_KEY_2OP "2OP\032" +#define FM_KEY_4OP "4OP\032" + +struct sbi_patch { + unsigned char prog; + unsigned char bank; + char key[4]; + char name[25]; + char extension[7]; + unsigned char data[32]; +}; + +#endif /* __SOUND_ASOUND_FM_H */ diff --git a/kernel_headers/sound/audio_effects.h b/kernel_headers/sound/audio_effects.h new file mode 100644 index 0000000..1a91f71 --- /dev/null +++ b/kernel_headers/sound/audio_effects.h @@ -0,0 +1,332 @@ +/* + * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _AUDIO_EFFECTS_H +#define _AUDIO_EFFECTS_H + +/** AUDIO EFFECTS **/ + + +/* CONFIG GET/SET */ +#define CONFIG_CACHE 0 +#define CONFIG_SET 1 +#define CONFIG_GET 2 + +/* CONFIG HEADER */ +/* + + MODULE_ID, + DEVICE, + NUM_COMMANDS, + COMMAND_ID_1, + CONFIG_CACHE/SET/GET, + OFFSET_1, + LENGTH_1, + VALUES_1, + ..., + ..., + COMMAND_ID_2, + CONFIG_CACHE/SET/GET, + OFFSET_2, + LENGTH_2, + VALUES_2, + ..., + ..., + COMMAND_ID_3, + ... +*/ + + +/* CONFIG PARAM IDs */ +#define VIRTUALIZER_MODULE 0x00001000 +#define VIRTUALIZER_ENABLE 0x00001001 +#define VIRTUALIZER_STRENGTH 0x00001002 +#define VIRTUALIZER_OUT_TYPE 0x00001003 +#define VIRTUALIZER_GAIN_ADJUST 0x00001004 +#define VIRTUALIZER_ENABLE_PARAM_LEN 1 +#define VIRTUALIZER_STRENGTH_PARAM_LEN 1 +#define VIRTUALIZER_OUT_TYPE_PARAM_LEN 1 +#define VIRTUALIZER_GAIN_ADJUST_PARAM_LEN 1 + +#define REVERB_MODULE 0x00002000 +#define REVERB_ENABLE 0x00002001 +#define REVERB_MODE 0x00002002 +#define REVERB_PRESET 0x00002003 +#define REVERB_WET_MIX 0x00002004 +#define REVERB_GAIN_ADJUST 0x00002005 +#define REVERB_ROOM_LEVEL 0x00002006 +#define REVERB_ROOM_HF_LEVEL 0x00002007 +#define REVERB_DECAY_TIME 0x00002008 +#define REVERB_DECAY_HF_RATIO 0x00002009 +#define REVERB_REFLECTIONS_LEVEL 0x0000200a +#define REVERB_REFLECTIONS_DELAY 0x0000200b +#define REVERB_LEVEL 0x0000200c +#define REVERB_DELAY 0x0000200d +#define REVERB_DIFFUSION 0x0000200e +#define REVERB_DENSITY 0x0000200f +#define REVERB_ENABLE_PARAM_LEN 1 +#define REVERB_MODE_PARAM_LEN 1 +#define REVERB_PRESET_PARAM_LEN 1 +#define REVERB_WET_MIX_PARAM_LEN 1 +#define REVERB_GAIN_ADJUST_PARAM_LEN 1 +#define REVERB_ROOM_LEVEL_PARAM_LEN 1 +#define REVERB_ROOM_HF_LEVEL_PARAM_LEN 1 +#define REVERB_DECAY_TIME_PARAM_LEN 1 +#define REVERB_DECAY_HF_RATIO_PARAM_LEN 1 +#define REVERB_REFLECTIONS_LEVEL_PARAM_LEN 1 +#define REVERB_REFLECTIONS_DELAY_PARAM_LEN 1 +#define REVERB_LEVEL_PARAM_LEN 1 +#define REVERB_DELAY_PARAM_LEN 1 +#define REVERB_DIFFUSION_PARAM_LEN 1 +#define REVERB_DENSITY_PARAM_LEN 1 + +#define BASS_BOOST_MODULE 0x00003000 +#define BASS_BOOST_ENABLE 0x00003001 +#define BASS_BOOST_MODE 0x00003002 +#define BASS_BOOST_STRENGTH 0x00003003 +#define BASS_BOOST_ENABLE_PARAM_LEN 1 +#define BASS_BOOST_MODE_PARAM_LEN 1 +#define BASS_BOOST_STRENGTH_PARAM_LEN 1 + +#define EQ_MODULE 0x00004000 +#define EQ_ENABLE 0x00004001 +#define EQ_CONFIG 0x00004002 +#define EQ_NUM_BANDS 0x00004003 +#define EQ_BAND_LEVELS 0x00004004 +#define EQ_BAND_LEVEL_RANGE 0x00004005 +#define EQ_BAND_FREQS 0x00004006 +#define EQ_SINGLE_BAND_FREQ_RANGE 0x00004007 +#define EQ_SINGLE_BAND_FREQ 0x00004008 +#define EQ_BAND_INDEX 0x00004009 +#define EQ_PRESET_ID 0x0000400a +#define EQ_NUM_PRESETS 0x0000400b +#define EQ_PRESET_NAME 0x0000400c +#define EQ_ENABLE_PARAM_LEN 1 +#define EQ_CONFIG_PARAM_LEN 3 +#define EQ_CONFIG_PER_BAND_PARAM_LEN 5 +#define EQ_NUM_BANDS_PARAM_LEN 1 +#define EQ_BAND_LEVELS_PARAM_LEN 13 +#define EQ_BAND_LEVEL_RANGE_PARAM_LEN 2 +#define EQ_BAND_FREQS_PARAM_LEN 13 +#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN 2 +#define EQ_SINGLE_BAND_FREQ_PARAM_LEN 1 +#define EQ_BAND_INDEX_PARAM_LEN 1 +#define EQ_PRESET_ID_PARAM_LEN 1 +#define EQ_NUM_PRESETS_PARAM_LEN 1 +#define EQ_PRESET_NAME_PARAM_LEN 32 + +#define EQ_TYPE_NONE 0 +#define EQ_BASS_BOOST 1 +#define EQ_BASS_CUT 2 +#define EQ_TREBLE_BOOST 3 +#define EQ_TREBLE_CUT 4 +#define EQ_BAND_BOOST 5 +#define EQ_BAND_CUT 6 + +#define DTS_EAGLE_MODULE 0x00005000 +#define EAGLE_DRIVER_ID 0xF2 +#define DTS_EAGLE_IOCTL_GET_CACHE_SIZE _IOR(EAGLE_DRIVER_ID, 0, int) +#define DTS_EAGLE_IOCTL_SET_CACHE_SIZE _IOW(EAGLE_DRIVER_ID, 1, int) +#define DTS_EAGLE_IOCTL_GET_PARAM _IOR(EAGLE_DRIVER_ID, 2, void*) +#define DTS_EAGLE_IOCTL_SET_PARAM _IOW(EAGLE_DRIVER_ID, 3, void*) +#define DTS_EAGLE_IOCTL_SET_CACHE_BLOCK _IOW(EAGLE_DRIVER_ID, 4, void*) +#define DTS_EAGLE_IOCTL_SET_ACTIVE_DEVICE _IOW(EAGLE_DRIVER_ID, 5, void*) +#define DTS_EAGLE_IOCTL_GET_LICENSE _IOR(EAGLE_DRIVER_ID, 6, void*) +#define DTS_EAGLE_IOCTL_SET_LICENSE _IOW(EAGLE_DRIVER_ID, 7, void*) +#define DTS_EAGLE_IOCTL_SEND_LICENSE _IOW(EAGLE_DRIVER_ID, 8, int) +#define DTS_EAGLE_IOCTL_SET_VOLUME_COMMANDS _IOW(EAGLE_DRIVER_ID, 9, void*) + +struct dts_eagle_param_desc { + __u32 id; + __s32 size; + __s32 offset; + __u32 device; +} __attribute__((packed)); + +#define SOFT_VOLUME_MODULE 0x00006000 +#define SOFT_VOLUME_ENABLE 0x00006001 +#define SOFT_VOLUME_GAIN_2CH 0x00006002 +#define SOFT_VOLUME_GAIN_MASTER 0x00006003 +#define SOFT_VOLUME_ENABLE_PARAM_LEN 1 +#define SOFT_VOLUME_GAIN_2CH_PARAM_LEN 2 +#define SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 1 + +#define SOFT_VOLUME2_MODULE 0x00007000 +#define SOFT_VOLUME2_ENABLE 0x00007001 +#define SOFT_VOLUME2_GAIN_2CH 0x00007002 +#define SOFT_VOLUME2_GAIN_MASTER 0x00007003 +#define SOFT_VOLUME2_ENABLE_PARAM_LEN SOFT_VOLUME_ENABLE_PARAM_LEN +#define SOFT_VOLUME2_GAIN_2CH_PARAM_LEN SOFT_VOLUME_GAIN_2CH_PARAM_LEN +#define SOFT_VOLUME2_GAIN_MASTER_PARAM_LEN \ + SOFT_VOLUME_GAIN_MASTER_PARAM_LEN + +#define COMMAND_PAYLOAD_LEN 3 +#define COMMAND_PAYLOAD_SZ (COMMAND_PAYLOAD_LEN * sizeof(uint32_t)) +#define MAX_INBAND_PARAM_SZ 4096 +#define Q27_UNITY (1 << 27) +#define Q8_UNITY (1 << 8) +#define CUSTOM_OPENSL_PRESET 18 + +#define VIRTUALIZER_ENABLE_PARAM_SZ \ + (VIRTUALIZER_ENABLE_PARAM_LEN*sizeof(uint32_t)) +#define VIRTUALIZER_STRENGTH_PARAM_SZ \ + (VIRTUALIZER_STRENGTH_PARAM_LEN*sizeof(uint32_t)) +#define VIRTUALIZER_OUT_TYPE_PARAM_SZ \ + (VIRTUALIZER_OUT_TYPE_PARAM_LEN*sizeof(uint32_t)) +#define VIRTUALIZER_GAIN_ADJUST_PARAM_SZ \ + (VIRTUALIZER_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) +struct virtualizer_params { + uint32_t device; + uint32_t enable_flag; + uint32_t strength; + uint32_t out_type; + int32_t gain_adjust; +}; + +#define NUM_OSL_REVERB_PRESETS_SUPPORTED 6 +#define REVERB_ENABLE_PARAM_SZ \ + (REVERB_ENABLE_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_MODE_PARAM_SZ \ + (REVERB_MODE_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_PRESET_PARAM_SZ \ + (REVERB_PRESET_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_WET_MIX_PARAM_SZ \ + (REVERB_WET_MIX_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_GAIN_ADJUST_PARAM_SZ \ + (REVERB_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_ROOM_LEVEL_PARAM_SZ \ + (REVERB_ROOM_LEVEL_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_ROOM_HF_LEVEL_PARAM_SZ \ + (REVERB_ROOM_HF_LEVEL_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_DECAY_TIME_PARAM_SZ \ + (REVERB_DECAY_TIME_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_DECAY_HF_RATIO_PARAM_SZ \ + (REVERB_DECAY_HF_RATIO_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_REFLECTIONS_LEVEL_PARAM_SZ \ + (REVERB_REFLECTIONS_LEVEL_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_REFLECTIONS_DELAY_PARAM_SZ \ + (REVERB_REFLECTIONS_DELAY_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_LEVEL_PARAM_SZ \ + (REVERB_LEVEL_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_DELAY_PARAM_SZ \ + (REVERB_DELAY_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_DIFFUSION_PARAM_SZ \ + (REVERB_DIFFUSION_PARAM_LEN*sizeof(uint32_t)) +#define REVERB_DENSITY_PARAM_SZ \ + (REVERB_DENSITY_PARAM_LEN*sizeof(uint32_t)) +struct reverb_params { + uint32_t device; + uint32_t enable_flag; + uint32_t mode; + uint32_t preset; + uint32_t wet_mix; + int32_t gain_adjust; + int32_t room_level; + int32_t room_hf_level; + uint32_t decay_time; + uint32_t decay_hf_ratio; + int32_t reflections_level; + uint32_t reflections_delay; + int32_t level; + uint32_t delay; + uint32_t diffusion; + uint32_t density; +}; + +#define BASS_BOOST_ENABLE_PARAM_SZ \ + (BASS_BOOST_ENABLE_PARAM_LEN*sizeof(uint32_t)) +#define BASS_BOOST_MODE_PARAM_SZ \ + (BASS_BOOST_MODE_PARAM_LEN*sizeof(uint32_t)) +#define BASS_BOOST_STRENGTH_PARAM_SZ \ + (BASS_BOOST_STRENGTH_PARAM_LEN*sizeof(uint32_t)) +struct bass_boost_params { + uint32_t device; + uint32_t enable_flag; + uint32_t mode; + uint32_t strength; +}; + + +#define MAX_EQ_BANDS 12 +#define MAX_OSL_EQ_BANDS 5 +#define EQ_ENABLE_PARAM_SZ \ + (EQ_ENABLE_PARAM_LEN*sizeof(uint32_t)) +#define EQ_CONFIG_PARAM_SZ \ + (EQ_CONFIG_PARAM_LEN*sizeof(uint32_t)) +#define EQ_CONFIG_PER_BAND_PARAM_SZ \ + (EQ_CONFIG_PER_BAND_PARAM_LEN*sizeof(uint32_t)) +#define EQ_CONFIG_PARAM_MAX_LEN (EQ_CONFIG_PARAM_LEN+\ + MAX_EQ_BANDS*EQ_CONFIG_PER_BAND_PARAM_LEN) +#define EQ_CONFIG_PARAM_MAX_SZ \ + (EQ_CONFIG_PARAM_MAX_LEN*sizeof(uint32_t)) +#define EQ_NUM_BANDS_PARAM_SZ \ + (EQ_NUM_BANDS_PARAM_LEN*sizeof(uint32_t)) +#define EQ_BAND_LEVELS_PARAM_SZ \ + (EQ_BAND_LEVELS_PARAM_LEN*sizeof(uint32_t)) +#define EQ_BAND_LEVEL_RANGE_PARAM_SZ \ + (EQ_BAND_LEVEL_RANGE_PARAM_LEN*sizeof(uint32_t)) +#define EQ_BAND_FREQS_PARAM_SZ \ + (EQ_BAND_FREQS_PARAM_LEN*sizeof(uint32_t)) +#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_SZ \ + (EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN*sizeof(uint32_t)) +#define EQ_SINGLE_BAND_FREQ_PARAM_SZ \ + (EQ_SINGLE_BAND_FREQ_PARAM_LEN*sizeof(uint32_t)) +#define EQ_BAND_INDEX_PARAM_SZ \ + (EQ_BAND_INDEX_PARAM_LEN*sizeof(uint32_t)) +#define EQ_PRESET_ID_PARAM_SZ \ + (EQ_PRESET_ID_PARAM_LEN*sizeof(uint32_t)) +#define EQ_NUM_PRESETS_PARAM_SZ \ + (EQ_NUM_PRESETS_PARAM_LEN*sizeof(uint8_t)) +struct eq_config_t { + int32_t eq_pregain; + int32_t preset_id; + uint32_t num_bands; +}; +struct eq_per_band_config_t { + int32_t band_idx; + uint32_t filter_type; + uint32_t freq_millihertz; + int32_t gain_millibels; + uint32_t quality_factor; +}; +struct eq_per_band_freq_range_t { + uint32_t band_index; + uint32_t min_freq_millihertz; + uint32_t max_freq_millihertz; +}; + +struct eq_params { + uint32_t device; + uint32_t enable_flag; + struct eq_config_t config; + struct eq_per_band_config_t per_band_cfg[MAX_EQ_BANDS]; + struct eq_per_band_freq_range_t per_band_freq_range[MAX_EQ_BANDS]; + uint32_t band_index; + uint32_t freq_millihertz; +}; + +#define SOFT_VOLUME_ENABLE_PARAM_SZ \ + (SOFT_VOLUME_ENABLE_PARAM_LEN*sizeof(uint32_t)) +#define SOFT_VOLUME_GAIN_MASTER_PARAM_SZ \ + (SOFT_VOLUME_GAIN_MASTER_PARAM_LEN*sizeof(uint32_t)) +#define SOFT_VOLUME_GAIN_2CH_PARAM_SZ \ + (SOFT_VOLUME_GAIN_2CH_PARAM_LEN*sizeof(uint16_t)) +struct soft_volume_params { + uint32_t device; + uint32_t enable_flag; + uint32_t master_gain; + uint32_t left_gain; + uint32_t right_gain; +}; + +#endif /*_MSM_AUDIO_EFFECTS_H*/ diff --git a/kernel_headers/sound/audio_slimslave.h b/kernel_headers/sound/audio_slimslave.h new file mode 100644 index 0000000..316a557 --- /dev/null +++ b/kernel_headers/sound/audio_slimslave.h @@ -0,0 +1,18 @@ +#ifndef __AUDIO_SLIMSLAVE_H__ +#define __AUDIO_SLIMSLAVE_H__ + +#include +#include + +#define AUDIO_SLIMSLAVE_IOCTL_NAME "audio_slimslave" +#define AUDIO_SLIMSLAVE_MAGIC 'S' + +#define AUDIO_SLIMSLAVE_IOCTL_UNVOTE _IO(AUDIO_SLIMSLAVE_MAGIC, 0x00) +#define AUDIO_SLIMSLAVE_IOCTL_VOTE _IO(AUDIO_SLIMSLAVE_MAGIC, 0x01) + +enum { + AUDIO_SLIMSLAVE_UNVOTE, + AUDIO_SLIMSLAVE_VOTE +}; + +#endif diff --git a/kernel_headers/sound/compress_offload.h b/kernel_headers/sound/compress_offload.h new file mode 100644 index 0000000..5d493a2 --- /dev/null +++ b/kernel_headers/sound/compress_offload.h @@ -0,0 +1,203 @@ +/* + * compress_offload.h - compress offload header definations + * + * Copyright (C) 2011 Intel Corporation + * Authors: Vinod Koul + * Pierre-Louis Bossart + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + */ +#ifndef __COMPRESS_OFFLOAD_H +#define __COMPRESS_OFFLOAD_H + +#include +#include +#include + + +#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 2) +/** + * struct snd_compressed_buffer: compressed buffer + * @fragment_size: size of buffer fragment in bytes + * @fragments: number of such fragments + */ +struct snd_compressed_buffer { + __u32 fragment_size; + __u32 fragments; +}; + +/** + * struct snd_compr_params: compressed stream params + * @buffer: buffer description + * @codec: codec parameters + * @no_wake_mode: dont wake on fragment elapsed + */ +struct snd_compr_params { + struct snd_compressed_buffer buffer; + struct snd_codec codec; + __u8 no_wake_mode; +}; + +/** + * struct snd_compr_tstamp: timestamp descriptor + * @byte_offset: Byte offset in ring buffer to DSP + * @copied_total: Total number of bytes copied from/to ring buffer to/by DSP + * @pcm_frames: Frames decoded or encoded by DSP. This field will evolve by + * large steps and should only be used to monitor encoding/decoding + * progress. It shall not be used for timing estimates. + * @pcm_io_frames: Frames rendered or received by DSP into a mixer or an audio + * output/input. This field should be used for A/V sync or time estimates. + * @sampling_rate: sampling rate of audio + */ +struct snd_compr_tstamp { + __u32 byte_offset; + __u32 copied_total; + __u32 pcm_frames; + __u32 pcm_io_frames; + __u32 sampling_rate; + uint64_t timestamp; +}; + +/** + * struct snd_compr_avail: avail descriptor + * @avail: Number of bytes available in ring buffer for writing/reading + * @tstamp: timestamp infomation + */ +struct snd_compr_avail { + __u64 avail; + struct snd_compr_tstamp tstamp; +} __attribute__((packed)); + +enum snd_compr_direction { + SND_COMPRESS_PLAYBACK = 0, + SND_COMPRESS_CAPTURE +}; + +/** + * struct snd_compr_caps: caps descriptor + * @codecs: pointer to array of codecs + * @direction: direction supported. Of type snd_compr_direction + * @min_fragment_size: minimum fragment supported by DSP + * @max_fragment_size: maximum fragment supported by DSP + * @min_fragments: min fragments supported by DSP + * @max_fragments: max fragments supported by DSP + * @num_codecs: number of codecs supported + * @reserved: reserved field + */ +struct snd_compr_caps { + __u32 num_codecs; + __u32 direction; + __u32 min_fragment_size; + __u32 max_fragment_size; + __u32 min_fragments; + __u32 max_fragments; + __u32 codecs[MAX_NUM_CODECS]; + __u32 reserved[11]; +}; + +/** + * struct snd_compr_codec_caps: query capability of codec + * @codec: codec for which capability is queried + * @num_descriptors: number of codec descriptors + * @descriptor: array of codec capability descriptor + */ +struct snd_compr_codec_caps { + __u32 codec; + __u32 num_descriptors; + struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS]; +}; + +/** + * struct snd_compr_audio_info: compressed input audio information + * @frame_size: legth of the encoded frame with valid data + * @reserved: reserved for furture use + */ +struct snd_compr_audio_info { + uint32_t frame_size; + uint32_t reserved[15]; +}; + +/** + * @SNDRV_COMPRESS_ENCODER_PADDING: no of samples appended by the encoder at the + * end of the track + * @SNDRV_COMPRESS_ENCODER_DELAY: no of samples inserted by the encoder at the + * beginning of the track + */ +enum { + SNDRV_COMPRESS_ENCODER_PADDING = 1, + SNDRV_COMPRESS_ENCODER_DELAY = 2, +}; + +/** + * struct snd_compr_metadata: compressed stream metadata + * @key: key id + * @value: key value + */ +struct snd_compr_metadata { + __u32 key; + __u32 value[8]; +}; + +/** + * compress path ioctl definitions + * SNDRV_COMPRESS_GET_CAPS: Query capability of DSP + * SNDRV_COMPRESS_GET_CODEC_CAPS: Query capability of a codec + * SNDRV_COMPRESS_SET_PARAMS: Set codec and stream parameters + * Note: only codec params can be changed runtime and stream params cant be + * SNDRV_COMPRESS_GET_PARAMS: Query codec params + * SNDRV_COMPRESS_TSTAMP: get the current timestamp value + * SNDRV_COMPRESS_AVAIL: get the current buffer avail value. + * This also queries the tstamp properties + * SNDRV_COMPRESS_PAUSE: Pause the running stream + * SNDRV_COMPRESS_RESUME: resume a paused stream + * SNDRV_COMPRESS_START: Start a stream + * SNDRV_COMPRESS_STOP: stop a running stream, discarding ring buffer content + * and the buffers currently with DSP + * SNDRV_COMPRESS_DRAIN: Play till end of buffers and stop after that + * SNDRV_COMPRESS_IOCTL_VERSION: Query the API version + */ +#define SNDRV_COMPRESS_IOCTL_VERSION _IOR('C', 0x00, int) +#define SNDRV_COMPRESS_GET_CAPS _IOWR('C', 0x10, struct snd_compr_caps) +#define SNDRV_COMPRESS_GET_CODEC_CAPS _IOWR('C', 0x11,\ + struct snd_compr_codec_caps) +#define SNDRV_COMPRESS_SET_PARAMS _IOW('C', 0x12, struct snd_compr_params) +#define SNDRV_COMPRESS_GET_PARAMS _IOR('C', 0x13, struct snd_codec) +#define SNDRV_COMPRESS_SET_METADATA _IOW('C', 0x14,\ + struct snd_compr_metadata) +#define SNDRV_COMPRESS_GET_METADATA _IOWR('C', 0x15,\ + struct snd_compr_metadata) +#define SNDRV_COMPRESS_TSTAMP _IOR('C', 0x20, struct snd_compr_tstamp) +#define SNDRV_COMPRESS_AVAIL _IOR('C', 0x21, struct snd_compr_avail) +#define SNDRV_COMPRESS_PAUSE _IO('C', 0x30) +#define SNDRV_COMPRESS_RESUME _IO('C', 0x31) +#define SNDRV_COMPRESS_START _IO('C', 0x32) +#define SNDRV_COMPRESS_STOP _IO('C', 0x33) +#define SNDRV_COMPRESS_DRAIN _IO('C', 0x34) +#define SNDRV_COMPRESS_NEXT_TRACK _IO('C', 0x35) +#define SNDRV_COMPRESS_PARTIAL_DRAIN _IO('C', 0x36) +/* + * TODO + * 1. add mmap support + * + */ +#define SND_COMPR_TRIGGER_DRAIN 7 /*FIXME move this to pcm.h */ +#define SND_COMPR_TRIGGER_NEXT_TRACK 8 +#define SND_COMPR_TRIGGER_PARTIAL_DRAIN 9 + +#define SNDRV_COMPRESS_METADATA_MODE _IOW('C', 0x99, bool) +#endif diff --git a/kernel_headers/sound/compress_params.h b/kernel_headers/sound/compress_params.h new file mode 100644 index 0000000..d249303 --- /dev/null +++ b/kernel_headers/sound/compress_params.h @@ -0,0 +1,438 @@ +/* + * compress_params.h - codec types and parameters for compressed data + * streaming interface + * + * Copyright (C) 2011 Intel Corporation + * Authors: Pierre-Louis Bossart + * Vinod Koul + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * The definitions in this file are derived from the OpenMAX AL version 1.1 + * and OpenMAX IL v 1.1.2 header files which contain the copyright notice below. + * + * Copyright (c) 2007-2010 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and/or associated documentation files (the + * "Materials "), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + * + */ +#ifndef __SND_COMPRESS_PARAMS_H +#define __SND_COMPRESS_PARAMS_H + +#include + +/* AUDIO CODECS SUPPORTED */ +#define MAX_NUM_CODECS 32 +#define MAX_NUM_CODEC_DESCRIPTORS 32 +#define MAX_NUM_BITRATES 32 + +/* compressed TX */ +#define MAX_NUM_FRAMES_PER_BUFFER 1 +#define COMPRESSED_META_DATA_MODE 0x10 +#define META_DATA_LEN_BYTES 36 +#define Q6_AC3_DECODER 0x00010BF6 +#define Q6_EAC3_DECODER 0x00010C3C +#define Q6_DTS 0x00010D88 +#define Q6_DTS_LBR 0x00010DBB + +/* Codecs are listed linearly to allow for extensibility */ +#define SND_AUDIOCODEC_PCM ((__u32) 0x00000001) +#define SND_AUDIOCODEC_MP3 ((__u32) 0x00000002) +#define SND_AUDIOCODEC_AMR ((__u32) 0x00000003) +#define SND_AUDIOCODEC_AMRWB ((__u32) 0x00000004) +#define SND_AUDIOCODEC_AMRWBPLUS ((__u32) 0x00000005) +#define SND_AUDIOCODEC_AAC ((__u32) 0x00000006) +#define SND_AUDIOCODEC_WMA ((__u32) 0x00000007) +#define SND_AUDIOCODEC_REAL ((__u32) 0x00000008) +#define SND_AUDIOCODEC_VORBIS ((__u32) 0x00000009) +#define SND_AUDIOCODEC_FLAC ((__u32) 0x0000000A) +#define SND_AUDIOCODEC_IEC61937 ((__u32) 0x0000000B) +#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C) +#define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D) +#define SND_AUDIOCODEC_DTS_PASS_THROUGH ((__u32) 0x0000000E) +#define SND_AUDIOCODEC_DTS_LBR ((__u32) 0x0000000F) +#define SND_AUDIOCODEC_DTS_TRANSCODE_LOOPBACK ((__u32) 0x00000010) +#define SND_AUDIOCODEC_PASS_THROUGH ((__u32) 0x00000011) +#define SND_AUDIOCODEC_MP2 ((__u32) 0x00000012) +#define SND_AUDIOCODEC_DTS_LBR_PASS_THROUGH ((__u32) 0x00000013) +#define SND_AUDIOCODEC_AC3 ((__u32) 0x00000014) +#define SND_AUDIOCODEC_AC3_PASS_THROUGH ((__u32) 0x00000015) +#define SND_AUDIOCODEC_WMA_PRO ((__u32) 0x00000016) +#define SND_AUDIOCODEC_DTS ((__u32) 0x00000017) +#define SND_AUDIOCODEC_EAC3 ((__u32) 0x00000018) +#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_EAC3 +/* + * Profile and modes are listed with bit masks. This allows for a + * more compact representation of fields that will not evolve + * (in contrast to the list of codecs) + */ + +#define SND_AUDIOPROFILE_PCM ((__u32) 0x00000001) + +/* MP3 modes are only useful for encoders */ +#define SND_AUDIOCHANMODE_MP3_MONO ((__u32) 0x00000001) +#define SND_AUDIOCHANMODE_MP3_STEREO ((__u32) 0x00000002) +#define SND_AUDIOCHANMODE_MP3_JOINTSTEREO ((__u32) 0x00000004) +#define SND_AUDIOCHANMODE_MP3_DUAL ((__u32) 0x00000008) + +#define SND_AUDIOPROFILE_AMR ((__u32) 0x00000001) + +/* AMR modes are only useful for encoders */ +#define SND_AUDIOMODE_AMR_DTX_OFF ((__u32) 0x00000001) +#define SND_AUDIOMODE_AMR_VAD1 ((__u32) 0x00000002) +#define SND_AUDIOMODE_AMR_VAD2 ((__u32) 0x00000004) + +#define SND_AUDIOSTREAMFORMAT_UNDEFINED ((__u32) 0x00000000) +#define SND_AUDIOSTREAMFORMAT_CONFORMANCE ((__u32) 0x00000001) +#define SND_AUDIOSTREAMFORMAT_IF1 ((__u32) 0x00000002) +#define SND_AUDIOSTREAMFORMAT_IF2 ((__u32) 0x00000004) +#define SND_AUDIOSTREAMFORMAT_FSF ((__u32) 0x00000008) +#define SND_AUDIOSTREAMFORMAT_RTPPAYLOAD ((__u32) 0x00000010) +#define SND_AUDIOSTREAMFORMAT_ITU ((__u32) 0x00000020) + +#define SND_AUDIOPROFILE_AMRWB ((__u32) 0x00000001) + +/* AMRWB modes are only useful for encoders */ +#define SND_AUDIOMODE_AMRWB_DTX_OFF ((__u32) 0x00000001) +#define SND_AUDIOMODE_AMRWB_VAD1 ((__u32) 0x00000002) +#define SND_AUDIOMODE_AMRWB_VAD2 ((__u32) 0x00000004) + +#define SND_AUDIOPROFILE_AMRWBPLUS ((__u32) 0x00000001) + +#define SND_AUDIOPROFILE_AAC ((__u32) 0x00000001) + +/* AAC modes are required for encoders and decoders */ +#define SND_AUDIOMODE_AAC_MAIN ((__u32) 0x00000001) +#define SND_AUDIOMODE_AAC_LC ((__u32) 0x00000002) +#define SND_AUDIOMODE_AAC_SSR ((__u32) 0x00000004) +#define SND_AUDIOMODE_AAC_LTP ((__u32) 0x00000008) +#define SND_AUDIOMODE_AAC_HE ((__u32) 0x00000010) +#define SND_AUDIOMODE_AAC_SCALABLE ((__u32) 0x00000020) +#define SND_AUDIOMODE_AAC_ERLC ((__u32) 0x00000040) +#define SND_AUDIOMODE_AAC_LD ((__u32) 0x00000080) +#define SND_AUDIOMODE_AAC_HE_PS ((__u32) 0x00000100) +#define SND_AUDIOMODE_AAC_HE_MPS ((__u32) 0x00000200) + +/* AAC formats are required for encoders and decoders */ +#define SND_AUDIOSTREAMFORMAT_MP2ADTS ((__u32) 0x00000001) +#define SND_AUDIOSTREAMFORMAT_MP4ADTS ((__u32) 0x00000002) +#define SND_AUDIOSTREAMFORMAT_MP4LOAS ((__u32) 0x00000004) +#define SND_AUDIOSTREAMFORMAT_MP4LATM ((__u32) 0x00000008) +#define SND_AUDIOSTREAMFORMAT_ADIF ((__u32) 0x00000010) +#define SND_AUDIOSTREAMFORMAT_MP4FF ((__u32) 0x00000020) +#define SND_AUDIOSTREAMFORMAT_RAW ((__u32) 0x00000040) + +#define SND_AUDIOPROFILE_WMA7 ((__u32) 0x00000001) +#define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002) +#define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004) +#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008) + +#define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001) +#define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002) +#define SND_AUDIOMODE_WMA_LEVEL3 ((__u32) 0x00000004) +#define SND_AUDIOMODE_WMA_LEVEL4 ((__u32) 0x00000008) +#define SND_AUDIOMODE_WMAPRO_LEVELM0 ((__u32) 0x00000010) +#define SND_AUDIOMODE_WMAPRO_LEVELM1 ((__u32) 0x00000020) +#define SND_AUDIOMODE_WMAPRO_LEVELM2 ((__u32) 0x00000040) +#define SND_AUDIOMODE_WMAPRO_LEVELM3 ((__u32) 0x00000080) + +#define SND_AUDIOSTREAMFORMAT_WMA_ASF ((__u32) 0x00000001) +/* + * Some implementations strip the ASF header and only send ASF packets + * to the DSP + */ +#define SND_AUDIOSTREAMFORMAT_WMA_NOASF_HDR ((__u32) 0x00000002) + +#define SND_AUDIOPROFILE_REALAUDIO ((__u32) 0x00000001) + +#define SND_AUDIOMODE_REALAUDIO_G2 ((__u32) 0x00000001) +#define SND_AUDIOMODE_REALAUDIO_8 ((__u32) 0x00000002) +#define SND_AUDIOMODE_REALAUDIO_10 ((__u32) 0x00000004) +#define SND_AUDIOMODE_REALAUDIO_SURROUND ((__u32) 0x00000008) + +#define SND_AUDIOPROFILE_VORBIS ((__u32) 0x00000001) + +#define SND_AUDIOMODE_VORBIS ((__u32) 0x00000001) + +#define SND_AUDIOPROFILE_FLAC ((__u32) 0x00000001) + +/* + * Define quality levels for FLAC encoders, from LEVEL0 (fast) + * to LEVEL8 (best) + */ +#define SND_AUDIOMODE_FLAC_LEVEL0 ((__u32) 0x00000001) +#define SND_AUDIOMODE_FLAC_LEVEL1 ((__u32) 0x00000002) +#define SND_AUDIOMODE_FLAC_LEVEL2 ((__u32) 0x00000004) +#define SND_AUDIOMODE_FLAC_LEVEL3 ((__u32) 0x00000008) +#define SND_AUDIOMODE_FLAC_LEVEL4 ((__u32) 0x00000010) +#define SND_AUDIOMODE_FLAC_LEVEL5 ((__u32) 0x00000020) +#define SND_AUDIOMODE_FLAC_LEVEL6 ((__u32) 0x00000040) +#define SND_AUDIOMODE_FLAC_LEVEL7 ((__u32) 0x00000080) +#define SND_AUDIOMODE_FLAC_LEVEL8 ((__u32) 0x00000100) + +#define SND_AUDIOSTREAMFORMAT_FLAC ((__u32) 0x00000001) +#define SND_AUDIOSTREAMFORMAT_FLAC_OGG ((__u32) 0x00000002) + +/* IEC61937 payloads without CUVP and preambles */ +#define SND_AUDIOPROFILE_IEC61937 ((__u32) 0x00000001) +/* IEC61937 with S/PDIF preambles+CUVP bits in 32-bit containers */ +#define SND_AUDIOPROFILE_IEC61937_SPDIF ((__u32) 0x00000002) + +/* + * IEC modes are mandatory for decoders. Format autodetection + * will only happen on the DSP side with mode 0. The PCM mode should + * not be used, the PCM codec should be used instead. + */ +#define SND_AUDIOMODE_IEC_REF_STREAM_HEADER ((__u32) 0x00000000) +#define SND_AUDIOMODE_IEC_LPCM ((__u32) 0x00000001) +#define SND_AUDIOMODE_IEC_AC3 ((__u32) 0x00000002) +#define SND_AUDIOMODE_IEC_MPEG1 ((__u32) 0x00000004) +#define SND_AUDIOMODE_IEC_MP3 ((__u32) 0x00000008) +#define SND_AUDIOMODE_IEC_MPEG2 ((__u32) 0x00000010) +#define SND_AUDIOMODE_IEC_AACLC ((__u32) 0x00000020) +#define SND_AUDIOMODE_IEC_DTS ((__u32) 0x00000040) +#define SND_AUDIOMODE_IEC_ATRAC ((__u32) 0x00000080) +#define SND_AUDIOMODE_IEC_SACD ((__u32) 0x00000100) +#define SND_AUDIOMODE_IEC_EAC3 ((__u32) 0x00000200) +#define SND_AUDIOMODE_IEC_DTS_HD ((__u32) 0x00000400) +#define SND_AUDIOMODE_IEC_MLP ((__u32) 0x00000800) +#define SND_AUDIOMODE_IEC_DST ((__u32) 0x00001000) +#define SND_AUDIOMODE_IEC_WMAPRO ((__u32) 0x00002000) +#define SND_AUDIOMODE_IEC_REF_CXT ((__u32) 0x00004000) +#define SND_AUDIOMODE_IEC_HE_AAC ((__u32) 0x00008000) +#define SND_AUDIOMODE_IEC_HE_AAC2 ((__u32) 0x00010000) +#define SND_AUDIOMODE_IEC_MPEG_SURROUND ((__u32) 0x00020000) + +#define SND_AUDIOPROFILE_G723_1 ((__u32) 0x00000001) + +#define SND_AUDIOMODE_G723_1_ANNEX_A ((__u32) 0x00000001) +#define SND_AUDIOMODE_G723_1_ANNEX_B ((__u32) 0x00000002) +#define SND_AUDIOMODE_G723_1_ANNEX_C ((__u32) 0x00000004) + +#define SND_AUDIOPROFILE_G729 ((__u32) 0x00000001) + +#define SND_AUDIOMODE_G729_ANNEX_A ((__u32) 0x00000001) +#define SND_AUDIOMODE_G729_ANNEX_B ((__u32) 0x00000002) + +/* */ + +/* VBR/CBR definitions */ +#define SND_RATECONTROLMODE_CONSTANTBITRATE ((__u32) 0x00000001) +#define SND_RATECONTROLMODE_VARIABLEBITRATE ((__u32) 0x00000002) + +/* Encoder options */ + +struct snd_enc_wma { + __u32 super_block_align; /* WMA Type-specific data */ + __u32 bits_per_sample; + __u32 channelmask; + __u32 encodeopt; + __u32 encodeopt1; + __u32 encodeopt2; +}; + + +/** + * struct snd_enc_vorbis + * @quality: Sets encoding quality to n, between -1 (low) and 10 (high). + * In the default mode of operation, the quality level is 3. + * Normal quality range is 0 - 10. + * @managed: Boolean. Set bitrate management mode. This turns off the + * normal VBR encoding, but allows hard or soft bitrate constraints to be + * enforced by the encoder. This mode can be slower, and may also be + * lower quality. It is primarily useful for streaming. + * @max_bit_rate: Enabled only if managed is TRUE + * @min_bit_rate: Enabled only if managed is TRUE + * @downmix: Boolean. Downmix input from stereo to mono (has no effect on + * non-stereo streams). Useful for lower-bitrate encoding. + * + * These options were extracted from the OpenMAX IL spec and Gstreamer vorbisenc + * properties + * + * For best quality users should specify VBR mode and set quality levels. + */ + +struct snd_enc_vorbis { + __s32 quality; + __u32 managed; + __u32 max_bit_rate; + __u32 min_bit_rate; + __u32 downmix; +}; + + +/** + * struct snd_enc_real + * @quant_bits: number of coupling quantization bits in the stream + * @start_region: coupling start region in the stream + * @num_regions: number of regions value + * + * These options were extracted from the OpenMAX IL spec + */ + +struct snd_enc_real { + __u32 quant_bits; + __u32 start_region; + __u32 num_regions; +}; + +/** + * struct snd_enc_flac + * @num: serial number, valid only for OGG formats + * needs to be set by application + * @gain: Add replay gain tags + * + * These options were extracted from the FLAC online documentation + * at http://flac.sourceforge.net/documentation_tools_flac.html + * + * To make the API simpler, it is assumed that the user will select quality + * profiles. Additional options that affect encoding quality and speed can + * be added at a later stage if needed. + * + * By default the Subset format is used by encoders. + * + * TAGS such as pictures, etc, cannot be handled by an offloaded encoder and are + * not supported in this API. + */ + +struct snd_enc_flac { + __u32 num; + __u32 gain; +}; + +struct snd_enc_generic { + __u32 bw; /* encoder bandwidth */ + __s32 reserved[15]; +}; +struct snd_dec_ddp { + __u32 params_length; + __u32 params_id[18]; + __u32 params_value[18]; +}; +struct snd_dec_flac { + __u16 sample_size; + __u16 min_blk_size; + __u16 max_blk_size; + __u16 min_frame_size; + __u16 max_frame_size; +}; +union snd_codec_options { + struct snd_enc_wma wma; + struct snd_enc_vorbis vorbis; + struct snd_enc_real real; + struct snd_enc_flac flac; + struct snd_enc_generic generic; + struct snd_dec_ddp ddp; + struct snd_dec_flac flac_dec; +}; + +/** struct snd_codec_desc - description of codec capabilities + * @max_ch: Maximum number of audio channels + * @sample_rates: Sampling rates in Hz, use SNDRV_PCM_RATE_xxx for this + * @bit_rate: Indexed array containing supported bit rates + * @num_bitrates: Number of valid values in bit_rate array + * @rate_control: value is specified by SND_RATECONTROLMODE defines. + * @profiles: Supported profiles. See SND_AUDIOPROFILE defines. + * @modes: Supported modes. See SND_AUDIOMODE defines + * @formats: Supported formats. See SND_AUDIOSTREAMFORMAT defines + * @min_buffer: Minimum buffer size handled by codec implementation + * @reserved: reserved for future use + * + * This structure provides a scalar value for profiles, modes and stream + * format fields. + * If an implementation supports multiple combinations, they will be listed as + * codecs with different descriptors, for example there would be 2 descriptors + * for AAC-RAW and AAC-ADTS. + * This entails some redundancy but makes it easier to avoid invalid + * configurations. + * + */ + +struct snd_codec_desc { + __u32 max_ch; + __u32 sample_rates; + __u32 bit_rate[MAX_NUM_BITRATES]; + __u32 num_bitrates; + __u32 rate_control; + __u32 profiles; + __u32 modes; + __u32 formats; + __u32 min_buffer; + __u32 reserved[15]; +}; + +/** struct snd_codec + * @id: Identifies the supported audio encoder/decoder. + * See SND_AUDIOCODEC macros. + * @ch_in: Number of input audio channels + * @ch_out: Number of output channels. In case of contradiction between + * this field and the channelMode field, the channelMode field + * overrides. + * @sample_rate: Audio sample rate of input data + * @bit_rate: Bitrate of encoded data. May be ignored by decoders + * @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines. + * Encoders may rely on profiles for quality levels. + * May be ignored by decoders. + * @profile: Mandatory for encoders, can be mandatory for specific + * decoders as well. See SND_AUDIOPROFILE defines. + * @level: Supported level (Only used by WMA at the moment) + * @ch_mode: Channel mode for encoder. See SND_AUDIOCHANMODE defines + * @format: Format of encoded bistream. Mandatory when defined. + * See SND_AUDIOSTREAMFORMAT defines. + * @align: Block alignment in bytes of an audio sample. + * Only required for PCM or IEC formats. + * @options: encoder-specific settings + * @reserved: reserved for future use + */ + +struct snd_codec { + __u32 id; + __u32 ch_in; + __u32 ch_out; + __u32 sample_rate; + __u32 bit_rate; + __u32 rate_control; + __u32 profile; + __u32 level; + __u32 ch_mode; + __u32 format; + __u32 align; + __u32 compr_passthr; + union snd_codec_options options; + __u32 reserved[3]; +}; + +#endif diff --git a/kernel_headers/sound/devdep_params.h b/kernel_headers/sound/devdep_params.h new file mode 100644 index 0000000..8149840 --- /dev/null +++ b/kernel_headers/sound/devdep_params.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _DEV_DEP_H +#define _DEV_DEP_H + +struct dolby_param_data { + int32_t version; + int32_t device_id; + int32_t be_id; + int32_t param_id; + int32_t length; + int32_t *data; +}; + +struct dolby_param_license { + int32_t dmid; + int32_t license_key; +}; + +#define SNDRV_DEVDEP_DAP_IOCTL_SET_PARAM\ + _IOWR('U', 0x10, struct dolby_param_data) +#define SNDRV_DEVDEP_DAP_IOCTL_GET_PARAM\ + _IOR('U', 0x11, struct dolby_param_data) +#define SNDRV_DEVDEP_DAP_IOCTL_DAP_COMMAND\ + _IOWR('U', 0x13, struct dolby_param_data) +#define SNDRV_DEVDEP_DAP_IOCTL_DAP_LICENSE\ + _IOWR('U', 0x14, struct dolby_param_license) +#define SNDRV_DEVDEP_DAP_IOCTL_GET_VISUALIZER\ + _IOR('U', 0x15, struct dolby_param_data) +#endif diff --git a/kernel_headers/sound/emu10k1.h b/kernel_headers/sound/emu10k1.h new file mode 100644 index 0000000..88449df --- /dev/null +++ b/kernel_headers/sound/emu10k1.h @@ -0,0 +1,371 @@ +/* + * Copyright (c) by Jaroslav Kysela , + * Creative Labs, Inc. + * Definitions for EMU10K1 (SB Live!) chips + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef __SOUND_EMU10K1_H +#define __SOUND_EMU10K1_H + +#include + + + +/* + * ---- FX8010 ---- + */ + +#define EMU10K1_CARD_CREATIVE 0x00000000 +#define EMU10K1_CARD_EMUAPS 0x00000001 + +#define EMU10K1_FX8010_PCM_COUNT 8 + +/* instruction set */ +#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */ +#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */ +#define iMAC2 0x02 /* R = A + (X * Y >> 31) ; wraparound */ +#define iMAC3 0x03 /* R = A + (-X * Y >> 31) ; wraparound */ +#define iMACINT0 0x04 /* R = A + X * Y ; saturation */ +#define iMACINT1 0x05 /* R = A + X * Y ; wraparound (31-bit) */ +#define iACC3 0x06 /* R = A + X + Y ; saturation */ +#define iMACMV 0x07 /* R = A, acc += X * Y >> 31 */ +#define iANDXOR 0x08 /* R = (A & X) ^ Y */ +#define iTSTNEG 0x09 /* R = (A >= Y) ? X : ~X */ +#define iLIMITGE 0x0a /* R = (A >= Y) ? X : Y */ +#define iLIMITLT 0x0b /* R = (A < Y) ? X : Y */ +#define iLOG 0x0c /* R = linear_data, A (log_data), X (max_exp), Y (format_word) */ +#define iEXP 0x0d /* R = log_data, A (linear_data), X (max_exp), Y (format_word) */ +#define iINTERP 0x0e /* R = A + (X * (Y - A) >> 31) ; saturation */ +#define iSKIP 0x0f /* R = A (cc_reg), X (count), Y (cc_test) */ + +/* GPRs */ +#define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */ +#define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */ +#define EXTOUT(x) (0x20 + (x)) /* x = 0x00 - 0x0f physical outs -> FXWC low 16 bits */ +#define FXBUS2(x) (0x30 + (x)) /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */ + /* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */ + +#define C_00000000 0x40 +#define C_00000001 0x41 +#define C_00000002 0x42 +#define C_00000003 0x43 +#define C_00000004 0x44 +#define C_00000008 0x45 +#define C_00000010 0x46 +#define C_00000020 0x47 +#define C_00000100 0x48 +#define C_00010000 0x49 +#define C_00080000 0x4a +#define C_10000000 0x4b +#define C_20000000 0x4c +#define C_40000000 0x4d +#define C_80000000 0x4e +#define C_7fffffff 0x4f +#define C_ffffffff 0x50 +#define C_fffffffe 0x51 +#define C_c0000000 0x52 +#define C_4f1bbcdc 0x53 +#define C_5a7ef9db 0x54 +#define C_00100000 0x55 /* ?? */ +#define GPR_ACCU 0x56 /* ACCUM, accumulator */ +#define GPR_COND 0x57 /* CCR, condition register */ +#define GPR_NOISE0 0x58 /* noise source */ +#define GPR_NOISE1 0x59 /* noise source */ +#define GPR_IRQ 0x5a /* IRQ register */ +#define GPR_DBAC 0x5b /* TRAM Delay Base Address Counter */ +#define GPR(x) (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */ +#define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */ +#define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */ +#define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */ +#define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */ + +#define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */ +#define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */ +#define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */ +#define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */ +#define A_ITRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */ +#define A_ETRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */ + +#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */ +#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */ +#define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */ +#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */ +#define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */ +#define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */ +#define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */ +#define A3_EMU32IN(x) (0x160 + (x)) /* x = 0x00 - 0x3f "EMU32_IN_00 - _3F" - Only when .device = 0x0008 */ +#define A3_EMU32OUT(x) (0x1E0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_00 - _3F" - Only when .device = 0x0008 */ +#define A_GPR(x) (A_FXGPREGBASE + (x)) + +/* cc_reg constants */ +#define CC_REG_NORMALIZED C_00000001 +#define CC_REG_BORROW C_00000002 +#define CC_REG_MINUS C_00000004 +#define CC_REG_ZERO C_00000008 +#define CC_REG_SATURATE C_00000010 +#define CC_REG_NONZERO C_00000100 + +/* FX buses */ +#define FXBUS_PCM_LEFT 0x00 +#define FXBUS_PCM_RIGHT 0x01 +#define FXBUS_PCM_LEFT_REAR 0x02 +#define FXBUS_PCM_RIGHT_REAR 0x03 +#define FXBUS_MIDI_LEFT 0x04 +#define FXBUS_MIDI_RIGHT 0x05 +#define FXBUS_PCM_CENTER 0x06 +#define FXBUS_PCM_LFE 0x07 +#define FXBUS_PCM_LEFT_FRONT 0x08 +#define FXBUS_PCM_RIGHT_FRONT 0x09 +#define FXBUS_MIDI_REVERB 0x0c +#define FXBUS_MIDI_CHORUS 0x0d +#define FXBUS_PCM_LEFT_SIDE 0x0e +#define FXBUS_PCM_RIGHT_SIDE 0x0f +#define FXBUS_PT_LEFT 0x14 +#define FXBUS_PT_RIGHT 0x15 + +/* Inputs */ +#define EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */ +#define EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */ +#define EXTIN_SPDIF_CD_L 0x02 /* internal S/PDIF CD - onboard - left */ +#define EXTIN_SPDIF_CD_R 0x03 /* internal S/PDIF CD - onboard - right */ +#define EXTIN_ZOOM_L 0x04 /* Zoom Video I2S - left */ +#define EXTIN_ZOOM_R 0x05 /* Zoom Video I2S - right */ +#define EXTIN_TOSLINK_L 0x06 /* LiveDrive - TOSLink Optical - left */ +#define EXTIN_TOSLINK_R 0x07 /* LiveDrive - TOSLink Optical - right */ +#define EXTIN_LINE1_L 0x08 /* LiveDrive - Line/Mic 1 - left */ +#define EXTIN_LINE1_R 0x09 /* LiveDrive - Line/Mic 1 - right */ +#define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */ +#define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */ +#define EXTIN_LINE2_L 0x0c /* LiveDrive - Line/Mic 2 - left */ +#define EXTIN_LINE2_R 0x0d /* LiveDrive - Line/Mic 2 - right */ + +/* Outputs */ +#define EXTOUT_AC97_L 0x00 /* AC'97 playback channel - left */ +#define EXTOUT_AC97_R 0x01 /* AC'97 playback channel - right */ +#define EXTOUT_TOSLINK_L 0x02 /* LiveDrive - TOSLink Optical - left */ +#define EXTOUT_TOSLINK_R 0x03 /* LiveDrive - TOSLink Optical - right */ +#define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */ +#define EXTOUT_AC97_LFE 0x05 /* SB Live 5.1 - LFE */ +#define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */ +#define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */ +#define EXTOUT_REAR_L 0x08 /* Rear channel - left */ +#define EXTOUT_REAR_R 0x09 /* Rear channel - right */ +#define EXTOUT_ADC_CAP_L 0x0a /* ADC Capture buffer - left */ +#define EXTOUT_ADC_CAP_R 0x0b /* ADC Capture buffer - right */ +#define EXTOUT_MIC_CAP 0x0c /* MIC Capture buffer */ +#define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */ +#define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */ +#define EXTOUT_ACENTER 0x11 /* Analog Center */ +#define EXTOUT_ALFE 0x12 /* Analog LFE */ + +/* Audigy Inputs */ +#define A_EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */ +#define A_EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */ +#define A_EXTIN_SPDIF_CD_L 0x02 /* digital CD left */ +#define A_EXTIN_SPDIF_CD_R 0x03 /* digital CD left */ +#define A_EXTIN_OPT_SPDIF_L 0x04 /* audigy drive Optical SPDIF - left */ +#define A_EXTIN_OPT_SPDIF_R 0x05 /* right */ +#define A_EXTIN_LINE2_L 0x08 /* audigy drive line2/mic2 - left */ +#define A_EXTIN_LINE2_R 0x09 /* right */ +#define A_EXTIN_ADC_L 0x0a /* Philips ADC - left */ +#define A_EXTIN_ADC_R 0x0b /* right */ +#define A_EXTIN_AUX2_L 0x0c /* audigy drive aux2 - left */ +#define A_EXTIN_AUX2_R 0x0d /* - right */ + +/* Audigiy Outputs */ +#define A_EXTOUT_FRONT_L 0x00 /* digital front left */ +#define A_EXTOUT_FRONT_R 0x01 /* right */ +#define A_EXTOUT_CENTER 0x02 /* digital front center */ +#define A_EXTOUT_LFE 0x03 /* digital front lfe */ +#define A_EXTOUT_HEADPHONE_L 0x04 /* headphone audigy drive left */ +#define A_EXTOUT_HEADPHONE_R 0x05 /* right */ +#define A_EXTOUT_REAR_L 0x06 /* digital rear left */ +#define A_EXTOUT_REAR_R 0x07 /* right */ +#define A_EXTOUT_AFRONT_L 0x08 /* analog front left */ +#define A_EXTOUT_AFRONT_R 0x09 /* right */ +#define A_EXTOUT_ACENTER 0x0a /* analog center */ +#define A_EXTOUT_ALFE 0x0b /* analog LFE */ +#define A_EXTOUT_ASIDE_L 0x0c /* analog side left - Audigy 2 ZS */ +#define A_EXTOUT_ASIDE_R 0x0d /* right - Audigy 2 ZS */ +#define A_EXTOUT_AREAR_L 0x0e /* analog rear left */ +#define A_EXTOUT_AREAR_R 0x0f /* right */ +#define A_EXTOUT_AC97_L 0x10 /* AC97 left (front) */ +#define A_EXTOUT_AC97_R 0x11 /* right */ +#define A_EXTOUT_ADC_CAP_L 0x16 /* ADC capture buffer left */ +#define A_EXTOUT_ADC_CAP_R 0x17 /* right */ +#define A_EXTOUT_MIC_CAP 0x18 /* Mic capture buffer */ + +/* Audigy constants */ +#define A_C_00000000 0xc0 +#define A_C_00000001 0xc1 +#define A_C_00000002 0xc2 +#define A_C_00000003 0xc3 +#define A_C_00000004 0xc4 +#define A_C_00000008 0xc5 +#define A_C_00000010 0xc6 +#define A_C_00000020 0xc7 +#define A_C_00000100 0xc8 +#define A_C_00010000 0xc9 +#define A_C_00000800 0xca +#define A_C_10000000 0xcb +#define A_C_20000000 0xcc +#define A_C_40000000 0xcd +#define A_C_80000000 0xce +#define A_C_7fffffff 0xcf +#define A_C_ffffffff 0xd0 +#define A_C_fffffffe 0xd1 +#define A_C_c0000000 0xd2 +#define A_C_4f1bbcdc 0xd3 +#define A_C_5a7ef9db 0xd4 +#define A_C_00100000 0xd5 +#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */ +#define A_GPR_COND 0xd7 /* CCR, condition register */ +#define A_GPR_NOISE0 0xd8 /* noise source */ +#define A_GPR_NOISE1 0xd9 /* noise source */ +#define A_GPR_IRQ 0xda /* IRQ register */ +#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */ +#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */ + +/* definitions for debug register */ +#define EMU10K1_DBG_ZC 0x80000000 /* zero tram counter */ +#define EMU10K1_DBG_SATURATION_OCCURED 0x02000000 /* saturation control */ +#define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */ +#define EMU10K1_DBG_SINGLE_STEP 0x00008000 /* single step mode */ +#define EMU10K1_DBG_STEP 0x00004000 /* start single step */ +#define EMU10K1_DBG_CONDITION_CODE 0x00003e00 /* condition code */ +#define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */ + +/* tank memory address line */ +#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */ +#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */ +#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */ +#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */ +#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */ + +struct snd_emu10k1_fx8010_info { + unsigned int internal_tram_size; /* in samples */ + unsigned int external_tram_size; /* in samples */ + char fxbus_names[16][32]; /* names of FXBUSes */ + char extin_names[16][32]; /* names of external inputs */ + char extout_names[32][32]; /* names of external outputs */ + unsigned int gpr_controls; /* count of GPR controls */ +}; + +#define EMU10K1_GPR_TRANSLATION_NONE 0 +#define EMU10K1_GPR_TRANSLATION_TABLE100 1 +#define EMU10K1_GPR_TRANSLATION_BASS 2 +#define EMU10K1_GPR_TRANSLATION_TREBLE 3 +#define EMU10K1_GPR_TRANSLATION_ONOFF 4 + +struct snd_emu10k1_fx8010_control_gpr { + struct snd_ctl_elem_id id; /* full control ID definition */ + unsigned int vcount; /* visible count */ + unsigned int count; /* count of GPR (1..16) */ + unsigned short gpr[32]; /* GPR number(s) */ + unsigned int value[32]; /* initial values */ + unsigned int min; /* minimum range */ + unsigned int max; /* maximum range */ + unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */ + const unsigned int *tlv; +}; + +/* old ABI without TLV support */ +struct snd_emu10k1_fx8010_control_old_gpr { + struct snd_ctl_elem_id id; + unsigned int vcount; + unsigned int count; + unsigned short gpr[32]; + unsigned int value[32]; + unsigned int min; + unsigned int max; + unsigned int translation; +}; + +struct snd_emu10k1_fx8010_code { + char name[128]; + + DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */ + __u32 *gpr_map; /* initializers */ + + unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */ + struct snd_emu10k1_fx8010_control_gpr *gpr_add_controls; /* GPR controls to add/replace */ + + unsigned int gpr_del_control_count; /* count of GPR controls to remove */ + struct snd_ctl_elem_id *gpr_del_controls; /* IDs of GPR controls to remove */ + + unsigned int gpr_list_control_count; /* count of GPR controls to list */ + unsigned int gpr_list_control_total; /* total count of GPR controls */ + struct snd_emu10k1_fx8010_control_gpr *gpr_list_controls; /* listed GPR controls */ + + DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */ + __u32 *tram_data_map; /* data initializers */ + __u32 *tram_addr_map; /* map initializers */ + + DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */ + __u32 *code; /* one instruction - 64 bits */ +}; + +struct snd_emu10k1_fx8010_tram { + unsigned int address; /* 31.bit == 1 -> external TRAM */ + unsigned int size; /* size in samples (4 bytes) */ + unsigned int *samples; /* pointer to samples (20-bit) */ + /* NULL->clear memory */ +}; + +struct snd_emu10k1_fx8010_pcm_rec { + unsigned int substream; /* substream number */ + unsigned int res1; /* reserved */ + unsigned int channels; /* 16-bit channels count, zero = remove this substream */ + unsigned int tram_start; /* ring buffer position in TRAM (in samples) */ + unsigned int buffer_size; /* count of buffered samples */ + unsigned short gpr_size; /* GPR containing size of ringbuffer in samples (host) */ + unsigned short gpr_ptr; /* GPR containing current pointer in the ring buffer (host = reset, FX8010) */ + unsigned short gpr_count; /* GPR containing count of samples between two interrupts (host) */ + unsigned short gpr_tmpcount; /* GPR containing current count of samples to interrupt (host = set, FX8010) */ + unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */ + unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */ + unsigned char pad; /* reserved */ + unsigned char etram[32]; /* external TRAM address & data (one per channel) */ + unsigned int res2; /* reserved */ +}; + +#define SNDRV_EMU10K1_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1) + +#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info) +#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code) +#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code) +#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int) +#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram) +#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram) +#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec) +#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec) +#define SNDRV_EMU10K1_IOCTL_PVERSION _IOR ('H', 0x40, int) +#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80) +#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81) +#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82) +#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int) +#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int) + +/* typedefs for compatibility to user-space */ +typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t; +typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t; +typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t; +typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t; +typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t; + +#endif /* __SOUND_EMU10K1_H */ diff --git a/kernel_headers/sound/hdsp.h b/kernel_headers/sound/hdsp.h new file mode 100644 index 0000000..56b11a7 --- /dev/null +++ b/kernel_headers/sound/hdsp.h @@ -0,0 +1,110 @@ +#ifndef __SOUND_HDSP_H +#define __SOUND_HDSP_H + +/* + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include + +#define HDSP_MATRIX_MIXER_SIZE 2048 + +enum HDSP_IO_Type { + Digiface, + Multiface, + H9652, + H9632, + RPM, + Undefined, +}; + +struct hdsp_peak_rms { + __u32 input_peaks[26]; + __u32 playback_peaks[26]; + __u32 output_peaks[28]; + __u64 input_rms[26]; + __u64 playback_rms[26]; + /* These are only used for H96xx cards */ + __u64 output_rms[26]; +}; + +#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdsp_peak_rms) + +struct hdsp_config_info { + unsigned char pref_sync_ref; + unsigned char wordclock_sync_check; + unsigned char spdif_sync_check; + unsigned char adatsync_sync_check; + unsigned char adat_sync_check[3]; + unsigned char spdif_in; + unsigned char spdif_out; + unsigned char spdif_professional; + unsigned char spdif_emphasis; + unsigned char spdif_nonaudio; + unsigned int spdif_sample_rate; + unsigned int system_sample_rate; + unsigned int autosync_sample_rate; + unsigned char system_clock_mode; + unsigned char clock_source; + unsigned char autosync_ref; + unsigned char line_out; + unsigned char passthru; + unsigned char da_gain; + unsigned char ad_gain; + unsigned char phone_gain; + unsigned char xlr_breakout_cable; + unsigned char analog_extension_board; +}; + +#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info) + +struct hdsp_firmware { + void *firmware_data; /* 24413 x 4 bytes */ +}; + +#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware) + +struct hdsp_version { + enum HDSP_IO_Type io_type; + unsigned short firmware_rev; +}; + +#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdsp_version) + +struct hdsp_mixer { + unsigned short matrix[HDSP_MATRIX_MIXER_SIZE]; +}; + +#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdsp_mixer) + +struct hdsp_9632_aeb { + int aebi; + int aebo; +}; + +#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb) + +/* typedefs for compatibility to user-space */ +typedef enum HDSP_IO_Type HDSP_IO_Type; +typedef struct hdsp_peak_rms hdsp_peak_rms_t; +typedef struct hdsp_config_info hdsp_config_info_t; +typedef struct hdsp_firmware hdsp_firmware_t; +typedef struct hdsp_version hdsp_version_t; +typedef struct hdsp_mixer hdsp_mixer_t; +typedef struct hdsp_9632_aeb hdsp_9632_aeb_t; + +#endif /* __SOUND_HDSP_H */ diff --git a/kernel_headers/sound/hdspm.h b/kernel_headers/sound/hdspm.h new file mode 100644 index 0000000..1f59ea2 --- /dev/null +++ b/kernel_headers/sound/hdspm.h @@ -0,0 +1,229 @@ +#ifndef __SOUND_HDSPM_H +#define __SOUND_HDSPM_H +/* + * Copyright (C) 2003 Winfried Ritsch (IEM) + * based on hdsp.h from Thomas Charbonnel (thomas@undata.org) + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */ +#define HDSPM_MAX_CHANNELS 64 + +enum hdspm_io_type { + MADI, + MADIface, + AIO, + AES32, + RayDAT +}; + +enum hdspm_speed { + ss, + ds, + qs +}; + +/* -------------------- IOCTL Peak/RMS Meters -------------------- */ + +struct hdspm_peak_rms { + uint32_t input_peaks[64]; + uint32_t playback_peaks[64]; + uint32_t output_peaks[64]; + + uint64_t input_rms[64]; + uint64_t playback_rms[64]; + uint64_t output_rms[64]; + + uint8_t speed; /* enum {ss, ds, qs} */ + int status2; +}; + +#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS \ + _IOR('H', 0x42, struct hdspm_peak_rms) + +/* ------------ CONFIG block IOCTL ---------------------- */ + +struct hdspm_config { + unsigned char pref_sync_ref; + unsigned char wordclock_sync_check; + unsigned char madi_sync_check; + unsigned int system_sample_rate; + unsigned int autosync_sample_rate; + unsigned char system_clock_mode; + unsigned char clock_source; + unsigned char autosync_ref; + unsigned char line_out; + unsigned int passthru; + unsigned int analog_out; +}; + +#define SNDRV_HDSPM_IOCTL_GET_CONFIG \ + _IOR('H', 0x41, struct hdspm_config) + +/** + * If there's a TCO (TimeCode Option) board installed, + * there are further options and status data available. + * The hdspm_ltc structure contains the current SMPTE + * timecode and some status information and can be + * obtained via SNDRV_HDSPM_IOCTL_GET_LTC or in the + * hdspm_status struct. + **/ + +enum hdspm_ltc_format { + format_invalid, + fps_24, + fps_25, + fps_2997, + fps_30 +}; + +enum hdspm_ltc_frame { + frame_invalid, + drop_frame, + full_frame +}; + +enum hdspm_ltc_input_format { + ntsc, + pal, + no_video +}; + +struct hdspm_ltc { + unsigned int ltc; + + enum hdspm_ltc_format format; + enum hdspm_ltc_frame frame; + enum hdspm_ltc_input_format input_format; +}; + +#define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_mixer_ioctl) + +/** + * The status data reflects the device's current state + * as determined by the card's configuration and + * connection status. + **/ + +enum hdspm_sync { + hdspm_sync_no_lock = 0, + hdspm_sync_lock = 1, + hdspm_sync_sync = 2 +}; + +enum hdspm_madi_input { + hdspm_input_optical = 0, + hdspm_input_coax = 1 +}; + +enum hdspm_madi_channel_format { + hdspm_format_ch_64 = 0, + hdspm_format_ch_56 = 1 +}; + +enum hdspm_madi_frame_format { + hdspm_frame_48 = 0, + hdspm_frame_96 = 1 +}; + +enum hdspm_syncsource { + syncsource_wc = 0, + syncsource_madi = 1, + syncsource_tco = 2, + syncsource_sync = 3, + syncsource_none = 4 +}; + +struct hdspm_status { + uint8_t card_type; /* enum hdspm_io_type */ + enum hdspm_syncsource autosync_source; + + uint64_t card_clock; + uint32_t master_period; + + union { + struct { + uint8_t sync_wc; /* enum hdspm_sync */ + uint8_t sync_madi; /* enum hdspm_sync */ + uint8_t sync_tco; /* enum hdspm_sync */ + uint8_t sync_in; /* enum hdspm_sync */ + uint8_t madi_input; /* enum hdspm_madi_input */ + uint8_t channel_format; /* enum hdspm_madi_channel_format */ + uint8_t frame_format; /* enum hdspm_madi_frame_format */ + } madi; + } card_specific; +}; + +#define SNDRV_HDSPM_IOCTL_GET_STATUS \ + _IOR('H', 0x47, struct hdspm_status) + +/** + * Get information about the card and its add-ons. + **/ + +#define HDSPM_ADDON_TCO 1 + +struct hdspm_version { + uint8_t card_type; /* enum hdspm_io_type */ + char cardname[20]; + unsigned int serial; + unsigned short firmware_rev; + int addons; +}; + +#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version) + +/* ------------- get Matrix Mixer IOCTL --------------- */ + +/* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte = + * 32768 Bytes + */ + +/* organisation is 64 channelfader in a continuous memory block */ +/* equivalent to hardware definition, maybe for future feature of mmap of + * them + */ +/* each of 64 outputs has 64 infader and 64 outfader: + Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */ + +#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS + +struct hdspm_channelfader { + unsigned int in[HDSPM_MIXER_CHANNELS]; + unsigned int pb[HDSPM_MIXER_CHANNELS]; +}; + +struct hdspm_mixer { + struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS]; +}; + +struct hdspm_mixer_ioctl { + struct hdspm_mixer *mixer; +}; + +/* use indirect access due to the limit of ioctl bit size */ +#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl) + +/* typedefs for compatibility to user-space */ +typedef struct hdspm_peak_rms hdspm_peak_rms_t; +typedef struct hdspm_config_info hdspm_config_info_t; +typedef struct hdspm_version hdspm_version_t; +typedef struct hdspm_channelfader snd_hdspm_channelfader_t; +typedef struct hdspm_mixer hdspm_mixer_t; + + +#endif diff --git a/kernel_headers/sound/lsm_params.h b/kernel_headers/sound/lsm_params.h new file mode 100644 index 0000000..9ab8801 --- /dev/null +++ b/kernel_headers/sound/lsm_params.h @@ -0,0 +1,75 @@ +#ifndef _LSM_PARAMS_H__ +#define _LSM_PARAMS_H__ + +#include +#include + +#define SNDRV_LSM_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 0) + +enum lsm_app_id { + LSM_VOICE_WAKEUP_APP_ID = 1, + LSM_VOICE_WAKEUP_APP_ID_V2 = 2, +}; + +enum lsm_detection_mode { + LSM_MODE_KEYWORD_ONLY_DETECTION = 1, + LSM_MODE_USER_KEYWORD_DETECTION +}; + +enum lsm_vw_status { + LSM_VOICE_WAKEUP_STATUS_RUNNING = 1, + LSM_VOICE_WAKEUP_STATUS_DETECTED, + LSM_VOICE_WAKEUP_STATUS_END_SPEECH, + LSM_VOICE_WAKEUP_STATUS_REJECTED +}; + +struct snd_lsm_sound_model { + __u8 *data; + __u32 data_size; + enum lsm_detection_mode detection_mode; + __u16 min_keyw_confidence; + __u16 min_user_confidence; + bool detect_failure; +}; + +struct snd_lsm_sound_model_v2 { + __u8 *data; + __u8 *confidence_level; + __u32 data_size; + enum lsm_detection_mode detection_mode; + __u8 num_confidence_levels; + bool detect_failure; +}; + +struct snd_lsm_session_data { + enum lsm_app_id app_id; +}; + +struct snd_lsm_event_status { + __u16 status; + __u16 payload_size; + __u8 payload[0]; +}; + +struct snd_lsm_detection_params { + __u8 *conf_level; + enum lsm_detection_mode detect_mode; + __u8 num_confidence_levels; + bool detect_failure; +}; + +#define SNDRV_LSM_REG_SND_MODEL _IOW('U', 0x00, struct snd_lsm_sound_model) +#define SNDRV_LSM_DEREG_SND_MODEL _IOW('U', 0x01, int) +#define SNDRV_LSM_EVENT_STATUS _IOW('U', 0x02, struct snd_lsm_event_status) +#define SNDRV_LSM_ABORT_EVENT _IOW('U', 0x03, int) +#define SNDRV_LSM_START _IOW('U', 0x04, int) +#define SNDRV_LSM_STOP _IOW('U', 0x05, int) +#define SNDRV_LSM_SET_SESSION_DATA _IOW('U', 0x06, struct snd_lsm_session_data) +#define SNDRV_LSM_REG_SND_MODEL_V2 _IOW('U', 0x07,\ + struct snd_lsm_sound_model_v2) +#define SNDRV_LSM_LAB_CONTROL _IOW('U', 0x08, uint32_t) +#define SNDRV_LSM_STOP_LAB _IO('U', 0x09) +#define SNDRV_LSM_SET_PARAMS _IOW('U', 0x0A, \ + struct snd_lsm_detection_params) + +#endif diff --git a/kernel_headers/sound/msmcal-hwdep.h b/kernel_headers/sound/msmcal-hwdep.h new file mode 100644 index 0000000..84db339 --- /dev/null +++ b/kernel_headers/sound/msmcal-hwdep.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef _CALIB_HWDEP_H +#define _CALIB_HWDEP_H + +#define WCD9XXX_CODEC_HWDEP_NODE 1000 +enum wcd_cal_type { + WCD9XXX_MIN_CAL, + WCD9XXX_ANC_CAL = WCD9XXX_MIN_CAL, + WCD9XXX_MAD_CAL, + WCD9XXX_MBHC_CAL, + WCD9XXX_MAX_CAL, +}; + +struct wcdcal_ioctl_buffer { + __u32 size; + __u8 *buffer; + enum wcd_cal_type cal_type; +}; + +#define SNDRV_CTL_IOCTL_HWDEP_CAL_TYPE \ + _IOW('U', 0x1, struct wcdcal_ioctl_buffer) + +#endif /*_CALIB_HWDEP_H*/ diff --git a/kernel_headers/sound/sb16_csp.h b/kernel_headers/sound/sb16_csp.h new file mode 100644 index 0000000..255f69c --- /dev/null +++ b/kernel_headers/sound/sb16_csp.h @@ -0,0 +1,122 @@ +/* + * Copyright (c) 1999 by Uros Bizjak + * Takashi Iwai + * + * SB16ASP/AWE32 CSP control + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef __SOUND_SB16_CSP_H +#define __SOUND_SB16_CSP_H + + +/* CSP modes */ +#define SNDRV_SB_CSP_MODE_NONE 0x00 +#define SNDRV_SB_CSP_MODE_DSP_READ 0x01 /* Record from DSP */ +#define SNDRV_SB_CSP_MODE_DSP_WRITE 0x02 /* Play to DSP */ +#define SNDRV_SB_CSP_MODE_QSOUND 0x04 /* QSound */ + +/* CSP load flags */ +#define SNDRV_SB_CSP_LOAD_FROMUSER 0x01 +#define SNDRV_SB_CSP_LOAD_INITBLOCK 0x02 + +/* CSP sample width */ +#define SNDRV_SB_CSP_SAMPLE_8BIT 0x01 +#define SNDRV_SB_CSP_SAMPLE_16BIT 0x02 + +/* CSP channels */ +#define SNDRV_SB_CSP_MONO 0x01 +#define SNDRV_SB_CSP_STEREO 0x02 + +/* CSP rates */ +#define SNDRV_SB_CSP_RATE_8000 0x01 +#define SNDRV_SB_CSP_RATE_11025 0x02 +#define SNDRV_SB_CSP_RATE_22050 0x04 +#define SNDRV_SB_CSP_RATE_44100 0x08 +#define SNDRV_SB_CSP_RATE_ALL 0x0f + +/* CSP running state */ +#define SNDRV_SB_CSP_ST_IDLE 0x00 +#define SNDRV_SB_CSP_ST_LOADED 0x01 +#define SNDRV_SB_CSP_ST_RUNNING 0x02 +#define SNDRV_SB_CSP_ST_PAUSED 0x04 +#define SNDRV_SB_CSP_ST_AUTO 0x08 +#define SNDRV_SB_CSP_ST_QSOUND 0x10 + +/* maximum QSound value (180 degrees right) */ +#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT 0x20 + +/* maximum microcode RIFF file size */ +#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x3000 + +/* microcode header */ +struct snd_sb_csp_mc_header { + char codec_name[16]; /* id name of codec */ + unsigned short func_req; /* requested function */ +}; + +/* microcode to be loaded */ +struct snd_sb_csp_microcode { + struct snd_sb_csp_mc_header info; + unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE]; +}; + +/* start CSP with sample_width in mono/stereo */ +struct snd_sb_csp_start { + int sample_width; /* sample width, look above */ + int channels; /* channels, look above */ +}; + +/* CSP information */ +struct snd_sb_csp_info { + char codec_name[16]; /* id name of codec */ + unsigned short func_nr; /* function number */ + unsigned int acc_format; /* accepted PCM formats */ + unsigned short acc_channels; /* accepted channels */ + unsigned short acc_width; /* accepted sample width */ + unsigned short acc_rates; /* accepted sample rates */ + unsigned short csp_mode; /* CSP mode, see above */ + unsigned short run_channels; /* current channels */ + unsigned short run_width; /* current sample width */ + unsigned short version; /* version id: 0x10 - 0x1f */ + unsigned short state; /* state bits */ +}; + +/* HWDEP controls */ +/* get CSP information */ +#define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, struct snd_sb_csp_info) +/* load microcode to CSP */ +/* NOTE: struct snd_sb_csp_microcode overflows the max size (13 bits) + * defined for some architectures like MIPS, and it leads to build errors. + * (x86 and co have 14-bit size, thus it's valid, though.) + * As a workaround for skipping the size-limit check, here we don't use the + * normal _IOW() macro but _IOC() with the manual argument. + */ +#define SNDRV_SB_CSP_IOCTL_LOAD_CODE \ + _IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode)) +/* unload microcode from CSP */ +#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12) +/* start CSP */ +#define SNDRV_SB_CSP_IOCTL_START _IOW('H', 0x13, struct snd_sb_csp_start) +/* stop CSP */ +#define SNDRV_SB_CSP_IOCTL_STOP _IO('H', 0x14) +/* pause CSP and DMA transfer */ +#define SNDRV_SB_CSP_IOCTL_PAUSE _IO('H', 0x15) +/* restart CSP and DMA transfer */ +#define SNDRV_SB_CSP_IOCTL_RESTART _IO('H', 0x16) + + +#endif /* __SOUND_SB16_CSP_H */ diff --git a/kernel_headers/sound/sfnt_info.h b/kernel_headers/sound/sfnt_info.h new file mode 100644 index 0000000..1bce7fd --- /dev/null +++ b/kernel_headers/sound/sfnt_info.h @@ -0,0 +1,212 @@ +#ifndef __SOUND_SFNT_INFO_H +#define __SOUND_SFNT_INFO_H + +/* + * Patch record compatible with AWE driver on OSS + * + * Copyright (C) 1999-2000 Takashi Iwai + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include + +/* + * patch information record + */ + +#ifdef SNDRV_BIG_ENDIAN +#define SNDRV_OSS_PATCHKEY(id) (0xfd00|id) +#else +#define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd) +#endif + +/* patch interface header: 16 bytes */ +struct soundfont_patch_info { + unsigned short key; /* use the key below */ +#define SNDRV_OSS_SOUNDFONT_PATCH SNDRV_OSS_PATCHKEY(0x07) + + short device_no; /* synthesizer number */ + unsigned short sf_id; /* file id (should be zero) */ + short optarg; /* optional argument */ + int len; /* data length (without this header) */ + + short type; /* patch operation type */ +#define SNDRV_SFNT_LOAD_INFO 0 /* awe_voice_rec */ +#define SNDRV_SFNT_LOAD_DATA 1 /* awe_sample_info */ +#define SNDRV_SFNT_OPEN_PATCH 2 /* awe_open_parm */ +#define SNDRV_SFNT_CLOSE_PATCH 3 /* none */ + /* 4 is obsolete */ +#define SNDRV_SFNT_REPLACE_DATA 5 /* awe_sample_info (optarg=#channels)*/ +#define SNDRV_SFNT_MAP_PRESET 6 /* awe_voice_map */ + /* 7 is not used */ +#define SNDRV_SFNT_PROBE_DATA 8 /* optarg=sample */ +#define SNDRV_SFNT_REMOVE_INFO 9 /* optarg=(bank<<8)|instr */ + + short reserved; /* word alignment data */ + + /* the actual patch data begins after this */ +}; + + +/* + * open patch + */ + +#define SNDRV_SFNT_PATCH_NAME_LEN 32 + +struct soundfont_open_parm { + unsigned short type; /* sample type */ +#define SNDRV_SFNT_PAT_TYPE_MISC 0 +#define SNDRV_SFNT_PAT_TYPE_GUS 6 +#define SNDRV_SFNT_PAT_TYPE_MAP 7 +#define SNDRV_SFNT_PAT_LOCKED 0x100 /* lock the samples */ +#define SNDRV_SFNT_PAT_SHARED 0x200 /* sample is shared */ + + short reserved; + char name[SNDRV_SFNT_PATCH_NAME_LEN]; +}; + + +/* + * raw voice information record + */ + +/* wave table envelope & effect parameters to control EMU8000 */ +struct soundfont_voice_parm { + unsigned short moddelay; /* modulation delay (0x8000) */ + unsigned short modatkhld; /* modulation attack & hold time (0x7f7f) */ + unsigned short moddcysus; /* modulation decay & sustain (0x7f7f) */ + unsigned short modrelease; /* modulation release time (0x807f) */ + short modkeyhold, modkeydecay; /* envelope change per key (not used) */ + unsigned short voldelay; /* volume delay (0x8000) */ + unsigned short volatkhld; /* volume attack & hold time (0x7f7f) */ + unsigned short voldcysus; /* volume decay & sustain (0x7f7f) */ + unsigned short volrelease; /* volume release time (0x807f) */ + short volkeyhold, volkeydecay; /* envelope change per key (not used) */ + unsigned short lfo1delay; /* LFO1 delay (0x8000) */ + unsigned short lfo2delay; /* LFO2 delay (0x8000) */ + unsigned short pefe; /* modulation pitch & cutoff (0x0000) */ + unsigned short fmmod; /* LFO1 pitch & cutoff (0x0000) */ + unsigned short tremfrq; /* LFO1 volume & freq (0x0000) */ + unsigned short fm2frq2; /* LFO2 pitch & freq (0x0000) */ + unsigned char cutoff; /* initial cutoff (0xff) */ + unsigned char filterQ; /* initial filter Q [0-15] (0x0) */ + unsigned char chorus; /* chorus send (0x00) */ + unsigned char reverb; /* reverb send (0x00) */ + unsigned short reserved[4]; /* not used */ +}; + + +/* wave table parameters: 92 bytes */ +struct soundfont_voice_info { + unsigned short sf_id; /* file id (should be zero) */ + unsigned short sample; /* sample id */ + int start, end; /* sample offset correction */ + int loopstart, loopend; /* loop offset correction */ + short rate_offset; /* sample rate pitch offset */ + unsigned short mode; /* sample mode */ +#define SNDRV_SFNT_MODE_ROMSOUND 0x8000 +#define SNDRV_SFNT_MODE_STEREO 1 +#define SNDRV_SFNT_MODE_LOOPING 2 +#define SNDRV_SFNT_MODE_NORELEASE 4 /* obsolete */ +#define SNDRV_SFNT_MODE_INIT_PARM 8 + + short root; /* midi root key */ + short tune; /* pitch tuning (in cents) */ + unsigned char low, high; /* key note range */ + unsigned char vellow, velhigh; /* velocity range */ + signed char fixkey, fixvel; /* fixed key, velocity */ + signed char pan, fixpan; /* panning, fixed panning */ + short exclusiveClass; /* exclusive class (0 = none) */ + unsigned char amplitude; /* sample volume (127 max) */ + unsigned char attenuation; /* attenuation (0.375dB) */ + short scaleTuning; /* pitch scale tuning(%), normally 100 */ + struct soundfont_voice_parm parm; /* voice envelope parameters */ + unsigned short sample_mode; /* sample mode_flag (set by driver) */ +}; + + +/* instrument info header: 4 bytes */ +struct soundfont_voice_rec_hdr { + unsigned char bank; /* midi bank number */ + unsigned char instr; /* midi preset number */ + char nvoices; /* number of voices */ + char write_mode; /* write mode; normally 0 */ +#define SNDRV_SFNT_WR_APPEND 0 /* append anyway */ +#define SNDRV_SFNT_WR_EXCLUSIVE 1 /* skip if already exists */ +#define SNDRV_SFNT_WR_REPLACE 2 /* replace if already exists */ +}; + + +/* + * sample wave information + */ + +/* wave table sample header: 32 bytes */ +struct soundfont_sample_info { + unsigned short sf_id; /* file id (should be zero) */ + unsigned short sample; /* sample id */ + int start, end; /* start & end offset */ + int loopstart, loopend; /* loop start & end offset */ + int size; /* size (0 = ROM) */ + short dummy; /* not used */ + unsigned short mode_flags; /* mode flags */ +#define SNDRV_SFNT_SAMPLE_8BITS 1 /* wave data is 8bits */ +#define SNDRV_SFNT_SAMPLE_UNSIGNED 2 /* wave data is unsigned */ +#define SNDRV_SFNT_SAMPLE_NO_BLANK 4 /* no blank loop is attached */ +#define SNDRV_SFNT_SAMPLE_SINGLESHOT 8 /* single-shot w/o loop */ +#define SNDRV_SFNT_SAMPLE_BIDIR_LOOP 16 /* bidirectional looping */ +#define SNDRV_SFNT_SAMPLE_STEREO_LEFT 32 /* stereo left sound */ +#define SNDRV_SFNT_SAMPLE_STEREO_RIGHT 64 /* stereo right sound */ +#define SNDRV_SFNT_SAMPLE_REVERSE_LOOP 128 /* reverse looping */ + unsigned int truesize; /* used memory size (set by driver) */ +}; + + +/* + * voice preset mapping (aliasing) + */ + +struct soundfont_voice_map { + int map_bank, map_instr, map_key; /* key = -1 means all keys */ + int src_bank, src_instr, src_key; +}; + + +/* + * ioctls for hwdep + */ + +#define SNDRV_EMUX_HWDEP_NAME "Emux WaveTable" + +#define SNDRV_EMUX_VERSION ((1 << 16) | (0 << 8) | 0) /* 1.0.0 */ + +struct snd_emux_misc_mode { + int port; /* -1 = all */ + int mode; + int value; + int value2; /* reserved */ +}; + +#define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int) +#define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info) +#define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82) +#define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83) +#define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int) +#define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode) + +#endif /* __SOUND_SFNT_INFO_H */ diff --git a/kernel_headers/sound/tlv.h b/kernel_headers/sound/tlv.h new file mode 100644 index 0000000..e11e179 --- /dev/null +++ b/kernel_headers/sound/tlv.h @@ -0,0 +1,101 @@ +#ifndef __SOUND_TLV_H +#define __SOUND_TLV_H + +/* + * Advanced Linux Sound Architecture - ALSA - Driver + * Copyright (c) 2006 by Jaroslav Kysela + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* + * TLV structure is right behind the struct snd_ctl_tlv: + * unsigned int type - see SNDRV_CTL_TLVT_* + * unsigned int length + * .... data aligned to sizeof(unsigned int), use + * block_length = (length + (sizeof(unsigned int) - 1)) & + * ~(sizeof(unsigned int) - 1)) .... + */ + +#define SNDRV_CTL_TLVT_CONTAINER 0 /* one level down - group of TLVs */ +#define SNDRV_CTL_TLVT_DB_SCALE 1 /* dB scale */ +#define SNDRV_CTL_TLVT_DB_LINEAR 2 /* linear volume */ +#define SNDRV_CTL_TLVT_DB_RANGE 3 /* dB range container */ +#define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */ +#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */ + +#define TLV_ITEM(type, ...) \ + (type), TLV_LENGTH(__VA_ARGS__), __VA_ARGS__ +#define TLV_LENGTH(...) \ + ((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ })) + +#define TLV_CONTAINER_ITEM(...) \ + TLV_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__) +#define DECLARE_TLV_CONTAINER(name, ...) \ + unsigned int name[] = { TLV_CONTAINER_ITEM(__VA_ARGS__) } + +#define TLV_DB_SCALE_MASK 0xffff +#define TLV_DB_SCALE_MUTE 0x10000 +#define TLV_DB_SCALE_ITEM(min, step, mute) \ + TLV_ITEM(SNDRV_CTL_TLVT_DB_SCALE, \ + (min), \ + ((step) & TLV_DB_SCALE_MASK) | \ + ((mute) ? TLV_DB_SCALE_MUTE : 0)) +#define DECLARE_TLV_DB_SCALE(name, min, step, mute) \ + unsigned int name[] = { TLV_DB_SCALE_ITEM(min, step, mute) } + +/* dB scale specified with min/max values instead of step */ +#define TLV_DB_MINMAX_ITEM(min_dB, max_dB) \ + TLV_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB)) +#define TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \ + TLV_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB)) +#define DECLARE_TLV_DB_MINMAX(name, min_dB, max_dB) \ + unsigned int name[] = { TLV_DB_MINMAX_ITEM(min_dB, max_dB) } +#define DECLARE_TLV_DB_MINMAX_MUTE(name, min_dB, max_dB) \ + unsigned int name[] = { TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) } + +/* linear volume between min_dB and max_dB (.01dB unit) */ +#define TLV_DB_LINEAR_ITEM(min_dB, max_dB) \ + TLV_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB)) +#define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB) \ + unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) } + +/* dB range container: + * Items in dB range container must be ordered by their values and by their + * dB values. This implies that larger values must correspond with larger + * dB values (which is also required for all other mixer controls). + */ +/* Each item is: */ +#define TLV_DB_RANGE_ITEM(...) \ + TLV_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__) +#define DECLARE_TLV_DB_RANGE(name, ...) \ + unsigned int name[] = { TLV_DB_RANGE_ITEM(__VA_ARGS__) } +/* The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR */ +#define TLV_DB_RANGE_HEAD(num) \ + SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int) + +#define TLV_DB_GAIN_MUTE -9999999 + +/* + * channel-mapping TLV items + * TLV length must match with num_channels + */ +#define SNDRV_CTL_TLVT_CHMAP_FIXED 0x101 /* fixed channel position */ +#define SNDRV_CTL_TLVT_CHMAP_VAR 0x102 /* channels freely swappable */ +#define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103 /* pair-wise swappable */ + +#endif /* __SOUND_TLV_H */ diff --git a/kernel_headers/sound/voice_params.h b/kernel_headers/sound/voice_params.h new file mode 100644 index 0000000..43e3b9d --- /dev/null +++ b/kernel_headers/sound/voice_params.h @@ -0,0 +1,14 @@ +#ifndef __VOICE_PARAMS_H__ +#define __VOICE_PARAMS_H__ + +#include +#include + +enum voice_lch_mode { + VOICE_LCH_START = 1, + VOICE_LCH_STOP +}; + +#define SNDRV_VOICE_IOCTL_LCH _IOW('U', 0x00, enum voice_lch_mode) + +#endif diff --git a/kernel_headers/sound/voice_svc.h b/kernel_headers/sound/voice_svc.h new file mode 100644 index 0000000..035053f --- /dev/null +++ b/kernel_headers/sound/voice_svc.h @@ -0,0 +1,47 @@ +#ifndef __VOICE_SVC_H__ +#define __VOICE_SVC_H__ + +#include +#include + +#define VOICE_SVC_DRIVER_NAME "voice_svc" + +#define VOICE_SVC_MVM_STR "MVM" +#define VOICE_SVC_CVS_STR "CVS" +#define MAX_APR_SERVICE_NAME_LEN 64 + +#define MSG_REGISTER 0x1 +#define MSG_REQUEST 0x2 +#define MSG_RESPONSE 0x3 + +struct voice_svc_write_msg { + __u32 msg_type; + __u8 payload[0]; +}; + +struct voice_svc_register { + char svc_name[MAX_APR_SERVICE_NAME_LEN]; + __u32 src_port; + __u8 reg_flag; +}; + +struct voice_svc_cmd_response { + __u32 src_port; + __u32 dest_port; + __u32 token; + __u32 opcode; + __u32 payload_size; + __u8 payload[0]; +}; + +struct voice_svc_cmd_request { + char svc_name[MAX_APR_SERVICE_NAME_LEN]; + __u32 src_port; + __u32 dest_port; + __u32 token; + __u32 opcode; + __u32 payload_size; + __u8 payload[0]; +}; + +#endif diff --git a/kernel_headers/uapi/..install.cmd b/kernel_headers/uapi/..install.cmd new file mode 100644 index 0000000..3feae0a --- /dev/null +++ b/kernel_headers/uapi/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/uapi/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/uapi /android/kernels/moto/surnia/kernel-msm/include/uapi ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/uapi /android/kernels/moto/surnia/kernel-msm/include ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/uapi /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/uapi/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/uapi/.install diff --git a/kernel_headers/uapi/.install b/kernel_headers/uapi/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/video/..install.cmd b/kernel_headers/video/..install.cmd new file mode 100644 index 0000000..5878d9f --- /dev/null +++ b/kernel_headers/video/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/video/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/video /android/kernels/moto/surnia/kernel-msm/include/uapi/video edid.h msm_hdmi_hdcp_mgr.h msm_hdmi_modes.h sisfb.h uvesafb.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/video /android/kernels/moto/surnia/kernel-msm/include/video ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/video /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/video ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/video/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/video/.install diff --git a/kernel_headers/video/.install b/kernel_headers/video/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/video/edid.h b/kernel_headers/video/edid.h new file mode 100644 index 0000000..6aeb974 --- /dev/null +++ b/kernel_headers/video/edid.h @@ -0,0 +1,9 @@ +#ifndef __linux_video_edid_h__ +#define __linux_video_edid_h__ + +struct edid_info { + unsigned char dummy[128]; +}; + + +#endif /* __linux_video_edid_h__ */ diff --git a/kernel_headers/video/msm_hdmi_hdcp_mgr.h b/kernel_headers/video/msm_hdmi_hdcp_mgr.h new file mode 100644 index 0000000..159e20c --- /dev/null +++ b/kernel_headers/video/msm_hdmi_hdcp_mgr.h @@ -0,0 +1,54 @@ +#ifndef __HDMI_HDCP_MGR_H +#define __MSM_HDMI_HDCP_MGR_H + +enum DS_TYPE { /* type of downstream device */ + DS_UNKNOWN, + DS_RECEIVER, + DS_REPEATER, +}; + +enum { + MSG_ID_IDX, + RET_CODE_IDX, + HEADER_LEN, +}; + +enum RET_CODE { + HDCP_NOT_AUTHED, + HDCP_AUTHED, + HDCP_DISABLE, +}; + +enum MSG_ID { /* List of functions expected to be called after it */ + DOWN_CHECK_TOPOLOGY, + UP_REQUEST_TOPOLOGY, + UP_SEND_TOPOLOGY, + DOWN_REQUEST_TOPOLOGY, + MSG_NUM, +}; + +enum SOURCE_ID { + HDCP_V1_TX, + HDCP_V1_RX, + HDCP_V2_RX, + HDCP_V2_TX, + SRC_NUM, +}; + +/* + * how to parse sysfs params buffer + * from hdcp_tx driver. + */ + +struct HDCP_V2V1_MSG_TOPOLOGY { + /* indicates downstream's type */ + uint32_t ds_type; + uint8_t bksv[5]; + uint8_t dev_count; + uint8_t depth; + uint8_t ksv_list[5 * 127]; + uint32_t max_cascade_exceeded; + uint32_t max_dev_exceeded; +}; + +#endif /* __MSM_HDMI_HDCP_MGR_H */ diff --git a/kernel_headers/video/msm_hdmi_modes.h b/kernel_headers/video/msm_hdmi_modes.h new file mode 100644 index 0000000..8400f0a --- /dev/null +++ b/kernel_headers/video/msm_hdmi_modes.h @@ -0,0 +1,463 @@ +#ifndef _MSM_HDMI_MODES_H__ +#define _MSM_HDMI_MODES_H__ +#include + +enum aspect_ratio { + HDMI_RES_AR_INVALID, + HDMI_RES_AR_4_3, + HDMI_RES_AR_5_4, + HDMI_RES_AR_16_9, + HDMI_RES_AR_16_10, + HDMI_RES_AR_MAX, +}; + +struct msm_hdmi_mode_timing_info { + uint32_t video_format; + uint32_t active_h; + uint32_t front_porch_h; + uint32_t pulse_width_h; + uint32_t back_porch_h; + uint32_t active_low_h; + uint32_t active_v; + uint32_t front_porch_v; + uint32_t pulse_width_v; + uint32_t back_porch_v; + uint32_t active_low_v; + /* Must divide by 1000 to get the actual frequency in MHZ */ + uint32_t pixel_freq; + /* Must divide by 1000 to get the actual frequency in HZ */ + uint32_t refresh_rate; + uint32_t interlaced; + uint32_t supported; + enum aspect_ratio ar; +}; + +#define MSM_HDMI_MODES_CEA (1 << 0) +#define MSM_HDMI_MODES_XTND (1 << 1) +#define MSM_HDMI_MODES_DVI (1 << 2) +#define MSM_HDMI_MODES_ALL (MSM_HDMI_MODES_CEA |\ + MSM_HDMI_MODES_XTND |\ + MSM_HDMI_MODES_DVI) + +/* all video formats defined by CEA 861D */ +#define HDMI_VFRMT_UNKNOWN 0 +#define HDMI_VFRMT_640x480p60_4_3 1 +#define HDMI_VFRMT_720x480p60_4_3 2 +#define HDMI_VFRMT_720x480p60_16_9 3 +#define HDMI_VFRMT_1280x720p60_16_9 4 +#define HDMI_VFRMT_1920x1080i60_16_9 5 +#define HDMI_VFRMT_720x480i60_4_3 6 +#define HDMI_VFRMT_1440x480i60_4_3 HDMI_VFRMT_720x480i60_4_3 +#define HDMI_VFRMT_720x480i60_16_9 7 +#define HDMI_VFRMT_1440x480i60_16_9 HDMI_VFRMT_720x480i60_16_9 +#define HDMI_VFRMT_720x240p60_4_3 8 +#define HDMI_VFRMT_1440x240p60_4_3 HDMI_VFRMT_720x240p60_4_3 +#define HDMI_VFRMT_720x240p60_16_9 9 +#define HDMI_VFRMT_1440x240p60_16_9 HDMI_VFRMT_720x240p60_16_9 +#define HDMI_VFRMT_2880x480i60_4_3 10 +#define HDMI_VFRMT_2880x480i60_16_9 11 +#define HDMI_VFRMT_2880x240p60_4_3 12 +#define HDMI_VFRMT_2880x240p60_16_9 13 +#define HDMI_VFRMT_1440x480p60_4_3 14 +#define HDMI_VFRMT_1440x480p60_16_9 15 +#define HDMI_VFRMT_1920x1080p60_16_9 16 +#define HDMI_VFRMT_720x576p50_4_3 17 +#define HDMI_VFRMT_720x576p50_16_9 18 +#define HDMI_VFRMT_1280x720p50_16_9 19 +#define HDMI_VFRMT_1920x1080i50_16_9 20 +#define HDMI_VFRMT_720x576i50_4_3 21 +#define HDMI_VFRMT_1440x576i50_4_3 HDMI_VFRMT_720x576i50_4_3 +#define HDMI_VFRMT_720x576i50_16_9 22 +#define HDMI_VFRMT_1440x576i50_16_9 HDMI_VFRMT_720x576i50_16_9 +#define HDMI_VFRMT_720x288p50_4_3 23 +#define HDMI_VFRMT_1440x288p50_4_3 HDMI_VFRMT_720x288p50_4_3 +#define HDMI_VFRMT_720x288p50_16_9 24 +#define HDMI_VFRMT_1440x288p50_16_9 HDMI_VFRMT_720x288p50_16_9 +#define HDMI_VFRMT_2880x576i50_4_3 25 +#define HDMI_VFRMT_2880x576i50_16_9 26 +#define HDMI_VFRMT_2880x288p50_4_3 27 +#define HDMI_VFRMT_2880x288p50_16_9 28 +#define HDMI_VFRMT_1440x576p50_4_3 29 +#define HDMI_VFRMT_1440x576p50_16_9 30 +#define HDMI_VFRMT_1920x1080p50_16_9 31 +#define HDMI_VFRMT_1920x1080p24_16_9 32 +#define HDMI_VFRMT_1920x1080p25_16_9 33 +#define HDMI_VFRMT_1920x1080p30_16_9 34 +#define HDMI_VFRMT_2880x480p60_4_3 35 +#define HDMI_VFRMT_2880x480p60_16_9 36 +#define HDMI_VFRMT_2880x576p50_4_3 37 +#define HDMI_VFRMT_2880x576p50_16_9 38 +#define HDMI_VFRMT_1920x1250i50_16_9 39 +#define HDMI_VFRMT_1920x1080i100_16_9 40 +#define HDMI_VFRMT_1280x720p100_16_9 41 +#define HDMI_VFRMT_720x576p100_4_3 42 +#define HDMI_VFRMT_720x576p100_16_9 43 +#define HDMI_VFRMT_720x576i100_4_3 44 +#define HDMI_VFRMT_1440x576i100_4_3 HDMI_VFRMT_720x576i100_4_3 +#define HDMI_VFRMT_720x576i100_16_9 45 +#define HDMI_VFRMT_1440x576i100_16_9 HDMI_VFRMT_720x576i100_16_9 +#define HDMI_VFRMT_1920x1080i120_16_9 46 +#define HDMI_VFRMT_1280x720p120_16_9 47 +#define HDMI_VFRMT_720x480p120_4_3 48 +#define HDMI_VFRMT_720x480p120_16_9 49 +#define HDMI_VFRMT_720x480i120_4_3 50 +#define HDMI_VFRMT_1440x480i120_4_3 HDMI_VFRMT_720x480i120_4_3 +#define HDMI_VFRMT_720x480i120_16_9 51 +#define HDMI_VFRMT_1440x480i120_16_9 HDMI_VFRMT_720x480i120_16_9 +#define HDMI_VFRMT_720x576p200_4_3 52 +#define HDMI_VFRMT_720x576p200_16_9 53 +#define HDMI_VFRMT_720x576i200_4_3 54 +#define HDMI_VFRMT_1440x576i200_4_3 HDMI_VFRMT_720x576i200_4_3 +#define HDMI_VFRMT_720x576i200_16_9 55 +#define HDMI_VFRMT_1440x576i200_16_9 HDMI_VFRMT_720x576i200_16_9 +#define HDMI_VFRMT_720x480p240_4_3 56 +#define HDMI_VFRMT_720x480p240_16_9 57 +#define HDMI_VFRMT_720x480i240_4_3 58 +#define HDMI_VFRMT_1440x480i240_4_3 HDMI_VFRMT_720x480i240_4_3 +#define HDMI_VFRMT_720x480i240_16_9 59 +#define HDMI_VFRMT_1440x480i240_16_9 HDMI_VFRMT_720x480i240_16_9 +#define HDMI_VFRMT_1280x720p24_16_9 60 +#define HDMI_VFRMT_1280x720p25_16_9 61 +#define HDMI_VFRMT_1280x720p30_16_9 62 +#define HDMI_VFRMT_1920x1080p120_16_9 63 +#define HDMI_VFRMT_1920x1080p100_16_9 64 +/* Video Identification Codes from 65-127 are reserved for the future */ +#define HDMI_VFRMT_END 127 + +#define EVFRMT_OFF(x) (HDMI_VFRMT_END + x) + +/* extended video formats */ +#define HDMI_VFRMT_3840x2160p30_16_9 EVFRMT_OFF(1) +#define HDMI_VFRMT_3840x2160p25_16_9 EVFRMT_OFF(2) +#define HDMI_VFRMT_3840x2160p24_16_9 EVFRMT_OFF(3) +#define HDMI_VFRMT_4096x2160p24_16_9 EVFRMT_OFF(4) +#define HDMI_EVFRMT_END HDMI_VFRMT_4096x2160p24_16_9 + +#define WQXGA_OFF(x) (HDMI_EVFRMT_END + x) + +/* WQXGA */ +#define HDMI_VFRMT_2560x1600p60_16_9 WQXGA_OFF(1) +#define HDMI_WQXGAFRMT_END HDMI_VFRMT_2560x1600p60_16_9 + +#define WXGA_OFF(x) (HDMI_WQXGAFRMT_END + x) + +/* WXGA */ +#define HDMI_VFRMT_1280x800p60_16_10 WXGA_OFF(1) +#define HDMI_VFRMT_1366x768p60_16_10 WXGA_OFF(2) +#define HDMI_WXGAFRMT_END HDMI_VFRMT_1366x768p60_16_10 + +#define ETI_OFF(x) (HDMI_WXGAFRMT_END + x) + +/* ESTABLISHED TIMINGS I */ +#define HDMI_VFRMT_800x600p60_4_3 ETI_OFF(1) +#define ETI_VFRMT_END HDMI_VFRMT_800x600p60_4_3 + +#define ETII_OFF(x) (ETI_VFRMT_END + x) + +/* ESTABLISHED TIMINGS II */ +#define HDMI_VFRMT_1024x768p60_4_3 ETII_OFF(1) +#define HDMI_VFRMT_1280x1024p60_5_4 ETII_OFF(2) +#define ETII_VFRMT_END HDMI_VFRMT_1280x1024p60_5_4 + +#define ETIII_OFF(x) (ETII_VFRMT_END + x) + +/* ESTABLISHED TIMINGS III */ +#define HDMI_VFRMT_848x480p60_16_9 ETIII_OFF(1) +#define HDMI_VFRMT_1280x960p60_4_3 ETIII_OFF(2) +#define HDMI_VFRMT_1360x768p60_16_9 ETIII_OFF(3) +#define HDMI_VFRMT_1440x900p60_16_10 ETIII_OFF(4) +#define HDMI_VFRMT_1400x1050p60_4_3 ETIII_OFF(5) +#define HDMI_VFRMT_1680x1050p60_16_10 ETIII_OFF(6) +#define HDMI_VFRMT_1600x1200p60_4_3 ETIII_OFF(7) +#define HDMI_VFRMT_1920x1200p60_16_10 ETIII_OFF(8) +#define ETIII_VFRMT_END HDMI_VFRMT_1920x1200p60_16_10 + +#define HDMI_VFRMT_MAX (ETIII_VFRMT_END + 1) +#define HDMI_VFRMT_FORCE_32BIT 0x7FFFFFFF + +/* Timing information for supported modes */ +#define VFRMT_NOT_SUPPORTED(VFRMT) \ + {VFRMT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, \ + HDMI_RES_AR_INVALID} + +#define HDMI_VFRMT_640x480p60_4_3_TIMING \ + {HDMI_VFRMT_640x480p60_4_3, 640, 16, 96, 48, true, \ + 480, 10, 2, 33, true, 25200, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_720x480p60_4_3_TIMING \ + {HDMI_VFRMT_720x480p60_4_3, 720, 16, 62, 60, true, \ + 480, 9, 6, 30, true, 27027, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_720x480p60_16_9_TIMING \ + {HDMI_VFRMT_720x480p60_16_9, 720, 16, 62, 60, true, \ + 480, 9, 6, 30, true, 27027, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1280x720p60_16_9_TIMING \ + {HDMI_VFRMT_1280x720p60_16_9, 1280, 110, 40, 220, false, \ + 720, 5, 5, 20, false, 74250, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1920x1080i60_16_9_TIMING \ + {HDMI_VFRMT_1920x1080i60_16_9, 1920, 88, 44, 148, false, \ + 540, 2, 5, 5, false, 74250, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1440x480i60_4_3_TIMING \ + {HDMI_VFRMT_1440x480i60_4_3, 1440, 38, 124, 114, true, \ + 240, 4, 3, 15, true, 27000, 60000, true, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_1440x480i60_16_9_TIMING \ + {HDMI_VFRMT_1440x480i60_16_9, 1440, 38, 124, 114, true, \ + 240, 4, 3, 15, true, 27000, 60000, true, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1920x1080p60_16_9_TIMING \ + {HDMI_VFRMT_1920x1080p60_16_9, 1920, 88, 44, 148, false, \ + 1080, 4, 5, 36, false, 148500, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_720x576p50_4_3_TIMING \ + {HDMI_VFRMT_720x576p50_4_3, 720, 12, 64, 68, true, \ + 576, 5, 5, 39, true, 27000, 50000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_720x576p50_16_9_TIMING \ + {HDMI_VFRMT_720x576p50_16_9, 720, 12, 64, 68, true, \ + 576, 5, 5, 39, true, 27000, 50000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1280x720p50_16_9_TIMING \ + {HDMI_VFRMT_1280x720p50_16_9, 1280, 440, 40, 220, false, \ + 720, 5, 5, 20, false, 74250, 50000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1440x576i50_4_3_TIMING \ + {HDMI_VFRMT_1440x576i50_4_3, 1440, 24, 126, 138, true, \ + 288, 2, 3, 19, true, 27000, 50000, true, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_1440x576i50_16_9_TIMING \ + {HDMI_VFRMT_1440x576i50_16_9, 1440, 24, 126, 138, true, \ + 288, 2, 3, 19, true, 27000, 50000, true, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1920x1080p50_16_9_TIMING \ + {HDMI_VFRMT_1920x1080p50_16_9, 1920, 528, 44, 148, false, \ + 1080, 4, 5, 36, false, 148500, 50000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1920x1080p24_16_9_TIMING \ + {HDMI_VFRMT_1920x1080p24_16_9, 1920, 638, 44, 148, false, \ + 1080, 4, 5, 36, false, 74250, 24000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1920x1080p25_16_9_TIMING \ + {HDMI_VFRMT_1920x1080p25_16_9, 1920, 528, 44, 148, false, \ + 1080, 4, 5, 36, false, 74250, 25000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1920x1080p30_16_9_TIMING \ + {HDMI_VFRMT_1920x1080p30_16_9, 1920, 88, 44, 148, false, \ + 1080, 4, 5, 36, false, 74250, 30000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1024x768p60_4_3_TIMING \ + {HDMI_VFRMT_1024x768p60_4_3, 1024, 24, 136, 160, false, \ + 768, 2, 6, 29, false, 65000, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_1280x1024p60_5_4_TIMING \ + {HDMI_VFRMT_1280x1024p60_5_4, 1280, 48, 112, 248, false, \ + 1024, 1, 3, 38, false, 108000, 60000, false, HDMI_RES_AR_5_4} +#define HDMI_VFRMT_2560x1600p60_16_9_TIMING \ + {HDMI_VFRMT_2560x1600p60_16_9, 2560, 48, 32, 80, false, \ + 1600, 3, 6, 37, false, 268500, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_3840x2160p30_16_9_TIMING \ + {HDMI_VFRMT_3840x2160p30_16_9, 3840, 176, 88, 296, false, \ + 2160, 8, 10, 72, false, 297000, 30000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_3840x2160p25_16_9_TIMING \ + {HDMI_VFRMT_3840x2160p25_16_9, 3840, 1056, 88, 296, false, \ + 2160, 8, 10, 72, false, 297000, 25000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_3840x2160p24_16_9_TIMING \ + {HDMI_VFRMT_3840x2160p24_16_9, 3840, 1276, 88, 296, false, \ + 2160, 8, 10, 72, false, 297000, 24000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_4096x2160p24_16_9_TIMING \ + {HDMI_VFRMT_4096x2160p24_16_9, 4096, 1020, 88, 296, false, \ + 2160, 8, 10, 72, false, 297000, 24000, false, HDMI_RES_AR_16_9} + +#define HDMI_VFRMT_800x600p60_4_3_TIMING \ + {HDMI_VFRMT_800x600p60_4_3, 800, 40, 128, 88, false, \ + 600, 1, 4, 23, false, 40000, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_848x480p60_16_9_TIMING \ + {HDMI_VFRMT_848x480p60_16_9, 848, 16, 112, 112, false, \ + 480, 6, 8, 23, false, 33750, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1280x960p60_4_3_TIMING\ + {HDMI_VFRMT_1280x960p60_4_3, 1280, 96, 112, 312, false, \ + 960, 1, 3, 36, false, 108000, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_1360x768p60_16_9_TIMING\ + {HDMI_VFRMT_1360x768p60_16_9, 1360, 64, 112, 256, false, \ + 768, 3, 6, 18, false, 85500, 60000, false, HDMI_RES_AR_16_9} +#define HDMI_VFRMT_1440x900p60_16_10_TIMING\ + {HDMI_VFRMT_1440x900p60_16_10, 1440, 48, 32, 80, false, \ + 900, 3, 6, 17, true, 88750, 60000, false, true, HDMI_RES_AR_16_10} +#define HDMI_VFRMT_1400x1050p60_4_3_TIMING\ + {HDMI_VFRMT_1400x1050p60_4_3, 1400, 48, 32, 80, false, \ + 1050, 3, 4, 23, true, 101000, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_1680x1050p60_16_10_TIMING\ + {HDMI_VFRMT_1680x1050p60_16_10, 1680, 48, 32, 80, false, \ + 1050, 3, 6, 21, true, 119000, 60000, false, true, HDMI_RES_AR_16_10} +#define HDMI_VFRMT_1600x1200p60_4_3_TIMING\ + {HDMI_VFRMT_1600x1200p60_4_3, 1600, 64, 192, 304, false, \ + 1200, 1, 3, 46, false, 162000, 60000, false, true, HDMI_RES_AR_4_3} +#define HDMI_VFRMT_1920x1200p60_16_10_TIMING\ + {HDMI_VFRMT_1920x1200p60_16_10, 1920, 48, 32, 80, false,\ + 1200, 3, 6, 26, true, 154000, 60000, false, true, HDMI_RES_AR_16_10} +#define HDMI_VFRMT_1366x768p60_16_10_TIMING\ + {HDMI_VFRMT_1366x768p60_16_10, 1366, 70, 143, 213, false,\ + 768, 3, 3, 24, false, 85500, 60000, false, true, HDMI_RES_AR_16_10} +#define HDMI_VFRMT_1280x800p60_16_10_TIMING\ + {HDMI_VFRMT_1280x800p60_16_10, 1280, 72, 128, 200, true,\ + 800, 3, 6, 22, false, 83500, 60000, false, true, HDMI_RES_AR_16_10} + +#define MSM_HDMI_MODES_SET_TIMING(LUT, MODE) do { \ + struct msm_hdmi_mode_timing_info mode = MODE##_TIMING; \ + LUT[MODE] = mode;\ + } while (0) + +#define MSM_HDMI_MODES_INIT_TIMINGS(__lut) \ +do { \ + unsigned int i; \ + for (i = 0; i < HDMI_VFRMT_MAX; i++) { \ + struct msm_hdmi_mode_timing_info mode = \ + VFRMT_NOT_SUPPORTED(i); \ + (__lut)[i] = mode; \ + } \ +} while (0) + +#define MSM_HDMI_MODES_SET_SUPP_TIMINGS(__lut, __type) \ +do { \ + if (__type & MSM_HDMI_MODES_CEA) { \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_640x480p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_720x480p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_720x480p60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1280x720p60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1080i60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1440x480i60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1440x480i60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1080p60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_720x576p50_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_720x576p50_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1280x720p50_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1440x576i50_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1440x576i50_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1080p50_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1080p24_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1080p25_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1080p30_16_9); \ + } \ + if (__type & MSM_HDMI_MODES_XTND) { \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_3840x2160p30_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_3840x2160p25_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_3840x2160p24_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_4096x2160p24_16_9); \ + } \ + if (__type & MSM_HDMI_MODES_DVI) { \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1024x768p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1280x1024p60_5_4); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_2560x1600p60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_800x600p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_848x480p60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1280x960p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1360x768p60_16_9); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1440x900p60_16_10); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1400x1050p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1680x1050p60_16_10); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1600x1200p60_4_3); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1920x1200p60_16_10); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1366x768p60_16_10); \ + MSM_HDMI_MODES_SET_TIMING(__lut, \ + HDMI_VFRMT_1280x800p60_16_10); \ + } \ +} while (0) + +static __inline__ const char *msm_hdmi_mode_2string(uint32_t mode) +{ + switch (mode) { + case HDMI_VFRMT_UNKNOWN: return "Unknown"; + case HDMI_VFRMT_640x480p60_4_3: return "640x480 p60 4/3"; + case HDMI_VFRMT_720x480p60_4_3: return "720x480 p60 4/3"; + case HDMI_VFRMT_720x480p60_16_9: return "720x480 p60 16/9"; + case HDMI_VFRMT_1280x720p60_16_9: return "1280x 720 p60 16/9"; + case HDMI_VFRMT_1920x1080i60_16_9: return "1920x1080 i60 16/9"; + case HDMI_VFRMT_1440x480i60_4_3: return "1440x480 i60 4/3"; + case HDMI_VFRMT_1440x480i60_16_9: return "1440x480 i60 16/9"; + case HDMI_VFRMT_1440x240p60_4_3: return "1440x240 p60 4/3"; + case HDMI_VFRMT_1440x240p60_16_9: return "1440x240 p60 16/9"; + case HDMI_VFRMT_2880x480i60_4_3: return "2880x480 i60 4/3"; + case HDMI_VFRMT_2880x480i60_16_9: return "2880x480 i60 16/9"; + case HDMI_VFRMT_2880x240p60_4_3: return "2880x240 p60 4/3"; + case HDMI_VFRMT_2880x240p60_16_9: return "2880x240 p60 16/9"; + case HDMI_VFRMT_1440x480p60_4_3: return "1440x480 p60 4/3"; + case HDMI_VFRMT_1440x480p60_16_9: return "1440x480 p60 16/9"; + case HDMI_VFRMT_1920x1080p60_16_9: return "1920x1080 p60 16/9"; + case HDMI_VFRMT_720x576p50_4_3: return "720x576 p50 4/3"; + case HDMI_VFRMT_720x576p50_16_9: return "720x576 p50 16/9"; + case HDMI_VFRMT_1280x720p50_16_9: return "1280x720 p50 16/9"; + case HDMI_VFRMT_1920x1080i50_16_9: return "1920x1080 i50 16/9"; + case HDMI_VFRMT_1440x576i50_4_3: return "1440x576 i50 4/3"; + case HDMI_VFRMT_1440x576i50_16_9: return "1440x576 i50 16/9"; + case HDMI_VFRMT_1440x288p50_4_3: return "1440x288 p50 4/3"; + case HDMI_VFRMT_1440x288p50_16_9: return "1440x288 p50 16/9"; + case HDMI_VFRMT_2880x576i50_4_3: return "2880x576 i50 4/3"; + case HDMI_VFRMT_2880x576i50_16_9: return "2880x576 i50 16/9"; + case HDMI_VFRMT_2880x288p50_4_3: return "2880x288 p50 4/3"; + case HDMI_VFRMT_2880x288p50_16_9: return "2880x288 p50 16/9"; + case HDMI_VFRMT_1440x576p50_4_3: return "1440x576 p50 4/3"; + case HDMI_VFRMT_1440x576p50_16_9: return "1440x576 p50 16/9"; + case HDMI_VFRMT_1920x1080p50_16_9: return "1920x1080 p50 16/9"; + case HDMI_VFRMT_1920x1080p24_16_9: return "1920x1080 p24 16/9"; + case HDMI_VFRMT_1920x1080p25_16_9: return "1920x1080 p25 16/9"; + case HDMI_VFRMT_1920x1080p30_16_9: return "1920x1080 p30 16/9"; + case HDMI_VFRMT_2880x480p60_4_3: return "2880x480 p60 4/3"; + case HDMI_VFRMT_2880x480p60_16_9: return "2880x480 p60 16/9"; + case HDMI_VFRMT_2880x576p50_4_3: return "2880x576 p50 4/3"; + case HDMI_VFRMT_2880x576p50_16_9: return "2880x576 p50 16/9"; + case HDMI_VFRMT_1920x1250i50_16_9: return "1920x1250 i50 16/9"; + case HDMI_VFRMT_1920x1080i100_16_9: return "1920x1080 i100 16/9"; + case HDMI_VFRMT_1280x720p100_16_9: return "1280x720 p100 16/9"; + case HDMI_VFRMT_720x576p100_4_3: return "720x576 p100 4/3"; + case HDMI_VFRMT_720x576p100_16_9: return "720x576 p100 16/9"; + case HDMI_VFRMT_1440x576i100_4_3: return "1440x576 i100 4/3"; + case HDMI_VFRMT_1440x576i100_16_9: return "1440x576 i100 16/9"; + case HDMI_VFRMT_1920x1080i120_16_9: return "1920x1080 i120 16/9"; + case HDMI_VFRMT_1280x720p120_16_9: return "1280x720 p120 16/9"; + case HDMI_VFRMT_720x480p120_4_3: return "720x480 p120 4/3"; + case HDMI_VFRMT_720x480p120_16_9: return "720x480 p120 16/9"; + case HDMI_VFRMT_1440x480i120_4_3: return "1440x480 i120 4/3"; + case HDMI_VFRMT_1440x480i120_16_9: return "1440x480 i120 16/9"; + case HDMI_VFRMT_720x576p200_4_3: return "720x576 p200 4/3"; + case HDMI_VFRMT_720x576p200_16_9: return "720x576 p200 16/9"; + case HDMI_VFRMT_1440x576i200_4_3: return "1440x576 i200 4/3"; + case HDMI_VFRMT_1440x576i200_16_9: return "1440x576 i200 16/9"; + case HDMI_VFRMT_720x480p240_4_3: return "720x480 p240 4/3"; + case HDMI_VFRMT_720x480p240_16_9: return "720x480 p240 16/9"; + case HDMI_VFRMT_1440x480i240_4_3: return "1440x480 i240 4/3"; + case HDMI_VFRMT_1440x480i240_16_9: return "1440x480 i240 16/9"; + case HDMI_VFRMT_1280x720p24_16_9: return "1280x720 p24 16/9"; + case HDMI_VFRMT_1280x720p25_16_9: return "1280x720 p25 16/9"; + case HDMI_VFRMT_1280x720p30_16_9: return "1280x720 p30 16/9"; + case HDMI_VFRMT_1920x1080p120_16_9: return "1920x1080 p120 16/9"; + case HDMI_VFRMT_1920x1080p100_16_9: return "1920x1080 p100 16/9"; + case HDMI_VFRMT_3840x2160p30_16_9: return "3840x2160 p30 16/9"; + case HDMI_VFRMT_3840x2160p25_16_9: return "3840x2160 p25 16/9"; + case HDMI_VFRMT_3840x2160p24_16_9: return "3840x2160 p24 16/9"; + case HDMI_VFRMT_4096x2160p24_16_9: return "4096x2160 p24 16/9"; + case HDMI_VFRMT_1024x768p60_4_3: return "1024x768 p60 4/3"; + case HDMI_VFRMT_1280x1024p60_5_4: return "1280x1024 p60 5/4"; + case HDMI_VFRMT_2560x1600p60_16_9: return "2560x1600 p60 16/9"; + default: return "???"; + } +} +#endif /* _MSM_HDMI_MODES_H__ */ diff --git a/kernel_headers/video/sisfb.h b/kernel_headers/video/sisfb.h new file mode 100644 index 0000000..e9b8e2c --- /dev/null +++ b/kernel_headers/video/sisfb.h @@ -0,0 +1,209 @@ +/* + * sisfb.h - definitions for the SiS framebuffer driver + * + * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the named License, + * or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + */ + +#ifndef _LINUX_SISFB_H_ +#define _LINUX_SISFB_H_ + +#include +#include + +/**********************************************/ +/* PUBLIC */ +/**********************************************/ + +/* vbflags, public (others in sis.h) */ +#define CRT2_DEFAULT 0x00000001 +#define CRT2_LCD 0x00000002 +#define CRT2_TV 0x00000004 +#define CRT2_VGA 0x00000008 +#define TV_NTSC 0x00000010 +#define TV_PAL 0x00000020 +#define TV_HIVISION 0x00000040 +#define TV_YPBPR 0x00000080 +#define TV_AVIDEO 0x00000100 +#define TV_SVIDEO 0x00000200 +#define TV_SCART 0x00000400 +#define TV_PALM 0x00001000 +#define TV_PALN 0x00002000 +#define TV_NTSCJ 0x00001000 +#define TV_CHSCART 0x00008000 +#define TV_CHYPBPR525I 0x00010000 +#define CRT1_VGA 0x00000000 +#define CRT1_LCDA 0x00020000 +#define VGA2_CONNECTED 0x00040000 +#define VB_DISPTYPE_CRT1 0x00080000 /* CRT1 connected and used */ +#define VB_SINGLE_MODE 0x20000000 /* CRT1 or CRT2; determined by DISPTYPE_CRTx */ +#define VB_MIRROR_MODE 0x40000000 /* CRT1 + CRT2 identical (mirror mode) */ +#define VB_DUALVIEW_MODE 0x80000000 /* CRT1 + CRT2 independent (dual head mode) */ + +/* Aliases: */ +#define CRT2_ENABLE (CRT2_LCD | CRT2_TV | CRT2_VGA) +#define TV_STANDARD (TV_NTSC | TV_PAL | TV_PALM | TV_PALN | TV_NTSCJ) +#define TV_INTERFACE (TV_AVIDEO|TV_SVIDEO|TV_SCART|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHYPBPR525I) + +/* Only if TV_YPBPR is set: */ +#define TV_YPBPR525I TV_NTSC +#define TV_YPBPR525P TV_PAL +#define TV_YPBPR750P TV_PALM +#define TV_YPBPR1080I TV_PALN +#define TV_YPBPRALL (TV_YPBPR525I | TV_YPBPR525P | TV_YPBPR750P | TV_YPBPR1080I) + +#define VB_DISPTYPE_DISP2 CRT2_ENABLE +#define VB_DISPTYPE_CRT2 CRT2_ENABLE +#define VB_DISPTYPE_DISP1 VB_DISPTYPE_CRT1 +#define VB_DISPMODE_SINGLE VB_SINGLE_MODE +#define VB_DISPMODE_MIRROR VB_MIRROR_MODE +#define VB_DISPMODE_DUAL VB_DUALVIEW_MODE +#define VB_DISPLAY_MODE (SINGLE_MODE | MIRROR_MODE | DUALVIEW_MODE) + +/* Structure argument for SISFB_GET_INFO ioctl */ +struct sisfb_info { + __u32 sisfb_id; /* for identifying sisfb */ +#ifndef SISFB_ID +#define SISFB_ID 0x53495346 /* Identify myself with 'SISF' */ +#endif + __u32 chip_id; /* PCI-ID of detected chip */ + __u32 memory; /* total video memory in KB */ + __u32 heapstart; /* heap start offset in KB */ + __u8 fbvidmode; /* current sisfb mode */ + + __u8 sisfb_version; + __u8 sisfb_revision; + __u8 sisfb_patchlevel; + + __u8 sisfb_caps; /* sisfb capabilities */ + + __u32 sisfb_tqlen; /* turbo queue length (in KB) */ + + __u32 sisfb_pcibus; /* The card's PCI ID */ + __u32 sisfb_pcislot; + __u32 sisfb_pcifunc; + + __u8 sisfb_lcdpdc; /* PanelDelayCompensation */ + + __u8 sisfb_lcda; /* Detected status of LCDA for low res/text modes */ + + __u32 sisfb_vbflags; + __u32 sisfb_currentvbflags; + + __u32 sisfb_scalelcd; + __u32 sisfb_specialtiming; + + __u8 sisfb_haveemi; + __u8 sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33; + __u8 sisfb_haveemilcd; + + __u8 sisfb_lcdpdca; /* PanelDelayCompensation for LCD-via-CRT1 */ + + __u16 sisfb_tvxpos, sisfb_tvypos; /* Warning: Values + 32 ! */ + + __u32 sisfb_heapsize; /* heap size (in KB) */ + __u32 sisfb_videooffset; /* Offset of viewport in video memory (in bytes) */ + + __u32 sisfb_curfstn; /* currently running FSTN/DSTN mode */ + __u32 sisfb_curdstn; + + __u16 sisfb_pci_vendor; /* PCI vendor (SiS or XGI) */ + + __u32 sisfb_vbflags2; /* ivideo->vbflags2 */ + + __u8 sisfb_can_post; /* sisfb can POST this card */ + __u8 sisfb_card_posted; /* card is POSTED */ + __u8 sisfb_was_boot_device; /* This card was the boot video device (ie is primary) */ + + __u8 reserved[183]; /* for future use */ +}; + +#define SISFB_CMD_GETVBFLAGS 0x55AA0001 /* no arg; result[1] = vbflags */ +#define SISFB_CMD_SWITCHCRT1 0x55AA0010 /* arg[0]: 99 = query, 0 = off, 1 = on */ +/* more to come */ + +#define SISFB_CMD_ERR_OK 0x80000000 /* command succeeded */ +#define SISFB_CMD_ERR_LOCKED 0x80000001 /* sisfb is locked */ +#define SISFB_CMD_ERR_EARLY 0x80000002 /* request before sisfb took over gfx system */ +#define SISFB_CMD_ERR_NOVB 0x80000003 /* No video bridge */ +#define SISFB_CMD_ERR_NOCRT2 0x80000004 /* can't change CRT1 status, CRT2 disabled */ +/* more to come */ +#define SISFB_CMD_ERR_UNKNOWN 0x8000ffff /* Unknown command */ +#define SISFB_CMD_ERR_OTHER 0x80010000 /* Other error */ + +/* Argument for SISFB_CMD ioctl */ +struct sisfb_cmd { + __u32 sisfb_cmd; + __u32 sisfb_arg[16]; + __u32 sisfb_result[4]; +}; + +/* Additional IOCTLs for communication sisfb <> X driver */ +/* If changing this, vgatypes.h must also be changed (for X driver) */ + +/* ioctl for identifying and giving some info (esp. memory heap start) */ +#define SISFB_GET_INFO_SIZE _IOR(0xF3,0x00,__u32) +#define SISFB_GET_INFO _IOR(0xF3,0x01,struct sisfb_info) + +/* ioctrl to get current vertical retrace status */ +#define SISFB_GET_VBRSTATUS _IOR(0xF3,0x02,__u32) + +/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */ +#define SISFB_GET_AUTOMAXIMIZE _IOR(0xF3,0x03,__u32) +#define SISFB_SET_AUTOMAXIMIZE _IOW(0xF3,0x03,__u32) + +/* ioctls to relocate TV output (x=D[31:16], y=D[15:0], + 32)*/ +#define SISFB_GET_TVPOSOFFSET _IOR(0xF3,0x04,__u32) +#define SISFB_SET_TVPOSOFFSET _IOW(0xF3,0x04,__u32) + +/* ioctl for internal sisfb commands (sisfbctrl) */ +#define SISFB_COMMAND _IOWR(0xF3,0x05,struct sisfb_cmd) + +/* ioctl for locking sisfb (no register access during lock) */ +/* As of now, only used to avoid register access during + * the ioctls listed above. + */ +#define SISFB_SET_LOCK _IOW(0xF3,0x06,__u32) + +/* ioctls 0xF3 up to 0x3F reserved for sisfb */ + +/****************************************************************/ +/* The following are deprecated and should not be used anymore: */ +/****************************************************************/ +/* ioctl for identifying and giving some info (esp. memory heap start) */ +#define SISFB_GET_INFO_OLD _IOR('n',0xF8,__u32) +/* ioctrl to get current vertical retrace status */ +#define SISFB_GET_VBRSTATUS_OLD _IOR('n',0xF9,__u32) +/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */ +#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n',0xFA,__u32) +#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n',0xFA,__u32) +/****************************************************************/ +/* End of deprecated ioctl numbers */ +/****************************************************************/ + +/* For fb memory manager (FBIO_ALLOC, FBIO_FREE) */ +struct sis_memreq { + __u32 offset; + __u32 size; +}; + +/**********************************************/ +/* PRIVATE */ +/* (for IN-KERNEL usage only) */ +/**********************************************/ + + +#endif /* _LINUX_SISFB_H_ */ diff --git a/kernel_headers/video/uvesafb.h b/kernel_headers/video/uvesafb.h new file mode 100644 index 0000000..79e281b --- /dev/null +++ b/kernel_headers/video/uvesafb.h @@ -0,0 +1,60 @@ +#ifndef _UVESAFB_H +#define _UVESAFB_H + +#include + +struct v86_regs { + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 esi; + __u32 edi; + __u32 ebp; + __u32 eax; + __u32 eip; + __u32 eflags; + __u32 esp; + __u16 cs; + __u16 ss; + __u16 es; + __u16 ds; + __u16 fs; + __u16 gs; +}; + +/* Task flags */ +#define TF_VBEIB 0x01 +#define TF_BUF_ESDI 0x02 +#define TF_BUF_ESBX 0x04 +#define TF_BUF_RET 0x08 +#define TF_EXIT 0x10 + +struct uvesafb_task { + __u8 flags; + int buf_len; + struct v86_regs regs; +}; + +/* Constants for the capabilities field + * in vbe_ib */ +#define VBE_CAP_CAN_SWITCH_DAC 0x01 +#define VBE_CAP_VGACOMPAT 0x02 + +/* The VBE Info Block */ +struct vbe_ib { + char vbe_signature[4]; + __u16 vbe_version; + __u32 oem_string_ptr; + __u32 capabilities; + __u32 mode_list_ptr; + __u16 total_memory; + __u16 oem_software_rev; + __u32 oem_vendor_name_ptr; + __u32 oem_product_name_ptr; + __u32 oem_product_rev_ptr; + __u8 reserved[222]; + char oem_data[256]; + char misc_data[512]; +} __attribute__ ((packed)); + +#endif /* _UVESAFB_H */ diff --git a/kernel_headers/xen/..install.cmd b/kernel_headers/xen/..install.cmd new file mode 100644 index 0000000..6ee77f2 --- /dev/null +++ b/kernel_headers/xen/..install.cmd @@ -0,0 +1 @@ +cmd_/android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/xen/.install := /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/xen /android/kernels/moto/surnia/kernel-msm/include/uapi/xen evtchn.h privcmd.h; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/xen /android/kernels/moto/surnia/kernel-msm/include/xen ; /bin/bash /android/kernels/moto/surnia/kernel-msm/scripts/headers_install.sh /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/xen /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/include/generated/uapi/xen ; for F in ; do echo "\#include " > /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/xen/$$F; done; touch /android/slim/out/target/product/surnia/obj/KERNEL_OBJ/usr/include/xen/.install diff --git a/kernel_headers/xen/.install b/kernel_headers/xen/.install new file mode 100644 index 0000000..e69de29 diff --git a/kernel_headers/xen/evtchn.h b/kernel_headers/xen/evtchn.h new file mode 100644 index 0000000..14e833e --- /dev/null +++ b/kernel_headers/xen/evtchn.h @@ -0,0 +1,88 @@ +/****************************************************************************** + * evtchn.h + * + * Interface to /dev/xen/evtchn. + * + * Copyright (c) 2003-2005, K A Fraser + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation; or, when distributed + * separately from the Linux kernel or incorporated into other + * software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __LINUX_PUBLIC_EVTCHN_H__ +#define __LINUX_PUBLIC_EVTCHN_H__ + +/* + * Bind a fresh port to VIRQ @virq. + * Return allocated port. + */ +#define IOCTL_EVTCHN_BIND_VIRQ \ + _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq)) +struct ioctl_evtchn_bind_virq { + unsigned int virq; +}; + +/* + * Bind a fresh port to remote <@remote_domain, @remote_port>. + * Return allocated port. + */ +#define IOCTL_EVTCHN_BIND_INTERDOMAIN \ + _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain)) +struct ioctl_evtchn_bind_interdomain { + unsigned int remote_domain, remote_port; +}; + +/* + * Allocate a fresh port for binding to @remote_domain. + * Return allocated port. + */ +#define IOCTL_EVTCHN_BIND_UNBOUND_PORT \ + _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port)) +struct ioctl_evtchn_bind_unbound_port { + unsigned int remote_domain; +}; + +/* + * Unbind previously allocated @port. + */ +#define IOCTL_EVTCHN_UNBIND \ + _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind)) +struct ioctl_evtchn_unbind { + unsigned int port; +}; + +/* + * Unbind previously allocated @port. + */ +#define IOCTL_EVTCHN_NOTIFY \ + _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify)) +struct ioctl_evtchn_notify { + unsigned int port; +}; + +/* Clear and reinitialise the event buffer. Clear error condition. */ +#define IOCTL_EVTCHN_RESET \ + _IOC(_IOC_NONE, 'E', 5, 0) + +#endif /* __LINUX_PUBLIC_EVTCHN_H__ */ diff --git a/kernel_headers/xen/privcmd.h b/kernel_headers/xen/privcmd.h new file mode 100644 index 0000000..12eab3c --- /dev/null +++ b/kernel_headers/xen/privcmd.h @@ -0,0 +1,98 @@ +/****************************************************************************** + * privcmd.h + * + * Interface to /proc/xen/privcmd. + * + * Copyright (c) 2003-2005, K A Fraser + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation; or, when distributed + * separately from the Linux kernel or incorporated into other + * software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __LINUX_PUBLIC_PRIVCMD_H__ +#define __LINUX_PUBLIC_PRIVCMD_H__ + +#include + +#include + +struct privcmd_hypercall { + __u64 op; + __u64 arg[5]; +}; + +struct privcmd_mmap_entry { + __u64 va; + __u64 mfn; + __u64 npages; +}; + +struct privcmd_mmap { + int num; + domid_t dom; /* target domain */ + struct privcmd_mmap_entry *entry; +}; + +struct privcmd_mmapbatch { + int num; /* number of pages to populate */ + domid_t dom; /* target domain */ + __u64 addr; /* virtual address */ + xen_pfn_t *arr; /* array of mfns - or'd with + PRIVCMD_MMAPBATCH_*_ERROR on err */ +}; + +#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U +#define PRIVCMD_MMAPBATCH_PAGED_ERROR 0x80000000U + +struct privcmd_mmapbatch_v2 { + unsigned int num; /* number of pages to populate */ + domid_t dom; /* target domain */ + __u64 addr; /* virtual address */ + const xen_pfn_t *arr; /* array of mfns */ + int *err; /* array of error codes */ +}; + +/* + * @cmd: IOCTL_PRIVCMD_HYPERCALL + * @arg: &privcmd_hypercall_t + * Return: Value returned from execution of the specified hypercall. + * + * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2 + * @arg: &struct privcmd_mmapbatch_v2 + * Return: 0 on success (i.e., arg->err contains valid error codes for + * each frame). On an error other than a failed frame remap, -1 is + * returned and errno is set to EINVAL, EFAULT etc. As an exception, + * if the operation was otherwise successful but any frame failed with + * -ENOENT, then -1 is returned and errno is set to ENOENT. + */ +#define IOCTL_PRIVCMD_HYPERCALL \ + _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall)) +#define IOCTL_PRIVCMD_MMAP \ + _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap)) +#define IOCTL_PRIVCMD_MMAPBATCH \ + _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch)) +#define IOCTL_PRIVCMD_MMAPBATCH_V2 \ + _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2)) + +#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */ diff --git a/omni_surnia.mk b/omni_surnia.mk new file mode 100644 index 0000000..a34db3a --- /dev/null +++ b/omni_surnia.mk @@ -0,0 +1,22 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Inherit from our custom product configuration +$(call inherit-product, vendor/omni/config/common.mk) + +$(call inherit-product, device/motorola/surnia/full_surnia.mk) + +PRODUCT_NAME := omni_surnia diff --git a/slim.mk b/slim.mk new file mode 100644 index 0000000..bb631ec --- /dev/null +++ b/slim.mk @@ -0,0 +1,26 @@ +# +# Copyright (C) 2015 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Inherit from our custom product configuration +$(call inherit-product, vendor/slim/config/common_full_phone.mk) + +$(call inherit-product, device/motorola/surnia/full_surnia.mk) + +# Boot animation +TARGET_SCREEN_WIDTH := 540 +TARGET_SCREEN_HEIGHT := 960 + +PRODUCT_NAME := slim_surnia diff --git a/twrp.fstab b/twrp.fstab new file mode 100644 index 0000000..916a54e --- /dev/null +++ b/twrp.fstab @@ -0,0 +1,9 @@ +/system ext4 /dev/block/platform/soc.0/by-name/system +/data f2fs /dev/block/platform/soc.0/by-name/userdata rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data wait,check,encryptable=/dev/block/platform/soc.0/by-name/metadata +/cache ext4 /dev/block/platform/soc.0/by-name/cache +/boot emmc /dev/block/platform/soc.0/by-name/boot +/recovery emmc /dev/block/platform/soc.0/by-name/recovery + +/external_sd auto /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable;andsec +/usb_otg auto /devices/platform/msm_hsusb flags=display="USB-OTG";storage;wipeingui;removable +/sd-ext auto /dev/block/mmcblk1p2 flags=display="SD-Ext";wipeingui;removable diff --git a/vendorsetup.sh b/vendorsetup.sh new file mode 100644 index 0000000..80a3cf6 --- /dev/null +++ b/vendorsetup.sh @@ -0,0 +1,2 @@ +add_lunch_combo omni_surnia-userdebug +add_lunch_combo slim_surnia-userdebug

    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�)=islWy)-cdb@Oov{|Z=)=4Gs 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

  • hAdZJb)EX+f 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�BQuQoftB*RUQ0sLAFbF#PC$aV#0Vu`=n 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�Ut5LmvRj1u*{Mo(tE{J*ll#a(?-KecqC;N;@A*^ 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 bF;6jA`S!M+LwqO@&6qK!X;ztC{9+fR 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

    6V?574Z9HF9eyds3SF<&%|GRO|^O*OP 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%0A+r5*dPafh2EQSxGJ0Ec>J;bEtZ=!sN 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

    UfRnpm}->WwQC5;DK)Wq$E?tz72#< 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