From e82c65e99ebb25ed8654fcc87d3801c575812e02 Mon Sep 17 00:00:00 2001 From: Chris Sharp Date: Sun, 30 Oct 2011 10:20:19 -0400 Subject: [PATCH] continuing to transfer github files/patches --- Open-ILS/examples/apache/startup.pl | 4 +- Open-ILS/examples/apache/startup.pl.orig | 23 + .../examples/pines-examples/homesearch.xml.survey | 117 ++ .../pines-examples/lib_ips.txt-pines.example | 446 ++++++ .../pines-circ/circ_duration.js.example | 85 ++ .../pines-circ/circ_groups.js.example | 114 ++ .../pines-circ/circ_item_config.js.example | 535 +++++++ .../pines-examples/pines-circ/circ_lib.js.example | 315 ++++ .../pines-circ/circ_permit_copy.js.example | 30 + .../pines-circ/circ_permit_hold.js.example | 141 ++ .../pines-circ/circ_permit_patron.js.example | 36 + .../pines-circ/circ_permit_renew.js.example | 20 + .../examples/pines-examples/pines-survey-down.sh | 6 + .../examples/pines-examples/pines-survey-up.sh | 5 + .../examples/pines-examples/pines-zips.txt.example | 1504 ++++++++++++++++++++ .../templates/overdue_combined_xml_pines.example | 65 + Open-ILS/web/opac/extras/slimpac/advanced.html | 9 +- Open-ILS/web/opac/extras/slimpac/start.html | 9 +- Open-ILS/web/opac/locale/en-US/opac.dtd | 6 +- Open-ILS/web/opac/skin/default/js/rdetail.js | 2 +- Open-ILS/web/opac/skin/default/js/result_common.js | 2 +- Open-ILS/web/opac/skin/default/xml/common/logo.xml | 2 +- Open-ILS/web/opac/skin/default/xml/footer.xml | 5 + .../web/opac/skin/default/xml/home/homesearch.xml | 9 +- Open-ILS/web/opac/theme/default/css/colors.css | 60 +- Open-ILS/xul/staff_client/server/index.xhtml | 8 +- 26 files changed, 3504 insertions(+), 54 deletions(-) create mode 100755 Open-ILS/examples/apache/startup.pl.orig create mode 100644 Open-ILS/examples/pines-examples/homesearch.xml.survey create mode 100644 Open-ILS/examples/pines-examples/lib_ips.txt-pines.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_duration.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_groups.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_item_config.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_lib.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_permit_copy.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_permit_hold.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_permit_patron.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-circ/circ_permit_renew.js.example create mode 100755 Open-ILS/examples/pines-examples/pines-survey-down.sh create mode 100755 Open-ILS/examples/pines-examples/pines-survey-up.sh create mode 100644 Open-ILS/examples/pines-examples/pines-zips.txt.example create mode 100644 Open-ILS/examples/templates/overdue_combined_xml_pines.example diff --git a/Open-ILS/examples/apache/startup.pl b/Open-ILS/examples/apache/startup.pl index 6f1a74261d..d62a0a937c 100755 --- a/Open-ILS/examples/apache/startup.pl +++ b/Open-ILS/examples/apache/startup.pl @@ -14,8 +14,8 @@ use OpenILS::WWW::IDL2js ('/openils/conf/opensrf_core.xml'); # - actor.org_unit.shortname # - e.g. LIB123 10.0.0.1 10.0.0.254 -#use OpenILS::WWW::Redirect qw(/openils/conf/opensrf_core.xml); -#OpenILS::WWW::Redirect->parse_ips_file('/openils/conf/lib_ips.txt'); +use OpenILS::WWW::Redirect qw(/openils/conf/opensrf_core.xml); +OpenILS::WWW::Redirect->parse_ips_file('/openils/conf/lib_ips.txt'); diff --git a/Open-ILS/examples/apache/startup.pl.orig b/Open-ILS/examples/apache/startup.pl.orig new file mode 100755 index 0000000000..6f1a74261d --- /dev/null +++ b/Open-ILS/examples/apache/startup.pl.orig @@ -0,0 +1,23 @@ +#!/usr/bin/perl +use OpenILS::WWW::Exporter qw( /openils/conf/opensrf_core.xml ); +use OpenILS::WWW::SuperCat qw( /openils/conf/opensrf_core.xml ); +use OpenILS::WWW::AddedContent qw( /openils/conf/opensrf_core.xml ); +use OpenILS::WWW::Proxy ('/openils/conf/opensrf_core.xml'); +use OpenILS::WWW::Vandelay qw( /openils/conf/opensrf_core.xml ); +use OpenILS::WWW::TemplateBatchBibUpdate qw( /openils/conf/opensrf_core.xml ); +use OpenILS::WWW::EGWeb ('/openils/conf/oils_web.xml'); +use OpenILS::WWW::PasswordReset ('/openils/conf/opensrf_core.xml'); +use OpenILS::WWW::IDL2js ('/openils/conf/opensrf_core.xml'); + +# - Uncoment the following 2 lines to make use of the IP redirection code +# - The IP file should to contain a map with the following format: +# - actor.org_unit.shortname +# - e.g. LIB123 10.0.0.1 10.0.0.254 + +#use OpenILS::WWW::Redirect qw(/openils/conf/opensrf_core.xml); +#OpenILS::WWW::Redirect->parse_ips_file('/openils/conf/lib_ips.txt'); + + + +1; + diff --git a/Open-ILS/examples/pines-examples/homesearch.xml.survey b/Open-ILS/examples/pines-examples/homesearch.xml.survey new file mode 100644 index 0000000000..9d72f6ec21 --- /dev/null +++ b/Open-ILS/examples/pines-examples/homesearch.xml.survey @@ -0,0 +1,117 @@ + + + + + + + + diff --git a/Open-ILS/examples/pines-examples/lib_ips.txt-pines.example b/Open-ILS/examples/pines-examples/lib_ips.txt-pines.example new file mode 100644 index 0000000000..7b2eebfaa6 --- /dev/null +++ b/Open-ILS/examples/pines-examples/lib_ips.txt-pines.example @@ -0,0 +1,446 @@ +ARL-ATH 168.12.0.1 168.12.0.255 +ARL-ATH 168.12.1.1 168.12.1.254 +ARL-ATH 168.24.85.36 168.24.85.38 +ARL-ATH 168.8.15.1 168.8.15.255 +ARL-ATH 192.168.100.1 192.168.100.254 +ARL-ATH 68.156.6.1 68.156.6.254 +ARL-BOG 168.12.3.1 168.12.3.254 +ARL-BOG 168.8.14.193 168.8.14.255 +ARL-DAN 168.12.7.1 168.12.7.254 +ARL-DAN 168.8.20.2 168.8.20.127 +ARL-DAN 168.8.23.65 168.8.23.127 +ARL-EAST 168.12.4.1 168.12.4.254 +ARL-EAST 168.9.83.1 168.9.83.64 +ARL-LAV 168.12.5.1 168.12.5.254 +ARL-LAV 168.8.22.129 168.8.22.191 +ARL-LAY 168.12.6.1 168.12.6.254 +ARL-LAY 168.9.83.65 168.9.83.128 +ARL-LEX 168.12.10.1 168.12.10.254 +ARL-LEX 168.8.22.192 168.8.22.255 +ARL-ROY 168.12.11.1 168.12.11.254 +ARL-ROY 168.8.23.1 168.8.23.63 +ARL-WAT 168.12.8.1 168.12.8.254 +ARL-WAT 168.8.16.1 168.8.16.255 +ARL-WINT 168.12.12.1 168.12.12.254 +ARL-WINT 168.8.23.65 168.8.23.127 +BROOK-HQ 168.10.0.0 168.10.0.128 +BROOK-HQ 168.13.1.1 168.13.1.254 +BTRL-MCD 168.11.134.1 168.11.134.63 +BTRL-MCD 168.12.51.1 168.12.51.254 +BTRL-MWL 168.12.49.1 168.12.49.254 +BTRL-MWL 168.8.197.129 168.8.197.255 +BTRL-TCL 168.12.50.1 168.12.50.254 +BTRL-TCL 168.8.202.129 168.8.202.191 +CCL-RING 168.12.143.1 168.12.143.255 +CHAT-SMRVL 168.12.63.1 168.12.63.254 +CHAT-SMRVL 168.8.0.0 168.8.0.128 +CHAT-TRION 168.12.64.1 168.12.64.254 +CHAT-TRION 168.8.2.0 168.8.2.64 +CHRL-CHICK 168.11.193.129 168.11.193.160 +CHRL-CHICK 168.12.65.1 168.12.65.254 +CHRL-DADE 168.11.193.161 168.11.193.192 +CHRL-DADE 168.12.66.1 168.12.66.254 +CHRL-LW 168.11.193.0 168.11.193.128 +CHRL-LW 168.12.67.1 168.12.67.254 +CHRL-ROSS 168.11.193.193 168.11.193.225 +CHRL-ROSS 168.12.68.1 168.12.68.254 +CLAYTN-FOR 168.12.73.1 168.12.73.254 +CLAYTN-FOR 168.8.198.1 168.8.198.128 +CLAYTN-HQS 168.12.71.1 168.12.71.254 +CLAYTN-HQS 168.8.192.0 168.8.192.255 +CLAYTN-JON 168.12.74.1 168.12.74.254 +CLAYTN-JON 168.8.198.129 168.8.198.254 +CLAYTN-MOR 168.12.75.1 168.12.75.254 +CLAYTN-MOR 168.8.199.1 168.8.199.128 +CLAYTN-RIV 168.12.76.1 168.12.76.254 +CLAYTN-RIV 168.8.199.129 168.8.199.254 +CPRL-A 168.10.17.1 168.10.17.72 +CPRL-A 168.13.7.1 168.13.7.254 +CPRL-B 168.10.16.1 168.10.16.63 +CPRL-B 168.13.2.1 168.13.2.254 +CPRL-C 168.10.16.129 168.10.16.191 +CPRL-C 168.13.4.1 168.13.4.254 +CPRL-L 168.10.16.193 168.10.16.255 +CPRL-L 168.13.5.1 168.13.5.254 +CPRL-R 168.10.16.69 168.10.16.127 +CPRL-R 168.13.3.1 168.13.3.254 +CPRL-T 168.10.15.1 168.10.15.128 +CPRL-T 168.13.6.1 168.13.6.254 +CRLS-DAWSN 168.12.69.1 168.12.69.254 +CRLS-DAWSN 168.8.0.129 168.8.0.255 +CRLS-LMPKN 168.12.70.1 168.12.70.254 +CRLS-LMPKN 168.8.1.0 168.8.1.128 +DCPL-CEN 168.13.14.1 168.13.14.254 +DCPL-CEN 168.13.15.0 168.13.15.255 +DCPL-NW 168.10.11.1 168.10.11.128 +DCPL-NW 168.13.16.1 168.13.16.254 +DCPL-SS 168.10.11.129 168.10.11.254 +DCPL-SS 168.13.17.1 168.13.17.254 +DCPL-TAL 168.10.12.1 168.10.12.128 +DCPL-TAL 168.13.18.1 168.13.18.254 +DCPL-WT 168.10.12.129 168.10.12.254 +DCPL-WT 168.13.19.1 168.13.19.254 +DTRL-BAKR 168.13.8.1 168.13.8.254 +DTRL-BLAK 168.10.0.193 168.10.0.255 +DTRL-BLAK 168.13.11.1 168.13.11.254 +DTRL-CAMI 168.10.0.129 168.10.0.192 +DTRL-CAMI 168.13.9.1 168.13.9.254 +DTRL-JAKN 168.10.21.193 168.10.21.255 +DTRL-JAKN 168.13.10.1 168.13.10.254 +DTRL-PELH 168.10.1.65 168.10.1.128 +DTRL-PELH 168.13.13.1 168.13.13.254 +DTRL-SYLV 168.10.1.0 168.10.1.64 +DTRL-SYLV 168.13.12.1 168.13.12.254 +ECGR-APPBY 168.11.129.193 168.11.129.255 +ECGR-APPBY 168.13.192.1 168.13.192.254 +ECGR-AVTBC 168.11.131.1 168.11.131.63 +ECGR-AVTBC 168.13.205.1 168.13.205.254 +ECGR-BURKE 168.11.131.65 168.11.131.127 +ECGR-BURKE 168.13.193.1 168.13.193.254 +ECGR-CCO 66.208.207.193 66.208.207.197 +ECGR-DIAML 168.13.214.1 168.13.214.255 +ECGR-EUCHE 168.11.131.193 168.11.131.255 +ECGR-EUCHE 168.13.195.1 168.13.195.254 +ECGR-FRMAN 168.11.132.1 168.11.132.63 +ECGR-FRMAN 168.13.196.1 168.13.196.254 +ECGR-GIBBS 168.11.131.129 168.11.131.191 +ECGR-GLSCK 168.13.197.1 168.13.197.254 +ECGR-HARLM 168.11.132.65 168.11.132.127 +ECGR-HARLM 168.13.198.1 168.13.198.254 +ECGR-LINCN 168.13.201.1 168.13.201.254 +ECGR-LINCN 168.8.24.1 168.8.24.63 +ECGR-MAIN 168.11.130.1 168.11.130.255 +ECGR-MAIN 168.13.194.1 168.13.194.254 +ECGR-MAIN 168.13.199.1 168.13.199.254 +ECGR-MIDVL 168.11.132.193 168.11.132.255 +ECGR-MIDVL 168.13.203.1 168.13.203.254 +ECGR-MXWLL 168.11.132.129 168.11.132.191 +ECGR-MXWLL 168.13.202.1 168.13.202.254 +ECGR-SARDIS 168.11.133.1 168.11.133.63 +ECGR-SRDIS 168.13.204.1 168.13.204.254 +ECGR-WALLC 168.11.133.65 168.11.133.127 +ECGR-WALLC 168.13.206.1 168.13.206.254 +ECGR-WARRN 168.11.133.129 168.11.133.191 +ECGR-WARRN 168.13.207.1 168.13.207.254 +ECPL-BWMN 168.12.102.1 168.12.102.254 +ECPL-BWMN 168.9.33.1 168.9.33.62 +ECPL-ECPL 168.12.103.1 168.12.103.254 +ECPL-ECPL 168.8.200.130 168.8.200.254 +FBHCL-MAIN 168.10.1.129 168.10.1.255 +FBHCL-MAIN 168.13.20.1 168.13.20.254 +FRRLS-BA 168.12.104.1 168.12.104.254 +FRRLS-BA 168.8.2.65 168.8.2.128 +FRRLS-FA 168.12.105.1 168.12.105.254 +FRRLS-FA 168.8.3.0 168.8.3.255 +FRRLS-FY 168.10.128.0 168.10.128.128 +FRRLS-FY 168.12.111.1 168.12.111.254 +FRRLS-GR 168.12.107.1 168.12.107.254 +FRRLS-GR 168.8.4.0 168.8.4.255 +FRRLS-JA 168.12.110.1 168.12.110.254 +FRRLS-JA 168.8.2.193 168.8.2.255 +FRRLS-PT 168.12.112.1 168.12.112.254 +FRRLS-PT 168.12.211.1 168.12.211.254 +FRRLS-TY 168.12.113.1 168.12.113.254 +FRRLS-TY 168.8.5.0 168.8.5.64 +FRRLS-ZE 168.12.109.1 168.12.109.254 +FRRLS-ZE 168.8.2.129 168.8.2.192 +HALL-BPL 168.12.118.1 168.12.118.254 +HALL-BPL 168.8.202.193 168.8.202.255 +HALL-CL 168.12.119.1 168.12.119.254 +HALL-CL 168.8.203.1 168.8.203.63 +HALL-EH 168.12.120.1 168.12.120.254 +HALL-EH 168.8.203.65 168.8.203.127 +HALL-GVL 168.12.121.1 168.12.121.254 +HALL-GVL 168.8.196.1 168.8.196.255 +HALL-MV 168.12.123.1 168.12.123.254 +HALL-MV 168.8.203.129 168.8.203.191 +HALL-SSP 168.12.222.1 168.12.222.255 +HART-HQ 168.12.124.1 168.12.124.254 +HART-HQ 168.8.6.0 168.8.6.128 +HCLS-FV 168.12.117.1 168.12.117.254 +HCLS-HA 168.12.126.1 168.12.126.254 +HCLS-HA 168.8.5.129 168.8.5.192 +HCLS-LG 168.12.128.1 168.12.128.254 +HCLS-LG 168.8.5.193 168.8.5.255 +HCLS-MD 168.12.127.1 168.12.127.254 +HCLS-MD 168.8.6.129 168.8.6.255 +HCLS-ST 168.12.125.1 168.12.125.254 +HCLS-ST 168.8.5.65 168.8.5.128 +HOU-CV 168.10.129.0 168.10.129.64 +HOU-CV 168.13.128.1 168.13.128.254 +HOU-PE 168.10.129.66 168.10.129.128 +HOU-PE 168.13.130.1 168.13.130.254 +HOU-WR 168.10.128.130 168.10.128.255 +HOU-WR 168.13.129.1 168.13.129.254 +JCL-LVILLE 168.11.128.0 168.11.128.128 +JCL-LVILLE 168.13.208.1 168.13.208.254 +JCL-WADLEY 168.11.129.65 168.11.129.128 +JCL-WADLEY 168.13.210.1 168.13.210.254 +JCL-WRENS 168.11.129.0 168.11.129.64 +JCL-WRENS 168.13.209.1 168.13.209.254 +KRLS-AR 168.10.3.0 168.10.3.64 +KRLS-CA 168.10.3.65 168.10.3.128 +KRLS-CA 168.13.21.1 168.13.21.254 +KRLS-CL 168.10.3.129 168.10.3.192 +KRLS-CL 168.13.22.1 168.13.22.254 +KRLS-QU 168.13.60.1 168.13.60.255 +KRLS-RA 168.10.3.193 168.10.3.255 +KRLS-RA 168.13.23.1 168.13.23.254 +KRLS-TE 168.10.2.0 168.10.2.255 +KRLS-TE 168.13.24.1 168.13.24.254 +KRLS-WE 168.10.4.0 168.10.4.64 +KRLS-WE 168.13.26.1 168.13.26.254 +LBRLS-BYRM 168.13.27.1 168.13.27.255 +LBRLS-CORD 168.13.28.1 168.13.28.255 +LBRLS-DOOLY 168.13.29.1 168.13.29.255 +LBRLS-LB 168.13.31.1 168.13.31.255 +LBRLS-SCH 168.13.33.1 168.13.33.255 +LBRLS-UNAD 168.13.30.1 168.13.30.255 +LEE-LSB 168.10.5.0 168.10.5.255 +LEE-LSB 168.13.34.1 168.13.34.254 +LEE-SMV 168.10.4.65 168.10.4.128 +LEE-SMV 168.13.36.1 168.13.36.254 +MCCLS-DOE 168.13.37.1 168.13.37.254 +MCCLS-HQ 168.10.6.0 168.10.6.255 +MCCLS-HQ 168.13.38.1 168.13.38.254 +MGRL-EW 168.10.138.1 168.10.138.127 +MGRL-EW 168.13.132.1 168.13.132.254 +MGRL-GH 168.13.143.180 168.13.143.200 +MGRL-GO 168.10.138.128 168.10.138.191 +MGRL-GO 168.13.133.1 168.13.133.254 +MGRL-ID 168.10.138.192 168.10.138.255 +MGRL-ID 168.13.134.1 168.13.134.254 +MGRL-JO 168.10.139.0 168.10.139.63 +MGRL-JO 168.13.135.1 168.13.135.254 +MGRL-LA 168.13.140.1 168.13.140.254 +MGRL-LC 168.10.132.65 168.10.132.128 +MGRL-MA 168.10.139.64 168.10.139.127 +MGRL-MA 168.13.136.1 168.13.136.254 +MGRL-MO 168.10.129.193 168.10.129.255 +MGRL-MO 168.13.137.1 168.13.137.254 +MGRL-OG 168.10.139.128 168.10.139.191 +MGRL-OG 168.13.138.1 168.13.138.254 +MGRL-RO 168.13.131.1 168.13.131.254 +MGRL-RV 168.10.132.0 168.10.132.64 +MGRL-RV 168.13.139.1 168.13.139.254 +MGRL-SH 168.10.132.129 168.10.132.191 +MGRL-SH 168.13.141.1 168.13.141.254 +MGRL-TW 168.10.139.192 168.10.139.255 +MGRL-TW 168.13.142.1 168.13.142.254 +MGRL-WA 168.10.130.0 168.10.130.199 +MGRL-WA 168.10.130.221 168.10.130.254 +MGRL-WA 168.13.143.1 168.13.143.254 +MGRL-WB 168.10.132.193 168.10.132.255 +MGRL-WB 168.13.145.1 168.13.145.254 +MRGL-RO 168.10.138.0 168.10.138.63 +MRLS-FCPL 168.12.129.1 168.12.129.254 +MRLS-FCPL 168.8.7.1 168.8.7.64 +MRLS-MRL 168.12.130.1 168.12.130.254 +MRLS-MRL 168.8.7.129 168.8.7.255 +MRLS-TCPL 168.12.131.1 168.12.131.254 +MRLS-TCPL 168.8.7.65 168.8.7.128 +MRLS-UCPL 168.12.132.1 168.12.132.254 +MRLS-UCPL 168.8.9.0 168.8.9.64 +NCLS-COVTN 168.12.133.1 168.12.133.254 +NCLS-COVTN 168.8.193.1 168.8.193.255 +NCLS-NEWBRN 168.12.227.30 168.12.227.30 +NCLS-PORTER 168.12.228.1 168.12.228.254 +NEG-CLAYTN 168.8.9.129 168.8.9.192 +NEG-CLRKVL 168.12.135.1 168.12.135.254 +NEG-CLRKVL 168.8.8.0 168.8.8.255 +NEG-CLVLND 168.12.141.1 168.12.141.254 +NEG-CLVLND 168.8.10.0 168.8.10.64 +NEG-CORNEL 168.12.137.1 168.12.137.254 +NEG-CORNEL 168.8.9.65 168.8.9.128 +NEG-HELEN 168.12.140.1 168.12.140.254 +NEG-HELEN 168.8.10.65 168.8.10.128 +NEG-RABUN 168.12.138.1 168.12.138.254 +NEG-TOCCOA 168.12.139.1 168.12.139.254 +NEG-TOCCOA 168.8.9.193 168.8.9.255 +NGRL-CG 168.12.142.0 168.12.142.254 +NGRL-CM 168.12.145.0 168.12.145.254 +NGRL-DW 168.12.146.0 168.12.146.254 +OCRL-DUBLN 168.10.136.1 168.10.136.255 +OCRL-DUBLN 168.13.154.1 168.13.154.254 +OCRL-SANDR 168.10.141.1 168.10.141.128 +OCRL-SANDR 168.13.156.1 168.13.156.254 +OCRL-SOPER 168.11.10.193 168.11.10.255 +OCRL-SOPER 168.13.157.1 168.13.157.254 +OCRL-WRIGH 168.10.140.1 168.10.140.63 +OCRL-WRIGH 168.13.153.1 168.13.153.254 +OHOOP-LADS 168.11.13.129 168.11.13.191 +OHOOP-LADS 168.13.86.1 168.13.86.254 +OHOOP-LYON 168.11.0.65 168.11.0.128 +OHOOP-LYON 168.13.88.1 168.13.88.254 +OHOOP-MONT 168.11.0.130 168.11.0.192 +OHOOP-MONT 168.13.87.1 168.13.87.254 +OHOOP-TATG 168.11.0.1 168.11.0.64 +OHOOP-TATG 168.13.85.1 168.13.85.254 +OHOOP-TATR 168.11.2.130 168.11.2.192 +OHOOP-TATR 168.13.89.1 168.13.89.254 +OHOOP-VIDT 168.11.1.1 168.11.1.128 +OHOOP-VIDT 168.13.90.1 168.13.90.254 +OKRL-APPL 168.11.8.1 168.11.8.63 +OKRL-APPL 168.13.92.1 168.13.92.254 +OKRL-BACON 168.11.0.193 168.11.0.254 +OKRL-BACON 168.13.91.1 168.13.91.254 +OKRL-BLMEM 168.11.8.65 168.11.8.127 +OKRL-BLMEM 168.13.93.1 168.13.93.254 +OKRL-CLNCH 168.11.8.129 168.11.8.191 +OKRL-CLNCH 168.13.94.1 168.13.94.254 +OKRL-MA 168.11.8.193 168.11.8.255 +OKRL-MA 168.13.95.1 168.13.95.254 +OKRL-WWC 168.11.7.1 168.11.7.255 +OKRL-WWC 168.13.96.1 168.13.96.254 +ORLS-HDQ 168.10.131.1 168.10.131.254 +ORLS-TEL 168.10.8.0 168.10.8.128 +ORLS-WIL 168.10.8.129 168.10.8.255 +PIED-AUB 168.12.148.1 168.12.148.254 +PIED-AUB 168.9.33.66 168.9.33.126 +PIED-BRL 168.12.157.1 168.12.157.254 +PIED-BRL 168.9.58.1 168.9.58.64 +PIED-COM 168.12.150.1 168.12.150.254 +PIED-COM 168.8.204.1 168.8.204.63 +PIED-HOM 168.12.149.1 168.12.149.254 +PIED-HOM 168.8.203.193 168.8.203.254 +PIED-JEF 168.12.152.1 168.12.152.254 +PIED-JEF 168.8.204.129 168.8.204.191 +PIED-JEF 24.196.224.38 24.196.224.38 +PIED-MAY 168.12.153.1 168.12.153.254 +PIED-MAY 168.8.204.192 168.8.204.254 +PIED-NIC 168.12.151.1 168.12.151.254 +PIED-NIC 168.8.204.65 168.8.204.127 +PIED-STA 168.12.156.1 168.12.156.254 +PIED-STA 168.8.234.2 168.8.234.12 +PIED-WIN 168.12.154.1 168.12.154.254 +PIED-WIN 168.8.201.1 168.8.201.127 +PMRLS-BPL 168.10.135.65 168.10.135.128 +PMRLS-BPL 168.12.159.1 168.12.159.254 +PMRLS-GPL 168.12.160.1 168.12.160.254 +PMRLS-GPL 168.8.10.129 168.8.10.192 +PMRLS-HML 168.12.161.1 168.12.161.254 +PMRLS-HML 168.8.10.193 168.8.10.255 +PMRLS-MPL 168.12.163.1 168.12.163.254 +PMRLS-MPL 168.8.11.0 168.8.11.255 +PMRLS-RCL 168.10.135.194 168.10.135.223 +PMRLS-RCL 168.12.164.1 168.12.164.254 +PMRLS-TCL 168.12.165.1 168.12.165.254 +PMRLS-TCL 168.8.12.0 168.8.12.64 +PMRLS-YPL 168.12.158.1 168.12.158.254 +PMRLS-YPL 168.9.33.129 168.9.33.190 +PPL-BPL 168.10.135.0 168.10.135.64 +PPL-BPL 168.13.158.1 168.13.158.254 +PPL-TPL 168.10.134.0 168.10.134.255 +PPL-TPL 168.13.159.1 168.13.159.254 +RML-MAIN 168.10.7.0 168.10.7.255 +RML-MAIN 168.13.40.1 168.13.40.254 +ROCK-NG 168.12.77.1 168.12.77.254 +ROCK-NG 168.8.200.1 168.8.200.128 +SHRL-CD 168.12.167.1 168.12.167.254 +SHRL-CD 168.8.201.193 168.8.201.255 +SHRL-CS 168.12.166.1 168.12.166.254 +SHRL-CS 168.8.201.130 168.8.201.140 +SHRL-RK 168.12.168.1 168.12.168.254 +SHRL-RK 168.8.205.1 168.8.205.63 +SHRL-RM 168.12.170.1 168.12.170.254 +SHRL-RM 168.8.194.1 168.8.194.255 +SJRLS-JCML 168.11.128.129 168.11.128.192 +SJRLS-JCML 168.13.211.1 168.13.211.254 +SJRLS-SCL 168.11.2.0 168.11.2.128 +SJRLS-SCL 168.13.212.1 168.13.212.254 +SRL-AMBR 168.11.2.193 168.11.2.255 +SRL-AMBR 168.11.2.193 168.11.2.255 +SRL-AMBR 168.13.98.1 168.13.98.254 +SRL-BROX 168.11.3.0 168.11.3.64 +SRL-BROX 168.13.99.1 168.13.99.254 +SRL-DOUG 168.11.1.129 168.11.1.255 +SRL-DOUG 168.13.100.1 168.13.100.254 +SRL-JDHAZ 168.11.3.65 168.11.3.128 +SRL-JDHAZ 168.13.102.1 168.13.102.254 +SRL-NICH 168.11.3.129 168.11.3.192 +SRL-NICH 168.13.103.1 168.13.103.254 +SRL-PEAR 168.11.3.193 168.11.3.255 +SRL-PEAR 168.13.104.1 168.13.104.254 +SRL-WILLA 168.11.4.0 168.11.4.64 +SRL-WILLA 168.13.105.1 168.13.105.254 +STATELIB-B 168.28.76.1 168.28.76.254 +STATELIB-L 168.28.68.1 168.28.68.254 +STRL-CLAX 168.11.11.1 168.11.11.63 +STRL-CLAX 168.13.106.1 168.13.106.254 +STRL-METT 168.11.11.64 168.11.11.129 +STRL-METT 168.13.108.1 168.13.108.254 +STRL-PEMB 168.11.11.130 168.11.11.191 +STRL-PEMB 168.13.109.1 168.13.109.254 +STRL-RHILL 168.11.11.193 168.11.11.255 +STRL-RHILL 168.13.110.1 168.13.110.254 +STRL-SBORO 168.11.9.1 168.11.9.255 +STRL-SBORO 168.13.111.1 168.13.111.254 +STRL-SWAIN 168.11.133.193 168.11.133.255 +STRL-SWAIN 168.13.107.1 168.13.107.254 +SWGRL-DEC 168.10.9.0 168.10.9.255 +SWGRL-DEC 168.13.49.1 168.13.49.254 +SWGRL-MIL 168.10.20.1 168.10.20.64 +SWGRL-MIL 168.13.50.1 168.13.50.254 +SWGRL-SEM 168.10.20.64 168.10.20.127 +SWGRL-SEM 168.13.51.1 168.13.51.254 +TCPLS-BOS 168.13.52.1 168.13.52.254 +TCPLS-COOL 168.13.53.1 168.13.53.254 +TCPLS-MEIGS 168.13.55.1 168.13.55.254 +TCPLS-OCH 168.13.54.1 168.13.54.254 +TCPLS-PACO 168.13.56.1 168.13.56.254 +TCPLS-THOMAS 168.13.57.1 168.13.57.254 +THRL-HC 168.12.181.2 168.12.181.254 +THRL-HOG 168.12.182.2 168.12.182.254 +THRL-LAG 168.12.184.2 168.12.184.254 +THRL-WMS 168.12.183.2 168.12.183.254 +TLLS-LS 168.10.140.129 168.10.140.254 +TLLS-LS 168.13.161.1 168.13.161.254 +TLLS-MV 168.10.129.130 168.10.129.190 +TLLS-MV 168.13.162.1 168.13.162.254 +TRRL-BRANT 168.11.13.1 168.11.13.63 +TRRL-BRANT 168.13.113.1 168.13.113.254 +TRRL-CAMDN 168.11.13.65 168.11.13.127 +TRRL-CAMDN 168.13.116.1 168.13.116.254 +TRRL-CHARL 168.11.4.65 168.11.4.127 +TRRL-CHARL 168.13.117.1 168.13.117.254 +TRRL-GLYNN 168.11.58.0 168.11.58.254 +TRRL-GLYNN 168.13.114.1 168.13.114.254 +TRRL-LONG 168.11.4.193 168.11.4.255 +TRRL-LONG 168.13.119.1 168.13.119.254 +TRRL-MCINT 168.11.4.129 168.11.4.191 +TRRL-MCINT 168.13.118.1 168.13.118.254 +TRRL-STMRY 168.11.10.1 168.11.10.63 +TRRL-STMRY 168.13.120.1 168.13.120.254 +TRRL-WAYNE 168.11.10.65 168.11.10.127 +TRRL-WAYNE 168.13.121.1 168.13.121.254 +URRLS-GR 168.12.188.1 168.12.188.254 +URRLS-GR 168.8.12.129 168.8.12.192 +URRLS-HA 168.11.129.129 168.11.129.192 +URRLS-HA 168.12.189.1 168.12.189.254 +URRLS-JA 168.12.190.1 168.12.190.254 +URRLS-JA 168.8.12.193 168.8.12.255 +URRLS-MA 168.12.193.1 168.12.193.254 +URRLS-MA 168.8.13.0 168.8.13.255 +URRLS-MR 168.12.191.1 168.12.191.254 +URRLS-MR 168.8.14.0 168.8.14.64 +URRLS-OK 168.12.194.1 168.12.194.254 +URRLS-OK 168.8.14.65 168.8.14.128 +URRLS-PU 168.12.187.1 168.12.187.254 +URRLS-PU 168.8.12.65 168.8.12.128 +URRLS-SC 168.12.195.1 168.12.195.254 +URRLS-SC 168.8.14.129 168.8.14.192 +WGRL-BO 168.12.207.1 168.12.207.254 +WGRL-BR 168.12.208.1 168.12.208.254 +WGRL-BU 168.12.196.1 168.12.196.254 +WGRL-DC 168.12.197.1 168.12.197.254 +WGRL-EP 168.12.225.1 168.12.225.254 +WGRL-FR 168.12.198.1 168.12.198.254 +WGRL-HQ 168.12.202.1 168.12.202.254 +WGRL-LS 168.12.199.1 168.12.199.254 +WGRL-MR 168.12.200.1 168.12.200.254 +WGRL-MZ 168.12.220.1 168.12.220.254 +WGRL-NG 168.12.203.1 168.12.203.254 +WGRL-PC 168.12.204.1 168.12.204.254 +WGRL-TA 168.12.205.1 168.12.205.254 +WGRL-VR 168.12.206.1 168.12.206.254 +WGRL-WB 168.12.224.1 168.12.224.255 diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_duration.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_duration.js.example new file mode 100755 index 0000000000..cb113da483 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_duration.js.example @@ -0,0 +1,85 @@ +function go(){ + +load_lib('JSON_v1.js'); +load_lib('circ/circ_item_config.js'); +log_vars('circ_duration'); + + +/* treat pre-cat copies like vanilla books */ +if( isTrue(isPrecat) ) { + log_info("pre-cat copy getting duration defaults..."); + result.durationRule = '14_days_2_renew'; + result.recurringFinesRule = '10_cent_per_day'; + result.maxFine = 'overdue_mid'; + checkDurationExceptions(); + return; +} + + +/* grab the config from the config script */ +var config = getItemConfig(); +var itemForm = (marcXMLDoc) ? extractFixedField(marcXMLDoc,'Form') : ""; + + +/* ----------------------------------------------------------------------------- + Now set the rule values based on the config. If there is no configured info + on this copy, fall back on defaults. + ----------------------------------------------------------------------------- */ +if( config ) { + + log_debug("circ_duration found a config for the copy"); + result.durationRule = config.durationRule; + result.recurringFinesRule = config.recurringFinesRule; + result.maxFine = config.maxFine; + +} else { + + result.durationRule = '14_days_2_renew'; + result.recurringFinesRule = "10_cent_per_day"; + result.maxFine = "overdue_mid"; +} + + + +/* ----------------------------------------------------------------------------- + Add custom rules here. + ----------------------------------------------------------------------------- */ + +var circMod = (copy.circ_modifier) ? copy.circ_modifier.toLowerCase() : ''; + +if( isOrgDescendent('STATELIB', copy.circ_lib.id) ) { + if( circMod == 'book' ) + result.durationRule = '35_days_1_renew'; + if(isTrue(copy.ref)) + result.durationRule = '14_days_2_renew'; + +} else if( isOrgDescendent('NCLS', copy.circ_lib.id) && ( circMod == 'dvd' || circMod == 'video' ) ) + result.recurringFinesRule = '10_cent_per_day'; + + +checkDurationExceptions(); + +log_info('final duration results: ' + result.durationRule + ' : ' + result.recurringFinesRule + ' : ' + result.maxFine ); + +} go(); + + + +function checkDurationExceptions() { + log_debug("Checking duration rule exceptions for profile "+patronProfile); + + if( isGroupDescendant('Staff', patronProfile) || + isGroupDescendant('Trustee', patronProfile) || + isGroupDescendant('StaffNoPerm', patronProfile) || + isGroupDescendant('Outreach', patronProfile) ) { + + result.recurringFinesRule = "staff"; + result.maxFine = "staff"; + } + + if( isGroupDescendant('Outreach', patronProfile) ) { + log_info("Outreach user found, setting duration to 2 months"); + result.durationRule = '2_months_2_renew'; + } +} + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_groups.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_groups.js.example new file mode 100755 index 0000000000..6fc2bf1149 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_groups.js.example @@ -0,0 +1,114 @@ +/* --------------------------------------------------------------------- + Set up the limits for the various profiles (aka permission groups). + Values of -1 mean there is no limit + + maxItemsOut - the maximum number of items the user can have out + fineThreshold - the fine threshold. + overdueThreshold - the overdue items threshold. + maxHolds - The maximum number of holds the user can have + + A user exceeds the fineThreshold and/or overdueThreshold if they are + equal to or exceed the threshold + --------------------------------------------------------------------- */ + +var GROUP_CONFIG = { + + 'Patron' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : -1 + }, + + 'Class' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : 15 + }, + + 'Friend' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : -1 + }, + + 'NonResident' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : -1 + }, + + 'OutOfState' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : -1 + }, + + 'Outreach' : { + maxItemsOut : -1, + fineThreshold : -1, + overdueThreshold : -1, + maxHolds : 15 + }, + + + 'Restricted' : { + maxItemsOut : 2, + fineThreshold : 0.01, + overdueThreshold : 1, + maxHolds : 5 + }, + + 'Temp' : { + maxItemsOut : 5, + fineThreshold : .01, + overdueThreshold : 1, + maxHolds : 5 + }, + + 'TempRes6' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : -1 + }, + + 'tempRes12' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : -1 + }, + + 'Trustee' : { + maxItemsOut : 50, + fineThreshold : 10, + overdueThreshold : 10, + maxHolds : 10 + }, + + + 'Vendor' : { + maxItemsOut : 0, + fineThreshold : 0.01, + overdueThreshold : 1, + maxHolds : 0 + }, + + 'Staff' : { + maxItemsOut : 50, + fineThreshold : -1, + overdueThreshold : -1, + maxHolds : -1 + }, + +}; + + + + + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_item_config.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_item_config.js.example new file mode 100755 index 0000000000..ceba8e7391 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_item_config.js.example @@ -0,0 +1,535 @@ +load_lib('circ/circ_lib.js'); +log_debug('loading circ_item_config.js ...'); + + +/* SIP media types +000 Other +001 Book +002 Magazine +003 Bound journal +004 Audio tape +005 Video tape +006 CD/CDROM +007 Diskette +008 Book with diskette +009 Book with CD +010 Book with audio tape +*/ + +/* ----------------------------------------------------------------------------- + Configure the duration rules for the various item types and circ modifiers + + MARC Fixed Field info: + http://www.oclc.org/bibformats/en/fixedfield/ + + ----------------------------------------------------------------------------- */ + +var MARC_ITEM_TYPE_MAP = { + + a : { /* Language material [Books] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + t : { /* Manuscript language material [Books] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + g : { /* Projected medium [Videos, etc.] */ + SIPMediaType : '005', + magneticMedia : 'f', + durationRule : '7_days_0_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + k : { /* Two-dimensional nonprojectable graphic [Card, charts, etc.] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '3_month_0_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + r : { /* Three-dimensional artifact or naturally occurring object [Models, games, etc.] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + o : { /* Kit [Mixture of item types] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + p : { /* Mixed materials [Mixture of item types] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + e : { /* Cartographic material [Map] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + f : { /* Manuscript cartographic material [Map] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '3_days_1_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + c : { /* Notated music [Printed music] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + d : { /* Manuscript notated music [Printed music] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + i : { /* Nonmusical sound recording [Audiobooks, sound effects, etc.] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + j : { /* Musical sound recording [Music] */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + m : { /* Computer file */ + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + } +} + + +var CIRC_MOD_MAP = { + + 'art' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '3_month_1_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'atlas' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'audiobook' : { + SIPMediaType : '004', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'av' : { + SIPMediaType : '005', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'new-av' : { + SIPMediaType : '005', + magneticMedia : 'f', + durationRule : '3_days_1_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'bestseller' : { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'bestsellernh' : { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'book' : { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'cd' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'dvd' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '7_days_0_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'dvd-long' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'dvd-mid' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'e-book' : { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '3_days_1_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'equipment' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '1_day_0_renew', /* make me 1 day, 0 renewal when possible */ + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'equip-long' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '3_days_1_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'filmstrip' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'kit' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'internet' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '1_hour_2_renew', + recurringFinesRule : 'no_fines', + maxFine : 'no_fines' + }, + + 'magazine' : { + SIPMediaType : '002', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'map' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '3_days_1_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'microform' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'music' : { + SIPMediaType : '004', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'record' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'software' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'softwrlong' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'videogame' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'videogamelong' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'talking book' : { + SIPMediaType : '006', + magneticMedia : 'f', + durationRule : 'unlimited', + }, + + 'toy' : { + SIPMediaType : '000', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'video' : { + SIPMediaType : '005', + magneticMedia : 'f', + durationRule : '7_days_0_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'video-long' : { + SIPMediaType : '005', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'video-mid' : { + SIPMediaType : '005', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '50_cent_per_day', + maxFine : 'overdue_mid' + }, + + + 'facbestslr' : { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '7_days_2_renew', + recurringFinesRule : '10_cent_per_day', + maxFine : 'overdue_mid' + }, + + 'eventpass' : { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '7_day_1_renew', + recurringFinesRule : '3_dollar_per_day', + maxFine : 'overdue_mid' + }, +} + + +/* Set up rules for legacy types */ +CIRC_MOD_MAP['DEPOSIT'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['E-AUDIO'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['FACNEWBK'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['MAG-CIRC'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['MAG-NOCIRC'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['NEW-BOOK'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['NEWSPAPER'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['OUTREACH'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['PAMPHLET'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['PAPERBACK'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['RESERVE'] = CIRC_MOD_MAP['book']; +CIRC_MOD_MAP['STATE-BOOK'] = { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '35_days_1_renew', + recurringFinesRule : "10_cent_per_day", + maxFine : "overdue_mid" +}; +CIRC_MOD_MAP['STATE-MFRM'] = { + SIPMediaType : '001', + magneticMedia : 'f', + durationRule : '14_days_2_renew', + recurringFinesRule : "10_cent_per_day", + maxFine : "overdue_mid" +}; + + + + +/* this will set defaults even if no one asked for them */ +log_debug("Calling getItemConfig() to force defaults.."); +getItemConfig(); +log_debug("getItemConfig() set magneticMedia to "+result.magneticMedia); + + +function getItemConfig() { + + /* ----------------------------------------------------------------------------------- + If a circ_modifier is defined on the copy and we have config info for the + provided circ_modifier, use that config. Otherwise fall back on the MARC item type + ----------------------------------------------------------------------------------- */ + var marcType = getMARCItemType(); + var itemForm = (marcXMLDoc) ? extractFixedField(marcXMLDoc,'Form') : ""; + //var circMod = (copy.circ_modifier) ? copy.circ_modifier.toLowerCase() : ''; + var circMod = copy.circ_modifier; + + var config = null; + + if( circMod ) { + config = CIRC_MOD_MAP[circMod]; + if(!config) + config = CIRC_MOD_MAP[circMod.toLowerCase()] + if(config) + log_info("a circ_mod config exists for the copy with mod: " + circMod); + } + + if(!config) { + /* otherwise, fall back on the MARC item type */ + if( circMod ) + log_info("no circ_mod config found for " +circMod+", falling back to MARC"); + config = MARC_ITEM_TYPE_MAP[marcType]; + } + + /* if no config could be found, default to 'book' */ + if(!config) { + log_warn("item_config found no circ_mod OR MARC config, defaulting to 'book'"); + config = CIRC_MOD_MAP['book']; + } + + config.maxFine = setMaxFineByCircLocation(); + + /* go ahead and set some default result + data (which may be overidden) */ + for( var i in config ) { + log_debug("item_config setting result defaults: "+i+" = " +config[i]); + result[i] = config[i]; + } + + return config; +} + + +function setMaxFineByCircLocation() { + var max_libs = [ 'DTRL', 'SJRLS' ]; + var mid_libs = [ 'ARL', 'CHRL', 'DCPL', 'ECGR', 'FRRLS', 'HCLS', 'NCLS', 'OCRL', 'OHOOP', 'OKRL', 'PMRLS', 'PPL', 'STRL' ]; + + var cl = (volume && volume.id != -1) ? volume.owning_lib : currentLocation.id; + var max_fine = null; + + for( var i = 0; i < max_libs.length; i++ ) { + var org = max_libs[i]; + if( isOrgDescendent(org, cl) ) { + log_debug("found max-fine ancestor org "+org); + max_fine = 'overdue_max'; + break; + } + } + + if(!max_fine) { + for( var i = 0; i < mid_libs.length; i++ ) { + var org = mid_libs[i]; + if( isOrgDescendent(org, cl) ) { + log_debug("found mid-fine ancestor org "+org); + max_fine = 'overdue_mid'; + break; + } + } + } + + if(!max_fine) max_fine = 'overdue_min'; + + log_info("setMaxFineByCircLocation() set max_fine to "+ max_fine); + + return max_fine; +} + + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_lib.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_lib.js.example new file mode 100755 index 0000000000..ac3c5d6612 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_lib.js.example @@ -0,0 +1,315 @@ +load_lib('catalog/record_type.js'); +load_lib('circ/circ_groups.js'); +load_lib('JSON_v1.js'); + + +try { + if( environment.copy ) { + environment.copy.fetchBestHold = function() { + var key = scratchKey(); + environment.copy.__OILS_FUNC_fetch_best_hold(scratchPad(key)); + var val = getScratch(key); + return (val) ? val : null; + } + } +} catch(e) {} + + +/* ----------------------------------------------------------------------------- + Collect all of the global variables + ----------------------------------------------------------------------------- */ + +/* the global result object. Any data returned to the + caller must be put into this object. */ +var result = environment.result = {}; +result.event = 'SUCCESS'; +result.events = []; +result.fatalEvents = []; +result.infoEvents = []; + + +/* Pull in any variables passed in from the calling process */ +var copy = environment.copy; +var volume = environment.volume; +var title = environment.title; +var recDescriptor = environment.titleDescriptor; +var patron = environment.patron; +var patronItemsOut = environment.patronItemsOut; +var patronOverdueCount = environment.patronOverdueCount; +var patronFines = environment.patronFines; +var isRenewal = environment.isRenewal; +var isPrecat = environment.isPrecat; +var currentLocation = environment.location; +var holdRequestLib = environment.requestLib; +var holdPickupLib = environment.pickupLib; /* hold pickup lib */ +var requestor = environment.requestor || patron; +var newHold = environment.newHold; + + + +/* create some new vars based on the data we have wherever possible */ +var patronProfile; +var copyStatus; +var marcXMLDoc; + +if( patron && patron.profile ) + patronProfile = patron.profile.name; +if( copy && copy.status ) + copyStatus = copy.status.name; +if( title && title.marc ) + marcXMLDoc = new XML(title.marc); + + + +/* copy the group tree into some other useful data structures */ +var groupTree = environment.groupTree; +var groupList = {}; +var groupIDList = {}; +flattenGroupTree(groupTree); + + + + + + +/* ----------------------------------------------------------------------------- + Define all of the utility functions + ----------------------------------------------------------------------------- */ + + + +/* useful functions for creating wrappers around system functions */ +var __scratchKey = 0; +var __SCRATCH = {}; +function scratchKey() { return '_' + __scratchKey++; }; +function scratchPad(key) { return '__SCRATCH.'+ key; } +function getScratch(key) { return __SCRATCH[ key ]; } +function scratchClear() { for( var o in __SCRATCH ) __SCRATCH[o] = null; } + + +/* note: returns false if the value is 'f' or 'F' ... */ +function isTrue(d) { + if( d && + d != "0" && + d != "f" && + d != "F" ) + return true; + return false; +} + +/* Utility function for iterating over array */ +function iterate( arr, callback ) { + for( var i = 0; i < arr.length; i++ ) + callback(arr[i]); +} + + +/** + * returns a list of items that when passed to the callback + * 'func' returned true returns null if none were found + */ +function grep( arr, func ) { + var results = []; + iterate( arr, + function(d) { + if( func(d) ) + results.push(d); + } + ); + if(results.length > 0) + return results; + return null; +} + + + +function flattenGroupTree(node) { + if(!node) return null; + groupList[node.name] = node; + groupIDList[node.id] = node; + iterate( node.children, + function(n) { + flattenGroupTree(n); + } + ); +} + + + +/** + * Returns true if 'child' is equal or descends from 'parent' + * @param parent The name of the parent group + * @param child The name of the child group + */ +function isGroupDescendant( parent, child ) { + log_debug("checking descendant p="+parent + " c=" + child); + return __isGroupDescendant( + groupList[parent], + groupList[child]); +} + +function isGroupDescendantId( parentName, childId ) { + log_debug("checking descendant ID p="+parentName + " c=" + childId); + return __isGroupDescendant( + groupList[parentName], + groupIDList[childId]); +} + + +/** + * Returns true if 'child' is equal or descends from 'parent' + * @param parent The node of the parent group + * @param child The node of the child group + */ +function __isGroupDescendant( parent, child ) { + if(!(parent && child)) return false; + if (parent.id == child.id) return true; + var node = child; + while( (node = groupIDList[node.parent]) ) { + if( node.id == parent.id ) + return true; + } + return false; +} + + +function getMARCItemType() { + if( copy && + copy.circ_as_type && + copy.circ_as_type != 'undef' ) + return copy.circ_as_type; + + return (marcXMLDoc) ? extractFixedField(marcXMLDoc, 'Type') : ""; +} + + +function isOrgDescendent( parentName, childId ) { + var key = scratchKey(); + __OILS_FUNC_isOrgDescendent(scratchPad(key), parentName, childId); + var val = getScratch(key); + if( val == '1' ) return true; + return false; +} + +/* returns the number of unfulfilled holds open on this user */ +function userHoldCount(userid) { + var key = scratchKey(); + __OILS_FUNC_userHoldCount(scratchPad(key), userid); + return getScratch(key); +} + +function hasCommonAncestor( org1, org2, depth ) { + var key = scratchKey(); + __OILS_FUNC_hasCommonAncestor(scratchPad(key), org1, org2, depth); + var val = getScratch(key); + if( val == '1' ) return true; + return false; +} + +/* returns a dictionary of circmod : count for checked out items */ +function checkoutsByCircModifier(userid) { + var key = scratchKey(); + __OILS_FUNC_userCircsByCircmod(scratchPad(key), userid); + var val = getScratch(key); + return (val) ? val : {}; +} + + +/* useful for testing */ +function die(msg) { + log_error("die(): "+msg); + log_stderr("die(): "+msg); + var foo = null; + var baz = foo.bar; +} + + + +/* logs a load of info */ +function log_vars( prefix ) { + var str = prefix + ' : '; + + if(patron) { + str += ' Patron=' + patron.id; + str += ', Patron_Username='+ patron.usrname; + str += ', Patron_Profile_Group='+ patronProfile; + str += ', Patron_Fines=' + patronFines; + str += ', Patron_OverdueCount=' + patronOverdueCount; + str += ', Patron_Items_Out=' + patronItemsOut; + + try { + str += ', Patron_Barcode=' + patron.card.barcode; + str += ', Patron_Library=' + patron.home_ou.name; + } catch(e) {} + } + + if(requestor.id != patron.id) + str+= ' Requestor='+requestor.usrname; + + if(copy) { + str += ', Copy=' + copy.id; + str += ', Copy_Barcode=' + copy.barcode; + str += ', Copy_status=' + copyStatus; + str += (copy.circ_modifier) ? ', Circ_Mod=' + copy.circ_modifier : ''; + + try { + str += ', Circ_Lib=' + copy.circ_lib.shortname; + str += ', Copy_location=' + copy.location.name; + } catch(e) {} + } + + if(volume) { + str += ', Item_Owning_lib=' + volume.owning_lib; + str += ', Volume=' + volume.id; + } + + if(title) str += ', Record=' + title.id; + + if(recDescriptor) { + str += ', Record_Descriptor=' + recDescriptor.id; + str += ', Item_Type=' + recDescriptor.item_type; + str += ', Item_Form=' + recDescriptor.item_form; + str += ', Item_Lang=' + recDescriptor.item_lang; + str += ', Item_Audience=' + recDescriptor.audience; + } + + str += ', Is_Renewal: ' + ( (isTrue(isRenewal)) ? "yes" : "no" ); + str += ', Is_Precat: ' + ( (isTrue(isPrecat)) ? "yes" : "no" ); + str += (holdRequestLib) ? ', Hold_request_lib=' + holdRequestLib.shortname : ''; + str += (holdPickupLib) ? ', Hold_Pickup_Lib=' + holdPickupLib : ''; + + log_info(str); +} + + + +/** + * Returns config information for the requested group. If + * no config info exists for the requested group, then this + * function searches up the tree to find the config info + * for the nearest ancestor + * @param The name of the group who's config info to return + */ +function findGroupConfig(name) { + if(!name) return null; + var node = groupList[name]; + do { + if( GROUP_CONFIG[node.name] ) { + debugGroupConfig(name, node.name, GROUP_CONFIG[node.name]); + return GROUP_CONFIG[node.name]; + } + } while( (node = groupIDList[node.parent]) ); + return null; +} + + +/** prints out the settings for the given group config **/ +function debugGroupConfig(name, foundName, config) { + if(!config) return; + var str = "findGroupConfig('"+name+"'): returning config info for '"+ foundName +"': "; + for( var i in config ) + str += i + '=' + config[i] + ' '; + log_debug(str); +} + + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_permit_copy.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_copy.js.example new file mode 100755 index 0000000000..5475198478 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_copy.js.example @@ -0,0 +1,30 @@ +function go() { + +/* load the lib script */ +load_lib('circ/circ_lib.js'); +log_vars('circ_permit_copy'); + + +if( ! isTrue(copy.circulate) || !isTrue(copy.location.circulate) ) + result.events.push('COPY_CIRC_NOT_ALLOWED'); + + +if( ! isOrgDescendent( 'STATELIB', copy.circ_lib.id ) ) { + if( isTrue(copy.ref) ) + result.events.push('COPY_IS_REFERENCE'); +} + + + +if( ! isTrue(isRenewal) ) { + if(copyStatus != 'Available' && + copyStatus != 'On holds shelf' && copyStatus != 'Reshelving' ) { + result.events.push('COPY_NOT_AVAILABLE'); + } +} + + + +} go(); + + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_permit_hold.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_hold.js.example new file mode 100755 index 0000000000..734c5f27f1 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_hold.js.example @@ -0,0 +1,141 @@ +function go() { + +load_lib('circ/circ_lib.js'); +log_vars('circ_permit_hold'); + + +/* is a staff member placing this hold? */ +var isStaffHold = isGroupDescendantId('Staff', requestor.profile); + + +/* non-staff members are allowed 50 open holds at most */ +if( ! isStaffHold ) { + if(newHold) { + var count = userHoldCount(patron.id); + log_info("patron has " + count + " open holds"); + if( count >= 50 ) + result.events.push('MAX_HOLDS'); + } +} else { + log_info("This is a staff-placed hold"); +} + + + +if( isTrue(patron.barred) ) + result.events.push('PATRON_BARRED'); + +if( isTrue(copy.ref) ) + result.events.push('ITEM_NOT_HOLDABLE'); + +if( !isTrue(copy.circulate) ) + result.events.push('ITEM_NOT_HOLDABLE'); + +/* all STATELIB items are holdable regardless of type */ +if( isOrgDescendent('STATELIB', copy.circ_lib.id) ) return; + + +var mod = (copy.circ_modifier) ? copy.circ_modifier.toLowerCase() : ""; +var marcItemType = getMARCItemType(); + + +log_info("circ-modifier = "+mod); +log_info("marc-type = "+marcItemType); + + +if(mod == 'bestsellernh' || mod == 'eventpass') + result.events.push('ITEM_NOT_HOLDABLE'); + + +if( ( marcItemType == 'g' || + marcItemType == 'i' || + marcItemType == 'j' || + mod == 'softwrlong' || + mod == 'music' || + mod == 'audiobook' || + mod == 'av' || + mod == 'new-av' || + mod == 'cd' || + mod == 'kit' || + mod == 'dvd' || + mod == 'deposit' || + mod == 'atlas' || + mod == 'magazine' || + mod == 'equipment' || + mod == 'equip-long' || + mod == 'microform' || + mod == 'record' || + isTrue(copy.deposit) || + mod == 'videogame' || + mod == 'videogamelong' || + mod == 'video-long' || + mod == 'video' ) ) { + + + log_info("this is a range-protected item..."); + + /* ------------------------------------------------------------------------ */ + /** This patch allows DCPL and LEE patrons to place + holds on protected items accross their systems. In short, if the pickup lib, + owning lib, and patron home (or request lib) are all within either of the two + systems, allow the hold */ + if( + /* DCPL=33, LEE=115 */ + (hasCommonAncestor(holdPickupLib, 33, 1) || hasCommonAncestor(holdPickupLib, 115, 1)) && + (hasCommonAncestor(volume.owning_lib, 33, 1) || hasCommonAncestor(volume.owning_lib, 115, 1)) && + ( + hasCommonAncestor(patron.home_ou.id, 33, 1) || hasCommonAncestor(patron.home_ou.id, 115, 1) || + hasCommonAncestor(holdRequestLib.id, 33, 1) || hasCommonAncestor(holdRequestLib.id, 115, 1) + )) { + + log_info("DCPL and LEE are allowed to place holds on protected items accross the two systems"); + return; + } + /* ------------------------------------------------------------------------ */ + + /* ------------------------------------------------------------------------ */ + /** VT696 SRL-DOUG going local request 2008-12-08 through 2009-01-31.**/ + /* SRL-DOUG=135 */ + //if( copy.circ_lib == 135 && holdPickupLib != '135' ) { + // results.events.push('ITEM_NOT_HOLDABLE'); + // log_info("SRL-DOUG items must be picked up from SRL-DOUG for the time being"); + //} + /* ------------------------------------------------------------------------ */ + + if( ! hasCommonAncestor( volume.owning_lib, holdPickupLib, 1 ) ) { + + /* we don't want these items to transit to the pickup lib */ + result.events.push('ITEM_NOT_HOLDABLE'); + log_info("pickup_lib is not in the owning_lib's region...NOT OK"); + + } else { /* pickup lib is in the owning region */ + + if( isStaffHold && hasCommonAncestor( volume.owning_lib, holdRequestLib.id, 1) ) { + + /* staff in the region can place holds for patrons outside the region with local pickup lib */ + log_info("local, staff-placed hold is allowed with local pickup_lib...OK"); + + } else { + + if( hasCommonAncestor( volume.owning_lib, patron.home_ou.id, 1 ) ) { + + /* patrons can hold the item if they are registered + in the region and pickup lib is local */ + log_info("patron's home_ou is in the owning region...OK"); + + } else { + + log_info("patron's home_ou lies outside the owning region...NOT OK"); + result.events.push('ITEM_NOT_HOLDABLE'); + } + } + } +} + + + + +} go(); + + + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_permit_patron.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_patron.js.example new file mode 100755 index 0000000000..8b8cd43246 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_patron.js.example @@ -0,0 +1,36 @@ +function go() { + +/* load the script library */ +load_lib('circ/circ_lib.js'); +log_vars('circ_permit_patron'); + + + +if( isTrue(patron.barred) ) + result.events.push('PATRON_BARRED'); + + +/* --------------------------------------------------------------------- + Check the items out count + --------------------------------------------------------------------- */ +var config = findGroupConfig(patronProfile); +if( config ) { + + var limit = config.maxItemsOut; + if( limit >= 0 ) { + /* Patrons are allowed to renew regardless + of how many items they have checked out */ + log_info('patron items out = ' + patronItemsOut +' limit = ' + limit); + if( !isTrue(isRenewal) && patronItemsOut >= limit ) { + result.events.push('PATRON_EXCEEDS_CHECKOUT_COUNT'); + } + } + +} else { + log_warn("** profile has no configured information: " + patronProfile); +} + + +} go(); + + diff --git a/Open-ILS/examples/pines-examples/pines-circ/circ_permit_renew.js.example b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_renew.js.example new file mode 100755 index 0000000000..f05607b504 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-circ/circ_permit_renew.js.example @@ -0,0 +1,20 @@ +function go() { + +/* load the lib script */ +load_lib('circ/circ_lib.js'); +log_vars('circ_permit_renew'); + +log_info("permit_renew searching for potential holds for copy " + copy.barcode) +var hold = copy.fetchBestHold(); +if( hold ) { + log_info("hold found for renewal item, checking hold->usr.."); + log_info("hold = " + hold + " hold.usr = " + hold.usr + " patron.id = " + patron.id); + if( hold.usr != patron.id ) { + log_info("## Before the push."); + result.events.push('COPY_NEEDED_FOR_HOLD'); + log_info("## After the push."); + } +} + + +} go(); diff --git a/Open-ILS/examples/pines-examples/pines-survey-down.sh b/Open-ILS/examples/pines-examples/pines-survey-down.sh new file mode 100755 index 0000000000..b3c72f4cb5 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-survey-down.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd /openils/var/web/opac/skin/default/xml/home/ +rm homesearch.xml +mv homesearch.xml.orig homesearch.xml + diff --git a/Open-ILS/examples/pines-examples/pines-survey-up.sh b/Open-ILS/examples/pines-examples/pines-survey-up.sh new file mode 100755 index 0000000000..f64ac26721 --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-survey-up.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd /openils/var/web/opac/skin/default/xml/home/ +mv homesearch.xml homesearch.xml.orig +cp homesearch.xml.survey homesearch.xml diff --git a/Open-ILS/examples/pines-examples/pines-zips.txt.example b/Open-ILS/examples/pines-examples/pines-zips.txt.example new file mode 100644 index 0000000000..cf28d8cf3a --- /dev/null +++ b/Open-ILS/examples/pines-examples/pines-zips.txt.example @@ -0,0 +1,1504 @@ +26266|GA|AVONDALE ESTATES|30002|1|13|DEKALB|404 +26267|GA|AVONDALE EST|30002|0|13|| +26268|GA|NORCROSS|30003|1|13|GWINNETT|770 +26269|GA|ALPHARETTA|30004|1|13|FULTON|404/770 +26270|GA|ALPHARETTA|30005|1|13|FULTON|678 +26271|GA|MARIETTA|30006|1|13|COBB|770 +26272|GA|MARIETTA|30007|1|13|COBB|770 +26273|GA|MARIETTA|30008|1|13|COBB|678/770 +26274|GA|ALPHARETTA|30009|1|13|FULTON|404/770 +26275|GA|NORCROSS|30010|1|13|GWINNETT|770 +26276|GA|AUBURN|30011|1|13|BARROW|770 +26277|GA|CONYERS|30012|1|13|ROCKDALE|678/770 +26278|GA|CONYERS|30013|1|13|ROCKDALE|678/770 +26279|GA|COVINGTON|30014|1|13|NEWTON|678/770 +26280|GA|COVINGTON|30015|1|13|NEWTON|770 +26281|GA|COVINGTON|30016|1|13|NEWTON|678/770 +26282|GA|GRAYSON|30017|1|13|GWINNETT|770 +26283|GA|JERSEY|30018|1|13|WALTON|770 +26284|GA|DACULA|30019|1|13|GWINNETT|770 +26285|GA|CLARKSTON|30021|1|13|DEKALB|404 +26286|GA|ALPHARETTA|30022|1|13|FULTON|404/770 +26287|GA|ALPHARETTA|30023|1|13|FULTON|404/770 +26288|GA|SUWANEE|30024|1|13|GWINNETT|770 +26289|GA|SOCIAL CIRCLE|30025|1|13|WALTON|678/770 +26290|GA|NORTH METRO|30026|1|13|GWINNETT|770 +26291|GA|DULUTH|30026|0|13|| +26292|GA|CUMMING|30028|1|13|FORSYTH|770 +26293|GA|NORTH METRO|30029|1|13|GWINNETT|770 +26294|GA|DULUTH|30029|0|13|| +26295|GA|DECATUR|30030|1|13|DEKALB|404 +26296|GA|DECATUR|30031|1|13|DEKALB|404 +26297|GA|DECATUR|30032|1|13|DEKALB|404 +26298|GA|BELVEDERE|30032|0|13|| +26299|GA|DUNAIRE|30032|0|13|| +26300|GA|DECATUR|30033|1|13|DEKALB|404 +26301|GA|NORTH DECATUR|30033|0|13|| +26302|GA|VISTA GROVE|30033|0|13|| +26303|GA|DECATUR|30034|1|13|DEKALB|404 +26304|GA|DECATUR|30035|1|13|DEKALB|404 +26305|GA|SNAPFINGER|30035|0|13|| +26306|GA|DECATUR|30036|1|13|DEKALB|404 +26307|GA|DECATUR|30037|1|13|DEKALB|404 +26308|GA|LITHONIA|30038|1|13|DEKALB|678/770 +26309|GA|SNELLVILLE|30039|1|13|GWINNETT|678/770 +26310|GA|CENTERVILLE BRANCH|30039|0|13|| +26311|GA|CUMMING|30040|1|13|FORSYTH|678/770 +26312|GA|CUMMING|30041|1|13|FORSYTH|678/770 +26313|GA|LAWRENCEVILLE|30042|1|13|GWINNETT|770 +26314|GA|LAWRENCEVILLE|30043|1|13|GWINNETT|678/770 +26315|GA|LAWRENCEVILLE|30044|1|13|GWINNETT|678/770 +26316|GA|LAWRENCEVILLE|30045|1|13|GWINNETT|678/770 +26317|GA|LAWRENCEVILLE|30046|1|13|GWINNETT|770 +26318|GA|LILBURN|30047|1|13|GWINNETT|678/770 +26319|GA|LILBURN|30048|1|13|GWINNETT|678 +26320|GA|LAWRENCEVILLE|30049|1|13|GWINNETT|770 +26321|GA|LOGANVILLE|30052|1|13|WALTON|770 +26322|GA|OXFORD|30054|1|13|NEWTON|770 +26323|GA|MANSFIELD|30055|1|13|JASPER|770 +26324|GA|NEWBORN|30056|1|13|NEWTON|770 +26325|GA|LITHONIA|30058|1|13|DEKALB|678/770 +26326|GA|MARIETTA|30060|1|13|COBB|678/770 +26327|GA|ATLANTA NAVAL AIR STATION|30060|0|13|| +26328|GA|DOBBINS A F B|30060|0|13|| +26329|GA|DOBBINS AIR FORCE BASE|30060|0|13|| +26330|GA|MARIETTA|30061|1|13|COBB|770 +26331|GA|MARIETTA|30062|1|13|COBB|678/770 +26332|GA|MARIETTA|30063|1|13|COBB|770 +26333|GA|LOCKHEED|30063|0|13|| +26334|GA|MARIETTA|30064|1|13|COBB|678/770 +26335|GA|MARIETTA|30065|1|13|COBB|770 +26336|GA|MAR|30065|0|13|| +26337|GA|MRETA|30065|0|13|| +26338|GA|MARIETTA|30066|1|13|COBB|678/770 +26339|GA|MARIETTA|30067|1|13|COBB|678/770 +26340|GA|MARIETTA|30068|1|13|COBB|678/770 +26341|GA|MARIETTA|30069|1|13|COBB|770 +26342|GA|DOBBINS AFB|30069|0|13|| +26343|GA|DOBBINS AIR FORCE BASE|30069|0|13|| +26344|GA|PORTERDALE|30070|1|13|NEWTON|770 +26345|GA|NORCROSS|30071|1|13|GWINNETT|770 +26346|GA|PINE LAKE|30072|1|13|DEKALB|404 +26347|GA|REDAN|30074|1|13|DEKALB|770 +26348|GA|ROSWELL|30075|1|13|FULTON|770 +26349|GA|SANDY PLAINS|30075|0|13|| +26350|GA|ROSWELL|30076|1|13|FULTON|770 +26351|GA|ROSWELL|30077|1|13|FULTON|770 +26352|GA|SNELLVILLE|30078|1|13|GWINNETT|678/770 +26353|GA|SCOTTDALE|30079|1|13|DEKALB|404/678 +26354|GA|SMYRNA|30080|1|13|COBB|770 +26355|GA|SMYRNA|30081|1|13|COBB|770 +26356|GA|SMYRNA|30082|1|13|COBB|770 +26357|GA|STONE MOUNTAIN|30083|1|13|DEKALB|678/770 +26358|GA|MEMORIAL SQUARE|30083|0|13|| +26359|GA|ST MOUNTAIN|30083|0|13|| +26360|GA|ST MTN|30083|0|13|| +26361|GA|STONE MTN|30083|0|13|| +26362|GA|TUCKER|30084|1|13|DEKALB|770 +26363|GA|TUCKER|30085|1|13|DEKALB|770 +26364|GA|STONE MOUNTAIN|30086|1|13|DEKALB|770 +26365|GA|ST MOUNTAIN|30086|0|13|| +26366|GA|STONE MTN|30086|0|13|| +26367|GA|STONE MOUNTAIN|30087|1|13|DEKALB|678/770 +26368|GA|STONE MTN|30087|0|13|| +26369|GA|STONE MOUNTAIN|30088|1|13|DEKALB|404/678 +26370|GA|STONE MTN|30088|0|13|| +26371|GA|MARIETTA|30090|1|13|COBB|770 +26372|GA|NORCROSS|30091|1|13|GWINNETT|770 +26373|GA|NORCROSS|30092|1|13|GWINNETT|678/770 +26374|GA|BERKELEY LAKE|30092|0|13|| +26375|GA|PARKWAY|30092|0|13|| +26376|GA|PEACHTREE CORNERS|30092|0|13|| +26377|GA|NORCROSS|30093|1|13|GWINNETT|678/770 +26378|GA|ROCKBRIDGE|30093|0|13|| +26379|GA|CONYERS|30094|1|13|ROCKDALE|678/770 +26380|GA|DULUTH|30095|1|13|GWINNETT|770 +26381|GA|DULUTH|30096|1|13|GWINNETT|678/770 +26382|GA|BERKELEY LAKE|30096|0|13|| +26383|GA|DULUTH|30097|1|13|FULTON|678/770 +26384|GA|DULUTH|30098|1|13|GWINNETT|770 +26385|GA|STATE FARM INSURANCE CO|30098|0|13|| +26386|GA|DULUTH|30099|1|13|GWINNETT|770 +26387|GA|PRIMERICA FINANCIAL SERVICES|30099|0|13|| +26388|GA|ACWORTH|30101|1|13|COBB|678/770 +26389|GA|OAK GROVE|30101|0|13|| +26390|GA|ACWORTH|30102|1|13|CHEROKEE|678/770 +26391|GA|ADAIRSVILLE|30103|1|13|BARTOW|678/770 +26392|GA|ARAGON|30104|1|13|POLK|770 +26393|GA|ARMUCHEE|30105|1|13|FLOYD|706 +26394|GA|AUSTELL|30106|1|13|COBB|678/770 +26395|GA|BALL GROUND|30107|1|13|CHEROKEE|770 +26396|GA|BOWDON|30108|1|13|CARROLL|678/770 +26397|GA|BOWDON JUNCTION|30109|1|13|CARROLL|770 +26398|GA|BOWDON JCT|30109|0|13|| +26399|GA|BREMEN|30110|1|13|HARALSON|678/770 +26400|GA|CLARKDALE|30111|1|13|COBB|770 +26401|GA|CARROLLTON|30112|1|13|CARROLL|770 +26402|GA|BUCHANAN|30113|1|13|HARALSON|678/770 +26403|GA|CANTON|30114|1|13|CHEROKEE|678/770 +26404|GA|CANTON|30115|1|13|CHEROKEE|678/770 +26405|GA|CARROLLTON|30116|1|13|CARROLL|678/770 +26406|GA|CARROLLTON|30117|1|13|CARROLL|678/770 +26407|GA|WEST GEORGIA COLLEGE|30117|0|13|| +26408|GA|CARROLLTON|30118|1|13|CARROLL|770 +26409|GA|WEST GEORGIA COLLEGE|30118|0|13|| +26410|GA|CARROLLTON|30119|1|13|CARROLL|770 +26411|GA|SOUTHWIRE|30119|0|13|| +26412|GA|CARTERSVILLE|30120|1|13|BARTOW|678/770 +26413|GA|EUHARLEE|30120|0|13|| +26414|GA|NORTH CORNERS|30120|0|13|| +26415|GA|CARTERSVILLE|30121|1|13|BARTOW|678/770 +26416|GA|LITHIA SPRINGS|30122|1|13|DOUGLAS|770 +26417|GA|CASSVILLE|30123|1|13|BARTOW|770 +26418|GA|CAVE SPRING|30124|1|13|FLOYD|706 +26419|GA|CEDARTOWN|30125|1|13|POLK|678/770 +26420|GA|MABLETON|30126|1|13|COBB|770 +26421|GA|POWDER SPRINGS|30127|1|13|COBB|678/770 +26422|GA|COOSA|30129|1|13|FLOYD|706 +26423|GA|DALLAS|30132|1|13|PAULDING|678/770 +26424|GA|DOUGLASVILLE|30133|1|13|DOUGLAS|770 +26425|GA|DOUGLASVILLE|30134|1|13|DOUGLAS|678/770 +26426|GA|DOUGLASVILLE|30135|1|13|DOUGLAS|678/770 +26427|GA|EMERSON|30137|1|13|BARTOW|770 +26428|GA|ESOM HILL|30138|1|13|POLK|770 +26429|GA|FAIRMOUNT|30139|1|13|GORDON|706/770 +26430|GA|FELTON|30140|1|13|HARALSON|770 +26431|GA|HIRAM|30141|1|13|PAULDING|770 +26432|GA|HOLLY SPRINGS|30142|1|13|CHEROKEE|770 +26433|GA|JASPER|30143|1|13|PICKENS|706 +26434|GA|BIG CANOE|30143|0|13|| +26435|GA|KENNESAW|30144|1|13|COBB|770 +26436|GA|BARRETT PARKWAY|30144|0|13|| +26437|GA|KINGSTON|30145|1|13|BARTOW|678/770 +26438|GA|EUHARLEE|30145|0|13|| +26439|GA|LEBANON|30146|1|13|CHEROKEE|770 +26440|GA|LINDALE|30147|1|13|FLOYD|706 +26441|GA|MARBLE HILL|30148|1|13|PICKENS|770 +26442|GA|MARBLEHILL|30148|0|13|| +26443|GA|MOUNT BERRY|30149|1|13|FLOYD|706 +26444|GA|ROME|30149|0|13|| +26445|GA|MOUNT ZION|30150|1|13|CARROLL|770 +26446|GA|NELSON|30151|1|13|CHEROKEE|770 +26447|GA|KENNESAW|30152|1|13|COBB|770 +26448|GA|ROCKMART|30153|1|13|POLK|678/770 +26449|GA|DOUGLASVILLE|30154|1|13|DOUGLAS|770 +26450|GA|KENNESAW|30156|1|13|COBB|770 +26451|GA|DALLAS|30157|1|13|PAULDING|678/770 +26452|GA|KENNESAW|30160|1|13|COBB|770 +26453|GA|ROME|30161|1|13|FLOYD|706 +26454|GA|ROME|30162|1|13|FLOYD|706 +26455|GA|ROME|30163|1|13|FLOYD|706 +26456|GA|ROME|30164|1|13|FLOYD|706 +26457|GA|ROME|30165|1|13|FLOYD|706 +26458|GA|AUSTELL|30168|1|13|COBB|678/770 +26459|GA|CANTON|30169|1|13|CHEROKEE|770 +26460|GA|ROOPVILLE|30170|1|13|CARROLL|678/770 +26461|GA|EPHESUS|30170|0|13|| +26462|GA|RYDAL|30171|1|13|BARTOW|770 +26463|GA|SHANNON|30172|1|13|FLOYD|706 +26464|GA|SILVER CREEK|30173|1|13|FLOYD|706 +26465|GA|TALKING ROCK|30175|1|13|PICKENS|706 +26466|GA|TALLAPOOSA|30176|1|13|HARALSON|678/770 +26467|GA|TATE|30177|1|13|PICKENS|770 +26468|GA|TAYLORSVILLE|30178|1|13|BARTOW|770 +26469|GA|TEMPLE|30179|1|13|CARROLL|678/770 +26470|GA|VILLA RICA|30180|1|13|CARROLL|678/770 +26471|GA|WACO|30182|1|13|HARALSON|770 +26472|GA|WALESKA|30183|1|13|CHEROKEE|770 +26473|GA|LAKE ARROWHEAD|30183|0|13|| +26474|GA|WHITE|30184|1|13|BARTOW|770 +26475|GA|WHITESBURG|30185|1|13|CARROLL|770 +26476|GA|WINSTON|30187|1|13|DOUGLAS|770 +26477|GA|WOODSTOCK|30188|1|13|CHEROKEE|678/770 +26478|GA|WOODSTOCK|30189|1|13|CHEROKEE|678/770 +26479|GA|BARNESVILLE|30204|1|13|LAMAR|678/770 +26480|GA|BROOKS|30205|1|13|FAYETTE|770 +26481|GA|CONCORD|30206|1|13|PIKE|770 +26482|GA|EXPERIMENT|30212|1|13|SPALDING|770 +26483|GA|FAIRBURN|30213|1|13|FULTON|770 +26484|GA|FAYETTEVILLE|30214|1|13|FAYETTE|678/770 +26485|GA|WOOLSEY|30214|0|13|| +26486|GA|FAYETTEVILLE|30215|1|13|FAYETTE|678/770 +26487|GA|FLOVILLA|30216|1|13|BUTTS|770 +26488|GA|INDIAN SPRINGS|30216|0|13|| +26489|GA|FRANKLIN|30217|1|13|HEARD|706 +26490|GA|GAY|30218|1|13|MERIWETHER|706 +26491|GA|GLENN|30219|1|13|HEARD|706 +26492|GA|GRANTVILLE|30220|1|13|COWETA|678/770 +26493|GA|GREENVILLE|30222|1|13|MERIWETHER|706 +26494|GA|STOVALL|30222|0|13|| +26495|GA|GRIFFIN|30223|1|13|SPALDING|678/770 +26496|GA|GRIFFIN|30224|1|13|SPALDING|770 +26497|GA|HAMPTON|30228|1|13|HENRY|770 +26498|GA|HARALSON|30229|1|13|COWETA|770 +26499|GA|HOGANSVILLE|30230|1|13|TROUP|706 +26500|GA|JACKSON|30233|1|13|BUTTS|678/770 +26501|GA|JENKINSBURG|30234|1|13|BUTTS|770 +26502|GA|JONESBORO|30236|1|13|CLAYTON|678/770 +26503|GA|JONESBORO|30237|1|13|CLAYTON|678 +26504|GA|JONESBORO|30238|1|13|CLAYTON|678/770 +26505|GA|LAGRANGE|30240|1|13|TROUP|706 +26506|GA|LAGRANGE|30241|1|13|TROUP|706 +26507|GA|LOCUST GROVE|30248|1|13|HENRY|770 +26508|GA|LOVEJOY|30250|1|13|CLAYTON|770 +26509|GA|LUTHERSVILLE|30251|1|13|MERIWETHER|678/770 +26510|GA|MCDONOUGH|30252|1|13|HENRY|678/770 +26511|GA|MCDONOUGH|30253|1|13|HENRY|678/770 +26512|GA|MC DONOUGH|30253|0|13|| +26513|GA|MEANSVILLE|30256|1|13|PIKE|770 +26514|GA|MILNER|30257|1|13|LAMAR|770 +26515|GA|MOLENA|30258|1|13|PIKE|770 +26516|GA|MORELAND|30259|1|13|COWETA|770 +26517|GA|MORROW|30260|1|13|CLAYTON|770 +26518|GA|LAKE CITY|30260|0|13|| +26519|GA|LAGRANGE|30261|1|13|TROUP|706 +26520|GA|MOUNTVILLE|30261|0|13|| +26521|GA|NEWNAN|30263|1|13|COWETA|678/770 +26522|GA|RAYMOND|30263|0|13|| +26523|GA|NEWNAN|30264|1|13|COWETA|678/770 +26524|GA|NEWNAN|30265|1|13|COWETA|678/770 +26525|GA|SHENANDOAH|30265|0|13|| +26526|GA|ORCHARD HILL|30266|1|13|SPALDING|770 +26527|GA|PALMETTO|30268|1|13|FULTON|770 +26528|GA|PEACHTREE CITY|30269|1|13|FAYETTE|770 +26529|GA|PEACHTREE CITY|30270|1|13|FAYETTE|770 +26530|GA|FAYETTEVILLE|30270|0|13|| +26531|GA|PEACHTREE CITY PARCEL RETURN|30270|0|13|| +26532|GA|NEWNAN|30271|1|13|COWETA|770 +26533|GA|RED OAK|30272|1|13|FULTON|404 +26534|GA|REX|30273|1|13|CLAYTON|770 +26535|GA|RIVERDALE|30274|1|13|CLAYTON|770 +26536|GA|SARGENT|30275|1|13|COWETA|770 +26537|GA|SENOIA|30276|1|13|COWETA|678/770 +26538|GA|SHARPSBURG|30277|1|13|COWETA|770 +26539|GA|STOCKBRIDGE|30281|1|13|HENRY|678/770 +26540|GA|SUNNY SIDE|30284|1|13|SPALDING|770 +26541|GA|THE ROCK|30285|1|13|UPSON|706 +26542|GA|THOMASTON|30286|1|13|UPSON|706 +26543|GA|MORROW|30287|1|13|CLAYTON|770 +26544|GA|CONLEY|30288|1|13|CLAYTON|404 +26545|GA|TURIN|30289|1|13|COWETA|770 +26546|GA|TYRONE|30290|1|13|FAYETTE|770 +26547|GA|UNION CITY|30291|1|13|FULTON|770 +26548|GA|WILLIAMSON|30292|1|13|PIKE|770 +26549|GA|WOODBURY|30293|1|13|MERIWETHER|706 +26550|GA|ELLENWOOD|30294|1|13|DEKALB|770 +26551|GA|ZEBULON|30295|1|13|PIKE|678/770 +26552|GA|RIVERDALE|30296|1|13|CLAYTON|770 +26553|GA|CHURCH STREET|30296|0|13|| +26554|GA|FOREST PARK|30297|1|13|CLAYTON|404 +26555|GA|FORT GILLEM|30297|0|13|| +26556|GA|FOREST PARK|30298|1|13|CLAYTON|404 +26557|GA|FOREST|30298|0|13|| +26558|GA|ATLANTA|30301|1|13|FULTON|404/678 +26559|GA|ATL|30301|0|13|| +26560|GA|ATLANTA|30302|1|13|FULTON|404/770 +26561|GA|ATL|30302|0|13|| +26562|GA|ATLANTA|30303|1|13|FULTON|404/678 +26563|GA|ATL|30303|0|13|| +26564|GA|GEORGIA STATE UNIVERSITY|30303|0|13|| +26565|GA|ATLANTA|30304|1|13|FULTON|404/770 +26566|GA|ATL|30304|0|13|| +26567|GA|ATLANTA|30305|1|13|FULTON|404/678 +26568|GA|ATL|30305|0|13|| +26569|GA|ATLANTA|30306|1|13|FULTON|404/678 +26570|GA|ATL|30306|0|13|| +26571|GA|NORTH HIGHLAND FINANCE|30306|0|13|| +26572|GA|ATLANTA|30307|1|13|FULTON|404/678 +26573|GA|ATL|30307|0|13|| +26574|GA|LITTLE FIVE POINTS PSTL STR|30307|0|13|| +26575|GA|ATLANTA|30308|1|13|FULTON|404/678 +26576|GA|ATL|30308|0|13|| +26577|GA|ATLANTA|30309|1|13|FULTON|404/678 +26578|GA|ATL|30309|0|13|| +26579|GA|ATLANTA|30310|1|13|FULTON|404/678 +26580|GA|ATL|30310|0|13|| +26581|GA|FORT MCPHERSON|30310|0|13|| +26582|GA|ATLANTA|30311|1|13|FULTON|404/678 +26583|GA|ATL|30311|0|13|| +26584|GA|ATLANTA|30312|1|13|FULTON|404/678 +26585|GA|ATL|30312|0|13|| +26586|GA|ATLANTA|30313|1|13|FULTON|404/678 +26587|GA|ATL|30313|0|13|| +26588|GA|ATLANTA|30314|1|13|FULTON|404/678 +26589|GA|ATL|30314|0|13|| +26590|GA|ATLANTA|30315|1|13|FULTON|404/678 +26591|GA|ATL|30315|0|13|| +26592|GA|ATLANTA|30316|1|13|FULTON|404/678 +26593|GA|ATL|30316|0|13|| +26594|GA|ATLANTA|30317|1|13|DEKALB|404/770 +26595|GA|ATL|30317|0|13|| +26596|GA|ATLANTA|30318|1|13|FULTON|404/678 +26597|GA|ATL|30318|0|13|| +26598|GA|ATLANTA|30319|1|13|DEKALB|404/678 +26599|GA|ATL|30319|0|13|| +26600|GA|NORTH ATLANTA|30319|0|13|| +26601|GA|ATLANTA|30320|1|13|FULTON|404 +26602|GA|AIRPORT MAIL CENTER|30320|0|13|| +26603|GA|ATL|30320|0|13|| +26604|GA|ATLANTA|30321|1|13|FULTON|404 +26605|GA|ATL|30321|0|13|| +26606|GA|ATLANTA|30322|1|13|DEKALB|404 +26607|GA|ATL|30322|0|13|| +26608|GA|EMORY UNIVERSITY|30322|0|13|| +26609|GA|ATLANTA|30324|1|13|FULTON|404/678 +26610|GA|ATL|30324|0|13|| +26611|GA|ATLANTA|30325|1|13|FULTON|770 +26612|GA|ATL|30325|0|13|| +26613|GA|ATLANTA|30326|1|13|FULTON|404/678 +26614|GA|ATL|30326|0|13|| +26615|GA|ATLANTA|30327|1|13|FULTON|404/678 +26616|GA|ATL|30327|0|13|| +26617|GA|ATLANTA|30328|1|13|FULTON|404/678 +26618|GA|ATL|30328|0|13|| +26619|GA|SANDY SPRINGS|30328|0|13|| +26620|GA|ATLANTA|30329|1|13|DEKALB|404/678 +26621|GA|ATL|30329|0|13|| +26622|GA|BRIARCLIFF|30329|0|13|| +26623|GA|ATLANTA|30330|1|13|FULTON|404/678 +26624|GA|ATL|30330|0|13|| +26625|GA|FORT MCPHERSON|30330|0|13|| +26626|GA|FT MCPHERSON|30330|0|13|| +26627|GA|ATLANTA|30331|1|13|FULTON|404/770 +26628|GA|ATL|30331|0|13|| +26629|GA|ATLANTA|30332|1|13|FULTON|404 +26630|GA|ATL|30332|0|13|| +26631|GA|ATLANTA|30333|1|13|DEKALB|404/770 +26632|GA|ATL|30333|0|13|| +26633|GA|DRUID HILLS|30333|0|13|| +26634|GA|ATLANTA|30334|1|13|FULTON|404/678 +26635|GA|ATL|30334|0|13|| +26636|GA|ATLANTA|30336|1|13|FULTON|404 +26637|GA|ATL|30336|0|13|| +26638|GA|INDUSTRIAL|30336|0|13|| +26639|GA|ATLANTA|30337|1|13|FULTON|404/678 +26640|GA|ATL|30337|0|13|| +26641|GA|COLLEGE PARK|30337|0|13|| +26642|GA|ATLANTA|30338|1|13|DEKALB|404/678 +26643|GA|ATL|30338|0|13|| +26644|GA|DUNWOODY|30338|0|13|| +26645|GA|NORTH SPRINGS|30338|0|13|| +26646|GA|ATLANTA|30339|1|13|FULTON|404/678 +26647|GA|ATL|30339|0|13|| +26648|GA|CUMBERLAND|30339|0|13|| +26649|GA|OVERLOOK SRU|30339|0|13|| +26650|GA|SMYRNA|30339|0|13|| +26651|GA|VININGS|30339|0|13|| +26652|GA|VINNINGS|30339|0|13|| +26653|GA|ATLANTA|30340|1|13|DEKALB|404/678 +26654|GA|ATL|30340|0|13|| +26655|GA|DORAVILLE|30340|0|13|| +26656|GA|ATLANTA|30341|1|13|DEKALB|404/678 +26657|GA|ATL|30341|0|13|| +26658|GA|CHAMBLEE|30341|0|13|| +26659|GA|ATLANTA|30342|1|13|FULTON|404/678 +26660|GA|ATL|30342|0|13|| +26661|GA|TUXEDO|30342|0|13|| +26662|GA|ATLANTA|30343|1|13|FULTON|404/770 +26663|GA|ATL|30343|0|13|| +26664|GA|ATLANTA|30344|1|13|FULTON|404/678 +26665|GA|ATL|30344|0|13|| +26666|GA|EAST POINT|30344|0|13|| +26667|GA|ATLANTA|30345|1|13|DEKALB|404/678 +26668|GA|ATL|30345|0|13|| +26669|GA|ATLANTA|30346|1|13|DEKALB|404/678 +26670|GA|ATL|30346|0|13|| +26671|GA|ATLANTA|30347|1|13|FULTON|404 +26672|GA|ATL|30347|0|13|| +26673|GA|EXECUTIVE PARK|30347|0|13|| +26674|GA|ATLANTA|30348|1|13|FULTON|404/770 +26675|GA|ATL|30348|0|13|| +26676|GA|ATLANTA|30349|1|13|FULTON|404/678 +26677|GA|ATL|30349|0|13|| +26678|GA|COLLEGE PARK|30349|0|13|| +26679|GA|ATLANTA|30350|1|13|DEKALB|404/678 +26680|GA|ATL|30350|0|13|| +26681|GA|SANDY SPRINGS|30350|0|13|| +26682|GA|ATLANTA|30353|1|13|FULTON|404/770 +26683|GA|ATL|30353|0|13|| +26684|GA|ATLANTA|30354|1|13|FULTON|404/678 +26685|GA|ATL|30354|0|13|| +26686|GA|HAPEVILLE|30354|0|13|| +26687|GA|ATLANTA|30355|1|13|FULTON|404 +26688|GA|ATL|30355|0|13|| +26689|GA|ATLANTA|30356|1|13|DEKALB|404 +26690|GA|ATL|30356|0|13|| +26691|GA|DUNWOODY|30356|0|13|| +26692|GA|ATLANTA|30357|1|13|FULTON|404/770 +26693|GA|ATL|30357|0|13|| +26694|GA|ATLANTA|30358|1|13|FULTON|404/770 +26695|GA|ATL|30358|0|13|| +26696|GA|SANDY SPRINGS|30358|0|13|| +26697|GA|ATLANTA|30359|1|13|DEKALB|404 +26698|GA|ATL|30359|0|13|| +26699|GA|ATLANTA|30360|1|13|DEKALB|678/770 +26700|GA|ATL|30360|0|13|| +26701|GA|DORAVILLE|30360|0|13|| +26702|GA|WINTERS CHAPEL|30360|0|13|| +26703|GA|ATLANTA|30361|1|13|FULTON|404/678 +26704|GA|ATL|30361|0|13|| +26705|GA|ATLANTA|30362|1|13|DEKALB|404/770 +26706|GA|ATL|30362|0|13|| +26707|GA|DORAVILLE|30362|0|13|| +26708|GA|ATLANTA|30363|1|13|FULTON|404 +26709|GA|ATLANTA|30364|1|13|FULTON|404/770 +26710|GA|ATL|30364|0|13|| +26711|GA|EAST POINT|30364|0|13|| +26712|GA|ATLANTA|30366|1|13|DEKALB|404/770 +26713|GA|ATL|30366|0|13|| +26714|GA|CHAMBLEE|30366|0|13|| +26715|GA|ATLANTA|30368|1|13|FULTON|404/770 +26716|GA|ATL|30368|0|13|| +26717|GA|SUNTRUST|30368|0|13|| +26718|GA|ATLANTA|30369|1|13|FULTON|404/678 +26719|GA|ATL|30369|0|13|| +26720|GA|U S P S BULK MAIL CTR|30369|0|13|| +26721|GA|ATLANTA|30370|1|13|FULTON|404/770 +26722|GA|ATL|30370|0|13|| +26723|GA|ATLANTA|30371|1|13|FULTON|404/770 +26724|GA|ATL|30371|0|13|| +26725|GA|ATLANTA|30374|1|13|FULTON|404 +26726|GA|ATL|30374|0|13|| +26727|GA|ATLANTA|30375|1|13|FULTON|404 +26728|GA|ATL|30375|0|13|| +26729|GA|SOUTHERN BELL|30375|0|13|| +26730|GA|ATLANTA|30376|1|13|FULTON|404/770 +26731|GA|ATL|30376|0|13|| +26732|GA|ATLANTA|30377|1|13|FULTON|404/770 +26733|GA|ATL|30377|0|13|| +26734|GA|ATLANTA|30378|1|13|FULTON|404/770 +26735|GA|ATL|30378|0|13|| +26736|GA|ATLANTA|30379|1|13|FULTON|404/770 +26737|GA|ATL|30379|0|13|| +26738|GA|ATLANTA|30380|1|13|FULTON|404/770 +26739|GA|ATL|30380|0|13|| +26740|GA|ATLANTA POSTAL CREDIT UNION|30380|0|13|| +26741|GA|ATLANTA|30384|1|13|FULTON|404/770 +26742|GA|ATL|30384|0|13|| +26743|GA|BANKAMERICA CORPORATION|30384|0|13|| +26744|GA|ATLANTA|30385|1|13|FULTON|404/770 +26745|GA|ATL|30385|0|13|| +26746|GA|SOUTHERN BELL|30385|0|13|| +26747|GA|ATLANTA|30386|1|13|FULTON|404/770 +26748|GA|ATL|30386|0|13|| +26749|GA|SEARS ROEBUCK CO|30386|0|13|| +26750|GA|ATLANTA|30387|1|13|FULTON|404/770 +26751|GA|ATL|30387|0|13|| +26752|GA|J C PENNEY|30387|0|13|| +26753|GA|ATLANTA|30388|1|13|FULTON|404/770 +26754|GA|ATL|30388|0|13|| +26755|GA|AVON|30388|0|13|| +26756|GA|ATLANTA|30389|1|13|FULTON|404/770 +26757|GA|ATL|30389|0|13|| +26758|GA|ATLANTA GAS LIGHT|30389|0|13|| +26759|GA|ATLANTA|30390|1|13|FULTON|404/770 +26760|GA|ATL|30390|0|13|| +26761|GA|J C PENNEY|30390|0|13|| +26762|GA|ATLANTA|30392|1|13|FULTON|404/770 +26763|GA|ATL|30392|0|13|| +26764|GA|ATLANTA|30394|1|13|FULTON|404/770 +26765|GA|ATL|30394|0|13|| +26766|GA|ATLANTA|30396|1|13|FULTON|404/770 +26767|GA|ATL|30396|0|13|| +26768|GA|GEORGIA POWER|30396|0|13|| +26769|GA|ATLANTA|30398|1|13|FULTON|404/770 +26770|GA|ATL|30398|0|13|| +26771|GA|BANK SOUTH|30398|0|13|| +26772|GA|ATLANTA|30399|1|13|FULTON|404/770 +26773|GA|ATL|30399|0|13|| +26774|GA|BANKAMERICA CORPORATION|30399|0|13|| +26775|GA|SWAINSBORO|30401|1|13|EMANUEL|478/912 +26776|GA|BLUN|30401|0|13|| +26777|GA|BLUNDALE|30401|0|13|| +26778|GA|COVENA|30401|0|13|| +26779|GA|DELLWOOD|30401|0|13|| +26780|GA|GARY|30401|0|13|| +26781|GA|KEMP|30401|0|13|| +26782|GA|LEXSY|30401|0|13|| +26783|GA|MODOC|30401|0|13|| +26784|GA|OAK PARK|30401|0|13|| +26785|GA|SUMMERTOWN|30401|0|13|| +26786|GA|WESLEY|30401|0|13|| +26787|GA|AILEY|30410|1|13|MONTGOMERY|912 +26788|GA|HIGGSTON|30410|0|13|| +26789|GA|MCGREGOR|30410|0|13|| +26790|GA|OAK PARK|30410|0|13|| +26791|GA|ALAMO|30411|1|13|WHEELER|912 +26792|GA|ALSTON|30412|1|13|MONTGOMERY|912 +26793|GA|BARTOW|30413|1|13|JEFFERSON|478 +26794|GA|BELLVILLE|30414|1|13|EVANS|912 +26795|GA|CLAXTON|30414|0|13|| +26796|GA|BROOKLET|30415|1|13|BULLOCH|912 +26797|GA|AKIN|30415|0|13|| +26798|GA|ARCOLA|30415|0|13|| +26799|GA|DENMARK|30415|0|13|| +26800|GA|HUBERT|30415|0|13|| +26801|GA|IVANHOE|30415|0|13|| +26802|GA|MCGREGOR|30415|0|13|| +26803|GA|STILSON|30415|0|13|| +26804|GA|CLAXTON|30417|1|13|EVANS|912 +26805|GA|COBBTOWN|30420|1|13|TATTNALL|912 +26806|GA|ALINE|30420|0|13|| +26807|GA|COLLINS|30421|1|13|TATTNALL|912 +26808|GA|DAISY|30423|1|13|EVANS|912 +26809|GA|DOVER|30424|1|13|SCREVEN|912 +26810|GA|GARFIELD|30425|1|13|EMANUEL|478 +26811|GA|GIRARD|30426|1|13|BURKE|478 +26812|GA|GLENNVILLE|30427|1|13|TATTNALL|912 +26813|GA|MENDES|30427|0|13|| +26814|GA|TISON|30427|0|13|| +26815|GA|GLENWOOD|30428|1|13|WHEELER|912 +26816|GA|HAGAN|30429|1|13|EVANS|912 +26817|GA|LOUISVILLE|30434|1|13|JEFFERSON|478 +26818|GA|GRANGE|30434|0|13|| +26819|GA|ROSIER|30434|0|13|| +26820|GA|VIDETTE|30434|0|13|| +26821|GA|LYONS|30436|1|13|TOOMBS|912 +26822|GA|CEDAR CROSSING|30436|0|13|| +26823|GA|JOHNSON CORNER|30436|0|13|| +26824|GA|NEW BRANCH|30436|0|13|| +26825|GA|NEWBRANCH|30436|0|13|| +26826|GA|OHOOPEE|30436|0|13|| +26827|GA|SANTA CLAUS|30436|0|13|| +26828|GA|STANLEYS STORE|30436|0|13|| +26829|GA|MANASSAS|30438|1|13|TATTNALL|912 +26830|GA|CLAXTON|30438|0|13|| +26831|GA|METTER|30439|1|13|CANDLER|912 +26832|GA|EXCELSIOR|30439|0|13|| +26833|GA|MIDVILLE|30441|1|13|BURKE|478 +26834|GA|COLEMAN LAKE|30441|0|13|| +26835|GA|COLEMANS LAKE|30441|0|13|| +26836|GA|GREEN WAY|30441|0|13|| +26837|GA|GREENWAY|30441|0|13|| +26838|GA|HERNDON|30441|0|13|| +26839|GA|MILLEN|30442|1|13|JENKINS|478 +26840|GA|BIRDSVILLE|30442|0|13|| +26841|GA|BUTTS|30442|0|13|| +26842|GA|EMMALANE|30442|0|13|| +26843|GA|SCARBORO|30442|0|13|| +26844|GA|THRIFT|30442|0|13|| +26845|GA|MOUNT VERNON|30445|1|13|MONTGOMERY|912 +26846|GA|NEWINGTON|30446|1|13|SCREVEN|912 +26847|GA|NORRISTOWN|30447|1|13|EMANUEL|478 +26848|GA|NUNEZ|30448|1|13|EMANUEL|478 +26849|GA|OLIVER|30449|1|13|SCREVEN|912 +26850|GA|PORTAL|30450|1|13|BULLOCH|912 +26851|GA|AARON|30450|0|13|| +26852|GA|PULASKI|30451|1|13|CANDLER|912 +26853|GA|REGISTER|30452|1|13|BULLOCH|912 +26854|GA|REIDSVILLE|30453|1|13|TATTNALL|912 +26855|GA|ROCKLEDGE|30454|1|13|LAURENS|478 +26856|GA|ROCKY FORD|30455|1|13|SCREVEN|912 +26857|GA|SARDIS|30456|1|13|BURKE|478 +26858|GA|SOPERTON|30457|1|13|TREUTLEN|912 +26859|GA|STATESBORO|30458|1|13|BULLOCH|912 +26860|GA|STATESBORO|30459|1|13|BULLOCH|912 +26861|GA|STATESBORO|30460|1|13|BULLOCH|912 +26862|GA|STATESBORO|30461|1|13|BULLOCH|912 +26863|GA|STILLMORE|30464|1|13|EMANUEL|478 +26864|GA|SYLVANIA|30467|1|13|SCREVEN|912 +26865|GA|HILTONIA|30467|0|13|| +26866|GA|TARRYTOWN|30470|1|13|MONTGOMERY|912 +26867|GA|TWIN CITY|30471|1|13|EMANUEL|478 +26868|GA|CANOOCHEE|30471|0|13|| +26869|GA|UVALDA|30473|1|13|MONTGOMERY|912 +26870|GA|VIDALIA|30474|1|13|TOOMBS|912 +26871|GA|CENTER|30474|0|13|| +26872|GA|CHARLES|30474|0|13|| +26873|GA|KIBBEE|30474|0|13|| +26874|GA|NORMANTOWN|30474|0|13|| +26875|GA|PETROSS|30474|0|13|| +26876|GA|VIDALIA|30475|1|13|TOOMBS|912 +26877|GA|WADLEY|30477|1|13|JEFFERSON|478 +26878|GA|MOXLEY|30477|0|13|| +26879|GA|REIDSVILLE|30499|1|13|TATTNALL|912 +26880|GA|GEORGIA STATE PENITENTIARY|30499|0|13|| +26881|GA|GAINESVILLE|30501|1|13|HALL|678/770 +26882|GA|WESTSIDE|30501|0|13|| +26883|GA|CHESTNUT MOUNTAIN|30502|1|13|HALL|770 +26884|GA|OAKWOOD|30502|0|13|| +26885|GA|GAINESVILLE|30503|1|13|HALL|770 +26886|GA|GAINESVILLE|30504|1|13|HALL|678/770 +26887|GA|GAINESVILLE|30506|1|13|HALL|678/770 +26888|GA|GAINESVILLE|30507|1|13|HALL|678/770 +26889|GA|ALTO|30510|1|13|HABERSHAM|706 +26890|GA|BALDWIN|30511|1|13|BANKS|706 +26891|GA|BLAIRSVILLE|30512|1|13|UNION|706 +26892|GA|BLUE RIDGE|30513|1|13|FANNIN|706 +26893|GA|BLAIRSVILLE|30514|1|13|UNION|706 +26894|GA|BUFORD|30515|1|13|GWINNETT|770 +26895|GA|BOWERSVILLE|30516|1|13|HART|706 +26896|GA|BRASELTON|30517|1|13|JACKSON|706 +26897|GA|BUFORD|30518|1|13|GWINNETT|678/770 +26898|GA|SUGAR HILL|30518|0|13|| +26899|GA|SUGARHILL|30518|0|13|| +26900|GA|BUFORD|30519|1|13|GWINNETT|678/770 +26901|GA|CANON|30520|1|13|FRANKLIN|706 +26902|GA|CARNESVILLE|30521|1|13|FRANKLIN|706 +26903|GA|CHERRYLOG|30522|1|13|GILMER|706 +26904|GA|CLARKESVILLE|30523|1|13|HABERSHAM|706 +26905|GA|CLAYTON|30525|1|13|RABUN|706 +26906|GA|CLERMONT|30527|1|13|HALL|678/770 +26907|GA|CLEVELAND|30528|1|13|WHITE|706 +26908|GA|COMMERCE|30529|1|13|JACKSON|706 +26909|GA|COMMERCE|30530|1|13|BANKS|706 +26910|GA|CORNELIA|30531|1|13|HABERSHAM|706 +26911|GA|DAHLONEGA|30533|1|13|LUMPKIN|706 +26912|GA|DAWSONVILLE|30534|1|13|DAWSON|706 +26913|GA|DEMOREST|30535|1|13|HABERSHAM|706 +26914|GA|ELLIJAY|30536|1|13|GILMER|706 +26915|GA|DILLARD|30537|1|13|RABUN|706 +26916|GA|SKY VALLEY|30537|0|13|| +26917|GA|EASTANOLLEE|30538|1|13|STEPHENS|706 +26918|GA|EAST ELLIJAY|30539|1|13|GILMER|706 +26919|GA|ELLIJAY|30540|1|13|GILMER|706 +26920|GA|EAST ELLIJAY|30540|0|13|| +26921|GA|EPWORTH|30541|1|13|FANNIN|706 +26922|GA|FLOWERY BRANCH|30542|1|13|HALL|678/770 +26923|GA|GILLSVILLE|30543|1|13|HALL|770 +26924|GA|DEMOREST|30544|1|13|HABERSHAM|706 +26925|GA|HABERSHAM|30544|0|13|| +26926|GA|HELEN|30545|1|13|WHITE|706 +26927|GA|HIAWASSEE|30546|1|13|TOWNS|706 +26928|GA|HOMER|30547|1|13|BANKS|706 +26929|GA|HOSCHTON|30548|1|13|JACKSON|706 +26930|GA|JEFFERSON|30549|1|13|JACKSON|706 +26931|GA|LAKEMONT|30552|1|13|RABUN|706 +26932|GA|LAVONIA|30553|1|13|FRANKLIN|706 +26933|GA|LULA|30554|1|13|HALL|678/770 +26934|GA|MC CAYSVILLE|30555|1|13|FANNIN|706 +26935|GA|FRY|30555|0|13|| +26936|GA|MCCAYSVILLE|30555|0|13|| +26937|GA|MARTIN|30557|1|13|STEPHENS|706 +26938|GA|MAYSVILLE|30558|1|13|BANKS|706 +26939|GA|MINERAL BLUFF|30559|1|13|FANNIN|706 +26940|GA|MORGANTON|30560|1|13|FANNIN|706 +26941|GA|MOUNTAIN CITY|30562|1|13|RABUN|706 +26942|GA|MOUNT AIRY|30563|1|13|HABERSHAM|706 +26943|GA|MURRAYVILLE|30564|1|13|HALL|770 +26944|GA|NICHOLSON|30565|1|13|JACKSON|706 +26945|GA|OAKWOOD|30566|1|13|HALL|770 +26946|GA|PENDERGRASS|30567|1|13|JACKSON|706 +26947|GA|RABUN GAP|30568|1|13|RABUN|706 +26948|GA|SAUTEE NACOOCHEE|30571|1|13|WHITE|706 +26949|GA|SUCHES|30572|1|13|UNION|706 +26950|GA|TALLULAH FALLS|30573|1|13|RABUN|706 +26951|GA|TALMO|30575|1|13|JACKSON|706 +26952|GA|TIGER|30576|1|13|RABUN|706 +26953|GA|TOCCOA|30577|1|13|STEPHENS|706 +26954|GA|TURNERVILLE|30580|1|13|HABERSHAM|706 +26955|GA|WILEY|30581|1|13|RABUN|706 +26956|GA|YOUNG HARRIS|30582|1|13|TOWNS|706 +26957|GA|ALTO|30596|1|13|HABERSHAM|706 +26958|GA|GA INDUSTRIAL INSTITUTE|30596|0|13|| +26959|GA|DAHLONEGA|30597|1|13|LUMPKIN|706 +26960|GA|NORTH GEORGIA COLLEGE|30597|0|13|| +26961|GA|TOCCOA FALLS|30598|1|13|STEPHENS|706 +26962|GA|COMMERCE|30599|1|13|JACKSON|706 +26963|GA|BAKER-TAYLOR|30599|0|13|| +26964|GA|ATHENS|30601|1|13|CLARKE|706 +26965|GA|ATHENS|30602|1|13|CLARKE|706 +26966|GA|ATHENS|30603|1|13|CLARKE|706 +26967|GA|ATHENS|30604|1|13|CLARKE|706 +26968|GA|ATHENS|30605|1|13|CLARKE|706 +26969|GA|ATHENS|30606|1|13|CLARKE|706 +26970|GA|NAVY SUPPLY CORPS SCHOOL|30606|0|13|| +26971|GA|ATHENS|30607|1|13|CLARKE|706 +26972|GA|ATHENS|30608|1|13|CLARKE|706 +26973|GA|ATHENS|30609|1|13|CLARKE|706 +26974|GA|ATHENS|30612|1|13|CLARKE|706 +26975|GA|ARNOLDSVILLE|30619|1|13|OGLETHORPE|706 +26976|GA|BETHLEHEM|30620|1|13|BARROW|770 +26977|GA|BISHOP|30621|1|13|OCONEE|706 +26978|GA|BOGART|30622|1|13|OCONEE|770 +26979|GA|BOSTWICK|30623|1|13|MORGAN|706 +26980|GA|BOWMAN|30624|1|13|ELBERT|706 +26981|GA|BUCKHEAD|30625|1|13|MORGAN|706 +26982|GA|CARLTON|30627|1|13|MADISON|706 +26983|GA|COLBERT|30628|1|13|MADISON|706 +26984|GA|COMER|30629|1|13|MADISON|706 +26985|GA|CRAWFORD|30630|1|13|OGLETHORPE|706 +26986|GA|CRAWFORDVILLE|30631|1|13|TALIAFERRO|706 +26987|GA|DANIELSVILLE|30633|1|13|MADISON|706 +26988|GA|DEWY ROSE|30634|1|13|ELBERT|706 +26989|GA|ELBERTON|30635|1|13|ELBERT|706 +26990|GA|FARMINGTON|30638|1|13|OCONEE|706 +26991|GA|FRANKLIN SPRINGS|30639|1|13|FRANKLIN|706 +26992|GA|GOOD HOPE|30641|1|13|WALTON|770 +26993|GA|GREENSBORO|30642|1|13|GREENE|706 +26994|GA|REYNOLDS PLANTATION|30642|0|13|| +26995|GA|HARTWELL|30643|1|13|HART|706 +26996|GA|HIGH SHOALS|30645|1|13|MORGAN|706 +26997|GA|HULL|30646|1|13|MADISON|706 +26998|GA|ILA|30647|1|13|MADISON|706 +26999|GA|LEXINGTON|30648|1|13|OGLETHORPE|706 +27000|GA|MADISON|30650|1|13|MORGAN|706 +27001|GA|MONROE|30655|1|13|WALTON|770 +27002|GA|MONROE|30656|1|13|WALTON|770 +27003|GA|RAYLE|30660|1|13|WILKES|706 +27004|GA|PHILOMATH|30660|0|13|| +27005|GA|ROYSTON|30662|1|13|FRANKLIN|706 +27006|GA|RUTLEDGE|30663|1|13|MORGAN|706 +27007|GA|SHARON|30664|1|13|TALIAFERRO|706 +27008|GA|SILOAM|30665|1|13|GREENE|706 +27009|GA|STATHAM|30666|1|13|BARROW|678/770 +27010|GA|STEPHENS|30667|1|13|OGLETHORPE|706 +27011|GA|TIGNALL|30668|1|13|WILKES|706 +27012|GA|DANBURG|30668|0|13|| +27013|GA|UNION POINT|30669|1|13|GREENE|706 +27014|GA|PENFIELD|30669|0|13|| +27015|GA|PENFLD|30669|0|13|| +27016|GA|WOODVILLE|30669|0|13|| +27017|GA|MAXEYS|30671|1|13|OGLETHORPE|706 +27018|GA|WASHINGTON|30673|1|13|WILKES|706 +27019|GA|WATKINSVILLE|30677|1|13|OCONEE|706 +27020|GA|WHITE PLAINS|30678|1|13|GREENE|706 +27021|GA|WINDER|30680|1|13|BARROW|678/770 +27022|GA|WINTERVILLE|30683|1|13|CLARKE|706 +27023|GA|CALHOUN|30701|1|13|GORDON|706 +27024|GA|CALHOUN|30703|1|13|GORDON|706 +27025|GA|CHATSWORTH|30705|1|13|MURRAY|706 +27026|GA|CHICKAMAUGA|30707|1|13|WALKER|706 +27027|GA|CISCO|30708|1|13|MURRAY|706 +27028|GA|COHUTTA|30710|1|13|WHITFIELD|706 +27029|GA|CRANDALL|30711|1|13|MURRAY|706 +27030|GA|DALTON|30719|1|13|WHITFIELD|706 +27031|GA|DALTON|30720|1|13|WHITFIELD|706 +27032|GA|DALTON|30721|1|13|WHITFIELD|706 +27033|GA|DALTON|30722|1|13|WHITFIELD|706 +27034|GA|ETON|30724|1|13|MURRAY|706 +27035|GA|FLINTSTONE|30725|1|13|WALKER|706 +27036|GA|GRAYSVILLE|30726|1|13|CATOOSA|706 +27037|GA|LA FAYETTE|30728|1|13|WALKER|706 +27038|GA|LAFAYETTE|30728|0|13|| +27039|GA|LYERLY|30730|1|13|CHATTOOGA|706 +27040|GA|MENLO|30731|1|13|CHATTOOGA|706 +27041|GA|CLOUDLAND|30731|0|13|| +27042|GA|OAKMAN|30732|1|13|GORDON|706 +27043|GA|PLAINVILLE|30733|1|13|GORDON|706 +27044|GA|RANGER|30734|1|13|GORDON|706 +27045|GA|RESACA|30735|1|13|GORDON|706 +27046|GA|RINGGOLD|30736|1|13|CATOOSA|706 +27047|GA|RISING FAWN|30738|1|13|DADE|706 +27048|GA|ROCK SPRING|30739|1|13|WALKER|706 +27049|GA|ROCKY FACE|30740|1|13|WHITFIELD|706 +27050|GA|ROSSVILLE|30741|1|13|WALKER|706 +27051|GA|FORT OGLETHORPE|30742|1|13|CATOOSA|706 +27052|GA|FT OGLETHORPE|30742|0|13|| +27053|GA|ROSSVILLE|30742|0|13|| +27054|GA|SUGAR VALLEY|30746|1|13|GORDON|706 +27055|GA|SUMMERVILLE|30747|1|13|CHATTOOGA|706 +27056|GA|LOOKOUT MOUNTAIN|30750|1|13|WALKER|706 +27057|GA|TENNGA|30751|1|13|MURRAY|706 +27058|GA|TRENTON|30752|1|13|DADE|706 +27059|GA|TRION|30753|1|13|CHATTOOGA|706 +27060|GA|TUNNEL HILL|30755|1|13|WHITFIELD|706 +27061|GA|VARNELL|30756|1|13|WHITFIELD|706 +27062|GA|WILDWOOD|30757|1|13|DADE|706 +27063|GA|APPLING|30802|1|13|COLUMBIA|706 +27064|GA|LEAH|30802|0|13|| +27065|GA|PHINIZY|30802|0|13|| +27066|GA|POLLARDS CORNER|30802|0|13|| +27067|GA|AVERA|30803|1|13|JEFFERSON|706 +27068|GA|BLYTHE|30805|1|13|RICHMOND|706 +27069|GA|ELLWOOD|30805|0|13|| +27070|GA|BONEVILLE|30806|1|13|MCDUFFIE|706 +27071|GA|CAMAK|30807|1|13|WARREN|706 +27072|GA|DEARING|30808|1|13|MCDUFFIE|706 +27073|GA|EVANS|30809|1|13|COLUMBIA|706 +27074|GA|GIBSON|30810|1|13|GLASCOCK|706 +27075|GA|EDGE HILL|30810|0|13|| +27076|GA|GOUGH|30811|1|13|BURKE|706 +27077|GA|KEYSVILLE|30811|0|13|| +27078|GA|GRACEWOOD|30812|1|13|RICHMOND|706 +27079|GA|GROVETOWN|30813|1|13|COLUMBIA|706 +27080|GA|HARLEM|30814|1|13|COLUMBIA|706 +27081|GA|BERZELIA|30814|0|13|| +27082|GA|CAMPANIA|30814|0|13|| +27083|GA|PUMPKIN CENTER|30814|0|13|| +27084|GA|HEPHZIBAH|30815|1|13|RICHMOND|706 +27085|GA|KEYSVILLE|30816|1|13|BURKE|706 +27086|GA|LINCOLNTON|30817|1|13|LINCOLN|706 +27087|GA|AGNES|30817|0|13|| +27088|GA|AMITY|30817|0|13|| +27089|GA|DOUBLE BRANCHES|30817|0|13|| +27090|GA|HONORA|30817|0|13|| +27091|GA|LEATHERSVILLE|30817|0|13|| +27092|GA|LOCO|30817|0|13|| +27093|GA|MAXIM|30817|0|13|| +27094|GA|NEW HOPE|30817|0|13|| +27095|GA|SYBERT|30817|0|13|| +27096|GA|MATTHEWS|30818|1|13|JEFFERSON|706 +27097|GA|NOAH|30818|0|13|| +27098|GA|WRENS|30818|0|13|| +27099|GA|MESENA|30819|1|13|WARREN|706 +27100|GA|MITCHELL|30820|1|13|GLASCOCK|706 +27101|GA|SHOALS|30820|0|13|| +27102|GA|NORWOOD|30821|1|13|WARREN|706 +27103|GA|BARNETT|30821|0|13|| +27104|GA|CADLEY|30821|0|13|| +27105|GA|PERKINS|30822|1|13|JENKINS|478 +27106|GA|STAPLETON|30823|1|13|JEFFERSON|706 +27107|GA|THOMSON|30824|1|13|MCDUFFIE|706 +27108|GA|WINFIELD|30824|0|13|| +27109|GA|WARRENTON|30828|1|13|WARREN|706 +27110|GA|NORRIS|30828|0|13|| +27111|GA|REESE|30828|0|13|| +27112|GA|WAYNESBORO|30830|1|13|BURKE|706 +27113|GA|MUNNERLYN|30830|0|13|| +27114|GA|SHELL BLUFF|30830|0|13|| +27115|GA|WRENS|30833|1|13|JEFFERSON|706 +27116|GA|AUGUSTA|30901|1|13|RICHMOND|706 +27117|GA|AUGUSTA|30903|1|13|RICHMOND|706 +27118|GA|AUGUSTA|30904|1|13|RICHMOND|706 +27119|GA|AUGUSTA|30905|1|13|RICHMOND|706 +27120|GA|FORT GORDON|30905|0|13|| +27121|GA|FT GORDON|30905|0|13|| +27122|GA|AUGUSTA|30906|1|13|RICHMOND|706 +27123|GA|PEACH ORCHARD|30906|0|13|| +27124|GA|AUGUSTA|30907|1|13|COLUMBIA|706 +27125|GA|MARTINEZ|30907|0|13|| +27126|GA|AUGUSTA|30909|1|13|RICHMOND|706 +27127|GA|FOREST HILLS|30909|0|13|| +27128|GA|AUGUSTA|30910|1|13|RICHMOND|706 +27129|GA|AUGUSTA|30911|1|13|RICHMOND|706 +27130|GA|AUGUSTA|30912|1|13|RICHMOND|706 +27131|GA|AUGUSTA|30913|1|13|RICHMOND|706 +27132|GA|AUGUSTA|30914|1|13|RICHMOND|706 +27133|GA|AUGUSTA|30916|1|13|RICHMOND|706 +27134|GA|AUGUSTA|30917|1|13|COLUMBIA|706 +27135|GA|AUGUSTA|30919|1|13|RICHMOND|706 +27136|GA|AUGUSTA|30999|1|13|RICHMOND|706 +27137|GA|RAILROAD RETIREMENT BOARD|30999|0|13|| +27138|GA|ABBEVILLE|31001|1|13|WILCOX|229 +27139|GA|ADRIAN|31002|1|13|EMANUEL|478 +27140|GA|ALLENTOWN|31003|1|13|WILKINSON|478 +27141|GA|BOLINGBROKE|31004|1|13|MONROE|478 +27142|GA|BONAIRE|31005|1|13|HOUSTON|478 +27143|GA|BUTLER|31006|1|13|TAYLOR|478 +27144|GA|BYROMVILLE|31007|1|13|DOOLY|478 +27145|GA|BYRON|31008|1|13|PEACH|478 +27146|GA|BRYON|31008|0|13|| +27147|GA|POWERSVILLE|31008|0|13|| +27148|GA|CADWELL|31009|1|13|LAURENS|478 +27149|GA|CORDELE|31010|1|13|CRISP|229 +27150|GA|CHAUNCEY|31011|1|13|DODGE|478 +27151|GA|CHESTER|31012|1|13|DODGE|478 +27152|GA|CLINCHFIELD|31013|1|13|HOUSTON|478 +27153|GA|COCHRAN|31014|1|13|BLECKLEY|478 +27154|GA|EMPIRE|31014|0|13|| +27155|GA|CORDELE|31015|1|13|CRISP|229 +27156|GA|CULLODEN|31016|1|13|MONROE|478 +27157|GA|DANVILLE|31017|1|13|TWIGGS|478 +27158|GA|DAVISBORO|31018|1|13|WASHINGTON|478 +27159|GA|DEXTER|31019|1|13|LAURENS|478 +27160|GA|DRY BRANCH|31020|1|13|TWIGGS|478 +27161|GA|DUBLIN|31021|1|13|LAURENS|478 +27162|GA|LOLLIE|31021|0|13|| +27163|GA|DUDLEY|31022|1|13|LAURENS|478 +27164|GA|EASTMAN|31023|1|13|DODGE|478 +27165|GA|PLAINFIELD|31023|0|13|| +27166|GA|EATONTON|31024|1|13|PUTNAM|706 +27167|GA|ELKO|31025|1|13|HOUSTON|478 +27168|GA|EATONTON|31026|1|13|PUTNAM|706 +27169|GA|HABAND|31026|0|13|| +27170|GA|EAST DUBLIN|31027|1|13|LAURENS|478 +27171|GA|DUBLIN|31027|0|13|| +27172|GA|E DUBLIN|31027|0|13|| +27173|GA|CENTERVILLE|31028|1|13|HOUSTON|478 +27174|GA|FORSYTH|31029|1|13|MONROE|478 +27175|GA|FORT VALLEY|31030|1|13|PEACH|478 +27176|GA|MARSHALLVILLE|31030|0|13|| +27177|GA|GORDON|31031|1|13|WILKINSON|478 +27178|GA|IVEY|31031|0|13|| +27179|GA|STEVENS POTTERY|31031|0|13|| +27180|GA|GRAY|31032|1|13|JONES|478 +27181|GA|HADDOCK|31033|1|13|JONES|478 +27182|GA|HARDWICK|31034|1|13|BALDWIN|478 +27183|GA|HARRISON|31035|1|13|WASHINGTON|478 +27184|GA|HAWKINSVILLE|31036|1|13|PULASKI|478 +27185|GA|GROVANIA|31036|0|13|| +27186|GA|HAYNEVILLE|31036|0|13|| +27187|GA|HVILLE|31036|0|13|| +27188|GA|KLONDIKE|31036|0|13|| +27189|GA|HELENA|31037|1|13|TELFAIR|229 +27190|GA|HILLSBORO|31038|1|13|JASPER|706 +27191|GA|ROUND OAK|31038|0|13|| +27192|GA|HOWARD|31039|1|13|TAYLOR|478 +27193|GA|DUBLIN|31040|1|13|LAURENS|478 +27194|GA|IDEAL|31041|1|13|MACON|478 +27195|GA|IRWINTON|31042|1|13|WILKINSON|478 +27196|GA|JEFFERSONVILLE|31044|1|13|TWIGGS|478 +27197|GA|JEWELL|31045|1|13|WARREN|706 +27198|GA|JULIETTE|31046|1|13|MONROE|478 +27199|GA|KATHLEEN|31047|1|13|HOUSTON|478 +27200|GA|KITE|31049|1|13|JOHNSON|478 +27201|GA|KNOXVILLE|31050|1|13|CRAWFORD|478 +27202|GA|LILLY|31051|1|13|DOOLY|478 +27203|GA|LIZELLA|31052|1|13|CRAWFORD|478 +27204|GA|MC INTYRE|31054|1|13|WILKINSON|478 +27205|GA|MC RAE|31055|1|13|TELFAIR|229 +27206|GA|MARSHALLVILLE|31057|1|13|MACON|478 +27207|GA|MAUK|31058|1|13|MARION|478 +27208|GA|MILLEDGEVILLE|31059|1|13|BALDWIN|478 +27209|GA|MILAN|31060|1|13|TELFAIR|229 +27210|GA|MILLEDGEVILLE|31061|1|13|BALDWIN|478 +27211|GA|MVILLE|31061|0|13|| +27212|GA|MILLEDGEVILLE|31062|1|13|BALDWIN|478 +27213|GA|CENTRAL STATE HOSPITAL|31062|0|13|| +27214|GA|MONTEZUMA|31063|1|13|MACON|478 +27215|GA|MONTICELLO|31064|1|13|JASPER|706 +27216|GA|MONTROSE|31065|1|13|LAURENS|478 +27217|GA|MUSELLA|31066|1|13|CRAWFORD|478 +27218|GA|OCONEE|31067|1|13|WASHINGTON|478 +27219|GA|OGLETHORPE|31068|1|13|MACON|478 +27220|GA|OGELTHORPE|31068|0|13|| +27221|GA|OLGETHORPE|31068|0|13|| +27222|GA|PERRY|31069|1|13|HOUSTON|478 +27223|GA|PINEHURST|31070|1|13|DOOLY|229 +27224|GA|PINEVIEW|31071|1|13|WILCOX|229 +27225|GA|PITTS|31072|1|13|WILCOX|229 +27226|GA|RENTZ|31075|1|13|LAURENS|478 +27227|GA|REYNOLDS|31076|1|13|TAYLOR|478 +27228|GA|RHINE|31077|1|13|DODGE|229 +27229|GA|ROBERTA|31078|1|13|CRAWFORD|478 +27230|GA|ROCHELLE|31079|1|13|WILCOX|229 +27231|GA|RUPERT|31081|1|13|TAYLOR|478 +27232|GA|SANDERSVILLE|31082|1|13|WASHINGTON|478 +27233|GA|DEEPSTEP|31082|0|13|| +27234|GA|SCOTLAND|31083|1|13|TELFAIR|912 +27235|GA|SEVILLE|31084|1|13|WILCOX|229 +27236|GA|SHADY DALE|31085|1|13|JASPER|706 +27237|GA|FARRAR|31085|0|13|| +27238|GA|KELLY|31085|0|13|| +27239|GA|SMARR|31086|1|13|MONROE|478 +27240|GA|SPARTA|31087|1|13|HANCOCK|706 +27241|GA|MAYFIELD|31087|0|13|| +27242|GA|WARNER ROBINS|31088|1|13|HOUSTON|478 +27243|GA|TENNILLE|31089|1|13|WASHINGTON|478 +27244|GA|TOOMSBORO|31090|1|13|WILKINSON|478 +27245|GA|UNADILLA|31091|1|13|DOOLY|478 +27246|GA|UNIDILLA|31091|0|13|| +27247|GA|VIENNA|31092|1|13|DOOLY|229 +27248|GA|WARNER ROBINS|31093|1|13|HOUSTON|478 +27249|GA|WARTHEN|31094|1|13|WASHINGTON|478 +27250|GA|WARNER ROBINS|31095|1|13|HOUSTON|478 +27251|GA|WRIGHTSVILLE|31096|1|13|JOHNSON|478 +27252|GA|YATESVILLE|31097|1|13|UPSON|706 +27253|GA|WARNER ROBINS|31098|1|13|HOUSTON|478 +27254|GA|ROBINS A F B|31098|0|13|| +27255|GA|ROBINS AFB|31098|0|13|| +27256|GA|ROBINS AIR FORCE BASE|31098|0|13|| +27257|GA|SOUTH BASE CPU|31098|0|13|| +27258|GA|WARNER ROBINS|31099|1|13|HOUSTON|478 +27259|GA|ATLANTA|31106|1|13|FULTON|404/770 +27260|GA|ATL|31106|0|13|| +27261|GA|ATLANTA|31107|1|13|FULTON|404/770 +27262|GA|ATL|31107|0|13|| +27263|GA|ATLANTA|31119|1|13|DEKALB|770 +27264|GA|ATL|31119|0|13|| +27265|GA|ATLANTA|31126|1|13|FULTON|404/770 +27266|GA|ATL|31126|0|13|| +27267|GA|LENOX SQ FINANCE|31126|0|13|| +27268|GA|LENOX SQUARE FINANCE|31126|0|13|| +27269|GA|ATLANTA|31131|1|13|FULTON|404/770 +27270|GA|ATL|31131|0|13|| +27271|GA|ATLANTA|31132|1|13|FULTON|404/770 +27272|GA|ATLANTA BMC MERCH RETURN|31132|0|13|| +27273|GA|ATLANTA|31139|1|13|FULTON|404/770 +27274|GA|ATL|31139|0|13|| +27275|GA|ATLANTA|31141|1|13|DEKALB|404/770 +27276|GA|ATL|31141|0|13|| +27277|GA|EMBRY HLS|31141|0|13|| +27278|GA|ATLANTA|31145|1|13|DEKALB|770 +27279|GA|ATL|31145|0|13|| +27280|GA|NORTHLAKE|31145|0|13|| +27281|GA|ATLANTA|31146|1|13|DEKALB|404 +27282|GA|ATL|31146|0|13|| +27283|GA|PERIMETER CENTER FINANCE|31146|0|13|| +27284|GA|ATLANTA|31150|1|13|FULTON|404/770 +27285|GA|ATL|31150|0|13|| +27286|GA|ATLANTA|31156|1|13|FULTON|404/770 +27287|GA|ATL|31156|0|13|| +27288|GA|ATLANTA|31191|1|13|FULTON|404/770 +27289|GA|ATL|31191|0|13|| +27290|GA|ATLANTA BMC|31191|0|13|| +27291|GA|FINGERHUT|31191|0|13|| +27292|GA|ATLANTA|31192|1|13|FULTON|404/770 +27293|GA|ATL|31192|0|13|| +27294|GA|MELLON BANK|31192|0|13|| +27295|GA|ATLANTA|31193|1|13|FULTON|404/770 +27296|GA|ATL|31193|0|13|| +27297|GA|FIRST UNION|31193|0|13|| +27298|GA|ATLANTA|31195|1|13|FULTON|404/770 +27299|GA|ATL|31195|0|13|| +27300|GA|ATLANTA BMC|31195|0|13|| +27301|GA|ATLANTA|31196|1|13|FULTON|404/770 +27302|GA|ATL|31196|0|13|| +27303|GA|ATLANTA BMC|31196|0|13|| +27304|GA|ATLANTA|31197|1|13|FULTON|404/770 +27305|GA|ATL|31197|0|13|| +27306|GA|ATLANTA BMC|31197|0|13|| +27307|GA|ATLANTA|31198|1|13|FULTON|404/770 +27308|GA|ATL|31198|0|13|| +27309|GA|ATLANTA BMC|31198|0|13|| +27310|GA|ATLANTA|31199|1|13|FULTON|404/770 +27311|GA|ATL|31199|0|13|| +27312|GA|ATLANTA BMC|31199|0|13|| +27313|GA|BMC|31199|0|13|| +27314|GA|MACON|31201|1|13|BIBB|478 +27315|GA|HUBER|31201|0|13|| +27316|GA|MACON|31202|1|13|BIBB|478 +27317|GA|MACON|31203|1|13|BIBB|478 +27318|GA|MACON|31204|1|13|BIBB|478 +27319|GA|PAYNE CITY|31204|0|13|| +27320|GA|MACON|31205|1|13|BIBB|478 +27321|GA|MACON|31206|1|13|BIBB|478 +27322|GA|LEWIS B WILSON AIRPORT|31206|0|13|| +27323|GA|S MACON|31206|0|13|| +27324|GA|SO MACON|31206|0|13|| +27325|GA|WILSON AIRPORT|31206|0|13|| +27326|GA|MACON|31207|1|13|BIBB|478 +27327|GA|MERCER UNIVERSITY|31207|0|13|| +27328|GA|MACON|31208|1|13|BIBB|478 +27329|GA|MACON|31209|1|13|BIBB|478 +27330|GA|MACON|31210|1|13|BIBB|478 +27331|GA|NO MACON|31210|0|13|| +27332|GA|ZEBULON BRANCH|31210|0|13|| +27333|GA|MACON|31211|1|13|BIBB|478 +27334|GA|MACON|31212|1|13|BIBB|478 +27335|GA|MACON|31213|1|13|BIBB|478 +27336|GA|MAIN OFFICE FIRMS|31213|0|13|| +27337|GA|MACON|31216|1|13|BIBB|478 +27338|GA|MACON|31217|1|13|BIBB|478 +27339|GA|MACON|31220|1|13|BIBB|478 +27340|GA|ZEBULON BRANCH|31220|0|13|| +27341|GA|MACON|31221|1|13|BIBB|478 +27342|GA|ZEBULON BRANCH|31221|0|13|| +27343|GA|MACON|31294|1|13|BIBB|478 +27344|GA|BUSINESS REPLY MAIL|31294|0|13|| +27345|GA|MACON BRM|31294|0|13|| +27346|GA|MACON|31295|1|13|BIBB|478 +27347|GA|GEICO UNDERWRITING|31295|0|13|| +27348|GA|MACON|31296|1|13|BIBB|478 +27349|GA|GEICO CLAIMS|31296|0|13|| +27350|GA|MACON|31297|1|13|BIBB|478 +27351|GA|MACON|31298|1|13|BIBB|478 +27352|GA|MACON|31299|1|13|BIBB|478 +27353|GA|MONTGOMERY WARD AND CO|31299|0|13|| +27354|GA|ALLENHURST|31301|1|13|LIBERTY|912 +27355|GA|BLOOMINGDALE|31302|1|13|CHATHAM|912 +27356|GA|CLYO|31303|1|13|EFFINGHAM|912 +27357|GA|CRESCENT|31304|1|13|MCINTOSH|912 +27358|GA|DARIEN|31305|1|13|MCINTOSH|912 +27359|GA|EDEN|31307|1|13|EFFINGHAM|912 +27360|GA|ELLABELL|31308|1|13|BRYAN|912 +27361|GA|BLACK CREEK|31308|0|13|| +27362|GA|FLEMING|31309|1|13|LIBERTY|912 +27363|GA|HINESVILLE|31310|1|13|LIBERTY|912 +27364|GA|GUYTON|31312|1|13|EFFINGHAM|912 +27365|GA|MARLOW|31312|0|13|| +27366|GA|PINEORA|31312|0|13|| +27367|GA|HINESVILLE|31313|1|13|LIBERTY|912 +27368|GA|FLEMINGTON|31313|0|13|| +27369|GA|FORT STEWART|31313|0|13|| +27370|GA|FS|31313|0|13|| +27371|GA|FT STEWART|31313|0|13|| +27372|GA|GUM BRANCH|31313|0|13|| +27373|GA|FORT STEWART|31314|1|13|LIBERTY|912 +27374|GA|FS|31314|0|13|| +27375|GA|FT STEWART|31314|0|13|| +27376|GA|HINESVILLE|31314|0|13|| +27377|GA|FORT STEWART|31315|1|13|LIBERTY|912 +27378|GA|FS|31315|0|13|| +27379|GA|FT STEWART|31315|0|13|| +27380|GA|HINESVILLE|31315|0|13|| +27381|GA|LUDOWICI|31316|1|13|LONG|912 +27382|GA|BAYVIEW|31316|0|13|| +27383|GA|DONALD|31316|0|13|| +27384|GA|ELIM|31316|0|13|| +27385|GA|MELDRIM|31318|1|13|EFFINGHAM|912 +27386|GA|MERIDIAN|31319|1|13|MCINTOSH|912 +27387|GA|CARNIGAN|31319|0|13|| +27388|GA|VALONA|31319|0|13|| +27389|GA|MIDWAY|31320|1|13|LIBERTY|912 +27390|GA|PEMBROKE|31321|1|13|BRYAN|912 +27391|GA|NEVILS|31321|0|13|| +27392|GA|POOLER|31322|1|13|CHATHAM|912 +27393|GA|RICEBORO|31323|1|13|LIBERTY|912 +27394|GA|JONES|31323|0|13|| +27395|GA|RETREAT|31323|0|13|| +27396|GA|SOUTH NEWPORT|31323|0|13|| +27397|GA|RICHMOND HILL|31324|1|13|BRYAN|912 +27398|GA|RINCON|31326|1|13|EFFINGHAM|912 +27399|GA|SAPELO ISLAND|31327|1|13|MCINTOSH|912 +27400|GA|TYBEE ISLAND|31328|1|13|CHATHAM|912 +27401|GA|FORT SCREVEN|31328|0|13|| +27402|GA|SPRINGFIELD|31329|1|13|EFFINGHAM|912 +27403|GA|STILLWELL|31329|0|13|| +27404|GA|TOWNSEND|31331|1|13|MCINTOSH|912 +27405|GA|ASHINTILLY|31331|0|13|| +27406|GA|COX|31331|0|13|| +27407|GA|EULONIA|31331|0|13|| +27408|GA|RIDGEVILLE|31331|0|13|| +27409|GA|SHELLMAN BLUFF|31331|0|13|| +27410|GA|WALTHOURVILLE|31333|1|13|LIBERTY|912 +27411|GA|SAVANNAH|31401|1|13|CHATHAM|912 +27412|GA|SAVANNAH|31402|1|13|CHATHAM|912 +27413|GA|SAVANNAH|31403|1|13|CHATHAM|912 +27414|GA|SAVANNAH|31404|1|13|CHATHAM|912 +27415|GA|STATE COLLEGE|31404|0|13|| +27416|GA|THUNDERBOLT|31404|0|13|| +27417|GA|SAVANNAH|31405|1|13|CHATHAM|912 +27418|GA|GARDEN CITY|31405|0|13|| +27419|GA|HUNTER ARMY AIR FIELD|31405|0|13|| +27420|GA|SAVANNAH|31406|1|13|CHATHAM|912 +27421|GA|SAVANNAH|31407|1|13|CHATHAM|912 +27422|GA|PORT WENTWORTH BRANCH|31407|0|13|| +27423|GA|SAVANNAH|31408|1|13|CHATHAM|912 +27424|GA|GARDEN CITY|31408|0|13|| +27425|GA|SAVANNAH|31409|1|13|CHATHAM|912 +27426|GA|HUNTER AAF|31409|0|13|| +27427|GA|SAVANNAH|31410|1|13|CHATHAM|912 +27428|GA|THUNDERBOLT|31410|0|13|| +27429|GA|WILMINGTON ISLAND|31410|0|13|| +27430|GA|SAVANNAH|31411|1|13|CHATHAM|912 +27431|GA|VILLAGE STATION|31411|0|13|| +27432|GA|SAVANNAH|31412|1|13|CHATHAM|912 +27433|GA|SAVANNAH|31414|1|13|CHATHAM|912 +27434|GA|SAVANNAH|31415|1|13|CHATHAM|912 +27435|GA|GARDEN CITY|31415|0|13|| +27436|GA|SAVANNAH|31416|1|13|CHATHAM|912 +27437|GA|SAVANNAH|31418|1|13|CHATHAM|912 +27438|GA|GARDEN CITY|31418|0|13|| +27439|GA|GRDN CITY|31418|0|13|| +27440|GA|SAVANNAH|31419|1|13|CHATHAM|912 +27441|GA|SAVANNAH|31420|1|13|CHATHAM|912 +27442|GA|SAVANNAH|31421|1|13|CHATHAM|912 +27443|GA|SAVANNAH|31498|1|13|CHATHAM|912 +27444|GA|SAVANNAH|31499|1|13|CHATHAM|912 +27445|GA|WAYCROSS|31501|1|13|WARE|912 +27446|GA|OKEFENOKEE|31501|0|13|| +27447|GA|WAYCROSS|31502|1|13|WARE|912 +27448|GA|WAYCROSS|31503|1|13|WARE|912 +27449|GA|ALMA|31510|1|13|BACON|912 +27450|GA|GUYSIE|31510|0|13|| +27451|GA|ROCKINGHAM|31510|0|13|| +27452|GA|AMBROSE|31512|1|13|COFFEE|912 +27453|GA|BAXLEY|31513|1|13|APPLING|912 +27454|GA|GRAHAM|31513|0|13|| +27455|GA|PINE GROVE|31513|0|13|| +27456|GA|BAXLEY|31515|1|13|APPLING|912 +27457|GA|BLACKSHEAR|31516|1|13|PIERCE|912 +27458|GA|JOT EM DOWN STORE|31516|0|13|| +27459|GA|BRISTOL|31518|1|13|PIERCE|912 +27460|GA|BROXTON|31519|1|13|COFFEE|912 +27461|GA|LOTTS|31519|0|13|| +27462|GA|PRIDGEN|31519|0|13|| +27463|GA|BRUNSWICK|31520|1|13|GLYNN|912 +27464|GA|ALTAMA|31520|0|13|| +27465|GA|SEARS|31520|0|13|| +27466|GA|BRUNSWICK|31521|1|13|GLYNN|912 +27467|GA|SAINT SIMONS ISLAND|31522|1|13|GLYNN|912 +27468|GA|BRUNSWICK|31522|0|13|| +27469|GA|BRUNSWICK|31523|1|13|GLYNN|912 +27470|GA|BRUNSWICK|31524|1|13|GLYNN|912 +27471|GA|FED LAW ENFORCE TRNG CTR|31524|0|13|| +27472|GA|GLYNCO|31524|0|13|| +27473|GA|BRUNSWICK|31525|1|13|GLYNN|912 +27474|GA|EVERETT|31525|0|13|| +27475|GA|STERLING|31525|0|13|| +27476|GA|THALMAN|31525|0|13|| +27477|GA|JEKYLL ISLAND|31527|1|13|GLYNN|912 +27478|GA|BRUNSWICK|31527|0|13|| +27479|GA|DENTON|31532|1|13|JEFF DAVIS|912 +27480|GA|SNIPESVILLE|31532|0|13|| +27481|GA|DOUGLAS|31533|1|13|COFFEE|912 +27482|GA|DOUGLAS|31534|1|13|COFFEE|912 +27483|GA|DOUGLAS|31535|1|13|COFFEE|912 +27484|GA|FOLKSTON|31537|1|13|CHARLTON|912 +27485|GA|HOMELAND|31537|0|13|| +27486|GA|HAZLEHURST|31539|1|13|JEFF DAVIS|912 +27487|GA|ROPER|31539|0|13|| +27488|GA|HOBOKEN|31542|1|13|BRANTLEY|912 +27489|GA|HORTENSE|31543|1|13|BRANTLEY|912 +27490|GA|JACKSONVILLE|31544|1|13|TELFAIR|229 +27491|GA|JESUP|31545|1|13|WAYNE|912 +27492|GA|DOCTORTOWN|31545|0|13|| +27493|GA|GARDI|31545|0|13|| +27494|GA|MADRAY SPRINGS|31545|0|13|| +27495|GA|MCKINNON|31545|0|13|| +27496|GA|JESUP|31546|1|13|WAYNE|912 +27497|GA|KINGS BAY|31547|1|13|CAMDEN|912 +27498|GA|KINGSLAND|31548|1|13|CAMDEN|912 +27499|GA|LUMBER CITY|31549|1|13|TELFAIR|912 +27500|GA|MANOR|31550|1|13|WARE|912 +27501|GA|MERSHON|31551|1|13|PIERCE|912 +27502|GA|MILLWOOD|31552|1|13|WARE|912 +27503|GA|FAIRFAX|31552|0|13|| +27504|GA|NAHUNTA|31553|1|13|BRANTLEY|912 +27505|GA|HICKOX|31553|0|13|| +27506|GA|LULATON|31553|0|13|| +27507|GA|RAYBON|31553|0|13|| +27508|GA|NICHOLLS|31554|1|13|COFFEE|912 +27509|GA|BEACH|31554|0|13|| +27510|GA|BICKLEY|31554|0|13|| +27511|GA|CHATTERTON|31554|0|13|| +27512|GA|SESSOMS|31554|0|13|| +27513|GA|WILSONVILLE|31554|0|13|| +27514|GA|ODUM|31555|1|13|WAYNE|912 +27515|GA|OFFERMAN|31556|1|13|PIERCE|912 +27516|GA|PATTERSON|31557|1|13|PIERCE|912 +27517|GA|SAINT MARYS|31558|1|13|CAMDEN|912 +27518|GA|SCREVEN|31560|1|13|WAYNE|912 +27519|GA|SEA ISLAND|31561|1|13|GLYNN|912 +27520|GA|BRUNSWICK|31561|0|13|| +27521|GA|SAINT GEORGE|31562|1|13|CHARLTON|912 +27522|GA|SURRENCY|31563|1|13|APPLING|912 +27523|GA|WARESBORO|31564|1|13|WARE|912 +27524|GA|WAVERLY|31565|1|13|CAMDEN|912 +27525|GA|HICKORY BLUFF|31565|0|13|| +27526|GA|PINEY BLUFF|31565|0|13|| +27527|GA|SPRING BLUFF|31565|0|13|| +27528|GA|WAYNESVILLE|31566|1|13|BRANTLEY|912 +27529|GA|WEST GREEN|31567|1|13|COFFEE|912 +27530|GA|WHITE OAK|31568|1|13|CAMDEN|912 +27531|GA|WOODBINE|31569|1|13|CAMDEN|912 +27532|GA|JESUP|31598|1|13|WAYNE|912 +27533|GA|JESUP|31599|1|13|WAYNE|912 +27534|GA|FEDERAL CORRECTIONAL INST|31599|0|13|| +27535|GA|VALDOSTA|31601|1|13|LOWNDES|229 +27536|GA|CLYATTVILLE|31601|0|13|| +27537|GA|DASHER|31601|0|13|| +27538|GA|REMERTON|31601|0|13|| +27539|GA|VALDOSTA|31602|1|13|LOWNDES|229 +27540|GA|VALDOSTA|31603|1|13|LOWNDES|229 +27541|GA|VALDOSTA|31604|1|13|LOWNDES|229 +27542|GA|VALDOSTA|31605|1|13|LOWNDES|229 +27543|GA|BEMISS|31605|0|13|| +27544|GA|VALDOSTA|31606|1|13|LOWNDES|229 +27545|GA|ADEL|31620|1|13|COOK|229 +27546|GA|ALAPAHA|31622|1|13|BERRIEN|229 +27547|GA|ARGYLE|31623|1|13|CLINCH|912 +27548|GA|AXSON|31624|1|13|ATKINSON|912 +27549|GA|BARNEY|31625|1|13|BROOKS|229 +27550|GA|BOSTON|31626|1|13|THOMAS|229 +27551|GA|CECIL|31627|1|13|COOK|229 +27552|GA|DIXIE|31629|1|13|BROOKS|229 +27553|GA|DU PONT|31630|1|13|CLINCH|912 +27554|GA|FARGO|31631|1|13|CLINCH|912 +27555|GA|HAHIRA|31632|1|13|LOWNDES|229 +27556|GA|HOMERVILLE|31634|1|13|CLINCH|912 +27557|GA|COGDELL|31634|0|13|| +27558|GA|LAKELAND|31635|1|13|LANIER|229 +27559|GA|LAKE PARK|31636|1|13|LOWNDES|229 +27560|GA|LAKEPARK|31636|0|13|| +27561|GA|LENOX|31637|1|13|COOK|229 +27562|GA|EL DORADO|31637|0|13|| +27563|GA|MORVEN|31638|1|13|BROOKS|229 +27564|GA|NASHVILLE|31639|1|13|BERRIEN|229 +27565|GA|NAYLOR|31641|1|13|LOWNDES|229 +27566|GA|PEARSON|31642|1|13|ATKINSON|912 +27567|GA|QUITMAN|31643|1|13|BROOKS|229 +27568|GA|RAY CITY|31645|1|13|BERRIEN|229 +27569|GA|SPARKS|31647|1|13|COOK|229 +27570|GA|STATENVILLE|31648|1|13|ECHOLS|229 +27571|GA|STOCKTON|31649|1|13|LANIER|229 +27572|GA|WILLACOOCHEE|31650|1|13|ATKINSON|912 +27573|GA|VALDOSTA|31698|1|13|LOWNDES|229 +27574|GA|VALDOSTA STATE COLLEGE|31698|0|13|| +27575|GA|MOODY A F B|31699|1|13|LOWNDES|229 +27576|GA|MOODY AFB|31699|0|13|| +27577|GA|MOODY AIR FORCE BASE|31699|0|13|| +27578|GA|ALBANY|31701|1|13|DOUGHERTY|229 +27579|GA|ALBANY|31702|1|13|DOUGHERTY|229 +27580|GA|ALBANY|31703|1|13|DOUGHERTY|229 +27581|GA|ALBANY|31704|1|13|DOUGHERTY|229 +27582|GA|MARINE CORPS LOGISTICS BASE|31704|0|13|| +27583|GA|ALBANY|31705|1|13|DOUGHERTY|229 +27584|GA|BRIDGEBORO|31705|0|13|| +27585|GA|RADIUM SPRINGS|31705|0|13|| +27586|GA|ALBANY|31706|1|13|DOUGHERTY|229 +27587|GA|ALBANY|31707|1|13|DOUGHERTY|229 +27588|GA|ALBANY|31708|1|13|DOUGHERTY|229 +27589|GA|AMERICUS|31709|1|13|SUMTER|229 +27590|GA|AMERICUS|31710|1|13|SUMTER|229 +27591|GA|TOG SHOP|31710|0|13|| +27592|GA|ANDERSONVILLE|31711|1|13|SUMTER|229 +27593|GA|ARABI|31712|1|13|CRISP|229 +27594|GA|ASHBURN|31714|1|13|TURNER|229 +27595|GA|BACONTON|31716|1|13|MITCHELL|229 +27596|GA|AMERICUS|31719|1|13|SUMTER|229 +27597|GA|BARWICK|31720|1|13|BROOKS|229 +27598|GA|ALBANY|31721|1|13|DOUGHERTY|229 +27599|GA|BERLIN|31722|1|13|COLQUITT|229 +27600|GA|BROOKFIELD|31727|1|13|TIFT|229 +27601|GA|CAMILLA|31730|1|13|MITCHELL|229 +27602|GA|CHULA|31733|1|13|TIFT|229 +27603|GA|COBB|31735|1|13|SUMTER|229 +27604|GA|COOLIDGE|31738|1|13|THOMAS|229 +27605|GA|COTTON|31739|1|13|MITCHELL|912 +27606|GA|DE SOTO|31743|1|13|SUMTER|229 +27607|GA|DOERUN|31744|1|13|COLQUITT|229 +27608|GA|ELLENTON|31747|1|13|COLQUITT|229 +27609|GA|ENIGMA|31749|1|13|BERRIEN|229 +27610|GA|FITZGERALD|31750|1|13|BEN HILL|229 +27611|GA|FUNSTON|31753|1|13|COLQUITT|229 +27612|GA|HARTSFIELD|31756|1|13|COLQUITT|229 +27613|GA|HARTVILLE|31756|0|13|| +27614|GA|THOMASVILLE|31757|1|13|THOMAS|229 +27615|GA|TVILLE|31757|0|13|| +27616|GA|THOMASVILLE|31758|1|13|THOMAS|229 +27617|GA|TVILLE|31758|0|13|| +27618|GA|IRWINVILLE|31760|1|13|IRWIN|229 +27619|GA|LEESBURG|31763|1|13|LEE|229 +27620|GA|LESLIE|31764|1|13|SUMTER|229 +27621|GA|MEIGS|31765|1|13|THOMAS|229 +27622|GA|HINSONTON|31765|0|13|| +27623|GA|MOULTRIE|31768|1|13|COLQUITT|229 +27624|GA|MOULTRIE MUNICIPAL AIRPORT|31768|0|13|| +27625|GA|MYSTIC|31769|1|13|IRWIN|229 +27626|GA|NORMAN PARK|31771|1|13|COLQUITT|229 +27627|GA|OAKFIELD|31772|1|13|WORTH|229 +27628|GA|OCHLOCKNEE|31773|1|13|THOMAS|229 +27629|GA|OCILLA|31774|1|13|IRWIN|229 +27630|GA|OMEGA|31775|1|13|TIFT|229 +27631|GA|MOULTRIE|31776|1|13|COLQUITT|229 +27632|GA|PAVO|31778|1|13|THOMAS|229 +27633|GA|PELHAM|31779|1|13|MITCHELL|229 +27634|GA|PLAINS|31780|1|13|SUMTER|229 +27635|GA|POULAN|31781|1|13|WORTH|229 +27636|GA|PUTNEY|31782|1|13|DOUGHERTY|229 +27637|GA|REBECCA|31783|1|13|TURNER|229 +27638|GA|SALE CITY|31784|1|13|MITCHELL|229 +27639|GA|SMITHVILLE|31787|1|13|LEE|229 +27640|GA|MOULTRIE|31788|1|13|COLQUITT|229 +27641|GA|SUMNER|31789|1|13|WORTH|229 +27642|GA|SYCAMORE|31790|1|13|TURNER|229 +27643|GA|SYLVESTER|31791|1|13|WORTH|229 +27644|GA|THOMASVILLE|31792|1|13|THOMAS|229 +27645|GA|GATEWAY|31792|0|13|| +27646|GA|METCALF|31792|0|13|| +27647|GA|TVILLE|31792|0|13|| +27648|GA|TIFTON|31793|1|13|TIFT|229 +27649|GA|TIFTON|31794|1|13|TIFT|229 +27650|GA|ABRAHAM BALDWIN COLLEGE CPO|31794|0|13|| +27651|GA|TY TY|31795|1|13|TIFT|229 +27652|GA|TYTY|31795|0|13|| +27653|GA|WARWICK|31796|1|13|WORTH|229 +27654|GA|WRAY|31798|1|13|IRWIN|229 +27655|GA|THOMASVILLE|31799|1|13|THOMAS|229 +27656|GA|TVILLE|31799|0|13|| +27657|GA|BOX SPRINGS|31801|1|13|TALBOT|706 +27658|GA|JUNIPER|31801|0|13|| +27659|GA|BUENA VISTA|31803|1|13|MARION|229 +27660|GA|TAZEWELL|31803|0|13|| +27661|GA|CATAULA|31804|1|13|HARRIS|706 +27662|GA|CUSSETA|31805|1|13|CHATTAHOOCHEE|706 +27663|GA|ELLAVILLE|31806|1|13|SCHLEY|229 +27664|GA|ELLERSLIE|31807|1|13|HARRIS|706 +27665|GA|FORTSON|31808|1|13|MUSCOGEE|706 +27666|GA|GENEVA|31810|1|13|TALBOT|706 +27667|GA|HAMILTON|31811|1|13|HARRIS|706 +27668|GA|JUNCTION CITY|31812|1|13|TALBOT|706 +27669|GA|LOUVALE|31814|1|13|STEWART|229 +27670|GA|LUMPKIN|31815|1|13|STEWART|229 +27671|GA|MANCHESTER|31816|1|13|MERIWETHER|706 +27672|GA|MIDLAND|31820|1|13|MUSCOGEE|706 +27673|GA|OMAHA|31821|1|13|STEWART|229 +27674|GA|PINE MOUNTAIN|31822|1|13|HARRIS|706 +27675|GA|PINE MOUNTAIN VALLEY|31823|1|13|HARRIS|706 +27676|GA|PRESTON|31824|1|13|WEBSTER|229 +27677|GA|RICHLAND|31825|1|13|STEWART|229 +27678|GA|SHILOH|31826|1|13|HARRIS|706 +27679|GA|TALBOTTON|31827|1|13|TALBOT|706 +27680|GA|UPATOI|31829|1|13|MUSCOGEE|706 +27681|GA|COLUMBUS|31829|0|13|| +27682|GA|WARM SPRINGS|31830|1|13|MERIWETHER|706 +27683|GA|WAVERLY HALL|31831|1|13|HARRIS|706 +27684|GA|WESTON|31832|1|13|WEBSTER|229 +27685|GA|WEST POINT|31833|1|13|TROUP|706 +27686|GA|WOODLAND|31836|1|13|TALBOT|706 +27687|GA|COLUMBUS|31901|1|13|MUSCOGEE|706 +27688|GA|COLS|31901|0|13|| +27689|GA|COLUMBUS|31902|1|13|MUSCOGEE|706 +27690|GA|COLS|31902|0|13|| +27691|GA|COLUMBUS|31903|1|13|MUSCOGEE|706 +27692|GA|COLS|31903|0|13|| +27693|GA|COLUMBUS|31904|1|13|MUSCOGEE|706 +27694|GA|BEALLWOOD|31904|0|13|| +27695|GA|COLS|31904|0|13|| +27696|GA|FORT BENNING|31905|1|13|MUSCOGEE|706 +27697|GA|CAMP ROGERS|31905|0|13|| +27698|GA|COLS|31905|0|13|| +27699|GA|COLUMBUS|31905|0|13|| +27700|GA|COLUMBUS|31906|1|13|MUSCOGEE|706 +27701|GA|COLS|31906|0|13|| +27702|GA|COLUMBUS|31907|1|13|MUSCOGEE|706 +27703|GA|COLS|31907|0|13|| +27704|GA|COLUMBUS|31908|1|13|MUSCOGEE|706 +27705|GA|COL|31908|0|13|| +27706|GA|COLS|31908|0|13|| +27707|GA|COLUMBUS|31909|1|13|MUSCOGEE|706 +27708|GA|COLS|31909|0|13|| +27709|GA|COLUMBUS|31914|1|13|MUSCOGEE|706 +27710|GA|COLS|31914|0|13|| +27711|GA|COLUMBUS|31917|1|13|MUSCOGEE|706 +27712|GA|COLS|31917|0|13|| +27713|GA|COLUMBUS|31993|1|13|MUSCOGEE|706 +27714|GA|COLUMBUS BRM|31993|0|13|| +27715|GA|COLUMBUS|31994|1|13|MUSCOGEE|706 +27716|GA|FORT BENNING|31995|1|13|MUSCOGEE|706 +27717|GA|COLS|31995|0|13|| +27718|GA|COLUMBUS|31995|0|13|| +27719|GA|COLUMBUS|31997|1|13|MUSCOGEE|706 +27720|GA|AT&T UNIVERSAL CARD SERVICE|31997|0|13|| +27721|GA|COLUMBUS|31998|1|13|MUSCOGEE|706 +27722|GA|AMER FAM LIFE INS BRM|31998|0|13|| +27723|GA|COLUMBUS|31999|1|13|MUSCOGEE|706 +27724|GA|AMERICAN FAMILY LIFE INS|31999|0|13|| +34618|GA|ARLINGTON|39813|1|13|CALHOUN|229 +34619|GA|ATTAPULGUS|39815|1|13|DECATUR|229 +34620|GA|BAINBRIDGE|39817|1|13|DECATUR|229 +34621|GA|BDGE|39817|0|13|| +34622|GA|WEST BAINBRIDGE|39817|0|13|| +34623|GA|BAINBRIDGE|39818|1|13|DECATUR|229 +34624|GA|BDGE|39818|0|13|| +34625|GA|BAINBRIDGE|39819|1|13|DECATUR|229 +34626|GA|BDGE|39819|0|13|| +34627|GA|BLAKELY|39823|1|13|EARLY|229 +34628|GA|BLUFFTON|39824|1|13|CLAY|229 +34629|GA|BRINSON|39825|1|13|DECATUR|229 +34630|GA|BRONWOOD|39826|1|13|TERRELL|229 +34631|GA|CAIRO|39827|1|13|GRADY|229 +34632|GA|CARIO|39827|0|13|| +34633|GA|KARO|39827|0|13|| +34634|GA|CAIRO|39828|1|13|GRADY|229 +34635|GA|CARIO|39828|0|13|| +34636|GA|KARO|39828|0|13|| +34637|GA|CALVARY|39829|1|13|GRADY|229 +34638|GA|CEDAR SPRINGS|39832|1|13|EARLY|229 +34639|GA|CLIMAX|39834|1|13|DECATUR|229 +34640|GA|COLEMAN|39836|1|13|RANDOLPH|229 +34641|GA|COLQUITT|39837|1|13|MILLER|229 +34642|GA|CUTHBERT|39840|1|13|RANDOLPH|229 +34643|GA|DAMASCUS|39841|1|13|EARLY|229 +34644|GA|DAWSON|39842|1|13|TERRELL|229 +34645|GA|DONALSONVILLE|39845|1|13|SEMINOLE|229 +34646|GA|DVILLE|39845|0|13|| +34647|GA|EDISON|39846|1|13|CALHOUN|229 +34648|GA|FORT GAINES|39851|1|13|CLAY|229 +34649|GA|FOWLSTOWN|39852|1|13|DECATUR|229 +34650|GA|GEORGETOWN|39854|1|13|QUITMAN|229 +34651|GA|IRON CITY|39859|1|13|SEMINOLE|229 +34652|GA|JAKIN|39861|1|13|EARLY|229 +34653|GA|LEARY|39862|1|13|CALHOUN|229 +34654|GA|MORGAN|39866|1|13|CALHOUN|229 +34655|GA|MORRIS|39867|1|13|QUITMAN|229 +34656|GA|NEWTON|39870|1|13|BAKER|912 +34657|GA|PARROTT|39877|1|13|TERRELL|229 +34658|GA|SASSER|39885|1|13|TERRELL|229 +34659|GA|SHELLMAN|39886|1|13|RANDOLPH|229 +34660|GA|WHIGHAM|39897|1|13|GRADY|229 +34661|GA|ATLANTA|39901|1|13|DEKALB|404/770 +34662|GA|IRS SERVICE CENTER|39901|0|13|| diff --git a/Open-ILS/examples/templates/overdue_combined_xml_pines.example b/Open-ILS/examples/templates/overdue_combined_xml_pines.example new file mode 100644 index 0000000000..63533456ec --- /dev/null +++ b/Open-ILS/examples/templates/overdue_combined_xml_pines.example @@ -0,0 +1,65 @@ +[% USE date -%] + + + [%- FOREACH circ_set = overdues %] + [%- SET user = circ_set.circ_list.0.usr -%] + [%- SET lib = circ_set.circ_list.0.circ_lib -%] + [%- SET user_addr = user.mailing_address -%] + [%- IF !user_addr or user_addr.valid == 'f' -%] + [%- SET user_addr = user.billing_address -%] + [%- END %] + [%- SET lib_addr = lib.mailing_address -%] + [%- IF !lib_addr -%] + [%- SET lib_addr = lib.billing_address -%] + [%- END -%] + + + [% user.card.barcode %] + [% user.first_given_name %] + [% user.family_name %] + [% IF !user_addr %] + false + [% ELSE %] + [% IF user_addr.valid == 'f' %] + false + [% ELSE %] + true + [% END %] + [% escape_xml(user_addr.street1) %] + [% escape_xml(user_addr.street2) %] + [% escape_xml(user_addr.city) %] + [% user_addr.state %] + [% user_addr.post_code %] + [% END %] + [% user.email %] + [% user.day_phone %] + [% user.evening_phone %] + [% user.other_phone %] + [% user.id %] + + + [% escape_xml(lib.name) %] + [% lib.shortname %] + [% lib.phone %] + [% escape_xml(lib_addr.street1) %] + [% escape_xml(lib_addr.street2) %] + [% escape_xml(lib_addr.city) %] + [% lib_addr.state %] + [% lib_addr.post_code %] + [% lib.email %] + [% lib.id %] + + [%- FOREACH circ = circ_set.circ_list %] + [%- SET due_date = parse_due_date(circ) %] + + [% escape_xml(get_bib_attr(circ, 'title')) %] + [% escape_xml(get_bib_attr(circ, 'author')) %] + [% date.format(due_date, '%Y-%m-%d') %] + [% escape_xml(circ.target_copy.call_number.label) %] + [% escape_xml(circ.target_copy.barcode) %] + [% circ.id %] + + [%- END %] + + [%- END %] + diff --git a/Open-ILS/web/opac/extras/slimpac/advanced.html b/Open-ILS/web/opac/extras/slimpac/advanced.html index fcff938ea9..4d3b77e737 100644 --- a/Open-ILS/web/opac/extras/slimpac/advanced.html +++ b/Open-ILS/web/opac/extras/slimpac/advanced.html @@ -12,21 +12,19 @@